UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 6.46 kB
{"version":3,"file":"use-watch.mjs","sources":["../../../../../../../packages/components/slider/src/composables/use-watch.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { debugWarn, isArray, isNumber, throwError } from '@element-plus/utils'\n\nimport type { ComputedRef, SetupContext } from 'vue'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemContext } from '@element-plus/components/form'\nimport type { SliderEmits, SliderInitData, SliderProps } from '../slider'\n\nexport const useWatch = (\n props: SliderProps,\n initData: SliderInitData,\n minValue: ComputedRef<number>,\n maxValue: ComputedRef<number>,\n emit: SetupContext<SliderEmits>['emit'],\n elFormItem: FormItemContext\n) => {\n const _emit = (val: Arrayable<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 as number[])[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 }\n const val = props.modelValue\n if (props.range && 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 if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n initData.oldValue = val.slice()\n }\n }\n } else if (!props.range && isNumber(val) && !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 if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\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 (isArray(val) &&\n 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"],"names":[],"mappings":"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"}