@yeepay/yee-boss-ui 0.1.16 → 0.1.17

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 (61) hide show
  1. package/README.md +124 -59
  2. package/dist/PlatformConfigProvider-BwqlDDcK.js +34 -0
  3. package/dist/YeeDescriptions-BZ33odSs.js +128 -0
  4. package/dist/YeeEllipsisText-CR94Jym2.js +100 -0
  5. package/dist/YeeFileUpload-DvRN1D-j.js +196 -0
  6. package/dist/YeePage-Dbvn1TNi.js +99 -0
  7. package/dist/YeeTabs-BPzlkZy6.js +891 -0
  8. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  9. package/dist/app-shell.d.ts +2 -0
  10. package/dist/app-shell.js +20 -0
  11. package/dist/components/app-shell/YeeAppShell.vue.d.ts +28 -0
  12. package/dist/components/app-shell/YeeHeader.vue.d.ts +40 -0
  13. package/dist/components/app-shell/YeeMenu.vue.d.ts +32 -0
  14. package/dist/components/app-shell/YeeSidebar.vue.d.ts +35 -0
  15. package/dist/components/app-shell/YeeTabs.vue.d.ts +69 -0
  16. package/dist/components/app-shell/index.d.ts +6 -0
  17. package/dist/components/app-shell/types.d.ts +258 -0
  18. package/dist/components/app-shell/use-tabs-drag.d.ts +7 -0
  19. package/dist/components/app-shell/use-tabs-scroll.d.ts +15 -0
  20. package/dist/components/grid/types.d.ts +1 -4
  21. package/dist/components/grid/vxe-init.d.ts +1 -1
  22. package/dist/components/modal/YeeModal.vue.d.ts +3 -3
  23. package/dist/context-C5gszWl6.js +4 -0
  24. package/dist/context-DJQ4f46a.js +12 -0
  25. package/dist/core.d.ts +8 -0
  26. package/dist/core.js +14 -0
  27. package/dist/descriptions.d.ts +1 -0
  28. package/dist/descriptions.js +4 -0
  29. package/dist/ellipsis-text.d.ts +1 -0
  30. package/dist/ellipsis-text.js +4 -0
  31. package/dist/file-upload.d.ts +1 -0
  32. package/dist/file-upload.js +4 -0
  33. package/dist/form-api-DbIL_dvg.js +201 -0
  34. package/dist/form.d.ts +1 -0
  35. package/dist/form.js +5 -0
  36. package/dist/grid.d.ts +1 -0
  37. package/dist/grid.js +5 -0
  38. package/dist/index-DZP16zRG.js +261 -0
  39. package/dist/index-kF3hvw2Z.js +132 -0
  40. package/dist/index.d.ts +2 -4
  41. package/dist/index.js +36 -2206
  42. package/dist/modal.d.ts +1 -0
  43. package/dist/modal.js +4 -0
  44. package/dist/page.d.ts +1 -0
  45. package/dist/page.js +4 -0
  46. package/dist/platform-message-BgD7E-34.js +22 -0
  47. package/dist/select.d.ts +1 -0
  48. package/dist/select.js +4 -0
  49. package/dist/style.css +1 -1
  50. package/dist/use-yee-grid-CUkH4SGb.js +463 -0
  51. package/package.json +50 -13
  52. package/dist/components/file-preview/YeeFilePreview.vue.d.ts +0 -23
  53. package/dist/components/file-preview/index.d.ts +0 -2
  54. package/dist/components/file-preview/source.d.ts +0 -8
  55. package/dist/components/file-preview/types.d.ts +0 -70
  56. package/dist/components/file-preview/useFilePreview.d.ts +0 -31
  57. package/dist/docx-preview.min-lCFRKxYn.js +0 -4852
  58. package/dist/marked.esm-DaHdfxOj.js +0 -1563
  59. package/dist/postal-mime-CPJ2QXsD.js +0 -3219
  60. package/dist/purify.es-HJ4qIUVZ.js +0 -869
  61. package/dist/xlsx-CF422ARu.js +0 -24728
package/dist/index.js CHANGED
@@ -1,2208 +1,38 @@
1
- import { inject as Ve, defineComponent as re, computed as u, provide as Xe, openBlock as i, createBlock as A, unref as r, withCtx as R, createElementVNode as M, normalizeStyle as we, renderSlot as W, reactive as De, onBeforeUnmount as xe, mergeProps as se, createElementBlock as h, Fragment as Se, renderList as be, createTextVNode as ce, toDisplayString as Y, normalizeClass as ge, createCommentVNode as V, useTemplateRef as _e, shallowRef as O, onMounted as Fe, onUpdated as mt, watch as $e, nextTick as Te, ref as vt, createVNode as ie, withModifiers as yt, resolveDynamicComponent as ht, useSlots as Pe, onUnmounted as gt, withDirectives as bt, vShow as wt, toHandlers as _t, createSlots as ze, normalizeProps as Re, guardReactiveProps as Me, h as Ze, useModel as Ue, useAttrs as et, useId as xt, mergeModels as je } from "vue";
2
- import { ConfigProvider as Ct, message as He, Descriptions as Ge, Tooltip as pe, Upload as kt, Image as St, TreeSelect as Tt, TimeRangePicker as $t, TimePicker as Bt, Textarea as Ft, Switch as Et, Slider as Rt, Select as Ye, Segmented as Mt, Rate as Ot, RangePicker as zt, RadioGroup as Vt, Radio as Pt, Mentions as Nt, InputPassword as Ht, InputNumber as Lt, Input as At, DatePicker as Ut, CheckboxGroup as jt, Checkbox as It, Cascader as Dt, AutoComplete as Yt, Button as fe, Modal as tt, Drawer as Wt } from "ant-design-vue";
3
- import { r as qt, t as Gt, a as Kt } from "./tokens-Dw6w0SSs.js";
4
- import { d as ya, l as ha } from "./tokens-Dw6w0SSs.js";
5
- import { CheckOutlined as Jt, CopyOutlined as Qt, FullscreenExitOutlined as ot, FullscreenOutlined as nt, DownloadOutlined as Xt, CloseOutlined as Zt } from "@ant-design/icons-vue";
6
- import { VxeTable as eo, VxeColumn as to, VxeColgroup as oo, VxeGrid as at, VxeToolbar as no, VxeUI as Oe } from "vxe-table";
7
- import { VxeButton as ao, VxeCheckbox as lo, VxeIcon as io, VxeInput as so, VxeLoading as ro, VxeModal as uo, VxeNumberInput as co, VxePager as fo, VxeRadioGroup as po, VxeSelect as mo } from "vxe-pc-ui";
8
- const aa = "--yee-content-height", Ne = /* @__PURE__ */ Symbol("platform-theme");
9
- function la() {
10
- const o = Ve(Ne);
11
- if (!o)
12
- throw new Error("usePlatformTheme 必须在 PlatformConfigProvider 内使用。");
13
- return o;
14
- }
15
- const vo = ["data-theme"], yo = /* @__PURE__ */ re({
16
- name: "PlatformConfigProvider",
17
- __name: "PlatformConfigProvider",
18
- props: {
19
- theme: { default: () => ({}) }
20
- },
21
- setup(o) {
22
- const t = o, e = u(() => qt(t.theme)), n = u(() => Gt(e.value)), c = u(() => Kt(e.value));
23
- return Xe(Ne, e), (b, v) => (i(), A(r(Ct), {
24
- "prefix-cls": "yee",
25
- theme: n.value
26
- }, {
27
- default: R(() => [
28
- M("div", {
29
- class: "yee-ui-platform-theme",
30
- "data-theme": e.value.mode,
31
- style: we(c.value)
32
- }, [
33
- W(b.$slots, "default", {}, void 0, !0)
34
- ], 12, vo)
35
- ]),
36
- _: 3
37
- }, 8, ["theme"]));
38
- }
39
- }), me = (o, t) => {
40
- const e = o.__vccOpts || o;
41
- for (const [n, c] of t)
42
- e[n] = c;
43
- return e;
44
- }, ia = /* @__PURE__ */ me(yo, [["__scopeId", "data-v-7e0afdd9"]]);
45
- async function ho(o) {
46
- if (!o) return !1;
47
- try {
48
- return await navigator.clipboard.writeText(o), !0;
49
- } catch {
50
- const t = document.createElement("textarea");
51
- t.value = o, t.style.position = "fixed", t.style.opacity = "0", document.body.append(t), t.focus(), t.select();
52
- try {
53
- return document.execCommand("copy");
54
- } catch {
55
- return !1;
56
- } finally {
57
- t.remove();
58
- }
59
- }
60
- }
61
- function Le(o) {
62
- return {
63
- content: o,
64
- prefixCls: "yee-message",
65
- rootPrefixCls: "yee"
66
- };
67
- }
68
- const Be = {
69
- error(o) {
70
- return He.error(Le(o));
71
- },
72
- success(o) {
73
- return He.success(Le(o));
74
- },
75
- warning(o) {
76
- return He.warning(Le(o));
77
- }
78
- }, go = { class: "yee-ui-descriptions__item" }, bo = { class: "yee-ui-descriptions__content-row" }, wo = { class: "yee-ui-descriptions__value yee-ui-descriptions__value--ellipsis" }, _o = {
79
- key: 1,
80
- class: "yee-ui-descriptions__value"
81
- }, xo = ["aria-label", "disabled", "onClick"], Co = /* @__PURE__ */ re({
82
- name: "YeeDescriptions",
83
- __name: "YeeDescriptions",
84
- props: {
85
- bordered: { type: Boolean },
86
- colon: { type: Boolean, default: !0 },
87
- column: {},
88
- items: {},
89
- layout: {},
90
- size: {},
91
- title: {}
92
- },
93
- setup(o) {
94
- const t = o, e = u(() => t.bordered ?? !1), n = u(() => t.colon), c = u(() => t.column ?? 3), b = u(() => t.layout ?? "horizontal"), v = u(() => t.size ?? "default"), d = De(/* @__PURE__ */ new Set()), x = /* @__PURE__ */ new Set();
95
- function y($, z) {
96
- return $.name ?? `${$.label}-${z}`;
97
- }
98
- async function T($, z) {
99
- const p = String($.value ?? "");
100
- if (!p.trim()) {
101
- Be.warning("没有可复制的内容");
102
- return;
103
- }
104
- if (!await ho(p)) {
105
- Be.error("复制失败");
106
- return;
107
- }
108
- d.add(z), Be.success("已复制");
109
- const F = setTimeout(() => {
110
- d.delete(z), x.delete(F);
111
- }, 1500);
112
- x.add(F);
113
- }
114
- return xe(() => {
115
- x.forEach(($) => clearTimeout($)), x.clear();
116
- }), ($, z) => (i(), A(r(Ge), se({
117
- class: "yee-ui-descriptions",
118
- bordered: e.value,
119
- colon: n.value,
120
- column: c.value,
121
- layout: b.value,
122
- size: v.value
123
- }, t.title === void 0 ? {} : { title: t.title }), {
124
- default: R(() => [
125
- (i(!0), h(Se, null, be(o.items, (p, F) => (i(), A(r(Ge).Item, {
126
- key: y(p, F),
127
- label: p.label,
128
- span: p.span ?? 1
129
- }, {
130
- default: R(() => [
131
- M("div", go, [
132
- M("div", bo, [
133
- p.ellipsis ? (i(), A(r(pe), {
134
- key: 0,
135
- title: String(p.value ?? "")
136
- }, {
137
- default: R(() => [
138
- M("span", wo, [
139
- W($.$slots, `content-${p.name ?? p.label}`, { item: p }, () => [
140
- ce(Y(p.value), 1)
141
- ], !0)
142
- ])
143
- ]),
144
- _: 2
145
- }, 1032, ["title"])) : (i(), h("span", _o, [
146
- W($.$slots, `content-${p.name ?? p.label}`, { item: p }, () => [
147
- ce(Y(p.value), 1)
148
- ], !0)
149
- ])),
150
- p.copyable ? (i(), A(r(pe), {
151
- key: 2,
152
- title: d.has(y(p, F)) ? "已复制" : "复制"
153
- }, {
154
- default: R(() => [
155
- M("button", {
156
- class: ge(["yee-ui-descriptions__copy", { "yee-ui-descriptions__copy--copied": d.has(y(p, F)) }]),
157
- "aria-label": d.has(y(p, F)) ? "已复制" : "复制",
158
- disabled: d.has(y(p, F)),
159
- type: "button",
160
- onClick: (q) => T(p, y(p, F))
161
- }, [
162
- d.has(y(p, F)) ? (i(), A(r(Jt), { key: 0 })) : (i(), A(r(Qt), { key: 1 }))
163
- ], 10, xo)
164
- ]),
165
- _: 2
166
- }, 1032, ["title"])) : V("", !0)
167
- ]),
168
- p.info ? (i(), h("span", {
169
- key: 0,
170
- class: "yee-ui-descriptions__info",
171
- style: we(p.infoStyle)
172
- }, Y(p.info), 5)) : V("", !0)
173
- ])
174
- ]),
175
- _: 2
176
- }, 1032, ["label", "span"]))), 128))
177
- ]),
178
- _: 3
179
- }, 16, ["bordered", "colon", "column", "layout", "size"]));
180
- }
181
- }), sa = /* @__PURE__ */ me(Co, [["__scopeId", "data-v-cd55dc37"]]), ko = ["aria-expanded", "role", "tabindex"], So = /* @__PURE__ */ re({
182
- inheritAttrs: !1,
183
- name: "YeeEllipsisText",
184
- __name: "YeeEllipsisText",
185
- props: {
186
- expand: { type: Boolean, default: !1 },
187
- ellipsisThreshold: { default: 3 },
188
- line: { default: 1 },
189
- maxWidth: { default: "100%" },
190
- placement: { default: "top" },
191
- tooltip: { type: Boolean, default: !0 },
192
- tooltipBackgroundColor: {},
193
- tooltipColor: {},
194
- tooltipFontSize: {},
195
- tooltipMaxWidth: {},
196
- tooltipOverlayStyle: { default: () => ({ textAlign: "justify" }) },
197
- tooltipWhenEllipsis: { type: Boolean, default: !1 }
198
- },
199
- emits: ["expandChange"],
200
- setup(o, { emit: t }) {
201
- const e = o, n = t, c = Ve(Ne, void 0), b = _e("text"), v = O(!1), d = O(!1), x = O(0), y = u(() => Number.isFinite(e.line) ? Math.max(1, Math.floor(e.line)) : 1), T = u(() => Number.isFinite(e.ellipsisThreshold) ? Math.max(0, e.ellipsisThreshold) : 3), $ = u(() => typeof e.maxWidth == "number" ? `${e.maxWidth}px` : e.maxWidth), z = u(() => {
202
- const _ = { maxWidth: $.value };
203
- return !d.value && y.value > 1 && (_.webkitLineClamp = y.value), _;
204
- }), p = u(() => ({
205
- "yee-ui-ellipsis-text--expandable": e.expand,
206
- "yee-ui-ellipsis-text--expanded": d.value,
207
- "yee-ui-ellipsis-text--multi-line": !d.value && y.value > 1,
208
- "yee-ui-ellipsis-text--single-line": !d.value && y.value === 1
209
- })), F = u(() => e.tooltipMaxWidth !== void 0 ? e.tooltipMaxWidth : x.value > 0 ? x.value + 24 : void 0), q = u(() => {
210
- const _ = {};
211
- return F.value !== void 0 && (_.maxWidth = `${F.value}px`), _;
212
- }), N = u(() => {
213
- const _ = {
214
- ...e.tooltipOverlayStyle,
215
- backgroundColor: U.value,
216
- color: e.tooltipColor || c?.value.tokens.popoverForeground || "var(--yee-popover-foreground)",
217
- fontSize: e.tooltipFontSize === void 0 ? c ? `${c.value.tokens.fontSize}px` : "var(--yee-font-size)" : `${e.tooltipFontSize}px`
218
- };
219
- return F.value !== void 0 && (_.maxWidth = `${F.value}px`), _;
220
- }), U = u(() => e.tooltipBackgroundColor || c?.value.tokens.popover || "var(--yee-popover)"), G = u(() => e.tooltip && !d.value && (!e.tooltipWhenEllipsis || v.value)), S = u(() => G.value ? {} : { open: !1 });
221
- let a;
222
- function C() {
223
- const _ = b.value;
224
- if (!_) return;
225
- const H = _.getBoundingClientRect().width || _.clientWidth;
226
- if (x.value = Math.ceil(H), !e.tooltipWhenEllipsis || d.value || !_.textContent?.trim()) {
227
- v.value = !1;
228
- return;
229
- }
230
- const m = y.value === 1 ? _.scrollWidth - _.clientWidth : _.scrollHeight - _.clientHeight;
231
- v.value = m > T.value;
232
- }
233
- function B() {
234
- e.expand && (d.value = !d.value, n("expandChange", d.value), Te(C));
235
- }
236
- function j(_) {
237
- !e.expand || _.key !== "Enter" && _.key !== " " || (_.preventDefault(), B());
238
- }
239
- return Fe(() => {
240
- const _ = b.value;
241
- _ && typeof ResizeObserver < "u" && (a = new ResizeObserver(C), a.observe(_)), C();
242
- }), mt(C), $e(() => e.expand, (_) => {
243
- _ || (d.value = !1);
244
- }), xe(() => {
245
- a?.disconnect(), a = void 0;
246
- }), (_, H) => (i(), A(r(pe), se(S.value, {
247
- color: U.value,
248
- "overlay-inner-style": N.value,
249
- "overlay-style": q.value,
250
- placement: e.placement
251
- }), {
252
- title: R(() => [
253
- W(_.$slots, "tooltip", {}, () => [
254
- W(_.$slots, "default", {}, void 0, !0)
255
- ], !0)
256
- ]),
257
- default: R(() => [
258
- M("div", se({ ref: "text" }, _.$attrs, {
259
- "aria-expanded": e.expand ? d.value : void 0,
260
- class: ["yee-ui-ellipsis-text", p.value],
261
- role: e.expand ? "button" : void 0,
262
- style: z.value,
263
- tabindex: e.expand ? 0 : void 0,
264
- onClick: B,
265
- onKeydown: j
266
- }), [
267
- W(_.$slots, "default", {}, void 0, !0)
268
- ], 16, ko)
269
- ]),
270
- _: 3
271
- }, 16, ["color", "overlay-inner-style", "overlay-style", "placement"]));
272
- }
273
- }), ra = /* @__PURE__ */ me(So, [["__scopeId", "data-v-3aaa7ae9"]]), To = { class: "yee-ui-file-upload" }, $o = {
274
- key: 1,
275
- class: "yee-ui-file-upload__empty"
276
- }, Bo = {
277
- key: 2,
278
- class: "yee-ui-file-upload__preview"
279
- }, Fo = /* @__PURE__ */ re({
280
- name: "YeeFileUpload",
281
- __name: "YeeFileUpload",
282
- props: {
283
- accept: {},
284
- customRequest: { type: Function },
285
- fileList: {},
286
- height: {},
287
- manual: { type: Boolean },
288
- maxCount: {},
289
- maxSize: {},
290
- multiple: { type: Boolean },
291
- readonly: { type: Boolean },
292
- uploadText: {},
293
- width: {}
294
- },
295
- emits: ["fileRemoved", "fileSelect", "update:fileList", "uploadSuccess", "uploadingChange"],
296
- setup(o, { expose: t, emit: e }) {
297
- const n = o, c = e, b = vt([]), v = O(!1), d = O(""), x = u(() => n.fileList ?? []), y = u(() => n.height ?? 100), T = u(() => n.manual ?? !1), $ = u(() => n.maxCount ?? 10), z = u(() => n.maxSize ?? 20), p = u(() => n.multiple ?? !1), F = u(() => n.readonly ?? !1), q = u(() => n.uploadText ?? "上传文件"), N = u(() => n.width ?? 100), U = u(() => ({
298
- height: S(y.value),
299
- width: S(N.value)
300
- })), G = u(() => b.value.some((s) => s.status === "uploading"));
301
- $e(
302
- x,
303
- (s) => {
304
- b.value = s.map((k) => ({ ...k })), d.value && !s.some((k) => k.url === d.value || k.thumbUrl === d.value) && m();
305
- },
306
- { immediate: !0 }
307
- ), $e(G, (s) => c("uploadingChange", s), { immediate: !0 });
308
- function S(s) {
309
- return typeof s == "number" ? `${s}px` : s;
310
- }
311
- function a() {
312
- c("update:fileList", b.value.map((s) => ({ ...s })));
313
- }
314
- function C(s) {
315
- return s < 1024 ? `${s}B` : s < 1024 * 1024 ? `${(s / 1024).toFixed(2)}KB` : `${(s / (1024 * 1024)).toFixed(2)}MB`;
316
- }
317
- function B(s) {
318
- return s.size <= z.value * 1024 * 1024 ? !1 : (Be.error(`文件大小不能超过 ${z.value}MB,当前为 ${C(s.size)}`), !0);
319
- }
320
- function j(s) {
321
- return s.type?.startsWith("image/") ?? /\.(avif|gif|jpe?g|png|svg|webp)(\?.*)?$/i.test(s.url ?? "");
322
- }
323
- function _(s) {
324
- const k = j(s), L = s.url ?? (k ? s.thumbUrl : void 0);
325
- if (L) {
326
- if (k) {
327
- d.value = L, v.value = !0;
328
- return;
329
- }
330
- window.open(L, "_blank", "noopener,noreferrer");
331
- }
332
- }
333
- function H(s) {
334
- v.value = s, s || (d.value = "");
335
- }
336
- function m() {
337
- v.value = !1, d.value = "";
338
- }
339
- function f(s, k, L) {
340
- s.status = "done", s.percent = 100, k?.name && (s.name = k.name), k?.url && (s.url = k.url), a(), L(k), c("uploadSuccess");
341
- }
342
- function E(s, k, L) {
343
- s.status = "error", a(), L(k);
344
- }
345
- function Z(s, k, L, ne) {
346
- const ae = b.value.find((X) => X.uid === k);
347
- if (!ae) return;
348
- if (ae.status = "uploading", ae.percent = 0, a(), !n.customRequest) {
349
- const X = new Error("未配置 customRequest");
350
- Be.error(X.message), E(ae, X, ne);
351
- return;
352
- }
353
- let de = !1;
354
- const ve = {
355
- file: s,
356
- onError: (X) => {
357
- de || (de = !0, E(ae, X, ne));
358
- },
359
- onProgress: (X) => {
360
- de || (ae.percent = Math.min(100, Math.max(0, X)), a());
361
- },
362
- onSuccess: (X) => {
363
- de || (de = !0, f(ae, X, L));
364
- },
365
- uid: k
366
- };
367
- try {
368
- Promise.resolve(n.customRequest(ve)).catch((X) => {
369
- ve.onError(X instanceof Error ? X : new Error("上传失败"));
370
- });
371
- } catch (X) {
372
- ve.onError(X instanceof Error ? X : new Error("上传失败"));
373
- }
374
- }
375
- const oe = (s) => B(s) || T.value ? !1 : n.customRequest ? !0 : (Be.error("未配置 customRequest"), !1);
376
- function ue(s) {
377
- const k = s.file instanceof File ? s.file : void 0;
378
- if (!k || B(k)) {
379
- s.onError?.(new Error("文件大小超过限制"));
380
- return;
381
- }
382
- const L = k.uid ?? String(Date.now());
383
- Z(k, L, s.onSuccess ?? (() => {
384
- }), s.onError ?? (() => {
385
- }));
386
- }
387
- function Ce(s) {
388
- if (!s || typeof s != "object") return;
389
- const k = s, L = typeof k.name == "string" ? k.name : void 0, ne = typeof k.url == "string" ? k.url : void 0;
390
- if (!(!L && !ne))
391
- return {
392
- ...L ? { name: L } : {},
393
- ...ne ? { url: ne } : {}
394
- };
395
- }
396
- function ke(s) {
397
- if (b.value = s.fileList.map((L) => {
398
- const ne = b.value.find((ve) => ve.uid === L.uid), ae = Ce(L.response), de = L.url ?? ae?.url ?? ne?.url;
399
- return {
400
- ...ne,
401
- ...L,
402
- name: ae?.name ?? ne?.name ?? L.name,
403
- ...de ? { url: de } : {}
404
- };
405
- }), a(), !T.value) return;
406
- const k = b.value.at(-1);
407
- k?.originFileObj instanceof File && c("fileSelect", { file: k.originFileObj, uid: k.uid });
408
- }
409
- function Ee(s) {
410
- (s.url === d.value || s.thumbUrl === d.value) && m(), c("fileRemoved", s);
411
- }
412
- function Q(s, k) {
413
- const L = b.value.find((ne) => ne.uid === s);
414
- L && f(L, k, () => {
415
- });
416
- }
417
- function te(s) {
418
- const k = b.value.find((L) => L.uid === s);
419
- k && E(k, new Error("上传失败"), () => {
420
- });
421
- }
422
- function I() {
423
- return b.value.flatMap((s) => s.originFileObj instanceof File ? [s.originFileObj] : []);
424
- }
425
- return t({ addError: te, addResult: Q, getFiles: I }), (s, k) => (i(), h("div", To, [
426
- !F.value || b.value.length > 0 ? (i(), A(r(kt), se({ key: 0 }, o.accept ? { accept: o.accept } : {}, {
427
- "before-upload": oe,
428
- "custom-request": ue,
429
- "file-list": b.value,
430
- "max-count": $.value,
431
- multiple: p.value,
432
- "show-upload-list": { showRemoveIcon: !F.value },
433
- "list-type": "picture-card",
434
- onChange: ke,
435
- onPreview: _,
436
- onRemove: Ee
437
- }), {
438
- default: R(() => [
439
- !F.value && b.value.length < $.value ? (i(), h("div", {
440
- key: 0,
441
- class: "yee-ui-file-upload__trigger",
442
- style: we(U.value)
443
- }, [
444
- k[0] || (k[0] = M("span", {
445
- class: "yee-ui-file-upload__trigger-sign",
446
- "aria-hidden": "true"
447
- }, "+", -1)),
448
- M("span", null, Y(q.value), 1)
449
- ], 4)) : V("", !0)
450
- ]),
451
- _: 1
452
- }, 16, ["file-list", "max-count", "multiple", "show-upload-list"])) : (i(), h("span", $o, "暂无文件")),
453
- d.value ? (i(), h("span", Bo, [
454
- ie(r(St), {
455
- preview: { visible: v.value, onVisibleChange: H },
456
- src: d.value
457
- }, null, 8, ["preview", "src"])
458
- ])) : V("", !0)
459
- ]));
460
- }
461
- }), Eo = /* @__PURE__ */ me(Fo, [["__scopeId", "data-v-ac555a97"]]), Ke = {
462
- aac: "audio",
463
- avif: "image",
464
- bmp: "image",
465
- csv: "csv",
466
- doc: "unsupported",
467
- docx: "docx",
468
- eml: "eml",
469
- gif: "image",
470
- htm: "html",
471
- html: "html",
472
- jpeg: "image",
473
- jpg: "image",
474
- json: "json",
475
- m4a: "audio",
476
- md: "markdown",
477
- markdown: "markdown",
478
- mkv: "video",
479
- mov: "video",
480
- mp3: "audio",
481
- mp4: "video",
482
- ogg: "audio",
483
- pdf: "pdf",
484
- png: "image",
485
- svg: "image",
486
- text: "text",
487
- tif: "image",
488
- tiff: "image",
489
- ts: "video",
490
- txt: "text",
491
- wav: "audio",
492
- webm: "video",
493
- webp: "image",
494
- xls: "spreadsheet",
495
- xlsx: "spreadsheet",
496
- xml: "xml"
497
- }, Ro = [
498
- [/^audio\//i, "audio"],
499
- [/^image\//i, "image"],
500
- [/^video\//i, "video"],
501
- [/application\/json/i, "json"],
502
- [/application\/pdf/i, "pdf"],
503
- [/application\/vnd\.ms-excel/i, "spreadsheet"],
504
- [/application\/vnd\.openxmlformats-officedocument\.spreadsheetml\.sheet/i, "spreadsheet"],
505
- [/application\/vnd\.openxmlformats-officedocument\.wordprocessingml\.document/i, "docx"],
506
- [/message\/rfc822/i, "eml"],
507
- [/text\/csv/i, "csv"],
508
- [/text\/html/i, "html"],
509
- [/text\/markdown/i, "markdown"],
510
- [/text\/plain/i, "text"],
511
- [/text\/xml/i, "xml"]
512
- ];
513
- function Mo(o) {
514
- return String(o ?? "").trim().toLowerCase().split(";", 1)[0] ?? "";
515
- }
516
- function Oo(o) {
517
- const t = String(o ?? "").trim().split(/[?#]/, 1)[0] ?? "";
518
- return ((t.split("/").at(-1) ?? t).split(".").at(-1) ?? "").toLowerCase();
519
- }
520
- function lt(o) {
521
- if (typeof o != "string")
522
- return typeof File < "u" && o instanceof File ? o.name : "";
523
- const e = (o.trim().split(/[?#]/, 1)[0] ?? "").split("/").at(-1) ?? "";
524
- try {
525
- return decodeURIComponent(e);
526
- } catch {
527
- return e;
528
- }
529
- }
530
- function Ae(o) {
531
- const t = Mo(o);
532
- if (t)
533
- return Ke[t] ? Ke[t] : Ro.find(([e]) => e.test(t))?.[1];
534
- }
535
- function zo(o, t, e) {
536
- const n = Ae(e);
537
- if (n) return n;
538
- const c = typeof File < "u" && o instanceof File || typeof Blob < "u" && o instanceof Blob ? Ae(o.type) : void 0;
539
- return c || (Ae(Oo(t || lt(o))) ?? "unsupported");
540
- }
541
- function Vo(o) {
542
- return typeof Blob < "u" && o instanceof Blob || o instanceof ArrayBuffer;
543
- }
544
- function Je(o) {
545
- return o instanceof Blob ? o : new Blob([o]);
546
- }
547
- const Po = 50 * 1024 * 1024, No = 200, Ho = 50;
548
- function Lo(o, t, e) {
549
- const n = O("idle"), c = O(""), b = O(""), v = O(""), d = O(""), x = O(""), y = O([]), T = O([]), $ = O(""), z = O(""), p = O(!1), F = O({ kind: "unsupported", fileName: "" }), q = O(), N = O(0), U = O(), G = u(() => o.source ?? o.url), S = u(() => String(o.fileName ?? "").trim() || lt(G.value) || "未命名文件"), a = u(() => F.value.kind), C = u(() => n.value === "loading"), B = u(() => n.value === "ready"), j = u(() => n.value === "error"), _ = u(() => n.value === "unsupported");
550
- function H() {
551
- q.value && (URL.revokeObjectURL(q.value), q.value = void 0);
552
- }
553
- function m() {
554
- U.value?.abort(), U.value = void 0;
555
- }
556
- function f() {
557
- m(), H(), n.value = "idle", c.value = "", b.value = "", v.value = "", d.value = "", x.value = "", y.value = [], T.value = [], $.value = "", z.value = "", p.value = !1, F.value = { kind: "unsupported", fileName: S.value };
558
- }
559
- function E(l) {
560
- const g = URL.createObjectURL(Je(l));
561
- return q.value = g, g;
562
- }
563
- function Z() {
564
- const l = G.value;
565
- return typeof l == "string" ? l.trim() : Vo(l) ? E(l) : "";
566
- }
567
- function oe() {
568
- const l = Number(o.maxFileSize);
569
- return Number.isFinite(l) && l > 0 ? l : Po;
570
- }
571
- function ue() {
572
- const l = Number(o.maxRows);
573
- return Number.isFinite(l) && l > 0 ? Math.floor(l) : No;
574
- }
575
- function Ce() {
576
- const l = Number(o.maxColumns);
577
- return Number.isFinite(l) && l > 0 ? Math.floor(l) : Ho;
578
- }
579
- function ke(l) {
580
- if (l > oe())
581
- throw new Error(`文件超过 ${Math.round(oe() / 1024 / 1024)}MB 限制`);
582
- }
583
- function Ee() {
584
- m(), N.value += 1;
585
- const l = typeof AbortController == "function" ? new AbortController() : void 0;
586
- return U.value = l, { token: N.value, signal: l?.signal };
587
- }
588
- function Q(l) {
589
- return l === N.value;
590
- }
591
- async function te(l) {
592
- if (!l.ok) throw new Error(`文件加载失败(${l.status})`);
593
- const g = Number(l.headers.get("content-length"));
594
- Number.isFinite(g) && ke(g);
595
- const w = await l.arrayBuffer();
596
- return ke(w.byteLength), w;
597
- }
598
- async function I(l) {
599
- const g = G.value;
600
- if (g instanceof Blob || g instanceof ArrayBuffer) {
601
- const D = Je(g);
602
- return ke(D.size), D.arrayBuffer();
603
- }
604
- const w = typeof g == "string" ? g.trim() : "";
605
- if (!w) throw new Error("未提供文件地址或文件内容");
606
- const P = {};
607
- return l && (P.signal = l), te(await fetch(w, P));
608
- }
609
- async function s(l) {
610
- const g = await I(l);
611
- return new TextDecoder().decode(g).replace(/^\uFEFF/, "");
612
- }
613
- async function k(l) {
614
- const g = await import("./purify.es-HJ4qIUVZ.js");
615
- return (typeof g.default == "function" ? g.default(typeof window > "u" ? void 0 : window) : g.default).sanitize(l);
616
- }
617
- async function L(l) {
618
- const g = await s(l), [w, P] = await Promise.all([
619
- import("./marked.esm-DaHdfxOj.js"),
620
- import("./purify.es-HJ4qIUVZ.js")
621
- ]), D = w.marked.parse(g, { breaks: !0, gfm: !0 }), J = typeof P.default == "function" ? P.default(typeof window > "u" ? void 0 : window) : P.default;
622
- v.value = J.sanitize(D);
623
- }
624
- async function ne(l) {
625
- d.value = await k(await s(l));
626
- }
627
- function ae(l) {
628
- let g = "";
629
- for (let P = 0; P < l.length; P += 32768)
630
- g += String.fromCharCode(...l.subarray(P, P + 32768));
631
- return btoa(g);
632
- }
633
- function de(l) {
634
- let g;
635
- if (typeof l.content == "string")
636
- g = l.encoding === "base64" ? l.content.replace(/\s/g, "") : ae(new TextEncoder().encode(l.content));
637
- else {
638
- const w = l.content instanceof Uint8Array ? l.content : new Uint8Array(l.content);
639
- g = ae(w);
640
- }
641
- return `data:${l.mimeType || "application/octet-stream"};base64,${g}`;
642
- }
643
- function ve(l) {
644
- const g = l.trim().replace(/^cid:/i, "").replace(/^<|>$/g, "");
645
- try {
646
- return decodeURIComponent(g).toLowerCase();
647
- } catch {
648
- return g.toLowerCase();
649
- }
650
- }
651
- function X(l, g) {
652
- const w = /* @__PURE__ */ new Map();
653
- for (const D of g) {
654
- if (!/^image\//i.test(D.mimeType)) continue;
655
- const J = de(D);
656
- D.contentId && w.set(ve(D.contentId), J), D.filename && w.set(ve(D.filename), J);
657
- }
658
- if (!w.size || typeof DOMParser > "u") return l;
659
- const P = new DOMParser().parseFromString(l, "text/html");
660
- return P.querySelectorAll("[src]").forEach((D) => {
661
- const J = D.getAttribute("src") ?? "", K = ve(/^cid:/i.test(J) ? J.slice(4) : J), ee = w.get(K);
662
- ee && D.setAttribute("src", ee);
663
- }), P.body.innerHTML;
664
- }
665
- function rt(l) {
666
- try {
667
- return JSON.stringify(JSON.parse(l), null, 2);
668
- } catch {
669
- return l;
670
- }
671
- }
672
- function ut(l) {
673
- const g = l.replace(/^\uFEFF/, ""), w = g.split(/\r?\n/, 1)[0] ?? "", D = [" ", ",", ";"].map((le) => ({ candidate: le, count: w.split(le).length - 1 })).sort((le, he) => he.count - le.count)[0]?.candidate ?? ",", J = [];
674
- let K = [], ee = "", ye = !1;
675
- for (let le = 0; le < g.length; le += 1) {
676
- const he = g[le], qe = g[le + 1];
677
- he === '"' ? ye && qe === '"' ? (ee += '"', le += 1) : ye = !ye : he === D && !ye ? (K.push(ee), ee = "") : (he === `
678
- ` || he === "\r") && !ye ? (he === "\r" && qe === `
679
- ` && (le += 1), K.push(ee), J.push(K), K = [], ee = "") : ee += he;
680
- }
681
- return (ee || K.length) && (K.push(ee), J.push(K)), J;
682
- }
683
- async function ct(l) {
684
- const g = await import("./xlsx-CF422ARu.js"), w = g.read(await I(l), { type: "array" }), P = w.SheetNames[0], D = P ? w.Sheets[P] : void 0;
685
- if (!D) throw new Error("Excel 文件没有可展示的工作表");
686
- const J = g.utils.sheet_to_json(D, {
687
- defval: "",
688
- header: 1,
689
- raw: !1
690
- }), K = ue(), ee = Ce();
691
- p.value = J.length > K || J.some((ye) => ye.length > ee), y.value = J.slice(0, K).map((ye) => ({
692
- cells: ye.slice(0, ee).map((le) => String(le ?? ""))
693
- }));
694
- }
695
- async function dt(l) {
696
- const w = await (await import("./postal-mime-CPJ2QXsD.js")).default.parse(await I(l)), P = (K) => {
697
- if (Array.isArray(K)) return K.map(P).filter(Boolean).join("; ");
698
- if (!K || typeof K != "object") return String(K ?? "");
699
- const ee = K;
700
- return [ee.name, ee.address].filter(Boolean).join(" ");
701
- };
702
- T.value = [
703
- { label: "发件人", value: P(w.from) || "-" },
704
- { label: "收件人", value: P(w.to) || "-" },
705
- { label: "主题", value: w.subject || "-" },
706
- { label: "时间", value: w.date || "-" }
707
- ], z.value = w.text || "";
708
- const D = w.attachments, J = w.html ? await k(w.html) : "";
709
- $.value = J ? X(J, D) : "";
710
- }
711
- async function ft(l, g) {
712
- if (await Te(), !Q(l)) return;
713
- const w = t.docxContainer.value;
714
- if (!w) throw new Error("DOCX 预览容器未就绪");
715
- const P = await import("./docx-preview.min-lCFRKxYn.js").then((D) => D.d);
716
- w.replaceChildren(), await P.renderAsync(await I(g), w, void 0, {
717
- breakPages: !0,
718
- ignoreWidth: !1,
719
- inWrapper: !0
720
- });
721
- }
722
- async function pt(l, g, w) {
723
- if (l === "text" && (x.value = await s(w)), l === "json" && (x.value = rt(await s(w))), l === "xml" && (x.value = await s(w)), l === "csv") {
724
- const P = ut(await s(w)), D = ue(), J = Ce();
725
- p.value = P.length > D || P.some((K) => K.length > J), y.value = P.slice(0, D).map((K) => ({
726
- cells: K.slice(0, J)
727
- }));
728
- }
729
- l === "markdown" && await L(w), l === "html" && await ne(w), l === "spreadsheet" && await ct(w), l === "eml" && await dt(w), l === "docx" && await ft(g, w);
730
- }
731
- async function We() {
732
- f();
733
- const l = G.value;
734
- if (l === void 0 || l === "") return;
735
- const g = zo(l, o.fileName, o.fileType);
736
- if (F.value = { kind: g, fileName: S.value }, b.value = Z(), g === "unsupported") {
737
- n.value = "unsupported", e("unsupported", {
738
- kind: g,
739
- message: "该文件类型暂不支持在线预览"
740
- });
741
- return;
742
- }
743
- const w = Ee();
744
- n.value = "loading";
745
- try {
746
- if (["image", "pdf", "video", "audio"].includes(g))
747
- n.value = "ready";
748
- else {
749
- if (await pt(g, w.token, w.signal), !Q(w.token)) return;
750
- n.value = "ready";
751
- }
752
- e("load", { kind: g, fileName: S.value });
753
- } catch (P) {
754
- if (!Q(w.token)) return;
755
- n.value = "error", c.value = P instanceof Error ? P.message : "文件预览失败", e("error", { kind: g, message: c.value, cause: P });
756
- }
757
- }
758
- return $e(
759
- () => [o.source, o.url, o.fileName, o.fileType],
760
- () => {
761
- We();
762
- },
763
- { immediate: !0 }
764
- ), xe(() => {
765
- N.value += 1, m(), H();
766
- }), {
767
- displayUrl: b,
768
- emailHtml: $,
769
- emailMeta: T,
770
- emailText: z,
771
- errorMessage: c,
772
- fileName: S,
773
- htmlContent: d,
774
- isError: j,
775
- isLoading: C,
776
- isReady: B,
777
- isUnsupported: _,
778
- kind: a,
779
- load: We,
780
- markdownHtml: v,
781
- status: n,
782
- tableRows: y,
783
- textContent: x,
784
- truncated: p
785
- };
786
- }
787
- const Ao = ["aria-busy"], Uo = {
788
- key: 0,
789
- class: "yee-ui-file-preview__header"
790
- }, jo = ["title"], Io = { class: "yee-ui-file-preview__header-actions" }, Do = ["aria-label", "aria-pressed"], Yo = ["aria-label", "aria-busy", "disabled"], Wo = {
791
- key: 1,
792
- class: "yee-ui-file-preview__download-error",
793
- role: "alert"
794
- }, qo = {
795
- key: 2,
796
- class: "yee-ui-file-preview__empty"
797
- }, Go = {
798
- key: 3,
799
- class: "yee-ui-file-preview__loading"
800
- }, Ko = {
801
- key: 4,
802
- class: "yee-ui-file-preview__empty"
803
- }, Jo = {
804
- key: 5,
805
- class: "yee-ui-file-preview__empty"
806
- }, Qo = ["src", "alt"], Xo = ["src", "title"], Zo = ["src"], en = ["src"], tn = {
807
- key: 4,
808
- class: "yee-ui-file-preview__text"
809
- }, on = ["innerHTML"], nn = ["srcdoc", "title"], an = {
810
- key: 8,
811
- class: "yee-ui-file-preview__table-wrap"
812
- }, ln = {
813
- key: 0,
814
- class: "yee-ui-file-preview__table"
815
- }, sn = {
816
- key: 1,
817
- class: "yee-ui-file-preview__empty-inline"
818
- }, rn = {
819
- key: 2,
820
- class: "yee-ui-file-preview__tip"
821
- }, un = {
822
- key: 9,
823
- class: "yee-ui-file-preview__email"
824
- }, cn = {
825
- key: 0,
826
- class: "yee-ui-file-preview__email-meta"
827
- }, dn = ["srcdoc", "title"], fn = {
828
- key: 2,
829
- class: "yee-ui-file-preview__text"
830
- }, pn = /* @__PURE__ */ re({
831
- name: "YeeFilePreview",
832
- __name: "YeeFilePreview",
833
- props: {
834
- source: {},
835
- url: {},
836
- fileName: {},
837
- fileType: {},
838
- height: {},
839
- maxFileSize: { default: 50 * 1024 * 1024 },
840
- maxRows: { default: 200 },
841
- maxColumns: { default: 50 },
842
- showHeader: { type: Boolean, default: !0 },
843
- showDownload: { type: Boolean, default: !0 },
844
- alt: { default: "文件预览" }
845
- },
846
- emits: ["download", "error", "load", "unsupported"],
847
- setup(o, { emit: t }) {
848
- const e = o, n = t, c = _e("previewContainer"), b = _e("docxContainer"), v = O(!1), d = O(""), x = O(!1), {
849
- displayUrl: y,
850
- emailHtml: T,
851
- emailMeta: $,
852
- emailText: z,
853
- errorMessage: p,
854
- fileName: F,
855
- htmlContent: q,
856
- isError: N,
857
- isLoading: U,
858
- isReady: G,
859
- isUnsupported: S,
860
- kind: a,
861
- markdownHtml: C,
862
- tableRows: B,
863
- textContent: j,
864
- truncated: _
865
- } = Lo(e, { docxContainer: b }, n), H = u(() => e.height === void 0 || e.height === null || e.height === "" ? {} : {
866
- height: typeof e.height == "number" ? `${e.height}px` : e.height
867
- }), m = u(() => !!y.value), f = u(() => ["image", "pdf", "video", "audio"].includes(a.value)), E = u(() => a.value === "csv" || a.value === "spreadsheet"), Z = u(() => a.value === "eml");
868
- $e(
869
- () => [e.source, e.url, e.fileName, e.fileType],
870
- () => {
871
- d.value = "";
872
- }
873
- );
874
- function oe() {
875
- n("error", {
876
- kind: a.value,
877
- message: "文件预览失败"
878
- });
879
- }
880
- async function ue() {
881
- if (!y.value || x.value) return;
882
- d.value = "", x.value = !0;
883
- let Q = y.value, te = !1;
884
- try {
885
- if (!/^(?:blob:|data:)/i.test(Q)) {
886
- const s = await fetch(Q);
887
- if (!s.ok) throw new Error(`文件下载失败(${s.status})`);
888
- Q = URL.createObjectURL(await s.blob()), te = !0;
889
- }
890
- const I = document.createElement("a");
891
- I.href = Q, I.download = F.value, I.rel = "noopener noreferrer", document.body.appendChild(I), I.click(), I.remove(), te && window.setTimeout(() => URL.revokeObjectURL(Q), 0), n("download");
892
- } catch (I) {
893
- d.value = I instanceof Error ? I.message : "文件下载失败", n("error", {
894
- kind: a.value,
895
- message: d.value,
896
- cause: I
897
- });
898
- } finally {
899
- x.value = !1;
900
- }
901
- }
902
- function Ce() {
903
- v.value = document.fullscreenElement === c.value;
904
- }
905
- async function ke() {
906
- const Q = c.value;
907
- if (Q)
908
- try {
909
- document.fullscreenElement === Q ? await document.exitFullscreen() : Q.requestFullscreen ? await Q.requestFullscreen() : v.value = !v.value;
910
- } catch (te) {
911
- n("error", {
912
- kind: a.value,
913
- message: "无法切换全屏",
914
- cause: te
915
- });
916
- }
917
- }
918
- function Ee(Q) {
919
- return {
920
- audio: "音频",
921
- csv: "CSV",
922
- docx: "DOCX",
923
- eml: "邮件",
924
- html: "HTML",
925
- image: "图片",
926
- json: "JSON",
927
- markdown: "Markdown",
928
- pdf: "PDF",
929
- spreadsheet: "Excel",
930
- text: "文本",
931
- unsupported: "文件",
932
- video: "视频",
933
- xml: "XML"
934
- }[Q];
935
- }
936
- return Fe(() => {
937
- document.addEventListener("fullscreenchange", Ce);
938
- }), xe(() => {
939
- document.removeEventListener("fullscreenchange", Ce), document.fullscreenElement === c.value && document.exitFullscreen().catch(() => {
940
- });
941
- }), (Q, te) => (i(), h("section", {
942
- ref_key: "previewContainer",
943
- ref: c,
944
- class: ge([{ "yee-ui-file-preview--fullscreen": v.value }, "yee-ui-file-preview"]),
945
- style: we(H.value),
946
- "aria-busy": r(U)
947
- }, [
948
- o.showHeader && m.value ? (i(), h("header", Uo, [
949
- M("div", {
950
- class: "yee-ui-file-preview__name",
951
- title: r(F)
952
- }, Y(r(F)), 9, jo),
953
- M("div", Io, [
954
- ie(r(pe), {
955
- title: v.value ? "退出全屏" : "进入全屏"
956
- }, {
957
- default: R(() => [
958
- M("button", {
959
- "aria-label": v.value ? "退出全屏" : "进入全屏",
960
- "aria-pressed": v.value,
961
- class: "yee-ui-file-preview__header-action",
962
- type: "button",
963
- onClick: ke
964
- }, [
965
- v.value ? (i(), A(r(ot), { key: 0 })) : (i(), A(r(nt), { key: 1 }))
966
- ], 8, Do)
967
- ]),
968
- _: 1
969
- }, 8, ["title"]),
970
- o.showDownload ? (i(), A(r(pe), {
971
- key: 0,
972
- title: x.value ? "下载中..." : "下载"
973
- }, {
974
- default: R(() => [
975
- M("button", {
976
- "aria-label": x.value ? "下载中" : "下载",
977
- "aria-busy": x.value,
978
- class: "yee-ui-file-preview__header-action",
979
- disabled: x.value,
980
- type: "button",
981
- onClick: te[0] || (te[0] = (I) => {
982
- ue();
983
- })
984
- }, [
985
- ie(r(Xt))
986
- ], 8, Yo)
987
- ]),
988
- _: 1
989
- }, 8, ["title"])) : V("", !0)
990
- ])
991
- ])) : V("", !0),
992
- d.value ? (i(), h("div", Wo, Y(d.value), 1)) : V("", !0),
993
- m.value ? r(U) && !f.value && r(a) !== "docx" ? (i(), h("div", Go, "文件加载中...")) : r(N) ? (i(), h("div", Ko, [
994
- M("span", null, Y(r(p) || "文件预览失败"), 1),
995
- o.showDownload ? (i(), h("button", {
996
- key: 0,
997
- class: "yee-ui-file-preview__retry",
998
- type: "button",
999
- onClick: te[1] || (te[1] = (I) => {
1000
- ue();
1001
- })
1002
- }, " 下载查看 ")) : V("", !0)
1003
- ])) : r(S) ? (i(), h("div", Jo, [
1004
- M("span", null, "暂不支持预览 " + Y(Ee(r(a))) + " 文件", 1),
1005
- o.showDownload ? (i(), h("button", {
1006
- key: 0,
1007
- class: "yee-ui-file-preview__retry",
1008
- type: "button",
1009
- onClick: te[2] || (te[2] = (I) => {
1010
- ue();
1011
- })
1012
- }, " 下载查看 ")) : V("", !0)
1013
- ])) : r(G) || f.value || r(a) === "docx" ? (i(), h(Se, { key: 6 }, [
1014
- r(a) === "image" ? (i(), h("img", {
1015
- key: 0,
1016
- class: "yee-ui-file-preview__image",
1017
- src: r(y),
1018
- alt: o.alt,
1019
- onError: oe
1020
- }, null, 40, Qo)) : r(a) === "pdf" ? (i(), h("iframe", {
1021
- key: 1,
1022
- class: "yee-ui-file-preview__frame",
1023
- src: r(y),
1024
- title: o.alt,
1025
- onError: oe
1026
- }, null, 40, Xo)) : r(a) === "video" ? (i(), h("video", {
1027
- key: 2,
1028
- class: "yee-ui-file-preview__video",
1029
- src: r(y),
1030
- controls: "",
1031
- preload: "metadata",
1032
- onError: oe
1033
- }, " 您的浏览器不支持视频预览,请下载查看。 ", 40, Zo)) : r(a) === "audio" ? (i(), h("audio", {
1034
- key: 3,
1035
- class: "yee-ui-file-preview__audio",
1036
- src: r(y),
1037
- controls: "",
1038
- preload: "metadata",
1039
- onError: oe
1040
- }, null, 40, en)) : r(a) === "text" || r(a) === "json" || r(a) === "xml" ? (i(), h("pre", tn, Y(r(j)), 1)) : r(a) === "markdown" ? (i(), h("article", {
1041
- key: 5,
1042
- class: "yee-ui-file-preview__markdown",
1043
- innerHTML: r(C)
1044
- }, null, 8, on)) : r(a) === "html" ? (i(), h("iframe", {
1045
- key: 6,
1046
- class: "yee-ui-file-preview__frame yee-ui-file-preview__frame--html",
1047
- srcdoc: r(q),
1048
- sandbox: "",
1049
- title: o.alt
1050
- }, null, 8, nn)) : r(a) === "docx" ? (i(), h("div", {
1051
- key: 7,
1052
- ref_key: "docxContainer",
1053
- ref: b,
1054
- class: "yee-ui-file-preview__docx"
1055
- }, null, 512)) : E.value ? (i(), h("div", an, [
1056
- r(B).length ? (i(), h("table", ln, [
1057
- M("tbody", null, [
1058
- (i(!0), h(Se, null, be(r(B), (I, s) => (i(), h("tr", { key: s }, [
1059
- (i(!0), h(Se, null, be(I.cells, (k, L) => (i(), h("td", {
1060
- key: `${s}-${L}`
1061
- }, Y(k), 1))), 128))
1062
- ]))), 128))
1063
- ])
1064
- ])) : (i(), h("div", sn, "暂无可展示的数据")),
1065
- r(_) ? (i(), h("div", rn, "预览内容已截断,可下载查看完整文件。")) : V("", !0)
1066
- ])) : Z.value ? (i(), h("div", un, [
1067
- r($).length ? (i(), h("dl", cn, [
1068
- (i(!0), h(Se, null, be(r($), (I) => (i(), h(Se, {
1069
- key: I.label
1070
- }, [
1071
- M("dt", null, Y(I.label), 1),
1072
- M("dd", null, Y(I.value), 1)
1073
- ], 64))), 128))
1074
- ])) : V("", !0),
1075
- r(T) ? (i(), h("iframe", {
1076
- key: 1,
1077
- class: "yee-ui-file-preview__frame yee-ui-file-preview__frame--email",
1078
- srcdoc: r(T),
1079
- sandbox: "",
1080
- title: o.alt
1081
- }, null, 8, dn)) : (i(), h("pre", fn, Y(r(z) || "暂无可展示的邮件正文"), 1))
1082
- ])) : V("", !0)
1083
- ], 64)) : V("", !0) : (i(), h("div", qo, "请选择文件"))
1084
- ], 14, Ao));
1085
- }
1086
- }), ua = /* @__PURE__ */ me(pn, [["__scopeId", "data-v-49411d1f"]]), mn = {
1087
- AutoComplete: Yt,
1088
- Cascader: Dt,
1089
- Checkbox: It,
1090
- CheckboxGroup: jt,
1091
- DatePicker: Ut,
1092
- Input: At,
1093
- InputNumber: Lt,
1094
- InputPassword: Ht,
1095
- Mentions: Nt,
1096
- Radio: Pt,
1097
- RadioGroup: Vt,
1098
- RangePicker: zt,
1099
- Rate: Ot,
1100
- Segmented: Mt,
1101
- Select: Ye,
1102
- Slider: Rt,
1103
- Switch: Et,
1104
- Textarea: Ft,
1105
- TimePicker: Bt,
1106
- TimeRangePicker: $t,
1107
- TreeSelect: Tt,
1108
- Upload: Eo
1109
- }, vn = {
1110
- Checkbox: "checked",
1111
- Radio: "checked",
1112
- Switch: "checked",
1113
- Upload: "fileList"
1114
- }, yn = { class: "yee-ui-form__label" }, hn = { class: "yee-ui-form__actions" }, gn = /* @__PURE__ */ re({
1115
- name: "YeeForm",
1116
- __name: "YeeForm",
1117
- props: {
1118
- api: {},
1119
- onReset: { type: Function },
1120
- onSubmit: { type: Function },
1121
- options: {}
1122
- },
1123
- setup(o) {
1124
- const t = o, e = O(t.options.collapsed ?? !0), n = O(3), c = O(null);
1125
- let b;
1126
- t.api.configure(t.options);
1127
- const v = u(() => t.api.schema.value.filter((a) => !a.hide)), d = u(() => Math.max(1, t.options.collapsedRows ?? 1) * n.value), x = u(() => !t.options.showCollapseButton || !e.value ? v.value : v.value.slice(0, d.value));
1128
- function y() {
1129
- const a = c.value;
1130
- if (!a) return;
1131
- const C = getComputedStyle(a).gridTemplateColumns.split(" ").map((B) => B.trim()).filter(Boolean);
1132
- C.length > 0 && (n.value = C.length);
1133
- }
1134
- Fe(async () => {
1135
- await Te(), y(), typeof ResizeObserver < "u" && c.value && (b = new ResizeObserver(y), b.observe(c.value));
1136
- }), xe(() => {
1137
- b?.disconnect();
1138
- });
1139
- function T(a) {
1140
- return t.api.getFieldValue(a.fieldName);
1141
- }
1142
- function $(a) {
1143
- return a !== "Custom";
1144
- }
1145
- function z(a) {
1146
- return $(a.component) ? mn[a.component] : void 0;
1147
- }
1148
- function p(a) {
1149
- return $(a.component) ? vn[a.component] ?? "value" : "value";
1150
- }
1151
- function F(a) {
1152
- const C = T(a), B = p(a);
1153
- return {
1154
- ...a.componentProps,
1155
- ...C === void 0 ? {} : { [B]: C },
1156
- [`onUpdate:${B}`]: (j) => q(a, j)
1157
- };
1158
- }
1159
- function q(a, C) {
1160
- t.api.setFieldValue(
1161
- a.fieldName,
1162
- C
1163
- ), t.options.submitOnChange && U();
1164
- }
1165
- async function N() {
1166
- t.api.resetForm(), await t.onReset?.();
1167
- }
1168
- async function U() {
1169
- await t.onSubmit?.(t.api.getValues());
1170
- }
1171
- function G(a) {
1172
- a.key === "Enter" && t.options.submitOnEnter && (a.preventDefault(), U());
1173
- }
1174
- function S() {
1175
- e.value = !e.value, t.options.handleCollapsedChange?.(e.value);
1176
- }
1177
- return (a, C) => (i(), h("form", {
1178
- class: "yee-ui-form",
1179
- onKeydown: G,
1180
- onSubmit: yt(U, ["prevent"])
1181
- }, [
1182
- M("div", {
1183
- ref_key: "fieldsElement",
1184
- ref: c,
1185
- class: "yee-ui-form__fields"
1186
- }, [
1187
- (i(!0), h(Se, null, be(x.value, (B) => (i(), h("label", {
1188
- key: B.fieldName,
1189
- class: "yee-ui-form__field"
1190
- }, [
1191
- M("span", yn, Y(B.label), 1),
1192
- W(a.$slots, B.fieldName, {
1193
- field: B,
1194
- setValue: (j) => q(B, j),
1195
- value: T(B),
1196
- values: o.api.getValues()
1197
- }, () => [
1198
- B.component !== "Custom" ? (i(), A(ht(z(B)), se({
1199
- key: 0,
1200
- ref_for: !0
1201
- }, F(B)), null, 16)) : V("", !0)
1202
- ], !0)
1203
- ]))), 128))
1204
- ], 512),
1205
- M("div", hn, [
1206
- ie(r(fe), {
1207
- "html-type": "button",
1208
- onClick: N
1209
- }, {
1210
- default: R(() => [...C[0] || (C[0] = [
1211
- ce(" 重置 ", -1)
1212
- ])]),
1213
- _: 1
1214
- }),
1215
- ie(r(fe), {
1216
- type: "primary",
1217
- "html-type": "submit"
1218
- }, {
1219
- default: R(() => [...C[1] || (C[1] = [
1220
- ce(" 查询 ", -1)
1221
- ])]),
1222
- _: 1
1223
- }),
1224
- o.options.showCollapseButton ? (i(), A(r(fe), {
1225
- key: 0,
1226
- type: "link",
1227
- "html-type": "button",
1228
- onClick: S
1229
- }, {
1230
- default: R(() => [
1231
- ce(Y(e.value ? "展开" : "收起"), 1)
1232
- ]),
1233
- _: 1
1234
- })) : V("", !0)
1235
- ])
1236
- ], 32));
1237
- }
1238
- }), bn = /* @__PURE__ */ me(gn, [["__scopeId", "data-v-13cadc25"]]);
1239
- class wn {
1240
- /** 当前表单 Schema,由组件初始化,可通过 updateSchema 动态更新。 */
1241
- schema = O([]);
1242
- initialValues = {};
1243
- values = De({});
1244
- /** @internal 使用配置初始化 Schema 和字段值。 */
1245
- configure(t) {
1246
- this.schema.value = t.schema.map((e) => ({ ...e })), this.initialValues = { ...t.initialValues }, this.resetForm();
1247
- }
1248
- /** 获取指定字段值,并保留 TValues 中声明的字段类型。 */
1249
- getFieldValue(t) {
1250
- return this.values[t];
1251
- }
1252
- /** 获取当前全部字段值的浅拷贝。 */
1253
- getValues() {
1254
- return { ...this.values };
1255
- }
1256
- /** 将字段值恢复为 initialValues。 */
1257
- resetForm() {
1258
- for (const t of Object.keys(this.values))
1259
- delete this.values[t];
1260
- Object.assign(this.values, this.initialValues);
1261
- }
1262
- /** 设置指定字段值,字段名和值必须与 TValues 保持一致。 */
1263
- setFieldValue(t, e) {
1264
- this.values[t] = e;
1265
- }
1266
- /** 批量更新已声明字段的值。 */
1267
- setValues(t) {
1268
- Object.assign(this.values, t);
1269
- }
1270
- /** 按字段名动态更新 Schema。 */
1271
- updateSchema(t) {
1272
- const e = new Map(t.map((n) => [n.fieldName, n]));
1273
- this.schema.value = this.schema.value.map((n) => ({
1274
- ...n,
1275
- ...e.get(n.fieldName)
1276
- }));
1277
- }
1278
- }
1279
- class _n {
1280
- /** 查询表单控制器。 */
1281
- formApi = new wn();
1282
- /** 查询表单当前是否可见。 */
1283
- searchFormVisible;
1284
- /** 当前 Grid 初始化配置。 */
1285
- state;
1286
- grid;
1287
- constructor(t) {
1288
- this.state = O(t), this.searchFormVisible = O(t.showSearchForm ?? !0);
1289
- }
1290
- /** @internal 由 YeeGrid 挂载底层 VXE Grid 实例。 */
1291
- mount(t) {
1292
- this.grid = t;
1293
- }
1294
- /** 保留当前页码并执行查询,可在查询前合并表单值。 */
1295
- query = async (t) => (t && this.formApi.setValues(t), this.grid?.commitProxy("query"));
1296
- /** 回到第一页并重新查询,可在查询前合并表单值。 */
1297
- reload = async (t) => (t && this.formApi.setValues(t), this.grid?.commitProxy("reload"));
1298
- /** 合并更新 VXE Grid 配置。 */
1299
- setGridOptions(t) {
1300
- this.setState({
1301
- gridOptions: {
1302
- ...this.state.value.gridOptions,
1303
- ...t
1304
- }
1305
- });
1306
- }
1307
- /** 设置表格加载状态。 */
1308
- setLoading(t) {
1309
- this.setGridOptions({ loading: t });
1310
- }
1311
- /** 合并更新 useYeeGrid 初始化配置。 */
1312
- setState(t) {
1313
- this.state.value = {
1314
- ...this.state.value,
1315
- ...t
1316
- };
1317
- }
1318
- /** 切换查询表单显隐,并返回切换后的状态。 */
1319
- toggleSearchForm(t) {
1320
- return this.searchFormVisible.value = t ?? !this.searchFormVisible.value, this.searchFormVisible.value;
1321
- }
1322
- /** @internal 清理底层 VXE Grid 实例引用。 */
1323
- unmount() {
1324
- this.grid = void 0;
1325
- }
1326
- }
1327
- const it = /* @__PURE__ */ Symbol("yee-page-auto-content-height"), xn = /* @__PURE__ */ re({
1328
- inheritAttrs: !1,
1329
- name: "VxeTooltip",
1330
- __name: "YeeGridTooltip",
1331
- props: {
1332
- content: {},
1333
- enterDelay: {},
1334
- enterable: { type: Boolean },
1335
- height: {},
1336
- isArrow: { type: Boolean, default: !0 },
1337
- leaveDelay: {},
1338
- maxHeight: {},
1339
- maxWidth: {},
1340
- minHeight: {},
1341
- minWidth: {},
1342
- modelValue: { type: Boolean },
1343
- popupClassName: {},
1344
- selector: {},
1345
- theme: {},
1346
- trigger: {},
1347
- useHTML: { type: Boolean },
1348
- width: {},
1349
- zIndex: {}
1350
- },
1351
- emits: ["update:modelValue"],
1352
- setup(o, { expose: t, emit: e }) {
1353
- const n = o, c = e, b = pe, v = De({ visible: !1 }), d = _e("tooltip"), x = O(), y = O(""), T = O(), $ = O(!1);
1354
- let z;
1355
- function p(f) {
1356
- if (!(f === void 0 || f === ""))
1357
- return typeof f == "number" ? `${f}px` : f;
1358
- }
1359
- const F = u(() => {
1360
- const f = x.value;
1361
- return !f || !v.visible ? { display: "none" } : {
1362
- height: `${Math.max(f.height, 1)}px`,
1363
- left: `${f.left}px`,
1364
- pointerEvents: "none",
1365
- position: "fixed",
1366
- top: `${f.top}px`,
1367
- width: `${Math.max(f.width, 1)}px`
1368
- };
1369
- }), q = u(() => ({
1370
- cursor: n.enterable ? "text" : void 0,
1371
- height: p(n.height),
1372
- maxHeight: p(n.maxHeight),
1373
- maxWidth: p(n.maxWidth),
1374
- minHeight: p(n.minHeight),
1375
- minWidth: p(n.minWidth),
1376
- userSelect: n.enterable ? "text" : void 0,
1377
- width: p(n.width)
1378
- })), N = u(() => ({
1379
- ...n.popupClassName ? { overlayClassName: n.popupClassName } : {},
1380
- ...n.zIndex === void 0 ? {} : { zIndex: Number(n.zIndex) }
1381
- }));
1382
- function U(f) {
1383
- return f.closest("body") ?? document.body;
1384
- }
1385
- function G(f) {
1386
- return f || (typeof n.selector == "string" ? document.querySelector(n.selector) ?? void 0 : n.selector);
1387
- }
1388
- function S() {
1389
- const f = T.value;
1390
- if (!f?.isConnected)
1391
- return B();
1392
- const E = f.getBoundingClientRect();
1393
- return x.value = {
1394
- height: E.height,
1395
- left: E.left,
1396
- top: E.top,
1397
- width: E.width
1398
- }, Te(() => d.value?.forcePopupAlign?.());
1399
- }
1400
- function a(f, E) {
1401
- const Z = G(f);
1402
- return Z ? (T.value = Z, y.value = E ?? n.content ?? "", $.value = !0, v.visible = !0, c("update:modelValue", !0), S()) : Te();
1403
- }
1404
- function C(f, E, Z) {
1405
- const oe = f.currentTarget instanceof HTMLElement ? f.currentTarget : void 0;
1406
- return a(E ?? oe, Z);
1407
- }
1408
- function B() {
1409
- return $.value = !1, T.value = void 0, x.value = void 0, v.visible = !1, c("update:modelValue", !1), Te();
1410
- }
1411
- function j(f) {
1412
- f && z && (clearTimeout(z), z = void 0), $.value = f;
1413
- }
1414
- function _() {
1415
- return $.value;
1416
- }
1417
- function H() {
1418
- v.visible && S();
1419
- }
1420
- function m() {
1421
- j(!1), n.enterable && (z = setTimeout(() => {
1422
- z = void 0, $.value || B();
1423
- }, n.leaveDelay ?? 0));
1424
- }
1425
- return Fe(() => {
1426
- window.addEventListener("resize", H), window.addEventListener("scroll", H, !0), n.modelValue && a(void 0, n.content);
1427
- }), xe(() => {
1428
- z && clearTimeout(z), window.removeEventListener("resize", H), window.removeEventListener("scroll", H, !0);
1429
- }), t({
1430
- close: B,
1431
- isActived: _,
1432
- open: a,
1433
- openByEvent: C,
1434
- reactData: v,
1435
- setActived: j,
1436
- toVisible: a,
1437
- updatePlacement: S
1438
- }), (f, E) => (i(), A(r(b), se({ ref: "tooltip" }, N.value, {
1439
- arrow: n.isArrow !== !1,
1440
- "get-popup-container": U,
1441
- open: v.visible,
1442
- "overlay-inner-style": q.value,
1443
- placement: "top"
1444
- }), {
1445
- title: R(() => [
1446
- M("div", {
1447
- class: "yee-ui-grid-tooltip-content",
1448
- onMouseenter: E[0] || (E[0] = (Z) => n.enterable && j(!0)),
1449
- onMouseleave: m
1450
- }, [
1451
- W(f.$slots, "content", {}, () => [
1452
- ce(Y(y.value), 1)
1453
- ])
1454
- ], 32)
1455
- ]),
1456
- default: R(() => [
1457
- M("span", {
1458
- "aria-hidden": "true",
1459
- class: "yee-ui-grid-tooltip-anchor",
1460
- style: we(F.value)
1461
- }, null, 4)
1462
- ]),
1463
- _: 3
1464
- }, 16, ["arrow", "open", "overlay-inner-style"]));
1465
- }
1466
- });
1467
- let Qe = !1;
1468
- const Ie = /* @__PURE__ */ new Set();
1469
- function Cn() {
1470
- const o = Oe.modal.confirm.bind(Oe.modal);
1471
- Oe.modal.confirm = ((t, e, n) => {
1472
- const c = typeof t == "object" && t !== null ? t : typeof n == "object" && n !== null ? n : void 0;
1473
- if ((typeof c?.className == "string" ? c.className.split(/\s+/) : []).includes("vxe-table--ignore-clear")) {
1474
- const v = [...Ie], d = v[v.length - 1];
1475
- if (d) {
1476
- const x = typeof c?.content == "string" ? c.content : String(c?.content ?? t);
1477
- return d(x);
1478
- }
1479
- }
1480
- return o(t, e, n);
1481
- });
1482
- }
1483
- function kn(o) {
1484
- return Ie.add(o), () => Ie.delete(o);
1485
- }
1486
- function st() {
1487
- if (Qe) return;
1488
- [
1489
- eo,
1490
- to,
1491
- oo,
1492
- at,
1493
- no,
1494
- ao,
1495
- lo,
1496
- io,
1497
- so,
1498
- ro,
1499
- uo,
1500
- co,
1501
- fo,
1502
- po,
1503
- mo,
1504
- xn
1505
- ].forEach((t) => Oe.component(t)), Cn(), Qe = !0;
1506
- }
1507
- const Sn = {
1508
- key: 1,
1509
- class: "yee-ui-grid__separator"
1510
- }, Tn = { class: "yee-ui-grid__table-container" }, $n = {
1511
- key: 0,
1512
- class: "yee-ui-grid__title"
1513
- }, Bn = /* @__PURE__ */ re({
1514
- name: "YeeGrid",
1515
- __name: "YeeGrid",
1516
- props: {
1517
- api: {},
1518
- tableTitle: {},
1519
- tableTitleHelp: {}
1520
- },
1521
- setup(o) {
1522
- const t = o, e = Pe(), n = _e("gridRef"), c = Ve(Ne), b = Ve(it, void 0), [v, d] = tt.useModal();
1523
- st();
1524
- const x = kn((S) => new Promise((a) => {
1525
- v.confirm({
1526
- title: "恢复默认列配置",
1527
- content: S,
1528
- centered: !0,
1529
- okText: "确认",
1530
- cancelText: "取消",
1531
- keyboard: !0,
1532
- wrapClassName: "vxe-table--ignore-clear",
1533
- onOk: () => a("confirm"),
1534
- onCancel: () => a("cancel")
1535
- });
1536
- })), y = u(() => t.api.state.value), T = u(() => y.value.formOptions), $ = u(() => !!(t.tableTitle || e["table-title"] || e["toolbar-actions"] || e["toolbar-tools"])), z = u(() => Object.keys(e).filter((S) => ![
1537
- "empty",
1538
- "loading",
1539
- "table-title",
1540
- "toolbar-actions",
1541
- "toolbar-tools"
1542
- ].includes(S))), p = u(() => b?.value ?? !1), F = u(() => {
1543
- const S = y.value.gridOptions, a = S.proxyConfig, C = a?.ajax?.query, B = S.toolbarConfig, j = S.pagerConfig;
1544
- return {
1545
- align: "left",
1546
- border: "inner",
1547
- minHeight: 180,
1548
- showHeaderOverflow: "tooltip",
1549
- showOverflow: "tooltip",
1550
- size: "medium",
1551
- ...p.value ? { height: "auto" } : {},
1552
- ...S,
1553
- columnConfig: {
1554
- resizable: !0,
1555
- ...S.columnConfig
1556
- },
1557
- tooltipConfig: {
1558
- enterable: !0,
1559
- leaveDelay: 300,
1560
- ...S.tooltipConfig
1561
- },
1562
- ...j ? {
1563
- pagerConfig: {
1564
- pageSize: 20,
1565
- pageSizes: [10, 20, 30, 50, 100, 200],
1566
- layouts: ["Total", "Sizes", "Home", "PrevPage", "Number", "NextPage", "End"],
1567
- ...j,
1568
- slots: {
1569
- sizes: "pagerSizes",
1570
- ...j.slots
1571
- }
1572
- }
1573
- } : {},
1574
- ...a ? {
1575
- proxyConfig: {
1576
- autoLoad: !0,
1577
- showResponseMsg: !1,
1578
- ...a,
1579
- response: {
1580
- list: "items",
1581
- result: "items",
1582
- total: "total",
1583
- ...a.response
1584
- },
1585
- ...a.ajax ? {
1586
- ajax: {
1587
- ...a.ajax,
1588
- ...C ? {
1589
- query: (_) => C(_, t.api.formApi.getValues())
1590
- } : {}
1591
- }
1592
- } : {}
1593
- }
1594
- } : {},
1595
- ...B || $.value ? {
1596
- toolbarConfig: {
1597
- custom: !0,
1598
- refresh: !0,
1599
- zoom: !0,
1600
- ...B,
1601
- slots: {
1602
- ...t.tableTitle || e["table-title"] || e["toolbar-actions"] ? { buttons: "toolbarActions" } : {},
1603
- ...e["toolbar-tools"] || B?.search ? { tools: "toolbarTools" } : {}
1604
- }
1605
- }
1606
- } : {}
1607
- };
1608
- }), q = u(() => y.value.gridEvents ?? {});
1609
- $e(
1610
- () => c?.value.mode ?? "light",
1611
- (S) => Oe.setTheme(S),
1612
- { immediate: !0 }
1613
- );
1614
- async function N() {
1615
- await t.api.reload();
1616
- }
1617
- async function U() {
1618
- await t.api.reload();
1619
- }
1620
- function G(S, a) {
1621
- typeof a != "number" && typeof a != "string" || S.setPageSizeByEvent(new Event("change"), a);
1622
- }
1623
- return Fe(() => {
1624
- n.value && t.api.mount(n.value);
1625
- }), gt(() => {
1626
- x(), t.api.unmount();
1627
- }), (S, a) => (i(), h("section", {
1628
- class: ge(["yee-ui-grid", { "yee-ui-grid--fill-page-content": p.value }])
1629
- }, [
1630
- T.value ? bt((i(), A(bn, {
1631
- key: 0,
1632
- api: o.api.formApi,
1633
- options: T.value,
1634
- "on-reset": U,
1635
- "on-submit": N
1636
- }, null, 8, ["api", "options"])), [
1637
- [wt, o.api.searchFormVisible.value]
1638
- ]) : V("", !0),
1639
- T.value && y.value.separator !== !1 ? (i(), h("div", Sn)) : V("", !0),
1640
- M("div", Tn, [
1641
- ie(r(at), se({
1642
- ref_key: "gridRef",
1643
- ref: n,
1644
- class: "yee-ui-grid__table"
1645
- }, F.value, _t(q.value)), ze({
1646
- toolbarActions: R((C) => [
1647
- W(S.$slots, "table-title", {}, () => [
1648
- o.tableTitle ? (i(), h("div", $n, [
1649
- ce(Y(o.tableTitle) + " ", 1),
1650
- o.tableTitleHelp ? (i(), A(r(pe), {
1651
- key: 0,
1652
- title: o.tableTitleHelp
1653
- }, {
1654
- default: R(() => [...a[0] || (a[0] = [
1655
- M("span", {
1656
- class: "yee-ui-grid__help",
1657
- tabindex: "0"
1658
- }, "?", -1)
1659
- ])]),
1660
- _: 1
1661
- }, 8, ["title"])) : V("", !0)
1662
- ])) : V("", !0)
1663
- ], !0),
1664
- W(S.$slots, "toolbar-actions", Re(Me(C)), void 0, !0)
1665
- ]),
1666
- toolbarTools: R((C) => [
1667
- W(S.$slots, "toolbar-tools", Re(Me(C)), void 0, !0)
1668
- ]),
1669
- pagerSizes: R(({ $pager: C, options: B, pageSize: j }) => [
1670
- ie(r(Ye), {
1671
- class: "yee-ui-grid__page-size",
1672
- options: B,
1673
- value: j,
1674
- onChange: (_) => G(C, _)
1675
- }, null, 8, ["options", "value", "onChange"])
1676
- ]),
1677
- empty: R(() => [
1678
- W(S.$slots, "empty", {}, () => [
1679
- a[1] || (a[1] = M("div", { class: "yee-ui-grid__empty" }, "暂无数据", -1))
1680
- ], !0)
1681
- ]),
1682
- _: 2
1683
- }, [
1684
- be(z.value, (C) => ({
1685
- name: C,
1686
- fn: R((B) => [
1687
- W(S.$slots, C, Re(Me(B)), void 0, !0)
1688
- ])
1689
- }))
1690
- ]), 1040)
1691
- ]),
1692
- ie(r(d))
1693
- ], 2));
1694
- }
1695
- }), Fn = /* @__PURE__ */ me(Bn, [["__scopeId", "data-v-69df784f"]]);
1696
- function ca(o) {
1697
- st();
1698
- const t = new _n(o), e = Fn;
1699
- return [re({
1700
- name: "YeeGrid",
1701
- inheritAttrs: !1,
1702
- props: {
1703
- tableTitle: String,
1704
- tableTitleHelp: String
1705
- },
1706
- setup(c, { attrs: b, slots: v }) {
1707
- return xe(() => t.unmount()), () => Ze(e, {
1708
- ...b,
1709
- api: t,
1710
- ...c.tableTitle ? { tableTitle: c.tableTitle } : {},
1711
- ...c.tableTitleHelp ? { tableTitleHelp: c.tableTitleHelp } : {}
1712
- }, v);
1713
- }
1714
- }), t];
1715
- }
1716
- const En = { class: "yee-ui-modal__header" }, Rn = ["id"], Mn = { class: "yee-ui-modal__title" }, On = {
1717
- key: 1,
1718
- class: "yee-ui-modal__header-actions"
1719
- }, zn = { class: "yee-ui-modal__body" }, Vn = { class: "yee-ui-modal__footer" }, Pn = { class: "yee-ui-modal__header" }, Nn = ["id"], Hn = { class: "yee-ui-modal__title" }, Ln = { class: "yee-ui-modal__header-actions" }, An = { class: "yee-ui-modal__body" }, Un = { class: "yee-ui-modal__footer" }, jn = /* @__PURE__ */ re({
1720
- inheritAttrs: !1,
1721
- name: "YeeModal",
1722
- __name: "YeeModal",
1723
- props: /* @__PURE__ */ je({
1724
- cancelButtonText: { default: "取消" },
1725
- centered: { type: Boolean, default: !1 },
1726
- closable: { type: Boolean, default: !0 },
1727
- confirmButtonLoading: { type: Boolean, default: !1 },
1728
- confirmButtonText: { default: "确认" },
1729
- destroyOnClose: { type: Boolean, default: !0 },
1730
- fullscreen: { type: Boolean, default: !1 },
1731
- fullscreenButton: { type: Boolean, default: !0 },
1732
- keyboard: { type: Boolean, default: !1 },
1733
- maskClosable: { type: Boolean, default: !1 },
1734
- open: { type: Boolean },
1735
- showCancelButton: { type: Boolean, default: !0 },
1736
- showConfirmButton: { type: Boolean, default: !0 },
1737
- style: { type: [Boolean, null, String, Object, Array] },
1738
- title: { default: "" },
1739
- type: { default: "modal" },
1740
- width: { default: 520 },
1741
- wrapProps: {}
1742
- }, {
1743
- open: { type: Boolean, default: !1 },
1744
- openModifiers: {}
1745
- }),
1746
- emits: /* @__PURE__ */ je(["cancel", "close", "confirm", "update:fullscreen"], ["update:open"]),
1747
- setup(o, { emit: t }) {
1748
- const e = o, n = t, c = Ue(o, "open"), b = Ue(e, "fullscreen"), v = et(), d = Pe(), x = xt(), y = u(() => e.type === "drawer"), T = u(() => !y.value && b.value), $ = u(() => !!(e.title || d.header)), z = u(() => $.value || e.closable), p = u(() => $.value || e.fullscreenButton || e.closable), F = u(() => T.value ? "退出全屏" : "进入全屏"), q = u(() => {
1749
- const H = Object.prototype.hasOwnProperty.call(e.wrapProps ?? {}, "aria-labelledby");
1750
- return {
1751
- ...e.wrapProps,
1752
- "aria-labelledby": H ? e.wrapProps?.["aria-labelledby"] : $.value ? x : void 0
1753
- };
1754
- }), N = u(() => {
1755
- if (T.value)
1756
- return {
1757
- height: "100%",
1758
- margin: 0,
1759
- maxWidth: "100vw",
1760
- paddingBottom: 0,
1761
- top: 0,
1762
- width: "100vw"
1763
- };
1764
- });
1765
- function U() {
1766
- const { style: H, ...m } = v;
1767
- return m;
1768
- }
1769
- function G() {
1770
- return [v.style, e.style].filter(Boolean);
1771
- }
1772
- function S() {
1773
- return [v.style, e.style, N.value].filter(Boolean);
1774
- }
1775
- const a = () => d.closeIcon?.() ?? v.closeIcon ?? Ze(Zt);
1776
- function C(H) {
1777
- n("cancel", H), c.value = !1;
1778
- }
1779
- function B(H) {
1780
- n("confirm", H);
1781
- }
1782
- function j() {
1783
- n("close");
1784
- }
1785
- function _() {
1786
- b.value = !b.value;
1787
- }
1788
- return (H, m) => y.value ? (i(), A(r(Wt), se({ key: 0 }, U(), {
1789
- class: "yee-ui-modal-drawer",
1790
- closable: !1,
1791
- "destroy-on-close": e.destroyOnClose,
1792
- keyboard: e.keyboard,
1793
- "mask-closable": e.maskClosable,
1794
- open: c.value,
1795
- style: G(),
1796
- width: e.width,
1797
- onAfterOpenChange: m[0] || (m[0] = (f) => !f && j()),
1798
- onClose: C
1799
- }), ze({
1800
- footer: R(() => [
1801
- M("div", Vn, [
1802
- W(H.$slots, "footer", {}, () => [
1803
- e.showCancelButton ? (i(), A(r(fe), {
1804
- key: 0,
1805
- onClick: C
1806
- }, {
1807
- default: R(() => [
1808
- ce(Y(e.cancelButtonText), 1)
1809
- ]),
1810
- _: 1
1811
- })) : V("", !0),
1812
- e.showConfirmButton ? (i(), A(r(fe), {
1813
- key: 1,
1814
- loading: e.confirmButtonLoading,
1815
- type: "primary",
1816
- onClick: B
1817
- }, {
1818
- default: R(() => [
1819
- ce(Y(e.confirmButtonText), 1)
1820
- ]),
1821
- _: 1
1822
- }, 8, ["loading"])) : V("", !0)
1823
- ], !0)
1824
- ])
1825
- ]),
1826
- default: R(() => [
1827
- M("div", zn, [
1828
- W(H.$slots, "default", {}, void 0, !0)
1829
- ])
1830
- ]),
1831
- _: 2
1832
- }, [
1833
- z.value ? {
1834
- name: "title",
1835
- fn: R(() => [
1836
- M("div", En, [
1837
- $.value ? (i(), h("div", {
1838
- key: 0,
1839
- id: r(x),
1840
- class: "yee-ui-modal__heading"
1841
- }, [
1842
- W(H.$slots, "header", {}, () => [
1843
- M("span", Mn, Y(e.title), 1)
1844
- ], !0)
1845
- ], 8, Rn)) : V("", !0),
1846
- e.closable ? (i(), h("div", On, [
1847
- ie(r(fe), {
1848
- "aria-label": "关闭",
1849
- class: "yee-ui-modal__header-action",
1850
- size: "small",
1851
- type: "text",
1852
- onClick: C
1853
- }, {
1854
- default: R(() => [
1855
- ie(a)
1856
- ]),
1857
- _: 1
1858
- })
1859
- ])) : V("", !0)
1860
- ])
1861
- ]),
1862
- key: "0"
1863
- } : void 0
1864
- ]), 1040, ["destroy-on-close", "keyboard", "mask-closable", "open", "style", "width"])) : (i(), A(r(tt), se({ key: 1 }, U(), {
1865
- centered: T.value ? !1 : e.centered,
1866
- class: {
1867
- "yee-ui-modal": !0,
1868
- "yee-ui-modal--fullscreen": T.value
1869
- },
1870
- closable: !1,
1871
- "destroy-on-close": e.destroyOnClose,
1872
- keyboard: e.keyboard,
1873
- "mask-closable": e.maskClosable,
1874
- open: c.value,
1875
- style: S(),
1876
- width: T.value ? "100vw" : e.width,
1877
- "wrap-props": q.value,
1878
- onAfterClose: j,
1879
- onCancel: C
1880
- }), ze({
1881
- footer: R(() => [
1882
- M("div", Un, [
1883
- W(H.$slots, "footer", {}, () => [
1884
- e.showCancelButton ? (i(), A(r(fe), {
1885
- key: 0,
1886
- onClick: C
1887
- }, {
1888
- default: R(() => [
1889
- ce(Y(e.cancelButtonText), 1)
1890
- ]),
1891
- _: 1
1892
- })) : V("", !0),
1893
- e.showConfirmButton ? (i(), A(r(fe), {
1894
- key: 1,
1895
- loading: e.confirmButtonLoading,
1896
- type: "primary",
1897
- onClick: B
1898
- }, {
1899
- default: R(() => [
1900
- ce(Y(e.confirmButtonText), 1)
1901
- ]),
1902
- _: 1
1903
- }, 8, ["loading"])) : V("", !0)
1904
- ], !0)
1905
- ])
1906
- ]),
1907
- default: R(() => [
1908
- M("div", An, [
1909
- W(H.$slots, "default", {}, void 0, !0)
1910
- ])
1911
- ]),
1912
- _: 2
1913
- }, [
1914
- p.value ? {
1915
- name: "title",
1916
- fn: R(() => [
1917
- M("div", Pn, [
1918
- $.value ? (i(), h("div", {
1919
- key: 0,
1920
- id: r(x),
1921
- class: "yee-ui-modal__heading"
1922
- }, [
1923
- W(H.$slots, "header", {}, () => [
1924
- M("span", Hn, Y(e.title), 1)
1925
- ], !0)
1926
- ], 8, Nn)) : V("", !0),
1927
- M("div", Ln, [
1928
- e.fullscreenButton ? (i(), A(r(pe), {
1929
- key: 0,
1930
- title: F.value
1931
- }, {
1932
- default: R(() => [
1933
- ie(r(fe), {
1934
- "aria-label": F.value,
1935
- "aria-pressed": T.value,
1936
- class: "yee-ui-modal__header-action",
1937
- size: "small",
1938
- type: "text",
1939
- onClick: _
1940
- }, {
1941
- default: R(() => [
1942
- T.value ? (i(), A(r(ot), { key: 0 })) : (i(), A(r(nt), { key: 1 }))
1943
- ]),
1944
- _: 1
1945
- }, 8, ["aria-label", "aria-pressed"])
1946
- ]),
1947
- _: 1
1948
- }, 8, ["title"])) : V("", !0),
1949
- e.closable ? (i(), A(r(fe), {
1950
- key: 1,
1951
- "aria-label": "关闭",
1952
- class: "yee-ui-modal__header-action",
1953
- size: "small",
1954
- type: "text",
1955
- onClick: C
1956
- }, {
1957
- default: R(() => [
1958
- ie(a)
1959
- ]),
1960
- _: 1
1961
- })) : V("", !0)
1962
- ])
1963
- ])
1964
- ]),
1965
- key: "0"
1966
- } : void 0
1967
- ]), 1040, ["centered", "class", "destroy-on-close", "keyboard", "mask-closable", "open", "style", "width", "wrap-props"]));
1968
- }
1969
- }), In = /* @__PURE__ */ me(jn, [["__scopeId", "data-v-7424b0ee"]]), da = In, Dn = { class: "yee-ui-page__heading" }, Yn = {
1970
- key: 0,
1971
- class: "yee-ui-page__title"
1972
- }, Wn = {
1973
- key: 0,
1974
- class: "yee-ui-page__description"
1975
- }, qn = {
1976
- key: 0,
1977
- class: "yee-ui-page__extra"
1978
- }, Gn = /* @__PURE__ */ re({
1979
- name: "YeePage",
1980
- __name: "YeePage",
1981
- props: {
1982
- autoContentHeight: { type: Boolean, default: !1 },
1983
- contentClass: {},
1984
- description: {},
1985
- footerClass: {},
1986
- headerClass: {},
1987
- heightOffset: { default: 0 },
1988
- title: {}
1989
- },
1990
- setup(o) {
1991
- const t = o, e = Pe(), n = u(() => !!(t.description || t.title || e.description || e.extra || e.title)), c = u(() => t.autoContentHeight);
1992
- Xe(it, c);
1993
- const b = O(0), v = O(0), d = O(!1), x = _e("headerRef"), y = _e("footerRef");
1994
- let T;
1995
- function $() {
1996
- const N = x.value?.offsetHeight ?? 0, U = y.value?.offsetHeight ?? 0;
1997
- b.value !== N && (b.value = N), v.value !== U && (v.value = U);
1998
- }
1999
- function z() {
2000
- T?.disconnect(), T = void 0, !(typeof ResizeObserver > "u") && (T = new ResizeObserver($), x.value && T.observe(x.value), y.value && T.observe(y.value));
2001
- }
2002
- async function p() {
2003
- if (T?.disconnect(), T = void 0, !t.autoContentHeight) {
2004
- d.value = !1;
2005
- return;
2006
- }
2007
- await Te(), $(), d.value = !0, z();
2008
- }
2009
- const F = u(() => ({
2010
- "--yee-page-height-offset": typeof t.heightOffset == "number" ? `${t.heightOffset}px` : t.heightOffset
2011
- })), q = u(() => t.autoContentHeight ? {
2012
- height: `calc(100% - ${b.value}px - ${v.value}px)`,
2013
- overflowY: d.value ? "auto" : "hidden"
2014
- } : {});
2015
- return $e(
2016
- [() => t.autoContentHeight, n, () => !!e.footer],
2017
- () => {
2018
- p();
2019
- },
2020
- { flush: "post" }
2021
- ), Fe(() => {
2022
- p();
2023
- }), xe(() => T?.disconnect()), (N, U) => (i(), h("section", {
2024
- class: ge(["yee-ui-page", { "yee-ui-page--auto-height": o.autoContentHeight }]),
2025
- style: we(F.value)
2026
- }, [
2027
- n.value ? (i(), h("header", {
2028
- key: 0,
2029
- ref_key: "headerRef",
2030
- ref: x,
2031
- class: ge(["yee-ui-page__header", o.headerClass])
2032
- }, [
2033
- M("div", Dn, [
2034
- W(N.$slots, "title", {}, () => [
2035
- o.title ? (i(), h("h1", Yn, Y(o.title), 1)) : V("", !0)
2036
- ], !0),
2037
- W(N.$slots, "description", {}, () => [
2038
- o.description ? (i(), h("p", Wn, Y(o.description), 1)) : V("", !0)
2039
- ], !0)
2040
- ]),
2041
- N.$slots.extra ? (i(), h("div", qn, [
2042
- W(N.$slots, "extra", {}, void 0, !0)
2043
- ])) : V("", !0)
2044
- ], 2)) : V("", !0),
2045
- M("main", {
2046
- class: ge(["yee-ui-page__content", o.contentClass]),
2047
- style: we(q.value)
2048
- }, [
2049
- W(N.$slots, "default", {}, void 0, !0)
2050
- ], 6),
2051
- N.$slots.footer ? (i(), h("footer", {
2052
- key: 1,
2053
- ref_key: "footerRef",
2054
- ref: y,
2055
- class: ge(["yee-ui-page__footer", o.footerClass])
2056
- }, [
2057
- W(N.$slots, "footer", {}, void 0, !0)
2058
- ], 2)) : V("", !0)
2059
- ], 6));
2060
- }
2061
- }), fa = /* @__PURE__ */ me(Gn, [["__scopeId", "data-v-ba7ea0ff"]]), Kn = { class: "yee-ui-select__option-label" }, Jn = /* @__PURE__ */ re({
2062
- inheritAttrs: !1,
2063
- name: "YeeSelect",
2064
- __name: "YeeSelect",
2065
- props: /* @__PURE__ */ je({
2066
- fieldNames: {},
2067
- options: {}
2068
- }, {
2069
- value: {},
2070
- valueModifiers: {}
2071
- }),
2072
- emits: ["update:value"],
2073
- setup(o, { expose: t }) {
2074
- const e = Ye, n = o, c = Ue(o, "value"), b = Pe(), v = et(), d = _e("select"), x = O(!1), y = u(() => ({
2075
- label: n.fieldNames?.label ?? "label",
2076
- options: n.fieldNames?.options ?? "options",
2077
- value: n.fieldNames?.value ?? "value"
2078
- })), T = u(() => v.class), $ = u(() => v.style), z = u(() => {
2079
- const m = {};
2080
- for (const [f, E] of Object.entries(v))
2081
- f !== "class" && f !== "style" && f !== "onDropdownVisibleChange" && (m[f] = E);
2082
- return m;
2083
- }), p = u(() => !b.default && !b.option), F = u(() => Object.keys(b)), q = u(() => F.value.filter(
2084
- (m) => m !== "default" && m !== "option"
2085
- ));
2086
- function N(m) {
2087
- const f = v.onDropdownVisibleChange;
2088
- if (typeof f == "function") {
2089
- f(m);
2090
- return;
2091
- }
2092
- f?.forEach((E) => E?.(m));
2093
- }
2094
- function U(m) {
2095
- x.value = m, N(m);
2096
- }
2097
- function G(m) {
2098
- return typeof m == "number" || typeof m == "string" ? String(m) : "";
2099
- }
2100
- function S(m, f) {
2101
- if (m)
2102
- for (const E of m) {
2103
- const Z = E[y.value.options], oe = S(Z, f);
2104
- if (oe) return oe;
2105
- const ue = E[y.value.value];
2106
- if (ue === f || String(ue) === String(f)) return E;
2107
- }
2108
- }
2109
- function a(m) {
2110
- return m ? G(m[y.value.label]) || G(m.title) || G(m[y.value.value]) : "";
2111
- }
2112
- const C = u(() => {
2113
- const m = c.value;
2114
- if (!(m == null || m === ""))
2115
- return Array.isArray(m) ? m.map((f) => a(S(n.options, f)) || G(f)).filter(Boolean).join("、") || void 0 : a(S(n.options, m)) || G(m) || void 0;
2116
- });
2117
- function B(m) {
2118
- return a(m);
2119
- }
2120
- function j() {
2121
- d.value?.blur();
2122
- }
2123
- function _() {
2124
- d.value?.focus();
2125
- }
2126
- function H(...m) {
2127
- d.value?.scrollTo(...m);
2128
- }
2129
- return t({ blur: j, focus: _, scrollTo: H }), (m, f) => (i(), A(r(pe), se(x.value ? { open: !1 } : {}, { title: C.value }), {
2130
- default: R(() => [
2131
- M("div", {
2132
- class: ge(["yee-ui-select", T.value]),
2133
- style: we($.value)
2134
- }, [
2135
- p.value ? (i(), A(r(e), se({
2136
- key: 0,
2137
- ref: "select",
2138
- value: c.value,
2139
- "onUpdate:value": f[0] || (f[0] = (E) => c.value = E)
2140
- }, z.value, {
2141
- "field-names": y.value,
2142
- options: o.options,
2143
- onDropdownVisibleChange: U
2144
- }), ze({
2145
- option: R((E) => [
2146
- ie(r(pe), {
2147
- title: B(E),
2148
- placement: "left"
2149
- }, {
2150
- default: R(() => [
2151
- M("span", Kn, Y(B(E)), 1)
2152
- ]),
2153
- _: 2
2154
- }, 1032, ["title"])
2155
- ]),
2156
- _: 2
2157
- }, [
2158
- be(q.value, (E) => ({
2159
- name: E,
2160
- fn: R((Z) => [
2161
- W(m.$slots, E, Re(Me(Z)), void 0, !0)
2162
- ])
2163
- }))
2164
- ]), 1040, ["value", "field-names", "options"])) : (i(), A(r(e), se({
2165
- key: 1,
2166
- ref: "select",
2167
- value: c.value,
2168
- "onUpdate:value": f[1] || (f[1] = (E) => c.value = E)
2169
- }, z.value, {
2170
- "field-names": y.value,
2171
- options: o.options,
2172
- onDropdownVisibleChange: U
2173
- }), ze({ _: 2 }, [
2174
- be(F.value, (E) => ({
2175
- name: E,
2176
- fn: R((Z) => [
2177
- W(m.$slots, E, Re(Me(Z)), void 0, !0)
2178
- ])
2179
- }))
2180
- ]), 1040, ["value", "field-names", "options"]))
2181
- ], 6)
2182
- ]),
2183
- _: 3
2184
- }, 16, ["title"]));
2185
- }
2186
- }), Qn = /* @__PURE__ */ me(Jn, [["__scopeId", "data-v-8acc9d8f"]]), pa = Qn;
1
+ import { C as a, P as o } from "./PlatformConfigProvider-BwqlDDcK.js";
2
+ import { d as m, l as t, r as Y, t as p, a as f } from "./tokens-Dw6w0SSs.js";
3
+ import { p as i, u as T } from "./context-DJQ4f46a.js";
4
+ import { Y as d } from "./index-DZP16zRG.js";
5
+ import { Y as n } from "./index-kF3hvw2Z.js";
6
+ import { Y as P, a as u, b as C, c as S, d as b } from "./YeeTabs-BPzlkZy6.js";
7
+ import { Y as E } from "./YeeDescriptions-BZ33odSs.js";
8
+ import { Y as c } from "./YeeEllipsisText-CR94Jym2.js";
9
+ import { Y as F } from "./YeeFileUpload-DvRN1D-j.js";
10
+ import { Y as H, a as v } from "./form-api-DbIL_dvg.js";
11
+ import { Y as I, u as L } from "./use-yee-grid-CUkH4SGb.js";
12
+ import { Y as N } from "./YeePage-Dbvn1TNi.js";
2187
13
  export {
2188
- aa as CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT,
2189
- ia as PlatformConfigProvider,
2190
- sa as YeeDescriptions,
2191
- ra as YeeEllipsisText,
2192
- ua as YeeFilePreview,
2193
- Eo as YeeFileUpload,
2194
- bn as YeeForm,
2195
- wn as YeeFormApi,
2196
- _n as YeeGridApi,
2197
- da as YeeModal,
2198
- fa as YeePage,
2199
- pa as YeeSelect,
2200
- ya as darkThemeTokens,
2201
- ha as lightThemeTokens,
2202
- Ne as platformThemeKey,
2203
- qt as resolvePlatformTheme,
2204
- Gt as toAntDesignTheme,
2205
- Kt as toPlatformCssVariables,
2206
- la as usePlatformTheme,
2207
- ca as useYeeGrid
14
+ a as CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT,
15
+ o as PlatformConfigProvider,
16
+ P as YeeAppShell,
17
+ E as YeeDescriptions,
18
+ c as YeeEllipsisText,
19
+ F as YeeFileUpload,
20
+ H as YeeForm,
21
+ v as YeeFormApi,
22
+ I as YeeGridApi,
23
+ u as YeeHeader,
24
+ C as YeeMenu,
25
+ d as YeeModal,
26
+ N as YeePage,
27
+ n as YeeSelect,
28
+ S as YeeSidebar,
29
+ b as YeeTabs,
30
+ m as darkThemeTokens,
31
+ t as lightThemeTokens,
32
+ i as platformThemeKey,
33
+ Y as resolvePlatformTheme,
34
+ p as toAntDesignTheme,
35
+ f as toPlatformCssVariables,
36
+ T as usePlatformTheme,
37
+ L as useYeeGrid
2208
38
  };