index.js 2.6 KB

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