ll-plus 2.7.14 → 2.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/advanced-filtering/index.d.ts +4 -4
- package/es/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +2 -2
- package/es/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/es/components/key-value/index.d.ts +45 -19
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +15 -5
- package/es/components/key-value/src/config/key-value-item.d.ts +5 -1
- package/es/components/key-value/src/config/key-value.d.ts +2 -2
- package/es/components/key-value/src/key-value.vue.d.ts +45 -19
- package/es/index.mjs +3 -2
- package/es/index.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/index.mjs +1 -1
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +3 -5
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs +2 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +4 -2
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/index.mjs +1 -1
- package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs +51 -59
- package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
- package/es/packages/components/key-value/src/config/key-value-item.mjs +11 -2
- package/es/packages/components/key-value/src/config/key-value-item.mjs.map +1 -1
- package/es/packages/components/key-value/src/config/key-value.mjs +1 -1
- package/es/packages/components/key-value/src/config/key-value.mjs.map +1 -1
- package/es/packages/components/key-value/src/key-value.vue2.mjs +42 -18
- package/es/packages/components/key-value/src/key-value.vue2.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.vue2.mjs +1 -2
- package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
- package/es/packages/utils/data.mjs +35 -0
- package/es/packages/utils/data.mjs.map +1 -0
- package/es/packages/utils/{deepUnref.mjs → deep-unref.mjs} +1 -1
- package/es/packages/utils/deep-unref.mjs.map +1 -0
- package/es/packages/utils/index.mjs +2 -1
- package/es/packages/utils/index.mjs.map +1 -1
- package/es/utils/data.d.ts +2 -0
- package/es/utils/index.d.ts +2 -1
- package/index.full.js +137 -83
- package/index.full.min.js +20 -20
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +20 -20
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +137 -84
- package/lib/components/advanced-filtering/index.d.ts +4 -4
- package/lib/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +2 -2
- package/lib/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/lib/components/key-value/index.d.ts +45 -19
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +15 -5
- package/lib/components/key-value/src/config/key-value-item.d.ts +5 -1
- package/lib/components/key-value/src/config/key-value.d.ts +2 -2
- package/lib/components/key-value/src/key-value.vue.d.ts +45 -19
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/packages/components/advanced-filtering/index.js +0 -1
- package/lib/packages/components/advanced-filtering/index.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +5 -8
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js +2 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +4 -2
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/index.js +0 -1
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/key-value/src/components/key-value-item.vue2.js +50 -58
- package/lib/packages/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
- package/lib/packages/components/key-value/src/config/key-value-item.js +11 -2
- package/lib/packages/components/key-value/src/config/key-value-item.js.map +1 -1
- package/lib/packages/components/key-value/src/config/key-value.js +1 -1
- package/lib/packages/components/key-value/src/config/key-value.js.map +1 -1
- package/lib/packages/components/key-value/src/key-value.vue2.js +42 -18
- package/lib/packages/components/key-value/src/key-value.vue2.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.vue2.js +2 -3
- package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
- package/lib/packages/utils/data.js +38 -0
- package/lib/packages/utils/data.js.map +1 -0
- package/lib/packages/utils/{deepUnref.js → deep-unref.js} +1 -1
- package/lib/packages/utils/deep-unref.js.map +1 -0
- package/lib/packages/utils/index.js +4 -1
- package/lib/packages/utils/index.js.map +1 -1
- package/lib/utils/data.d.ts +2 -0
- package/lib/utils/index.d.ts +2 -1
- package/package.json +1 -1
- package/theme-chalk/css/advanced-filtering.css +1 -1
- package/theme-chalk/css/api-component.css +1 -1
- package/theme-chalk/css/cascader.css +1 -1
- package/theme-chalk/css/checkbox.css +1 -1
- package/theme-chalk/css/code-editor.css +1 -1
- package/theme-chalk/css/color-picker.css +1 -1
- package/theme-chalk/css/cropper.css +1 -1
- package/theme-chalk/css/descriptions.css +1 -1
- package/theme-chalk/css/drawer.css +1 -1
- package/theme-chalk/css/dropdown-button-simple.css +1 -1
- package/theme-chalk/css/dropdown.css +1 -1
- package/theme-chalk/css/easy-cron.css +1 -1
- package/theme-chalk/css/form.css +1 -1
- package/theme-chalk/css/index.css +2 -2
- package/theme-chalk/css/input-number.css +1 -1
- package/theme-chalk/css/input.css +1 -1
- package/theme-chalk/css/key-value.css +1 -1
- package/theme-chalk/css/markdown-editor.css +1 -1
- package/theme-chalk/css/modal.css +1 -1
- package/theme-chalk/css/new-drawer.css +1 -1
- package/theme-chalk/css/new-modal.css +1 -1
- package/theme-chalk/css/number-range.css +1 -1
- package/theme-chalk/css/rich-text-editor.css +1 -1
- package/theme-chalk/css/segmented.css +1 -1
- package/theme-chalk/css/switch.css +1 -1
- package/theme-chalk/css/table.css +1 -1
- package/theme-chalk/css/tabs-simple.css +1 -1
- package/theme-chalk/css/tag-group.css +1 -1
- package/types/packages/components/advanced-filtering/index.d.ts +4 -4
- package/types/packages/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
- package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +2 -2
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
- package/types/packages/components/key-value/index.d.ts +45 -19
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +15 -5
- package/types/packages/components/key-value/src/config/key-value-item.d.ts +5 -1
- package/types/packages/components/key-value/src/config/key-value.d.ts +2 -2
- package/types/packages/components/key-value/src/key-value.vue.d.ts +45 -19
- package/types/packages/utils/data.d.ts +2 -0
- package/types/packages/utils/index.d.ts +2 -1
- package/es/packages/utils/deepUnref.mjs.map +0 -1
- package/lib/packages/utils/deepUnref.js.map +0 -1
- /package/es/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
- /package/lib/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
- /package/types/packages/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
|
@@ -5,6 +5,7 @@ import './config/index.mjs';
|
|
|
5
5
|
import keyValueItem from './components/key-value-item.vue.mjs';
|
|
6
6
|
import { keyValueProps, keyValueEmits, getKeyValueItem } from './config/key-value.mjs';
|
|
7
7
|
import { createNamespace } from '../../../utils/create-namespace.mjs';
|
|
8
|
+
import { hasValue, deepCompare } from '../../../utils/data.mjs';
|
|
8
9
|
|
|
9
10
|
"use strict";
|
|
10
11
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -17,7 +18,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
18
|
const emits = __emit;
|
|
18
19
|
const bem = createNamespace("key-value");
|
|
19
20
|
const formItemContext = Form.useInjectFormItemContext();
|
|
20
|
-
const innerValue = ref(
|
|
21
|
+
const innerValue = ref(
|
|
22
|
+
props.value.length ? props.value : [{ key: null, value: null }]
|
|
23
|
+
);
|
|
21
24
|
const keyValueItems = ref([]);
|
|
22
25
|
const keyValueTypeDict = computed(() => {
|
|
23
26
|
const obj = {};
|
|
@@ -54,32 +57,53 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
54
57
|
item: innerValue.value[innerValue.value.length - 1],
|
|
55
58
|
value: innerValue.value
|
|
56
59
|
});
|
|
57
|
-
handleChange();
|
|
58
60
|
};
|
|
59
61
|
const handleDelete = (idx) => {
|
|
60
|
-
innerValue.value.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
try {
|
|
66
|
-
formItemContext.onFieldChange();
|
|
67
|
-
emits("change", innerValue.value);
|
|
68
|
-
emits("update:value", innerValue.value);
|
|
69
|
-
} catch (error) {
|
|
70
|
-
console.error(error);
|
|
62
|
+
if (innerValue.value.length === 1) {
|
|
63
|
+
innerValue.value = [{ key: null, value: null }];
|
|
64
|
+
} else {
|
|
65
|
+
innerValue.value.splice(idx, 1);
|
|
66
|
+
emits("delete", idx);
|
|
71
67
|
}
|
|
72
68
|
};
|
|
69
|
+
const getValue = (val) => {
|
|
70
|
+
return val.filter((e) => hasValue(e.key) || hasValue(e.value));
|
|
71
|
+
};
|
|
73
72
|
watch(
|
|
74
73
|
() => props.value,
|
|
75
74
|
(n) => {
|
|
76
|
-
|
|
75
|
+
const copyInnerValue = getValue(innerValue.value);
|
|
76
|
+
const copyPropsValue = getValue(n);
|
|
77
|
+
if (deepCompare(copyInnerValue, copyPropsValue))
|
|
78
|
+
return;
|
|
79
|
+
innerValue.value = [
|
|
80
|
+
...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null }] : n
|
|
81
|
+
];
|
|
77
82
|
},
|
|
78
83
|
{
|
|
79
84
|
immediate: true,
|
|
80
85
|
deep: true
|
|
81
86
|
}
|
|
82
87
|
);
|
|
88
|
+
watch(
|
|
89
|
+
() => innerValue.value,
|
|
90
|
+
(val) => {
|
|
91
|
+
const copyInnerValue = getValue(val);
|
|
92
|
+
const copyPropsValue = getValue(props.value);
|
|
93
|
+
if (deepCompare(copyInnerValue, copyPropsValue))
|
|
94
|
+
return;
|
|
95
|
+
try {
|
|
96
|
+
formItemContext.onFieldChange();
|
|
97
|
+
emits("change", copyInnerValue);
|
|
98
|
+
emits("update:value", copyInnerValue);
|
|
99
|
+
} catch (error) {
|
|
100
|
+
console.error(error);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
deep: true
|
|
105
|
+
}
|
|
106
|
+
);
|
|
83
107
|
__expose({
|
|
84
108
|
validate,
|
|
85
109
|
resetFields,
|
|
@@ -124,13 +148,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
124
148
|
"key-type": props.keyType,
|
|
125
149
|
"key-types": props.keyTypes,
|
|
126
150
|
"value-type": props.valueType,
|
|
151
|
+
values: innerValue.value,
|
|
127
152
|
disabled: props.disabled,
|
|
128
153
|
"disabled-value": props.disabledValue,
|
|
129
154
|
"disabled-key": props.disabledKey,
|
|
130
155
|
"disabled-delete": props.disabledDelete,
|
|
131
|
-
"
|
|
132
|
-
onDelete: ($event) => handleDelete(idx)
|
|
133
|
-
onChange: handleChange
|
|
156
|
+
"keep-last": props.keepLast,
|
|
157
|
+
onDelete: ($event) => handleDelete(idx)
|
|
134
158
|
}, createSlots({
|
|
135
159
|
_: 2
|
|
136
160
|
/* DYNAMIC */
|
|
@@ -143,7 +167,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
143
167
|
])
|
|
144
168
|
};
|
|
145
169
|
})
|
|
146
|
-
]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "disabled", "disabled-value", "disabled-key", "disabled-delete", "
|
|
170
|
+
]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "values", "disabled", "disabled-value", "disabled-key", "disabled-delete", "keep-last", "onDelete"]);
|
|
147
171
|
}),
|
|
148
172
|
128
|
|
149
173
|
/* KEYED_FRAGMENT */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div v-if=\"innerValue.length > 0\" :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item\"\n :ref=\"el => (keyValueItems[idx] = el)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n :
|
|
1
|
+
{"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div v-if=\"innerValue.length > 0\" :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item\"\n :ref=\"el => (keyValueItems[idx] = el)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :values=\"innerValue\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n :keep-last=\"props.keepLast\"\n @delete=\"handleDelete(idx)\"\n >\n <template\n v-for=\"item in Object.keys($slots)\"\n :key=\"item\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\n </template>\n </key-value-item>\n </div>\n\n <ll-button\n :class=\"bem.e('add')\"\n :loading=\"loading\"\n :disabled=\"props.disabled || props.disabledAdd\"\n @click=\"handleAddItem\"\n >\n <div :class=\"bem.e('plus')\">\n <ll-icon\n v-if=\"!loading\"\n icon-name=\"icon-add\"\n :class=\"bem.e('icon-add')\"\n />\n {{ props.addText }}\n </div>\n </ll-button>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport { Form } from 'ant-design-vue'\nimport { createNamespace, deepCompare, hasValue } from '@ll-plus/utils'\nimport {\n keyValueProps,\n keyValueEmits,\n getKeyValueItem,\n type KeyValueItem\n} from './config'\nimport keyValueItem from './components/key-value-item.vue'\n\ndefineOptions({ name: 'LlKeyValue' })\n\nconst props = defineProps(keyValueProps)\nconst emits = defineEmits(keyValueEmits)\nconst bem = createNamespace('key-value')\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst innerValue = ref<KeyValueItem[]>(\n props.value.length ? props.value : [{ key: null, value: null }]\n)\n\nconst keyValueItems = ref<InstanceType<typeof keyValueItem>[]>([])\n\nconst keyValueTypeDict = computed(() => {\n const obj = {}\n props.keyTypes.map(e => {\n obj[e.value] = e.option\n })\n return obj\n})\n\nconst validate = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.validate())\n )\n}\n\nconst resetFields = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.resetFields())\n )\n}\n\nconst clearValidate = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.clearValidate())\n )\n}\n\nconst handleAddItem = async () => {\n const valid = await validate()\n if (props.validate && !valid) return false\n innerValue.value.push(getKeyValueItem())\n emits('add', {\n index: innerValue.value.length - 1,\n item: innerValue.value[innerValue.value.length - 1],\n value: innerValue.value\n })\n}\n\nconst handleDelete = (idx: number) => {\n if (innerValue.value.length === 1) {\n innerValue.value = [{ key: null, value: null }]\n } else {\n innerValue.value.splice(idx, 1)\n emits('delete', idx)\n }\n}\n\n// const handleChange = () => {\n// try {\n// formItemContext.onFieldChange()\n// emits('change', innerValue.value)\n// emits('update:value', innerValue.value)\n// } catch (error) {\n// console.error(error)\n// }\n// }\n\nconst getValue = (val: KeyValueItem[]) => {\n return val.filter(e => hasValue(e.key) || hasValue(e.value))\n}\n\nwatch(\n () => props.value,\n n => {\n const copyInnerValue = getValue(innerValue.value)\n const copyPropsValue = getValue(n)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n innerValue.value = [\n ...(n && n.length > 0\n ? n\n : props.keepLast\n ? [{ key: null, value: null }]\n : n)\n ]\n },\n {\n immediate: true,\n deep: true\n }\n)\n\nwatch(\n () => innerValue.value,\n val => {\n const copyInnerValue = getValue(val)\n const copyPropsValue = getValue(props.value)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n try {\n formItemContext.onFieldChange()\n emits('change', copyInnerValue)\n emits('update:value', copyInnerValue)\n } catch (error) {\n console.error(error)\n }\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,8 @@ import { defineComponent, ref, computed, watch, resolveComponent, openBlock, cre
|
|
|
2
2
|
import { has } from 'lodash-es';
|
|
3
3
|
import { selectGroupProps, selectGroupEmits, LEFT_SELECT_MIN_WIDTH } from './select-group.mjs';
|
|
4
4
|
import '../../../utils/index.mjs';
|
|
5
|
-
import '../../advanced-filtering/index.mjs';
|
|
6
5
|
import { createNamespace } from '../../../utils/create-namespace.mjs';
|
|
7
|
-
import { hasValue } from '
|
|
6
|
+
import { hasValue } from '../../../utils/data.mjs';
|
|
8
7
|
|
|
9
8
|
"use strict";
|
|
10
9
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-group.vue2.mjs","sources":["../../../../../../packages/components/select-group/src/select-group.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bemContainer.b()\">\n <a-input-group compact>\n <!-- 左侧select -->\n <a-select\n v-model:value=\"selectType\"\n class=\"select-group-left-select-container\"\n :style=\"{ minWidth: leftSelectWidth }\"\n @change=\"handleSelectChange\"\n >\n <a-select-option\n v-for=\"item in newList\"\n :key=\"item.name\"\n :value=\"item.value\"\n :item=\"item\"\n >\n {{ item.name }}\n </a-select-option>\n </a-select>\n <!-- 右侧组合表单 -->\n <!-- input输入框 -->\n <template\n v-if=\"\n !selectItem?.showFormType || selectItem?.showFormType === 'input'\n \"\n >\n <a-input\n v-model:value=\"value\"\n :class=\"bem.e('right-input')\"\n :placeholder=\"selectItem?.placeholder\"\n allow-clear\n @press-enter=\"handleChange\"\n >\n <template #suffix>\n <ll-icon :icon-name=\"`icon-search`\" @click=\"handleChange\" />\n </template>\n </a-input>\n </template>\n <!-- select下拉框 -->\n <template v-else-if=\"selectItem?.showFormType === 'select'\">\n <a-select\n v-model:value=\"value\"\n :class=\"bem.e('right-select')\"\n popup-class-name=\"select-group-right-select\"\n :options=\"selectItem?.options\"\n :placeholder=\"selectItem?.placeholder\"\n :field-names=\"selectItem?.fieldNames\"\n @change=\"handleChange\"\n >\n <a-select-option\n v-for=\"item in selectItem.list\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.name }}\n </a-select-option>\n </a-select>\n </template>\n <!-- 日期选择 -->\n <template v-else-if=\"selectItem?.showFormType === 'range-picker'\">\n <a-range-picker\n v-model:value=\"value\"\n :class=\"bem.e('right-range-picker')\"\n @change=\"handleChange\"\n />\n </template>\n <!-- 树选择 -->\n <template v-else-if=\"selectItem?.showFormType === 'treeSelect'\">\n <a-tree-select\n v-model:value=\"value\"\n :class=\"bem.e('right-tree-select')\"\n :field-names=\"selectItem.fieldNames\"\n :placeholder=\"selectItem?.placeholder\"\n :tree-data=\"selectItem.list\"\n @select=\"handleChange\"\n ></a-tree-select>\n </template>\n <template v-else>\n <slot name=\"extra\" v-bind=\"selectItem\" />\n </template>\n </a-input-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue'\nimport { has } from 'lodash-es'\n\nimport { selectGroupProps, selectGroupEmits } from './select-group'\nimport { createNamespace } from '@ll-plus/utils'\nimport { hasValue } from '../../advanced-filtering'\nimport { LEFT_SELECT_MIN_WIDTH } from './select-group'\n\nimport type { SelectGroupData } from './select-group'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlSelectGroup' })\n\n// 1.props/emits\nconst props = defineProps(selectGroupProps)\nconst emits = defineEmits(selectGroupEmits)\n\n// 3.ref/const\nconst selectType = ref() // selectinput组合select的值\nconst value = ref<any>('') // 左边的value\n// const selectItem = ref<SelectGroupData>() // 选中表单的类型\nconst newList = ref<SelectGroupData[]>([]) // 处理后的数据,比如select的类型前面加个全部\nconst bem = createNamespace('select-group')\nconst bemContainer = createNamespace('select-group-container')\n\nconst selectItem = computed(() => {\n return newList.value.find(e => e.value === selectType.value)\n})\n\n// 动态计算左边文字最长的宽度\nconst leftSelectWidth = computed(() => {\n const names = newList.value.map(item => item.name.length)\n const maxNameLength = Math.max(...names)\n if (maxNameLength <= 3) {\n return LEFT_SELECT_MIN_WIDTH + 'px'\n }\n const width = LEFT_SELECT_MIN_WIDTH + (maxNameLength - 3) * 14\n return width + 'px'\n})\n\n// 4.methods\n// 第一个select的change\nconst handleSelectChange = (_: string, options: any) => {\n const item = options.item\n const formType = item.showFormType\n // 如果\n if (!formType || formType === 'input' || formType === 'treeSelect') {\n value.value = ''\n } else if (formType === 'range-picker') {\n value.value = [undefined, undefined]\n } else if (formType === 'select') {\n value.value = item.noFirstAddAll ? undefined : -1\n }\n // selectItem.value = options.item\n selectType.value = _\n\n emits('onSelectChange', _, item)\n}\n// 整合处理change\nconst handleChange = () => {\n // 过滤-1的下拉全部\n emits(\n 'change',\n selectItem.value?.value as string,\n value.value === -1 ? null : value.value\n )\n}\nconst setSelectGroup = (selectValue: string, currentValue: any) => {\n selectType.value = selectValue\n value.value = currentValue\n}\n\n// 5.watch\n// 已第一个为标准\nwatch(\n () => props.data as SelectGroupData[],\n newData => {\n let list: SelectGroupData[] = []\n if (newData && newData.length) {\n list = newData.map(item => {\n const newItem = { ...item }\n if (newItem.showFormType === 'select') {\n if (has(newItem, 'options') && !newItem.noFirstAddAll) {\n newItem.options = [\n {\n label: '全部',\n value: -1\n },\n ...newItem.options!\n ]\n } else if (has(newItem, 'list') && !newItem.noFirstAddAll) {\n newItem.list = [\n {\n name: '全部',\n value: -1\n },\n ...newItem.list!\n ]\n }\n }\n return newItem\n })\n\n newList.value = list\n if (newList.value.length && !props.selectValue) {\n selectType.value = newList.value[0].value\n }\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => [props.value, props.selectValue] as [any, string],\n ([currentValue, selectValue]) => {\n selectType.value = selectValue\n ? selectValue\n : newList.value.length\n ? newList.value[0].value\n : ''\n if (selectType.value) {\n const find = newList.value.find(e => e.value === selectType.value)\n // selectItem.value = find\n if (find && find.showFormType === 'select' && !find.noFirstAddAll) {\n value.value = !hasValue(currentValue) ? -1 : currentValue\n } else {\n value.value = currentValue\n }\n }\n },\n {\n immediate: true\n }\n)\n\ndefineExpose({ setSelectGroup })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAqGA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAGd,IAAA,MAAM,aAAa,GAAI,EAAA,CAAA;AACvB,IAAM,MAAA,KAAA,GAAQ,IAAS,EAAE,CAAA,CAAA;AAEzB,IAAM,MAAA,OAAA,GAAU,GAAuB,CAAA,EAAE,CAAA,CAAA;AACzC,IAAM,MAAA,GAAA,GAAM,gBAAgB,cAAc,CAAA,CAAA;AAC1C,IAAM,MAAA,YAAA,GAAe,gBAAgB,wBAAwB,CAAA,CAAA;AAE7D,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAA,OAAO,QAAQ,KAAM,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,KAAA,KAAU,WAAW,KAAK,CAAA,CAAA;AAAA,KAC5D,CAAA,CAAA;AAGD,IAAM,MAAA,eAAA,GAAkB,SAAS,MAAM;AACrC,MAAA,MAAM,QAAQ,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAQ,IAAA,KAAA,IAAA,CAAK,KAAK,MAAM,CAAA,CAAA;AACxD,MAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,GAAI,CAAA,GAAG,KAAK,CAAA,CAAA;AACvC,MAAA,IAAI,iBAAiB,CAAG,EAAA;AACtB,QAAA,OAAO,qBAAwB,GAAA,IAAA,CAAA;AAAA,OACjC;AACA,MAAM,MAAA,KAAA,GAAQ,qBAAyB,GAAA,CAAA,aAAA,GAAgB,CAAK,IAAA,EAAA,CAAA;AAC5D,MAAA,OAAO,KAAQ,GAAA,IAAA,CAAA;AAAA,KAChB,CAAA,CAAA;AAID,IAAM,MAAA,kBAAA,GAAqB,CAAC,CAAA,EAAW,OAAiB,KAAA;AACtD,MAAA,MAAM,OAAO,OAAQ,CAAA,IAAA,CAAA;AACrB,MAAA,MAAM,WAAW,IAAK,CAAA,YAAA,CAAA;AAEtB,MAAA,IAAI,CAAC,QAAA,IAAY,QAAa,KAAA,OAAA,IAAW,aAAa,YAAc,EAAA;AAClE,QAAA,KAAA,CAAM,KAAQ,GAAA,EAAA,CAAA;AAAA,OAChB,MAAA,IAAW,aAAa,cAAgB,EAAA;AACtC,QAAM,KAAA,CAAA,KAAA,GAAQ,CAAC,KAAA,CAAA,EAAW,KAAS,CAAA,CAAA,CAAA;AAAA,OACrC,MAAA,IAAW,aAAa,QAAU,EAAA;AAChC,QAAM,KAAA,CAAA,KAAA,GAAQ,IAAK,CAAA,aAAA,GAAgB,KAAY,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,OACjD;AAEA,MAAA,UAAA,CAAW,KAAQ,GAAA,CAAA,CAAA;AAEnB,MAAM,KAAA,CAAA,gBAAA,EAAkB,GAAG,IAAI,CAAA,CAAA;AAAA,KACjC,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AAEzB,MAAA,KAAA;AAAA,QACE,QAAA;AAAA,QACA,WAAW,KAAO,EAAA,KAAA;AAAA,QAClB,KAAM,CAAA,KAAA,KAAU,CAAK,CAAA,GAAA,IAAA,GAAO,KAAM,CAAA,KAAA;AAAA,OACpC,CAAA;AAAA,KACF,CAAA;AACA,IAAM,MAAA,cAAA,GAAiB,CAAC,WAAA,EAAqB,YAAsB,KAAA;AACjE,MAAA,UAAA,CAAW,KAAQ,GAAA,WAAA,CAAA;AACnB,MAAA,KAAA,CAAM,KAAQ,GAAA,YAAA,CAAA;AAAA,KAChB,CAAA;AAIA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,CAAW,OAAA,KAAA;AACT,QAAA,IAAI,OAA0B,EAAC,CAAA;AAC/B,QAAI,IAAA,OAAA,IAAW,QAAQ,MAAQ,EAAA;AAC7B,UAAO,IAAA,GAAA,OAAA,CAAQ,IAAI,CAAQ,IAAA,KAAA;AACzB,YAAM,MAAA,OAAA,GAAU,EAAE,GAAG,IAAK,EAAA,CAAA;AAC1B,YAAI,IAAA,OAAA,CAAQ,iBAAiB,QAAU,EAAA;AACrC,cAAA,IAAI,IAAI,OAAS,EAAA,SAAS,CAAK,IAAA,CAAC,QAAQ,aAAe,EAAA;AACrD,gBAAA,OAAA,CAAQ,OAAU,GAAA;AAAA,kBAChB;AAAA,oBACE,KAAO,EAAA,cAAA;AAAA,oBACP,KAAO,EAAA,CAAA,CAAA;AAAA,mBACT;AAAA,kBACA,GAAG,OAAQ,CAAA,OAAA;AAAA,iBACb,CAAA;AAAA,yBACS,GAAI,CAAA,OAAA,EAAS,MAAM,CAAK,IAAA,CAAC,QAAQ,aAAe,EAAA;AACzD,gBAAA,OAAA,CAAQ,IAAO,GAAA;AAAA,kBACb;AAAA,oBACE,IAAM,EAAA,cAAA;AAAA,oBACN,KAAO,EAAA,CAAA,CAAA;AAAA,mBACT;AAAA,kBACA,GAAG,OAAQ,CAAA,IAAA;AAAA,iBACb,CAAA;AAAA,eACF;AAAA,aACF;AACA,YAAO,OAAA,OAAA,CAAA;AAAA,WACR,CAAA,CAAA;AAED,UAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAChB,UAAA,IAAI,OAAQ,CAAA,KAAA,CAAM,MAAU,IAAA,CAAC,MAAM,WAAa,EAAA;AAC9C,YAAA,UAAA,CAAW,KAAQ,GAAA,OAAA,CAAQ,KAAM,CAAA,CAAC,CAAE,CAAA,KAAA,CAAA;AAAA,WACtC;AAAA,SACF;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,CAAC,KAAM,CAAA,KAAA,EAAO,MAAM,WAAW,CAAA;AAAA,MACrC,CAAC,CAAC,YAAc,EAAA,WAAW,CAAM,KAAA;AAC/B,QAAW,UAAA,CAAA,KAAA,GAAQ,WACf,GAAA,WAAA,GACA,OAAQ,CAAA,KAAA,CAAM,SACd,OAAQ,CAAA,KAAA,CAAM,CAAC,CAAA,CAAE,KACjB,GAAA,EAAA,CAAA;AACJ,QAAA,IAAI,WAAW,KAAO,EAAA;AACpB,UAAM,MAAA,IAAA,GAAO,QAAQ,KAAM,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,KAAA,KAAU,WAAW,KAAK,CAAA,CAAA;AAEjE,UAAA,IAAI,QAAQ,IAAK,CAAA,YAAA,KAAiB,QAAY,IAAA,CAAC,KAAK,aAAe,EAAA;AACjE,YAAA,KAAA,CAAM,KAAQ,GAAA,CAAC,QAAS,CAAA,YAAY,IAAI,CAAK,CAAA,GAAA,YAAA,CAAA;AAAA,WACxC,MAAA;AACL,YAAA,KAAA,CAAM,KAAQ,GAAA,YAAA,CAAA;AAAA,WAChB;AAAA,SACF;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAa,QAAA,CAAA,EAAE,gBAAgB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"select-group.vue2.mjs","sources":["../../../../../../packages/components/select-group/src/select-group.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bemContainer.b()\">\n <a-input-group compact>\n <!-- 左侧select -->\n <a-select\n v-model:value=\"selectType\"\n class=\"select-group-left-select-container\"\n :style=\"{ minWidth: leftSelectWidth }\"\n @change=\"handleSelectChange\"\n >\n <a-select-option\n v-for=\"item in newList\"\n :key=\"item.name\"\n :value=\"item.value\"\n :item=\"item\"\n >\n {{ item.name }}\n </a-select-option>\n </a-select>\n <!-- 右侧组合表单 -->\n <!-- input输入框 -->\n <template\n v-if=\"\n !selectItem?.showFormType || selectItem?.showFormType === 'input'\n \"\n >\n <a-input\n v-model:value=\"value\"\n :class=\"bem.e('right-input')\"\n :placeholder=\"selectItem?.placeholder\"\n allow-clear\n @press-enter=\"handleChange\"\n >\n <template #suffix>\n <ll-icon :icon-name=\"`icon-search`\" @click=\"handleChange\" />\n </template>\n </a-input>\n </template>\n <!-- select下拉框 -->\n <template v-else-if=\"selectItem?.showFormType === 'select'\">\n <a-select\n v-model:value=\"value\"\n :class=\"bem.e('right-select')\"\n popup-class-name=\"select-group-right-select\"\n :options=\"selectItem?.options\"\n :placeholder=\"selectItem?.placeholder\"\n :field-names=\"selectItem?.fieldNames\"\n @change=\"handleChange\"\n >\n <a-select-option\n v-for=\"item in selectItem.list\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ item.name }}\n </a-select-option>\n </a-select>\n </template>\n <!-- 日期选择 -->\n <template v-else-if=\"selectItem?.showFormType === 'range-picker'\">\n <a-range-picker\n v-model:value=\"value\"\n :class=\"bem.e('right-range-picker')\"\n @change=\"handleChange\"\n />\n </template>\n <!-- 树选择 -->\n <template v-else-if=\"selectItem?.showFormType === 'treeSelect'\">\n <a-tree-select\n v-model:value=\"value\"\n :class=\"bem.e('right-tree-select')\"\n :field-names=\"selectItem.fieldNames\"\n :placeholder=\"selectItem?.placeholder\"\n :tree-data=\"selectItem.list\"\n @select=\"handleChange\"\n ></a-tree-select>\n </template>\n <template v-else>\n <slot name=\"extra\" v-bind=\"selectItem\" />\n </template>\n </a-input-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue'\nimport { has } from 'lodash-es'\n\nimport { selectGroupProps, selectGroupEmits } from './select-group'\nimport { createNamespace, hasValue } from '@ll-plus/utils'\nimport { LEFT_SELECT_MIN_WIDTH } from './select-group'\n\nimport type { SelectGroupData } from './select-group'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlSelectGroup' })\n\n// 1.props/emits\nconst props = defineProps(selectGroupProps)\nconst emits = defineEmits(selectGroupEmits)\n\n// 3.ref/const\nconst selectType = ref() // selectinput组合select的值\nconst value = ref<any>('') // 左边的value\n// const selectItem = ref<SelectGroupData>() // 选中表单的类型\nconst newList = ref<SelectGroupData[]>([]) // 处理后的数据,比如select的类型前面加个全部\nconst bem = createNamespace('select-group')\nconst bemContainer = createNamespace('select-group-container')\n\nconst selectItem = computed(() => {\n return newList.value.find(e => e.value === selectType.value)\n})\n\n// 动态计算左边文字最长的宽度\nconst leftSelectWidth = computed(() => {\n const names = newList.value.map(item => item.name.length)\n const maxNameLength = Math.max(...names)\n if (maxNameLength <= 3) {\n return LEFT_SELECT_MIN_WIDTH + 'px'\n }\n const width = LEFT_SELECT_MIN_WIDTH + (maxNameLength - 3) * 14\n return width + 'px'\n})\n\n// 4.methods\n// 第一个select的change\nconst handleSelectChange = (_: string, options: any) => {\n const item = options.item\n const formType = item.showFormType\n // 如果\n if (!formType || formType === 'input' || formType === 'treeSelect') {\n value.value = ''\n } else if (formType === 'range-picker') {\n value.value = [undefined, undefined]\n } else if (formType === 'select') {\n value.value = item.noFirstAddAll ? undefined : -1\n }\n // selectItem.value = options.item\n selectType.value = _\n\n emits('onSelectChange', _, item)\n}\n// 整合处理change\nconst handleChange = () => {\n // 过滤-1的下拉全部\n emits(\n 'change',\n selectItem.value?.value as string,\n value.value === -1 ? null : value.value\n )\n}\nconst setSelectGroup = (selectValue: string, currentValue: any) => {\n selectType.value = selectValue\n value.value = currentValue\n}\n\n// 5.watch\n// 已第一个为标准\nwatch(\n () => props.data as SelectGroupData[],\n newData => {\n let list: SelectGroupData[] = []\n if (newData && newData.length) {\n list = newData.map(item => {\n const newItem = { ...item }\n if (newItem.showFormType === 'select') {\n if (has(newItem, 'options') && !newItem.noFirstAddAll) {\n newItem.options = [\n {\n label: '全部',\n value: -1\n },\n ...newItem.options!\n ]\n } else if (has(newItem, 'list') && !newItem.noFirstAddAll) {\n newItem.list = [\n {\n name: '全部',\n value: -1\n },\n ...newItem.list!\n ]\n }\n }\n return newItem\n })\n\n newList.value = list\n if (newList.value.length && !props.selectValue) {\n selectType.value = newList.value[0].value\n }\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => [props.value, props.selectValue] as [any, string],\n ([currentValue, selectValue]) => {\n selectType.value = selectValue\n ? selectValue\n : newList.value.length\n ? newList.value[0].value\n : ''\n if (selectType.value) {\n const find = newList.value.find(e => e.value === selectType.value)\n // selectItem.value = find\n if (find && find.showFormType === 'select' && !find.noFirstAddAll) {\n value.value = !hasValue(currentValue) ? -1 : currentValue\n } else {\n value.value = currentValue\n }\n }\n },\n {\n immediate: true\n }\n)\n\ndefineExpose({ setSelectGroup })\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { isNull, isUndefined } from 'lodash-es';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
function deepCompare(obj1, obj2) {
|
|
5
|
+
const stack = [[obj1, obj2]];
|
|
6
|
+
while (stack.length) {
|
|
7
|
+
const [a, b] = stack.pop();
|
|
8
|
+
if (a === b)
|
|
9
|
+
continue;
|
|
10
|
+
if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const keysA = Object.keys(a);
|
|
14
|
+
const keysB = Object.keys(b);
|
|
15
|
+
if (keysA.length !== keysB.length) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (keysA.length === 0 && keysB.length === 0) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
for (const key of keysA) {
|
|
22
|
+
if (!keysB.includes(key)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
stack.push([a[key], b[key]]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
const hasValue = (value) => {
|
|
31
|
+
return Array.isArray(value) ? value.length > 0 : !isNull(value) && !isUndefined(value) && value !== "";
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { deepCompare, hasValue };
|
|
35
|
+
//# sourceMappingURL=data.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.mjs","sources":["../../../../packages/utils/data.ts"],"sourcesContent":["import { isNull, isUndefined } from 'lodash-es'\n\nexport function deepCompare(obj1: any, obj2: any): boolean {\n const stack = [[obj1, obj2]]\n\n while (stack.length) {\n const [a, b] = stack.pop() as any[]\n\n if (a === b) continue\n\n if (\n typeof a !== 'object' ||\n a === null ||\n typeof b !== 'object' ||\n b === null\n ) {\n return false\n }\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n // If both objects have no keys, consider them equal\n if (keysA.length === 0 && keysB.length === 0) {\n continue\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key)) {\n return false\n }\n stack.push([a[key], b[key]])\n }\n }\n\n return true\n}\n\nexport const hasValue = (value: any) => {\n return Array.isArray(value)\n ? value.length > 0\n : !isNull(value) && !isUndefined(value) && value !== ''\n}\n"],"names":[],"mappings":";;;AAEgB,SAAA,WAAA,CAAY,MAAW,IAAoB,EAAA;AACzD,EAAA,MAAM,KAAQ,GAAA,CAAC,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAE3B,EAAA,OAAO,MAAM,MAAQ,EAAA;AACnB,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,MAAM,GAAI,EAAA,CAAA;AAEzB,IAAA,IAAI,CAAM,KAAA,CAAA;AAAG,MAAA,SAAA;AAEb,IACE,IAAA,OAAO,MAAM,QACb,IAAA,CAAA,KAAM,QACN,OAAO,CAAA,KAAM,QACb,IAAA,CAAA,KAAM,IACN,EAAA;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAE3B,IAAI,IAAA,KAAA,CAAM,MAAW,KAAA,KAAA,CAAM,MAAQ,EAAA;AACjC,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAGA,IAAA,IAAI,KAAM,CAAA,MAAA,KAAW,CAAK,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AAC5C,MAAA,SAAA;AAAA,KACF;AAEA,IAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,MAAA,IAAI,CAAC,KAAA,CAAM,QAAS,CAAA,GAAG,CAAG,EAAA;AACxB,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAM,KAAA,CAAA,IAAA,CAAK,CAAC,CAAE,CAAA,GAAG,GAAG,CAAE,CAAA,GAAG,CAAC,CAAC,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEa,MAAA,QAAA,GAAW,CAAC,KAAe,KAAA;AACtC,EAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GACtB,MAAM,MAAS,GAAA,CAAA,GACf,CAAC,MAAA,CAAO,KAAK,CAAK,IAAA,CAAC,WAAY,CAAA,KAAK,KAAK,KAAU,KAAA,EAAA,CAAA;AACzD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-unref.mjs","sources":["../../../../packages/utils/deep-unref.ts"],"sourcesContent":["import { unref } from 'vue'\nexport const deepUnref = (\n obj: any[] | Record<string, any>\n): any[] | Record<string, any> => {\n const currentObj: any[] | Record<string, any> = unref(obj)\n for (const i in obj) {\n currentObj[i] = unref(obj[i])\n if (typeof obj[i] === 'object') {\n currentObj[i] = deepUnref(obj[i])\n }\n }\n return currentObj\n}\n"],"names":[],"mappings":";;;AACa,MAAA,SAAA,GAAY,CACvB,GACgC,KAAA;AAChC,EAAM,MAAA,UAAA,GAA0C,MAAM,GAAG,CAAA,CAAA;AACzD,EAAA,KAAA,MAAW,KAAK,GAAK,EAAA;AACnB,IAAA,UAAA,CAAW,CAAC,CAAA,GAAI,KAAM,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAC5B,IAAA,IAAI,OAAO,GAAA,CAAI,CAAC,CAAA,KAAM,QAAU,EAAA;AAC9B,MAAA,UAAA,CAAW,CAAC,CAAA,GAAI,SAAU,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAAA,KAClC;AAAA,GACF;AACA,EAAO,OAAA,UAAA,CAAA;AACT;;;;"}
|
|
@@ -7,7 +7,8 @@ export { calcRPN, getAmountChinese, getDateTimeUnit, mergeNumberOfExps, thousand
|
|
|
7
7
|
export { removeQueryString } from './remove-query-string.mjs';
|
|
8
8
|
export { getType, isBoolean, isElement, isEmpty, isNumber, isPropAbsent, isStringNumber, isUndefined, isWindow } from './types.mjs';
|
|
9
9
|
export { dataURLtoBlob, fileToBase64, formatFileSize } from './file.mjs';
|
|
10
|
-
export { deepUnref } from './
|
|
10
|
+
export { deepUnref } from './deep-unref.mjs';
|
|
11
|
+
export { deepCompare, hasValue } from './data.mjs';
|
|
11
12
|
export { buildProp, buildProps, definePropType, epPropKey, isEpProp } from './props/runtime.mjs';
|
|
12
13
|
export { isArray, isDate, isFunction, isObject, isPromise, isString, isSymbol } from '@vue/shared';
|
|
13
14
|
export { isVNode } from 'vue';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
package/es/utils/index.d.ts
CHANGED