{"version":3,"file":"ng-nest-ui-slider-select.mjs","sources":["../../../../lib/ng-nest/ui/slider-select/slider-select.property.ts","../../../../lib/ng-nest/ui/slider-select/slider-select.component.ts","../../../../lib/ng-nest/ui/slider-select/slider-select.component.html","../../../../lib/ng-nest/ui/slider-select/slider-select.module.ts","../../../../lib/ng-nest/ui/slider-select/ng-nest-ui-slider-select.ts"],"sourcesContent":["import { XToBoolean, XToCssPixelValue, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type { CdkDragStart, CdkDragMove, CdkDragEnd } from '@angular/cdk/drag-drop';\r\nimport type { XAlign, XBoolean, XDirection, XJustify, XNumber, XTemplate } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * SliderSelect\r\n * @selector x-slider-select\r\n * @decorator component\r\n */\r\nexport const XSliderSelectPrefix = 'x-slider-select';\r\nconst X_SLIDER_SELECT_CONFIG_NAME = 'sliderSelect';\r\n\r\n/**\r\n * SliderSelect Property\r\n */\r\n@Component({ selector: `${XSliderSelectPrefix}-property`, template: '' })\r\nexport class XSliderSelectProperty extends XFormControlFunction(X_SLIDER_SELECT_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 最小值\r\n   * @en_US Minimum\r\n   */\r\n  readonly min = input<number, XNumber>(0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 最大值\r\n   * @en_US Max\r\n   */\r\n  readonly max = input<number, XNumber>(100, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 步数\r\n   * @en_US Step count\r\n   */\r\n  readonly step = input<number, XNumber>(1, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 精度，默认根据步数来计算\r\n   * @en_US Precision, calculated based on the number of steps by default\r\n   */\r\n  readonly precision = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 显示 tooltip 提示\r\n   * @en_US Display Tooltip prompts\r\n   */\r\n  readonly showTooltip = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 反向\r\n   * @en_US Reverse\r\n   */\r\n  readonly reverse = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 垂直\r\n   * @en_US Vertical\r\n   */\r\n  readonly vertical = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 范围\r\n   * @en_US Range\r\n   */\r\n  readonly range = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 自定义滑块\r\n   * @en_US Custom button\r\n   */\r\n  readonly customButton = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 刻度标记，key 为实际数字，在 [min,max] 内，可通过 style 设置样式\r\n   * @en_US Scale marking, key is the actual number, in [min, max], you can set style through style\r\n   */\r\n  readonly marks = input<XSliderSelectMark[]>([]);\r\n  /**\r\n   * @zh_CN 自定义 tooltip\r\n   * @en_US Custom tooltip\r\n   */\r\n  readonly tooltipCustom = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 标签\r\n   * @en_US Label\r\n   */\r\n  override readonly label = input<XTemplate>('');\r\n  /**\r\n   * @zh_CN 标签宽度\r\n   * @en_US Label width\r\n   */\r\n  override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 标签文字对齐方式\r\n   * @en_US Label text alignment method\r\n   */\r\n  override readonly labelAlign = input<XAlign>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素水平排列方式\r\n   * @en_US The level of sub-element level arrangement under flex layout\r\n   */\r\n  override readonly justify = input<XJustify>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素垂直排列方式\r\n   * @en_US sub-element vertical arrangement method under flex layout\r\n   */\r\n  override readonly align = input<XAlign>('start');\r\n  /**\r\n   * @zh_CN flex 布局下的子元素排列方向\r\n   * @en_US The direction of the sub-element arrangement under flex layout\r\n   */\r\n  override readonly direction = input<XDirection>('column');\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 必填\r\n   * @en_US Required\r\n   */\r\n  override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 开始拖动的事件\r\n   * @en_US Start drag event\r\n   */\r\n  readonly dragStartEmit = output<CdkDragStart>();\r\n  /**\r\n   * @zh_CN 按住移动中的事件\r\n   * @en_US Hold down the moving event\r\n   */\r\n  readonly dragMoveEmit = output<CdkDragMove>();\r\n  /**\r\n   * @zh_CN 移动结束的事件\r\n   * @en_US Mobile end event\r\n   */\r\n  readonly dragEndEmit = output<CdkDragEnd>();\r\n}\r\n\r\n/**\r\n * SliderSelect Option\r\n */\r\nexport interface XSliderSelectOption extends XFormOption {\r\n  /**\r\n   * @zh_CN 最小值\r\n   * @en_US Minimum\r\n   */\r\n  min?: number;\r\n  /**\r\n   * @zh_CN 最大值\r\n   * @en_US Max\r\n   */\r\n  max?: number;\r\n  /**\r\n   * @zh_CN 步数\r\n   * @en_US Step count\r\n   */\r\n  step?: number;\r\n  /**\r\n   * @zh_CN 精度，默认根据步数来计算\r\n   * @en_US Precision, calculated based on the number of steps by default\r\n   */\r\n  precision?: number;\r\n  /**\r\n   * @zh_CN 显示 tooltip 提示\r\n   * @en_US Display Tooltip prompts\r\n   */\r\n  showTooltip?: boolean;\r\n  /**\r\n   * @zh_CN 反向\r\n   * @en_US Reverse\r\n   */\r\n  reverse?: boolean;\r\n  /**\r\n   * @zh_CN 垂直\r\n   * @en_US Vertical\r\n   */\r\n  vertical?: boolean;\r\n  /**\r\n   * @zh_CN 范围\r\n   * @en_US Range\r\n   */\r\n  range?: boolean;\r\n  /**\r\n   * @zh_CN 自定义滑块\r\n   * @en_US Custom button\r\n   */\r\n  customButton?: XTemplate;\r\n  /**\r\n   * @zh_CN 刻度标记，key 为实际数字，在 [min,max] 内，可通过 style 设置样式\r\n   * @en_US Scale marking, key is the actual number, in [min, max], you can set style through style\r\n   */\r\n  marks?: XSliderSelectMark[];\r\n  /**\r\n   * @zh_CN 自定义 tooltip\r\n   * @en_US Custom tooltip\r\n   */\r\n  tooltipCustom?: XTemplate;\r\n  /**\r\n   * @zh_CN 标签\r\n   * @en_US Label\r\n   */\r\n  label?: string;\r\n  /**\r\n   * @zh_CN 标签宽度\r\n   * @en_US Label width\r\n   */\r\n  labelWidth?: string;\r\n  /**\r\n   * @zh_CN 标签文字对齐方式\r\n   * @en_US Label text alignment method\r\n   */\r\n  labelAlign?: XAlign;\r\n  /**\r\n   * @zh_CN flex 布局下的子元素水平排列方式\r\n   * @en_US The level of sub-element level arrangement under flex layout\r\n   */\r\n  justify?: XJustify;\r\n  /**\r\n   * @zh_CN flex 布局下的子元素垂直排列方式\r\n   * @en_US sub-element vertical arrangement method under flex layout\r\n   */\r\n  align?: XAlign;\r\n  /**\r\n   * @zh_CN flex 布局下的子元素排列方向\r\n   * @en_US The direction of the sub-element arrangement under flex layout\r\n   */\r\n  direction?: XDirection;\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * @zh_CN 必填\r\n   * @en_US Required\r\n   */\r\n  required?: boolean;\r\n  /**\r\n   * @zh_CN 开始拖动的事件\r\n   * @en_US Start drag event\r\n   */\r\n  dragStartEmit?: (start: CdkDragStart) => void;\r\n  /**\r\n   * @zh_CN 按住移动中的事件\r\n   * @en_US Hold down the moving event\r\n   */\r\n  dragMoveEmit?: (move: CdkDragMove) => void;\r\n  /**\r\n   * @zh_CN 移动结束的事件\r\n   * @en_US Mobile end event\r\n   */\r\n  dragEndEmit?: (end: CdkDragEnd) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 刻度标记\r\n * @en_US Scale marking\r\n */\r\nexport interface XSliderSelectMark {\r\n  /**\r\n   * @zh_CN 数值\r\n   * @en_US Value\r\n   */\r\n  value: number;\r\n  /**\r\n   * @zh_CN 显示标签\r\n   * @en_US Label\r\n   */\r\n  label: string;\r\n  /**\r\n   * @zh_CN 标签样式\r\n   * @en_US style\r\n   */\r\n  style?: { [style: string]: any };\r\n  /**\r\n   * @zh_CN 实际偏移量（自动计算）\r\n   * @en_US Offset. automatic calculation\r\n   */\r\n  offset?: number;\r\n}\r\n","import { XTooltipDirective } from '@ng-nest/ui/tooltip';\r\nimport {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Renderer2,\r\n  ElementRef,\r\n  OnDestroy,\r\n  AfterViewInit,\r\n  HostBinding,\r\n  inject,\r\n  signal,\r\n  viewChild,\r\n  viewChildren,\r\n  computed\r\n} from '@angular/core';\r\nimport { XSliderSelectProperty, XSliderSelectPrefix, XSliderSelectMark } from './slider-select.property';\r\nimport { XIsEmpty, XIsUndefined, XResize, XResizeObserver, XIsNumber, XIsArray, XIsNull } from '@ng-nest/ui/core';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport type { CdkDragMove, CdkDragStart, CdkDragEnd } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n  selector: `${XSliderSelectPrefix}`,\r\n  imports: [NgClass, NgStyle, FormsModule, ReactiveFormsModule, DragDropModule, XTooltipDirective, XOutletDirective],\r\n  templateUrl: './slider-select.component.html',\r\n  styleUrls: ['./slider-select.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [XValueAccessor(XSliderSelectComponent)]\r\n})\r\nexport class XSliderSelectComponent extends XSliderSelectProperty implements OnDestroy, AfterViewInit {\r\n  sliderSelect = viewChild.required<ElementRef<HTMLElement>>('sliderSelect');\r\n  dragStartRef = viewChild.required<ElementRef<HTMLElement>>('dragStartRef');\r\n  dragEndRef = viewChild.required<ElementRef<HTMLElement>>('dragEndRef');\r\n  railRef = viewChild.required<ElementRef<HTMLElement>>('railRef');\r\n  processRef = viewChild.required<ElementRef<HTMLElement>>('processRef');\r\n  @HostBinding('class.x-slider-select-vertical') get getVertical() {\r\n    return this.vertical();\r\n  }\r\n  tooltips = viewChildren(XTooltipDirective);\r\n  tooltipStart = computed(() => {\r\n    if (this.tooltips().length > 0) {\r\n      return this.tooltips()![0];\r\n    }\r\n    return null;\r\n  });\r\n  tooltipEnd = computed(() => {\r\n    if (this.tooltips().length > 1) {\r\n      return this.tooltips()![1];\r\n    }\r\n    return null;\r\n  });\r\n\r\n  override value = signal<number | number[]>(0);\r\n  starting = signal(false);\r\n\r\n  startOffset = signal(0);\r\n  startVisible = signal(false);\r\n  startManual = signal(false);\r\n  start = signal<number | null>(null);\r\n  startDisplayValue = signal('0');\r\n  showStartTooltip = signal(true);\r\n\r\n  endOffset = signal(0);\r\n  endVisible = signal(false);\r\n  endManual = signal(false);\r\n  end = signal<number | null>(null);\r\n  endDisplayValue = signal('0');\r\n  showEndTooltip = signal(true);\r\n\r\n  markList = computed(() => {\r\n    if (!this.marks()) return [];\r\n    const marks: XSliderSelectMark[] = [];\r\n    for (let mark of this.marks()) {\r\n      const mk: XSliderSelectMark = {\r\n        value: mark.value,\r\n        label: mark.label,\r\n        style: { ...mark.style }\r\n      };\r\n      mk.offset = this.getOffset(mark.value);\r\n\r\n      if (this.reverse()) {\r\n        if (this.vertical()) {\r\n          mk.style!['top'] = `${mk.offset}%`;\r\n        } else {\r\n          mk.style!['right'] = `${mk.offset}%`;\r\n        }\r\n      } else {\r\n        if (this.vertical()) {\r\n          mk.style!['bottom'] = `${mk.offset}%`;\r\n        } else {\r\n          mk.style!['left'] = `${mk.offset}%`;\r\n        }\r\n      }\r\n      marks.push(mk);\r\n    }\r\n    return marks;\r\n  });\r\n\r\n  private unSubject = new Subject<void>();\r\n  private resizeObserver!: XResizeObserver;\r\n  isNumber = computed(() => XIsNumber(this.value()) && !XIsArray(this.value()));\r\n  isArray = computed(() => XIsArray(this.value()));\r\n\r\n  classMap = computed(() => ({\r\n    [`x-justify-${this.justify()}`]: !!this.justify(),\r\n    [`x-align-${this.align()}`]: !!this.align(),\r\n    [`x-direction-${this.direction()}`]: !!this.direction()\r\n  }));\r\n  labelMapSignal = computed(() => ({\r\n    [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n  }));\r\n\r\n  precisionSignal = computed(() => {\r\n    const precision = this.precision();\r\n    if (XIsUndefined(precision) || !XIsEmpty(this.step())) {\r\n      let stepStr = String(this.step());\r\n      let indexpoint = stepStr.indexOf('.');\r\n      if (indexpoint === -1) {\r\n        return 0;\r\n      } else {\r\n        return stepStr.length - (indexpoint + 1);\r\n      }\r\n    }\r\n    return precision;\r\n  });\r\n\r\n  override requiredIsEmpty = computed(\r\n    () => this.validatorComputed() && this.requiredComputed() && (XIsEmpty(this.value()) || this.value() === 0)\r\n  );\r\n\r\n  override writeValue(value: number | number[]) {\r\n    if (this.starting()) return;\r\n    if (XIsNull(value) || XIsUndefined(value)) {\r\n      if (this.range()) {\r\n        value = [this.min(), this.min()];\r\n      } else {\r\n        value = this.min();\r\n      }\r\n    }\r\n    this.value.set(value);\r\n    this.setLeft();\r\n    this.setDisplayValue();\r\n  }\r\n\r\n  private renderer = inject(Renderer2);\r\n  override cdr = inject(ChangeDetectorRef);\r\n  elementRef = inject(ElementRef);\r\n\r\n  ngAfterViewInit() {\r\n    XResize(this.sliderSelect().nativeElement)\r\n      .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n      .subscribe((x) => {\r\n        this.resizeObserver = x.resizeObserver;\r\n        this.setLeft();\r\n        this.setDisplayValue();\r\n      });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n    this.resizeObserver?.disconnect();\r\n  }\r\n\r\n  change() {\r\n    const getVal = (offset: number) => {\r\n      return parseFloat(\r\n        Number(((this.max() - this.min()) * offset) / 100 + this.min()).toFixed(this.precisionSignal())\r\n      );\r\n    };\r\n    const startVal = getVal(this.startOffset());\r\n    if (this.isNumber()) {\r\n      this.value.set(startVal);\r\n    } else {\r\n      const endVal = getVal(this.endOffset());\r\n      if (endVal < startVal) {\r\n        this.value.set([endVal, startVal]);\r\n      } else {\r\n        this.value.set([startVal, endVal]);\r\n      }\r\n    }\r\n\r\n    this.setDisplayValue();\r\n    if (this.onChange) this.onChange(this.value());\r\n  }\r\n\r\n  getOffset(val: number) {\r\n    return Math.abs(\r\n      Math.round(((val + (this.reverse() ? -this.min() : this.min())) * 100) / (this.max() - this.min()))\r\n    );\r\n  }\r\n\r\n  setLeft() {\r\n    let startVal = 0,\r\n      endVal = 0;\r\n    const value = this.value();\r\n    if (this.isNumber()) {\r\n      startVal = value as number;\r\n    } else if (XIsArray(value) && value.length > 1) {\r\n      startVal = value[0];\r\n      endVal = value[1];\r\n      this.endOffset.set(this.getOffset(endVal));\r\n      this.end.set(this.endOffset());\r\n    }\r\n\r\n    this.startOffset.set(this.getOffset(startVal));\r\n    this.start.set(this.startOffset());\r\n\r\n    this.setDrag();\r\n  }\r\n\r\n  setDisplayValue() {\r\n    const displayVal = (val: number) => {\r\n      return Number(val).toFixed(this.precisionSignal());\r\n    };\r\n    const value = this.value();\r\n    if (this.isNumber()) {\r\n      this.startDisplayValue.set(displayVal(value as number));\r\n    } else {\r\n      if (XIsArray(value) && value.length > 1) {\r\n        if (this.startOffset() > this.endOffset()) {\r\n          this.startDisplayValue.set(displayVal(value[1]));\r\n          this.endDisplayValue.set(displayVal(value[0]));\r\n        } else {\r\n          this.startDisplayValue.set(displayVal(value[0]));\r\n          this.endDisplayValue.set(displayVal(value[1]));\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  started(drag: CdkDragStart, type: 'start' | 'end' | 'both' = 'start') {\r\n    this.starting.set(true);\r\n    if (['start', 'both'].includes(type)) {\r\n      const start = this.startOffset();\r\n      this.start.set(start);\r\n      if (this.showStartTooltip()) {\r\n        this.startManual.set(true);\r\n        this.startVisible.set(true);\r\n      }\r\n    }\r\n    if (['end', 'both'].includes(type)) {\r\n      const end = this.endOffset();\r\n      this.end.set(end);\r\n      if (this.showEndTooltip()) {\r\n        this.endManual.set(true);\r\n        this.endVisible.set(true);\r\n      }\r\n    }\r\n    this.formControlValidator();\r\n    this.dragStartEmit.emit(drag);\r\n  }\r\n\r\n  moved(drag: CdkDragMove, type: 'start' | 'end' | 'both' = 'start') {\r\n    let transform = drag.source.getFreeDragPosition();\r\n    this.setDrag(this.vertical() ? transform.y : transform.x, type);\r\n    drag.source.reset();\r\n    if (['start', 'both'].includes(type) && this.showStartTooltip()) {\r\n      this.tooltipStart()?.updatePortal();\r\n    }\r\n    if (['end', 'both'].includes(type) && this.showEndTooltip()) {\r\n      this.tooltipEnd()?.updatePortal();\r\n    }\r\n    this.change();\r\n    this.dragMoveEmit.emit(drag);\r\n  }\r\n\r\n  ended(drag: CdkDragEnd, type: 'start' | 'end' | 'both' = 'start') {\r\n    if (['start', 'both'].includes(type)) {\r\n      if (this.showStartTooltip()) {\r\n        this.startManual.set(false);\r\n        this.startVisible.set(false);\r\n      }\r\n    }\r\n    if (['end', 'both'].includes(type)) {\r\n      if (this.showEndTooltip()) {\r\n        this.endManual.set(false);\r\n        this.endVisible.set(false);\r\n      }\r\n    }\r\n    this.starting.set(false);\r\n    this.dragEndEmit.emit(drag);\r\n  }\r\n\r\n  setDrag(distance: number = 0, type: 'start' | 'end' | 'both' = 'both') {\r\n    if (typeof this.railRef().nativeElement.getBoundingClientRect !== 'function') return;\r\n    let railBox = this.railRef().nativeElement.getBoundingClientRect();\r\n    let railBoxLength = this.vertical() ? railBox.height : railBox.width;\r\n    let stepLength = railBoxLength / ((this.max() - this.min()) / this.step());\r\n    let offset = Math.abs(distance % stepLength);\r\n    let dis =\r\n      offset < stepLength / 2\r\n        ? distance > 0\r\n          ? distance - offset\r\n          : distance + offset\r\n        : distance > 0\r\n          ? distance + stepLength - offset\r\n          : distance - stepLength + offset;\r\n\r\n    const setOffset = (d: number) => {\r\n      let x1 = (d / 100) * railBoxLength;\r\n      if (this.vertical()) {\r\n        x1 += this.reverse() ? dis : -dis;\r\n      } else {\r\n        x1 += this.reverse() ? -dis : dis;\r\n      }\r\n      return Math.round((x1 / railBoxLength) * 100);\r\n    };\r\n\r\n    if (type === 'both') {\r\n      this.startOffset.set(setOffset(this.start()!));\r\n      this.endOffset.set(setOffset(this.end()!));\r\n    } else if (type === 'start') {\r\n      this.startOffset.set(setOffset(this.start()!));\r\n    } else if (type === 'end') {\r\n      this.endOffset.set(setOffset(this.end()!));\r\n    }\r\n\r\n    this.setDragStyles();\r\n  }\r\n\r\n  setDragStyles() {\r\n    if (this.vertical()) {\r\n      if (this.isArray()) {\r\n        const wd = Math.abs(this.endOffset() - this.startOffset());\r\n        const lt = this.endOffset() > this.startOffset() ? this.startOffset() : this.endOffset();\r\n        if (this.reverse()) {\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'top', `${this.startOffset()}%`);\r\n          this.renderer.setStyle(this.dragEndRef().nativeElement, 'top', `${this.endOffset()}%`);\r\n          this.renderer.setStyle(this.processRef().nativeElement, 'top', `${lt}%`);\r\n        } else {\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'bottom', `${this.startOffset()}%`);\r\n          this.renderer.setStyle(this.dragEndRef().nativeElement, 'bottom', `${this.endOffset()}%`);\r\n          this.renderer.setStyle(this.processRef().nativeElement, 'bottom', `${lt}%`);\r\n        }\r\n        this.renderer.setStyle(this.processRef().nativeElement, 'height', `${wd}%`);\r\n      } else {\r\n        if (this.reverse()) {\r\n          this.renderer.removeStyle(this.dragStartRef().nativeElement, 'bottom');\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'top', `${this.startOffset()}%`);\r\n        } else {\r\n          this.renderer.removeStyle(this.dragStartRef().nativeElement, 'top');\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'bottom', `${this.startOffset()}%`);\r\n        }\r\n        this.renderer.setStyle(this.processRef().nativeElement, 'height', `${this.startOffset()}%`);\r\n      }\r\n    } else {\r\n      if (this.isArray()) {\r\n        const wd = Math.abs(this.endOffset() - this.startOffset());\r\n        const lt = this.endOffset() > this.startOffset() ? this.startOffset() : this.endOffset();\r\n        if (this.reverse()) {\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'right', `${this.startOffset()}%`);\r\n          this.renderer.setStyle(this.dragEndRef().nativeElement, 'right', `${this.endOffset()}%`);\r\n          this.renderer.setStyle(this.processRef().nativeElement, 'right', `${lt}%`);\r\n        } else {\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'left', `${this.startOffset()}%`);\r\n          this.renderer.setStyle(this.dragEndRef().nativeElement, 'left', `${this.endOffset()}%`);\r\n          this.renderer.setStyle(this.processRef().nativeElement, 'left', `${lt}%`);\r\n        }\r\n        this.renderer.setStyle(this.processRef().nativeElement, 'width', `${wd}%`);\r\n      } else {\r\n        if (this.reverse()) {\r\n          this.renderer.removeStyle(this.dragStartRef().nativeElement, 'left');\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'right', `${this.startOffset()}%`);\r\n        } else {\r\n          this.renderer.removeStyle(this.dragStartRef().nativeElement, 'right');\r\n          this.renderer.setStyle(this.dragStartRef().nativeElement, 'left', `${this.startOffset()}%`);\r\n        }\r\n        this.renderer.setStyle(this.processRef().nativeElement, 'width', `${this.startOffset()}%`);\r\n      }\r\n    }\r\n  }\r\n}\r\n","<div\r\n  #sliderSelect\r\n  class=\"x-slider-select\"\r\n  [class.x-flex]=\"justify() || align() || direction()\"\r\n  [class.x-disabled]=\"disabledComputed()\"\r\n  [class.x-required]=\"requiredIsEmpty()\"\r\n  [class.x-invalid]=\"invalid()\"\r\n  [class.x-slider-select-reverse]=\"reverse()\"\r\n  [class.x-slider-select-range]=\"range()\"\r\n  [ngClass]=\"classMap()\"\r\n>\r\n  @if (label()) {\r\n    <label\r\n      [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n      [style.width]=\"labelWidth()\"\r\n      [ngClass]=\"labelMapSignal()\"\r\n      *xOutlet=\"label()\"\r\n    >\r\n      {{ label() }}\r\n    </label>\r\n  }\r\n  <div class=\"x-slider-select-inner\" #innerRef>\r\n    <div class=\"x-slider-select-rail\" #railRef>\r\n      <div></div>\r\n    </div>\r\n    <div class=\"x-slider-select-drags\">\r\n      <div class=\"x-slider-select-track\" #trackRef>\r\n        <div\r\n          #processRef\r\n          class=\"x-slider-select-process\"\r\n          cdkDrag\r\n          [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n          [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n          [cdkDragBoundary]=\"trackRef\"\r\n          (cdkDragStarted)=\"started($event, 'both')\"\r\n          (cdkDragEnded)=\"ended($event, 'both')\"\r\n          (cdkDragMoved)=\"moved($event, 'both')\"\r\n        ></div>\r\n      </div>\r\n      <div class=\"x-slider-select-marks\">\r\n        @for (mark of markList(); track mark.label) {\r\n          <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n            <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n          </div>\r\n        }\r\n      </div>\r\n      <div\r\n        #dragStartRef\r\n        class=\"x-slider-select-drag\"\r\n        cdkDrag\r\n        [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n        [cdkDragDisabled]=\"disabledComputed()\"\r\n        [cdkDragBoundary]=\"innerRef\"\r\n        (cdkDragStarted)=\"started($event, 'start')\"\r\n        (cdkDragEnded)=\"ended($event, 'start')\"\r\n        (cdkDragMoved)=\"moved($event, 'start')\"\r\n      >\r\n        <div\r\n          #tooltipStart\r\n          x-tooltip\r\n          tabindex=\"0\"\r\n          class=\"x-slider-select-button\"\r\n          [class.x-slider-select-button-actived]=\"startVisible()\"\r\n          [class.x-slider-select-custom-button]=\"customButton()\"\r\n          placement=\"top\"\r\n          [disabled]=\"!showTooltip()\"\r\n          [content]=\"tooltipStartTpl\"\r\n          [(visible)]=\"startVisible\"\r\n          [manual]=\"startManual()\"\r\n        >\r\n          <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n        </div>\r\n        <ng-template #tooltipStartTpl>\r\n          <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n            startDisplayValue()\r\n          }}</ng-container>\r\n        </ng-template>\r\n      </div>\r\n      <div\r\n        [hidden]=\"!range()\"\r\n        #dragEndRef\r\n        class=\"x-slider-select-drag\"\r\n        cdkDrag\r\n        [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n        [cdkDragDisabled]=\"disabledComputed()\"\r\n        [cdkDragBoundary]=\"innerRef\"\r\n        (cdkDragStarted)=\"started($event, 'end')\"\r\n        (cdkDragEnded)=\"ended($event, 'end')\"\r\n        (cdkDragMoved)=\"moved($event, 'end')\"\r\n      >\r\n        <div\r\n          #tooltipEnd\r\n          x-tooltip\r\n          tabindex=\"0\"\r\n          class=\"x-slider-select-button\"\r\n          [class.x-slider-select-button-actived]=\"endVisible()\"\r\n          [class.x-slider-select-custom-button]=\"customButton()\"\r\n          placement=\"top\"\r\n          [disabled]=\"!showTooltip()\"\r\n          [content]=\"tooltipEndTpl\"\r\n          [(visible)]=\"endVisible\"\r\n          [manual]=\"endManual()\"\r\n        >\r\n          <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n        </div>\r\n        <ng-template #tooltipEndTpl>\r\n          <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n            endDisplayValue()\r\n          }}</ng-container>\r\n        </ng-template>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XSliderSelectComponent } from './slider-select.component';\r\n\r\n@NgModule({\r\n  exports: [XSliderSelectComponent],\r\n  imports: [XSliderSelectComponent]\r\n})\r\nexport class XSliderSelectModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMA;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;AACnC,MAAM,2BAA2B,GAAG,cAAc;AAElD;;AAEG;MAEU,qBAAsB,SAAQ,oBAAoB,CAAC,2BAA2B,CAAC,CAAA;AAD5F,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAA,CAAA,GAAG,GAAG,KAAK,CAAkB,CAAC,gDAAI,SAAS,EAAE,SAAS,EAAA,CAAG;AAClE;;;AAGG;QACM,IAAA,CAAA,GAAG,GAAG,KAAK,CAAkB,GAAG,gDAAI,SAAS,EAAE,SAAS,EAAA,CAAG;AACpE;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,CAAC,iDAAI,SAAS,EAAE,SAAS,EAAA,CAAG;AACnE;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAA8B,SAAS,sDAAI,SAAS,EAAE,SAAS,EAAA,CAAG;AAC5F;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoB,IAAI,wDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAChF;;;AAGG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAoB,KAAK,oDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC7E;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC9E;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,KAAK,kDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AAC3E;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAC1C;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,EAAE,iDAAC;AAC/C;;;AAGG;QACM,IAAA,CAAA,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAC3C;;;AAGG;AACe,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAY,EAAE,iDAAC;AAC9C;;;AAGG;QACe,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkB,EAAE,uDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC1F;;;AAGG;AACe,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,OAAO,sDAAC;AACrD;;;AAGG;AACe,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW,OAAO,mDAAC;AACpD;;;AAGG;AACe,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,OAAO,iDAAC;AAChD;;;AAGG;AACe,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAa,QAAQ,qDAAC;AACzD;;;AAGG;QACe,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACvF;;;AAGG;QACe,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,KAAK,qDAAI,SAAS,EAAE,UAAU,EAAA,CAAG;AACvF;;;AAGG;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,EAAgB;AAC/C;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAe;AAC7C;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,MAAM,EAAc;AAC5C,IAAA;iIA/GY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,mlFADkC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACzD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,CAAA,EAAG,mBAAmB,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;;;ACoBlE,MAAO,sBAAuB,SAAQ,qBAAqB,CAAA;AATjE,IAAA,WAAA,GAAA;;AAUE,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAA0B,cAAc,CAAC;AAC1E,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAA0B,cAAc,CAAC;AAC1E,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA0B,YAAY,CAAC;AACtE,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAA0B,SAAS,CAAC;AAChE,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA0B,YAAY,CAAC;AAItE,QAAA,IAAA,CAAA,QAAQ,GAAG,YAAY,CAAC,iBAAiB,oDAAC;AAC1C,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;YAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;YAC5B;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,wDAAC;AACF,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;YAC5B;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,sDAAC;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAoB,CAAC,iDAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,oDAAC;AAExB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,uDAAC;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,KAAK,uDAAC;AAC3B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,iDAAC;AACnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,6DAAC;AAC/B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,4DAAC;AAE/B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC,qDAAC;AACrB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;AACzB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAgB,IAAI,+CAAC;AACjC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,GAAG,2DAAC;AAC7B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,IAAI,0DAAC;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAAE,gBAAA,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAwB,EAAE;YACrC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAC7B,gBAAA,MAAM,EAAE,GAAsB;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,oBAAA,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK;iBACvB;gBACD,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;wBACnB,EAAE,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,CAAA,EAAG,EAAE,CAAC,MAAM,CAAA,CAAA,CAAG;oBACpC;yBAAO;wBACL,EAAE,CAAC,KAAM,CAAC,OAAO,CAAC,GAAG,CAAA,EAAG,EAAE,CAAC,MAAM,CAAA,CAAA,CAAG;oBACtC;gBACF;qBAAO;AACL,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;wBACnB,EAAE,CAAC,KAAM,CAAC,QAAQ,CAAC,GAAG,CAAA,EAAG,EAAE,CAAC,MAAM,CAAA,CAAA,CAAG;oBACvC;yBAAO;wBACL,EAAE,CAAC,KAAM,CAAC,MAAM,CAAC,GAAG,CAAA,EAAG,EAAE,CAAC,MAAM,CAAA,CAAA,CAAG;oBACrC;gBACF;AACA,gBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,oDAAC;AAEM,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;QAEvC,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC7E,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,mDAAC;AAEhD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO;AACzB,YAAA,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AACjD,YAAA,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,YAAA,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,SAAS,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;AACtD,SAAA,CAAC,oDAAC;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,OAAO;AAC/B,YAAA,CAAC,CAAA,aAAA,EAAgB,IAAI,CAAC,UAAU,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU;AACzD,SAAA,CAAC,0DAAC;AAEH,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;gBACrD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,gBAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;AACrB,oBAAA,OAAO,CAAC;gBACV;qBAAO;oBACL,OAAO,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC;gBAC1C;YACF;AACA,YAAA,OAAO,SAAS;AAClB,QAAA,CAAC,2DAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,2DAC5G;AAgBO,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAkOhC,IAAA;AAjVC,IAAA,IAAmD,WAAW,GAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;AA6FS,IAAA,UAAU,CAAC,KAAwB,EAAA;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACzC,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,gBAAA,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAClC;iBAAO;AACL,gBAAA,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;YACpB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,eAAe,EAAE;IACxB;IAMA,eAAe,GAAA;AACb,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa;AACtC,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAChD,aAAA,SAAS,CAAC,CAAC,CAAC,KAAI;AACf,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;YACtC,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,eAAe,EAAE;AACxB,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACzB,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;IACnC;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,CAAC,MAAc,KAAI;AAChC,YAAA,OAAO,UAAU,CACf,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAChG;AACH,QAAA,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B;aAAO;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACvC,YAAA,IAAI,MAAM,GAAG,QAAQ,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC;iBAAO;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpC;QACF;QAEA,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAChD;AAEA,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CACpG;IACH;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,QAAQ,GAAG,CAAC,EACd,MAAM,GAAG,CAAC;AACZ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,QAAQ,GAAG,KAAe;QAC5B;aAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,YAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AACnB,YAAA,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,CAAC,GAAW,KAAI;AACjC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AACpD,QAAA,CAAC;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC;QACzD;aAAO;YACL,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE;AACzC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD;qBAAO;AACL,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD;YACF;QACF;IACF;AAEA,IAAA,OAAO,CAAC,IAAkB,EAAE,IAAA,GAAiC,OAAO,EAAA;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAC7B;QACF;QACA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAC3B;QACF;QACA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B;AAEA,IAAA,KAAK,CAAC,IAAiB,EAAE,IAAA,GAAiC,OAAO,EAAA;QAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/D,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC/D,YAAA,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE;QACrC;AACA,QAAA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AAC3D,YAAA,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE;QACnC;QACA,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;AAEA,IAAA,KAAK,CAAC,IAAgB,EAAE,IAAA,GAAiC,OAAO,EAAA;QAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAC9B;QACF;QACA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAEA,IAAA,OAAO,CAAC,QAAA,GAAmB,CAAC,EAAE,OAAiC,MAAM,EAAA;QACnE,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,qBAAqB,KAAK,UAAU;YAAE;QAC9E,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAClE,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;QACpE,IAAI,UAAU,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC5C,QAAA,IAAI,GAAG,GACL,MAAM,GAAG,UAAU,GAAG;cAClB,QAAQ,GAAG;kBACT,QAAQ,GAAG;kBACX,QAAQ,GAAG;cACb,QAAQ,GAAG;AACX,kBAAE,QAAQ,GAAG,UAAU,GAAG;AAC1B,kBAAE,QAAQ,GAAG,UAAU,GAAG,MAAM;AAEtC,QAAA,MAAM,SAAS,GAAG,CAAC,CAAS,KAAI;YAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,aAAa;AAClC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG;YACnC;iBAAO;AACL,gBAAA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG;YACnC;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,aAAa,IAAI,GAAG,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC,CAAC;QAC5C;AAAO,aAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC,CAAC;QAChD;AAAO,aAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC,CAAC;QAC5C;QAEA,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;AACxF,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;oBAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,CAAG,CAAC;AACtF,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC1E;qBAAO;oBACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;oBAC7F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,CAAG,CAAC;AACzF,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC7E;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;YAC7E;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;oBACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC5F;qBAAO;AACL,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;oBACnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC/F;gBACA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;YAC7F;QACF;aAAO;AACL,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;AACxF,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;oBAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,CAAG,CAAC;AACxF,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC5E;qBAAO;oBACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;oBAC3F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,CAAG,CAAC;AACvF,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC3E;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC;YAC5E;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;oBACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC9F;qBAAO;AACL,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;oBACrE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;gBAC7F;gBACA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,CAAC;YAC5F;QACF;IACF;iIAtVW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAW3B,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9C3C,4rIAkHA,EAAA,MAAA,EAAA,CAAA,++NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpFY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,8BAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOtG,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAG,mBAAmB,CAAA,CAAE,EAAA,OAAA,EACzB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAA,aAAA,EAGnG,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,cAAc,wBAAwB,CAAC,EAAA,QAAA,EAAA,4rIAAA,EAAA,MAAA,EAAA,CAAA,++NAAA,CAAA,EAAA;AAGQ,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,cAAc,sEACd,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAChB,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACf,SAAS,oEACN,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA;sBACpE,WAAW;uBAAC,gCAAgC;+EAGrB,iBAAiB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEvC9B,mBAAmB,CAAA;iIAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kIAAnB,mBAAmB,EAAA,OAAA,EAAA,CAFpB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CADtB,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAGrB,uBAAA,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,YAFpB,sBAAsB,CAAA,EAAA,CAAA,CAAA;;2FAErB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB;AACjC,iBAAA;;;ACND;;AAEG;;;;"}