{"version":3,"file":"axulus-uikit-spinner.mjs","sources":["../../src/app/components/spinner/spinner.ts","../../src/app/components/spinner/axulus-uikit-spinner.ts"],"sourcesContent":["import {\n  NgModule,\n  Component,\n  ElementRef,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  forwardRef,\n  ViewChild,\n  ChangeDetectorRef,\n  ChangeDetectionStrategy,\n  ViewEncapsulation\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from '@axulus/uikit/inputtext';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\nexport const SPINNER_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => Spinner),\n  multi: true\n};\n\n@Component({\n  selector: 'p-spinner',\n  template: `\n    <span class=\"ui-spinner ui-widget ui-corner-all\">\n      <input\n        #inputfield\n        type=\"text\"\n        [attr.id]=\"inputId\"\n        [value]=\"formattedValue || null\"\n        [attr.name]=\"name\"\n        [attr.aria-valumin]=\"min\"\n        [attr.aria-valuemax]=\"max\"\n        [attr.aria-valuenow]=\"value\"\n        [attr.aria-labelledby]=\"ariaLabelledBy\"\n        [attr.size]=\"size\"\n        [attr.maxlength]=\"maxlength\"\n        [attr.tabindex]=\"tabindex\"\n        [attr.placeholder]=\"placeholder\"\n        [disabled]=\"disabled\"\n        [readonly]=\"readonly\"\n        [attr.required]=\"required\"\n        (keydown)=\"onInputKeydown($event)\"\n        (blur)=\"onInputBlur($event)\"\n        (input)=\"onInput($event)\"\n        (change)=\"onInputChange($event)\"\n        (focus)=\"onInputFocus($event)\"\n        [ngStyle]=\"inputStyle\"\n        [class]=\"inputStyleClass\"\n        [ngClass]=\"'ui-spinner-input ui-inputtext ui-widget ui-state-default ui-corner-all'\"\n      />\n      <button\n        type=\"button\"\n        [ngClass]=\"{\n          'ui-spinner-button ui-spinner-up ui-corner-tr ui-button ui-widget ui-state-default': true,\n          'ui-state-disabled': disabled\n        }\"\n        [disabled]=\"disabled || readonly\"\n        tabindex=\"-1\"\n        [attr.readonly]=\"readonly\"\n        (mouseleave)=\"onUpButtonMouseleave($event)\"\n        (mousedown)=\"onUpButtonMousedown($event)\"\n        (mouseup)=\"onUpButtonMouseup($event)\"\n      >\n        <span class=\"ui-spinner-button-icon pi pi-caret-up ui-clickable\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [ngClass]=\"{\n          'ui-spinner-button ui-spinner-down ui-corner-br ui-button ui-widget ui-state-default': true,\n          'ui-state-disabled': disabled\n        }\"\n        [disabled]=\"disabled || readonly\"\n        tabindex=\"-1\"\n        [attr.readonly]=\"readonly\"\n        (mouseleave)=\"onDownButtonMouseleave($event)\"\n        (mousedown)=\"onDownButtonMousedown($event)\"\n        (mouseup)=\"onDownButtonMouseup($event)\"\n      >\n        <span class=\"ui-spinner-button-icon pi pi-caret-down ui-clickable\"></span>\n      </button>\n    </span>\n  `,\n  host: {\n    class: 'p-element',\n    '[class.ui-inputwrapper-filled]': 'filled',\n    '[class.ui-inputwrapper-focus]': 'focus'\n  },\n  providers: [SPINNER_VALUE_ACCESSOR],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./spinner.css']\n})\nexport class Spinner implements OnInit, ControlValueAccessor {\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\n\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\n\n  @Input() min: number;\n\n  @Input() max: number;\n\n  @Input() maxlength: number;\n\n  @Input() size: number;\n\n  @Input() placeholder: string;\n\n  @Input() inputId: string;\n\n  @Input() disabled: boolean;\n\n  @Input() readonly: boolean;\n\n  @Input() tabindex: number;\n\n  @Input() required: boolean;\n\n  @Input() name: string;\n\n  @Input() ariaLabelledBy: string;\n\n  @Input() inputStyle: any;\n\n  @Input() inputStyleClass: string;\n\n  @Input() formatInput: boolean;\n\n  @Input() decimalSeparator: string;\n\n  @Input() thousandSeparator: string;\n\n  @Input() precision: number;\n\n  value: any;\n\n  _step: number = 1;\n\n  formattedValue: string;\n\n  onModelChange: Function = () => {};\n\n  onModelTouched: Function = () => {};\n\n  keyPattern: RegExp = /[0-9\\+\\-]/;\n\n  public timer: any;\n\n  public focus: boolean;\n\n  public filled: boolean;\n\n  public negativeSeparator = '-';\n\n  localeDecimalSeparator: string;\n\n  localeThousandSeparator: string;\n\n  thousandRegExp: RegExp;\n\n  calculatedPrecision: number;\n\n  @ViewChild('inputfield') inputfieldViewChild: ElementRef;\n\n  @Input() get step(): number {\n    return this._step;\n  }\n  set step(val: number) {\n    this._step = val;\n\n    if (this._step != null) {\n      let tokens = this.step.toString().split(/[,]|[.]/);\n      this.calculatedPrecision = tokens[1] ? tokens[1].length : undefined;\n    }\n  }\n\n  constructor(public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    if (this.formatInput) {\n      this.localeDecimalSeparator = (1.1).toLocaleString().substring(1, 2);\n      this.localeThousandSeparator = (1000).toLocaleString().substring(1, 2);\n      this.thousandRegExp = new RegExp(`[${this.thousandSeparator || this.localeThousandSeparator}]`, 'gim');\n\n      if (this.decimalSeparator && this.thousandSeparator && this.decimalSeparator === this.thousandSeparator) {\n        console.warn('thousandSeparator and decimalSeparator cannot have the same value.');\n      }\n    }\n  }\n\n  repeat(event: Event, interval: number, dir: number) {\n    let i = interval || 500;\n\n    this.clearTimer();\n    this.timer = setTimeout(() => {\n      this.repeat(event, 40, dir);\n    }, i);\n\n    this.spin(event, dir);\n  }\n\n  spin(event: Event, dir: number) {\n    let step = this.step * dir;\n    let currentValue: number;\n    let precision = this.getPrecision();\n\n    if (this.value) currentValue = typeof this.value === 'string' ? this.parseValue(this.value) : this.value;\n    else currentValue = 0;\n\n    if (precision) this.value = parseFloat(this.toFixed(currentValue + step, precision));\n    else this.value = currentValue + step;\n\n    if (this.maxlength !== undefined && this.value.toString().length > this.maxlength) {\n      this.value = currentValue;\n    }\n\n    if (this.min !== undefined && this.value < this.min) {\n      this.value = this.min;\n    }\n\n    if (this.max !== undefined && this.value > this.max) {\n      this.value = this.max;\n    }\n\n    this.formatValue();\n    this.onModelChange(this.value);\n    this.onChange.emit(event);\n  }\n\n  getPrecision() {\n    return this.precision === undefined ? this.calculatedPrecision : this.precision;\n  }\n\n  toFixed(value: number, precision: number) {\n    let power = Math.pow(10, precision || 0);\n    return String(Math.round(value * power) / power);\n  }\n\n  onUpButtonMousedown(event: Event) {\n    if (!this.disabled) {\n      this.inputfieldViewChild.nativeElement.focus();\n      this.repeat(event, null, 1);\n      this.updateFilledState();\n      event.preventDefault();\n    }\n  }\n\n  onUpButtonMouseup(event: Event) {\n    if (!this.disabled) {\n      this.clearTimer();\n    }\n  }\n\n  onUpButtonMouseleave(event: Event) {\n    if (!this.disabled) {\n      this.clearTimer();\n    }\n  }\n\n  onDownButtonMousedown(event: Event) {\n    if (!this.disabled) {\n      this.inputfieldViewChild.nativeElement.focus();\n      this.repeat(event, null, -1);\n      this.updateFilledState();\n      event.preventDefault();\n    }\n  }\n\n  onDownButtonMouseup(event: Event) {\n    if (!this.disabled) {\n      this.clearTimer();\n    }\n  }\n\n  onDownButtonMouseleave(event: Event) {\n    if (!this.disabled) {\n      this.clearTimer();\n    }\n  }\n\n  onInputKeydown(event: KeyboardEvent) {\n    if (event.which == 38) {\n      this.spin(event, 1);\n      event.preventDefault();\n    } else if (event.which == 40) {\n      this.spin(event, -1);\n      event.preventDefault();\n    }\n  }\n\n  onInputChange(event: Event) {\n    this.onChange.emit(event);\n  }\n\n  onInput(event: KeyboardEvent) {\n    this.value = this.parseValue((<HTMLInputElement>event.target).value);\n    this.onModelChange(this.value);\n    this.updateFilledState();\n  }\n\n  onInputBlur(event) {\n    this.focus = false;\n    this.formatValue();\n    this.onModelTouched();\n    this.onBlur.emit(event);\n  }\n\n  onInputFocus(event) {\n    this.focus = true;\n    this.onFocus.emit(event);\n  }\n\n  parseValue(val: string): number {\n    let value: number;\n    let precision = this.getPrecision();\n\n    if (val.trim() === '') {\n      value = null;\n    } else {\n      if (this.formatInput) {\n        val = val.replace(this.thousandRegExp, '');\n      }\n\n      if (precision) {\n        val = this.formatInput ? val.replace(this.decimalSeparator || this.localeDecimalSeparator, '.') : val.replace(',', '.');\n        value = parseFloat(val);\n      } else {\n        value = parseInt(val, 10);\n      }\n\n      if (!isNaN(value)) {\n        if (this.max !== null && value > this.max) {\n          value = this.max;\n        }\n\n        if (this.min !== null && value < this.min) {\n          value = this.min;\n        }\n      } else {\n        value = null;\n      }\n    }\n\n    return value;\n  }\n\n  formatValue() {\n    let value = this.value;\n    let precision = this.getPrecision();\n\n    if (value != null) {\n      if (this.formatInput) {\n        value = value.toLocaleString(undefined, { maximumFractionDigits: 20 });\n\n        if (this.decimalSeparator && this.thousandSeparator) {\n          value = value.split(this.localeDecimalSeparator);\n\n          if (precision && value[1]) {\n            value[1] = (this.decimalSeparator || this.localeDecimalSeparator) + value[1];\n          }\n\n          if (this.thousandSeparator && value[0].length > 3) {\n            value[0] = value[0].replace(new RegExp(`[${this.localeThousandSeparator}]`, 'gim'), this.thousandSeparator);\n          }\n\n          value = value.join('');\n        }\n      }\n\n      this.formattedValue = value.toString();\n    } else {\n      this.formattedValue = null;\n    }\n\n    if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\n      this.inputfieldViewChild.nativeElement.value = this.formattedValue;\n    }\n  }\n\n  clearTimer() {\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n    this.formatValue();\n    this.updateFilledState();\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: Function): void {\n    this.onModelChange = fn;\n  }\n\n  registerOnTouched(fn: Function): void {\n    this.onModelTouched = fn;\n  }\n\n  setDisabledState(val: boolean): void {\n    this.disabled = val;\n    this.cd.markForCheck();\n  }\n\n  updateFilledState() {\n    this.filled = this.value !== undefined && this.value != null;\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, InputTextModule],\n  exports: [Spinner],\n  declarations: [Spinner]\n})\nexport class SpinnerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAkBa,MAAA,sBAAsB,GAAQ;AACzC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC;AACtC,IAAA,KAAK,EAAE,IAAI;EACX;MA0EW,OAAO,CAAA;IAqFlB,WAAmB,CAAA,EAAc,EAAS,EAAqB,EAAA;AAA5C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAS,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AApFrD,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;AAwCzD,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAIlB,QAAA,IAAA,CAAA,aAAa,GAAa,MAAK,GAAG,CAAC;AAEnC,QAAA,IAAA,CAAA,cAAc,GAAa,MAAK,GAAG,CAAC;AAEpC,QAAA,IAAU,CAAA,UAAA,GAAW,WAAW,CAAC;AAQ1B,QAAA,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;KAwBoC;AAZnE,IAAA,IAAa,IAAI,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,IAAI,IAAI,CAAC,GAAW,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAEjB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AACtB,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;AACrE,SAAA;KACF;IAID,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,uBAAuB,GAAG,EAAE,KAAK,CAAC,CAAC;AAEvG,YAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACvG,gBAAA,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACpF,aAAA;AACF,SAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAY,EAAE,QAAgB,EAAE,GAAW,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG,QAAQ,IAAI,GAAG,CAAC;QAExB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAK;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;SAC7B,EAAE,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACvB;IAED,IAAI,CAAC,KAAY,EAAE,GAAW,EAAA;AAC5B,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAC3B,QAAA,IAAI,YAAoB,CAAC;AACzB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;;YACpG,YAAY,GAAG,CAAC,CAAC;AAEtB,QAAA,IAAI,SAAS;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;;AAChF,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACjF,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB,SAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;KACjF;IAED,OAAO,CAAC,KAAa,EAAE,SAAiB,EAAA;AACtC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC;AACzC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;KAClD;AAED,IAAA,mBAAmB,CAAC,KAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,KAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,KAAY,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;AAED,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,KAAoB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAoB,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,KAAa,CAAC;AAClB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpC,QAAA,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrB,KAAK,GAAG,IAAI,CAAC;AACd,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC5C,aAAA;AAED,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxH,gBAAA,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzC,oBAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAClB,iBAAA;gBAED,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzC,oBAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAClB,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,KAAK,GAAG,IAAI,CAAC;AACd,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAED,WAAW,GAAA;AACT,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvE,gBAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACnD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEjD,oBAAA,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACzB,wBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,sBAAsB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E,qBAAA;AAED,oBAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjD,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,uBAAuB,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC7G,qBAAA;AAED,oBAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;YACtE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AACpE,SAAA;KACF;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAED,IAAA,gBAAgB,CAAC,EAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAED,IAAA,iBAAiB,CAAC,EAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,GAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;KAC9D;;oGA5TU,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,EALP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,CAAC,EAjEzB,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,msBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAWU,OAAO,EAAA,UAAA,EAAA,CAAA;kBAxEnB,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACX,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DT,EAAA,CAAA,EACK,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,gCAAgC,EAAE,QAAQ;AAC1C,wBAAA,+BAA+B,EAAE,OAAO;qBACzC,EACU,SAAA,EAAA,CAAC,sBAAsB,CAAC,EAClB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,msBAAA,CAAA,EAAA,CAAA;iIAI3B,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAEE,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBA8BmB,mBAAmB,EAAA,CAAA;sBAA3C,SAAS;uBAAC,YAAY,CAAA;gBAEV,IAAI,EAAA,CAAA;sBAAhB,KAAK;;MA2PK,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBApUb,OAAO,CAAA,EAAA,OAAA,EAAA,CAgUR,YAAY,EAAE,eAAe,aAhU5B,OAAO,CAAA,EAAA,CAAA,CAAA;2GAoUP,aAAa,EAAA,OAAA,EAAA,CAJd,YAAY,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;2FAI5B,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;oBACxC,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,YAAY,EAAE,CAAC,OAAO,CAAC;iBACxB,CAAA;;;ACnaD;;AAEG;;;;"}