zartui 3.1.18 → 3.1.20

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 (85) hide show
  1. package/es/calendar/Calendar.mjs +1 -2
  2. package/es/date-time-picker/DateTimePicker.mjs +15 -0
  3. package/es/dialog/index.css +1 -1
  4. package/es/drawer-select/DrawerSelect.d.ts +17 -1
  5. package/es/drawer-select/DrawerSelect.mjs +9 -4
  6. package/es/drawer-select/index.d.ts +11 -0
  7. package/es/dropdown-item/DropdownItem.d.ts +26 -0
  8. package/es/dropdown-item/DropdownItem.mjs +11 -9
  9. package/es/dropdown-item/index.d.ts +18 -0
  10. package/es/dropdown-menu/DropdownMenu.mjs +4 -1
  11. package/es/dropdown-menu/index.css +1 -1
  12. package/es/empty/Empty.mjs +5 -1
  13. package/es/empty/Images.d.ts +14 -11
  14. package/es/empty/Images.mjs +89 -89
  15. package/es/empty/types.d.ts +1 -0
  16. package/es/hierarchy-select/index.css +1 -1
  17. package/es/index.d.ts +1 -1
  18. package/es/index.mjs +1 -1
  19. package/es/media-picker/MediaPicker.d.ts +18 -1
  20. package/es/media-picker/MediaPicker.mjs +71 -15
  21. package/es/media-picker/index.d.ts +13 -1
  22. package/es/media-picker/type.d.ts +3 -0
  23. package/es/media-picker/util/wx-util.d.ts +4 -0
  24. package/es/media-picker/util/wx-util.mjs +67 -0
  25. package/es/popup/index.css +1 -1
  26. package/es/slider/Slider.mjs +15 -16
  27. package/es/slider/index.css +1 -1
  28. package/es/table/Table.d.ts +13 -0
  29. package/es/table/Table.mjs +28 -7
  30. package/es/table/index.css +1 -1
  31. package/es/table/index.d.ts +9 -0
  32. package/es/table/style/index.mjs +6 -0
  33. package/es/tabs/TabsTitle.mjs +1 -0
  34. package/es/tabs/index.css +1 -1
  35. package/es/text-ellipsis/TextEllipsis.d.ts +13 -0
  36. package/es/text-ellipsis/TextEllipsis.mjs +15 -4
  37. package/es/text-ellipsis/index.d.ts +9 -0
  38. package/es/text-ellipsis/style/index.mjs +7 -0
  39. package/es/toast/index.css +1 -1
  40. package/lib/calendar/Calendar.js +1 -2
  41. package/lib/date-time-picker/DateTimePicker.js +15 -0
  42. package/lib/dialog/index.css +1 -1
  43. package/lib/drawer-select/DrawerSelect.d.ts +17 -1
  44. package/lib/drawer-select/DrawerSelect.js +9 -4
  45. package/lib/drawer-select/index.d.ts +11 -0
  46. package/lib/dropdown-item/DropdownItem.d.ts +26 -0
  47. package/lib/dropdown-item/DropdownItem.js +10 -8
  48. package/lib/dropdown-item/index.d.ts +18 -0
  49. package/lib/dropdown-menu/DropdownMenu.js +4 -1
  50. package/lib/dropdown-menu/index.css +1 -1
  51. package/lib/empty/Empty.js +5 -1
  52. package/lib/empty/Images.d.ts +14 -11
  53. package/lib/empty/Images.js +89 -89
  54. package/lib/empty/types.d.ts +1 -0
  55. package/lib/hierarchy-select/index.css +1 -1
  56. package/lib/index.css +1 -1
  57. package/lib/index.d.ts +1 -1
  58. package/lib/index.js +1 -1
  59. package/lib/media-picker/MediaPicker.d.ts +18 -1
  60. package/lib/media-picker/MediaPicker.js +70 -14
  61. package/lib/media-picker/index.d.ts +13 -1
  62. package/lib/media-picker/type.d.ts +3 -0
  63. package/lib/media-picker/util/wx-util.d.ts +4 -0
  64. package/lib/media-picker/util/wx-util.js +86 -0
  65. package/lib/popup/index.css +1 -1
  66. package/lib/slider/Slider.js +15 -16
  67. package/lib/slider/index.css +1 -1
  68. package/lib/table/Table.d.ts +13 -0
  69. package/lib/table/Table.js +37 -6
  70. package/lib/table/index.css +1 -1
  71. package/lib/table/index.d.ts +9 -0
  72. package/lib/table/style/index.js +6 -0
  73. package/lib/tabs/TabsTitle.js +1 -0
  74. package/lib/tabs/index.css +1 -1
  75. package/lib/text-ellipsis/TextEllipsis.d.ts +13 -0
  76. package/lib/text-ellipsis/TextEllipsis.js +13 -2
  77. package/lib/text-ellipsis/index.d.ts +9 -0
  78. package/lib/text-ellipsis/style/index.js +7 -0
  79. package/lib/toast/index.css +1 -1
  80. package/lib/web-types.json +1 -1
  81. package/lib/zartui.cjs.js +741 -566
  82. package/lib/zartui.es.js +741 -566
  83. package/lib/zartui.js +741 -566
  84. package/lib/zartui.min.js +1 -1
  85. package/package.json +6 -6
@@ -6,3 +6,4 @@ export type EmptyThemeVars = {
6
6
  emptyDescriptionColor?: string;
7
7
  emptyBottomMarginTop?: string;
8
8
  };
9
+ export type EmptySvgIdFn = (num: number | string) => string;
@@ -1 +1 @@
1
- :root{--zt-hierarchy-select-color: var(--zt-gray-5);--zt-hierarchy-select-duration: var(--zt-duration-fast);--zt-hierarchy-select-round-icon-border: 1px solid rgba(45, 75, 115, .13);--zt-hierarchy-select-round-icon-box-shadow: -1px -1px 2px 0 #ffffff, 0 0 3px 0 rgba(45, 75, 115, .2);--zt-hierarchy-select-round-icon-background: linear-gradient(135deg, #e6ebf0 0%, #ffffff 100%);--zt-hierarchy-select-checked-icon-color: var(--zt-primary-color);--zt-hierarchy-select-checked-icon-shadow: inset 1px 1px 2px 0 rgba(0, 0, 0, .2);--zt-hierarchy-select-checked-icon-border: 1px solid rgba(255, 255, 255, .5);--zt-hierarchy-select-disabled-icon-shadow: -1px -1px 2px 0 #fff, 0 0 3px 0 rgba(45, 75, 115, .2);--zt-hierarchy-select-disabled-icon-border: 1px solid rgba(255, 255, 255, .5);--zt-hierarchy-select-disabled-checked-icon-opacity: .4;--zt-hierarchy-select-disabled-icon-background: linear-gradient(134deg, #e1e6eb 0%, #e5edf5 100%);--zt-hierarchy-breadcrumb-line-height: 44px;--zt-hierarchy-select-sub-icon-gap: 4px}:root[zt-theme-size=large]{--zt-hierarchy-breadcrumb-line-height: 56px}.zt-hierarchy-select__score-item{position:relative;display:flex;justify-content:space-between;align-items:center;padding:var(--zt-padding-sm) 0 var(--zt-padding-sm) var(--zt-padding-md);background-color:var(--zt-background-popup)}.zt-hierarchy-select__score-item:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:0;bottom:0;left:var(--zt-padding-md);border-bottom:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-hierarchy-select__item-content{flex:1;margin-right:var(--zt-padding-md);font-size:var(--zt-font-size-md);color:var(--zt-gray);line-height:var(--zt-line-height-md);word-break:break-all}.zt-hierarchy-select__item-content--selected,.zt-hierarchy-select__item-content span{color:var(--zt-primary-color)}.zt-hierarchy-select__disable .zt-hierarchy-select__sub-level,.zt-hierarchy-select__disable-parent .zt-hierarchy-select__sub-level,.zt-hierarchy-select__disable .zt-hierarchy-select__item-content,.zt-hierarchy-select__disable-parent .zt-hierarchy-select__item-content{opacity:.4}.zt-hierarchy-select__item-nav{padding:0 16px;border-left:rgba(0,0,0,.1) 1px solid}.zt-hierarchy-select__svg-defs-path-fill{fill:var(--zt-primary-color)}.zt-hierarchy-select__sub-level{display:flex;align-items:center;gap:var(--zt-hierarchy-select-sub-icon-gap)}.zt-hierarchy-select__sub-level span{color:var(--zt-primary-color);font-size:var(--zt-font-size-md)}.zt-hierarchy-select__sub-level--disable{opacity:.2}.zt-hierarchy-select__sub-icon{line-height:.75}.zt-hierarchy-select__svg-sub-icon{width:var(--zt-font-size-md);height:var(--zt-font-size-md)}.zt-hierarchy-select__multiple-button{margin-right:8px;display:flex;justify-content:center;align-items:center}.zt-hierarchy-select__icon{font-size:var(--zt-font-size-lg);cursor:pointer;box-sizing:border-box}.zt-hierarchy-select__icon .zt-icon{display:flex;justify-content:center;align-items:center;color:transparent;text-align:center;width:18px;height:18px;border:1px solid var(--zt-hierarchy-select-color);transition-duration:var(--zt-hierarchy-select-duration);transition-property:color,border-color,background-color}.zt-hierarchy-select__icon--round .zt-icon{border-radius:100%;border:var(--zt-hierarchy-select-round-icon-border);box-shadow:var(--zt-hierarchy-select-round-icon-box-shadow);background:var(--zt-hierarchy-select-round-icon-background)}.zt-hierarchy-select__icon--indeterminate .zt-icon{color:var(--zt-white);background:var(--zt-checkbox-checked-icon-color);box-shadow:var(--zt-checkbox-checked-icon-shadow);border:var(--zt-checkbox-checked-icon-border)}.zt-hierarchy-select__icon--checked .zt-icon{color:var(--zt-white);background:var(--zt-hierarchy-select-checked-icon-color);box-shadow:var(--zt-hierarchy-select-checked-icon-shadow);border:var(--zt-hierarchy-select-checked-icon-border)}.zt-hierarchy-select__icon--disabled{cursor:not-allowed}.zt-hierarchy-select__icon--disabled .zt-icon{border:var(--zt-hierarchy-select-disabled-icon-border);box-shadow:var(--zt-hierarchy-select-disabled-icon-shadow);background:var(--zt-hierarchy-select-disabled-icon-background)}.zt-hierarchy-select__icon--disabled.zt-hierarchy-select__icon--checked .zt-icon{opacity:var(--zt-hierarchy-select-disabled-checked-icon-opacity);background:var(--zt-primary-color);color:var(--zt-white)}.zt-breadcrumb{padding:0 16px}.zt-breadcrumb__list{box-sizing:border-box;height:var(--zt-hierarchy-breadcrumb-line-height);display:flex;align-items:center;color:var(--zt-primary-color);width:100%;overflow-x:scroll;font-size:var(--zt-font-size-lg)}.zt-breadcrumb__list::-webkit-scrollbar{width:0;height:0}.zt-breadcrumb__default{display:flex;white-space:nowrap}.zt-breadcrumb__item{height:44px;display:flex;align-items:center;white-space:nowrap}.zt-breadcrumb__item:last-child{color:var(--zt-gray)}.zt-breadcrumb__icon{padding:0 4px}
1
+ :root{--zt-hierarchy-select-color: var(--zt-gray-5);--zt-hierarchy-select-duration: var(--zt-duration-fast);--zt-hierarchy-select-round-icon-border: 1px solid rgba(45, 75, 115, .13);--zt-hierarchy-select-round-icon-box-shadow: -1px -1px 2px 0 #ffffff, 0 0 3px 0 rgba(45, 75, 115, .2);--zt-hierarchy-select-round-icon-background: linear-gradient(135deg, #e6ebf0 0%, #ffffff 100%);--zt-hierarchy-select-checked-icon-color: var(--zt-primary-color);--zt-hierarchy-select-checked-icon-shadow: inset 1px 1px 2px 0 rgba(0, 0, 0, .2);--zt-hierarchy-select-checked-icon-border: 1px solid rgba(255, 255, 255, .5);--zt-hierarchy-select-disabled-icon-shadow: -1px -1px 2px 0 #fff, 0 0 3px 0 rgba(45, 75, 115, .2);--zt-hierarchy-select-disabled-icon-border: 1px solid rgba(255, 255, 255, .5);--zt-hierarchy-select-disabled-checked-icon-opacity: .4;--zt-hierarchy-select-disabled-icon-background: linear-gradient(134deg, #e1e6eb 0%, #e5edf5 100%);--zt-hierarchy-breadcrumb-line-height: 44px;--zt-hierarchy-select-sub-icon-gap: 4px}:root[zt-theme-size=large]{--zt-hierarchy-breadcrumb-line-height: 56px}.zt-hierarchy-select__score-item{position:relative;display:flex;justify-content:space-between;align-items:center;padding:var(--zt-padding-sm) 0 var(--zt-padding-sm) var(--zt-padding-md);background-color:var(--zt-background-popup)}.zt-hierarchy-select__score-item:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:0;bottom:0;left:var(--zt-padding-md);border-bottom:1px solid var(--zt-border-color);transform:scaleY(.5)}.zt-hierarchy-select__item-content{flex:1;margin-right:var(--zt-padding-md);font-size:var(--zt-font-size-md);color:var(--zt-gray);line-height:var(--zt-line-height-md);word-break:break-all}.zt-hierarchy-select__item-content--selected,.zt-hierarchy-select__item-content span{color:var(--zt-primary-color)}.zt-hierarchy-select__disable .zt-hierarchy-select__sub-level,.zt-hierarchy-select__disable-parent .zt-hierarchy-select__sub-level,.zt-hierarchy-select__disable .zt-hierarchy-select__item-content,.zt-hierarchy-select__disable-parent .zt-hierarchy-select__item-content{opacity:.4}.zt-hierarchy-select__item-nav{padding:0 16px;border-left:rgba(0,0,0,.1) 1px solid}.zt-hierarchy-select__svg-defs-path-fill{fill:var(--zt-primary-color)}.zt-hierarchy-select__sub-level{display:flex;align-items:center;gap:var(--zt-hierarchy-select-sub-icon-gap)}.zt-hierarchy-select__sub-level span{color:var(--zt-primary-color);font-size:var(--zt-font-size-md)}.zt-hierarchy-select__sub-level--disable{opacity:.2}.zt-hierarchy-select__sub-icon{line-height:.75}.zt-hierarchy-select__svg-sub-icon{width:var(--zt-font-size-md);height:var(--zt-font-size-md)}.zt-hierarchy-select__multiple-button{margin-right:8px;display:flex;justify-content:center;align-items:center}.zt-hierarchy-select__icon{font-size:var(--zt-font-size-lg);cursor:pointer;box-sizing:border-box}.zt-hierarchy-select__icon .zt-icon{display:flex;justify-content:center;align-items:center;color:transparent;text-align:center;width:18px;height:18px;border:1px solid var(--zt-hierarchy-select-color);transition-duration:var(--zt-hierarchy-select-duration);transition-property:color,border-color,background-color}.zt-hierarchy-select__icon--round .zt-icon{border-radius:100%;border:var(--zt-hierarchy-select-round-icon-border);box-shadow:var(--zt-hierarchy-select-round-icon-box-shadow);background:var(--zt-hierarchy-select-round-icon-background)}.zt-hierarchy-select__icon--indeterminate .zt-icon{color:var(--zt-white);background:var(--zt-checkbox-checked-icon-color);box-shadow:var(--zt-checkbox-checked-icon-shadow);border:var(--zt-checkbox-checked-icon-border)}.zt-hierarchy-select__icon--checked .zt-icon{color:var(--zt-white);background:var(--zt-hierarchy-select-checked-icon-color);box-shadow:var(--zt-hierarchy-select-checked-icon-shadow);border:var(--zt-hierarchy-select-checked-icon-border)}.zt-hierarchy-select__icon--disabled{cursor:not-allowed}.zt-hierarchy-select__icon--disabled .zt-icon{border:var(--zt-hierarchy-select-disabled-icon-border);box-shadow:var(--zt-hierarchy-select-disabled-icon-shadow);background:var(--zt-hierarchy-select-disabled-icon-background)}.zt-hierarchy-select__icon--disabled.zt-hierarchy-select__icon--checked .zt-icon{opacity:var(--zt-hierarchy-select-disabled-checked-icon-opacity);background:var(--zt-primary-color);color:var(--zt-white)}.zt-breadcrumb{padding:0 16px}.zt-breadcrumb__list{box-sizing:border-box;height:var(--zt-hierarchy-breadcrumb-line-height);display:flex;align-items:center;color:var(--zt-primary-color);width:100%;overflow-x:scroll;font-size:var(--zt-font-size-lg)}.zt-breadcrumb__list::-webkit-scrollbar{width:0;height:0}.zt-breadcrumb__default{display:flex;white-space:nowrap}.zt-breadcrumb__item{height:44px;display:flex;align-items:center;white-space:nowrap}.zt-breadcrumb__item:last-child{color:var(--zt-gray)}.zt-breadcrumb__icon{padding:0 4px}.zt-theme-dark{--zt-hierarchy-select-round-icon-box-shadow: none;--zt-hierarchy-select-disabled-icon-shadow: none;--zt-hierarchy-select-round-icon-background: rgba(255, 255, 255, .04);--zt-hierarchy-select-round-icon-border: 1px solid var(--zt-gray);--zt-hierarchy-select-disabled-icon-background: var(--zt-gray-a2)}
package/es/index.d.ts CHANGED
@@ -81,4 +81,4 @@ declare namespace _default {
81
81
  }
82
82
  export default _default;
83
83
  export function install(app: any): void;
84
- export const version: "3.1.18";
84
+ export const version: "3.1.20";
package/es/index.mjs CHANGED
@@ -74,7 +74,7 @@ import { TimePicker } from "./time-picker/index.mjs";
74
74
  import { Timeline } from "./timeline/index.mjs";
75
75
  import { Toast } from "./toast/index.mjs";
76
76
  import { Uploader } from "./uploader/index.mjs";
77
- const version = "3.1.18";
77
+ const version = "3.1.20";
78
78
  function install(app) {
79
79
  const components = [
80
80
  ActionSheet,
@@ -1,5 +1,5 @@
1
1
  import { ExtractPropTypes, PropType } from 'vue';
2
- import type { Media, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview } from './type';
2
+ import type { Media, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType } from './type';
3
3
  declare const mediaPickerProps: {
4
4
  disabled: BooleanConstructor;
5
5
  showTitle: BooleanConstructor;
@@ -72,6 +72,11 @@ declare const mediaPickerProps: {
72
72
  beforeRead: PropType<MediaBeforeRead>;
73
73
  afterRead: PropType<MediaAfterRead>;
74
74
  beforeDelete: PropType<MediaBeforeDelete>;
75
+ useWx: BooleanConstructor;
76
+ imageSizeType: {
77
+ type: PropType<MediaSizeType>;
78
+ default: MediaSizeType;
79
+ };
75
80
  };
76
81
  export type MediaPickerProps = ExtractPropTypes<typeof mediaPickerProps>;
77
82
  declare const _default: import("vue").DefineComponent<{
@@ -146,6 +151,11 @@ declare const _default: import("vue").DefineComponent<{
146
151
  beforeRead: PropType<MediaBeforeRead>;
147
152
  afterRead: PropType<MediaAfterRead>;
148
153
  beforeDelete: PropType<MediaBeforeDelete>;
154
+ useWx: BooleanConstructor;
155
+ imageSizeType: {
156
+ type: PropType<MediaSizeType>;
157
+ default: MediaSizeType;
158
+ };
149
159
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:mediaList" | "delete")[], "update:mediaList" | "delete", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
150
160
  disabled: BooleanConstructor;
151
161
  showTitle: BooleanConstructor;
@@ -218,6 +228,11 @@ declare const _default: import("vue").DefineComponent<{
218
228
  beforeRead: PropType<MediaBeforeRead>;
219
229
  afterRead: PropType<MediaAfterRead>;
220
230
  beforeDelete: PropType<MediaBeforeDelete>;
231
+ useWx: BooleanConstructor;
232
+ imageSizeType: {
233
+ type: PropType<MediaSizeType>;
234
+ default: MediaSizeType;
235
+ };
221
236
  }>> & {
222
237
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
223
238
  onDelete?: ((...args: any[]) => any) | undefined;
@@ -242,5 +257,7 @@ declare const _default: import("vue").DefineComponent<{
242
257
  allowTakeAudio: boolean;
243
258
  allowPickAudio: boolean;
244
259
  allowPickFile: boolean;
260
+ useWx: boolean;
261
+ imageSizeType: MediaSizeType;
245
262
  }, {}>;
246
263
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
2
- import { createNamespace, isDef, isPromise, makeArrayProp, makeNumberProp, makeStringProp, truthProp } from "../utils/index.mjs";
2
+ import { createNamespace, isDef, isPromise, isWeixin, makeArrayProp, makeNumberProp, makeStringProp, truthProp } from "../utils/index.mjs";
3
3
  import { computed, defineComponent, ref } from "vue";
4
4
  import { showFailToast, showLoadingToast, closeToast } from "../toast/index.mjs";
5
5
  import DeleteIcon from "./image/DeleteIcon.mjs";
@@ -25,6 +25,7 @@ import { CompressOptions } from "./watermark/compress-options.mjs";
25
25
  import { checkWatermarkConfigSupported } from "./watermark/watermark.mjs";
26
26
  import { ImageProcessor } from "./watermark/image-processor.mjs";
27
27
  import { isEmptyValue } from "../field/utils.mjs";
28
+ import { wxUploadImage } from "./util/wx-util.mjs";
28
29
  const [name, bem] = createNamespace("media-picker");
29
30
  const FILE_SIZE_LIMIT = 100;
30
31
  const mediaPickerProps = {
@@ -74,7 +75,10 @@ const mediaPickerProps = {
74
75
  // 文件读取完成后的回调函数,获取到对应的 media 对象
75
76
  afterRead: Function,
76
77
  // 文件删除前的回调函数,返回 false 可终止文件读取,支持返回 Promise
77
- beforeDelete: Function
78
+ beforeDelete: Function,
79
+ // 是否强制使用微信
80
+ useWx: Boolean,
81
+ imageSizeType: makeStringProp("compressed")
78
82
  };
79
83
  var stdin_default = defineComponent({
80
84
  name,
@@ -130,10 +134,17 @@ var stdin_default = defineComponent({
130
134
  return;
131
135
  }
132
136
  if (mediaType === "photo") {
133
- if (mediaAddType === "take") {
134
- triggerHiddenInput(cameraInputRef.value);
135
- } else if (mediaAddType === "pick") {
136
- triggerHiddenInput(imageInputRef.value);
137
+ if (props.useWx && isWeixin() && window.wx) {
138
+ const type = mediaAddType === "take" ? "camera" : "album";
139
+ wxUploadImage(type).then((newMedias) => {
140
+ emit("update:mediaList", [...props.mediaList, ...newMedias]);
141
+ });
142
+ } else {
143
+ if (mediaAddType === "take") {
144
+ triggerHiddenInput(cameraInputRef.value);
145
+ } else if (mediaAddType === "pick") {
146
+ triggerHiddenInput(imageInputRef.value);
147
+ }
137
148
  }
138
149
  } else if (mediaType === "video") {
139
150
  if (mediaAddType === "take") {
@@ -275,6 +286,47 @@ var stdin_default = defineComponent({
275
286
  message: ""
276
287
  };
277
288
  };
289
+ const transformImageFilesWithoutCompress = (files) => {
290
+ const mediaList = files.map((file) => {
291
+ return file2DataURL(file).then((base64) => {
292
+ const media = {
293
+ showSrc: base64,
294
+ type: "photo",
295
+ file,
296
+ // 需要以原始file的信息作为唯一标识
297
+ uniqueCode: getFileUniqueCode(file),
298
+ lastModified: file.lastModified,
299
+ fileSize: file.size,
300
+ // 修改后大小,水印,压缩等
301
+ fileName: file.name,
302
+ // 修改后名称
303
+ deletable: true,
304
+ message: "",
305
+ originalName: file.name,
306
+ // 原始名称
307
+ originalSize: file.size
308
+ // 原始大小
309
+ };
310
+ return media;
311
+ });
312
+ });
313
+ showLoadingToast({
314
+ message: "\u5904\u7406\u4E2D...",
315
+ forbidClick: true,
316
+ duration: 0
317
+ });
318
+ return Promise.all(mediaList).then((medias) => {
319
+ const _medias = [];
320
+ medias.forEach((media) => {
321
+ if (isDef(media)) {
322
+ _medias.push(media);
323
+ }
324
+ });
325
+ return _medias;
326
+ }).finally(() => {
327
+ closeToast();
328
+ });
329
+ };
278
330
  const transformImageFiles = (files) => {
279
331
  const promisesTodo = [];
280
332
  const resizeOptions = new ResizeOptions(props.maxImageSideLength);
@@ -359,7 +411,7 @@ var stdin_default = defineComponent({
359
411
  if (imageFiles.length === 0) {
360
412
  promise = Promise.resolve([]);
361
413
  } else {
362
- promise = transformImageFiles(imageFiles);
414
+ promise = props.imageSizeType === "original" ? transformImageFilesWithoutCompress(imageFiles) : transformImageFiles(imageFiles);
363
415
  }
364
416
  promise.then((medias) => {
365
417
  if (medias && medias.length > 0) {
@@ -569,14 +621,7 @@ var stdin_default = defineComponent({
569
621
  emit("delete", media, index);
570
622
  };
571
623
  const renderMediaThumbnail = (media) => {
572
- const thumbnailUrl = media.showSrc || media.url;
573
- if (thumbnailUrl) {
574
- return _createVNode(ZtImage, {
575
- "src": thumbnailUrl,
576
- "fit": "cover",
577
- "radius": "4"
578
- }, null);
579
- } else if (media.type === "video") {
624
+ if (media.type === "video") {
580
625
  return _createVNode(DefaultVideoIcon, {
581
626
  "class": bem("thumbnail")
582
627
  }, null);
@@ -588,6 +633,17 @@ var stdin_default = defineComponent({
588
633
  return _createVNode(DefaultFileIcon, {
589
634
  "class": bem("thumbnail")
590
635
  }, null);
636
+ } else if (media.type === "photo") {
637
+ const thumbnailUrl = media.showSrc || media.url;
638
+ return _createVNode(ZtImage, {
639
+ "src": thumbnailUrl,
640
+ "fit": "cover",
641
+ "radius": "4"
642
+ }, null);
643
+ } else {
644
+ return _createVNode(DefaultFileIcon, {
645
+ "class": bem("thumbnail")
646
+ }, null);
591
647
  }
592
648
  };
593
649
  const renderMediaLabel = (media) => {
@@ -60,6 +60,11 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
60
60
  beforeRead: import("vue").PropType<import("./type").MediaBeforeRead>;
61
61
  afterRead: import("vue").PropType<import("./type").MediaAfterRead>;
62
62
  beforeDelete: import("vue").PropType<import("./type").MediaBeforeDelete>;
63
+ useWx: BooleanConstructor;
64
+ imageSizeType: {
65
+ type: import("vue").PropType<import("./type").MediaSizeType>;
66
+ default: import("./type").MediaSizeType;
67
+ };
63
68
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:mediaList" | "delete")[], "update:mediaList" | "delete", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
64
69
  disabled: BooleanConstructor;
65
70
  showTitle: BooleanConstructor;
@@ -122,6 +127,11 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
122
127
  beforeRead: import("vue").PropType<import("./type").MediaBeforeRead>;
123
128
  afterRead: import("vue").PropType<import("./type").MediaAfterRead>;
124
129
  beforeDelete: import("vue").PropType<import("./type").MediaBeforeDelete>;
130
+ useWx: BooleanConstructor;
131
+ imageSizeType: {
132
+ type: import("vue").PropType<import("./type").MediaSizeType>;
133
+ default: import("./type").MediaSizeType;
134
+ };
125
135
  }>> & {
126
136
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
127
137
  onDelete?: ((...args: any[]) => any) | undefined;
@@ -146,10 +156,12 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
146
156
  allowTakeAudio: boolean;
147
157
  allowPickAudio: boolean;
148
158
  allowPickFile: boolean;
159
+ useWx: boolean;
160
+ imageSizeType: import("./type").MediaSizeType;
149
161
  }, {}>>;
150
162
  export default MediaPicker;
151
163
  export type { MediaPickerProps } from './MediaPicker';
152
- export type { Media, MediaType, MediaAddType, MediaUploadStatus, MediaPreview, MediaPick, MediaBeforeRead, MediaAfterRead, MediaBeforeDelete, MediaPickerThemeVars, } from './type';
164
+ export type { Media, MediaType, MediaAddType, MediaUploadStatus, MediaPreview, MediaPick, MediaBeforeRead, MediaAfterRead, MediaBeforeDelete, MediaPickerThemeVars, MediaSizeType, } from './type';
153
165
  export { defaultMedia } from './type';
154
166
  declare module 'vue' {
155
167
  interface GlobalComponents {
@@ -1,6 +1,8 @@
1
1
  export type MediaType = 'photo' | 'audio' | 'video' | 'file';
2
2
  export type MediaAddType = 'take' | 'pick' | 'take_and_pick';
3
3
  export type MediaUploadStatus = 'uploading' | 'done' | 'failed';
4
+ export type WxMediaType = 'camera' | 'album';
5
+ export type MediaSizeType = 'original' | 'compressed';
4
6
  export type Media = {
5
7
  file?: File;
6
8
  url?: string;
@@ -18,6 +20,7 @@ export type Media = {
18
20
  mediaShot?: string;
19
21
  extra?: object;
20
22
  label?: string;
23
+ wxServerId?: string;
21
24
  };
22
25
  export declare const defaultMedia: {
23
26
  uniqueCode: string;
@@ -0,0 +1,4 @@
1
+ import { Media, WxMediaType } from '../type';
2
+ export declare const chooseImage: (type: WxMediaType) => Promise<any>;
3
+ export declare const uploadImage: (localId: string) => Promise<string>;
4
+ export declare const wxUploadImage: (type: WxMediaType) => Promise<Media[]>;
@@ -0,0 +1,67 @@
1
+ const chooseImage = (type) => {
2
+ return new Promise((resolve, reject) => {
3
+ window.wx.chooseImage({
4
+ count: 1,
5
+ sizeType: ["original", "compressed"],
6
+ // 可以指定是原图还是压缩图,默认二者都有
7
+ sourceType: [type],
8
+ // 可以指定来源是相册还是相机,默认二者都有
9
+ success: function({ localIds }) {
10
+ resolve(localIds);
11
+ },
12
+ fail: function(res) {
13
+ reject(res);
14
+ }
15
+ });
16
+ });
17
+ };
18
+ const uploadImage = (localId) => {
19
+ return new Promise((resolve, reject) => {
20
+ window.wx.uploadImage({
21
+ localId,
22
+ // 需要上传的图片的本地ID,由chooseImage接口获得
23
+ isShowProgressTips: 1,
24
+ // 默认为1,显示进度提示
25
+ success: function({ serverId }) {
26
+ resolve(serverId);
27
+ },
28
+ fail: function(res) {
29
+ reject(res);
30
+ }
31
+ });
32
+ });
33
+ };
34
+ const wxUploadImage = (type) => {
35
+ return new Promise((resolve) => {
36
+ const newMedias = [];
37
+ chooseImage(type).then((localIds) => {
38
+ const time = (/* @__PURE__ */ new Date()).getTime().toString();
39
+ const media = {
40
+ type: "photo",
41
+ uniqueCode: time,
42
+ fileSize: 0,
43
+ fileName: time,
44
+ originalName: time,
45
+ originalSize: 0,
46
+ lastModified: 0,
47
+ deletable: true
48
+ };
49
+ localIds.forEach((localId) => {
50
+ media.showSrc = localId;
51
+ media.url = localId;
52
+ uploadImage(localId).then((serverId) => {
53
+ media.wxServerId = serverId;
54
+ newMedias.push(media);
55
+ if (newMedias.length === localIds.length) {
56
+ resolve(newMedias);
57
+ }
58
+ });
59
+ });
60
+ });
61
+ });
62
+ };
63
+ export {
64
+ chooseImage,
65
+ uploadImage,
66
+ wxUploadImage
67
+ };
@@ -1 +1 @@
1
- :root{--zt-popup-background: var(--zt-background-popup);--zt-popup-transition: transform var(--zt-duration-base);--zt-popup-round-radius: 16px;--zt-popup-close-icon-color: var(--zt-gray-a6);--zt-popup-close-icon-margin: 16px;--zt-popup-close-icon-z-index: 1}.zt-overflow-hidden{overflow:hidden!important}.zt-popup{position:fixed;max-height:100%;overflow-y:auto;background:var(--zt-popup-background);transition:var(--zt-popup-transition);-webkit-overflow-scrolling:touch}.zt-popup__slider{position:fixed;width:100%;bottom:0;left:0;border-radius:16px 16px 0 0;background-color:var(--zt-popup-background)}.zt-popup__slider-title{height:40px;text-align:center}.zt-popup__slider-bar{display:inline-block;width:32px;height:4px;transform:scaleY(-1);background:rgba(45,75,115,.2);border-radius:3px}.zt-popup__slider-content{overflow-y:auto}.zt-popup--center{top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.zt-popup--center.zt-popup--round{border-radius:var(--zt-popup-round-radius)}.zt-popup--top{top:0;left:0;width:100%}.zt-popup--top.zt-popup--round{border-radius:0 0 var(--zt-popup-round-radius) var(--zt-popup-round-radius)}.zt-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.zt-popup--right.zt-popup--round{border-radius:var(--zt-popup-round-radius) 0 0 var(--zt-popup-round-radius)}.zt-popup--bottom{bottom:0;left:0;width:100%}.zt-popup--bottom.zt-popup--round{border-radius:var(--zt-popup-round-radius) var(--zt-popup-round-radius) 0 0}.zt-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.zt-popup--left.zt-popup--round{border-radius:0 var(--zt-popup-round-radius) var(--zt-popup-round-radius) 0}.zt-popup-slide-top-enter-active,.zt-popup-slide-left-enter-active,.zt-popup-slide-right-enter-active,.zt-popup-slide-bottom-enter-active{transition-timing-function:var(--zt-ease-out)}.zt-popup-slide-top-leave-active,.zt-popup-slide-left-leave-active,.zt-popup-slide-right-leave-active,.zt-popup-slide-bottom-leave-active{transition-timing-function:var(--zt-ease-in)}.zt-popup-slide-top-enter-from,.zt-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.zt-popup-slide-right-enter-from,.zt-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.zt-popup-slide-bottom-enter-from,.zt-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.zt-popup-slide-left-enter-from,.zt-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.zt-popup__slider-icon{z-index:var(--zt-popup-close-icon-z-index);color:var(--zt-popup-close-icon-color);font-size:var(--zt-font-size-xxxl);cursor:pointer}.zt-popup__close-icon{position:absolute;z-index:var(--zt-popup-close-icon-z-index);color:var(--zt-popup-close-icon-color);font-size:var(--zt-font-size-xxxl)}.zt-popup__close-icon--top-left{top:var(--zt-popup-close-icon-margin);left:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--top-right{top:var(--zt-popup-close-icon-margin);right:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--bottom-left{bottom:var(--zt-popup-close-icon-margin);left:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--bottom-right{right:var(--zt-popup-close-icon-margin);bottom:var(--zt-popup-close-icon-margin)}
1
+ :root{--zt-popup-background: var(--zt-background-popup);--zt-popup-transition: transform var(--zt-duration-base);--zt-popup-round-radius: 16px;--zt-popup-close-icon-color: var(--zt-gray-a6);--zt-popup-close-icon-margin: 16px;--zt-popup-close-icon-z-index: 1}.zt-overflow-hidden{overflow:hidden!important}.zt-popup{position:fixed;max-height:100%;overflow-y:auto;background:var(--zt-popup-background);transition:var(--zt-popup-transition);-webkit-overflow-scrolling:touch}.zt-popup__slider{position:fixed;width:100%;bottom:0;left:0;border-radius:16px 16px 0 0;background-color:var(--zt-popup-background)}.zt-popup__slider-title{height:40px;text-align:center}.zt-popup__slider-bar{display:inline-block;width:32px;height:4px;transform:scaleY(-1);background:rgba(45,75,115,.2);border-radius:3px}.zt-popup__slider-content{overflow-y:auto}.zt-popup--center{top:50%;left:0;right:0;width:-webkit-fit-content;width:fit-content;max-width:calc(100vw - var(--zt-padding-md) * 2);margin:0 auto;transform:translateY(-50%)}.zt-popup--center.zt-popup--round{border-radius:var(--zt-popup-round-radius)}.zt-popup--top{top:0;left:0;width:100%}.zt-popup--top.zt-popup--round{border-radius:0 0 var(--zt-popup-round-radius) var(--zt-popup-round-radius)}.zt-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.zt-popup--right.zt-popup--round{border-radius:var(--zt-popup-round-radius) 0 0 var(--zt-popup-round-radius)}.zt-popup--bottom{bottom:0;left:0;width:100%}.zt-popup--bottom.zt-popup--round{border-radius:var(--zt-popup-round-radius) var(--zt-popup-round-radius) 0 0}.zt-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.zt-popup--left.zt-popup--round{border-radius:0 var(--zt-popup-round-radius) var(--zt-popup-round-radius) 0}.zt-popup-slide-top-enter-active,.zt-popup-slide-left-enter-active,.zt-popup-slide-right-enter-active,.zt-popup-slide-bottom-enter-active{transition-timing-function:var(--zt-ease-out)}.zt-popup-slide-top-leave-active,.zt-popup-slide-left-leave-active,.zt-popup-slide-right-leave-active,.zt-popup-slide-bottom-leave-active{transition-timing-function:var(--zt-ease-in)}.zt-popup-slide-top-enter-from,.zt-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.zt-popup-slide-right-enter-from,.zt-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.zt-popup-slide-bottom-enter-from,.zt-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.zt-popup-slide-left-enter-from,.zt-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.zt-popup__slider-icon{z-index:var(--zt-popup-close-icon-z-index);color:var(--zt-popup-close-icon-color);font-size:var(--zt-font-size-xxxl);cursor:pointer}.zt-popup__close-icon{position:absolute;z-index:var(--zt-popup-close-icon-z-index);color:var(--zt-popup-close-icon-color);font-size:var(--zt-font-size-xxxl)}.zt-popup__close-icon--top-left{top:var(--zt-popup-close-icon-margin);left:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--top-right{top:var(--zt-popup-close-icon-margin);right:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--bottom-left{bottom:var(--zt-popup-close-icon-margin);left:var(--zt-popup-close-icon-margin)}.zt-popup__close-icon--bottom-right{right:var(--zt-popup-close-icon-margin);bottom:var(--zt-popup-close-icon-margin)}
@@ -70,6 +70,12 @@ var stdin_default = defineComponent({
70
70
  }
71
71
  return "0%";
72
72
  };
73
+ const getPositionKey = () => {
74
+ if (props.vertical) {
75
+ return props.reverse ? "bottom" : "top";
76
+ }
77
+ return props.reverse ? "right" : "left";
78
+ };
73
79
  const barStyle = computed(() => {
74
80
  const mainAxis = props.vertical ? "height" : "width";
75
81
  const style = {
@@ -79,12 +85,6 @@ var stdin_default = defineComponent({
79
85
  if (dragStatus.value) {
80
86
  style.transition = "none";
81
87
  }
82
- const getPositionKey = () => {
83
- if (props.vertical) {
84
- return props.reverse ? "bottom" : "top";
85
- }
86
- return props.reverse ? "right" : "left";
87
- };
88
88
  style[getPositionKey()] = calcOffset();
89
89
  return style;
90
90
  });
@@ -206,13 +206,6 @@ var stdin_default = defineComponent({
206
206
  }
207
207
  dragStatus.value = "";
208
208
  };
209
- const getButtonClassName = (index) => {
210
- if (typeof index === "number") {
211
- const position = ["left", "right"];
212
- return bem(`button-wrapper`, position[index]);
213
- }
214
- return bem("button-wrapper", props.reverse ? "left" : "right");
215
- };
216
209
  const renderButtonContent = (value, index) => {
217
210
  const dragging = dragStatus.value === "dragging";
218
211
  if (typeof index === "number") {
@@ -242,10 +235,15 @@ var stdin_default = defineComponent({
242
235
  };
243
236
  const renderButton = (index) => {
244
237
  const current2 = typeof index === "number" ? props.modelValue[index] : props.modelValue;
238
+ const left = `${(current2 - Number(props.min)) * 100 / scope.value}%`;
239
+ const style = {
240
+ [getPositionKey()]: left,
241
+ transform: `translate(-${left},-50%)`
242
+ };
245
243
  return _createVNode("div", {
246
244
  "ref": slider[index != null ? index : 0],
247
245
  "role": "slider",
248
- "class": getButtonClassName(index),
246
+ "class": bem("button-wrapper"),
249
247
  "tabindex": props.disabled ? void 0 : 0,
250
248
  "aria-valuemin": props.min,
251
249
  "aria-valuenow": current2,
@@ -261,7 +259,8 @@ var stdin_default = defineComponent({
261
259
  },
262
260
  "onTouchend": onTouchEnd,
263
261
  "onTouchcancel": onTouchEnd,
264
- "onClick": stopPropagation
262
+ "onClick": stopPropagation,
263
+ "style": style
265
264
  }, [renderButtonContent(current2, index)]);
266
265
  };
267
266
  const renderTitle = () => {
@@ -326,7 +325,7 @@ var stdin_default = defineComponent({
326
325
  }, [_createVNode("div", {
327
326
  "class": bem("bar"),
328
327
  "style": barStyle.value
329
- }, [renderButtons()])]))]);
328
+ }, null), renderButtons()]))]);
330
329
  }
331
330
  });
332
331
  export {
@@ -1 +1 @@
1
- :root,:host{--zt-slider-active-background: linear-gradient(90deg, var(--zt-primary-color-light) 0%, var(--zt-primary-color) 100%);--zt-slider-inactive-background: var(--zt-gray-a04);--zt-slider-disabled-opacity: var(--zt-disabled-opacity);--zt-slider-bar-height: var(--zt-line-height-xs);--zt-slider-button-width: var(--zt-font-size-lg);--zt-slider-button-height: var(--zt-font-size-lg);--zt-slider-button-radius: 50%;--zt-slider-vertical-gap: 4px;--zt-slider-horizontal-gap: 12px;--zt-slider-button-background: linear-gradient(180deg, rgb(var(--zt-primary-color-r), calc(var(--zt-primary-color-g) + 50), var(--zt-primary-color-b)) 0%, var(--zt-primary-color) 100%);--zt-slider-button-shadow: 0 2px 4px 0 var(--zt-primary-color-a2);--zt-slider-button-border-color: var(--zt-white)}:root[zt-theme-size=large],:host[zt-theme-size=large]{--zt-slider-horizontal-gap: 16px}.zt-theme-dark{--zt-slider-inactive-background: var(--zt-background-3)}.zt-slider__bar-wrapper{position:relative;width:100%;height:var(--zt-slider-bar-height);background:var(--zt-slider-inactive-background);border-radius:var(--zt-radius-max);cursor:pointer}.zt-slider__bar-wrapper:before{position:absolute;top:calc(var(--zt-padding-xs) * -1);right:0;bottom:calc(var(--zt-padding-xs) * -1);left:0;content:""}.zt-slider__bar-wrapper .zt-slider__bar{position:absolute;width:100%;height:100%;background:var(--zt-slider-active-background);border-radius:inherit;transition:all var(--zt-duration-fast)}.zt-slider__button{width:var(--zt-slider-button-width);height:var(--zt-slider-button-height);background:var(--zt-slider-button-background);border-radius:var(--zt-slider-button-radius);box-shadow:var(--zt-slider-button-shadow);border:1px solid var(--zt-slider-button-border-color)}.zt-slider__button-wrapper{position:absolute;cursor:-webkit-grab;cursor:grab;top:50%}.zt-slider__button-wrapper--right{right:0;transform:translate3d(50%,-50%,0)}.zt-slider__button-wrapper--left{left:0;transform:translate3d(-50%,-50%,0)}.zt-slider--disabled{cursor:not-allowed;opacity:var(--zt-slider-disabled-opacity)}.zt-slider--disabled .zt-slider__button-wrapper{cursor:not-allowed}.zt-slider--horizontal{display:flex;align-items:center;gap:var(--zt-slider-horizontal-gap)}.zt-slider--horizontal .zt-slider__title,.zt-slider--horizontal .zt-slider__percent{font-size:var(--zt-font-size-md);color:var(--zt-text-color);line-height:var(--zt-line-height-md);word-break:break-all}.zt-slider--horizontal .zt-slider__title{font-weight:600;max-width:50%}.zt-slider--horizontal .zt-slider__percent{font-weight:400;max-width:20%;min-width:2em;text-align:right}.zt-slider--vertical{width:100%;display:flex;flex-direction:column;gap:var(--zt-slider-vertical-gap)}.zt-slider--vertical .zt-slider__title,.zt-slider--vertical .zt-slider__percent{opacity:.8;font-weight:400;font-size:var(--zt-font-size-sm);color:var(--zt-text-color);line-height:var(--zt-line-height-sm);word-break:break-all}.zt-slider--vertical .zt-slider__title{min-width:0;flex:1}.zt-slider--vertical .zt-slider__percent{max-width:50%}.zt-slider__title,.zt-slider__percent{flex-shrink:0}.zt-slider__direction-vertical-title{display:flex;justify-content:space-between;align-items:center;gap:var(--zt-slider-vertical-gap)}
1
+ :root,:host{--zt-slider-active-background: linear-gradient(90deg, var(--zt-primary-color-light) 0%, var(--zt-primary-color) 100%);--zt-slider-inactive-background: var(--zt-gray-a04);--zt-slider-disabled-opacity: var(--zt-disabled-opacity);--zt-slider-bar-height: var(--zt-line-height-xs);--zt-slider-button-width: var(--zt-font-size-lg);--zt-slider-button-height: var(--zt-font-size-lg);--zt-slider-button-radius: 50%;--zt-slider-vertical-gap: 4px;--zt-slider-horizontal-gap: 12px;--zt-slider-button-background: linear-gradient(180deg, rgb(var(--zt-primary-color-r), calc(var(--zt-primary-color-g) + 50), var(--zt-primary-color-b)) 0%, var(--zt-primary-color) 100%);--zt-slider-button-shadow: 0 2px 4px 0 var(--zt-primary-color-a2);--zt-slider-button-border-color: var(--zt-white)}:root[zt-theme-size=large],:host[zt-theme-size=large]{--zt-slider-horizontal-gap: 16px}.zt-theme-dark{--zt-slider-inactive-background: var(--zt-background-3)}.zt-slider__bar-wrapper{position:relative;width:100%;height:var(--zt-slider-bar-height);background:var(--zt-slider-inactive-background);border-radius:var(--zt-radius-max);cursor:pointer}.zt-slider__bar-wrapper:before{position:absolute;top:calc(var(--zt-padding-xs) * -1);right:0;bottom:calc(var(--zt-padding-xs) * -1);left:0;content:""}.zt-slider__bar-wrapper .zt-slider__bar{position:absolute;width:100%;height:100%;background:var(--zt-slider-active-background);border-radius:inherit;transition:all var(--zt-duration-fast)}.zt-slider__button{width:var(--zt-slider-button-width);height:var(--zt-slider-button-height);background:var(--zt-slider-button-background);border-radius:var(--zt-slider-button-radius);box-shadow:var(--zt-slider-button-shadow);border:1px solid var(--zt-slider-button-border-color)}.zt-slider__button-wrapper{position:absolute;cursor:-webkit-grab;cursor:grab;top:50%}.zt-slider--disabled{cursor:not-allowed;opacity:var(--zt-slider-disabled-opacity)}.zt-slider--disabled .zt-slider__button-wrapper{cursor:not-allowed}.zt-slider--horizontal{display:flex;align-items:center;gap:var(--zt-slider-horizontal-gap)}.zt-slider--horizontal .zt-slider__title,.zt-slider--horizontal .zt-slider__percent{font-size:var(--zt-font-size-md);color:var(--zt-text-color);line-height:var(--zt-line-height-md);word-break:break-all}.zt-slider--horizontal .zt-slider__title{font-weight:600;max-width:50%}.zt-slider--horizontal .zt-slider__percent{font-weight:400;max-width:20%;min-width:2em;text-align:right}.zt-slider--vertical{width:100%;display:flex;flex-direction:column;gap:var(--zt-slider-vertical-gap)}.zt-slider--vertical .zt-slider__title,.zt-slider--vertical .zt-slider__percent{opacity:.8;font-weight:400;font-size:var(--zt-font-size-sm);color:var(--zt-text-color);line-height:var(--zt-line-height-sm);word-break:break-all}.zt-slider--vertical .zt-slider__title{min-width:0;flex:1}.zt-slider--vertical .zt-slider__percent{max-width:50%}.zt-slider__title,.zt-slider__percent{flex-shrink:0}.zt-slider__direction-vertical-title{display:flex;justify-content:space-between;align-items:center;gap:var(--zt-slider-vertical-gap)}
@@ -44,6 +44,10 @@ export declare const tableProps: {
44
44
  type: BooleanConstructor;
45
45
  default: boolean;
46
46
  };
47
+ hideTableHead: {
48
+ type: BooleanConstructor;
49
+ default: boolean;
50
+ };
47
51
  };
48
52
  export type TableProps = ExtractPropTypes<typeof tableProps>;
49
53
  declare const _default: import("vue").DefineComponent<{
@@ -75,6 +79,10 @@ declare const _default: import("vue").DefineComponent<{
75
79
  type: BooleanConstructor;
76
80
  default: boolean;
77
81
  };
82
+ hideTableHead: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
78
86
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "sort"[], "sort", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
79
87
  headList: {
80
88
  type: import("vue").PropType<TableHeaderOption[]>;
@@ -104,6 +112,10 @@ declare const _default: import("vue").DefineComponent<{
104
112
  type: BooleanConstructor;
105
113
  default: boolean;
106
114
  };
115
+ hideTableHead: {
116
+ type: BooleanConstructor;
117
+ default: boolean;
118
+ };
107
119
  }>> & {
108
120
  onSort?: ((...args: any[]) => any) | undefined;
109
121
  }, {
@@ -114,5 +126,6 @@ declare const _default: import("vue").DefineComponent<{
114
126
  striped: boolean;
115
127
  emptyValue: string;
116
128
  skeletonRow: number;
129
+ hideTableHead: boolean;
117
130
  }, {}>;
118
131
  export default _default;
@@ -1,8 +1,9 @@
1
- import { createVNode as _createVNode } from "vue";
1
+ import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
2
2
  import { defineComponent, computed, onMounted, ref } from "vue";
3
3
  import { createNamespace, makeArrayProp, makeStringProp, truthProp } from "../utils/index.mjs";
4
4
  import { Icon } from "../icon/index.mjs";
5
5
  import { SortOrderEnum } from "./types.mjs";
6
+ import TextEllipsis from "../text-ellipsis/index.mjs";
6
7
  const [name, bem] = createNamespace("table");
7
8
  const tableProps = {
8
9
  headList: makeArrayProp(),
@@ -20,6 +21,10 @@ const tableProps = {
20
21
  border: {
21
22
  type: Boolean,
22
23
  default: false
24
+ },
25
+ hideTableHead: {
26
+ type: Boolean,
27
+ default: false
23
28
  }
24
29
  };
25
30
  var stdin_default = defineComponent({
@@ -27,7 +32,8 @@ var stdin_default = defineComponent({
27
32
  props: tableProps,
28
33
  emits: ["sort"],
29
34
  setup(props, {
30
- emit
35
+ emit,
36
+ slots
31
37
  }) {
32
38
  const sortOrder = ref("");
33
39
  const sortKey = ref("");
@@ -105,6 +111,8 @@ var stdin_default = defineComponent({
105
111
  pingedLeft.value = mergedScrollLeft > 0;
106
112
  };
107
113
  const getHead = (colData) => {
114
+ const headSlot = slots[`head-${colData.id}`];
115
+ const headEllipsisType = colData.sorter ? "flat" : "dialog";
108
116
  if ((colData == null ? void 0 : colData.colSpan) !== 0) {
109
117
  return _createVNode("th", {
110
118
  "class": bem("left", {
@@ -115,10 +123,14 @@ var stdin_default = defineComponent({
115
123
  left: colData.fixed ? colData.left : ""
116
124
  },
117
125
  "colspan": (colData == null ? void 0 : colData.colSpan) !== 1 ? colData == null ? void 0 : colData.colSpan : null
118
- }, [_createVNode("div", {
126
+ }, [headSlot ? headSlot(colData) : _createVNode("div", {
119
127
  "class": bem("head"),
120
128
  "onClick": () => onHeaderClick(colData)
121
- }, [_createVNode("span", {
129
+ }, [colData.ellipsis ? _createVNode(TextEllipsis, {
130
+ "content": colData.label,
131
+ "expandType": headEllipsisType,
132
+ "class": bem("head-label-ellipsis")
133
+ }, null) : _createVNode("span", {
122
134
  "class": bem("head-label")
123
135
  }, [colData.label]), colData.sorter ? _createVNode("span", {
124
136
  "class": bem("head-sort")
@@ -139,6 +151,15 @@ var stdin_default = defineComponent({
139
151
  }, null)]) : ""])]);
140
152
  }
141
153
  };
154
+ const getElement = (rowData, colData) => {
155
+ if (rowData[colData.key] && rowData[colData.key].id && slots[`data-${rowData[colData.key].id}`]) {
156
+ return slots[`data-${rowData[colData.key].id}`](rowData[colData.key]);
157
+ }
158
+ return colData.ellipsis ? _createVNode(TextEllipsis, {
159
+ "content": rowData[colData.key],
160
+ "expandType": "dialog"
161
+ }, null) : rowData[colData.key];
162
+ };
142
163
  const getBody = (rowData, rowIndex) => _createVNode("tr", null, [formatColumns.value.map((colData) => {
143
164
  let additionalCellProps;
144
165
  if (colData.customCell) {
@@ -155,7 +176,7 @@ var stdin_default = defineComponent({
155
176
  "colspan": (additionalCellProps == null ? void 0 : additionalCellProps.colSpan) !== 1 ? additionalCellProps == null ? void 0 : additionalCellProps.colSpan : null,
156
177
  "rowspan": (additionalCellProps == null ? void 0 : additionalCellProps.rowSpan) !== 1 ? additionalCellProps == null ? void 0 : additionalCellProps.rowSpan : null,
157
178
  "style": style
158
- }, [rowData[colData.key]]);
179
+ }, [getElement(rowData, colData)]);
159
180
  })]);
160
181
  const getCol = () => {
161
182
  const cols = [];
@@ -196,9 +217,9 @@ var stdin_default = defineComponent({
196
217
  "style": {
197
218
  width: item.width
198
219
  }
199
- }, null))]), _createVNode("thead", {
220
+ }, null))]), _withDirectives(_createVNode("thead", {
200
221
  "class": bem("thead")
201
- }, [_createVNode("tr", null, [formatColumns.value.map((colData) => getHead(colData))])]), _createVNode("tbody", {
222
+ }, [_createVNode("tr", null, [formatColumns.value.map((colData) => getHead(colData))])]), [[_vShow, !props.hideTableHead]]), _createVNode("tbody", {
202
223
  "class": bem("tbody")
203
224
  }, [props.dataList.map((rowData, rowIndex) => getBody(rowData, rowIndex))])])]);
204
225
  }
@@ -1 +1 @@
1
- :root{--zt-table-head-color: var(--zt-primary-color);--zt-table-head-height: 40px;--zt-table-head-background: #e6f5ff;--zt-table-body-height: 40px;--zt-table-body-color: var(--zt-gray);--zt-table-body-background: var(--zt-white);--zt-table-sort-default: var(--zt-gray-5);--zt-table-sort-active: var(--zt-primary-color)}:root[zt-theme-size=large]{--zt-table-head-height: 52px}.zt-base-hair{position:relative}.zt-base-hair:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table table{border-collapse:separate;border-spacing:0;width:100%;table-layout:auto;box-sizing:border-box}.zt-table--fixed{overflow:auto scroll}.zt-table--fixed::-webkit-scrollbar{width:0;height:0}.zt-table--fixed table{table-layout:fixed}.zt-table--thead-fixed{position:-webkit-sticky!important;position:-webkit-sticky!important;position:sticky!important;z-index:2}.zt-table--bordered{position:relative}.zt-table--bordered:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered:after{border-left-width:var(--zt-border-width)}.zt-table--bordered>table{position:relative}.zt-table--bordered>table:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered>table:after{border-top-width:var(--zt-border-width)}.zt-table--bordered .zt-table__thead>tr>th{position:relative}.zt-table--bordered .zt-table__thead>tr>th:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered .zt-table__thead>tr>th:after{border-right-width:var(--zt-border-width);border-bottom-width:var(--zt-border-width)}.zt-table--bordered .zt-table__tbody>tr>td{position:relative}.zt-table--bordered .zt-table__tbody>tr>td:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered .zt-table__tbody>tr>td:after{border-right-width:var(--zt-border-width);border-bottom-width:var(--zt-border-width)}.zt-table__thead>tr>th{box-sizing:border-box;overflow-wrap:break-word;min-height:var(--zt-table-head-height);font-weight:600;font-size:var(--zt-font-size-md);color:var(--zt-table-head-color);text-align:center;line-height:var(--zt-table-head-height);background:var(--zt-table-head-background)}.zt-table__tbody>tr>td{box-sizing:border-box;overflow-wrap:break-word;min-height:var(--zt-table-body-height);font-size:var(--zt-font-size-md);color:var(--zt-table-body-color);text-align:center;line-height:var(--zt-line-height-md);background:var(--zt-table-body-background);padding:10px 16px}.zt-table--striped .zt-table__tbody>tr:nth-child(2n)>td{background:var(--zt-table-head-background)}.zt-table__left--last{border-right:none!important}.zt-table__left--last:after{content:"";position:absolute;top:0;right:-10px;width:10px;height:100%;opacity:.06;background-image:linear-gradient(90deg,#000000 0%,rgba(0,0,0,0) 100%)}.zt-table__left--fixed{position:-webkit-sticky!important;position:-webkit-sticky!important;position:sticky!important;z-index:2}.zt-table__head{display:flex;justify-content:center}.zt-table__head-sort{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;color:var(--zt-table-sort-default)}.zt-table__head-label{line-height:var(--zt-table-head-height)}.zt-table__sort-active{color:var(--zt-table-sort-active)}.zt-table--skeleton{background-color:#fff;padding-bottom:10px}.zt-table__row{display:flex;box-sizing:border-box;padding:0 10px;height:40px}.zt-table__row--head{display:flex;justify-content:center;align-items:center;background-color:#e7f0fb;margin-bottom:8px}.zt-table__row--head .zt-table__col-item{background-color:#cfdae9;height:20px}.zt-table__col{display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex:1;padding:4px 6px;height:40px}.zt-table__col-item{width:100%;height:100%;border-radius:4px;background-color:rgba(45,75,115,.06)}.zt-table--animate{animation:zt-table-blink var(--zt-skeleton-duration) ease-in-out infinite}@keyframes zt-table-blink{50%{opacity:.6}}
1
+ :root{--zt-table-head-color: var(--zt-primary-color);--zt-table-head-height: 40px;--zt-table-head-background: #e6f5ff;--zt-table-body-height: 40px;--zt-table-body-color: var(--zt-gray);--zt-table-body-background: var(--zt-white);--zt-table-sort-default: var(--zt-gray-5);--zt-table-sort-active: var(--zt-primary-color)}:root[zt-theme-size=large]{--zt-table-head-height: 52px}.zt-base-hair{position:relative}.zt-base-hair:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table table{border-collapse:separate;border-spacing:0;width:100%;table-layout:auto;box-sizing:border-box}.zt-table--fixed{overflow:auto scroll}.zt-table--fixed::-webkit-scrollbar{width:0;height:0}.zt-table--fixed table{table-layout:fixed}.zt-table--thead-fixed{position:-webkit-sticky!important;position:-webkit-sticky!important;position:sticky!important;z-index:2}.zt-table--bordered{position:relative}.zt-table--bordered:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered:after{border-left-width:var(--zt-border-width)}.zt-table--bordered>table{position:relative}.zt-table--bordered>table:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered>table:after{border-top-width:var(--zt-border-width)}.zt-table--bordered .zt-table__thead>tr>th{position:relative}.zt-table--bordered .zt-table__thead>tr>th:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered .zt-table__thead>tr>th:after{border-right-width:var(--zt-border-width);border-bottom-width:var(--zt-border-width)}.zt-table--bordered .zt-table__tbody>tr>td{position:relative}.zt-table--bordered .zt-table__tbody>tr>td:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--zt-border-color);transform:scale(.5)}.zt-table--bordered .zt-table__tbody>tr>td:after{border-right-width:var(--zt-border-width);border-bottom-width:var(--zt-border-width)}.zt-table__thead>tr>th{box-sizing:border-box;overflow-wrap:break-word;min-height:var(--zt-table-head-height);font-weight:600;font-size:var(--zt-font-size-md);color:var(--zt-table-head-color);text-align:center;line-height:var(--zt-table-head-height);background:var(--zt-table-head-background)}.zt-table__tbody>tr>td{box-sizing:border-box;overflow-wrap:break-word;min-height:var(--zt-table-body-height);font-size:var(--zt-font-size-md);color:var(--zt-table-body-color);text-align:center;line-height:var(--zt-line-height-md);background:var(--zt-table-body-background);padding:10px 16px}.zt-table--striped .zt-table__tbody>tr:nth-child(2n)>td{background:var(--zt-table-head-background)}.zt-table__left--last{border-right:none!important}.zt-table__left--last:after{content:"";position:absolute;top:0;right:-10px;width:10px;height:100%;opacity:.06;background-image:linear-gradient(90deg,#000000 0%,rgba(0,0,0,0) 100%)}.zt-table__left--fixed{position:-webkit-sticky!important;position:-webkit-sticky!important;position:sticky!important;z-index:2}.zt-table__head{display:flex;justify-content:center}.zt-table__head-sort{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;color:var(--zt-table-sort-default)}.zt-table__head-label{line-height:var(--zt-table-head-height)}.zt-table__head-label-ellipsis{width:100%}.zt-table__sort-active{color:var(--zt-table-sort-active)}.zt-table--skeleton{background-color:#fff;padding-bottom:10px}.zt-table__row{display:flex;box-sizing:border-box;padding:0 10px;height:40px}.zt-table__row--head{display:flex;justify-content:center;align-items:center;background-color:#e7f0fb;margin-bottom:8px}.zt-table__row--head .zt-table__col-item{background-color:#cfdae9;height:20px}.zt-table__col{display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex:1;padding:4px 6px;height:40px}.zt-table__col-item{width:100%;height:100%;border-radius:4px;background-color:rgba(45,75,115,.06)}.zt-table--animate{animation:zt-table-blink var(--zt-skeleton-duration) ease-in-out infinite}@keyframes zt-table-blink{50%{opacity:.6}}