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.
- package/dist/index.umd.js +1 -1
- package/es/Progress/ProgressCircle.vue.js +1 -1
- package/es/Typography/TypographyBase.vue.js +2 -2
- package/es/Upload/Upload.vue.d.ts +1 -0
- package/es/Upload/Upload.vue.js +3 -1
- package/es/Upload/hooks/useContext.d.ts +5 -3
- package/es/Upload/hooks/useContext.js +6 -2
- package/es/Upload/hooks/useUpload.d.ts +8 -6
- package/es/Upload/hooks/useUpload.js +24 -6
- package/es/Upload/index.d.ts +3 -0
- package/es/Upload/type.d.ts +3 -1
- package/es/_shared/icons/IconCopy.vue.js +19 -1
- package/es/_shared/icons/IconCopy.vue2.js +1 -19
- package/es/_shared/icons/IconEdit.vue.js +19 -1
- package/es/_shared/icons/IconEdit.vue2.js +1 -19
- package/es/_shared/icons/IconExclamation.vue.js +30 -1
- package/es/_shared/icons/IconExclamation.vue2.js +1 -30
- package/lib/Progress/ProgressCircle.vue.js +1 -1
- package/lib/Typography/TypographyBase.vue.js +1 -1
- package/lib/Upload/Upload.vue.d.ts +1 -0
- package/lib/Upload/Upload.vue.js +1 -1
- package/lib/Upload/hooks/useContext.d.ts +5 -3
- package/lib/Upload/hooks/useContext.js +1 -1
- package/lib/Upload/hooks/useUpload.d.ts +8 -6
- package/lib/Upload/hooks/useUpload.js +1 -1
- package/lib/Upload/index.d.ts +3 -0
- package/lib/Upload/type.d.ts +3 -1
- package/lib/_shared/icons/IconCopy.vue.js +1 -1
- package/lib/_shared/icons/IconCopy.vue2.js +1 -1
- package/lib/_shared/icons/IconEdit.vue.js +1 -1
- package/lib/_shared/icons/IconEdit.vue2.js +1 -1
- package/lib/_shared/icons/IconExclamation.vue.js +1 -1
- package/lib/_shared/icons/IconExclamation.vue2.js +1 -1
- 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.
|
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.
|
10
|
-
import _sfc_main$1 from "../_shared/icons/IconEdit.
|
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>;
|
package/es/Upload/Upload.vue.js
CHANGED
@@ -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:
|
46
|
+
name: FileName;
|
46
47
|
slots: UploadSlots;
|
47
|
-
onBeforeUpload:
|
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:
|
47
|
+
name: import('..').FileName;
|
47
48
|
slots: import('..').UploadSlots;
|
48
|
-
onBeforeUpload:
|
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
|
48
|
-
|
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
|
-
|
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,
|
package/es/Upload/index.d.ts
CHANGED
@@ -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
|
}) & {
|
package/es/Upload/type.d.ts
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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.
|
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.
|
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>;
|
package/lib/Upload/Upload.vue.js
CHANGED
@@ -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"),
|
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:
|
46
|
+
name: FileName;
|
46
47
|
slots: UploadSlots;
|
47
|
-
onBeforeUpload:
|
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:(
|
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:
|
47
|
+
name: import('..').FileName;
|
47
48
|
slots: import('..').UploadSlots;
|
48
|
-
onBeforeUpload:
|
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
|
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}};
|
package/lib/Upload/index.d.ts
CHANGED
@@ -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
|
}) & {
|