index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../components/config-provider/index.js');
  5. require('../../utils/index.js');
  6. var runtime = require('../../utils/vue/props/runtime.js');
  7. var shared = require('@vue/shared');
  8. var useGlobalConfig = require('../../components/config-provider/src/hooks/use-global-config.js');
  9. var error = require('../../utils/error.js');
  10. const SCOPE = "use-empty-values";
  11. const DEFAULT_EMPTY_VALUES = ["", void 0, null];
  12. const DEFAULT_VALUE_ON_CLEAR = void 0;
  13. const useEmptyValuesProps = runtime.buildProps({
  14. emptyValues: Array,
  15. valueOnClear: {
  16. type: [String, Number, Boolean, Function],
  17. default: void 0,
  18. validator: (val) => shared.isFunction(val) ? !val() : !val
  19. }
  20. });
  21. const useEmptyValues = (props, defaultValue) => {
  22. let config = useGlobalConfig.useGlobalConfig();
  23. if (!config.value) {
  24. config = vue.ref({});
  25. }
  26. const emptyValues = vue.computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
  27. const valueOnClear = vue.computed(() => {
  28. if (shared.isFunction(props.valueOnClear)) {
  29. return props.valueOnClear();
  30. } else if (props.valueOnClear !== void 0) {
  31. return props.valueOnClear;
  32. } else if (shared.isFunction(config.value.valueOnClear)) {
  33. return config.value.valueOnClear();
  34. } else if (config.value.valueOnClear !== void 0) {
  35. return config.value.valueOnClear;
  36. }
  37. return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR;
  38. });
  39. const isEmptyValue = (value) => {
  40. return emptyValues.value.includes(value);
  41. };
  42. if (!emptyValues.value.includes(valueOnClear.value)) {
  43. error.debugWarn(SCOPE, "value-on-clear should be a value of empty-values");
  44. }
  45. return {
  46. emptyValues,
  47. valueOnClear,
  48. isEmptyValue
  49. };
  50. };
  51. exports.DEFAULT_EMPTY_VALUES = DEFAULT_EMPTY_VALUES;
  52. exports.DEFAULT_VALUE_ON_CLEAR = DEFAULT_VALUE_ON_CLEAR;
  53. exports.SCOPE = SCOPE;
  54. exports.useEmptyValues = useEmptyValues;
  55. exports.useEmptyValuesProps = useEmptyValuesProps;
  56. //# sourceMappingURL=index.js.map