@done-coding/admin-core 0.13.0 → 0.13.1-alpha.0

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,7 +1,7 @@
1
1
  import o from "./AppBody.vue2.mjs";
2
2
  /* empty css */
3
3
  import p from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const d = /* @__PURE__ */ p(o, [["__scopeId", "data-v-5ad153de"]]);
4
+ const _ = /* @__PURE__ */ p(o, [["__scopeId", "data-v-dce40682"]]);
5
5
  export {
6
- d as default
6
+ _ as default
7
7
  };
@@ -1,78 +1,87 @@
1
- import { defineComponent as T, useCssVars as V, inject as _, ref as h, computed as t, provide as L, watch as F, resolveComponent as H, openBlock as i, createElementBlock as N, normalizeStyle as A, createElementVNode as I, createBlock as r, unref as w, withCtx as b, createVNode as E, createCommentVNode as s, KeepAlive as k, resolveDynamicComponent as S, renderSlot as U } from "vue";
2
- import { ElAffix as Y } from "element-plus";
3
- import G from "./AppBreadcrumb.vue.mjs";
4
- import $ from "lodash/debounce";
5
- import { APP_LAYOUT_APP_STORE_KEY as D, APP_LAYOUT_BRIDGE_KEY as z, BODY_CONTENT_VIEWPORT_HEIGHT as K } from "../../inject/key.mjs";
6
- import { useActivated as M } from "../../hooks/activated.mjs";
7
- const ee = /* @__PURE__ */ T({
1
+ import { defineComponent as L, useCssVars as N, inject as _, ref as b, computed as o, provide as g, watch as H, resolveComponent as F, openBlock as i, createElementBlock as I, normalizeStyle as E, createElementVNode as Y, createBlock as l, unref as S, withCtx as w, createVNode as A, createCommentVNode as d, KeepAlive as $, resolveDynamicComponent as P, renderSlot as k } from "vue";
2
+ import { ElAffix as U } from "element-plus";
3
+ import D from "./AppBreadcrumb.vue.mjs";
4
+ import G from "lodash/debounce";
5
+ import { APP_LAYOUT_APP_STORE_KEY as z, APP_LAYOUT_BRIDGE_KEY as K, BODY_CONTENT_VIEWPORT_HEIGHT as M, BODY_CONTENT_VIEWPORT_RECT as W } from "../../inject/key.mjs";
6
+ import { useActivated as j } from "../../hooks/activated.mjs";
7
+ const oe = /* @__PURE__ */ L({
8
8
  __name: "AppBody",
9
9
  props: {
10
10
  menuFlatList: { default: () => [] }
11
11
  },
12
- setup(P) {
13
- V((e) => ({
14
- v553c4217: l.value
12
+ setup(T) {
13
+ N((e) => ({
14
+ v65702a61: r.value
15
15
  }));
16
- const o = _(D), a = _(z), g = a.APP_ROUTER_CONFIG, c = h(!1), d = t(() => a.APP_LAYOUT_BREADCRUMB_CONFIG.height), u = h(0);
17
- L(K, u);
18
- const x = t(() => o.bodyShimPadding), m = t(() => o.bodyShimStyle), C = t(() => o.bodyStyle), p = t(() => o.showBreadcrumb), O = t(() => parseFloat(`${o.bodyStyle.paddingTop ?? 0}`) || 0), l = t(
19
- () => `calc(${m.value.minHeight} - ${p.value && c.value ? d.value : 0}px - ${x.value * 2}px)`
16
+ const t = _(z), s = _(K), C = s.APP_ROUTER_CONFIG, c = b(!1), u = o(() => s.APP_LAYOUT_BREADCRUMB_CONFIG.height), p = b(0);
17
+ g(M, p);
18
+ const m = o(() => t.bodyShimPadding), a = o(() => t.bodyShimStyle), O = o(() => t.bodyStyle), y = o(() => t.showBreadcrumb), R = o(() => parseFloat(`${t.bodyStyle.paddingTop ?? 0}`) || 0), x = o(() => ({
19
+ top: t.bodyStyle.paddingTop,
20
+ left: t.bodyStyle.paddingLeft,
21
+ right: t.bodyStyle.paddingRight,
22
+ bottom: `calc(100vh - ${t.bodyStyle.paddingTop} - ${a.value.minHeight})`,
23
+ // app-body-shim 内边距:供 AppPage 各插槽 shim 朝 chrome 侧留呼吸
24
+ shimPadding: m.value
25
+ }));
26
+ g(W, x);
27
+ const r = o(
28
+ () => `calc(${a.value.minHeight} - ${y.value && c.value ? u.value : 0}px - ${m.value * 2}px)`
20
29
  ), B = (e) => {
21
30
  c.value = e;
22
- }, n = $(() => {
31
+ }, n = G(() => {
23
32
  const e = document.createElement("div");
24
- e.style.height = l.value, e.style.position = "fixed", e.style.left = "100%", e.style.top = "100%", e.style.opacity = "0", e.style.pointerEvents = "none", document.body.appendChild(e), u.value = e.clientHeight, e.remove();
33
+ e.style.height = r.value, e.style.position = "fixed", e.style.left = "100%", e.style.top = "100%", e.style.opacity = "0", e.style.pointerEvents = "none", document.body.appendChild(e), p.value = e.clientHeight, e.remove();
25
34
  }, 16);
26
- return F(l, () => {
35
+ return H(r, () => {
27
36
  n();
28
- }), M((e) => {
37
+ }), j((e) => {
29
38
  typeof window > "u" || (e.isActivated ? (n(), window.addEventListener("resize", n)) : (window.removeEventListener("resize", n), n.cancel()));
30
- }), (e, j) => {
31
- const R = H("RouterView");
32
- return i(), N("div", {
39
+ }), (e, q) => {
40
+ const V = F("RouterView");
41
+ return i(), I("div", {
33
42
  class: "app-body",
34
- style: A(C.value)
43
+ style: E(O.value)
35
44
  }, [
36
- I("div", {
45
+ Y("div", {
37
46
  class: "app-body-shim",
38
- style: A(m.value)
47
+ style: E(a.value)
39
48
  }, [
40
- p.value ? (i(), r(w(Y), {
49
+ y.value ? (i(), l(S(U), {
41
50
  key: 0,
42
- offset: O.value
51
+ offset: R.value
43
52
  }, {
44
- default: b(() => [
45
- E(G, {
46
- height: d.value,
47
- menuFlatList: P.menuFlatList,
53
+ default: w(() => [
54
+ A(D, {
55
+ height: u.value,
56
+ menuFlatList: T.menuFlatList,
48
57
  onShow: B
49
58
  }, null, 8, ["height", "menuFlatList"])
50
59
  ]),
51
60
  _: 1
52
- }, 8, ["offset"])) : s("", !0),
53
- E(R, null, {
54
- default: b(({
61
+ }, 8, ["offset"])) : d("", !0),
62
+ A(V, null, {
63
+ default: w(({
55
64
  Component: f,
56
65
  route: {
57
66
  path: v,
58
- meta: { keepAlive: y }
67
+ meta: { keepAlive: h }
59
68
  }
60
69
  }) => [
61
- (i(), r(k, {
62
- max: w(g).keepAliveMaxCount
70
+ (i(), l($, {
71
+ max: S(C).keepAliveMaxCount
63
72
  }, [
64
- y ? (i(), r(S(f), { key: v })) : s("", !0)
73
+ h ? (i(), l(P(f), { key: v })) : d("", !0)
65
74
  ], 1032, ["max"])),
66
- y ? s("", !0) : (i(), r(S(f), { key: v }))
75
+ h ? d("", !0) : (i(), l(P(f), { key: v }))
67
76
  ]),
68
77
  _: 1
69
78
  })
70
79
  ], 4),
71
- U(e.$slots, "footer", {}, void 0, !0)
80
+ k(e.$slots, "footer", {}, void 0, !0)
72
81
  ], 4);
73
82
  };
74
83
  }
75
84
  });
76
85
  export {
77
- ee as default
86
+ oe as default
78
87
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./AppPage.vue2.mjs";
2
2
  /* empty css */
3
3
  import p from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const f = /* @__PURE__ */ p(o, [["__scopeId", "data-v-fda19616"]]);
4
+ const e = /* @__PURE__ */ p(o, [["__scopeId", "data-v-da6e4bf1"]]);
5
5
  export {
6
- f as default
6
+ e as default
7
7
  };
@@ -1,39 +1,176 @@
1
- import { defineComponent as r, useCssVars as p, computed as l, openBlock as n, createElementBlock as s, normalizeStyle as i, createElementVNode as c, createVNode as u, unref as d, withCtx as f, renderSlot as m } from "vue";
2
- import g from "../modal/ModalShelf.vue.mjs";
3
- const h = { class: "app-page-shim" }, _ = "--app-viewport-max-height", w = /* @__PURE__ */ r({
1
+ import { defineComponent as O, useCssVars as F, computed as o, useSlots as D, ref as n, shallowRef as I, inject as Y, openBlock as i, createElementBlock as q, normalizeStyle as a, createElementVNode as r, createVNode as G, unref as u, withCtx as c, renderSlot as g, createBlock as v, createCommentVNode as b } from "vue";
2
+ import J from "lodash/debounce";
3
+ import K from "../modal/ModalShelf.vue.mjs";
4
+ import y from "../display/WatchSize.vue.mjs";
5
+ import { computeAppPageSlotStyles as Q, computeAppPageSlotShimStyles as U } from "./app-page-geometry.mjs";
6
+ import { BODY_CONTENT_VIEWPORT_RECT as X } from "../../inject/key.mjs";
7
+ import { useActivated as Z } from "../../hooks/activated.mjs";
8
+ const j = "--app-viewport-max-height", ie = /* @__PURE__ */ O({
4
9
  name: "AppPage",
5
10
  __name: "AppPage",
6
11
  props: {
7
12
  fullViewport: { type: Boolean, default: !1 },
8
13
  fullMode: { default: "min-height" },
9
14
  nextViewportMaxHeight: { default: "var(--app-viewport-max-height)" },
10
- background: {}
15
+ background: {},
16
+ gap: { default: 8 },
17
+ topBg: {},
18
+ bottomBg: {},
19
+ leftBg: {},
20
+ rightBg: {}
11
21
  },
12
- setup(a) {
13
- p((t) => ({
14
- v54888f0e: e.nextViewportMaxHeight
22
+ setup(S) {
23
+ F((e) => ({
24
+ v36c22f8e: s.nextViewportMaxHeight
15
25
  }));
16
- const e = a, o = l(() => ({
17
- background: e.background,
18
- ...e.fullViewport ? {
19
- [e.fullMode]: `var(${_})`
26
+ const s = S, V = o(() => ({
27
+ background: s.background,
28
+ ...s.fullViewport ? {
29
+ [s.fullMode]: `var(${j})`
20
30
  } : {}
21
- }));
22
- return (t, v) => (n(), s("div", {
23
- class: "app-page",
24
- style: i(o.value)
31
+ })), d = D(), H = o(() => !!d.top), P = o(() => !!d.bottom), R = o(() => !!d.left), W = o(() => !!d.right), w = n(0), k = n(0), B = n(0), _ = n(0), E = (e) => {
32
+ w.value = e;
33
+ }, T = (e) => {
34
+ k.value = e;
35
+ }, A = (e) => {
36
+ B.value = e;
37
+ }, z = (e) => {
38
+ _.value = e;
39
+ }, m = I(), x = n({
40
+ top: "0px",
41
+ left: "0px",
42
+ right: "0px",
43
+ bottom: "0px"
44
+ }), l = Y(X, void 0), L = !l, p = J(() => {
45
+ const e = m.value;
46
+ if (!e || typeof window > "u") return;
47
+ const t = e.getBoundingClientRect();
48
+ x.value = {
49
+ top: `${t.top}px`,
50
+ left: `${t.left}px`,
51
+ right: `${window.innerWidth - t.right}px`,
52
+ bottom: `${window.innerHeight - t.bottom}px`
53
+ };
54
+ }, 16);
55
+ if (L && typeof window < "u") {
56
+ const e = typeof ResizeObserver < "u" ? new ResizeObserver(() => p()) : void 0;
57
+ Z((t) => {
58
+ t.isActivated ? (p(), e && m.value && e.observe(m.value), window.addEventListener("resize", p)) : (e == null || e.disconnect(), window.removeEventListener("resize", p), p.cancel());
59
+ });
60
+ }
61
+ const M = o(() => {
62
+ const e = l == null ? void 0 : l.value;
63
+ return e ? { top: e.top, left: e.left, right: e.right, bottom: e.bottom } : x.value;
64
+ }), $ = o(() => {
65
+ var e;
66
+ return ((e = l == null ? void 0 : l.value) == null ? void 0 : e.shimPadding) ?? 0;
67
+ }), f = o(
68
+ () => Q(M.value, w.value, k.value)
69
+ ), h = o(() => {
70
+ const e = U($.value, s.gap);
71
+ return {
72
+ top: { ...e.top, background: s.topBg },
73
+ bottom: { ...e.bottom, background: s.bottomBg },
74
+ left: { ...e.left, background: s.leftBg },
75
+ right: { ...e.right, background: s.rightBg }
76
+ };
77
+ }), N = o(() => {
78
+ const e = $.value, t = (C) => `${Math.max(0, C ? C - e : 0)}px`;
79
+ return {
80
+ paddingTop: t(w.value),
81
+ paddingBottom: t(k.value),
82
+ paddingLeft: t(B.value),
83
+ paddingRight: t(_.value)
84
+ };
85
+ });
86
+ return (e, t) => (i(), q("div", {
87
+ ref_key: "appPageRef",
88
+ ref: m,
89
+ class: "dc-app-page app-page",
90
+ style: a(V.value)
25
91
  }, [
26
- c("div", h, [
27
- u(d(g), { level: "page" }, {
28
- default: f(() => [
29
- m(t.$slots, "default", {}, void 0, !0)
92
+ r("div", {
93
+ class: "app-page-shim",
94
+ style: a(N.value)
95
+ }, [
96
+ G(u(K), { level: "page" }, {
97
+ default: c(() => [
98
+ g(e.$slots, "default", {}, void 0, !0)
30
99
  ]),
31
100
  _: 3
32
101
  })
33
- ])
102
+ ], 4),
103
+ H.value ? (i(), v(u(y), {
104
+ key: 0,
105
+ mode: "height",
106
+ class: "app-page-slot app-page-slot--top",
107
+ style: a(f.value.top),
108
+ onHeightChange: E
109
+ }, {
110
+ default: c(() => [
111
+ r("div", {
112
+ class: "app-page-slot-shim",
113
+ style: a(h.value.top)
114
+ }, [
115
+ g(e.$slots, "top", {}, void 0, !0)
116
+ ], 4)
117
+ ]),
118
+ _: 3
119
+ }, 8, ["style"])) : b("", !0),
120
+ P.value ? (i(), v(u(y), {
121
+ key: 1,
122
+ mode: "height",
123
+ class: "app-page-slot app-page-slot--bottom",
124
+ style: a(f.value.bottom),
125
+ onHeightChange: T
126
+ }, {
127
+ default: c(() => [
128
+ r("div", {
129
+ class: "app-page-slot-shim",
130
+ style: a(h.value.bottom)
131
+ }, [
132
+ g(e.$slots, "bottom", {}, void 0, !0)
133
+ ], 4)
134
+ ]),
135
+ _: 3
136
+ }, 8, ["style"])) : b("", !0),
137
+ R.value ? (i(), v(u(y), {
138
+ key: 2,
139
+ mode: "width",
140
+ class: "app-page-slot app-page-slot--left",
141
+ style: a(f.value.left),
142
+ onWidthChange: A
143
+ }, {
144
+ default: c(() => [
145
+ r("div", {
146
+ class: "app-page-slot-shim",
147
+ style: a(h.value.left)
148
+ }, [
149
+ g(e.$slots, "left", {}, void 0, !0)
150
+ ], 4)
151
+ ]),
152
+ _: 3
153
+ }, 8, ["style"])) : b("", !0),
154
+ W.value ? (i(), v(u(y), {
155
+ key: 3,
156
+ mode: "width",
157
+ class: "app-page-slot app-page-slot--right",
158
+ style: a(f.value.right),
159
+ onWidthChange: z
160
+ }, {
161
+ default: c(() => [
162
+ r("div", {
163
+ class: "app-page-slot-shim",
164
+ style: a(h.value.right)
165
+ }, [
166
+ g(e.$slots, "right", {}, void 0, !0)
167
+ ], 4)
168
+ ]),
169
+ _: 3
170
+ }, 8, ["style"])) : b("", !0)
34
171
  ], 4));
35
172
  }
36
173
  });
37
174
  export {
38
- w as default
175
+ ie as default
39
176
  };
@@ -0,0 +1,47 @@
1
+ const d = 1;
2
+ function e(t, o, x) {
3
+ const i = `calc(${t.top} + ${o}px)`, p = `calc(${t.bottom} + ${x}px)`;
4
+ return {
5
+ top: {
6
+ position: "fixed",
7
+ top: t.top,
8
+ left: t.left,
9
+ right: t.right,
10
+ zIndex: 1
11
+ },
12
+ bottom: {
13
+ position: "fixed",
14
+ bottom: t.bottom,
15
+ left: t.left,
16
+ right: t.right,
17
+ zIndex: 1
18
+ },
19
+ left: {
20
+ position: "fixed",
21
+ left: t.left,
22
+ top: i,
23
+ bottom: p,
24
+ zIndex: 1
25
+ },
26
+ right: {
27
+ position: "fixed",
28
+ right: t.right,
29
+ top: i,
30
+ bottom: p,
31
+ zIndex: 1
32
+ }
33
+ };
34
+ }
35
+ function $(t, o) {
36
+ return {
37
+ top: { padding: `${t}px ${t}px ${o}px ${t}px` },
38
+ bottom: { padding: `${o}px ${t}px ${t}px ${t}px` },
39
+ left: { padding: `0 ${o}px 0 ${t}px` },
40
+ right: { padding: `0 ${t}px 0 ${o}px` }
41
+ };
42
+ }
43
+ export {
44
+ d as APP_PAGE_SLOT_Z_INDEX,
45
+ $ as computeAppPageSlotShimStyles,
46
+ e as computeAppPageSlotStyles
47
+ };
@@ -1,7 +1,7 @@
1
1
  import t from "./DataListView.vue2.mjs";
2
2
  /* empty css */
3
3
  import o from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const i = /* @__PURE__ */ o(t, [["__scopeId", "data-v-708af83f"]]);
4
+ const i = /* @__PURE__ */ o(t, [["__scopeId", "data-v-c66e599d"]]);
5
5
  export {
6
6
  i as default
7
7
  };
package/es/index.mjs CHANGED
@@ -1,210 +1,215 @@
1
- import { createCoreBridge as r } from "./bridge/index.mjs";
1
+ import { createCoreBridge as t } from "./bridge/index.mjs";
2
2
  import { default as a } from "./components/display/ActionBtn.vue.mjs";
3
3
  import { default as f } from "./components/display/ActionBtnGroup.vue.mjs";
4
4
  import { default as s } from "./components/display/BooleanTag.vue.mjs";
5
- import { default as l } from "./components/modal/DetailModal.vue.mjs";
5
+ import { default as u } from "./components/modal/DetailModal.vue.mjs";
6
6
  import { default as d } from "./components/form/FormRadioGroup.vue.mjs";
7
7
  import { default as E } from "./components/form/FormSelect.vue.mjs";
8
- import { default as _ } from "./components/form/FormSubmitBtn.vue.mjs";
9
- import { default as T } from "./components/form/FormTree.vue.mjs";
10
- import { default as S } from "./components/form/FormVerifyCode.vue.mjs";
8
+ import { default as n } from "./components/form/FormSubmitBtn.vue.mjs";
9
+ import { default as S } from "./components/form/FormTree.vue.mjs";
10
+ import { default as c } from "./components/form/FormVerifyCode.vue.mjs";
11
11
  import { default as R } from "./components/display/HeightProvider.vue.mjs";
12
- import { default as I } from "./components/menu/MenuItemSub.vue.mjs";
13
- import { default as F } from "./components/menu/MenuTree.vue.mjs";
12
+ import { default as L } from "./components/menu/MenuItemSub.vue.mjs";
13
+ import { default as C } from "./components/menu/MenuTree.vue.mjs";
14
14
  import { default as M } from "./components/modal/ModalPorter.vue.mjs";
15
- import { default as h } from "./components/modal/ModalShelf.vue.mjs";
15
+ import { default as N } from "./components/modal/ModalShelf.vue.mjs";
16
16
  import { default as D } from "./components/panel/PanelItem.vue.mjs";
17
- import { default as y } from "./components/panel/PanelItemNestPanel.vue.mjs";
17
+ import { default as B } from "./components/panel/PanelItemNestPanel.vue.mjs";
18
18
  import { default as U } from "./components/misc/SelectModule.vue.mjs";
19
- import { default as b } from "./components/display/TabsMain.vue.mjs";
19
+ import { default as G } from "./components/display/TabsMain.vue.mjs";
20
20
  import { default as K } from "./components/misc/TriggerAutoImport.vue.mjs";
21
21
  import { default as w } from "./components/display/WatchSize.vue.mjs";
22
22
  import { APP_API_LIST_MODEL_KEY_CONFIG as W } from "./config/list-model.mjs";
23
- import { APP_LAYOUT_APP_STORE_KEY as X, APP_LAYOUT_BRIDGE_KEY as z, APP_LAYOUT_USER_STORE_KEY as Z, BODY_CONTENT_VIEWPORT_HEIGHT as j, CORE_BRIDGE_KEY as Q, FORM_NEST_REGISTRY_KEY as q, NEST_LAYOUT_SCALE_KEY as J, TABS_MAIN_VISUAL_LEVEL as $, getModalShelfInjectionKey as ee } from "./inject/key.mjs";
24
- import { default as re } from "./components/display/ActionConfirm.vue.mjs";
25
- import { default as ae } from "./components/app-layout/AppAside.vue.mjs";
26
- import { default as fe } from "./components/app-layout/AppBody.vue.mjs";
27
- import { default as se } from "./components/app-layout/AppBreadcrumb.vue.mjs";
28
- import { default as le } from "./components/app-layout/AppFooter.vue.mjs";
29
- import { default as de } from "./components/app-layout/AppHeader.vue.mjs";
30
- import { default as Ee } from "./components/app-layout/AppLayout.vue.mjs";
31
- import { default as _e } from "./components/app-layout/AppPage.vue.mjs";
32
- import { default as Te } from "./components/app-layout/AppSidebar.vue.mjs";
33
- import { default as Se } from "./components/app-layout/AppTheme.vue.mjs";
34
- import { default as Re } from "./components/misc/AutoRefresh.vue.mjs";
35
- import { default as Ie } from "./components/misc/AutoRefreshGroup.vue.mjs";
36
- import { CORE_VIEWPORT_DECOR_ZINDEX_ABOVE as Fe, CORE_VIEWPORT_DECOR_ZINDEX_BELOW as Ce } from "./components/app-layout/viewport.mjs";
37
- import { default as ge } from "./components/modal/ConfirmModal.vue.mjs";
38
- import { EXPORT_MAX_LIMIT as Ne, OPERATE_COLUMN_PROP as De, exportCSV as Be, pickExportColumns as ye } from "./utils/export.mjs";
39
- import { FORM_CONFIG_SELECT_ALL_VALUE as Ue, getConfirmPasswordRule as Ve, passwordRule as be, setFormComponentType as Ge } from "./helpers/form.mjs";
40
- import { FORM_ITEM_CHANGE_LOADING as ve, NEST_LAYOUT_TIERS as we, ceilToTier as He, generateFormData as We, getBlurSubmit as ke, getChangeSubmit as Xe, getDatePickerShortcuts as ze, getEnterSubmit as Ze, getPlaceholder as je, getVModelSugar as Qe, parseFormData as qe, resolveFormLayout as Je, resolveLayoutSpan as $e, setInputComponent as eo, setSelectComponent as oo, stringifyFormData as ro, swiftFormItemConfig as to } from "./components/form/utils.mjs";
41
- import { default as mo } from "./components/form/FormItemNestForm.vue.mjs";
42
- import { default as po } from "./components/form/FormItemNestFormList.vue.mjs";
43
- import { default as uo } from "./components/form/FormMain.vue.mjs";
44
- import { default as xo } from "./components/form/FormSearch.vue.mjs";
45
- import { default as Eo } from "./components/form/FormSubmitPanel.vue.mjs";
46
- import { default as _o } from "./components/form/FormVerifyImage.vue.mjs";
47
- import { default as To } from "./components/list-page/ListPage.vue.mjs";
48
- import { default as So } from "./components/panel/PanelEditSwitch.vue.mjs";
49
- import { default as Ro } from "./components/panel/PanelItemNestForm.vue.mjs";
50
- import { default as Io } from "./components/panel/PanelMain.vue.mjs";
51
- import { ROUTE_MODULE_LEVEL as Fo, TabsMainReplaceQueryKey as Co } from "./config/route.mjs";
52
- import { TABLE_COLUMN_KEY_OPERATE as go, TABLE_COLUMN_KEY_SELECTION as ho } from "./components/table/constants.mjs";
53
- import { default as Do } from "./components/table/TableMain.vue.mjs";
54
- import { buildRhythmCss as yo, useCoreThemeApply as Yo } from "./hooks/use-theme-apply.mjs";
55
- import { checkLogin as Vo } from "./router/guard/login.mjs";
56
- import { checkPermission as Go } from "./router/guard/permission.mjs";
57
- import { countAll as vo, createListApi as wo, fetchListAll as Ho } from "./helpers/list-helper.mjs";
58
- import { createAppStore as ko } from "./store/app.mjs";
59
- import { createGenerateRouteMetaRawTree as zo } from "./bridge/route.mjs";
60
- import { createGuard as jo } from "./router/guard/index.mjs";
61
- import { createNestFormExposeMap as qo } from "./components/form/nest-registry.mjs";
62
- import { createRoutePermissionStore as $o } from "./store/router-permission.mjs";
63
- import { createStorageWithNamespace as or } from "./bridge/storage.mjs";
64
- import { createUseState as tr } from "./bridge/state.mjs";
65
- import { createUserStore as mr } from "./store/user.mjs";
66
- import { flatRouteMetaResolveRaw as pr, getRoutePermissionKey as sr } from "./utils/router.mjs";
67
- import { getId as lr } from "./utils/id.mjs";
68
- import { nestFormItem as dr } from "./components/form/nest-form-item.mjs";
69
- import { nestFormItemList as Er } from "./components/form/nest-form-item-list.mjs";
70
- import { nestPanelForm as _r } from "./components/panel/nest-panel-form.mjs";
71
- import { nestPanelItem as Tr } from "./components/panel/nest-panel-item.mjs";
72
- import { themeScaleDerive as Sr, themeScaleMix as Pr, themeScaleParseHex as Rr, themeScaleToRgba as Lr } from "./utils/theme-scale.mjs";
73
- import { timeCountDown as Or } from "./utils/time.mjs";
74
- import { useActivated as Cr, useActivatedEvent as Mr, useActivatedExec as gr } from "./hooks/activated.mjs";
75
- import { useBreakpoint as Nr } from "./hooks/use-breakpoint.mjs";
76
- import { useChannelViewportHeight as Br } from "./hooks/use-channel-viewport-height.mjs";
77
- import { useCoreViewportApply as Yr } from "./hooks/use-viewport-apply.mjs";
78
- import { useFeelSize as Vr } from "./hooks/feel-size.mjs";
79
- import { useMenusDataDispatch as Gr } from "./hooks/menus-dispatch.mjs";
80
- import { useNestForm as vr } from "./components/form/use-nest-form.mjs";
81
- import { useNestFormList as Hr } from "./components/form/use-nest-form-list.mjs";
82
- import { useNestLayoutScale as kr } from "./components/form/use-nest-layout-scale.mjs";
83
- import { useTimeout as zr } from "./hooks/timeout.mjs";
23
+ import { APP_LAYOUT_APP_STORE_KEY as X, APP_LAYOUT_BRIDGE_KEY as Z, APP_LAYOUT_USER_STORE_KEY as z, BODY_CONTENT_VIEWPORT_HEIGHT as j, BODY_CONTENT_VIEWPORT_RECT as Q, CORE_BRIDGE_KEY as q, FORM_NEST_REGISTRY_KEY as J, NEST_LAYOUT_SCALE_KEY as $, TABS_MAIN_VISUAL_LEVEL as ee, getModalShelfInjectionKey as oe } from "./inject/key.mjs";
24
+ import { APP_PAGE_SLOT_Z_INDEX as re, computeAppPageSlotShimStyles as ae, computeAppPageSlotStyles as me } from "./components/app-layout/app-page-geometry.mjs";
25
+ import { default as pe } from "./components/display/ActionConfirm.vue.mjs";
26
+ import { default as le } from "./components/app-layout/AppAside.vue.mjs";
27
+ import { default as xe } from "./components/app-layout/AppBody.vue.mjs";
28
+ import { default as ie } from "./components/app-layout/AppBreadcrumb.vue.mjs";
29
+ import { default as _e } from "./components/app-layout/AppFooter.vue.mjs";
30
+ import { default as Ae } from "./components/app-layout/AppHeader.vue.mjs";
31
+ import { default as Te } from "./components/app-layout/AppLayout.vue.mjs";
32
+ import { default as Pe } from "./components/app-layout/AppPage.vue.mjs";
33
+ import { default as Oe } from "./components/app-layout/AppSidebar.vue.mjs";
34
+ import { default as Ie } from "./components/app-layout/AppTheme.vue.mjs";
35
+ import { default as Fe } from "./components/misc/AutoRefresh.vue.mjs";
36
+ import { default as ge } from "./components/misc/AutoRefreshGroup.vue.mjs";
37
+ import { CORE_VIEWPORT_DECOR_ZINDEX_ABOVE as he, CORE_VIEWPORT_DECOR_ZINDEX_BELOW as De } from "./components/app-layout/viewport.mjs";
38
+ import { default as Be } from "./components/modal/ConfirmModal.vue.mjs";
39
+ import { EXPORT_MAX_LIMIT as Ue, OPERATE_COLUMN_PROP as Ve, exportCSV as Ge, pickExportColumns as be } from "./utils/export.mjs";
40
+ import { FORM_CONFIG_SELECT_ALL_VALUE as ve, getConfirmPasswordRule as we, passwordRule as He, setFormComponentType as We } from "./helpers/form.mjs";
41
+ import { FORM_ITEM_CHANGE_LOADING as Xe, NEST_LAYOUT_TIERS as Ze, ceilToTier as ze, generateFormData as je, getBlurSubmit as Qe, getChangeSubmit as qe, getDatePickerShortcuts as Je, getEnterSubmit as $e, getPlaceholder as eo, getVModelSugar as oo, parseFormData as to, resolveFormLayout as ro, resolveLayoutSpan as ao, setInputComponent as mo, setSelectComponent as fo, stringifyFormData as po, swiftFormItemConfig as so } from "./components/form/utils.mjs";
42
+ import { default as uo } from "./components/form/FormItemNestForm.vue.mjs";
43
+ import { default as io } from "./components/form/FormItemNestFormList.vue.mjs";
44
+ import { default as _o } from "./components/form/FormMain.vue.mjs";
45
+ import { default as Ao } from "./components/form/FormSearch.vue.mjs";
46
+ import { default as To } from "./components/form/FormSubmitPanel.vue.mjs";
47
+ import { default as Po } from "./components/form/FormVerifyImage.vue.mjs";
48
+ import { default as Oo } from "./components/list-page/ListPage.vue.mjs";
49
+ import { default as Io } from "./components/panel/PanelEditSwitch.vue.mjs";
50
+ import { default as Fo } from "./components/panel/PanelItemNestForm.vue.mjs";
51
+ import { default as go } from "./components/panel/PanelMain.vue.mjs";
52
+ import { ROUTE_MODULE_LEVEL as ho, TabsMainReplaceQueryKey as Do } from "./config/route.mjs";
53
+ import { TABLE_COLUMN_KEY_OPERATE as Bo, TABLE_COLUMN_KEY_SELECTION as Yo } from "./components/table/constants.mjs";
54
+ import { default as Vo } from "./components/table/TableMain.vue.mjs";
55
+ import { buildRhythmCss as bo, useCoreThemeApply as Ko } from "./hooks/use-theme-apply.mjs";
56
+ import { checkLogin as wo } from "./router/guard/login.mjs";
57
+ import { checkPermission as Wo } from "./router/guard/permission.mjs";
58
+ import { countAll as Xo, createListApi as Zo, fetchListAll as zo } from "./helpers/list-helper.mjs";
59
+ import { createAppStore as Qo } from "./store/app.mjs";
60
+ import { createGenerateRouteMetaRawTree as Jo } from "./bridge/route.mjs";
61
+ import { createGuard as et } from "./router/guard/index.mjs";
62
+ import { createNestFormExposeMap as tt } from "./components/form/nest-registry.mjs";
63
+ import { createRoutePermissionStore as at } from "./store/router-permission.mjs";
64
+ import { createStorageWithNamespace as ft } from "./bridge/storage.mjs";
65
+ import { createUseState as st } from "./bridge/state.mjs";
66
+ import { createUserStore as ut } from "./store/user.mjs";
67
+ import { flatRouteMetaResolveRaw as dt, getRoutePermissionKey as it } from "./utils/router.mjs";
68
+ import { getId as _t } from "./utils/id.mjs";
69
+ import { nestFormItem as At } from "./components/form/nest-form-item.mjs";
70
+ import { nestFormItemList as Tt } from "./components/form/nest-form-item-list.mjs";
71
+ import { nestPanelForm as Pt } from "./components/panel/nest-panel-form.mjs";
72
+ import { nestPanelItem as Ot } from "./components/panel/nest-panel-item.mjs";
73
+ import { themeScaleDerive as It, themeScaleMix as Ct, themeScaleParseHex as Ft, themeScaleToRgba as Mt } from "./utils/theme-scale.mjs";
74
+ import { timeCountDown as Nt } from "./utils/time.mjs";
75
+ import { useActivated as Dt, useActivatedEvent as yt, useActivatedExec as Bt } from "./hooks/activated.mjs";
76
+ import { useBreakpoint as Ut } from "./hooks/use-breakpoint.mjs";
77
+ import { useChannelViewportHeight as Gt } from "./hooks/use-channel-viewport-height.mjs";
78
+ import { useCoreViewportApply as Kt } from "./hooks/use-viewport-apply.mjs";
79
+ import { useFeelSize as wt } from "./hooks/feel-size.mjs";
80
+ import { useMenusDataDispatch as Wt } from "./hooks/menus-dispatch.mjs";
81
+ import { useNestForm as Xt } from "./components/form/use-nest-form.mjs";
82
+ import { useNestFormList as zt } from "./components/form/use-nest-form-list.mjs";
83
+ import { useNestLayoutScale as Qt } from "./components/form/use-nest-layout-scale.mjs";
84
+ import { useTimeout as Jt } from "./hooks/timeout.mjs";
84
85
  export {
85
86
  W as APP_API_LIST_MODEL_KEY_CONFIG,
86
87
  X as APP_LAYOUT_APP_STORE_KEY,
87
- z as APP_LAYOUT_BRIDGE_KEY,
88
- Z as APP_LAYOUT_USER_STORE_KEY,
88
+ Z as APP_LAYOUT_BRIDGE_KEY,
89
+ z as APP_LAYOUT_USER_STORE_KEY,
90
+ re as APP_PAGE_SLOT_Z_INDEX,
89
91
  a as ActionBtn,
90
92
  f as ActionBtnGroup,
91
- re as ActionConfirm,
92
- ae as AppAside,
93
- fe as AppBody,
94
- se as AppBreadcrumb,
95
- le as AppFooter,
96
- de as AppHeader,
97
- Ee as AppLayout,
98
- _e as AppPage,
99
- Te as AppSidebar,
100
- Se as AppTheme,
101
- Re as AutoRefresh,
102
- Ie as AutoRefreshGroup,
93
+ pe as ActionConfirm,
94
+ le as AppAside,
95
+ xe as AppBody,
96
+ ie as AppBreadcrumb,
97
+ _e as AppFooter,
98
+ Ae as AppHeader,
99
+ Te as AppLayout,
100
+ Pe as AppPage,
101
+ Oe as AppSidebar,
102
+ Ie as AppTheme,
103
+ Fe as AutoRefresh,
104
+ ge as AutoRefreshGroup,
103
105
  j as BODY_CONTENT_VIEWPORT_HEIGHT,
106
+ Q as BODY_CONTENT_VIEWPORT_RECT,
104
107
  s as BooleanTag,
105
- Q as CORE_BRIDGE_KEY,
106
- Fe as CORE_VIEWPORT_DECOR_ZINDEX_ABOVE,
107
- Ce as CORE_VIEWPORT_DECOR_ZINDEX_BELOW,
108
- ge as ConfirmModal,
109
- l as DetailModal,
110
- Ne as EXPORT_MAX_LIMIT,
111
- Ue as FORM_CONFIG_SELECT_ALL_VALUE,
112
- ve as FORM_ITEM_CHANGE_LOADING,
113
- q as FORM_NEST_REGISTRY_KEY,
114
- mo as FormItemNestForm,
115
- po as FormItemNestFormList,
116
- uo as FormMain,
108
+ q as CORE_BRIDGE_KEY,
109
+ he as CORE_VIEWPORT_DECOR_ZINDEX_ABOVE,
110
+ De as CORE_VIEWPORT_DECOR_ZINDEX_BELOW,
111
+ Be as ConfirmModal,
112
+ u as DetailModal,
113
+ Ue as EXPORT_MAX_LIMIT,
114
+ ve as FORM_CONFIG_SELECT_ALL_VALUE,
115
+ Xe as FORM_ITEM_CHANGE_LOADING,
116
+ J as FORM_NEST_REGISTRY_KEY,
117
+ uo as FormItemNestForm,
118
+ io as FormItemNestFormList,
119
+ _o as FormMain,
117
120
  d as FormRadioGroup,
118
- xo as FormSearch,
121
+ Ao as FormSearch,
119
122
  E as FormSelect,
120
- _ as FormSubmitBtn,
121
- Eo as FormSubmitPanel,
122
- T as FormTree,
123
- S as FormVerifyCode,
124
- _o as FormVerifyImage,
123
+ n as FormSubmitBtn,
124
+ To as FormSubmitPanel,
125
+ S as FormTree,
126
+ c as FormVerifyCode,
127
+ Po as FormVerifyImage,
125
128
  R as HeightProvider,
126
- To as ListPage,
127
- I as MenuItemSub,
128
- F as MenuTree,
129
+ Oo as ListPage,
130
+ L as MenuItemSub,
131
+ C as MenuTree,
129
132
  M as ModalPorter,
130
- h as ModalShelf,
131
- J as NEST_LAYOUT_SCALE_KEY,
132
- we as NEST_LAYOUT_TIERS,
133
- De as OPERATE_COLUMN_PROP,
134
- So as PanelEditSwitch,
133
+ N as ModalShelf,
134
+ $ as NEST_LAYOUT_SCALE_KEY,
135
+ Ze as NEST_LAYOUT_TIERS,
136
+ Ve as OPERATE_COLUMN_PROP,
137
+ Io as PanelEditSwitch,
135
138
  D as PanelItem,
136
- Ro as PanelItemNestForm,
137
- y as PanelItemNestPanel,
138
- Io as PanelMain,
139
- Fo as ROUTE_MODULE_LEVEL,
139
+ Fo as PanelItemNestForm,
140
+ B as PanelItemNestPanel,
141
+ go as PanelMain,
142
+ ho as ROUTE_MODULE_LEVEL,
140
143
  U as SelectModule,
141
- go as TABLE_COLUMN_KEY_OPERATE,
142
- ho as TABLE_COLUMN_KEY_SELECTION,
143
- $ as TABS_MAIN_VISUAL_LEVEL,
144
- Do as TableMain,
145
- b as TabsMain,
146
- Co as TabsMainReplaceQueryKey,
144
+ Bo as TABLE_COLUMN_KEY_OPERATE,
145
+ Yo as TABLE_COLUMN_KEY_SELECTION,
146
+ ee as TABS_MAIN_VISUAL_LEVEL,
147
+ Vo as TableMain,
148
+ G as TabsMain,
149
+ Do as TabsMainReplaceQueryKey,
147
150
  K as TriggerAutoImport,
148
151
  w as WatchSize,
149
- yo as buildRhythmCss,
150
- He as ceilToTier,
151
- Vo as checkLogin,
152
- Go as checkPermission,
153
- vo as countAll,
154
- ko as createAppStore,
155
- r as createCoreBridge,
156
- zo as createGenerateRouteMetaRawTree,
157
- jo as createGuard,
158
- wo as createListApi,
159
- qo as createNestFormExposeMap,
160
- $o as createRoutePermissionStore,
161
- or as createStorageWithNamespace,
162
- tr as createUseState,
163
- mr as createUserStore,
164
- Be as exportCSV,
165
- Ho as fetchListAll,
166
- pr as flatRouteMetaResolveRaw,
167
- We as generateFormData,
168
- ke as getBlurSubmit,
169
- Xe as getChangeSubmit,
170
- Ve as getConfirmPasswordRule,
171
- ze as getDatePickerShortcuts,
172
- Ze as getEnterSubmit,
173
- lr as getId,
174
- ee as getModalShelfInjectionKey,
175
- je as getPlaceholder,
176
- sr as getRoutePermissionKey,
177
- Qe as getVModelSugar,
178
- dr as nestFormItem,
179
- Er as nestFormItemList,
180
- _r as nestPanelForm,
181
- Tr as nestPanelItem,
182
- qe as parseFormData,
183
- be as passwordRule,
184
- ye as pickExportColumns,
185
- Je as resolveFormLayout,
186
- $e as resolveLayoutSpan,
187
- Ge as setFormComponentType,
188
- eo as setInputComponent,
189
- oo as setSelectComponent,
190
- ro as stringifyFormData,
191
- to as swiftFormItemConfig,
192
- Sr as themeScaleDerive,
193
- Pr as themeScaleMix,
194
- Rr as themeScaleParseHex,
195
- Lr as themeScaleToRgba,
196
- Or as timeCountDown,
197
- Cr as useActivated,
198
- Mr as useActivatedEvent,
199
- gr as useActivatedExec,
200
- Nr as useBreakpoint,
201
- Br as useChannelViewportHeight,
202
- Yo as useCoreThemeApply,
203
- Yr as useCoreViewportApply,
204
- Vr as useFeelSize,
205
- Gr as useMenusDataDispatch,
206
- vr as useNestForm,
207
- Hr as useNestFormList,
208
- kr as useNestLayoutScale,
209
- zr as useTimeout
152
+ bo as buildRhythmCss,
153
+ ze as ceilToTier,
154
+ wo as checkLogin,
155
+ Wo as checkPermission,
156
+ ae as computeAppPageSlotShimStyles,
157
+ me as computeAppPageSlotStyles,
158
+ Xo as countAll,
159
+ Qo as createAppStore,
160
+ t as createCoreBridge,
161
+ Jo as createGenerateRouteMetaRawTree,
162
+ et as createGuard,
163
+ Zo as createListApi,
164
+ tt as createNestFormExposeMap,
165
+ at as createRoutePermissionStore,
166
+ ft as createStorageWithNamespace,
167
+ st as createUseState,
168
+ ut as createUserStore,
169
+ Ge as exportCSV,
170
+ zo as fetchListAll,
171
+ dt as flatRouteMetaResolveRaw,
172
+ je as generateFormData,
173
+ Qe as getBlurSubmit,
174
+ qe as getChangeSubmit,
175
+ we as getConfirmPasswordRule,
176
+ Je as getDatePickerShortcuts,
177
+ $e as getEnterSubmit,
178
+ _t as getId,
179
+ oe as getModalShelfInjectionKey,
180
+ eo as getPlaceholder,
181
+ it as getRoutePermissionKey,
182
+ oo as getVModelSugar,
183
+ At as nestFormItem,
184
+ Tt as nestFormItemList,
185
+ Pt as nestPanelForm,
186
+ Ot as nestPanelItem,
187
+ to as parseFormData,
188
+ He as passwordRule,
189
+ be as pickExportColumns,
190
+ ro as resolveFormLayout,
191
+ ao as resolveLayoutSpan,
192
+ We as setFormComponentType,
193
+ mo as setInputComponent,
194
+ fo as setSelectComponent,
195
+ po as stringifyFormData,
196
+ so as swiftFormItemConfig,
197
+ It as themeScaleDerive,
198
+ Ct as themeScaleMix,
199
+ Ft as themeScaleParseHex,
200
+ Mt as themeScaleToRgba,
201
+ Nt as timeCountDown,
202
+ Dt as useActivated,
203
+ yt as useActivatedEvent,
204
+ Bt as useActivatedExec,
205
+ Ut as useBreakpoint,
206
+ Gt as useChannelViewportHeight,
207
+ Ko as useCoreThemeApply,
208
+ Kt as useCoreViewportApply,
209
+ wt as useFeelSize,
210
+ Wt as useMenusDataDispatch,
211
+ Xt as useNestForm,
212
+ zt as useNestFormList,
213
+ Qt as useNestLayoutScale,
214
+ Jt as useTimeout
210
215
  };
package/es/inject/key.mjs CHANGED
@@ -1,23 +1,25 @@
1
1
  import o from "../injectInfo.json.mjs";
2
- const _ = (E) => `${o.name}:${E}`, T = Symbol.for(
2
+ const _ = (E) => `${o.name}:${E}`, S = Symbol.for(
3
3
  _("BODY_CONTENT_VIEWPORT_HEIGHT")
4
+ ), O = Symbol.for(
5
+ _("BODY_CONTENT_VIEWPORT_RECT")
4
6
  );
5
7
  function A(E) {
6
8
  return Symbol.for(
7
9
  _(`MODAL_SHELF_${E}`)
8
10
  );
9
11
  }
10
- const O = Symbol.for(
12
+ const R = Symbol.for(
11
13
  _("TABS_MAIN_VISUAL_LEVEL")
12
14
  ), Y = Symbol.for(
13
15
  _("APP_LAYOUT_APP_STORE_KEY")
14
- ), R = Symbol.for(
16
+ ), P = Symbol.for(
15
17
  _("APP_LAYOUT_USER_STORE_KEY")
16
18
  ), n = Symbol.for(
17
19
  _("APP_LAYOUT_BRIDGE_KEY")
18
- ), L = Symbol.for(
20
+ ), I = Symbol.for(
19
21
  _("CORE_BRIDGE_KEY")
20
- ), P = Symbol.for(
22
+ ), L = Symbol.for(
21
23
  _("FORM_NEST_REGISTRY")
22
24
  ), t = Symbol.for(
23
25
  _("NEST_LAYOUT_SCALE")
@@ -25,11 +27,12 @@ const O = Symbol.for(
25
27
  export {
26
28
  Y as APP_LAYOUT_APP_STORE_KEY,
27
29
  n as APP_LAYOUT_BRIDGE_KEY,
28
- R as APP_LAYOUT_USER_STORE_KEY,
29
- T as BODY_CONTENT_VIEWPORT_HEIGHT,
30
- L as CORE_BRIDGE_KEY,
31
- P as FORM_NEST_REGISTRY_KEY,
30
+ P as APP_LAYOUT_USER_STORE_KEY,
31
+ S as BODY_CONTENT_VIEWPORT_HEIGHT,
32
+ O as BODY_CONTENT_VIEWPORT_RECT,
33
+ I as CORE_BRIDGE_KEY,
34
+ L as FORM_NEST_REGISTRY_KEY,
32
35
  t as NEST_LAYOUT_SCALE_KEY,
33
- O as TABS_MAIN_VISUAL_LEVEL,
36
+ R as TABS_MAIN_VISUAL_LEVEL,
34
37
  A as getModalShelfInjectionKey
35
38
  };
package/es/style.css CHANGED
@@ -1 +1 @@
1
- .confirm-modal[data-v-647fb7fd] .el-dialog__header{margin-right:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.confirm-modal__title[data-v-647fb7fd]{font-size:16px;font-weight:600;line-height:24px;color:var(--el-text-color-primary);text-align:left}.confirm-modal[data-v-647fb7fd] .el-dialog__body{padding:20px}.confirm-modal__content[data-v-647fb7fd]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px);font-size:14px;line-height:22px;color:var(--el-text-color-regular);text-align:left;word-break:break-word}.confirm-modal[data-v-647fb7fd] .el-dialog__footer{padding:12px 20px;border-top:1px solid var(--el-border-color-lighter)}.confirm-modal__footer[data-v-647fb7fd]{display:flex;justify-content:flex-end;align-items:center;gap:8px}.confirm-modal__footer[data-v-647fb7fd] .el-button{min-width:72px}.confirm-modal__footer[reverse=true][data-v-647fb7fd]{flex-direction:row-reverse}.action-confirm__title[data-v-67d276b0]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-67d276b0]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-67d276b0]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-8b508d64]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-8b508d64] .el-form-item__label-wrap{display:none}[data-v-83b1b718] .el-row>.el-col>.el-form-item{margin-bottom:18px}.form-submit-panel[data-v-1505775a]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-1505775a]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-1505775a]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-1505775a]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-1505775a]{background-color:var(--dc-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-1505775a]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-1505775a]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-1505775a]{padding:0}.panel-edit-switch[data-v-65f056ab]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-65f056ab]{display:block}.panel-edit-switch-edit-btn[data-v-65f056ab]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-65f056ab]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-0835965e]{margin-bottom:var(--e1f69828)}.form-search_show[data-v-4d4d2642]{margin-bottom:10px}.form-search .btn-box[data-v-4d4d2642]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-4d4d2642]{margin-right:2px}.form-verify-image[data-v-7a70397e] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-7a70397e]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--dc-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-7a70397e]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-6b4fc73b]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-6b4fc73b]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-6b4fc73b]{position:absolute;left:0;background:var(--dc-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-6b4fc73b],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:12px}.tabs-main-bar--variant-card[data-v-6b4fc73b]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]:hover:not(.tabs-main-bar-item_active){color:var(--dc-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-6b4fc73b]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-6b4fc73b]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-6b4fc73b]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);font-weight:600}.app-collapse-toggle[data-v-10c7e006]{position:absolute;top:50%;cursor:pointer;width:14px;height:44px;border-radius:7px;background-color:var(--dc-core-surface, var(--el-bg-color-overlay));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter));color:var(--el-text-color-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;opacity:.3;box-shadow:none;transition:opacity .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.app-collapse-toggle--sidebar[data-v-10c7e006]{left:100%;transform:translate(-50%,-50%)}.app-collapse-toggle--aside[data-v-10c7e006]{right:100%;transform:translate(50%,-50%)}.app-collapse-toggle[data-v-10c7e006]:hover,.app-collapse-toggle[data-v-10c7e006]:focus-visible{opacity:1;color:var(--el-text-color-primary);border-color:var(--dc-core-border-color, var(--el-border-color));box-shadow:var(--el-box-shadow-lighter)}.app-collapse-toggle[data-v-10c7e006]:active{border-color:var(--dc-core-primary-color, var(--el-color-primary))}.app-collapse-toggle__icon[data-v-10c7e006]{transition:transform .3s}.app-aside[data-v-7e17d342]{transition:width var(--dc-core-motion-duration-slow, .3s) var(--dc-core-motion-easing, ease);box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:0}.app-aside-clip[data-v-7e17d342]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.app-aside-shim[data-v-7e17d342]{position:absolute;right:0;top:0;bottom:0;overflow-x:hidden;overflow-y:auto;transition:opacity var(--dc-core-motion-duration, .2s) var(--dc-core-motion-easing, ease)}@media (prefers-reduced-motion: reduce){.app-aside[data-v-7e17d342],.app-aside-shim[data-v-7e17d342]{transition:none}}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-5ad153de]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-5ad153de]{width:100%;--app-viewport-max-height: var(--v553c4217)}.app-footer[data-v-8960664d]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:var(--dc-core-shadow, var(--el-box-shadow))}.app-footer-shim[data-v-8960664d]{width:100%;height:100%;padding:0 20px}.app-header[data-v-c78820aa]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));z-index:1}.app-header-module[data-v-c78820aa]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-c78820aa]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%}.app-header-module-item[data-v-c78820aa]:hover,.app-header-module-item_active[data-v-c78820aa]{color:var(--v8834c284)}.app-header-module-item_active[data-v-c78820aa]{position:relative}.app-header-module-item_active[data-v-c78820aa]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v8834c284);transform:translate(-50%)}.app-header-shim[data-v-c78820aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-c78820aa]{margin-right:8px}.app-header-right[data-v-c78820aa]{padding-left:80px;display:flex;align-items:center}.app-sidebar[data-v-8aa015fb]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:var(--v3ceb1df4)}.app-sidebar-top[data-v-8aa015fb]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-8aa015fb]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-8aa015fb]{position:absolute;left:0;right:0;top:var(--v2c8b87ee);bottom:var(--baa8be1c);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-theme[data-v-06ca4822]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-06ca4822]{width:120px}.app-layout[data-v-f6f87b30]{position:relative}.app-layout_noLogin[data-v-f6f87b30] .app-body,.app-layout_noLogin[data-v-f6f87b30] .app-sidebar,.app-layout_noLogin[data-v-f6f87b30] .app-header,.app-layout_noLogin[data-v-f6f87b30] .app-footer{transition:none!important}.app-page-shim[data-v-fda19616]{--app-viewport-max-height: var(--v54888f0e)}[data-v-64f355fe] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-e608ff06]{animation:auto-refresh-rotating-e608ff06 1s linear infinite}@keyframes auto-refresh-rotating-e608ff06{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-item-nest-form[data-v-a413a382],.form-item-nest-form-list[data-v-68118cbf]{padding:16px;border:1px solid var(--dc-core-border-color);border-radius:8px;box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter))}.form-item-nest-form-list-row[data-v-68118cbf]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-68118cbf]{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--el-border-color-lighter);border-radius:6px;box-shadow:var(--el-box-shadow-lighter)}.table-toolbar[data-v-0175f1a9]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-0175f1a9],.table-toolbar-right[data-v-0175f1a9]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-0175f1a9]{--el-switch-off-color: var(--dc-core-primary-color);--el-switch-on-color: var(--dc-core-warning-color)}.data-list-view[data-v-708af83f]{width:100%}.data-list-view-empty[data-v-708af83f]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px}.table-main-pagination[data-v-e8584319]{margin-top:10px;display:flex;justify-content:flex-end}.list-page[data-v-0e94ce51]{min-height:var(--v3390ee15)}.list-page-header[data-v-0e94ce51],.list-page-operation[data-v-0e94ce51]{margin-bottom:10px}.list-page[data-v-0e94ce51] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-item-nest-form-actions[data-v-3af1d77a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
1
+ .confirm-modal[data-v-647fb7fd] .el-dialog__header{margin-right:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.confirm-modal__title[data-v-647fb7fd]{font-size:16px;font-weight:600;line-height:24px;color:var(--el-text-color-primary);text-align:left}.confirm-modal[data-v-647fb7fd] .el-dialog__body{padding:20px}.confirm-modal__content[data-v-647fb7fd]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px);font-size:14px;line-height:22px;color:var(--el-text-color-regular);text-align:left;word-break:break-word}.confirm-modal[data-v-647fb7fd] .el-dialog__footer{padding:12px 20px;border-top:1px solid var(--el-border-color-lighter)}.confirm-modal__footer[data-v-647fb7fd]{display:flex;justify-content:flex-end;align-items:center;gap:8px}.confirm-modal__footer[data-v-647fb7fd] .el-button{min-width:72px}.confirm-modal__footer[reverse=true][data-v-647fb7fd]{flex-direction:row-reverse}.action-confirm__title[data-v-67d276b0]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-67d276b0]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-67d276b0]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-8b508d64]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-8b508d64] .el-form-item__label-wrap{display:none}[data-v-83b1b718] .el-row>.el-col>.el-form-item{margin-bottom:18px}.form-submit-panel[data-v-1505775a]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-1505775a]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-1505775a]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-1505775a]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-1505775a]{background-color:var(--dc-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-1505775a]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-1505775a]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-1505775a]{padding:0}.panel-edit-switch[data-v-65f056ab]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-65f056ab]{display:block}.panel-edit-switch-edit-btn[data-v-65f056ab]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-65f056ab]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-0835965e]{margin-bottom:var(--e1f69828)}.form-search_show[data-v-4d4d2642]{margin-bottom:10px}.form-search .btn-box[data-v-4d4d2642]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-4d4d2642]{margin-right:2px}.form-verify-image[data-v-7a70397e] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-7a70397e]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--dc-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-7a70397e]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-6b4fc73b]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-6b4fc73b]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-6b4fc73b]{position:absolute;left:0;background:var(--dc-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-6b4fc73b],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:12px}.tabs-main-bar--variant-card[data-v-6b4fc73b]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]:hover:not(.tabs-main-bar-item_active){color:var(--dc-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-6b4fc73b]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-6b4fc73b]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-6b4fc73b]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);font-weight:600}.app-collapse-toggle[data-v-10c7e006]{position:absolute;top:50%;cursor:pointer;width:14px;height:44px;border-radius:7px;background-color:var(--dc-core-surface, var(--el-bg-color-overlay));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter));color:var(--el-text-color-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;opacity:.3;box-shadow:none;transition:opacity .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.app-collapse-toggle--sidebar[data-v-10c7e006]{left:100%;transform:translate(-50%,-50%)}.app-collapse-toggle--aside[data-v-10c7e006]{right:100%;transform:translate(50%,-50%)}.app-collapse-toggle[data-v-10c7e006]:hover,.app-collapse-toggle[data-v-10c7e006]:focus-visible{opacity:1;color:var(--el-text-color-primary);border-color:var(--dc-core-border-color, var(--el-border-color));box-shadow:var(--el-box-shadow-lighter)}.app-collapse-toggle[data-v-10c7e006]:active{border-color:var(--dc-core-primary-color, var(--el-color-primary))}.app-collapse-toggle__icon[data-v-10c7e006]{transition:transform .3s}.app-aside[data-v-7e17d342]{transition:width var(--dc-core-motion-duration-slow, .3s) var(--dc-core-motion-easing, ease);box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:0}.app-aside-clip[data-v-7e17d342]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.app-aside-shim[data-v-7e17d342]{position:absolute;right:0;top:0;bottom:0;overflow-x:hidden;overflow-y:auto;transition:opacity var(--dc-core-motion-duration, .2s) var(--dc-core-motion-easing, ease)}@media (prefers-reduced-motion: reduce){.app-aside[data-v-7e17d342],.app-aside-shim[data-v-7e17d342]{transition:none}}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-dce40682]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-dce40682]{width:100%;--app-viewport-max-height: var(--v65702a61)}.app-footer[data-v-8960664d]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:var(--dc-core-shadow, var(--el-box-shadow))}.app-footer-shim[data-v-8960664d]{width:100%;height:100%;padding:0 20px}.app-header[data-v-c78820aa]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));z-index:1}.app-header-module[data-v-c78820aa]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-c78820aa]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%}.app-header-module-item[data-v-c78820aa]:hover,.app-header-module-item_active[data-v-c78820aa]{color:var(--v8834c284)}.app-header-module-item_active[data-v-c78820aa]{position:relative}.app-header-module-item_active[data-v-c78820aa]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v8834c284);transform:translate(-50%)}.app-header-shim[data-v-c78820aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-c78820aa]{margin-right:8px}.app-header-right[data-v-c78820aa]{padding-left:80px;display:flex;align-items:center}.app-sidebar[data-v-8aa015fb]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:var(--v3ceb1df4)}.app-sidebar-top[data-v-8aa015fb]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-8aa015fb]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-8aa015fb]{position:absolute;left:0;right:0;top:var(--v2c8b87ee);bottom:var(--baa8be1c);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-theme[data-v-06ca4822]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-06ca4822]{width:120px}.app-layout[data-v-f6f87b30]{position:relative}.app-layout_noLogin[data-v-f6f87b30] .app-body,.app-layout_noLogin[data-v-f6f87b30] .app-sidebar,.app-layout_noLogin[data-v-f6f87b30] .app-header,.app-layout_noLogin[data-v-f6f87b30] .app-footer{transition:none!important}.app-page-shim[data-v-da6e4bf1]{--app-viewport-max-height: var(--v36c22f8e)}.app-page-slot-shim[data-v-da6e4bf1]{box-sizing:border-box;width:100%;height:100%}[data-v-64f355fe] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-e608ff06]{animation:auto-refresh-rotating-e608ff06 1s linear infinite}@keyframes auto-refresh-rotating-e608ff06{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-item-nest-form[data-v-a413a382],.form-item-nest-form-list[data-v-68118cbf]{padding:16px;border:1px solid var(--dc-core-border-color);border-radius:8px;box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter))}.form-item-nest-form-list-row[data-v-68118cbf]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-68118cbf]{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--el-border-color-lighter);border-radius:6px;box-shadow:var(--el-box-shadow-lighter)}.table-toolbar[data-v-0175f1a9]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-0175f1a9],.table-toolbar-right[data-v-0175f1a9]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-0175f1a9]{--el-switch-off-color: var(--dc-core-primary-color);--el-switch-on-color: var(--dc-core-warning-color)}.data-list-view[data-v-c66e599d]{width:100%}.data-list-view-empty[data-v-c66e599d]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px;grid-column:1 / -1}.table-main-pagination[data-v-e8584319]{margin-top:10px;display:flex;justify-content:flex-end}.list-page[data-v-0e94ce51]{min-height:var(--v3390ee15)}.list-page-header[data-v-0e94ce51],.list-page-operation[data-v-0e94ce51]{margin-bottom:10px}.list-page[data-v-0e94ce51] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-item-nest-form-actions[data-v-3af1d77a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@done-coding/admin-core",
3
- "version": "0.13.0",
3
+ "version": "0.13.1-alpha.0",
4
4
  "description": "内部前端库",
5
5
  "private": false,
6
6
  "main": "es/index.mjs",
@@ -79,5 +79,5 @@
79
79
  "node": ">=18.0.0",
80
80
  "pnpm": ">=9.0.0"
81
81
  },
82
- "gitHead": "46498c7702a490f6eb0b2d61de27f190c6369676"
82
+ "gitHead": "ef64be8731a67a11a005410f624e9a8de585ba84"
83
83
  }
@@ -3,21 +3,35 @@ type __VLS_Props = {
3
3
  fullMode?: "min-height" | "height";
4
4
  nextViewportMaxHeight?: string;
5
5
  background?: string;
6
+ gap?: number;
7
+ topBg?: string;
8
+ bottomBg?: string;
9
+ leftBg?: string;
10
+ rightBg?: string;
6
11
  };
7
12
  declare function __VLS_template(): {
8
13
  attrs: Partial<{}>;
9
14
  slots: {
10
15
  default?(_: {}): any;
16
+ top?(_: {}): any;
17
+ bottom?(_: {}): any;
18
+ left?(_: {}): any;
19
+ right?(_: {}): any;
20
+ };
21
+ refs: {
22
+ appPageRef: HTMLDivElement;
11
23
  };
12
- refs: {};
13
24
  rootEl: HTMLDivElement;
14
25
  };
15
26
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
27
  declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
28
+ gap: number;
17
29
  fullViewport: boolean;
18
30
  fullMode: "min-height" | "height";
19
31
  nextViewportMaxHeight: string;
20
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
32
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
33
+ appPageRef: HTMLDivElement;
34
+ }, HTMLDivElement>;
21
35
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
36
  export default _default;
23
37
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -0,0 +1,16 @@
1
+ import { CSSProperties } from 'vue';
2
+ export interface AppPageRectInset {
3
+ top: string;
4
+ left: string;
5
+ right: string;
6
+ bottom: string;
7
+ }
8
+ export interface AppPageSlotStyles {
9
+ top: CSSProperties;
10
+ bottom: CSSProperties;
11
+ left: CSSProperties;
12
+ right: CSSProperties;
13
+ }
14
+ export declare const APP_PAGE_SLOT_Z_INDEX = 1;
15
+ export declare function computeAppPageSlotStyles(rect: AppPageRectInset, topH: number, bottomH: number): AppPageSlotStyles;
16
+ export declare function computeAppPageSlotShimStyles(sp: number, gap: number): AppPageSlotStyles;
@@ -10,3 +10,4 @@ import { default as AppTheme } from './AppTheme.vue';
10
10
  export { AppLayout, AppHeader, AppSidebar, AppAside, AppBody, AppBreadcrumb, AppFooter, AppPage, AppTheme, };
11
11
  export * from './types';
12
12
  export * from './viewport';
13
+ export * from './app-page-geometry';
@@ -1,9 +1,16 @@
1
- import { InjectionKey, Ref } from 'vue';
1
+ import { ComputedRef, InjectionKey, Ref } from 'vue';
2
2
  import { CoreBridge } from '../bridge';
3
3
  import { ModalLevel, ShelfController } from '../components/modal';
4
4
  import { AppLayoutAppStoreSlice, AppLayoutUserStoreSlice, AppLayoutBridgeSlice } from '../components/app-layout';
5
5
  import { NestFormExposeMap } from '../components/form';
6
6
  export declare const BODY_CONTENT_VIEWPORT_HEIGHT: unique symbol;
7
+ export declare const BODY_CONTENT_VIEWPORT_RECT: InjectionKey<ComputedRef<{
8
+ top: string;
9
+ left: string;
10
+ right: string;
11
+ bottom: string;
12
+ shimPadding: number;
13
+ }>>;
7
14
  export declare function getModalShelfInjectionKey(level: ModalLevel): InjectionKey<ShelfController>;
8
15
  export declare const TABS_MAIN_VISUAL_LEVEL: InjectionKey<number>;
9
16
  export declare const APP_LAYOUT_APP_STORE_KEY: InjectionKey<AppLayoutAppStoreSlice>;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@done-coding/admin-core",
3
- "version": "0.13.0",
3
+ "version": "0.13.1-alpha.0",
4
4
  "description": "内部前端库"
5
5
  };
6
6