zartui 3.1.57 → 3.1.59
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/hierarchy-select/HierarchySelect.mjs +6 -1
- package/es/index.d.ts +1 -1
- package/es/index.mjs +1 -1
- package/es/media-picker/MediaPicker.d.ts +13 -0
- package/es/media-picker/MediaPicker.mjs +31 -2
- package/es/media-picker/index.d.ts +9 -0
- package/lib/hierarchy-select/HierarchySelect.js +5 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/media-picker/MediaPicker.d.ts +13 -0
- package/lib/media-picker/MediaPicker.js +30 -1
- package/lib/media-picker/index.d.ts +9 -0
- package/lib/web-types.json +1 -1
- package/lib/zartui.cjs.js +2858 -624
- package/lib/zartui.es.js +2858 -624
- package/lib/zartui.js +2398 -164
- package/lib/zartui.min.js +8 -1
- package/package.json +10 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, defineComponent, nextTick, ref, createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
|
|
1
|
+
import { computed, defineComponent, nextTick, ref, watch, createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
|
|
2
2
|
import { createNamespace, makeArrayProp, makeStringProp } from "../utils/index.mjs";
|
|
3
3
|
import { deepClone } from "../utils/deep-clone.mjs";
|
|
4
4
|
import { SubIcon } from "./svg/SubIcon.mjs";
|
|
@@ -64,6 +64,11 @@ var stdin_default = defineComponent({
|
|
|
64
64
|
const dataList = ref(deepClone(props.treeData));
|
|
65
65
|
const breadcrumbData = ref([]);
|
|
66
66
|
const historyLayers = ref([]);
|
|
67
|
+
watch(() => props.treeData, () => {
|
|
68
|
+
dataList.value = deepClone(props.treeData);
|
|
69
|
+
}, {
|
|
70
|
+
deep: true
|
|
71
|
+
});
|
|
67
72
|
const isDisabled = (item) => {
|
|
68
73
|
if (!props.autoChangeToChildren && props.disableParent && item.children) {
|
|
69
74
|
return true;
|
package/es/index.d.ts
CHANGED
package/es/index.mjs
CHANGED
|
@@ -77,7 +77,7 @@ import { Timeline } from "./timeline/index.mjs";
|
|
|
77
77
|
import { Toast } from "./toast/index.mjs";
|
|
78
78
|
import { Uploader } from "./uploader/index.mjs";
|
|
79
79
|
import { Video } from "./video/index.mjs";
|
|
80
|
-
const version = "3.1.
|
|
80
|
+
const version = "3.1.59";
|
|
81
81
|
function install(app) {
|
|
82
82
|
const components = [
|
|
83
83
|
ActionSheet,
|
|
@@ -2,6 +2,10 @@ import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue';
|
|
|
2
2
|
import type { Media, MediaAddType, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType, MediaType } from './type';
|
|
3
3
|
import { MediaPlayerProps } from '../media-player';
|
|
4
4
|
declare const mediaPickerProps: {
|
|
5
|
+
sortable: {
|
|
6
|
+
type: BooleanConstructor;
|
|
7
|
+
default: boolean;
|
|
8
|
+
};
|
|
5
9
|
disabled: BooleanConstructor;
|
|
6
10
|
showTitle: BooleanConstructor;
|
|
7
11
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -85,6 +89,10 @@ export type MediaPickerInstance = ComponentPublicInstance<{
|
|
|
85
89
|
mediaPickAction: (mediaType: MediaType, mediaAddType: MediaAddType) => void;
|
|
86
90
|
}>;
|
|
87
91
|
declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
92
|
+
sortable: {
|
|
93
|
+
type: BooleanConstructor;
|
|
94
|
+
default: boolean;
|
|
95
|
+
};
|
|
88
96
|
disabled: BooleanConstructor;
|
|
89
97
|
showTitle: BooleanConstructor;
|
|
90
98
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -163,6 +171,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
163
171
|
};
|
|
164
172
|
mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
|
|
165
173
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
|
|
174
|
+
sortable: {
|
|
175
|
+
type: BooleanConstructor;
|
|
176
|
+
default: boolean;
|
|
177
|
+
};
|
|
166
178
|
disabled: BooleanConstructor;
|
|
167
179
|
showTitle: BooleanConstructor;
|
|
168
180
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -248,6 +260,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
248
260
|
title: string;
|
|
249
261
|
disabled: boolean;
|
|
250
262
|
showTitle: boolean;
|
|
263
|
+
sortable: boolean;
|
|
251
264
|
useFileNameAsLabel: boolean;
|
|
252
265
|
mediaList: Media[];
|
|
253
266
|
maxImageSideLength: number;
|
|
@@ -20,7 +20,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
20
20
|
};
|
|
21
21
|
import { createVNode as _createVNode, mergeProps as _mergeProps, vShow as _vShow, withDirectives as _withDirectives } from "vue";
|
|
22
22
|
import { createNamespace, isDef, isWeixin, makeArrayProp, makeNumberProp, makeStringProp, truthProp } from "../utils/index.mjs";
|
|
23
|
-
import { computed, defineComponent, ref } from "vue";
|
|
23
|
+
import { computed, defineComponent, ref, watch } from "vue";
|
|
24
24
|
import { showFailToast, showLoadingToast, closeToast } from "../toast/index.mjs";
|
|
25
25
|
import DeleteIcon from "./image/DeleteIcon.mjs";
|
|
26
26
|
import ZtGrid from "../grid/index.mjs";
|
|
@@ -44,9 +44,14 @@ import { ImageProcessor, checkWatermarkConfigSupported, CompressOptions, ResizeO
|
|
|
44
44
|
import { isEmptyValue } from "../field/utils.mjs";
|
|
45
45
|
import { wxUploadImage } from "./util/wx-util.mjs";
|
|
46
46
|
import { useExpose } from "../composables/use-expose.mjs";
|
|
47
|
+
import Sortable from "sortablejs";
|
|
47
48
|
const [name, bem] = createNamespace("media-picker");
|
|
48
49
|
const FILE_SIZE_LIMIT = 100;
|
|
49
50
|
const mediaPickerProps = {
|
|
51
|
+
sortable: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false
|
|
54
|
+
},
|
|
50
55
|
disabled: Boolean,
|
|
51
56
|
showTitle: Boolean,
|
|
52
57
|
useFileNameAsLabel: Boolean,
|
|
@@ -120,7 +125,29 @@ var stdin_default = defineComponent({
|
|
|
120
125
|
const audioRecorderInputRef = ref();
|
|
121
126
|
const audioFileInputRef = ref();
|
|
122
127
|
const fileInputRef = ref();
|
|
128
|
+
const gridRef = ref();
|
|
123
129
|
const mediaListPlaceholder = ref([]);
|
|
130
|
+
const sort = ref();
|
|
131
|
+
watch(() => props.mediaList.length, () => {
|
|
132
|
+
var _a;
|
|
133
|
+
if (sort.value || !props.sortable)
|
|
134
|
+
return;
|
|
135
|
+
sort.value = Sortable.create((_a = gridRef.value) == null ? void 0 : _a.$el, {
|
|
136
|
+
animation: 200,
|
|
137
|
+
handle: ".zt-grid-item",
|
|
138
|
+
onEnd: (evt) => {
|
|
139
|
+
const raws = exchangeArrayIndex(props.mediaList, evt.oldIndex, evt.newIndex);
|
|
140
|
+
emit("update:mediaList", raws);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
const exchangeArrayIndex = (list, index, newIndex) => {
|
|
145
|
+
const raws = [...list];
|
|
146
|
+
const raw = raws[index];
|
|
147
|
+
raws.splice(index, 1);
|
|
148
|
+
raws.splice(newIndex, 0, raw);
|
|
149
|
+
return [...raws];
|
|
150
|
+
};
|
|
124
151
|
const checkFileCountBeforeAdd = (mediaType) => {
|
|
125
152
|
if (props.mediaList.length === props.maxMediaCount) {
|
|
126
153
|
showFailToast("\u5DF2\u8FBE\u5230\u6587\u4EF6\u6700\u5927\u6570\u91CF\u9650\u5236");
|
|
@@ -793,7 +820,8 @@ var stdin_default = defineComponent({
|
|
|
793
820
|
useExpose({
|
|
794
821
|
mediaPickAction,
|
|
795
822
|
handleInputFiles,
|
|
796
|
-
transformImageFiles
|
|
823
|
+
transformImageFiles,
|
|
824
|
+
resetInput
|
|
797
825
|
});
|
|
798
826
|
return () => {
|
|
799
827
|
const title = props.showTitle && _createVNode("div", {
|
|
@@ -818,6 +846,7 @@ var stdin_default = defineComponent({
|
|
|
818
846
|
}, null), _withDirectives(_createVNode("div", {
|
|
819
847
|
"class": bem("line")
|
|
820
848
|
}, [renderButtons(), slots["extend"] ? slots.extend() : ""]), [[_vShow, showButtons]]), _withDirectives(_createVNode(ZtGrid, {
|
|
849
|
+
"ref": gridRef,
|
|
821
850
|
"column-num": "3",
|
|
822
851
|
"border": false,
|
|
823
852
|
"square": true,
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const MediaPicker: import("../utils").WithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
sortable: {
|
|
3
|
+
type: BooleanConstructor;
|
|
4
|
+
default: boolean;
|
|
5
|
+
};
|
|
2
6
|
disabled: BooleanConstructor;
|
|
3
7
|
showTitle: BooleanConstructor;
|
|
4
8
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -67,6 +71,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
67
71
|
};
|
|
68
72
|
mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
|
|
69
73
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
74
|
+
sortable: {
|
|
75
|
+
type: BooleanConstructor;
|
|
76
|
+
default: boolean;
|
|
77
|
+
};
|
|
70
78
|
disabled: BooleanConstructor;
|
|
71
79
|
showTitle: BooleanConstructor;
|
|
72
80
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -142,6 +150,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
142
150
|
title: string;
|
|
143
151
|
disabled: boolean;
|
|
144
152
|
showTitle: boolean;
|
|
153
|
+
sortable: boolean;
|
|
145
154
|
useFileNameAsLabel: boolean;
|
|
146
155
|
mediaList: import("./type").Media[];
|
|
147
156
|
maxImageSideLength: number;
|
|
@@ -96,6 +96,11 @@ var stdin_default = (0, import_vue.defineComponent)({
|
|
|
96
96
|
const dataList = (0, import_vue.ref)((0, import_deep_clone.deepClone)(props.treeData));
|
|
97
97
|
const breadcrumbData = (0, import_vue.ref)([]);
|
|
98
98
|
const historyLayers = (0, import_vue.ref)([]);
|
|
99
|
+
(0, import_vue.watch)(() => props.treeData, () => {
|
|
100
|
+
dataList.value = (0, import_deep_clone.deepClone)(props.treeData);
|
|
101
|
+
}, {
|
|
102
|
+
deep: true
|
|
103
|
+
});
|
|
99
104
|
const isDisabled = (item) => {
|
|
100
105
|
if (!props.autoChangeToChildren && props.disableParent && item.children) {
|
|
101
106
|
return true;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -182,7 +182,7 @@ __reExport(stdin_exports, require("./timeline"), module.exports);
|
|
|
182
182
|
__reExport(stdin_exports, require("./toast"), module.exports);
|
|
183
183
|
__reExport(stdin_exports, require("./uploader"), module.exports);
|
|
184
184
|
__reExport(stdin_exports, require("./video"), module.exports);
|
|
185
|
-
const version = "3.1.
|
|
185
|
+
const version = "3.1.59";
|
|
186
186
|
function install(app) {
|
|
187
187
|
const components = [
|
|
188
188
|
import_action_sheet.ActionSheet,
|
|
@@ -2,6 +2,10 @@ import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue';
|
|
|
2
2
|
import type { Media, MediaAddType, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType, MediaType } from './type';
|
|
3
3
|
import { MediaPlayerProps } from '../media-player';
|
|
4
4
|
declare const mediaPickerProps: {
|
|
5
|
+
sortable: {
|
|
6
|
+
type: BooleanConstructor;
|
|
7
|
+
default: boolean;
|
|
8
|
+
};
|
|
5
9
|
disabled: BooleanConstructor;
|
|
6
10
|
showTitle: BooleanConstructor;
|
|
7
11
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -85,6 +89,10 @@ export type MediaPickerInstance = ComponentPublicInstance<{
|
|
|
85
89
|
mediaPickAction: (mediaType: MediaType, mediaAddType: MediaAddType) => void;
|
|
86
90
|
}>;
|
|
87
91
|
declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
92
|
+
sortable: {
|
|
93
|
+
type: BooleanConstructor;
|
|
94
|
+
default: boolean;
|
|
95
|
+
};
|
|
88
96
|
disabled: BooleanConstructor;
|
|
89
97
|
showTitle: BooleanConstructor;
|
|
90
98
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -163,6 +171,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
163
171
|
};
|
|
164
172
|
mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
|
|
165
173
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
|
|
174
|
+
sortable: {
|
|
175
|
+
type: BooleanConstructor;
|
|
176
|
+
default: boolean;
|
|
177
|
+
};
|
|
166
178
|
disabled: BooleanConstructor;
|
|
167
179
|
showTitle: BooleanConstructor;
|
|
168
180
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -248,6 +260,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
248
260
|
title: string;
|
|
249
261
|
disabled: boolean;
|
|
250
262
|
showTitle: boolean;
|
|
263
|
+
sortable: boolean;
|
|
251
264
|
useFileNameAsLabel: boolean;
|
|
252
265
|
mediaList: Media[];
|
|
253
266
|
maxImageSideLength: number;
|
|
@@ -76,9 +76,14 @@ var import_app_media_utils = require("@egova-mobile/app-media-utils");
|
|
|
76
76
|
var import_utils2 = require("../field/utils");
|
|
77
77
|
var import_wx_util = require("./util/wx-util");
|
|
78
78
|
var import_use_expose = require("../composables/use-expose");
|
|
79
|
+
var import_sortablejs = __toESM(require("sortablejs"));
|
|
79
80
|
const [name, bem] = (0, import_utils.createNamespace)("media-picker");
|
|
80
81
|
const FILE_SIZE_LIMIT = 100;
|
|
81
82
|
const mediaPickerProps = {
|
|
83
|
+
sortable: {
|
|
84
|
+
type: Boolean,
|
|
85
|
+
default: false
|
|
86
|
+
},
|
|
82
87
|
disabled: Boolean,
|
|
83
88
|
showTitle: Boolean,
|
|
84
89
|
useFileNameAsLabel: Boolean,
|
|
@@ -152,7 +157,29 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
152
157
|
const audioRecorderInputRef = (0, import_vue2.ref)();
|
|
153
158
|
const audioFileInputRef = (0, import_vue2.ref)();
|
|
154
159
|
const fileInputRef = (0, import_vue2.ref)();
|
|
160
|
+
const gridRef = (0, import_vue2.ref)();
|
|
155
161
|
const mediaListPlaceholder = (0, import_vue2.ref)([]);
|
|
162
|
+
const sort = (0, import_vue2.ref)();
|
|
163
|
+
(0, import_vue2.watch)(() => props.mediaList.length, () => {
|
|
164
|
+
var _a;
|
|
165
|
+
if (sort.value || !props.sortable)
|
|
166
|
+
return;
|
|
167
|
+
sort.value = import_sortablejs.default.create((_a = gridRef.value) == null ? void 0 : _a.$el, {
|
|
168
|
+
animation: 200,
|
|
169
|
+
handle: ".zt-grid-item",
|
|
170
|
+
onEnd: (evt) => {
|
|
171
|
+
const raws = exchangeArrayIndex(props.mediaList, evt.oldIndex, evt.newIndex);
|
|
172
|
+
emit("update:mediaList", raws);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
const exchangeArrayIndex = (list, index, newIndex) => {
|
|
177
|
+
const raws = [...list];
|
|
178
|
+
const raw = raws[index];
|
|
179
|
+
raws.splice(index, 1);
|
|
180
|
+
raws.splice(newIndex, 0, raw);
|
|
181
|
+
return [...raws];
|
|
182
|
+
};
|
|
156
183
|
const checkFileCountBeforeAdd = (mediaType) => {
|
|
157
184
|
if (props.mediaList.length === props.maxMediaCount) {
|
|
158
185
|
(0, import_toast.showFailToast)("\u5DF2\u8FBE\u5230\u6587\u4EF6\u6700\u5927\u6570\u91CF\u9650\u5236");
|
|
@@ -825,7 +852,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
825
852
|
(0, import_use_expose.useExpose)({
|
|
826
853
|
mediaPickAction,
|
|
827
854
|
handleInputFiles,
|
|
828
|
-
transformImageFiles
|
|
855
|
+
transformImageFiles,
|
|
856
|
+
resetInput
|
|
829
857
|
});
|
|
830
858
|
return () => {
|
|
831
859
|
const title = props.showTitle && (0, import_vue.createVNode)("div", {
|
|
@@ -850,6 +878,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
850
878
|
}, null), (0, import_vue.withDirectives)((0, import_vue.createVNode)("div", {
|
|
851
879
|
"class": bem("line")
|
|
852
880
|
}, [renderButtons(), slots["extend"] ? slots.extend() : ""]), [[import_vue.vShow, showButtons]]), (0, import_vue.withDirectives)((0, import_vue.createVNode)(import_grid.default, {
|
|
881
|
+
"ref": gridRef,
|
|
853
882
|
"column-num": "3",
|
|
854
883
|
"border": false,
|
|
855
884
|
"square": true,
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const MediaPicker: import("../utils").WithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
sortable: {
|
|
3
|
+
type: BooleanConstructor;
|
|
4
|
+
default: boolean;
|
|
5
|
+
};
|
|
2
6
|
disabled: BooleanConstructor;
|
|
3
7
|
showTitle: BooleanConstructor;
|
|
4
8
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -67,6 +71,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
67
71
|
};
|
|
68
72
|
mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
|
|
69
73
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
74
|
+
sortable: {
|
|
75
|
+
type: BooleanConstructor;
|
|
76
|
+
default: boolean;
|
|
77
|
+
};
|
|
70
78
|
disabled: BooleanConstructor;
|
|
71
79
|
showTitle: BooleanConstructor;
|
|
72
80
|
useFileNameAsLabel: BooleanConstructor;
|
|
@@ -142,6 +150,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
142
150
|
title: string;
|
|
143
151
|
disabled: boolean;
|
|
144
152
|
showTitle: boolean;
|
|
153
|
+
sortable: boolean;
|
|
145
154
|
useFileNameAsLabel: boolean;
|
|
146
155
|
mediaList: import("./type").Media[];
|
|
147
156
|
maxImageSideLength: number;
|