index.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
  2. const require_error = require("../../utils/error.js");
  3. const require_runtime = require("../../utils/vue/props/runtime.js");
  4. let lodash_unified = require("lodash-unified");
  5. let vue = require("vue");
  6. let _vue_shared = require("@vue/shared");
  7. //#region ../../packages/hooks/use-empty-values/index.ts
  8. const emptyValuesContextKey = Symbol("emptyValuesContextKey");
  9. const SCOPE = "use-empty-values";
  10. const DEFAULT_EMPTY_VALUES = [
  11. "",
  12. void 0,
  13. null
  14. ];
  15. const DEFAULT_VALUE_ON_CLEAR = void 0;
  16. /**
  17. * @deprecated Removed after 3.0.0, Use `UseEmptyValuesProps` instead.
  18. */
  19. const useEmptyValuesProps = require_runtime.buildProps({
  20. /**
  21. * @description empty values supported by the component
  22. */
  23. emptyValues: Array,
  24. /**
  25. * @description return value when cleared, if you want to set `undefined`, use `() => undefined`
  26. */
  27. valueOnClear: {
  28. type: require_runtime.definePropType([
  29. String,
  30. Number,
  31. Boolean,
  32. Function
  33. ]),
  34. default: void 0,
  35. validator: (val) => {
  36. val = (0, _vue_shared.isFunction)(val) ? val() : val;
  37. if ((0, _vue_shared.isArray)(val)) return val.every((item) => !item);
  38. return !val;
  39. }
  40. }
  41. });
  42. const useEmptyValues = (props, defaultValue) => {
  43. const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(emptyValuesContextKey, (0, vue.ref)({})) : (0, vue.ref)({});
  44. const emptyValues = (0, vue.computed)(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
  45. const valueOnClear = (0, vue.computed)(() => {
  46. if ((0, _vue_shared.isFunction)(props.valueOnClear)) return props.valueOnClear();
  47. else if (props.valueOnClear !== void 0) return props.valueOnClear;
  48. else if ((0, _vue_shared.isFunction)(config.value.valueOnClear)) return config.value.valueOnClear();
  49. else if (config.value.valueOnClear !== void 0) return config.value.valueOnClear;
  50. return defaultValue !== void 0 ? defaultValue : void 0;
  51. });
  52. const isEmptyValue = (value) => {
  53. let result = true;
  54. if ((0, _vue_shared.isArray)(value)) result = emptyValues.value.some((emptyValue) => {
  55. return (0, lodash_unified.isEqual)(value, emptyValue);
  56. });
  57. else result = emptyValues.value.includes(value);
  58. return result;
  59. };
  60. if (!isEmptyValue(valueOnClear.value)) require_error.debugWarn(SCOPE, "value-on-clear should be a value of empty-values");
  61. return {
  62. emptyValues,
  63. valueOnClear,
  64. isEmptyValue
  65. };
  66. };
  67. //#endregion
  68. exports.DEFAULT_EMPTY_VALUES = DEFAULT_EMPTY_VALUES;
  69. exports.DEFAULT_VALUE_ON_CLEAR = DEFAULT_VALUE_ON_CLEAR;
  70. exports.SCOPE = SCOPE;
  71. exports.emptyValuesContextKey = emptyValuesContextKey;
  72. exports.useEmptyValues = useEmptyValues;
  73. exports.useEmptyValuesProps = useEmptyValuesProps;
  74. //# sourceMappingURL=index.js.map