{"version":3,"file":"acorex-components-button-group.mjs","sources":["../../../../packages/components/button-group/src/lib/button-group.component.ts","../../../../packages/components/button-group/src/lib/button-group.component.html","../../../../packages/components/button-group/src/lib/button-group-item.component.ts","../../../../packages/components/button-group/src/lib/button-group.module.ts","../../../../packages/components/button-group/src/acorex-components-button-group.ts"],"sourcesContent":["import {\n  AXClickEvent,\n  AXComponent,\n  AXSelectionMode,\n  MXInteractiveComponent,\n  type AXStyleColorType,\n  type AXStyleLookType,\n} from '@acorex/cdk/common';\nimport {\n  Component,\n  contentChildren,\n  effect,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  input,\n  Input,\n  output,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\n\n/**\n * A component that groups multiple buttons together, allowing for consistent styling and behavior.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-button-group',\n  templateUrl: './button-group.component.html',\n  styleUrls: ['./button-group.component.css'],\n\n  encapsulation: ViewEncapsulation.None,\n  inputs: ['disabled'],\n  outputs: ['onBlur', 'onFocus', 'disabledChange'],\n  providers: [{ provide: AXComponent, useExisting: AXButtonGroupComponent }],\n})\nexport class AXButtonGroupComponent extends MXInteractiveComponent {\n  readonly fitParent = input(false);\n\n  @Output()\n  colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\n\n  private _color: AXStyleColorType = 'default';\n  @Input()\n  public get color() {\n    return this._color;\n  }\n  public set color(v) {\n    this._color = v;\n    this.colorChange.emit(v);\n  }\n\n  @Output()\n  lookChange: EventEmitter<AXStyleLookType> = new EventEmitter();\n\n  private _look: AXStyleLookType = 'solid';\n  @Input()\n  public get look() {\n    return this._look;\n  }\n  public set look(v) {\n    this._look = v;\n    this.lookChange.emit(v);\n  }\n\n  readonly customClass = input<string>('', { alias: 'class' });\n\n  #effect = effect(() => {\n    if (this._contentButtons().length) {\n      this._bindEvents();\n      this._bindProps();\n    }\n  });\n\n  /**\n   * Fires when any button in the group is clicked.\n   *\n   * @event\n   */\n  @Output()\n  onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n  /**\n   *  @ignore\n   */\n  private _contentButtons = contentChildren(AXButtonGroupItemComponent, { descendants: true });\n\n  /**\n   * Emitted when the selection mode changes.\n   *\n   * @event\n   */\n  @Output()\n  selectionChange: EventEmitter<AXSelectionMode> = new EventEmitter();\n  /**\n   * Emits the button item component instance when the selected button changes.\n   *\n   * @event\n   */\n  selectedButtonChange = output<AXButtonGroupItemComponent>();\n\n  /**\n   *  @ignore\n   */\n  private _selection: AXSelectionMode;\n\n  /**\n   * Defines the selection mode for the component.\n   */\n  @Input()\n  public get selection(): AXSelectionMode {\n    return this._selection;\n  }\n\n  /**\n   * Sets the selection mode for the component.\n   *\n   * @param value - The selection mode to be set. Possible values include 'single', 'multiple', or 'none'.\n   */\n  public set selection(value: AXSelectionMode) {\n    this.setOption({\n      name: 'selection',\n      value: value,\n      afterCallback: (o, n) => {\n        if (value == 'none') {\n          this.clearSelection();\n        }\n      },\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private _bindEvents() {\n    this._contentButtons()?.forEach((b: any) => {\n      if (!b.onClick.length)\n        b.onClick.subscribe((c: any) => {\n          this._handleClickEvent(c, b);\n        });\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  private _bindProps() {\n    this._contentButtons()?.forEach((b: any) => {\n      if (this.customClass()) b.customClass.set(this.customClass());\n\n      if (b['originDisabled'] == null) {\n        b['originDisabled'] = b.disabled;\n      }\n      if (b['originColor'] == null) {\n        b['originColor'] = b.color;\n      }\n      if (this.look) b.look = this.look;\n      // Apply group color only if the item has not explicitly provided a color\n      if (this.color) {\n        const itemHasExplicitColor = b['originColor'] != null && b['originColor'] !== 'default';\n        b.color = itemHasExplicitColor ? b['originColor'] : this.color;\n      }\n      b.disabled = b['originDisabled'] || this.disabled;\n      b.toggleable = false;\n    });\n  }\n\n  /**\n   *  @ignore\n   * Updates component properties based on internal option changes.\n   */\n  protected override internalOptionChanged() {\n    this._bindProps();\n  }\n\n  /**\n   *  @ignore\n   */\n  private _handleClickEvent(e: AXClickEvent, button: AXButtonGroupItemComponent) {\n    this.selectedButtonChange.emit(button);\n    if (this.selection == 'multiple') {\n      button.selected = !button.selected;\n    } else if (this.selection == 'single') {\n      this.clearSelection();\n      button.selected = true;\n    } else {\n      button.selected = false;\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  private clearSelection() {\n    this._contentButtons()?.forEach((c: AXButtonGroupItemComponent) => {\n      c.selected = false;\n    });\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): { [key: string]: boolean } {\n    const cssClasses = {\n      'ax-state-disabled': this.disabled,\n      'ax-parent-fit': this.fitParent(),\n    };\n    return cssClasses;\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('attr.role') get role() {\n    return 'group';\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostListener('click', ['$event'])\n  __hostClick(e: MouseEvent) {\n    if (!this.disabled) {\n      this.onClick.emit({\n        component: this,\n        htmlElement: this.getHostElement(),\n        nativeEvent: e,\n      });\n    }\n  }\n}\n","<ng-container>\n  <ng-content select=\"ax-button-group-item\"></ng-content>\n</ng-container>\n","import { AXClickEvent, AXComponent, AXStyleColorType, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport {\n  Component,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  inject,\n  Input,\n  model,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupComponent } from './button-group.component';\n\nexport interface AXButtonItemListItem {\n  name: string;\n  text: string;\n  icon: string;\n  divided?: boolean;\n  disabled?: boolean;\n  color?: AXStyleColorType;\n}\n\n/**\n * Represents a button item with optional content like icons, text, and dropdowns.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-button-group-item',\n  template: `\n    <ax-button\n      [color]=\"color && color !== 'default' ? color : btnGroup.color\"\n      [text]=\"text\"\n      [class]=\"customClass()\"\n      [look]=\"btnGroup.look\"\n      [disabled]=\"disabled\"\n      [selected]=\"selected\"\n    >\n      <ng-content></ng-content>\n    </ax-button>\n  `,\n  encapsulation: ViewEncapsulation.None,\n\n  inputs: ['disabled'],\n  outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'],\n  imports: [AXButtonComponent],\n  providers: [{ provide: AXComponent, useExisting: AXButtonGroupItemComponent }],\n})\nexport class AXButtonGroupItemComponent extends MXInteractiveComponent {\n  btnGroup = inject(AXButtonGroupComponent);\n\n  @Input()\n  color: AXStyleColorType = 'default';\n\n  /**\n   * Text displayed on the button item.\n   */\n  @Input()\n  text: string = '';\n\n  /**\n   *  @ignore\n   */\n  private _selected: boolean;\n\n  readonly customClass = model<string>('', { alias: 'class' });\n\n  /**\n   * Indicates whether the button item is selected.\n   *\n   * @param v - A boolean indicating the selected state.\n   * Updates the view when the value changes.\n   */\n  @Input()\n  public get selected(): boolean {\n    return this._selected;\n  }\n  public set selected(v: boolean) {\n    this._selected = v;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Whether the item is visually separated from other items.\n   *  @defaultValue false\n   */\n  @Input()\n  divided = false;\n\n  /**\n   * Data associated with the button item.\n   */\n  @Input()\n  data: unknown;\n\n  /**\n   * The name of the button item.\n   */\n  @Input()\n  name: string;\n\n  /**\n   * Emitted when the button item is clicked.\n   * @event\n   * The emitted value is an `AXClickEvent` object containing event details.\n   */\n  @Output()\n  onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n  /**\n   *  @ignore\n   */\n  @HostListener('click', ['$event'])\n  __hostClick(e: MouseEvent) {\n    if (!this.disabled) {\n      this.onClick.emit({\n        component: this,\n        htmlElement: this.getHostElement(),\n        nativeEvent: e,\n      });\n    }\n  }\n  /**\n   *  @ignore\n   */\n  @HostListener('focus', ['$event'])\n  __hostFocus(e: FocusEvent) {\n    this.emitOnFocusEvent(e);\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostListener('blur', ['$event'])\n  __hostBlur(e: FocusEvent) {\n    this.emitOnBlurEvent(e);\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    const cssClasses = {\n      'ax-button-icon': !this.text,\n      'ax-state-disabled': this.disabled,\n      'ax-state-selected': this.selected,\n      'ax-divided': this.divided,\n    };\n    return Object.entries(cssClasses)\n      .filter((c) => c[1])\n      .map((c) => c[0])\n      .join(' ');\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('attr.tabindex') tabindex = '0';\n}\n","import { NgModule } from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\nimport { AXButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n  imports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n  exports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n})\nexport class AXButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAuBA;;;;AAIG;AAWG,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;AAVlE,IAAA,WAAA,GAAA;;QAWW,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK;sFAAC;AAGjC,QAAA,IAAA,CAAA,WAAW,GAAmC,IAAI,YAAY,EAAE;QAExD,IAAA,CAAA,MAAM,GAAqB,SAAS;AAW5C,QAAA,IAAA,CAAA,UAAU,GAAkC,IAAI,YAAY,EAAE;QAEtD,IAAA,CAAA,KAAK,GAAoB,OAAO;QAU/B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAE5D,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE;gBACjC,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,UAAU,EAAE;YACnB;QACF,CAAC;oFAAC;AAEF;;;;AAIG;AAEH,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB;AAEtE;;AAEG;QACK,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,0BAA0B,uFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAE5F;;;;AAIG;AAEH,QAAA,IAAA,CAAA,eAAe,GAAkC,IAAI,YAAY,EAAE;AACnE;;;;AAIG;QACH,IAAA,CAAA,oBAAoB,GAAG,MAAM,EAA8B;AAoI5D,IAAA;AA5LC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;IACA,IAAW,KAAK,CAAC,CAAC,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B;AAMA,IAAA,IACW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;IACA,IAAW,IAAI,CAAC,CAAC,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB;AAIA,IAAA,OAAO;AAuCP;;AAEG;AACH,IAAA,IACW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;;AAIG;IACH,IAAW,SAAS,CAAC,KAAsB,EAAA;QACzC,IAAI,CAAC,SAAS,CAAC;AACb,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACtB,gBAAA,IAAI,KAAK,IAAI,MAAM,EAAE;oBACnB,IAAI,CAAC,cAAc,EAAE;gBACvB;YACF,CAAC;AACF,SAAA,CAAC;IACJ;AAEA;;AAEG;IACK,WAAW,GAAA;QACjB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAAM,KAAI;AACzC,YAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AAC7B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B,gBAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACK,UAAU,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAAM,KAAI;YACzC,IAAI,IAAI,CAAC,WAAW,EAAE;gBAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAE7D,YAAA,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE;AAC/B,gBAAA,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ;YAClC;AACA,YAAA,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;AAC5B,gBAAA,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK;YAC5B;YACA,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;;AAEjC,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,MAAM,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS;AACvF,gBAAA,CAAC,CAAC,KAAK,GAAG,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK;YAChE;YACA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ;AACjD,YAAA,CAAC,CAAC,UAAU,GAAG,KAAK;AACtB,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACgB,qBAAqB,GAAA;QACtC,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA;;AAEG;IACK,iBAAiB,CAAC,CAAe,EAAE,MAAkC,EAAA;AAC3E,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ;QACpC;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;YACrC,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;QACxB;aAAO;AACL,YAAA,MAAM,CAAC,QAAQ,GAAG,KAAK;QACzB;IACF;AAEA;;AAEG;IACK,cAAc,GAAA;QACpB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAA6B,KAAI;AAChE,YAAA,CAAC,CAAC,QAAQ,GAAG,KAAK;AACpB,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,IACY,WAAW,GAAA;AACrB,QAAA,MAAM,UAAU,GAAG;YACjB,mBAAmB,EAAE,IAAI,CAAC,QAAQ;AAClC,YAAA,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE;SAClC;AACD,QAAA,OAAO,UAAU;IACnB;AAEA;;AAEG;AACH,IAAA,IAA8B,IAAI,GAAA;AAChC,QAAA,OAAO,OAAO;IAChB;AAEA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA,CAAC;QACJ;IACF;8GAlMW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAmDhC,0BAA0B,uFCvFtE,gGAGA,EAAA,MAAA,EAAA,CAAA,23CAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDmCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAIZ,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAC7B,CAAC,UAAU,CAAC,EAAA,OAAA,EACX,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAA,SAAA,EACrC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,gGAAA,EAAA,MAAA,EAAA,CAAA,23CAAA,CAAA,EAAA;;sBAKzE;;sBAIA;;sBASA;;sBAIA;;sBAuBA;AAMyC,aAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,0BAA0B,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA;sBAO1F;;sBAiBA;;sBA6FA,WAAW;uBAAC,OAAO;;sBAYnB,WAAW;uBAAC,WAAW;;sBAOvB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEvMnC;;;;AAIG;AAsBG,MAAO,0BAA2B,SAAQ,sBAAsB,CAAA;AArBtE,IAAA,WAAA,GAAA;;AAsBE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAGzC,IAAA,CAAA,KAAK,GAAqB,SAAS;AAEnC;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAW,EAAE;QAOR,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAiB5D;;;AAGG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAcf;;;;AAIG;AAEH,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB;AAgDtE;;AAEG;QAC2B,IAAA,CAAA,QAAQ,GAAG,GAAG;AAC7C,IAAA;AA5FC;;;;;AAKG;AACH,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IACA,IAAW,QAAQ,CAAC,CAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AA6BA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA,CAAC;QACJ;IACF;AACA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1B;AAEA;;AAEG;AAEH,IAAA,UAAU,CAAC,CAAa,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzB;AAEA;;AAEG;AACH,IAAA,IACY,WAAW,GAAA;AACrB,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI;YAC5B,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;aAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACf,IAAI,CAAC,GAAG,CAAC;IACd;8GAzGW,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAF1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBpE;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAKS,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGhB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBArBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;;;;;;;;;;;AAWT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBAErC,MAAM,EAAE,CAAC,UAAU,CAAC;oBACpB,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;oBAC3D,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,0BAA4B,EAAE,CAAC;AAC/E,iBAAA;;sBAIE;;sBAMA;;sBAgBA;;sBAaA;;sBAMA;;sBAMA;;sBAQA;;sBAMA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAahC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAQhC,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;sBAQ/B,WAAW;uBAAC,OAAO;;sBAiBnB,WAAW;uBAAC,eAAe;;;MCxJjB,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,EAAE,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAClD,sBAAsB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAEjD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHI,0BAA0B,CAAA,EAAA,CAAA,CAAA;;2FAGjD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AAC9D,iBAAA;;;ACPD;;AAEG;;;;"}