zartui 3.1.88 → 3.1.90

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/lib/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export * from "./number-keyboard";
45
45
  export * from "./overlay";
46
46
  export * from "./pagination";
47
47
  export * from "./password-input";
48
+ export * from "./photo-picker";
48
49
  export * from "./picker";
49
50
  export * from "./popover";
50
51
  export * from "./popup";
@@ -85,4 +86,4 @@ declare namespace _default {
85
86
  }
86
87
  export default _default;
87
88
  export function install(app: any): void;
88
- export const version: "3.1.88";
89
+ export const version: "3.1.90";
package/lib/index.js CHANGED
@@ -69,6 +69,7 @@ var import_number_keyboard = require("./number-keyboard");
69
69
  var import_overlay = require("./overlay");
70
70
  var import_pagination = require("./pagination");
71
71
  var import_password_input = require("./password-input");
72
+ var import_photo_picker = require("./photo-picker");
72
73
  var import_picker = require("./picker");
73
74
  var import_popover = require("./popover");
74
75
  var import_popup = require("./popup");
@@ -150,6 +151,7 @@ __reExport(stdin_exports, require("./number-keyboard"), module.exports);
150
151
  __reExport(stdin_exports, require("./overlay"), module.exports);
151
152
  __reExport(stdin_exports, require("./pagination"), module.exports);
152
153
  __reExport(stdin_exports, require("./password-input"), module.exports);
154
+ __reExport(stdin_exports, require("./photo-picker"), module.exports);
153
155
  __reExport(stdin_exports, require("./picker"), module.exports);
154
156
  __reExport(stdin_exports, require("./popover"), module.exports);
155
157
  __reExport(stdin_exports, require("./popup"), module.exports);
@@ -184,7 +186,7 @@ __reExport(stdin_exports, require("./timeline"), module.exports);
184
186
  __reExport(stdin_exports, require("./toast"), module.exports);
185
187
  __reExport(stdin_exports, require("./uploader"), module.exports);
186
188
  __reExport(stdin_exports, require("./video"), module.exports);
187
- const version = "3.1.88";
189
+ const version = "3.1.90";
188
190
  function install(app) {
189
191
  const components = [
190
192
  import_action_sheet.ActionSheet,
@@ -233,6 +235,7 @@ function install(app) {
233
235
  import_overlay.Overlay,
234
236
  import_pagination.Pagination,
235
237
  import_password_input.PasswordInput,
238
+ import_photo_picker.PhotoPicker,
236
239
  import_picker.Picker,
237
240
  import_popover.Popover,
238
241
  import_popup.Popup,
@@ -165,6 +165,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
165
165
  }) {
166
166
  const videoOptionsVisible = (0, import_vue2.ref)(false);
167
167
  const audioOptionsVisible = (0, import_vue2.ref)(false);
168
+ const photoOptionsVisible = (0, import_vue2.ref)(false);
168
169
  const actionVisible = (0, import_vue2.ref)(false);
169
170
  const mediaPlayerVisible = (0, import_vue2.ref)(false);
170
171
  const mediaTypeToPlay = (0, import_vue2.ref)("file");
@@ -311,6 +312,19 @@ var stdin_default = (0, import_vue2.defineComponent)({
311
312
  };
312
313
  const imageList = (0, import_vue2.computed)(() => props.mediaList.filter((media) => media.type === "photo"));
313
314
  const actionOptions = (0, import_vue2.computed)(() => {
315
+ if (photoOptionsVisible.value) {
316
+ return [{
317
+ name: "\u62CD\u7167",
318
+ callback: () => {
319
+ mediaPickAction("photo", "take");
320
+ }
321
+ }, {
322
+ name: "\u7167\u7247",
323
+ callback: () => {
324
+ mediaPickAction("photo", "pick");
325
+ }
326
+ }];
327
+ }
314
328
  if (videoOptionsVisible.value) {
315
329
  return [{
316
330
  name: "\u62CD\u6444",
@@ -930,6 +944,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
930
944
  });
931
945
  const selectAction = (action) => {
932
946
  actionVisible.value = false;
947
+ photoOptionsVisible.value = false;
948
+ videoOptionsVisible.value = false;
949
+ audioOptionsVisible.value = false;
933
950
  action.func && action.func();
934
951
  };
935
952
  (0, import_vue2.watch)(() => [props.sortable, props.mediaList.length], (_0) => __async(this, [_0], function* ([sortable, mediaCount]) {
@@ -132,7 +132,9 @@ var stdin_default = (0, import_vue.defineComponent)({
132
132
  "class": bem("popup-pages")
133
133
  }, [pages.value.map((page) => (0, import_vue.createVNode)("button", {
134
134
  "type": "button",
135
- "class": bem("popup-page"),
135
+ "class": bem("popup-page", {
136
+ active: page === currentPage.value
137
+ }),
136
138
  "onClick": () => onSelect(page)
137
139
  }, [page]))]), (0, import_vue.createVNode)("div", {
138
140
  "class": bem("popup-footer")
@@ -1 +1 @@
1
- :root{--zt-pagination-bottom: 29px;--zt-pagination-item-size: 44px;--zt-pagination-gap: 16px;--zt-pagination-background: #2d4b7380;--zt-pagination-backdrop-filter: blur(5.44px);--zt-pagination-box-shadow: 0 4px 8px 0 #2d4b7333;--zt-pagination-text-color: #fff;--zt-pagination-disabled-icon-color: rgba(255, 255, 255, .45);--zt-pagination-font-size: 14px;--zt-pagination-text-line-height: 17px;--zt-pagination-z-index: 100}.zt-pagination{position:fixed;left:0;right:0;bottom:var(--zt-pagination-bottom);z-index:var(--zt-pagination-z-index);display:flex;align-items:center;justify-content:center;pointer-events:none}.zt-pagination__button,.zt-pagination__page{height:var(--zt-pagination-item-size);background:var(--zt-pagination-background);-webkit-backdrop-filter:var(--zt-pagination-backdrop-filter);backdrop-filter:var(--zt-pagination-backdrop-filter);box-shadow:var(--zt-pagination-box-shadow)}.zt-pagination__button{width:var(--zt-pagination-item-size);padding:0;border:0;border-radius:50%;color:var(--zt-pagination-text-color);display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;transition:opacity var(--zt-duration-fast),transform var(--zt-duration-fast)}.zt-pagination__button:not(.zt-pagination__button--disabled):hover{opacity:.88;transform:scale(1.04)}.zt-pagination__button:not(.zt-pagination__button--disabled):active{opacity:.75;transform:scale(.96)}.zt-pagination__button--disabled{color:var(--zt-pagination-disabled-icon-color);cursor:default}.zt-pagination__page{margin:0 var(--zt-pagination-gap);padding:0 27px;border:0;border-radius:22px;display:flex;align-items:center;justify-content:center;color:var(--zt-pagination-text-color);cursor:pointer;pointer-events:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.zt-pagination__text{height:var(--zt-pagination-text-line-height);color:var(--zt-pagination-text-color);font-size:var(--zt-pagination-font-size);line-height:var(--zt-pagination-text-line-height)}.zt-pagination__next-icon{transform:rotate(180deg)}.zt-pagination__popup{height:100%;display:flex;flex-direction:column;background:#fff}.zt-pagination__popup-title{padding-top:var(--zt-popup-close-icon-margin);color:#2d4b73;font-size:18px;font-weight:600;text-align:center}.zt-pagination__popup-pages{flex:1;display:grid;grid-template-columns:repeat(5,40px);grid-auto-rows:40px;justify-content:space-around;row-gap:24px;padding:24px 0;overflow-y:auto}.zt-pagination__popup-page{width:40px;height:40px;padding:0;border:0;border-radius:50%;color:#235;background:#F1F6FA;font-size:16px;line-height:24px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background-color var(--zt-duration-fast),transform var(--zt-duration-fast),opacity var(--zt-duration-fast)}.zt-pagination__popup-page:hover{background:rgba(45,75,115,.1);transform:scale(1.04)}.zt-pagination__popup-page:active{opacity:.75;transform:scale(.96)}.zt-pagination__popup-footer{padding:8px 16px;border-top:1px solid var(--zt-border-color)}
1
+ :root{--zt-pagination-bottom: 29px;--zt-pagination-item-size: 44px;--zt-pagination-gap: 16px;--zt-pagination-background: #2d4b7380;--zt-pagination-backdrop-filter: blur(5.44px);--zt-pagination-box-shadow: 0 4px 8px 0 #2d4b7333;--zt-pagination-text-color: #fff;--zt-pagination-disabled-icon-color: rgba(255, 255, 255, .45);--zt-pagination-font-size: 14px;--zt-pagination-text-line-height: 17px;--zt-pagination-z-index: 100}.zt-pagination{position:fixed;left:0;right:0;bottom:var(--zt-pagination-bottom);z-index:var(--zt-pagination-z-index);display:flex;align-items:center;justify-content:center;pointer-events:none}.zt-pagination__button,.zt-pagination__page{height:var(--zt-pagination-item-size);background:var(--zt-pagination-background);-webkit-backdrop-filter:var(--zt-pagination-backdrop-filter);backdrop-filter:var(--zt-pagination-backdrop-filter);box-shadow:var(--zt-pagination-box-shadow)}.zt-pagination__button{width:var(--zt-pagination-item-size);padding:0;border:0;border-radius:50%;color:var(--zt-pagination-text-color);display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;transition:opacity var(--zt-duration-fast),transform var(--zt-duration-fast)}.zt-pagination__button:not(.zt-pagination__button--disabled):hover{opacity:.88;transform:scale(1.04)}.zt-pagination__button:not(.zt-pagination__button--disabled):active{opacity:.75;transform:scale(.96)}.zt-pagination__button--disabled{color:var(--zt-pagination-disabled-icon-color);cursor:default}.zt-pagination__page{margin:0 var(--zt-pagination-gap);padding:0 27px;border:0;border-radius:22px;display:flex;align-items:center;justify-content:center;color:var(--zt-pagination-text-color);cursor:pointer;pointer-events:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.zt-pagination__text{height:var(--zt-pagination-text-line-height);color:var(--zt-pagination-text-color);font-size:var(--zt-pagination-font-size);line-height:var(--zt-pagination-text-line-height)}.zt-pagination__next-icon{transform:rotate(180deg)}.zt-pagination__popup{height:100%;display:flex;flex-direction:column;background:#fff}.zt-pagination__popup-title{padding-top:var(--zt-popup-close-icon-margin);color:#2d4b73;font-size:18px;font-weight:600;text-align:center}.zt-pagination__popup-pages{flex:1;display:grid;grid-template-columns:repeat(5,40px);grid-auto-rows:40px;justify-content:space-around;row-gap:24px;padding:24px 0;overflow-y:auto}.zt-pagination__popup-page{width:40px;height:40px;padding:0;border:0;border-radius:50%;color:#235;background:#F1F6FA;font-size:16px;line-height:24px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background-color var(--zt-duration-fast),color var(--zt-duration-fast),transform var(--zt-duration-fast),opacity var(--zt-duration-fast)}.zt-pagination__popup-page:not(.zt-pagination__popup-page--active):hover{background:rgba(45,75,115,.1);transform:scale(1.04)}.zt-pagination__popup-page:active{opacity:.75;transform:scale(.96)}.zt-pagination__popup-page--active{color:#fff;background:#3388FF}.zt-pagination__popup-page--active:hover{color:#fff;background:#3388FF;transform:scale(1.04)}.zt-pagination__popup-footer{padding:8px 16px;border-top:1px solid var(--zt-border-color)}
@@ -0,0 +1,202 @@
1
+ import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue';
2
+ import type { Media, MediaAddType, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType, MediaType } from '../media-picker/type';
3
+ import { DownloadActionParams } from '../image-preview/ImagePreview';
4
+ declare const photoPickerProps: {
5
+ disabled: BooleanConstructor;
6
+ showTitle: BooleanConstructor;
7
+ showDownload: BooleanConstructor;
8
+ downloadAction: PropType<(params: DownloadActionParams) => boolean>;
9
+ useFileNameAsLabel: BooleanConstructor;
10
+ title: {
11
+ type: PropType<string>;
12
+ default: string;
13
+ };
14
+ mediaList: {
15
+ type: PropType<Media[]>;
16
+ default: () => Media[];
17
+ };
18
+ attachmentHeight: PropType<string | number>;
19
+ maxAttachmentCount: {
20
+ type: NumberConstructor;
21
+ default: number;
22
+ };
23
+ maxImageSideLength: {
24
+ type: NumberConstructor;
25
+ default: number;
26
+ };
27
+ maxImageFileSize: {
28
+ type: NumberConstructor;
29
+ default: number;
30
+ };
31
+ maxFileSize: {
32
+ type: NumberConstructor;
33
+ default: number;
34
+ };
35
+ keepFileType: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
39
+ watermarkOptions: {
40
+ type: ObjectConstructor;
41
+ default: () => null;
42
+ };
43
+ allowTakePhoto: {
44
+ type: BooleanConstructor;
45
+ default: true;
46
+ };
47
+ allowPickPhoto: {
48
+ type: BooleanConstructor;
49
+ default: true;
50
+ };
51
+ preview: PropType<MediaPreview>;
52
+ mediaPick: PropType<MediaPick>;
53
+ beforeRead: PropType<MediaBeforeRead>;
54
+ afterRead: PropType<MediaAfterRead>;
55
+ beforeDelete: PropType<MediaBeforeDelete>;
56
+ useWx: BooleanConstructor;
57
+ imageSizeType: {
58
+ type: PropType<MediaSizeType>;
59
+ default: MediaSizeType;
60
+ };
61
+ };
62
+ export type PhotoPickerProps = ExtractPropTypes<typeof photoPickerProps>;
63
+ export type PhotoPickerInstance = ComponentPublicInstance<{
64
+ mediaPickAction: (mediaType: MediaType, mediaAddType: MediaAddType) => void;
65
+ }>;
66
+ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
67
+ disabled: BooleanConstructor;
68
+ showTitle: BooleanConstructor;
69
+ showDownload: BooleanConstructor;
70
+ downloadAction: PropType<(params: DownloadActionParams) => boolean>;
71
+ useFileNameAsLabel: BooleanConstructor;
72
+ title: {
73
+ type: PropType<string>;
74
+ default: string;
75
+ };
76
+ mediaList: {
77
+ type: PropType<Media[]>;
78
+ default: () => Media[];
79
+ };
80
+ attachmentHeight: PropType<string | number>;
81
+ maxAttachmentCount: {
82
+ type: NumberConstructor;
83
+ default: number;
84
+ };
85
+ maxImageSideLength: {
86
+ type: NumberConstructor;
87
+ default: number;
88
+ };
89
+ maxImageFileSize: {
90
+ type: NumberConstructor;
91
+ default: number;
92
+ };
93
+ maxFileSize: {
94
+ type: NumberConstructor;
95
+ default: number;
96
+ };
97
+ keepFileType: {
98
+ type: BooleanConstructor;
99
+ default: boolean;
100
+ };
101
+ watermarkOptions: {
102
+ type: ObjectConstructor;
103
+ default: () => null;
104
+ };
105
+ allowTakePhoto: {
106
+ type: BooleanConstructor;
107
+ default: true;
108
+ };
109
+ allowPickPhoto: {
110
+ type: BooleanConstructor;
111
+ default: true;
112
+ };
113
+ preview: PropType<MediaPreview>;
114
+ mediaPick: PropType<MediaPick>;
115
+ beforeRead: PropType<MediaBeforeRead>;
116
+ afterRead: PropType<MediaAfterRead>;
117
+ beforeDelete: PropType<MediaBeforeDelete>;
118
+ useWx: BooleanConstructor;
119
+ imageSizeType: {
120
+ type: PropType<MediaSizeType>;
121
+ default: MediaSizeType;
122
+ };
123
+ }>, () => 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<{
124
+ disabled: BooleanConstructor;
125
+ showTitle: BooleanConstructor;
126
+ showDownload: BooleanConstructor;
127
+ downloadAction: PropType<(params: DownloadActionParams) => boolean>;
128
+ useFileNameAsLabel: BooleanConstructor;
129
+ title: {
130
+ type: PropType<string>;
131
+ default: string;
132
+ };
133
+ mediaList: {
134
+ type: PropType<Media[]>;
135
+ default: () => Media[];
136
+ };
137
+ attachmentHeight: PropType<string | number>;
138
+ maxAttachmentCount: {
139
+ type: NumberConstructor;
140
+ default: number;
141
+ };
142
+ maxImageSideLength: {
143
+ type: NumberConstructor;
144
+ default: number;
145
+ };
146
+ maxImageFileSize: {
147
+ type: NumberConstructor;
148
+ default: number;
149
+ };
150
+ maxFileSize: {
151
+ type: NumberConstructor;
152
+ default: number;
153
+ };
154
+ keepFileType: {
155
+ type: BooleanConstructor;
156
+ default: boolean;
157
+ };
158
+ watermarkOptions: {
159
+ type: ObjectConstructor;
160
+ default: () => null;
161
+ };
162
+ allowTakePhoto: {
163
+ type: BooleanConstructor;
164
+ default: true;
165
+ };
166
+ allowPickPhoto: {
167
+ type: BooleanConstructor;
168
+ default: true;
169
+ };
170
+ preview: PropType<MediaPreview>;
171
+ mediaPick: PropType<MediaPick>;
172
+ beforeRead: PropType<MediaBeforeRead>;
173
+ afterRead: PropType<MediaAfterRead>;
174
+ beforeDelete: PropType<MediaBeforeDelete>;
175
+ useWx: BooleanConstructor;
176
+ imageSizeType: {
177
+ type: PropType<MediaSizeType>;
178
+ default: MediaSizeType;
179
+ };
180
+ }>> & Readonly<{
181
+ onDelete?: ((...args: any[]) => any) | undefined;
182
+ onProcessing?: ((...args: any[]) => any) | undefined;
183
+ "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
184
+ }>, {
185
+ title: string;
186
+ disabled: boolean;
187
+ showTitle: boolean;
188
+ showDownload: boolean;
189
+ useFileNameAsLabel: boolean;
190
+ mediaList: Media[];
191
+ maxImageSideLength: number;
192
+ maxImageFileSize: number;
193
+ maxFileSize: number;
194
+ keepFileType: boolean;
195
+ watermarkOptions: Record<string, any>;
196
+ allowTakePhoto: boolean;
197
+ allowPickPhoto: boolean;
198
+ useWx: boolean;
199
+ imageSizeType: MediaSizeType;
200
+ maxAttachmentCount: number;
201
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
202
+ export default _default;