{"version":3,"file":"acorex-components-range-slider.mjs","sources":["../../../../packages/components/range-slider/src/lib/range-slider.class.ts","../../../../packages/components/range-slider/src/lib/range-slider.component.ts","../../../../packages/components/range-slider/src/lib/range-slider.component.html","../../../../packages/components/range-slider/src/lib/range-slider.module.ts","../../../../packages/components/range-slider/src/acorex-components-range-slider.ts"],"sourcesContent":["//import { AXRange } from '@acorex/cdk/common';\n\nimport { AXEvent } from '@acorex/cdk/common';\n\nexport interface AXRangeStartEvent extends AXEvent {\n  data: any;\n}\nexport type AXRangeSliderValue = number | [number, number] | undefined;\nexport type AXRangeSliderMode = 'single' | 'dual';\nexport type AXRangeSliderSnapMode = 'both' | 'start' | 'end';\nexport type AXRangeSliderTooltipMode = 'start' | 'end';\nexport type AXRangeSliderHandler = 'first' | 'second';\n","import {\n  AXComponent,\n  AXOrientation,\n  AXStyleColorType,\n  AXValuableComponent,\n  MXValueComponent,\n} from '@acorex/cdk/common';\nimport { isPlatformBrowser, NgStyle } from '@angular/common';\nimport {\n  Component,\n  computed,\n  effect,\n  forwardRef,\n  HostBinding,\n  HostListener,\n  inject,\n  input,\n  model,\n  NgZone,\n  PLATFORM_ID,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport {\n  AXRangeSliderMode,\n  AXRangeSliderSnapMode,\n  AXRangeSliderTooltipMode,\n  AXRangeSliderValue,\n} from './range-slider.class';\n\n/**\n * @description\n * A range slider for selecting a range of values, supporting both single and dual modes.\n * The slider offers step, snap, and tooltip configurations.\n *\n * @example\n * <ax-range-slider [min]=\"0\" [max]=\"100\" [step]=\"1\" [mode]=\"'dual'\"></ax-range-slider>\n */\n@Component({\n  selector: 'ax-range-slider',\n  templateUrl: './range-slider.component.html',\n  styleUrls: ['./range-slider.component.css'],\n  inputs: ['disabled', 'readonly'],\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [\n    { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXRangeSliderComponent),\n      multi: true,\n    },\n    { provide: AXComponent, useExisting: AXRangeSliderComponent },\n  ],\n  imports: [NgStyle],\n})\nexport class AXRangeSliderComponent extends classes(MXValueComponent<AXRangeSliderValue>) {\n  private zone = inject(NgZone);\n  protected override platformID = inject(PLATFORM_ID);\n\n  /**\n   * @description\n   * The orientation of the slider, either 'horizontal' or 'vertical'.\n   * @default 'horizontal'\n   */\n  readonly orientation = input<AXOrientation>('horizontal');\n\n  /**\n   * @description\n   * Color theme for the slider, affecting highlight, tooltip, and handler.\n   * @default 'primary'\n   */\n  readonly color = input<Exclude<AXStyleColorType, 'default'>>('primary');\n\n  /**\n   * @description\n   * The value(s) of the slider. Can be a single number for single mode or an array of two numbers for dual mode.\n   */\n  values = model<AXRangeSliderValue>(this.value);\n\n  /**\n   * @description\n   * The mode of the slider, either 'single' or 'dual'.\n   * @default 'single'\n   */\n  readonly mode = input<AXRangeSliderMode>('single');\n\n  /**\n   * @description\n   * The minimum value of the slider.\n   * @default 0\n   */\n  readonly min = input<number>(0);\n\n  /**\n   * @description\n   * The maximum value of the slider.\n   * @default 100\n   */\n  readonly max = input<number>(100);\n\n  /**\n   * @description\n   * The step increment for value changes.\n   * @default 1\n   */\n  readonly step = input<number>(1);\n\n  /**\n   * @description\n   * The snapping increment for the slider.\n   * @default 1\n   */\n  readonly snap = input<number>(1);\n\n  /**\n   * @description\n   * Mode for displaying tooltips, can be at the start, end, or both.\n   * @default 'end'\n   */\n  readonly tooltipMode = input<AXRangeSliderTooltipMode>('end');\n\n  /**\n   * @description\n   * Mode for snapping, can snap at the start, end, or both.\n   * @default 'start'\n   */\n  readonly snapMode = input<AXRangeSliderSnapMode>('start');\n\n  /**\n   * @description\n   * Whether the slider should have steps.\n   * @default true\n   */\n  readonly hasStep = input(true);\n\n  /**\n   * @description\n   * Whether the slider should display snapping.\n   * @default false\n   */\n  readonly hasSnap = input(false);\n\n  /**\n   * @description\n   * Whether the slider should display labels for snapping points.\n   * @default Value derived from `hasSnap()`\n   */\n  readonly hasLable = input(this.hasSnap());\n\n  /**\n   * @description\n   * Whether the slider should display tooltips.\n   * @default false\n   */\n  readonly hasTooltip = input(false);\n\n  /**\n   * @ignore\n   */\n  height = 0.25;\n  /**\n   * @ignore\n   */\n  newHeight = 'var(--ax-comp-range-slider-size)';\n  /**\n   * @ignore\n   */\n  range = computed(() => this.max() - this.min());\n  /**\n   * @ignore\n   */\n  isHorizontal = computed(() => this.orientation() === 'horizontal');\n  /**\n   * @ignore\n   */\n  isDual = computed(() => this.mode() === 'dual');\n  /**\n   * @ignore\n   */\n  correctMinMax = computed(() => this.max() - this.min() > 0);\n  /**\n   * @ignore\n   */\n\n  protected calculateSnapBar = computed<number[] | null>(() => {\n    if (this.hasSnap()) {\n      if (this.snap() <= 0) {\n        console.error('Wrong Snap!');\n        return null;\n      }\n      let array = [];\n      for (let i = this.min(); i < this.max(); i += this.snap()) {\n        array.push(i);\n      }\n      array = [...array, this.max()];\n      if (array[0] < 0) {\n        array = array.map((i) => i + -array[0]).sort((a, b) => a - b);\n      }\n      if (array[0] > 0) {\n        array = array.map((i) => i - array[0]).sort((a, b) => a - b);\n      }\n      if (array.length > 20) {\n        console.warn(`Too many snap points (${array.length}). Max allowed is 20.`);\n        return null;\n      }\n      return array;\n    }\n    return null;\n  });\n  /**\n   * @ignore\n   */\n  protected calculatePos = computed<AXRangeSliderValue>(() => {\n    if (this.isDual() && this.values()) {\n      return [\n        ((this.values()[0] - this.min()) / this.range()) * 100,\n        ((this.values()[1] - this.min()) / this.range()) * 100,\n      ];\n    } else {\n      return (((this.values() as number) - this.min()) / this.range()) * 100;\n    }\n  });\n  /**\n   * @ignore\n   */\n  private choosenHandler: 'first' | 'second' | undefined = undefined;\n  /**\n   * @ignore\n   */\n  private sliderElement: HTMLElement | null = null;\n  /**\n   * @ignore\n   */\n  protected AXRangeSliderHighlight = computed(() =>\n    this.isHorizontal()\n      ? {\n          left: this.isDual() ? this.calculatePos()[0] + '%' : '0%',\n          width: this.isDual() ? this.calculatePos()[1] - this.calculatePos()[0] + '%' : this.calculatePos() + '%',\n        }\n      : {\n          height: this.isDual() ? this.calculatePos()[1] - this.calculatePos()[0] + '%' : this.calculatePos() + '%',\n          bottom: this.mode() === 'dual' ? this.calculatePos()[0] + '%' : '0%',\n        },\n  );\n  /**\n   * @ignore\n   */\n  protected AXRangeSliderHandler1 = computed(() =>\n    this.isHorizontal()\n      ? {\n          left: this.isDual() ? this.calculatePos()[0] + '%' : (this.calculatePos() as number) + '%',\n        }\n      : {\n          bottom: this.isDual()\n            ? 'calc(' + this.calculatePos()[0] + '% - ' + 6 * this.height + 'rem)'\n            : 'calc(' + this.calculatePos() + '% - ' + 6 * this.height + 'rem)',\n        },\n  );\n  /**\n   * @ignore\n   */\n  protected AXRangeSliderHandler2 = computed(() =>\n    this.isHorizontal()\n      ? {\n          left: this.calculatePos()[1] + '%',\n        }\n      : {\n          bottom: 'calc(' + this.calculatePos()[1] + '% - ' + 6 * this.height + 'rem)',\n        },\n  );\n  /**\n   * @ignore\n   */\n  protected AXRangeSliderStep = computed(() => {\n    if (this.isHorizontal()) {\n      switch (this.snapMode()) {\n        case 'both':\n          return { top: '0', height: 8 * this.height + 'rem' };\n        case 'start':\n          return { top: 4 * this.height + 'rem', height: 4 * this.height + 'rem' };\n        case 'end':\n          return { top: -2 * this.height + 'rem', height: 4 * this.height + 'rem' };\n      }\n    } else {\n      switch (this.snapMode()) {\n        case 'both':\n          return { top: '0', width: 8 * this.height + 'rem' };\n        case 'start':\n          return { left: 4 * this.height + 'rem', width: 4 * this.height + 'rem' };\n        case 'end':\n          return { left: -2 * this.height + 'rem', width: 4 * this.height + 'rem' };\n      }\n    }\n  });\n  /**\n   * @ignore\n   */\n  protected AXRangeLabel = computed(() => {\n    if (this.isHorizontal()) {\n      switch (this.snapMode()) {\n        case 'both':\n          return { top: 6 * this.height + 'rem' };\n        case 'start':\n          return { top: 4 * this.height + 'rem' };\n        case 'end':\n          return { top: -6 * this.height + 'rem' };\n      }\n    } else {\n      switch (this.snapMode()) {\n        case 'both':\n          return { left: 8 * this.height + 'rem' };\n        case 'start':\n          return { left: 4 * this.height + 'rem' };\n        case 'end':\n          return { left: -8 * this.height + 'rem' };\n      }\n    }\n  });\n  isUserInteraction = false;\n  constructor() {\n    super();\n    effect(() => {\n      this.commitValue(this.values(), this.isUserInteraction);\n      this.isUserInteraction = false;\n    });\n    effect(() => {\n      if (this.correctMinMax()) {\n        this.fixInitializeValues();\n        this.fixChangingMode();\n      } else {\n        console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);\n      }\n    });\n    this.onValueChanged.subscribe((value) => {\n      if (value?.value != undefined && value?.value != null && this.values() !== value.value)\n        this.values.set(value.value);\n    });\n  }\n  /**\n   * @ignore\n   */\n  protected override ngOnInit(): void {\n    super.ngOnInit();\n    if (!this.correctMinMax()) {\n      console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);\n    } else {\n      this.initializeValues();\n    }\n  }\n  /**\n   * @ignore\n   */\n  protected override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    if (isPlatformBrowser(this.platformID)) {\n      window.removeEventListener('mousemove', this.moveListener);\n      window.removeEventListener('mouseup', this.endListener);\n      window.removeEventListener('touchmove', this.moveListener);\n      window.removeEventListener('touchend', this.endListener);\n    }\n  }\n  private moveListener;\n  private endListener;\n  /**\n   * @ignore\n   */\n  protected onStartHandler(event: MouseEvent | TouchEvent, circle: 'first' | 'second'): void {\n    this.zone.runOutsideAngular(() => {\n      if (this.disabled || this.readonly || !this.correctMinMax()) return;\n      event.preventDefault();\n      this.sliderElement = (event.target as HTMLElement).closest('.ax-range-slider') as HTMLElement;\n      if (this.sliderElement && isPlatformBrowser(this.platformID)) {\n        this.choosenHandler = circle;\n        const moveListener = (moveEvent: MouseEvent | TouchEvent) => this.onMove(moveEvent, circle);\n        const endListener = () => this.onEnd(moveListener, endListener);\n        [this.moveListener, this.endListener] = [moveListener, endListener];\n        window.addEventListener('mousemove', moveListener);\n        window.addEventListener('mouseup', endListener);\n        window.addEventListener('touchmove', moveListener, { passive: true });\n        window.addEventListener('touchend', endListener);\n      }\n    });\n  }\n  /**\n   * @ignore\n   */\n  protected onStartBar(event: MouseEvent | TouchEvent) {\n    this.isUserInteraction = true;\n\n    let circle: 'first' | 'second' = 'first';\n    this.sliderElement = (event.target as HTMLElement).closest('.ax-range-slider') as HTMLElement;\n    this.zone.runOutsideAngular(() => {\n      if (!this.sliderElement || this.disabled || this.readonly) return;\n      const calculatePercent = this.calculatePercentOnMove(event);\n      const exactValue = this.getValueFromPercent(calculatePercent);\n      let value = Number.parseFloat(exactValue.toFixed(2));\n      if (this.hasStep()) {\n        value = this.roundToStep(value);\n      }\n      if (this.isDual()) {\n        if (Math.abs(exactValue - this.values()[0]) > Math.abs(exactValue - this.values()[1])) {\n          this.values.set([this.values()[0], value]);\n          circle = 'second';\n        } else {\n          if (this.values()[1] === this.min()) {\n            this.values.set([this.values()[0], value]);\n            circle = 'second';\n          } else {\n            this.values.set([value, this.values()[1]]);\n            circle = 'first';\n          }\n        }\n      } else {\n        this.values.set(value);\n      }\n    });\n    this.onStartHandler(event, circle);\n  }\n  /**\n   * @ignore\n   */\n  protected onMove(event: MouseEvent | TouchEvent, circle: 'first' | 'second'): void {\n    this.isUserInteraction = true;\n\n    if (!this.sliderElement) return;\n    const calculatePercent = this.calculatePercentOnMove(event);\n    let value = this.getValueFromPercent(calculatePercent);\n    value = Number.parseFloat(value.toFixed(2));\n    if (this.hasStep()) {\n      value = this.roundToStep(value);\n    }\n    if (this.isDual()) {\n      if (circle === 'first' && value <= this.values()[1]) {\n        if (this.checkValues(value, 'first', this.values()[1]) && this.values()[0] !== value) {\n          this.values.set([value, this.values()[1]]);\n        }\n      } else if (circle === 'second' && value >= this.values()[0] && this.values()[1] !== value) {\n        if (this.checkValues(value, 'second', this.values()[0])) {\n          this.values.set([this.values()[0], value]);\n        }\n      }\n    } else {\n      if (this.checkValue(value) && this.values() !== value) {\n        this.values.set(value);\n      }\n    }\n  }\n  /**\n   * @ignore\n   */\n  protected onEnd(moveListener: (event: MouseEvent | TouchEvent) => void, endListener: () => void): void {\n    window.removeEventListener('mousemove', moveListener);\n    window.removeEventListener('mouseup', endListener);\n    window.removeEventListener('touchmove', moveListener);\n    window.removeEventListener('touchend', endListener);\n    this.sliderElement = null;\n  }\n  /**\n   * @ignore\n   */\n  private initializeValues() {\n    this.fixInitializeUndefined();\n    this.fixInitializeValues();\n    this.fixInitializeStep();\n  }\n  /**\n   * @ignore\n   */\n  private fixInitializeUndefined() {\n    if (typeof this.values() === 'undefined') {\n      if (this.isDual()) {\n        this.values.set([this.min(), this.max()]);\n      } else {\n        this.values.set(this.min());\n      }\n    }\n  }\n  /**\n   * @ignore\n   */\n  private fixInitializeValues() {\n    if (this.isDual() && this.values()[0] > this.values()[1]) {\n      this.values.set([this.values()[1], this.values()[0]]);\n    }\n    if (typeof this.values() === 'number' && !this.checkValue(this.values() as number)) {\n      this.values.set(this.min());\n    } else if (typeof this.values() !== 'number' && !this.checkValues(this.values()[0], 'first', this.values()[1])) {\n      this.values.set([this.min(), this.max()]);\n    }\n  }\n  /**\n   * @ignore\n   */\n  private fixInitializeStep() {\n    if (this.step() !== 1) {\n      if (this.isDual()) {\n        this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1])]);\n        if (this.values()[0] === this.values()[1]) {\n          this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1]) + this.step()]);\n        }\n      } else {\n        this.values.update((old) => this.roundToStep(old as number));\n      }\n    }\n  }\n  /**\n   * @ignore\n   */\n  private fixChangingMode() {\n    if (typeof this.values() === 'number' && this.isDual()) {\n      this.values.set([this.min(), this.max()]);\n    } else if (typeof this.values() !== 'number' && !this.isDual()) {\n      this.values.set(this.min());\n    }\n  }\n  /**\n   * @ignore\n   */\n  private calculatePercentOnMove(event: MouseEvent | TouchEvent): number {\n    const sliderRect = this.sliderElement.getBoundingClientRect();\n    let percent: number;\n    if (this.isHorizontal()) {\n      const clientX = event instanceof MouseEvent ? event.clientX : (event as TouchEvent).touches[0].clientX;\n      const x = clientX - sliderRect.left;\n      percent = (x / sliderRect.width) * 100;\n    } else {\n      const clientY = event instanceof MouseEvent ? event.clientY : (event as TouchEvent).touches[0].clientY;\n      const y = -(clientY - sliderRect.bottom); //reverce slider from bottom to top\n      percent = (y / sliderRect.height) * 100;\n    }\n    if (percent < 0) {\n      percent = 0;\n    } else if (percent > 100) {\n      percent = 100;\n    }\n    return percent;\n  }\n\n  /**\n   * @ignore\n   */\n  private roundToStep(value: number): number {\n    const lower = Math.max(this.min(), Math.floor((value - this.min()) / this.step()) * this.step() + this.min());\n    const upper = Math.min(this.max(), lower + this.step());\n    if (value - lower < upper - value) {\n      return lower;\n    } else {\n      return upper;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private checkValue(x: number): boolean {\n    if (x >= this.min() && x <= this.max()) return true;\n    else return false;\n  }\n  /**\n   * @ignore\n   */\n  private checkValues(value1: number, y: 'first' | 'second', value2: number): boolean {\n    if (value1 >= this.min() && value1 <= this.max()) {\n      if (y === 'first') {\n        if (value1 <= value2 && value2 <= this.max()) return true;\n        else return false;\n      } else {\n        if (value1 >= value2 && value2 >= this.min()) return true;\n        else return false;\n      }\n    } else return false;\n  }\n  /**\n   * @ignore\n   */\n  protected getValueFromPercent(value: number) {\n    return this.min() + (value * (this.max() - this.min())) / 100;\n  }\n  /**\n   * @ignore\n   */\n  protected getPercantage(value: number): number {\n    return this.range() !== 0 ? (value / this.range()) * 100 : 0;\n  }\n  /**\n   * Increase a step to value if slider in single mode\n   * and increase a step the second value if slider in dual mode\n   * @method increaseStep\n   */\n  public increaseStep(): void {\n    if (this.isDual()) {\n      const newValue = this.roundToStep(this.values()[1] + this.step());\n      this.values.set([this.values()[0], newValue]);\n    } else {\n      const newValue = this.roundToStep((this.values() as number) + this.step());\n      this.values.set(newValue);\n    }\n  }\n  /**\n   * Decrease a step to value if slider in single mode\n   * and decrease a step the second value if slider in dual mode\n   * @method decreaseStep\n   */\n  public decreaseStep() {\n    if (this.isDual()) {\n      const newValue = this.roundToStep(this.values()[0] - this.step());\n      this.values.set([newValue, this.values()[1]]);\n    } else {\n      const newValue = this.roundToStep((this.values() as number) - this.step());\n      this.values.set(newValue);\n    }\n  }\n  /**\n   * @ignore\n   */\n  @HostListener('wheel', ['$event'])\n  onWheel(event: WheelEvent) {\n    this.isUserInteraction = true;\n\n    this.zone.runOutsideAngular(() => {\n      event.preventDefault();\n      if (!this.choosenHandler || this.readonly || this.disabled || !this.correctMinMax()) return;\n      let newValue;\n      if (this.isDual()) {\n        if (event.deltaY < 0) {\n          if (this.choosenHandler === 'first') {\n            newValue = this.roundToStep((this.values()[0] as number) + this.step());\n            if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) && this.values()[0] !== newValue) {\n              this.values.update((old) => [this.roundToStep((old[0] as number) + this.step()), old[1]]);\n            }\n          } else {\n            newValue = this.roundToStep((this.values()[1] as number) + this.step());\n            if (newValue <= this.max() && this.values()[1] !== newValue) {\n              this.values.update((old) => [old[0], this.roundToStep((old[1] as number) + this.step())]);\n            }\n          }\n        } else {\n          if (this.choosenHandler === 'first') {\n            newValue = this.roundToStep((this.values()[0] as number) - this.step());\n            if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) && this.values() !== newValue) {\n              this.values.update((old) => [this.roundToStep((old[0] as number) - this.step()), old[1]]);\n            }\n          } else {\n            newValue = this.roundToStep((this.values()[1] as number) - this.step());\n            if (this.checkValues(newValue, this.choosenHandler, this.values()[0]) && this.values()[1] !== newValue) {\n              this.values.update((old) => [old[0], this.roundToStep((old[1] as number) - this.step())]);\n            }\n          }\n        }\n      } else {\n        if (event.deltaY < 0) {\n          if (this.checkValue(this.roundToStep((this.values() as number) + this.step()))) {\n            this.values.update((old) => this.roundToStep((old as number) + this.step()));\n          }\n        } else {\n          if (this.checkValue(this.roundToStep((this.values() as number) - this.step()))) {\n            this.values.update((old) => this.roundToStep((old as number) - this.step()));\n          }\n        }\n      }\n    });\n  }\n  /**\n   * @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string[] {\n    return [\n      `ax-${this.color()}`,\n      `${this.disabled ? 'ax-state-disabled' : ''}`,\n      `${this.readonly ? 'ax-state-readonly' : ''}`,\n    ];\n  }\n}\n","@if (correctMinMax()) {\n  <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n    <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n    <div\n      class=\"ax-range-slider-highlight\"\n      [ngStyle]=\"AXRangeSliderHighlight()\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    ></div>\n\n    <div\n      class=\"ax-range-slider-handler\"\n      [ngStyle]=\"AXRangeSliderHandler1()\"\n      name=\"first\"\n      (mousedown)=\"onStartBar($event)\"\n      (touchstart)=\"onStartBar($event)\"\n    >\n      @if (hasTooltip()) {\n        <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n      }\n    </div>\n\n    @if (isDual()) {\n      <div\n        class=\"ax-range-slider-handler\"\n        [ngStyle]=\"AXRangeSliderHandler2()\"\n        name=\"second\"\n        (mousedown)=\"onStartBar($event)\"\n        (touchstart)=\"onStartBar($event)\"\n      >\n        @if (hasTooltip()) {\n          <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n        }\n      </div>\n    }\n    @if (hasSnap()) {\n      <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n        @for (item of calculateSnapBar(); track $index) {\n          <div\n            class=\"ax-range-slider-steps\"\n            [ngStyle]=\"isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\"\n          >\n            @if (hasLable()) {\n              <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n                {{ item + min() }}\n              </div>\n            }\n          </div>\n        }\n      </div>\n    }\n  </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXRangeSliderComponent } from './range-slider.component';\n\n@NgModule({\n  imports: [CommonModule, AXRangeSliderComponent],\n  exports: [AXRangeSliderComponent],\n})\nexport class AXRangeSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}