{"version":3,"file":"usitsdasdesign-dds-ng-slider-tick.mjs","sources":["../../src/app/dds/slider-tick/slider-tick/constants.ts","../../src/app/dds/slider-tick/slider-tick/slider-tick.component.ts","../../src/app/dds/slider-tick/slider-tick/slider-tick.component.html","../../src/app/dds/slider-tick/slider-tick.module.ts","../../src/app/dds/slider-tick/usitsdasdesign-dds-ng-slider-tick.ts"],"sourcesContent":["export const INIT_VALUE = 0;\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  NgZone,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport {\n  DestroyCtor,\n  DestroyMixin,\n  FormAccessorCtor,\n  FormAccessorMixin,\n  valueAccessor,\n} from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { AdditionalClass } from '@usitsdasdesign/dds-ng/shared';\nimport { SliderControl } from '@usitsdasdesign/dds-ng/slider';\nimport { Observable, fromEvent } from 'rxjs';\nimport { switchMap, takeUntil, tap, throttleTime } from 'rxjs/operators';\nimport { INIT_VALUE } from './constants';\n\nconst SliderTickBase: DestroyCtor & FormAccessorCtor = DestroyMixin(FormAccessorMixin());\n\n@Component({\n  selector: 'dds-slider-tick',\n  templateUrl: './slider-tick.component.html',\n  providers: [valueAccessor(SliderTickComponent as Component)],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule],\n})\nexport class SliderTickComponent extends SliderTickBase implements AfterViewInit {\n  // Bind the disabled class to the component based on the disabled input property\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // Input property for legends array\n  @Input()\n  get legends(): string[] | undefined {\n    return this._legends;\n  }\n  set legends(legendsArr: string[] | undefined) {\n    this._legends = legendsArr;\n    this.max = legendsArr.length; // Update the max value based on the length of legends array\n  }\n\n  // Input property for value\n  @Input()\n  set value(value: string | undefined) {\n    if (this.legends.length) {\n      this.controlOptions.value = this.legends.indexOf(value); // Set the control value based on the index of the value in legends array\n    }\n\n    if (!this.firstCheck) {\n      this.checkValue(); // Check the value if it's not the first check\n    }\n  }\n\n  // Event emitter for value changes\n  @Output() valueChanged: EventEmitter<number | string> = new EventEmitter();\n\n  // ViewChild references to access DOM elements\n  @ViewChild('wrap') wrap: ElementRef<HTMLElement>;\n  @ViewChild('control') control: ElementRef<HTMLElement>;\n  @ViewChild('activeLine') activeLine: ElementRef<HTMLElement>;\n  @ViewChild('legendsWrap') legendsWrap: ElementRef<HTMLElement>;\n\n  // Properties to store element dimensions and positions\n  private wrapStartPosition: number;\n  private wrapWidth: number;\n  private controlWidth: number;\n  private partWidth: number;\n  private legendWidth: number;\n  private controlHalfWidth: number;\n\n  // Minimum and maximum values for the slider\n  public min = INIT_VALUE;\n  public max = INIT_VALUE;\n\n  // Flag to check if it's the first value check\n  private firstCheck = true;\n\n  // Legends array to store the slider legends\n  public _legends: string[] = [];\n\n  // Control options for the slider\n  public controlOptions: SliderControl = {};\n\n  // Check if the current index is active\n  isActive(index: number) {\n    return this.controlOptions.value === index;\n  }\n\n  constructor(public cdr: ChangeDetectorRef, private ngZone: NgZone) {\n    super();\n  }\n\n  // Lifecycle hook that is called after the component's view has been fully initialized\n  public ngAfterViewInit(): void {\n    this.checkElementsProps();\n    this.checkValue();\n    this.dragging();\n    this.firstCheck = false;\n  }\n\n  // Write a new value to the component\n  public writeValue(value: string): void {\n    this.value = value;\n  }\n\n  // Set the disabled state of the component\n  public setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n  }\n\n  // Change the value of the slider\n  public changeValue(id: number): void {\n    this.controlOptions.value = id;\n    this.checkValue();\n  }\n\n  // Handle dragging of the slider control\n  private dragging(): void {\n    const down$: Observable<Event> = fromEvent(this.control.nativeElement, 'mousedown');\n    const up$: Observable<Event> = fromEvent(document, 'mouseup');\n    const move$: Observable<Event> = fromEvent(document, 'mousemove').pipe(\n      throttleTime(10),\n      tap((e: MouseEvent) => {\n        this.ngZone.run(() => this.onMouseMove(e));\n      })\n    );\n\n    this.ngZone.runOutsideAngular(() => {\n      down$\n        .pipe(\n          tap((e: Event) => {\n            e.preventDefault();\n          }),\n          takeUntil(this.destroy),\n          switchMap((_) => move$.pipe(takeUntil(up$)))\n        )\n        .subscribe();\n    });\n  }\n\n  // Handle mouse move event\n  private onMouseMove = (event: MouseEvent): void => {\n    this.checkElementsProps();\n\n    const currentPos = event.clientX - this.wrapStartPosition;\n    this.checkPosition(currentPos);\n  };\n\n  // Check the current value and update the slider position\n  private checkValue(): void {\n    this.checkElementsProps();\n\n    const currentPos = ((this.wrapWidth + this.partWidth) * <number>this.controlOptions.value) / this.max;\n    this.checkPosition(currentPos);\n  }\n\n  // Check the current position of the slider control\n  private checkPosition(currentPos: number): void {\n    if (currentPos <= this.legendWidth / 2 + this.controlHalfWidth) {\n      this.controlOptions.currentPos = this.controlHalfWidth;\n      this.controlOptions.controlPos = this.controlOptions.currentPos - this.controlHalfWidth;\n      this.control.nativeElement.style.left = `${this.controlOptions.controlPos}px`;\n      this.controlOptions.value = this.min;\n    } else if (currentPos >= this.wrapWidth - this.legendWidth / 2 - this.controlHalfWidth) {\n      this.controlOptions.currentPos = this.wrapWidth - this.controlHalfWidth;\n      this.controlOptions.controlPos = this.controlOptions.currentPos - this.controlHalfWidth;\n      this.control.nativeElement.style.left = `${this.controlOptions.controlPos}px`;\n      this.controlOptions.value = this.max - 1;\n    } else {\n      this.controlOptions.currentPos = currentPos;\n      this.controlOptions.controlPos = this.controlOptions.currentPos - this.controlHalfWidth;\n      this.controlOptions.value = Math.round((this.controlOptions.currentPos - this.controlHalfWidth) / this.legendWidth);\n      this.control.nativeElement.style.left = `${Math.floor(this.controlOptions.value * this.legendWidth)}px`;\n    }\n\n    this.checkActiveLinePos();\n    if (!this.firstCheck) {\n      const value = this.legends[this.controlOptions.value];\n\n      this.valueChanged.emit(value);\n      this.onModelChange(value);\n      this.onModelTouched();\n    }\n  }\n\n  // Update the position of the active line\n  private checkActiveLinePos(): void {\n    this.activeLine.nativeElement.style.width = `${Math.floor(<number>this.controlOptions.value * this.legendWidth)}px`;\n  }\n\n  // Check the properties of the elements\n  private checkElementsProps() {\n    this.cdr.detectChanges();\n    this.wrapStartPosition = this.wrap.nativeElement.getBoundingClientRect().left;\n    this.controlWidth = this.control.nativeElement.getBoundingClientRect().width;\n    this.controlHalfWidth = this.controlWidth / 2;\n    this.wrapWidth = this.wrap.nativeElement.getBoundingClientRect().width;\n    this.partWidth = this.wrapWidth / this.max;\n    this.legendWidth = (this.wrapWidth + this.partWidth) / this.max;\n\n    this.legendsWrap.nativeElement.style.width = `calc(100% + ${this.partWidth}px)`;\n    this.legendsWrap.nativeElement.style.left = `-${this.partWidth / 2}px`;\n  }\n}\n","<div [ngClass]=\"{\n      'dds-slider-tick_disabled': disabled\n      }\"\n     class=\"dds-slider-tick\">\n  <div class=\"dds-slider-tick__wrap\"\n       #wrap>\n    <div class=\"dds-slider-tick__line\"></div>\n    <div class=\"dds-slider-tick__active-line\"\n         #activeLine></div>\n    <div class=\"dds-slider-tick__control\"\n         role=\"slider\"\n         [attr.aria-valuemin]=\"min\"\n         [attr.aria-valuemax]=\"max\"\n         [attr.aria-valuenow]=\"controlOptions.value\"\n         [attr.aria-valuetext]=\"legends[controlOptions.value]\"\n         #control></div>\n  </div>\n  <div class=\"dds-slider-tick__value-wrap\"\n       #legendsWrap>\n    @for (label of legends; track label; let i = $index) {\n      <span [ngClass]=\"{\n            'dds-slider-tick__value_active': isActive(i)\n            }\"\n            class=\"dds-slider-tick__value\">\n        <span class=\"dds-slider-tick__value-text\"\n              (click)=\"changeValue(i)\">{{label}}</span>\n      </span>\n    }\n  </div>\n</div>","import { NgModule } from '@angular/core';\nimport { SliderTickComponent } from './slider-tick/slider-tick.component';\n\n@NgModule({\n  declarations: [],\n  imports: [SliderTickComponent],\n  exports: [SliderTickComponent],\n})\nexport class SliderTickModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAAO,MAAM,UAAU,GAAG,CAAC;;AC2B3B,MAAM,cAAc,GAAmC,YAAY,CAAC,iBAAiB,EAAE,CAAC;AAUlF,MAAO,mBAAoB,SAAQ,cAAc,CAAA;;AAKrD,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,UAAgC,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;QAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B;;IAGA,IACI,KAAK,CAAC,KAAyB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB;IACF;;AAiCA,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,KAAK,KAAK;IAC5C;IAEA,WAAA,CAAmB,GAAsB,EAAU,MAAc,EAAA;AAC/D,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,GAAG,GAAH,GAAG;QAA6B,IAAA,CAAA,MAAM,GAAN,MAAM;;AAlC/C,QAAA,IAAA,CAAA,YAAY,GAAkC,IAAI,YAAY,EAAE;;QAiBnE,IAAA,CAAA,GAAG,GAAG,UAAU;QAChB,IAAA,CAAA,GAAG,GAAG,UAAU;;QAGf,IAAA,CAAA,UAAU,GAAG,IAAI;;QAGlB,IAAA,CAAA,QAAQ,GAAa,EAAE;;QAGvB,IAAA,CAAA,cAAc,GAAkB,EAAE;;AA4DjC,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAiB,KAAU;YAChD,IAAI,CAAC,kBAAkB,EAAE;YAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB;AACzD,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAChC,QAAA,CAAC;IAxDD;;IAGO,eAAe,GAAA;QACpB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,QAAQ,EAAE;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IACzB;;AAGO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;;AAGO,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;;AAGO,IAAA,WAAW,CAAC,EAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE;QAC9B,IAAI,CAAC,UAAU,EAAE;IACnB;;IAGQ,QAAQ,GAAA;AACd,QAAA,MAAM,KAAK,GAAsB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;QACnF,MAAM,GAAG,GAAsB,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC7D,MAAM,KAAK,GAAsB,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CACpE,YAAY,CAAC,EAAE,CAAC,EAChB,GAAG,CAAC,CAAC,CAAa,KAAI;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YACjC;AACG,iBAAA,IAAI,CACH,GAAG,CAAC,CAAC,CAAQ,KAAI;gBACf,CAAC,CAAC,cAAc,EAAE;YACpB,CAAC,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EACvB,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7C,iBAAA,SAAS,EAAE;AAChB,QAAA,CAAC,CAAC;IACJ;;IAWQ,UAAU,GAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE;QAEzB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAY,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG;AACrG,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IAChC;;AAGQ,IAAA,aAAa,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB;AACtD,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB;AACvF,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI;YAC7E,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG;QACtC;AAAO,aAAA,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACtF,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB;AACvE,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB;AACvF,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI;YAC7E,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC1C;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU;AAC3C,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB;YACvF,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC;YACnH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA,EAAA,CAAI;QACzG;QAEA,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAErD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;;IAGQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAS,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA,EAAA,CAAI;IACrH;;IAGQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI;AAC7E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;QAC5E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG;AAE/D,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,SAAS,KAAK;AAC/E,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI;IACxE;8GA/KW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EALnB,CAAC,aAAa,CAAC,mBAAgC,CAAC,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChC9D,kgCA6BM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,aAEhB,CAAC,aAAa,CAAC,mBAAgC,CAAC,CAAC,EAAA,eAAA,EAC3C,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kgCAAA,EAAA;;sBAItB,WAAW;uBAAC,CAAA,MAAA,EAAS,eAAe,CAAC,QAAQ,CAAA,CAAE;;sBAAG;;sBAGlD;;sBAUA;;sBAYA;;sBAGA,SAAS;uBAAC,MAAM;;sBAChB,SAAS;uBAAC,SAAS;;sBACnB,SAAS;uBAAC,YAAY;;sBACtB,SAAS;uBAAC,aAAa;;;ME9Db,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,OAAA,EAAA,CAHjB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAElB,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,gBAAgB,YAHjB,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAGlB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;ACPD;;AAEG;;;;"}