@bwg-ui/core 1.2.21 → 1.2.23
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/chunks/{MenuReport-D-gxEaXb.js → MenuReport-B7wOCWJH.js} +1 -1
- package/dist/chunks/{MenuReport-DbGZz84g.cjs → MenuReport-DWUqzoE_.cjs} +1 -1
- package/dist/chunks/common-components-1B6Dgw0G.cjs +1109 -0
- package/dist/chunks/common-components-DN-4Ydi7.js +51359 -0
- package/dist/chunks/{layout-components-IvmBzdev.js → layout-components-BO9fKUG7.js} +269 -234
- package/dist/chunks/layout-components-CQYHdg88.cjs +35 -0
- package/dist/components/common/ButtonAccessController.d.ts.map +1 -1
- package/dist/components/common/BwgTitleBox.d.ts.map +1 -1
- package/dist/components/common/BwgView.d.ts.map +1 -1
- package/dist/components/common/index.cjs +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/guide/index.cjs +1 -1
- package/dist/components/guide/index.js +1 -1
- package/dist/components/layout/custom/ConfigurableSidebar.d.ts.map +1 -1
- package/dist/components/layout/default/LocalPopupContainer.d.ts.map +1 -1
- package/dist/components/layout/default/PopupContainer.d.ts.map +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +1 -1
- package/dist/components/pages/board/CMAdminBoardM01.d.ts +6 -0
- package/dist/components/pages/board/CMAdminBoardM01.d.ts.map +1 -0
- package/dist/components/pages/board/CMBoardS01.d.ts +8 -0
- package/dist/components/pages/board/CMBoardS01.d.ts.map +1 -0
- package/dist/components/pages/board/CMMyBoardM01.d.ts +6 -0
- package/dist/components/pages/board/CMMyBoardM01.d.ts.map +1 -0
- package/dist/components/pages/index.d.ts +6 -1
- package/dist/components/pages/index.d.ts.map +1 -1
- package/dist/components/pages/syst/SystemCodeManage.d.ts +7 -0
- package/dist/components/pages/syst/SystemCodeManage.d.ts.map +1 -0
- package/dist/components/popup/CMPrgrMstrP02.d.ts +3 -0
- package/dist/components/popup/CMPrgrMstrP02.d.ts.map +1 -0
- package/dist/components/popup/MenuReport.d.ts +1 -1
- package/dist/components/popup/MenuReport.d.ts.map +1 -1
- package/dist/components/popup/SearchOrganizationP01.d.ts +2 -0
- package/dist/components/popup/SearchOrganizationP01.d.ts.map +1 -1
- package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -1
- package/dist/components/popup/index.cjs +1 -1
- package/dist/components/popup/index.d.ts +1 -0
- package/dist/components/popup/index.d.ts.map +1 -1
- package/dist/components/popup/index.js +7 -6
- package/dist/index.cjs +1 -1
- package/dist/index.js +253 -245
- package/dist/provider/contexts/ServiceCodeContext.d.ts.map +1 -1
- package/dist/provider/index.cjs +1 -1
- package/dist/provider/index.js +115 -134
- package/dist/stores/codeStore.d.ts.map +1 -1
- package/dist/stores/index.cjs +2 -2
- package/dist/stores/index.js +342 -247
- package/dist/stores/userStore.d.ts +6 -0
- package/dist/stores/userStore.d.ts.map +1 -1
- package/dist/utils/apiUtils.d.ts.map +1 -1
- package/dist/utils/gwUtils.d.ts.map +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +644 -636
- package/dist/utils/serviceConfig.d.ts +1 -1
- package/dist/utils/serviceConfig.d.ts.map +1 -1
- package/dist/utils/userUtils.d.ts +2 -0
- package/dist/utils/userUtils.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/chunks/common-components-BLgaNCNY.js +0 -30500
- package/dist/chunks/common-components-CeY5flj3.cjs +0 -1028
- package/dist/chunks/layout-components-C_HvgcCg.cjs +0 -35
package/dist/stores/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { create as
|
|
2
|
-
import { callService as
|
|
1
|
+
import { create as b } from "zustand";
|
|
2
|
+
import { callService as N, getServiceCode as w, getUserId as v, getUserInfo as ee, getCookie as te, encryptSha256 as oe, setCookie as $ } from "../utils/index.js";
|
|
3
3
|
import { message as L } from "antd";
|
|
4
|
-
import { l as
|
|
5
|
-
import { useState as
|
|
6
|
-
import { useNavigate as
|
|
7
|
-
function
|
|
4
|
+
import { l as se } from "../chunks/layout-components-BO9fKUG7.js";
|
|
5
|
+
import { useState as X, useCallback as q } from "react";
|
|
6
|
+
import { useNavigate as ne } from "react-router-dom";
|
|
7
|
+
function re(n, r) {
|
|
8
8
|
let e;
|
|
9
9
|
try {
|
|
10
10
|
e = n();
|
|
@@ -21,12 +21,12 @@ function ne(n, r) {
|
|
|
21
21
|
removeItem: (o) => e.removeItem(o)
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
const
|
|
24
|
+
const E = (n) => (r) => {
|
|
25
25
|
try {
|
|
26
26
|
const e = n(r);
|
|
27
27
|
return e instanceof Promise ? e : {
|
|
28
28
|
then(s) {
|
|
29
|
-
return
|
|
29
|
+
return E(s)(e);
|
|
30
30
|
},
|
|
31
31
|
catch(s) {
|
|
32
32
|
return this;
|
|
@@ -38,13 +38,13 @@ const A = (n) => (r) => {
|
|
|
38
38
|
return this;
|
|
39
39
|
},
|
|
40
40
|
catch(s) {
|
|
41
|
-
return
|
|
41
|
+
return E(s)(e);
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
},
|
|
45
|
+
}, ae = (n, r) => (e, s, o) => {
|
|
46
46
|
let t = {
|
|
47
|
-
storage:
|
|
47
|
+
storage: re(() => localStorage),
|
|
48
48
|
partialize: (C) => C,
|
|
49
49
|
version: 0,
|
|
50
50
|
merge: (C, g) => ({
|
|
@@ -65,22 +65,22 @@ const A = (n) => (r) => {
|
|
|
65
65
|
s,
|
|
66
66
|
o
|
|
67
67
|
);
|
|
68
|
-
const
|
|
68
|
+
const l = () => {
|
|
69
69
|
const C = t.partialize({ ...s() });
|
|
70
70
|
return i.setItem(t.name, {
|
|
71
71
|
state: C,
|
|
72
72
|
version: t.version
|
|
73
73
|
});
|
|
74
|
-
},
|
|
75
|
-
o.setState = (C, g) => (
|
|
74
|
+
}, f = o.setState;
|
|
75
|
+
o.setState = (C, g) => (f(C, g), l());
|
|
76
76
|
const m = n(
|
|
77
|
-
(...C) => (e(...C),
|
|
77
|
+
(...C) => (e(...C), l()),
|
|
78
78
|
s,
|
|
79
79
|
o
|
|
80
80
|
);
|
|
81
81
|
o.getInitialState = () => m;
|
|
82
82
|
let u;
|
|
83
|
-
const
|
|
83
|
+
const h = () => {
|
|
84
84
|
var C, g;
|
|
85
85
|
if (!i) return;
|
|
86
86
|
a = !1, d.forEach((y) => {
|
|
@@ -88,7 +88,7 @@ const A = (n) => (r) => {
|
|
|
88
88
|
return y((S = s()) != null ? S : m);
|
|
89
89
|
});
|
|
90
90
|
const k = ((g = t.onRehydrateStorage) == null ? void 0 : g.call(t, (C = s()) != null ? C : m)) || void 0;
|
|
91
|
-
return
|
|
91
|
+
return E(i.getItem.bind(i))(t.name).then((y) => {
|
|
92
92
|
if (y)
|
|
93
93
|
if (typeof y.version == "number" && y.version !== t.version) {
|
|
94
94
|
if (t.migrate) {
|
|
@@ -96,7 +96,7 @@ const A = (n) => (r) => {
|
|
|
96
96
|
y.state,
|
|
97
97
|
y.version
|
|
98
98
|
);
|
|
99
|
-
return S instanceof Promise ? S.then((
|
|
99
|
+
return S instanceof Promise ? S.then((_) => [!0, _]) : [!0, S];
|
|
100
100
|
}
|
|
101
101
|
console.error(
|
|
102
102
|
"State loaded from storage couldn't be migrated since no migrate function was provided"
|
|
@@ -106,12 +106,12 @@ const A = (n) => (r) => {
|
|
|
106
106
|
return [!1, void 0];
|
|
107
107
|
}).then((y) => {
|
|
108
108
|
var S;
|
|
109
|
-
const [
|
|
109
|
+
const [_, Q] = y;
|
|
110
110
|
if (u = t.merge(
|
|
111
|
-
|
|
111
|
+
Q,
|
|
112
112
|
(S = s()) != null ? S : m
|
|
113
|
-
), e(u, !0),
|
|
114
|
-
return
|
|
113
|
+
), e(u, !0), _)
|
|
114
|
+
return l();
|
|
115
115
|
}).then(() => {
|
|
116
116
|
k?.(u, void 0), u = s(), a = !0, c.forEach((y) => y(u));
|
|
117
117
|
}).catch((y) => {
|
|
@@ -129,7 +129,7 @@ const A = (n) => (r) => {
|
|
|
129
129
|
i?.removeItem(t.name);
|
|
130
130
|
},
|
|
131
131
|
getOptions: () => t,
|
|
132
|
-
rehydrate: () =>
|
|
132
|
+
rehydrate: () => h(),
|
|
133
133
|
hasHydrated: () => a,
|
|
134
134
|
onHydrate: (C) => (d.add(C), () => {
|
|
135
135
|
d.delete(C);
|
|
@@ -137,12 +137,13 @@ const A = (n) => (r) => {
|
|
|
137
137
|
onFinishHydration: (C) => (c.add(C), () => {
|
|
138
138
|
c.delete(C);
|
|
139
139
|
})
|
|
140
|
-
}, t.skipHydration ||
|
|
141
|
-
}, M =
|
|
140
|
+
}, t.skipHydration || h(), u || m;
|
|
141
|
+
}, M = ae, H = b()(
|
|
142
142
|
M(
|
|
143
143
|
(n, r) => ({
|
|
144
144
|
user: null,
|
|
145
145
|
hrInfo: null,
|
|
146
|
+
buttonAuths: {},
|
|
146
147
|
isLoggedIn: () => !!r().user,
|
|
147
148
|
// 로그인
|
|
148
149
|
setLoginUser: (e, s) => {
|
|
@@ -150,7 +151,7 @@ const A = (n) => (r) => {
|
|
|
150
151
|
},
|
|
151
152
|
// 로그아웃
|
|
152
153
|
clearLoginUser: () => {
|
|
153
|
-
n({ user: null, hrInfo: null }), console.log("사용자 로그아웃");
|
|
154
|
+
n({ user: null, hrInfo: null, buttonAuths: {} }), console.log("사용자 로그아웃");
|
|
154
155
|
},
|
|
155
156
|
// 사용자 정보 업데이트
|
|
156
157
|
updateUser: (e, s) => {
|
|
@@ -160,6 +161,25 @@ const A = (n) => (r) => {
|
|
|
160
161
|
}), t && n({
|
|
161
162
|
hrInfo: { ...t, ...s }
|
|
162
163
|
});
|
|
164
|
+
},
|
|
165
|
+
// 권한 확인 결과 가져오기
|
|
166
|
+
getButtonAuth: (e, s) => {
|
|
167
|
+
const o = `${e}_${s}`;
|
|
168
|
+
return r().buttonAuths[o] || null;
|
|
169
|
+
},
|
|
170
|
+
// 권한 확인 결과 저장
|
|
171
|
+
setButtonAuth: (e, s, o) => {
|
|
172
|
+
const t = `${e}_${s}`;
|
|
173
|
+
n((a) => ({
|
|
174
|
+
buttonAuths: {
|
|
175
|
+
...a.buttonAuths,
|
|
176
|
+
[t]: o
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
},
|
|
180
|
+
// 권한 확인 결과 초기화
|
|
181
|
+
clearButtonAuths: () => {
|
|
182
|
+
n({ buttonAuths: {} });
|
|
163
183
|
}
|
|
164
184
|
}),
|
|
165
185
|
{
|
|
@@ -169,13 +189,14 @@ const A = (n) => (r) => {
|
|
|
169
189
|
user: n.user,
|
|
170
190
|
hrInfo: n.hrInfo,
|
|
171
191
|
isLoggedIn: n.isLoggedIn
|
|
192
|
+
// buttonAuthCache는 세션 동안만 유지 (localStorage에 저장 안 함)
|
|
172
193
|
})
|
|
173
194
|
// 저장할 상태만 선택
|
|
174
195
|
}
|
|
175
196
|
)
|
|
176
|
-
),
|
|
197
|
+
), A = {
|
|
177
198
|
CACHE_SIZE_LIMIT: 1e3
|
|
178
|
-
},
|
|
199
|
+
}, p = {
|
|
179
200
|
codeCache: /* @__PURE__ */ new Map(),
|
|
180
201
|
nameCache: /* @__PURE__ */ new Map(),
|
|
181
202
|
optionCache: /* @__PURE__ */ new Map(),
|
|
@@ -197,7 +218,7 @@ const A = (n) => (r) => {
|
|
|
197
218
|
markGroupLoaded(n) {
|
|
198
219
|
this.loadedGroups.add(n);
|
|
199
220
|
}
|
|
200
|
-
},
|
|
221
|
+
}, P = (n) => {
|
|
201
222
|
console.log("대규모 데이터 변환 시작:", n);
|
|
202
223
|
const r = {};
|
|
203
224
|
if (n && n.code && Array.isArray(n.code)) {
|
|
@@ -208,7 +229,7 @@ const A = (n) => (r) => {
|
|
|
208
229
|
if (t && t.cmmnCdGrp && t.cmmnCd && t.enblYn === "Y") {
|
|
209
230
|
const a = t.cmmnCdGrp;
|
|
210
231
|
r[a] || (r[a] = {});
|
|
211
|
-
const c = (o.get(t.cmmnCd) || []).reduce((i,
|
|
232
|
+
const c = (o.get(t.cmmnCd) || []).reduce((i, l) => (l.optnCd && l.optnNm && (i[l.optnCd] = l.optnNm), i), {});
|
|
212
233
|
r[a][t.cmmnCd] = {
|
|
213
234
|
codeValue: t.cmmnCd,
|
|
214
235
|
codeNm: t.cmmnCdNm,
|
|
@@ -225,7 +246,7 @@ const A = (n) => (r) => {
|
|
|
225
246
|
});
|
|
226
247
|
}
|
|
227
248
|
return console.log("대규모 데이터 변환 완료:", r), r;
|
|
228
|
-
}, I =
|
|
249
|
+
}, I = b()(
|
|
229
250
|
M(
|
|
230
251
|
(n, r) => ({
|
|
231
252
|
codeData: null,
|
|
@@ -233,30 +254,104 @@ const A = (n) => (r) => {
|
|
|
233
254
|
error: null,
|
|
234
255
|
lastUpdated: null,
|
|
235
256
|
loadedGroups: /* @__PURE__ */ new Set(),
|
|
236
|
-
|
|
257
|
+
// 시스템 공통코드 조회 (SCMSIGN00301)
|
|
258
|
+
fetchSystemCodes: async () => {
|
|
237
259
|
n({ isLoading: !0, error: null });
|
|
238
260
|
try {
|
|
239
|
-
console.log("
|
|
240
|
-
const e = await
|
|
261
|
+
console.log("시스템 공통코드 데이터 가져오기 시작: SCMSIGN00301");
|
|
262
|
+
const e = await N(w("SRCH_CODE"), {
|
|
241
263
|
crprCd: "100"
|
|
242
264
|
});
|
|
243
|
-
console.log("
|
|
244
|
-
const s =
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
265
|
+
console.log("시스템 공통코드 응답:", e), console.log("시스템 공통코드목록:", e.code), console.log("시스템 공통코드옵션목록:", e.opt);
|
|
266
|
+
const s = P(e), t = {
|
|
267
|
+
...r().codeData || {},
|
|
268
|
+
...s
|
|
269
|
+
// 시스템 공통코드가 우선 (같은 그룹코드가 있으면 덮어씀)
|
|
270
|
+
};
|
|
271
|
+
p.clearCache();
|
|
272
|
+
const a = new Set(Object.keys(t));
|
|
273
|
+
a.forEach((d) => {
|
|
274
|
+
p.markGroupLoaded(d);
|
|
275
|
+
}), n({
|
|
276
|
+
codeData: t,
|
|
277
|
+
isLoading: !1,
|
|
278
|
+
error: null,
|
|
279
|
+
lastUpdated: /* @__PURE__ */ new Date(),
|
|
280
|
+
loadedGroups: a
|
|
281
|
+
}), console.log("시스템 공통코드 데이터 가져오기 완료");
|
|
282
|
+
} catch (e) {
|
|
283
|
+
console.error("시스템 공통코드 데이터 가져오기 실패:", e), n({
|
|
284
|
+
isLoading: !1,
|
|
285
|
+
error: e instanceof Error ? e.message : "시스템 공통코드 데이터 가져오기 실패"
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
// 업무 공통코드 조회 (SCMSIGN00302)
|
|
290
|
+
fetchBusinessCodes: async () => {
|
|
291
|
+
n({ isLoading: !0, error: null });
|
|
292
|
+
try {
|
|
293
|
+
console.log("업무 공통코드 데이터 가져오기 시작: SCMSIGN00302");
|
|
294
|
+
const e = await N("SCMSIGN00302", {
|
|
295
|
+
sysCd: __SYS_CD__
|
|
296
|
+
});
|
|
297
|
+
console.log("업무 공통코드 응답:", e), console.log("업무 공통코드목록:", e.code), console.log("업무 공통코드옵션목록:", e.opt);
|
|
298
|
+
const s = P(e), t = {
|
|
299
|
+
...r().codeData || {},
|
|
300
|
+
...s
|
|
301
|
+
// 업무 공통코드 추가 (같은 그룹코드가 있으면 덮어씀)
|
|
302
|
+
};
|
|
303
|
+
p.clearCache();
|
|
304
|
+
const a = new Set(Object.keys(t));
|
|
305
|
+
a.forEach((d) => {
|
|
306
|
+
p.markGroupLoaded(d);
|
|
307
|
+
}), n({
|
|
308
|
+
codeData: t,
|
|
309
|
+
isLoading: !1,
|
|
310
|
+
error: null,
|
|
311
|
+
lastUpdated: /* @__PURE__ */ new Date(),
|
|
312
|
+
loadedGroups: a
|
|
313
|
+
}), console.log("업무 공통코드 데이터 가져오기 완료");
|
|
314
|
+
} catch (e) {
|
|
315
|
+
console.error("업무 공통코드 데이터 가져오기 실패:", e), n({
|
|
316
|
+
isLoading: !1,
|
|
317
|
+
error: e instanceof Error ? e.message : "업무 공통코드 데이터 가져오기 실패"
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
// 전체 공통코드 조회 (시스템 + 업무)
|
|
322
|
+
fetchData: async () => {
|
|
323
|
+
n({ isLoading: !0, error: null });
|
|
324
|
+
try {
|
|
325
|
+
console.log("전체 공통코드 데이터 가져오기 시작 (시스템 + 업무)");
|
|
326
|
+
const [e, s] = await Promise.all([
|
|
327
|
+
N(w("SRCH_CODE"), {
|
|
328
|
+
crprCd: "100"
|
|
329
|
+
}),
|
|
330
|
+
N("SCMSIGN00302", {
|
|
331
|
+
sysCd: __SYS_CD__
|
|
332
|
+
})
|
|
333
|
+
]);
|
|
334
|
+
console.log("시스템 공통코드 응답:", e), console.log("업무 공통코드 응답:", s);
|
|
335
|
+
const o = P(e), t = P(s), a = {
|
|
336
|
+
...o,
|
|
337
|
+
...t
|
|
338
|
+
// 업무 공통코드가 같은 그룹코드를 덮어쓸 수 있음
|
|
339
|
+
};
|
|
340
|
+
p.clearCache();
|
|
341
|
+
const d = new Set(Object.keys(a));
|
|
342
|
+
d.forEach((c) => {
|
|
343
|
+
p.markGroupLoaded(c);
|
|
249
344
|
}), n({
|
|
250
|
-
codeData:
|
|
345
|
+
codeData: a,
|
|
251
346
|
isLoading: !1,
|
|
252
347
|
error: null,
|
|
253
348
|
lastUpdated: /* @__PURE__ */ new Date(),
|
|
254
|
-
loadedGroups:
|
|
255
|
-
}), console.log("
|
|
349
|
+
loadedGroups: d
|
|
350
|
+
}), console.log("전체 공통코드 데이터 가져오기 완료");
|
|
256
351
|
} catch (e) {
|
|
257
|
-
console.error("
|
|
352
|
+
console.error("전체 공통코드 데이터 가져오기 실패:", e), n({
|
|
258
353
|
isLoading: !1,
|
|
259
|
-
error: e instanceof Error ? e.message : "
|
|
354
|
+
error: e instanceof Error ? e.message : "전체 공통코드 데이터 가져오기 실패"
|
|
260
355
|
});
|
|
261
356
|
}
|
|
262
357
|
},
|
|
@@ -264,13 +359,13 @@ const A = (n) => (r) => {
|
|
|
264
359
|
const { codeData: s, loadedGroups: o } = r();
|
|
265
360
|
if (!s || o.has(e)) return;
|
|
266
361
|
const t = new Set(o).add(e);
|
|
267
|
-
n({ loadedGroups: t }),
|
|
362
|
+
n({ loadedGroups: t }), p.markGroupLoaded(e);
|
|
268
363
|
},
|
|
269
364
|
setData: (e) => {
|
|
270
|
-
|
|
365
|
+
p.clearCache();
|
|
271
366
|
const s = new Set(Object.keys(e));
|
|
272
367
|
s.forEach((o) => {
|
|
273
|
-
|
|
368
|
+
p.markGroupLoaded(o);
|
|
274
369
|
}), n({
|
|
275
370
|
codeData: e,
|
|
276
371
|
lastUpdated: /* @__PURE__ */ new Date(),
|
|
@@ -278,7 +373,7 @@ const A = (n) => (r) => {
|
|
|
278
373
|
});
|
|
279
374
|
},
|
|
280
375
|
clearData: () => {
|
|
281
|
-
|
|
376
|
+
p.clearCache(), n({
|
|
282
377
|
codeData: null,
|
|
283
378
|
isLoading: !1,
|
|
284
379
|
error: null,
|
|
@@ -297,7 +392,7 @@ const A = (n) => (r) => {
|
|
|
297
392
|
})
|
|
298
393
|
}
|
|
299
394
|
)
|
|
300
|
-
),
|
|
395
|
+
), G = b()(
|
|
301
396
|
M(
|
|
302
397
|
(n, r) => ({
|
|
303
398
|
// 공통 데이터 스토어에서 상태 가져오기
|
|
@@ -325,108 +420,108 @@ const A = (n) => (r) => {
|
|
|
325
420
|
sortByOrder: a = !1,
|
|
326
421
|
excludeParentCode: d = !1
|
|
327
422
|
} = s || {}, c = `simpleCodeList_${e}_${o}_${t}_${a}_${d}`;
|
|
328
|
-
if (
|
|
329
|
-
const
|
|
330
|
-
return
|
|
423
|
+
if (p.optionCache.has(c)) {
|
|
424
|
+
const h = p.cacheHits.get(c) || 0;
|
|
425
|
+
return p.cacheHits.set(c, h + 1), p.optionCache.get(c);
|
|
331
426
|
}
|
|
332
427
|
const i = I.getState().codeData;
|
|
333
428
|
if (!i) return [];
|
|
334
|
-
if (!
|
|
429
|
+
if (!p.isGroupLoaded(e) && !i[e])
|
|
335
430
|
return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`), [];
|
|
336
|
-
const
|
|
337
|
-
|
|
338
|
-
if (!(o && !
|
|
431
|
+
const l = [], f = i[e];
|
|
432
|
+
f && Object.values(f).forEach((h) => {
|
|
433
|
+
if (!(o && !h.enabled) && !(t && h.systemCodeYn !== "Y"))
|
|
339
434
|
if (d) {
|
|
340
|
-
const C = e.length, g =
|
|
341
|
-
g.length > 0 &&
|
|
342
|
-
...
|
|
435
|
+
const C = e.length, g = h.codeValue.substring(C);
|
|
436
|
+
g.length > 0 && l.push({
|
|
437
|
+
...h,
|
|
343
438
|
codeValue: g
|
|
344
439
|
// 자식코드만 사용
|
|
345
440
|
});
|
|
346
441
|
} else
|
|
347
|
-
|
|
442
|
+
l.push(h);
|
|
348
443
|
});
|
|
349
444
|
let m;
|
|
350
|
-
a ? m =
|
|
351
|
-
(
|
|
445
|
+
a ? m = l.sort((h, C) => h.sortOrder !== C.sortOrder ? h.sortOrder - C.sortOrder : h.codeValue.localeCompare(C.codeValue)) : m = l.sort(
|
|
446
|
+
(h, C) => h.codeValue.localeCompare(C.codeValue)
|
|
352
447
|
);
|
|
353
|
-
const u = m.map((
|
|
354
|
-
label:
|
|
355
|
-
value:
|
|
356
|
-
tagColor:
|
|
448
|
+
const u = m.map((h) => ({
|
|
449
|
+
label: h.codeNm,
|
|
450
|
+
value: h.codeValue,
|
|
451
|
+
tagColor: h.labelColor
|
|
357
452
|
}));
|
|
358
|
-
return
|
|
453
|
+
return p.optionCache.size >= A.CACHE_SIZE_LIMIT && p.cleanupCache(), p.optionCache.set(c, u), p.cacheHits.set(c, 1), u;
|
|
359
454
|
},
|
|
360
455
|
// 2. 코드를 던졌을 때 코드명을 리턴 (대규모 최적화)
|
|
361
456
|
getCodeName: (e) => {
|
|
362
|
-
if (
|
|
363
|
-
const o =
|
|
364
|
-
return
|
|
457
|
+
if (p.nameCache.has(e)) {
|
|
458
|
+
const o = p.cacheHits.get(`name_${e}`) || 0;
|
|
459
|
+
return p.cacheHits.set(`name_${e}`, o + 1), p.nameCache.get(e);
|
|
365
460
|
}
|
|
366
461
|
const s = I.getState().codeData;
|
|
367
462
|
if (!s) return null;
|
|
368
463
|
for (const o of Object.values(s))
|
|
369
464
|
for (const t of Object.values(o))
|
|
370
465
|
if (t.codeValue === e)
|
|
371
|
-
return
|
|
466
|
+
return p.nameCache.set(e, t.codeNm), p.cacheHits.set(`name_${e}`, 1), t.codeNm;
|
|
372
467
|
return null;
|
|
373
468
|
},
|
|
374
469
|
// 3. 코드를 던졌을 때 라벨 컬러를 리턴 (대규모 최적화)
|
|
375
470
|
getCodeColor: (e) => {
|
|
376
|
-
if (
|
|
377
|
-
const o =
|
|
378
|
-
return
|
|
471
|
+
if (p.colorCache.has(e)) {
|
|
472
|
+
const o = p.cacheHits.get(`color_${e}`) || 0;
|
|
473
|
+
return p.cacheHits.set(`color_${e}`, o + 1), p.colorCache.get(e);
|
|
379
474
|
}
|
|
380
475
|
const s = I.getState().codeData;
|
|
381
476
|
if (!s) return null;
|
|
382
477
|
for (const o of Object.values(s))
|
|
383
478
|
for (const t of Object.values(o))
|
|
384
479
|
if (t.codeValue === e)
|
|
385
|
-
return
|
|
480
|
+
return p.colorCache.set(
|
|
386
481
|
e,
|
|
387
482
|
t.labelColor || ""
|
|
388
|
-
),
|
|
483
|
+
), p.cacheHits.set(`color_${e}`, 1), t.labelColor;
|
|
389
484
|
return null;
|
|
390
485
|
},
|
|
391
486
|
// 4. 그리드 lookup용 데이터 반환 (labels, values 배열, lookupDisplay 포함)
|
|
392
487
|
getGridLookup: (e) => {
|
|
393
488
|
const s = `gridLookup_${e}`;
|
|
394
|
-
if (
|
|
395
|
-
const i =
|
|
396
|
-
return
|
|
489
|
+
if (p.optionCache.has(s)) {
|
|
490
|
+
const i = p.cacheHits.get(s) || 0;
|
|
491
|
+
return p.cacheHits.set(s, i + 1), p.optionCache.get(s);
|
|
397
492
|
}
|
|
398
493
|
const o = I.getState().codeData;
|
|
399
494
|
if (!o) return { labels: [], values: [], lookupDisplay: !0 };
|
|
400
495
|
const t = o[e];
|
|
401
496
|
if (!t) return { labels: [], values: [], lookupDisplay: !0 };
|
|
402
497
|
const a = [], d = [];
|
|
403
|
-
Object.values(t).filter((i) => i.enabled).sort((i,
|
|
498
|
+
Object.values(t).filter((i) => i.enabled).sort((i, l) => i.sortOrder - l.sortOrder).forEach((i) => {
|
|
404
499
|
a.push(i.codeNm), d.push(i.codeValue);
|
|
405
500
|
});
|
|
406
501
|
const c = { labels: a, values: d, lookupDisplay: !0 };
|
|
407
|
-
return
|
|
502
|
+
return p.optionCache.set(s, c), p.cacheHits.set(s, 1), c;
|
|
408
503
|
},
|
|
409
504
|
// 3. 옵션값으로 코드를 조회하는 새로운 메서드
|
|
410
505
|
getCodeByOption: (e, s, o) => {
|
|
411
506
|
const t = `codeByOption_${e}_${s}_${o}`;
|
|
412
|
-
if (
|
|
413
|
-
const
|
|
414
|
-
return
|
|
507
|
+
if (p.codeCache.has(t)) {
|
|
508
|
+
const l = p.cacheHits.get(t) || 0;
|
|
509
|
+
return p.cacheHits.set(t, l + 1), p.codeCache.get(t);
|
|
415
510
|
}
|
|
416
511
|
const a = I.getState().codeData;
|
|
417
512
|
if (!a) return [];
|
|
418
513
|
const d = [], c = a[e];
|
|
419
|
-
c && Object.values(c).forEach((
|
|
420
|
-
|
|
421
|
-
...
|
|
422
|
-
codeNm:
|
|
514
|
+
c && Object.values(c).forEach((l) => {
|
|
515
|
+
l.enabled && l.options && l.options[s] === o && d.push({
|
|
516
|
+
...l,
|
|
517
|
+
codeNm: l.options[s] || l.codeNm
|
|
423
518
|
// 옵션값을 코드명으로 사용
|
|
424
519
|
});
|
|
425
520
|
});
|
|
426
521
|
const i = d.sort(
|
|
427
|
-
(
|
|
522
|
+
(l, f) => l.codeValue.localeCompare(f.codeValue)
|
|
428
523
|
);
|
|
429
|
-
return
|
|
524
|
+
return p.codeCache.size >= A.CACHE_SIZE_LIMIT && p.cleanupCache(), p.codeCache.set(t, i), p.cacheHits.set(t, 1), i;
|
|
430
525
|
},
|
|
431
526
|
// 6. 옵션코드별로 코드 목록 조회 (SimpleCodeItem 형태로 반환)
|
|
432
527
|
getCodeListByOption: (e, s, o) => {
|
|
@@ -435,19 +530,19 @@ const A = (n) => (r) => {
|
|
|
435
530
|
systemCodeOnly: a = !1,
|
|
436
531
|
sortByOrder: d = !1
|
|
437
532
|
} = o || {}, c = `codeListByOption_${e}_${s}_${t}_${a}_${d}`;
|
|
438
|
-
if (
|
|
439
|
-
const u =
|
|
440
|
-
return
|
|
533
|
+
if (p.codeCache.has(c)) {
|
|
534
|
+
const u = p.cacheHits.get(c) || 0;
|
|
535
|
+
return p.cacheHits.set(c, u + 1), p.codeCache.get(
|
|
441
536
|
c
|
|
442
537
|
);
|
|
443
538
|
}
|
|
444
539
|
const i = I.getState().codeData;
|
|
445
540
|
if (!i) return [];
|
|
446
|
-
if (!
|
|
541
|
+
if (!p.isGroupLoaded(e) && !i[e])
|
|
447
542
|
return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`), [];
|
|
448
|
-
const
|
|
449
|
-
|
|
450
|
-
t && !u.enabled || a && u.systemCodeYn !== "Y" || u.options && u.options[s] &&
|
|
543
|
+
const l = [], f = i[e];
|
|
544
|
+
f && Object.values(f).forEach((u) => {
|
|
545
|
+
t && !u.enabled || a && u.systemCodeYn !== "Y" || u.options && u.options[s] && l.push({
|
|
451
546
|
label: u.options[s],
|
|
452
547
|
// optnNm 값
|
|
453
548
|
value: u.commonCode,
|
|
@@ -457,24 +552,24 @@ const A = (n) => (r) => {
|
|
|
457
552
|
});
|
|
458
553
|
});
|
|
459
554
|
let m;
|
|
460
|
-
return d ? m =
|
|
461
|
-
(u,
|
|
462
|
-
),
|
|
555
|
+
return d ? m = l.sort((u, h) => u.value.localeCompare(h.value)) : m = l.sort(
|
|
556
|
+
(u, h) => u.value.localeCompare(h.value)
|
|
557
|
+
), p.codeCache.size >= A.CACHE_SIZE_LIMIT && p.cleanupCache(), p.codeCache.set(c, m), p.cacheHits.set(c, 1), m;
|
|
463
558
|
},
|
|
464
559
|
// 7. 그룹코드 목록 조회
|
|
465
560
|
getAvailableGroupCodes: () => {
|
|
466
561
|
const e = "available_group_codes";
|
|
467
|
-
if (
|
|
468
|
-
const t =
|
|
469
|
-
return
|
|
562
|
+
if (p.nameCache.has(e)) {
|
|
563
|
+
const t = p.cacheHits.get(e) || 0;
|
|
564
|
+
return p.cacheHits.set(e, t + 1), JSON.parse(p.nameCache.get(e));
|
|
470
565
|
}
|
|
471
566
|
const s = I.getState().codeData;
|
|
472
567
|
if (!s) return [];
|
|
473
568
|
const o = Object.keys(s).sort();
|
|
474
|
-
return
|
|
569
|
+
return p.nameCache.set(
|
|
475
570
|
e,
|
|
476
571
|
JSON.stringify(o)
|
|
477
|
-
),
|
|
572
|
+
), p.cacheHits.set(e, 1), o;
|
|
478
573
|
},
|
|
479
574
|
// 공통코드 초기화
|
|
480
575
|
clearCodes: () => {
|
|
@@ -488,7 +583,7 @@ const A = (n) => (r) => {
|
|
|
488
583
|
})
|
|
489
584
|
}
|
|
490
585
|
)
|
|
491
|
-
), ve =
|
|
586
|
+
), ve = b()(
|
|
492
587
|
M(
|
|
493
588
|
(n, r) => ({
|
|
494
589
|
// 공통 데이터 스토어에서 상태 가져오기
|
|
@@ -511,28 +606,28 @@ const A = (n) => (r) => {
|
|
|
511
606
|
// 그룹코드와 옵션코드를 던졌을 때 상세코드의 옵션값을 리턴 (대규모 최적화)
|
|
512
607
|
getOptionValue: (e, s) => {
|
|
513
608
|
const o = `option_${e}_${s}`;
|
|
514
|
-
if (
|
|
515
|
-
const d =
|
|
516
|
-
return
|
|
609
|
+
if (p.optionCache.has(o)) {
|
|
610
|
+
const d = p.cacheHits.get(o) || 0;
|
|
611
|
+
return p.cacheHits.set(o, d + 1), p.optionCache.get(o);
|
|
517
612
|
}
|
|
518
613
|
const t = I.getState().codeData;
|
|
519
614
|
if (!t) return null;
|
|
520
615
|
const a = t[e];
|
|
521
616
|
if (a && a[s]) {
|
|
522
617
|
const d = a[s].options;
|
|
523
|
-
return
|
|
618
|
+
return p.optionCache.set(o, d), p.cacheHits.set(o, 1), d;
|
|
524
619
|
}
|
|
525
620
|
return null;
|
|
526
621
|
},
|
|
527
622
|
// 특정 옵션 키의 값 가져오기 (대규모 최적화)
|
|
528
623
|
getOptionByKey: (e, s, o) => {
|
|
529
624
|
const t = `option_${e}_${s}_${o}`;
|
|
530
|
-
if (
|
|
531
|
-
const c =
|
|
532
|
-
return
|
|
625
|
+
if (p.optionCache.has(t)) {
|
|
626
|
+
const c = p.cacheHits.get(t) || 0;
|
|
627
|
+
return p.cacheHits.set(t, c + 1), p.optionCache.get(t);
|
|
533
628
|
}
|
|
534
629
|
const a = r().getOptionValue(e, s), d = a ? a[o] : null;
|
|
535
|
-
return
|
|
630
|
+
return p.optionCache.set(t, d), p.cacheHits.set(t, 1), d;
|
|
536
631
|
},
|
|
537
632
|
// 공통코드 초기화
|
|
538
633
|
clearCodes: () => {
|
|
@@ -546,7 +641,7 @@ const A = (n) => (r) => {
|
|
|
546
641
|
})
|
|
547
642
|
}
|
|
548
643
|
)
|
|
549
|
-
), Pe =
|
|
644
|
+
), Pe = b()(
|
|
550
645
|
M(
|
|
551
646
|
(n, r) => ({
|
|
552
647
|
// 공통 데이터 스토어에서 상태 가져오기
|
|
@@ -568,27 +663,27 @@ const A = (n) => (r) => {
|
|
|
568
663
|
},
|
|
569
664
|
// 코드를 던졌을 때 컬러코드를 리턴 (대규모 최적화)
|
|
570
665
|
getColorCode: (e) => {
|
|
571
|
-
if (
|
|
572
|
-
const o =
|
|
573
|
-
return
|
|
666
|
+
if (p.colorCache.has(e)) {
|
|
667
|
+
const o = p.cacheHits.get(`color_${e}`) || 0;
|
|
668
|
+
return p.cacheHits.set(`color_${e}`, o + 1), p.colorCache.get(e);
|
|
574
669
|
}
|
|
575
670
|
const s = I.getState().codeData;
|
|
576
671
|
if (!s) return null;
|
|
577
672
|
for (const o of Object.values(s))
|
|
578
673
|
for (const t of Object.values(o))
|
|
579
674
|
if (t.codeValue === e)
|
|
580
|
-
return
|
|
675
|
+
return p.colorCache.set(
|
|
581
676
|
e,
|
|
582
677
|
t.labelColor || ""
|
|
583
|
-
),
|
|
678
|
+
), p.cacheHits.set(`color_${e}`, 1), t.labelColor;
|
|
584
679
|
return null;
|
|
585
680
|
},
|
|
586
681
|
// 코드/컬러 매핑 배열 가져오기 (대규모 최적화)
|
|
587
682
|
getColorMapping: () => {
|
|
588
683
|
const e = "color_mapping";
|
|
589
|
-
if (
|
|
590
|
-
const t =
|
|
591
|
-
return
|
|
684
|
+
if (p.optionCache.has(e)) {
|
|
685
|
+
const t = p.cacheHits.get(e) || 0;
|
|
686
|
+
return p.cacheHits.set(e, t + 1), p.optionCache.get(e);
|
|
592
687
|
}
|
|
593
688
|
const s = I.getState().codeData;
|
|
594
689
|
if (!s) return [];
|
|
@@ -600,7 +695,7 @@ const A = (n) => (r) => {
|
|
|
600
695
|
color: a.labelColor
|
|
601
696
|
});
|
|
602
697
|
});
|
|
603
|
-
}),
|
|
698
|
+
}), p.optionCache.set(e, o), p.cacheHits.set(e, 1), o;
|
|
604
699
|
},
|
|
605
700
|
// 공통코드 초기화
|
|
606
701
|
clearCodes: () => {
|
|
@@ -639,11 +734,11 @@ const A = (n) => (r) => {
|
|
|
639
734
|
const { nodes: s, rootIds: o } = r(), t = (d) => e ? d.toLowerCase().includes(e.toLowerCase()) : !0, a = (d) => {
|
|
640
735
|
const c = s[d];
|
|
641
736
|
if (!c || c.type !== "F") return null;
|
|
642
|
-
const i = c,
|
|
643
|
-
return t(i.bkmkNm) ||
|
|
737
|
+
const i = c, l = (i.children || []).map((m) => s[m]).filter((m) => !!m && m.type === "F").map((m) => a(m.bkmkId)).filter(Boolean);
|
|
738
|
+
return t(i.bkmkNm) || l.length > 0 ? {
|
|
644
739
|
key: i.bkmkId,
|
|
645
740
|
title: `📁 ${i.bkmkNm}`,
|
|
646
|
-
children:
|
|
741
|
+
children: l.length ? l : void 0
|
|
647
742
|
} : null;
|
|
648
743
|
};
|
|
649
744
|
return o.map((d) => a(d)).filter(Boolean);
|
|
@@ -655,7 +750,7 @@ const A = (n) => (r) => {
|
|
|
655
750
|
if (!(!s && o.loadedFor === e && Object.keys(o.nodes).length)) {
|
|
656
751
|
n({ loading: !0, error: void 0 });
|
|
657
752
|
try {
|
|
658
|
-
const t = await
|
|
753
|
+
const t = await N("SCMBKMK00101", { userId: e }), a = Array.isArray(t?.sub) ? t.sub : [], d = ce(a), c = D(
|
|
659
754
|
d.nodes,
|
|
660
755
|
d.rootIds
|
|
661
756
|
);
|
|
@@ -686,9 +781,9 @@ const A = (n) => (r) => {
|
|
|
686
781
|
},
|
|
687
782
|
// ====== 공통: 생성 ======
|
|
688
783
|
addNode: async (e) => {
|
|
689
|
-
const s =
|
|
784
|
+
const s = B(r()), o = pe();
|
|
690
785
|
n((t) => {
|
|
691
|
-
const a = e.sortOrdr ??
|
|
786
|
+
const a = e.sortOrdr ?? U(t, e.prntBkmkId), d = {
|
|
692
787
|
...t,
|
|
693
788
|
nodes: {
|
|
694
789
|
...t.nodes,
|
|
@@ -715,11 +810,11 @@ const A = (n) => (r) => {
|
|
|
715
810
|
rootIds: t.rootIds.slice(),
|
|
716
811
|
treeNodes: t.treeNodes
|
|
717
812
|
};
|
|
718
|
-
return le(d, o, e.prntBkmkId), d.treeNodes =
|
|
813
|
+
return le(d, o, e.prntBkmkId), d.treeNodes = D(d.nodes, d.rootIds), d;
|
|
719
814
|
});
|
|
720
815
|
try {
|
|
721
816
|
let t = o;
|
|
722
|
-
const a =
|
|
817
|
+
const a = U(r(), e.prntBkmkId), d = await N("SCMBKMK00102", {
|
|
723
818
|
iudFlag: "I",
|
|
724
819
|
type: e.type,
|
|
725
820
|
sysCd: e.sysCd,
|
|
@@ -736,7 +831,7 @@ const A = (n) => (r) => {
|
|
|
736
831
|
const i = ue(c, o, t);
|
|
737
832
|
return {
|
|
738
833
|
...i,
|
|
739
|
-
treeNodes:
|
|
834
|
+
treeNodes: D(i.nodes, i.rootIds)
|
|
740
835
|
};
|
|
741
836
|
}), t;
|
|
742
837
|
} catch (t) {
|
|
@@ -752,19 +847,19 @@ const A = (n) => (r) => {
|
|
|
752
847
|
if (!u || u.type !== "F")
|
|
753
848
|
throw new Error("부모는 폴더만 가능합니다.");
|
|
754
849
|
}
|
|
755
|
-
const
|
|
850
|
+
const l = i.prntBkmkId ?? "-", f = l === "-" ? c : d[l].children ||= [];
|
|
756
851
|
{
|
|
757
|
-
const u =
|
|
758
|
-
u >= 0 &&
|
|
852
|
+
const u = f.indexOf(e);
|
|
853
|
+
u >= 0 && f.splice(u, 1);
|
|
759
854
|
}
|
|
760
855
|
const m = s === "-" ? c : d[s].children ||= [];
|
|
761
856
|
m.splice(
|
|
762
857
|
Math.max(0, Math.min(o, m.length)),
|
|
763
858
|
0,
|
|
764
859
|
e
|
|
765
|
-
), i.prntBkmkId = s, n({ nodes: d, rootIds: c }),
|
|
860
|
+
), i.prntBkmkId = s, n({ nodes: d, rootIds: c }), j(d, c, s), j(d, c, l);
|
|
766
861
|
try {
|
|
767
|
-
await
|
|
862
|
+
await N("SCMBKMK00104", {
|
|
768
863
|
// 백엔드 명칭 호환
|
|
769
864
|
bkmkId: e,
|
|
770
865
|
prntBkmkId: s,
|
|
@@ -777,7 +872,7 @@ const A = (n) => (r) => {
|
|
|
777
872
|
},
|
|
778
873
|
// ====== 공통: 삭제 ======
|
|
779
874
|
removeNode: async (e) => {
|
|
780
|
-
const s =
|
|
875
|
+
const s = B(r());
|
|
781
876
|
n((o) => {
|
|
782
877
|
if (!o.nodes[e]) return o;
|
|
783
878
|
const t = {
|
|
@@ -786,26 +881,26 @@ const A = (n) => (r) => {
|
|
|
786
881
|
rootIds: o.rootIds.slice(),
|
|
787
882
|
treeNodes: o.treeNodes
|
|
788
883
|
};
|
|
789
|
-
return
|
|
884
|
+
return W(t, e), t.treeNodes = D(t.nodes, t.rootIds), t;
|
|
790
885
|
});
|
|
791
886
|
try {
|
|
792
|
-
await
|
|
887
|
+
await N("SCMBKMK00103", { bkmkId: e });
|
|
793
888
|
} catch (o) {
|
|
794
889
|
throw n(s), o;
|
|
795
890
|
}
|
|
796
891
|
},
|
|
797
892
|
// ====== 공통: 수정 ======
|
|
798
893
|
editNode: async ({ bkmkId: e, userId: s, bkmkNm: o, prntBkmkId: t, sortOrdr: a }) => {
|
|
799
|
-
const d =
|
|
894
|
+
const d = B(r());
|
|
800
895
|
n((c) => {
|
|
801
|
-
const i = { ...c, nodes: { ...c.nodes } },
|
|
802
|
-
return
|
|
803
|
-
...
|
|
896
|
+
const i = { ...c, nodes: { ...c.nodes } }, l = i.nodes[e];
|
|
897
|
+
return l?.type === "F" && typeof o == "string" && (i.nodes[e] = {
|
|
898
|
+
...l,
|
|
804
899
|
bkmkNm: o
|
|
805
900
|
}), i;
|
|
806
901
|
});
|
|
807
902
|
try {
|
|
808
|
-
await
|
|
903
|
+
await N("SCMBKMK00102", {
|
|
809
904
|
iudFlag: "U",
|
|
810
905
|
userId: s,
|
|
811
906
|
bkmkId: e,
|
|
@@ -843,8 +938,8 @@ const A = (n) => (r) => {
|
|
|
843
938
|
await r().removeNode(t.bkmkId);
|
|
844
939
|
return;
|
|
845
940
|
}
|
|
846
|
-
let a =
|
|
847
|
-
a || (await r().loadFavorites(e, !0), a =
|
|
941
|
+
let a = x(o);
|
|
942
|
+
a || (await r().loadFavorites(e, !0), a = x(r())), a && await r().addNode({
|
|
848
943
|
type: "M",
|
|
849
944
|
prntBkmkId: a,
|
|
850
945
|
sysCd: "KH",
|
|
@@ -878,33 +973,33 @@ const A = (n) => (r) => {
|
|
|
878
973
|
const i = e[c];
|
|
879
974
|
if (!i || t && i.type !== "F") return null;
|
|
880
975
|
if (i.type === "F") {
|
|
881
|
-
const
|
|
882
|
-
return a(
|
|
883
|
-
key:
|
|
976
|
+
const l = i, f = (l.children || []).map((u) => d(u)).filter(Boolean);
|
|
977
|
+
return a(l.bkmkNm) || f.length > 0 ? {
|
|
978
|
+
key: l.bkmkId,
|
|
884
979
|
type: "F",
|
|
885
|
-
title: `📁 ${
|
|
886
|
-
bkmkNm:
|
|
887
|
-
prntBkmkId:
|
|
888
|
-
sortOrdr:
|
|
889
|
-
fullPath:
|
|
890
|
-
children:
|
|
980
|
+
title: `📁 ${l.bkmkNm}`,
|
|
981
|
+
bkmkNm: l.bkmkNm,
|
|
982
|
+
prntBkmkId: l.prntBkmkId,
|
|
983
|
+
sortOrdr: l.sortOrdr,
|
|
984
|
+
fullPath: l.fullPath,
|
|
985
|
+
children: f.length ? f : void 0
|
|
891
986
|
} : null;
|
|
892
987
|
} else {
|
|
893
|
-
const
|
|
894
|
-
return a(
|
|
895
|
-
key:
|
|
988
|
+
const l = i, f = l.menuNm ? `${l.menuNm} (${l.menuId})` : l.menuId;
|
|
989
|
+
return a(f) ? {
|
|
990
|
+
key: l.bkmkId,
|
|
896
991
|
type: "M",
|
|
897
|
-
title: `📄 ${
|
|
898
|
-
prntBkmkId:
|
|
899
|
-
sortOrdr:
|
|
900
|
-
fullPath:
|
|
992
|
+
title: `📄 ${f}`,
|
|
993
|
+
prntBkmkId: l.prntBkmkId,
|
|
994
|
+
sortOrdr: l.sortOrdr,
|
|
995
|
+
fullPath: l.fullPath,
|
|
901
996
|
isLeaf: !0
|
|
902
997
|
} : null;
|
|
903
998
|
}
|
|
904
999
|
};
|
|
905
1000
|
return s.map(d).filter(Boolean);
|
|
906
1001
|
}
|
|
907
|
-
}),
|
|
1002
|
+
}), J = b(de);
|
|
908
1003
|
function ce(n) {
|
|
909
1004
|
const r = {}, e = [], s = (o) => {
|
|
910
1005
|
o.forEach((t) => {
|
|
@@ -944,7 +1039,7 @@ function ce(n) {
|
|
|
944
1039
|
);
|
|
945
1040
|
}), { nodes: r, rootIds: e };
|
|
946
1041
|
}
|
|
947
|
-
function
|
|
1042
|
+
function B(n) {
|
|
948
1043
|
return {
|
|
949
1044
|
...n,
|
|
950
1045
|
nodes: JSON.parse(JSON.stringify(n.nodes)),
|
|
@@ -954,7 +1049,7 @@ function _(n) {
|
|
|
954
1049
|
function pe() {
|
|
955
1050
|
return `tmp_${Math.random().toString(36).slice(2, 10)}`;
|
|
956
1051
|
}
|
|
957
|
-
function
|
|
1052
|
+
function U(n, r) {
|
|
958
1053
|
if (!r || r === "-") return n.rootIds.length;
|
|
959
1054
|
const e = n.nodes[r];
|
|
960
1055
|
return e ? e.children.length : 0;
|
|
@@ -979,10 +1074,10 @@ function ie(n, r) {
|
|
|
979
1074
|
} else
|
|
980
1075
|
n.rootIds = n.rootIds.filter((o) => o !== r);
|
|
981
1076
|
}
|
|
982
|
-
function
|
|
1077
|
+
function W(n, r) {
|
|
983
1078
|
const e = n.nodes[r];
|
|
984
1079
|
if (!e) return;
|
|
985
|
-
e.type === "F" && e.children.slice().forEach((a) =>
|
|
1080
|
+
e.type === "F" && e.children.slice().forEach((a) => W(n, a)), ie(n, r);
|
|
986
1081
|
const { [r]: s, ...o } = n.nodes;
|
|
987
1082
|
n.nodes = o;
|
|
988
1083
|
}
|
|
@@ -1005,14 +1100,14 @@ function ue(n, r, e) {
|
|
|
1005
1100
|
a = n.rootIds.map((d) => d === r ? e : d);
|
|
1006
1101
|
return { ...n, nodes: t, rootIds: a };
|
|
1007
1102
|
}
|
|
1008
|
-
function
|
|
1103
|
+
function x(n) {
|
|
1009
1104
|
return n.rootIds.find((r) => n.nodes[r]?.type === "F") ?? null;
|
|
1010
1105
|
}
|
|
1011
|
-
function
|
|
1106
|
+
function D(n, r) {
|
|
1012
1107
|
const e = {};
|
|
1013
1108
|
Object.values(n).forEach((c) => {
|
|
1014
|
-
const i = c.bkmkId,
|
|
1015
|
-
!i || !
|
|
1109
|
+
const i = c.bkmkId, l = c.prntBkmkId;
|
|
1110
|
+
!i || !l || l === "-" || l === i || (e[l] ??= []).push(i);
|
|
1016
1111
|
});
|
|
1017
1112
|
const s = /* @__PURE__ */ new Set(), o = (c) => {
|
|
1018
1113
|
if (s.has(c)) return null;
|
|
@@ -1021,23 +1116,23 @@ function P(n, r) {
|
|
|
1021
1116
|
s.add(c);
|
|
1022
1117
|
try {
|
|
1023
1118
|
if (i.type === "F") {
|
|
1024
|
-
const
|
|
1119
|
+
const f = i, m = e[c] ?? [];
|
|
1025
1120
|
return {
|
|
1026
1121
|
type: "F",
|
|
1027
1122
|
bkmkId: c,
|
|
1028
|
-
bkmkNm:
|
|
1029
|
-
prntBkmkId:
|
|
1123
|
+
bkmkNm: f.bkmkNm,
|
|
1124
|
+
prntBkmkId: f.prntBkmkId,
|
|
1030
1125
|
children: m.map(o).filter(Boolean)
|
|
1031
1126
|
};
|
|
1032
1127
|
}
|
|
1033
|
-
const
|
|
1128
|
+
const l = i;
|
|
1034
1129
|
return {
|
|
1035
1130
|
type: "M",
|
|
1036
1131
|
bkmkId: c,
|
|
1037
|
-
bkmkNm:
|
|
1038
|
-
menuId:
|
|
1039
|
-
menuNm:
|
|
1040
|
-
prntBkmkId:
|
|
1132
|
+
bkmkNm: l.menuNm,
|
|
1133
|
+
menuId: l.menuId,
|
|
1134
|
+
menuNm: l.menuNm,
|
|
1135
|
+
prntBkmkId: l.prntBkmkId
|
|
1041
1136
|
};
|
|
1042
1137
|
} finally {
|
|
1043
1138
|
s.delete(c);
|
|
@@ -1052,28 +1147,28 @@ function O(n, r) {
|
|
|
1052
1147
|
if (e.type === "M" && e.menuId === r) return e.bkmkId;
|
|
1053
1148
|
return null;
|
|
1054
1149
|
}
|
|
1055
|
-
function
|
|
1150
|
+
function j(n, r, e) {
|
|
1056
1151
|
(!e || e === "-" ? r : n[e].children || []).forEach((o, t) => {
|
|
1057
1152
|
const a = n[o];
|
|
1058
1153
|
a && (a.sortOrdr = t);
|
|
1059
1154
|
});
|
|
1060
1155
|
}
|
|
1061
|
-
const
|
|
1156
|
+
const T = {
|
|
1062
1157
|
DEFAULT_PRNT_GBCD: 1
|
|
1063
|
-
}, me = (n) => n && typeof n == "object" && typeof n.menuId == "string" && typeof n.menuNm == "string",
|
|
1064
|
-
let K = [],
|
|
1158
|
+
}, me = (n) => n && typeof n == "object" && typeof n.menuId == "string" && typeof n.menuNm == "string", z = (n) => Array.isArray(n) && n.every(me);
|
|
1159
|
+
let K = [], Y = [];
|
|
1065
1160
|
const Ce = (n) => {
|
|
1066
1161
|
if (n && typeof n == "object") {
|
|
1067
1162
|
const r = n;
|
|
1068
|
-
if (r.menus &&
|
|
1069
|
-
if (
|
|
1163
|
+
if (r.menus && z(r.menus)) return r.menus;
|
|
1164
|
+
if (z(n)) return n;
|
|
1070
1165
|
}
|
|
1071
1166
|
return console.warn("⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다."), [];
|
|
1072
|
-
},
|
|
1167
|
+
}, he = (n, r) => !!r && n.crprCd === r.crprCd && n.userId === r.userId && (n.prntGbcd ?? T.DEFAULT_PRNT_GBCD) === (r.prntGbcd ?? T.DEFAULT_PRNT_GBCD), fe = (n) => {
|
|
1073
1168
|
if (K.length === n.length && K.every(
|
|
1074
1169
|
(t, a) => t.menuId === n[a]?.menuId && t.menuPrntId === n[a]?.menuPrntId
|
|
1075
1170
|
))
|
|
1076
|
-
return
|
|
1171
|
+
return Y;
|
|
1077
1172
|
if (!n.length) return [];
|
|
1078
1173
|
const r = /* @__PURE__ */ new Map(), e = [];
|
|
1079
1174
|
n.forEach((t) => t?.menuId && r.set(t.menuId, { ...t, children: [] })), n.forEach((t) => {
|
|
@@ -1084,8 +1179,8 @@ const Ce = (n) => {
|
|
|
1084
1179
|
...a,
|
|
1085
1180
|
children: a.children && a.children.length ? s(a.children) : void 0
|
|
1086
1181
|
})), o = s(e);
|
|
1087
|
-
return K = [...n],
|
|
1088
|
-
}, R =
|
|
1182
|
+
return K = [...n], Y = o, o;
|
|
1183
|
+
}, R = b((n, r) => ({
|
|
1089
1184
|
// 📊 초기 상태값
|
|
1090
1185
|
menuList: [],
|
|
1091
1186
|
flatMenuList: [],
|
|
@@ -1098,15 +1193,15 @@ const Ce = (n) => {
|
|
|
1098
1193
|
const t = {
|
|
1099
1194
|
crprCd: e,
|
|
1100
1195
|
userId: s,
|
|
1101
|
-
prntGbcd: o ??
|
|
1196
|
+
prntGbcd: o ?? T.DEFAULT_PRNT_GBCD
|
|
1102
1197
|
};
|
|
1103
|
-
if (
|
|
1198
|
+
if (he(t, r()._lastFetchParams)) {
|
|
1104
1199
|
console.log("✅ 중복 fetch 차단", t);
|
|
1105
1200
|
return;
|
|
1106
1201
|
}
|
|
1107
1202
|
n({ isLoading: !0, error: null, _lastFetchParams: t });
|
|
1108
1203
|
try {
|
|
1109
|
-
const a = await
|
|
1204
|
+
const a = await N(w("AUTH_MENU"), t), d = Ce(a), c = fe(d);
|
|
1110
1205
|
n({
|
|
1111
1206
|
flatMenuList: d,
|
|
1112
1207
|
// 평면 리스트 저장
|
|
@@ -1137,7 +1232,7 @@ const Ce = (n) => {
|
|
|
1137
1232
|
}
|
|
1138
1233
|
})), F = {
|
|
1139
1234
|
MAX_TABS: 15
|
|
1140
|
-
},
|
|
1235
|
+
}, Z = b((n, r) => ({
|
|
1141
1236
|
// 📊 초기 상태값
|
|
1142
1237
|
activeMenuId: null,
|
|
1143
1238
|
activeMenuItem: null,
|
|
@@ -1301,7 +1396,7 @@ const Ce = (n) => {
|
|
|
1301
1396
|
}),
|
|
1302
1397
|
// 컴포넌트 라벨 맵 설정
|
|
1303
1398
|
setComponentLabelMap: (e, s) => n({ componentLabelMap: e })
|
|
1304
|
-
})), Ie =
|
|
1399
|
+
})), Ie = b((n, r) => ({
|
|
1305
1400
|
popups: [],
|
|
1306
1401
|
activePopupId: null,
|
|
1307
1402
|
isLoading: !1,
|
|
@@ -1312,8 +1407,8 @@ const Ce = (n) => {
|
|
|
1312
1407
|
n({ isLoading: !0, error: null });
|
|
1313
1408
|
try {
|
|
1314
1409
|
let t = null;
|
|
1315
|
-
const a = await
|
|
1316
|
-
crprCd:
|
|
1410
|
+
const a = await N(w("SRCH_POPU"), {
|
|
1411
|
+
crprCd: ee()?.crprCd,
|
|
1317
1412
|
popuCd: e
|
|
1318
1413
|
});
|
|
1319
1414
|
t = a?.mstr;
|
|
@@ -1322,7 +1417,7 @@ const Ce = (n) => {
|
|
|
1322
1417
|
const u = `팝업 정보를 찾을 수 없습니다: ${e}`;
|
|
1323
1418
|
throw console.error(u), new Error(u);
|
|
1324
1419
|
}
|
|
1325
|
-
const i = ((u) => `/src/pages/views/popup/${u}`)(t.popuUrl),
|
|
1420
|
+
const i = ((u) => `/src/pages/views/popup/${u}`)(t.popuUrl), l = r().zIndexSeed + 1, f = {
|
|
1326
1421
|
popupId: `popup_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
1327
1422
|
popupCode: e,
|
|
1328
1423
|
//config.title을 통해 팝업 제목 변경 가능
|
|
@@ -1336,7 +1431,7 @@ const Ce = (n) => {
|
|
|
1336
1431
|
buttonList: d,
|
|
1337
1432
|
// 버튼 목록 추가
|
|
1338
1433
|
config: o,
|
|
1339
|
-
zIndex:
|
|
1434
|
+
zIndex: l
|
|
1340
1435
|
}, m = r().popups.find((u) => u.popupCode === e);
|
|
1341
1436
|
if (m) {
|
|
1342
1437
|
n({
|
|
@@ -1349,10 +1444,10 @@ const Ce = (n) => {
|
|
|
1349
1444
|
return;
|
|
1350
1445
|
}
|
|
1351
1446
|
n((u) => ({
|
|
1352
|
-
popups: [...u.popups,
|
|
1353
|
-
activePopupId:
|
|
1447
|
+
popups: [...u.popups, f],
|
|
1448
|
+
activePopupId: f.popupId,
|
|
1354
1449
|
isLoading: !1,
|
|
1355
|
-
zIndexSeed:
|
|
1450
|
+
zIndexSeed: l
|
|
1356
1451
|
}));
|
|
1357
1452
|
} catch (t) {
|
|
1358
1453
|
n({
|
|
@@ -1363,32 +1458,32 @@ const Ce = (n) => {
|
|
|
1363
1458
|
},
|
|
1364
1459
|
// 로컬 팝업 열기 (DB 조회 없이 레지스트리 매핑으로 렌더)
|
|
1365
1460
|
openCorePopup: (e, s) => {
|
|
1366
|
-
const o = `popup_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, t = r().zIndexSeed + 1, d =
|
|
1461
|
+
const o = `popup_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, t = r().zIndexSeed + 1, d = se[e]?.defaultConfig || {}, c = {
|
|
1367
1462
|
...d,
|
|
1368
1463
|
...s,
|
|
1369
1464
|
// buttons와 callback은 완전히 덮어쓰기 (병합하지 않음)
|
|
1370
1465
|
buttons: s?.buttons !== void 0 ? s.buttons : d.buttons,
|
|
1371
1466
|
callback: s?.callback !== void 0 ? s.callback : d.callback
|
|
1372
|
-
}, i = s?.defaultParams || {},
|
|
1467
|
+
}, i = s?.defaultParams || {}, l = r().popups.find(
|
|
1373
1468
|
(m) => m.popupCode === e && m.isLocal
|
|
1374
1469
|
);
|
|
1375
|
-
if (
|
|
1470
|
+
if (l) {
|
|
1376
1471
|
const m = r().zIndexSeed + 1;
|
|
1377
|
-
n({ activePopupId:
|
|
1472
|
+
n({ activePopupId: l.popupId, zIndexSeed: m }), n((u) => ({
|
|
1378
1473
|
popups: u.popups.map(
|
|
1379
|
-
(
|
|
1380
|
-
...
|
|
1474
|
+
(h) => h.popupId === l.popupId ? {
|
|
1475
|
+
...h,
|
|
1381
1476
|
config: c,
|
|
1382
1477
|
zIndex: m,
|
|
1383
1478
|
close: () => {
|
|
1384
|
-
r().closePopup(
|
|
1479
|
+
r().closePopup(l.popupId);
|
|
1385
1480
|
}
|
|
1386
|
-
} :
|
|
1481
|
+
} : h
|
|
1387
1482
|
)
|
|
1388
1483
|
}));
|
|
1389
1484
|
return;
|
|
1390
1485
|
}
|
|
1391
|
-
const
|
|
1486
|
+
const f = {
|
|
1392
1487
|
popupId: o,
|
|
1393
1488
|
popupCode: e,
|
|
1394
1489
|
popupTitle: c.title || e,
|
|
@@ -1408,7 +1503,7 @@ const Ce = (n) => {
|
|
|
1408
1503
|
}
|
|
1409
1504
|
};
|
|
1410
1505
|
n((m) => ({
|
|
1411
|
-
popups: [...m.popups,
|
|
1506
|
+
popups: [...m.popups, f],
|
|
1412
1507
|
activePopupId: o,
|
|
1413
1508
|
zIndexSeed: t
|
|
1414
1509
|
}));
|
|
@@ -1448,7 +1543,7 @@ const Ce = (n) => {
|
|
|
1448
1543
|
)
|
|
1449
1544
|
}));
|
|
1450
1545
|
}
|
|
1451
|
-
})),
|
|
1546
|
+
})), V = b()(
|
|
1452
1547
|
M(
|
|
1453
1548
|
(n, r) => ({
|
|
1454
1549
|
systemMap: [],
|
|
@@ -1850,7 +1945,7 @@ const Ce = (n) => {
|
|
|
1850
1945
|
// localStorage key
|
|
1851
1946
|
}
|
|
1852
1947
|
)
|
|
1853
|
-
),
|
|
1948
|
+
), De = b((n) => ({
|
|
1854
1949
|
requestCount: 0,
|
|
1855
1950
|
loading: !1,
|
|
1856
1951
|
showLoading: () => n((r) => {
|
|
@@ -1861,7 +1956,7 @@ const Ce = (n) => {
|
|
|
1861
1956
|
const e = Math.max(0, r.requestCount - 1);
|
|
1862
1957
|
return { requestCount: e, loading: e > 0 };
|
|
1863
1958
|
})
|
|
1864
|
-
})),
|
|
1959
|
+
})), Oe = b((n) => ({
|
|
1865
1960
|
requestCount: 0,
|
|
1866
1961
|
loading: !1,
|
|
1867
1962
|
showLoading: () => n((r) => {
|
|
@@ -1874,37 +1969,37 @@ const Ce = (n) => {
|
|
|
1874
1969
|
})
|
|
1875
1970
|
}));
|
|
1876
1971
|
function ye() {
|
|
1877
|
-
const [n, r] =
|
|
1972
|
+
const [n, r] = X(!1), e = q((s) => {
|
|
1878
1973
|
const o = s?.getModifierState?.("CapsLock");
|
|
1879
1974
|
typeof o == "boolean" && r(o);
|
|
1880
1975
|
}, []);
|
|
1881
1976
|
return { capsOn: n, onKeyDown: e };
|
|
1882
1977
|
}
|
|
1883
|
-
function
|
|
1978
|
+
function Fe(n) {
|
|
1884
1979
|
const {
|
|
1885
1980
|
loginApi: r,
|
|
1886
1981
|
fetchCommonCodes: e,
|
|
1887
1982
|
onAfterLogin: s,
|
|
1888
1983
|
onError: o,
|
|
1889
1984
|
rememberCookie: t = { enabled: !0, days: 30 }
|
|
1890
|
-
} = n, [a, d] =
|
|
1891
|
-
id: t?.enabled ?
|
|
1985
|
+
} = n, [a, d] = X(!1), { capsOn: c, onKeyDown: i } = ye(), l = "SCMSIGN00101", f = `${__SYS_CD__}_login_id`, m = {
|
|
1986
|
+
id: t?.enabled ? te(f) : void 0,
|
|
1892
1987
|
pswr: void 0
|
|
1893
|
-
}, u =
|
|
1894
|
-
async (
|
|
1988
|
+
}, u = q(
|
|
1989
|
+
async (h, C) => {
|
|
1895
1990
|
d(!0);
|
|
1896
1991
|
try {
|
|
1897
1992
|
const g = {
|
|
1898
1993
|
crprCd: "100",
|
|
1899
|
-
id:
|
|
1900
|
-
pswr: await
|
|
1901
|
-
}, y = await (r ?? ((S) =>
|
|
1994
|
+
id: h.id,
|
|
1995
|
+
pswr: await oe(h.pswr)
|
|
1996
|
+
}, y = await (r ?? ((S) => N(l, S)))(g);
|
|
1902
1997
|
if (y?.userInfo?.userId) {
|
|
1903
|
-
if (
|
|
1998
|
+
if (H.getState().setLoginUser(y.userInfo, y?.hrInfo), t?.enabled) {
|
|
1904
1999
|
const S = t.days ?? 30;
|
|
1905
|
-
|
|
2000
|
+
h.remember ? $(f, h.id ?? "", S) : $(f, "", 0);
|
|
1906
2001
|
}
|
|
1907
|
-
return e ? await e() : await
|
|
2002
|
+
return e ? await e() : await G.getState().fetchCommonCodes(), s ? s(y, C) : (L.success(`${y.userInfo.userNm}님 환영합니다.`), C("/main")), { user: y.userInfo, response: y };
|
|
1908
2003
|
} else
|
|
1909
2004
|
throw o?.({ user: y.userInfo, response: y, navigate: C }), new Error("사용자 정보가 유효하지 않습니다.");
|
|
1910
2005
|
} catch (g) {
|
|
@@ -1914,7 +2009,7 @@ function Le(n) {
|
|
|
1914
2009
|
}
|
|
1915
2010
|
},
|
|
1916
2011
|
[
|
|
1917
|
-
|
|
2012
|
+
l,
|
|
1918
2013
|
r,
|
|
1919
2014
|
e,
|
|
1920
2015
|
s,
|
|
@@ -1931,33 +2026,33 @@ function Le(n) {
|
|
|
1931
2026
|
doLogin: u
|
|
1932
2027
|
};
|
|
1933
2028
|
}
|
|
1934
|
-
function
|
|
1935
|
-
const n =
|
|
2029
|
+
function Le() {
|
|
2030
|
+
const n = ne();
|
|
1936
2031
|
return () => {
|
|
1937
|
-
|
|
2032
|
+
H.getState().clearLoginUser(), V.getState().clearSystemMap(), G.getState().clearCodes(), R.getState().clearMenu(), Z.getState().clearMenuViewStore(), J.getState().clearFavorites(), n("/login");
|
|
1938
2033
|
};
|
|
1939
2034
|
}
|
|
1940
|
-
const
|
|
2035
|
+
const we = () => G.getState(), _e = () => Ie.getState(), Ae = () => H.getState(), Be = () => J.getState(), Ke = () => R.getState(), Ee = () => Z.getState(), Te = () => V.getState();
|
|
1941
2036
|
export {
|
|
1942
2037
|
ye as useCapsLock,
|
|
1943
|
-
|
|
1944
|
-
|
|
2038
|
+
we as useCode,
|
|
2039
|
+
G as useCodeStore,
|
|
1945
2040
|
Pe as useColorStore,
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
2041
|
+
Be as useFavorite,
|
|
2042
|
+
J as useFavoriteStore,
|
|
2043
|
+
De as useLoadingStore,
|
|
2044
|
+
Fe as useLogin,
|
|
2045
|
+
Le as useLogout,
|
|
2046
|
+
Ke as useMenuModel,
|
|
1952
2047
|
R as useMenuModelStore,
|
|
1953
2048
|
Ee as useMenuView,
|
|
1954
|
-
|
|
2049
|
+
Z as useMenuViewStore,
|
|
1955
2050
|
ve as useOptionStore,
|
|
1956
|
-
|
|
2051
|
+
Oe as usePopupLoadingStore,
|
|
1957
2052
|
_e as usePopupState,
|
|
1958
2053
|
Ie as usePopupStore,
|
|
1959
2054
|
Te as useSystemCode,
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
2055
|
+
V as useSystemStore,
|
|
2056
|
+
Ae as useUser,
|
|
2057
|
+
H as useUserStore
|
|
1963
2058
|
};
|