@skyfox2000/webui 1.5.0 → 1.5.2

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.
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as _, onMounted as I, createBlock as s, openBlock as o, unref as e, withCtx as l, createCommentVNode as r, createVNode as p, createElementVNode as x, createElementBlock as y, toDisplayString as g, renderSlot as h } from "vue";
2
2
  import { Layout as i, LayoutSider as k } from "ant-design-vue";
3
- import { a as b } from "./toolIcon-BD37QUAw.js";
4
- import { I as C, _ as S, f as w, d as $, g as N } from "./menuTabs-Dx5VAF5K.js";
5
- import { ah as v, a as B, aj as E } from "./upload-template-DPaurj5G.js";
3
+ import { a as b } from "./toolIcon-i6qsm90I.js";
4
+ import { I as C, _ as S, f as w, d as $, g as N } from "./menuTabs-CBfrAU7g.js";
5
+ import { ah as v, a as B, aj as E } from "./upload-template-CTdnP66K.js";
6
6
  import "@skyfox2000/microbase";
7
7
  import "@skyfox2000/fapi";
8
8
  import L from "vue-m-message";
@@ -4,7 +4,7 @@ var d = (n, r, s) => m(n, typeof r != "symbol" ? r + "" : r, s);
4
4
  import { hostUrl as w } from "@skyfox2000/fapi";
5
5
  import y from "dayjs";
6
6
  import f from "vue-m-message";
7
- import { M as b, u as g } from "./upload-template-DPaurj5G.js";
7
+ import { M as b, u as g } from "./upload-template-CTdnP66K.js";
8
8
  import { isMicroApp as O } from "@skyfox2000/microbase";
9
9
  var i = /* @__PURE__ */ ((n) => (n.Pending = "pending", n.Uploading = "uploading", n.Success = "success", n.Error = "error", n.Online = "online", n.Offline = "offline", n))(i || {});
10
10
  class M {
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as B, provide as N, ref as w, watch as p, onMounted as _, createBlock as n, openBlock as r, unref as a, withCtx as s, createElementVNode as b, renderSlot as C, createVNode as V, createCommentVNode as d, createTextVNode as u, toDisplayString as v } from "vue";
2
- import { _ as m } from "./index-C8QXmnsn.js";
2
+ import { _ as m } from "./index-DOVEboJ8.js";
3
3
  import { Modal as D, Space as $ } from "ant-design-vue";
4
4
  import "@skyfox2000/fapi";
5
- import { P as E, d as M, o as P, b as K } from "./upload-template-DPaurj5G.js";
5
+ import { P as E, d as M, o as P, b as K } from "./upload-template-CTdnP66K.js";
6
6
  import "@skyfox2000/microbase";
7
7
  import "vue-m-message";
8
8
  import "async-validator";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as d, useAttrs as f, createElementBlock as u, openBlock as x, createVNode as e, withCtx as n, unref as o, mergeProps as r, renderSlot as p } from "vue";
2
2
  import { Button as _ } from "ant-design-vue";
3
- import { a as P, _ as k } from "./toolIcon-BD37QUAw.js";
3
+ import { a as P, _ as k } from "./toolIcon-i6qsm90I.js";
4
4
  const C = /* @__PURE__ */ d({
5
5
  inheritAttrs: !1,
6
6
  __name: "index",
@@ -1,10 +1,10 @@
1
1
  import H from "async-validator";
2
2
  import { httpPost as M, ResStatus as V } from "@skyfox2000/fapi";
3
- import { i as T, as as U, L as $, u as z } from "./upload-template-DPaurj5G.js";
3
+ import { i as T, as as U, L as $, u as z } from "./upload-template-CTdnP66K.js";
4
4
  import m from "vue-m-message";
5
5
  import { defineComponent as _, useAttrs as B, createElementBlock as A, openBlock as b, createVNode as O, unref as v, mergeProps as S, computed as E, createBlock as R, withCtx as L, normalizeStyle as N } from "vue";
6
6
  import { Spin as K, Alert as P } from "ant-design-vue";
7
- import { _ as W } from "./toolIcon-BD37QUAw.js";
7
+ import { _ as W } from "./toolIcon-i6qsm90I.js";
8
8
  const D = (i) => {
9
9
  const e = i.split(`
10
10
  `).filter((l) => l.trim() !== "");
@@ -1,33 +1,33 @@
1
- import { defineComponent as x, createBlock as h, createCommentVNode as C, openBlock as u, unref as t, mergeProps as $, useAttrs as V, computed as M, ref as v, watch as k, withCtx as d, createElementBlock as _, normalizeStyle as T, createElementVNode as g, inject as W, onMounted as P, createVNode as l, toDisplayString as w, Fragment as R, reactive as Y, nextTick as q, renderList as J, withModifiers as X } from "vue";
2
- import { a as A, _ as S } from "./toolIcon-BD37QUAw.js";
3
- import { c as L, W as E, aj as O, Z as K, Y as U, u as D, ao as b, M as Z, a as F, X as G, r as H, ah as B } from "./upload-template-DPaurj5G.js";
4
- import { _ as Q } from "./_plugin-vue_export-helper-CHgC5LLL.js";
5
- import { theme as j, Breadcrumb as ee, Modal as te, Flex as ne, LayoutHeader as oe, Space as se, Menu as ie, Tabs as ce, TabPane as ae } from "ant-design-vue";
6
- import { isMicroApp as le } from "@skyfox2000/microbase";
1
+ import { defineComponent as x, createBlock as y, createCommentVNode as w, openBlock as u, unref as t, mergeProps as $, useAttrs as W, computed as E, ref as h, watch as S, withCtx as d, createElementBlock as g, normalizeStyle as T, createElementVNode as m, inject as Y, onMounted as P, createVNode as r, toDisplayString as C, Fragment as M, renderList as U, createTextVNode as J, reactive as X, nextTick as Z, withModifiers as G } from "vue";
2
+ import { a as A, _ as b } from "./toolIcon-i6qsm90I.js";
3
+ import { c as D, W as K, aj as O, Z as L, Y as R, u as F, ao as k, M as Q, ap as ee, aq as te, ar as ne, a as H, X as oe, r as V, ah as B } from "./upload-template-CTdnP66K.js";
4
+ import { _ as se } from "./_plugin-vue_export-helper-CHgC5LLL.js";
5
+ import { theme as j, Breadcrumb as ie, Modal as ae, Flex as ce, Dropdown as le, Menu as q, MenuItem as re, LayoutHeader as ue, Space as pe, Tabs as de, TabPane as me } from "ant-design-vue";
6
+ import { isMicroApp as fe } from "@skyfox2000/microbase";
7
7
  import { SERVER_HOST as N } from "@skyfox2000/fapi";
8
8
  import "vue-m-message";
9
9
  import "async-validator";
10
10
  import "dayjs";
11
11
  import "vue-draggable-next";
12
- const re = /* @__PURE__ */ x({
12
+ const ge = /* @__PURE__ */ x({
13
13
  __name: "appicon",
14
14
  props: {
15
15
  icon: {
16
16
  type: String
17
17
  }
18
18
  },
19
- setup(c) {
20
- const s = c, e = L({
19
+ setup(a) {
20
+ const o = a, e = D({
21
21
  iconUrl: `${N.APP_ICONS}`,
22
- icon: s.icon
22
+ icon: o.icon
23
23
  });
24
- return (r, a) => c.icon ? (u(), h(t(e), $({
24
+ return (l, c) => a.icon ? (u(), y(t(e), $({
25
25
  key: 0,
26
- icon: c.icon,
26
+ icon: a.icon,
27
27
  class: ["text-2xl", "align-middle", "w-6", "h-6"]
28
- }, r.$attrs), null, 16, ["icon"])) : C("", !0);
28
+ }, l.$attrs), null, 16, ["icon"])) : w("", !0);
29
29
  }
30
- }), ue = ["xlink:href"], pe = /* @__PURE__ */ x({
30
+ }), xe = ["xlink:href"], _e = /* @__PURE__ */ x({
31
31
  inheritAttrs: !1,
32
32
  __name: "index",
33
33
  props: {
@@ -271,97 +271,97 @@ const re = /* @__PURE__ */ x({
271
271
  */
272
272
  "update:iconIndex"
273
273
  ],
274
- setup(c, { emit: s }) {
275
- const i = V(), e = c, r = s, a = M(() => {
274
+ setup(a, { emit: o }) {
275
+ const s = W(), e = a, l = o, c = E(() => {
276
276
  if (Array.isArray(e.size)) return e.size;
277
277
  {
278
- let o = e.size;
279
- return [o, o];
278
+ let i = e.size;
279
+ return [i, i];
280
280
  }
281
- }), n = v(e.icon), m = v(e.iconIndex);
282
- k(
281
+ }), n = h(e.icon), f = h(e.iconIndex);
282
+ S(
283
283
  () => e.icon,
284
- (o) => {
285
- n.value = o;
284
+ (i) => {
285
+ n.value = i;
286
286
  }
287
- ), k(
287
+ ), S(
288
288
  () => e.iconIndex,
289
- (o) => {
290
- m.value = o, n.value = e.icons[o];
289
+ (i) => {
290
+ f.value = i, n.value = e.icons[i];
291
291
  }
292
292
  );
293
- const p = M({
293
+ const p = E({
294
294
  get() {
295
- return m.value;
295
+ return f.value;
296
296
  },
297
- set(o) {
298
- m.value = o, r("update:iconIndex", m.value);
297
+ set(i) {
298
+ f.value = i, l("update:iconIndex", f.value);
299
299
  }
300
300
  });
301
- e.icons.length > 0 ? (p.value = p.value >= e.icons.length ? 0 : p.value, n.value = e.icons[m.value]) : n.value = e.icon;
302
- const I = (o) => {
303
- if (o.stopPropagation(), e.clickEvent) {
304
- const y = e.clickEvent.split("#");
305
- y.length === 2 && W("$" + y[0]).$emit(y[1], e.data);
301
+ e.icons.length > 0 ? (p.value = p.value >= e.icons.length ? 0 : p.value, n.value = e.icons[f.value]) : n.value = e.icon;
302
+ const I = (i) => {
303
+ if (i.stopPropagation(), e.clickEvent) {
304
+ const v = e.clickEvent.split("#");
305
+ v.length === 2 && Y("$" + v[0]).$emit(v[1], e.data);
306
306
  }
307
- e.autoSwitch && e.icons.length > 0 && (p.value = (p.value + 1) % e.icons.length, n.value = e.icons[m.value]), r("click");
308
- }, f = () => {
309
- let o = "";
310
- return e.spin && (o += "rotate"), e.flip && (o += " flip"), o;
307
+ e.autoSwitch && e.icons.length > 0 && (p.value = (p.value + 1) % e.icons.length, n.value = e.icons[f.value]), l("click");
308
+ }, _ = () => {
309
+ let i = "";
310
+ return e.spin && (i += "rotate"), e.flip && (i += " flip"), i;
311
311
  };
312
- return (o, y) => (u(), h(A, {
312
+ return (i, v) => (u(), y(A, {
313
313
  title: e.tiptext,
314
314
  disabled: e.tiptext ? void 0 : "disabled",
315
- color: c.tipcolor,
316
- placement: c.placement,
317
- size: c.tipsize
315
+ color: a.tipcolor,
316
+ placement: a.placement,
317
+ size: a.tipsize
318
318
  }, {
319
319
  default: d(() => {
320
320
  var z;
321
321
  return [
322
- n.value ? (u(), _("div", {
322
+ n.value ? (u(), g("div", {
323
323
  key: 0,
324
324
  class: "re-icon-container",
325
325
  style: T({
326
- width: a.value[0].toString(),
327
- height: a.value[1].toString()
326
+ width: c.value[0].toString(),
327
+ height: c.value[1].toString()
328
328
  })
329
329
  }, [
330
- (z = n.value) != null && z.startsWith("sym-") ? (u(), _("svg", $({ key: 1 }, t(i), {
331
- class: ["re-icon symbol", [e.clickable ? "clickable" : "", f(), e.className]],
330
+ (z = n.value) != null && z.startsWith("sym-") ? (u(), g("svg", $({ key: 1 }, t(s), {
331
+ class: ["re-icon symbol", [e.clickable ? "clickable" : "", _(), e.className]],
332
332
  "aria-hidden": "true",
333
333
  style: {
334
334
  top: e.position ? e.position[1] : 0,
335
335
  left: e.position ? e.position[0] : 0,
336
336
  fontSize: e.fontsize,
337
337
  transformOrigin: e.center ?? "center center",
338
- transform: t(E)(),
338
+ transform: t(K)(),
339
339
  color: e.color
340
340
  }
341
341
  }), [
342
- g("use", {
342
+ m("use", {
343
343
  "xlink:href": "#icon-" + n.value.replace("sym-", "")
344
- }, null, 8, ue)
345
- ], 16)) : (u(), _("i", $({ key: 0 }, t(i), {
346
- class: ["re-icon iconfont fontclass", [e.clickable ? "clickable" : "", "icon-" + n.value, f(), e.className]],
344
+ }, null, 8, xe)
345
+ ], 16)) : (u(), g("i", $({ key: 0 }, t(s), {
346
+ class: ["re-icon iconfont fontclass", [e.clickable ? "clickable" : "", "icon-" + n.value, _(), e.className]],
347
347
  style: {
348
348
  top: e.position ? e.position[1] : 1,
349
349
  left: e.position ? e.position[0] : 0,
350
350
  fontSize: e.fontsize,
351
351
  transformOrigin: e.center ?? "center center",
352
- transform: t(E)(e.angle, e.flip),
352
+ transform: t(K)(e.angle, e.flip),
353
353
  color: e.color
354
354
  },
355
355
  "aria-hidden": "true",
356
356
  onClick: I
357
357
  }), null, 16))
358
- ], 4)) : C("", !0)
358
+ ], 4)) : w("", !0)
359
359
  ];
360
360
  }),
361
361
  _: 1
362
362
  }, 8, ["title", "disabled", "color", "placement", "size"]));
363
363
  }
364
- }), Ke = /* @__PURE__ */ Q(pe, [["__scopeId", "data-v-0146f00c"]]), de = /* @__PURE__ */ x({
364
+ }), qe = /* @__PURE__ */ se(_e, [["__scopeId", "data-v-0146f00c"]]), ye = /* @__PURE__ */ x({
365
365
  __name: "projectIcon",
366
366
  props: {
367
367
  icon: {
@@ -378,113 +378,113 @@ const re = /* @__PURE__ */ x({
378
378
  default: !0
379
379
  }
380
380
  },
381
- setup(c) {
382
- const s = c, e = L({
383
- iconUrl: `${s.iconUrl ?? N.PROJECT_ICONS ?? N.TOOL_ICONS}`,
384
- monoColor: s.monoColor,
385
- icon: s.icon,
386
- icons: s.icons
381
+ setup(a) {
382
+ const o = a, e = D({
383
+ iconUrl: `${o.iconUrl ?? N.PROJECT_ICONS ?? N.TOOL_ICONS}`,
384
+ monoColor: o.monoColor,
385
+ icon: o.icon,
386
+ icons: o.icons
387
387
  });
388
- return (r, a) => c.icon || c.icons ? (u(), h(t(e), $({
388
+ return (l, c) => a.icon || a.icons ? (u(), y(t(e), $({
389
389
  key: 0,
390
- icon: c.icon,
391
- icons: c.icons,
390
+ icon: a.icon,
391
+ icons: a.icons,
392
392
  class: ["align-middle"]
393
- }, r.$attrs), null, 16, ["icon", "icons"])) : C("", !0);
393
+ }, l.$attrs), null, 16, ["icon", "icons"])) : w("", !0);
394
394
  }
395
- }), me = { class: "text-xs leading-[3]" }, fe = {
395
+ }), ve = { class: "text-xs leading-[3]" }, he = {
396
396
  key: 0,
397
397
  class: "leading-[2.5] mx-[6px] text-[rgba(0,0,0,0.45)]"
398
- }, _e = /* @__PURE__ */ x({
398
+ }, be = /* @__PURE__ */ x({
399
399
  __name: "index",
400
- setup(c) {
401
- const { useToken: s } = j, { token: i } = s(), e = O();
402
- return k(
400
+ setup(a) {
401
+ const { useToken: o } = j, { token: s } = o(), e = O();
402
+ return S(
403
403
  () => e.TabActive,
404
- () => K()
404
+ () => L()
405
405
  ), P(() => {
406
- K();
407
- }), (r, a) => (u(), _("div", {
406
+ L();
407
+ }), (l, c) => (u(), g("div", {
408
408
  class: "ml-5 h-fit p-0 flex items-center justify-between",
409
409
  style: T({
410
- backgroundColor: t(i).colorBgContainer
410
+ backgroundColor: t(s).colorBgContainer
411
411
  })
412
412
  }, [
413
- l(t(S), {
413
+ r(t(b), {
414
414
  icon: "icon-home",
415
415
  class: "w-[15px] h-[15px]"
416
416
  }),
417
- a[0] || (a[0] = g("span", { class: "leading-[2.5] mx-[6px] text-[rgba(0,0,0,0.45)]" }, ">", -1)),
418
- l(t(ee), {
419
- routes: t(U),
417
+ c[0] || (c[0] = m("span", { class: "leading-[2.5] mx-[6px] text-[rgba(0,0,0,0.45)]" }, ">", -1)),
418
+ r(t(ie), {
419
+ routes: t(R),
420
420
  separator: ""
421
421
  }, {
422
422
  itemRender: d(({ route: n }) => [
423
- g("span", me, w(n.breadcrumbName), 1),
424
- l(t(S), {
423
+ m("span", ve, C(n.breadcrumbName), 1),
424
+ r(t(b), {
425
425
  icon: n.icon,
426
426
  fontsize: "15px"
427
427
  }, null, 8, ["icon"]),
428
- n.index < t(U).length - 1 ? (u(), _("span", fe, ">")) : C("", !0)
428
+ n.index < t(R).length - 1 ? (u(), g("span", he, ">")) : w("", !0)
429
429
  ]),
430
430
  _: 1
431
431
  }, 8, ["routes"])
432
432
  ], 4));
433
433
  }
434
- }), ge = { class: "font-['Courier'] text-[#666]" }, xe = /* @__PURE__ */ x({
434
+ }), ke = { class: "font-['Courier'] text-[#666]" }, Se = /* @__PURE__ */ x({
435
435
  __name: "index",
436
- setup(c) {
437
- const s = v("");
436
+ setup(a) {
437
+ const o = h("");
438
438
  return P(() => {
439
439
  setInterval(() => {
440
- const i = /* @__PURE__ */ new Date(), e = { month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit" }, r = i.toLocaleString(void 0, e).replace(/\//g, "-").replace(",", "");
441
- s.value = i.getFullYear() + "-" + r;
440
+ const s = /* @__PURE__ */ new Date(), e = { month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit" }, l = s.toLocaleString(void 0, e).replace(/\//g, "-").replace(",", "");
441
+ o.value = s.getFullYear() + "-" + l;
442
442
  }, 1e3);
443
- }), (i, e) => (u(), _("div", ge, w(s.value), 1));
443
+ }), (s, e) => (u(), g("div", ke, C(o.value), 1));
444
444
  }
445
- }), ye = { style: { margin: "0 0 0 20px", "font-weight": "400", "font-size": "16px" } }, ve = /* @__PURE__ */ x({
445
+ }), Ce = { style: { margin: "0 0 0 20px", "font-weight": "400", "font-size": "16px" } }, Ie = /* @__PURE__ */ x({
446
446
  __name: "headerExits",
447
- setup(c) {
448
- const s = D(), i = v(!1), e = () => {
449
- i.value = !1, le() ? Z.userLogout() : s.logout(!0);
447
+ setup(a) {
448
+ const o = F(), s = h(!1), e = () => {
449
+ s.value = !1, fe() ? Q.userLogout() : o.logout(!0);
450
450
  };
451
- return (r, a) => (u(), _(R, null, [
452
- l(t(A), {
453
- title: t(b)("webui.layout.header.exitPlatform")
451
+ return (l, c) => (u(), g(M, null, [
452
+ r(t(A), {
453
+ title: t(k)("webui.layout.header.exitPlatform")
454
454
  }, {
455
455
  default: d(() => [
456
- l(t(S), {
456
+ r(t(b), {
457
457
  icon: "icon-logout",
458
- onClick: a[0] || (a[0] = (n) => i.value = !0),
458
+ onClick: c[0] || (c[0] = (n) => s.value = !0),
459
459
  clickable: "",
460
460
  class: "w-5 h-5",
461
- title: t(b)("webui.layout.header.exitSystem")
461
+ title: t(k)("webui.layout.header.exitSystem")
462
462
  }, null, 8, ["title"])
463
463
  ]),
464
464
  _: 1
465
465
  }, 8, ["title"]),
466
- l(t(te), {
467
- open: i.value,
468
- "onUpdate:open": a[1] || (a[1] = (n) => i.value = n),
469
- title: t(b)("webui.layout.header.confirmExit"),
470
- "ok-text": t(b)("webui.common.confirm"),
471
- "cancel-text": t(b)("webui.common.cancel"),
466
+ r(t(ae), {
467
+ open: s.value,
468
+ "onUpdate:open": c[1] || (c[1] = (n) => s.value = n),
469
+ title: t(k)("webui.layout.header.confirmExit"),
470
+ "ok-text": t(k)("webui.common.confirm"),
471
+ "cancel-text": t(k)("webui.common.cancel"),
472
472
  width: 380,
473
473
  onOk: e
474
474
  }, {
475
475
  default: d(() => [
476
- l(t(ne), {
476
+ r(t(ce), {
477
477
  align: "center",
478
478
  justify: "flex-start",
479
479
  style: { padding: "0 32px", margin: "20px 0" }
480
480
  }, {
481
481
  default: d(() => [
482
- l(t(S), {
482
+ r(t(b), {
483
483
  icon: "icon-question-circle",
484
484
  color: "orange",
485
485
  class: "w-[60px] h-[60px]"
486
486
  }),
487
- g("div", ye, w(t(b)("webui.layout.header.exitConfirmMessage")), 1)
487
+ m("div", Ce, C(t(k)("webui.layout.header.exitConfirmMessage")), 1)
488
488
  ]),
489
489
  _: 1
490
490
  })
@@ -493,155 +493,198 @@ const re = /* @__PURE__ */ x({
493
493
  }, 8, ["open", "title", "ok-text", "cancel-text"])
494
494
  ], 64));
495
495
  }
496
- }), he = { class: "flex items-center flex-nowrap" }, be = { class: "mr-2 text-sm whitespace-nowrap" }, ke = /* @__PURE__ */ x({
496
+ }), we = { class: "flex items-center flex-nowrap" }, $e = { class: "mr-2 text-sm whitespace-nowrap" }, Te = /* @__PURE__ */ x({
497
497
  __name: "user",
498
- setup(c) {
499
- const s = D().userInfo;
500
- return (i, e) => (u(), h(t(A), {
501
- title: t(s).Name
498
+ setup(a) {
499
+ const o = F().userInfo;
500
+ return (s, e) => (u(), y(t(A), {
501
+ title: t(o).Name
502
502
  }, {
503
503
  default: d(() => [
504
- g("div", he, [
505
- g("span", be, w(t(s).Name), 1),
506
- l(t(re), { icon: "icon-account" })
504
+ m("div", we, [
505
+ m("span", $e, C(t(o).Name), 1),
506
+ r(t(ge), { icon: "icon-account" })
507
507
  ])
508
508
  ]),
509
509
  _: 1
510
510
  }, 8, ["title"]));
511
511
  }
512
- }), Se = { class: "flex items-center" }, Ue = /* @__PURE__ */ x({
512
+ }), Ae = { class: "flex items-center cursor-pointer" }, ze = /* @__PURE__ */ x({
513
+ __name: "language",
514
+ setup(a) {
515
+ const o = ee(), s = h(te()), e = async (l) => {
516
+ try {
517
+ await ne(l), s.value = l;
518
+ } catch (c) {
519
+ console.error("Failed to change language:", c);
520
+ }
521
+ };
522
+ return (l, c) => (u(), y(t(le), { placement: "bottomRight" }, {
523
+ overlay: d(() => [
524
+ r(t(q), null, {
525
+ default: d(() => [
526
+ (u(!0), g(M, null, U(t(o), (n) => (u(), y(t(re), {
527
+ key: n.key,
528
+ onClick: (f) => e(n.key)
529
+ }, {
530
+ default: d(() => [
531
+ J(C(n.label), 1)
532
+ ]),
533
+ _: 2
534
+ }, 1032, ["onClick"]))), 128))
535
+ ]),
536
+ _: 1
537
+ })
538
+ ]),
539
+ default: d(() => [
540
+ m("div", Ae, [
541
+ r(t(b), {
542
+ icon: "icon-language",
543
+ class: "w-[18px] h-[18px]"
544
+ })
545
+ ])
546
+ ]),
547
+ _: 1
548
+ }));
549
+ }
550
+ }), Be = { class: "flex items-center" }, We = /* @__PURE__ */ x({
513
551
  __name: "index",
514
- setup(c) {
515
- const { useToken: s } = j, { token: i } = s(), e = F(), r = () => {
552
+ setup(a) {
553
+ const { useToken: o } = j, { token: s } = o(), e = H(), l = () => {
516
554
  e.setMenuCollapse(!e.menuCollapse);
517
555
  };
518
- return (a, n) => (u(), h(t(oe), {
556
+ return (c, n) => (u(), y(t(ue), {
519
557
  class: "w-full relative z-[1] shadow-[0_-3px_6px_#000] py-0 flex items-center justify-between",
520
558
  style: T({
521
559
  height: "40px",
522
560
  lineHeight: "1",
523
561
  paddingLeft: "10px",
524
562
  paddingRight: "20px",
525
- backgroundColor: t(i).colorBgContainer
563
+ backgroundColor: t(s).colorBgContainer
526
564
  })
527
565
  }, {
528
566
  default: d(() => [
529
- g("div", Se, [
530
- l(t(S), {
567
+ m("div", Be, [
568
+ r(t(b), {
531
569
  icon: "icon-menu",
532
570
  clickable: "",
533
571
  class: "w-[18px] h-[18px]",
534
572
  angle: t(e).menuCollapse ? 90 : 0,
535
- onClick: r
573
+ onClick: l
536
574
  }, null, 8, ["angle"]),
537
- l(_e)
575
+ r(be)
538
576
  ]),
539
- g("div", null, [
540
- l(t(se), {
577
+ m("div", null, [
578
+ r(t(pe), {
541
579
  size: "middle",
542
580
  class: "flex items-center"
543
581
  }, {
544
582
  default: d(() => [
545
- l(xe),
546
- l(ke),
547
- l(ve)
583
+ r(Se),
584
+ n[0] || (n[0] = m("div", { class: "w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]" }, null, -1)),
585
+ r(ze),
586
+ n[1] || (n[1] = m("div", { class: "w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]" }, null, -1)),
587
+ r(Te),
588
+ n[2] || (n[2] = m("div", { class: "w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]" }, null, -1)),
589
+ r(Ie)
548
590
  ]),
549
- _: 1
591
+ _: 1,
592
+ __: [0, 1, 2]
550
593
  })
551
594
  ])
552
595
  ]),
553
596
  _: 1
554
597
  }, 8, ["style"]));
555
598
  }
556
- }), Re = /* @__PURE__ */ x({
599
+ }), Ye = /* @__PURE__ */ x({
557
600
  __name: "index",
558
601
  props: {
559
602
  routes: {}
560
603
  },
561
- setup(c) {
562
- const s = c, i = v([]), e = v([]), r = Y([]), a = O(), n = (f) => {
563
- B().push(f.key.toString());
564
- }, m = F(), p = v([]), I = () => {
565
- let f = a.TabActive;
566
- const o = f.split("/");
567
- o.pop(), i.value = [o.join("/")], m.menuCollapse || (p.value = [o.join("/")]), e.value = [f];
604
+ setup(a) {
605
+ const o = a, s = h([]), e = h([]), l = X([]), c = O(), n = (_) => {
606
+ B().push(_.key.toString());
607
+ }, f = H(), p = h([]), I = () => {
608
+ let _ = c.TabActive;
609
+ const i = _.split("/");
610
+ i.pop(), s.value = [i.join("/")], f.menuCollapse || (p.value = [i.join("/")]), e.value = [_];
568
611
  };
569
- return k(
570
- () => m.menuCollapse,
571
- (f) => {
572
- f || (p.value = [], q(() => {
573
- p.value = [...i.value];
612
+ return S(
613
+ () => f.menuCollapse,
614
+ (_) => {
615
+ _ || (p.value = [], Z(() => {
616
+ p.value = [...s.value];
574
617
  }));
575
618
  }
576
- ), k(
577
- () => a.TabActive,
619
+ ), S(
620
+ () => c.TabActive,
578
621
  () => {
579
622
  I();
580
623
  }
581
624
  ), P(() => {
582
- G(s.routes, r, de, { class: "!w-5 !h-5" }), a.setTabActive(H.currentRoute.value.path), I();
583
- }), (f, o) => (u(), h(t(ie), {
625
+ oe(o.routes, l, ye, { class: "!w-5 !h-5" }), c.setTabActive(V.currentRoute.value.path), I();
626
+ }), (_, i) => (u(), y(t(q), {
584
627
  openKeys: p.value,
585
- "onUpdate:openKeys": o[0] || (o[0] = (y) => p.value = y),
628
+ "onUpdate:openKeys": i[0] || (i[0] = (v) => p.value = v),
586
629
  selectedKeys: e.value,
587
- "onUpdate:selectedKeys": o[1] || (o[1] = (y) => e.value = y),
630
+ "onUpdate:selectedKeys": i[1] || (i[1] = (v) => e.value = v),
588
631
  mode: "inline",
589
632
  theme: "dark",
590
- items: r,
633
+ items: l,
591
634
  onClick: n
592
635
  }, null, 8, ["openKeys", "selectedKeys", "items"]));
593
636
  }
594
- }), Ie = { class: "flex items-center" }, Ce = { class: "flex" }, we = ["onClick"], Le = /* @__PURE__ */ x({
637
+ }), Ne = { class: "flex items-center" }, Pe = { class: "flex" }, Me = ["onClick"], Je = /* @__PURE__ */ x({
595
638
  __name: "menuTabs",
596
- setup(c) {
597
- const { useToken: s } = j, { token: i } = s(), e = O();
598
- k(
599
- () => H.currentRoute.value.path,
639
+ setup(a) {
640
+ const { useToken: o } = j, { token: s } = o(), e = O();
641
+ S(
642
+ () => V.currentRoute.value.path,
600
643
  (n) => {
601
644
  n !== e.TabActive && e.setTabActive(n);
602
645
  }
603
646
  );
604
- const r = (n) => {
647
+ const l = (n) => {
605
648
  B().push(n);
606
- }, a = (n) => {
649
+ }, c = (n) => {
607
650
  e.removeTabPane(n), B().push(e.TabActive);
608
651
  };
609
- return (n, m) => (u(), _("div", {
610
- style: T({ height: "38px", backgroundColor: t(i).colorBgBase })
652
+ return (n, f) => (u(), g("div", {
653
+ style: T({ height: "38px", backgroundColor: t(s).colorBgBase })
611
654
  }, [
612
- l(t(ce), {
655
+ r(t(de), {
613
656
  activeKey: t(e).TabActive,
614
657
  "hide-add": "",
615
658
  size: "small",
616
659
  tabBarStyle: { padding: "0 20px" },
617
- onTabClick: r
660
+ onTabClick: l
618
661
  }, {
619
662
  default: d(() => [
620
- (u(!0), _(R, null, J(t(e).TabPanes, (p) => (u(), h(t(ae), {
663
+ (u(!0), g(M, null, U(t(e).TabPanes, (p) => (u(), y(t(me), {
621
664
  key: p.key
622
665
  }, {
623
666
  tab: d(() => [
624
- g("div", Ie, [
625
- g("span", Ce, w(p.title), 1),
626
- l(t(A), {
667
+ m("div", Ne, [
668
+ m("span", Pe, C(p.title), 1),
669
+ r(t(A), {
627
670
  title: "关闭",
628
671
  placement: "top",
629
672
  size: "small"
630
673
  }, {
631
674
  default: d(() => [
632
- t(e).TabPanes.length > 1 && p.closable ? (u(), _("div", {
675
+ t(e).TabPanes.length > 1 && p.closable ? (u(), g("div", {
633
676
  key: 0,
634
677
  class: "inline-block mx-auto relative flex items-center",
635
- onClick: X((I) => a(p.key), ["stop"])
678
+ onClick: G((I) => c(p.key), ["stop"])
636
679
  }, [
637
- l(t(S), {
680
+ r(t(b), {
638
681
  icon: "icon-new",
639
682
  angle: 45,
640
683
  clickable: "",
641
684
  class: "w-[15px] h-[15px] ml-1",
642
- tipcolor: t(i).colorBgSpotlight
685
+ tipcolor: t(s).colorBgSpotlight
643
686
  }, null, 8, ["tipcolor"])
644
- ], 8, we)) : C("", !0)
687
+ ], 8, Me)) : w("", !0)
645
688
  ]),
646
689
  _: 2
647
690
  }, 1024)
@@ -656,13 +699,13 @@ const re = /* @__PURE__ */ x({
656
699
  }
657
700
  });
658
701
  export {
659
- Ke as I,
660
- re as _,
661
- de as a,
662
- _e as b,
663
- xe as c,
664
- Ue as d,
665
- ve as e,
666
- Re as f,
667
- Le as g
702
+ qe as I,
703
+ ge as _,
704
+ ye as a,
705
+ be as b,
706
+ Se as c,
707
+ We as d,
708
+ Ie as e,
709
+ Ye as f,
710
+ Je as g
668
711
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as i, createBlock as s, openBlock as l, unref as a, withCtx as p, renderSlot as f, createCommentVNode as u, mergeProps as d } from "vue";
2
2
  import { Tooltip as I } from "ant-design-vue";
3
3
  import { SERVER_HOST as r } from "@skyfox2000/fapi";
4
- import { c as S } from "./upload-template-DPaurj5G.js";
4
+ import { c as S } from "./upload-template-CTdnP66K.js";
5
5
  const T = /* @__PURE__ */ i({
6
6
  __name: "index",
7
7
  props: {
@@ -6436,8 +6436,8 @@ export {
6436
6436
  ea as aj,
6437
6437
  tc as ak,
6438
6438
  Xc as al,
6439
- Yc as am,
6440
- ut as an,
6439
+ ut as am,
6440
+ Yc as an,
6441
6441
  Jc as ao,
6442
6442
  Qc as ap,
6443
6443
  Bc as aq,
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as pe, ref as O, computed as $, watch as T, resolveDirective as de, createElementBlock as d, openBlock as c, normalizeClass as z, unref as n, createElementVNode as h, withDirectives as x, createCommentVNode as w, createBlock as V, mergeProps as q, withCtx as v, createVNode as p, createTextVNode as P, toDisplayString as I, Fragment as me, renderList as fe } from "vue";
2
- import { _ as G } from "./index-C8QXmnsn.js";
3
- import { a as B, _ as R } from "./toolIcon-BD37QUAw.js";
2
+ import { _ as G } from "./index-DOVEboJ8.js";
3
+ import { a as B, _ as R } from "./toolIcon-i6qsm90I.js";
4
4
  import { httpPost as K, ResStatus as N } from "@skyfox2000/fapi";
5
- import { L as W, u as X, v as he, _ as ve } from "./upload-template-DPaurj5G.js";
6
- import { U as i, f as ye, p as H } from "./file-upload-CYCbA0Go.js";
5
+ import { L as W, u as X, v as he, _ as ve } from "./upload-template-CTdnP66K.js";
6
+ import { U as i, f as ye, p as H } from "./file-upload-CuBC_b2Z.js";
7
7
  import { combineParams as Y } from "@skyfox2000/microbase";
8
8
  import _ from "vue-m-message";
9
9
  import "async-validator";
@@ -0,0 +1,3 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3
+ export default _default;
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as F, defineAsyncComponent as M, ref as m, watch as V, onMounted as J, createElementBlock as x, openBlock as p, Fragment as K, createElementVNode as v, createVNode as _, toDisplayString as W, unref as i, createBlock as P, withKeys as f, normalizeClass as N, withModifiers as w, withCtx as z, createCommentVNode as L } from "vue";
2
2
  import "ant-design-vue";
3
- import { _ as q } from "../../assets/modules/toolIcon-BD37QUAw.js";
3
+ import { _ as q } from "../../assets/modules/toolIcon-i6qsm90I.js";
4
4
  import "@skyfox2000/fapi";
5
- import "../../assets/modules/upload-template-DPaurj5G.js";
5
+ import "../../assets/modules/upload-template-CTdnP66K.js";
6
6
  import "@skyfox2000/microbase";
7
7
  import "vue-m-message";
8
8
  import "async-validator";
9
9
  import "dayjs";
10
- import { _ as D } from "../../assets/modules/index-DGfxQmRW.js";
10
+ import { _ as D } from "../../assets/modules/index-C1-LFp_3.js";
11
11
  import "vue-draggable-next";
12
12
  const h = async (s) => window.ace ? window.ace : new Promise((l, t) => {
13
13
  const o = document.createElement("script");
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as f, ref as d, watch as _, onMounted as v, resolveComponent as h, createBlock as o, openBlock as t, withCtx as s, createElementVNode as C, normalizeClass as x, createVNode as w, KeepAlive as y, unref as n, resolveDynamicComponent as I } from "vue";
2
- import { _ as g } from "../../assets/modules/baseLayout-Ck74iWSW.js";
3
- import { ah as A, a as S } from "../../assets/modules/upload-template-DPaurj5G.js";
2
+ import { _ as g } from "../../assets/modules/baseLayout-BRM7YM_m.js";
3
+ import { ah as A, a as S } from "../../assets/modules/upload-template-CTdnP66K.js";
4
4
  import "@skyfox2000/microbase";
5
5
  import "@skyfox2000/fapi";
6
6
  import b from "vue-m-message";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as i, createBlock as p, openBlock as m, unref as r, withCtx as e, createVNode as n, createTextVNode as a } from "vue";
2
- import { r as s } from "../../assets/modules/upload-template-DPaurj5G.js";
2
+ import { r as s } from "../../assets/modules/upload-template-CTdnP66K.js";
3
3
  import "@skyfox2000/microbase";
4
4
  import "@skyfox2000/fapi";
5
5
  import "vue-m-message";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as i, createBlock as p, openBlock as m, unref as r, withCtx as e, createVNode as n, createTextVNode as a } from "vue";
2
- import { r as s } from "../../assets/modules/upload-template-DPaurj5G.js";
2
+ import { r as s } from "../../assets/modules/upload-template-CTdnP66K.js";
3
3
  import "@skyfox2000/microbase";
4
4
  import "@skyfox2000/fapi";
5
5
  import "vue-m-message";
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as we, ref as f, computed as T, watch as H, onMounted as be, createBlock as W, openBlock as d, unref as n, withCtx as S, renderSlot as J, createElementBlock as g, createCommentVNode as K, createElementVNode as h, createVNode as C, createTextVNode as X, toDisplayString as E, normalizeClass as Ce, Fragment as ie, renderList as ne } from "vue";
2
- import { _ as Y } from "../../assets/modules/index-C8QXmnsn.js";
2
+ import { _ as Y } from "../../assets/modules/index-DOVEboJ8.js";
3
3
  import { Modal as Fe, Upload as ue, Space as _e } from "ant-design-vue";
4
4
  import { httpGet as Ue, ResStatus as fe } from "@skyfox2000/fapi";
5
- import { G as Te, a5 as Se, ab as Ee } from "../../assets/modules/upload-template-DPaurj5G.js";
6
- import { A as Re, p as De, U as ce } from "../../assets/modules/file-upload-CYCbA0Go.js";
5
+ import { G as Te, a5 as Se, ab as Ee } from "../../assets/modules/upload-template-CTdnP66K.js";
6
+ import { A as Re, p as De, U as ce } from "../../assets/modules/file-upload-CuBC_b2Z.js";
7
7
  import "@skyfox2000/microbase";
8
8
  import p from "vue-m-message";
9
- import { c as ke, _ as Z, h as Le, p as Ne, i as Ke } from "../../assets/modules/index-D_-xtDo9.js";
9
+ import { c as ke, _ as Z, h as Le, p as Ne, i as Ke } from "../../assets/modules/index-QUD5C1RM.js";
10
10
  import "dayjs";
11
11
  import "vue-draggable-next";
12
12
  import "async-validator";
@@ -307,7 +307,7 @@ const Be = (l) => l.includes(",") || l.includes(`
307
307
  return p.error(v), ue.LIST_IGNORE;
308
308
  try {
309
309
  if (A(), y.value = t.name, q.value = u ? "text/csv" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", u) {
310
- const w = await t.arrayBuffer(), O = new TextDecoder("utf-8").decode(w), { csvToExcelView: G } = await import("../../assets/modules/index-D_-xtDo9.js").then((he) => he.j), M = await G(O, t.name);
310
+ const w = await t.arrayBuffer(), O = new TextDecoder("utf-8").decode(w), { csvToExcelView: G } = await import("../../assets/modules/index-QUD5C1RM.js").then((he) => he.j), M = await G(O, t.name);
311
311
  if (!M.success)
312
312
  throw new Error(M.error || "CSV文件处理失败");
313
313
  const oe = await (await fetch(M.blobUrl)).arrayBuffer();
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as f, ref as d, watch as _, onMounted as h, resolveComponent as v, createBlock as o, openBlock as t, withCtx as s, createElementVNode as C, normalizeClass as x, createVNode as w, KeepAlive as I, unref as n, resolveDynamicComponent as g } from "vue";
2
- import { _ as y } from "../../assets/modules/baseLayout-Ck74iWSW.js";
3
- import { ah as A, a as S } from "../../assets/modules/upload-template-DPaurj5G.js";
2
+ import { _ as y } from "../../assets/modules/baseLayout-BRM7YM_m.js";
3
+ import { ah as A, a as S } from "../../assets/modules/upload-template-CTdnP66K.js";
4
4
  import "@skyfox2000/microbase";
5
5
  import "@skyfox2000/fapi";
6
6
  import k from "vue-m-message";
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as x, ref as o, watch as S, onMounted as h, createBlock as C, openBlock as F, unref as m, withCtx as s, createVNode as f, createTextVNode as q } from "vue";
2
- import { _ as L } from "../../assets/modules/index-C8QXmnsn.js";
2
+ import { _ as L } from "../../assets/modules/index-DOVEboJ8.js";
3
3
  import { Modal as z, Space as D } from "ant-design-vue";
4
4
  import { httpPost as N, ResStatus as O } from "@skyfox2000/fapi";
5
- import { ak as d } from "../../assets/modules/upload-template-DPaurj5G.js";
6
- import { U as b } from "../../assets/modules/file-upload-CYCbA0Go.js";
5
+ import { ak as d } from "../../assets/modules/upload-template-CTdnP66K.js";
6
+ import { U as b } from "../../assets/modules/file-upload-CuBC_b2Z.js";
7
7
  import "@skyfox2000/microbase";
8
8
  import "vue-m-message";
9
9
  import "async-validator";
10
10
  import "dayjs";
11
11
  import "vue-draggable-next";
12
- import { U as g } from "../../assets/modules/uploadList-C0zjgyKg.js";
12
+ import { U as g } from "../../assets/modules/uploadList-BEKzoSex.js";
13
13
  const _ = /* @__PURE__ */ x({
14
14
  __name: "templateFile",
15
15
  props: {
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as S, ref as s, watch as b, onMounted as F, createBlock as z, openBlock as y, unref as p, withCtx as n, createVNode as v, mergeProps as D, createTextVNode as w } from "vue";
2
- import { _ as c } from "../../assets/modules/index-C8QXmnsn.js";
2
+ import { _ as c } from "../../assets/modules/index-DOVEboJ8.js";
3
3
  import { Modal as _, Space as L } from "ant-design-vue";
4
4
  import { ResStatus as k } from "@skyfox2000/fapi";
5
- import { a7 as T } from "../../assets/modules/upload-template-DPaurj5G.js";
5
+ import { a7 as T } from "../../assets/modules/upload-template-CTdnP66K.js";
6
6
  import "@skyfox2000/microbase";
7
7
  import E from "vue-m-message";
8
8
  import "async-validator";
9
9
  import "dayjs";
10
- import { A as N } from "../../assets/modules/file-upload-CYCbA0Go.js";
10
+ import { A as N } from "../../assets/modules/file-upload-CuBC_b2Z.js";
11
11
  import "vue-draggable-next";
12
- import { U as A } from "../../assets/modules/uploadList-C0zjgyKg.js";
12
+ import { U as A } from "../../assets/modules/uploadList-BEKzoSex.js";
13
13
  const K = /* @__PURE__ */ S({
14
14
  __name: "uploadForm",
15
15
  props: {
package/lib/index.d.ts CHANGED
@@ -47,4 +47,4 @@ export { useSettingInfo } from './stores/settingInfo';
47
47
  export { Alert, Button, Tooltip, AppIcon, Fullscreen, Helper, Icon, LayoutIcon, ProjectIcon, ToolIcon, Loading, Dialog, Drawer, Form, FormItem, Search, SearchItem, Table, TableOperate, Toolbar, Icontool, GroupTools, ToolPanel, Tree, AutoComplete, Cascader, Checkbox, DatePicker, Input, InputIcon, InputPassword, InputNumber, List, ListOperate, PropEditor, type PropConfigItem, Radio, RadioStatus, RangePicker, Select, Switch, Textarea, TimePicker, Transfer, TransferTable, TreeSelect, ImageList, UploadList, Breadcrumb, Content, Datetime, Header, HeaderExits, Menu, MenuTabs, } from './components/index';
48
48
  export type { ToolPanelGroup, DisplayMode, PanelCollapsed, ToolPanelConfig, ToolPanelEvents, ToolPanelProps, DragConfig, };
49
49
  export { uploadTempOpener, uploadTempBtn } from './utils/upload-template';
50
- export { initLang, i18n, $t, getAvailableLanguages, getLang, setLang } from './locales/index';
50
+ export { i18n, initLang, $t, getAvailableLanguages, getLang, setLang } from './locales/index';
@@ -17,4 +17,3 @@ export declare function getAvailableLanguages(): Array<{
17
17
  key: string;
18
18
  }>;
19
19
  export declare function $t(key: string, params?: Record<string, any>): string;
20
- export default i18n;
package/lib/webui.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-\[3px\]{bottom:3px}.left-0{left:0}.left-\[2px\]{left:2px}.left-\[85px\]{left:85px}.top-0{top:0}.top-\[-2px\]{top:-2px}.z-10{z-index:10}.z-\[1\]{z-index:1}.z-\[9999\]{z-index:9999}.\!m-0{margin:0!important}.m-\[10px\]{margin:10px}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[5px\]{margin-left:5px;margin-right:5px}.mx-\[6px\]{margin-left:6px;margin-right:6px}.mx-\[8px\]{margin-left:8px;margin-right:8px}.mx-auto{margin-left:auto;margin-right:auto}.\!ml-\[10px\]{margin-left:10px!important}.-ml-\[1px\]{margin-left:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-7{margin-bottom:1.75rem}.mb-\[-3px\]{margin-bottom:-3px}.mb-\[10px\]{margin-bottom:10px}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-\[10px\]{margin-left:10px}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-2\.5{margin-right:.625rem}.mr-\[10px\]{margin-right:10px}.mr-\[4px\]{margin-right:4px}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\[-2px\]{margin-top:-2px}.mt-\[3px\]{margin-top:3px}.mt-\[5px\]{margin-top:5px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.\!h-4{height:1rem!important}.\!h-5{height:1.25rem!important}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-9{height:2.25rem}.h-\[100px\]{height:100px}.h-\[12px\]{height:12px}.h-\[14px\]{height:14px}.h-\[15px\]{height:15px}.h-\[16px\]{height:16px}.h-\[17px\]{height:17px}.h-\[18\.5px\]{height:18.5px}.h-\[18px\]{height:18px}.h-\[19px\]{height:19px}.h-\[240px\]{height:240px}.h-\[24px\]{height:24px}.h-\[30px\]{height:30px}.h-\[40px\]{height:40px}.h-\[500px\]{height:500px}.h-\[60px\]{height:60px}.h-\[calc\(100vh-100px\)\]{height:calc(100vh - 100px)}.h-\[calc\(100vh-40px\)\]{height:calc(100vh - 40px)}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[calc\(100vh-81px\)\]{height:calc(100vh - 81px)}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[40px\]{max-height:40px}.\!min-h-\[calc\(100vh-100px\)\]{min-height:calc(100vh - 100px)!important}.min-h-\[32px\]{min-height:32px}.min-h-\[480px\]{min-height:480px}.min-h-full{min-height:100%}.\!w-4{width:1rem!important}.\!w-5{width:1.25rem!important}.\!w-\[46px\]{width:46px!important}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100\%\]{width:100%}.w-\[12px\]{width:12px}.w-\[14px\]{width:14px}.w-\[15px\]{width:15px}.w-\[17px\]{width:17px}.w-\[18px\]{width:18px}.w-\[19px\]{width:19px}.w-\[1px\]{width:1px}.w-\[22\%\]{width:22%}.w-\[248px\]{width:248px}.w-\[24px\]{width:24px}.w-\[3\%\]{width:3%}.w-\[33\%\]{width:33%}.w-\[46px\]{width:46px}.w-\[50\%\]{width:50%}.w-\[500px\]{width:500px}.w-\[58px\]{width:58px}.w-\[60px\]{width:60px}.w-\[64\%\]{width:64%}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[90\%\]{width:90%}.w-\[95\%\]{width:95%}.w-\[99\.3\%\]{width:99.3%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[170px\]{min-width:170px}.min-w-\[430px\]{min-width:430px}.max-w-\[200px\]{max-width:200px}.max-w-\[248px\]{max-width:248px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.scale-\[1\.1\]{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!cursor-move{cursor:move!important}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-\[5px\]{border-top-left-radius:5px;border-bottom-left-radius:5px}.rounded-r-\[5px\]{border-top-right-radius:5px;border-bottom-right-radius:5px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-red-300{--tw-border-opacity: 1 !important;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))!important}.border-\[\#1890ff\]{--tw-border-opacity: 1;border-color:rgb(24 144 255 / var(--tw-border-opacity, 1))}.border-\[\#b3e0ff\]{--tw-border-opacity: 1;border-color:rgb(179 224 255 / var(--tw-border-opacity, 1))}.border-\[\#ccc\]{--tw-border-opacity: 1;border-color:rgb(204 204 204 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.bg-\[\#1890ff\]{--tw-bg-opacity: 1;background-color:rgb(24 144 255 / var(--tw-bg-opacity, 1))}.bg-\[\#ccc\]{--tw-bg-opacity: 1;background-color:rgb(204 204 204 / var(--tw-bg-opacity, 1))}.bg-\[\#d9d9d9\]{--tw-bg-opacity: 1;background-color:rgb(217 217 217 / var(--tw-bg-opacity, 1))}.bg-\[\#e6f7ff\]{--tw-bg-opacity: 1;background-color:rgb(230 247 255 / var(--tw-bg-opacity, 1))}.bg-\[\#fcfcfc\]{--tw-bg-opacity: 1;background-color:rgb(252 252 252 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(240\,240\,240\,0\.2\)\]{background-color:#f0f0f033}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from: #f9fafb var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-gray-100{--tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[10px\]{padding:10px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[5px\]{padding-left:5px;padding-right:5px}.px-\[6px\]{padding-left:6px;padding-right:6px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0{padding-top:0;padding-bottom:0}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[4px\]{padding-top:4px;padding-bottom:4px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-\[5px\]{padding-top:5px}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-\[\'Courier\'\]{font-family:Courier}.\!text-\[12px\]{font-size:12px!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-\[2\.5\]{line-height:2.5}.leading-\[3\]{line-height:3}.leading-tight{line-height:1.25}.\!text-red-400{--tw-text-opacity: 1 !important;color:rgb(248 113 113 / var(--tw-text-opacity, 1))!important}.text-\[\#555\]{--tw-text-opacity: 1;color:rgb(85 85 85 / var(--tw-text-opacity, 1))}.text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.text-\[\#888\]{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[\#ff4d4f\]{--tw-text-opacity: 1;color:rgb(255 77 79 / var(--tw-text-opacity, 1))}.text-\[\#ff4d4fcc\]{color:#ff4d4fcc}.text-\[rgba\(0\,0\,0\,0\.45\)\]{color:#00000073}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.shadow-\[0_-3px_6px_\#000\]{--tw-shadow: 0 -3px 6px #000;--tw-shadow-colored: 0 -3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_3px_0px_\#ff4d4f\]{--tw-shadow: 0 0 3px 0px #ff4d4f;--tw-shadow-colored: 0 0 3px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.disabled{opacity:.3;cursor:not-allowed;filter:grayscale(90%)}.last\:mb-0:last-child{margin-bottom:0}.hover\:z-10:hover{z-index:10}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#666\]:hover{--tw-border-opacity: 1;border-color:rgb(102 102 102 / var(--tw-border-opacity, 1))}.hover\:border-\[\#8abeff\]:hover{--tw-border-opacity: 1;border-color:rgb(138 190 255 / var(--tw-border-opacity, 1))}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#b3e0ff\]:hover{--tw-bg-opacity: 1;background-color:rgb(179 224 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:from-gray-100:hover{--tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-gray-200:hover{--tw-gradient-to: #e5e7eb var(--tw-gradient-to-position)}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-950{--tw-text-opacity: 1;color:rgb(3 7 18 / var(--tw-text-opacity, 1))}.\[\&\>div\]\:ml-\[-1px\]>div{margin-left:-1px}.first\:\[\&\>div\]\:ml-0>div:first-child{margin-left:0}.re-icon-container[data-v-0146f00c]{position:relative;display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;overflow:hidden}.re-icon.symbol[data-v-0146f00c]{position:relative;margin:5px 0;width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.re-icon.fontclass[data-v-0146f00c]{position:relative;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.re-icon[disabled][data-v-0146f00c]{pointer-events:none;cursor:not-allowed;color:#666}.clickable[data-v-0146f00c]{cursor:pointer}.rotate[data-v-0146f00c]{animation:rotate 2s linear infinite}.flip[data-v-0146f00c]{transform:scaleX(-1)}.ant-switch-small .ant-switch-inner-checked,.ant-switch-small .ant-switch-inner-unchecked{font-size:10px!important}.error[data-v-87722b44] .ant-select-selector{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}[data-v-87722b44] input::-webkit-search-cancel-button,[data-v-87722b44] input::-webkit-clear-button{display:none!important}.error[data-v-51ddfce3] .ant-select-selector{border-color:#ef444480;box-shadow:0 0 3px #ff4d4f}.error[data-v-249ea772] input+span{border-color:#ff717190;box-shadow:0 0 3px #ff4d4f}.error[data-v-358b82ef] .ant-input-group-addon,.error[data-v-358b82ef] .ant-input-affix-wrapper{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error[data-v-aa237552] input+span{border-color:#ff7171;box-shadow:0 0 3px #ff4d4f}.error[data-v-b33df95f] .ant-select-selector{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error[data-v-71d50074] .ant-select-selector{border-color:#ef444480;box-shadow:0 0 3px #ff4d4f}.error[data-v-26d707cc]{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error-text[data-v-26d707cc]{color:#ff4d4f!important}.image-item[data-v-26d707cc]{transition:all .3s}.error[data-v-7ba0982f]{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error-text[data-v-7ba0982f]{color:#ff4d4f!important}body{margin:0}.x-spreadsheet{font-size:13px;line-height:normal;-webkit-user-select:none;user-select:none;-moz-user-select:none;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;box-sizing:content-box;background:#fff;-webkit-font-smoothing:antialiased}.x-spreadsheet textarea{font:400 13px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif}.x-spreadsheet-sheet{position:relative;overflow:hidden}.x-spreadsheet-table{vertical-align:bottom}.x-spreadsheet-tooltip{font-family:inherit;position:absolute;padding:5px 10px;color:#fff;border-radius:1px;background:#000;font-size:12px;z-index:201}.x-spreadsheet-tooltip:before{pointer-events:none;position:absolute;left:calc(50% - 4px);top:-4px;content:"";width:8px;height:8px;background:inherit;transform:rotate(45deg);z-index:1;box-shadow:1px 1px 3px -1px #0000004d}.x-spreadsheet-color-palette{padding:5px}.x-spreadsheet-color-palette table{margin:0;padding:0;border-collapse:separate;border-spacing:2;background:#fff}.x-spreadsheet-color-palette table td{margin:0;cursor:pointer;border:1px solid transparent}.x-spreadsheet-color-palette table td:hover{border-color:#ddd}.x-spreadsheet-color-palette table td .x-spreadsheet-color-palette-cell{width:16px;height:16px}.x-spreadsheet-border-palette{padding:6px}.x-spreadsheet-border-palette table{margin:0;padding:0;border-collapse:separate;border-spacing:0;background:#fff;table-layout:fixed}.x-spreadsheet-border-palette table td{margin:0}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left{border-right:1px solid #eee;padding-right:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell{width:30px;height:30px;cursor:pointer;text-align:center}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell:hover{background-color:#eee}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right{padding-left:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right .x-spreadsheet-line-type{position:relative;left:0;top:-3px}.x-spreadsheet-dropdown{position:relative}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-content{position:absolute;z-index:200;background:#fff;box-shadow:1px 2px 5px 2px #33333326}.x-spreadsheet-dropdown.bottom-left .x-spreadsheet-dropdown-content{top:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.bottom-right .x-spreadsheet-dropdown-content{top:calc(100% + 5px);right:0}.x-spreadsheet-dropdown.top-left .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.top-right .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);right:0}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-title{padding:0 5px;display:inline-block}.x-spreadsheet-resizer{position:absolute;z-index:11}.x-spreadsheet-resizer .x-spreadsheet-resizer-hover{background-color:#4b89ff40}.x-spreadsheet-resizer .x-spreadsheet-resizer-line{position:absolute}.x-spreadsheet-resizer.horizontal{cursor:row-resize}.x-spreadsheet-resizer.horizontal .x-spreadsheet-resizer-line{border-bottom:2px dashed #4b89ff;left:0;bottom:0}.x-spreadsheet-resizer.vertical{cursor:col-resize}.x-spreadsheet-resizer.vertical .x-spreadsheet-resizer-line{border-right:2px dashed #4b89ff;top:0;right:0}.x-spreadsheet-scrollbar{position:absolute;bottom:0;right:0;background-color:#f4f5f8;opacity:.9;z-index:12}.x-spreadsheet-scrollbar.horizontal{right:15px;overflow-x:scroll;overflow-y:hidden}.x-spreadsheet-scrollbar.horizontal>div{height:1px;background:#ddd}.x-spreadsheet-scrollbar.vertical{bottom:15px;overflow-x:hidden;overflow-y:scroll}.x-spreadsheet-scrollbar.vertical>div{width:1px;background:#ddd}.x-spreadsheet-overlayer{position:absolute;left:0;top:0;z-index:10}.x-spreadsheet-overlayer .x-spreadsheet-overlayer-content{position:absolute;overflow:hidden;pointer-events:none;width:100%;height:100%}.x-spreadsheet-editor,.x-spreadsheet-selector{box-sizing:content-box;position:absolute;overflow:hidden;pointer-events:none;top:0;left:0;width:100%;height:100%}.x-spreadsheet-selector .hide-input{position:absolute;z-index:0}.x-spreadsheet-selector .hide-input input{padding:0;width:0;border:none!important}.x-spreadsheet-selector .x-spreadsheet-selector-area{position:absolute;border:2px solid #4b89ff;background:#4b89ff1a;z-index:5}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard,.x-spreadsheet-selector .x-spreadsheet-selector-autofill{position:absolute;background:transparent;z-index:100}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard{border:2px dashed #4b89ff}.x-spreadsheet-selector .x-spreadsheet-selector-autofill{border:1px dashed rgba(0,0,0,.45)}.x-spreadsheet-selector .x-spreadsheet-selector-corner{pointer-events:auto;position:absolute;cursor:crosshair;font-size:0;height:5px;width:5px;right:-5px;bottom:-5px;border:2px solid #ffffff;background:#4b89ff}.x-spreadsheet-editor{z-index:20}.x-spreadsheet-editor .x-spreadsheet-editor-area{position:absolute;text-align:left;border:2px solid #4b89ff;line-height:0;z-index:100;pointer-events:auto}.x-spreadsheet-editor .x-spreadsheet-editor-area textarea{box-sizing:content-box;border:none;padding:0 3px;outline:none;resize:none;text-align:start;overflow-y:hidden;font:400 13px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif;color:inherit;white-space:normal;word-wrap:break-word;line-height:22px;margin:0}.x-spreadsheet-editor .x-spreadsheet-editor-area .textline{overflow:hidden;visibility:hidden;position:fixed;top:0;left:0}.x-spreadsheet-item{-webkit-user-select:none;-moz-user-select:none;user-select:none;background:0;border:1px solid transparent;outline:none;height:26px;color:#000000e6;line-height:26px;list-style:none;padding:2px 10px;cursor:default;text-align:left;overflow:hidden}.x-spreadsheet-item.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-item:hover,.x-spreadsheet-item.active{background:#0000000d}.x-spreadsheet-item.divider{height:0;padding:0;margin:5px 0;border:none;border-bottom:1px solid rgba(0,0,0,.1)}.x-spreadsheet-item .label{float:right;opacity:.65;font-size:1em}.x-spreadsheet-item.state,.x-spreadsheet-header.state{padding-left:35px!important;position:relative}.x-spreadsheet-item.state:before,.x-spreadsheet-header.state:before{content:"";position:absolute;width:10px;height:10px;left:12px;top:calc(50% - 5px);background:#00000014;border-radius:2px}.x-spreadsheet-item.state.checked:before,.x-spreadsheet-header.state.checked:before{background:#4b89ff}.x-spreadsheet-checkbox{position:relative;display:inline-block;backface-visibility:hidden;outline:0;vertical-align:baseline;font-style:normal;font-size:1rem;line-height:1em}.x-spreadsheet-checkbox>input{position:absolute;top:0;left:0;opacity:0!important;outline:0;z-index:-1}.x-spreadsheet-suggest,.x-spreadsheet-contextmenu,.x-spreadsheet-sort-filter{position:absolute;box-shadow:1px 2px 5px 2px #33333326;background:#fff;z-index:100;width:260px;pointer-events:auto;overflow:auto}.x-spreadsheet-suggest{width:200px}.x-spreadsheet-filter{border:1px solid #e9e9e9;font-size:12px;margin:10px}.x-spreadsheet-filter .x-spreadsheet-header{padding:.5em .75em;background:#f8f8f9;border-bottom:1px solid #e9e9e9;border-left:1px solid transparent}.x-spreadsheet-filter .x-spreadsheet-body{height:200px;overflow-y:auto}.x-spreadsheet-filter .x-spreadsheet-body .x-spreadsheet-item{height:20px;line-height:20px}.x-spreadsheet-sort-filter .x-spreadsheet-buttons{margin:10px}.x-spreadsheet-bottombar{height:40px;padding:0 30px;text-align:left;background:#f5f6f7;display:flex;position:relative;border-top:1px solid #e0e2e4}.x-spreadsheet-bottombar .x-spreadsheet-menu>li{line-height:40px;height:40px;padding-top:0;padding-bottom:0;vertical-align:middle;border-right:1px solid #e8eaed}.x-spreadsheet-menu{display:flex;overflow-x:auto;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.x-spreadsheet-menu>li{float:left;line-height:1.25em;padding:.785em 1em;margin:0;vertical-align:middle;text-align:left;font-weight:400;color:#80868b;white-space:nowrap;cursor:pointer;transition:all .3s;font-weight:700}.x-spreadsheet-menu>li.active{background-color:#fff;color:#000000a6}.x-spreadsheet-menu>li .x-spreadsheet-dropdown{display:inline-block}.x-spreadsheet-print{position:absolute;left:0;top:0;z-index:100;width:100%;height:100%;display:flex;flex-direction:column}.x-spreadsheet-print-bar{background:#424242;height:60px;line-height:60px;padding:0 30px}.x-spreadsheet-print-bar .-title{color:#fff;font-weight:700;font-size:1.2em;float:left}.x-spreadsheet-print-bar .-right{float:right;margin-top:12px}.x-spreadsheet-print-content{display:flex;flex:auto;flex-direction:row;background:#d0d0d0;height:calc(100% - 60px)}.x-spreadsheet-print-content .-sider{flex:0 0 300px;width:300px;border-left:2px solid #ccc;background:#fff}.x-spreadsheet-print-content .-content{flex:auto;overflow-x:auto;overflow-y:scroll;height:100%}.x-spreadsheet-canvas-card-wraper{margin:40px 20px}.x-spreadsheet-canvas-card{background:#fff;margin:auto;page-break-before:auto;page-break-after:always;box-shadow:0 8px 10px 1px #00000024,0 3px 14px 3px #0000001f,0 4px 5px #0003}.x-spreadsheet-calendar{color:#000000a6;background:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.x-spreadsheet-calendar .calendar-header{font-weight:700;line-height:30px;text-align:center;width:100%;float:left;background:#f9fafb}.x-spreadsheet-calendar .calendar-header .calendar-header-left{padding-left:5px;float:left}.x-spreadsheet-calendar .calendar-header .calendar-header-right{float:right}.x-spreadsheet-calendar .calendar-header .calendar-header-right a{padding:3px 0;margin-right:2px;border-radius:2px}.x-spreadsheet-calendar .calendar-header .calendar-header-right a:hover{background:#00000014}.x-spreadsheet-calendar .calendar-body{border-collapse:collapse;border-spacing:0}.x-spreadsheet-calendar .calendar-body th,.x-spreadsheet-calendar .calendar-body td{width:14.28571429%;min-width:32px;text-align:center;font-weight:700;line-height:30px;padding:0}.x-spreadsheet-calendar .calendar-body td>.cell:hover{background:#ecf6fd}.x-spreadsheet-calendar .calendar-body td>.cell.active,.x-spreadsheet-calendar .calendar-body td>.cell.active:hover{background:#ecf6fd;color:#2185d0}.x-spreadsheet-calendar .calendar-body td>.cell.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-datepicker{box-shadow:2px 2px 5px #0003;position:absolute;left:0;top:calc(100% + 5px);z-index:10;width:auto}.x-spreadsheet-buttons{display:flex;justify-content:flex-end}.x-spreadsheet-buttons .x-spreadsheet-button{margin-left:8px}.x-spreadsheet-button{display:inline-block;border-radius:3px;line-height:1em;min-height:1em;white-space:nowrap;text-align:center;cursor:pointer;font-size:1em;font-weight:700;padding:.75em 1em;color:#0009;background:#e0e1e2;text-decoration:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;outline:none;vertical-align:baseline;zoom:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s linear}.x-spreadsheet-button.active,.x-spreadsheet-button:hover{background-color:#c0c1c2;color:#000c}.x-spreadsheet-button.primary{color:#fff;background-color:#2185d0}.x-spreadsheet-button.primary:hover,.x-spreadsheet-button.primary.active{color:#fff;background-color:#1678c2}.x-spreadsheet-form-input{font-size:1em;position:relative;font-weight:400;display:inline-flex;color:#000000de}.x-spreadsheet-form-input input{z-index:1;margin:0;max-width:100%;flex:1 0 auto;outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);text-align:left;line-height:30px;height:30px;padding:0 8px;background:#fff;border:1px solid #e9e9e9;border-radius:3px;transition:box-shadow .1s ease,border-color .1s ease;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-input input:focus{border-color:#4b89ff;box-shadow:inset 0 1px 2px #4b89ff33}.x-spreadsheet-form-select{position:relative;display:inline-block;background:#fff;border:1px solid #e9e9e9;border-radius:2px;cursor:pointer;color:#000000de;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-select .input-text{text-overflow:ellipsis;white-space:nowrap;min-width:60px;width:auto;height:30px;line-height:30px;padding:0 8px}.x-spreadsheet-form-fields{display:flex;flex-direction:row;flex-wrap:wrap}.x-spreadsheet-form-fields .x-spreadsheet-form-field{flex:0 1 auto}.x-spreadsheet-form-fields .x-spreadsheet-form-field .label{display:inline-block;margin:0 10px 0 0}.x-spreadsheet-form-field{display:block;vertical-align:middle;margin-left:10px;margin-bottom:10px}.x-spreadsheet-form-field:first-child{margin-left:0}.x-spreadsheet-form-field.error .x-spreadsheet-form-select,.x-spreadsheet-form-field.error input{border-color:#f04134}.x-spreadsheet-form-field .tip{color:#f04134;font-size:.9em}.x-spreadsheet-dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;background-color:#0009;opacity:0;animation-fill-mode:both;animation-duration:.5s;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1000}.x-spreadsheet-dimmer.active{display:block;opacity:1}form fieldset{border:none}form fieldset label{display:block;margin-bottom:.5em;font-size:1em;color:#666}form fieldset select{font-size:1.1em;width:100%;background-color:#fff;border:none;border-bottom:2px solid #ddd;padding:.5em .85em;border-radius:2px}.x-spreadsheet-modal,.x-spreadsheet-toast{font-size:13px;position:fixed;z-index:1001;text-align:left;line-height:1.25em;min-width:360px;color:#000000de;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;border-radius:4px;border:1px solid rgba(0,0,0,.1);background-color:#fff;background-clip:padding-box;box-shadow:#0003 0 2px 8px}.x-spreadsheet-toast{background-color:#ffffffd9}.x-spreadsheet-modal-header,.x-spreadsheet-toast-header{font-weight:600;background-clip:padding-box;background-color:#ffffffd9;border-bottom:1px solid rgba(0,0,0,.05);border-radius:4px 4px 0 0}.x-spreadsheet-toast-header{color:#f2711c}.x-spreadsheet-modal-header{border-bottom:1px solid #e0e2e4;background:#00000014;font-size:1.0785em}.x-spreadsheet-modal-header,.x-spreadsheet-modal-content,.x-spreadsheet-toast-header,.x-spreadsheet-toast-content{padding:.75em 1em}.x-spreadsheet-menu li:first-child{display:none}.vue-office-excel{height:100%}.modal .ant-modal-content{padding:16px}.full-modal .ant-modal{width:100%!important;max-width:100%;top:0;padding-bottom:0;margin:0}.full-modal .ant-modal-content{display:flex;flex-direction:column;height:100vh}.full-modal .ant-modal-body{flex:1}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-\[3px\]{bottom:3px}.left-0{left:0}.left-\[2px\]{left:2px}.left-\[85px\]{left:85px}.top-0{top:0}.top-\[-2px\]{top:-2px}.z-10{z-index:10}.z-\[1\]{z-index:1}.z-\[9999\]{z-index:9999}.\!m-0{margin:0!important}.m-\[10px\]{margin:10px}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[12px\]{margin-left:12px;margin-right:12px}.mx-\[5px\]{margin-left:5px;margin-right:5px}.mx-\[6px\]{margin-left:6px;margin-right:6px}.mx-\[8px\]{margin-left:8px;margin-right:8px}.mx-auto{margin-left:auto;margin-right:auto}.\!ml-\[10px\]{margin-left:10px!important}.-ml-\[1px\]{margin-left:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-7{margin-bottom:1.75rem}.mb-\[-3px\]{margin-bottom:-3px}.mb-\[10px\]{margin-bottom:10px}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-\[10px\]{margin-left:10px}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-2\.5{margin-right:.625rem}.mr-\[10px\]{margin-right:10px}.mr-\[4px\]{margin-right:4px}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\[-2px\]{margin-top:-2px}.mt-\[3px\]{margin-top:3px}.mt-\[5px\]{margin-top:5px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.\!h-4{height:1rem!important}.\!h-5{height:1.25rem!important}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-9{height:2.25rem}.h-\[100px\]{height:100px}.h-\[12px\]{height:12px}.h-\[14px\]{height:14px}.h-\[15px\]{height:15px}.h-\[16px\]{height:16px}.h-\[17px\]{height:17px}.h-\[18\.5px\]{height:18.5px}.h-\[18px\]{height:18px}.h-\[19px\]{height:19px}.h-\[240px\]{height:240px}.h-\[24px\]{height:24px}.h-\[30px\]{height:30px}.h-\[40px\]{height:40px}.h-\[500px\]{height:500px}.h-\[60px\]{height:60px}.h-\[calc\(100vh-100px\)\]{height:calc(100vh - 100px)}.h-\[calc\(100vh-40px\)\]{height:calc(100vh - 40px)}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[calc\(100vh-81px\)\]{height:calc(100vh - 81px)}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[40px\]{max-height:40px}.\!min-h-\[calc\(100vh-100px\)\]{min-height:calc(100vh - 100px)!important}.min-h-\[32px\]{min-height:32px}.min-h-\[480px\]{min-height:480px}.min-h-full{min-height:100%}.\!w-4{width:1rem!important}.\!w-5{width:1.25rem!important}.\!w-\[46px\]{width:46px!important}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100\%\]{width:100%}.w-\[12px\]{width:12px}.w-\[14px\]{width:14px}.w-\[15px\]{width:15px}.w-\[17px\]{width:17px}.w-\[18px\]{width:18px}.w-\[19px\]{width:19px}.w-\[1px\]{width:1px}.w-\[22\%\]{width:22%}.w-\[248px\]{width:248px}.w-\[24px\]{width:24px}.w-\[3\%\]{width:3%}.w-\[33\%\]{width:33%}.w-\[46px\]{width:46px}.w-\[50\%\]{width:50%}.w-\[500px\]{width:500px}.w-\[58px\]{width:58px}.w-\[60px\]{width:60px}.w-\[64\%\]{width:64%}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[90\%\]{width:90%}.w-\[95\%\]{width:95%}.w-\[99\.3\%\]{width:99.3%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[170px\]{min-width:170px}.min-w-\[430px\]{min-width:430px}.max-w-\[200px\]{max-width:200px}.max-w-\[248px\]{max-width:248px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.scale-\[1\.1\]{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!cursor-move{cursor:move!important}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-\[5px\]{border-top-left-radius:5px;border-bottom-left-radius:5px}.rounded-r-\[5px\]{border-top-right-radius:5px;border-bottom-right-radius:5px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-red-300{--tw-border-opacity: 1 !important;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))!important}.border-\[\#1890ff\]{--tw-border-opacity: 1;border-color:rgb(24 144 255 / var(--tw-border-opacity, 1))}.border-\[\#b3e0ff\]{--tw-border-opacity: 1;border-color:rgb(179 224 255 / var(--tw-border-opacity, 1))}.border-\[\#ccc\]{--tw-border-opacity: 1;border-color:rgb(204 204 204 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.bg-\[\#1890ff\]{--tw-bg-opacity: 1;background-color:rgb(24 144 255 / var(--tw-bg-opacity, 1))}.bg-\[\#ccc\]{--tw-bg-opacity: 1;background-color:rgb(204 204 204 / var(--tw-bg-opacity, 1))}.bg-\[\#d9d9d9\]{--tw-bg-opacity: 1;background-color:rgb(217 217 217 / var(--tw-bg-opacity, 1))}.bg-\[\#e6f7ff\]{--tw-bg-opacity: 1;background-color:rgb(230 247 255 / var(--tw-bg-opacity, 1))}.bg-\[\#fcfcfc\]{--tw-bg-opacity: 1;background-color:rgb(252 252 252 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(240\,240\,240\,0\.2\)\]{background-color:#f0f0f033}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from: #f9fafb var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-gray-100{--tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[10px\]{padding:10px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[5px\]{padding-left:5px;padding-right:5px}.px-\[6px\]{padding-left:6px;padding-right:6px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0{padding-top:0;padding-bottom:0}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[4px\]{padding-top:4px;padding-bottom:4px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-\[5px\]{padding-top:5px}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-\[\'Courier\'\]{font-family:Courier}.\!text-\[12px\]{font-size:12px!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-\[2\.5\]{line-height:2.5}.leading-\[3\]{line-height:3}.leading-tight{line-height:1.25}.\!text-red-400{--tw-text-opacity: 1 !important;color:rgb(248 113 113 / var(--tw-text-opacity, 1))!important}.text-\[\#555\]{--tw-text-opacity: 1;color:rgb(85 85 85 / var(--tw-text-opacity, 1))}.text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.text-\[\#888\]{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[\#ff4d4f\]{--tw-text-opacity: 1;color:rgb(255 77 79 / var(--tw-text-opacity, 1))}.text-\[\#ff4d4fcc\]{color:#ff4d4fcc}.text-\[rgba\(0\,0\,0\,0\.45\)\]{color:#00000073}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.shadow-\[0_-3px_6px_\#000\]{--tw-shadow: 0 -3px 6px #000;--tw-shadow-colored: 0 -3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_3px_0px_\#ff4d4f\]{--tw-shadow: 0 0 3px 0px #ff4d4f;--tw-shadow-colored: 0 0 3px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.disabled{opacity:.3;cursor:not-allowed;filter:grayscale(90%)}.last\:mb-0:last-child{margin-bottom:0}.hover\:z-10:hover{z-index:10}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#666\]:hover{--tw-border-opacity: 1;border-color:rgb(102 102 102 / var(--tw-border-opacity, 1))}.hover\:border-\[\#8abeff\]:hover{--tw-border-opacity: 1;border-color:rgb(138 190 255 / var(--tw-border-opacity, 1))}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#b3e0ff\]:hover{--tw-bg-opacity: 1;background-color:rgb(179 224 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:from-gray-100:hover{--tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-gray-200:hover{--tw-gradient-to: #e5e7eb var(--tw-gradient-to-position)}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-950{--tw-text-opacity: 1;color:rgb(3 7 18 / var(--tw-text-opacity, 1))}.\[\&\>div\]\:ml-\[-1px\]>div{margin-left:-1px}.first\:\[\&\>div\]\:ml-0>div:first-child{margin-left:0}.re-icon-container[data-v-0146f00c]{position:relative;display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;overflow:hidden}.re-icon.symbol[data-v-0146f00c]{position:relative;margin:5px 0;width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.re-icon.fontclass[data-v-0146f00c]{position:relative;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.re-icon[disabled][data-v-0146f00c]{pointer-events:none;cursor:not-allowed;color:#666}.clickable[data-v-0146f00c]{cursor:pointer}.rotate[data-v-0146f00c]{animation:rotate 2s linear infinite}.flip[data-v-0146f00c]{transform:scaleX(-1)}.ant-switch-small .ant-switch-inner-checked,.ant-switch-small .ant-switch-inner-unchecked{font-size:10px!important}.error[data-v-87722b44] .ant-select-selector{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}[data-v-87722b44] input::-webkit-search-cancel-button,[data-v-87722b44] input::-webkit-clear-button{display:none!important}.error[data-v-51ddfce3] .ant-select-selector{border-color:#ef444480;box-shadow:0 0 3px #ff4d4f}.error[data-v-249ea772] input+span{border-color:#ff717190;box-shadow:0 0 3px #ff4d4f}.error[data-v-358b82ef] .ant-input-group-addon,.error[data-v-358b82ef] .ant-input-affix-wrapper{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error[data-v-aa237552] input+span{border-color:#ff7171;box-shadow:0 0 3px #ff4d4f}.error[data-v-b33df95f] .ant-select-selector{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error[data-v-71d50074] .ant-select-selector{border-color:#ef444480;box-shadow:0 0 3px #ff4d4f}.error[data-v-26d707cc]{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error-text[data-v-26d707cc]{color:#ff4d4f!important}.image-item[data-v-26d707cc]{transition:all .3s}.error[data-v-7ba0982f]{border-color:#ff4d4f80;box-shadow:0 0 3px #ff4d4f}.error-text[data-v-7ba0982f]{color:#ff4d4f!important}body{margin:0}.x-spreadsheet{font-size:13px;line-height:normal;-webkit-user-select:none;user-select:none;-moz-user-select:none;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;box-sizing:content-box;background:#fff;-webkit-font-smoothing:antialiased}.x-spreadsheet textarea{font:400 13px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif}.x-spreadsheet-sheet{position:relative;overflow:hidden}.x-spreadsheet-table{vertical-align:bottom}.x-spreadsheet-tooltip{font-family:inherit;position:absolute;padding:5px 10px;color:#fff;border-radius:1px;background:#000;font-size:12px;z-index:201}.x-spreadsheet-tooltip:before{pointer-events:none;position:absolute;left:calc(50% - 4px);top:-4px;content:"";width:8px;height:8px;background:inherit;transform:rotate(45deg);z-index:1;box-shadow:1px 1px 3px -1px #0000004d}.x-spreadsheet-color-palette{padding:5px}.x-spreadsheet-color-palette table{margin:0;padding:0;border-collapse:separate;border-spacing:2;background:#fff}.x-spreadsheet-color-palette table td{margin:0;cursor:pointer;border:1px solid transparent}.x-spreadsheet-color-palette table td:hover{border-color:#ddd}.x-spreadsheet-color-palette table td .x-spreadsheet-color-palette-cell{width:16px;height:16px}.x-spreadsheet-border-palette{padding:6px}.x-spreadsheet-border-palette table{margin:0;padding:0;border-collapse:separate;border-spacing:0;background:#fff;table-layout:fixed}.x-spreadsheet-border-palette table td{margin:0}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left{border-right:1px solid #eee;padding-right:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell{width:30px;height:30px;cursor:pointer;text-align:center}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-left .x-spreadsheet-border-palette-cell:hover{background-color:#eee}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right{padding-left:6px}.x-spreadsheet-border-palette .x-spreadsheet-border-palette-right .x-spreadsheet-line-type{position:relative;left:0;top:-3px}.x-spreadsheet-dropdown{position:relative}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-content{position:absolute;z-index:200;background:#fff;box-shadow:1px 2px 5px 2px #33333326}.x-spreadsheet-dropdown.bottom-left .x-spreadsheet-dropdown-content{top:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.bottom-right .x-spreadsheet-dropdown-content{top:calc(100% + 5px);right:0}.x-spreadsheet-dropdown.top-left .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);left:0}.x-spreadsheet-dropdown.top-right .x-spreadsheet-dropdown-content{bottom:calc(100% + 5px);right:0}.x-spreadsheet-dropdown .x-spreadsheet-dropdown-title{padding:0 5px;display:inline-block}.x-spreadsheet-resizer{position:absolute;z-index:11}.x-spreadsheet-resizer .x-spreadsheet-resizer-hover{background-color:#4b89ff40}.x-spreadsheet-resizer .x-spreadsheet-resizer-line{position:absolute}.x-spreadsheet-resizer.horizontal{cursor:row-resize}.x-spreadsheet-resizer.horizontal .x-spreadsheet-resizer-line{border-bottom:2px dashed #4b89ff;left:0;bottom:0}.x-spreadsheet-resizer.vertical{cursor:col-resize}.x-spreadsheet-resizer.vertical .x-spreadsheet-resizer-line{border-right:2px dashed #4b89ff;top:0;right:0}.x-spreadsheet-scrollbar{position:absolute;bottom:0;right:0;background-color:#f4f5f8;opacity:.9;z-index:12}.x-spreadsheet-scrollbar.horizontal{right:15px;overflow-x:scroll;overflow-y:hidden}.x-spreadsheet-scrollbar.horizontal>div{height:1px;background:#ddd}.x-spreadsheet-scrollbar.vertical{bottom:15px;overflow-x:hidden;overflow-y:scroll}.x-spreadsheet-scrollbar.vertical>div{width:1px;background:#ddd}.x-spreadsheet-overlayer{position:absolute;left:0;top:0;z-index:10}.x-spreadsheet-overlayer .x-spreadsheet-overlayer-content{position:absolute;overflow:hidden;pointer-events:none;width:100%;height:100%}.x-spreadsheet-editor,.x-spreadsheet-selector{box-sizing:content-box;position:absolute;overflow:hidden;pointer-events:none;top:0;left:0;width:100%;height:100%}.x-spreadsheet-selector .hide-input{position:absolute;z-index:0}.x-spreadsheet-selector .hide-input input{padding:0;width:0;border:none!important}.x-spreadsheet-selector .x-spreadsheet-selector-area{position:absolute;border:2px solid #4b89ff;background:#4b89ff1a;z-index:5}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard,.x-spreadsheet-selector .x-spreadsheet-selector-autofill{position:absolute;background:transparent;z-index:100}.x-spreadsheet-selector .x-spreadsheet-selector-clipboard{border:2px dashed #4b89ff}.x-spreadsheet-selector .x-spreadsheet-selector-autofill{border:1px dashed rgba(0,0,0,.45)}.x-spreadsheet-selector .x-spreadsheet-selector-corner{pointer-events:auto;position:absolute;cursor:crosshair;font-size:0;height:5px;width:5px;right:-5px;bottom:-5px;border:2px solid #ffffff;background:#4b89ff}.x-spreadsheet-editor{z-index:20}.x-spreadsheet-editor .x-spreadsheet-editor-area{position:absolute;text-align:left;border:2px solid #4b89ff;line-height:0;z-index:100;pointer-events:auto}.x-spreadsheet-editor .x-spreadsheet-editor-area textarea{box-sizing:content-box;border:none;padding:0 3px;outline:none;resize:none;text-align:start;overflow-y:hidden;font:400 13px Arial,Lato,Source Sans Pro,Roboto,Helvetica,sans-serif;color:inherit;white-space:normal;word-wrap:break-word;line-height:22px;margin:0}.x-spreadsheet-editor .x-spreadsheet-editor-area .textline{overflow:hidden;visibility:hidden;position:fixed;top:0;left:0}.x-spreadsheet-item{-webkit-user-select:none;-moz-user-select:none;user-select:none;background:0;border:1px solid transparent;outline:none;height:26px;color:#000000e6;line-height:26px;list-style:none;padding:2px 10px;cursor:default;text-align:left;overflow:hidden}.x-spreadsheet-item.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-item:hover,.x-spreadsheet-item.active{background:#0000000d}.x-spreadsheet-item.divider{height:0;padding:0;margin:5px 0;border:none;border-bottom:1px solid rgba(0,0,0,.1)}.x-spreadsheet-item .label{float:right;opacity:.65;font-size:1em}.x-spreadsheet-item.state,.x-spreadsheet-header.state{padding-left:35px!important;position:relative}.x-spreadsheet-item.state:before,.x-spreadsheet-header.state:before{content:"";position:absolute;width:10px;height:10px;left:12px;top:calc(50% - 5px);background:#00000014;border-radius:2px}.x-spreadsheet-item.state.checked:before,.x-spreadsheet-header.state.checked:before{background:#4b89ff}.x-spreadsheet-checkbox{position:relative;display:inline-block;backface-visibility:hidden;outline:0;vertical-align:baseline;font-style:normal;font-size:1rem;line-height:1em}.x-spreadsheet-checkbox>input{position:absolute;top:0;left:0;opacity:0!important;outline:0;z-index:-1}.x-spreadsheet-suggest,.x-spreadsheet-contextmenu,.x-spreadsheet-sort-filter{position:absolute;box-shadow:1px 2px 5px 2px #33333326;background:#fff;z-index:100;width:260px;pointer-events:auto;overflow:auto}.x-spreadsheet-suggest{width:200px}.x-spreadsheet-filter{border:1px solid #e9e9e9;font-size:12px;margin:10px}.x-spreadsheet-filter .x-spreadsheet-header{padding:.5em .75em;background:#f8f8f9;border-bottom:1px solid #e9e9e9;border-left:1px solid transparent}.x-spreadsheet-filter .x-spreadsheet-body{height:200px;overflow-y:auto}.x-spreadsheet-filter .x-spreadsheet-body .x-spreadsheet-item{height:20px;line-height:20px}.x-spreadsheet-sort-filter .x-spreadsheet-buttons{margin:10px}.x-spreadsheet-bottombar{height:40px;padding:0 30px;text-align:left;background:#f5f6f7;display:flex;position:relative;border-top:1px solid #e0e2e4}.x-spreadsheet-bottombar .x-spreadsheet-menu>li{line-height:40px;height:40px;padding-top:0;padding-bottom:0;vertical-align:middle;border-right:1px solid #e8eaed}.x-spreadsheet-menu{display:flex;overflow-x:auto;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.x-spreadsheet-menu>li{float:left;line-height:1.25em;padding:.785em 1em;margin:0;vertical-align:middle;text-align:left;font-weight:400;color:#80868b;white-space:nowrap;cursor:pointer;transition:all .3s;font-weight:700}.x-spreadsheet-menu>li.active{background-color:#fff;color:#000000a6}.x-spreadsheet-menu>li .x-spreadsheet-dropdown{display:inline-block}.x-spreadsheet-print{position:absolute;left:0;top:0;z-index:100;width:100%;height:100%;display:flex;flex-direction:column}.x-spreadsheet-print-bar{background:#424242;height:60px;line-height:60px;padding:0 30px}.x-spreadsheet-print-bar .-title{color:#fff;font-weight:700;font-size:1.2em;float:left}.x-spreadsheet-print-bar .-right{float:right;margin-top:12px}.x-spreadsheet-print-content{display:flex;flex:auto;flex-direction:row;background:#d0d0d0;height:calc(100% - 60px)}.x-spreadsheet-print-content .-sider{flex:0 0 300px;width:300px;border-left:2px solid #ccc;background:#fff}.x-spreadsheet-print-content .-content{flex:auto;overflow-x:auto;overflow-y:scroll;height:100%}.x-spreadsheet-canvas-card-wraper{margin:40px 20px}.x-spreadsheet-canvas-card{background:#fff;margin:auto;page-break-before:auto;page-break-after:always;box-shadow:0 8px 10px 1px #00000024,0 3px 14px 3px #0000001f,0 4px 5px #0003}.x-spreadsheet-calendar{color:#000000a6;background:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.x-spreadsheet-calendar .calendar-header{font-weight:700;line-height:30px;text-align:center;width:100%;float:left;background:#f9fafb}.x-spreadsheet-calendar .calendar-header .calendar-header-left{padding-left:5px;float:left}.x-spreadsheet-calendar .calendar-header .calendar-header-right{float:right}.x-spreadsheet-calendar .calendar-header .calendar-header-right a{padding:3px 0;margin-right:2px;border-radius:2px}.x-spreadsheet-calendar .calendar-header .calendar-header-right a:hover{background:#00000014}.x-spreadsheet-calendar .calendar-body{border-collapse:collapse;border-spacing:0}.x-spreadsheet-calendar .calendar-body th,.x-spreadsheet-calendar .calendar-body td{width:14.28571429%;min-width:32px;text-align:center;font-weight:700;line-height:30px;padding:0}.x-spreadsheet-calendar .calendar-body td>.cell:hover{background:#ecf6fd}.x-spreadsheet-calendar .calendar-body td>.cell.active,.x-spreadsheet-calendar .calendar-body td>.cell.active:hover{background:#ecf6fd;color:#2185d0}.x-spreadsheet-calendar .calendar-body td>.cell.disabled{pointer-events:none;opacity:.5}.x-spreadsheet-datepicker{box-shadow:2px 2px 5px #0003;position:absolute;left:0;top:calc(100% + 5px);z-index:10;width:auto}.x-spreadsheet-buttons{display:flex;justify-content:flex-end}.x-spreadsheet-buttons .x-spreadsheet-button{margin-left:8px}.x-spreadsheet-button{display:inline-block;border-radius:3px;line-height:1em;min-height:1em;white-space:nowrap;text-align:center;cursor:pointer;font-size:1em;font-weight:700;padding:.75em 1em;color:#0009;background:#e0e1e2;text-decoration:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;outline:none;vertical-align:baseline;zoom:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s linear}.x-spreadsheet-button.active,.x-spreadsheet-button:hover{background-color:#c0c1c2;color:#000c}.x-spreadsheet-button.primary{color:#fff;background-color:#2185d0}.x-spreadsheet-button.primary:hover,.x-spreadsheet-button.primary.active{color:#fff;background-color:#1678c2}.x-spreadsheet-form-input{font-size:1em;position:relative;font-weight:400;display:inline-flex;color:#000000de}.x-spreadsheet-form-input input{z-index:1;margin:0;max-width:100%;flex:1 0 auto;outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);text-align:left;line-height:30px;height:30px;padding:0 8px;background:#fff;border:1px solid #e9e9e9;border-radius:3px;transition:box-shadow .1s ease,border-color .1s ease;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-input input:focus{border-color:#4b89ff;box-shadow:inset 0 1px 2px #4b89ff33}.x-spreadsheet-form-select{position:relative;display:inline-block;background:#fff;border:1px solid #e9e9e9;border-radius:2px;cursor:pointer;color:#000000de;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:inset 0 1px 2px #0a0a0a0f}.x-spreadsheet-form-select .input-text{text-overflow:ellipsis;white-space:nowrap;min-width:60px;width:auto;height:30px;line-height:30px;padding:0 8px}.x-spreadsheet-form-fields{display:flex;flex-direction:row;flex-wrap:wrap}.x-spreadsheet-form-fields .x-spreadsheet-form-field{flex:0 1 auto}.x-spreadsheet-form-fields .x-spreadsheet-form-field .label{display:inline-block;margin:0 10px 0 0}.x-spreadsheet-form-field{display:block;vertical-align:middle;margin-left:10px;margin-bottom:10px}.x-spreadsheet-form-field:first-child{margin-left:0}.x-spreadsheet-form-field.error .x-spreadsheet-form-select,.x-spreadsheet-form-field.error input{border-color:#f04134}.x-spreadsheet-form-field .tip{color:#f04134;font-size:.9em}.x-spreadsheet-dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;background-color:#0009;opacity:0;animation-fill-mode:both;animation-duration:.5s;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1000}.x-spreadsheet-dimmer.active{display:block;opacity:1}form fieldset{border:none}form fieldset label{display:block;margin-bottom:.5em;font-size:1em;color:#666}form fieldset select{font-size:1.1em;width:100%;background-color:#fff;border:none;border-bottom:2px solid #ddd;padding:.5em .85em;border-radius:2px}.x-spreadsheet-modal,.x-spreadsheet-toast{font-size:13px;position:fixed;z-index:1001;text-align:left;line-height:1.25em;min-width:360px;color:#000000de;font-family:Lato,Source Sans Pro,Roboto,Helvetica,Arial,sans-serif;border-radius:4px;border:1px solid rgba(0,0,0,.1);background-color:#fff;background-clip:padding-box;box-shadow:#0003 0 2px 8px}.x-spreadsheet-toast{background-color:#ffffffd9}.x-spreadsheet-modal-header,.x-spreadsheet-toast-header{font-weight:600;background-clip:padding-box;background-color:#ffffffd9;border-bottom:1px solid rgba(0,0,0,.05);border-radius:4px 4px 0 0}.x-spreadsheet-toast-header{color:#f2711c}.x-spreadsheet-modal-header{border-bottom:1px solid #e0e2e4;background:#00000014;font-size:1.0785em}.x-spreadsheet-modal-header,.x-spreadsheet-modal-content,.x-spreadsheet-toast-header,.x-spreadsheet-toast-content{padding:.75em 1em}.x-spreadsheet-menu li:first-child{display:none}.vue-office-excel{height:100%}.modal .ant-modal-content{padding:16px}.full-modal .ant-modal{width:100%!important;max-width:100%;top:0;padding-bottom:0;margin:0}.full-modal .ant-modal-content{display:flex;flex-direction:column;height:100vh}.full-modal .ant-modal-body{flex:1}
package/lib/webui.es.js CHANGED
@@ -1,7 +1,7 @@
1
- import { u as Me, i as pe, a as Be, L as St, c as $t, P as re, o as qe, b as Tt, d as Dt, e as He, g as Qe, r as de, f as Je, h as Xe, j as Ze, k as Pt, l as me, m as et, _ as tt, n as at, O as Ne, p as Ft, q as lt, s as It, t as Et, v as ee, w as Lt, x as Ut, y as Mt, z as Bt, A as Nt, B as zt, C as se, D as At, E as Ot, F as Rt, G as rt, M as Kt } from "./assets/modules/upload-template-DPaurj5G.js";
2
- import { ao as Ar, ad as Or, T as Rr, U as Kr, Y as jr, ac as Vr, aa as Yr, ab as Gr, ae as Wr, ap as qr, a0 as Hr, W as Qr, aq as Jr, a8 as Xr, a5 as Zr, R as es, a7 as ts, an as as, am as ls, X as rs, I as ss, a2 as os, a6 as ns, a9 as is, S as us, V as cs, af as ds, H as ps, a4 as fs, ag as vs, $ as gs, a1 as ms, ar as hs, Z as bs, al as ys, ak as xs, ah as _s, J as ks, K as ws, ai as Cs, Q as Ss, aj as $s, N as Ts, a3 as Ds } from "./assets/modules/upload-template-DPaurj5G.js";
3
- import { f as jt, p as Re } from "./assets/modules/file-upload-CYCbA0Go.js";
4
- import { A as Fs, U as Is } from "./assets/modules/file-upload-CYCbA0Go.js";
1
+ import { u as Me, i as pe, a as Be, L as St, c as $t, P as re, o as qe, b as Tt, d as Dt, e as He, g as Qe, r as de, f as Je, h as Xe, j as Ze, k as Pt, l as me, m as et, _ as tt, n as at, O as Ne, p as Ft, q as lt, s as It, t as Et, v as ee, w as Lt, x as Ut, y as Mt, z as Bt, A as Nt, B as zt, C as se, D as At, E as Ot, F as Rt, G as rt, M as Kt } from "./assets/modules/upload-template-CTdnP66K.js";
2
+ import { ao as Ar, ad as Or, T as Rr, U as Kr, Y as jr, ac as Vr, aa as Yr, ab as Gr, ae as Wr, ap as qr, a0 as Hr, W as Qr, aq as Jr, a8 as Xr, a5 as Zr, R as es, a7 as ts, am as as, an as ls, X as rs, I as ss, a2 as os, a6 as ns, a9 as is, S as us, V as cs, af as ds, H as ps, a4 as fs, ag as vs, $ as gs, a1 as ms, ar as hs, Z as bs, al as ys, ak as xs, ah as _s, J as ks, K as ws, ai as Cs, Q as Ss, aj as $s, N as Ts, a3 as Ds } from "./assets/modules/upload-template-CTdnP66K.js";
3
+ import { f as jt, p as Re } from "./assets/modules/file-upload-CuBC_b2Z.js";
4
+ import { A as Fs, U as Is } from "./assets/modules/file-upload-CuBC_b2Z.js";
5
5
  import { EnvConfig as Ke, isMicroApp as Vt } from "@skyfox2000/microbase";
6
6
  import { FrontCache as ge, httpPost as ze, ResStatus as Ae, SERVER_HOST as Yt, fieldMapping as he } from "@skyfox2000/fapi";
7
7
  import te from "vue-m-message";
@@ -10,15 +10,15 @@ import "async-validator";
10
10
  import Le from "dayjs";
11
11
  import { Popover as Ht, theme as nt, Drawer as Qt, Space as ce, Form as it, message as Jt, FormItem as ut, ConfigProvider as ye, Popconfirm as ct, DropdownButton as dt, Menu as we, MenuItem as Ce, Dropdown as Ue, Checkbox as Xt, List as Zt, ListItem as ea, Card as ta, Button as pt, Table as ft, Tree as aa, Cascader as la, DatePicker as ra, Input as fe, InputPassword as sa, InputNumber as oa, RangePicker as na, Textarea as ia, TimePicker as ua, Transfer as ca, TreeSelect as da, Upload as pa, Image as fa, LayoutContent as va } from "ant-design-vue";
12
12
  import { VueDraggableNext as ga } from "vue-draggable-next";
13
- import { d as ma } from "./assets/modules/uploadList-C0zjgyKg.js";
14
- import { C as Ls, U as Us, a as Ms, p as Bs } from "./assets/modules/uploadList-C0zjgyKg.js";
15
- import { c as vt } from "./assets/modules/index-D_-xtDo9.js";
16
- import { _ as zs, h as As, b as Os, a as Rs, d as Ks, e as js, g as Vs, f as Ys, n as Gs, p as Ws, t as qs, v as Hs } from "./assets/modules/index-D_-xtDo9.js";
17
- import { _ as Z } from "./assets/modules/index-C8QXmnsn.js";
18
- import { _ as V } from "./assets/modules/toolIcon-BD37QUAw.js";
19
- import { a as Js } from "./assets/modules/toolIcon-BD37QUAw.js";
20
- import { _ as Zs, b as eo, c as to, d as ao, e as lo, I as ro, f as so, g as oo, a as no } from "./assets/modules/menuTabs-Dx5VAF5K.js";
21
- import { _ as uo } from "./assets/modules/index-DGfxQmRW.js";
13
+ import { d as ma } from "./assets/modules/uploadList-BEKzoSex.js";
14
+ import { C as Ls, U as Us, a as Ms, p as Bs } from "./assets/modules/uploadList-BEKzoSex.js";
15
+ import { c as vt } from "./assets/modules/index-QUD5C1RM.js";
16
+ import { _ as zs, h as As, b as Os, a as Rs, d as Ks, e as js, g as Vs, f as Ys, n as Gs, p as Ws, t as qs, v as Hs } from "./assets/modules/index-QUD5C1RM.js";
17
+ import { _ as Z } from "./assets/modules/index-DOVEboJ8.js";
18
+ import { _ as V } from "./assets/modules/toolIcon-i6qsm90I.js";
19
+ import { a as Js } from "./assets/modules/toolIcon-i6qsm90I.js";
20
+ import { _ as Zs, b as eo, c as to, d as ao, e as lo, I as ro, f as so, g as oo, a as no } from "./assets/modules/menuTabs-CBfrAU7g.js";
21
+ import { _ as uo } from "./assets/modules/index-C1-LFp_3.js";
22
22
  import { _ as ne } from "./assets/modules/_plugin-vue_export-helper-CHgC5LLL.js";
23
23
  const Ve = (r, a, e, t = "remove") => {
24
24
  if (!e)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyfox2000/webui",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "description": "后台前端通用组件定义, 支持国际化",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -6,6 +6,7 @@ import Breadcrumb from '../breadcrumb/index.vue';
6
6
  import HeaderExits from './headerExits.vue';
7
7
  import User from './user.vue';
8
8
  import DateTime from '../datetime/index.vue';
9
+ import Language from './language.vue';
9
10
 
10
11
  const { useToken } = theme;
11
12
  const { token } = useToken();
@@ -39,7 +40,11 @@ const onCollapseClick = () => {
39
40
  <div>
40
41
  <Space size="middle" class="flex items-center">
41
42
  <DateTime />
43
+ <div class="w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]"></div>
44
+ <Language />
45
+ <div class="w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]"></div>
42
46
  <User />
47
+ <div class="w-[1px] h-[16px] bg-[#d9d9d9] mx-[12px]"></div>
43
48
  <HeaderExits />
44
49
  </Space>
45
50
  </div>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue';
3
+ import { Dropdown, Menu, MenuItem } from 'ant-design-vue';
4
+ import { ToolIcon } from '../../common';
5
+ import { getAvailableLanguages, setLang, getLang } from '@/locales/index';
6
+
7
+ // 获取可用语言列表
8
+ const languages = getAvailableLanguages();
9
+ // 当前语言
10
+ const currentLang = ref(getLang());
11
+
12
+ // 语言切换处理
13
+ const handleLangChange = async (lang: string) => {
14
+ try {
15
+ await setLang(lang);
16
+ currentLang.value = lang;
17
+ } catch (error) {
18
+ console.error('Failed to change language:', error);
19
+ }
20
+ };
21
+ </script>
22
+
23
+ <template>
24
+ <Dropdown placement="bottomRight">
25
+ <template #overlay>
26
+ <Menu>
27
+ <MenuItem v-for="lang in languages" :key="lang.key" @click="handleLangChange(lang.key)">
28
+ {{ lang.label }}
29
+ </MenuItem>
30
+ </Menu>
31
+ </template>
32
+ <div class="flex items-center cursor-pointer">
33
+ <ToolIcon icon="icon-language" class="w-[18px] h-[18px]" />
34
+ </div>
35
+ </Dropdown>
36
+ </template>
package/src/index.ts CHANGED
@@ -309,4 +309,4 @@ export type {
309
309
 
310
310
  export { uploadTempOpener, uploadTempBtn } from './utils/upload-template';
311
311
 
312
- export { initLang, i18n , $t , getAvailableLanguages, getLang, setLang } from './locales/index'
312
+ export { i18n, initLang, $t, getAvailableLanguages, getLang, setLang } from './locales/index';
@@ -284,7 +284,4 @@ export function $t(key: string, params?: Record<string, any>): string {
284
284
  // 如果翻译出错,返回空字符串让fallback生效
285
285
  return key;
286
286
  }
287
- }
288
-
289
- // 默认导出 i18n 实例
290
- export default i18n;
287
+ }