ll-plus 2.4.5 → 2.4.8
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/component.mjs +3 -0
- package/es/component.mjs.map +1 -1
- package/es/components/advanced-filtering/index.d.ts +34 -16
- package/es/components/advanced-filtering/src/advanced-filtering.d.ts +1 -1
- package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +17 -8
- package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +18 -8
- package/es/components/avatar/index.d.ts +66 -31
- package/es/components/avatar/src/avatar.d.ts +33 -30
- package/es/components/avatar/src/avatar.vue.d.ts +66 -31
- package/es/components/cropper/index.d.ts +1485 -0
- package/es/components/cropper/src/cropper-image.d.ts +51 -0
- package/es/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/es/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/es/components/empty/index.d.ts +4 -0
- package/es/components/empty/src/empty.d.ts +1 -0
- package/es/components/empty/src/empty.vue.d.ts +4 -0
- package/es/components/form/index.d.ts +24 -8
- package/es/components/form/src/components/form-component.vue.d.ts +9 -2
- package/es/components/form/src/config/form-component.d.ts +4 -1
- package/es/components/form/src/config/form.d.ts +7 -1
- package/es/components/form/src/form.vue.d.ts +15 -6
- package/es/components/index.d.ts +1 -0
- package/es/components/key-value/index.d.ts +90 -36
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +30 -12
- package/es/components/key-value/src/key-value.vue.d.ts +90 -36
- package/es/components/select-group/index.d.ts +5 -4
- package/es/components/select-group/src/select-group.d.ts +7 -1
- package/es/components/select-group/src/select-group.vue.d.ts +5 -4
- package/es/index.mjs +3 -1
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.mjs +1576 -0
- package/es/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.mjs.map +1 -0
- package/es/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.mjs +30 -0
- package/es/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.mjs.map +1 -0
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +4 -1
- package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/advanced-filtering.vue2.mjs +3 -4
- package/es/packages/components/advanced-filtering/src/advanced-filtering.vue2.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs +9 -18
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.mjs.map +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs +1 -1
- package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs.map +1 -1
- package/es/packages/components/avatar/src/avatar.mjs +39 -13
- package/es/packages/components/avatar/src/avatar.mjs.map +1 -1
- package/es/packages/components/avatar/src/avatar.vue2.mjs +40 -127
- package/es/packages/components/avatar/src/avatar.vue2.mjs.map +1 -1
- package/es/packages/components/checkbox/index.mjs.map +1 -1
- package/es/packages/components/cropper/index.mjs +12 -0
- package/es/packages/components/cropper/index.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.mjs +77 -0
- package/es/packages/components/cropper/src/cropper-image.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.vue.mjs +8 -0
- package/es/packages/components/cropper/src/cropper-image.vue.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-image.vue2.mjs +137 -0
- package/es/packages/components/cropper/src/cropper-image.vue2.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-modal.vue.mjs +8 -0
- package/es/packages/components/cropper/src/cropper-modal.vue.mjs.map +1 -0
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs +407 -0
- package/es/packages/components/cropper/src/cropper-modal.vue2.mjs.map +1 -0
- package/es/packages/components/empty/src/empty.mjs +7 -0
- package/es/packages/components/empty/src/empty.mjs.map +1 -1
- package/es/packages/components/empty/src/empty.vue2.mjs +4 -4
- package/es/packages/components/empty/src/empty.vue2.mjs.map +1 -1
- package/es/packages/components/form/index.mjs +1 -1
- package/es/packages/components/form/src/components/form-component.vue2.mjs +14 -9
- package/es/packages/components/form/src/components/form-component.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/config/form-component.mjs +4 -1
- package/es/packages/components/form/src/config/form-component.mjs.map +1 -1
- package/es/packages/components/form/src/config/form.mjs +1 -1
- package/es/packages/components/form/src/config/form.mjs.map +1 -1
- package/es/packages/components/form/src/config/index.mjs +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +12 -15
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/index.mjs +3 -1
- package/es/packages/components/index.mjs.map +1 -1
- package/es/packages/components/number-range/src/number-range.vue2.mjs +6 -5
- package/es/packages/components/number-range/src/number-range.vue2.mjs.map +1 -1
- package/es/packages/components/rich-text-editor/src/rich-text-editor.vue2.mjs +31 -22
- package/es/packages/components/rich-text-editor/src/rich-text-editor.vue2.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.mjs +6 -0
- package/es/packages/components/select-group/src/select-group.mjs.map +1 -1
- package/es/packages/components/select-group/src/select-group.vue2.mjs +6 -6
- package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
- package/es/packages/utils/file.mjs +13 -1
- package/es/packages/utils/file.mjs.map +1 -1
- package/es/packages/utils/index.mjs +1 -1
- package/es/utils/file.d.ts +4 -0
- package/global.d.ts +2 -0
- package/index.full.js +3981 -656
- package/index.full.min.js +41 -28
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +40 -27
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +3975 -658
- package/lib/component.js +92 -89
- package/lib/component.js.map +1 -1
- package/lib/components/advanced-filtering/index.d.ts +34 -16
- package/lib/components/advanced-filtering/src/advanced-filtering.d.ts +1 -1
- package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +17 -8
- package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +18 -8
- package/lib/components/avatar/index.d.ts +66 -31
- package/lib/components/avatar/src/avatar.d.ts +33 -30
- package/lib/components/avatar/src/avatar.vue.d.ts +66 -31
- package/lib/components/cropper/index.d.ts +1485 -0
- package/lib/components/cropper/src/cropper-image.d.ts +51 -0
- package/lib/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/lib/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/lib/components/empty/index.d.ts +4 -0
- package/lib/components/empty/src/empty.d.ts +1 -0
- package/lib/components/empty/src/empty.vue.d.ts +4 -0
- package/lib/components/form/index.d.ts +24 -8
- package/lib/components/form/src/components/form-component.vue.d.ts +9 -2
- package/lib/components/form/src/config/form-component.d.ts +4 -1
- package/lib/components/form/src/config/form.d.ts +7 -1
- package/lib/components/form/src/form.vue.d.ts +15 -6
- package/lib/components/index.d.ts +1 -0
- package/lib/components/key-value/index.d.ts +90 -36
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +30 -12
- package/lib/components/key-value/src/key-value.vue.d.ts +90 -36
- package/lib/components/select-group/index.d.ts +5 -4
- package/lib/components/select-group/src/select-group.d.ts +7 -1
- package/lib/components/select-group/src/select-group.vue.d.ts +5 -4
- package/lib/index.js +101 -91
- package/lib/index.js.map +1 -1
- package/lib/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.js +1696 -0
- package/lib/node_modules/.pnpm/@vueuse_shared@10.9.0_vue@3.4.25/node_modules/@vueuse/shared/index.js.map +1 -0
- package/lib/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.js +61 -0
- package/lib/node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.25/node_modules/vue-demi/lib/index.js.map +1 -0
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +4 -1
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.vue2.js +2 -3
- package/lib/packages/components/advanced-filtering/src/advanced-filtering.vue2.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js +9 -18
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue2.js.map +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js +1 -1
- package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js.map +1 -1
- package/lib/packages/components/avatar/src/avatar.js +39 -13
- package/lib/packages/components/avatar/src/avatar.js.map +1 -1
- package/lib/packages/components/avatar/src/avatar.vue2.js +39 -126
- package/lib/packages/components/avatar/src/avatar.vue2.js.map +1 -1
- package/lib/packages/components/checkbox/index.js.map +1 -1
- package/lib/packages/components/cropper/index.js +20 -0
- package/lib/packages/components/cropper/index.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.js +83 -0
- package/lib/packages/components/cropper/src/cropper-image.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.vue.js +12 -0
- package/lib/packages/components/cropper/src/cropper-image.vue.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-image.vue2.js +141 -0
- package/lib/packages/components/cropper/src/cropper-image.vue2.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue.js +12 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue.js.map +1 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js +411 -0
- package/lib/packages/components/cropper/src/cropper-modal.vue2.js.map +1 -0
- package/lib/packages/components/empty/src/empty.js +7 -0
- package/lib/packages/components/empty/src/empty.js.map +1 -1
- package/lib/packages/components/empty/src/empty.vue2.js +3 -3
- package/lib/packages/components/empty/src/empty.vue2.js.map +1 -1
- package/lib/packages/components/form/index.js +1 -0
- package/lib/packages/components/form/index.js.map +1 -1
- package/lib/packages/components/form/src/components/form-component.vue2.js +12 -7
- package/lib/packages/components/form/src/components/form-component.vue2.js.map +1 -1
- package/lib/packages/components/form/src/config/form-component.js +4 -0
- package/lib/packages/components/form/src/config/form-component.js.map +1 -1
- package/lib/packages/components/form/src/config/form.js +1 -1
- package/lib/packages/components/form/src/config/form.js.map +1 -1
- package/lib/packages/components/form/src/config/index.js +1 -0
- package/lib/packages/components/form/src/config/index.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +12 -15
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/index.js +101 -91
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/number-range/src/number-range.vue2.js +6 -5
- package/lib/packages/components/number-range/src/number-range.vue2.js.map +1 -1
- package/lib/packages/components/rich-text-editor/src/rich-text-editor.vue2.js +30 -21
- package/lib/packages/components/rich-text-editor/src/rich-text-editor.vue2.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.js +6 -0
- package/lib/packages/components/select-group/src/select-group.js.map +1 -1
- package/lib/packages/components/select-group/src/select-group.vue2.js +6 -6
- package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
- package/lib/packages/utils/file.js +13 -0
- package/lib/packages/utils/file.js.map +1 -1
- package/lib/packages/utils/index.js +1 -0
- package/lib/packages/utils/index.js.map +1 -1
- package/lib/utils/file.d.ts +4 -0
- package/package.json +2 -1
- package/theme-chalk/css/avatar.css +1 -1
- package/theme-chalk/css/cropper.css +13 -0
- package/theme-chalk/css/index.css +9 -1
- package/theme-chalk/css/rich-text-editor.css +1 -1
- package/types/packages/components/advanced-filtering/index.d.ts +34 -16
- package/types/packages/components/advanced-filtering/src/advanced-filtering.d.ts +1 -1
- package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +17 -8
- package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +18 -8
- package/types/packages/components/avatar/index.d.ts +66 -31
- package/types/packages/components/avatar/src/avatar.d.ts +33 -30
- package/types/packages/components/avatar/src/avatar.vue.d.ts +66 -31
- package/types/packages/components/cropper/index.d.ts +1485 -0
- package/types/packages/components/cropper/src/cropper-image.d.ts +51 -0
- package/types/packages/components/cropper/src/cropper-image.vue.d.ts +93 -0
- package/types/packages/components/cropper/src/cropper-modal.vue.d.ts +1391 -0
- package/types/packages/components/empty/index.d.ts +4 -0
- package/types/packages/components/empty/src/empty.d.ts +1 -0
- package/types/packages/components/empty/src/empty.vue.d.ts +4 -0
- package/types/packages/components/form/index.d.ts +24 -8
- package/types/packages/components/form/src/components/form-component.vue.d.ts +9 -2
- package/types/packages/components/form/src/config/form-component.d.ts +4 -1
- package/types/packages/components/form/src/config/form.d.ts +7 -1
- package/types/packages/components/form/src/form.vue.d.ts +15 -6
- package/types/packages/components/index.d.ts +1 -0
- package/types/packages/components/key-value/index.d.ts +90 -36
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +30 -12
- package/types/packages/components/key-value/src/key-value.vue.d.ts +90 -36
- package/types/packages/components/select-group/index.d.ts +5 -4
- package/types/packages/components/select-group/src/select-group.d.ts +7 -1
- package/types/packages/components/select-group/src/select-group.vue.d.ts +5 -4
- package/types/packages/utils/file.d.ts +4 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { formEmits, formProps } from './form.mjs';
|
|
2
2
|
export { checkedType } from './components.mjs';
|
|
3
|
-
export { formComponentProps } from './form-component.mjs';
|
|
3
|
+
export { formComponentEmits, formComponentProps } from './form-component.mjs';
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -18,6 +18,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
18
18
|
const bem = createNamespace("form");
|
|
19
19
|
const formData = reactive(props.formData);
|
|
20
20
|
const formRef = ref();
|
|
21
|
+
const id = ref(`ll-form-${+/* @__PURE__ */ new Date()}`);
|
|
21
22
|
const validate = async () => {
|
|
22
23
|
return await formRef.value.validateFields();
|
|
23
24
|
};
|
|
@@ -44,15 +45,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
44
45
|
}
|
|
45
46
|
return bem.is("label-top");
|
|
46
47
|
};
|
|
47
|
-
|
|
48
|
-
(
|
|
49
|
-
|
|
50
|
-
emits("change", val);
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
deep: true
|
|
54
|
-
}
|
|
55
|
-
);
|
|
48
|
+
const handleChangeField = (item) => {
|
|
49
|
+
emits("change", { item, value: formData[item.key], formData });
|
|
50
|
+
};
|
|
56
51
|
watch(
|
|
57
52
|
() => props.formData,
|
|
58
53
|
async (val) => {
|
|
@@ -88,10 +83,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
88
83
|
spinning: props.loading
|
|
89
84
|
}, {
|
|
90
85
|
default: withCtx(() => [
|
|
91
|
-
createVNode(_component_a_form, mergeProps({
|
|
86
|
+
createVNode(_component_a_form, mergeProps(props.formOptions, {
|
|
87
|
+
id: id.value,
|
|
92
88
|
ref_key: "formRef",
|
|
93
|
-
ref: formRef
|
|
94
|
-
}, props.formOptions, {
|
|
89
|
+
ref: formRef,
|
|
95
90
|
model: props.formData
|
|
96
91
|
}), {
|
|
97
92
|
default: withCtx(() => [
|
|
@@ -191,7 +186,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
191
186
|
}, () => [
|
|
192
187
|
createVNode(FormComponent, {
|
|
193
188
|
item: child,
|
|
194
|
-
"form-data": formData
|
|
189
|
+
"form-data": formData,
|
|
190
|
+
onChangeField: handleChangeField
|
|
195
191
|
}, null, 8, ["item", "form-data"])
|
|
196
192
|
])
|
|
197
193
|
]),
|
|
@@ -214,7 +210,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
214
210
|
)) : (openBlock(), createBlock(FormComponent, {
|
|
215
211
|
key: 1,
|
|
216
212
|
item,
|
|
217
|
-
"form-data": formData
|
|
213
|
+
"form-data": formData,
|
|
214
|
+
onChangeField: handleChangeField
|
|
218
215
|
}, null, 8, ["item", "form-data"]))
|
|
219
216
|
])
|
|
220
217
|
]),
|
|
@@ -240,7 +237,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
240
237
|
]),
|
|
241
238
|
_: 3
|
|
242
239
|
/* FORWARDED */
|
|
243
|
-
}, 16, ["model"])
|
|
240
|
+
}, 16, ["id", "model"])
|
|
244
241
|
]),
|
|
245
242
|
_: 3
|
|
246
243
|
/* FORWARDED */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.vue2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <a-form
|
|
1
|
+
{"version":3,"file":"form.vue2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <a-form\n v-bind=\"props.formOptions\"\n :id=\"id\"\n ref=\"formRef\"\n :model=\"props.formData\"\n >\n <a-row v-bind=\"props.rowOptions\">\n <a-col\n v-for=\"(item, index) in props.formColumns\"\n :key=\"index\"\n v-bind=\"item?.colOptions ?? {}\"\n :span=\"item?.spanCol ?? 24\"\n >\n <slot name=\"formItem\" :item=\"item\" :index=\"index\">\n <ll-form-item\n :name=\"item?.key ?? index\"\n :class=\"getFormItemClass(item)\"\n v-bind=\"getBindValue(item)\"\n >\n <template #label>\n <slot name=\"label\" :item=\"item\" :index=\"index\">\n <span>{{ item.label }}</span>\n <span v-if=\"item?.tip\" :class=\"bem.e('tooltip-wrapper')\">\n <ll-tooltip\n style=\"margin-left: 8px\"\n :overlay-class-name=\"bem.e('tooltip')\"\n :arrow-point-at-center=\"true\"\n :max-width=\"item?.tipConfig?.maxWidth ?? 406\"\n :placement=\"item?.tipConfig?.placement ?? 'top'\"\n :tip=\"item.tip\"\n :font-size=\"'16px'\"\n v-bind=\"item?.tipConfig\"\n />\n </span>\n </slot>\n </template>\n <slot name=\"content\" :item=\"item\" :index=\"index\">\n <template v-if=\"!isEmpty(item.children)\">\n <a-row :gutter=\"5\" v-bind=\"item.rowOptions\">\n <a-col\n v-for=\"(child, childIndex) in item.children\"\n :key=\"childIndex\"\n :style=\"{\n display: 'flex',\n 'align-items': 'center'\n }\"\n v-bind=\"item?.colOptions ?? {}\"\n >\n <slot name=\"children\" :item=\"child\" :index=\"index\">\n <form-component\n :item=\"child\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </a-col>\n </a-row>\n </template>\n <form-component\n v-else\n :item=\"item\"\n :form-data=\"formData\"\n @change-field=\"handleChangeField\"\n />\n </slot>\n </ll-form-item>\n </slot>\n </a-col>\n </a-row>\n </a-form>\n </a-spin>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { reactive, ref, watch } from 'vue'\nimport { omit, isEmpty } from 'lodash-es'\nimport { formProps, formEmits, type FormColumn } from './config'\n\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport formComponent from './components/form-component.vue'\n\n// 定义组件名称\ndefineOptions({ name: 'LlForm' })\n\n// Props\nconst props = defineProps(formProps)\n\nconst emits = defineEmits(formEmits)\n\nconst bem = createNamespace('form')\n\nconst formData = reactive(props.formData)\n\nconst formRef = ref()\n\nconst id = ref(`ll-form-${+new Date()}`)\n\nconst validate = async () => {\n return await formRef.value.validateFields()\n}\n\nconst resetFields = async () => {\n return await formRef.value.resetFields()\n}\n\nconst clearValidate = async (nameList?: NamePath[]) => {\n return await formRef.value.clearValidate(nameList)\n}\n\nconst scrollToField = async (name: NamePath, options?: ScrollOptions) => {\n return await formRef.value.scrollToField(name, options)\n}\n\nconst getBindValue = (item: FormColumn) => {\n const obj = { ...item }\n return omit(obj, ['label'])\n}\n\nconst getFormItemClass = (item = {} as FormColumn) => {\n if (props.formOptions.layout === 'horizontal') {\n if (item?.labelCol) {\n return item.labelCol.span && item.labelCol.span >= 24\n ? bem.is('label-top')\n : bem.is('label-left')\n } else {\n return bem.is('label-left')\n }\n }\n return bem.is('label-top')\n}\n\nconst handleChangeField = (item: FormColumn) => {\n emits('change', { item, value: formData[item.key], formData })\n}\n\n// watch(\n// () => formData,\n// val => {\n// emits('change', val)\n// },\n// {\n// deep: true\n// }\n// )\n\nwatch(\n () => props.formData,\n async val => {\n for (const i in val) {\n formData[i] = val[i]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate,\n scrollToField\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export { LlCascader } from './cascader/index.mjs';
|
|
|
6
6
|
export { LlCheckbox, LlCheckboxGroup } from './checkbox/index.mjs';
|
|
7
7
|
export { LlCodeEditor } from './code-editor/index.mjs';
|
|
8
8
|
export { LlConfigProvider } from './config-provider/index.mjs';
|
|
9
|
+
export { LlCropperImage, LlCropperModal } from './cropper/index.mjs';
|
|
9
10
|
export { LlDatePicker } from './date-picker/index.mjs';
|
|
10
11
|
export { LlDateRange } from './date-range/index.mjs';
|
|
11
12
|
export { LlDescriptions } from './descriptions/index.mjs';
|
|
@@ -62,6 +63,7 @@ export { buttonProps } from './button/src/button.mjs';
|
|
|
62
63
|
export { checkboxGroupProps, checkboxProps } from './checkbox/src/checkbox.mjs';
|
|
63
64
|
export { codeEditorEmits, codeEditorProps, defaultOptions } from './code-editor/src/config/code-editor.mjs';
|
|
64
65
|
export { codeThemeList } from './code-editor/src/config/code-theme-list.mjs';
|
|
66
|
+
export { cropperImageEmits, cropperImageProps, cropperModalEmits, cropperModalProps, defaultCropperOptions } from './cropper/src/cropper-image.mjs';
|
|
65
67
|
export { descriptionsProps } from './descriptions/src/descriptions.mjs';
|
|
66
68
|
export { descriptionsItemProps } from './descriptions-item/src/descriptions-item.mjs';
|
|
67
69
|
export { drawerEmits, drawerOptions, drawerProps } from './drawer/src/drawer.mjs';
|
|
@@ -74,7 +76,7 @@ export { TypeEnum, useTabEmits, useTabProps, useTabSetup } from './easy-cron/src
|
|
|
74
76
|
export { emptyProps, url } from './empty/src/empty.mjs';
|
|
75
77
|
export { formEmits, formProps } from './form/src/config/form.mjs';
|
|
76
78
|
export { checkedType } from './form/src/config/components.mjs';
|
|
77
|
-
export { formComponentProps } from './form/src/config/form-component.mjs';
|
|
79
|
+
export { formComponentEmits, formComponentProps } from './form/src/config/form-component.mjs';
|
|
78
80
|
export { iconProps } from './icon/src/icon.mjs';
|
|
79
81
|
export { iconBaseProps, iconTypes } from './icon-base/src/icon-base.mjs';
|
|
80
82
|
export { iconPickerProps } from './icon-picker/src/config/icon-picker.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createVNode, createCommentVNode, renderSlot, createTextVNode } from 'vue';
|
|
2
|
+
import { isNil } from 'lodash-es';
|
|
2
3
|
import { numberRangeProps, numberRangeEmits } from './number-range.mjs';
|
|
3
4
|
import '../../../utils/index.mjs';
|
|
4
5
|
import '../../index.mjs';
|
|
@@ -23,7 +24,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
23
24
|
emits("change", arr);
|
|
24
25
|
};
|
|
25
26
|
const handleMinChange = (e) => {
|
|
26
|
-
if (
|
|
27
|
+
if (!isNil(e)) {
|
|
27
28
|
minValue.value = e;
|
|
28
29
|
} else {
|
|
29
30
|
minValue.value = void 0;
|
|
@@ -31,10 +32,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
32
|
setValue();
|
|
32
33
|
};
|
|
33
34
|
const handleMaxChange = (e) => {
|
|
34
|
-
if (
|
|
35
|
+
if (!isNil(e)) {
|
|
35
36
|
maxValue.value = e;
|
|
36
37
|
} else {
|
|
37
|
-
|
|
38
|
+
maxValue.value = void 0;
|
|
38
39
|
}
|
|
39
40
|
setValue();
|
|
40
41
|
};
|
|
@@ -58,12 +59,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
58
59
|
() => props.value,
|
|
59
60
|
(n) => {
|
|
60
61
|
if (n && n.length) {
|
|
61
|
-
if (n[0]
|
|
62
|
+
if (!isNil(n[0])) {
|
|
62
63
|
minValue.value = n[0];
|
|
63
64
|
} else {
|
|
64
65
|
minValue.value = void 0;
|
|
65
66
|
}
|
|
66
|
-
if (n[1]
|
|
67
|
+
if (!isNil(n[1])) {
|
|
67
68
|
maxValue.value = n[1];
|
|
68
69
|
} else {
|
|
69
70
|
maxValue.value = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-range.vue2.mjs","sources":["../../../../../../packages/components/number-range/src/number-range.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bem.m('input')\">\n <ll-input-number\n v-model:value=\"minValue\"\n :placeholder=\"placeholder[0]\"\n :precision=\"props.precision\"\n :min=\"props.min\"\n :max=\"props.max\"\n :disabled=\"props.disabled\"\n :controls=\"false\"\n :bordered=\"false\"\n style=\"width: 100%\"\n @change=\"handleMinChange\"\n @blur=\"handleMinBlur\"\n />\n </div>\n <!-- 左边InputNumber -->\n\n <span :class=\"bem.m('separator')\">\n <slot name=\"separator\"> - </slot>\n </span>\n <!-- 右边InputNumber -->\n <div :class=\"bem.m('input')\">\n <ll-input-number\n v-model:value=\"maxValue\"\n :placeholder=\"placeholder[1]\"\n :precision=\"props.precision\"\n :min=\"props.min\"\n :max=\"props.max\"\n :disabled=\"props.disabled\"\n :controls=\"false\"\n :bordered=\"false\"\n style=\"width: 100%\"\n @change=\"handleMaxChange\"\n @blur=\"handleMaxBlur\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\nimport { numberRangeProps, numberRangeEmits } from './number-range'\n\ndefineOptions({ name: 'LlNumberRange' })\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { LlInputNumber } from '@ll-plus/components'\n\nimport type { InputNumberProps } from 'ant-design-vue'\n\n// 1.props/ref\nconst props = defineProps(numberRangeProps)\n// 2.emits\nconst emits = defineEmits(numberRangeEmits)\n\nconst bem = createNamespace('number-range')\n\nconst minValue = ref<InputNumberProps['value']>(undefined)\n\nconst maxValue = ref<InputNumberProps['value']>(undefined)\n\nconst setValue = () => {\n const arr = [minValue.value, maxValue.value]\n emits('update:value', arr)\n emits('change', arr)\n}\n\nconst handleMinChange = e => {\n if (
|
|
1
|
+
{"version":3,"file":"number-range.vue2.mjs","sources":["../../../../../../packages/components/number-range/src/number-range.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bem.m('input')\">\n <ll-input-number\n v-model:value=\"minValue\"\n :placeholder=\"placeholder[0]\"\n :precision=\"props.precision\"\n :min=\"props.min\"\n :max=\"props.max\"\n :disabled=\"props.disabled\"\n :controls=\"false\"\n :bordered=\"false\"\n style=\"width: 100%\"\n @change=\"handleMinChange\"\n @blur=\"handleMinBlur\"\n />\n </div>\n <!-- 左边InputNumber -->\n\n <span :class=\"bem.m('separator')\">\n <slot name=\"separator\"> - </slot>\n </span>\n <!-- 右边InputNumber -->\n <div :class=\"bem.m('input')\">\n <ll-input-number\n v-model:value=\"maxValue\"\n :placeholder=\"placeholder[1]\"\n :precision=\"props.precision\"\n :min=\"props.min\"\n :max=\"props.max\"\n :disabled=\"props.disabled\"\n :controls=\"false\"\n :bordered=\"false\"\n style=\"width: 100%\"\n @change=\"handleMaxChange\"\n @blur=\"handleMaxBlur\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\nimport { isNil } from 'lodash-es'\nimport { numberRangeProps, numberRangeEmits } from './number-range'\n\ndefineOptions({ name: 'LlNumberRange' })\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { LlInputNumber } from '@ll-plus/components'\n\nimport type { InputNumberProps } from 'ant-design-vue'\n\n// 1.props/ref\nconst props = defineProps(numberRangeProps)\n// 2.emits\nconst emits = defineEmits(numberRangeEmits)\n\nconst bem = createNamespace('number-range')\n\nconst minValue = ref<InputNumberProps['value']>(undefined)\n\nconst maxValue = ref<InputNumberProps['value']>(undefined)\n\nconst setValue = () => {\n const arr = [minValue.value, maxValue.value]\n emits('update:value', arr)\n emits('change', arr)\n}\n\nconst handleMinChange = e => {\n if (!isNil(e)) {\n minValue.value = e\n } else {\n minValue.value = undefined\n }\n setValue()\n}\nconst handleMaxChange = e => {\n if (!isNil(e)) {\n maxValue.value = e\n } else {\n maxValue.value = undefined\n }\n setValue()\n}\n\nconst handleMaxBlur = () => {\n if (minValue.value || minValue.value === 0) {\n if (maxValue.value && maxValue.value < minValue.value) {\n maxValue.value = minValue.value\n }\n }\n setValue()\n}\n\nconst handleMinBlur = () => {\n if (maxValue.value || maxValue.value === 0) {\n if (minValue.value && minValue.value > maxValue.value) {\n minValue.value = maxValue.value\n }\n }\n setValue()\n}\n\nwatch(\n () => props.value,\n n => {\n if (n && n.length!) {\n if (!isNil(n[0])) {\n minValue.value = n[0]\n } else {\n minValue.value = undefined\n }\n if (!isNil(n[1])) {\n maxValue.value = n[1]\n } else {\n maxValue.value = undefined\n }\n } else {\n minValue.value = undefined\n maxValue.value = undefined\n }\n },\n {\n immediate: true,\n deep: true\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, shallowRef, ref, computed, onBeforeUnmount, watch, nextTick, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx } from 'vue';
|
|
1
|
+
import { defineComponent, shallowRef, ref, computed, onBeforeUnmount, watch, nextTick, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createElementVNode } from 'vue';
|
|
2
2
|
import { Toolbar, Editor } from '@wangeditor/editor-for-vue';
|
|
3
3
|
import '../../../utils/index.mjs';
|
|
4
4
|
import { richTextEditorProps, richTextEditorEmits, FALLBACK_IMAGE } from './rich-text-editor.mjs';
|
|
@@ -136,31 +136,40 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
136
136
|
return openBlock(), createElementBlock(
|
|
137
137
|
"div",
|
|
138
138
|
{
|
|
139
|
-
class: normalizeClass(unref(bem).b())
|
|
140
|
-
style: { "border": "1px solid #ccc" }
|
|
139
|
+
class: normalizeClass(unref(bem).b())
|
|
141
140
|
},
|
|
142
141
|
[
|
|
143
142
|
createVNode(_component_a_spin, { spinning: loading.value }, {
|
|
144
143
|
default: withCtx(() => [
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
144
|
+
createElementVNode(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
class: normalizeClass(unref(bem).e("container"))
|
|
148
|
+
},
|
|
149
|
+
[
|
|
150
|
+
createVNode(unref(Toolbar), {
|
|
151
|
+
class: normalizeClass(unref(bem).e("toolbar-container")),
|
|
152
|
+
editor: editorRef.value,
|
|
153
|
+
"default-config": props.toolbarConfig,
|
|
154
|
+
mode: props.mode
|
|
155
|
+
}, null, 8, ["class", "editor", "default-config", "mode"]),
|
|
156
|
+
createVNode(unref(Editor), {
|
|
157
|
+
modelValue: innerValue.value,
|
|
158
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
159
|
+
class: normalizeClass(unref(bem).e("editor-container")),
|
|
160
|
+
"default-config": editorConfig.value,
|
|
161
|
+
mode: props.mode,
|
|
162
|
+
onOnCreated: handleCreated,
|
|
163
|
+
onOnChange: handleChange,
|
|
164
|
+
onOnDestroyed: handleDestroyed,
|
|
165
|
+
onOnFocus: handleFocus,
|
|
166
|
+
onOnBlur: handleBlur,
|
|
167
|
+
onCustomAlert: customAlert
|
|
168
|
+
}, null, 8, ["modelValue", "class", "default-config", "mode"])
|
|
169
|
+
],
|
|
170
|
+
2
|
|
171
|
+
/* CLASS */
|
|
172
|
+
)
|
|
164
173
|
]),
|
|
165
174
|
_: 1
|
|
166
175
|
/* STABLE */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.vue2.mjs","sources":["../../../../../../packages/components/rich-text-editor/src/rich-text-editor.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\"
|
|
1
|
+
{"version":3,"file":"rich-text-editor.vue2.mjs","sources":["../../../../../../packages/components/rich-text-editor/src/rich-text-editor.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"loading\">\n <div :class=\"bem.e('container')\">\n <Toolbar\n :class=\"bem.e('toolbar-container')\"\n :editor=\"editorRef\"\n :default-config=\"props.toolbarConfig\"\n :mode=\"props.mode\"\n />\n <Editor\n v-model=\"innerValue\"\n :class=\"bem.e('editor-container')\"\n :default-config=\"editorConfig\"\n :mode=\"props.mode\"\n @on-created=\"handleCreated\"\n @on-change=\"handleChange\"\n @on-destroyed=\"handleDestroyed\"\n @on-focus=\"handleFocus\"\n @on-blur=\"handleBlur\"\n @custom-alert=\"customAlert\"\n />\n </div>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n onBeforeUnmount,\n ref,\n shallowRef,\n computed,\n watch,\n nextTick\n} from 'vue'\nimport { Editor, Toolbar } from '@wangeditor/editor-for-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport {\n richTextEditorProps,\n richTextEditorEmits,\n FALLBACK_IMAGE,\n type InsertPicType,\n type InsertVidType,\n type ImageElement\n} from './rich-text-editor'\n\nimport '@wangeditor/editor/dist/css/style.css' // 引入 css\n\nimport type { IDomEditor } from '@wangeditor/editor'\n\n//@ts-ignore\ndefineOptions({ name: 'LlRichTextEditor' })\n\nconst bem = createNamespace('rich-text-editor')\n\nconst props = defineProps(richTextEditorProps)\n\nconst emits = defineEmits(richTextEditorEmits)\n\nconst editorRef = shallowRef()\n\nconst innerValue = ref(props.value)\n\nconst loading = ref<boolean>(props.loading)\n\nconst allImages = ref<any>([])\n\nconst editorConfig = computed(() => {\n return {\n MENU_CONF: {\n uploadImage: {\n async onBeforeUpload(file: File) {\n if (props.onBeforeUploadImage) {\n const res = await props.onBeforeUploadImage(file)\n return res ? file : false\n }\n return file\n },\n\n async customUpload(file: File, insertFn: InsertPicType) {\n loading.value = true\n //图片上传接口调用\n try {\n const res = await props.customUploadImage(file)\n insertFn(res)\n loading.value = false\n } catch (error) {\n editorRef.value.alert('错误信息', props.uploadImageError)\n loading.value = false\n }\n },\n base64LimitSize: 5 * 1024\n },\n insertImage: {\n async onInsertedImage(imageNode: ImageElement | null) {\n allImages.value.push(imageNode)\n }\n },\n uploadVideo: {\n async customUpload(file: File, insertFn: InsertVidType) {\n if (props.customUploadVideo) {\n loading.value = true\n //图片上传接口调用\n try {\n const res = await props.customUploadVideo(file)\n insertFn(res, FALLBACK_IMAGE)\n loading.value = false\n } catch (error) {\n editorRef.value.alert('错误信息', props.uploadImageError)\n loading.value = false\n }\n }\n }\n }\n },\n ...props.editorConfig\n }\n})\n\nconst handleCreated = (editor: IDomEditor) => {\n editorRef.value = editor\n allImages.value = editor.getElemsByType('image')\n emits('created', editor)\n}\n\nconst handleChange = (editor: IDomEditor) => {\n innerValue.value = editor.getHtml()\n emits('change', editor)\n emits('update:value', innerValue.value)\n}\nconst handleDestroyed = (editor: IDomEditor) => {\n emits('destroyed', editor)\n}\nconst handleFocus = (editor: IDomEditor) => {\n emits('focus', editor)\n}\nconst handleBlur = (editor: IDomEditor) => {\n emits('blur', editor)\n}\nconst customAlert = (info, type) => {\n emits('alert', [info, type])\n}\n\nconst getEditorImage = () => {\n const editor = editorRef.value\n if (editor == null) return\n return {\n allImages: allImages.value,\n currentImages: editor.getElemsByType('image')\n }\n}\n\n// 组件销毁时,也及时销毁编辑器\nonBeforeUnmount(() => {\n const editor = editorRef.value\n if (editor == null) return\n editor.destroy()\n})\n\nwatch(\n () => props.loading,\n (val: boolean) => {\n loading.value = val\n }\n)\n\nwatch(\n () => [props.disabled, loading.value],\n async (val: boolean[]) => {\n const editor = editorRef.value\n if (editor == null) return\n await nextTick()\n if (val[0] || val[1]) {\n editor.disable()\n } else {\n editor.enable()\n }\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n editorRef: editorRef.value,\n getEditorImage\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-group.mjs","sources":["../../../../../../packages/components/select-group/src/select-group.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nimport { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type SelectGroup from './select-group.vue'\n\nexport interface ISelectGroupItem {\n name?: string\n value?: any\n [key: string]: any\n}\n\nexport const selectGroupFormType = [\n 'input',\n 'select',\n 'range-picker',\n 'treeSelect'\n] as const\n\nexport const selectGroupData = buildProps({\n // buildProps和defineprops一样\n /**\n * @description 表单提示占位符\n */\n placeholder: {\n type: String\n },\n /**\n * @description 表单的字段 name\n */\n name: {\n type: String,\n required: true\n },\n /**\n * @description 右边表单的 value\n */\n value: {\n type: String,\n required: true\n },\n /**\n * @description SVG 图标的大小,size x size\n */\n showFormType: {\n type: String,\n values: selectGroupFormType\n },\n /**\n * @description 格式化属性例如tree/select\n */\n fieldNames: {\n type: definePropType<object>(Object)\n },\n /**\n * @description select的options\n */\n options: {\n type: definePropType<any[]>(Array)\n },\n /**\n * @description 左侧选择的options\n */\n list: {\n type: definePropType<ISelectGroupItem[]>(Array)\n }\n} as const)\nexport const selectGroupProps = buildProps({\n /**\n * @description 选中select中的某一项(和value对应)\n */\n selectValue: {\n type: String\n },\n /**\n * @description 右边表单的 value\n */\n value: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined\n },\n /**\n * @description select的options\n */\n data: {\n type: definePropType<SelectGroupData[]>(Array),\n default: () => []\n }\n} as const)\n\nexport const selectGroupEmits = {\n change: (selectV: string, value?:
|
|
1
|
+
{"version":3,"file":"select-group.mjs","sources":["../../../../../../packages/components/select-group/src/select-group.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\n\nimport { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type SelectGroup from './select-group.vue'\n\nexport interface ISelectGroupItem {\n name?: string\n value?: any\n [key: string]: any\n}\n\nexport const selectGroupFormType = [\n 'input',\n 'select',\n 'range-picker',\n 'treeSelect'\n] as const\n\nexport const selectGroupData = buildProps({\n // buildProps和defineprops一样\n /**\n * @description 表单提示占位符\n */\n placeholder: {\n type: String\n },\n /**\n * @description 表单的字段 name\n */\n name: {\n type: String,\n required: true\n },\n /**\n * @description 右边表单的 value\n */\n value: {\n type: String,\n required: true\n },\n /**\n * @description SVG 图标的大小,size x size\n */\n showFormType: {\n type: String,\n values: selectGroupFormType\n },\n /**\n * @description 格式化属性例如tree/select\n */\n fieldNames: {\n type: definePropType<object>(Object)\n },\n /**\n * @description select的options\n */\n options: {\n type: definePropType<any[]>(Array)\n },\n /**\n * @description 左侧选择的options\n */\n list: {\n type: definePropType<ISelectGroupItem[]>(Array)\n },\n /**\n * @description 是否在下拉框select最前面添加全部\n */\n noFirstAddAll: {\n type: Boolean\n }\n} as const)\nexport const selectGroupProps = buildProps({\n /**\n * @description 选中select中的某一项(和value对应)\n */\n selectValue: {\n type: String\n },\n /**\n * @description 右边表单的 value\n */\n value: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined\n },\n /**\n * @description select的options\n */\n data: {\n type: definePropType<SelectGroupData[]>(Array),\n default: () => []\n }\n} as const)\n\nexport const selectGroupEmits = {\n change: (selectV: string, value?: any) => !!selectV || !!value,\n onSelectChange: (selectV: string, item: SelectGroupData) =>\n !!selectV && !!item // 左侧selectchange\n}\n\nexport const LEFT_SELECT_MIN_WIDTH = 84 // 左侧select的宽度\n\n// props\nexport type SelectGroupProps = ExtractPropTypes<typeof selectGroupProps>\nexport type SelectGroupData = ExtractPropTypes<typeof selectGroupData>\nexport type SelectGroupFormType = SelectGroupData['showFormType']\n\nexport type SelectGroupEmits = typeof selectGroupEmits\n\n// instance\nexport type SelectGroupInstance = InstanceType<typeof SelectGroup>\n"],"names":[],"mappings":";;;;AAYO,MAAM,mBAAsB,GAAA;AAAA,EACjC,OAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AACF,EAAA;AAEO,MAAM,kBAAkB,UAAW,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA;AAAA;AAAA;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,IAAM,EAAA,MAAA;AAAA,IACN,MAAQ,EAAA,mBAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAA,EAAM,eAAuB,MAAM,CAAA;AAAA,GACrC;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAAsB,KAAK,CAAA;AAAA,GACnC;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAAmC,KAAK,CAAA;AAAA,GAChD;AAAA;AAAA;AAAA;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,OAAA;AAAA,GACR;AACF,CAAU,EAAA;AACH,MAAM,mBAAmB,UAAW,CAAA;AAAA;AAAA;AAAA;AAAA,EAIzC,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,GACR;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,MAAM,CAAC,KAAA,EAAO,MAAQ,EAAA,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IAC7C,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAAkC,KAAK,CAAA;AAAA,IAC7C,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AACF,CAAU,EAAA;AAEH,MAAM,gBAAmB,GAAA;AAAA,EAC9B,MAAA,EAAQ,CAAC,OAAiB,EAAA,KAAA,KAAgB,CAAC,CAAC,OAAA,IAAW,CAAC,CAAC,KAAA;AAAA,EACzD,cAAA,EAAgB,CAAC,OAAiB,EAAA,IAAA,KAChC,CAAC,CAAC,OAAA,IAAW,CAAC,CAAC,IAAA;AAAA;AACnB,EAAA;AAEO,MAAM,qBAAwB,GAAA;;;;"}
|
|
@@ -35,16 +35,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
35
35
|
} else if (formType === "range-picker") {
|
|
36
36
|
value.value = [void 0, void 0];
|
|
37
37
|
} else if (formType === "select") {
|
|
38
|
-
value.value = -1;
|
|
38
|
+
value.value = item.noFirstAddAll ? void 0 : -1;
|
|
39
39
|
}
|
|
40
40
|
selectItem.value = options.item;
|
|
41
|
-
emits("onSelectChange", _,
|
|
41
|
+
emits("onSelectChange", _, item);
|
|
42
42
|
};
|
|
43
43
|
const handleChange = () => {
|
|
44
44
|
emits(
|
|
45
45
|
"change",
|
|
46
46
|
selectItem.value?.value,
|
|
47
|
-
value.value === -1 ?
|
|
47
|
+
value.value === -1 ? null : value.value
|
|
48
48
|
);
|
|
49
49
|
};
|
|
50
50
|
watch(
|
|
@@ -54,7 +54,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
54
54
|
const list = newData.map((item) => {
|
|
55
55
|
const newItem = { ...item };
|
|
56
56
|
if (newItem.showFormType === "select") {
|
|
57
|
-
if (newItem.options?.length) {
|
|
57
|
+
if (newItem.options?.length && !newItem.noFirstAddAll) {
|
|
58
58
|
newItem.options = [
|
|
59
59
|
{
|
|
60
60
|
label: "\u5168\u90E8",
|
|
@@ -62,7 +62,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
62
62
|
},
|
|
63
63
|
...newItem.options
|
|
64
64
|
];
|
|
65
|
-
} else if (newItem.list?.length) {
|
|
65
|
+
} else if (newItem.list?.length && !newItem.noFirstAddAll) {
|
|
66
66
|
newItem.list = [
|
|
67
67
|
{
|
|
68
68
|
name: "\u5168\u90E8",
|
|
@@ -79,7 +79,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
79
79
|
if (findItem) {
|
|
80
80
|
firstItem = findItem;
|
|
81
81
|
}
|
|
82
|
-
if (firstItem.showFormType === "select") {
|
|
82
|
+
if (firstItem.showFormType === "select" && !firstItem.noFirstAddAll) {
|
|
83
83
|
value.value = -1;
|
|
84
84
|
}
|
|
85
85
|
selectItem.value = firstItem;
|
|
@@ -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=\"typeSelectValue\"\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 @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'\n\nimport { selectGroupProps, selectGroupEmits } from './select-group'\nimport { createNamespace } 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 typeSelectValue = ref('1') // selectinput组合select的值\nconst value = ref<any>('') // 左边的value\nconst selectItem = ref<SelectGroupData>() // 选中表单的类型\nconst newList = ref<SelectGroupData[]>([]) // 处理后的数据,比如select的类型前面加个全部\nconst bem = createNamespace('select-group')\nconst bemContainer = createNamespace('select-group-container')\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 = -1\n }\n selectItem.value = options.item\n emits('onSelectChange', _,
|
|
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=\"typeSelectValue\"\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 @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'\n\nimport { selectGroupProps, selectGroupEmits } from './select-group'\nimport { createNamespace } 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 typeSelectValue = ref('1') // selectinput组合select的值\nconst value = ref<any>('') // 左边的value\nconst selectItem = ref<SelectGroupData>() // 选中表单的类型\nconst newList = ref<SelectGroupData[]>([]) // 处理后的数据,比如select的类型前面加个全部\nconst bem = createNamespace('select-group')\nconst bemContainer = createNamespace('select-group-container')\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 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}\n\n// 5.watch\n// 已第一个为标准\nwatch(\n () => [props.selectValue, props.data] as [string, SelectGroupData[]],\n ([selectValue, newData]) => {\n if (newData && newData.length) {\n const list = newData.map(item => {\n const newItem = { ...item }\n if (newItem.showFormType === 'select') {\n if (newItem.options?.length && !newItem.noFirstAddAll) {\n newItem.options = [\n {\n label: '全部',\n value: -1\n },\n ...newItem.options!\n ]\n } else if (newItem.list?.length && !newItem.noFirstAddAll) {\n newItem.list = [\n {\n name: '全部',\n value: -1\n },\n ...newItem.list!\n ]\n }\n }\n return newItem\n })\n let firstItem = list[0]\n const findItem = list.find(item => item.value === selectValue)\n if (findItem) {\n firstItem = findItem\n }\n // 如果默认第一个是下拉框,选中全部\n if (firstItem.showFormType === 'select' && !firstItem.noFirstAddAll) {\n value.value = -1\n }\n selectItem.value = firstItem!\n typeSelectValue.value = selectValue ? selectValue : firstItem.value\n newList.value = list\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => [props.value, props.selectValue],\n (newV: any) => {\n value.value = newV[0]\n },\n {\n immediate: true\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,18 @@ function formatFileSize(size) {
|
|
|
18
18
|
return `${(size / 1024 / 1024 / 1024).toFixed(0)}GB`;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
function dataURLtoBlob(base64Buf) {
|
|
22
|
+
const arr = base64Buf.split(",");
|
|
23
|
+
const typeItem = arr[0];
|
|
24
|
+
const mime = typeItem.match(/:(.*?);/)[1];
|
|
25
|
+
const bstr = window.atob(arr[1]);
|
|
26
|
+
let n = bstr.length;
|
|
27
|
+
const u8arr = new Uint8Array(n);
|
|
28
|
+
while (n--) {
|
|
29
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
30
|
+
}
|
|
31
|
+
return new Blob([u8arr], { type: mime });
|
|
32
|
+
}
|
|
21
33
|
|
|
22
|
-
export { fileToBase64, formatFileSize };
|
|
34
|
+
export { dataURLtoBlob, fileToBase64, formatFileSize };
|
|
23
35
|
//# sourceMappingURL=file.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.mjs","sources":["../../../../packages/utils/file.ts"],"sourcesContent":["/**\n * File 转 Base64\n * @param file {File} file\n * @return {Promise<String>}\n */\nexport function fileToBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n\n reader.addEventListener('load', evt => resolve(evt.target!.result))\n reader.addEventListener('error', reject)\n reader.readAsDataURL(file)\n })\n}\n\nexport function formatFileSize(size: number) {\n if (size < 1024) {\n return `${size}Bytes`\n } else if (size < 1024 * 1024) {\n return `${(size / 1024).toFixed(0)}KB`\n } else if (size < 1024 * 1024 * 1024) {\n return `${(size / 1024 / 1024).toFixed(0)}MB`\n } else {\n return `${(size / 1024 / 1024 / 1024).toFixed(0)}GB`\n }\n}\n"],"names":[],"mappings":";AAKO,SAAS,aAAa,IAAY,EAAA;AACvC,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,IAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;AAE9B,IAAA,MAAA,CAAO,iBAAiB,MAAQ,EAAA,CAAA,GAAA,KAAO,QAAQ,GAAI,CAAA,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAClE,IAAO,MAAA,CAAA,gBAAA,CAAiB,SAAS,MAAM,CAAA,CAAA;AACvC,IAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;AAAA,GAC1B,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,eAAe,IAAc,EAAA;AAC3C,EAAA,IAAI,OAAO,IAAM,EAAA;AACf,IAAA,OAAO,GAAG,IAAI,CAAA,KAAA,CAAA,CAAA;AAAA,GAChB,MAAA,IAAW,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA;AAC7B,IAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GACzB,MAAA,IAAA,IAAA,GAAO,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA;AACpC,IAAA,OAAO,IAAI,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GACpC,MAAA;AACL,IAAA,OAAO,IAAI,IAAO,GAAA,IAAA,GAAO,OAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GAClD;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"file.mjs","sources":["../../../../packages/utils/file.ts"],"sourcesContent":["/**\n * File 转 Base64\n * @param file {File} file\n * @return {Promise<String>}\n */\nexport function fileToBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n\n reader.addEventListener('load', evt => resolve(evt.target!.result))\n reader.addEventListener('error', reject)\n reader.readAsDataURL(file)\n })\n}\n\nexport function formatFileSize(size: number) {\n if (size < 1024) {\n return `${size}Bytes`\n } else if (size < 1024 * 1024) {\n return `${(size / 1024).toFixed(0)}KB`\n } else if (size < 1024 * 1024 * 1024) {\n return `${(size / 1024 / 1024).toFixed(0)}MB`\n } else {\n return `${(size / 1024 / 1024 / 1024).toFixed(0)}GB`\n }\n}\n\n/**\n * @description: base64 to blob\n */\nexport function dataURLtoBlob(base64Buf: string): Blob {\n const arr = base64Buf.split(',')\n const typeItem = arr[0]\n const mime = typeItem.match(/:(.*?);/)![1]\n const bstr = window.atob(arr[1])\n let n = bstr.length\n const u8arr = new Uint8Array(n)\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n)\n }\n return new Blob([u8arr], { type: mime })\n}\n"],"names":[],"mappings":";AAKO,SAAS,aAAa,IAAY,EAAA;AACvC,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,IAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;AAE9B,IAAA,MAAA,CAAO,iBAAiB,MAAQ,EAAA,CAAA,GAAA,KAAO,QAAQ,GAAI,CAAA,MAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAClE,IAAO,MAAA,CAAA,gBAAA,CAAiB,SAAS,MAAM,CAAA,CAAA;AACvC,IAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;AAAA,GAC1B,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,eAAe,IAAc,EAAA;AAC3C,EAAA,IAAI,OAAO,IAAM,EAAA;AACf,IAAA,OAAO,GAAG,IAAI,CAAA,KAAA,CAAA,CAAA;AAAA,GAChB,MAAA,IAAW,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA;AAC7B,IAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GACzB,MAAA,IAAA,IAAA,GAAO,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA;AACpC,IAAA,OAAO,IAAI,IAAO,GAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GACpC,MAAA;AACL,IAAA,OAAO,IAAI,IAAO,GAAA,IAAA,GAAO,OAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;AAAA,GAClD;AACF,CAAA;AAKO,SAAS,cAAc,SAAyB,EAAA;AACrD,EAAM,MAAA,GAAA,GAAM,SAAU,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC/B,EAAM,MAAA,QAAA,GAAW,IAAI,CAAC,CAAA,CAAA;AACtB,EAAA,MAAM,IAAO,GAAA,QAAA,CAAS,KAAM,CAAA,SAAS,EAAG,CAAC,CAAA,CAAA;AACzC,EAAA,MAAM,IAAO,GAAA,MAAA,CAAO,IAAK,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAC/B,EAAA,IAAI,IAAI,IAAK,CAAA,MAAA,CAAA;AACb,EAAM,MAAA,KAAA,GAAQ,IAAI,UAAA,CAAW,CAAC,CAAA,CAAA;AAC9B,EAAA,OAAO,CAAK,EAAA,EAAA;AACV,IAAA,KAAA,CAAM,CAAC,CAAA,GAAI,IAAK,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AAAA,GAC9B;AACA,EAAO,OAAA,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,IAAA,EAAM,MAAM,CAAA,CAAA;AACzC;;;;"}
|
|
@@ -6,7 +6,7 @@ export { withInstall } from './with-install.mjs';
|
|
|
6
6
|
export { calcRPN, getAmountChinese, getDateTimeUnit, mergeNumberOfExps, thousandsFormat, toRPN } from './number.mjs';
|
|
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
|
-
export { fileToBase64, formatFileSize } from './file.mjs';
|
|
9
|
+
export { dataURLtoBlob, fileToBase64, formatFileSize } from './file.mjs';
|
|
10
10
|
export { buildProp, buildProps, definePropType, epPropKey, isEpProp } from './props/runtime.mjs';
|
|
11
11
|
export { isArray, isDate, isFunction, isObject, isPromise, isString, isSymbol } from '@vue/shared';
|
|
12
12
|
export { isVNode } from 'vue';
|
package/es/utils/file.d.ts
CHANGED
package/global.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ declare module '@vue/runtime-core' {
|
|
|
10
10
|
LlCheckbox: typeof import('ll-plus')['LlCheckbox']
|
|
11
11
|
LlCheckboxGroup: typeof import('ll-plus')['LlCheckboxGroup']
|
|
12
12
|
LlConfigProvider: typeof import('ll-plus')['LlConfigProvider']
|
|
13
|
+
LlCropperImage: typeof import('ll-plus')['LlCropperImage']
|
|
14
|
+
LlCropperModal: typeof import('ll-plus')['LlCropperModal']
|
|
13
15
|
LlDescriptions: typeof import('ll-plus')['LlDescriptions']
|
|
14
16
|
LlDescriptionsItem: typeof import('ll-plus')['LlDescriptionsItem']
|
|
15
17
|
LlDrawer: typeof import('ll-plus')['LlDrawer']
|