599bb150b8303337f406cfae82a70ebb1d8f7cdf3f0152affb8911e5396badeeabc46cff76211716052121ec540f0e961ae1f4ea89abe07232c287dbb0ea30 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var lodashUnified = require('lodash-unified');
  5. var runtime = require('../../utils/vue/props/runtime.js');
  6. var shared = require('@vue/shared');
  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: runtime.definePropType([
  15. String,
  16. Number,
  17. Boolean,
  18. Function
  19. ]),
  20. default: void 0,
  21. validator: (val) => {
  22. val = shared.isFunction(val) ? val() : val;
  23. if (shared.isArray(val)) {
  24. return val.every((item) => !item);
  25. }
  26. return !val;
  27. }
  28. }
  29. });
  30. const useEmptyValues = (props, defaultValue) => {
  31. const config = vue.getCurrentInstance() ? vue.inject(emptyValuesContextKey, vue.ref({})) : vue.ref({});
  32. const emptyValues = vue.computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
  33. const valueOnClear = vue.computed(() => {
  34. if (shared.isFunction(props.valueOnClear)) {
  35. return props.valueOnClear();
  36. } else if (props.valueOnClear !== void 0) {
  37. return props.valueOnClear;
  38. } else if (shared.isFunction(config.value.valueOnClear)) {
  39. return config.value.valueOnClear();
  40. } else if (config.value.valueOnClear !== void 0) {
  41. return config.value.valueOnClear;
  42. }
  43. return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR;
  44. });
  45. const isEmptyValue = (value) => {
  46. let result = true;
  47. if (shared.isArray(value)) {
  48. result = emptyValues.value.some((emptyValue) => {
  49. return lodashUnified.isEqual(value, emptyValue);
  50. });
  51. } else {
  52. result = emptyValues.value.includes(value);
  53. }
  54. return result;
  55. };
  56. if (!isEmptyValue(valueOnClear.value)) ;
  57. return {
  58. emptyValues,
  59. valueOnClear,
  60. isEmptyValue
  61. };
  62. };
  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