vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 42.2 kB
Source Map (JSON)
{"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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"}