smart-admin-web 10.20.1 → 10.22.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.
- package/dist/api/index.d.ts +19 -1
- package/dist/api/index.js +85 -66
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +448 -1
- package/dist/assets/icons/ph-subset.json.js +1 -1
- package/dist/components/FormContainer/index.vue.js +87 -75
- package/dist/components/FormContainer/index.vue.js.map +1 -1
- package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.js +1 -1
- package/dist/components/UserPicker/index2.vue.js +328 -186
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/composables/authMenuRoute.d.ts +10 -0
- package/dist/composables/authMenuRoute.js +39 -23
- package/dist/composables/authMenuRoute.js.map +1 -1
- package/dist/composables/useModule.d.ts +3 -1
- package/dist/composables/useModule.js +44 -32
- package/dist/composables/useModule.js.map +1 -1
- package/dist/index.js +246 -242
- package/dist/layouts/components/SideNav.vue.js +2 -2
- package/dist/layouts/components/SideNav2.vue.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/watermark.d.ts +1 -1
- package/dist/locales/en-US.d.ts +68 -3
- package/dist/locales/en-US.js +74 -8
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/kernelMenuTitles.js +1 -0
- package/dist/locales/kernelMenuTitles.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +68 -3
- package/dist/locales/zh-CN.js +74 -8
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +6 -6
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/naive-theme.js +80 -77
- package/dist/theme/naive-theme.js.map +1 -1
- package/dist/types/api.d.ts +91 -0
- package/dist/types/api.js +17 -15
- package/dist/types/api.js.map +1 -1
- package/dist/utils/shake.d.ts +1 -0
- package/dist/utils/shake.js +30 -0
- package/dist/utils/shake.js.map +1 -0
- package/dist/utils/tree.d.ts +15 -0
- package/dist/utils/tree.js +43 -29
- package/dist/utils/tree.js.map +1 -1
- package/dist/utils/treeCard.d.ts +6 -0
- package/dist/utils/treeCard.js +9 -0
- package/dist/utils/treeCard.js.map +1 -0
- package/dist/views/error/404.vue.js +2 -2
- package/dist/views/error/4042.vue.js +81 -24
- package/dist/views/error/4042.vue.js.map +1 -1
- package/dist/views/login/LoginForm.vue.js +2 -2
- package/dist/views/login/LoginForm2.vue.js +135 -135
- package/dist/views/login/LoginForm2.vue.js.map +1 -1
- package/dist/views/login/components/LoginDesk.vue.js +2 -2
- package/dist/views/login/components/LoginDesk2.vue.js +59 -47
- package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
- package/dist/views/login/components/LoginHeroPanel.vue.js +2 -2
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
- package/dist/views/personal/notice2.vue.js +1 -1
- package/dist/views/personal/notice2.vue.js.map +1 -1
- package/dist/views/personal/sessions.vue.js +2 -2
- package/dist/views/personal/sessions2.vue.js +41 -40
- package/dist/views/personal/sessions2.vue.js.map +1 -1
- package/dist/views/system/ai-usage/index.vue.js +3 -3
- package/dist/views/system/ai-usage/index2.vue.js +13 -12
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
- package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
- package/dist/views/system/dict/index.vue.js +2 -2
- package/dist/views/system/dict/index2.vue.js +12 -1
- package/dist/views/system/dict/index2.vue.js.map +1 -1
- package/dist/views/system/file/index2.vue.js +1 -0
- package/dist/views/system/file/index2.vue.js.map +1 -1
- package/dist/views/system/job/index.vue.js +3 -3
- package/dist/views/system/job/index2.vue.js +182 -181
- package/dist/views/system/job/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
- package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
- package/dist/views/system/job-log/index.vue.js +1 -1
- package/dist/views/system/job-log/index2.vue.js +5 -5
- package/dist/views/system/job-log/index2.vue.js.map +1 -1
- package/dist/views/system/job-monitor/index.vue.js +2 -2
- package/dist/views/system/job-monitor/index2.vue.js +46 -46
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
- package/dist/views/system/log/exception/index.vue.js +2 -2
- package/dist/views/system/log/exception/index2.vue.js +8 -5
- package/dist/views/system/log/exception/index2.vue.js.map +1 -1
- package/dist/views/system/log/login/index2.vue.js +21 -12
- package/dist/views/system/log/login/index2.vue.js.map +1 -1
- package/dist/views/system/log/op/index.vue.js +2 -2
- package/dist/views/system/log/op/index2.vue.js +50 -40
- package/dist/views/system/log/op/index2.vue.js.map +1 -1
- package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
- package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
- package/dist/views/system/menu/index.vue.js +1 -1
- package/dist/views/system/menu/index2.vue.js +162 -151
- package/dist/views/system/menu/index2.vue.js.map +1 -1
- package/dist/views/system/module/index.vue.js +1 -1
- package/dist/views/system/module/index2.vue.js +171 -117
- package/dist/views/system/module/index2.vue.js.map +1 -1
- package/dist/views/system/notice/index.vue.js +3 -3
- package/dist/views/system/notice/index2.vue.js +1 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -1
- package/dist/views/system/org/index.vue.js +2 -2
- package/dist/views/system/org/index2.vue.js +204 -195
- package/dist/views/system/org/index2.vue.js.map +1 -1
- package/dist/views/system/position/index.vue.js +2 -2
- package/dist/views/system/position/index2.vue.js +57 -48
- package/dist/views/system/position/index2.vue.js.map +1 -1
- package/dist/views/system/recycle/index.vue.js +1 -1
- package/dist/views/system/recycle/index2.vue.js +3 -1
- package/dist/views/system/recycle/index2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
- package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
- package/dist/views/system/role/components/grantMenuGroups.js +116 -76
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
- package/dist/views/system/role/index.vue.js +2 -2
- package/dist/views/system/role/index2.vue.js +152 -145
- package/dist/views/system/role/index2.vue.js.map +1 -1
- package/dist/views/system/session/index2.vue.js +39 -35
- package/dist/views/system/session/index2.vue.js.map +1 -1
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
- package/dist/views/system/user/components/userGrantState.d.ts +64 -0
- package/dist/views/system/user/components/userGrantState.js +117 -0
- package/dist/views/system/user/components/userGrantState.js.map +1 -0
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +369 -295
- package/dist/views/system/user/index2.vue.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { rgba as I, mix as
|
|
2
|
-
import { deriveAccentTokens as
|
|
1
|
+
import { rgba as I, mix as O } from "./mix.js";
|
|
2
|
+
import { deriveAccentTokens as K } from "./accentTokens.js";
|
|
3
3
|
const o = (c) => getComputedStyle(document.documentElement).getPropertyValue(c).trim();
|
|
4
|
-
function
|
|
5
|
-
const b =
|
|
6
|
-
return { base: c, hover: b, pressed:
|
|
4
|
+
function B(c) {
|
|
5
|
+
const b = O(c, "#FFFFFF", 0.12);
|
|
6
|
+
return { base: c, hover: b, pressed: O(c, "#000000", 0.12), suppl: b };
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
const { dark: b } = c,
|
|
8
|
+
function Y(c) {
|
|
9
|
+
const { dark: b } = c, Q = K(c.accent, b), { signal: t, acc: e, onAcc: m, hover: k, pressed: V, activeFg: u, linkFg: p, ring: s } = Q, H = B(o("--ok")), F = B(o("--warn")), T = B(o("--err")), f = B(o("--info")), r = o("--text-1"), i = o("--text-2"), l = o("--text-3"), M = o("--text-4"), h = o("--border"), d = o("--separator"), j = o("--hairline"), P = o("--hairline-strong"), D = o("--tooltip-bg"), w = o("--glass-strong"), n = o("--fill"), S = o("--fill-strong"), x = o("--hover"), g = o("--pressed"), C = o("--input"), R = o("--input-disabled"), y = o("--bg-card"), a = o("--bg-elevated"), W = o("--seg-track"), L = o("--seg-thumb"), $ = o("--shadow-1"), A = o("--shadow-2"), E = o("--shadow-3"), q = o("--th-bg"), G = o("--th-bg-hover"), J = o("--td-bg-hover"), v = o("--radius-md"), N = {
|
|
10
10
|
borderRadius: v,
|
|
11
11
|
color: C,
|
|
12
12
|
colorActive: C,
|
|
@@ -31,17 +31,17 @@ function X(c) {
|
|
|
31
31
|
return {
|
|
32
32
|
common: {
|
|
33
33
|
primaryColor: e,
|
|
34
|
-
primaryColorHover:
|
|
35
|
-
primaryColorPressed:
|
|
36
|
-
primaryColorSuppl:
|
|
37
|
-
successColor:
|
|
38
|
-
successColorHover:
|
|
39
|
-
successColorPressed:
|
|
40
|
-
successColorSuppl:
|
|
41
|
-
warningColor:
|
|
42
|
-
warningColorHover:
|
|
43
|
-
warningColorPressed:
|
|
44
|
-
warningColorSuppl:
|
|
34
|
+
primaryColorHover: k,
|
|
35
|
+
primaryColorPressed: V,
|
|
36
|
+
primaryColorSuppl: k,
|
|
37
|
+
successColor: H.base,
|
|
38
|
+
successColorHover: H.hover,
|
|
39
|
+
successColorPressed: H.pressed,
|
|
40
|
+
successColorSuppl: H.suppl,
|
|
41
|
+
warningColor: F.base,
|
|
42
|
+
warningColorHover: F.hover,
|
|
43
|
+
warningColorPressed: F.pressed,
|
|
44
|
+
warningColorSuppl: F.suppl,
|
|
45
45
|
errorColor: T.base,
|
|
46
46
|
errorColorHover: T.hover,
|
|
47
47
|
errorColorPressed: T.pressed,
|
|
@@ -53,16 +53,16 @@ function X(c) {
|
|
|
53
53
|
bodyColor: o("--bg-app"),
|
|
54
54
|
cardColor: o("--bg-card-glass"),
|
|
55
55
|
tableColor: "transparent",
|
|
56
|
-
modalColor:
|
|
57
|
-
popoverColor:
|
|
56
|
+
modalColor: a,
|
|
57
|
+
popoverColor: a,
|
|
58
58
|
textColorBase: r,
|
|
59
59
|
textColor1: r,
|
|
60
60
|
textColor2: i,
|
|
61
61
|
textColor3: l,
|
|
62
62
|
placeholderColor: l,
|
|
63
|
-
textColorDisabled:
|
|
63
|
+
textColorDisabled: M,
|
|
64
64
|
borderColor: h,
|
|
65
|
-
dividerColor:
|
|
65
|
+
dividerColor: d,
|
|
66
66
|
// 两者同色会让禁用框和可填框长一个样,操作员分不清哪里能输入,必须走不同令牌。
|
|
67
67
|
// 这两个 common 变量流向 Input 与 InternalSelection,
|
|
68
68
|
// 即 NInput / NInputNumber / NSelect / NDatePicker / NCascader 等全部输入类组件。
|
|
@@ -93,9 +93,9 @@ function X(c) {
|
|
|
93
93
|
heightMedium: "30px",
|
|
94
94
|
heightLarge: "42px",
|
|
95
95
|
heightHuge: "46px",
|
|
96
|
-
boxShadow1:
|
|
97
|
-
boxShadow2:
|
|
98
|
-
boxShadow3:
|
|
96
|
+
boxShadow1: $,
|
|
97
|
+
boxShadow2: A,
|
|
98
|
+
boxShadow3: E,
|
|
99
99
|
cubicBezierEaseInOut: "cubic-bezier(.2, .8, .2, 1)"
|
|
100
100
|
},
|
|
101
101
|
Button: {
|
|
@@ -155,16 +155,16 @@ function X(c) {
|
|
|
155
155
|
},
|
|
156
156
|
Select: {
|
|
157
157
|
peers: {
|
|
158
|
-
InternalSelection:
|
|
158
|
+
InternalSelection: N,
|
|
159
159
|
InternalSelectMenu: {
|
|
160
160
|
borderRadius: "12px",
|
|
161
161
|
optionHeightMedium: "30px",
|
|
162
|
-
color:
|
|
162
|
+
color: a,
|
|
163
163
|
optionCheckColor: t
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
},
|
|
167
|
-
TreeSelect: { peers: { InternalSelection:
|
|
167
|
+
TreeSelect: { peers: { InternalSelection: N } },
|
|
168
168
|
DatePicker: {
|
|
169
169
|
peers: {
|
|
170
170
|
Input: {
|
|
@@ -179,7 +179,7 @@ function X(c) {
|
|
|
179
179
|
peers: { Input: { color: C, borderFocus: `1px solid ${t}`, boxShadowFocus: s } }
|
|
180
180
|
},
|
|
181
181
|
Card: {
|
|
182
|
-
color:
|
|
182
|
+
color: y,
|
|
183
183
|
colorEmbedded: n,
|
|
184
184
|
borderColor: "transparent",
|
|
185
185
|
borderRadius: o("--radius-lg"),
|
|
@@ -188,24 +188,23 @@ function X(c) {
|
|
|
188
188
|
titleFontWeight: "600",
|
|
189
189
|
paddingMedium: "12px 14px 14px",
|
|
190
190
|
paddingSmall: "10px 12px",
|
|
191
|
-
colorModal:
|
|
191
|
+
colorModal: a,
|
|
192
192
|
actionColor: n
|
|
193
193
|
},
|
|
194
194
|
DataTable: {
|
|
195
|
-
thColor:
|
|
196
|
-
thColorHover:
|
|
197
|
-
thColorSorting:
|
|
195
|
+
thColor: q,
|
|
196
|
+
thColorHover: G,
|
|
197
|
+
thColorSorting: G,
|
|
198
198
|
// 内容层不透明:行底取实色卡片色(固定列 sticky 叠在别的列上不会透底),不加斑马纹(tdColorStriped 同色)
|
|
199
|
-
tdColor:
|
|
200
|
-
tdColorHover:
|
|
201
|
-
tdColorStriped:
|
|
202
|
-
tdColorSorting:
|
|
199
|
+
tdColor: y,
|
|
200
|
+
tdColorHover: J,
|
|
201
|
+
tdColorStriped: y,
|
|
202
|
+
tdColorSorting: y,
|
|
203
203
|
thTextColor: i,
|
|
204
204
|
thFontWeight: "600",
|
|
205
205
|
thIconColor: l,
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
borderColor: M,
|
|
206
|
+
// 表格线(列竖线 / 外框 / 行线)的标准就是 --separator(亮色 0.16),不换更实的线色:见 DESIGN.md §5「表格线色」
|
|
207
|
+
borderColor: d,
|
|
209
208
|
borderRadius: "10px",
|
|
210
209
|
thPaddingMedium: "6px 12px",
|
|
211
210
|
tdPaddingMedium: "4px 12px",
|
|
@@ -248,8 +247,8 @@ function X(c) {
|
|
|
248
247
|
groupTextColor: l
|
|
249
248
|
},
|
|
250
249
|
Tabs: {
|
|
251
|
-
colorSegment:
|
|
252
|
-
tabColorSegment:
|
|
250
|
+
colorSegment: W,
|
|
251
|
+
tabColorSegment: L,
|
|
253
252
|
tabBorderRadius: "8px",
|
|
254
253
|
tabTextColorSegment: i,
|
|
255
254
|
tabTextColorActiveSegment: r,
|
|
@@ -266,8 +265,8 @@ function X(c) {
|
|
|
266
265
|
},
|
|
267
266
|
Radio: {
|
|
268
267
|
buttonBorderRadius: "8px",
|
|
269
|
-
buttonColor:
|
|
270
|
-
buttonColorActive:
|
|
268
|
+
buttonColor: W,
|
|
269
|
+
buttonColorActive: L,
|
|
271
270
|
buttonBorderColor: "transparent",
|
|
272
271
|
buttonBorderColorActive: "transparent",
|
|
273
272
|
buttonBorderColorHover: "transparent",
|
|
@@ -285,7 +284,7 @@ function X(c) {
|
|
|
285
284
|
Tree: {
|
|
286
285
|
nodeBorderRadius: "8px",
|
|
287
286
|
nodeColorHover: x,
|
|
288
|
-
nodeColorActive:
|
|
287
|
+
nodeColorActive: w,
|
|
289
288
|
nodeHeight: "30px",
|
|
290
289
|
peers: { Checkbox: z }
|
|
291
290
|
},
|
|
@@ -310,70 +309,74 @@ function X(c) {
|
|
|
310
309
|
color: n,
|
|
311
310
|
textColor: i,
|
|
312
311
|
fontWeightStrong: "500",
|
|
313
|
-
colorPrimary:
|
|
312
|
+
colorPrimary: w,
|
|
314
313
|
textColorPrimary: r,
|
|
315
|
-
borderPrimary: `1px solid ${
|
|
314
|
+
borderPrimary: `1px solid ${P}`
|
|
316
315
|
},
|
|
317
|
-
List: { color: "transparent", colorHover: x, borderColor:
|
|
316
|
+
List: { color: "transparent", colorHover: x, borderColor: d },
|
|
318
317
|
Dialog: {
|
|
319
318
|
borderRadius: o("--radius-xl"),
|
|
320
|
-
color:
|
|
319
|
+
color: a,
|
|
321
320
|
padding: "24px 26px 22px",
|
|
322
321
|
titleFontSize: "17px",
|
|
323
322
|
titleFontWeight: "600"
|
|
324
323
|
},
|
|
325
|
-
Modal: { color:
|
|
324
|
+
Modal: { color: a, boxShadow: E },
|
|
326
325
|
Drawer: {
|
|
327
|
-
color:
|
|
326
|
+
color: a,
|
|
328
327
|
headerPadding: "18px 24px",
|
|
329
328
|
bodyPadding: "20px 24px",
|
|
330
329
|
footerPadding: "14px 24px",
|
|
331
330
|
titleFontSize: "17px",
|
|
332
331
|
titleFontWeight: "600",
|
|
333
|
-
headerBorderBottom: `1px solid ${
|
|
334
|
-
footerBorderTop: `1px solid ${
|
|
332
|
+
headerBorderBottom: `1px solid ${d}`,
|
|
333
|
+
footerBorderTop: `1px solid ${d}`
|
|
335
334
|
},
|
|
336
|
-
Popover: { color:
|
|
335
|
+
Popover: { color: a, borderRadius: o("--radius-lg"), boxShadow: A },
|
|
337
336
|
Dropdown: {
|
|
338
|
-
color:
|
|
337
|
+
color: a,
|
|
339
338
|
borderRadius: "12px",
|
|
340
339
|
padding: "5px",
|
|
341
340
|
optionHeightMedium: "30px",
|
|
342
341
|
optionColorHover: x,
|
|
343
|
-
dividerColor:
|
|
342
|
+
dividerColor: d
|
|
344
343
|
},
|
|
344
|
+
// 提示气泡和下拉 / 弹层同一套浮层表面,随亮暗主题走(亮色近白底深字,暗色深蓝底亮字),不做亮暗都黑的特例。
|
|
345
|
+
// 底色、字色、阴影成套给:Tooltip 底下是 Popover,Naive 合并时全局 `Popover` 覆盖(上面的 elevated 与大阴影)
|
|
346
|
+
// 压过 Tooltip 自带的值,所以同一套要在 peers.Popover 里再写一遍(它在合并链最后,只对 Tooltip 生效)。
|
|
347
|
+
// 阴影用描边 + 卡片级的轻阴影:气泡很小,弹层那种大范围投影会显得过重。
|
|
345
348
|
Tooltip: {
|
|
346
|
-
color:
|
|
347
|
-
textColor:
|
|
349
|
+
color: D,
|
|
350
|
+
textColor: r,
|
|
348
351
|
borderRadius: "8px",
|
|
349
352
|
padding: "5px 9px",
|
|
350
|
-
|
|
351
|
-
// 文字色却仍是 Tooltip 的白色 → 亮色下白底白字。peers.Popover 在合并链最后,只对 Tooltip 生效。
|
|
353
|
+
boxShadow: `0 0 0 1px ${P}, ${$}`,
|
|
352
354
|
peers: {
|
|
353
355
|
Popover: {
|
|
354
|
-
color:
|
|
355
|
-
textColor:
|
|
356
|
+
color: D,
|
|
357
|
+
textColor: r,
|
|
356
358
|
borderRadius: "8px",
|
|
357
|
-
padding: "5px 9px"
|
|
359
|
+
padding: "5px 9px",
|
|
360
|
+
boxShadow: `0 0 0 1px ${P}, ${$}`
|
|
358
361
|
}
|
|
359
362
|
}
|
|
360
363
|
},
|
|
361
|
-
Message: { borderRadius: "12px", color:
|
|
362
|
-
Notification: { borderRadius: "16px", color:
|
|
364
|
+
Message: { borderRadius: "12px", color: a, padding: "10px 16px", boxShadow: A },
|
|
365
|
+
Notification: { borderRadius: "16px", color: a, boxShadow: A },
|
|
363
366
|
Alert: {
|
|
364
367
|
borderRadius: "10px",
|
|
365
368
|
colorInfo: n,
|
|
366
|
-
borderInfo: `1px solid ${
|
|
369
|
+
borderInfo: `1px solid ${j}`,
|
|
367
370
|
iconColorInfo: i,
|
|
368
371
|
titleTextColorInfo: r,
|
|
369
372
|
contentTextColorInfo: i
|
|
370
373
|
},
|
|
371
374
|
Pagination: {
|
|
372
375
|
itemBorderRadius: "8px",
|
|
373
|
-
itemColorActive:
|
|
376
|
+
itemColorActive: w,
|
|
374
377
|
itemTextColorActive: r,
|
|
375
|
-
itemBorderActive: `1px solid ${
|
|
376
|
-
itemColorActiveHover:
|
|
378
|
+
itemBorderActive: `1px solid ${P}`,
|
|
379
|
+
itemColorActiveHover: w
|
|
377
380
|
},
|
|
378
381
|
Statistic: {
|
|
379
382
|
valueFontSize: "26px",
|
|
@@ -383,12 +386,12 @@ function X(c) {
|
|
|
383
386
|
},
|
|
384
387
|
Descriptions: {
|
|
385
388
|
thColor: n,
|
|
386
|
-
borderColor:
|
|
389
|
+
borderColor: d,
|
|
387
390
|
thTextColor: l,
|
|
388
391
|
tdColor: "transparent"
|
|
389
392
|
},
|
|
390
393
|
Progress: { railColor: n, fillColor: e },
|
|
391
|
-
Breadcrumb: { itemTextColor: l, itemTextColorActive: r, separatorColor:
|
|
394
|
+
Breadcrumb: { itemTextColor: l, itemTextColorActive: r, separatorColor: M },
|
|
392
395
|
Slider: {
|
|
393
396
|
fillColor: e,
|
|
394
397
|
fillColorHover: e,
|
|
@@ -404,18 +407,18 @@ function X(c) {
|
|
|
404
407
|
indicatorBorderColorFinish: h,
|
|
405
408
|
indicatorTextColorFinish: i,
|
|
406
409
|
splitorColorFinish: l,
|
|
407
|
-
splitorColorProcess:
|
|
408
|
-
splitorColorWait:
|
|
410
|
+
splitorColorProcess: d,
|
|
411
|
+
splitorColorWait: d
|
|
409
412
|
},
|
|
410
|
-
Empty: { textColor: l, iconColor:
|
|
411
|
-
Divider: { color:
|
|
412
|
-
Timeline: { circleBorder: `2px solid ${h}`, titleFontWeight: "500", lineColor:
|
|
413
|
+
Empty: { textColor: l, iconColor: M },
|
|
414
|
+
Divider: { color: d },
|
|
415
|
+
Timeline: { circleBorder: `2px solid ${h}`, titleFontWeight: "500", lineColor: d },
|
|
413
416
|
Badge: { color: o("--badge-bg") },
|
|
414
417
|
Scrollbar: { color: S, colorHover: h },
|
|
415
418
|
Code: { textColor: r }
|
|
416
419
|
};
|
|
417
420
|
}
|
|
418
421
|
export {
|
|
419
|
-
|
|
422
|
+
Y as buildThemeOverrides
|
|
420
423
|
};
|
|
421
424
|
//# sourceMappingURL=naive-theme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naive-theme.js","sources":["../../src/theme/naive-theme.ts"],"sourcesContent":["import type { GlobalThemeOverrides } from 'naive-ui'\nimport { mix, rgba } from './mix'\nimport { deriveAccentTokens } from './accentTokens'\n\n// 读取当前主题下的 token 值(getComputedStyle 同步反映最新的 data-theme)。\nconst v = (name: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(name).trim()\n\n/** 语义色 hover/pressed 统一派生(hover 往白提 12%,pressed 往黑压 12%)。主色不在此列——它走 `mix.ts` 的 `derivePrimary`。 */\nfunction semantic(base: string) {\n const hover = mix(base, '#FFFFFF', 0.12)\n return { base, hover, pressed: mix(base, '#000000', 0.12), suppl: hover }\n}\n\n/**\n * tokens.css → Naive UI GlobalThemeOverrides(映射关系见 DESIGN.md 映射表)。\n * 强调色相关的值由 accent 按 `accentTokens.ts` 算;其余颜色 / 度量从当前 CSS 变量读取。\n *\n * 度量(中文界面 14px 偏小,整体比 Naive 默认大一档):正文 15px、默认控件高 30px(小 24、迷你 20)、Large 42px 只留给登录页与触屏窄档。\n * 按钮默认款(没写 type 的 NButton,如表格库里的「搜索」「更多」)渲染成与 secondary 同色同无描边,整站只剩一种次按钮。\n */\nexport function buildThemeOverrides(opts: { dark: boolean; accent: string }): GlobalThemeOverrides {\n const { dark } = opts\n const a = deriveAccentTokens(opts.accent, dark)\n const { signal, acc, onAcc, hover, pressed, activeFg, linkFg, ring } = a\n\n const ok = semantic(v('--ok'))\n const warn = semantic(v('--warn'))\n const err = semantic(v('--err'))\n const info = semantic(v('--info'))\n\n const text1 = v('--text-1')\n const text2 = v('--text-2')\n const text3 = v('--text-3')\n const text4 = v('--text-4')\n const border = v('--border')\n const separator = v('--separator')\n const hairline = v('--hairline')\n const hairlineStrong = v('--hairline-strong')\n const glassStrong = v('--glass-strong')\n const fill = v('--fill')\n const fillStrong = v('--fill-strong')\n const hoverBg = v('--hover')\n const pressedBg = v('--pressed')\n const input = v('--input')\n const inputDisabled = v('--input-disabled')\n const cardSolid = v('--bg-card')\n const elevated = v('--bg-elevated')\n const segTrack = v('--seg-track')\n const segThumb = v('--seg-thumb')\n const shadow1 = v('--shadow-1')\n const shadow2 = v('--shadow-2')\n const shadow3 = v('--shadow-3')\n const thBg = v('--th-bg')\n const thBgHover = v('--th-bg-hover')\n const tdBgHover = v('--td-bg-hover')\n\n const radius = v('--radius-md') // 9\n const selection = {\n borderRadius: radius,\n color: input,\n colorActive: input,\n colorDisabled: inputDisabled,\n border: `1px solid ${border}`,\n borderHover: `1px solid ${v('--select-border-hover')}`,\n borderActive: `1px solid ${signal}`,\n borderFocus: `1px solid ${signal}`,\n boxShadowActive: ring,\n boxShadowFocus: ring,\n }\n const checkbox = {\n borderRadius: v('--radius-xs'),\n boxShadowFocus: ring,\n checkMarkColor: '#FFFFFF',\n colorChecked: acc,\n borderChecked: `1px solid ${acc}`,\n colorIndeterminate: acc,\n borderIndeterminate: `1px solid ${acc}`,\n border: `1px solid ${border}`,\n color: input,\n }\n\n return {\n common: {\n primaryColor: acc,\n primaryColorHover: hover,\n primaryColorPressed: pressed,\n primaryColorSuppl: hover,\n\n successColor: ok.base,\n successColorHover: ok.hover,\n successColorPressed: ok.pressed,\n successColorSuppl: ok.suppl,\n warningColor: warn.base,\n warningColorHover: warn.hover,\n warningColorPressed: warn.pressed,\n warningColorSuppl: warn.suppl,\n errorColor: err.base,\n errorColorHover: err.hover,\n errorColorPressed: err.pressed,\n errorColorSuppl: err.suppl,\n infoColor: info.base,\n infoColorHover: info.hover,\n infoColorPressed: info.pressed,\n infoColorSuppl: info.suppl,\n\n bodyColor: v('--bg-app'),\n cardColor: v('--bg-card-glass'),\n tableColor: 'transparent',\n modalColor: elevated,\n popoverColor: elevated,\n\n textColorBase: text1,\n textColor1: text1,\n textColor2: text2,\n textColor3: text3,\n placeholderColor: text3,\n textColorDisabled: text4,\n\n borderColor: border,\n dividerColor: separator,\n // 两者同色会让禁用框和可填框长一个样,操作员分不清哪里能输入,必须走不同令牌。\n // 这两个 common 变量流向 Input 与 InternalSelection,\n // 即 NInput / NInputNumber / NSelect / NDatePicker / NCascader 等全部输入类组件。\n inputColor: input,\n inputColorDisabled: inputDisabled,\n actionColor: fill,\n tableHeaderColor: 'transparent',\n hoverColor: hoverBg,\n pressedColor: pressedBg,\n closeColorHover: hoverBg,\n closeColorPressed: pressedBg,\n clearColor: text3,\n\n borderRadius: radius,\n borderRadiusSmall: v('--radius-sm'),\n fontFamily: v('--font'),\n fontFamilyMono: v('--font-mono'),\n fontWeightStrong: '600',\n fontSizeMini: '13px',\n fontSizeTiny: '14px',\n fontSizeSmall: '14px',\n fontSizeMedium: '15px',\n fontSizeLarge: '16px',\n fontSizeHuge: '17px',\n fontSize: '15px',\n heightMini: '20px',\n heightTiny: '22px',\n heightSmall: '24px',\n heightMedium: '30px',\n heightLarge: '42px',\n heightHuge: '46px',\n\n boxShadow1: shadow1,\n boxShadow2: shadow2,\n boxShadow3: shadow3,\n cubicBezierEaseInOut: 'cubic-bezier(.2, .8, .2, 1)',\n },\n Button: {\n fontWeight: '500',\n borderRadiusMedium: radius,\n borderRadiusSmall: '7px',\n borderRadiusLarge: '12px',\n fontSizeLarge: '15px',\n // 点击不出扩散波纹:那是 Ant 系的反馈,macOS 的按钮只有按下态的底色变化(colorPressed)。\n // 波纹是定时器切 class + 无 fill-mode 的 CSS 动画,时长归零即彻底不可见,不必逐类型清 rippleColor。\n rippleDuration: '0s',\n paddingMedium: '0 12px',\n paddingSmall: '0 10px',\n textColorPrimary: onAcc,\n textColorHoverPrimary: onAcc,\n textColorPressedPrimary: onAcc,\n textColorFocusPrimary: onAcc,\n textColorDisabledPrimary: onAcc,\n colorSecondary: fill,\n colorSecondaryHover: fillStrong,\n colorSecondaryPressed: pressedBg,\n // 没写 type 的默认款(库里的「搜索」「更多」)渲染成与 secondary 同款:中性灰底、无描边\n color: fill,\n colorHover: fillStrong,\n colorPressed: pressedBg,\n colorFocus: fill,\n border: '1px solid transparent',\n borderHover: '1px solid transparent',\n borderPressed: '1px solid transparent',\n borderFocus: `1px solid ${signal}`,\n // 文字 / 行内操作按钮(详情、编辑):浅色 / 深色统一用 linkFg\n textColorTextPrimary: linkFg,\n textColorTextHoverPrimary: linkFg,\n textColorTextPressedPrimary: linkFg,\n textColorTextFocusPrimary: linkFg,\n textColorGhostPrimary: linkFg,\n textColorGhostHoverPrimary: linkFg,\n textColorGhostPressedPrimary: linkFg,\n textColorGhostFocusPrimary: linkFg,\n colorQuaternaryHover: hoverBg,\n colorQuaternaryPressed: pressedBg,\n colorTertiaryHover: hoverBg,\n colorTertiaryPressed: pressedBg,\n },\n Input: {\n borderRadius: radius,\n color: input,\n colorDisabled: inputDisabled,\n colorFocus: input,\n border: `1px solid ${border}`,\n borderHover: `1px solid ${v('--input-border-hover')}`,\n borderFocus: `1px solid ${signal}`,\n boxShadowFocus: ring,\n heightLarge: '42px',\n fontSizeLarge: '15px',\n caretColor: signal,\n },\n Select: {\n peers: {\n InternalSelection: selection,\n InternalSelectMenu: {\n borderRadius: '12px',\n optionHeightMedium: '30px',\n color: elevated,\n optionCheckColor: signal,\n },\n },\n },\n TreeSelect: { peers: { InternalSelection: selection } },\n DatePicker: {\n peers: {\n Input: {\n borderRadius: radius,\n color: input,\n borderFocus: `1px solid ${signal}`,\n boxShadowFocus: ring,\n },\n },\n },\n InputNumber: {\n peers: { Input: { color: input, borderFocus: `1px solid ${signal}`, boxShadowFocus: ring } },\n },\n Card: {\n color: cardSolid,\n colorEmbedded: fill,\n borderColor: 'transparent',\n borderRadius: v('--radius-lg'),\n titleFontSizeMedium: '15px',\n titleFontSizeSmall: '15px',\n titleFontWeight: '600',\n paddingMedium: '12px 14px 14px',\n paddingSmall: '10px 12px',\n colorModal: elevated,\n actionColor: fill,\n },\n DataTable: {\n thColor: thBg,\n thColorHover: thBgHover,\n thColorSorting: thBgHover,\n // 内容层不透明:行底取实色卡片色(固定列 sticky 叠在别的列上不会透底),不加斑马纹(tdColorStriped 同色)\n tdColor: cardSolid,\n tdColorHover: tdBgHover,\n tdColorStriped: cardSolid,\n tdColorSorting: cardSolid,\n thTextColor: text2,\n thFontWeight: '600',\n thIconColor: text3,\n // 表格网格线取比 --separator 更实的发丝线:虚拟滚动的行带亚像素偏移,125% / 150% 缩放下线会被摊到两个像素上变淡,\n // 0.16 的透明度会淡到几乎看不见\n borderColor: hairlineStrong,\n borderRadius: '10px',\n thPaddingMedium: '6px 12px',\n tdPaddingMedium: '4px 12px',\n fontSizeMedium: '15px',\n thPaddingSmall: '6px 10px',\n tdPaddingSmall: '4px 10px',\n fontSizeSmall: '14px',\n peers: { Checkbox: checkbox },\n },\n Menu: {\n borderRadius: radius,\n itemHeight: '34px',\n fontSize: '15px',\n itemColorHover: hoverBg,\n itemColorActive: rgba(signal, dark ? 0.16 : 0.09),\n itemColorActiveHover: rgba(signal, dark ? 0.2 : 0.12),\n itemColorActiveCollapsed: rgba(signal, dark ? 0.16 : 0.09),\n // 侧栏标签用主文字色(macOS 侧栏就是 label 主色,不是次级灰);选中 / 悬停靠底色区分\n itemTextColor: text1,\n itemTextColorHover: text1,\n // 侧栏图标与文字同色(每个状态都一致):平时主文字色,选中才跟随强调色;\n // 强调色只出现在选中项(行底色 + 加粗的图标文字),整条侧栏更安静\n itemIconColor: text1,\n itemIconColorHover: text1,\n itemIconColorCollapsed: text1,\n itemTextColorActive: activeFg,\n itemIconColorActive: activeFg,\n itemTextColorActiveHover: activeFg,\n itemIconColorActiveHover: activeFg,\n itemTextColorChildActive: text1,\n itemIconColorChildActive: text1,\n itemTextColorChildActiveHover: text1,\n itemIconColorChildActiveHover: text1,\n arrowColor: text3,\n arrowColorHover: text2,\n arrowColorActive: activeFg,\n arrowColorActiveHover: activeFg,\n arrowColorChildActive: text2,\n arrowColorChildActiveHover: text1,\n groupTextColor: text3,\n },\n Tabs: {\n colorSegment: segTrack,\n tabColorSegment: segThumb,\n tabBorderRadius: '8px',\n tabTextColorSegment: text2,\n tabTextColorActiveSegment: text1,\n tabTextColorHoverSegment: text1,\n tabFontWeightActive: '500',\n tabColor: 'transparent',\n tabBorderColor: 'transparent',\n tabTextColorCard: text3,\n tabTextColorActiveCard: activeFg,\n tabTextColorHoverCard: text1,\n tabTextColorActiveLine: text1,\n tabTextColorHoverLine: text1,\n barColor: acc,\n },\n Radio: {\n buttonBorderRadius: '8px',\n buttonColor: segTrack,\n buttonColorActive: segThumb,\n buttonBorderColor: 'transparent',\n buttonBorderColorActive: 'transparent',\n buttonBorderColorHover: 'transparent',\n buttonTextColor: text2,\n buttonTextColorActive: text1,\n buttonTextColorHover: text1,\n buttonBoxShadow: 'none',\n buttonBoxShadowHover: 'none',\n buttonBoxShadowFocus: ring,\n dotColorActive: acc,\n boxShadowActive: `inset 0 0 0 1px ${acc}`,\n boxShadowFocus: ring,\n },\n Checkbox: checkbox,\n Tree: {\n nodeBorderRadius: '8px',\n nodeColorHover: hoverBg,\n nodeColorActive: glassStrong,\n nodeHeight: '30px',\n peers: { Checkbox: checkbox },\n },\n Switch: {\n railColor: v('--switch-off'),\n railColorActive: acc,\n boxShadowFocus: ring,\n railHeightMedium: '24px',\n railWidthMedium: '42px',\n buttonHeightMedium: '20px',\n buttonWidthMedium: '20px',\n buttonWidthPressedMedium: '26px',\n },\n Tag: {\n heightTiny: '20px',\n heightSmall: '22px',\n heightMedium: '24px',\n fontSizeTiny: '13px',\n fontSizeSmall: '14px',\n fontSizeMedium: '15px',\n borderRadius: v('--radius-sm'),\n color: fill,\n textColor: text2,\n fontWeightStrong: '500',\n colorPrimary: glassStrong,\n textColorPrimary: text1,\n borderPrimary: `1px solid ${hairlineStrong}`,\n },\n List: { color: 'transparent', colorHover: hoverBg, borderColor: separator },\n Dialog: {\n borderRadius: v('--radius-xl'),\n color: elevated,\n padding: '24px 26px 22px',\n titleFontSize: '17px',\n titleFontWeight: '600',\n },\n Modal: { color: elevated, boxShadow: shadow3 },\n Drawer: {\n color: elevated,\n headerPadding: '18px 24px',\n bodyPadding: '20px 24px',\n footerPadding: '14px 24px',\n titleFontSize: '17px',\n titleFontWeight: '600',\n headerBorderBottom: `1px solid ${separator}`,\n footerBorderTop: `1px solid ${separator}`,\n },\n Popover: { color: elevated, borderRadius: v('--radius-lg'), boxShadow: shadow2 },\n Dropdown: {\n color: elevated,\n borderRadius: '12px',\n padding: '5px',\n optionHeightMedium: '30px',\n optionColorHover: hoverBg,\n dividerColor: separator,\n },\n Tooltip: {\n color: v('--tooltip-bg'),\n textColor: '#FFFFFF',\n borderRadius: '8px',\n padding: '5px 9px',\n // Tooltip 底下是 Popover,而 Naive 合并时全局 `Popover` 覆盖(上面的实底 elevated)压过 Tooltip 自带的 color,\n // 文字色却仍是 Tooltip 的白色 → 亮色下白底白字。peers.Popover 在合并链最后,只对 Tooltip 生效。\n peers: {\n Popover: {\n color: v('--tooltip-bg'),\n textColor: '#FFFFFF',\n borderRadius: '8px',\n padding: '5px 9px',\n },\n },\n },\n Message: { borderRadius: '12px', color: elevated, padding: '10px 16px', boxShadow: shadow2 },\n Notification: { borderRadius: '16px', color: elevated, boxShadow: shadow2 },\n Alert: {\n borderRadius: '10px',\n colorInfo: fill,\n borderInfo: `1px solid ${hairline}`,\n iconColorInfo: text2,\n titleTextColorInfo: text1,\n contentTextColorInfo: text2,\n },\n Pagination: {\n itemBorderRadius: '8px',\n itemColorActive: glassStrong,\n itemTextColorActive: text1,\n itemBorderActive: `1px solid ${hairlineStrong}`,\n itemColorActiveHover: glassStrong,\n },\n Statistic: {\n valueFontSize: '26px',\n valueFontWeight: '500',\n labelFontSize: '13px',\n labelTextColor: text2,\n },\n Descriptions: {\n thColor: fill,\n borderColor: separator,\n thTextColor: text3,\n tdColor: 'transparent',\n },\n Progress: { railColor: fill, fillColor: acc },\n Breadcrumb: { itemTextColor: text3, itemTextColorActive: text1, separatorColor: text4 },\n Slider: {\n fillColor: acc,\n fillColorHover: acc,\n railColor: fillStrong,\n railColorHover: fillStrong,\n dotBorderActive: `2px solid ${acc}`,\n },\n Steps: {\n indicatorColorProcess: acc,\n indicatorTextColorProcess: onAcc,\n indicatorBorderColorProcess: acc,\n indicatorColorFinish: 'transparent',\n indicatorBorderColorFinish: border,\n indicatorTextColorFinish: text2,\n splitorColorFinish: text3,\n splitorColorProcess: separator,\n splitorColorWait: separator,\n },\n Empty: { textColor: text3, iconColor: text4 },\n Divider: { color: separator },\n Timeline: { circleBorder: `2px solid ${border}`, titleFontWeight: '500', lineColor: separator },\n Badge: { color: v('--badge-bg') },\n Scrollbar: { color: fillStrong, colorHover: border },\n Code: { textColor: text1 },\n }\n}\n"],"names":["v","name","semantic","base","hover","mix","buildThemeOverrides","opts","dark","a","deriveAccentTokens","signal","acc","onAcc","pressed","activeFg","linkFg","ring","ok","warn","err","info","text1","text2","text3","text4","border","separator","hairline","hairlineStrong","glassStrong","fill","fillStrong","hoverBg","pressedBg","input","inputDisabled","cardSolid","elevated","segTrack","segThumb","shadow1","shadow2","shadow3","thBg","thBgHover","tdBgHover","radius","selection","checkbox","rgba"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"naive-theme.js","sources":["../../src/theme/naive-theme.ts"],"sourcesContent":["import type { GlobalThemeOverrides } from 'naive-ui'\nimport { mix, rgba } from './mix'\nimport { deriveAccentTokens } from './accentTokens'\n\n// 读取当前主题下的 token 值(getComputedStyle 同步反映最新的 data-theme)。\nconst v = (name: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(name).trim()\n\n/** 语义色 hover/pressed 统一派生(hover 往白提 12%,pressed 往黑压 12%)。主色不在此列——它走 `mix.ts` 的 `derivePrimary`。 */\nfunction semantic(base: string) {\n const hover = mix(base, '#FFFFFF', 0.12)\n return { base, hover, pressed: mix(base, '#000000', 0.12), suppl: hover }\n}\n\n/**\n * tokens.css → Naive UI GlobalThemeOverrides(映射关系见 DESIGN.md 映射表)。\n * 强调色相关的值由 accent 按 `accentTokens.ts` 算;其余颜色 / 度量从当前 CSS 变量读取。\n *\n * 度量(中文界面 14px 偏小,整体比 Naive 默认大一档):正文 15px、默认控件高 30px(小 24、迷你 20)、Large 42px 只留给登录页与触屏窄档。\n * 按钮默认款(没写 type 的 NButton,如表格库里的「搜索」「更多」)渲染成与 secondary 同色同无描边,整站只剩一种次按钮。\n */\nexport function buildThemeOverrides(opts: { dark: boolean; accent: string }): GlobalThemeOverrides {\n const { dark } = opts\n const a = deriveAccentTokens(opts.accent, dark)\n const { signal, acc, onAcc, hover, pressed, activeFg, linkFg, ring } = a\n\n const ok = semantic(v('--ok'))\n const warn = semantic(v('--warn'))\n const err = semantic(v('--err'))\n const info = semantic(v('--info'))\n\n const text1 = v('--text-1')\n const text2 = v('--text-2')\n const text3 = v('--text-3')\n const text4 = v('--text-4')\n const border = v('--border')\n const separator = v('--separator')\n const hairline = v('--hairline')\n const hairlineStrong = v('--hairline-strong')\n const tooltipBg = v('--tooltip-bg')\n const glassStrong = v('--glass-strong')\n const fill = v('--fill')\n const fillStrong = v('--fill-strong')\n const hoverBg = v('--hover')\n const pressedBg = v('--pressed')\n const input = v('--input')\n const inputDisabled = v('--input-disabled')\n const cardSolid = v('--bg-card')\n const elevated = v('--bg-elevated')\n const segTrack = v('--seg-track')\n const segThumb = v('--seg-thumb')\n const shadow1 = v('--shadow-1')\n const shadow2 = v('--shadow-2')\n const shadow3 = v('--shadow-3')\n const thBg = v('--th-bg')\n const thBgHover = v('--th-bg-hover')\n const tdBgHover = v('--td-bg-hover')\n\n const radius = v('--radius-md') // 9\n const selection = {\n borderRadius: radius,\n color: input,\n colorActive: input,\n colorDisabled: inputDisabled,\n border: `1px solid ${border}`,\n borderHover: `1px solid ${v('--select-border-hover')}`,\n borderActive: `1px solid ${signal}`,\n borderFocus: `1px solid ${signal}`,\n boxShadowActive: ring,\n boxShadowFocus: ring,\n }\n const checkbox = {\n borderRadius: v('--radius-xs'),\n boxShadowFocus: ring,\n checkMarkColor: '#FFFFFF',\n colorChecked: acc,\n borderChecked: `1px solid ${acc}`,\n colorIndeterminate: acc,\n borderIndeterminate: `1px solid ${acc}`,\n border: `1px solid ${border}`,\n color: input,\n }\n\n return {\n common: {\n primaryColor: acc,\n primaryColorHover: hover,\n primaryColorPressed: pressed,\n primaryColorSuppl: hover,\n\n successColor: ok.base,\n successColorHover: ok.hover,\n successColorPressed: ok.pressed,\n successColorSuppl: ok.suppl,\n warningColor: warn.base,\n warningColorHover: warn.hover,\n warningColorPressed: warn.pressed,\n warningColorSuppl: warn.suppl,\n errorColor: err.base,\n errorColorHover: err.hover,\n errorColorPressed: err.pressed,\n errorColorSuppl: err.suppl,\n infoColor: info.base,\n infoColorHover: info.hover,\n infoColorPressed: info.pressed,\n infoColorSuppl: info.suppl,\n\n bodyColor: v('--bg-app'),\n cardColor: v('--bg-card-glass'),\n tableColor: 'transparent',\n modalColor: elevated,\n popoverColor: elevated,\n\n textColorBase: text1,\n textColor1: text1,\n textColor2: text2,\n textColor3: text3,\n placeholderColor: text3,\n textColorDisabled: text4,\n\n borderColor: border,\n dividerColor: separator,\n // 两者同色会让禁用框和可填框长一个样,操作员分不清哪里能输入,必须走不同令牌。\n // 这两个 common 变量流向 Input 与 InternalSelection,\n // 即 NInput / NInputNumber / NSelect / NDatePicker / NCascader 等全部输入类组件。\n inputColor: input,\n inputColorDisabled: inputDisabled,\n actionColor: fill,\n tableHeaderColor: 'transparent',\n hoverColor: hoverBg,\n pressedColor: pressedBg,\n closeColorHover: hoverBg,\n closeColorPressed: pressedBg,\n clearColor: text3,\n\n borderRadius: radius,\n borderRadiusSmall: v('--radius-sm'),\n fontFamily: v('--font'),\n fontFamilyMono: v('--font-mono'),\n fontWeightStrong: '600',\n fontSizeMini: '13px',\n fontSizeTiny: '14px',\n fontSizeSmall: '14px',\n fontSizeMedium: '15px',\n fontSizeLarge: '16px',\n fontSizeHuge: '17px',\n fontSize: '15px',\n heightMini: '20px',\n heightTiny: '22px',\n heightSmall: '24px',\n heightMedium: '30px',\n heightLarge: '42px',\n heightHuge: '46px',\n\n boxShadow1: shadow1,\n boxShadow2: shadow2,\n boxShadow3: shadow3,\n cubicBezierEaseInOut: 'cubic-bezier(.2, .8, .2, 1)',\n },\n Button: {\n fontWeight: '500',\n borderRadiusMedium: radius,\n borderRadiusSmall: '7px',\n borderRadiusLarge: '12px',\n fontSizeLarge: '15px',\n // 点击不出扩散波纹:那是 Ant 系的反馈,macOS 的按钮只有按下态的底色变化(colorPressed)。\n // 波纹是定时器切 class + 无 fill-mode 的 CSS 动画,时长归零即彻底不可见,不必逐类型清 rippleColor。\n rippleDuration: '0s',\n paddingMedium: '0 12px',\n paddingSmall: '0 10px',\n textColorPrimary: onAcc,\n textColorHoverPrimary: onAcc,\n textColorPressedPrimary: onAcc,\n textColorFocusPrimary: onAcc,\n textColorDisabledPrimary: onAcc,\n colorSecondary: fill,\n colorSecondaryHover: fillStrong,\n colorSecondaryPressed: pressedBg,\n // 没写 type 的默认款(库里的「搜索」「更多」)渲染成与 secondary 同款:中性灰底、无描边\n color: fill,\n colorHover: fillStrong,\n colorPressed: pressedBg,\n colorFocus: fill,\n border: '1px solid transparent',\n borderHover: '1px solid transparent',\n borderPressed: '1px solid transparent',\n borderFocus: `1px solid ${signal}`,\n // 文字 / 行内操作按钮(详情、编辑):浅色 / 深色统一用 linkFg\n textColorTextPrimary: linkFg,\n textColorTextHoverPrimary: linkFg,\n textColorTextPressedPrimary: linkFg,\n textColorTextFocusPrimary: linkFg,\n textColorGhostPrimary: linkFg,\n textColorGhostHoverPrimary: linkFg,\n textColorGhostPressedPrimary: linkFg,\n textColorGhostFocusPrimary: linkFg,\n colorQuaternaryHover: hoverBg,\n colorQuaternaryPressed: pressedBg,\n colorTertiaryHover: hoverBg,\n colorTertiaryPressed: pressedBg,\n },\n Input: {\n borderRadius: radius,\n color: input,\n colorDisabled: inputDisabled,\n colorFocus: input,\n border: `1px solid ${border}`,\n borderHover: `1px solid ${v('--input-border-hover')}`,\n borderFocus: `1px solid ${signal}`,\n boxShadowFocus: ring,\n heightLarge: '42px',\n fontSizeLarge: '15px',\n caretColor: signal,\n },\n Select: {\n peers: {\n InternalSelection: selection,\n InternalSelectMenu: {\n borderRadius: '12px',\n optionHeightMedium: '30px',\n color: elevated,\n optionCheckColor: signal,\n },\n },\n },\n TreeSelect: { peers: { InternalSelection: selection } },\n DatePicker: {\n peers: {\n Input: {\n borderRadius: radius,\n color: input,\n borderFocus: `1px solid ${signal}`,\n boxShadowFocus: ring,\n },\n },\n },\n InputNumber: {\n peers: { Input: { color: input, borderFocus: `1px solid ${signal}`, boxShadowFocus: ring } },\n },\n Card: {\n color: cardSolid,\n colorEmbedded: fill,\n borderColor: 'transparent',\n borderRadius: v('--radius-lg'),\n titleFontSizeMedium: '15px',\n titleFontSizeSmall: '15px',\n titleFontWeight: '600',\n paddingMedium: '12px 14px 14px',\n paddingSmall: '10px 12px',\n colorModal: elevated,\n actionColor: fill,\n },\n DataTable: {\n thColor: thBg,\n thColorHover: thBgHover,\n thColorSorting: thBgHover,\n // 内容层不透明:行底取实色卡片色(固定列 sticky 叠在别的列上不会透底),不加斑马纹(tdColorStriped 同色)\n tdColor: cardSolid,\n tdColorHover: tdBgHover,\n tdColorStriped: cardSolid,\n tdColorSorting: cardSolid,\n thTextColor: text2,\n thFontWeight: '600',\n thIconColor: text3,\n // 表格线(列竖线 / 外框 / 行线)的标准就是 --separator(亮色 0.16),不换更实的线色:见 DESIGN.md §5「表格线色」\n borderColor: separator,\n borderRadius: '10px',\n thPaddingMedium: '6px 12px',\n tdPaddingMedium: '4px 12px',\n fontSizeMedium: '15px',\n thPaddingSmall: '6px 10px',\n tdPaddingSmall: '4px 10px',\n fontSizeSmall: '14px',\n peers: { Checkbox: checkbox },\n },\n Menu: {\n borderRadius: radius,\n itemHeight: '34px',\n fontSize: '15px',\n itemColorHover: hoverBg,\n itemColorActive: rgba(signal, dark ? 0.16 : 0.09),\n itemColorActiveHover: rgba(signal, dark ? 0.2 : 0.12),\n itemColorActiveCollapsed: rgba(signal, dark ? 0.16 : 0.09),\n // 侧栏标签用主文字色(macOS 侧栏就是 label 主色,不是次级灰);选中 / 悬停靠底色区分\n itemTextColor: text1,\n itemTextColorHover: text1,\n // 侧栏图标与文字同色(每个状态都一致):平时主文字色,选中才跟随强调色;\n // 强调色只出现在选中项(行底色 + 加粗的图标文字),整条侧栏更安静\n itemIconColor: text1,\n itemIconColorHover: text1,\n itemIconColorCollapsed: text1,\n itemTextColorActive: activeFg,\n itemIconColorActive: activeFg,\n itemTextColorActiveHover: activeFg,\n itemIconColorActiveHover: activeFg,\n itemTextColorChildActive: text1,\n itemIconColorChildActive: text1,\n itemTextColorChildActiveHover: text1,\n itemIconColorChildActiveHover: text1,\n arrowColor: text3,\n arrowColorHover: text2,\n arrowColorActive: activeFg,\n arrowColorActiveHover: activeFg,\n arrowColorChildActive: text2,\n arrowColorChildActiveHover: text1,\n groupTextColor: text3,\n },\n Tabs: {\n colorSegment: segTrack,\n tabColorSegment: segThumb,\n tabBorderRadius: '8px',\n tabTextColorSegment: text2,\n tabTextColorActiveSegment: text1,\n tabTextColorHoverSegment: text1,\n tabFontWeightActive: '500',\n tabColor: 'transparent',\n tabBorderColor: 'transparent',\n tabTextColorCard: text3,\n tabTextColorActiveCard: activeFg,\n tabTextColorHoverCard: text1,\n tabTextColorActiveLine: text1,\n tabTextColorHoverLine: text1,\n barColor: acc,\n },\n Radio: {\n buttonBorderRadius: '8px',\n buttonColor: segTrack,\n buttonColorActive: segThumb,\n buttonBorderColor: 'transparent',\n buttonBorderColorActive: 'transparent',\n buttonBorderColorHover: 'transparent',\n buttonTextColor: text2,\n buttonTextColorActive: text1,\n buttonTextColorHover: text1,\n buttonBoxShadow: 'none',\n buttonBoxShadowHover: 'none',\n buttonBoxShadowFocus: ring,\n dotColorActive: acc,\n boxShadowActive: `inset 0 0 0 1px ${acc}`,\n boxShadowFocus: ring,\n },\n Checkbox: checkbox,\n Tree: {\n nodeBorderRadius: '8px',\n nodeColorHover: hoverBg,\n nodeColorActive: glassStrong,\n nodeHeight: '30px',\n peers: { Checkbox: checkbox },\n },\n Switch: {\n railColor: v('--switch-off'),\n railColorActive: acc,\n boxShadowFocus: ring,\n railHeightMedium: '24px',\n railWidthMedium: '42px',\n buttonHeightMedium: '20px',\n buttonWidthMedium: '20px',\n buttonWidthPressedMedium: '26px',\n },\n Tag: {\n heightTiny: '20px',\n heightSmall: '22px',\n heightMedium: '24px',\n fontSizeTiny: '13px',\n fontSizeSmall: '14px',\n fontSizeMedium: '15px',\n borderRadius: v('--radius-sm'),\n color: fill,\n textColor: text2,\n fontWeightStrong: '500',\n colorPrimary: glassStrong,\n textColorPrimary: text1,\n borderPrimary: `1px solid ${hairlineStrong}`,\n },\n List: { color: 'transparent', colorHover: hoverBg, borderColor: separator },\n Dialog: {\n borderRadius: v('--radius-xl'),\n color: elevated,\n padding: '24px 26px 22px',\n titleFontSize: '17px',\n titleFontWeight: '600',\n },\n Modal: { color: elevated, boxShadow: shadow3 },\n Drawer: {\n color: elevated,\n headerPadding: '18px 24px',\n bodyPadding: '20px 24px',\n footerPadding: '14px 24px',\n titleFontSize: '17px',\n titleFontWeight: '600',\n headerBorderBottom: `1px solid ${separator}`,\n footerBorderTop: `1px solid ${separator}`,\n },\n Popover: { color: elevated, borderRadius: v('--radius-lg'), boxShadow: shadow2 },\n Dropdown: {\n color: elevated,\n borderRadius: '12px',\n padding: '5px',\n optionHeightMedium: '30px',\n optionColorHover: hoverBg,\n dividerColor: separator,\n },\n // 提示气泡和下拉 / 弹层同一套浮层表面,随亮暗主题走(亮色近白底深字,暗色深蓝底亮字),不做亮暗都黑的特例。\n // 底色、字色、阴影成套给:Tooltip 底下是 Popover,Naive 合并时全局 `Popover` 覆盖(上面的 elevated 与大阴影)\n // 压过 Tooltip 自带的值,所以同一套要在 peers.Popover 里再写一遍(它在合并链最后,只对 Tooltip 生效)。\n // 阴影用描边 + 卡片级的轻阴影:气泡很小,弹层那种大范围投影会显得过重。\n Tooltip: {\n color: tooltipBg,\n textColor: text1,\n borderRadius: '8px',\n padding: '5px 9px',\n boxShadow: `0 0 0 1px ${hairlineStrong}, ${shadow1}`,\n peers: {\n Popover: {\n color: tooltipBg,\n textColor: text1,\n borderRadius: '8px',\n padding: '5px 9px',\n boxShadow: `0 0 0 1px ${hairlineStrong}, ${shadow1}`,\n },\n },\n },\n Message: { borderRadius: '12px', color: elevated, padding: '10px 16px', boxShadow: shadow2 },\n Notification: { borderRadius: '16px', color: elevated, boxShadow: shadow2 },\n Alert: {\n borderRadius: '10px',\n colorInfo: fill,\n borderInfo: `1px solid ${hairline}`,\n iconColorInfo: text2,\n titleTextColorInfo: text1,\n contentTextColorInfo: text2,\n },\n Pagination: {\n itemBorderRadius: '8px',\n itemColorActive: glassStrong,\n itemTextColorActive: text1,\n itemBorderActive: `1px solid ${hairlineStrong}`,\n itemColorActiveHover: glassStrong,\n },\n Statistic: {\n valueFontSize: '26px',\n valueFontWeight: '500',\n labelFontSize: '13px',\n labelTextColor: text2,\n },\n Descriptions: {\n thColor: fill,\n borderColor: separator,\n thTextColor: text3,\n tdColor: 'transparent',\n },\n Progress: { railColor: fill, fillColor: acc },\n Breadcrumb: { itemTextColor: text3, itemTextColorActive: text1, separatorColor: text4 },\n Slider: {\n fillColor: acc,\n fillColorHover: acc,\n railColor: fillStrong,\n railColorHover: fillStrong,\n dotBorderActive: `2px solid ${acc}`,\n },\n Steps: {\n indicatorColorProcess: acc,\n indicatorTextColorProcess: onAcc,\n indicatorBorderColorProcess: acc,\n indicatorColorFinish: 'transparent',\n indicatorBorderColorFinish: border,\n indicatorTextColorFinish: text2,\n splitorColorFinish: text3,\n splitorColorProcess: separator,\n splitorColorWait: separator,\n },\n Empty: { textColor: text3, iconColor: text4 },\n Divider: { color: separator },\n Timeline: { circleBorder: `2px solid ${border}`, titleFontWeight: '500', lineColor: separator },\n Badge: { color: v('--badge-bg') },\n Scrollbar: { color: fillStrong, colorHover: border },\n Code: { textColor: text1 },\n }\n}\n"],"names":["v","name","semantic","base","hover","mix","buildThemeOverrides","opts","dark","a","deriveAccentTokens","signal","acc","onAcc","pressed","activeFg","linkFg","ring","ok","warn","err","info","text1","text2","text3","text4","border","separator","hairline","hairlineStrong","tooltipBg","glassStrong","fill","fillStrong","hoverBg","pressedBg","input","inputDisabled","cardSolid","elevated","segTrack","segThumb","shadow1","shadow2","shadow3","thBg","thBgHover","tdBgHover","radius","selection","checkbox","rgba"],"mappings":"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"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -129,6 +129,8 @@ export interface ModuleRow {
|
|
|
129
129
|
sort: number;
|
|
130
130
|
enabled: boolean;
|
|
131
131
|
remark?: string | null;
|
|
132
|
+
/** 可转授:普通管理员能否单独授权本应用的菜单(内置 system 恒为 false)。 */
|
|
133
|
+
isDelegatable?: boolean | null;
|
|
132
134
|
createTime?: string;
|
|
133
135
|
}
|
|
134
136
|
/** 工作台首页统计(后端 DashboardSummaryOutput)。趋势三条数组等长(近 7 日,含今天,无登录的日子为 0)。 */
|
|
@@ -158,6 +160,93 @@ export interface ModuleInput {
|
|
|
158
160
|
sort: number;
|
|
159
161
|
enabled: boolean;
|
|
160
162
|
remark?: string | null;
|
|
163
|
+
/** 可转授:普通管理员能否单独授权本应用的菜单(内置 system 恒为 false)。 */
|
|
164
|
+
isDelegatable?: boolean | null;
|
|
165
|
+
}
|
|
166
|
+
/** 用户单独授权的效果(后端 UserMenuEffect)。 */
|
|
167
|
+
export declare enum UserMenuEffect {
|
|
168
|
+
Allow = 1,
|
|
169
|
+
Deny = 2
|
|
170
|
+
}
|
|
171
|
+
/** 单独授权的有效期状态(后端 UserMenuGrantStatus;作筛选条件时 Active 含 7 天内到期)。 */
|
|
172
|
+
export declare enum UserMenuGrantStatus {
|
|
173
|
+
Active = 1,
|
|
174
|
+
Expiring = 2,
|
|
175
|
+
Expired = 3
|
|
176
|
+
}
|
|
177
|
+
/** 一条单独授权记录(后端 UserMenuGrantItem)。时间是本地时间串 yyyy-MM-ddTHH:mm:ss。 */
|
|
178
|
+
export interface UserMenuGrantItem {
|
|
179
|
+
menuId: number;
|
|
180
|
+
effect: UserMenuEffect;
|
|
181
|
+
expireTime?: string | null;
|
|
182
|
+
remark?: string | null;
|
|
183
|
+
grantorId?: number | null;
|
|
184
|
+
grantorName?: string | null;
|
|
185
|
+
grantTime: string;
|
|
186
|
+
updaterId?: number | null;
|
|
187
|
+
updaterName?: string | null;
|
|
188
|
+
updateTime?: string | null;
|
|
189
|
+
}
|
|
190
|
+
/** 变更集里的一条新增或修改(后端 UserMenuGrantUpsert)。 */
|
|
191
|
+
export interface UserMenuGrantUpsert {
|
|
192
|
+
menuId: number;
|
|
193
|
+
effect: UserMenuEffect;
|
|
194
|
+
expireTime?: string | null;
|
|
195
|
+
remark?: string | null;
|
|
196
|
+
}
|
|
197
|
+
/** 被拒节点里仍然有效的权限码与携带它的有效节点(后端 UserMenuLeakedCode)。 */
|
|
198
|
+
export interface UserMenuLeakedCode {
|
|
199
|
+
code: string;
|
|
200
|
+
carrierMenuIds: number[];
|
|
201
|
+
}
|
|
202
|
+
/** 一个菜单节点对目标用户是否有效、为什么(后端 UserMenuEffectiveNode)。 */
|
|
203
|
+
export interface UserMenuEffectiveNode {
|
|
204
|
+
menuId: number;
|
|
205
|
+
moduleId?: number | null;
|
|
206
|
+
effective: boolean;
|
|
207
|
+
roles: string[];
|
|
208
|
+
grant?: UserMenuEffect | null;
|
|
209
|
+
expireTime?: string | null;
|
|
210
|
+
expired: boolean;
|
|
211
|
+
deniedByAncestor: boolean;
|
|
212
|
+
grantable: boolean;
|
|
213
|
+
leakedCodes: UserMenuLeakedCode[];
|
|
214
|
+
}
|
|
215
|
+
/** 授权弹窗的模块清单项(后端 UserMenuModuleItem)。 */
|
|
216
|
+
export interface UserMenuModuleItem {
|
|
217
|
+
id: number;
|
|
218
|
+
title: string;
|
|
219
|
+
delegatable: boolean;
|
|
220
|
+
}
|
|
221
|
+
/** 授权弹窗一次取齐的数据(后端 UserMenuEffectiveOutput)。readOnlyReason 是错误码。 */
|
|
222
|
+
export interface UserMenuEffective {
|
|
223
|
+
userId: number;
|
|
224
|
+
hasRoles: boolean;
|
|
225
|
+
targetEditable: boolean;
|
|
226
|
+
readOnlyReason?: number | null;
|
|
227
|
+
delegatedMaxDays?: number | null;
|
|
228
|
+
/** 委派授权的最晚到期日 yyyy-MM-dd(服务器本地日期 + 最长天数);不限时为空。日期选择器上限与保存前校验都按它算。 */
|
|
229
|
+
delegatedMaxDate?: string | null;
|
|
230
|
+
modules: UserMenuModuleItem[];
|
|
231
|
+
nodes: UserMenuEffectiveNode[];
|
|
232
|
+
}
|
|
233
|
+
/** 单独授权一览的一行(后端 UserMenuGrantPageItem)。 */
|
|
234
|
+
export interface UserMenuGrantPageItem {
|
|
235
|
+
id: number;
|
|
236
|
+
userId: number;
|
|
237
|
+
userAccount: string;
|
|
238
|
+
userName: string;
|
|
239
|
+
menuId: number;
|
|
240
|
+
menuTitle: string;
|
|
241
|
+
moduleId?: number | null;
|
|
242
|
+
moduleTitle?: string | null;
|
|
243
|
+
effect: UserMenuEffect;
|
|
244
|
+
expireTime?: string | null;
|
|
245
|
+
status: UserMenuGrantStatus;
|
|
246
|
+
grantorId?: number | null;
|
|
247
|
+
grantorName?: string | null;
|
|
248
|
+
grantTime: string;
|
|
249
|
+
remark?: string | null;
|
|
161
250
|
}
|
|
162
251
|
/** 系统配置行(后端 SysConfig;列表返回全字段,int64 收敛为 number)。 */
|
|
163
252
|
export interface SysConfig {
|
|
@@ -368,6 +457,8 @@ export interface SysRole {
|
|
|
368
457
|
enabled: boolean;
|
|
369
458
|
remark?: string | null;
|
|
370
459
|
isDelegatable?: boolean | null;
|
|
460
|
+
/** 内置角色(种子里固定 Id 1–999):只有它们能被授系统菜单。 */
|
|
461
|
+
isBuiltin?: boolean;
|
|
371
462
|
createTime?: string;
|
|
372
463
|
}
|
|
373
464
|
/** 角色新增/编辑入参(后端 RoleInput;增改同一份字段,code 编辑禁用)。 */
|
package/dist/types/api.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
var r = /* @__PURE__ */ ((l) => (l[l.All = 1] = "All", l[l.Org = 2] = "Org", l[l.OrgAndChildren = 3] = "OrgAndChildren", l[l.Self = 4] = "Self", l[l.Custom = 5] = "Custom", l))(
|
|
2
|
-
const
|
|
1
|
+
var r = /* @__PURE__ */ ((l) => (l[l.Allow = 1] = "Allow", l[l.Deny = 2] = "Deny", l))(r || {}), A = /* @__PURE__ */ ((l) => (l[l.Active = 1] = "Active", l[l.Expiring = 2] = "Expiring", l[l.Expired = 3] = "Expired", l))(A || {}), v = /* @__PURE__ */ ((l) => (l[l.All = 1] = "All", l[l.Org = 2] = "Org", l[l.OrgAndChildren = 3] = "OrgAndChildren", l[l.Self = 4] = "Self", l[l.Custom = 5] = "Custom", l))(v || {}), O = /* @__PURE__ */ ((l) => (l[l.Notice = 1] = "Notice", l[l.Announcement = 2] = "Announcement", l[l.Message = 3] = "Message", l))(O || {}), k = /* @__PURE__ */ ((l) => (l[l.All = 0] = "All", l[l.Role = 1] = "Role", l[l.User = 2] = "User", l))(k || {}), m = /* @__PURE__ */ ((l) => (l[l.Skip = 0] = "Skip", l[l.Overwrite = 1] = "Overwrite", l[l.Error = 2] = "Error", l))(m || {}), C = /* @__PURE__ */ ((l) => (l[l.Compiled = 1] = "Compiled", l[l.Http = 2] = "Http", l[l.Sql = 3] = "Sql", l))(C || {}), n = /* @__PURE__ */ ((l) => (l[l.Cron = 1] = "Cron", l[l.Interval = 2] = "Interval", l[l.OneShot = 3] = "OneShot", l))(n || {}), P = /* @__PURE__ */ ((l) => (l[l.Skip = 1] = "Skip", l[l.FireOnceNow = 2] = "FireOnceNow", l))(P || {}), h = /* @__PURE__ */ ((l) => (l[l.SerialSkip = 1] = "SerialSkip", l[l.Parallel = 2] = "Parallel", l))(h || {}), w = /* @__PURE__ */ ((l) => (l[l.Ready = 1] = "Ready", l[l.Paused = 2] = "Paused", l[l.Completed = 3] = "Completed", l[l.Panic = 4] = "Panic", l))(w || {}), E = /* @__PURE__ */ ((l) => (l[l.Running = 1] = "Running", l[l.Success = 2] = "Success", l[l.Failed = 3] = "Failed", l[l.Timeout = 4] = "Timeout", l[l.Cancelled = 5] = "Cancelled", l[l.Skipped = 6] = "Skipped", l))(E || {}), x = /* @__PURE__ */ ((l) => (l[l.Schedule = 1] = "Schedule", l[l.Manual = 2] = "Manual", l[l.Misfire = 3] = "Misfire", l[l.MissedSkipped = 4] = "MissedSkipped", l))(x || {});
|
|
2
|
+
const _ = { Reported: 1, Missing: 2 }, d = { Provider: 1, Model: 2, Scene: 3, User: 4 };
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
d as AI_USAGE_GROUP_BY,
|
|
5
|
+
_ as AI_USAGE_SOURCE,
|
|
6
|
+
v as DataScopeType,
|
|
7
|
+
m as DuplicateStrategy,
|
|
8
|
+
h as JobConcurrencyMode,
|
|
9
|
+
x as JobFireMode,
|
|
10
|
+
C as JobHandlerKind,
|
|
11
|
+
P as JobMisfireStrategy,
|
|
12
|
+
E as JobRunStatus,
|
|
13
|
+
w as JobStatus,
|
|
14
|
+
n as JobTriggerKind,
|
|
15
|
+
O as NoticeType,
|
|
16
|
+
k as ReceiverType,
|
|
17
|
+
r as UserMenuEffect,
|
|
18
|
+
A as UserMenuGrantStatus
|
|
17
19
|
};
|
|
18
20
|
//# sourceMappingURL=api.js.map
|