{"version":3,"file":"toggle.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-animations.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-directives.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle-option.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/toggle/toggle.module.ts"],"sourcesContent":["import {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nconst SBB_TOGGLE_ANIMATION_TRANSITION = '225ms cubic-bezier(0.785, 0.135, 0.15, 0.86)';\n\n/**\n * Animations used by the SBB toggle.\n * @docs-private\n */\nexport const sbbToggleAnimations: {\n  readonly translateHeight: AnimationTriggerMetadata;\n} = {\n  translateHeight: trigger('translateHeight', [\n    state('void', style({ height: 0, paddingTop: 0, paddingBottom: 0 })),\n    state('auto', style({ height: '*', paddingTop: '*', paddingBottom: '*' })),\n    transition('fixed => auto, initial => auto, * => void', [\n      style({ height: '{{currentHeight}}px' }),\n      animate(SBB_TOGGLE_ANIMATION_TRANSITION),\n    ]),\n    transition('void => fixed, void => auto', animate(SBB_TOGGLE_ANIMATION_TRANSITION)),\n    transition('void => initial', animate(0)),\n  ]),\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n  AfterContentInit,\n  afterNextRender,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  inject,\n  Injector,\n  NgZone,\n  OnDestroy,\n  signal,\n  ViewChild,\n  ViewEncapsulation,\n  WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SbbRadioGroup, SBB_RADIO_GROUP } from '@sbb-esta/angular/radio-button';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { sbbToggleAnimations } from './toggle-animations';\nimport { SbbToggleOption } from './toggle-option';\n\n@Component({\n  selector: 'sbb-toggle',\n  templateUrl: './toggle.html',\n  styleUrls: ['./toggle.css'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SbbToggle),\n      multi: true,\n    },\n    { provide: SbbRadioGroup, useExisting: SbbToggle },\n    { provide: SBB_RADIO_GROUP, useExisting: SbbToggle },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-toggle',\n    '[class.sbb-toggle-first-option-selected]': '_radios.first.checked',\n    '[class.sbb-toggle-middle-option-selected]': '!_radios.first.checked && !_radios.last.checked',\n    '[class.sbb-toggle-last-option-selected]': '_radios.last.checked',\n    '[class.sbb-toggle-triple]': '_radios.length === 3',\n    '[class.sbb-toggle-option-has-content]': '!!selected?._details()',\n  },\n  animations: [sbbToggleAnimations.translateHeight],\n  imports: [CdkPortalOutlet],\n})\nexport class SbbToggle\n  extends SbbRadioGroup<SbbToggleOption>\n  implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n  /** The element id for the selected option content. */\n  readonly _contentId = inject(_IdGenerator).getId('sbb-toggle-option-content-');\n\n  private _destroyed = new Subject<void>();\n\n  @ViewChild('toggleOptionContentWrapper') _toggleOptionContentWrapper: ElementRef;\n  _heightAnimationState: 'void' | 'initial' | 'fixed' | 'auto' = 'initial';\n  _currentOptionContentWrapperHeight: WritableSignal<number> = signal(0);\n\n  private _injector = inject(Injector);\n\n  constructor(\n    private _zone: NgZone,\n    changeDetectorRef: ChangeDetectorRef,\n  ) {\n    super(changeDetectorRef);\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n    // The specification states that if no previous selection has been defined\n    // the first option should be selected.\n    afterNextRender(\n      () => {\n        this._zone.run(() => {\n          if (this._radios.toArray().every((r) => this.value !== r.value)) {\n            this._radios.first._onInputChange();\n          }\n        });\n      },\n      { injector: this._injector },\n    );\n\n    this.change.pipe(startWith(null!), takeUntil(this._destroyed)).subscribe(() => {\n      // Animate toggle height by using current height as start height of transition\n      if (this._toggleOptionContentWrapper) {\n        this._currentOptionContentWrapperHeight.set(\n          this._toggleOptionContentWrapper.nativeElement.offsetHeight,\n        );\n        this._heightAnimationState = 'auto';\n      }\n      Promise.resolve().then(() => {\n        this._changeDetector.markForCheck();\n      });\n    });\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  _onHeightAnimationDone(event: AnimationEvent) {\n    if (event.toState === 'auto') {\n      this._heightAnimationState = 'fixed';\n    }\n  }\n}\n","<div class=\"sbb-toggle-label-wrapper\">\n  <ng-content select=\"sbb-toggle-option, ng-container\"></ng-content>\n</div>\n\n<section class=\"sbb-toggle-option-content\" [id]=\"_contentId\">\n  @if (selected?._details()) {\n    <div\n      class=\"sbb-toggle-option-content-wrapper sbb-scrollbar\"\n      #toggleOptionContentWrapper\n      [@translateHeight]=\"{\n        value: _heightAnimationState,\n        params: { currentHeight: _currentOptionContentWrapperHeight() },\n      }\"\n      (@translateHeight.done)=\"_onHeightAnimationDone($event)\"\n    >\n      <ng-template\n        [cdkPortalOutlet]=\"selected?._details() ? selected?._content() : null\"\n      ></ng-template>\n    </div>\n  }\n</section>\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'sbb-toggle-icon',\n})\nexport class SbbToggleIcon {}\n\n@Directive({\n  selector: 'sbb-toggle-label',\n})\nexport class SbbToggleLabel {}\n\n@Directive({\n  selector: 'sbb-toggle-subtitle',\n})\nexport class SbbToggleSubtitle {}\n\n@Directive({\n  selector: 'sbb-toggle-details',\n})\nexport class SbbToggleDetails {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CdkPortal } from '@angular/cdk/portal';\nimport {\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  contentChild,\n  ContentChild,\n  ElementRef,\n  Inject,\n  Input,\n  Signal,\n  viewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport {\n  SbbRadioButton,\n  SBB_RADIO_BUTTON,\n  SBB_RADIO_GROUP,\n  _SbbRadioButtonBase,\n} from '@sbb-esta/angular/radio-button';\n\nimport type { SbbToggle } from './toggle';\nimport {\n  SbbToggleDetails,\n  SbbToggleIcon,\n  SbbToggleLabel,\n  SbbToggleSubtitle,\n} from './toggle-directives';\n\n@Component({\n  selector: 'sbb-toggle-option',\n  templateUrl: './toggle-option.html',\n  inputs: ['tabIndex'],\n  providers: [\n    { provide: SBB_RADIO_BUTTON, useExisting: SbbRadioButton },\n    { provide: SbbRadioButton, useExisting: SbbToggleOption },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-toggle-option',\n    '[class.sbb-toggle-option-selected]': 'checked',\n    '[class.sbb-toggle-option-has-icon]': '_hasIcon()',\n    // Needs to be removed since it causes some a11y issues (see angular/components#21266).\n    '[attr.tabindex]': 'null',\n    '[attr.id]': 'id',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n    // Note: under normal conditions focus shouldn't land on this element, however it may be\n    // programmatically set, for example inside of a focus trap, in this case we want to forward\n    // the focus to the native element.\n    '(focus)': '_inputElement.nativeElement.focus()',\n  },\n  imports: [SbbIcon, CdkPortal],\n})\nexport class SbbToggleOption extends _SbbRadioButtonBase {\n  /** Label of a sbb-toggle-option. */\n  @Input() label?: string;\n  /** Additional information for this option. */\n  @Input() subtitle?: string;\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleLabel) _labelNonStatic: SbbToggleLabel;\n  @ContentChild(SbbToggleLabel, { static: true }) _labelStatic: SbbToggleLabel;\n  get _label() {\n    // TODO: we need this workaround in order to support both Ivy and ViewEngine.\n    // We should clean this up once Ivy is the default renderer.\n    return this._labelNonStatic || this._labelStatic;\n  }\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleSubtitle) _subtitleNonStatic: SbbToggleSubtitle;\n  @ContentChild(SbbToggleSubtitle, { static: true }) _subtitleStatic: SbbToggleSubtitle;\n  get _subtitle() {\n    return this._subtitleNonStatic || this._subtitleStatic;\n  }\n\n  /** The toggle content projection label. */\n  @ContentChild(SbbToggleIcon) _iconNonStatic: SbbToggleIcon;\n  @ContentChild(SbbToggleIcon, { static: true }) _iconStatic: SbbToggleIcon;\n  get _icon() {\n    return this._iconNonStatic || this._iconStatic;\n  }\n\n  /**\n   * The indicator icon, which will be shown on the left-hand side of the toggle option.\n   * Must be a valid svgIcon input for sbb-icon.\n   *\n   * e.g. svgIcon=\"plus-small\"\n   */\n  @Input() svgIcon: string;\n\n  /** The toggle content projection label. */\n  _details: Signal<SbbToggleDetails | undefined> = contentChild(SbbToggleDetails);\n  _content: Signal<CdkPortal | undefined> = viewChild(CdkPortal);\n\n  constructor(\n    @Inject(SBB_RADIO_GROUP) readonly toggle: SbbToggle,\n    elementRef: ElementRef,\n    changeDetector: ChangeDetectorRef,\n    focusMonitor: FocusMonitor,\n    radioDispatcher: UniqueSelectionDispatcher,\n    @Attribute('tabindex') tabIndex?: string,\n  ) {\n    super(toggle, elementRef, changeDetector, focusMonitor, radioDispatcher, tabIndex);\n  }\n\n  /** Whether this toggle option has an icon. */\n  _hasIcon() {\n    return !!(this._icon || this.svgIcon);\n  }\n}\n","<label [attr.for]=\"inputId\" class=\"sbb-toggle-option-button\">\n  <input\n    #input\n    type=\"radio\"\n    class=\"cdk-visually-hidden sbb-transparent-parent-overlay\"\n    [id]=\"inputId\"\n    [checked]=\"checked\"\n    [disabled]=\"disabled\"\n    [tabIndex]=\"tabIndex\"\n    [attr.name]=\"name\"\n    [attr.value]=\"value\"\n    [required]=\"required\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [attr.aria-controls]=\"checked && _details() ? toggle._contentId : null\"\n    (change)=\"_onInputChange($event)\"\n    (click)=\"_onInputClick($event)\"\n  />\n  <span class=\"sbb-toggle-option-button-label-wrapper\">\n    @if (_hasIcon()) {\n      <span role=\"presentation\" class=\"sbb-toggle-option-button-icon sbb-icon-scaled\">\n        @switch (!!_icon) {\n          @case (true) {\n            <ng-content select=\"sbb-toggle-icon\"></ng-content>\n          }\n          @default {\n            <span>\n              <sbb-icon [svgIcon]=\"svgIcon\"></sbb-icon>\n            </span>\n          }\n        }\n      </span>\n    }\n    <span class=\"sbb-toggle-option-button-label\">\n      @switch (!!_label) {\n        @case (true) {\n          <ng-content select=\"sbb-toggle-label\"></ng-content>\n        }\n        @default {\n          <ng-container>{{ label }}</ng-container>\n        }\n      }\n    </span>\n    @if (subtitle || _subtitle) {\n      <span class=\"sbb-toggle-option-button-subtitle\">\n        <span class=\"cdk-visually-hidden\">&nbsp;</span>\n        @switch (!!_subtitle) {\n          @case (true) {\n            <ng-content select=\"sbb-toggle-subtitle\"></ng-content>\n          }\n          @default {\n            {{ subtitle }}\n          }\n        }\n      </span>\n    }\n  </span>\n</label>\n\n<ng-template cdkPortal>\n  <ng-content select=\"sbb-toggle-details\"></ng-content>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbToggle } from './toggle';\nimport {\n  SbbToggleDetails,\n  SbbToggleIcon,\n  SbbToggleLabel,\n  SbbToggleSubtitle,\n} from './toggle-directives';\nimport { SbbToggleOption } from './toggle-option';\n\n@NgModule({\n  imports: [\n    PortalModule,\n    SbbCommonModule,\n    SbbIconModule,\n    SbbToggle,\n    SbbToggleOption,\n    SbbToggleIcon,\n    SbbToggleLabel,\n    SbbToggleSubtitle,\n    SbbToggleDetails,\n  ],\n  exports: [\n    SbbToggle,\n    SbbToggleOption,\n    SbbToggleIcon,\n    SbbToggleLabel,\n    SbbToggleSubtitle,\n    SbbToggleDetails,\n  ],\n})\nexport class SbbToggleModule {}\n"],"names":["SBB_TOGGLE_ANIMATION_TRANSITION","sbbToggleAnimations","translateHeight","trigger","state","style","height","paddingTop","paddingBottom","transition","animate","SbbToggle","SbbRadioGroup","_zone","_contentId","inject","_IdGenerator","getId","_destroyed","Subject","_toggleOptionContentWrapper","_heightAnimationState","_currentOptionContentWrapperHeight","signal","_injector","Injector","constructor","changeDetectorRef","ngAfterContentInit","afterNextRender","run","_radios","toArray","every","r","value","first","_onInputChange","injector","change","pipe","startWith","takeUntil","subscribe","set","nativeElement","offsetHeight","Promise","resolve","then","_changeDetector","markForCheck","ngOnDestroy","next","complete","_onHeightAnimationDone","event","toState","deps","token","i0","NgZone","ChangeDetectorRef","target","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isStandalone","selector","host","properties","classAttribute","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","SBB_RADIO_GROUP","viewQueries","propertyName","predicate","descendants","usesInheritance","ngImport","template","CdkPortalOutlet","inputs","outputs","exportAs","animations","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","args","class","imports","styles","ViewChild","SbbToggleIcon","Directive","SbbToggleLabel","SbbToggleSubtitle","SbbToggleDetails","SbbToggleOption","_SbbRadioButtonBase","toggle","label","subtitle","_labelNonStatic","_labelStatic","_label","_subtitleNonStatic","_subtitleStatic","_subtitle","_iconNonStatic","_iconStatic","_icon","svgIcon","_details","contentChild","_content","viewChild","CdkPortal","elementRef","changeDetector","focusMonitor","radioDispatcher","tabIndex","_hasIcon","ElementRef","i1","FocusMonitor","i2","UniqueSelectionDispatcher","attribute","listeners","SBB_RADIO_BUTTON","SbbRadioButton","queries","static","isSignal","dependencies","kind","SbbIcon","Inject","Attribute","Input","ContentChild","SbbToggleModule","NgModule","ɵmod","ɵɵngDeclareNgModule","PortalModule","SbbCommonModule","SbbIconModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":";;;;;;;;;;;;;;AASA,MAAMA,+BAA+B,GAAG,8CAA8C;AAM/E,MAAMC,mBAAmB,GAE5B;EACFC,eAAe,EAAEC,OAAO,CAAC,iBAAiB,EAAE,CAC1CC,KAAK,CAAC,MAAM,EAAEC,KAAK,CAAC;AAAEC,IAAAA,MAAM,EAAE,CAAC;AAAEC,IAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,aAAa,EAAE;GAAG,CAAC,CAAC,EACpEJ,KAAK,CAAC,MAAM,EAAEC,KAAK,CAAC;AAAEC,IAAAA,MAAM,EAAE,GAAG;AAAEC,IAAAA,UAAU,EAAE,GAAG;AAAEC,IAAAA,aAAa,EAAE;GAAK,CAAC,CAAC,EAC1EC,UAAU,CAAC,2CAA2C,EAAE,CACtDJ,KAAK,CAAC;AAAEC,IAAAA,MAAM,EAAE;GAAuB,CAAC,EACxCI,OAAO,CAACV,+BAA+B,CAAC,CACzC,CAAC,EACFS,UAAU,CAAC,6BAA6B,EAAEC,OAAO,CAACV,+BAA+B,CAAC,CAAC,EACnFS,UAAU,CAAC,iBAAiB,EAAEC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC1C;;;AC2BG,MAAOC,SACX,SAAQC,aAA8B,CAAA;EAe5BC,KAAA;EAXDC,UAAU,GAAGC,MAAM,CAACC,YAAY,CAAC,CAACC,KAAK,CAAC,4BAA4B,CAAC;AAEtEC,EAAAA,UAAU,GAAG,IAAIC,OAAO,EAAQ;EAECC,2BAA2B;AACpEC,EAAAA,qBAAqB,GAA0C,SAAS;EACxEC,kCAAkC,GAA2BC,MAAM,CAAC,CAAC;;WAAC;AAE9DC,EAAAA,SAAS,GAAGT,MAAM,CAACU,QAAQ,CAAC;AAEpCC,EAAAA,WACUA,CAAAb,KAAa,EACrBc,iBAAoC,EAAA;IAEpC,KAAK,CAACA,iBAAiB,CAAC;IAHhB,IAAK,CAAAd,KAAA,GAALA,KAAK;AAIf;AAESe,EAAAA,kBAAkBA,GAAA;IACzB,KAAK,CAACA,kBAAkB,EAAE;AAG1BC,IAAAA,eAAe,CACb,MAAK;AACH,MAAA,IAAI,CAAChB,KAAK,CAACiB,GAAG,CAAC,MAAK;QAClB,IAAI,IAAI,CAACC,OAAO,CAACC,OAAO,EAAE,CAACC,KAAK,CAAEC,CAAC,IAAK,IAAI,CAACC,KAAK,KAAKD,CAAC,CAACC,KAAK,CAAC,EAAE;AAC/D,UAAA,IAAI,CAACJ,OAAO,CAACK,KAAK,CAACC,cAAc,EAAE;AACrC;AACF,OAAC,CAAC;AACJ,KAAC,EACD;MAAEC,QAAQ,EAAE,IAAI,CAACd;AAAW,KAAA,CAC7B;IAED,IAAI,CAACe,MAAM,CAACC,IAAI,CAACC,SAAS,CAAC,IAAK,CAAC,EAAEC,SAAS,CAAC,IAAI,CAACxB,UAAU,CAAC,CAAC,CAACyB,SAAS,CAAC,MAAK;MAE5E,IAAI,IAAI,CAACvB,2BAA2B,EAAE;AACpC,QAAA,IAAI,CAACE,kCAAkC,CAACsB,GAAG,CACzC,IAAI,CAACxB,2BAA2B,CAACyB,aAAa,CAACC,YAAY,CAC5D;QACD,IAAI,CAACzB,qBAAqB,GAAG,MAAM;AACrC;AACA0B,MAAAA,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAAK;AAC1B,QAAA,IAAI,CAACC,eAAe,CAACC,YAAY,EAAE;AACrC,OAAC,CAAC;AACJ,KAAC,CAAC;AACJ;AAESC,EAAAA,WAAWA,GAAA;IAClB,KAAK,CAACA,WAAW,EAAE;AACnB,IAAA,IAAI,CAAClC,UAAU,CAACmC,IAAI,EAAE;AACtB,IAAA,IAAI,CAACnC,UAAU,CAACoC,QAAQ,EAAE;AAC5B;EAEAC,sBAAsBA,CAACC,KAAqB,EAAA;AAC1C,IAAA,IAAIA,KAAK,CAACC,OAAO,KAAK,MAAM,EAAE;MAC5B,IAAI,CAACpC,qBAAqB,GAAG,OAAO;AACtC;AACF;;;;;UA7DWV,SAAS;AAAA+C,IAAAA,IAAA,EAAA,CAAA;MAAAC,KAAA,EAAAC,EAAA,CAAAC;AAAA,KAAA,EAAA;MAAAF,KAAA,EAAAC,EAAA,CAAAE;AAAA,KAAA,CAAA;AAAAC,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAT,EAAA,OAAAC,IAAA,GAAAN,EAAA,CAAAO,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAA3D,SAAS;AAtBT4D,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,YAAA;AAAAC,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,wCAAA,EAAA,uBAAA;AAAA,QAAA,yCAAA,EAAA,iDAAA;AAAA,QAAA,uCAAA,EAAA,sBAAA;AAAA,QAAA,yBAAA,EAAA,sBAAA;AAAA,QAAA,qCAAA,EAAA;OAAA;AAAAC,MAAAA,cAAA,EAAA;KAAA;AAAAC,IAAAA,SAAA,EAAA,CACT;AACEC,MAAAA,OAAO,EAAEC,iBAAiB;AAC1BC,MAAAA,WAAW,EAAEC,UAAU,CAAC,MAAMrE,SAAS,CAAC;AACxCsE,MAAAA,KAAK,EAAE;AACR,KAAA,EACD;AAAEJ,MAAAA,OAAO,EAAEjE,aAAa;AAAEmE,MAAAA,WAAW,EAAEpE;AAAW,KAAA,EAClD;AAAEkE,MAAAA,OAAO,EAAEK,eAAe;AAAEH,MAAAA,WAAW,EAAEpE;AAAW,KAAA,CACrD;ACxCHwE,IAAAA,WAAA,EAAA,CAAA;AAAAC,MAAAA,YAAA,EAAA,6BAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;MAAAiD,SAAA,EAAA,CAAA,4BAAA,CAAA;AAAAC,MAAAA,WAAA,EAAA;AAAA,KAAA,CAAA;AAAAC,IAAAA,eAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA5B,EAAA;AAAA6B,IAAAA,QAAA,EAAA,4sBAqBA;;;;YD+BYC,eAAe;AAAAlB,MAAAA,QAAA,EAAA,mBAAA;MAAAmB,MAAA,EAAA,CAAA,iBAAA,CAAA;MAAAC,OAAA,EAAA,CAAA,UAAA,CAAA;MAAAC,QAAA,EAAA,CAAA,iBAAA;AAAA,KAAA,CAAA;AAAAC,IAAAA,UAAA,EADb,CAAC7F,mBAAmB,CAACC,eAAe,CAAC;AAAA6F,IAAAA,eAAA,EAAAnC,EAAA,CAAAoC,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAAtC,EAAA,CAAAuC,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAGtCzF,SAAS;AAAA0F,EAAAA,UAAA,EAAA,CAAA;UA1BrBpC,SAAS;AACEqC,IAAAA,IAAA,EAAA,CAAA;AAAA9B,MAAAA,QAAA,EAAA,YAAY;AAGXI,MAAAA,SAAA,EAAA,CACT;AACEC,QAAAA,OAAO,EAAEC,iBAAiB;AAC1BC,QAAAA,WAAW,EAAEC,UAAU,CAAC,eAAe,CAAC;AACxCC,QAAAA,KAAK,EAAE;AACR,OAAA,EACD;AAAEJ,QAAAA,OAAO,EAAEjE,aAAa;AAAEmE,QAAAA,WAAW;AAAa,OAAA,EAClD;AAAEF,QAAAA,OAAO,EAAEK,eAAe;AAAEH,QAAAA,WAAW;AAAa,OAAA,CACrD;MAAAgB,eAAA,EACgBC,uBAAuB,CAACC,MAAM;qBAChCE,iBAAiB,CAACC,IAAI;AAC/B3B,MAAAA,IAAA,EAAA;AACJ8B,QAAAA,KAAK,EAAE,YAAY;AACnB,QAAA,0CAA0C,EAAE,uBAAuB;AACnE,QAAA,2CAA2C,EAAE,iDAAiD;AAC9F,QAAA,yCAAyC,EAAE,sBAAsB;AACjE,QAAA,2BAA2B,EAAE,sBAAsB;AACnD,QAAA,uCAAuC,EAAE;OAC1C;AACWT,MAAAA,UAAA,EAAA,CAAC7F,mBAAmB,CAACC,eAAe,CAAC;MACxCsG,OAAA,EAAA,CAACd,eAAe,CAAC;AAAAD,MAAAA,QAAA,EAAA,4sBAAA;MAAAgB,MAAA,EAAA,CAAA,qsJAAA;KAAA;;;;;;;;;YAWzBC,SAAS;aAAC,4BAA4B;;;;;ME1D5BC,aAAa,CAAA;;;;;UAAbA,aAAa;AAAAjD,IAAAA,IAAA,EAAA,EAAA;AAAAK,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAA4C;AAAA,GAAA,CAAA;;;;UAAbD,aAAa;AAAApC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,iBAAA;AAAAgB,IAAAA,QAAA,EAAA5B;AAAA,GAAA,CAAA;;;;;;QAAb+C,aAAa;AAAAN,EAAAA,UAAA,EAAA,CAAA;UAHzBO,SAAS;AAACN,IAAAA,IAAA,EAAA,CAAA;AACT9B,MAAAA,QAAQ,EAAE;KACX;;;MAMYqC,cAAc,CAAA;;;;;UAAdA,cAAc;AAAAnD,IAAAA,IAAA,EAAA,EAAA;AAAAK,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAA4C;AAAA,GAAA,CAAA;;;;UAAdC,cAAc;AAAAtC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,kBAAA;AAAAgB,IAAAA,QAAA,EAAA5B;AAAA,GAAA,CAAA;;;;;;QAAdiD,cAAc;AAAAR,EAAAA,UAAA,EAAA,CAAA;UAH1BO,SAAS;AAACN,IAAAA,IAAA,EAAA,CAAA;AACT9B,MAAAA,QAAQ,EAAE;KACX;;;MAMYsC,iBAAiB,CAAA;;;;;UAAjBA,iBAAiB;AAAApD,IAAAA,IAAA,EAAA,EAAA;AAAAK,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAA4C;AAAA,GAAA,CAAA;;;;UAAjBE,iBAAiB;AAAAvC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,qBAAA;AAAAgB,IAAAA,QAAA,EAAA5B;AAAA,GAAA,CAAA;;;;;;QAAjBkD,iBAAiB;AAAAT,EAAAA,UAAA,EAAA,CAAA;UAH7BO,SAAS;AAACN,IAAAA,IAAA,EAAA,CAAA;AACT9B,MAAAA,QAAQ,EAAE;KACX;;;MAMYuC,gBAAgB,CAAA;;;;;UAAhBA,gBAAgB;AAAArD,IAAAA,IAAA,EAAA,EAAA;AAAAK,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAA4C;AAAA,GAAA,CAAA;;;;UAAhBG,gBAAgB;AAAAxC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,oBAAA;AAAAgB,IAAAA,QAAA,EAAA5B;AAAA,GAAA,CAAA;;;;;;QAAhBmD,gBAAgB;AAAAV,EAAAA,UAAA,EAAA,CAAA;UAH5BO,SAAS;AAACN,IAAAA,IAAA,EAAA,CAAA;AACT9B,MAAAA,QAAQ,EAAE;KACX;;;;ACyCK,MAAOwC,eAAgB,SAAQC,mBAAmB,CAAA;EA0ClBC,MAAA;EAxC3BC,KAAK;EAELC,QAAQ;EAGaC,eAAe;EACGC,YAAY;EAC5D,IAAIC,MAAMA,GAAA;AAGR,IAAA,OAAO,IAAI,CAACF,eAAe,IAAI,IAAI,CAACC,YAAY;AAClD;EAGiCE,kBAAkB;EACAC,eAAe;EAClE,IAAIC,SAASA,GAAA;AACX,IAAA,OAAO,IAAI,CAACF,kBAAkB,IAAI,IAAI,CAACC,eAAe;AACxD;EAG6BE,cAAc;EACIC,WAAW;EAC1D,IAAIC,KAAKA,GAAA;AACP,IAAA,OAAO,IAAI,CAACF,cAAc,IAAI,IAAI,CAACC,WAAW;AAChD;EAQSE,OAAO;EAGhBC,QAAQ,GAAyCC,YAAY,CAACjB,gBAAgB;;WAAC;EAC/EkB,QAAQ,GAAkCC,SAAS,CAACC,SAAS;;WAAC;AAE9DzG,EAAAA,WACoCA,CAAAwF,MAAiB,EACnDkB,UAAsB,EACtBC,cAAiC,EACjCC,YAA0B,EAC1BC,eAA0C,EACnBC,QAAiB,EAAA;AAExC,IAAA,KAAK,CAACtB,MAAM,EAAEkB,UAAU,EAAEC,cAAc,EAAEC,YAAY,EAAEC,eAAe,EAAEC,QAAQ,CAAC;IAPhD,IAAM,CAAAtB,MAAA,GAANA,MAAM;AAQ1C;AAGAuB,EAAAA,QAAQA,GAAA;IACN,OAAO,CAAC,EAAE,IAAI,CAACZ,KAAK,IAAI,IAAI,CAACC,OAAO,CAAC;AACvC;;;;;UAvDWd,eAAe;AAAAtD,IAAAA,IAAA,EAAA,CAAA;AAAAC,MAAAA,KAAA,EA0ChBuB;AAAe,KAAA,EAAA;MAAAvB,KAAA,EAAAC,EAAA,CAAA8E;AAAA,KAAA,EAAA;MAAA/E,KAAA,EAAAC,EAAA,CAAAE;AAAA,KAAA,EAAA;MAAAH,KAAA,EAAAgF,EAAA,CAAAC;AAAA,KAAA,EAAA;MAAAjF,KAAA,EAAAkF,EAAA,CAAAC;AAAA,KAAA,EAAA;AAAAnF,MAAAA,KAAA,EAKZ,UAAU;AAAAoF,MAAAA,SAAA,EAAA;AAAA,KAAA,CAAA;AAAAhF,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAAC;AAAA,GAAA,CAAA;AA/CZ,EAAA,OAAAC,IAAA,GAAAN,EAAA,CAAAO,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAA0C,eAAe;AAvBfzC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,mBAAA;AAAAmB,IAAAA,MAAA,EAAA;AAAA6C,MAAAA,QAAA,EAAA,UAAA;AAAArB,MAAAA,KAAA,EAAA,OAAA;AAAAC,MAAAA,QAAA,EAAA,UAAA;AAAAU,MAAAA,OAAA,EAAA;KAAA;AAAArD,IAAAA,IAAA,EAAA;AAAAuE,MAAAA,SAAA,EAAA;AAAA,QAAA,OAAA,EAAA;OAAA;AAAAtE,MAAAA,UAAA,EAAA;AAAA,QAAA,kCAAA,EAAA,SAAA;AAAA,QAAA,kCAAA,EAAA,YAAA;AAAA,QAAA,eAAA,EAAA,MAAA;AAAA,QAAA,SAAA,EAAA,IAAA;AAAA,QAAA,iBAAA,EAAA,MAAA;AAAA,QAAA,sBAAA,EAAA,MAAA;AAAA,QAAA,uBAAA,EAAA;OAAA;AAAAC,MAAAA,cAAA,EAAA;KAAA;AAAAC,IAAAA,SAAA,EAAA,CACT;AAAEC,MAAAA,OAAO,EAAEoE,gBAAgB;AAAElE,MAAAA,WAAW,EAAEmE;AAAgB,KAAA,EAC1D;AAAErE,MAAAA,OAAO,EAAEqE,cAAc;AAAEnE,MAAAA,WAAW,EAAEiC;AAAiB,KAAA,CAC1D;AA0D6DmC,IAAAA,OAAA,EAAA,CAAA;AAAA/D,MAAAA,YAAA,EAAA,UAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;AAAAiD,MAAAA,SAAA,EAAA0B,gBAAgB;;;;;;iBA/BhEF,cAAc;AAAAvB,MAAAA,WAAA,EAAA;AAAA,KAAA,EAAA;AAAAF,MAAAA,YAAA,EAAA,cAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;AAAAiD,MAAAA,SAAA,EACdwB,cAAc;AAQdvB,MAAAA,WAAA,EAAA,IAAA;AAAA8D,MAAAA,MAAA,EAAA;AAAA,KAAA,EAAA;AAAAhE,MAAAA,YAAA,EAAA,oBAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;AAAAiD,MAAAA,SAAA,EAAAyB,iBAAiB;;;;;iBACjBA,iBAAiB;AAAAxB,MAAAA,WAAA,EAAA,IAAA;AAAA8D,MAAAA,MAAA,EAAA;AAAA,KAAA,EAAA;AAAAhE,MAAAA,YAAA,EAAA,gBAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;AAAAiD,MAAAA,SAAA,EAMjBsB,aAAa;AACbrB,MAAAA,WAAA,EAAA;AAAA,KAAA,EAAA;AAAAF,MAAAA,YAAA,EAAA,aAAA;AAAAhD,MAAAA,KAAA,EAAA,IAAA;AAAAiD,MAAAA,SAAA,EAAAsB,aAAa;;;;;;;iBAeyBwB,SAAS;AAAA7C,MAAAA,WAAA,EAAA,IAAA;AAAA+D,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;AAAA9D,IAAAA,eAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA5B,EAAA;AAAA6B,IAAAA,QAAA,ECnG/D,q5DA+DA;ADLY6D,IAAAA,YAAA,EAAA,CAAA;AAAAC,MAAAA,IAAA,EAAA,WAAA;AAAAjF,MAAAA,IAAA,EAAAkF,OAAO;;;;;;YAAErB,SAAS;AAAA3D,MAAAA,QAAA,EAAA,aAAA;MAAAqB,QAAA,EAAA,CAAA,WAAA;AAAA,KAAA,CAAA;AAAAE,IAAAA,eAAA,EAAAnC,EAAA,CAAAoC,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAAtC,EAAA,CAAAuC,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAEjBY,eAAe;AAAAX,EAAAA,UAAA,EAAA,CAAA;UA3B3BpC,SAAS;AACEqC,IAAAA,IAAA,EAAA,CAAA;AAAA9B,MAAAA,QAAA,EAAA,mBAAmB;MAErBmB,MAAA,EAAA,CAAC,UAAU,CAAC;AACTf,MAAAA,SAAA,EAAA,CACT;AAAEC,QAAAA,OAAO,EAAEoE,gBAAgB;AAAElE,QAAAA,WAAW,EAAEmE;AAAgB,OAAA,EAC1D;AAAErE,QAAAA,OAAO,EAAEqE,cAAc;AAAEnE,QAAAA,WAAW;AAAmB,OAAA,CAC1D;MAAAgB,eAAA,EACgBC,uBAAuB,CAACC,MAAM;qBAChCE,iBAAiB,CAACC,IAAI;AAC/B3B,MAAAA,IAAA,EAAA;AACJ8B,QAAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,oCAAoC,EAAE,SAAS;AAC/C,QAAA,oCAAoC,EAAE,YAAY;AAElD,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,mBAAmB,EAAE,MAAM;AAC3B,QAAA,wBAAwB,EAAE,MAAM;AAChC,QAAA,yBAAyB,EAAE,MAAM;AAIjC,QAAA,SAAS,EAAE;OACZ;AAAAC,MAAAA,OAAA,EACQ,CAACgD,OAAO,EAAErB,SAAS,CAAC;AAAA1C,MAAAA,QAAA,EAAA;KAAA;;;;;YA4C1BgE,MAAM;aAACvE,eAAe;;;;;;;;;;;;;YAKtBwE,SAAS;aAAC,UAAU;;;;;YA7CtBC;;;YAEAA;;;YAGAC,YAAY;aAAC/C,cAAc;;;YAC3B+C,YAAY;MAACtD,IAAA,EAAA,CAAAO,cAAc,EAAE;AAAEuC,QAAAA,MAAM,EAAE;OAAM;;;YAQ7CQ,YAAY;aAAC9C,iBAAiB;;;YAC9B8C,YAAY;MAACtD,IAAA,EAAA,CAAAQ,iBAAiB,EAAE;AAAEsC,QAAAA,MAAM,EAAE;OAAM;;;YAMhDQ,YAAY;aAACjD,aAAa;;;YAC1BiD,YAAY;MAACtD,IAAA,EAAA,CAAAK,aAAa,EAAE;AAAEyC,QAAAA,MAAM,EAAE;OAAM;;;YAW5CO;AAG6D,KAAA,CAAA;AAAA5B,IAAAA,QAAA,EAAA,CAAA;MAAAzD,IAAA,EAAAV,EAAA,CAAAgG,YAAA;MAAAtD,IAAA,EAAA,CAAA1C,EAAA,CAAAoB,UAAA,CAAA,MAAA+B,gBAAgB;;;;;;iCAC1BoB,SAAS,CAAA,EAAA;AAAAkB,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;MEhElDQ,eAAe,CAAA;;;;;UAAfA,eAAe;AAAAnG,IAAAA,IAAA,EAAA,EAAA;AAAAK,IAAAA,MAAA,EAAAH,EAAA,CAAAI,eAAA,CAAA8F;AAAA,GAAA,CAAA;AAAf,EAAA,OAAAC,IAAA,GAAAnG,EAAA,CAAAoG,mBAAA,CAAA;AAAA5F,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAmB,IAAAA,QAAA,EAAA5B,EAAA;AAAAU,IAAAA,IAAA,EAAAuF,eAAe;cAnBxBI,YAAY,EACZC,eAAe,EACfC,aAAa,EACbxJ,SAAS,EACTqG,eAAe,EACfL,aAAa,EACbE,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB;cAGhBpG,SAAS,EACTqG,eAAe,EACfL,aAAa,EACbE,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB;AAAA,GAAA,CAAA;AAGP,EAAA,OAAAqD,IAAA,GAAAxG,EAAA,CAAAyG,mBAAA,CAAA;AAAAjG,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAmB,IAAAA,QAAA,EAAA5B,EAAA;AAAAU,IAAAA,IAAA,EAAAuF,eAAe;cAnBxBI,YAAY,EACZC,eAAe,EACfC,aAAa,EAEbnD,eAAe;AAAA,GAAA,CAAA;;;;;;QAeN6C,eAAe;AAAAxD,EAAAA,UAAA,EAAA,CAAA;UArB3ByD,QAAQ;AAACxD,IAAAA,IAAA,EAAA,CAAA;AACRE,MAAAA,OAAO,EAAE,CACPyD,YAAY,EACZC,eAAe,EACfC,aAAa,EACbxJ,SAAS,EACTqG,eAAe,EACfL,aAAa,EACbE,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,CACjB;AACDuD,MAAAA,OAAO,EAAE,CACP3J,SAAS,EACTqG,eAAe,EACfL,aAAa,EACbE,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB;KAEnB;;;;;;"}