@done-coding/admin-core 0.12.0 → 0.12.2-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.
Files changed (130) hide show
  1. package/README.md +1 -48
  2. package/es/bridge/index.mjs +75 -72
  3. package/es/bridge/layout.mjs +51 -0
  4. package/es/bridge/theme/index.mjs +1 -1
  5. package/es/bridge/theme/persist.mjs +1 -1
  6. package/es/components/app-layout/AppAside.vue.mjs +2 -2
  7. package/es/components/app-layout/AppAside.vue2.mjs +27 -10
  8. package/es/components/app-layout/AppCollapseToggle.vue.mjs +7 -0
  9. package/es/components/app-layout/AppCollapseToggle.vue2.mjs +54 -0
  10. package/es/components/app-layout/AppFooter.vue.mjs +1 -1
  11. package/es/components/app-layout/AppHeader.vue.mjs +3 -3
  12. package/es/components/app-layout/AppHeader.vue2.mjs +1 -1
  13. package/es/components/app-layout/AppLayout.vue.mjs +2 -2
  14. package/es/components/app-layout/AppLayout.vue2.mjs +3 -3
  15. package/es/components/app-layout/AppSidebar.vue.mjs +2 -2
  16. package/es/components/app-layout/AppSidebar.vue2.mjs +41 -61
  17. package/es/components/app-layout/AppTheme.vue.mjs +3 -3
  18. package/es/components/app-layout/viewport.mjs +3 -3
  19. package/es/components/display/TabsHeader.vue.mjs +4 -4
  20. package/es/components/form/FormItemNestForm.vue.mjs +2 -2
  21. package/es/components/form/FormItemNestFormList.vue.mjs +2 -2
  22. package/es/components/form/FormSubmitPanel.vue.mjs +1 -1
  23. package/es/components/form/FormVerifyImage.vue.mjs +1 -1
  24. package/es/components/table/TableToolbar.vue.mjs +3 -3
  25. package/es/hooks/use-theme-apply.mjs +255 -0
  26. package/es/hooks/use-viewport-apply.mjs +39 -0
  27. package/es/index.mjs +92 -91
  28. package/es/inject/key.mjs +13 -13
  29. package/es/store/app.mjs +69 -62
  30. package/es/style.css +1 -1
  31. package/es/utils/theme-scale.mjs +1 -0
  32. package/package.json +6 -8
  33. package/types/bridge/config-hook.d.ts +0 -68
  34. package/types/bridge/index.d.ts +18 -417
  35. package/types/bridge/layout.d.ts +25 -0
  36. package/types/bridge/plugin.d.ts +12 -30
  37. package/types/bridge/route.d.ts +1 -20
  38. package/types/bridge/state.d.ts +0 -14
  39. package/types/bridge/storage.d.ts +0 -9
  40. package/types/bridge/theme/index.d.ts +1 -8
  41. package/types/bridge/theme/persist.d.ts +3 -15
  42. package/types/bridge/theme/system-dark.d.ts +0 -12
  43. package/types/bridge/theme/types.d.ts +27 -265
  44. package/types/components/app-layout/AppAside.vue.d.ts +0 -1
  45. package/types/components/app-layout/AppCollapseToggle.vue.d.ts +11 -0
  46. package/types/components/app-layout/AppHeader.vue.d.ts +0 -3
  47. package/types/components/app-layout/AppLayout.vue.d.ts +0 -12
  48. package/types/components/app-layout/AppPage.vue.d.ts +0 -2
  49. package/types/components/app-layout/AppSidebar.vue.d.ts +0 -2
  50. package/types/components/app-layout/types.d.ts +2 -127
  51. package/types/components/app-layout/viewport.d.ts +2 -30
  52. package/types/components/data-view/DataListViewItem.vue.d.ts +0 -8
  53. package/types/components/data-view/index.d.ts +0 -4
  54. package/types/components/data-view/types.d.ts +0 -41
  55. package/types/components/data-view/utils.d.ts +0 -3
  56. package/types/components/display/TabsHeader.vue.d.ts +0 -2
  57. package/types/components/display/TabsMain.vue.d.ts +0 -2
  58. package/types/components/display/TabsRefineFlow.vue.d.ts +0 -1
  59. package/types/components/display/index.d.ts +1 -37
  60. package/types/components/display/types.d.ts +0 -131
  61. package/types/components/form/FormItemNestForm.vue.d.ts +0 -5
  62. package/types/components/form/FormItemNestFormList.vue.d.ts +0 -17
  63. package/types/components/form/FormVerifyCode.vue.d.ts +0 -9
  64. package/types/components/form/FormVerifyImage.vue.d.ts +0 -1
  65. package/types/components/form/form-search-utils.d.ts +0 -14
  66. package/types/components/form/nest-form-item-list.d.ts +0 -28
  67. package/types/components/form/nest-form-item.d.ts +0 -21
  68. package/types/components/form/nest-registry.d.ts +0 -14
  69. package/types/components/form/types.d.ts +8 -185
  70. package/types/components/form/use-form-submit.d.ts +0 -12
  71. package/types/components/form/use-nest-form-list.d.ts +0 -13
  72. package/types/components/form/use-nest-form.d.ts +0 -15
  73. package/types/components/form/use-nest-layout-scale.d.ts +0 -12
  74. package/types/components/form/utils.d.ts +1 -56
  75. package/types/components/list-page/ListPage.vue.d.ts +0 -6
  76. package/types/components/list-page/types.d.ts +2 -19
  77. package/types/components/misc/index.d.ts +1 -6
  78. package/types/components/misc/types.d.ts +0 -6
  79. package/types/components/modal/ConfirmModal.vue.d.ts +0 -10
  80. package/types/components/modal/modal-shelf-core.d.ts +0 -3
  81. package/types/components/modal/modal-shelf-hierarchy.d.ts +0 -4
  82. package/types/components/modal/modal-shelf-types.d.ts +0 -34
  83. package/types/components/modal/types.d.ts +1 -20
  84. package/types/components/panel/PanelItemNestForm.vue.d.ts +0 -6
  85. package/types/components/panel/PanelItemNestPanel.vue.d.ts +0 -5
  86. package/types/components/panel/nest-panel-form.d.ts +0 -21
  87. package/types/components/panel/nest-panel-item.d.ts +0 -14
  88. package/types/components/panel/types.d.ts +1 -49
  89. package/types/components/table/types.d.ts +9 -124
  90. package/types/config/list-model.d.ts +0 -29
  91. package/types/config/route.d.ts +0 -2
  92. package/types/helpers/form.d.ts +0 -5
  93. package/types/helpers/list-helper.d.ts +0 -26
  94. package/types/helpers/types.d.ts +0 -11
  95. package/types/hooks/activated.d.ts +0 -10
  96. package/types/hooks/feel-size.d.ts +0 -2
  97. package/types/hooks/index.d.ts +2 -2
  98. package/types/hooks/menus-dispatch.d.ts +0 -4
  99. package/types/hooks/timeout.d.ts +0 -4
  100. package/types/hooks/use-channel-viewport-height.d.ts +0 -14
  101. package/types/hooks/use-theme-apply.d.ts +11 -0
  102. package/types/hooks/use-viewport-apply.d.ts +8 -0
  103. package/types/inject/key.d.ts +2 -87
  104. package/types/router/guard/index.d.ts +0 -13
  105. package/types/router/guard/login.d.ts +0 -1
  106. package/types/router/guard/permission.d.ts +0 -1
  107. package/types/router/guard/types.d.ts +2 -5
  108. package/types/store/app.d.ts +10 -31
  109. package/types/store/router-permission.d.ts +2 -55
  110. package/types/store/user.d.ts +2 -26
  111. package/types/types/dot-path.d.ts +0 -8
  112. package/types/types/route.d.ts +0 -45
  113. package/types/types/utility-types.d.ts +0 -7
  114. package/types/utils/export.d.ts +1 -16
  115. package/types/utils/id.d.ts +0 -1
  116. package/types/utils/router.d.ts +0 -2
  117. package/types/utils/theme-scale.d.ts +1 -30
  118. package/types/utils/time.d.ts +0 -1
  119. package/docs/TECH_SNAPSHOT.md +0 -146
  120. package/docs/nested-config-paradigm.md +0 -80
  121. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/RETROSPECTIVE.md +0 -63
  122. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/design.md +0 -575
  123. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/landing-authorizations/2026-05-09-080900-/346/234/2371-/345/205/245/345/256/236/346/226/275/346/216/210/346/235/203.md +0 -107
  124. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/project-orchestration.md +0 -58
  125. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/requirements.md +0 -238
  126. package/docs/specs/2026-05-09-055250-moderate-/345/210/227/350/241/250key/351/205/215/347/275/256/347/202/271/350/267/257/345/276/204/346/224/257/346/214/201/tasks.md +0 -290
  127. package/es/hooks/use-admin-theme-apply.mjs +0 -213
  128. package/es/hooks/use-admin-viewport-apply.mjs +0 -39
  129. package/types/hooks/use-admin-theme-apply.d.ts +0 -34
  130. package/types/hooks/use-admin-viewport-apply.d.ts +0 -20
package/es/index.mjs CHANGED
@@ -1,40 +1,40 @@
1
- import { createAdminBridge as t } 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
5
  import { default as l } from "./components/modal/DetailModal.vue.mjs";
6
6
  import { default as d } from "./components/form/FormRadioGroup.vue.mjs";
7
7
  import { default as n } from "./components/form/FormSelect.vue.mjs";
8
- import { default as A } from "./components/form/FormSubmitBtn.vue.mjs";
8
+ import { default as _ } from "./components/form/FormSubmitBtn.vue.mjs";
9
9
  import { default as c } from "./components/form/FormTree.vue.mjs";
10
10
  import { default as T } from "./components/form/FormVerifyCode.vue.mjs";
11
- import { default as P } from "./components/display/HeightProvider.vue.mjs";
11
+ import { default as R } from "./components/display/HeightProvider.vue.mjs";
12
12
  import { default as F } from "./components/menu/MenuItemSub.vue.mjs";
13
- import { default as M } from "./components/menu/MenuTree.vue.mjs";
13
+ import { default as O } from "./components/menu/MenuTree.vue.mjs";
14
14
  import { default as g } from "./components/modal/ModalPorter.vue.mjs";
15
- import { default as C } from "./components/modal/ModalShelf.vue.mjs";
15
+ import { default as h } from "./components/modal/ModalShelf.vue.mjs";
16
16
  import { default as D } from "./components/panel/PanelItem.vue.mjs";
17
17
  import { default as B } from "./components/panel/PanelItemNestPanel.vue.mjs";
18
18
  import { default as Y } from "./components/misc/SelectModule.vue.mjs";
19
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
- import { ADMIN_BRIDGE_KEY as W, APP_LAYOUT_APP_STORE_KEY as k, APP_LAYOUT_BRIDGE_KEY as X, APP_LAYOUT_USER_STORE_KEY as z, BODY_CONTENT_VIEWPORT_HEIGHT as Z, FORM_NEST_REGISTRY_KEY as j, NEST_LAYOUT_SCALE_KEY as Q, TABS_MAIN_VISUAL_LEVEL as q, getModalShelfInjectionKey as J } from "./inject/key.mjs";
23
- import { ADMIN_CORE_VIEWPORT_DECOR_ZINDEX_ABOVE as ee, ADMIN_CORE_VIEWPORT_DECOR_ZINDEX_BELOW as oe } from "./components/app-layout/viewport.mjs";
24
- import { APP_API_LIST_MODEL_KEY_CONFIG as re } from "./config/list-model.mjs";
25
- import { default as me } from "./components/display/ActionConfirm.vue.mjs";
26
- import { default as pe } from "./components/app-layout/AppAside.vue.mjs";
27
- import { default as ue } from "./components/app-layout/AppBody.vue.mjs";
28
- import { default as xe } from "./components/app-layout/AppBreadcrumb.vue.mjs";
29
- import { default as ie } from "./components/app-layout/AppFooter.vue.mjs";
30
- import { default as _e } from "./components/app-layout/AppHeader.vue.mjs";
31
- import { default as Ee } from "./components/app-layout/AppLayout.vue.mjs";
32
- import { default as Se } from "./components/app-layout/AppPage.vue.mjs";
33
- import { default as Ie } from "./components/app-layout/AppSidebar.vue.mjs";
34
- import { default as Re } from "./components/app-layout/AppTheme.vue.mjs";
35
- import { default as Le } from "./components/misc/AutoRefresh.vue.mjs";
36
- import { default as Oe } from "./components/misc/AutoRefreshGroup.vue.mjs";
37
- import { default as he } from "./components/modal/ConfirmModal.vue.mjs";
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 te } 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 ne } from "./components/app-layout/AppLayout.vue.mjs";
31
+ import { default as _e } from "./components/app-layout/AppPage.vue.mjs";
32
+ import { default as ce } from "./components/app-layout/AppSidebar.vue.mjs";
33
+ import { default as Te } from "./components/app-layout/AppTheme.vue.mjs";
34
+ import { default as Re } from "./components/misc/AutoRefresh.vue.mjs";
35
+ import { default as Fe } from "./components/misc/AutoRefreshGroup.vue.mjs";
36
+ import { CORE_VIEWPORT_DECOR_ZINDEX_ABOVE as Oe, CORE_VIEWPORT_DECOR_ZINDEX_BELOW as Me } from "./components/app-layout/viewport.mjs";
37
+ import { default as Ce } from "./components/modal/ConfirmModal.vue.mjs";
38
38
  import { EXPORT_MAX_LIMIT as Ne, OPERATE_COLUMN_PROP as De, exportCSV as ye, pickExportColumns as Be } from "./utils/export.mjs";
39
39
  import { FORM_CONFIG_SELECT_ALL_VALUE as Ye, getConfirmPasswordRule as be, passwordRule as Ge, setFormComponentType as Ue } from "./helpers/form.mjs";
40
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 to, swiftFormItemConfig as ro } from "./components/form/utils.mjs";
@@ -43,14 +43,14 @@ import { default as po } from "./components/form/FormItemNestFormList.vue.mjs";
43
43
  import { default as uo } from "./components/form/FormMain.vue.mjs";
44
44
  import { default as xo } from "./components/form/FormSearch.vue.mjs";
45
45
  import { default as no } from "./components/form/FormSubmitPanel.vue.mjs";
46
- import { default as Ao } from "./components/form/FormVerifyImage.vue.mjs";
46
+ import { default as _o } from "./components/form/FormVerifyImage.vue.mjs";
47
47
  import { default as co } from "./components/list-page/ListPage.vue.mjs";
48
48
  import { default as To } from "./components/panel/PanelEditSwitch.vue.mjs";
49
- import { default as Po } from "./components/panel/PanelItemNestForm.vue.mjs";
49
+ import { default as Ro } from "./components/panel/PanelItemNestForm.vue.mjs";
50
50
  import { default as Fo } from "./components/panel/PanelMain.vue.mjs";
51
- import { ROUTE_MODULE_LEVEL as Mo, TabsMainReplaceQueryKey as Oo } from "./config/route.mjs";
52
- import { default as ho } from "./components/table/TableMain.vue.mjs";
53
- import { buildRhythmCss as No, useAdminThemeApply as Do } from "./hooks/use-admin-theme-apply.mjs";
51
+ import { ROUTE_MODULE_LEVEL as Oo, TabsMainReplaceQueryKey as Mo } from "./config/route.mjs";
52
+ import { default as Co } from "./components/table/TableMain.vue.mjs";
53
+ import { buildRhythmCss as No, useThemeApply as Do } from "./hooks/use-theme-apply.mjs";
54
54
  import { checkLogin as Bo } from "./router/guard/login.mjs";
55
55
  import { checkPermission as Yo } from "./router/guard/permission.mjs";
56
56
  import { countAll as Go, createListApi as Uo, fetchListAll as Ko } from "./helpers/list-helper.mjs";
@@ -67,80 +67,80 @@ import { getId as pt } from "./utils/id.mjs";
67
67
  import { nestFormItem as ut } from "./components/form/nest-form-item.mjs";
68
68
  import { nestFormItemList as xt } from "./components/form/nest-form-item-list.mjs";
69
69
  import { nestPanelForm as it } from "./components/panel/nest-panel-form.mjs";
70
- import { nestPanelItem as _t } from "./components/panel/nest-panel-item.mjs";
71
- import { themeScaleDerive as Et, themeScaleMix as ct, themeScaleToRgba as St } from "./utils/theme-scale.mjs";
72
- import { timeCountDown as It } from "./utils/time.mjs";
73
- import { useActivated as Rt, useActivatedEvent as Ft, useActivatedExec as Lt } from "./hooks/activated.mjs";
74
- import { useAdminViewportApply as Ot } from "./hooks/use-admin-viewport-apply.mjs";
75
- import { useBreakpoint as ht } from "./hooks/use-breakpoint.mjs";
76
- import { useChannelViewportHeight as Nt } from "./hooks/use-channel-viewport-height.mjs";
77
- import { useFeelSize as yt } from "./hooks/feel-size.mjs";
78
- import { useMenusDataDispatch as Vt } from "./hooks/menus-dispatch.mjs";
79
- import { useNestForm as bt } from "./components/form/use-nest-form.mjs";
80
- import { useNestFormList as Ut } from "./components/form/use-nest-form-list.mjs";
81
- import { useNestLayoutScale as vt } from "./components/form/use-nest-layout-scale.mjs";
82
- import { useTimeout as Ht } from "./hooks/timeout.mjs";
70
+ import { nestPanelItem as Et } from "./components/panel/nest-panel-item.mjs";
71
+ import { themeScaleDerive as At, themeScaleMix as ct, themeScaleParseHex as St, themeScaleToRgba as Tt } from "./utils/theme-scale.mjs";
72
+ import { timeCountDown as Rt } from "./utils/time.mjs";
73
+ import { useActivated as Ft, useActivatedEvent as Lt, useActivatedExec as Ot } from "./hooks/activated.mjs";
74
+ import { useBreakpoint as gt } from "./hooks/use-breakpoint.mjs";
75
+ import { useChannelViewportHeight as ht } from "./hooks/use-channel-viewport-height.mjs";
76
+ import { useFeelSize as Dt } from "./hooks/feel-size.mjs";
77
+ import { useMenusDataDispatch as Bt } from "./hooks/menus-dispatch.mjs";
78
+ import { useNestForm as Yt } from "./components/form/use-nest-form.mjs";
79
+ import { useNestFormList as Gt } from "./components/form/use-nest-form-list.mjs";
80
+ import { useNestLayoutScale as Kt } from "./components/form/use-nest-layout-scale.mjs";
81
+ import { useTimeout as wt } from "./hooks/timeout.mjs";
82
+ import { useViewportApply as Wt } from "./hooks/use-viewport-apply.mjs";
83
83
  export {
84
- W as ADMIN_BRIDGE_KEY,
85
- ee as ADMIN_CORE_VIEWPORT_DECOR_ZINDEX_ABOVE,
86
- oe as ADMIN_CORE_VIEWPORT_DECOR_ZINDEX_BELOW,
87
- re as APP_API_LIST_MODEL_KEY_CONFIG,
88
- k as APP_LAYOUT_APP_STORE_KEY,
89
- X as APP_LAYOUT_BRIDGE_KEY,
90
- z as APP_LAYOUT_USER_STORE_KEY,
84
+ W as APP_API_LIST_MODEL_KEY_CONFIG,
85
+ X as APP_LAYOUT_APP_STORE_KEY,
86
+ z as APP_LAYOUT_BRIDGE_KEY,
87
+ Z as APP_LAYOUT_USER_STORE_KEY,
91
88
  a as ActionBtn,
92
89
  f as ActionBtnGroup,
93
- me as ActionConfirm,
94
- pe as AppAside,
95
- ue as AppBody,
96
- xe as AppBreadcrumb,
97
- ie as AppFooter,
98
- _e as AppHeader,
99
- Ee as AppLayout,
100
- Se as AppPage,
101
- Ie as AppSidebar,
102
- Re as AppTheme,
103
- Le as AutoRefresh,
104
- Oe as AutoRefreshGroup,
105
- Z as BODY_CONTENT_VIEWPORT_HEIGHT,
90
+ te as ActionConfirm,
91
+ ae as AppAside,
92
+ fe as AppBody,
93
+ se as AppBreadcrumb,
94
+ le as AppFooter,
95
+ de as AppHeader,
96
+ ne as AppLayout,
97
+ _e as AppPage,
98
+ ce as AppSidebar,
99
+ Te as AppTheme,
100
+ Re as AutoRefresh,
101
+ Fe as AutoRefreshGroup,
102
+ j as BODY_CONTENT_VIEWPORT_HEIGHT,
106
103
  s as BooleanTag,
107
- he as ConfirmModal,
104
+ Q as CORE_BRIDGE_KEY,
105
+ Oe as CORE_VIEWPORT_DECOR_ZINDEX_ABOVE,
106
+ Me as CORE_VIEWPORT_DECOR_ZINDEX_BELOW,
107
+ Ce as ConfirmModal,
108
108
  l as DetailModal,
109
109
  Ne as EXPORT_MAX_LIMIT,
110
110
  Ye as FORM_CONFIG_SELECT_ALL_VALUE,
111
111
  ve as FORM_ITEM_CHANGE_LOADING,
112
- j as FORM_NEST_REGISTRY_KEY,
112
+ q as FORM_NEST_REGISTRY_KEY,
113
113
  mo as FormItemNestForm,
114
114
  po as FormItemNestFormList,
115
115
  uo as FormMain,
116
116
  d as FormRadioGroup,
117
117
  xo as FormSearch,
118
118
  n as FormSelect,
119
- A as FormSubmitBtn,
119
+ _ as FormSubmitBtn,
120
120
  no as FormSubmitPanel,
121
121
  c as FormTree,
122
122
  T as FormVerifyCode,
123
- Ao as FormVerifyImage,
124
- P as HeightProvider,
123
+ _o as FormVerifyImage,
124
+ R as HeightProvider,
125
125
  co as ListPage,
126
126
  F as MenuItemSub,
127
- M as MenuTree,
127
+ O as MenuTree,
128
128
  g as ModalPorter,
129
- C as ModalShelf,
130
- Q as NEST_LAYOUT_SCALE_KEY,
129
+ h as ModalShelf,
130
+ J as NEST_LAYOUT_SCALE_KEY,
131
131
  we as NEST_LAYOUT_TIERS,
132
132
  De as OPERATE_COLUMN_PROP,
133
133
  To as PanelEditSwitch,
134
134
  D as PanelItem,
135
- Po as PanelItemNestForm,
135
+ Ro as PanelItemNestForm,
136
136
  B as PanelItemNestPanel,
137
137
  Fo as PanelMain,
138
- Mo as ROUTE_MODULE_LEVEL,
138
+ Oo as ROUTE_MODULE_LEVEL,
139
139
  Y as SelectModule,
140
- q as TABS_MAIN_VISUAL_LEVEL,
141
- ho as TableMain,
140
+ $ as TABS_MAIN_VISUAL_LEVEL,
141
+ Co as TableMain,
142
142
  G as TabsMain,
143
- Oo as TabsMainReplaceQueryKey,
143
+ Mo as TabsMainReplaceQueryKey,
144
144
  K as TriggerAutoImport,
145
145
  w as WatchSize,
146
146
  No as buildRhythmCss,
@@ -148,8 +148,8 @@ export {
148
148
  Bo as checkLogin,
149
149
  Yo as checkPermission,
150
150
  Go as countAll,
151
- t as createAdminBridge,
152
151
  wo as createAppStore,
152
+ t as createCoreBridge,
153
153
  Wo as createGenerateRouteMetaRawTree,
154
154
  Xo as createGuard,
155
155
  Uo as createListApi,
@@ -168,14 +168,14 @@ export {
168
168
  ze as getDatePickerShortcuts,
169
169
  Ze as getEnterSubmit,
170
170
  pt as getId,
171
- J as getModalShelfInjectionKey,
171
+ ee as getModalShelfInjectionKey,
172
172
  je as getPlaceholder,
173
173
  mt as getRoutePermissionKey,
174
174
  Qe as getVModelSugar,
175
175
  ut as nestFormItem,
176
176
  xt as nestFormItemList,
177
177
  it as nestPanelForm,
178
- _t as nestPanelItem,
178
+ Et as nestPanelItem,
179
179
  qe as parseFormData,
180
180
  Ge as passwordRule,
181
181
  Be as pickExportColumns,
@@ -186,21 +186,22 @@ export {
186
186
  oo as setSelectComponent,
187
187
  to as stringifyFormData,
188
188
  ro as swiftFormItemConfig,
189
- Et as themeScaleDerive,
189
+ At as themeScaleDerive,
190
190
  ct as themeScaleMix,
191
- St as themeScaleToRgba,
192
- It as timeCountDown,
193
- Rt as useActivated,
194
- Ft as useActivatedEvent,
195
- Lt as useActivatedExec,
196
- Do as useAdminThemeApply,
197
- Ot as useAdminViewportApply,
198
- ht as useBreakpoint,
199
- Nt as useChannelViewportHeight,
200
- yt as useFeelSize,
201
- Vt as useMenusDataDispatch,
202
- bt as useNestForm,
203
- Ut as useNestFormList,
204
- vt as useNestLayoutScale,
205
- Ht as useTimeout
191
+ St as themeScaleParseHex,
192
+ Tt as themeScaleToRgba,
193
+ Rt as timeCountDown,
194
+ Ft as useActivated,
195
+ Lt as useActivatedEvent,
196
+ Ot as useActivatedExec,
197
+ gt as useBreakpoint,
198
+ ht as useChannelViewportHeight,
199
+ Dt as useFeelSize,
200
+ Bt as useMenusDataDispatch,
201
+ Yt as useNestForm,
202
+ Gt as useNestFormList,
203
+ Kt as useNestLayoutScale,
204
+ Do as useThemeApply,
205
+ wt as useTimeout,
206
+ Wt as useViewportApply
206
207
  };
package/es/inject/key.mjs CHANGED
@@ -4,29 +4,29 @@ const E = Symbol.for(
4
4
  function o(_) {
5
5
  return Symbol.for(`MODAL_SHELF_${_}`);
6
6
  }
7
- const A = Symbol.for(
7
+ const S = Symbol.for(
8
8
  "TABS_MAIN_VISUAL_LEVEL"
9
- ), S = Symbol.for(
10
- "APP_LAYOUT_APP_STORE_KEY"
11
9
  ), T = Symbol.for(
10
+ "APP_LAYOUT_APP_STORE_KEY"
11
+ ), A = Symbol.for(
12
12
  "APP_LAYOUT_USER_STORE_KEY"
13
- ), Y = Symbol.for(
14
- "APP_LAYOUT_BRIDGE_KEY"
15
13
  ), O = Symbol.for(
16
- "ADMIN_BRIDGE_KEY"
17
- ), I = Symbol.for(
14
+ "APP_LAYOUT_BRIDGE_KEY"
15
+ ), Y = Symbol.for(
16
+ "CORE_BRIDGE_KEY"
17
+ ), R = Symbol.for(
18
18
  "DC_ADMIN_FORM_NEST_REGISTRY"
19
19
  ), L = Symbol.for(
20
20
  "DC_ADMIN_NEST_LAYOUT_SCALE"
21
21
  );
22
22
  export {
23
- O as ADMIN_BRIDGE_KEY,
24
- S as APP_LAYOUT_APP_STORE_KEY,
25
- Y as APP_LAYOUT_BRIDGE_KEY,
26
- T as APP_LAYOUT_USER_STORE_KEY,
23
+ T as APP_LAYOUT_APP_STORE_KEY,
24
+ O as APP_LAYOUT_BRIDGE_KEY,
25
+ A as APP_LAYOUT_USER_STORE_KEY,
27
26
  E as BODY_CONTENT_VIEWPORT_HEIGHT,
28
- I as FORM_NEST_REGISTRY_KEY,
27
+ Y as CORE_BRIDGE_KEY,
28
+ R as FORM_NEST_REGISTRY_KEY,
29
29
  L as NEST_LAYOUT_SCALE_KEY,
30
- A as TABS_MAIN_VISUAL_LEVEL,
30
+ S as TABS_MAIN_VISUAL_LEVEL,
31
31
  o as getModalShelfInjectionKey
32
32
  };
package/es/store/app.mjs CHANGED
@@ -1,49 +1,49 @@
1
- import { defineStore as D } from "pinia";
2
- import { useRoute as k } from "vue-router";
3
- import { computed as o, ref as I } from "vue";
4
- function W(E) {
5
- const { bridge: a } = E;
6
- return D("APP", () => {
7
- const _ = o(() => a.APP_LAYOUT_HEADER_CONFIG.height), p = o(() => a.APP_LAYOUT_FOOTER_CONFIG.height), F = o(() => a.APP_BASE_INFO.name), r = I(!1), A = I(!1), f = o(() => r.value ? a.APP_LAYOUT_SIDEBAR_CONFIG.collapseWidth : a.APP_LAYOUT_SIDEBAR_CONFIG.width), C = k(), u = o(() => a.themeColors.value), g = o(() => C.meta), c = o(() => g.value.layout), S = o(() => g.value.keepAlive), s = o(
1
+ import { defineStore as x } from "pinia";
2
+ import { useRoute as D } from "vue-router";
3
+ import { computed as o, ref as k } from "vue";
4
+ function W(C) {
5
+ const { bridge: a } = C;
6
+ return x("APP", () => {
7
+ const p = o(() => a.APP_LAYOUT_HEADER_CONFIG.height), h = o(() => a.APP_LAYOUT_FOOTER_CONFIG.height), m = o(() => a.APP_BASE_INFO.name), _ = k(!1), I = o(() => a.layout.sidebarCollapsed.value ? a.APP_LAYOUT_SIDEBAR_CONFIG.collapseWidth : a.APP_LAYOUT_SIDEBAR_CONFIG.width), E = D(), u = o(() => a.themeColors.value), A = o(() => E.meta), s = o(() => A.value.layout), F = o(() => A.value.keepAlive), c = o(
8
8
  () => {
9
9
  var e;
10
- return ((e = c.value) == null ? void 0 : e.header) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showHeader;
10
+ return ((e = s.value) == null ? void 0 : e.header) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showHeader;
11
11
  }
12
- ), n = o(
12
+ ), r = o(
13
13
  () => {
14
14
  var e;
15
- return ((e = c.value) == null ? void 0 : e.footer) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showFooter;
15
+ return ((e = s.value) == null ? void 0 : e.footer) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showFooter;
16
16
  }
17
+ ), g = o(
18
+ () => c.value && p.value > 0
17
19
  ), $ = o(
18
- () => s.value && _.value > 0
19
- ), P = o(
20
- () => n.value && p.value > 0
21
- ), v = o(
20
+ () => r.value && h.value > 0
21
+ ), d = o(
22
22
  () => {
23
23
  var e;
24
- return (((e = c.value) == null ? void 0 : e.sidebar) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showSidebar) && A.value;
24
+ return (((e = s.value) == null ? void 0 : e.sidebar) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showSidebar) && _.value;
25
25
  }
26
- ), d = o(
26
+ ), n = o(
27
27
  () => {
28
28
  var e;
29
- return ((e = c.value) == null ? void 0 : e.aside) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showAside ?? !1;
29
+ return ((e = s.value) == null ? void 0 : e.aside) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showAside ?? !1;
30
30
  }
31
- ), R = o(
31
+ ), f = o(
32
32
  () => {
33
33
  var e;
34
- return ((e = c.value) == null ? void 0 : e.breadcrumb) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showBreadcrumb;
34
+ return ((e = s.value) == null ? void 0 : e.breadcrumb) ?? a.APP_ROUTER_META_DEFAULT_CONFIG.showBreadcrumb;
35
35
  }
36
- ), O = o(
36
+ ), P = o(
37
37
  () => {
38
38
  var e;
39
- return ((e = c.value) == null ? void 0 : e.bodyShimPadding) ?? a.APP_LAYOUT_BODY_CONFIG.shimPadding;
39
+ return ((e = s.value) == null ? void 0 : e.bodyShimPadding) ?? a.APP_LAYOUT_BODY_CONFIG.shimPadding;
40
40
  }
41
41
  ), l = o(() => ({
42
42
  top: `${a.APP_LAYOUT_VIEWPORT_CONFIG.paddingTop}px`,
43
43
  right: `${a.APP_LAYOUT_VIEWPORT_CONFIG.paddingRight}px`,
44
44
  bottom: `${a.APP_LAYOUT_VIEWPORT_CONFIG.paddingBottom}px`,
45
45
  left: `${a.APP_LAYOUT_VIEWPORT_CONFIG.paddingLeft}px`
46
- })), U = o(() => a.APP_LAYOUT_GAP_CONFIG.size), t = o(() => `${U.value}px`), i = o(() => {
46
+ })), S = o(() => a.APP_LAYOUT_GAP_CONFIG.size), t = o(() => `${S.value}px`), v = o(() => {
47
47
  const e = a.APP_LAYOUT_HEADER_CONFIG;
48
48
  return {
49
49
  ...e.style,
@@ -52,20 +52,20 @@ function W(E) {
52
52
  top: `calc(${l.value.top} + ${t.value})`,
53
53
  left: `calc(${l.value.left} + ${t.value})`,
54
54
  right: `calc(${l.value.right} + ${t.value})`,
55
- height: `${s.value ? _.value : 0}px`,
55
+ height: `${c.value ? p.value : 0}px`,
56
56
  background: e.background ?? u.value.bodyColor,
57
57
  ...e.color ? { color: e.color } : {}
58
58
  };
59
- }), h = o(
60
- () => $.value ? `calc(${l.value.top} + ${t.value} + ${i.value.height} + ${t.value})` : `calc(${l.value.top} + ${t.value})`
61
- ), T = o(() => {
59
+ }), i = o(
60
+ () => g.value ? `calc(${l.value.top} + ${t.value} + ${v.value.height} + ${t.value})` : `calc(${l.value.top} + ${t.value})`
61
+ ), O = o(() => {
62
62
  const e = a.APP_LAYOUT_FOOTER_CONFIG;
63
63
  return {
64
64
  ...e.style,
65
- height: `${n.value ? p.value : 0}px`,
65
+ height: `${r.value ? h.value : 0}px`,
66
66
  // footer 在 body 流内:marginTop 与内容 shim 隔内缝;底边悬浮由 body paddingBottom 承担。
67
67
  // 用 hasFooter:footer 收起到 0 高时不留死内缝 gap(对称 hasHeader)。
68
- marginTop: P.value ? t.value : "0px",
68
+ marginTop: $.value ? t.value : "0px",
69
69
  background: e.background ?? u.value.bodyColor,
70
70
  ...e.color ? { color: e.color } : {}
71
71
  };
@@ -74,74 +74,81 @@ function W(E) {
74
74
  return {
75
75
  ...e.style,
76
76
  position: "fixed",
77
- width: `${v.value ? f.value : 0}px`,
77
+ width: `${d.value ? I.value : 0}px`,
78
78
  // 悬浮:左/下各让外缝 gap;顶 = 内容行顶(外缝 + header 高 + 内缝);paddingTop 归 0(让位已由 top 承担)。
79
- top: h.value,
79
+ top: i.value,
80
80
  left: `calc(${l.value.left} + ${t.value})`,
81
81
  bottom: `calc(${l.value.bottom} + ${t.value})`,
82
82
  paddingTop: "0px",
83
83
  background: e.background ?? u.value.bodyColor,
84
84
  ...e.color ? { color: e.color } : {}
85
85
  };
86
- }), m = o(() => {
86
+ }), T = o(() => {
87
87
  const e = a.APP_LAYOUT_ASIDE_CONFIG;
88
88
  return {
89
89
  ...e.style,
90
90
  position: "fixed",
91
- width: `${d.value ? e.width : 0}px`,
91
+ // 折叠双表达:外层宽收 0(收回空间)+ AppAside shim 绕 Y 轴翻转(视觉)。
92
+ // showAside=false 整列收 0。
93
+ width: `${n.value && !a.layout.asideCollapsed.value ? e.width : 0}px`,
92
94
  // 对称 sidebar:右/下各让外缝 gap;顶 = 内容行顶。
93
- top: h.value,
95
+ top: i.value,
94
96
  right: `calc(${l.value.right} + ${t.value})`,
95
97
  bottom: `calc(${l.value.bottom} + ${t.value})`,
96
98
  paddingTop: "0px",
97
99
  background: e.background ?? u.value.bodyColor,
98
100
  ...e.color ? { color: e.color } : {}
99
101
  };
100
- }), L = o(() => ({
102
+ }), y = o(() => ({
101
103
  // 内容左让位:外框左 + 外缝;有 sidebar 再加 sidebar 宽 + 内缝。
102
- paddingLeft: v.value ? `calc(${l.value.left} + ${t.value} + ${b.value.width} + ${t.value})` : `calc(${l.value.left} + ${t.value})`,
104
+ paddingLeft: d.value ? `calc(${l.value.left} + ${t.value} + ${b.value.width} + ${t.value})` : `calc(${l.value.left} + ${t.value})`,
103
105
  // 顶让位 = 内容行顶(与 sidebar/aside 同行)。
104
- paddingTop: h.value,
106
+ paddingTop: i.value,
105
107
  // 右让位(对称左):外框右 + 外缝;有 aside 再加 aside 宽 + 内缝。
106
- paddingRight: d.value ? `calc(${l.value.right} + ${t.value} + ${m.value.width} + ${t.value})` : `calc(${l.value.right} + ${t.value})`,
108
+ paddingRight: n.value ? `calc(${l.value.right} + ${t.value} + ${T.value.width} + ${t.value})` : `calc(${l.value.right} + ${t.value})`,
107
109
  // 底让位:外框下 + 外缝(footer 在流内,其底悬浮由此承担)。
108
110
  paddingBottom: `calc(${l.value.bottom} + ${t.value})`,
109
111
  backgroundColor: u.value.bodyColor
110
- })), y = o(() => {
111
- const e = $.value ? ` - ${i.value.height} - ${t.value}` : "", x = P.value ? ` - ${T.value.height} - ${t.value}` : "";
112
+ })), R = o(() => {
113
+ const e = g.value ? ` - ${v.value.height} - ${t.value}` : "", w = $.value ? ` - ${O.value.height} - ${t.value}` : "";
112
114
  return {
113
- minHeight: `calc(100vh - ${l.value.top} - ${l.value.bottom} - ${t.value} - ${t.value}${e}${x})`,
114
- padding: `${O.value}px`
115
+ minHeight: `calc(100vh - ${l.value.top} - ${l.value.bottom} - ${t.value} - ${t.value}${e}${w})`,
116
+ padding: `${P.value}px`
115
117
  };
116
- }), G = (e) => {
117
- r.value = e;
118
+ }), U = (e) => {
119
+ a.layout.setSidebarCollapse(e);
120
+ }, L = (e) => {
121
+ a.layout.setAsideCollapse(e);
122
+ }, G = (e) => {
123
+ _.value = e;
118
124
  }, N = (e) => {
119
- A.value = e;
120
- }, w = (e) => {
121
125
  a.theme.setDark(e);
122
126
  };
123
127
  return {
124
- name: F,
128
+ name: m,
125
129
  isDarkTheme: o(() => a.themeIsDark.value),
126
130
  theme: u,
127
- showHeader: s,
128
- showFooter: n,
129
- showSidebar: v,
130
- showAside: d,
131
- showBreadcrumb: R,
132
- keepAlive: S,
133
- headerStyle: i,
134
- footerStyle: T,
131
+ showHeader: c,
132
+ showFooter: r,
133
+ showSidebar: d,
134
+ showAside: n,
135
+ showBreadcrumb: f,
136
+ keepAlive: F,
137
+ headerStyle: v,
138
+ footerStyle: O,
135
139
  sidebarStyle: b,
136
- asideStyle: m,
137
- bodyStyle: L,
138
- bodyShimPadding: O,
139
- bodyShimStyle: y,
140
+ asideStyle: T,
141
+ bodyStyle: y,
142
+ bodyShimPadding: P,
143
+ bodyShimStyle: R,
140
144
  viewportPadding: l,
141
- sidebarIsCollapse: o(() => r.value),
142
- changeSidebarCollapseStatus: G,
143
- changeSidebarHasMenusStatus: N,
144
- changeIsDarkTheme: w
145
+ // 折叠态读 bridge 真相(架构反转,名字保留向后兼容);aside 对称新增。
146
+ sidebarIsCollapse: o(() => a.layout.sidebarCollapsed.value),
147
+ asideIsCollapse: o(() => a.layout.asideCollapsed.value),
148
+ changeSidebarCollapseStatus: U,
149
+ changeAsideCollapseStatus: L,
150
+ changeSidebarHasMenusStatus: G,
151
+ changeIsDarkTheme: N
145
152
  };
146
153
  });
147
154
  }
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-88119b35]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-88119b35]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-88119b35]{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-93bc9096]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-93bc9096]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-93bc9096]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-93bc9096]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-93bc9096]{background-color:var(--admin-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-93bc9096],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-93bc9096]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--admin-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--admin-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-93bc9096]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--admin-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--admin-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-93bc9096]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-93bc9096]{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-669b7ad9] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-669b7ad9]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--admin-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-669b7ad9]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-3faa57f5]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-3faa57f5]{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-3faa57f5]{position:absolute;left:0;background:var(--admin-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-3faa57f5]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-3faa57f5]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-3faa57f5],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-3faa57f5]{font-size:12px}.tabs-main-bar--variant-card[data-v-3faa57f5]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-3faa57f5]{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-3faa57f5]:hover:not(.tabs-main-bar-item_active){color:var(--admin-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]: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-3faa57f5]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-3faa57f5]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-3faa57f5]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-3faa57f5]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-3faa57f5]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-3faa57f5]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color);font-weight:600}.app-aside[data-v-d07cb9ed]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--admin-core-shadow, var(--el-box-shadow));overflow-x:hidden;overflow-y:auto;z-index:0}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-ae442089]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-ae442089]{width:100%;--app-viewport-max-height: var(--ae6fc168)}.app-footer[data-v-71b2892d]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:var(--admin-core-shadow, var(--el-box-shadow))}.app-footer-shim[data-v-71b2892d]{width:100%;height:100%;padding:0 20px}.app-header[data-v-ef6c4b9f]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;box-shadow:var(--admin-core-shadow, var(--el-box-shadow));z-index:1}.app-header-module[data-v-ef6c4b9f]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-ef6c4b9f]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%}.app-header-module-item[data-v-ef6c4b9f]:hover,.app-header-module-item_active[data-v-ef6c4b9f]{color:var(--v1eee7516)}.app-header-module-item_active[data-v-ef6c4b9f]{position:relative}.app-header-module-item_active[data-v-ef6c4b9f]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v1eee7516);transform:translate(-50%)}.app-header-shim[data-v-ef6c4b9f]{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-ef6c4b9f]{margin-right:8px}.app-header-right[data-v-ef6c4b9f]{padding-left:80px;display:flex;align-items:center}.app-sidebar[data-v-1dee248d]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--admin-core-shadow, var(--el-box-shadow));overflow:visible;z-index:var(--v368510bd)}.app-sidebar-top[data-v-1dee248d]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-1dee248d]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-1dee248d]{position:absolute;left:0;right:0;top:var(--v7b09fce5);bottom:var(--v1098f49b);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-sidebar-toggle[data-v-1dee248d]{position:absolute;left:100%;top:50%;transform:translate(-50%,-50%);cursor:pointer;width:22px;height:22px;border-radius:50%;background-color:var(--cc02eed6);color:var(--v56d0884d);border:1px solid var(--v56d0884d);box-shadow:0 1px 2px #0000000f;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;isolation:isolate;transition:color .3s,border-color .3s,box-shadow .3s}.app-sidebar-toggle[data-v-1dee248d]:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background-color:var(--v56d0884d);opacity:.18;z-index:-1;pointer-events:none;transition:opacity .3s,inset .3s}.app-sidebar-toggle[data-v-1dee248d]:active,.app-sidebar-toggle[data-v-1dee248d]:focus,.app-sidebar-toggle[data-v-1dee248d]:hover{box-shadow:0 2px 6px #0000001f}.app-sidebar-toggle[data-v-1dee248d]:active:before,.app-sidebar-toggle[data-v-1dee248d]:focus:before,.app-sidebar-toggle[data-v-1dee248d]:hover:before{opacity:.32;top:-5px;right:-5px;bottom:-5px;left:-5px}.app-sidebar-toggle-icon[data-v-1dee248d]{transition:transform .3s}.app-theme[data-v-e4f0fe3b]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-e4f0fe3b]{width:120px}.app-layout[data-v-452f511b]{position:relative}.app-layout_noLogin[data-v-452f511b] .app-body,.app-layout_noLogin[data-v-452f511b] .app-sidebar,.app-layout_noLogin[data-v-452f511b] .app-header,.app-layout_noLogin[data-v-452f511b] .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-12b77b02],.form-item-nest-form-list[data-v-9fa02cbe]{padding:16px;border:1px solid var(--admin-core-border-color);border-radius:8px;box-shadow:var(--admin-core-shadow, var(--el-box-shadow-lighter))}.form-item-nest-form-list-row[data-v-9fa02cbe]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-9fa02cbe]{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-6f2937e1]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-6f2937e1],.table-toolbar-right[data-v-6f2937e1]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-6f2937e1]{--el-switch-off-color: var(--admin-core-primary-color);--el-switch-on-color: var(--admin-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-88119b35]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-88119b35]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-88119b35]{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-ae442089]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-ae442089]{width:100%;--app-viewport-max-height: var(--ae6fc168)}.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-7dc1d7e7]{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(--v769c523e)}.app-sidebar-top[data-v-7dc1d7e7]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-7dc1d7e7]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-7dc1d7e7]{position:absolute;left:0;right:0;top:var(--v2fe699b4);bottom:var(--v819fea8c);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-718c207c]{position:relative}.app-layout_noLogin[data-v-718c207c] .app-body,.app-layout_noLogin[data-v-718c207c] .app-sidebar,.app-layout_noLogin[data-v-718c207c] .app-header,.app-layout_noLogin[data-v-718c207c] .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}
@@ -39,5 +39,6 @@ const c = (s) => {
39
39
  export {
40
40
  h as themeScaleDerive,
41
41
  o as themeScaleMix,
42
+ c as themeScaleParseHex,
42
43
  l as themeScaleToRgba
43
44
  };