yc-design-vue 2.0.7 → 2.0.8

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 (34) hide show
  1. package/dist/index.umd.js +1 -1
  2. package/es/Progress/ProgressCircle.vue.js +1 -1
  3. package/es/Typography/TypographyBase.vue.js +2 -2
  4. package/es/Upload/Upload.vue.d.ts +1 -0
  5. package/es/Upload/Upload.vue.js +3 -1
  6. package/es/Upload/hooks/useContext.d.ts +5 -3
  7. package/es/Upload/hooks/useContext.js +6 -2
  8. package/es/Upload/hooks/useUpload.d.ts +8 -6
  9. package/es/Upload/hooks/useUpload.js +24 -6
  10. package/es/Upload/index.d.ts +3 -0
  11. package/es/Upload/type.d.ts +3 -1
  12. package/es/_shared/icons/IconCopy.vue.js +19 -1
  13. package/es/_shared/icons/IconCopy.vue2.js +1 -19
  14. package/es/_shared/icons/IconEdit.vue.js +19 -1
  15. package/es/_shared/icons/IconEdit.vue2.js +1 -19
  16. package/es/_shared/icons/IconExclamation.vue.js +30 -1
  17. package/es/_shared/icons/IconExclamation.vue2.js +1 -30
  18. package/lib/Progress/ProgressCircle.vue.js +1 -1
  19. package/lib/Typography/TypographyBase.vue.js +1 -1
  20. package/lib/Upload/Upload.vue.d.ts +1 -0
  21. package/lib/Upload/Upload.vue.js +1 -1
  22. package/lib/Upload/hooks/useContext.d.ts +5 -3
  23. package/lib/Upload/hooks/useContext.js +1 -1
  24. package/lib/Upload/hooks/useUpload.d.ts +8 -6
  25. package/lib/Upload/hooks/useUpload.js +1 -1
  26. package/lib/Upload/index.d.ts +3 -0
  27. package/lib/Upload/type.d.ts +3 -1
  28. package/lib/_shared/icons/IconCopy.vue.js +1 -1
  29. package/lib/_shared/icons/IconCopy.vue2.js +1 -1
  30. package/lib/_shared/icons/IconEdit.vue.js +1 -1
  31. package/lib/_shared/icons/IconEdit.vue2.js +1 -1
  32. package/lib/_shared/icons/IconExclamation.vue.js +1 -1
  33. package/lib/_shared/icons/IconExclamation.vue2.js +1 -1
  34. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { valueToPx } from "../_shared/utils/dom.js";
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  import _sfc_main$1 from "../_shared/icons/IconCheck.vue.js";
8
- import _sfc_main$2 from "../_shared/icons/IconExclamation.vue2.js";
8
+ import _sfc_main$2 from "../_shared/icons/IconExclamation.vue.js";
9
9
  import { TYPE_ICON_COLOR_MAP } from "../_shared/constants/index.js";
10
10
  const _hoisted_1 = ["aria-valuenow"];
11
11
  const _hoisted_2 = ["viewBox"];
@@ -6,8 +6,8 @@ import { useClipboard } from "../node_modules/@vueuse/core/index.js";
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
9
- import _sfc_main$3 from "../_shared/icons/IconCopy.vue2.js";
10
- import _sfc_main$1 from "../_shared/icons/IconEdit.vue2.js";
9
+ import _sfc_main$3 from "../_shared/icons/IconCopy.vue.js";
10
+ import _sfc_main$1 from "../_shared/icons/IconEdit.vue.js";
11
11
  import _sfc_main$2 from "../_shared/icons/IconInfo.vue.js";
12
12
  import Input from "../Input/index.js";
13
13
  import Tooltip from "../Tooltip/index.js";
@@ -43,6 +43,7 @@ declare const __VLS_component: import('vue').DefineComponent<UploadProps, {
43
43
  showUploadButton: boolean;
44
44
  onBeforeUpload: import('./type').OnBeforeUpload;
45
45
  onBeforeRemove: import('./type').OnBeforeRemove;
46
+ onButtonClick: import('./type').OnButtonClick;
46
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
47
48
  uploadRef: HTMLDivElement;
48
49
  }, HTMLDivElement>;
@@ -33,7 +33,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
33
33
  customIcon: { default: () => ({}) },
34
34
  imagePreview: { type: Boolean },
35
35
  onBeforeUpload: { type: Function, default: () => true },
36
- onBeforeRemove: { type: Function, default: () => Promise.resolve(true) }
36
+ onBeforeRemove: { type: Function, default: () => Promise.resolve(true) },
37
+ onButtonClick: { type: Function, default: () => {
38
+ } }
37
39
  },
38
40
  emits: ["update:fileList", "exceed-limit", "change", "preview"],
39
41
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -1,5 +1,5 @@
1
1
  import { Ref } from 'vue';
2
- import { UploadEmits, FileItem, FileListType, ImageLoading, UploadSlots, CustomIcon, FileName, OnBeforeUpload } from '../type';
2
+ import { UploadEmits, FileItem, FileListType, ImageLoading, UploadSlots, CustomIcon, FileName, OnBeforeUpload, OnButtonClick } from '../type';
3
3
  import { RecordType } from '../../_shared/type';
4
4
  type UploadContext = {
5
5
  computedFileList: Ref<FileItem[]>;
@@ -21,6 +21,7 @@ type UploadContext = {
21
21
  imagePreview: Ref<boolean>;
22
22
  slots: UploadSlots;
23
23
  onBeforeUpload: OnBeforeUpload;
24
+ onButtonClick: OnButtonClick;
24
25
  handleDelFile: (fileItem: FileItem) => Promise<void>;
25
26
  emits: UploadEmits;
26
27
  };
@@ -42,9 +43,10 @@ export default function useUploadContext(): {
42
43
  imagePreview: Ref<boolean, boolean>;
43
44
  showRemoveButton: Ref<boolean, boolean>;
44
45
  showPreviewButton: Ref<boolean, boolean>;
45
- name: any;
46
+ name: FileName;
46
47
  slots: UploadSlots;
47
- onBeforeUpload: any;
48
+ onBeforeUpload: OnBeforeUpload;
49
+ onButtonClick: OnButtonClick;
48
50
  handleDelFile: (fileItem: FileItem) => Promise<void>;
49
51
  emits: UploadEmits;
50
52
  };
@@ -1,5 +1,6 @@
1
1
  import { toRefs, useSlots, computed, provide, inject, ref } from "vue";
2
2
  import { useControlValue } from "../../_shared/utils/control.js";
3
+ import { isFunction } from "../../_shared/utils/is.js";
3
4
  const UPLOAD_CONTEXT_KEY = "upload-context";
4
5
  function useUploadContext() {
5
6
  const provide$1 = (props, emits) => {
@@ -22,7 +23,7 @@ function useUploadContext() {
22
23
  showPreviewButton,
23
24
  accept: _accept
24
25
  } = toRefs(props);
25
- const { name, onBeforeUpload, onBeforeRemove } = props;
26
+ const { name, onBeforeUpload, onBeforeRemove, onButtonClick } = props;
26
27
  const slots = useSlots();
27
28
  const computedFileList = useControlValue(
28
29
  fileList,
@@ -41,7 +42,7 @@ function useUploadContext() {
41
42
  } catch {
42
43
  isDel = false;
43
44
  }
44
- if (!isDel) return;
45
+ if (!isDel && isFunction(onBeforeRemove)) return;
45
46
  computedFileList.value = computedFileList.value.filter(
46
47
  (v) => v.uid != fileItem.uid
47
48
  );
@@ -67,6 +68,7 @@ function useUploadContext() {
67
68
  name,
68
69
  slots,
69
70
  onBeforeUpload,
71
+ onButtonClick,
70
72
  handleDelFile,
71
73
  emits
72
74
  };
@@ -94,6 +96,8 @@ function useUploadContext() {
94
96
  name: "",
95
97
  slots: {},
96
98
  handleDelFile: () => Promise.resolve(),
99
+ onButtonClick: () => {
100
+ },
97
101
  onBeforeUpload: () => true,
98
102
  emits: () => {
99
103
  }
@@ -1,8 +1,8 @@
1
1
  import { FileItem, UploadEmits, UploadProps } from '../type';
2
2
  import { Ref } from 'vue';
3
3
  export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _props?: UploadProps, _emits?: UploadEmits): {
4
- handleUpload: () => void;
5
- handleFiles: (fileData: File[] | FileList | null) => void;
4
+ handleUpload: (e: MouseEvent) => Promise<void>;
5
+ handleFiles: (fileData: File[] | FileList | null) => Promise<void>;
6
6
  computedFileList: Ref<FileItem[]>;
7
7
  disabled: Ref<boolean>;
8
8
  tip: Ref<string>;
@@ -22,11 +22,12 @@ export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _p
22
22
  imagePreview: Ref<boolean>;
23
23
  slots: import('..').UploadSlots;
24
24
  onBeforeUpload: import('..').OnBeforeUpload;
25
+ onButtonClick: import('..').OnButtonClick;
25
26
  handleDelFile: (fileItem: FileItem) => Promise<void>;
26
27
  emits: UploadEmits;
27
28
  } | {
28
- handleUpload: () => void;
29
- handleFiles: (fileData: File[] | FileList | null) => void;
29
+ handleUpload: (e: MouseEvent) => Promise<void>;
30
+ handleFiles: (fileData: File[] | FileList | null) => Promise<void>;
30
31
  computedFileList: import('vue').WritableComputedRef<FileItem[], FileItem[]>;
31
32
  accept: import('vue').ComputedRef<string>;
32
33
  disabled: Ref<boolean, boolean>;
@@ -43,9 +44,10 @@ export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _p
43
44
  imagePreview: Ref<boolean, boolean>;
44
45
  showRemoveButton: Ref<boolean, boolean>;
45
46
  showPreviewButton: Ref<boolean, boolean>;
46
- name: any;
47
+ name: import('..').FileName;
47
48
  slots: import('..').UploadSlots;
48
- onBeforeUpload: any;
49
+ onBeforeUpload: import('..').OnBeforeUpload;
50
+ onButtonClick: import('..').OnButtonClick;
49
51
  handleDelFile: (fileItem: FileItem) => Promise<void>;
50
52
  emits: UploadEmits;
51
53
  };
@@ -1,6 +1,6 @@
1
1
  import { nanoid } from "../../node_modules/nanoid/index.browser.js";
2
2
  import "vue";
3
- import { isString } from "../../_shared/utils/is.js";
3
+ import { isFunction, isString } from "../../_shared/utils/is.js";
4
4
  import { useFileDialog, useDropZone } from "../../node_modules/@vueuse/core/index.js";
5
5
  import useUploadContext from "./useContext.js";
6
6
  function useUpload(uploadRef, _props, _emits) {
@@ -19,6 +19,7 @@ function useUpload(uploadRef, _props, _emits) {
19
19
  multiple,
20
20
  name,
21
21
  onBeforeUpload,
22
+ onButtonClick,
22
23
  emits
23
24
  } = context;
24
25
  const { onChange, open } = useFileDialog({
@@ -43,9 +44,19 @@ function useUpload(uploadRef, _props, _emits) {
43
44
  }
44
45
  return fileItem.name;
45
46
  };
46
- const handleFiles = (fileData) => {
47
- const files = [...fileData || []].filter((file) => onBeforeUpload(file));
48
- console.log(files);
47
+ const handleFiles = async (fileData) => {
48
+ const allFiles = [...fileData || []];
49
+ const files = [];
50
+ for (const file of allFiles) {
51
+ let isUpload = true;
52
+ try {
53
+ isUpload = await (onBeforeUpload == null ? void 0 : onBeforeUpload(file));
54
+ } catch {
55
+ isUpload = false;
56
+ }
57
+ if (!isUpload && isFunction(onBeforeUpload)) continue;
58
+ files.push(file);
59
+ }
49
60
  if (!files.length || disabled.value || isOutOfLimit(files.length)) {
50
61
  if (!isOutOfLimit(files == null ? void 0 : files.length)) return;
51
62
  emits("exceed-limit", computedFileList.value, files);
@@ -70,9 +81,16 @@ function useUpload(uploadRef, _props, _emits) {
70
81
  ];
71
82
  emits("change", computedFileList.value, [...files]);
72
83
  };
73
- const handleUpload = () => {
84
+ const handleUpload = async (e) => {
74
85
  if (disabled.value) return;
75
- open();
86
+ let click;
87
+ try {
88
+ click = onButtonClick == null ? void 0 : onButtonClick(e);
89
+ if (click instanceof Promise) return;
90
+ open();
91
+ } catch (err) {
92
+ throw err;
93
+ }
76
94
  };
77
95
  return {
78
96
  ...context,
@@ -38,6 +38,7 @@ declare const Upload: {
38
38
  showUploadButton: boolean;
39
39
  onBeforeUpload: import('./type').OnBeforeUpload;
40
40
  onBeforeRemove: import('./type').OnBeforeRemove;
41
+ onButtonClick: import('./type').OnButtonClick;
41
42
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
42
43
  uploadRef: HTMLDivElement;
43
44
  }, HTMLDivElement, import('vue').ComponentProvideOptions, {
@@ -77,6 +78,7 @@ declare const Upload: {
77
78
  showUploadButton: boolean;
78
79
  onBeforeUpload: import('./type').OnBeforeUpload;
79
80
  onBeforeRemove: import('./type').OnBeforeRemove;
81
+ onButtonClick: import('./type').OnButtonClick;
80
82
  }>;
81
83
  __isFragment?: never;
82
84
  __isTeleport?: never;
@@ -116,6 +118,7 @@ declare const Upload: {
116
118
  showUploadButton: boolean;
117
119
  onBeforeUpload: import('./type').OnBeforeUpload;
118
120
  onBeforeRemove: import('./type').OnBeforeRemove;
121
+ onButtonClick: import('./type').OnButtonClick;
119
122
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
120
123
  $slots: any;
121
124
  }) & {
@@ -22,6 +22,7 @@ export interface UploadProps {
22
22
  imagePreview?: boolean;
23
23
  onBeforeUpload?: OnBeforeUpload;
24
24
  onBeforeRemove?: OnBeforeRemove;
25
+ onButtonClick?: OnButtonClick;
25
26
  }
26
27
  export interface UploadEmits {
27
28
  (e: 'update:fileList', value: FileItem[]): void;
@@ -58,8 +59,9 @@ export type FileStatus = 'init' | 'uploading' | 'done' | 'error' | 'removed';
58
59
  export type FileName = string | ((fileItem: FileItem) => string);
59
60
  export type FileListType = 'text' | 'picture' | 'picture-card';
60
61
  export type ImageLoading = 'eager' | 'lazy';
61
- export type OnBeforeUpload = (file: File) => boolean;
62
+ export type OnBeforeUpload = (file: File) => boolean | Promise<boolean>;
62
63
  export type OnBeforeRemove = (fileItem: FileItem) => Promise<boolean>;
64
+ export type OnButtonClick = (event: Event) => Promise<FileList> | void;
63
65
  export type FileItem = {
64
66
  uid: string;
65
67
  name: string;
@@ -1,4 +1,22 @@
1
- import _sfc_main from "./IconCopy.vue2.js";
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
+ import "../utils/dom.js";
3
+ /* empty css */
4
+ /* empty css */
5
+ import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
+ /* empty css */
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "IconCopy",
9
+ setup(__props) {
10
+ return (_ctx, _cache) => {
11
+ return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
+ createElementVNode("path", { d: "M20 6h18a2 2 0 0 1 2 2v22M8 16v24c0 1.105.891 2 1.996 2h20.007A1.99 1.99 0 0 0 32 40.008V15.997A1.997 1.997 0 0 0 30 14H10a2 2 0 0 0-2 2Z" }, null, -1)
14
+ ])]),
15
+ _: 1
16
+ }, 16);
17
+ };
18
+ }
19
+ });
2
20
  export {
3
21
  _sfc_main as default
4
22
  };
@@ -1,22 +1,4 @@
1
- import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
- import "../utils/dom.js";
3
- /* empty css */
4
- /* empty css */
5
- import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
- /* empty css */
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "IconCopy",
9
- setup(__props) {
10
- return (_ctx, _cache) => {
11
- return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
- default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
- createElementVNode("path", { d: "M20 6h18a2 2 0 0 1 2 2v22M8 16v24c0 1.105.891 2 1.996 2h20.007A1.99 1.99 0 0 0 32 40.008V15.997A1.997 1.997 0 0 0 30 14H10a2 2 0 0 0-2 2Z" }, null, -1)
14
- ])]),
15
- _: 1
16
- }, 16);
17
- };
18
- }
19
- });
1
+ import _sfc_main from "./IconCopy.vue.js";
20
2
  export {
21
3
  _sfc_main as default
22
4
  };
@@ -1,4 +1,22 @@
1
- import _sfc_main from "./IconEdit.vue2.js";
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
+ import "../utils/dom.js";
3
+ /* empty css */
4
+ /* empty css */
5
+ import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
+ /* empty css */
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "IconEdit",
9
+ setup(__props) {
10
+ return (_ctx, _cache) => {
11
+ return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
+ createElementVNode("path", { d: "m30.48 19.038 5.733-5.734a1 1 0 0 0 0-1.414l-5.586-5.586a1 1 0 0 0-1.414 0l-5.734 5.734m7 7L15.763 33.754a1 1 0 0 1-.59.286l-6.048.708a1 1 0 0 1-1.113-1.069l.477-6.31a1 1 0 0 1 .29-.631l14.7-14.7m7 7-7-7M6 42h36" }, null, -1)
14
+ ])]),
15
+ _: 1
16
+ }, 16);
17
+ };
18
+ }
19
+ });
2
20
  export {
3
21
  _sfc_main as default
4
22
  };
@@ -1,22 +1,4 @@
1
- import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
- import "../utils/dom.js";
3
- /* empty css */
4
- /* empty css */
5
- import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
- /* empty css */
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "IconEdit",
9
- setup(__props) {
10
- return (_ctx, _cache) => {
11
- return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
- default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
- createElementVNode("path", { d: "m30.48 19.038 5.733-5.734a1 1 0 0 0 0-1.414l-5.586-5.586a1 1 0 0 0-1.414 0l-5.734 5.734m7 7L15.763 33.754a1 1 0 0 1-.59.286l-6.048.708a1 1 0 0 1-1.113-1.069l.477-6.31a1 1 0 0 1 .29-.631l14.7-14.7m7 7-7-7M6 42h36" }, null, -1)
14
- ])]),
15
- _: 1
16
- }, 16);
17
- };
18
- }
19
- });
1
+ import _sfc_main from "./IconEdit.vue.js";
20
2
  export {
21
3
  _sfc_main as default
22
4
  };
@@ -1,4 +1,33 @@
1
- import _sfc_main from "./IconExclamation.vue2.js";
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
+ import "../utils/dom.js";
3
+ /* empty css */
4
+ /* empty css */
5
+ import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
+ /* empty css */
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "IconExclamation",
9
+ setup(__props) {
10
+ return (_ctx, _cache) => {
11
+ return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
+ createElementVNode("path", { d: "M23 9h2v21h-2z" }, null, -1),
14
+ createElementVNode("path", {
15
+ fill: "currentColor",
16
+ stroke: "none",
17
+ d: "M23 9h2v21h-2z"
18
+ }, null, -1),
19
+ createElementVNode("path", { d: "M23 37h2v2h-2z" }, null, -1),
20
+ createElementVNode("path", {
21
+ fill: "currentColor",
22
+ stroke: "none",
23
+ d: "M23 37h2v2h-2z"
24
+ }, null, -1)
25
+ ])]),
26
+ _: 1
27
+ }, 16);
28
+ };
29
+ }
30
+ });
2
31
  export {
3
32
  _sfc_main as default
4
33
  };
@@ -1,33 +1,4 @@
1
- import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, createElementVNode } from "vue";
2
- import "../utils/dom.js";
3
- /* empty css */
4
- /* empty css */
5
- import _sfc_main$1 from "../components/Icon/index.vue3.js";
6
- /* empty css */
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "IconExclamation",
9
- setup(__props) {
10
- return (_ctx, _cache) => {
11
- return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
12
- default: withCtx(() => [..._cache[0] || (_cache[0] = [
13
- createElementVNode("path", { d: "M23 9h2v21h-2z" }, null, -1),
14
- createElementVNode("path", {
15
- fill: "currentColor",
16
- stroke: "none",
17
- d: "M23 9h2v21h-2z"
18
- }, null, -1),
19
- createElementVNode("path", { d: "M23 37h2v2h-2z" }, null, -1),
20
- createElementVNode("path", {
21
- fill: "currentColor",
22
- stroke: "none",
23
- d: "M23 37h2v2h-2z"
24
- }, null, -1)
25
- ])]),
26
- _: 1
27
- }, 16);
28
- };
29
- }
30
- });
1
+ import _sfc_main from "./IconExclamation.vue.js";
31
2
  export {
32
3
  _sfc_main as default
33
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("../_shared/utils/is.js"),l=require("../_shared/utils/dom.js");,/* empty css */,/* empty css */;/* empty css */const t=require("../_shared/icons/IconCheck.vue.js"),o=require("../_shared/icons/IconExclamation.vue2.js"),s=require("../_shared/constants/index.js"),a=["aria-valuenow"],c=["viewBox"],n={key:0},u=["id"],i=["offset","stop-color"],d=["cx","cy","r","stroke-width"],p=["cx","cy","r","stroke-width"],m={key:2,class:e.normalizeClass("yc-progress-circle-text")},v=e.defineComponent({__name:"ProgressCircle",props:{type:{},percent:{},status:{},size:{},text:{},showText:{type:Boolean},width:{},strokeWidth:{},pathStrokeWidth:{},color:{},trackColor:{}},setup(v){const k=v,{size:f,width:y,color:h,strokeWidth:x,pathStrokeWidth:B}=e.toRefs(k);let _=0;const g=e.computed(()=>r.isObject(h.value)),C=e.computed(()=>x.value??("mini"===f.value?y.value/2:{mini:4,small:3,medium:4,large:4}[f.value])),E=e.computed(()=>B.value?B.value:"mini"===f.value?C.value:Math.max(2,C.value-2)),w=e.computed(()=>(y.value-C.value)/2),O=e.computed(()=>2*Math.PI*w.value),j=e.computed(()=>y.value/2),z=e.computed(()=>(_+=1,`yc-progress-circle-linear-gradient-${_}`));return(v,k)=>(e.openBlock(),e.createElementBlock("div",{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":v.percent,class:e.normalizeClass("yc-progress-circle-wrapper"),style:e.normalizeStyle({width:e.unref(l.valueToPx)(e.unref(y)),height:e.unref(l.valueToPx)(e.unref(y))})},["circle"===v.type&&"mini"===e.unref(f)&&"success"===v.status?(e.openBlock(),e.createBlock(e.unref(t.default),{key:0,style:e.normalizeStyle({fontSize:e.unref(y)-2,color:e.unref(h)??e.unref(s.TYPE_ICON_COLOR_MAP).success})},null,8,["style"])):(e.openBlock(),e.createElementBlock("svg",{key:1,viewBox:`0 0 ${e.unref(y)} ${e.unref(y)}`,class:e.normalizeClass("yc-progress-circle-svg")},[e.unref(r.isObject)(e.unref(h))?(e.openBlock(),e.createElementBlock("defs",n,[e.createElementVNode("linearGradient",{id:z.value,x1:"0",y1:"1",x2:"0",y2:"0"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(e.unref(h)),r=>(e.openBlock(),e.createElementBlock("stop",{key:r,offset:r,"stop-color":e.unref(h)[r]},null,8,i))),128))],8,u)])):e.createCommentVNode("",!0),e.createElementVNode("circle",{class:e.normalizeClass("yc-progress-circle-bg"),fill:"none",cx:j.value,cy:j.value,r:w.value,"stroke-width":E.value,style:e.normalizeStyle({stroke:v.trackColor})},null,12,d),e.createElementVNode("circle",{class:e.normalizeClass("yc-progress-circle-bar"),fill:"none",cx:j.value,cy:j.value,r:w.value,"stroke-width":C.value,style:e.normalizeStyle({stroke:g.value?`url(#${z.value})`:e.unref(h),strokeDasharray:O.value,strokeDashoffset:(v.percent>=1?0:1-v.percent)*O.value})},null,12,p)],8,c)),v.showText&&"mini"!==e.unref(f)?(e.openBlock(),e.createElementBlock("div",m,[e.renderSlot(v.$slots,"text",{percent:v.percent},()=>["danger"===v.status?(e.openBlock(),e.createBlock(e.unref(o.default),{key:0,color:e.unref(s.TYPE_ICON_COLOR_MAP).error},null,8,["color"])):"success"===v.status?(e.openBlock(),e.createBlock(e.unref(t.default),{key:1,color:e.unref(s.TYPE_ICON_COLOR_MAP).success},null,8,["color"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(v.text),1)],64))])])):e.createCommentVNode("",!0)],12,a))}});exports.default=v;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("../_shared/utils/is.js"),l=require("../_shared/utils/dom.js");,/* empty css */,/* empty css */;/* empty css */const t=require("../_shared/icons/IconCheck.vue.js"),o=require("../_shared/icons/IconExclamation.vue.js"),s=require("../_shared/constants/index.js"),a=["aria-valuenow"],c=["viewBox"],n={key:0},u=["id"],i=["offset","stop-color"],d=["cx","cy","r","stroke-width"],p=["cx","cy","r","stroke-width"],m={key:2,class:e.normalizeClass("yc-progress-circle-text")},v=e.defineComponent({__name:"ProgressCircle",props:{type:{},percent:{},status:{},size:{},text:{},showText:{type:Boolean},width:{},strokeWidth:{},pathStrokeWidth:{},color:{},trackColor:{}},setup(v){const k=v,{size:f,width:y,color:h,strokeWidth:x,pathStrokeWidth:B}=e.toRefs(k);let _=0;const g=e.computed(()=>r.isObject(h.value)),C=e.computed(()=>x.value??("mini"===f.value?y.value/2:{mini:4,small:3,medium:4,large:4}[f.value])),E=e.computed(()=>B.value?B.value:"mini"===f.value?C.value:Math.max(2,C.value-2)),w=e.computed(()=>(y.value-C.value)/2),O=e.computed(()=>2*Math.PI*w.value),j=e.computed(()=>y.value/2),z=e.computed(()=>(_+=1,`yc-progress-circle-linear-gradient-${_}`));return(v,k)=>(e.openBlock(),e.createElementBlock("div",{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":v.percent,class:e.normalizeClass("yc-progress-circle-wrapper"),style:e.normalizeStyle({width:e.unref(l.valueToPx)(e.unref(y)),height:e.unref(l.valueToPx)(e.unref(y))})},["circle"===v.type&&"mini"===e.unref(f)&&"success"===v.status?(e.openBlock(),e.createBlock(e.unref(t.default),{key:0,style:e.normalizeStyle({fontSize:e.unref(y)-2,color:e.unref(h)??e.unref(s.TYPE_ICON_COLOR_MAP).success})},null,8,["style"])):(e.openBlock(),e.createElementBlock("svg",{key:1,viewBox:`0 0 ${e.unref(y)} ${e.unref(y)}`,class:e.normalizeClass("yc-progress-circle-svg")},[e.unref(r.isObject)(e.unref(h))?(e.openBlock(),e.createElementBlock("defs",n,[e.createElementVNode("linearGradient",{id:z.value,x1:"0",y1:"1",x2:"0",y2:"0"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(e.unref(h)),r=>(e.openBlock(),e.createElementBlock("stop",{key:r,offset:r,"stop-color":e.unref(h)[r]},null,8,i))),128))],8,u)])):e.createCommentVNode("",!0),e.createElementVNode("circle",{class:e.normalizeClass("yc-progress-circle-bg"),fill:"none",cx:j.value,cy:j.value,r:w.value,"stroke-width":E.value,style:e.normalizeStyle({stroke:v.trackColor})},null,12,d),e.createElementVNode("circle",{class:e.normalizeClass("yc-progress-circle-bar"),fill:"none",cx:j.value,cy:j.value,r:w.value,"stroke-width":C.value,style:e.normalizeStyle({stroke:g.value?`url(#${z.value})`:e.unref(h),strokeDasharray:O.value,strokeDashoffset:(v.percent>=1?0:1-v.percent)*O.value})},null,12,p)],8,c)),v.showText&&"mini"!==e.unref(f)?(e.openBlock(),e.createElementBlock("div",m,[e.renderSlot(v.$slots,"text",{percent:v.percent},()=>["danger"===v.status?(e.openBlock(),e.createBlock(e.unref(o.default),{key:0,color:e.unref(s.TYPE_ICON_COLOR_MAP).error},null,8,["color"])):"success"===v.status?(e.openBlock(),e.createBlock(e.unref(t.default),{key:1,color:e.unref(s.TYPE_ICON_COLOR_MAP).success},null,8,["color"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(v.text),1)],64))])])):e.createCommentVNode("",!0)],12,a))}});exports.default=v;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("../_shared/utils/dom.js"),o=require("../_shared/utils/locale.js"),l=require("../_shared/utils/control.js"),a=require("../node_modules/@vueuse/core/index.js");,/* empty css */,/* empty css */;/* empty css */const n=require("../_shared/icons/IconCopy.vue2.js"),r=require("../_shared/icons/IconEdit.vue2.js"),u=require("../_shared/icons/IconInfo.vue.js"),d=require("../Input/index.js"),p=require("../Tooltip/index.js"),s=e.defineComponent({name:"TypographyBase",__name:"TypographyBase",props:{tag:{default:"span"},type:{default:void 0},bold:{type:Boolean,default:!1},disabled:{type:Boolean},mark:{type:Boolean,default:!1},underline:{type:Boolean,default:!1},delete:{type:Boolean,default:!1},code:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editing:{type:Boolean,default:void 0},defaultEditing:{type:Boolean,default:!1},editText:{default:""},copyable:{type:Boolean,default:!1},copyText:{default:""},copyDelay:{default:3e3},editTooltiProps:{default:()=>({})},copyTooltiProps:{default:()=>({})}},emits:["update:editing","update:editText","edit-start","change","copy","edit-end"],setup(s,{emit:i}){const c=s,y=i,{editing:f,defaultEditing:v,editText:g,copyText:m,copyable:h,copyDelay:B,code:k,mark:x,delete:_,underline:T,bold:C}=e.toRefs(c),{t:b}=o.useI18n(),{isSupported:j,copy:q}=a.useClipboard(),V=e.ref(!1),E=e.ref(),I=e.ref(),N=l.useControlValue(f,v.value,e=>{y("update:editing",e)}),w=l.useControlValue(g,"",e=>{y("update:editText",e),y("change",e)}),P=e.computed(()=>{const e=[x.value,k.value,_.value,T.value,C.value];return["mark","code","del","u","b"].filter((t,o)=>e[o])}),S=e.defineComponent({props:{tags:{type:Array,default:()=>[]}},setup:(t,{slots:o})=>()=>{var l;const{tags:a}=e.toRefs(t),n=(t,o)=>o>=a.value.length?t:e.h(a.value[o],null,n(t,o+1));return n(null==(l=o.default)?void 0:l.call(o),0)}}),D=async()=>{var e;N.value=!0,w.value=w.value?w.value:t.getDomText(E),y("edit-start"),await t.sleep(0),null==(e=I.value)||e.focus()},R=()=>{N.value=!1,y("edit-end")},$=async()=>{if(!h.value||!j.value||V.value)return;const e=m.value||t.getDomText(E);q(e),y("copy",e),V.value=!0,await t.sleep(B.value),V.value=!1};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(["yc-typography",{[`yc-typography-${t.type}`]:t.type,"yc-typography-bold":e.unref(C),"yc-typography-disabled":t.disabled,"yc-typography-underline":e.unref(T),"yc-typography-delete":e.unref(_)}]),ref_key:"contentRef",ref:E},{default:e.withCtx(()=>[e.unref(N)?(e.openBlock(),e.createBlock(e.unref(d.default),{key:0,modelValue:e.unref(w),"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(w)?w.value=t:null),ref_key:"inputRef",ref:I,onBlur:R},null,8,["modelValue"])):(e.openBlock(),e.createBlock(e.unref(S),{key:1,tags:P.value},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["tags"])),t.editable&&!e.unref(N)?(e.openBlock(),e.createElementBlock("span",{key:2,class:"yc-typography-operation-edit",onClick:D},[e.createVNode(e.unref(p.default),e.mergeProps({content:e.unref(b)("typography.edit"),position:"top"},t.editTooltiProps),{default:e.withCtx(()=>[e.createElementVNode("span",null,[e.createVNode(e.unref(r.default))])]),_:1},16,["content"])])):e.createCommentVNode("",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("span",{key:3,class:"yc-typography-operation-copy",onClick:$},[e.createVNode(e.unref(p.default),e.mergeProps({position:"top"},t.copyTooltiProps),{content:e.withCtx(()=>[e.renderSlot(t.$slots,"copy-tooltip",{copied:V.value},()=>[e.createTextVNode(e.toDisplayString(e.unref(b)("typography."+(V.value?"copied":"copy"))),1)])]),default:e.withCtx(()=>[e.createElementVNode("span",null,[e.renderSlot(t.$slots,"copy-icon",{copied:V.value},()=>[V.value?(e.openBlock(),e.createBlock(e.unref(u.default),{key:0,color:"rgb(0, 180, 42)"})):(e.openBlock(),e.createBlock(e.unref(n.default),{key:1}))])])]),_:3},16)])):e.createCommentVNode("",!0)]),_:3},8,["class"]))}});exports.default=s;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("../_shared/utils/dom.js"),o=require("../_shared/utils/locale.js"),l=require("../_shared/utils/control.js"),a=require("../node_modules/@vueuse/core/index.js");,/* empty css */,/* empty css */;/* empty css */const n=require("../_shared/icons/IconCopy.vue.js"),r=require("../_shared/icons/IconEdit.vue.js"),u=require("../_shared/icons/IconInfo.vue.js"),d=require("../Input/index.js"),p=require("../Tooltip/index.js"),s=e.defineComponent({name:"TypographyBase",__name:"TypographyBase",props:{tag:{default:"span"},type:{default:void 0},bold:{type:Boolean,default:!1},disabled:{type:Boolean},mark:{type:Boolean,default:!1},underline:{type:Boolean,default:!1},delete:{type:Boolean,default:!1},code:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editing:{type:Boolean,default:void 0},defaultEditing:{type:Boolean,default:!1},editText:{default:""},copyable:{type:Boolean,default:!1},copyText:{default:""},copyDelay:{default:3e3},editTooltiProps:{default:()=>({})},copyTooltiProps:{default:()=>({})}},emits:["update:editing","update:editText","edit-start","change","copy","edit-end"],setup(s,{emit:i}){const c=s,y=i,{editing:f,defaultEditing:v,editText:g,copyText:m,copyable:h,copyDelay:B,code:k,mark:x,delete:_,underline:T,bold:C}=e.toRefs(c),{t:b}=o.useI18n(),{isSupported:j,copy:q}=a.useClipboard(),V=e.ref(!1),E=e.ref(),I=e.ref(),N=l.useControlValue(f,v.value,e=>{y("update:editing",e)}),w=l.useControlValue(g,"",e=>{y("update:editText",e),y("change",e)}),P=e.computed(()=>{const e=[x.value,k.value,_.value,T.value,C.value];return["mark","code","del","u","b"].filter((t,o)=>e[o])}),S=e.defineComponent({props:{tags:{type:Array,default:()=>[]}},setup:(t,{slots:o})=>()=>{var l;const{tags:a}=e.toRefs(t),n=(t,o)=>o>=a.value.length?t:e.h(a.value[o],null,n(t,o+1));return n(null==(l=o.default)?void 0:l.call(o),0)}}),D=async()=>{var e;N.value=!0,w.value=w.value?w.value:t.getDomText(E),y("edit-start"),await t.sleep(0),null==(e=I.value)||e.focus()},R=()=>{N.value=!1,y("edit-end")},$=async()=>{if(!h.value||!j.value||V.value)return;const e=m.value||t.getDomText(E);q(e),y("copy",e),V.value=!0,await t.sleep(B.value),V.value=!1};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(["yc-typography",{[`yc-typography-${t.type}`]:t.type,"yc-typography-bold":e.unref(C),"yc-typography-disabled":t.disabled,"yc-typography-underline":e.unref(T),"yc-typography-delete":e.unref(_)}]),ref_key:"contentRef",ref:E},{default:e.withCtx(()=>[e.unref(N)?(e.openBlock(),e.createBlock(e.unref(d.default),{key:0,modelValue:e.unref(w),"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(w)?w.value=t:null),ref_key:"inputRef",ref:I,onBlur:R},null,8,["modelValue"])):(e.openBlock(),e.createBlock(e.unref(S),{key:1,tags:P.value},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["tags"])),t.editable&&!e.unref(N)?(e.openBlock(),e.createElementBlock("span",{key:2,class:"yc-typography-operation-edit",onClick:D},[e.createVNode(e.unref(p.default),e.mergeProps({content:e.unref(b)("typography.edit"),position:"top"},t.editTooltiProps),{default:e.withCtx(()=>[e.createElementVNode("span",null,[e.createVNode(e.unref(r.default))])]),_:1},16,["content"])])):e.createCommentVNode("",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("span",{key:3,class:"yc-typography-operation-copy",onClick:$},[e.createVNode(e.unref(p.default),e.mergeProps({position:"top"},t.copyTooltiProps),{content:e.withCtx(()=>[e.renderSlot(t.$slots,"copy-tooltip",{copied:V.value},()=>[e.createTextVNode(e.toDisplayString(e.unref(b)("typography."+(V.value?"copied":"copy"))),1)])]),default:e.withCtx(()=>[e.createElementVNode("span",null,[e.renderSlot(t.$slots,"copy-icon",{copied:V.value},()=>[V.value?(e.openBlock(),e.createBlock(e.unref(u.default),{key:0,color:"rgb(0, 180, 42)"})):(e.openBlock(),e.createBlock(e.unref(n.default),{key:1}))])])]),_:3},16)])):e.createCommentVNode("",!0)]),_:3},8,["class"]))}});exports.default=s;
@@ -43,6 +43,7 @@ declare const __VLS_component: import('vue').DefineComponent<UploadProps, {
43
43
  showUploadButton: boolean;
44
44
  onBeforeUpload: import('./type').OnBeforeUpload;
45
45
  onBeforeRemove: import('./type').OnBeforeRemove;
46
+ onButtonClick: import('./type').OnButtonClick;
46
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
47
48
  uploadRef: HTMLDivElement;
48
49
  }, HTMLDivElement>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("./hooks/useUpload.js"),o=require("./UploadButton.vue.js");;/* empty css */const l=require("./UploadDrag.vue.js");;/* empty css */const a=require("./UploadFileList.vue.js"),u=require("./UploadPictureCard.vue.js"),d=e.defineComponent({name:"Upload",__name:"Upload",props:{fileList:{default:void 0},defaultFileList:{default:()=>[]},accept:{default:void 0},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},tip:{default:""},name:{type:[String,Function],default:void 0},limit:{default:0},showFileList:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showUploadButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},download:{type:Boolean,default:!1},showLink:{type:Boolean,default:!0},imageLoading:{default:"lazy"},listType:{default:"text"},customIcon:{default:()=>({})},imagePreview:{type:Boolean},onBeforeUpload:{type:Function,default:()=>!0},onBeforeRemove:{type:Function,default:()=>Promise.resolve(!0)}},emits:["update:fileList","exceed-limit","change","preview"],setup(d,{expose:n,emit:r}){const i=e.useSlots(),p=d,s=r,c=e.ref(),{computedFileList:f,limit:m,draggable:y,disabled:B,handleFiles:k,handleUpload:v}=t.default(c,p,s);return n({updateFile(e,t){const o=f.value.findIndex(t=>t.uid==e);-1!=o&&(f.value[o]={...f.value[o],name:t.name,file:t,status:"init",percent:0,url:URL.createObjectURL(t)})},upload(e){k(e)}}),(t,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["yc-upload-wrapper",`yc-upload-wrapper-type-${t.listType}`,{"yc-upload-disabled":e.unref(B)}])},["picture-card"!=t.listType?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.showUploadButton?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["yc-upload",{"yc-upload-draggable":e.unref(y)}]),ref_key:"uploadRef",ref:c,onClick:d[0]||(d[0]=(...t)=>e.unref(v)&&e.unref(v)(...t))},[e.unref(m)<=0||e.unref(f).length<e.unref(m)?e.renderSlot(t.$slots,"upload-button",{key:0},()=>[e.unref(y)?(e.openBlock(),e.createBlock(l.default,{key:0})):(e.openBlock(),e.createBlock(o.default,{key:1}))]):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),t.showFileList&&e.unref(f).length?(e.openBlock(),e.createBlock(a.default,{key:1},e.createSlots({_:2},[i["extra-button"]?{name:"extra-button",fn:e.withCtx(o=>[e.renderSlot(t.$slots,"extra-button",e.normalizeProps(e.guardReactiveProps(o)))]),key:"0"}:void 0,i["upload-item"]?{name:"upload-item",fn:e.withCtx(o=>[e.renderSlot(t.$slots,"upload-item",e.normalizeProps(e.guardReactiveProps(o)))]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createBlock(u.default,{key:1}))],2))}});exports.default=d;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("./hooks/useUpload.js"),o=require("./UploadButton.vue.js");;/* empty css */const l=require("./UploadDrag.vue.js");;/* empty css */const a=require("./UploadFileList.vue.js"),u=require("./UploadPictureCard.vue.js"),n=e.defineComponent({name:"Upload",__name:"Upload",props:{fileList:{default:void 0},defaultFileList:{default:()=>[]},accept:{default:void 0},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},tip:{default:""},name:{type:[String,Function],default:void 0},limit:{default:0},showFileList:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showUploadButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},download:{type:Boolean,default:!1},showLink:{type:Boolean,default:!0},imageLoading:{default:"lazy"},listType:{default:"text"},customIcon:{default:()=>({})},imagePreview:{type:Boolean},onBeforeUpload:{type:Function,default:()=>!0},onBeforeRemove:{type:Function,default:()=>Promise.resolve(!0)},onButtonClick:{type:Function,default:()=>{}}},emits:["update:fileList","exceed-limit","change","preview"],setup(n,{expose:d,emit:r}){const i=e.useSlots(),p=n,s=r,c=e.ref(),{computedFileList:f,limit:m,draggable:y,disabled:B,handleFiles:k,handleUpload:v}=t.default(c,p,s);return d({updateFile(e,t){const o=f.value.findIndex(t=>t.uid==e);-1!=o&&(f.value[o]={...f.value[o],name:t.name,file:t,status:"init",percent:0,url:URL.createObjectURL(t)})},upload(e){k(e)}}),(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["yc-upload-wrapper",`yc-upload-wrapper-type-${t.listType}`,{"yc-upload-disabled":e.unref(B)}])},["picture-card"!=t.listType?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.showUploadButton?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["yc-upload",{"yc-upload-draggable":e.unref(y)}]),ref_key:"uploadRef",ref:c,onClick:n[0]||(n[0]=(...t)=>e.unref(v)&&e.unref(v)(...t))},[e.unref(m)<=0||e.unref(f).length<e.unref(m)?e.renderSlot(t.$slots,"upload-button",{key:0},()=>[e.unref(y)?(e.openBlock(),e.createBlock(l.default,{key:0})):(e.openBlock(),e.createBlock(o.default,{key:1}))]):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),t.showFileList&&e.unref(f).length?(e.openBlock(),e.createBlock(a.default,{key:1},e.createSlots({_:2},[i["extra-button"]?{name:"extra-button",fn:e.withCtx(o=>[e.renderSlot(t.$slots,"extra-button",e.normalizeProps(e.guardReactiveProps(o)))]),key:"0"}:void 0,i["upload-item"]?{name:"upload-item",fn:e.withCtx(o=>[e.renderSlot(t.$slots,"upload-item",e.normalizeProps(e.guardReactiveProps(o)))]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createBlock(u.default,{key:1}))],2))}});exports.default=n;
@@ -1,5 +1,5 @@
1
1
  import { Ref } from 'vue';
2
- import { UploadEmits, FileItem, FileListType, ImageLoading, UploadSlots, CustomIcon, FileName, OnBeforeUpload } from '../type';
2
+ import { UploadEmits, FileItem, FileListType, ImageLoading, UploadSlots, CustomIcon, FileName, OnBeforeUpload, OnButtonClick } from '../type';
3
3
  import { RecordType } from '../../_shared/type';
4
4
  type UploadContext = {
5
5
  computedFileList: Ref<FileItem[]>;
@@ -21,6 +21,7 @@ type UploadContext = {
21
21
  imagePreview: Ref<boolean>;
22
22
  slots: UploadSlots;
23
23
  onBeforeUpload: OnBeforeUpload;
24
+ onButtonClick: OnButtonClick;
24
25
  handleDelFile: (fileItem: FileItem) => Promise<void>;
25
26
  emits: UploadEmits;
26
27
  };
@@ -42,9 +43,10 @@ export default function useUploadContext(): {
42
43
  imagePreview: Ref<boolean, boolean>;
43
44
  showRemoveButton: Ref<boolean, boolean>;
44
45
  showPreviewButton: Ref<boolean, boolean>;
45
- name: any;
46
+ name: FileName;
46
47
  slots: UploadSlots;
47
- onBeforeUpload: any;
48
+ onBeforeUpload: OnBeforeUpload;
49
+ onButtonClick: OnButtonClick;
48
50
  handleDelFile: (fileItem: FileItem) => Promise<void>;
49
51
  emits: UploadEmits;
50
52
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("../../_shared/utils/control.js"),o="upload-context";exports.default=function(){return{provide:(i,l)=>{const{fileList:r,defaultFileList:a,disabled:s,multiple:n,draggable:u,directory:d,limit:c,tip:m,listType:f,imageLoading:p,download:v,showLink:g,customIcon:w,imagePreview:h,showRemoveButton:L,showPreviewButton:y,accept:B}=e.toRefs(i),{name:b,onBeforeUpload:P,onBeforeRemove:x}=i,F=e.useSlots(),R=t.useControlValue(r,a.value,e=>{l("update:fileList",e)}),j=e.computed(()=>"text"!=f.value?"image/*":B.value),T={computedFileList:R,accept:j,disabled:s,directory:d,multiple:n,draggable:u,limit:c,tip:m,listType:f,imageLoading:p,showLink:g,download:v,customIcon:w,imagePreview:h,showRemoveButton:L,showPreviewButton:y,name:b,slots:F,onBeforeUpload:P,handleDelFile:async e=>{let t=!0;try{t=await(null==x?void 0:x(e))}catch{t=!1}t&&(R.value=R.value.filter(t=>t.uid!=e.uid),l("change",R.value,[]))},emits:l};return e.provide(o,T),T},inject:()=>e.inject(o,{computedFileList:e.ref([]),accept:e.ref(""),disabled:e.ref(!1),directory:e.ref(!1),multiple:e.ref(!1),draggable:e.ref(!1),limit:e.ref(0),tip:e.ref(""),listType:e.ref("text"),imageLoading:e.ref("lazy"),showLink:e.ref(!0),download:e.ref(!1),customIcon:e.ref({}),imagePreview:e.ref(!0),showRemoveButton:e.ref(!0),showPreviewButton:e.ref(!0),name:"",slots:{},handleDelFile:()=>Promise.resolve(),onBeforeUpload:()=>!0,emits:()=>{}})}};
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("../../_shared/utils/control.js"),o=require("../../_shared/utils/is.js"),i="upload-context";exports.default=function(){return{provide:(l,r)=>{const{fileList:a,defaultFileList:s,disabled:n,multiple:u,draggable:d,directory:c,limit:m,tip:f,listType:p,imageLoading:v,download:g,showLink:w,customIcon:h,imagePreview:B,showRemoveButton:L,showPreviewButton:y,accept:b}=e.toRefs(l),{name:P,onBeforeUpload:k,onBeforeRemove:F,onButtonClick:j}=l,x=e.useSlots(),R=t.useControlValue(a,s.value,e=>{r("update:fileList",e)}),C=e.computed(()=>"text"!=p.value?"image/*":b.value),T={computedFileList:R,accept:C,disabled:n,directory:c,multiple:u,draggable:d,limit:m,tip:f,listType:p,imageLoading:v,showLink:w,download:g,customIcon:h,imagePreview:B,showRemoveButton:L,showPreviewButton:y,name:P,slots:x,onBeforeUpload:k,onButtonClick:j,handleDelFile:async e=>{let t=!0;try{t=await(null==F?void 0:F(e))}catch{t=!1}!t&&o.isFunction(F)||(R.value=R.value.filter(t=>t.uid!=e.uid),r("change",R.value,[]))},emits:r};return e.provide(i,T),T},inject:()=>e.inject(i,{computedFileList:e.ref([]),accept:e.ref(""),disabled:e.ref(!1),directory:e.ref(!1),multiple:e.ref(!1),draggable:e.ref(!1),limit:e.ref(0),tip:e.ref(""),listType:e.ref("text"),imageLoading:e.ref("lazy"),showLink:e.ref(!0),download:e.ref(!1),customIcon:e.ref({}),imagePreview:e.ref(!0),showRemoveButton:e.ref(!0),showPreviewButton:e.ref(!0),name:"",slots:{},handleDelFile:()=>Promise.resolve(),onButtonClick:()=>{},onBeforeUpload:()=>!0,emits:()=>{}})}};
@@ -1,8 +1,8 @@
1
1
  import { FileItem, UploadEmits, UploadProps } from '../type';
2
2
  import { Ref } from 'vue';
3
3
  export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _props?: UploadProps, _emits?: UploadEmits): {
4
- handleUpload: () => void;
5
- handleFiles: (fileData: File[] | FileList | null) => void;
4
+ handleUpload: (e: MouseEvent) => Promise<void>;
5
+ handleFiles: (fileData: File[] | FileList | null) => Promise<void>;
6
6
  computedFileList: Ref<FileItem[]>;
7
7
  disabled: Ref<boolean>;
8
8
  tip: Ref<string>;
@@ -22,11 +22,12 @@ export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _p
22
22
  imagePreview: Ref<boolean>;
23
23
  slots: import('..').UploadSlots;
24
24
  onBeforeUpload: import('..').OnBeforeUpload;
25
+ onButtonClick: import('..').OnButtonClick;
25
26
  handleDelFile: (fileItem: FileItem) => Promise<void>;
26
27
  emits: UploadEmits;
27
28
  } | {
28
- handleUpload: () => void;
29
- handleFiles: (fileData: File[] | FileList | null) => void;
29
+ handleUpload: (e: MouseEvent) => Promise<void>;
30
+ handleFiles: (fileData: File[] | FileList | null) => Promise<void>;
30
31
  computedFileList: import('vue').WritableComputedRef<FileItem[], FileItem[]>;
31
32
  accept: import('vue').ComputedRef<string>;
32
33
  disabled: Ref<boolean, boolean>;
@@ -43,9 +44,10 @@ export default function useUpload(uploadRef: Ref<HTMLDivElement | undefined>, _p
43
44
  imagePreview: Ref<boolean, boolean>;
44
45
  showRemoveButton: Ref<boolean, boolean>;
45
46
  showPreviewButton: Ref<boolean, boolean>;
46
- name: any;
47
+ name: import('..').FileName;
47
48
  slots: import('..').UploadSlots;
48
- onBeforeUpload: any;
49
+ onBeforeUpload: import('..').OnBeforeUpload;
50
+ onButtonClick: import('..').OnButtonClick;
49
51
  handleDelFile: (fileItem: FileItem) => Promise<void>;
50
52
  emits: UploadEmits;
51
53
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../node_modules/nanoid/index.browser.js");require("vue");const l=require("../../_shared/utils/is.js"),t=require("../../node_modules/@vueuse/core/index.js"),u=require("./useContext.js");exports.default=function(n,a,i){let r;r=a&&i?u.default().provide(a,i):u.default().inject();const{computedFileList:o,disabled:s,limit:d,accept:c,directory:v,multiple:p,name:m,onBeforeUpload:f,emits:g}=r,{onChange:h,open:j}=t.useFileDialog({directory:v.value,multiple:p.value,accept:c.value,reset:!0});h(e=>q(e)),t.useDropZone(n,{dataTypes:c.value?c.value.split(","):void 0,multiple:p.value,preventDefaultForUnhandled:!0,onDrop:e=>q(e)});const x=(e=0)=>d.value>0&&e+o.value.length>d.value,b=e=>m?l.isString(m)?m:m(e):e.name,q=l=>{const t=[...l||[]].filter(e=>f(e));if(!t.length||s.value||x(t.length)){if(!x(null==t?void 0:t.length))return;g("exceed-limit",o.value,t)}else o.value=[...o.value,...t.map(l=>{const t={name:l.name,uid:e.nanoid(),file:l,status:"init",percent:0,url:URL.createObjectURL(l)};return{...t,name:b(t)}})],g("change",o.value,[...t])};return{...r,handleUpload:()=>{s.value||j()},handleFiles:q}};
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../node_modules/nanoid/index.browser.js");require("vue");const t=require("../../_shared/utils/is.js"),l=require("../../node_modules/@vueuse/core/index.js"),n=require("./useContext.js");exports.default=function(u,i,a){let o;o=i&&a?n.default().provide(i,a):n.default().inject();const{computedFileList:r,disabled:s,limit:d,accept:c,directory:v,multiple:p,name:m,onBeforeUpload:f,onButtonClick:h,emits:g}=o,{onChange:y,open:j}=l.useFileDialog({directory:v.value,multiple:p.value,accept:c.value,reset:!0});y(e=>q(e)),l.useDropZone(u,{dataTypes:c.value?c.value.split(","):void 0,multiple:p.value,preventDefaultForUnhandled:!0,onDrop:e=>q(e)});const x=(e=0)=>d.value>0&&e+r.value.length>d.value,b=e=>m?t.isString(m)?m:m(e):e.name,q=async l=>{const n=[...l||[]],u=[];for(const e of n){let l=!0;try{l=await(null==f?void 0:f(e))}catch{l=!1}!l&&t.isFunction(f)||u.push(e)}if(!u.length||s.value||x(u.length)){if(!x(null==u?void 0:u.length))return;g("exceed-limit",r.value,u)}else r.value=[...r.value,...u.map(t=>{const l={name:t.name,uid:e.nanoid(),file:t,status:"init",percent:0,url:URL.createObjectURL(t)};return{...l,name:b(l)}})],g("change",r.value,[...u])};return{...o,handleUpload:async e=>{if(s.value)return;let t;try{if(t=null==h?void 0:h(e),t instanceof Promise)return;j()}catch(l){throw l}},handleFiles:q}};
@@ -38,6 +38,7 @@ declare const Upload: {
38
38
  showUploadButton: boolean;
39
39
  onBeforeUpload: import('./type').OnBeforeUpload;
40
40
  onBeforeRemove: import('./type').OnBeforeRemove;
41
+ onButtonClick: import('./type').OnButtonClick;
41
42
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
42
43
  uploadRef: HTMLDivElement;
43
44
  }, HTMLDivElement, import('vue').ComponentProvideOptions, {
@@ -77,6 +78,7 @@ declare const Upload: {
77
78
  showUploadButton: boolean;
78
79
  onBeforeUpload: import('./type').OnBeforeUpload;
79
80
  onBeforeRemove: import('./type').OnBeforeRemove;
81
+ onButtonClick: import('./type').OnButtonClick;
80
82
  }>;
81
83
  __isFragment?: never;
82
84
  __isTeleport?: never;
@@ -116,6 +118,7 @@ declare const Upload: {
116
118
  showUploadButton: boolean;
117
119
  onBeforeUpload: import('./type').OnBeforeUpload;
118
120
  onBeforeRemove: import('./type').OnBeforeRemove;
121
+ onButtonClick: import('./type').OnButtonClick;
119
122
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
120
123
  $slots: any;
121
124
  }) & {