4fc7c3da28d454c881039263ab44ae66997cb43bc8be670eb4833991cf3c8da81f5123d0258f180e08231e3f15a1cbeee3156ed0b7e0a660d1d97d5a35555a 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var shared = require('@vue/shared');
  5. var error = require('../../../../utils/error.js');
  6. var types = require('../../../../utils/types.js');
  7. var event = require('../../../../constants/event.js');
  8. const useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => {
  9. const _emit = (val) => {
  10. emit(event.UPDATE_MODEL_EVENT, val);
  11. emit(event.INPUT_EVENT, val);
  12. };
  13. const valueChanged = () => {
  14. if (props.range) {
  15. return ![minValue.value, maxValue.value].every((item, index) => item === initData.oldValue[index]);
  16. } else {
  17. return props.modelValue !== initData.oldValue;
  18. }
  19. };
  20. const setValues = () => {
  21. var _a, _b;
  22. if (props.min > props.max) {
  23. error.throwError("Slider", "min should not be greater than max.");
  24. }
  25. const val = props.modelValue;
  26. if (props.range && shared.isArray(val)) {
  27. if (val[1] < props.min) {
  28. _emit([props.min, props.min]);
  29. } else if (val[0] > props.max) {
  30. _emit([props.max, props.max]);
  31. } else if (val[0] < props.min) {
  32. _emit([props.min, val[1]]);
  33. } else if (val[1] > props.max) {
  34. _emit([val[0], props.max]);
  35. } else {
  36. initData.firstValue = val[0];
  37. initData.secondValue = val[1];
  38. if (valueChanged()) {
  39. if (props.validateEvent) {
  40. (_a = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change").catch((err) => error.debugWarn());
  41. }
  42. initData.oldValue = val.slice();
  43. }
  44. }
  45. } else if (!props.range && types.isNumber(val) && !Number.isNaN(val)) {
  46. if (val < props.min) {
  47. _emit(props.min);
  48. } else if (val > props.max) {
  49. _emit(props.max);
  50. } else {
  51. initData.firstValue = val;
  52. if (valueChanged()) {
  53. if (props.validateEvent) {
  54. (_b = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _b.call(elFormItem, "change").catch((err) => error.debugWarn());
  55. }
  56. initData.oldValue = val;
  57. }
  58. }
  59. }
  60. };
  61. setValues();
  62. vue.watch(() => initData.dragging, (val) => {
  63. if (!val) {
  64. setValues();
  65. }
  66. });
  67. vue.watch(() => props.modelValue, (val, oldVal) => {
  68. if (initData.dragging || shared.isArray(val) && shared.isArray(oldVal) && val.every((item, index) => item === oldVal[index]) && initData.firstValue === val[0] && initData.secondValue === val[1]) {
  69. return;
  70. }
  71. setValues();
  72. }, {
  73. deep: true
  74. });
  75. vue.watch(() => [props.min, props.max], () => {
  76. setValues();
  77. });
  78. };
  79. exports.useWatch = useWatch;
  80. //# sourceMappingURL=use-watch.js.map