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/es/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/es/index.mjs CHANGED
@@ -44,6 +44,7 @@ import { NumberKeyboard } from "./number-keyboard/index.mjs";
44
44
  import { Overlay } from "./overlay/index.mjs";
45
45
  import { Pagination } from "./pagination/index.mjs";
46
46
  import { PasswordInput } from "./password-input/index.mjs";
47
+ import { PhotoPicker } from "./photo-picker/index.mjs";
47
48
  import { Picker } from "./picker/index.mjs";
48
49
  import { Popover } from "./popover/index.mjs";
49
50
  import { Popup } from "./popup/index.mjs";
@@ -78,7 +79,7 @@ import { Timeline } from "./timeline/index.mjs";
78
79
  import { Toast } from "./toast/index.mjs";
79
80
  import { Uploader } from "./uploader/index.mjs";
80
81
  import { Video } from "./video/index.mjs";
81
- const version = "3.1.88";
82
+ const version = "3.1.90";
82
83
  function install(app) {
83
84
  const components = [
84
85
  ActionSheet,
@@ -127,6 +128,7 @@ function install(app) {
127
128
  Overlay,
128
129
  Pagination,
129
130
  PasswordInput,
131
+ PhotoPicker,
130
132
  Picker,
131
133
  Popover,
132
134
  Popup,
@@ -217,6 +219,7 @@ export * from "./number-keyboard/index.mjs";
217
219
  export * from "./overlay/index.mjs";
218
220
  export * from "./pagination/index.mjs";
219
221
  export * from "./password-input/index.mjs";
222
+ export * from "./photo-picker/index.mjs";
220
223
  export * from "./picker/index.mjs";
221
224
  export * from "./popover/index.mjs";
222
225
  export * from "./popup/index.mjs";
@@ -133,6 +133,7 @@ var stdin_default = defineComponent({
133
133
  }) {
134
134
  const videoOptionsVisible = ref(false);
135
135
  const audioOptionsVisible = ref(false);
136
+ const photoOptionsVisible = ref(false);
136
137
  const actionVisible = ref(false);
137
138
  const mediaPlayerVisible = ref(false);
138
139
  const mediaTypeToPlay = ref("file");
@@ -279,6 +280,19 @@ var stdin_default = defineComponent({
279
280
  };
280
281
  const imageList = computed(() => props.mediaList.filter((media) => media.type === "photo"));
281
282
  const actionOptions = computed(() => {
283
+ if (photoOptionsVisible.value) {
284
+ return [{
285
+ name: "\u62CD\u7167",
286
+ callback: () => {
287
+ mediaPickAction("photo", "take");
288
+ }
289
+ }, {
290
+ name: "\u7167\u7247",
291
+ callback: () => {
292
+ mediaPickAction("photo", "pick");
293
+ }
294
+ }];
295
+ }
282
296
  if (videoOptionsVisible.value) {
283
297
  return [{
284
298
  name: "\u62CD\u6444",
@@ -898,6 +912,9 @@ var stdin_default = defineComponent({
898
912
  });
899
913
  const selectAction = (action) => {
900
914
  actionVisible.value = false;
915
+ photoOptionsVisible.value = false;
916
+ videoOptionsVisible.value = false;
917
+ audioOptionsVisible.value = false;
901
918
  action.func && action.func();
902
919
  };
903
920
  watch(() => [props.sortable, props.mediaList.length], (_0) => __async(this, [_0], function* ([sortable, mediaCount]) {
@@ -99,7 +99,9 @@ var stdin_default = defineComponent({
99
99
  "class": bem("popup-pages")
100
100
  }, [pages.value.map((page) => _createVNode("button", {
101
101
  "type": "button",
102
- "class": bem("popup-page"),
102
+ "class": bem("popup-page", {
103
+ active: page === currentPage.value
104
+ }),
103
105
  "onClick": () => onSelect(page)
104
106
  }, [page]))]), _createVNode("div", {
105
107
  "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;