index.js 2.0 KB

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