UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 23.8 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/slider/src/index.vue"],"sourcesContent":["<template>\n <div\n ref=\"sliderWrapper\"\n :class=\"sliderKls\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-orientation=\"vertical ? 'vertical' : 'horizontal'\"\n :aria-disabled=\"sliderDisabled\"\n >\n <div\n ref=\"slider\"\n :class=\"[\n ns.e('runway'),\n { 'show-input': showInput && !range },\n ns.is('disabled', sliderDisabled),\n ]\"\n :style=\"runwayStyle\"\n @click=\"onSliderClick\"\n >\n <div :class=\"ns.e('bar')\" :style=\"barStyle\" />\n <slider-button\n ref=\"firstButton\"\n :model-value=\"firstValue\"\n :vertical=\"vertical\"\n :tooltip-class=\"tooltipClass\"\n @update:model-value=\"setFirstValue\"\n />\n <slider-button\n v-if=\"range\"\n ref=\"secondButton\"\n :model-value=\"secondValue\"\n :vertical=\"vertical\"\n :tooltip-class=\"tooltipClass\"\n @update:model-value=\"setSecondValue\"\n />\n <div v-if=\"showStops\">\n <div\n v-for=\"(item, key) in stops\"\n :key=\"key\"\n :class=\"ns.e('stop')\"\n :style=\"getStopStyle(item)\"\n />\n </div>\n <template v-if=\"markList.length > 0\">\n <div>\n <div\n v-for=\"(item, key) in markList\"\n :key=\"key\"\n :style=\"getStopStyle(item.position)\"\n :class=\"[ns.e('stop'), ns.e('marks-stop')]\"\n />\n </div>\n <div :class=\"ns.e('marks')\">\n <slider-marker\n v-for=\"(item, key) in markList\"\n :key=\"key\"\n :mark=\"item.mark\"\n :style=\"getStopStyle(item.position)\"\n />\n </div>\n </template>\n </div>\n <el-input-number\n v-if=\"showInput && !range\"\n ref=\"input\"\n :model-value=\"firstValue\"\n :class=\"ns.e('input')\"\n :step=\"step\"\n :disabled=\"sliderDisabled\"\n :controls=\"showInputControls\"\n :min=\"min\"\n :max=\"max\"\n :debounce=\"debounce\"\n :size=\"sliderInputSize\"\n @update:model-value=\"setFirstValue\"\n @change=\"emitChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport ElInputNumber from '@element-plus/components/input-number'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport {\n debugWarn,\n isValidComponentSize,\n off,\n on,\n throwError,\n} from '@element-plus/utils'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport SliderButton from './button.vue'\nimport SliderMarker from './marker.vue'\nimport { useMarks } from './useMarks'\nimport { useSlide } from './useSlide'\nimport { useStops } from './useStops'\n\nimport type { PropType, Ref } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { Nullable } from '@element-plus/utils'\n\nexport default defineComponent({\n name: 'ElSlider',\n\n components: {\n ElInputNumber,\n SliderButton,\n SliderMarker,\n },\n\n props: {\n modelValue: {\n type: [Number, Array] as PropType<number | number[]>,\n default: 0,\n },\n min: {\n type: Number,\n default: 0,\n },\n max: {\n type: Number,\n default: 100,\n },\n step: {\n type: Number,\n default: 1,\n },\n showInput: {\n type: Boolean,\n default: false,\n },\n showInputControls: {\n type: Boolean,\n default: true,\n },\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n inputSize: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n showStops: {\n type: Boolean,\n default: false,\n },\n showTooltip: {\n type: Boolean,\n default: true,\n },\n formatTooltip: {\n type: Function as PropType<(val: number) => number | string>,\n default: undefined,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n range: {\n type: Boolean,\n default: false,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n height: {\n type: String,\n default: '',\n },\n debounce: {\n type: Number,\n default: 300,\n },\n label: {\n type: String,\n default: undefined,\n },\n tooltipClass: {\n type: String,\n default: undefined,\n },\n marks: Object,\n },\n\n emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, INPUT_EVENT],\n\n setup(props, { emit }) {\n const ns = useNamespace('slider')\n const initData = reactive({\n firstValue: 0,\n secondValue: 0,\n oldValue: 0,\n dragging: false,\n sliderSize: 1,\n })\n\n const {\n elFormItem,\n slider,\n firstButton,\n secondButton,\n sliderDisabled,\n minValue,\n maxValue,\n runwayStyle,\n barStyle,\n resetSize,\n emitChange,\n onSliderClick,\n setFirstValue,\n setSecondValue,\n } = useSlide(props, initData, emit)\n\n const { stops, getStopStyle } = useStops(\n props,\n initData,\n minValue,\n maxValue\n )\n\n const sliderWrapperSize = useSize()\n const sliderInputSize = computed(\n () => props.inputSize || sliderWrapperSize.value\n )\n\n const sliderKls = computed(() => [\n ns.b(),\n ns.m(sliderWrapperSize.value),\n ns.is('vertical', props.vertical),\n { [ns.m('with-input')]: props.showInput },\n ])\n\n const markList = useMarks(props)\n\n useWatch(props, initData, minValue, maxValue, emit, elFormItem)\n\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimal = `${item}`.split('.')[1]\n return decimal ? decimal.length : 0\n })\n return Math.max.apply(null, precisions)\n })\n\n const { sliderWrapper } = useLifecycle(props, initData, resetSize)\n\n const { firstValue, secondValue, oldValue, dragging, sliderSize } =\n toRefs(initData)\n\n const updateDragging = (val: boolean) => {\n initData.dragging = val\n }\n\n provide('SliderProvider', {\n ...toRefs(props),\n sliderSize,\n disabled: sliderDisabled,\n precision,\n emitChange,\n resetSize,\n updateDragging,\n })\n\n return {\n ns,\n firstValue,\n secondValue,\n oldValue,\n dragging,\n sliderSize,\n\n slider,\n firstButton,\n secondButton,\n sliderDisabled,\n runwayStyle,\n barStyle,\n emitChange,\n onSliderClick,\n getStopStyle,\n setFirstValue,\n setSecondValue,\n\n stops,\n markList,\n\n sliderWrapper,\n sliderWrapperSize,\n sliderInputSize,\n sliderKls,\n }\n },\n})\n\nconst useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => {\n const _emit = (val: number | number[]) => {\n emit(UPDATE_MODEL_EVENT, val)\n emit(INPUT_EVENT, val)\n }\n\n const valueChanged = () => {\n if (props.range) {\n return ![minValue.value, maxValue.value].every(\n (item, index) => item === initData.oldValue[index]\n )\n } else {\n return props.modelValue !== initData.oldValue\n }\n }\n\n const setValues = () => {\n if (props.min > props.max) {\n throwError('Slider', 'min should not be greater than max.')\n return\n }\n const val = props.modelValue\n if (props.range && Array.isArray(val)) {\n if (val[1] < props.min) {\n _emit([props.min, props.min])\n } else if (val[0] > props.max) {\n _emit([props.max, props.max])\n } else if (val[0] < props.min) {\n _emit([props.min, val[1]])\n } else if (val[1] > props.max) {\n _emit([val[0], props.max])\n } else {\n initData.firstValue = val[0]\n initData.secondValue = val[1]\n if (valueChanged()) {\n elFormItem.validate?.('change').catch((err) => debugWarn(err))\n initData.oldValue = val.slice()\n }\n }\n } else if (!props.range && typeof val === 'number' && !Number.isNaN(val)) {\n if (val < props.min) {\n _emit(props.min)\n } else if (val > props.max) {\n _emit(props.max)\n } else {\n initData.firstValue = val\n if (valueChanged()) {\n elFormItem.validate?.('change').catch((err) => debugWarn(err))\n initData.oldValue = val\n }\n }\n }\n }\n\n setValues()\n\n watch(\n () => initData.dragging,\n (val) => {\n if (!val) {\n setValues()\n }\n }\n )\n\n watch(\n () => props.modelValue,\n (val, oldVal) => {\n if (\n initData.dragging ||\n (Array.isArray(val) &&\n Array.isArray(oldVal) &&\n val.every((item, index) => item === oldVal[index]) &&\n initData.firstValue === val[0] &&\n initData.secondValue === val[1])\n ) {\n return\n }\n setValues()\n },\n {\n deep: true,\n }\n )\n\n watch(\n () => [props.min, props.max],\n () => {\n setValues()\n }\n )\n}\n\nconst useLifecycle = (props, initData, resetSize) => {\n const sliderWrapper: Ref<Nullable<HTMLElement>> = ref(null)\n\n onMounted(async () => {\n let valuetext\n if (props.range) {\n if (Array.isArray(props.modelValue)) {\n initData.firstValue = Math.max(props.min, props.modelValue[0])\n initData.secondValue = Math.min(props.max, props.modelValue[1])\n } else {\n initData.firstValue = props.min\n initData.secondValue = props.max\n }\n initData.oldValue = [initData.firstValue, initData.secondValue]\n valuetext = `${initData.firstValue}-${initData.secondValue}`\n } else {\n if (\n typeof props.modelValue !== 'number' ||\n Number.isNaN(props.modelValue)\n ) {\n initData.firstValue = props.min\n } else {\n initData.firstValue = Math.min(\n props.max,\n Math.max(props.min, props.modelValue)\n )\n }\n initData.oldValue = initData.firstValue\n valuetext = initData.firstValue\n }\n\n sliderWrapper.value.setAttribute('aria-valuetext', valuetext)\n\n // label screen reader\n sliderWrapper.value.setAttribute(\n 'aria-label',\n props.label ? props.label : `slider between ${props.min} and ${props.max}`\n )\n\n on(window, 'resize', resetSize)\n\n await nextTick()\n resetSize()\n })\n\n onBeforeUnmount(() => {\n off(window, 'resize', resetSize)\n })\n\n return {\n sliderWrapper,\n }\n}\n</script>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_normalizeStyle","_createVNode","_createBlock","_createCommentVNode","_Fragment","_renderList"],"mappings":"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"}