ling-yun-custom-components 0.0.47 → 0.0.49

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 (43) hide show
  1. package/es/AppIntro.mjs +212 -218
  2. package/es/BatchImport.mjs +1 -1
  3. package/es/FileList.mjs +1 -1
  4. package/es/IconRenderer.mjs +2 -2
  5. package/es/IconSelect.mjs +1 -1
  6. package/es/PluginDetail.mjs +233 -76
  7. package/es/SearchBar.mjs +1 -1
  8. package/es/UpdatePasswordDialog.mjs +1 -1
  9. package/es/UploadFile.mjs +1 -1
  10. package/es/assets/AppIntro.css +1 -1
  11. package/es/assets/PluginDetail.css +1 -1
  12. package/es/assets/layout6.css +1 -1
  13. package/es/chunks/global.0D1G5ksU.js +9139 -0
  14. package/es/chunks/global.C0RGZP_4.js +16414 -0
  15. package/es/chunks/layout.B2kLz-lA.js +594 -0
  16. package/es/chunks/layout.BTdDzac6.js +594 -0
  17. package/es/chunks/layout.BcE_uXfl.js +149 -0
  18. package/es/chunks/layout.BjpD-aT_.js +230 -0
  19. package/es/chunks/layout.Co98b6wr.js +150 -0
  20. package/es/chunks/layout.zm_iHVUd.js +230 -0
  21. package/es/index.mjs +42 -40
  22. package/lib/AppIntro.js +1 -1
  23. package/lib/BatchImport.js +1 -1
  24. package/lib/FileList.js +1 -1
  25. package/lib/IconRenderer.js +1 -1
  26. package/lib/IconSelect.js +1 -1
  27. package/lib/PluginDetail.js +1 -1
  28. package/lib/SearchBar.js +1 -1
  29. package/lib/UpdatePasswordDialog.js +1 -1
  30. package/lib/UploadFile.js +1 -1
  31. package/lib/assets/AppIntro.css +1 -1
  32. package/lib/assets/PluginDetail.css +1 -1
  33. package/lib/assets/layout6.css +1 -1
  34. package/lib/chunks/global.CaQoTxsn.js +1 -0
  35. package/lib/chunks/global.DIPtiMPx.js +1 -0
  36. package/lib/chunks/layout.B1FEweQJ.js +1 -0
  37. package/lib/chunks/layout.BZcONKs3.js +1 -0
  38. package/lib/chunks/layout.BsTMNqYf.js +1 -0
  39. package/lib/chunks/layout.DGwMUZ22.js +1 -0
  40. package/lib/chunks/layout.DymT6hAY.js +1 -0
  41. package/lib/chunks/layout.VaW9ZCxV.js +1 -0
  42. package/lib/index.js +1 -1
  43. package/package.json +5 -5
@@ -0,0 +1,149 @@
1
+ import { useCssVars as L, ref as N, watch as O, createElementBlock as u, createCommentVNode as v, openBlock as s, Fragment as x, renderList as U, normalizeClass as z, unref as o, createElementVNode as m, createBlock as f, normalizeStyle as j, withCtx as S, resolveDynamicComponent as T, toDisplayString as k, renderSlot as M, createVNode as E } from "vue";
2
+ import { ElImage as R, ElIcon as w } from "element-plus";
3
+ import { emitsMap as c, uploadFileTypeMap as P, uploadFileType as a } from "ling-yun-methods";
4
+ import { IconTxt as A, IconPpt as F, IconXls as I, IconDoc as b, IconPdf as G, IconDelete as K, IconOtherFile as X } from "color-message-lingyun-vue";
5
+ import { _ as q } from "./_plugin-vue_export-helper.CHgC5LLL.js";
6
+ import '../assets/layout6.css';const i = {
7
+ uploading: "uploading",
8
+ success: "success",
9
+ error: "error"
10
+ }, H = {
11
+ key: 0,
12
+ class: "file-list display-grid pd-t-12 pd-b-12"
13
+ }, J = { class: "flex overflow-hidden flex-1 pd-r-10" }, Q = { class: "pd-l-8 flex-1 overflow-hidden" }, W = ["title"], Y = { class: "fz-12 text-ellipsis lh-16" }, Z = {
14
+ key: 1,
15
+ class: "text-74798c"
16
+ }, ee = /* @__PURE__ */ Object.assign({
17
+ name: "FileList"
18
+ }, {
19
+ __name: "layout",
20
+ props: {
21
+ // 文件列表数据
22
+ modelValue: {
23
+ type: Array,
24
+ default: () => []
25
+ },
26
+ // 是否显示删除按钮
27
+ showDelete: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ // 字段映射配置
32
+ fieldMapping: {
33
+ type: Object,
34
+ default: () => ({
35
+ // fileName: 'fileName',
36
+ // fileUrl: 'fileUrl',
37
+ })
38
+ },
39
+ rowCount: {
40
+ type: Number,
41
+ default: 2
42
+ },
43
+ // 图标大小
44
+ iconSize: {
45
+ type: Number,
46
+ default: 36
47
+ }
48
+ },
49
+ emits: [c.delete, c.change, c.updateModelValue],
50
+ setup(l, { emit: _ }) {
51
+ L((e) => ({
52
+ v751237c3: l.rowCount
53
+ }));
54
+ const p = l, y = _, n = N(p.modelValue), B = Object.fromEntries(
55
+ Object.entries(P).map(([e, r]) => [r, e])
56
+ ), h = (e) => e[p.fieldMapping.fileUrl] ? e[p.fieldMapping.fileUrl] : e.raw && e.raw instanceof File ? URL.createObjectURL(e.raw) : e instanceof File ? URL.createObjectURL(e) : "", C = {
57
+ [a.pdf]: G,
58
+ [a.doc]: b,
59
+ [a.docx]: b,
60
+ [a.xls]: I,
61
+ [a.xlsx]: I,
62
+ [a.ppt]: F,
63
+ [a.pptx]: F,
64
+ [a.txt]: A
65
+ }, V = (e) => e?.includes("image"), $ = (e) => {
66
+ const r = B[e];
67
+ return C[r] || X;
68
+ }, g = (e) => {
69
+ if (!e || e === 0) return "0 B";
70
+ const r = 1024, t = ["B", "KB", "MB", "GB"], d = Math.floor(Math.log(e) / Math.log(r));
71
+ return `${parseFloat((e / Math.pow(r, d)).toFixed(2))} ${t[d]}`;
72
+ }, D = (e, r) => {
73
+ n.value.splice(r, 1), y(c.delete, e), y(c.updateModelValue, n.value), y(c.change, n.value);
74
+ };
75
+ return O(
76
+ () => p.modelValue,
77
+ (e) => {
78
+ n.value = e;
79
+ },
80
+ { immediate: !0 }
81
+ ), (e, r) => n.value?.length ? (s(), u("div", H, [
82
+ (s(!0), u(x, null, U(n.value, (t, d) => (s(), u("div", {
83
+ key: d,
84
+ class: z(["pd-l-8 pd-r-8 pd-t-6 pd-b-6 radius-8 file-item overflow-hidden flex items-center", {
85
+ "bg-uploading": t.fileStatus === o(i).uploading,
86
+ "bg-fcfdff": t.fileStatus !== o(i).uploading,
87
+ "border-error": t.fileStatus === o(i).error,
88
+ "border-normal": t.fileStatus !== o(i).error
89
+ }])
90
+ }, [
91
+ m("div", J, [
92
+ V(t?.type) && h(t) ? (s(), f(o(R), {
93
+ key: 0,
94
+ src: h(t),
95
+ class: "radius-4",
96
+ fit: "cover",
97
+ style: j({ width: `${l.iconSize}px`, height: `${l.iconSize}px` })
98
+ }, null, 8, ["src", "style"])) : (s(), f(o(w), {
99
+ key: 1,
100
+ size: l.iconSize,
101
+ class: "pointer"
102
+ }, {
103
+ default: S(() => [
104
+ (s(), f(T($(t?.type))))
105
+ ]),
106
+ _: 2
107
+ }, 1032, ["size"])),
108
+ m("div", Q, [
109
+ m("div", {
110
+ class: z(["fz-14 text-ellipsis lh-20 flex-1", {
111
+ "text-ec0e13": t.fileStatus === o(i).error,
112
+ "text-262626": t.fileStatus !== o(i).error
113
+ }]),
114
+ title: t[l.fieldMapping.fileName]
115
+ }, k(t[l.fieldMapping.fileName]), 11, W),
116
+ m("div", Y, [
117
+ e.$slots.status ? M(e.$slots, "status", {
118
+ key: 0,
119
+ file: t
120
+ }, void 0, !0) : (s(), u(x, { key: 1 }, [
121
+ e.$slots.size ? M(e.$slots, "size", {
122
+ key: 0,
123
+ file: t,
124
+ size: g(t.size)
125
+ }, void 0, !0) : (s(), u("span", Z, k(g(t.size)), 1))
126
+ ], 64))
127
+ ])
128
+ ])
129
+ ]),
130
+ l.showDelete ? (s(), f(o(w), {
131
+ key: 0,
132
+ size: 16,
133
+ color: t.fileStatus === o(i).error ? "var(--error-color-1)" : "var(--text-color-4)",
134
+ class: "pointer",
135
+ onClick: (te) => D(t, d)
136
+ }, {
137
+ default: S(() => [
138
+ E(o(K))
139
+ ]),
140
+ _: 1
141
+ }, 8, ["color", "onClick"])) : v("", !0)
142
+ ], 2))), 128))
143
+ ])) : v("", !0);
144
+ }
145
+ }), ie = /* @__PURE__ */ q(ee, [["__scopeId", "data-v-c5b5f416"]]);
146
+ export {
147
+ ie as _,
148
+ i as u
149
+ };
@@ -0,0 +1,230 @@
1
+ import { ref as z, computed as p, watch as M, createElementBlock as f, openBlock as m, createVNode as R, createBlock as k, createCommentVNode as U, unref as h, mergeProps as B, withCtx as D, renderSlot as O, Fragment as E, createElementVNode as c, toDisplayString as x } from "vue";
2
+ import { ElUpload as N, ElImage as Y } from "element-plus";
3
+ import { emitsMap as i, uploadFileTypeMap as L, messageError as Q, messageWarning as F } from "ling-yun-methods";
4
+ import { _ as J, u as v } from "./layout.BcE_uXfl.js";
5
+ import { _ as K } from "./_plugin-vue_export-helper.CHgC5LLL.js";
6
+ import '../assets/layout5.css';const u = [];
7
+ for (let A = 0; A < 256; ++A)
8
+ u.push((A + 256).toString(16).slice(1));
9
+ function G(A, a = 0) {
10
+ return (u[A[a + 0]] + u[A[a + 1]] + u[A[a + 2]] + u[A[a + 3]] + "-" + u[A[a + 4]] + u[A[a + 5]] + "-" + u[A[a + 6]] + u[A[a + 7]] + "-" + u[A[a + 8]] + u[A[a + 9]] + "-" + u[A[a + 10]] + u[A[a + 11]] + u[A[a + 12]] + u[A[a + 13]] + u[A[a + 14]] + u[A[a + 15]]).toLowerCase();
11
+ }
12
+ let W;
13
+ const $ = new Uint8Array(16);
14
+ function _() {
15
+ if (!W) {
16
+ if (typeof crypto > "u" || !crypto.getRandomValues)
17
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
18
+ W = crypto.getRandomValues.bind(crypto);
19
+ }
20
+ return W($);
21
+ }
22
+ const AA = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), T = { randomUUID: AA };
23
+ function eA(A, a, y) {
24
+ A = A || {};
25
+ const t = A.random ?? A.rng?.() ?? _();
26
+ if (t.length < 16)
27
+ throw new Error("Random bytes length must be >= 16");
28
+ return t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128, G(t);
29
+ }
30
+ function tA(A, a, y) {
31
+ return T.randomUUID && !A ? T.randomUUID() : eA(A);
32
+ }
33
+ const aA = "data:image/webp;base64,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", lA = { class: "w-full" }, uA = { class: "flex items-center justify-center" }, nA = { class: "upload-webp overflow-hidden flex items-center justify-center relative" }, oA = { class: "text-74798c fz-12 pd-t-6" }, rA = { key: 0 }, dA = { key: 1 }, iA = /* @__PURE__ */ Object.assign({
34
+ name: "UploadFile"
35
+ }, {
36
+ __name: "layout",
37
+ props: {
38
+ // 已上传的文件列表
39
+ modelValue: {
40
+ type: Array,
41
+ default: () => []
42
+ },
43
+ // 是否禁用
44
+ disabled: {
45
+ type: Boolean,
46
+ default: !1
47
+ },
48
+ // 是否支持多选
49
+ multiple: {
50
+ type: Boolean,
51
+ default: !1
52
+ },
53
+ // 文件类型
54
+ uploadFileType: {
55
+ type: Array,
56
+ default: () => []
57
+ },
58
+ // 单个文件最大大小 (MB)
59
+ maxSize: {
60
+ type: Number,
61
+ default: 10
62
+ },
63
+ // 最多上传的文件个数
64
+ maxCount: {
65
+ type: Number,
66
+ default: 10
67
+ },
68
+ // 上传接口配置
69
+ apiConfig: {
70
+ type: Function,
71
+ default: null
72
+ },
73
+ // 自定义参数
74
+ params: {
75
+ type: Object,
76
+ default: () => ({})
77
+ },
78
+ // 是否自动上传
79
+ autoUpload: {
80
+ type: Boolean,
81
+ default: !0
82
+ },
83
+ // 字段映射
84
+ fieldMapping: {
85
+ type: Object,
86
+ default: () => ({
87
+ // fileName: 'fileName',
88
+ // fileUrl: 'fileUrl',
89
+ })
90
+ },
91
+ // 是否显示文件列表
92
+ showFileList: {
93
+ type: Boolean,
94
+ default: !0
95
+ },
96
+ // 是否自定义请求
97
+ isCustomRequest: {
98
+ type: Boolean,
99
+ default: !1
100
+ },
101
+ // 上传文件时的字段名
102
+ fileField: {
103
+ type: String,
104
+ default: "file"
105
+ },
106
+ // 是否拖拽
107
+ drag: {
108
+ type: Boolean,
109
+ default: !0
110
+ },
111
+ uploadTipObj: {
112
+ type: Object,
113
+ default: null
114
+ }
115
+ },
116
+ emits: [i.updateModelValue, i.change, i.delete],
117
+ setup(A, { expose: a, emit: y }) {
118
+ const t = A, s = y, j = z(null), n = z([]), w = p(() => typeof t.apiConfig == "function"), S = p(() => t.uploadFileType?.join("、")), C = p(() => t.uploadFileType?.map((e) => `.${e}`)?.join(",")), P = p(() => t.maxSize ? `${t.maxSize}MB` : ""), o = p(() => t.uploadTipObj ? t.uploadTipObj : {
119
+ formatAcceptText: `支持 ${S.value} 格式文件`,
120
+ formatMaxSize: `单个文件不超过 ${P.value}`,
121
+ maxCount: `最多上传 ${t.maxCount} 个文件`
122
+ }), X = (e) => {
123
+ if (!t.maxSize) return !0;
124
+ const l = t.maxSize * 1024 * 1024;
125
+ return e.size <= l;
126
+ }, Z = (e) => b(e, !0), b = (e, l) => {
127
+ const r = t.uploadFileType.map((g) => L?.[g]), d = [...new Set(r)];
128
+ if (t.maxCount && n.value?.length >= t.maxCount)
129
+ if (t.maxCount === 1)
130
+ n.value = [];
131
+ else
132
+ return l && Q(o.value.maxCount), !1;
133
+ return d?.includes(e.type) ? X(e) ? !0 : (l && F(o.value.formatMaxSize), !1) : (l && F(o.value.formatAcceptText), !1);
134
+ }, q = ({ file: e }) => {
135
+ if (!b(e, !1))
136
+ return;
137
+ const l = {
138
+ uuid: tA(),
139
+ raw: e,
140
+ type: e.type,
141
+ size: e.size,
142
+ fileStatus: v.uploading,
143
+ [t.fieldMapping.fileName]: e.name
144
+ };
145
+ if (I(l), !w.value || t.isCustomRequest) {
146
+ setTimeout(() => {
147
+ V(l, v.success);
148
+ }, 100);
149
+ return;
150
+ }
151
+ t.apiConfig?.({
152
+ [t.fileField]: e,
153
+ ...t.params
154
+ }).then(({ data: r }) => {
155
+ const d = r?.[0] || r?.files?.[0] || r;
156
+ V(l, v.success, d);
157
+ }).catch(() => {
158
+ V(l, v.error);
159
+ });
160
+ }, I = (e) => {
161
+ n.value.push(e), s(i.updateModelValue, n.value), s(i.change, e);
162
+ }, V = (e, l, r = {}) => {
163
+ const d = n.value.findIndex((g) => g.uuid === e.uuid);
164
+ d !== -1 && (n.value[d] = {
165
+ ...n.value[d],
166
+ fileStatus: l,
167
+ ...r
168
+ }, s(i.updateModelValue, n.value), s(i.change, n.value[d]));
169
+ }, H = (e) => {
170
+ s(i.delete, e);
171
+ };
172
+ return M(
173
+ () => t.modelValue,
174
+ (e) => {
175
+ Array.isArray(e) && (n.value = e);
176
+ },
177
+ { immediate: !0 }
178
+ ), a({
179
+ handleBeforeUpload: b,
180
+ httpRequest: q
181
+ }), (e, l) => (m(), f("div", lA, [
182
+ R(h(N), B({
183
+ ref_key: "uploadRef",
184
+ ref: j,
185
+ action: "#",
186
+ accept: C.value,
187
+ multiple: A.multiple,
188
+ disabled: A.disabled,
189
+ "before-upload": Z,
190
+ "http-request": q,
191
+ "show-file-list": !1,
192
+ "auto-upload": A.autoUpload,
193
+ drag: A.drag
194
+ }, e.$attrs, { class: "upload-wrapper" }), {
195
+ default: D(() => [
196
+ e.$slots.tip ? O(e.$slots, "tip", {
197
+ key: 0,
198
+ uploadTip: o.value
199
+ }, void 0, !0) : (m(), f(E, { key: 1 }, [
200
+ c("div", uA, [
201
+ c("div", nA, [
202
+ R(h(Y), {
203
+ src: h(aA),
204
+ class: "absolute image"
205
+ }, null, 8, ["src"])
206
+ ])
207
+ ]),
208
+ l[1] || (l[1] = c("div", { class: "text-262626 fz-14 weight-500" }, "点击或拖拽文件上传", -1)),
209
+ c("div", oA, [
210
+ c("span", null, x(o.value.formatAcceptText), 1),
211
+ o.value.formatMaxSize ? (m(), f("span", rA, "," + x(o.value.formatMaxSize), 1)) : U("", !0),
212
+ o.value.maxCount ? (m(), f("span", dA, "," + x(o.value.maxCount), 1)) : U("", !0)
213
+ ])
214
+ ], 64))
215
+ ]),
216
+ _: 3
217
+ }, 16, ["accept", "multiple", "disabled", "auto-upload", "drag"]),
218
+ n.value?.length && A.showFileList ? (m(), k(J, B({
219
+ key: 0,
220
+ modelValue: n.value,
221
+ "onUpdate:modelValue": l[0] || (l[0] = (r) => n.value = r),
222
+ "field-mapping": A.fieldMapping,
223
+ "show-delete": !A.disabled
224
+ }, e.$attrs, { onDelete: H }), null, 16, ["modelValue", "field-mapping", "show-delete"])) : U("", !0)
225
+ ]));
226
+ }
227
+ }), vA = /* @__PURE__ */ K(iA, [["__scopeId", "data-v-c9d51ce3"]]);
228
+ export {
229
+ vA as default
230
+ };
@@ -0,0 +1,150 @@
1
+ import { useCssVars as N, ref as O, watch as U, createElementBlock as u, createCommentVNode as v, openBlock as s, Fragment as x, renderList as j, normalizeClass as z, unref as o, createElementVNode as m, createBlock as f, normalizeStyle as T, withCtx as S, resolveDynamicComponent as E, toDisplayString as k, renderSlot as M, createVNode as R } from "vue";
2
+ import { ElImage as P, ElIcon as w } from "element-plus";
3
+ import { emitsMap as c, uploadFileTypeMap as F, uploadFileType as a } from "ling-yun-methods";
4
+ import { IconTxt as A, IconPpt as I, IconXls as b, IconDoc as _, IconPdf as G, IconDelete as K, IconOtherFile as X } from "color-message-lingyun-vue";
5
+ import { _ as q } from "./_plugin-vue_export-helper.CHgC5LLL.js";
6
+ import '../assets/layout6.css';const i = {
7
+ uploading: "uploading",
8
+ success: "success",
9
+ error: "error"
10
+ }, H = {
11
+ key: 0,
12
+ class: "file-list display-grid pd-t-12 pd-b-12"
13
+ }, J = { class: "flex overflow-hidden flex-1 pd-r-10" }, Q = { class: "pd-l-8 flex-1 overflow-hidden" }, W = ["title"], Y = { class: "fz-12 text-ellipsis lh-16" }, Z = {
14
+ key: 1,
15
+ class: "text-74798c"
16
+ }, ee = /* @__PURE__ */ Object.assign({
17
+ name: "FileList"
18
+ }, {
19
+ __name: "layout",
20
+ props: {
21
+ // 文件列表数据
22
+ modelValue: {
23
+ type: Array,
24
+ default: () => []
25
+ },
26
+ // 是否显示删除按钮
27
+ showDelete: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ // 字段映射配置
32
+ fieldMapping: {
33
+ type: Object,
34
+ default: () => ({
35
+ // fileName: 'fileName',
36
+ // fileUrl: 'fileUrl',
37
+ })
38
+ },
39
+ rowCount: {
40
+ type: Number,
41
+ default: 2
42
+ },
43
+ // 图标大小
44
+ iconSize: {
45
+ type: Number,
46
+ default: 36
47
+ }
48
+ },
49
+ emits: [c.delete, c.change, c.updateModelValue],
50
+ setup(l, { emit: B }) {
51
+ N((e) => ({
52
+ v7a4f6f21: l.rowCount
53
+ }));
54
+ const p = l, h = B, n = O(p.modelValue), C = Object.fromEntries(
55
+ Object.entries(F).map(([e, r]) => [r, e])
56
+ ), y = (e) => e[p.fieldMapping.fileUrl] ? e[p.fieldMapping.fileUrl] : e.raw && e.raw instanceof File ? URL.createObjectURL(e.raw) : e instanceof File ? URL.createObjectURL(e) : "", V = {
57
+ [a.pdf]: G,
58
+ [a.doc]: _,
59
+ [a.docx]: _,
60
+ [a.xls]: b,
61
+ [a.xlsx]: b,
62
+ [a.ppt]: I,
63
+ [a.pptx]: I,
64
+ [a.txt]: A,
65
+ other: X
66
+ }, $ = (e) => e?.includes("image"), D = (e) => {
67
+ const r = C[e];
68
+ return V[r] || F[other];
69
+ }, g = (e) => {
70
+ if (!e || e === 0) return "0 B";
71
+ const r = 1024, t = ["B", "KB", "MB", "GB"], d = Math.floor(Math.log(e) / Math.log(r));
72
+ return `${parseFloat((e / Math.pow(r, d)).toFixed(2))} ${t[d]}`;
73
+ }, L = (e, r) => {
74
+ n.value.splice(r, 1), h(c.delete, e), h(c.updateModelValue, n.value), h(c.change, n.value);
75
+ };
76
+ return U(
77
+ () => p.modelValue,
78
+ (e) => {
79
+ n.value = e;
80
+ },
81
+ { immediate: !0 }
82
+ ), (e, r) => n.value?.length ? (s(), u("div", H, [
83
+ (s(!0), u(x, null, j(n.value, (t, d) => (s(), u("div", {
84
+ key: d,
85
+ class: z(["pd-l-8 pd-r-8 pd-t-6 pd-b-6 radius-8 file-item overflow-hidden flex items-center", {
86
+ "bg-uploading": t.fileStatus === o(i).uploading,
87
+ "bg-fcfdff": t.fileStatus !== o(i).uploading,
88
+ "border-error": t.fileStatus === o(i).error,
89
+ "border-normal": t.fileStatus !== o(i).error
90
+ }])
91
+ }, [
92
+ m("div", J, [
93
+ $(t?.type) && y(t) ? (s(), f(o(P), {
94
+ key: 0,
95
+ src: y(t),
96
+ class: "radius-4",
97
+ fit: "cover",
98
+ style: T({ width: `${l.iconSize}px`, height: `${l.iconSize}px` })
99
+ }, null, 8, ["src", "style"])) : (s(), f(o(w), {
100
+ key: 1,
101
+ size: l.iconSize,
102
+ class: "pointer"
103
+ }, {
104
+ default: S(() => [
105
+ (s(), f(E(D(t?.type))))
106
+ ]),
107
+ _: 2
108
+ }, 1032, ["size"])),
109
+ m("div", Q, [
110
+ m("div", {
111
+ class: z(["fz-14 text-ellipsis lh-20 flex-1", {
112
+ "text-ec0e13": t.fileStatus === o(i).error,
113
+ "text-262626": t.fileStatus !== o(i).error
114
+ }]),
115
+ title: t[l.fieldMapping.fileName]
116
+ }, k(t[l.fieldMapping.fileName]), 11, W),
117
+ m("div", Y, [
118
+ e.$slots.status ? M(e.$slots, "status", {
119
+ key: 0,
120
+ file: t
121
+ }, void 0, !0) : (s(), u(x, { key: 1 }, [
122
+ e.$slots.size ? M(e.$slots, "size", {
123
+ key: 0,
124
+ file: t,
125
+ size: g(t.size)
126
+ }, void 0, !0) : (s(), u("span", Z, k(g(t.size)), 1))
127
+ ], 64))
128
+ ])
129
+ ])
130
+ ]),
131
+ l.showDelete ? (s(), f(o(w), {
132
+ key: 0,
133
+ size: 16,
134
+ color: t.fileStatus === o(i).error ? "var(--error-color-1)" : "var(--text-color-4)",
135
+ class: "pointer",
136
+ onClick: (te) => L(t, d)
137
+ }, {
138
+ default: S(() => [
139
+ R(o(K))
140
+ ]),
141
+ _: 1
142
+ }, 8, ["color", "onClick"])) : v("", !0)
143
+ ], 2))), 128))
144
+ ])) : v("", !0);
145
+ }
146
+ }), ie = /* @__PURE__ */ q(ee, [["__scopeId", "data-v-df7390ef"]]);
147
+ export {
148
+ ie as _,
149
+ i as u
150
+ };