You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
9.3 KiB

{"ast":null,"code":"import { watch } from 'vue';\nimport { isArray } from '@vue/shared';\nimport { throwError, debugWarn } from '../../../../utils/error.mjs';\nimport { isNumber } from '../../../../utils/types.mjs';\nimport { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../../constants/event.mjs';\nconst useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => {\n const _emit = val => {\n emit(UPDATE_MODEL_EVENT, val);\n emit(INPUT_EVENT, val);\n };\n const valueChanged = () => {\n if (props.range) {\n return ![minValue.value, maxValue.value].every((item, index) => item === initData.oldValue[index]);\n } else {\n return props.modelValue !== initData.oldValue;\n }\n };\n const setValues = () => {\n var _a, _b;\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 (_a = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a.call(elFormItem, \"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 (_b = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _b.call(elFormItem, \"change\").catch(err => debugWarn(err));\n }\n initData.oldValue = val;\n }\n }\n }\n };\n setValues();\n watch(() => initData.dragging, val => {\n if (!val) {\n setValues();\n }\n });\n watch(() => props.modelValue, (val, oldVal) => {\n if (initData.dragging || isArray(val) && isArray(oldVal) && val.every((item, index) => item === oldVal[index]) && initData.firstValue === val[0] && initData.secondValue === val[1]) {\n return;\n }\n setValues();\n }, {\n deep: true\n });\n watch(() => [props.min, props.max], () => {\n setValues();\n });\n};\nexport { useWatch };","map":{"version":3,"names":["useWatch","props","initData","minValue","maxValue","emit","elFormItem","_emit","val","UPDATE_MODEL_EVENT","INPUT_EVENT","valueChanged","range","value","every","item","index","oldValue","modelValue","setValues","_a","_b","min","max","throwError","isArray","firstValue","secondValue","validateEvent","validate","call","catch","err","debugWarn","slice","isNumber","Number","isNaN","watch","dragging","oldVal","deep"],"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'\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"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}