@bwg-ui/core 1.3.2 → 1.3.3

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 (60) hide show
  1. package/dist/chunks/{CMSearchIntfGwP01-Bx5cpkhH.js → CMSearchIntfGwP01-Co6lrDf9.js} +9 -9
  2. package/dist/chunks/CMSearchIntfGwP01-Do_ZDjmX.cjs +1 -0
  3. package/dist/chunks/{MenuReport-DxJIaW8D.js → MenuReport-BTtoDFz-.js} +146 -141
  4. package/dist/chunks/MenuReport-Bn5NyNel.cjs +1 -0
  5. package/dist/chunks/{common-components-dzN5Nuq0.js → common-components-0IMhPxxg.js} +11521 -10978
  6. package/dist/chunks/common-components-Csd3OioX.cjs +1109 -0
  7. package/dist/chunks/core-components-CX6NGtTh.cjs +1 -0
  8. package/dist/chunks/core-components-Ckwf4Rd7.js +1969 -0
  9. package/dist/chunks/layout-components-BMLp8YAy.cjs +38 -0
  10. package/dist/chunks/{layout-components-B25FFvXj.js → layout-components-DphZY34c.js} +942 -741
  11. package/dist/components/common/index.cjs +1 -1
  12. package/dist/components/common/index.js +1 -1
  13. package/dist/components/core/BwgEmpSearch.d.ts +28 -0
  14. package/dist/components/core/BwgEmpSearch.d.ts.map +1 -0
  15. package/dist/components/core/index.cjs +1 -1
  16. package/dist/components/core/index.js +22 -1846
  17. package/dist/components/guide/index.cjs +1 -1
  18. package/dist/components/guide/index.js +13 -13
  19. package/dist/components/layout/AppWrapper.d.ts +2 -1
  20. package/dist/components/layout/AppWrapper.d.ts.map +1 -1
  21. package/dist/components/layout/BwgCoreLogin.d.ts +1 -2
  22. package/dist/components/layout/BwgCoreLogin.d.ts.map +1 -1
  23. package/dist/components/layout/BwgSessionNotice.d.ts +15 -0
  24. package/dist/components/layout/BwgSessionNotice.d.ts.map +1 -0
  25. package/dist/components/layout/BwgSsoLogin.d.ts +19 -0
  26. package/dist/components/layout/BwgSsoLogin.d.ts.map +1 -0
  27. package/dist/components/layout/custom/ConfigurableHeader.d.ts.map +1 -1
  28. package/dist/components/layout/index.cjs +1 -1
  29. package/dist/components/layout/index.d.ts +2 -0
  30. package/dist/components/layout/index.d.ts.map +1 -1
  31. package/dist/components/layout/index.js +16 -14
  32. package/dist/components/pages/board/CMAdminBoardM01.d.ts.map +1 -1
  33. package/dist/components/pages/board/CMMyBoardM01.d.ts.map +1 -1
  34. package/dist/components/popup/MenuReport.d.ts.map +1 -1
  35. package/dist/components/popup/SearchOrganizationP01.d.ts +1 -1
  36. package/dist/components/popup/SearchOrganizationP01.d.ts.map +1 -1
  37. package/dist/components/popup/index.cjs +1 -1
  38. package/dist/components/popup/index.js +1 -1
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.js +160 -157
  41. package/dist/stores/index.cjs +2 -2
  42. package/dist/stores/index.d.ts +2 -1
  43. package/dist/stores/index.d.ts.map +1 -1
  44. package/dist/stores/index.js +368 -335
  45. package/dist/stores/loginStore.d.ts +55 -10
  46. package/dist/stores/loginStore.d.ts.map +1 -1
  47. package/dist/stores/userStore.d.ts +1 -2
  48. package/dist/stores/userStore.d.ts.map +1 -1
  49. package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
  50. package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
  51. package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
  52. package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
  53. package/dist/utils/index.cjs +1 -1
  54. package/dist/utils/index.d.ts.map +1 -1
  55. package/dist/utils/index.js +455 -454
  56. package/package.json +1 -1
  57. package/dist/chunks/CMSearchIntfGwP01-Uhl4uqiV.cjs +0 -1
  58. package/dist/chunks/MenuReport-CPwq8w-z.cjs +0 -1
  59. package/dist/chunks/common-components-Dd_AsKs7.cjs +0 -1109
  60. package/dist/chunks/layout-components-Cz7Zets7.cjs +0 -35
@@ -1,9 +1,9 @@
1
- import { create as N } from "zustand";
2
- import { callService as b, getServiceCode as F, getUserId as v, getUserInfo as ee, getCookie as te, encryptSha256 as oe, setCookie as $ } from "../utils/index.js";
3
- import { message as K, Modal as se } from "antd";
4
- import { l as ne } from "../chunks/layout-components-B25FFvXj.js";
5
- import { useState as X, useCallback as W } from "react";
6
- import { useNavigate as re } from "react-router-dom";
1
+ import { create as b } from "zustand";
2
+ import { callService as S, getServiceCode as _, getUserId as v, getUserInfo as te, getCookie as oe, encryptSha256 as X, setCookie as x } from "../utils/index.js";
3
+ import { message as B, Modal as se } from "antd";
4
+ import { l as ne } from "../chunks/layout-components-DphZY34c.js";
5
+ import { useState as H, useCallback as U } from "react";
6
+ import re from "axios";
7
7
  function ae(n, r) {
8
8
  let e;
9
9
  try {
@@ -21,12 +21,12 @@ function ae(n, r) {
21
21
  removeItem: (o) => e.removeItem(o)
22
22
  };
23
23
  }
24
- const B = (n) => (r) => {
24
+ const G = (n) => (r) => {
25
25
  try {
26
26
  const e = n(r);
27
27
  return e instanceof Promise ? e : {
28
28
  then(s) {
29
- return B(s)(e);
29
+ return G(s)(e);
30
30
  },
31
31
  catch(s) {
32
32
  return this;
@@ -38,18 +38,18 @@ const B = (n) => (r) => {
38
38
  return this;
39
39
  },
40
40
  catch(s) {
41
- return B(s)(e);
41
+ return G(s)(e);
42
42
  }
43
43
  };
44
44
  }
45
45
  }, de = (n, r) => (e, s, o) => {
46
46
  let t = {
47
47
  storage: ae(() => localStorage),
48
- partialize: (C) => C,
48
+ partialize: (h) => h,
49
49
  version: 0,
50
- merge: (C, g) => ({
51
- ...g,
52
- ...C
50
+ merge: (h, N) => ({
51
+ ...N,
52
+ ...h
53
53
  }),
54
54
  ...r
55
55
  }, a = !1;
@@ -57,89 +57,89 @@ const B = (n) => (r) => {
57
57
  let i = t.storage;
58
58
  if (!i)
59
59
  return n(
60
- (...C) => {
60
+ (...h) => {
61
61
  console.warn(
62
62
  `[zustand persist middleware] Unable to update item '${t.name}', the given storage is currently unavailable.`
63
- ), e(...C);
63
+ ), e(...h);
64
64
  },
65
65
  s,
66
66
  o
67
67
  );
68
- const l = () => {
69
- const C = t.partialize({ ...s() });
68
+ const p = () => {
69
+ const h = t.partialize({ ...s() });
70
70
  return i.setItem(t.name, {
71
- state: C,
71
+ state: h,
72
72
  version: t.version
73
73
  });
74
- }, h = o.setState;
75
- o.setState = (C, g) => (h(C, g), l());
74
+ }, f = o.setState;
75
+ o.setState = (h, N) => (f(h, N), p());
76
76
  const m = n(
77
- (...C) => (e(...C), l()),
77
+ (...h) => (e(...h), p()),
78
78
  s,
79
79
  o
80
80
  );
81
81
  o.getInitialState = () => m;
82
82
  let u;
83
- const f = () => {
84
- var C, g;
83
+ const C = () => {
84
+ var h, N;
85
85
  if (!i) return;
86
- a = !1, d.forEach((I) => {
87
- var S;
88
- return I((S = s()) != null ? S : m);
86
+ a = !1, d.forEach((y) => {
87
+ var M;
88
+ return y((M = s()) != null ? M : m);
89
89
  });
90
- const k = ((g = t.onRehydrateStorage) == null ? void 0 : g.call(t, (C = s()) != null ? C : m)) || void 0;
91
- return B(i.getItem.bind(i))(t.name).then((I) => {
92
- if (I)
93
- if (typeof I.version == "number" && I.version !== t.version) {
90
+ const g = ((N = t.onRehydrateStorage) == null ? void 0 : N.call(t, (h = s()) != null ? h : m)) || void 0;
91
+ return G(i.getItem.bind(i))(t.name).then((y) => {
92
+ if (y)
93
+ if (typeof y.version == "number" && y.version !== t.version) {
94
94
  if (t.migrate) {
95
- const S = t.migrate(
96
- I.state,
97
- I.version
95
+ const M = t.migrate(
96
+ y.state,
97
+ y.version
98
98
  );
99
- return S instanceof Promise ? S.then((T) => [!0, T]) : [!0, S];
99
+ return M instanceof Promise ? M.then((T) => [!0, T]) : [!0, M];
100
100
  }
101
101
  console.error(
102
102
  "State loaded from storage couldn't be migrated since no migrate function was provided"
103
103
  );
104
104
  } else
105
- return [!1, I.state];
105
+ return [!1, y.state];
106
106
  return [!1, void 0];
107
- }).then((I) => {
108
- var S;
109
- const [T, Q] = I;
107
+ }).then((y) => {
108
+ var M;
109
+ const [T, ee] = y;
110
110
  if (u = t.merge(
111
- Q,
112
- (S = s()) != null ? S : m
111
+ ee,
112
+ (M = s()) != null ? M : m
113
113
  ), e(u, !0), T)
114
- return l();
114
+ return p();
115
115
  }).then(() => {
116
- k?.(u, void 0), u = s(), a = !0, c.forEach((I) => I(u));
117
- }).catch((I) => {
118
- k?.(void 0, I);
116
+ g?.(u, void 0), u = s(), a = !0, c.forEach((y) => y(u));
117
+ }).catch((y) => {
118
+ g?.(void 0, y);
119
119
  });
120
120
  };
121
121
  return o.persist = {
122
- setOptions: (C) => {
122
+ setOptions: (h) => {
123
123
  t = {
124
124
  ...t,
125
- ...C
126
- }, C.storage && (i = C.storage);
125
+ ...h
126
+ }, h.storage && (i = h.storage);
127
127
  },
128
128
  clearStorage: () => {
129
129
  i?.removeItem(t.name);
130
130
  },
131
131
  getOptions: () => t,
132
- rehydrate: () => f(),
132
+ rehydrate: () => C(),
133
133
  hasHydrated: () => a,
134
- onHydrate: (C) => (d.add(C), () => {
135
- d.delete(C);
134
+ onHydrate: (h) => (d.add(h), () => {
135
+ d.delete(h);
136
136
  }),
137
- onFinishHydration: (C) => (c.add(C), () => {
138
- c.delete(C);
137
+ onFinishHydration: (h) => (c.add(h), () => {
138
+ c.delete(h);
139
139
  })
140
- }, t.skipHydration || f(), u || m;
141
- }, M = de, H = N()(
142
- M(
140
+ }, t.skipHydration || C(), u || m;
141
+ }, k = de, w = b()(
142
+ k(
143
143
  (n, r) => ({
144
144
  user: null,
145
145
  hrInfo: null,
@@ -260,17 +260,16 @@ const B = (n) => (r) => {
260
260
  enableProtectWrapper: n.enableProtectWrapper,
261
261
  gridLayouts: n.gridLayouts,
262
262
  // 그리드 레이아웃 정보 저장
263
- theme: n.theme,
263
+ theme: n.theme
264
264
  // 테마 정보 저장
265
- isLoggedIn: n.isLoggedIn
266
265
  // buttonAuthCache는 세션 동안만 유지 (localStorage에 저장 안 함)
267
266
  })
268
267
  // 저장할 상태만 선택
269
268
  }
270
269
  )
271
- ), w = {
270
+ ), A = {
272
271
  CACHE_SIZE_LIMIT: 1e3
273
- }, p = {
272
+ }, l = {
274
273
  codeCache: /* @__PURE__ */ new Map(),
275
274
  nameCache: /* @__PURE__ */ new Map(),
276
275
  optionCache: /* @__PURE__ */ new Map(),
@@ -292,7 +291,7 @@ const B = (n) => (r) => {
292
291
  markGroupLoaded(n) {
293
292
  this.loadedGroups.add(n);
294
293
  }
295
- }, P = (n) => {
294
+ }, L = (n) => {
296
295
  console.log("대규모 데이터 변환 시작:", n);
297
296
  const r = {};
298
297
  if (n && n.code && Array.isArray(n.code)) {
@@ -303,7 +302,7 @@ const B = (n) => (r) => {
303
302
  if (t && t.cmmnCdGrp && t.cmmnCd && t.enblYn === "Y") {
304
303
  const a = t.cmmnCdGrp;
305
304
  r[a] || (r[a] = {});
306
- const c = (o.get(t.cmmnCd) || []).reduce((i, l) => (l.optnCd && l.optnNm && (i[l.optnCd] = l.optnNm), i), {});
305
+ const c = (o.get(t.cmmnCd) || []).reduce((i, p) => (p.optnCd && p.optnNm && (i[p.optnCd] = p.optnNm), i), {});
307
306
  r[a][t.cmmnCd] = {
308
307
  codeValue: t.cmmnCd,
309
308
  codeNm: t.cmmnCdNm,
@@ -320,8 +319,8 @@ const B = (n) => (r) => {
320
319
  });
321
320
  }
322
321
  return console.log("대규모 데이터 변환 완료:", r), r;
323
- }, y = N()(
324
- M(
322
+ }, I = b()(
323
+ k(
325
324
  (n, r) => ({
326
325
  codeData: null,
327
326
  isLoading: !1,
@@ -333,19 +332,19 @@ const B = (n) => (r) => {
333
332
  n({ isLoading: !0, error: null });
334
333
  try {
335
334
  console.log("시스템 공통코드 데이터 가져오기 시작: SCMSIGN00301");
336
- const e = await b(F("SRCH_CODE"), {
335
+ const e = await S(_("SRCH_CODE"), {
337
336
  crprCd: "100"
338
337
  });
339
338
  console.log("시스템 공통코드 응답:", e), console.log("시스템 공통코드목록:", e.code), console.log("시스템 공통코드옵션목록:", e.opt);
340
- const s = P(e), t = {
339
+ const s = L(e), t = {
341
340
  ...r().codeData || {},
342
341
  ...s
343
342
  // 시스템 공통코드가 우선 (같은 그룹코드가 있으면 덮어씀)
344
343
  };
345
- p.clearCache();
344
+ l.clearCache();
346
345
  const a = new Set(Object.keys(t));
347
346
  a.forEach((d) => {
348
- p.markGroupLoaded(d);
347
+ l.markGroupLoaded(d);
349
348
  }), n({
350
349
  codeData: t,
351
350
  isLoading: !1,
@@ -365,19 +364,19 @@ const B = (n) => (r) => {
365
364
  n({ isLoading: !0, error: null });
366
365
  try {
367
366
  console.log("업무 공통코드 데이터 가져오기 시작: SCMSIGN00302");
368
- const e = await b("SCMSIGN00302", {
367
+ const e = await S("SCMSIGN00302", {
369
368
  sysCd: __SYS_CD__
370
369
  });
371
370
  console.log("업무 공통코드 응답:", e), console.log("업무 공통코드목록:", e.code), console.log("업무 공통코드옵션목록:", e.opt);
372
- const s = P(e), t = {
371
+ const s = L(e), t = {
373
372
  ...r().codeData || {},
374
373
  ...s
375
374
  // 업무 공통코드 추가 (같은 그룹코드가 있으면 덮어씀)
376
375
  };
377
- p.clearCache();
376
+ l.clearCache();
378
377
  const a = new Set(Object.keys(t));
379
378
  a.forEach((d) => {
380
- p.markGroupLoaded(d);
379
+ l.markGroupLoaded(d);
381
380
  }), n({
382
381
  codeData: t,
383
382
  isLoading: !1,
@@ -398,23 +397,23 @@ const B = (n) => (r) => {
398
397
  try {
399
398
  console.log("전체 공통코드 데이터 가져오기 시작 (시스템 + 업무)");
400
399
  const [e, s] = await Promise.all([
401
- b(F("SRCH_CODE"), {
400
+ S(_("SRCH_CODE"), {
402
401
  crprCd: "100"
403
402
  }),
404
- b("SCMSIGN00302", {
403
+ S("SCMSIGN00302", {
405
404
  sysCd: __SYS_CD__
406
405
  })
407
406
  ]);
408
407
  console.log("시스템 공통코드 응답:", e), console.log("업무 공통코드 응답:", s);
409
- const o = P(e), t = P(s), a = {
408
+ const o = L(e), t = L(s), a = {
410
409
  ...o,
411
410
  ...t
412
411
  // 업무 공통코드가 같은 그룹코드를 덮어쓸 수 있음
413
412
  };
414
- p.clearCache();
413
+ l.clearCache();
415
414
  const d = new Set(Object.keys(a));
416
415
  d.forEach((c) => {
417
- p.markGroupLoaded(c);
416
+ l.markGroupLoaded(c);
418
417
  }), n({
419
418
  codeData: a,
420
419
  isLoading: !1,
@@ -433,13 +432,13 @@ const B = (n) => (r) => {
433
432
  const { codeData: s, loadedGroups: o } = r();
434
433
  if (!s || o.has(e)) return;
435
434
  const t = new Set(o).add(e);
436
- n({ loadedGroups: t }), p.markGroupLoaded(e);
435
+ n({ loadedGroups: t }), l.markGroupLoaded(e);
437
436
  },
438
437
  setData: (e) => {
439
- p.clearCache();
438
+ l.clearCache();
440
439
  const s = new Set(Object.keys(e));
441
440
  s.forEach((o) => {
442
- p.markGroupLoaded(o);
441
+ l.markGroupLoaded(o);
443
442
  }), n({
444
443
  codeData: e,
445
444
  lastUpdated: /* @__PURE__ */ new Date(),
@@ -447,7 +446,7 @@ const B = (n) => (r) => {
447
446
  });
448
447
  },
449
448
  clearData: () => {
450
- p.clearCache(), n({
449
+ l.clearCache(), n({
451
450
  codeData: null,
452
451
  isLoading: !1,
453
452
  error: null,
@@ -466,25 +465,25 @@ const B = (n) => (r) => {
466
465
  })
467
466
  }
468
467
  )
469
- ), G = N()(
470
- M(
468
+ ), F = b()(
469
+ k(
471
470
  (n, r) => ({
472
471
  // 공통 데이터 스토어에서 상태 가져오기
473
472
  get codeData() {
474
- return y.getState().codeData;
473
+ return I.getState().codeData;
475
474
  },
476
475
  get isLoading() {
477
- return y.getState().isLoading;
476
+ return I.getState().isLoading;
478
477
  },
479
478
  get error() {
480
- return y.getState().error;
479
+ return I.getState().error;
481
480
  },
482
481
  get lastUpdated() {
483
- return y.getState().lastUpdated;
482
+ return I.getState().lastUpdated;
484
483
  },
485
484
  // 공통코드 가져오기 (중앙 스토어 사용)
486
485
  fetchCommonCodes: async () => {
487
- await y.getState().fetchData();
486
+ await I.getState().fetchData();
488
487
  },
489
488
  // 1. 통합된 코드 목록 조회 (그룹코드 필수, 옵션으로 필터링)
490
489
  getCodeList: (e, s) => {
@@ -494,108 +493,108 @@ const B = (n) => (r) => {
494
493
  sortByOrder: a = !1,
495
494
  excludeParentCode: d = !1
496
495
  } = s || {}, c = `simpleCodeList_${e}_${o}_${t}_${a}_${d}`;
497
- if (p.optionCache.has(c)) {
498
- const f = p.cacheHits.get(c) || 0;
499
- return p.cacheHits.set(c, f + 1), p.optionCache.get(c);
496
+ if (l.optionCache.has(c)) {
497
+ const C = l.cacheHits.get(c) || 0;
498
+ return l.cacheHits.set(c, C + 1), l.optionCache.get(c);
500
499
  }
501
- const i = y.getState().codeData;
500
+ const i = I.getState().codeData;
502
501
  if (!i) return [];
503
- if (!p.isGroupLoaded(e) && !i[e])
502
+ if (!l.isGroupLoaded(e) && !i[e])
504
503
  return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`), [];
505
- const l = [], h = i[e];
506
- h && Object.values(h).forEach((f) => {
507
- if (!(o && !f.enabled) && !(t && f.systemCodeYn !== "Y"))
504
+ const p = [], f = i[e];
505
+ f && Object.values(f).forEach((C) => {
506
+ if (!(o && !C.enabled) && !(t && C.systemCodeYn !== "Y"))
508
507
  if (d) {
509
- const C = e.length, g = f.codeValue.substring(C);
510
- g.length > 0 && l.push({
511
- ...f,
512
- codeValue: g
508
+ const h = e.length, N = C.codeValue.substring(h);
509
+ N.length > 0 && p.push({
510
+ ...C,
511
+ codeValue: N
513
512
  // 자식코드만 사용
514
513
  });
515
514
  } else
516
- l.push(f);
515
+ p.push(C);
517
516
  });
518
517
  let m;
519
- a ? m = l.sort((f, C) => f.sortOrder !== C.sortOrder ? f.sortOrder - C.sortOrder : f.codeValue.localeCompare(C.codeValue)) : m = l.sort(
520
- (f, C) => f.codeValue.localeCompare(C.codeValue)
518
+ a ? m = p.sort((C, h) => C.sortOrder !== h.sortOrder ? C.sortOrder - h.sortOrder : C.codeValue.localeCompare(h.codeValue)) : m = p.sort(
519
+ (C, h) => C.codeValue.localeCompare(h.codeValue)
521
520
  );
522
- const u = m.map((f) => ({
523
- label: f.codeNm,
524
- value: f.codeValue,
525
- tagColor: f.labelColor
521
+ const u = m.map((C) => ({
522
+ label: C.codeNm,
523
+ value: C.codeValue,
524
+ tagColor: C.labelColor
526
525
  }));
527
- return p.optionCache.size >= w.CACHE_SIZE_LIMIT && p.cleanupCache(), p.optionCache.set(c, u), p.cacheHits.set(c, 1), u;
526
+ return l.optionCache.size >= A.CACHE_SIZE_LIMIT && l.cleanupCache(), l.optionCache.set(c, u), l.cacheHits.set(c, 1), u;
528
527
  },
529
528
  // 2. 코드를 던졌을 때 코드명을 리턴 (대규모 최적화)
530
529
  getCodeName: (e) => {
531
- if (p.nameCache.has(e)) {
532
- const o = p.cacheHits.get(`name_${e}`) || 0;
533
- return p.cacheHits.set(`name_${e}`, o + 1), p.nameCache.get(e);
530
+ if (l.nameCache.has(e)) {
531
+ const o = l.cacheHits.get(`name_${e}`) || 0;
532
+ return l.cacheHits.set(`name_${e}`, o + 1), l.nameCache.get(e);
534
533
  }
535
- const s = y.getState().codeData;
534
+ const s = I.getState().codeData;
536
535
  if (!s) return null;
537
536
  for (const o of Object.values(s))
538
537
  for (const t of Object.values(o))
539
538
  if (t.codeValue === e)
540
- return p.nameCache.set(e, t.codeNm), p.cacheHits.set(`name_${e}`, 1), t.codeNm;
539
+ return l.nameCache.set(e, t.codeNm), l.cacheHits.set(`name_${e}`, 1), t.codeNm;
541
540
  return null;
542
541
  },
543
542
  // 3. 코드를 던졌을 때 라벨 컬러를 리턴 (대규모 최적화)
544
543
  getCodeColor: (e) => {
545
- if (p.colorCache.has(e)) {
546
- const o = p.cacheHits.get(`color_${e}`) || 0;
547
- return p.cacheHits.set(`color_${e}`, o + 1), p.colorCache.get(e);
544
+ if (l.colorCache.has(e)) {
545
+ const o = l.cacheHits.get(`color_${e}`) || 0;
546
+ return l.cacheHits.set(`color_${e}`, o + 1), l.colorCache.get(e);
548
547
  }
549
- const s = y.getState().codeData;
548
+ const s = I.getState().codeData;
550
549
  if (!s) return null;
551
550
  for (const o of Object.values(s))
552
551
  for (const t of Object.values(o))
553
552
  if (t.codeValue === e)
554
- return p.colorCache.set(
553
+ return l.colorCache.set(
555
554
  e,
556
555
  t.labelColor || ""
557
- ), p.cacheHits.set(`color_${e}`, 1), t.labelColor;
556
+ ), l.cacheHits.set(`color_${e}`, 1), t.labelColor;
558
557
  return null;
559
558
  },
560
559
  // 4. 그리드 lookup용 데이터 반환 (labels, values 배열, lookupDisplay 포함)
561
560
  getGridLookup: (e) => {
562
561
  const s = `gridLookup_${e}`;
563
- if (p.optionCache.has(s)) {
564
- const i = p.cacheHits.get(s) || 0;
565
- return p.cacheHits.set(s, i + 1), p.optionCache.get(s);
562
+ if (l.optionCache.has(s)) {
563
+ const i = l.cacheHits.get(s) || 0;
564
+ return l.cacheHits.set(s, i + 1), l.optionCache.get(s);
566
565
  }
567
- const o = y.getState().codeData;
566
+ const o = I.getState().codeData;
568
567
  if (!o) return { labels: [], values: [], lookupDisplay: !0 };
569
568
  const t = o[e];
570
569
  if (!t) return { labels: [], values: [], lookupDisplay: !0 };
571
570
  const a = [], d = [];
572
- Object.values(t).filter((i) => i.enabled).sort((i, l) => i.sortOrder - l.sortOrder).forEach((i) => {
571
+ Object.values(t).filter((i) => i.enabled).sort((i, p) => i.sortOrder - p.sortOrder).forEach((i) => {
573
572
  a.push(i.codeNm), d.push(i.codeValue);
574
573
  });
575
574
  const c = { labels: a, values: d, lookupDisplay: !0 };
576
- return p.optionCache.set(s, c), p.cacheHits.set(s, 1), c;
575
+ return l.optionCache.set(s, c), l.cacheHits.set(s, 1), c;
577
576
  },
578
577
  // 3. 옵션값으로 코드를 조회하는 새로운 메서드
579
578
  getCodeByOption: (e, s, o) => {
580
579
  const t = `codeByOption_${e}_${s}_${o}`;
581
- if (p.codeCache.has(t)) {
582
- const l = p.cacheHits.get(t) || 0;
583
- return p.cacheHits.set(t, l + 1), p.codeCache.get(t);
580
+ if (l.codeCache.has(t)) {
581
+ const p = l.cacheHits.get(t) || 0;
582
+ return l.cacheHits.set(t, p + 1), l.codeCache.get(t);
584
583
  }
585
- const a = y.getState().codeData;
584
+ const a = I.getState().codeData;
586
585
  if (!a) return [];
587
586
  const d = [], c = a[e];
588
- c && Object.values(c).forEach((l) => {
589
- l.enabled && l.options && l.options[s] === o && d.push({
590
- ...l,
591
- codeNm: l.options[s] || l.codeNm
587
+ c && Object.values(c).forEach((p) => {
588
+ p.enabled && p.options && p.options[s] === o && d.push({
589
+ ...p,
590
+ codeNm: p.options[s] || p.codeNm
592
591
  // 옵션값을 코드명으로 사용
593
592
  });
594
593
  });
595
594
  const i = d.sort(
596
- (l, h) => l.codeValue.localeCompare(h.codeValue)
595
+ (p, f) => p.codeValue.localeCompare(f.codeValue)
597
596
  );
598
- return p.codeCache.size >= w.CACHE_SIZE_LIMIT && p.cleanupCache(), p.codeCache.set(t, i), p.cacheHits.set(t, 1), i;
597
+ return l.codeCache.size >= A.CACHE_SIZE_LIMIT && l.cleanupCache(), l.codeCache.set(t, i), l.cacheHits.set(t, 1), i;
599
598
  },
600
599
  // 6. 옵션코드별로 코드 목록 조회 (SimpleCodeItem 형태로 반환)
601
600
  getCodeListByOption: (e, s, o) => {
@@ -604,19 +603,19 @@ const B = (n) => (r) => {
604
603
  systemCodeOnly: a = !1,
605
604
  sortByOrder: d = !1
606
605
  } = o || {}, c = `codeListByOption_${e}_${s}_${t}_${a}_${d}`;
607
- if (p.codeCache.has(c)) {
608
- const u = p.cacheHits.get(c) || 0;
609
- return p.cacheHits.set(c, u + 1), p.codeCache.get(
606
+ if (l.codeCache.has(c)) {
607
+ const u = l.cacheHits.get(c) || 0;
608
+ return l.cacheHits.set(c, u + 1), l.codeCache.get(
610
609
  c
611
610
  );
612
611
  }
613
- const i = y.getState().codeData;
612
+ const i = I.getState().codeData;
614
613
  if (!i) return [];
615
- if (!p.isGroupLoaded(e) && !i[e])
614
+ if (!l.isGroupLoaded(e) && !i[e])
616
615
  return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`), [];
617
- const l = [], h = i[e];
618
- h && Object.values(h).forEach((u) => {
619
- t && !u.enabled || a && u.systemCodeYn !== "Y" || u.options && u.options[s] && l.push({
616
+ const p = [], f = i[e];
617
+ f && Object.values(f).forEach((u) => {
618
+ t && !u.enabled || a && u.systemCodeYn !== "Y" || u.options && u.options[s] && p.push({
620
619
  label: u.options[s],
621
620
  // optnNm 값
622
621
  value: u.commonCode,
@@ -626,28 +625,28 @@ const B = (n) => (r) => {
626
625
  });
627
626
  });
628
627
  let m;
629
- return d ? m = l.sort((u, f) => u.value.localeCompare(f.value)) : m = l.sort(
630
- (u, f) => u.value.localeCompare(f.value)
631
- ), p.codeCache.size >= w.CACHE_SIZE_LIMIT && p.cleanupCache(), p.codeCache.set(c, m), p.cacheHits.set(c, 1), m;
628
+ return d ? m = p.sort((u, C) => u.value.localeCompare(C.value)) : m = p.sort(
629
+ (u, C) => u.value.localeCompare(C.value)
630
+ ), l.codeCache.size >= A.CACHE_SIZE_LIMIT && l.cleanupCache(), l.codeCache.set(c, m), l.cacheHits.set(c, 1), m;
632
631
  },
633
632
  // 7. 그룹코드 목록 조회
634
633
  getAvailableGroupCodes: () => {
635
634
  const e = "available_group_codes";
636
- if (p.nameCache.has(e)) {
637
- const t = p.cacheHits.get(e) || 0;
638
- return p.cacheHits.set(e, t + 1), JSON.parse(p.nameCache.get(e));
635
+ if (l.nameCache.has(e)) {
636
+ const t = l.cacheHits.get(e) || 0;
637
+ return l.cacheHits.set(e, t + 1), JSON.parse(l.nameCache.get(e));
639
638
  }
640
- const s = y.getState().codeData;
639
+ const s = I.getState().codeData;
641
640
  if (!s) return [];
642
641
  const o = Object.keys(s).sort();
643
- return p.nameCache.set(
642
+ return l.nameCache.set(
644
643
  e,
645
644
  JSON.stringify(o)
646
- ), p.cacheHits.set(e, 1), o;
645
+ ), l.cacheHits.set(e, 1), o;
647
646
  },
648
647
  // 공통코드 초기화
649
648
  clearCodes: () => {
650
- y.getState().clearData();
649
+ I.getState().clearData();
651
650
  }
652
651
  }),
653
652
  {
@@ -657,55 +656,55 @@ const B = (n) => (r) => {
657
656
  })
658
657
  }
659
658
  )
660
- ), Pe = N()(
661
- M(
659
+ ), Le = b()(
660
+ k(
662
661
  (n, r) => ({
663
662
  // 공통 데이터 스토어에서 상태 가져오기
664
663
  get codeData() {
665
- return y.getState().codeData;
664
+ return I.getState().codeData;
666
665
  },
667
666
  get isLoading() {
668
- return y.getState().isLoading;
667
+ return I.getState().isLoading;
669
668
  },
670
669
  get error() {
671
- return y.getState().error;
670
+ return I.getState().error;
672
671
  },
673
672
  get lastUpdated() {
674
- return y.getState().lastUpdated;
673
+ return I.getState().lastUpdated;
675
674
  },
676
675
  // 공통코드 가져오기 (중앙 스토어 사용)
677
676
  fetchCommonCodes: async () => {
678
- await y.getState().fetchData();
677
+ await I.getState().fetchData();
679
678
  },
680
679
  // 그룹코드와 옵션코드를 던졌을 때 상세코드의 옵션값을 리턴 (대규모 최적화)
681
680
  getOptionValue: (e, s) => {
682
681
  const o = `option_${e}_${s}`;
683
- if (p.optionCache.has(o)) {
684
- const d = p.cacheHits.get(o) || 0;
685
- return p.cacheHits.set(o, d + 1), p.optionCache.get(o);
682
+ if (l.optionCache.has(o)) {
683
+ const d = l.cacheHits.get(o) || 0;
684
+ return l.cacheHits.set(o, d + 1), l.optionCache.get(o);
686
685
  }
687
- const t = y.getState().codeData;
686
+ const t = I.getState().codeData;
688
687
  if (!t) return null;
689
688
  const a = t[e];
690
689
  if (a && a[s]) {
691
690
  const d = a[s].options;
692
- return p.optionCache.set(o, d), p.cacheHits.set(o, 1), d;
691
+ return l.optionCache.set(o, d), l.cacheHits.set(o, 1), d;
693
692
  }
694
693
  return null;
695
694
  },
696
695
  // 특정 옵션 키의 값 가져오기 (대규모 최적화)
697
696
  getOptionByKey: (e, s, o) => {
698
697
  const t = `option_${e}_${s}_${o}`;
699
- if (p.optionCache.has(t)) {
700
- const c = p.cacheHits.get(t) || 0;
701
- return p.cacheHits.set(t, c + 1), p.optionCache.get(t);
698
+ if (l.optionCache.has(t)) {
699
+ const c = l.cacheHits.get(t) || 0;
700
+ return l.cacheHits.set(t, c + 1), l.optionCache.get(t);
702
701
  }
703
702
  const a = r().getOptionValue(e, s), d = a ? a[o] : null;
704
- return p.optionCache.set(t, d), p.cacheHits.set(t, 1), d;
703
+ return l.optionCache.set(t, d), l.cacheHits.set(t, 1), d;
705
704
  },
706
705
  // 공통코드 초기화
707
706
  clearCodes: () => {
708
- y.getState().clearData();
707
+ I.getState().clearData();
709
708
  }
710
709
  }),
711
710
  {
@@ -715,51 +714,51 @@ const B = (n) => (r) => {
715
714
  })
716
715
  }
717
716
  )
718
- ), Le = N()(
719
- M(
717
+ ), Pe = b()(
718
+ k(
720
719
  (n, r) => ({
721
720
  // 공통 데이터 스토어에서 상태 가져오기
722
721
  get codeData() {
723
- return y.getState().codeData;
722
+ return I.getState().codeData;
724
723
  },
725
724
  get isLoading() {
726
- return y.getState().isLoading;
725
+ return I.getState().isLoading;
727
726
  },
728
727
  get error() {
729
- return y.getState().error;
728
+ return I.getState().error;
730
729
  },
731
730
  get lastUpdated() {
732
- return y.getState().lastUpdated;
731
+ return I.getState().lastUpdated;
733
732
  },
734
733
  // 공통코드 가져오기 (중앙 스토어 사용)
735
734
  fetchCommonCodes: async () => {
736
- await y.getState().fetchData();
735
+ await I.getState().fetchData();
737
736
  },
738
737
  // 코드를 던졌을 때 컬러코드를 리턴 (대규모 최적화)
739
738
  getColorCode: (e) => {
740
- if (p.colorCache.has(e)) {
741
- const o = p.cacheHits.get(`color_${e}`) || 0;
742
- return p.cacheHits.set(`color_${e}`, o + 1), p.colorCache.get(e);
739
+ if (l.colorCache.has(e)) {
740
+ const o = l.cacheHits.get(`color_${e}`) || 0;
741
+ return l.cacheHits.set(`color_${e}`, o + 1), l.colorCache.get(e);
743
742
  }
744
- const s = y.getState().codeData;
743
+ const s = I.getState().codeData;
745
744
  if (!s) return null;
746
745
  for (const o of Object.values(s))
747
746
  for (const t of Object.values(o))
748
747
  if (t.codeValue === e)
749
- return p.colorCache.set(
748
+ return l.colorCache.set(
750
749
  e,
751
750
  t.labelColor || ""
752
- ), p.cacheHits.set(`color_${e}`, 1), t.labelColor;
751
+ ), l.cacheHits.set(`color_${e}`, 1), t.labelColor;
753
752
  return null;
754
753
  },
755
754
  // 코드/컬러 매핑 배열 가져오기 (대규모 최적화)
756
755
  getColorMapping: () => {
757
756
  const e = "color_mapping";
758
- if (p.optionCache.has(e)) {
759
- const t = p.cacheHits.get(e) || 0;
760
- return p.cacheHits.set(e, t + 1), p.optionCache.get(e);
757
+ if (l.optionCache.has(e)) {
758
+ const t = l.cacheHits.get(e) || 0;
759
+ return l.cacheHits.set(e, t + 1), l.optionCache.get(e);
761
760
  }
762
- const s = y.getState().codeData;
761
+ const s = I.getState().codeData;
763
762
  if (!s) return [];
764
763
  const o = [];
765
764
  return Object.values(s).forEach((t) => {
@@ -769,11 +768,11 @@ const B = (n) => (r) => {
769
768
  color: a.labelColor
770
769
  });
771
770
  });
772
- }), p.optionCache.set(e, o), p.cacheHits.set(e, 1), o;
771
+ }), l.optionCache.set(e, o), l.cacheHits.set(e, 1), o;
773
772
  },
774
773
  // 공통코드 초기화
775
774
  clearCodes: () => {
776
- y.getState().clearData();
775
+ I.getState().clearData();
777
776
  }
778
777
  }),
779
778
  {
@@ -795,11 +794,11 @@ const B = (n) => (r) => {
795
794
  (s) => s.type === "M" && s.menuId === e
796
795
  ),
797
796
  getPrntBkmkIdByMenuId: (e) => {
798
- const s = D(r().nodes, e);
797
+ const s = O(r().nodes, e);
799
798
  return s ? r().nodes[s]?.prntBkmkId ?? "-" : "-";
800
799
  },
801
800
  getNodeByMenuId: (e) => {
802
- const s = D(r().nodes, e);
801
+ const s = O(r().nodes, e);
803
802
  if (!s) return null;
804
803
  const o = r().nodes[s];
805
804
  return o?.type === "M" ? o : null;
@@ -808,11 +807,11 @@ const B = (n) => (r) => {
808
807
  const { nodes: s, rootIds: o } = r(), t = (d) => e ? d.toLowerCase().includes(e.toLowerCase()) : !0, a = (d) => {
809
808
  const c = s[d];
810
809
  if (!c || c.type !== "F") return null;
811
- const i = c, l = (i.children || []).map((m) => s[m]).filter((m) => !!m && m.type === "F").map((m) => a(m.bkmkId)).filter(Boolean);
812
- return t(i.bkmkNm) || l.length > 0 ? {
810
+ const i = c, p = (i.children || []).map((m) => s[m]).filter((m) => !!m && m.type === "F").map((m) => a(m.bkmkId)).filter(Boolean);
811
+ return t(i.bkmkNm) || p.length > 0 ? {
813
812
  key: i.bkmkId,
814
813
  title: `📁 ${i.bkmkNm}`,
815
- children: l.length ? l : void 0
814
+ children: p.length ? p : void 0
816
815
  } : null;
817
816
  };
818
817
  return o.map((d) => a(d)).filter(Boolean);
@@ -824,7 +823,7 @@ const B = (n) => (r) => {
824
823
  if (!(!s && o.loadedFor === e && Object.keys(o.nodes).length)) {
825
824
  n({ loading: !0, error: void 0 });
826
825
  try {
827
- const t = await b("SCMBKMK00101", { userId: e }), a = Array.isArray(t?.sub) ? t.sub : [], d = pe(a), c = L(
826
+ const t = await S("SCMBKMK00101", { userId: e }), a = Array.isArray(t?.sub) ? t.sub : [], d = pe(a), c = P(
828
827
  d.nodes,
829
828
  d.rootIds
830
829
  );
@@ -855,9 +854,9 @@ const B = (n) => (r) => {
855
854
  },
856
855
  // ====== 공통: 생성 ======
857
856
  addNode: async (e) => {
858
- const s = _(r()), o = le();
857
+ const s = E(r()), o = le();
859
858
  n((t) => {
860
- const a = e.sortOrdr ?? U(t, e.prntBkmkId), d = {
859
+ const a = e.sortOrdr ?? z(t, e.prntBkmkId), d = {
861
860
  ...t,
862
861
  nodes: {
863
862
  ...t.nodes,
@@ -884,11 +883,11 @@ const B = (n) => (r) => {
884
883
  rootIds: t.rootIds.slice(),
885
884
  treeNodes: t.treeNodes
886
885
  };
887
- return ie(d, o, e.prntBkmkId), d.treeNodes = L(d.nodes, d.rootIds), d;
886
+ return ie(d, o, e.prntBkmkId), d.treeNodes = P(d.nodes, d.rootIds), d;
888
887
  });
889
888
  try {
890
889
  let t = o;
891
- const a = U(r(), e.prntBkmkId), d = await b("SCMBKMK00102", {
890
+ const a = z(r(), e.prntBkmkId), d = await S("SCMBKMK00102", {
892
891
  iudFlag: "I",
893
892
  type: e.type,
894
893
  sysCd: e.sysCd,
@@ -905,7 +904,7 @@ const B = (n) => (r) => {
905
904
  const i = me(c, o, t);
906
905
  return {
907
906
  ...i,
908
- treeNodes: L(i.nodes, i.rootIds)
907
+ treeNodes: P(i.nodes, i.rootIds)
909
908
  };
910
909
  }), t;
911
910
  } catch (t) {
@@ -921,19 +920,19 @@ const B = (n) => (r) => {
921
920
  if (!u || u.type !== "F")
922
921
  throw new Error("부모는 폴더만 가능합니다.");
923
922
  }
924
- const l = i.prntBkmkId ?? "-", h = l === "-" ? c : d[l].children ||= [];
923
+ const p = i.prntBkmkId ?? "-", f = p === "-" ? c : d[p].children ||= [];
925
924
  {
926
- const u = h.indexOf(e);
927
- u >= 0 && h.splice(u, 1);
925
+ const u = f.indexOf(e);
926
+ u >= 0 && f.splice(u, 1);
928
927
  }
929
928
  const m = s === "-" ? c : d[s].children ||= [];
930
929
  m.splice(
931
930
  Math.max(0, Math.min(o, m.length)),
932
931
  0,
933
932
  e
934
- ), i.prntBkmkId = s, n({ nodes: d, rootIds: c }), z(d, c, s), z(d, c, l);
933
+ ), i.prntBkmkId = s, n({ nodes: d, rootIds: c }), Y(d, c, s), Y(d, c, p);
935
934
  try {
936
- await b("SCMBKMK00104", {
935
+ await S("SCMBKMK00104", {
937
936
  // 백엔드 명칭 호환
938
937
  bkmkId: e,
939
938
  prntBkmkId: s,
@@ -946,7 +945,7 @@ const B = (n) => (r) => {
946
945
  },
947
946
  // ====== 공통: 삭제 ======
948
947
  removeNode: async (e) => {
949
- const s = _(r());
948
+ const s = E(r());
950
949
  n((o) => {
951
950
  if (!o.nodes[e]) return o;
952
951
  const t = {
@@ -955,26 +954,26 @@ const B = (n) => (r) => {
955
954
  rootIds: o.rootIds.slice(),
956
955
  treeNodes: o.treeNodes
957
956
  };
958
- return J(t, e), t.treeNodes = L(t.nodes, t.rootIds), t;
957
+ return Z(t, e), t.treeNodes = P(t.nodes, t.rootIds), t;
959
958
  });
960
959
  try {
961
- await b("SCMBKMK00103", { bkmkId: e });
960
+ await S("SCMBKMK00103", { bkmkId: e });
962
961
  } catch (o) {
963
962
  throw n(s), o;
964
963
  }
965
964
  },
966
965
  // ====== 공통: 수정 ======
967
966
  editNode: async ({ bkmkId: e, userId: s, bkmkNm: o, prntBkmkId: t, sortOrdr: a }) => {
968
- const d = _(r());
967
+ const d = E(r());
969
968
  n((c) => {
970
- const i = { ...c, nodes: { ...c.nodes } }, l = i.nodes[e];
971
- return l?.type === "F" && typeof o == "string" && (i.nodes[e] = {
972
- ...l,
969
+ const i = { ...c, nodes: { ...c.nodes } }, p = i.nodes[e];
970
+ return p?.type === "F" && typeof o == "string" && (i.nodes[e] = {
971
+ ...p,
973
972
  bkmkNm: o
974
973
  }), i;
975
974
  });
976
975
  try {
977
- await b("SCMBKMK00102", {
976
+ await S("SCMBKMK00102", {
978
977
  iudFlag: "U",
979
978
  userId: s,
980
979
  bkmkId: e,
@@ -995,7 +994,7 @@ const B = (n) => (r) => {
995
994
  sysCd: o,
996
995
  userId: t
997
996
  }),
998
- addMenuToFolder: async (e, s) => D(r().nodes, s.menuId) ? "이미 북마크에 저장된 메뉴입니다." : await r().addNode({
997
+ addMenuToFolder: async (e, s) => O(r().nodes, s.menuId) ? "이미 북마크에 저장된 메뉴입니다." : await r().addNode({
999
998
  type: "M",
1000
999
  prntBkmkId: e,
1001
1000
  sysCd: "KH",
@@ -1012,8 +1011,8 @@ const B = (n) => (r) => {
1012
1011
  await r().removeNode(t.bkmkId);
1013
1012
  return;
1014
1013
  }
1015
- let a = x(o);
1016
- a || (await r().loadFavorites(e, !0), a = x(r())), a && await r().addNode({
1014
+ let a = j(o);
1015
+ a || (await r().loadFavorites(e, !0), a = j(r())), a && await r().addNode({
1017
1016
  type: "M",
1018
1017
  prntBkmkId: a,
1019
1018
  sysCd: "KH",
@@ -1023,7 +1022,7 @@ const B = (n) => (r) => {
1023
1022
  });
1024
1023
  },
1025
1024
  removeMenuByMenuId: async (e) => {
1026
- const s = r(), o = D(s.nodes, e);
1025
+ const s = r(), o = O(s.nodes, e);
1027
1026
  o && await r().removeNode(o);
1028
1027
  },
1029
1028
  removeMenu: async (e) => {
@@ -1047,33 +1046,33 @@ const B = (n) => (r) => {
1047
1046
  const i = e[c];
1048
1047
  if (!i || t && i.type !== "F") return null;
1049
1048
  if (i.type === "F") {
1050
- const l = i, h = (l.children || []).map((u) => d(u)).filter(Boolean);
1051
- return a(l.bkmkNm) || h.length > 0 ? {
1052
- key: l.bkmkId,
1049
+ const p = i, f = (p.children || []).map((u) => d(u)).filter(Boolean);
1050
+ return a(p.bkmkNm) || f.length > 0 ? {
1051
+ key: p.bkmkId,
1053
1052
  type: "F",
1054
- title: `📁 ${l.bkmkNm}`,
1055
- bkmkNm: l.bkmkNm,
1056
- prntBkmkId: l.prntBkmkId,
1057
- sortOrdr: l.sortOrdr,
1058
- fullPath: l.fullPath,
1059
- children: h.length ? h : void 0
1053
+ title: `📁 ${p.bkmkNm}`,
1054
+ bkmkNm: p.bkmkNm,
1055
+ prntBkmkId: p.prntBkmkId,
1056
+ sortOrdr: p.sortOrdr,
1057
+ fullPath: p.fullPath,
1058
+ children: f.length ? f : void 0
1060
1059
  } : null;
1061
1060
  } else {
1062
- const l = i, h = l.menuNm ? `${l.menuNm} (${l.menuId})` : l.menuId;
1063
- return a(h) ? {
1064
- key: l.bkmkId,
1061
+ const p = i, f = p.menuNm ? `${p.menuNm} (${p.menuId})` : p.menuId;
1062
+ return a(f) ? {
1063
+ key: p.bkmkId,
1065
1064
  type: "M",
1066
- title: `📄 ${h}`,
1067
- prntBkmkId: l.prntBkmkId,
1068
- sortOrdr: l.sortOrdr,
1069
- fullPath: l.fullPath,
1065
+ title: `📄 ${f}`,
1066
+ prntBkmkId: p.prntBkmkId,
1067
+ sortOrdr: p.sortOrdr,
1068
+ fullPath: p.fullPath,
1070
1069
  isLeaf: !0
1071
1070
  } : null;
1072
1071
  }
1073
1072
  };
1074
1073
  return s.map(d).filter(Boolean);
1075
1074
  }
1076
- }), q = N(ce);
1075
+ }), J = b(ce);
1077
1076
  function pe(n) {
1078
1077
  const r = {}, e = [], s = (o) => {
1079
1078
  o.forEach((t) => {
@@ -1113,7 +1112,7 @@ function pe(n) {
1113
1112
  );
1114
1113
  }), { nodes: r, rootIds: e };
1115
1114
  }
1116
- function _(n) {
1115
+ function E(n) {
1117
1116
  return {
1118
1117
  ...n,
1119
1118
  nodes: JSON.parse(JSON.stringify(n.nodes)),
@@ -1123,7 +1122,7 @@ function _(n) {
1123
1122
  function le() {
1124
1123
  return `tmp_${Math.random().toString(36).slice(2, 10)}`;
1125
1124
  }
1126
- function U(n, r) {
1125
+ function z(n, r) {
1127
1126
  if (!r || r === "-") return n.rootIds.length;
1128
1127
  const e = n.nodes[r];
1129
1128
  return e ? e.children.length : 0;
@@ -1148,10 +1147,10 @@ function ue(n, r) {
1148
1147
  } else
1149
1148
  n.rootIds = n.rootIds.filter((o) => o !== r);
1150
1149
  }
1151
- function J(n, r) {
1150
+ function Z(n, r) {
1152
1151
  const e = n.nodes[r];
1153
1152
  if (!e) return;
1154
- e.type === "F" && e.children.slice().forEach((a) => J(n, a)), ue(n, r);
1153
+ e.type === "F" && e.children.slice().forEach((a) => Z(n, a)), ue(n, r);
1155
1154
  const { [r]: s, ...o } = n.nodes;
1156
1155
  n.nodes = o;
1157
1156
  }
@@ -1174,14 +1173,14 @@ function me(n, r, e) {
1174
1173
  a = n.rootIds.map((d) => d === r ? e : d);
1175
1174
  return { ...n, nodes: t, rootIds: a };
1176
1175
  }
1177
- function x(n) {
1176
+ function j(n) {
1178
1177
  return n.rootIds.find((r) => n.nodes[r]?.type === "F") ?? null;
1179
1178
  }
1180
- function L(n, r) {
1179
+ function P(n, r) {
1181
1180
  const e = {};
1182
1181
  Object.values(n).forEach((c) => {
1183
- const i = c.bkmkId, l = c.prntBkmkId;
1184
- !i || !l || l === "-" || l === i || (e[l] ??= []).push(i);
1182
+ const i = c.bkmkId, p = c.prntBkmkId;
1183
+ !i || !p || p === "-" || p === i || (e[p] ??= []).push(i);
1185
1184
  });
1186
1185
  const s = /* @__PURE__ */ new Set(), o = (c) => {
1187
1186
  if (s.has(c)) return null;
@@ -1190,23 +1189,23 @@ function L(n, r) {
1190
1189
  s.add(c);
1191
1190
  try {
1192
1191
  if (i.type === "F") {
1193
- const h = i, m = e[c] ?? [];
1192
+ const f = i, m = e[c] ?? [];
1194
1193
  return {
1195
1194
  type: "F",
1196
1195
  bkmkId: c,
1197
- bkmkNm: h.bkmkNm,
1198
- prntBkmkId: h.prntBkmkId,
1196
+ bkmkNm: f.bkmkNm,
1197
+ prntBkmkId: f.prntBkmkId,
1199
1198
  children: m.map(o).filter(Boolean)
1200
1199
  };
1201
1200
  }
1202
- const l = i;
1201
+ const p = i;
1203
1202
  return {
1204
1203
  type: "M",
1205
1204
  bkmkId: c,
1206
- bkmkNm: l.menuNm,
1207
- menuId: l.menuId,
1208
- menuNm: l.menuNm,
1209
- prntBkmkId: l.prntBkmkId
1205
+ bkmkNm: p.menuNm,
1206
+ menuId: p.menuId,
1207
+ menuNm: p.menuNm,
1208
+ prntBkmkId: p.prntBkmkId
1210
1209
  };
1211
1210
  } finally {
1212
1211
  s.delete(c);
@@ -1216,33 +1215,33 @@ function L(n, r) {
1216
1215
  /* @__PURE__ */ new Set([...r, ...t, ...a])
1217
1216
  ).map(o).filter(Boolean);
1218
1217
  }
1219
- function D(n, r) {
1218
+ function O(n, r) {
1220
1219
  for (const e of Object.values(n))
1221
1220
  if (e.type === "M" && e.menuId === r) return e.bkmkId;
1222
1221
  return null;
1223
1222
  }
1224
- function z(n, r, e) {
1223
+ function Y(n, r, e) {
1225
1224
  (!e || e === "-" ? r : n[e].children || []).forEach((o, t) => {
1226
1225
  const a = n[o];
1227
1226
  a && (a.sortOrdr = t);
1228
1227
  });
1229
1228
  }
1230
- const E = {
1229
+ const R = {
1231
1230
  DEFAULT_PRNT_GBCD: 1
1232
- }, Ce = (n) => n && typeof n == "object" && typeof n.menuId == "string" && typeof n.menuNm == "string", j = (n) => Array.isArray(n) && n.every(Ce);
1233
- let A = [], Y = [];
1231
+ }, Ce = (n) => n && typeof n == "object" && typeof n.menuId == "string" && typeof n.menuNm == "string", W = (n) => Array.isArray(n) && n.every(Ce);
1232
+ let K = [], q = [];
1234
1233
  const fe = (n) => {
1235
1234
  if (n && typeof n == "object") {
1236
1235
  const r = n;
1237
- if (r.menus && j(r.menus)) return r.menus;
1238
- if (j(n)) return n;
1236
+ if (r.menus && W(r.menus)) return r.menus;
1237
+ if (W(n)) return n;
1239
1238
  }
1240
1239
  return console.warn("⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다."), [];
1241
- }, he = (n, r) => !!r && n.crprCd === r.crprCd && n.userId === r.userId && (n.prntGbcd ?? E.DEFAULT_PRNT_GBCD) === (r.prntGbcd ?? E.DEFAULT_PRNT_GBCD), ye = (n) => {
1242
- if (A.length === n.length && A.every(
1240
+ }, he = (n, r) => !!r && n.crprCd === r.crprCd && n.userId === r.userId && (n.prntGbcd ?? R.DEFAULT_PRNT_GBCD) === (r.prntGbcd ?? R.DEFAULT_PRNT_GBCD), Ie = (n) => {
1241
+ if (K.length === n.length && K.every(
1243
1242
  (t, a) => t.menuId === n[a]?.menuId && t.menuPrntId === n[a]?.menuPrntId
1244
1243
  ))
1245
- return Y;
1244
+ return q;
1246
1245
  if (!n.length) return [];
1247
1246
  const r = /* @__PURE__ */ new Map(), e = [];
1248
1247
  n.forEach((t) => t?.menuId && r.set(t.menuId, { ...t, children: [] })), n.forEach((t) => {
@@ -1253,8 +1252,8 @@ const fe = (n) => {
1253
1252
  ...a,
1254
1253
  children: a.children && a.children.length ? s(a.children) : void 0
1255
1254
  })), o = s(e);
1256
- return A = [...n], Y = o, o;
1257
- }, R = N((n, r) => ({
1255
+ return K = [...n], q = o, o;
1256
+ }, $ = b((n, r) => ({
1258
1257
  // 📊 초기 상태값
1259
1258
  menuList: [],
1260
1259
  flatMenuList: [],
@@ -1267,7 +1266,7 @@ const fe = (n) => {
1267
1266
  const t = {
1268
1267
  crprCd: e,
1269
1268
  userId: s,
1270
- prntGbcd: o ?? E.DEFAULT_PRNT_GBCD
1269
+ prntGbcd: o ?? R.DEFAULT_PRNT_GBCD
1271
1270
  };
1272
1271
  if (he(t, r()._lastFetchParams)) {
1273
1272
  console.log("✅ 중복 fetch 차단", t);
@@ -1275,7 +1274,7 @@ const fe = (n) => {
1275
1274
  }
1276
1275
  n({ isLoading: !0, error: null, _lastFetchParams: t });
1277
1276
  try {
1278
- const a = await b(F("AUTH_MENU"), t), d = fe(a), c = ye(d);
1277
+ const a = await S(_("AUTH_MENU"), t), d = fe(a), c = Ie(d);
1279
1278
  n({
1280
1279
  flatMenuList: d,
1281
1280
  // 평면 리스트 저장
@@ -1304,16 +1303,16 @@ const fe = (n) => {
1304
1303
  const { flatMenuList: s } = r();
1305
1304
  return s.find((o) => o.menuId === e) ?? null;
1306
1305
  }
1307
- })), O = {
1306
+ })), D = {
1308
1307
  MAX_TABS: 15
1309
- }, Z = N((n, r) => ({
1308
+ }, V = b((n, r) => ({
1310
1309
  // 📊 초기 상태값
1311
1310
  activeMenuId: null,
1312
1311
  activeMenuItem: null,
1313
1312
  activeDetailItem: null,
1314
1313
  tabs: [],
1315
1314
  sidebarCollapsed: !1,
1316
- maxTabs: O.MAX_TABS,
1315
+ maxTabs: D.MAX_TABS,
1317
1316
  tabProtectFlag: {},
1318
1317
  tabParams: {},
1319
1318
  componentLabelMap: {},
@@ -1326,7 +1325,7 @@ const fe = (n) => {
1326
1325
  activeDetailItem: null,
1327
1326
  tabs: [],
1328
1327
  sidebarCollapsed: !1,
1329
- maxTabs: O.MAX_TABS,
1328
+ maxTabs: D.MAX_TABS,
1330
1329
  tabProtectFlag: {},
1331
1330
  tabParams: {},
1332
1331
  componentLabelMap: {},
@@ -1358,9 +1357,9 @@ const fe = (n) => {
1358
1357
  });
1359
1358
  return;
1360
1359
  }
1361
- if (t.length >= O.MAX_TABS) {
1362
- console.warn("❌ 최대 탭 개수를 초과했습니다."), K.warning(
1363
- `최대 ${O.MAX_TABS}개의 탭만 열 수 있습니다.
1360
+ if (t.length >= D.MAX_TABS) {
1361
+ console.warn("❌ 최대 탭 개수를 초과했습니다."), B.warning(
1362
+ `최대 ${D.MAX_TABS}개의 탭만 열 수 있습니다.
1364
1363
  기존 탭을 닫고 다시 시도해주세요.`
1365
1364
  );
1366
1365
  return;
@@ -1384,8 +1383,8 @@ const fe = (n) => {
1384
1383
  // 🔧 탭 추가 (메뉴 ID로)
1385
1384
  // URL 파라미터로 메뉴 열기 시 사용 (예: ?menuId=CM000301)
1386
1385
  openTabByMenuId: (e, s, o) => {
1387
- const t = R.getState().findMenuById(e);
1388
- t ? r().openTabFromMenu(t, s, o) : K.warning("메뉴 ID를 찾을 수 없습니다.");
1386
+ const t = $.getState().findMenuById(e);
1387
+ t ? r().openTabFromMenu(t, s, o) : B.warning("메뉴 ID를 찾을 수 없습니다.");
1389
1388
  },
1390
1389
  openDetailView: (e, s, o) => {
1391
1390
  const { tabs: t } = r();
@@ -1520,7 +1519,7 @@ const fe = (n) => {
1520
1519
  const t = r().pinnedTabs;
1521
1520
  s.slice(o + 1).filter((d) => !t.has(d.key)).forEach((d) => r().closeTab(d.key));
1522
1521
  }
1523
- })), Ie = N((n, r) => ({
1522
+ })), ye = b((n, r) => ({
1524
1523
  popups: [],
1525
1524
  activePopupId: null,
1526
1525
  isLoading: !1,
@@ -1531,8 +1530,8 @@ const fe = (n) => {
1531
1530
  n({ isLoading: !0, error: null });
1532
1531
  try {
1533
1532
  let t = null;
1534
- const a = await b(F("SRCH_POPU"), {
1535
- crprCd: ee()?.crprCd,
1533
+ const a = await S(_("SRCH_POPU"), {
1534
+ crprCd: te()?.crprCd,
1536
1535
  popuCd: e
1537
1536
  });
1538
1537
  t = a?.mstr;
@@ -1541,7 +1540,7 @@ const fe = (n) => {
1541
1540
  const u = `팝업 정보를 찾을 수 없습니다: ${e}`;
1542
1541
  throw console.error(u), new Error(u);
1543
1542
  }
1544
- const i = ((u) => `/src/pages/views/popup/${u}`)(t.popuUrl), l = r().zIndexSeed + 1, h = {
1543
+ const i = ((u) => `/src/pages/views/popup/${u}`)(t.popuUrl), p = r().zIndexSeed + 1, f = {
1545
1544
  popupId: `popup_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
1546
1545
  popupCode: e,
1547
1546
  //config.title을 통해 팝업 제목 변경 가능
@@ -1555,7 +1554,7 @@ const fe = (n) => {
1555
1554
  buttonList: d,
1556
1555
  // 버튼 목록 추가
1557
1556
  config: o,
1558
- zIndex: l
1557
+ zIndex: p
1559
1558
  }, m = r().popups.find((u) => u.popupCode === e);
1560
1559
  if (m) {
1561
1560
  n({
@@ -1568,10 +1567,10 @@ const fe = (n) => {
1568
1567
  return;
1569
1568
  }
1570
1569
  n((u) => ({
1571
- popups: [...u.popups, h],
1572
- activePopupId: h.popupId,
1570
+ popups: [...u.popups, f],
1571
+ activePopupId: f.popupId,
1573
1572
  isLoading: !1,
1574
- zIndexSeed: l
1573
+ zIndexSeed: p
1575
1574
  }));
1576
1575
  } catch (t) {
1577
1576
  n({
@@ -1588,26 +1587,26 @@ const fe = (n) => {
1588
1587
  // buttons와 callback은 완전히 덮어쓰기 (병합하지 않음)
1589
1588
  buttons: s?.buttons !== void 0 ? s.buttons : d.buttons,
1590
1589
  callback: s?.callback !== void 0 ? s.callback : d.callback
1591
- }, i = s?.defaultParams || {}, l = r().popups.find(
1590
+ }, i = s?.defaultParams || {}, p = r().popups.find(
1592
1591
  (m) => m.popupCode === e && m.isLocal
1593
1592
  );
1594
- if (l) {
1593
+ if (p) {
1595
1594
  const m = r().zIndexSeed + 1;
1596
- n({ activePopupId: l.popupId, zIndexSeed: m }), n((u) => ({
1595
+ n({ activePopupId: p.popupId, zIndexSeed: m }), n((u) => ({
1597
1596
  popups: u.popups.map(
1598
- (f) => f.popupId === l.popupId ? {
1599
- ...f,
1597
+ (C) => C.popupId === p.popupId ? {
1598
+ ...C,
1600
1599
  config: c,
1601
1600
  zIndex: m,
1602
1601
  close: () => {
1603
- r().closePopup(l.popupId);
1602
+ r().closePopup(p.popupId);
1604
1603
  }
1605
- } : f
1604
+ } : C
1606
1605
  )
1607
1606
  }));
1608
1607
  return;
1609
1608
  }
1610
- const h = {
1609
+ const f = {
1611
1610
  popupId: o,
1612
1611
  popupCode: e,
1613
1612
  popupTitle: c.title || e,
@@ -1627,7 +1626,7 @@ const fe = (n) => {
1627
1626
  }
1628
1627
  };
1629
1628
  n((m) => ({
1630
- popups: [...m.popups, h],
1629
+ popups: [...m.popups, f],
1631
1630
  activePopupId: o,
1632
1631
  zIndexSeed: t
1633
1632
  }));
@@ -1667,8 +1666,8 @@ const fe = (n) => {
1667
1666
  )
1668
1667
  }));
1669
1668
  }
1670
- })), V = N()(
1671
- M(
1669
+ })), Q = b()(
1670
+ k(
1672
1671
  (n, r) => ({
1673
1672
  systemMap: [],
1674
1673
  fetchSystemMap: async () => {
@@ -2076,7 +2075,7 @@ const fe = (n) => {
2076
2075
  // localStorage key
2077
2076
  }
2078
2077
  )
2079
- ), De = N((n) => ({
2078
+ ), Oe = b((n) => ({
2080
2079
  requestCount: 0,
2081
2080
  loading: !1,
2082
2081
  showLoading: () => n((r) => {
@@ -2087,7 +2086,7 @@ const fe = (n) => {
2087
2086
  const e = Math.max(0, r.requestCount - 1);
2088
2087
  return { requestCount: e, loading: e > 0 };
2089
2088
  })
2090
- })), Oe = N((n) => ({
2089
+ })), De = b((n) => ({
2091
2090
  requestCount: 0,
2092
2091
  loading: !1,
2093
2092
  showLoading: () => n((r) => {
@@ -2100,47 +2099,47 @@ const fe = (n) => {
2100
2099
  })
2101
2100
  }));
2102
2101
  function ge() {
2103
- const [n, r] = X(!1), e = W((s) => {
2102
+ const [n, r] = H(!1), e = U((s) => {
2104
2103
  const o = s?.getModifierState?.("CapsLock");
2105
2104
  typeof o == "boolean" && r(o);
2106
2105
  }, []);
2107
2106
  return { capsOn: n, onKeyDown: e };
2108
2107
  }
2109
- function Fe(n) {
2108
+ function _e(n) {
2110
2109
  const {
2111
2110
  loginApi: r,
2112
2111
  fetchCommonCodes: e,
2113
2112
  onAfterLogin: s,
2114
2113
  onError: o,
2115
2114
  rememberCookie: t = { enabled: !0, days: 30 }
2116
- } = n, [a, d] = X(!1), { capsOn: c, onKeyDown: i } = ge(), l = "SCMSIGN00101", h = `${__SYS_CD__}_login_id`, m = {
2117
- id: t?.enabled ? te(h) : void 0,
2115
+ } = n, [a, d] = H(!1), { capsOn: c, onKeyDown: i } = ge(), p = "SCMSIGN00101", f = `${__SYS_CD__}_login_id`, m = {
2116
+ id: t?.enabled ? oe(f) : void 0,
2118
2117
  pswr: void 0
2119
- }, u = W(
2120
- async (f, C) => {
2118
+ }, u = U(
2119
+ async (C) => {
2121
2120
  d(!0);
2122
2121
  try {
2123
- const g = {
2122
+ const h = {
2124
2123
  crprCd: "100",
2125
- id: f.id,
2126
- pswr: await oe(f.pswr)
2127
- }, I = await (r ?? ((S) => b(l, S)))(g);
2128
- if (I?.userInfo?.userId) {
2129
- if (H.getState().setLoginUser(I.userInfo, I?.hrInfo), t?.enabled) {
2130
- const S = t.days ?? 30;
2131
- f.remember ? $(h, f.id ?? "", S) : $(h, "", 0);
2124
+ id: C.id,
2125
+ pswr: await X(C.pswr)
2126
+ }, g = await (r ?? ((y) => S(p, y)))(h);
2127
+ if (g?.userInfo?.userId) {
2128
+ if (w.getState().setLoginUser(g.userInfo, g?.hrInfo), localStorage.setItem("LOGIN_USER_ID", g.userInfo.userId), t?.enabled) {
2129
+ const y = t.days ?? 30;
2130
+ C.remember ? x(f, C.id ?? "", y) : x(f, "", 0);
2132
2131
  }
2133
- return e ? await e() : await G.getState().fetchCommonCodes(), s ? s(I, C) : (K.success(`${I.userInfo.userNm}님 환영합니다.`), C("/main")), { user: I.userInfo, response: I };
2132
+ return e ? await e() : await F.getState().fetchCommonCodes(), s(g), { user: g.userInfo, response: g };
2134
2133
  } else
2135
- throw o?.({ user: I.userInfo, response: I, navigate: C }), new Error("사용자 정보가 유효하지 않습니다.");
2136
- } catch (g) {
2137
- throw o?.(g), g;
2134
+ throw o({ user: g.userInfo, response: g }), new Error("사용자 정보가 유효하지 않습니다.");
2135
+ } catch (h) {
2136
+ o(h);
2138
2137
  } finally {
2139
2138
  d(!1);
2140
2139
  }
2141
2140
  },
2142
2141
  [
2143
- l,
2142
+ p,
2144
2143
  r,
2145
2144
  e,
2146
2145
  s,
@@ -2152,38 +2151,72 @@ function Fe(n) {
2152
2151
  return {
2153
2152
  loading: a,
2154
2153
  capsOn: c,
2155
- onKeyDown: i,
2156
2154
  prefills: m,
2155
+ onKeyDown: i,
2157
2156
  doLogin: u
2158
2157
  };
2159
2158
  }
2160
- function Te() {
2161
- const n = re();
2159
+ function we(n) {
2160
+ const { loginApi: r, fetchCommonCodes: e, onAfterLogin: s, onError: o } = n, [t, a] = H("LOADING"), d = {
2161
+ NO_TOKEN: "인증 정보가 없습니다.",
2162
+ INVALID_USER: "사용자 정보가 유효하지 않습니다.",
2163
+ UNKNOWN: "SSO 로그인 중 오류가 발생했습니다."
2164
+ }, c = (p) => p === "NO_TOKEN" || p === "INVALID_USER" ? p : "UNKNOWN", i = U(
2165
+ async (p) => {
2166
+ a("LOADING");
2167
+ try {
2168
+ const f = await re.post("/api/auth", {});
2169
+ f.data.result && f.data.userId && B.success(f.data.message);
2170
+ const m = {
2171
+ crprCd: "100",
2172
+ id: f.data.userId,
2173
+ pswr: await X("krx2025!@")
2174
+ }, C = await (r ?? ((h) => S("SCMSIGN00101", h)))(m);
2175
+ if (C?.userInfo?.userId)
2176
+ return w.getState().setLoginUser(C.userInfo, C?.hrInfo), localStorage.setItem("LOGIN_USER_ID", C.userInfo.userId), e ? await e() : await F.getState().fetchCommonCodes(), s(C), a("SUCCESS"), { user: C.userInfo, response: C };
2177
+ throw new Error("INVALID_USER");
2178
+ } catch (f) {
2179
+ const m = c(f?.message);
2180
+ o?.({
2181
+ code: m,
2182
+ msg: d[m]
2183
+ }), a("FAIL");
2184
+ }
2185
+ },
2186
+ [r, e, s, o]
2187
+ );
2188
+ return {
2189
+ loginStatus: t,
2190
+ doSsoLogin: i
2191
+ };
2192
+ }
2193
+ function Fe(n) {
2162
2194
  return () => {
2163
- H.getState().clearLoginUser(), V.getState().clearSystemMap(), G.getState().clearCodes(), R.getState().clearMenu(), Z.getState().clearMenuViewStore(), q.getState().clearFavorites(), n("/login");
2195
+ w.getState().clearLoginUser(), Q.getState().clearSystemMap(), F.getState().clearCodes(), $.getState().clearMenu(), V.getState().clearMenuViewStore(), J.getState().clearFavorites(), localStorage.removeItem("LOGIN_USER_ID"), n?.();
2164
2196
  };
2165
2197
  }
2166
- const we = () => G.getState(), _e = () => Ie.getState(), Ae = () => H.getState(), Ke = () => q.getState(), Be = () => R.getState(), Ee = () => Z.getState(), He = () => V.getState();
2198
+ const Te = () => F.getState(), Ae = () => ye.getState(), Ee = () => w.getState(), Ke = () => J.getState(), Be = () => $.getState(), Ge = () => V.getState(), Re = () => Q.getState();
2167
2199
  export {
2168
2200
  ge as useCapsLock,
2169
- we as useCode,
2170
- G as useCodeStore,
2171
- Le as useColorStore,
2201
+ Te as useCode,
2202
+ F as useCodeStore,
2203
+ Pe as useColorStore,
2172
2204
  Ke as useFavorite,
2173
- q as useFavoriteStore,
2174
- De as useLoadingStore,
2175
- Fe as useLogin,
2176
- Te as useLogout,
2205
+ J as useFavoriteStore,
2206
+ Oe as useLoadingStore,
2207
+ _e as useLogin,
2208
+ Fe as useLogout,
2177
2209
  Be as useMenuModel,
2178
- R as useMenuModelStore,
2179
- Ee as useMenuView,
2180
- Z as useMenuViewStore,
2181
- Pe as useOptionStore,
2182
- Oe as usePopupLoadingStore,
2183
- _e as usePopupState,
2184
- Ie as usePopupStore,
2185
- He as useSystemCode,
2186
- V as useSystemStore,
2187
- Ae as useUser,
2188
- H as useUserStore
2210
+ $ as useMenuModelStore,
2211
+ Ge as useMenuView,
2212
+ V as useMenuViewStore,
2213
+ Le as useOptionStore,
2214
+ De as usePopupLoadingStore,
2215
+ Ae as usePopupState,
2216
+ ye as usePopupStore,
2217
+ we as useSsoLogin,
2218
+ Re as useSystemCode,
2219
+ Q as useSystemStore,
2220
+ Ee as useUser,
2221
+ w as useUserStore
2189
2222
  };