zartui 3.1.13 → 3.1.14

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.
Files changed (112) hide show
  1. package/es/cell/index.css +1 -1
  2. package/es/dropdown-item/DropdownItem.d.ts +7 -0
  3. package/es/dropdown-item/DropdownItem.mjs +39 -25
  4. package/es/dropdown-item/index.css +1 -1
  5. package/es/dropdown-item/index.d.ts +4 -0
  6. package/es/dropdown-item/style/index.mjs +1 -0
  7. package/es/dropdown-item/types.d.ts +2 -1
  8. package/es/dropdown-menu/index.css +1 -1
  9. package/es/field/index.css +1 -1
  10. package/es/form/index.css +1 -0
  11. package/es/form/style/index.mjs +1 -0
  12. package/es/icon/config.mjs +3 -1
  13. package/es/icon/index.css +1 -1
  14. package/es/image-preview/ImagePreview.d.ts +1 -1
  15. package/es/image-preview/index.d.ts +1 -1
  16. package/es/index.d.ts +1 -0
  17. package/es/index.mjs +3 -0
  18. package/es/lazyload/vue-lazyload/index.d.ts +55 -55
  19. package/es/media-picker/MediaPicker.mjs +12 -2
  20. package/es/media-picker/type.d.ts +3 -0
  21. package/es/multiple-picker/MultiplePicker.d.ts +28 -2
  22. package/es/multiple-picker/MultiplePicker.mjs +26 -16
  23. package/es/multiple-picker/MultiplePickerOptions.mjs +2 -1
  24. package/es/multiple-picker/index.css +1 -1
  25. package/es/multiple-picker/index.d.ts +20 -2
  26. package/es/picker/Picker.d.ts +30 -4
  27. package/es/picker/Picker.mjs +69 -16
  28. package/es/picker/PickerOptions.d.ts +75 -0
  29. package/es/picker/PickerOptions.mjs +93 -0
  30. package/es/picker/index.css +1 -1
  31. package/es/picker/index.d.ts +21 -3
  32. package/es/picker/types.d.ts +5 -1
  33. package/es/popup/Popup.mjs +3 -3
  34. package/es/radio-picker/RadioPicker.d.ts +11 -11
  35. package/es/radio-picker/index.d.ts +9 -9
  36. package/es/radio-picker/style/index.mjs +1 -1
  37. package/es/skeleton/index.css +1 -1
  38. package/es/slider/Slider.d.ts +139 -0
  39. package/es/slider/Slider.mjs +335 -0
  40. package/es/slider/index.css +1 -0
  41. package/es/slider/index.d.ts +103 -0
  42. package/es/slider/index.mjs +10 -0
  43. package/es/slider/style/index.d.ts +1 -0
  44. package/es/slider/style/index.mjs +2 -0
  45. package/es/slider/types.d.ts +11 -0
  46. package/es/slider/types.mjs +0 -0
  47. package/es/style/base.css +1 -1
  48. package/es/style/css-variables.css +1 -1
  49. package/es/tabbar-item/index.css +1 -1
  50. package/es/utils/mount-component.mjs +1 -1
  51. package/es/vue-sfc-shim.d.ts +6 -6
  52. package/es/vue-tsx-shim.d.ts +23 -23
  53. package/lib/cell/index.css +1 -1
  54. package/lib/dropdown-item/DropdownItem.d.ts +7 -0
  55. package/lib/dropdown-item/DropdownItem.js +37 -23
  56. package/lib/dropdown-item/index.css +1 -1
  57. package/lib/dropdown-item/index.d.ts +4 -0
  58. package/lib/dropdown-item/style/index.js +1 -0
  59. package/lib/dropdown-item/types.d.ts +2 -1
  60. package/lib/dropdown-menu/index.css +1 -1
  61. package/lib/field/index.css +1 -1
  62. package/lib/form/index.css +1 -0
  63. package/lib/form/style/index.js +1 -0
  64. package/lib/icon/config.js +3 -1
  65. package/lib/icon/index.css +1 -1
  66. package/lib/image-preview/ImagePreview.d.ts +1 -1
  67. package/lib/image-preview/index.d.ts +1 -1
  68. package/lib/index.css +1 -1
  69. package/lib/index.d.ts +1 -0
  70. package/lib/index.js +3 -0
  71. package/lib/lazyload/vue-lazyload/index.d.ts +55 -55
  72. package/lib/media-picker/MediaPicker.js +12 -2
  73. package/lib/media-picker/type.d.ts +3 -0
  74. package/lib/multiple-picker/MultiplePicker.d.ts +28 -2
  75. package/lib/multiple-picker/MultiplePicker.js +26 -16
  76. package/lib/multiple-picker/MultiplePickerOptions.js +2 -1
  77. package/lib/multiple-picker/index.css +1 -1
  78. package/lib/multiple-picker/index.d.ts +20 -2
  79. package/lib/picker/Picker.d.ts +30 -4
  80. package/lib/picker/Picker.js +68 -15
  81. package/lib/picker/PickerOptions.d.ts +75 -0
  82. package/lib/picker/PickerOptions.js +112 -0
  83. package/lib/picker/index.css +1 -1
  84. package/lib/picker/index.d.ts +21 -3
  85. package/lib/picker/types.d.ts +5 -1
  86. package/lib/popup/Popup.js +3 -3
  87. package/lib/radio-picker/RadioPicker.d.ts +11 -11
  88. package/lib/radio-picker/index.d.ts +9 -9
  89. package/lib/radio-picker/style/index.js +1 -1
  90. package/lib/skeleton/index.css +1 -1
  91. package/lib/slider/Slider.d.ts +139 -0
  92. package/lib/slider/Slider.js +354 -0
  93. package/lib/slider/index.css +1 -0
  94. package/lib/slider/index.d.ts +103 -0
  95. package/lib/slider/index.js +39 -0
  96. package/lib/slider/style/index.d.ts +1 -0
  97. package/lib/slider/style/index.js +2 -0
  98. package/lib/slider/types.d.ts +11 -0
  99. package/lib/slider/types.js +15 -0
  100. package/lib/style/base.css +1 -1
  101. package/lib/style/css-variables.css +1 -1
  102. package/lib/tabbar-item/index.css +1 -1
  103. package/lib/utils/mount-component.js +1 -1
  104. package/lib/vue-sfc-shim.d.ts +6 -6
  105. package/lib/vue-tsx-shim.d.ts +23 -23
  106. package/lib/web-types.json +1 -1
  107. package/lib/zartui.cjs.js +1419 -915
  108. package/lib/zartui.es.js +1419 -915
  109. package/lib/zartui.js +1419 -915
  110. package/lib/zartui.min.js +1 -1
  111. package/package.json +79 -79
  112. package/README.md +0 -23
package/lib/index.d.ts CHANGED
@@ -55,6 +55,7 @@ export * from "./row";
55
55
  export * from "./search";
56
56
  export * from "./signature";
57
57
  export * from "./skeleton";
58
+ export * from "./slider";
58
59
  export * from "./step";
59
60
  export * from "./stepper";
60
61
  export * from "./steps";
package/lib/index.js CHANGED
@@ -79,6 +79,7 @@ var import_row = require("./row");
79
79
  var import_search = require("./search");
80
80
  var import_signature = require("./signature");
81
81
  var import_skeleton = require("./skeleton");
82
+ var import_slider = require("./slider");
82
83
  var import_step = require("./step");
83
84
  var import_stepper = require("./stepper");
84
85
  var import_steps = require("./steps");
@@ -155,6 +156,7 @@ __reExport(stdin_exports, require("./row"), module.exports);
155
156
  __reExport(stdin_exports, require("./search"), module.exports);
156
157
  __reExport(stdin_exports, require("./signature"), module.exports);
157
158
  __reExport(stdin_exports, require("./skeleton"), module.exports);
159
+ __reExport(stdin_exports, require("./slider"), module.exports);
158
160
  __reExport(stdin_exports, require("./step"), module.exports);
159
161
  __reExport(stdin_exports, require("./stepper"), module.exports);
160
162
  __reExport(stdin_exports, require("./steps"), module.exports);
@@ -233,6 +235,7 @@ function install(app) {
233
235
  import_search.Search,
234
236
  import_signature.Signature,
235
237
  import_skeleton.Skeleton,
238
+ import_slider.Slider,
236
239
  import_step.Step,
237
240
  import_stepper.Stepper,
238
241
  import_steps.Steps,
@@ -1,55 +1,55 @@
1
- import type { App } from 'vue';
2
-
3
- declare type ListenEvent =
4
- | 'scroll'
5
- | 'wheel'
6
- | 'mousewheel'
7
- | 'resize'
8
- | 'animationend'
9
- | 'transitionend'
10
- | 'touchmove';
11
-
12
- // eslint-disable-next-line
13
- declare type Callback = (listener: any, options: LazyloadOptions) => void;
14
-
15
- declare type Filter = {
16
- webp?: Callback;
17
- progressive?: Callback;
18
- };
19
-
20
- declare type Adapter = {
21
- error?: Callback;
22
- loaded?: Callback;
23
- loading?: Callback;
24
- };
25
-
26
- export declare type LazyloadOptions = {
27
- error?: string;
28
- filter?: Filter;
29
- silent?: boolean;
30
- adapter?: Adapter;
31
- loading?: string;
32
- attempt?: number;
33
- preLoad?: number;
34
- observer?: boolean;
35
- lazyImage?: boolean;
36
- throttleWait?: number;
37
- listenEvents?: ListenEvent[];
38
- dispatchEvent?: boolean;
39
- lazyComponent?: boolean;
40
- observerOptions?: IntersectionObserverInit;
41
- };
42
-
43
- export declare const Lazyload: {
44
- install(app: App, options?: LazyloadOptions): void;
45
- };
46
-
47
- declare module '@vue/runtime-core' {
48
- interface ComponentCustomProperties {
49
- $Lazyload: {
50
- $on: (event: string, handler: Callback) => void;
51
- $off: (event: string, handler?: Callback) => void;
52
- $once: (event: string, handler: Callback) => void;
53
- };
54
- }
55
- }
1
+ import type { App } from 'vue';
2
+
3
+ declare type ListenEvent =
4
+ | 'scroll'
5
+ | 'wheel'
6
+ | 'mousewheel'
7
+ | 'resize'
8
+ | 'animationend'
9
+ | 'transitionend'
10
+ | 'touchmove';
11
+
12
+ // eslint-disable-next-line
13
+ declare type Callback = (listener: any, options: LazyloadOptions) => void;
14
+
15
+ declare type Filter = {
16
+ webp?: Callback;
17
+ progressive?: Callback;
18
+ };
19
+
20
+ declare type Adapter = {
21
+ error?: Callback;
22
+ loaded?: Callback;
23
+ loading?: Callback;
24
+ };
25
+
26
+ export declare type LazyloadOptions = {
27
+ error?: string;
28
+ filter?: Filter;
29
+ silent?: boolean;
30
+ adapter?: Adapter;
31
+ loading?: string;
32
+ attempt?: number;
33
+ preLoad?: number;
34
+ observer?: boolean;
35
+ lazyImage?: boolean;
36
+ throttleWait?: number;
37
+ listenEvents?: ListenEvent[];
38
+ dispatchEvent?: boolean;
39
+ lazyComponent?: boolean;
40
+ observerOptions?: IntersectionObserverInit;
41
+ };
42
+
43
+ export declare const Lazyload: {
44
+ install(app: App, options?: LazyloadOptions): void;
45
+ };
46
+
47
+ declare module '@vue/runtime-core' {
48
+ interface ComponentCustomProperties {
49
+ $Lazyload: {
50
+ $on: (event: string, handler: Callback) => void;
51
+ $off: (event: string, handler?: Callback) => void;
52
+ $once: (event: string, handler: Callback) => void;
53
+ };
54
+ }
55
+ }
@@ -297,6 +297,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
297
297
  uniqueCode: (0, import_media_util.getFileUniqueCode)(f),
298
298
  lastModified: f.lastModified,
299
299
  fileSize: f.size,
300
+ fileName: f.name,
301
+ originalName: f.name,
302
+ originalSize: f.size,
300
303
  deletable: true,
301
304
  message: ""
302
305
  };
@@ -342,8 +345,15 @@ var stdin_default = (0, import_vue2.defineComponent)({
342
345
  uniqueCode: (0, import_media_util.getFileUniqueCode)(file),
343
346
  lastModified: f.lastModified,
344
347
  fileSize: f.size,
348
+ // 修改后大小,水印,压缩等
349
+ fileName: f.name,
350
+ // 修改后名称
345
351
  deletable: true,
346
- message: ""
352
+ message: "",
353
+ originalName: file.name,
354
+ // 原始名称
355
+ originalSize: file.size
356
+ // 原始大小
347
357
  };
348
358
  return Promise.resolve(media);
349
359
  });
@@ -627,7 +637,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
627
637
  const imageIndex = imageList.value.indexOf(media);
628
638
  (0, import_image_preview.showImagePreview)({
629
639
  images: imageList.value.map((image) => ({
630
- url: image.showSrc || ""
640
+ url: image.url || image.showSrc || ""
631
641
  })),
632
642
  startPosition: imageIndex
633
643
  });
@@ -8,6 +8,9 @@ export type Media = {
8
8
  uniqueCode: string;
9
9
  showSrc?: string;
10
10
  fileSize: number;
11
+ fileName: string;
12
+ originalName: string;
13
+ originalSize: number;
11
14
  lastModified: number;
12
15
  deletable: boolean;
13
16
  status?: MediaUploadStatus;
@@ -27,6 +27,10 @@ declare const multiplePickerProps: {
27
27
  type: BooleanConstructor;
28
28
  default: true;
29
29
  };
30
+ showTitle: {
31
+ type: BooleanConstructor;
32
+ default: true;
33
+ };
30
34
  options: {
31
35
  type: import("vue").PropType<PickerOption[]>;
32
36
  default: () => PickerOption[];
@@ -47,6 +51,10 @@ declare const multiplePickerProps: {
47
51
  type: import("vue").PropType<number[]>;
48
52
  default: () => number[];
49
53
  };
54
+ popup: {
55
+ type: BooleanConstructor;
56
+ default: true;
57
+ };
50
58
  };
51
59
  export type MultiplePickerProps = ExtractPropTypes<typeof multiplePickerProps>;
52
60
  declare const _default: import("vue").DefineComponent<{
@@ -76,6 +84,10 @@ declare const _default: import("vue").DefineComponent<{
76
84
  type: BooleanConstructor;
77
85
  default: true;
78
86
  };
87
+ showTitle: {
88
+ type: BooleanConstructor;
89
+ default: true;
90
+ };
79
91
  options: {
80
92
  type: import("vue").PropType<PickerOption[]>;
81
93
  default: () => PickerOption[];
@@ -96,6 +108,10 @@ declare const _default: import("vue").DefineComponent<{
96
108
  type: import("vue").PropType<number[]>;
97
109
  default: () => number[];
98
110
  };
111
+ popup: {
112
+ type: BooleanConstructor;
113
+ default: true;
114
+ };
99
115
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "change" | "confirm" | "update:showPicker" | "update:selectedIndex")[], "cancel" | "change" | "confirm" | "update:showPicker" | "update:selectedIndex", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
100
116
  title: StringConstructor;
101
117
  loading: BooleanConstructor;
@@ -123,6 +139,10 @@ declare const _default: import("vue").DefineComponent<{
123
139
  type: BooleanConstructor;
124
140
  default: true;
125
141
  };
142
+ showTitle: {
143
+ type: BooleanConstructor;
144
+ default: true;
145
+ };
126
146
  options: {
127
147
  type: import("vue").PropType<PickerOption[]>;
128
148
  default: () => PickerOption[];
@@ -143,6 +163,10 @@ declare const _default: import("vue").DefineComponent<{
143
163
  type: import("vue").PropType<number[]>;
144
164
  default: () => number[];
145
165
  };
166
+ popup: {
167
+ type: BooleanConstructor;
168
+ default: true;
169
+ };
146
170
  }>> & {
147
171
  onChange?: ((...args: any[]) => any) | undefined;
148
172
  onCancel?: ((...args: any[]) => any) | undefined;
@@ -153,14 +177,16 @@ declare const _default: import("vue").DefineComponent<{
153
177
  readonly: boolean;
154
178
  closeOnClickOverlay: boolean;
155
179
  closeOnPopstate: boolean;
180
+ popup: boolean;
156
181
  loading: boolean;
182
+ showTitle: boolean;
157
183
  options: PickerOption[];
158
184
  allowHtml: boolean;
185
+ showToolbar: boolean;
186
+ showPicker: boolean;
159
187
  textKey: string;
160
188
  itemHeight: string | number;
161
189
  columnCounts: number;
162
- showPicker: boolean;
163
- showToolbar: boolean;
164
190
  toolbarPosition: string;
165
191
  selectedIndex: number[];
166
192
  }, {}>;
@@ -51,11 +51,13 @@ const multiplePickerProps = {
51
51
  closeOnPopstate: import_utils.truthProp,
52
52
  closeOnClickOverlay: import_utils.truthProp,
53
53
  showToolbar: import_utils.truthProp,
54
+ showTitle: import_utils.truthProp,
54
55
  options: (0, import_utils.makeArrayProp)(),
55
56
  toolbarPosition: (0, import_utils.makeStringProp)("bottom"),
56
57
  textKey: (0, import_utils.makeStringProp)("text"),
57
58
  columnCounts: (0, import_utils.makeNumberProp)(3),
58
- selectedIndex: (0, import_utils.makeArrayProp)([])
59
+ selectedIndex: (0, import_utils.makeArrayProp)([]),
60
+ popup: import_utils.truthProp
59
61
  };
60
62
  var stdin_default = (0, import_vue2.defineComponent)({
61
63
  name,
@@ -110,12 +112,14 @@ var stdin_default = (0, import_vue2.defineComponent)({
110
112
  emit("confirm", options);
111
113
  };
112
114
  const genTitle = () => {
113
- if (slots.title) {
114
- return slots.title();
115
+ if (props.showTitle) {
116
+ if (slots.title) {
117
+ return slots.title();
118
+ }
119
+ return (0, import_vue.createVNode)("div", {
120
+ "class": ["zt-ellipsis", bem("title")]
121
+ }, [props.title ? props.title : "\u8BF7\u9009\u62E9"]);
115
122
  }
116
- return (0, import_vue.createVNode)("div", {
117
- "class": ["zt-ellipsis", bem("title")]
118
- }, [props.title ? props.title : "\u8BF7\u9009\u62E9"]);
119
123
  };
120
124
  const genCancel = () => {
121
125
  const text = props.cancelButtonText || "\u53D6\u6D88";
@@ -184,15 +188,21 @@ var stdin_default = (0, import_vue2.defineComponent)({
184
188
  }, [genTitle(), props.loading ? (0, import_vue.createVNode)(import_loading.default, {
185
189
  "class": bem("loading")
186
190
  }, null) : "", genOptions(), props.toolbarPosition === "bottom" ? genToolbar() : ""]);
187
- return () => (0, import_vue.createVNode)(import_popup.default, {
188
- "show": currentShow.value,
189
- "onUpdate:show": [($event) => currentShow.value = $event, updateShow],
190
- "round": true,
191
- "position": "bottom",
192
- "closeOnPopstate": props.closeOnPopstate,
193
- "closeOnClickOverlay": props.closeOnClickOverlay
194
- }, {
195
- default: renderMultiplePicker
196
- });
191
+ return () => {
192
+ if (props.popup) {
193
+ return (0, import_vue.createVNode)(import_popup.default, {
194
+ "show": currentShow.value,
195
+ "onUpdate:show": [($event) => currentShow.value = $event, updateShow],
196
+ "round": true,
197
+ "position": "bottom",
198
+ "closeOnPopstate": props.closeOnPopstate,
199
+ "closeOnClickOverlay": props.closeOnClickOverlay
200
+ }, {
201
+ default: renderMultiplePicker
202
+ });
203
+ } else {
204
+ return renderMultiplePicker();
205
+ }
206
+ };
197
207
  }
198
208
  });
@@ -71,7 +71,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
71
71
  }
72
72
  return option;
73
73
  };
74
- const isOptionDisabled = (option) => (0, import_utils.isObject)(option) && option.disabled;
74
+ const isOptionDisabled = (option) => props.readonly || (0, import_utils.isObject)(option) && option.disabled;
75
75
  const genOptions = () => {
76
76
  columnCounts.value = Number(props.columnCounts);
77
77
  if (columnCounts.value && columnCounts.value > 3) {
@@ -99,6 +99,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
99
99
  "class": [bem("item", {
100
100
  disabled,
101
101
  selected: currentIndexes.value.indexOf(index) > -1,
102
+ "disabled-selected": disabled && currentIndexes.value.indexOf(index) > -1,
102
103
  last: (index + 1) % columnCounts.value === 0
103
104
  })]
104
105
  }, [slots.options ? slots.options(option) : (0, import_vue.createVNode)("div", childData, null)]);
@@ -1 +1 @@
1
- :root{--zt-multiple-picker-warpper-padding: 12px 16px 4px 16px;--zt-multiple-picker-option-text-color: var(--zt-gray-a6);--zt-multiple-picker-background-color: var(--zt-background-popup);--zt-multiple-picker-toolbar-height: 44px;--zt-multiple-picker-title-text-color: var(--zt-gray-a4);--zt-multiple-picker-title-padding: 12px 0;--zt-multiple-picker-item-padding: 0 4px 8px 0;--zt-multiple-picker-option-disabled-opacity: var(--zt-disabled-opacity);--zt-multiple-picker-max-height: 84vh;--zt-multiple-picker-loading-icon-color: var(--zt-primary-color);--zt-multiple-picker-loading-mask-color: var(--zt-picker-loading-mask-color);--zt-multiple-picker-toolbar-padding: 8px 16px;--zt-multiple-picker-ellipsis-border: 1px solid var(--zt-gray-a2);--zt-multiple-picker-title-background: var(--zt-background-popup);--zt-multiple-picker-ellipsis-height: 38px}:root[zt-theme-size=large]{--zt-multiple-picker-ellipsis-height: 50px}.zt-multiple-picker{display:flex;flex-direction:column;justify-content:space-between;position:relative;background-color:var(--zt-multiple-picker-background-color);-webkit-user-select:none;user-select:none;max-height:var(--zt-multiple-picker-max-height)}.zt-multiple-picker__toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:content-box;flex-shrink:0;background:var(--zt-multiple-picker-title-background);height:var(--zt-multiple-picker-toolbar-height);padding:var(--zt-multiple-picker-toolbar-padding)}.zt-multiple-picker__title{flex-shrink:0;font-weight:var(--zt-multiple-picker-cancel-action-font-weight);font-size:var(--zt-font-size-md);line-height:var(--zt-line-height-md);text-align:center;background:var(--zt-multiple-picker-title-background);color:var(--zt-multiple-picker-title-text-color);padding:var(--zt-multiple-picker-title-padding)}.zt-multiple-picker__options{position:relative;display:flex;cursor:-webkit-grab;cursor:grab;overflow-y:scroll}.zt-multiple-picker__options:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:0;bottom:0;left:0;border-bottom:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-multiple-picker__options:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:0;right:0;left:0;border-top:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-multiple-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:var(--zt-multiple-picker-loading-icon-color);background-color:var(--zt-multiple-picker-loading-mask-color)}.zt-multiple-picker-options{flex:1;overflow-y:scroll;font-size:var(--zt-font-size-md);margin:0;outline:0 none;padding:0}.zt-multiple-picker-options__wrapper{display:flex;flex-wrap:wrap;background-color:var(--zt-multiple-picker-background-color);padding:var(--zt-multiple-picker-warpper-padding)}.zt-multiple-picker-options__item{color:var(--zt-multiple-picker-option-text-color);padding:var(--zt-multiple-picker-item-padding);box-sizing:border-box;text-align:center;font-size:var(--zt-font-size-md)}.zt-multiple-picker-options__item .zt-ellipsis{height:var(--zt-multiple-picker-ellipsis-height);line-height:var(--zt-multiple-picker-ellipsis-height);border-radius:calc(var(--zt-multiple-picker-ellipsis-height) / 2);border:var(--zt-multiple-picker-ellipsis-border);padding:0 var(--zt-padding-md)}.zt-multiple-picker-options__item:active{opacity:var(--zt-active-opacity)}.zt-multiple-picker-options__item--disabled{cursor:not-allowed;opacity:var(--zt-multiple-picker-option-disabled-opacity)}.zt-multiple-picker-options__item--last{padding-right:0}.zt-multiple-picker-options__item--selected{color:var(--zt-primary-color)}.zt-multiple-picker-options__item--selected .zt-ellipsis{background:var(--zt-primary-color-a1)}
1
+ :root{--zt-multiple-picker-warpper-padding: 12px 16px 4px 16px;--zt-multiple-picker-option-text-color: var(--zt-gray-a6);--zt-multiple-picker-background-color: var(--zt-background-popup);--zt-multiple-picker-toolbar-height: 44px;--zt-multiple-picker-title-text-color: var(--zt-gray-a4);--zt-multiple-picker-title-padding: 12px 0;--zt-multiple-picker-item-padding: 0 4px 8px 0;--zt-multiple-picker-option-disabled-opacity: var(--zt-disabled-opacity);--zt-multiple-picker-option-disabled-background: var(--zt-gray-a04);--zt-multiple-picker-max-height: 84vh;--zt-multiple-picker-loading-icon-color: var(--zt-primary-color);--zt-multiple-picker-loading-mask-color: var(--zt-picker-loading-mask-color);--zt-multiple-picker-toolbar-padding: 8px 16px;--zt-multiple-picker-ellipsis-border: 1px solid var(--zt-gray-a2);--zt-multiple-picker-ellipsis-border-selected: 1px solid var(--zt-blue-a6);--zt-multiple-picker-title-background: var(--zt-background-popup);--zt-multiple-picker-ellipsis-height: 38px}:root[zt-theme-size=large]{--zt-multiple-picker-ellipsis-height: 50px}.zt-multiple-picker{display:flex;flex-direction:column;justify-content:space-between;position:relative;background-color:var(--zt-multiple-picker-background-color);-webkit-user-select:none;user-select:none;max-height:var(--zt-multiple-picker-max-height)}.zt-multiple-picker__toolbar{display:flex;align-items:center;justify-content:space-between;box-sizing:content-box;flex-shrink:0;background:var(--zt-multiple-picker-title-background);height:var(--zt-multiple-picker-toolbar-height);padding:var(--zt-multiple-picker-toolbar-padding)}.zt-multiple-picker__title{flex-shrink:0;font-weight:var(--zt-multiple-picker-cancel-action-font-weight);font-size:var(--zt-font-size-md);line-height:var(--zt-line-height-md);text-align:center;background:var(--zt-multiple-picker-title-background);color:var(--zt-multiple-picker-title-text-color);padding:var(--zt-multiple-picker-title-padding)}.zt-multiple-picker__options{position:relative;display:flex;cursor:-webkit-grab;cursor:grab;overflow-y:scroll}.zt-multiple-picker__options:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:0;bottom:0;left:0;border-bottom:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-multiple-picker__options:before{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:0;right:0;left:0;border-top:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-multiple-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:var(--zt-multiple-picker-loading-icon-color);background-color:var(--zt-multiple-picker-loading-mask-color)}.zt-multiple-picker-options{flex:1;overflow-y:scroll;font-size:var(--zt-font-size-md);margin:0;outline:0 none;padding:0}.zt-multiple-picker-options__wrapper{display:flex;flex-wrap:wrap;background-color:var(--zt-multiple-picker-background-color);padding:var(--zt-multiple-picker-warpper-padding)}.zt-multiple-picker-options__item{color:var(--zt-multiple-picker-option-text-color);padding:var(--zt-multiple-picker-item-padding);box-sizing:border-box;text-align:center;font-size:var(--zt-font-size-md)}.zt-multiple-picker-options__item .zt-ellipsis{height:var(--zt-multiple-picker-ellipsis-height);line-height:var(--zt-multiple-picker-ellipsis-height);border-radius:calc(var(--zt-multiple-picker-ellipsis-height) / 2);border:var(--zt-multiple-picker-ellipsis-border);padding:0 var(--zt-padding-md)}.zt-multiple-picker-options__item:active{opacity:var(--zt-active-opacity)}.zt-multiple-picker-options__item--disabled{cursor:not-allowed;color:var(--zt-gray-a2)}.zt-multiple-picker-options__item--disabled .zt-ellipsis{background:var(--zt-multiple-picker-option-disabled-background);border:0}.zt-multiple-picker-options__item--last{padding-right:0}.zt-multiple-picker-options__item--selected{color:var(--zt-primary-color)}.zt-multiple-picker-options__item--selected .zt-ellipsis{background:var(--zt-primary-color-a1);border:var(--zt-multiple-picker-ellipsis-border-selected)}.zt-multiple-picker-options__item--disabled-selected{cursor:not-allowed;color:var(--zt-gray)!important}.zt-multiple-picker-options__item--disabled-selected .zt-ellipsis{background:var(--zt-picker-option-disabled-background)!important;border:0!important}
@@ -27,6 +27,10 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
27
27
  type: BooleanConstructor;
28
28
  default: true;
29
29
  };
30
+ showTitle: {
31
+ type: BooleanConstructor;
32
+ default: true;
33
+ };
30
34
  options: {
31
35
  type: import("vue").PropType<import("./types").PickerOption[]>;
32
36
  default: () => import("./types").PickerOption[];
@@ -47,6 +51,10 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
47
51
  type: import("vue").PropType<number[]>;
48
52
  default: () => number[];
49
53
  };
54
+ popup: {
55
+ type: BooleanConstructor;
56
+ default: true;
57
+ };
50
58
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "change" | "confirm" | "update:showPicker" | "update:selectedIndex")[], "cancel" | "change" | "confirm" | "update:showPicker" | "update:selectedIndex", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
51
59
  title: StringConstructor;
52
60
  loading: BooleanConstructor;
@@ -74,6 +82,10 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
74
82
  type: BooleanConstructor;
75
83
  default: true;
76
84
  };
85
+ showTitle: {
86
+ type: BooleanConstructor;
87
+ default: true;
88
+ };
77
89
  options: {
78
90
  type: import("vue").PropType<import("./types").PickerOption[]>;
79
91
  default: () => import("./types").PickerOption[];
@@ -94,6 +106,10 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
94
106
  type: import("vue").PropType<number[]>;
95
107
  default: () => number[];
96
108
  };
109
+ popup: {
110
+ type: BooleanConstructor;
111
+ default: true;
112
+ };
97
113
  }>> & {
98
114
  onChange?: ((...args: any[]) => any) | undefined;
99
115
  onCancel?: ((...args: any[]) => any) | undefined;
@@ -104,14 +120,16 @@ export declare const MultiplePicker: import("../utils").WithInstall<import("vue"
104
120
  readonly: boolean;
105
121
  closeOnClickOverlay: boolean;
106
122
  closeOnPopstate: boolean;
123
+ popup: boolean;
107
124
  loading: boolean;
125
+ showTitle: boolean;
108
126
  options: import("./types").PickerOption[];
109
127
  allowHtml: boolean;
128
+ showToolbar: boolean;
129
+ showPicker: boolean;
110
130
  textKey: string;
111
131
  itemHeight: string | number;
112
132
  columnCounts: number;
113
- showPicker: boolean;
114
- showToolbar: boolean;
115
133
  toolbarPosition: string;
116
134
  selectedIndex: number[];
117
135
  }, {}>>;
@@ -1,6 +1,6 @@
1
1
  import type { PropType, ExtractPropTypes } from 'vue';
2
2
  import { Numeric } from '../utils';
3
- import type { PickerColumn, PickerOption, PickerFieldNames, PickerToolbarPosition } from './types';
3
+ import type { PickerColumn, PickerOption, PickerFieldNames, PickerShowType, PickerToolbarPosition } from './types';
4
4
  export declare const pickerSharedProps: {
5
5
  loading: BooleanConstructor;
6
6
  readonly: BooleanConstructor;
@@ -87,6 +87,14 @@ export declare const pickerProps: {
87
87
  type: BooleanConstructor;
88
88
  default: true;
89
89
  };
90
+ showType: {
91
+ type: PropType<PickerShowType>;
92
+ default: PickerShowType;
93
+ };
94
+ columnCounts: {
95
+ type: NumberConstructor;
96
+ default: number;
97
+ };
90
98
  };
91
99
  export type PickerProps = ExtractPropTypes<typeof pickerProps>;
92
100
  declare const _default: import("vue").DefineComponent<{
@@ -143,7 +151,15 @@ declare const _default: import("vue").DefineComponent<{
143
151
  type: BooleanConstructor;
144
152
  default: true;
145
153
  };
146
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption")[], "update:modelValue" | "cancel" | "change" | "confirm" | "update:showPicker" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
154
+ showType: {
155
+ type: PropType<PickerShowType>;
156
+ default: PickerShowType;
157
+ };
158
+ columnCounts: {
159
+ type: NumberConstructor;
160
+ default: number;
161
+ };
162
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker")[], "update:modelValue" | "cancel" | "change" | "confirm" | "clickOption" | "update:showPicker", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
147
163
  loading: BooleanConstructor;
148
164
  readonly: BooleanConstructor;
149
165
  allowHtml: BooleanConstructor;
@@ -197,25 +213,35 @@ declare const _default: import("vue").DefineComponent<{
197
213
  type: BooleanConstructor;
198
214
  default: true;
199
215
  };
216
+ showType: {
217
+ type: PropType<PickerShowType>;
218
+ default: PickerShowType;
219
+ };
220
+ columnCounts: {
221
+ type: NumberConstructor;
222
+ default: number;
223
+ };
200
224
  }>> & {
201
225
  onChange?: ((...args: any[]) => any) | undefined;
202
226
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
203
227
  onCancel?: ((...args: any[]) => any) | undefined;
204
228
  onConfirm?: ((...args: any[]) => any) | undefined;
205
- "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
206
229
  onClickOption?: ((...args: any[]) => any) | undefined;
230
+ "onUpdate:showPicker"?: ((...args: any[]) => any) | undefined;
207
231
  }, {
208
232
  title: string;
209
233
  modelValue: Numeric[];
210
234
  readonly: boolean;
211
235
  popup: boolean;
212
236
  loading: boolean;
237
+ showType: PickerShowType;
213
238
  showTitle: boolean;
214
239
  columns: (PickerColumn | PickerOption)[];
215
240
  allowHtml: boolean;
216
241
  swipeDuration: string | number;
217
- showPicker: boolean;
218
242
  showToolbar: boolean;
243
+ showPicker: boolean;
244
+ columnCounts: number;
219
245
  toolbarPosition: PickerToolbarPosition;
220
246
  optionHeight: string | number;
221
247
  visibleOptionNum: string | number;
@@ -43,6 +43,7 @@ var import_PickerColumn = __toESM(require("./PickerColumn"));
43
43
  var import_divider = require("../divider");
44
44
  var import_PickerToolbar = __toESM(require("./PickerToolbar"));
45
45
  var import_popup = __toESM(require("../popup"));
46
+ var import_PickerOptions = __toESM(require("./PickerOptions"));
46
47
  const pickerSharedProps = (0, import_utils.extend)({
47
48
  loading: Boolean,
48
49
  readonly: Boolean,
@@ -61,7 +62,9 @@ const pickerProps = (0, import_utils.extend)({}, pickerSharedProps, {
61
62
  toolbarPosition: (0, import_utils.makeStringProp)("top"),
62
63
  columnsFieldNames: Object,
63
64
  showPicker: Boolean,
64
- popup: import_utils.truthProp
65
+ popup: import_utils.truthProp,
66
+ showType: (0, import_utils.makeStringProp)("default"),
67
+ columnCounts: (0, import_utils.makeNumberProp)(3)
65
68
  });
66
69
  var stdin_default = (0, import_vue2.defineComponent)({
67
70
  name: import_utils2.name,
@@ -71,6 +74,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
71
74
  emit,
72
75
  slots
73
76
  }) {
77
+ const pickerOptions = (0, import_vue2.ref)();
74
78
  const columnsRef = (0, import_vue2.ref)();
75
79
  const selectedValues = (0, import_vue2.ref)(props.modelValue.slice(0));
76
80
  const showPicker = (0, import_vue2.ref)(props.showPicker);
@@ -97,6 +101,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
97
101
  });
98
102
  const hasOptions = (0, import_vue2.computed)(() => currentColumns.value.some((options) => options.length));
99
103
  const selectedOptions = (0, import_vue2.computed)(() => currentColumns.value.map((options, index) => (0, import_utils2.findOptionByValue)(options, selectedValues.value[index], fields.value)));
104
+ const isButtonPicker = (0, import_vue2.computed)(() => {
105
+ return props.showType === "button" && columnsType.value === "default";
106
+ });
100
107
  (0, import_vue2.watch)(showPicker, (newValue) => {
101
108
  if (newValue !== props.showPicker) {
102
109
  emit("update:showPicker", newValue);
@@ -134,10 +141,12 @@ var stdin_default = (0, import_vue2.defineComponent)({
134
141
  }, getEventParams()));
135
142
  });
136
143
  };
137
- const onClickOption = (currentOption, columnIndex) => emit("clickOption", (0, import_utils.extend)({
138
- columnIndex,
139
- currentOption
140
- }, getEventParams()));
144
+ const onClickOption = (currentOption, columnIndex) => {
145
+ emit("clickOption", (0, import_utils.extend)({
146
+ columnIndex,
147
+ currentOption
148
+ }, getEventParams()));
149
+ };
141
150
  const confirm = () => {
142
151
  children.forEach((child) => child.stopMomentum());
143
152
  const params = getEventParams();
@@ -219,7 +228,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
219
228
  }, null) : null;
220
229
  (0, import_vue2.watch)(currentColumns, (columns) => {
221
230
  columns.forEach((options, index) => {
222
- if (options.length && !(0, import_utils2.isOptionExist)(options, selectedValues.value[index], fields.value)) {
231
+ const judgeSelectedValue = isButtonPicker.value ? selectedValues.value[index] : true;
232
+ if (options.length && judgeSelectedValue && !(0, import_utils2.isOptionExist)(options, selectedValues.value[index], fields.value)) {
223
233
  setValue(index, (0, import_utils2.getFirstEnabledOption)(options)[fields.value.value]);
224
234
  }
225
235
  });
@@ -259,18 +269,61 @@ var stdin_default = (0, import_vue2.defineComponent)({
259
269
  "class": (0, import_utils2.bem)("loading")
260
270
  }, null) : null, topDivider(), (_a = slots["columns-top"]) == null ? void 0 : _a.call(slots), renderColumns(), (_b = slots["columns-bottom"]) == null ? void 0 : _b.call(slots), buttomDivider(), renderToolbar()]);
261
271
  };
262
- return () => {
263
- if (props.popup) {
264
- return (0, import_vue.createVNode)(import_popup.default, {
265
- "show": showPicker.value,
266
- "onUpdate:show": [($event) => showPicker.value = $event, updateShow],
267
- "round": true,
268
- "position": "bottom"
272
+ const renderOptionItems = () => {
273
+ return currentColumns.value.map((options, columnIndex) => {
274
+ return (0, import_vue.createVNode)(import_PickerOptions.default, {
275
+ "ref": pickerOptions,
276
+ "value": selectedValues.value[columnIndex],
277
+ "columnCounts": props.columnCounts,
278
+ "fields": fields.value,
279
+ "options": options,
280
+ "allowHtml": props.allowHtml,
281
+ "readonly": props.readonly,
282
+ "itemHeight": optionHeight.value,
283
+ "onChange": (value) => onChange(value, columnIndex),
284
+ "onClickOption": (option) => onClickOption(option, columnIndex)
269
285
  }, {
270
- default: renderPicker
286
+ option: slots.option
271
287
  });
288
+ });
289
+ };
290
+ const renderOptions = () => (0, import_vue.createVNode)("div", {
291
+ "class": (0, import_utils2.bem)("options")
292
+ }, [renderOptionItems()]);
293
+ const renderTiledPicker = () => {
294
+ var _a, _b;
295
+ return (0, import_vue.createVNode)("div", {
296
+ "class": (0, import_utils2.bem)()
297
+ }, [renderTitleBar(), props.loading ? (0, import_vue.createVNode)(import_loading.Loading, {
298
+ "class": (0, import_utils2.bem)("loading")
299
+ }, null) : null, topDivider(), (_a = slots["columns-top"]) == null ? void 0 : _a.call(slots), renderOptions(), (_b = slots["columns-bottom"]) == null ? void 0 : _b.call(slots), buttomDivider(), renderToolbar()]);
300
+ };
301
+ return () => {
302
+ if (isButtonPicker.value) {
303
+ if (props.popup) {
304
+ return (0, import_vue.createVNode)(import_popup.default, {
305
+ "show": showPicker.value,
306
+ "onUpdate:show": [($event) => showPicker.value = $event, updateShow],
307
+ "round": true,
308
+ "position": "bottom"
309
+ }, {
310
+ default: renderTiledPicker
311
+ });
312
+ }
313
+ return renderTiledPicker();
314
+ } else {
315
+ if (props.popup) {
316
+ return (0, import_vue.createVNode)(import_popup.default, {
317
+ "show": showPicker.value,
318
+ "onUpdate:show": [($event) => showPicker.value = $event, updateShow],
319
+ "round": true,
320
+ "position": "bottom"
321
+ }, {
322
+ default: renderPicker
323
+ });
324
+ }
325
+ return renderPicker();
272
326
  }
273
- return renderPicker();
274
327
  };
275
328
  }
276
329
  });