zartui 3.1.58 → 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/index.d.ts CHANGED
@@ -84,4 +84,4 @@ declare namespace _default {
84
84
  }
85
85
  export default _default;
86
86
  export function install(app: any): void;
87
- export const version: "3.1.57";
87
+ export const version: "3.1.59";
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.57";
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;
package/lib/index.d.ts CHANGED
@@ -84,4 +84,4 @@ declare namespace _default {
84
84
  }
85
85
  export default _default;
86
86
  export function install(app: any): void;
87
- export const version: "3.1.57";
87
+ export const version: "3.1.59";
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.57";
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;