{"version":3,"file":"slider.vue2.cjs","sources":["../../../components/slider/slider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Renderer } from '@/components/renderer'\nimport { useFieldStore } from '@/components/form'\n\nimport { computed, reactive, ref, shallowReadonly, toRef, watch } from 'vue'\n\nimport SliderTrigger from './slider-trigger.vue'\nimport {\n  createStateProp,\n  emitEvent,\n  useHoverDelay,\n  useNameHelper,\n  useProps,\n} from '@vexip-ui/config'\nimport { useMoving, useSetTimeout } from '@vexip-ui/hooks'\nimport { decimalLength, throttle, toFixed } from '@vexip-ui/utils'\nimport { sliderProps } from './props'\n\nimport type { SliderMarker, SliderSlots } from './symbol'\n\nconst enum TriggerType {\n  START = 0,\n  END = 1,\n}\n\ndefineOptions({ name: 'Slider' })\n\nconst { idFor, state, labelId, disabled, loading, validateField, getFieldValue, setFieldValue } =\n  useFieldStore<number | number[]>(focus)\n\nconst _props = defineProps(sliderProps)\nconst props = useProps('slider', _props, {\n  state: createStateProp(state),\n  value: {\n    default: () => getFieldValue() ?? 0,\n    static: true,\n  },\n  min: 0,\n  max: 100,\n  step: {\n    default: 1,\n    validator: value => value > 0,\n  },\n  vertical: false,\n  hideTip: false,\n  tipTransfer: null,\n  disabled: () => disabled.value,\n  loading: () => loading.value,\n  loadingLock: false,\n  reverse: false,\n  range: false,\n  markers: null,\n  markerOnly: false,\n  tipHover: false,\n  flipMarker: false,\n  triggerFade: false,\n  tipProps: () => ({}),\n  sync: false,\n  rangeDraggable: false,\n  slots: () => ({}),\n})\n\nconst emit = defineEmits(['update:value'])\n\nconst slots = defineSlots<SliderSlots>()\n\nconst nh = useNameHelper('slider')\nconst hoverDelay = useHoverDelay()\n\nconst { timer } = useSetTimeout()\n\nconst stepOneValue = ref([0, 0]) // 按每 step 为 1 的 value\nconst sliding = ref([false, false])\nconst triggerType = ref(TriggerType.END)\nconst hovered = ref(false)\nconst triggerShow = ref(false)\n\nconst track = ref<HTMLElement>()\nconst startTrigger = ref<InstanceType<typeof SliderTrigger>>()\nconst endTrigger = ref<InstanceType<typeof SliderTrigger>>()\n\nconst markerList = computed(() => {\n  const markers = props.markers\n  const list: { value: number, marker: SliderMarker }[] = []\n\n  if (!markers) return list\n\n  if (Array.isArray(markers)) {\n    for (const raw of markers) {\n      const { value, ...marker } = typeof raw === 'number' ? { value: raw } : raw\n\n      if (!Number.isNaN(value)) {\n        list.push({ value, marker })\n      }\n    }\n  } else {\n    for (const value of Object.keys(markers)) {\n      const number = parseFloat(value)\n      const marker = markers[value]\n\n      if (!Number.isNaN(number)) {\n        list.push({\n          value: number,\n          marker: typeof marker === 'string' ? { label: marker } : marker,\n        })\n      }\n    }\n  }\n\n  return list.sort((prev, next) => prev.value - next.value)\n})\nconst hasMarkerLabel = computed(() => !!markerList.value.find(({ marker }) => marker.label))\nconst readonly = computed(() => props.loading && props.loadingLock)\nconst canDragRange = computed(() => props.range && props.rangeDraggable)\nconst className = computed(() => {\n  return {\n    [nh.b()]: true,\n    [nh.bs('vars')]: true,\n    [nh.bm('inherit')]: props.inherit,\n    [nh.bm(props.state)]: props.state !== 'default',\n    [nh.bm('vertical')]: props.vertical,\n    [nh.bm('sliding')]: sliding.value[1] || sliding.value[0],\n    [nh.bm('disabled')]: props.disabled,\n    [nh.bm('readonly')]: readonly.value,\n    [nh.bm('loading')]: props.loading,\n    [nh.bm('reverse')]: props.reverse,\n    [nh.bm('with-marker')]: hasMarkerLabel.value,\n    [nh.bm('flip-marker')]: props.flipMarker,\n    [nh.bm('hide-trigger')]: props.triggerFade && !triggerShow.value,\n    [nh.bm('range-draggable')]: canDragRange.value,\n  }\n})\nconst stepDigit = computed(() => decimalLength(props.step))\n// 按每 step 为 1 算的最小值\nconst stepOneMin = computed(() => Math.ceil(Math.min(props.min, props.max) / props.step))\n// 按每 step 为 1 算的最大值\nconst stepOneMax = computed(() => Math.floor(Math.max(props.min, props.max) / props.step))\nconst truthValue = computed(() => {\n  return [\n    toFixed(stepOneValue.value[0] * props.step, stepDigit.value),\n    toFixed(stepOneValue.value[1] * props.step, stepDigit.value),\n  ]\n})\nconst stepOneTotal = computed(() => stepOneMax.value - stepOneMin.value || 1)\nconst triggerPercent = computed(() => {\n  return [toPercent(stepOneValue.value[0]), toPercent(stepOneValue.value[1])]\n})\nconst fillerStyle = computed(() => {\n  const { vertical, reverse } = props\n\n  return {\n    [vertical ? (reverse ? 'bottom' : 'top') : reverse ? 'right' : 'left']:\n      `${Math.min(triggerPercent.value[0], triggerPercent.value[1])}%`,\n    [vertical ? 'height' : 'width']:\n      `${Math.abs(triggerPercent.value[0] - triggerPercent.value[1])}%`,\n  }\n})\nconst startTriggerStyle = computed(() => {\n  const { vertical, reverse } = props\n\n  return {\n    [reverse ? 'bottom' : 'top']: vertical ? `${triggerPercent.value[0]}%` : '50%',\n    [reverse ? 'right' : 'left']: vertical ? '50%' : `${triggerPercent.value[0]}%`,\n    zIndex: triggerType.value === TriggerType.START ? 1 : undefined,\n    transform: `translate(${reverse ? '' : '-'}50%, ${reverse ? '' : '-'}50%)`,\n  }\n})\nconst endTriggerStyle = computed(() => {\n  const { vertical, reverse } = props\n\n  return {\n    [reverse ? 'bottom' : 'top']: vertical ? `${triggerPercent.value[1]}%` : '50%',\n    [reverse ? 'right' : 'left']: vertical ? '50%' : `${triggerPercent.value[1]}%`,\n    zIndex: triggerType.value === TriggerType.END ? 1 : undefined,\n    transform: `translate(${reverse ? '' : '-'}50%, ${reverse ? '' : '-'}50%)`,\n  }\n})\nconst isDisabled = computed(() => props.disabled || readonly.value)\n\nconst commonSlotParams = shallowReadonly(\n  reactive({\n    values: truthValue,\n    sliding: sliding,\n    percent: triggerPercent,\n    disabled: toRef(props, 'disabled'),\n    loading: toRef(props, 'loading'),\n  }),\n)\n\nconst { target: filler } = useMoving({\n  disabled: computed(() => !canDragRange.value || isDisabled.value),\n  onStart: (state, event) => {\n    if (!track.value || event.button > 0) {\n      return false\n    }\n\n    clearTimeout(timer.sliding)\n    event.stopPropagation()\n    event.preventDefault()\n\n    trackRect = track.value.getBoundingClientRect()\n    state.startValue = stepOneValue.value[TriggerType.START]\n    state.endValue = stepOneValue.value[TriggerType.END]\n    state.valueDiff = (state.endValue as number) - (state.startValue as number)\n  },\n  onMove: (state, event) => {\n    if (!trackRect) {\n      return\n    }\n\n    event.preventDefault()\n\n    const vertical = props.vertical\n    const reverse = props.reverse\n    const delta = vertical ? state.deltaY : state.deltaX\n\n    for (let i = 0; i < 2; ++i) {\n      const type = i ? TriggerType.END : TriggerType.START\n      stepOneValue.value[type] =\n        (reverse ? -1 : 1) *\n          (delta / trackRect[vertical ? 'height' : 'width']) *\n          stepOneTotal.value +\n        Number(state[i ? 'endValue' : 'startValue'])\n    }\n\n    verifyValue()\n\n    if (stepOneValue.value[TriggerType.START] === stepOneMin.value) {\n      stepOneValue.value[TriggerType.END] =\n        stepOneValue.value[TriggerType.START] + (state.valueDiff as number)\n    } else if (stepOneValue.value[TriggerType.END] === stepOneMax.value) {\n      stepOneValue.value[TriggerType.START] =\n        stepOneValue.value[TriggerType.END] - (state.valueDiff as number)\n    }\n\n    emitChange('input')\n  },\n  onEnd: () => emitChange(),\n})\n\nparseValue(props.value)\nverifyValue()\n\nlet lastValue: number | number[] = props.range\n  ? truthValue.value[0] > truthValue.value[1]\n    ? [truthValue.value[1], truthValue.value[0]]\n    : [truthValue.value[0], truthValue.value[1]]\n  : truthValue.value[1]\nlet lastInputValue: number | number[] = Array.isArray(lastValue) ? [...lastValue] : lastValue\n\nwatch(\n  () => props.value,\n  value => {\n    if (isEqualValue(lastValue, value)) {\n      return\n    }\n\n    parseValue(value)\n    verifyValue()\n  },\n)\nwatch(\n  () => props.step,\n  () => {\n    parseValue(props.value)\n    verifyValue()\n  },\n)\n\ndefineExpose({\n  idFor,\n  sliding,\n  track,\n  startTrigger,\n  endTrigger,\n  isValueInRange,\n  focus,\n  blur,\n})\n\nfunction toPercent(value: string | number) {\n  return ((parseFloat(value as string) - stepOneMin.value) / stepOneTotal.value) * 100\n}\n\nfunction parseValue(value: number | number[]) {\n  if (props.range) {\n    const values = Array.isArray(value) ? value : [value, 100]\n\n    stepOneValue.value = [values[0] / props.step, values[1] / props.step]\n  } else {\n    stepOneValue.value = [stepOneMin.value, (Array.isArray(value) ? value[0] : value) / props.step]\n  }\n}\n\nfunction verifyValue() {\n  stepOneValue.value = stepOneValue.value.map(value => {\n    let computedValue = Math.max(stepOneMin.value, Math.min(stepOneMax.value, Math.round(value)))\n\n    if (props.markerOnly && markerList.value.length) {\n      let nearest = Infinity\n      let nearestMarker = 0\n\n      for (const { value } of markerList.value) {\n        const delta = Math.abs(computedValue * props.step - value)\n\n        if (nearest > delta) {\n          nearest = delta\n          nearestMarker = value\n        }\n      }\n\n      computedValue = nearestMarker / props.step\n    }\n\n    return computedValue\n  })\n}\n\nfunction setTriggerFade() {\n  if (hovered.value || sliding.value[0] || sliding.value[1]) return\n\n  triggerShow.value = false\n}\n\nfunction handlePointerEnter() {\n  clearTimeout(timer.hover)\n\n  timer.hover = setTimeout(() => {\n    hovered.value = true\n    triggerShow.value = true\n  }, hoverDelay.value)\n}\n\nfunction handlePointerLeave() {\n  clearTimeout(timer.hover)\n\n  timer.hover = setTimeout(() => {\n    hovered.value = false\n    setTriggerFade()\n  }, hoverDelay.value)\n}\n\nfunction emitChange(type: 'change' | 'input' = 'change', sync = props.sync) {\n  const [start, end] = truthValue.value\n  const value = props.range ? (start > end ? [end, start] : [start, end]) : end\n\n  if (type === 'change') {\n    if (isEqualValue(lastValue, value)) return\n\n    lastValue = value\n\n    if (!sync) {\n      lastInputValue = value\n\n      emit('update:value', value)\n      setFieldValue(value)\n    }\n\n    emitEvent(props.onChange, value)\n\n    if (!sync) {\n      validateField()\n    }\n  } else {\n    if (isEqualValue(lastInputValue, value)) return\n\n    lastInputValue = value\n\n    if (sync) {\n      emit('update:value', value)\n      setFieldValue(value)\n    }\n\n    emitEvent(props.onInput, value)\n\n    if (sync) {\n      validateField()\n    }\n  }\n}\n\nlet trackRect: DOMRect | null = null\n\nfunction computePointedValue(event: PointerEvent) {\n  if (!trackRect) return\n\n  const vertical = props.vertical\n  const reverse = props.reverse\n  const client = vertical ? event.clientY : event.clientX\n\n  stepOneValue.value[triggerType.value] =\n    (reverse ? -1 : 1) *\n      ((client - trackRect[vertical ? (reverse ? 'bottom' : 'top') : reverse ? 'right' : 'left']) /\n        trackRect[vertical ? 'height' : 'width']) *\n      stepOneTotal.value +\n    stepOneMin.value\n}\n\nfunction isEqualValue(prev: number | number[], current: number | number[]) {\n  if (Array.isArray(prev) && Array.isArray(current)) {\n    return prev[0] === current[0] && prev[1] === current[1]\n  }\n\n  return prev === current\n}\n\nconst throttleMove = throttle((event: PointerEvent) => {\n  if (!trackRect || props.disabled) return\n\n  event.preventDefault()\n\n  computePointedValue(event)\n  verifyValue()\n\n  if (startTrigger.value) {\n    startTrigger.value.updateTooltip()\n  }\n\n  if (endTrigger.value) {\n    endTrigger.value.updateTooltip()\n  }\n\n  // const [start, end] = truthValue.value\n  // const value = props.range ? (start > end ? [end, start] : [start, end]) : end\n\n  // if (!isEqualValue(lastValue, value)) {\n  //   lastValue = value\n  //   emitEvent(props.onInput, value)\n  // }\n  emitChange('input')\n})\n\nfunction handleTrackDown(event: PointerEvent) {\n  if (!track.value || isDisabled.value) return\n\n  clearTimeout(timer.sliding)\n  event.stopPropagation()\n  event.preventDefault()\n\n  trackRect = track.value.getBoundingClientRect()\n\n  if (props.range) {\n    const { vertical, reverse } = props\n    const client = vertical ? event.clientY : event.clientX\n    const downPercent =\n      ((reverse\n        ? trackRect[vertical ? 'bottom' : 'right'] - client\n        : client - trackRect[vertical ? 'top' : 'left']) /\n        trackRect[vertical ? 'height' : 'width']) *\n      100\n\n    triggerType.value =\n      Math.abs(downPercent - triggerPercent.value[0]) <\n      Math.abs(downPercent - triggerPercent.value[1])\n        ? TriggerType.START\n        : TriggerType.END\n  } else {\n    triggerType.value = TriggerType.END\n  }\n\n  sliding.value[triggerType.value] = true\n  triggerShow.value = true\n\n  computePointedValue(event)\n  verifyValue()\n  emitChange('input')\n\n  document.addEventListener('pointermove', handleMove)\n  document.addEventListener('pointerup', handleMoveEnd)\n}\n\nfunction handleMove(event: PointerEvent) {\n  throttleMove(event)\n}\n\nfunction handleMoveEnd() {\n  trackRect = null\n\n  document.removeEventListener('pointermove', handleMove)\n  document.removeEventListener('pointerup', handleMoveEnd)\n\n  emitChange()\n\n  timer.sliding = setTimeout(() => {\n    sliding.value[triggerType.value] = false\n    setTriggerFade()\n  }, 250)\n}\n\nfunction disableEvent<E extends Event>(event: E) {\n  if (event.cancelable) {\n    event.stopPropagation()\n    event.preventDefault()\n  }\n}\n\nfunction getPointStyle(value: number | string) {\n  const { vertical, reverse } = props\n  value = toPercent(value)\n\n  return {\n    [reverse ? 'bottom' : 'top']: vertical ? `${value}%` : '50%',\n    [reverse ? 'right' : 'left']: vertical ? '50%' : `${value}%`,\n    transform: `translate(${reverse ? '' : '-'}50%, ${reverse ? '' : '-'}50%)`,\n  }\n}\n\nfunction getMarkerStyle(value: number | string) {\n  const { vertical, reverse } = props\n  value = toPercent(value)\n\n  return {\n    [reverse ? 'bottom' : 'top']: vertical ? `${value}%` : undefined,\n    [reverse ? 'right' : 'left']: vertical ? undefined : `${value}%`,\n    transform: `translate${vertical ? 'Y' : 'X'}(${reverse ? '' : '-'}50%)`,\n  }\n}\n\nfunction isValueInRange(value: number | string) {\n  const number = parseFloat(value as string)\n\n  if (Number.isNaN(number)) return false\n\n  if (props.range) {\n    const min = Math.min(truthValue.value[0], truthValue.value[1])\n    const max = Math.max(truthValue.value[0], truthValue.value[1])\n\n    return number >= min && number <= max\n  } else {\n    return number <= truthValue.value[1]\n  }\n}\n\nfunction adjustValue(type: TriggerType, delta: number, emitEvent = false) {\n  stepOneValue.value[type] += delta\n\n  verifyValue()\n  emitEvent && emitChange()\n}\n\nfunction handlePlus(type: TriggerType, extra: 'ctrl' | 'shift' | 'alt') {\n  if (isDisabled.value) return\n\n  if (props.markerOnly || extra === 'alt') {\n    if (!markerList.value.length) return\n\n    const value = truthValue.value[type]\n\n    for (const { value: markerValue } of markerList.value) {\n      if (markerValue > value) {\n        stepOneValue.value[type] = markerValue\n        break\n      }\n    }\n\n    emitChange()\n  } else {\n    adjustValue(type, extra === 'shift' ? 5 : extra === 'ctrl' ? 20 : 1, true)\n  }\n}\n\nfunction handleMinus(type: TriggerType, extra: 'ctrl' | 'shift' | 'alt') {\n  if (isDisabled.value) return\n\n  if (props.markerOnly || extra === 'alt') {\n    if (!markerList.value.length) return\n\n    const value = truthValue.value[type]\n\n    for (let i = markerList.value.length - 1; i >= 0; --i) {\n      const { value: markerValue } = markerList.value[i]\n\n      if (markerValue < value) {\n        stepOneValue.value[type] = markerValue\n        break\n      }\n    }\n\n    emitChange()\n  } else {\n    adjustValue(type, extra === 'shift' ? -5 : extra === 'ctrl' ? -20 : -1)\n  }\n}\n\nfunction focus(options?: FocusOptions) {\n  ;(startTrigger.value || endTrigger.value)?.focus(options)\n}\n\nfunction blur() {\n  ;(startTrigger.value || endTrigger.value)?.blur()\n}\n</script>\n\n<template>\n  <div\n    :id=\"idFor\"\n    :class=\"className\"\n    tabindex=\"-1\"\n    role=\"group\"\n    :aria-labelledby=\"labelId\"\n    @pointerdown=\"handleTrackDown\"\n    @pointerenter=\"handlePointerEnter\"\n    @pointerleave=\"handlePointerLeave\"\n    @touchstart=\"disableEvent\"\n  >\n    <div :class=\"nh.be('container')\">\n      <div ref=\"track\" :class=\"nh.be('track')\"></div>\n      <slot name=\"filler\" v-bind=\"commonSlotParams\">\n        <Renderer :renderer=\"props.slots.filler\" :data=\"commonSlotParams\">\n          <div ref=\"filler\" :class=\"nh.be('filler')\" :style=\"fillerStyle\">\n            <div :class=\"nh.be('filler-inner')\"></div>\n          </div>\n        </Renderer>\n      </slot>\n      <template v-if=\"markerList.length\">\n        <div :class=\"nh.be('points')\">\n          <div\n            v-for=\"{ value, marker } in markerList\"\n            :key=\"value\"\n            :class=\"[nh.be('point'), isValueInRange(value) && nh.bem('point', 'in-range')]\"\n            :style=\"getPointStyle(value)\"\n          >\n            <slot\n              name=\"point\"\n              v-bind=\"commonSlotParams\"\n              :marker=\"marker\"\n              :marker-value=\"value\"\n              :in-range=\"isValueInRange(value)\"\n            >\n              <Renderer\n                :renderer=\"props.slots.point\"\n                :data=\"{\n                  ...commonSlotParams,\n                  marker,\n                  markerValue: value,\n                  inRange: isValueInRange(value)\n                }\"\n              >\n                <span :class=\"nh.be('dot')\"></span>\n              </Renderer>\n            </slot>\n          </div>\n        </div>\n        <div :class=\"nh.be('markers')\">\n          <template v-for=\"{ value, marker } in markerList\" :key=\"value\">\n            <div\n              v-bind=\"marker.attrs\"\n              :class=\"[nh.be('marker'), marker.class]\"\n              :style=\"[getMarkerStyle(value), marker.style as any]\"\n            >\n              <slot\n                name=\"marker\"\n                v-bind=\"commonSlotParams\"\n                :marker=\"marker\"\n                :marker-value=\"value\"\n                :in-range=\"isValueInRange(value)\"\n              >\n                <Renderer\n                  :renderer=\"props.slots.marker\"\n                  :data=\"{\n                    ...commonSlotParams,\n                    marker,\n                    markerValue: value,\n                    inRange: isValueInRange(value)\n                  }\"\n                >\n                  {{ marker.label }}\n                </Renderer>\n              </slot>\n            </div>\n          </template>\n        </div>\n      </template>\n      <SliderTrigger\n        v-if=\"props.range\"\n        ref=\"startTrigger\"\n        :value=\"truthValue[0]\"\n        :tip-transfer=\"props.tipTransfer\"\n        :hide-tip=\"props.hideTip\"\n        :vertical=\"props.vertical\"\n        :min=\"props.min\"\n        :max=\"props.max\"\n        :disabled=\"props.disabled\"\n        :loading=\"props.loading\"\n        :reverse=\"props.reverse\"\n        :sliding=\"sliding[0]\"\n        :tip-hover=\"props.tipHover\"\n        :style=\"startTriggerStyle\"\n        :tip-props=\"props.tipProps\"\n        @key-plus=\"handlePlus(0, $event)\"\n        @key-minus=\"handleMinus(0, $event)\"\n      >\n        <slot\n          v-if=\"slots.trigger || props.slots.trigger\"\n          name=\"trigger\"\n          type=\"start\"\n          :value=\"truthValue[0]\"\n          :sliding=\"sliding[0]\"\n          :percent=\"triggerPercent[0]\"\n          :disabled=\"props.disabled\"\n          :loading=\"props.loading\"\n        >\n          <Renderer\n            :renderer=\"props.slots.trigger\"\n            :data=\"{\n              type: 'start',\n              value: truthValue[0],\n              sliding: sliding[0],\n              percent: triggerPercent[0],\n              disabled: props.disabled,\n              loading: props.loading\n            }\"\n          ></Renderer>\n        </slot>\n        <template v-if=\"slots.tip || props.slots.tip\" #tip>\n          <slot\n            name=\"tip\"\n            type=\"start\"\n            :value=\"truthValue[0]\"\n            :sliding=\"sliding[0]\"\n            :percent=\"triggerPercent[0]\"\n            :disabled=\"props.disabled\"\n            :loading=\"props.loading\"\n          >\n            <Renderer\n              :renderer=\"props.slots.tip\"\n              :data=\"{\n                type: 'start',\n                value: truthValue[0],\n                sliding: sliding[0],\n                percent: triggerPercent[0],\n                disabled: props.disabled,\n                loading: props.loading\n              }\"\n            >\n              {{ truthValue[0] }}\n            </Renderer>\n          </slot>\n        </template>\n      </SliderTrigger>\n      <SliderTrigger\n        ref=\"endTrigger\"\n        :value=\"truthValue[1]\"\n        :tip-transfer=\"props.tipTransfer\"\n        :hide-tip=\"props.hideTip\"\n        :vertical=\"props.vertical\"\n        :min=\"props.min\"\n        :max=\"props.max\"\n        :disabled=\"props.disabled\"\n        :loading=\"props.loading\"\n        :reverse=\"props.reverse\"\n        :sliding=\"sliding[1]\"\n        :tip-hover=\"props.tipHover\"\n        :style=\"endTriggerStyle\"\n        :tip-props=\"props.tipProps\"\n        @key-plus=\"handlePlus(1, $event)\"\n        @key-minus=\"handleMinus(1, $event)\"\n      >\n        <slot\n          v-if=\"slots.trigger || props.slots.trigger\"\n          name=\"trigger\"\n          type=\"end\"\n          :value=\"truthValue[1]\"\n          :sliding=\"sliding[1]\"\n          :percent=\"triggerPercent[1]\"\n          :disabled=\"props.disabled\"\n          :loading=\"props.loading\"\n        >\n          <Renderer\n            :renderer=\"props.slots.trigger\"\n            :data=\"{\n              type: 'end',\n              value: truthValue[1],\n              sliding: sliding[1],\n              percent: triggerPercent[1],\n              disabled: props.disabled,\n              loading: props.loading\n            }\"\n          ></Renderer>\n        </slot>\n        <template v-if=\"slots.tip || props.slots.tip\" #tip>\n          <slot\n            name=\"tip\"\n            type=\"end\"\n            :value=\"truthValue[1]\"\n            :sliding=\"sliding[1]\"\n            :percent=\"triggerPercent[1]\"\n            :disabled=\"props.disabled\"\n            :loading=\"props.loading\"\n          >\n            <Renderer\n              :renderer=\"props.slots.tip\"\n              :data=\"{\n                type: 'end',\n                value: truthValue[1],\n                sliding: sliding[1],\n                percent: triggerPercent[1],\n                disabled: props.disabled,\n                loading: props.loading\n              }\"\n            >\n              {{ truthValue[1] }}\n            </Renderer>\n          </slot>\n        </template>\n      </SliderTrigger>\n    </div>\n  </div>\n</template>\n"],"names":["idFor","state","labelId","disabled","loading","validateField","getFieldValue","setFieldValue","useFieldStore","focus","_props","__props","props","useProps","createStateProp","value","emit","__emit","slots","_useSlots","nh","useNameHelper","hoverDelay","useHoverDelay","timer","useSetTimeout","stepOneValue","ref","sliding","triggerType","hovered","triggerShow","track","startTrigger","endTrigger","markerList","computed","markers","list","raw","marker","number","prev","next","hasMarkerLabel","readonly","canDragRange","className","stepDigit","decimalLength","stepOneMin","stepOneMax","truthValue","toFixed","stepOneTotal","triggerPercent","toPercent","fillerStyle","vertical","reverse","startTriggerStyle","endTriggerStyle","isDisabled","commonSlotParams","shallowReadonly","reactive","toRef","filler","useMoving","event","trackRect","delta","i","type","verifyValue","emitChange","parseValue","lastValue","lastInputValue","watch","isEqualValue","__expose","isValueInRange","blur","values","computedValue","nearest","nearestMarker","setTriggerFade","handlePointerEnter","handlePointerLeave","sync","start","end","emitEvent","computePointedValue","client","current","throttleMove","throttle","handleTrackDown","downPercent","handleMove","handleMoveEnd","disableEvent","getPointStyle","getMarkerStyle","min","max","adjustValue","handlePlus","extra","markerValue","handleMinus","options","_a","_createElementBlock","_unref","_createElementVNode","_normalizeClass","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","_createVNode","Renderer","_Fragment","_openBlock","_renderList","_normalizeStyle","_mergeProps","_createTextVNode","_toDisplayString","_createBlock","SliderTrigger","_cache","$event"],"mappings":"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"}