@pubinfo/module-rbac 2.0.12 → 2.0.14

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 (97) hide show
  1. package/dist/{DynamicRoutesForm-DzOGoyf3.js → DynamicRoutesForm-BU4EAISs.js} +1 -1
  2. package/dist/{DynamicRoutesForm.vue_vue_type_script_setup_true_lang-lpCaLpPL.js → DynamicRoutesForm.vue_vue_type_script_setup_true_lang-bEqJ03T_.js} +6 -6
  3. package/dist/{IconSelect-CkqLR5Dg.js → IconSelect-DtNpk3Rj.js} +1 -1
  4. package/dist/IconSelect.css +1 -1
  5. package/dist/IconSelect.vue_vue_type_script_setup_true_lang-D450SiKg.js +757 -0
  6. package/dist/{ImportExport-BD8o7IvB.js → ImportExport-DAe_Sl13.js} +1 -1
  7. package/dist/{ImportExport.vue_vue_type_script_setup_true_lang-BzdP0ADd.js → ImportExport.vue_vue_type_script_setup_true_lang-CV0DrMvw.js} +1 -1
  8. package/dist/LayoutForm-C-vNwp3q.js +173 -0
  9. package/dist/LayoutForm.css +1 -0
  10. package/dist/{MetaForm-DtlyvzoM.js → MetaForm-13JASu7v.js} +142 -105
  11. package/dist/MetaForm.css +1 -1
  12. package/dist/{ResourceEdit-WpEdbzaw.js → ResourceEdit-D2YFu-Gk.js} +1 -1
  13. package/dist/ResourceEdit.vue_vue_type_script_setup_true_lang-Cb0mKIlJ.js +429 -0
  14. package/dist/{ResourceRelation-DGiGYy6V.js → ResourceRelation-CeM9Eq39.js} +10 -11
  15. package/dist/{ResourceRelation-26FnHEfU.js → ResourceRelation-qhIdXLAy.js} +12 -13
  16. package/dist/{TenantEdit-B24X5nND.js → TenantEdit-C61O1pSu.js} +1 -1
  17. package/dist/{TenantEdit.vue_vue_type_script_setup_true_lang-Bu5HcJJv.js → TenantEdit.vue_vue_type_script_setup_true_lang-BwsA9hth.js} +39 -40
  18. package/dist/{UserAuthorization-Co6JV0py.js → UserAuthorization-rqttVub5.js} +9 -10
  19. package/dist/components/OrgUserSelector/OrgSelector.vue.d.ts +1 -1
  20. package/dist/components/OrgUserSelector/UserSelector.vue.d.ts +1 -1
  21. package/dist/components/ResourceIcones/BoxColorPicker.vue.d.ts +3 -0
  22. package/dist/components/ResourceIcones/Select.vue.d.ts +3 -0
  23. package/dist/{createAndEditDataPermission-BhOLGGna.js → createAndEditDataPermission-DPeFulie.js} +1 -1
  24. package/dist/{createAndEditDataPermission.vue_vue_type_script_setup_true_lang-D5wInKwO.js → createAndEditDataPermission.vue_vue_type_script_setup_true_lang-DlUIYtif.js} +98 -101
  25. package/dist/{drawerRole-DHLv47_z.js → drawerRole-CXGVqxPX.js} +1 -1
  26. package/dist/{drawerRole-DUWRM43j.js → drawerRole-CfJjf3v_.js} +1 -1
  27. package/dist/{drawerRole.vue_vue_type_script_setup_true_lang-BET5ukoo.js → drawerRole.vue_vue_type_script_setup_true_lang-B-VZS3gq.js} +42 -43
  28. package/dist/{drawerRole.vue_vue_type_script_setup_true_lang-BK3zjhop.js → drawerRole.vue_vue_type_script_setup_true_lang-B1eT0e_Q.js} +1 -1
  29. package/dist/{enum-CjyX3J0o.js → enum-D5iPiZiT.js} +0 -1
  30. package/dist/{index-Csfu3kAr.js → index-B5aP0re3.js} +6 -7
  31. package/dist/{index-DwpOyfRe.js → index-BEB4liGe.js} +8 -9
  32. package/dist/{index-DfuGXjYh.js → index-BNwGLzXe.js} +21 -22
  33. package/dist/{index-DdoOaWs-.js → index-BPkJOFXE.js} +3 -3
  34. package/dist/{index-ioZh8Qom.js → index-BXvJhqJD.js} +6 -7
  35. package/dist/{index-BFx8F5lO.js → index-C2G4xRrJ.js} +8 -9
  36. package/dist/{index-x9Iim2eD.js → index-C5WD-YUu.js} +7 -8
  37. package/dist/{index-rNYtJ7Om.js → index-CbVJdR5M.js} +6 -7
  38. package/dist/{index-DECno0gv.js → index-ChWnVs6j.js} +2 -2
  39. package/dist/{index-C9hHp4Iw.js → index-CoZM8pyH.js} +1 -1
  40. package/dist/{index-B2tTTlBE.js → index-Copy5kiW.js} +276 -273
  41. package/dist/index-D3Xw_aOi.js +144 -0
  42. package/dist/{index-CCw3ZJgQ.js → index-DHVEXch0.js} +8 -9
  43. package/dist/{index-COWUocfL.js → index-Dl0hWfIE.js} +7 -8
  44. package/dist/{index-BIpmC999.js → index-En8oOf9e.js} +8 -9
  45. package/dist/{index-ZQuRR9fG.js → index-VZuizuKs.js} +1 -1
  46. package/dist/{index-BwWrE3dY.js → index-XhYtVVT9.js} +6 -7
  47. package/dist/{index-BUmMaC21.js → index-nAPHtTM7.js} +5 -6
  48. package/dist/{index-y9CQTo95.js → index-qn7U9T51.js} +9 -10
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.js +2578 -2303
  51. package/dist/index10.css +1 -1
  52. package/dist/index11.css +1 -1
  53. package/dist/index12.css +1 -1
  54. package/dist/index13.css +1 -1
  55. package/dist/index14.css +1 -1
  56. package/dist/index15.css +1 -1
  57. package/dist/index16.css +1 -1
  58. package/dist/index17.css +1 -1
  59. package/dist/index4.css +1 -1
  60. package/dist/index5.css +1 -1
  61. package/dist/index6.css +1 -1
  62. package/dist/index7.css +1 -1
  63. package/dist/index8.css +1 -1
  64. package/dist/index9.css +1 -1
  65. package/dist/{loginHistoryDetail-B6eI-TmJ.js → loginHistoryDetail-BZVwG8m2.js} +1 -1
  66. package/dist/{login_history-B4Q1NCJn.js → login_history-CMZGS2PN.js} +5 -6
  67. package/dist/{operateHistoryDetail-CLZ9lyua.js → operateHistoryDetail-Badx3zl-.js} +1 -1
  68. package/dist/{operate_history-KASZ7_JO.js → operate_history-B42WNY1u.js} +5 -6
  69. package/dist/{setItem-BwMHXOUm.js → setItem-Blb3dox4.js} +1 -1
  70. package/dist/{useAppAndResource-38HCqYKa.js → useAppAndResource-DDywX2iz.js} +11 -12
  71. package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +3 -3
  72. package/dist/views/data-permission/index.vue.d.ts +3 -3
  73. package/dist/views/resource/components/LayoutForm.vue.d.ts +10 -0
  74. package/dist/views/resource/hooks/useLayoutForm.d.ts +12 -0
  75. package/dist/views/resource/model.d.ts +13 -0
  76. package/package.json +7 -7
  77. package/src/components/ResourceIcones/BoxColorPicker.vue +64 -8
  78. package/src/components/ResourceIcones/Select.vue +13 -5
  79. package/src/index.ts +1 -0
  80. package/src/views/organization/index.vue +17 -10
  81. package/src/views/resource/components/DynamicRoutesForm.vue +1 -1
  82. package/src/views/resource/components/IconSelect.vue +7 -3
  83. package/src/views/resource/components/LayoutForm.vue +92 -0
  84. package/src/views/resource/components/MetaForm.vue +11 -0
  85. package/src/views/resource/components/ResourceEdit.vue +26 -8
  86. package/src/views/resource/enum.ts +0 -1
  87. package/src/views/resource/hooks/useLayoutForm.ts +57 -0
  88. package/src/views/resource/hooks/useMetaForm.ts +4 -0
  89. package/src/views/resource/index.vue +0 -3
  90. package/src/views/resource/model.ts +23 -1
  91. package/dist/IconSelect.vue_vue_type_script_setup_true_lang-BoGxAoNd.js +0 -703
  92. package/dist/ResourceEdit.vue_vue_type_script_setup_true_lang-id6jZAko.js +0 -392
  93. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  94. package/dist/enum-CTUzwCYG.js +0 -4
  95. package/dist/index-53oBz1jp.js +0 -299
  96. package/dist/index-DVt5k9xh.js +0 -145
  97. package/dist/index18.css +0 -1
@@ -0,0 +1,757 @@
1
+ import { Input as ue, InputNumber as _e, Tooltip as he, FormItemRest as we, Modal as Ce, Pagination as ze, Empty as Ie, RadioGroup as Se, RadioButton as Re, Button as $e, FormItem as Me } from "ant-design-vue/es";
2
+ import { defineComponent as ne, ref as b, watch as R, createElementBlock as C, openBlock as x, createElementVNode as l, createVNode as u, withCtx as v, normalizeStyle as le, normalizeClass as W, useModel as U, computed as z, Fragment as X, renderSlot as Pe, unref as a, createCommentVNode as q, renderList as re, toDisplayString as H, createBlock as T, createTextVNode as J, reactive as je } from "vue";
3
+ import { getAllIconModules as Ee, PubinfoIcon as h, RESOURCE_TYPE as L } from "pubinfo";
4
+ import * as Ne from "@ant-design/icons-vue";
5
+ import { Empty as Ue } from "ant-design-vue";
6
+ import { _ as Fe } from "./index.js";
7
+ import "./enum-D5iPiZiT.js";
8
+ import './IconSelect.css';const Oe = { class: "flex flex-col gap-3 w-full select-none" }, Ae = { class: "flex items-center gap-3" }, Te = { class: "relative inline-flex items-center" }, Ve = ["disabled"], Be = ["value", "disabled"], De = { class: "flex items-center gap-3" }, Le = { class: "relative inline-flex items-center" }, We = ["disabled"], qe = ["value", "disabled"], Ge = { class: "flex items-center gap-3" }, Ye = { class: "flex items-center gap-3" }, Ke = { class: "flex items-center gap-3" }, Xe = /* @__PURE__ */ ne({
9
+ name: "ResourceIconesBoxColorPicker",
10
+ __name: "BoxColorPicker",
11
+ props: {
12
+ angle: {},
13
+ background: {},
14
+ radius: {},
15
+ iconSize: {},
16
+ disabled: { type: Boolean }
17
+ },
18
+ emits: ["update:angle", "update:background", "update:radius", "update:iconSize"],
19
+ setup(I, { emit: p }) {
20
+ const c = I, k = p;
21
+ function d(e) {
22
+ if (typeof e == "number" && Number.isFinite(e))
23
+ return (e % 360 + 360) % 360;
24
+ if (typeof e == "string") {
25
+ const o = Number.parseFloat(e);
26
+ if (Number.isFinite(o))
27
+ return (o % 360 + 360) % 360;
28
+ }
29
+ return 65;
30
+ }
31
+ function M(e) {
32
+ return e ? typeof e == "string" ? { from: e, to: e } : { from: e.from, to: e.to } : { from: "#65E54A", to: "#35C724" };
33
+ }
34
+ function P(e) {
35
+ if (typeof e == "string" && e.trim().endsWith("%")) {
36
+ const o = Number.parseFloat(e);
37
+ if (Number.isFinite(o))
38
+ return f(o);
39
+ }
40
+ if (typeof e == "number" && Number.isFinite(e))
41
+ return f(e);
42
+ if (typeof e == "string") {
43
+ const o = Number.parseFloat(e);
44
+ if (Number.isFinite(o))
45
+ return f(o);
46
+ }
47
+ return 50;
48
+ }
49
+ function j(e) {
50
+ if (typeof e == "string" && e.trim().endsWith("%")) {
51
+ const o = Number.parseFloat(e);
52
+ if (Number.isFinite(o))
53
+ return s(o);
54
+ }
55
+ if (typeof e == "number" && Number.isFinite(e))
56
+ return s(e);
57
+ if (typeof e == "string") {
58
+ const o = Number.parseFloat(e);
59
+ if (Number.isFinite(o))
60
+ return s(o);
61
+ }
62
+ return 50;
63
+ }
64
+ function f(e) {
65
+ return Math.min(50, Math.max(0, e));
66
+ }
67
+ function s(e) {
68
+ return Math.min(100, Math.max(0, e));
69
+ }
70
+ const _ = M(c.background), i = b(_.from), y = b(_.to), S = b(d(c.angle)), g = b(P(c.radius)), E = b(j(c.iconSize)), N = b(null), V = b(null);
71
+ function G() {
72
+ if (c.disabled)
73
+ return;
74
+ const e = N.value;
75
+ e && (e.style.width = "16px", e.style.height = "16px", e.click());
76
+ }
77
+ function Z() {
78
+ if (c.disabled)
79
+ return;
80
+ const e = V.value;
81
+ e && (e.style.width = "16px", e.style.height = "16px", e.click());
82
+ }
83
+ return R([i, y, S, g], () => {
84
+ k("update:background", { from: i.value, to: y.value }), k("update:angle", S.value), k("update:radius", `${g.value}%`);
85
+ }, { immediate: !0 }), R(E, () => {
86
+ k("update:iconSize", `${E.value}%`);
87
+ }, { immediate: !0 }), R(() => c.background, (e) => {
88
+ if (e == null)
89
+ return;
90
+ const o = M(e);
91
+ i.value = o.from, y.value = o.to;
92
+ }), R(() => c.angle, (e) => {
93
+ e != null && (S.value = d(e));
94
+ }), R(() => c.radius, (e) => {
95
+ e != null && (g.value = P(e));
96
+ }), R(() => c.iconSize, (e) => {
97
+ e != null && (E.value = j(e));
98
+ }), (e, o) => {
99
+ const Y = ue, B = _e;
100
+ return x(), C("div", Oe, [
101
+ l("div", Ae, [
102
+ o[7] || (o[7] = l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "起始色", -1)),
103
+ u(Y, {
104
+ value: i.value,
105
+ "onUpdate:value": o[1] || (o[1] = (m) => i.value = m),
106
+ disabled: c.disabled,
107
+ placeholder: "#65E54A",
108
+ size: "small",
109
+ class: "flex-1 min-w-0"
110
+ }, {
111
+ prefix: v(() => [
112
+ l("div", Te, [
113
+ l("button", {
114
+ type: "button",
115
+ disabled: c.disabled,
116
+ class: W(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", c.disabled ? "opacity-50 cursor-not-allowed" : ""]),
117
+ style: le({ background: i.value }),
118
+ onClick: G
119
+ }, null, 14, Ve),
120
+ l("input", {
121
+ ref_key: "fromColorPickerRef",
122
+ ref: N,
123
+ type: "color",
124
+ value: i.value,
125
+ disabled: c.disabled,
126
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
127
+ style: { width: "16px", height: "16px" },
128
+ onInput: o[0] || (o[0] = (m) => i.value = m.target.value)
129
+ }, null, 40, Be)
130
+ ])
131
+ ]),
132
+ _: 1
133
+ }, 8, ["value", "disabled"])
134
+ ]),
135
+ l("div", De, [
136
+ o[8] || (o[8] = l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "结束色", -1)),
137
+ u(Y, {
138
+ value: y.value,
139
+ "onUpdate:value": o[3] || (o[3] = (m) => y.value = m),
140
+ disabled: c.disabled,
141
+ placeholder: "#35C724",
142
+ size: "small",
143
+ class: "flex-1 min-w-0"
144
+ }, {
145
+ prefix: v(() => [
146
+ l("div", Le, [
147
+ l("button", {
148
+ type: "button",
149
+ disabled: c.disabled,
150
+ class: W(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", c.disabled ? "opacity-50 cursor-not-allowed" : ""]),
151
+ style: le({ background: y.value }),
152
+ onClick: Z
153
+ }, null, 14, We),
154
+ l("input", {
155
+ ref_key: "toColorPickerRef",
156
+ ref: V,
157
+ type: "color",
158
+ value: y.value,
159
+ disabled: c.disabled,
160
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
161
+ style: { width: "16px", height: "16px" },
162
+ onInput: o[2] || (o[2] = (m) => y.value = m.target.value)
163
+ }, null, 40, qe)
164
+ ])
165
+ ]),
166
+ _: 1
167
+ }, 8, ["value", "disabled"])
168
+ ]),
169
+ l("div", Ge, [
170
+ o[9] || (o[9] = l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "角度", -1)),
171
+ u(B, {
172
+ value: S.value,
173
+ "onUpdate:value": o[4] || (o[4] = (m) => S.value = m),
174
+ disabled: c.disabled,
175
+ min: 0,
176
+ max: 360,
177
+ step: 1,
178
+ size: "small",
179
+ class: "w-28"
180
+ }, null, 8, ["value", "disabled"]),
181
+ o[10] || (o[10] = l("span", { class: "text-12px opacity-70" }, "deg", -1))
182
+ ]),
183
+ l("div", Ye, [
184
+ o[11] || (o[11] = l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "圆角", -1)),
185
+ u(B, {
186
+ value: g.value,
187
+ "onUpdate:value": o[5] || (o[5] = (m) => g.value = m),
188
+ disabled: c.disabled,
189
+ min: 0,
190
+ max: 50,
191
+ step: 1,
192
+ size: "small",
193
+ class: "w-28"
194
+ }, null, 8, ["value", "disabled"]),
195
+ o[12] || (o[12] = l("span", { class: "text-12px opacity-70" }, "%", -1))
196
+ ]),
197
+ l("div", Ke, [
198
+ o[13] || (o[13] = l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "图标大小", -1)),
199
+ u(B, {
200
+ value: E.value,
201
+ "onUpdate:value": o[6] || (o[6] = (m) => E.value = m),
202
+ disabled: c.disabled,
203
+ min: 0,
204
+ max: 100,
205
+ step: 1,
206
+ size: "small",
207
+ class: "w-28"
208
+ }, null, 8, ["value", "disabled"]),
209
+ o[14] || (o[14] = l("span", { class: "text-12px opacity-70" }, "%", -1))
210
+ ])
211
+ ]);
212
+ };
213
+ }
214
+ }), He = { class: "flex gap-4 min-h-[600px]" }, Je = { class: "w-58 flex flex-col border-r border-[#e5e7eb] dark:border-[#30363d] pr-3" }, Qe = { class: "mb-3" }, Ze = { class: "flex-1 overflow-auto space-y-1 pr-1" }, et = ["onClick"], tt = { class: "truncate max-w-[120px]" }, ot = { class: "ml-2 inline-block min-w-6 text-center text-11px rounded bg-[#eef1f5] dark:bg-[#2d3339] px-1 text-[#5d6671] dark:text-[#9aa3ad]" }, lt = { class: "flex-1 flex flex-col min-w-0" }, nt = { class: "grid grid-cols-6 gap-3 auto-rows-[96px] overflow-auto flex-1 p-1" }, at = { class: "text-12px leading-tight space-y-1" }, st = { class: "font-medium" }, it = {
215
+ key: 0,
216
+ class: "opacity-70"
217
+ }, rt = ["onClick"], ut = { class: "mt-4 flex justify-center select-none" }, dt = {
218
+ key: 1,
219
+ class: "flex-1 flex items-center justify-center"
220
+ }, ct = {
221
+ key: 0,
222
+ class: "relative w-60 flex flex-col border-l border-[#e5e7eb] dark:border-[#30363d] pl-4 min-h-0"
223
+ }, ft = { class: "flex flex-col flex-1 w-full rounded-md border border-dashed border-[#d0d7de] dark:border-[#30363d] text-12px text-[#6b7280] dark:text-[#94a3b8] p-3 overflow-hidden" }, pt = { class: "shrink-0 flex justify-center items-center pb-4 border-b border-b-dashed border-b-[#d0d7de] dark:border-b-[#30363d]" }, vt = { class: "w-8 h-8 flex justify-center items-center" }, mt = { class: "w-8 h-8 flex justify-center items-center" }, bt = { class: "w-8 h-8 flex justify-center items-center" }, xt = { class: "flex-1 w-full mt-3 px-2 overflow-auto space-y-3" }, gt = { class: "flex flex-col justify-start w-full opacity-100" }, yt = { class: "flex items-center gap-3 mb-0! w-full flex-col" }, kt = { class: "flex" }, _t = { class: "text-12px opacity-70 w-14 shrink-0 flex items-center" }, ht = { class: "flex flex-col" }, wt = { class: "relative inline-flex items-center" }, Ct = ["disabled"], zt = ["value", "disabled"], It = { class: "w-full mt-auto flex aspect-square" }, St = { class: "flex-1 w-full h-full py-4 rounded-md border-t border-t-dashed border-t-[#d0d7de] dark:border-t-[#30363d] flex flex-col items-center gap-2" }, Rt = {
224
+ key: 0,
225
+ class: "w-full h-full flex items-center justify-center"
226
+ }, $t = { class: "mt-4 flex justify-end gap-2" }, Q = 30, oe = 24, Mt = 4, Pt = /* @__PURE__ */ ne({
227
+ name: "ResourceIconesSelect",
228
+ __name: "Select",
229
+ props: {
230
+ modelValue: {},
231
+ modelModifiers: {},
232
+ boxType: { default: "null" },
233
+ boxTypeModifiers: {},
234
+ angle: { default: 65 },
235
+ angleModifiers: {},
236
+ background: { default: { from: "#65E54A", to: "#35C724" } },
237
+ backgroundModifiers: {},
238
+ radius: { default: "50%" },
239
+ radiusModifiers: {},
240
+ iconColor: { default: "" },
241
+ iconColorModifiers: {},
242
+ iconSize: { default: "50%" },
243
+ iconSizeModifiers: {}
244
+ },
245
+ emits: ["update:modelValue", "update:boxType", "update:angle", "update:background", "update:radius", "update:iconColor", "update:iconSize"],
246
+ setup(I) {
247
+ const p = U(I, "modelValue"), c = U(I, "boxType"), k = U(I, "angle"), d = U(I, "background"), M = U(I, "radius"), P = U(I, "iconColor"), j = U(I, "iconSize"), f = b(p.value), s = b(c.value || "null"), _ = b(k.value ?? 65), i = b(d.value ?? { from: "#65E54A", to: "#35C724" }), y = b(M.value ?? "50%"), S = b(j.value ?? "50%"), g = b(P.value ?? ""), E = b(null), N = b(!1);
248
+ function V() {
249
+ f.value = p.value, s.value = c.value || "null", _.value = k.value ?? 65;
250
+ const t = d.value;
251
+ i.value = typeof t == "string" ? t : t ? { ...t } : { from: "#65E54A", to: "#35C724" }, y.value = M.value ?? "50%", S.value = j.value ?? "50%", g.value = P.value ?? "", N.value = !0;
252
+ }
253
+ function G() {
254
+ N.value = !1;
255
+ }
256
+ function Z() {
257
+ p.value = f.value, c.value = s.value, k.value = _.value;
258
+ const t = i.value;
259
+ d.value = typeof t == "string" ? t : t && { ...t }, M.value = y.value, j.value = S.value, P.value = g.value, N.value = !1;
260
+ }
261
+ function e(t) {
262
+ return (t.split(/[\\/]/).pop() || t).replace(/\.(svg|png|jpe?g)$/i, "");
263
+ }
264
+ const o = z(() => {
265
+ const t = /* @__PURE__ */ new Map(), n = Ee();
266
+ for (const [$, w] of n.entries()) {
267
+ const ee = Object.keys(w).map(e).sort();
268
+ t.set($, ee);
269
+ }
270
+ return t;
271
+ }), Y = z(
272
+ () => Object.keys(Ne).filter((t) => /(?:Outlined|Filled|TwoTone)$/.test(t)).map((t) => `antd:${t}`).sort()
273
+ ), B = z(() => {
274
+ const t = Array.from(o.value.keys()), n = t.includes("local"), $ = t.filter((w) => w !== "local").sort();
275
+ return [
276
+ { label: "全部", value: "all" },
277
+ ...n ? [{ label: "本地", value: "local" }] : [],
278
+ ...$.map((w) => ({ label: w, value: w })),
279
+ { label: "Ant Design", value: "antd" }
280
+ ];
281
+ }), m = b("all"), K = b(""), F = z(() => {
282
+ const t = [];
283
+ for (const [n, $] of o.value.entries())
284
+ $.forEach((w) => {
285
+ n === "local" ? t.push({ name: w, module: n }) : t.push({ name: `${n}-[${w}]`, module: n });
286
+ });
287
+ return Y.value.forEach((n) => t.push({ name: n, module: "antd" })), t;
288
+ }), ae = z(() => m.value === "all" ? F.value : m.value === "antd" ? F.value.filter((t) => t.module === "antd") : F.value.filter((t) => t.module === m.value)), D = z(() => {
289
+ const t = K.value.trim().toLowerCase();
290
+ return t ? ae.value.filter((n) => n.name.toLowerCase().includes(t)) : ae.value;
291
+ });
292
+ function de(t) {
293
+ return t === "all" ? F.value.length : t === "antd" ? F.value.filter((n) => n.module === "antd").length : F.value.filter((n) => n.module === t).length;
294
+ }
295
+ const O = b(1), se = z(() => Math.max(1, Math.ceil(D.value.length / Q))), ce = z(() => {
296
+ const t = (O.value - 1) * Q;
297
+ return D.value.slice(t, t + Q);
298
+ });
299
+ R([K, m], () => {
300
+ O.value = 1;
301
+ }), R(D, () => {
302
+ O.value > se.value && (O.value = se.value);
303
+ });
304
+ function fe(t) {
305
+ O.value = t;
306
+ }
307
+ function pe(t) {
308
+ f.value = t.name;
309
+ }
310
+ const ve = Ue.PRESENTED_IMAGE_SIMPLE;
311
+ function me() {
312
+ if (!(f.value || "").startsWith("antd:"))
313
+ return;
314
+ const t = E.value;
315
+ t && (t.style.width = "16px", t.style.height = "16px", t.click());
316
+ }
317
+ const A = z(() => (f.value || "").startsWith("antd:"));
318
+ return R(s, (t, n) => {
319
+ n === "null" && t !== "null" && !g.value && (g.value = "#ffffff");
320
+ }), (t, n) => {
321
+ const $ = he, w = ue, ee = ze, be = Ie, te = Re, xe = Se, ie = $e, ge = Ce, ye = we;
322
+ return x(), C(X, null, [
323
+ Pe(t.$slots, "default", { open: V }, () => [
324
+ u(w, {
325
+ value: p.value,
326
+ readonly: "",
327
+ onClick: V
328
+ }, {
329
+ addonAfter: v(() => [
330
+ u($, null, {
331
+ title: v(() => [
332
+ u(a(h), {
333
+ name: p.value || "",
334
+ size: "40px",
335
+ class: "cursor-default"
336
+ }, null, 8, ["name"])
337
+ ]),
338
+ default: v(() => [
339
+ u(a(h), {
340
+ name: p.value || "",
341
+ size: "20px",
342
+ class: "cursor-default"
343
+ }, null, 8, ["name"])
344
+ ]),
345
+ _: 1
346
+ })
347
+ ]),
348
+ _: 1
349
+ }, 8, ["value"])
350
+ ], !0),
351
+ u(ye, null, {
352
+ default: v(() => [
353
+ u(ge, {
354
+ open: N.value,
355
+ "onUpdate:open": n[8] || (n[8] = (r) => N.value = r),
356
+ title: "选择图标",
357
+ width: "1200px",
358
+ footer: null,
359
+ "destroy-on-close": "",
360
+ onCancel: G
361
+ }, {
362
+ default: v(() => [
363
+ l("div", He, [
364
+ l("div", Je, [
365
+ l("div", Qe, [
366
+ u(w, {
367
+ value: K.value,
368
+ "onUpdate:value": n[0] || (n[0] = (r) => K.value = r),
369
+ "allow-clear": "",
370
+ bordered: !0,
371
+ placeholder: "搜索图标",
372
+ class: "h-9 text-13px"
373
+ }, {
374
+ prefix: v(() => [
375
+ u(a(h), {
376
+ name: "i-carbon-search",
377
+ size: "16",
378
+ class: "text-[#7a869a]"
379
+ })
380
+ ]),
381
+ _: 1
382
+ }, 8, ["value"])
383
+ ]),
384
+ l("div", Ze, [
385
+ (x(!0), C(X, null, re(B.value, (r) => (x(), C("div", {
386
+ key: r.value,
387
+ class: W(["flex items-center justify-between px-3 py-2 rounded-md cursor-pointer text-13px border border-transparent hover:bg-[#f3f6fa] dark:hover:bg-[#262c33] transition", m.value === r.value ? "bg-[#eef5ff] dark:bg-[#1e2a33] border-[#1677ff] text-[#1677ff] font-medium" : "text-[#4b5563]"]),
388
+ onClick: (ke) => m.value = r.value
389
+ }, [
390
+ l("span", tt, H(r.label), 1),
391
+ l("span", ot, H(de(r.value)), 1)
392
+ ], 10, et))), 128))
393
+ ])
394
+ ]),
395
+ l("div", lt, [
396
+ D.value.length ? (x(), C(X, { key: 0 }, [
397
+ l("div", nt, [
398
+ (x(!0), C(X, null, re(ce.value, (r) => (x(), T($, {
399
+ key: `${r.module || ""}:${r.name}`,
400
+ "mouse-enter-delay": 0.35
401
+ }, {
402
+ title: v(() => [
403
+ l("div", at, [
404
+ l("div", st, H(r.name), 1),
405
+ r.module ? (x(), C("div", it, " 模块: " + H(r.module), 1)) : q("", !0)
406
+ ])
407
+ ]),
408
+ default: v(() => [
409
+ l("div", {
410
+ class: W(["group relative flex flex-col items-center justify-center cursor-pointer rounded-md border", f.value === r.name ? "border-solid border-[#1677ff]" : "border-dashed border-[#e5e7eb] dark:border-[#30363d]"]),
411
+ onClick: (ke) => pe(r)
412
+ }, [
413
+ u(a(h), {
414
+ name: r.name,
415
+ size: "30px"
416
+ }, null, 8, ["name"])
417
+ ], 10, rt)
418
+ ]),
419
+ _: 2
420
+ }, 1024))), 128))
421
+ ]),
422
+ l("div", ut, [
423
+ u(ee, {
424
+ current: O.value,
425
+ "page-size": Q,
426
+ total: D.value.length,
427
+ "show-size-changer": !1,
428
+ "show-quick-jumper": "",
429
+ onChange: fe
430
+ }, null, 8, ["current", "total"])
431
+ ])
432
+ ], 64)) : (x(), C("div", dt, [
433
+ u(be, {
434
+ image: a(ve),
435
+ description: "没有匹配的图标"
436
+ }, null, 8, ["image"])
437
+ ]))
438
+ ]),
439
+ f.value ? (x(), C("div", ct, [
440
+ l("div", ft, [
441
+ l("div", pt, [
442
+ u(xe, {
443
+ value: s.value,
444
+ "onUpdate:value": n[1] || (n[1] = (r) => s.value = r),
445
+ class: "flex justify-center items-center"
446
+ }, {
447
+ default: v(() => [
448
+ u(te, { value: "null" }, {
449
+ default: v(() => [
450
+ l("div", vt, [
451
+ u(a(h), {
452
+ name: f.value,
453
+ size: oe - Mt * 2
454
+ }, null, 8, ["name", "size"])
455
+ ])
456
+ ]),
457
+ _: 1
458
+ }),
459
+ u(te, { value: "square" }, {
460
+ default: v(() => [
461
+ l("div", mt, [
462
+ u(a(h), {
463
+ name: f.value,
464
+ box: "square",
465
+ size: oe,
466
+ radius: "25%",
467
+ color: "#ffffff"
468
+ }, null, 8, ["name"])
469
+ ])
470
+ ]),
471
+ _: 1
472
+ }),
473
+ u(te, { value: "prism" }, {
474
+ default: v(() => [
475
+ l("div", bt, [
476
+ u(a(h), {
477
+ name: f.value,
478
+ box: "prism",
479
+ size: oe,
480
+ color: "#ffffff",
481
+ radius: "2%"
482
+ }, null, 8, ["name"])
483
+ ])
484
+ ]),
485
+ _: 1
486
+ })
487
+ ]),
488
+ _: 1
489
+ }, 8, ["value"])
490
+ ]),
491
+ l("div", xt, [
492
+ l("div", gt, [
493
+ n[9] || (n[9] = l("div", { class: "text-12px mb-2 opacity-70" }, " 背景设置 ", -1)),
494
+ u(Xe, {
495
+ angle: _.value,
496
+ "onUpdate:angle": n[2] || (n[2] = (r) => _.value = r),
497
+ background: i.value,
498
+ "onUpdate:background": n[3] || (n[3] = (r) => i.value = r),
499
+ radius: y.value,
500
+ "onUpdate:radius": n[4] || (n[4] = (r) => y.value = r),
501
+ "icon-size": S.value,
502
+ "onUpdate:iconSize": n[5] || (n[5] = (r) => S.value = r),
503
+ disabled: s.value === "null"
504
+ }, null, 8, ["angle", "background", "radius", "icon-size", "disabled"])
505
+ ]),
506
+ l("div", yt, [
507
+ l("div", kt, [
508
+ l("label", _t, [
509
+ n[11] || (n[11] = J(" 图标色 ")),
510
+ u($, null, {
511
+ title: v(() => n[10] || (n[10] = [
512
+ J(" 仅 Ant Design 图标有效 ")
513
+ ])),
514
+ default: v(() => [
515
+ u(a(h), {
516
+ name: "i-carbon-information",
517
+ size: "12px",
518
+ class: "ml-1 cursor-help"
519
+ })
520
+ ]),
521
+ _: 1
522
+ })
523
+ ]),
524
+ l("div", ht, [
525
+ u(w, {
526
+ value: g.value,
527
+ "onUpdate:value": n[7] || (n[7] = (r) => g.value = r),
528
+ "allow-clear": "",
529
+ placeholder: s.value === "null" ? "默认" : "#ffffff",
530
+ size: "small",
531
+ class: "flex-1 min-w-0",
532
+ disabled: !A.value
533
+ }, {
534
+ prefix: v(() => [
535
+ l("div", wt, [
536
+ l("button", {
537
+ type: "button",
538
+ disabled: !A.value,
539
+ class: W(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", A.value ? "" : "opacity-50 cursor-not-allowed"]),
540
+ style: le({ background: g.value || "#ffffff" }),
541
+ onClick: me
542
+ }, null, 14, Ct),
543
+ l("input", {
544
+ ref_key: "iconColorPickerRef",
545
+ ref: E,
546
+ type: "color",
547
+ value: g.value || "#ffffff",
548
+ disabled: !A.value,
549
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
550
+ style: { width: "16px", height: "16px" },
551
+ onInput: n[6] || (n[6] = (r) => g.value = r.target.value)
552
+ }, null, 40, zt)
553
+ ])
554
+ ]),
555
+ _: 1
556
+ }, 8, ["value", "placeholder", "disabled"])
557
+ ])
558
+ ])
559
+ ]),
560
+ l("div", It, [
561
+ l("div", St, [
562
+ f.value ? (x(), C("div", Rt, [
563
+ s.value === "null" ? (x(), T(a(h), {
564
+ key: 0,
565
+ name: f.value,
566
+ size: 80,
567
+ color: A.value && g.value ? g.value : void 0
568
+ }, null, 8, ["name", "color"])) : (x(), T(a(h), {
569
+ key: 1,
570
+ name: f.value,
571
+ box: s.value,
572
+ size: 80,
573
+ angle: _.value,
574
+ background: i.value,
575
+ radius: y.value,
576
+ "icon-size": S.value,
577
+ color: A.value ? g.value || "#ffffff" : void 0
578
+ }, null, 8, ["name", "box", "angle", "background", "radius", "icon-size", "color"]))
579
+ ])) : q("", !0)
580
+ ])
581
+ ])
582
+ ]),
583
+ l("div", $t, [
584
+ u(ie, { onClick: G }, {
585
+ default: v(() => n[12] || (n[12] = [
586
+ J(" 取消 ")
587
+ ])),
588
+ _: 1,
589
+ __: [12]
590
+ }),
591
+ u(ie, {
592
+ type: "primary",
593
+ onClick: Z
594
+ }, {
595
+ default: v(() => n[13] || (n[13] = [
596
+ J(" 确定 ")
597
+ ])),
598
+ _: 1,
599
+ __: [13]
600
+ })
601
+ ])
602
+ ])
603
+ ])) : q("", !0)
604
+ ])
605
+ ]),
606
+ _: 1
607
+ }, 8, ["open"])
608
+ ]),
609
+ _: 1
610
+ })
611
+ ], 64);
612
+ };
613
+ }
614
+ }), jt = /* @__PURE__ */ Fe(Pt, [["__scopeId", "data-v-877afd5a"]]), Et = ["onClick"], Nt = ["onClick"], Ut = { class: "flex flex-col items-center justify-center" }, Dt = /* @__PURE__ */ ne({
615
+ name: "ResourceIconSelect",
616
+ __name: "IconSelect",
617
+ props: {
618
+ modelValue: {
619
+ default: {
620
+ meta: {
621
+ url: "",
622
+ component: ""
623
+ }
624
+ }
625
+ },
626
+ modelModifiers: {}
627
+ },
628
+ emits: ["update:modelValue"],
629
+ setup(I) {
630
+ const p = U(I, "modelValue");
631
+ function c() {
632
+ return {
633
+ boxType: "null",
634
+ angle: 65,
635
+ background: { from: "#65E54A", to: "#35C724" },
636
+ radius: "50%",
637
+ iconColor: "",
638
+ iconSize: "50%"
639
+ };
640
+ }
641
+ const k = z(() => p.value.meta || (p.value.meta = {})), d = je(c());
642
+ R(
643
+ () => k.value.iconOptions,
644
+ (f) => {
645
+ f ? Object.assign(d, c(), f) : Object.assign(d, c());
646
+ },
647
+ { immediate: !0 }
648
+ ), R(
649
+ d,
650
+ (f) => {
651
+ if (!p.value.icon) {
652
+ k.value.iconOptions && Reflect.deleteProperty(k.value, "iconOptions");
653
+ return;
654
+ }
655
+ const s = k.value.iconOptions;
656
+ let _ = !1;
657
+ if (!s)
658
+ _ = !0;
659
+ else {
660
+ const i = /* @__PURE__ */ new Set([...Object.keys(s), ...Object.keys(f)]);
661
+ for (const y of i)
662
+ if (s[y] !== f[y]) {
663
+ _ = !0;
664
+ break;
665
+ }
666
+ }
667
+ _ && (k.value.iconOptions = { ...f });
668
+ },
669
+ { deep: !0 }
670
+ );
671
+ const M = z(() => {
672
+ const f = p.value.type;
673
+ return {
674
+ icon: [L.DYNAMIC_APP, L.INDEX, L.MENU, L.IFRAME, L.LINK].includes(f)
675
+ };
676
+ }), P = z(() => !0);
677
+ function j(f) {
678
+ f.stopPropagation(), p.value.icon && (p.value.icon = void 0, Reflect.deleteProperty(k.value, "iconOptions"));
679
+ }
680
+ return (f, s) => {
681
+ const _ = Me;
682
+ return a(P) && a(M).icon ? (x(), T(_, {
683
+ key: 0,
684
+ label: "资源图标"
685
+ }, {
686
+ default: v(() => [
687
+ u(jt, {
688
+ modelValue: p.value.icon,
689
+ "onUpdate:modelValue": s[0] || (s[0] = (i) => p.value.icon = i),
690
+ "box-type": a(d).boxType,
691
+ "onUpdate:boxType": s[1] || (s[1] = (i) => a(d).boxType = i),
692
+ angle: a(d).angle,
693
+ "onUpdate:angle": s[2] || (s[2] = (i) => a(d).angle = i),
694
+ background: a(d).background,
695
+ "onUpdate:background": s[3] || (s[3] = (i) => a(d).background = i),
696
+ radius: a(d).radius,
697
+ "onUpdate:radius": s[4] || (s[4] = (i) => a(d).radius = i),
698
+ "icon-color": a(d).iconColor,
699
+ "onUpdate:iconColor": s[5] || (s[5] = (i) => a(d).iconColor = i),
700
+ "icon-size": a(d).iconSize,
701
+ "onUpdate:iconSize": s[6] || (s[6] = (i) => a(d).iconSize = i)
702
+ }, {
703
+ default: v(({ open: i }) => [
704
+ p.value.icon ? (x(), C("div", {
705
+ key: 0,
706
+ class: "size-64px flex justify-center items-center cursor-pointer rounded-md border-px border-dashed relative group border-[#d9d9d9] dark:border-[#424242] hover:border-[#5794f7] dark:hover:border-[#5187e1] p-8px",
707
+ onClick: i
708
+ }, [
709
+ a(d).boxType && a(d).boxType !== "null" ? (x(), T(a(h), {
710
+ key: 0,
711
+ name: p.value.icon,
712
+ box: a(d).boxType,
713
+ size: "48px",
714
+ radius: a(d).radius,
715
+ background: a(d).background,
716
+ angle: a(d).angle,
717
+ "icon-size": a(d).iconSize,
718
+ color: (p.value.icon || "").startsWith("antd:") ? a(d).iconColor || "#ffffff" : void 0
719
+ }, null, 8, ["name", "box", "radius", "background", "angle", "icon-size", "color"])) : (x(), T(a(h), {
720
+ key: 1,
721
+ name: p.value.icon,
722
+ size: "48px",
723
+ color: (p.value.icon || "").startsWith("antd:") && a(d).iconColor || void 0
724
+ }, null, 8, ["name", "color"])),
725
+ p.value.icon ? (x(), C("button", {
726
+ key: 2,
727
+ class: "absolute -top-1.5 -right-1.5 size-5 flex items-center justify-center rounded-full cursor-pointer border-none op-65 dark:op-55 hover:op-100",
728
+ type: "button",
729
+ onClick: j
730
+ }, [
731
+ u(a(h), {
732
+ name: "antd:CloseOutlined",
733
+ size: "10px"
734
+ })
735
+ ])) : q("", !0)
736
+ ], 8, Et)) : (x(), C("div", {
737
+ key: 1,
738
+ class: "size-64px flex justify-center items-center rounded-md border-px border-dashed cursor-pointer border-[#d9d9d9] dark:border-[#424242] hover:border-[#5794f7] dark:hover:border-[#5187e1] text-[#d9d9d9] dark:text-[#424242] hover:text-[#5794f7] dark:hover:text-[#5187e1] transition",
739
+ onClick: i
740
+ }, [
741
+ l("div", Ut, [
742
+ u(a(h), { name: "antd:PlusOutlined" }),
743
+ s[7] || (s[7] = l("span", { class: "text-10px mt-1" }, "选择图标", -1))
744
+ ])
745
+ ], 8, Nt))
746
+ ]),
747
+ _: 1
748
+ }, 8, ["modelValue", "box-type", "angle", "background", "radius", "icon-color", "icon-size"])
749
+ ]),
750
+ _: 1
751
+ })) : q("", !0);
752
+ };
753
+ }
754
+ });
755
+ export {
756
+ Dt as _
757
+ };