@bwg-ui/core 1.2.34 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/chunks/{CMSearchIntfGwP01-CmRmK_7Z.cjs → CMSearchIntfGwP01-D7XtXMLy.cjs} +1 -1
  2. package/dist/chunks/{CMSearchIntfGwP01-DmVxvizb.js → CMSearchIntfGwP01-_h2B12Ig.js} +28 -28
  3. package/dist/chunks/{MenuReport-Dsh_obqp.js → MenuReport-Bw3AvR6b.js} +34 -34
  4. package/dist/chunks/MenuReport-DuWbbKBC.cjs +1 -0
  5. package/dist/chunks/common-components-BOJo6FH_.cjs +1109 -0
  6. package/dist/chunks/{common-components-BJrGciHA.js → common-components-BjfrRYiU.js} +17198 -17019
  7. package/dist/chunks/{layout-components-DuSrPWSr.js → layout-components-DNhUIx4u.js} +988 -691
  8. package/dist/chunks/layout-components-Ddn-4n36.cjs +35 -0
  9. package/dist/chunks/provider-DrboIg2C.cjs +1 -0
  10. package/dist/chunks/provider-VCa8UGvF.js +446 -0
  11. package/dist/components/common/BwgGrid.d.ts +17 -16
  12. package/dist/components/common/BwgGrid.d.ts.map +1 -1
  13. package/dist/components/common/BwgPagination.d.ts.map +1 -1
  14. package/dist/components/common/BwgView.d.ts +3 -3
  15. package/dist/components/common/BwgView.d.ts.map +1 -1
  16. package/dist/components/common/index.cjs +1 -1
  17. package/dist/components/common/index.d.ts +4 -3
  18. package/dist/components/common/index.d.ts.map +1 -1
  19. package/dist/components/common/index.js +5 -5
  20. package/dist/components/common/type.d.ts +7 -0
  21. package/dist/components/common/type.d.ts.map +1 -1
  22. package/dist/components/core/BwgDatePicker.d.ts.map +1 -1
  23. package/dist/components/core/BwgDownload.d.ts +3 -3
  24. package/dist/components/core/BwgDownload.d.ts.map +1 -1
  25. package/dist/components/core/BwgMaskedDate.d.ts +13 -0
  26. package/dist/components/core/BwgMaskedDate.d.ts.map +1 -0
  27. package/dist/components/core/{BwgMaskedPicker.d.ts → BwgMaskedRange.d.ts} +6 -4
  28. package/dist/components/core/BwgMaskedRange.d.ts.map +1 -0
  29. package/dist/components/core/index.cjs +1 -1
  30. package/dist/components/core/index.d.ts +4 -2
  31. package/dist/components/core/index.d.ts.map +1 -1
  32. package/dist/components/core/index.js +1240 -782
  33. package/dist/components/guide/index.cjs +1 -1
  34. package/dist/components/guide/index.js +3 -3
  35. package/dist/components/layout/AppWrapper.d.ts +1 -1
  36. package/dist/components/layout/AppWrapper.d.ts.map +1 -1
  37. package/dist/components/layout/BwgPortal01.d.ts.map +1 -1
  38. package/dist/components/layout/BwgPortal02.d.ts.map +1 -1
  39. package/dist/components/layout/custom/ConfigurableHeader.d.ts.map +1 -1
  40. package/dist/components/layout/default/HeaderContainer.d.ts +15 -0
  41. package/dist/components/layout/default/HeaderContainer.d.ts.map +1 -0
  42. package/dist/components/layout/default/index.d.ts +1 -0
  43. package/dist/components/layout/default/index.d.ts.map +1 -1
  44. package/dist/components/layout/extension/ContentWrapper.d.ts +17 -0
  45. package/dist/components/layout/extension/ContentWrapper.d.ts.map +1 -0
  46. package/dist/components/layout/extension/index.d.ts +1 -0
  47. package/dist/components/layout/extension/index.d.ts.map +1 -1
  48. package/dist/components/layout/index.cjs +1 -1
  49. package/dist/components/layout/index.js +15 -13
  50. package/dist/components/layout/types.d.ts +28 -2
  51. package/dist/components/layout/types.d.ts.map +1 -1
  52. package/dist/components/pages/rsrc/CMFileMstrM01.d.ts.map +1 -1
  53. package/dist/components/pages/rsrc/CMPrgrMstrM01.d.ts.map +1 -1
  54. package/dist/components/pages/syst/CMHldyCfg.d.ts.map +1 -1
  55. package/dist/components/popup/MenuReport.d.ts.map +1 -1
  56. package/dist/components/popup/SearchAddressP01.d.ts +30 -0
  57. package/dist/components/popup/SearchAddressP01.d.ts.map +1 -0
  58. package/dist/components/popup/SearchHolidayP01.d.ts +2 -2
  59. package/dist/components/popup/SearchHolidayP01.d.ts.map +1 -1
  60. package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -1
  61. package/dist/components/popup/index.cjs +1 -1
  62. package/dist/components/popup/index.d.ts +2 -0
  63. package/dist/components/popup/index.d.ts.map +1 -1
  64. package/dist/components/popup/index.js +6 -5
  65. package/dist/index.cjs +1 -1
  66. package/dist/index.js +270 -257
  67. package/dist/provider/contexts/BwgViewContext.d.ts +19 -0
  68. package/dist/provider/contexts/BwgViewContext.d.ts.map +1 -0
  69. package/dist/provider/contexts/index.d.ts +1 -0
  70. package/dist/provider/contexts/index.d.ts.map +1 -1
  71. package/dist/provider/hooks/index.d.ts +1 -0
  72. package/dist/provider/hooks/index.d.ts.map +1 -1
  73. package/dist/provider/hooks/useSizeConfig.d.ts +19 -0
  74. package/dist/provider/hooks/useSizeConfig.d.ts.map +1 -0
  75. package/dist/provider/index.cjs +1 -1
  76. package/dist/provider/index.js +22 -381
  77. package/dist/stores/index.cjs +2 -2
  78. package/dist/stores/index.js +18 -11
  79. package/dist/stores/userStore.d.ts +4 -0
  80. package/dist/stores/userStore.d.ts.map +1 -1
  81. package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
  82. package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
  83. package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
  84. package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
  85. package/dist/styles/components.css +90 -60
  86. package/dist/styles/layout.css +1234 -1234
  87. package/dist/utils/apiUtils.d.ts +1 -1
  88. package/dist/utils/apiUtils.d.ts.map +1 -1
  89. package/dist/utils/{FileUtils.d.ts → fileUtils.d.ts} +1 -1
  90. package/dist/utils/fileUtils.d.ts.map +1 -0
  91. package/dist/utils/gridUtils.d.ts +45 -0
  92. package/dist/utils/gridUtils.d.ts.map +1 -0
  93. package/dist/utils/index.cjs +1 -1
  94. package/dist/utils/index.d.ts +13 -3
  95. package/dist/utils/index.d.ts.map +1 -1
  96. package/dist/utils/index.js +1159 -1043
  97. package/package.json +1 -1
  98. package/dist/chunks/MenuReport-D3V5JPQR.cjs +0 -1
  99. package/dist/chunks/common-components-BpsIQZ0O.cjs +0 -1057
  100. package/dist/chunks/layout-components-fFjip5fv.cjs +0 -35
  101. package/dist/components/core/BwgMaskedPicker.d.ts.map +0 -1
  102. package/dist/utils/FileUtils.d.ts.map +0 -1
@@ -1,34 +1,38 @@
1
- import { jsxs as m, jsx as e, Fragment as V } from "react/jsx-runtime";
2
- import { ServiceCodeProvider as ye, CommonCodeProvider as Ce, SearchBoxProvider as re, ScreenProtectProvider as ve, useLock as we } from "../provider/index.js";
3
- import { Routes as xe, Route as Q, Navigate as ke, useNavigate as Ne } from "react-router-dom";
4
- import { G as Ie, B as Se, Q as Te } from "./common-components-BJrGciHA.js";
5
- import { Spin as Y, Layout as j, ColorPicker as Le, Button as I, Divider as Pe, Slider as X, Popover as Me, Avatar as Be, Tabs as Ee, Tooltip as W, AutoComplete as De, Input as te, Segmented as Oe, ConfigProvider as Re, Menu as ie, Result as pe, Space as ze, Typography as Fe, Empty as J, Form as H, Flex as Ae, Checkbox as _e } from "antd";
6
- import { lazy as R, useEffect as B, useState as D, useRef as K, useMemo as Z, useCallback as A, createElement as he, memo as oe, cloneElement as $e, Component as Ge, Suspense as se } from "react";
7
- import { useLogout as He, useUserStore as Ve, useMenuViewStore as O, useMenuModelStore as We, useFavoriteStore as je, usePopupStore as ae, useLogin as Ke, useSystemStore as Ue } from "../stores/index.js";
8
- import * as le from "@ant-design/icons";
9
- import { UserOutlined as Ze, StepBackwardOutlined as Ye, LeftOutlined as qe, RightOutlined as Qe, StepForwardOutlined as Xe, CloseOutlined as ge, MenuUnfoldOutlined as Je, MenuFoldOutlined as et, ExclamationCircleOutlined as tt, WarningOutlined as nt, StarOutlined as rt, FolderOpenOutlined as ot, ReloadOutlined as fe, ExclamationCircleTwoTone as st } from "@ant-design/icons";
10
- import { getCookie as at, getTodateString as ce, setCookie as it, THEME_COOKIE_NAME as de, getUserId as ue } from "../utils/index.js";
11
- import { useSensors as lt, useSensor as ct, PointerSensor as dt, DndContext as ut, closestCenter as mt } from "@dnd-kit/core";
12
- import { restrictToHorizontalAxis as pt } from "@dnd-kit/modifiers";
13
- import { arrayMove as ht, SortableContext as gt, horizontalListSortingStrategy as ft, useSortable as bt } from "@dnd-kit/sortable";
14
- const yt = R(
15
- () => import("./MenuReport-Dsh_obqp.js")
16
- ), Ct = R(
17
- () => import("./common-components-BJrGciHA.js").then((r) => r.$)
18
- ), vt = R(
19
- () => import("./common-components-BJrGciHA.js").then((r) => r.a0)
20
- ), wt = R(
21
- () => import("./common-components-BJrGciHA.js").then((r) => r.a1)
22
- ), xt = R(
23
- () => import("./common-components-BJrGciHA.js").then((r) => r.a2)
24
- ), kt = R(
25
- () => import("./common-components-BJrGciHA.js").then((r) => r.a3)
26
- ), Nt = R(
27
- () => import("./CMSearchIntfGwP01-DmVxvizb.js")
28
- ), It = {
1
+ import { jsxs as C, jsx as e, Fragment as V } from "react/jsx-runtime";
2
+ import { o as Pe, C as Se, S as ie, n as Le, m as Me } from "./provider-VCa8UGvF.js";
3
+ import { Routes as fe, Route as Y, Navigate as Te, useNavigate as le, useLocation as Ee } from "react-router-dom";
4
+ import { G as Be, B as Oe, Q as Re } from "./common-components-BjfrRYiU.js";
5
+ import { Spin as q, Layout as j, ColorPicker as De, Button as M, Divider as ue, Slider as te, Switch as ze, Popover as Ae, Avatar as $e, Tabs as Fe, Tooltip as K, AutoComplete as We, Input as oe, Segmented as _e, ConfigProvider as Ge, Menu as se, Result as be, Space as He, Typography as Ve, Empty as ne, Breadcrumb as je, Form as H, Flex as Ke, Checkbox as Ue } from "antd";
6
+ import { lazy as z, useEffect as B, useState as R, useRef as U, useMemo as _, useCallback as D, createElement as ye, memo as ce, cloneElement as Ze, Component as Ye, Suspense as X } from "react";
7
+ import { useLogout as qe, useUserStore as Ce, useMenuViewStore as F, useMenuModelStore as J, useFavoriteStore as Qe, usePopupStore as de, useLogin as Xe, useSystemStore as Je } from "../stores/index.js";
8
+ import * as Q from "@ant-design/icons";
9
+ import { UserOutlined as et, StepBackwardOutlined as tt, LeftOutlined as nt, RightOutlined as rt, StepForwardOutlined as ot, CloseOutlined as ve, MenuUnfoldOutlined as st, MenuFoldOutlined as at, ExclamationCircleOutlined as it, WarningOutlined as lt, StarOutlined as ct, FolderOpenOutlined as dt, ReloadOutlined as we, ExclamationCircleTwoTone as ut } from "@ant-design/icons";
10
+ import { getCookie as mt, getTodateString as me, setCookie as ht, THEME_COOKIE_NAME as he, getUserId as pe } from "../utils/index.js";
11
+ import { useSensors as pt, useSensor as gt, PointerSensor as ft, DndContext as bt, closestCenter as yt } from "@dnd-kit/core";
12
+ import { restrictToHorizontalAxis as Ct } from "@dnd-kit/modifiers";
13
+ import { arrayMove as vt, SortableContext as wt, horizontalListSortingStrategy as xt, useSortable as kt } from "@dnd-kit/sortable";
14
+ const It = z(
15
+ () => import("./MenuReport-Bw3AvR6b.js")
16
+ ), Nt = z(
17
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.$)
18
+ ), Pt = z(
19
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a0)
20
+ ), St = z(
21
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a1)
22
+ ), Lt = z(
23
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a2)
24
+ ), Mt = z(
25
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a4)
26
+ ), Tt = z(
27
+ () => import("./CMSearchIntfGwP01-_h2B12Ig.js")
28
+ ), Et = z(
29
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a5)
30
+ ), Bt = z(
31
+ () => import("./common-components-BjfrRYiU.js").then((n) => n.a3)
32
+ ), Ot = {
29
33
  // 게시판/문의
30
34
  CORE_REPORT: {
31
- component: yt,
35
+ component: It,
32
36
  defaultConfig: {
33
37
  title: "게시판/문의",
34
38
  width: 1200,
@@ -37,7 +41,7 @@ const yt = R(
37
41
  },
38
42
  // 조직/부서 검색류
39
43
  CORE_DEPARTMENT_01: {
40
- component: Ct,
44
+ component: Nt,
41
45
  defaultConfig: {
42
46
  title: "부서 검색",
43
47
  width: 620,
@@ -45,7 +49,7 @@ const yt = R(
45
49
  }
46
50
  },
47
51
  CORE_DEPARTMENT_02: {
48
- component: vt,
52
+ component: Pt,
49
53
  defaultConfig: {
50
54
  title: "부서 검색",
51
55
  width: 620,
@@ -53,7 +57,7 @@ const yt = R(
53
57
  }
54
58
  },
55
59
  CORE_ORGANIZATION_01: {
56
- component: wt,
60
+ component: St,
57
61
  defaultConfig: {
58
62
  title: "조직 검색",
59
63
  width: 620,
@@ -61,7 +65,7 @@ const yt = R(
61
65
  }
62
66
  },
63
67
  CORE_ORGANIZATION_02: {
64
- component: xt,
68
+ component: Lt,
65
69
  defaultConfig: {
66
70
  title: "조직 검색",
67
71
  width: 1e3,
@@ -69,7 +73,7 @@ const yt = R(
69
73
  }
70
74
  },
71
75
  CORE_PRGR_02: {
72
- component: kt,
76
+ component: Mt,
73
77
  defaultConfig: {
74
78
  title: "프로그램 검색",
75
79
  width: 700,
@@ -77,18 +81,34 @@ const yt = R(
77
81
  }
78
82
  },
79
83
  CORE_GW_DRAFTS: {
80
- component: Nt,
84
+ component: Tt,
81
85
  defaultConfig: {
82
86
  title: "기안 목록",
83
87
  width: 1e3,
84
88
  height: 700
85
89
  }
90
+ },
91
+ CORE_ADDRESS_01: {
92
+ component: Et,
93
+ defaultConfig: {
94
+ title: "주소 검색",
95
+ width: 750,
96
+ height: 800
97
+ }
98
+ },
99
+ CORE_HOLIDAY_01: {
100
+ component: Bt,
101
+ defaultConfig: {
102
+ title: "휴일 검색",
103
+ width: 750,
104
+ height: 800
105
+ }
86
106
  }
87
- }, me = "bwg-dot-line-wave-v4";
88
- function St() {
89
- if (typeof document > "u" || document.getElementById(me)) return;
90
- const r = document.createElement("style");
91
- r.id = me, r.textContent = `
107
+ }, ge = "bwg-dot-line-wave-v4";
108
+ function Rt() {
109
+ if (typeof document > "u" || document.getElementById(ge)) return;
110
+ const n = document.createElement("style");
111
+ n.id = ge, n.textContent = `
92
112
  .bwg-dotline {
93
113
  display: inline-flex;
94
114
  align-items: center;
@@ -122,55 +142,55 @@ function St() {
122
142
  @media (prefers-reduced-motion: reduce) {
123
143
  .bwg-dotline .dot { animation: none; }
124
144
  }
125
- `, document.head.appendChild(r);
145
+ `, document.head.appendChild(n);
126
146
  }
127
- const Tt = ({
128
- colors: r = ["#DAD3FF", "#B3A6FF", "#9380FF", "#816BFA"],
147
+ const Dt = ({
148
+ colors: n = ["#DAD3FF", "#B3A6FF", "#9380FF", "#816BFA"],
129
149
  count: t,
130
- size: n = 12,
131
- gap: s = 10,
132
- amp: o = 16,
133
- speedMs: l = 900,
134
- direction: h = "ltr",
135
- phase: p = 0.7
150
+ size: r = 12,
151
+ gap: o = 10,
152
+ amp: s = 16,
153
+ speedMs: a = 900,
154
+ direction: b = "ltr",
155
+ phase: l = 0.7
136
156
  }) => {
137
157
  B(() => {
138
- St();
158
+ Rt();
139
159
  }, []);
140
- const u = t ?? r.length, i = Array.from({ length: u }), y = {
141
- "--bwg-size": `${n}px`,
142
- "--bwg-gap": `${s}px`,
143
- "--bwg-amp": `${o}px`,
144
- "--bwg-speed": `${l}ms`
145
- }, w = l / u * p;
160
+ const c = t ?? n.length, y = Array.from({ length: c }), i = {
161
+ "--bwg-size": `${r}px`,
162
+ "--bwg-gap": `${o}px`,
163
+ "--bwg-amp": `${s}px`,
164
+ "--bwg-speed": `${a}ms`
165
+ }, v = a / c * l;
146
166
  return /* @__PURE__ */ e(
147
167
  "span",
148
168
  {
149
169
  className: "bwg-dotline",
150
170
  role: "img",
151
171
  "aria-label": "loading",
152
- style: y,
153
- children: i.map((g, C) => /* @__PURE__ */ e(
172
+ style: i,
173
+ children: y.map((h, u) => /* @__PURE__ */ e(
154
174
  "span",
155
175
  {
156
176
  className: "dot",
157
177
  style: {
158
- backgroundColor: r[C % r.length],
159
- animationDelay: h === "ltr" ? `${C * w}ms` : `${(u - 1 - C) * w}ms`
178
+ backgroundColor: n[u % n.length],
179
+ animationDelay: b === "ltr" ? `${u * v}ms` : `${(c - 1 - u) * v}ms`
160
180
  }
161
181
  },
162
- C
182
+ u
163
183
  ))
164
184
  }
165
185
  );
166
- }, dn = ({
167
- spin: r = null,
186
+ }, bn = ({
187
+ spin: n = null,
168
188
  text: t = "인증중...",
169
- dimStyle: n = "dark"
189
+ dimStyle: r = "dark"
170
190
  }) => {
171
- if (!(r ?? !0)) return null;
172
- const l = n === "dark";
173
- return /* @__PURE__ */ m(
191
+ if (!(n ?? !0)) return null;
192
+ const a = r === "dark";
193
+ return /* @__PURE__ */ C(
174
194
  "div",
175
195
  {
176
196
  className: "loading-overlay",
@@ -186,8 +206,8 @@ const Tt = ({
186
206
  alignItems: "center",
187
207
  gap: 8,
188
208
  padding: "8px 12px",
189
- background: l ? "rgba(0, 0, 0, 0.6)" : "rgba(255, 255, 255, 0.85)",
190
- color: l ? "#fff" : "#333",
209
+ background: a ? "rgba(0, 0, 0, 0.6)" : "rgba(255, 255, 255, 0.85)",
210
+ color: a ? "#fff" : "#333",
191
211
  backdropFilter: "blur(4px)",
192
212
  zIndex: 1e4
193
213
  },
@@ -196,10 +216,10 @@ const Tt = ({
196
216
  role: "status",
197
217
  children: [
198
218
  /* @__PURE__ */ e(
199
- Y,
219
+ q,
200
220
  {
201
221
  indicator: /* @__PURE__ */ e(
202
- Tt,
222
+ Dt,
203
223
  {
204
224
  colors: ["#DAD3FF", "#B3A6FF", "#9380FF", "#816BFA"],
205
225
  size: 12,
@@ -216,44 +236,48 @@ const Tt = ({
216
236
  ]
217
237
  }
218
238
  );
219
- }, un = ({ routes: r, useCommonProvider: t = !0, useServiceProvider: n = !0 }) => {
220
- let o = /* @__PURE__ */ m(xe, { children: [
221
- /* @__PURE__ */ e(Q, { path: "/", element: /* @__PURE__ */ e(ke, { to: "/login" }) }),
222
- /* @__PURE__ */ e(Q, { path: "/login", element: r.login }),
223
- /* @__PURE__ */ e(Q, { path: "/main", element: r.main })
239
+ }, yn = ({
240
+ routes: n,
241
+ useCommonProvider: t = !0,
242
+ useServiceProvider: r = !0
243
+ }) => {
244
+ let s = /* @__PURE__ */ C(fe, { children: [
245
+ /* @__PURE__ */ e(Y, { path: "/", element: /* @__PURE__ */ e(Te, { to: "/login" }) }),
246
+ /* @__PURE__ */ e(Y, { path: "/login", element: n.login }),
247
+ /* @__PURE__ */ e(Y, { path: "/main/*", element: n.main })
224
248
  ] });
225
- return n && (o = /* @__PURE__ */ e(ye, { children: o })), t && (o = /* @__PURE__ */ e(Ce, { children: o })), /* @__PURE__ */ e(Ie, { children: o });
226
- }, { Content: Lt } = j, Pt = ({
227
- config: r = {},
249
+ return r && (s = /* @__PURE__ */ e(Pe, { children: s })), t && (s = /* @__PURE__ */ e(Se, { children: s })), /* @__PURE__ */ e(Be, { children: s });
250
+ }, { Content: zt } = j, xe = ({
251
+ config: n = {},
228
252
  children: t
229
253
  }) => {
230
- const n = {
254
+ const r = {
231
255
  wrapper: {
232
256
  className: "content-wrapper",
233
- ...r.wrapper
257
+ ...n.wrapper
234
258
  },
235
259
  body: {
236
260
  className: "content-body",
237
- ...r.body
261
+ ...n.body
238
262
  },
239
- ...r
263
+ ...n
240
264
  };
241
265
  return /* @__PURE__ */ e(
242
- Lt,
266
+ zt,
243
267
  {
244
- className: n.wrapper.className,
245
- style: n.wrapper.style,
246
- children: /* @__PURE__ */ e(Se, { children: /* @__PURE__ */ e(
268
+ className: r.wrapper.className,
269
+ style: r.wrapper.style,
270
+ children: /* @__PURE__ */ e(Oe, { children: /* @__PURE__ */ e(
247
271
  "div",
248
272
  {
249
- className: n.body.className,
250
- style: n.body.style,
273
+ className: r.body.className,
274
+ style: r.body.style,
251
275
  children: t
252
276
  }
253
277
  ) })
254
278
  }
255
279
  );
256
- }, Mt = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.9998%2019.9993V20.9993C11.9998%2021.3932%2012.0774%2021.7833%2012.2282%2022.1473C12.3789%2022.5112%2012.5999%2022.8419%2012.8785%2023.1205C13.157%2023.399%2013.4877%2023.62%2013.8517%2023.7708C14.2156%2023.9215%2014.6057%2023.9991%2014.9997%2023.9991C15.3936%2023.9991%2015.7837%2023.9215%2016.1477%2023.7708C16.5116%2023.62%2016.8423%2023.399%2017.1209%2023.1205C17.3994%2022.8419%2017.6204%2022.5112%2017.7712%2022.1473C17.9219%2021.7833%2017.9995%2021.3932%2017.9995%2020.9993V19.9993M20.9994%2011.9997C20.9994%2014.9996%2022.9993%2019.9993%2022.9993%2019.9993H7.00006C7.00006%2019.9993%208.99996%2015.9995%208.99996%2011.9997C8.99996%208.73187%2011.7318%206%2014.9997%206C18.2675%206%2020.9994%208.73187%2020.9994%2011.9997Z'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e", Bt = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_93_4488)'%3e%3cpath%20d='M18%207H21C22.1046%207%2023%207.89543%2023%209V21C23%2022.1046%2022.1046%2023%2021%2023H18M11%2011L7%2015M7%2015L11%2019M7%2015L19%2015'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_93_4488'%3e%3crect%20width='30'%20height='30'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e", Et = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%206H16C16.5523%206%2017%206.44772%2017%207V7.56879C17%207.99659%2017.2871%208.36825%2017.6822%208.53228C18.0775%208.69638%2018.5377%208.63384%2018.8403%208.33123L19.2426%207.92891C19.6331%207.53838%2020.2663%207.53838%2020.6568%207.92891L22.071%209.34312C22.4616%209.73365%2022.4615%2010.3668%2022.071%2010.7573L21.6688%2011.1596C21.3661%2011.4622%2021.3036%2011.9225%2021.4677%2012.3177C21.6317%2012.7129%2022.0034%2013%2022.4313%2013L23%2013C23.5523%2013%2024%2013.4477%2024%2014V16C24%2016.5523%2023.5523%2017%2023%2017H22.4312C22.0034%2017%2021.6318%2017.2871%2021.4677%2017.6822C21.3036%2018.0775%2021.3661%2018.5377%2021.6688%2018.8403L22.071%2019.2426C22.4616%2019.6331%2022.4616%2020.2663%2022.071%2020.6568L20.6568%2022.071C20.2663%2022.4616%2019.6331%2022.4616%2019.2426%2022.071L18.8403%2021.6688C18.5377%2021.3661%2018.0775%2021.3036%2017.6822%2021.4677C17.2871%2021.6318%2017%2022.0034%2017%2022.4312V23C17%2023.5523%2016.5523%2024%2016%2024H14C13.4477%2024%2013%2023.5523%2013%2023V22.4313C13%2022.0034%2012.7129%2021.6317%2012.3177%2021.4677C11.9225%2021.3036%2011.4622%2021.3661%2011.1596%2021.6688L10.7573%2022.071C10.3668%2022.4616%209.73363%2022.4616%209.34311%2022.071L7.92889%2020.6568C7.53837%2020.2663%207.53837%2019.6331%207.92889%2019.2426L8.33123%2018.8403C8.63384%2018.5377%208.69638%2018.0775%208.53228%2017.6822C8.36825%2017.2871%207.99659%2017%207.56879%2017H7C6.44772%2017%206%2016.5523%206%2016V14C6%2013.4477%206.44772%2013%207%2013L7.56877%2013C7.99658%2013%208.36825%2012.7129%208.53229%2012.3178C8.6964%2011.9225%208.63386%2011.4623%208.33123%2011.1597L7.92891%2010.7573C7.53838%2010.3668%207.53838%209.73365%207.92891%209.34313L9.34312%207.92891C9.73365%207.53839%2010.3668%207.53839%2010.7573%207.92891L11.1597%208.33123C11.4623%208.63386%2011.9225%208.6964%2012.3178%208.53229C12.7129%208.36825%2013%207.99658%2013%207.56876V7C13%206.44772%2013.4477%206%2014%206Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3cpath%20d='M17%2015C17%2016.1046%2016.1046%2017%2015%2017C13.8954%2017%2013%2016.1046%2013%2015C13%2013.8954%2013.8954%2013%2015%2013C16.1046%2013%2017%2013.8954%2017%2015Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3c/svg%3e", { Header: Dt } = j, F = {
280
+ }, At = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.9998%2019.9993V20.9993C11.9998%2021.3932%2012.0774%2021.7833%2012.2282%2022.1473C12.3789%2022.5112%2012.5999%2022.8419%2012.8785%2023.1205C13.157%2023.399%2013.4877%2023.62%2013.8517%2023.7708C14.2156%2023.9215%2014.6057%2023.9991%2014.9997%2023.9991C15.3936%2023.9991%2015.7837%2023.9215%2016.1477%2023.7708C16.5116%2023.62%2016.8423%2023.399%2017.1209%2023.1205C17.3994%2022.8419%2017.6204%2022.5112%2017.7712%2022.1473C17.9219%2021.7833%2017.9995%2021.3932%2017.9995%2020.9993V19.9993M20.9994%2011.9997C20.9994%2014.9996%2022.9993%2019.9993%2022.9993%2019.9993H7.00006C7.00006%2019.9993%208.99996%2015.9995%208.99996%2011.9997C8.99996%208.73187%2011.7318%206%2014.9997%206C18.2675%206%2020.9994%208.73187%2020.9994%2011.9997Z'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e", $t = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_93_4488)'%3e%3cpath%20d='M18%207H21C22.1046%207%2023%207.89543%2023%209V21C23%2022.1046%2022.1046%2023%2021%2023H18M11%2011L7%2015M7%2015L11%2019M7%2015L19%2015'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_93_4488'%3e%3crect%20width='30'%20height='30'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e", Ft = "data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%206H16C16.5523%206%2017%206.44772%2017%207V7.56879C17%207.99659%2017.2871%208.36825%2017.6822%208.53228C18.0775%208.69638%2018.5377%208.63384%2018.8403%208.33123L19.2426%207.92891C19.6331%207.53838%2020.2663%207.53838%2020.6568%207.92891L22.071%209.34312C22.4616%209.73365%2022.4615%2010.3668%2022.071%2010.7573L21.6688%2011.1596C21.3661%2011.4622%2021.3036%2011.9225%2021.4677%2012.3177C21.6317%2012.7129%2022.0034%2013%2022.4313%2013L23%2013C23.5523%2013%2024%2013.4477%2024%2014V16C24%2016.5523%2023.5523%2017%2023%2017H22.4312C22.0034%2017%2021.6318%2017.2871%2021.4677%2017.6822C21.3036%2018.0775%2021.3661%2018.5377%2021.6688%2018.8403L22.071%2019.2426C22.4616%2019.6331%2022.4616%2020.2663%2022.071%2020.6568L20.6568%2022.071C20.2663%2022.4616%2019.6331%2022.4616%2019.2426%2022.071L18.8403%2021.6688C18.5377%2021.3661%2018.0775%2021.3036%2017.6822%2021.4677C17.2871%2021.6318%2017%2022.0034%2017%2022.4312V23C17%2023.5523%2016.5523%2024%2016%2024H14C13.4477%2024%2013%2023.5523%2013%2023V22.4313C13%2022.0034%2012.7129%2021.6317%2012.3177%2021.4677C11.9225%2021.3036%2011.4622%2021.3661%2011.1596%2021.6688L10.7573%2022.071C10.3668%2022.4616%209.73363%2022.4616%209.34311%2022.071L7.92889%2020.6568C7.53837%2020.2663%207.53837%2019.6331%207.92889%2019.2426L8.33123%2018.8403C8.63384%2018.5377%208.69638%2018.0775%208.53228%2017.6822C8.36825%2017.2871%207.99659%2017%207.56879%2017H7C6.44772%2017%206%2016.5523%206%2016V14C6%2013.4477%206.44772%2013%207%2013L7.56877%2013C7.99658%2013%208.36825%2012.7129%208.53229%2012.3178C8.6964%2011.9225%208.63386%2011.4623%208.33123%2011.1597L7.92891%2010.7573C7.53838%2010.3668%207.53838%209.73365%207.92891%209.34313L9.34312%207.92891C9.73365%207.53839%2010.3668%207.53839%2010.7573%207.92891L11.1597%208.33123C11.4623%208.63386%2011.9225%208.6964%2012.3178%208.53229C12.7129%208.36825%2013%207.99658%2013%207.56876V7C13%206.44772%2013.4477%206%2014%206Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3cpath%20d='M17%2015C17%2016.1046%2016.1046%2017%2015%2017C13.8954%2017%2013%2016.1046%2013%2015C13%2013.8954%2013.8954%2013%2015%2013C16.1046%2013%2017%2013.8954%2017%2015Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3c/svg%3e", { Header: Wt } = j, G = {
257
281
  light: {
258
282
  headerBg: "#ffffff",
259
283
  headerText: "#000000",
@@ -306,123 +330,125 @@ const Tt = ({
306
330
  buttonDefaultBorder: "#dddddd",
307
331
  buttonPermissionBorder: "#bdb1ff"
308
332
  }
309
- }, ee = {
333
+ }, re = {
310
334
  0: "작게",
311
335
  1: "보통",
312
336
  2: "크게"
313
- }, Ot = ({ config: r = {} }) => {
314
- const t = {
337
+ }, ke = ({ config: n = {}, children: t }) => {
338
+ const r = {
315
339
  gap: 14,
316
340
  minWidth: 200,
317
- items: r.right?.items,
341
+ items: n.right?.items,
318
342
  alarm: {
319
343
  visible: !0,
320
- ...r.right?.alarm || {}
344
+ ...n.right?.alarm || {}
321
345
  },
322
346
  theme: {
323
347
  visible: !0,
324
- ...r.right?.theme || {}
348
+ ...n.right?.theme || {}
325
349
  },
326
350
  logout: {
327
351
  visible: !0,
328
- ...r.right?.logout || {}
352
+ ...n.right?.logout || {}
329
353
  },
330
354
  avatar: {
331
355
  visible: !0,
332
356
  width: 30,
333
357
  height: 30,
334
- ...r.right?.avatar || {}
358
+ ...n.right?.avatar || {}
335
359
  }
336
- }, n = {
360
+ }, o = {
337
361
  wrapper: {
338
362
  className: "header-wrapper",
339
- ...r.wrapper
363
+ ...n.wrapper
340
364
  },
341
365
  logo: {
342
366
  gap: 10,
343
- ...r.logo
367
+ ...n.logo
344
368
  },
345
- right: t
346
- }, s = Ne(), [o, l] = D("modern"), h = K(null), p = He(), {
347
- componentSize: u,
369
+ right: r
370
+ }, s = le(), [a, b] = R("modern"), l = U(null), c = qe(), {
371
+ componentSize: y,
348
372
  setComponentSize: i,
349
- gridSize: y,
350
- setGridSize: w,
351
- spacingSize: g,
352
- setSpacingSize: C
353
- } = Ve(), x = (c, v) => {
373
+ gridSize: v,
374
+ setGridSize: h,
375
+ spacingSize: u,
376
+ setSpacingSize: x,
377
+ enableProtectWrapper: N,
378
+ setEnableProtectWrapper: p
379
+ } = Ce(), g = (d, w) => {
354
380
  try {
355
- if (!/^[a-zA-Z0-9-]+$/.test(c) || !/^[#a-zA-Z0-9()\s,.-]+$/.test(v)) return;
356
- document.documentElement.style.setProperty(c, v);
357
- } catch (d) {
358
- console.error("CSS variable setting failed:", d);
381
+ if (!/^[a-zA-Z0-9-]+$/.test(d) || !/^[#a-zA-Z0-9()\s,.-]+$/.test(w)) return;
382
+ document.documentElement.style.setProperty(d, w);
383
+ } catch (W) {
384
+ console.error("CSS variable setting failed:", W);
359
385
  }
360
- }, T = (c) => {
361
- if (!F[c]) return;
362
- l(c);
363
- const v = { ...F[c] };
364
- x("--header-bg", v.headerBg), x("--header-text", v.headerText), x("--sidebar-bg", v.sidebarBg), x("--sidebar-text", v.sidebarText), x("--button-primary", v.buttonPrimary), x("--button-primary-hover", v.buttonPrimaryHover), x("--button-primary-active", v.buttonPrimaryActive), x("--button-default", v.buttonDefault), x("--button-default-hover", v.buttonDefaultHover), x("--button-default-border", v.buttonDefaultBorder), x(
386
+ }, P = (d) => {
387
+ if (!G[d]) return;
388
+ b(d);
389
+ const w = { ...G[d] };
390
+ g("--header-bg", w.headerBg), g("--header-text", w.headerText), g("--sidebar-bg", w.sidebarBg), g("--sidebar-text", w.sidebarText), g("--button-primary", w.buttonPrimary), g("--button-primary-hover", w.buttonPrimaryHover), g("--button-primary-active", w.buttonPrimaryActive), g("--button-default", w.buttonDefault), g("--button-default-hover", w.buttonDefaultHover), g("--button-default-border", w.buttonDefaultBorder), g(
365
391
  "--button-permission-border",
366
- v.buttonPermissionBorder
367
- ), h.current && h.current.setAttribute("data-theme", c), document.documentElement.setAttribute("data-theme", c), it(de, c, 30);
392
+ w.buttonPermissionBorder
393
+ ), l.current && l.current.setAttribute("data-theme", d), document.documentElement.setAttribute("data-theme", d), ht(he, d, 30);
368
394
  };
369
395
  B(() => {
370
- const c = at(de);
371
- c && F[c] ? T(c) : T("modern");
396
+ const d = mt(he);
397
+ d && G[d] ? P(d) : P("modern");
372
398
  }, []);
373
- const _ = () => ({ ...F[o] }).headerBg, z = () => {
374
- p(), s("/login");
399
+ const A = () => ({ ...G[a] }).headerBg, E = () => {
400
+ c(), s("/login");
375
401
  };
376
- ce ? ce("HH:mm:ss") : (/* @__PURE__ */ new Date()).toLocaleTimeString("ko-KR");
377
- const $ = /* @__PURE__ */ m("div", { style: { padding: "8px 0" }, children: [
378
- /* @__PURE__ */ m("div", { style: { marginBottom: "12px" }, children: [
379
- /* @__PURE__ */ e(Le, { value: _(), disabled: !0, size: "small" }),
402
+ me ? me("HH:mm:ss") : (/* @__PURE__ */ new Date()).toLocaleTimeString("ko-KR");
403
+ const m = /* @__PURE__ */ C("div", { style: { padding: "8px 0" }, children: [
404
+ /* @__PURE__ */ C("div", { style: { marginBottom: "12px" }, children: [
405
+ /* @__PURE__ */ e(De, { value: A(), disabled: !0, size: "small" }),
380
406
  /* @__PURE__ */ e("span", { style: { marginLeft: "8px", fontSize: "12px" }, children: "현재 테마 색상" })
381
407
  ] }),
382
- /* @__PURE__ */ m("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: [
408
+ /* @__PURE__ */ C("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: [
383
409
  /* @__PURE__ */ e(
384
- I,
410
+ M,
385
411
  {
386
- type: o === "modern" ? "primary" : "default",
412
+ type: a === "modern" ? "primary" : "default",
387
413
  size: "small",
388
- onClick: () => T("modern"),
414
+ onClick: () => P("modern"),
389
415
  style: {
390
416
  textAlign: "left",
391
- backgroundColor: o === "modern" ? F.modern.headerBg : void 0,
392
- color: o === "modern" ? F.modern.headerText : void 0
417
+ backgroundColor: a === "modern" ? G.modern.headerBg : void 0,
418
+ color: a === "modern" ? G.modern.headerText : void 0
393
419
  },
394
420
  children: "모던"
395
421
  },
396
422
  "modern"
397
423
  ),
398
- Object.entries(F).filter(([c]) => c !== "modern").map(([c, v]) => /* @__PURE__ */ e(
399
- I,
424
+ Object.entries(G).filter(([d]) => d !== "modern").map(([d, w]) => /* @__PURE__ */ e(
425
+ M,
400
426
  {
401
- type: o === c ? "primary" : "default",
427
+ type: a === d ? "primary" : "default",
402
428
  size: "small",
403
- onClick: () => T(c),
429
+ onClick: () => P(d),
404
430
  style: {
405
431
  textAlign: "left",
406
- backgroundColor: o === c ? v.headerBg : void 0,
407
- color: o === c ? v.headerText : void 0
432
+ backgroundColor: a === d ? w.headerBg : void 0,
433
+ color: a === d ? w.headerText : void 0
408
434
  },
409
- children: c
435
+ children: d
410
436
  },
411
- c
437
+ d
412
438
  ))
413
439
  ] }),
414
- /* @__PURE__ */ e(Pe, {}),
415
- /* @__PURE__ */ m("div", { style: { marginTop: "8px" }, children: [
440
+ /* @__PURE__ */ e(ue, {}),
441
+ /* @__PURE__ */ C("div", { style: { marginTop: "8px" }, children: [
416
442
  /* @__PURE__ */ e("div", { style: { marginBottom: "8px", fontSize: "12px" }, children: "컴포넌트 크기" }),
417
443
  /* @__PURE__ */ e(
418
- X,
444
+ te,
419
445
  {
420
- marks: ee,
421
- value: u,
446
+ marks: re,
447
+ value: y,
422
448
  min: 0,
423
449
  max: 2,
424
450
  step: 1,
425
- onChange: (c) => i(c)
451
+ onChange: (d) => i(d)
426
452
  }
427
453
  ),
428
454
  /* @__PURE__ */ e(
@@ -433,14 +459,14 @@ const Tt = ({
433
459
  }
434
460
  ),
435
461
  /* @__PURE__ */ e(
436
- X,
462
+ te,
437
463
  {
438
- marks: ee,
439
- value: y,
464
+ marks: re,
465
+ value: v,
440
466
  min: 0,
441
467
  max: 2,
442
468
  step: 1,
443
- onChange: (c) => w(c)
469
+ onChange: (d) => h(d)
444
470
  }
445
471
  ),
446
472
  /* @__PURE__ */ e(
@@ -451,89 +477,124 @@ const Tt = ({
451
477
  }
452
478
  ),
453
479
  /* @__PURE__ */ e(
454
- X,
480
+ te,
455
481
  {
456
- marks: ee,
457
- value: g,
482
+ marks: re,
483
+ value: u,
458
484
  min: 0,
459
485
  max: 2,
460
486
  step: 1,
461
- onChange: (c) => C(c)
487
+ onChange: (d) => x(d)
488
+ }
489
+ ),
490
+ /* @__PURE__ */ e(ue, {}),
491
+ /* @__PURE__ */ C(
492
+ "div",
493
+ {
494
+ style: {
495
+ marginTop: "16px",
496
+ display: "flex",
497
+ justifyContent: "space-between",
498
+ alignItems: "center"
499
+ },
500
+ children: [
501
+ /* @__PURE__ */ e("span", { children: "화면 보호 활성화" }),
502
+ /* @__PURE__ */ e(
503
+ ze,
504
+ {
505
+ checked: N,
506
+ onChange: p
507
+ }
508
+ )
509
+ ]
462
510
  }
463
511
  )
464
512
  ] })
465
513
  ] });
466
- return /* @__PURE__ */ m(
467
- Dt,
514
+ return /* @__PURE__ */ C(
515
+ Wt,
468
516
  {
469
- className: n.wrapper.className,
470
- style: { ...n.wrapper.style },
517
+ className: o.wrapper.className,
518
+ style: { ...o.wrapper.style },
471
519
  children: [
472
- n.logo && /* @__PURE__ */ e("div", { className: "header-left", children: /* @__PURE__ */ e(
520
+ o.logo && /* @__PURE__ */ e("div", { className: "header-left", children: /* @__PURE__ */ e(
473
521
  "div",
474
522
  {
475
523
  className: "logo-container",
476
- style: { gap: n.logo?.gap },
477
- children: n.logo?.items
524
+ style: { gap: o.logo?.gap },
525
+ children: o.logo?.items
478
526
  }
479
527
  ) }),
480
- /* @__PURE__ */ m(
528
+ t && /* @__PURE__ */ e(
529
+ "div",
530
+ {
531
+ className: "header-center",
532
+ style: {
533
+ flex: 1,
534
+ display: "flex",
535
+ justifyContent: "center",
536
+ alignItems: "center"
537
+ },
538
+ children: t
539
+ }
540
+ ),
541
+ /* @__PURE__ */ C(
481
542
  "div",
482
543
  {
483
544
  className: "header-right",
484
545
  style: {
485
- gap: n.right?.gap,
486
- minWidth: n.right?.minWidth
546
+ gap: o.right?.gap,
547
+ minWidth: o.right?.minWidth
487
548
  },
488
549
  children: [
489
- n.right?.items?.map((c, v) => /* @__PURE__ */ e("div", { children: c }, v)),
490
- n.right?.alarm?.visible && /* @__PURE__ */ e(
491
- I,
550
+ o.right?.items?.map((d, w) => /* @__PURE__ */ e("div", { children: d }, w)),
551
+ o.right?.alarm?.visible && /* @__PURE__ */ e(
552
+ M,
492
553
  {
493
554
  type: "text",
494
- icon: /* @__PURE__ */ e("img", { src: Mt, alt: "알림" }),
555
+ icon: /* @__PURE__ */ e("img", { src: At, alt: "알림" }),
495
556
  className: "alarm-btn",
496
- onClick: n.right?.alarm?.onClick
557
+ onClick: o.right?.alarm?.onClick
497
558
  }
498
559
  ),
499
- n.right?.theme?.visible && /* @__PURE__ */ e(
500
- Me,
560
+ o.right?.theme?.visible && /* @__PURE__ */ e(
561
+ Ae,
501
562
  {
502
- content: $,
563
+ content: m,
503
564
  title: "테마 설정",
504
565
  trigger: "click",
505
566
  placement: "bottomRight",
506
- onOpenChange: (c) => n.right?.theme?.onOpenChange?.(c),
567
+ onOpenChange: (d) => o.right?.theme?.onOpenChange?.(d),
507
568
  children: /* @__PURE__ */ e(
508
- I,
569
+ M,
509
570
  {
510
571
  type: "text",
511
- icon: /* @__PURE__ */ e("img", { src: Et, alt: "개인설정" }),
572
+ icon: /* @__PURE__ */ e("img", { src: Ft, alt: "개인설정" }),
512
573
  className: "theme-btn",
513
- onClick: n.right?.theme?.onClick
574
+ onClick: o.right?.theme?.onClick
514
575
  }
515
576
  )
516
577
  }
517
578
  ),
518
- n.right?.logout?.visible && /* @__PURE__ */ e(
519
- I,
579
+ o.right?.logout?.visible && /* @__PURE__ */ e(
580
+ M,
520
581
  {
521
582
  type: "text",
522
- icon: /* @__PURE__ */ e("img", { src: Bt, alt: "로그아웃" }),
523
- onClick: n.right?.logout?.onClick || z,
583
+ icon: /* @__PURE__ */ e("img", { src: $t, alt: "로그아웃" }),
584
+ onClick: o.right?.logout?.onClick || E,
524
585
  className: "logout-btn"
525
586
  }
526
587
  ),
527
- n.right?.avatar?.visible && /* @__PURE__ */ e(
528
- Be,
588
+ o.right?.avatar?.visible && /* @__PURE__ */ e(
589
+ $e,
529
590
  {
530
- icon: /* @__PURE__ */ e(Ze, {}),
591
+ icon: /* @__PURE__ */ e(et, {}),
531
592
  className: "avatar",
532
593
  style: {
533
- width: n.right?.avatar?.width,
534
- height: n.right?.avatar?.height
594
+ width: o.right?.avatar?.width,
595
+ height: o.right?.avatar?.height
535
596
  },
536
- onClick: n.right?.avatar?.onClick
597
+ onClick: o.right?.avatar?.onClick
537
598
  }
538
599
  )
539
600
  ]
@@ -542,288 +603,288 @@ const Tt = ({
542
603
  ]
543
604
  }
544
605
  );
545
- }, ne = /* @__PURE__ */ Object.freeze({
606
+ }, ae = /* @__PURE__ */ Object.freeze({
546
607
  Translate: {
547
- toString(r) {
548
- if (!r)
608
+ toString(n) {
609
+ if (!n)
549
610
  return;
550
611
  const {
551
612
  x: t,
552
- y: n
553
- } = r;
554
- return "translate3d(" + (t ? Math.round(t) : 0) + "px, " + (n ? Math.round(n) : 0) + "px, 0)";
613
+ y: r
614
+ } = n;
615
+ return "translate3d(" + (t ? Math.round(t) : 0) + "px, " + (r ? Math.round(r) : 0) + "px, 0)";
555
616
  }
556
617
  },
557
618
  Scale: {
558
- toString(r) {
559
- if (!r)
619
+ toString(n) {
620
+ if (!n)
560
621
  return;
561
622
  const {
562
623
  scaleX: t,
563
- scaleY: n
564
- } = r;
565
- return "scaleX(" + t + ") scaleY(" + n + ")";
624
+ scaleY: r
625
+ } = n;
626
+ return "scaleX(" + t + ") scaleY(" + r + ")";
566
627
  }
567
628
  },
568
629
  Transform: {
569
- toString(r) {
570
- if (r)
571
- return [ne.Translate.toString(r), ne.Scale.toString(r)].join(" ");
630
+ toString(n) {
631
+ if (n)
632
+ return [ae.Translate.toString(n), ae.Scale.toString(n)].join(" ");
572
633
  }
573
634
  },
574
635
  Transition: {
575
- toString(r) {
636
+ toString(n) {
576
637
  let {
577
638
  property: t,
578
- duration: n,
579
- easing: s
580
- } = r;
581
- return t + " " + n + "ms " + s;
639
+ duration: r,
640
+ easing: o
641
+ } = n;
642
+ return t + " " + r + "ms " + o;
582
643
  }
583
644
  }
584
- }), Rt = oe(
585
- ({ className: r, ...t }) => {
586
- const n = K(null), {
587
- attributes: s,
588
- listeners: o,
589
- transform: l,
590
- transition: h,
591
- isDragging: p,
592
- setNodeRef: u
593
- } = bt({ id: t["data-node-key"] }), [i, y] = D();
645
+ }), _t = ce(
646
+ ({ className: n, ...t }) => {
647
+ const r = U(null), {
648
+ attributes: o,
649
+ listeners: s,
650
+ transform: a,
651
+ transition: b,
652
+ isDragging: l,
653
+ setNodeRef: c
654
+ } = kt({ id: t["data-node-key"] }), [y, i] = R();
594
655
  B(() => {
595
- const g = n.current;
596
- if (g)
597
- if (p) {
598
- const C = Math.round(g.getBoundingClientRect().width);
599
- y(C);
656
+ const h = r.current;
657
+ if (h)
658
+ if (l) {
659
+ const u = Math.round(h.getBoundingClientRect().width);
660
+ i(u);
600
661
  } else
601
- y(void 0);
602
- }, [p]);
603
- const w = {
662
+ i(void 0);
663
+ }, [l]);
664
+ const v = {
604
665
  ...t.style,
605
- transform: l ? ne.Transform.toString(l) : void 0,
606
- transition: h ?? "transform 0.16s ease",
666
+ transform: a ? ae.Transform.toString(a) : void 0,
667
+ transition: b ?? "transform 0.16s ease",
607
668
  cursor: "grab",
608
669
  userSelect: "none",
609
670
  willChange: "transform",
610
671
  // ✅ 드래그 중 픽셀 폭 고정 (flex 재계산 억제)
611
- width: i ?? void 0,
612
- minWidth: i ?? void 0,
613
- maxWidth: i ?? void 0,
614
- flex: i !== void 0 ? "0 0 auto" : void 0
672
+ width: y ?? void 0,
673
+ minWidth: y ?? void 0,
674
+ maxWidth: y ?? void 0,
675
+ flex: y !== void 0 ? "0 0 auto" : void 0
615
676
  };
616
- return $e(t.children, {
617
- ref: (g) => {
618
- n.current !== g && (n.current = g), u(g);
677
+ return Ze(t.children, {
678
+ ref: (h) => {
679
+ r.current !== h && (r.current = h), c(h);
619
680
  },
620
- style: w,
621
- ...s,
622
- ...o
681
+ style: v,
682
+ ...o,
683
+ ...s
623
684
  });
624
685
  }
625
- ), zt = oe(function({
686
+ ), Gt = ce(function({
626
687
  config: t,
627
- isFirst: n,
628
- isLast: s,
629
- canCloseAll: o,
630
- onFirst: l,
631
- onPrev: h,
632
- onNext: p,
633
- onLast: u,
634
- onCloseAll: i
688
+ isFirst: r,
689
+ isLast: o,
690
+ canCloseAll: s,
691
+ onFirst: a,
692
+ onPrev: b,
693
+ onNext: l,
694
+ onLast: c,
695
+ onCloseAll: y
635
696
  }) {
636
- return /* @__PURE__ */ m("div", { className: t.wrapper?.className, style: t.wrapper?.style, children: [
697
+ return /* @__PURE__ */ C("div", { className: t.wrapper?.className, style: t.wrapper?.style, children: [
637
698
  /* @__PURE__ */ e(
638
- W,
699
+ K,
639
700
  {
640
701
  title: "첫 번째 탭",
641
702
  className: t.tooltip?.className,
642
703
  style: t.tooltip?.style,
643
704
  children: /* @__PURE__ */ e(
644
- I,
705
+ M,
645
706
  {
646
707
  className: t.buttons?.className,
647
708
  style: t.buttons?.style,
648
709
  size: "small",
649
- icon: /* @__PURE__ */ e(Ye, {}),
650
- onClick: l,
651
- disabled: n
710
+ icon: /* @__PURE__ */ e(tt, {}),
711
+ onClick: a,
712
+ disabled: r
652
713
  }
653
714
  )
654
715
  }
655
716
  ),
656
717
  /* @__PURE__ */ e(
657
- W,
718
+ K,
658
719
  {
659
720
  title: "이전 탭",
660
721
  className: t.tooltip?.className,
661
722
  style: t.tooltip?.style,
662
723
  children: /* @__PURE__ */ e(
663
- I,
724
+ M,
664
725
  {
665
726
  className: t.buttons?.className,
666
727
  style: t.buttons?.style,
667
728
  size: "small",
668
- icon: /* @__PURE__ */ e(qe, {}),
669
- onClick: h,
670
- disabled: n
729
+ icon: /* @__PURE__ */ e(nt, {}),
730
+ onClick: b,
731
+ disabled: r
671
732
  }
672
733
  )
673
734
  }
674
735
  ),
675
736
  /* @__PURE__ */ e(
676
- W,
737
+ K,
677
738
  {
678
739
  title: "다음 탭",
679
740
  className: t.tooltip?.className,
680
741
  style: t.tooltip?.style,
681
742
  children: /* @__PURE__ */ e(
682
- I,
743
+ M,
683
744
  {
684
745
  className: t.buttons?.className,
685
746
  style: t.buttons?.style,
686
747
  size: "small",
687
- icon: /* @__PURE__ */ e(Qe, {}),
688
- onClick: p,
689
- disabled: s
748
+ icon: /* @__PURE__ */ e(rt, {}),
749
+ onClick: l,
750
+ disabled: o
690
751
  }
691
752
  )
692
753
  }
693
754
  ),
694
755
  /* @__PURE__ */ e(
695
- W,
756
+ K,
696
757
  {
697
758
  title: "마지막 탭",
698
759
  className: t.tooltip?.className,
699
760
  style: t.tooltip?.style,
700
761
  children: /* @__PURE__ */ e(
701
- I,
762
+ M,
702
763
  {
703
764
  className: t.buttons?.className,
704
765
  style: t.buttons?.style,
705
766
  size: "small",
706
- icon: /* @__PURE__ */ e(Xe, {}),
707
- onClick: u,
708
- disabled: s
767
+ icon: /* @__PURE__ */ e(ot, {}),
768
+ onClick: c,
769
+ disabled: o
709
770
  }
710
771
  )
711
772
  }
712
773
  ),
713
774
  /* @__PURE__ */ e(
714
- W,
775
+ K,
715
776
  {
716
777
  title: "모든 탭 닫기",
717
778
  className: t.tooltip?.className,
718
779
  style: t.tooltip?.style,
719
780
  children: /* @__PURE__ */ e(
720
- I,
781
+ M,
721
782
  {
722
783
  className: t.buttons?.className,
723
784
  style: t.buttons?.style,
724
785
  size: "small",
725
- icon: /* @__PURE__ */ e(ge, {}),
726
- onClick: i,
727
- disabled: !o
786
+ icon: /* @__PURE__ */ e(ve, {}),
787
+ onClick: y,
788
+ disabled: !s
728
789
  }
729
790
  )
730
791
  }
731
792
  )
732
793
  ] });
733
- }), Ft = ({
734
- config: r = {}
794
+ }), Ht = ({
795
+ config: n = {}
735
796
  }) => {
736
797
  const t = {
737
798
  wrapper: {
738
799
  className: "menu-tab-wrapper",
739
- ...r?.wrapper
800
+ ...n?.wrapper
740
801
  },
741
802
  tabs: {
742
803
  className: "menu-tabs",
743
- ...r?.tabs
804
+ ...n?.tabs
744
805
  },
745
806
  nav: {
746
807
  wrapper: {
747
808
  className: "menu-nav-wrapper",
748
- ...r?.nav?.wrapper
809
+ ...n?.nav?.wrapper
749
810
  },
750
811
  buttons: {
751
812
  className: "menu-nav-buttons",
752
- ...r?.nav?.buttons
813
+ ...n?.nav?.buttons
753
814
  },
754
815
  tooltip: {
755
816
  className: "menu-nav-tooltip",
756
- ...r?.nav?.tooltip
817
+ ...n?.nav?.tooltip
757
818
  },
758
- ...r?.nav
819
+ ...n?.nav
759
820
  },
760
- ...r
761
- }, n = O((d) => d.tabs), s = O((d) => d.activeMenuId), o = O((d) => d.focusTab), l = O((d) => d.closeTab), h = O((d) => d.reorderTabs), p = lt(
762
- ct(dt, { activationConstraint: { distance: 6 } })
763
- ), u = (d) => {
764
- o(d);
765
- }, i = (d, S) => {
766
- S === "remove" && typeof d == "string" && l(d);
767
- }, y = () => {
768
- n.length > 0 && o(n[0].key);
769
- }, w = () => {
770
- if (!s || n.length <= 1) return;
771
- const d = n.findIndex((S) => S.key === s);
772
- d > 0 && o(n[d - 1].key);
773
- }, g = () => {
774
- if (!s || n.length <= 1) return;
775
- const d = n.findIndex((S) => S.key === s);
776
- d < n.length - 1 && o(n[d + 1].key);
777
- }, C = () => {
778
- n.length > 0 && o(n[n.length - 1].key);
821
+ ...n
822
+ }, r = F((m) => m.tabs), o = F((m) => m.activeMenuId), s = F((m) => m.focusTab), a = F((m) => m.closeTab), b = F((m) => m.reorderTabs), l = pt(
823
+ gt(ft, { activationConstraint: { distance: 6 } })
824
+ ), c = (m) => {
825
+ s(m);
826
+ }, y = (m, d) => {
827
+ d === "remove" && typeof m == "string" && a(m);
828
+ }, i = () => {
829
+ r.length > 0 && s(r[0].key);
830
+ }, v = () => {
831
+ if (!o || r.length <= 1) return;
832
+ const m = r.findIndex((d) => d.key === o);
833
+ m > 0 && s(r[m - 1].key);
834
+ }, h = () => {
835
+ if (!o || r.length <= 1) return;
836
+ const m = r.findIndex((d) => d.key === o);
837
+ m < r.length - 1 && s(r[m + 1].key);
838
+ }, u = () => {
839
+ r.length > 0 && s(r[r.length - 1].key);
779
840
  }, x = () => {
780
- n.forEach((d) => {
781
- l(d.key);
841
+ r.forEach((m) => {
842
+ a(m.key);
782
843
  });
783
- }, T = s ? n.findIndex((d) => d.key === s) : -1, _ = T === 0, z = T === n.length - 1, $ = Z(
784
- () => n.map((d) => ({
785
- key: d.key,
786
- label: d.label,
844
+ }, N = o ? r.findIndex((m) => m.key === o) : -1, p = N === 0, g = N === r.length - 1, P = _(
845
+ () => r.map((m) => ({
846
+ key: m.key,
847
+ label: m.label,
787
848
  closable: !0,
788
849
  children: null
789
850
  // 컨텐츠는 Main 쪽에서 렌더 → 여기선 헤더만 필요
790
851
  })),
791
- [n]
792
- ), c = A(
793
- ({ active: d, over: S }) => {
794
- if (!S || d.id === S.id) return;
795
- const L = n.findIndex((E) => E.key === d.id), G = n.findIndex((E) => E.key === S.id);
796
- if (L < 0 || G < 0 || L === G) return;
797
- const q = n.map((E) => E.key), U = ht(q, L, G);
798
- h?.(U);
852
+ [r]
853
+ ), A = D(
854
+ ({ active: m, over: d }) => {
855
+ if (!d || m.id === d.id) return;
856
+ const w = r.findIndex(($) => $.key === m.id), W = r.findIndex(($) => $.key === d.id);
857
+ if (w < 0 || W < 0 || w === W) return;
858
+ const ee = r.map(($) => $.key), Z = vt(ee, w, W);
859
+ b?.(Z);
799
860
  },
800
- [n, h]
801
- ), v = A(
802
- (d, S) => /* @__PURE__ */ e(
803
- ut,
861
+ [r, b]
862
+ ), E = D(
863
+ (m, d) => /* @__PURE__ */ e(
864
+ bt,
804
865
  {
805
- sensors: p,
806
- onDragEnd: c,
807
- collisionDetection: mt,
808
- modifiers: [pt],
866
+ sensors: l,
867
+ onDragEnd: A,
868
+ collisionDetection: yt,
869
+ modifiers: [Ct],
809
870
  children: /* @__PURE__ */ e(
810
- gt,
871
+ wt,
811
872
  {
812
- items: n.map((L) => L.key),
813
- strategy: ft,
814
- children: /* @__PURE__ */ e(S, { ...d, children: (L) => /* @__PURE__ */ he(
815
- Rt,
873
+ items: r.map((w) => w.key),
874
+ strategy: xt,
875
+ children: /* @__PURE__ */ e(d, { ...m, children: (w) => /* @__PURE__ */ ye(
876
+ _t,
816
877
  {
817
- ...L.props,
818
- key: L.key
878
+ ...w.props,
879
+ key: w.key
819
880
  },
820
- L
881
+ w
821
882
  ) })
822
883
  }
823
884
  )
824
885
  }
825
886
  ),
826
- [p, c, n]
887
+ [l, A, r]
827
888
  );
828
889
  return /* @__PURE__ */ e(
829
890
  "div",
@@ -831,40 +892,40 @@ const Tt = ({
831
892
  className: t.wrapper.className,
832
893
  style: {
833
894
  ...t.wrapper.style,
834
- display: n.length === 0 ? "none" : "block"
895
+ display: r.length === 0 ? "none" : "block"
835
896
  },
836
897
  children: /* @__PURE__ */ e(
837
- Ee,
898
+ Fe,
838
899
  {
839
900
  type: "editable-card",
840
- activeKey: s || void 0,
841
- onChange: u,
842
- onEdit: i,
901
+ activeKey: o || void 0,
902
+ onChange: c,
903
+ onEdit: y,
843
904
  className: t.tabs.className,
844
905
  style: t.tabs.style,
845
906
  hideAdd: !0,
846
- items: $,
907
+ items: P,
847
908
  tabBarExtraContent: /* @__PURE__ */ e(
848
- zt,
909
+ Gt,
849
910
  {
850
911
  config: t?.nav,
851
- isFirst: !!_,
852
- isLast: !!z,
853
- canCloseAll: n.length > 0,
854
- onFirst: y,
855
- onPrev: w,
856
- onNext: g,
857
- onLast: C,
912
+ isFirst: !!p,
913
+ isLast: !!g,
914
+ canCloseAll: r.length > 0,
915
+ onFirst: i,
916
+ onPrev: v,
917
+ onNext: h,
918
+ onLast: u,
858
919
  onCloseAll: x
859
920
  }
860
921
  ),
861
- renderTabBar: v
922
+ renderTabBar: E
862
923
  }
863
924
  )
864
925
  }
865
926
  );
866
- }, { Sider: At } = j, _t = ({
867
- config: r = {}
927
+ }, { Sider: Vt } = j, jt = ({
928
+ config: n = {}
868
929
  }) => {
869
930
  const t = {
870
931
  collapsed: !1,
@@ -873,7 +934,7 @@ const Tt = ({
873
934
  mainMenu: "MAIN",
874
935
  subMenu: "SUB",
875
936
  program: "PRGM",
876
- ...r?.menuGubunCode
937
+ ...n?.menuGubunCode
877
938
  },
878
939
  className: {
879
940
  wrapper: "side-wrapper",
@@ -881,7 +942,7 @@ const Tt = ({
881
942
  segmented: {
882
943
  wrapper: "sider-segmented",
883
944
  item: "sider-segment-item",
884
- ...r?.className?.segmented
945
+ ...n?.className?.segmented
885
946
  },
886
947
  sider: {
887
948
  content: "sider-content",
@@ -892,28 +953,28 @@ const Tt = ({
892
953
  errorText: "sider-error-text",
893
954
  menu: "sider-menu",
894
955
  menuContainer: "sider-menu-container",
895
- ...r?.className?.sider
956
+ ...n?.className?.sider
896
957
  },
897
- ...r?.className
958
+ ...n?.className
898
959
  },
899
960
  style: {
900
961
  search: {
901
962
  placeholder: "메뉴명, 메뉴번호 검색...",
902
963
  height: 30,
903
- ...r?.style?.search
964
+ ...n?.style?.search
904
965
  },
905
- ...r?.style
966
+ ...n?.style
906
967
  },
907
- ...r
908
- }, [n, s] = D(""), [o, l] = D(
968
+ ...n
969
+ }, [r, o] = R(""), [s, a] = R(
909
970
  "category"
910
- ), [h, p] = D([]), { activeMenuId: u, sidebarCollapsed: i, openTabFromMenu: y, toggleSidebar: w } = O(), { menuList: g, isLoading: C, error: x, findMenuById: T, flatMenuList: _ } = We(), { nodes: z, treeNodes: $, loadFavoritesIfNeeded: c } = je(), v = Z(() => {
911
- const b = [], f = (a, k = 0) => {
912
- if (a.menuGbCd === t.menuGubunCode.program && a.scrnPath) {
913
- const N = " ".repeat(k), M = a.menuNo || "";
914
- b.push({
915
- value: a.menuId,
916
- label: /* @__PURE__ */ m(
971
+ ), [b, l] = R([]), { activeMenuId: c, sidebarCollapsed: y, openTabFromMenu: i, toggleSidebar: v } = F(), { menuList: h, isLoading: u, error: x, findMenuById: N, flatMenuList: p } = J(), { nodes: g, treeNodes: P, loadFavoritesIfNeeded: A } = Qe(), E = _(() => {
972
+ const I = [], k = (f, S = 0) => {
973
+ if (f.menuGbCd === t.menuGubunCode.program && f.scrnPath) {
974
+ const L = " ".repeat(S), O = f.menuNo || "";
975
+ I.push({
976
+ value: f.menuId,
977
+ label: /* @__PURE__ */ C(
917
978
  "div",
918
979
  {
919
980
  style: {
@@ -922,9 +983,9 @@ const Tt = ({
922
983
  alignItems: "center"
923
984
  },
924
985
  children: [
925
- /* @__PURE__ */ m("span", { children: [
926
- N,
927
- a.menuNm
986
+ /* @__PURE__ */ C("span", { children: [
987
+ L,
988
+ f.menuNm
928
989
  ] }),
929
990
  /* @__PURE__ */ e(
930
991
  "span",
@@ -937,65 +998,65 @@ const Tt = ({
937
998
  borderRadius: "3px",
938
999
  marginLeft: "8px"
939
1000
  },
940
- children: M
1001
+ children: O
941
1002
  }
942
1003
  )
943
1004
  ]
944
1005
  }
945
1006
  ),
946
- menuItem: a
1007
+ menuItem: f
947
1008
  });
948
1009
  }
949
- a.children && a.children.length > 0 && a.children.forEach((N) => f(N, k + 1));
1010
+ f.children && f.children.length > 0 && f.children.forEach((L) => k(L, S + 1));
950
1011
  };
951
- return g.forEach((a) => f(a)), b;
952
- }, [g]), d = Z(() => n.trim() ? v.filter((b) => {
953
- const f = b.menuItem.menuNm.toLowerCase(), a = String(b.menuItem.menuNo || "미지정").toLowerCase(), k = n.toLowerCase();
954
- return f.includes(k) || a.includes(k);
955
- }) : [], [v, n]), S = (b) => {
956
- if (!b || typeof b != "string") {
957
- console.warn("Invalid menu selection value:", b);
1012
+ return h.forEach((f) => k(f)), I;
1013
+ }, [h]), m = _(() => r.trim() ? E.filter((I) => {
1014
+ const k = I.menuItem.menuNm.toLowerCase(), f = String(I.menuItem.menuNo || "미지정").toLowerCase(), S = r.toLowerCase();
1015
+ return k.includes(S) || f.includes(S);
1016
+ }) : [], [E, r]), d = (I) => {
1017
+ if (!I || typeof I != "string") {
1018
+ console.warn("Invalid menu selection value:", I);
958
1019
  return;
959
1020
  }
960
- if (!/^[a-zA-Z0-9_-]+$/.test(b)) {
961
- console.warn("Invalid menu ID format:", b);
1021
+ if (!/^[a-zA-Z0-9_-]+$/.test(I)) {
1022
+ console.warn("Invalid menu ID format:", I);
962
1023
  return;
963
1024
  }
964
- const f = v.find(
965
- (a) => a.value === b
1025
+ const k = E.find(
1026
+ (f) => f.value === I
966
1027
  );
967
- if (f) {
968
- const { menuItem: a } = f;
969
- if (!a || !a.menuId || !a.menuNm) {
970
- console.warn("Invalid menu item:", a);
1028
+ if (k) {
1029
+ const { menuItem: f } = k;
1030
+ if (!f || !f.menuId || !f.menuNm) {
1031
+ console.warn("Invalid menu item:", f);
971
1032
  return;
972
1033
  }
973
- a.menuGbCd === t.menuGubunCode.program && a.scrnPath ? (console.log(
1034
+ f.menuGbCd === t.menuGubunCode.program && f.scrnPath ? (console.log(
974
1035
  "✅ 검색으로 프로그램 메뉴 선택 - 탭 추가 및 setCurrentProgram 호출"
975
1036
  ), console.log(
976
1037
  "메뉴명:",
977
- a.menuNm,
1038
+ f.menuNm,
978
1039
  "경로:",
979
- a.scrnPath,
1040
+ f.scrnPath,
980
1041
  "scrnId:",
981
- a.scrnId
982
- ), y(a)) : (a.menuGbCd === t.menuGubunCode.mainMenu || a.menuGbCd === t.menuGubunCode.subMenu) && (console.log("❌ 검색으로 메인/서브 메뉴 선택 - 이벤트 무시"), console.log("메뉴명:", a.menuNm, "menuGbCd:", a.menuGbCd)), s("");
1042
+ f.scrnId
1043
+ ), i(f)) : (f.menuGbCd === t.menuGubunCode.mainMenu || f.menuGbCd === t.menuGubunCode.subMenu) && (console.log("❌ 검색으로 메인/서브 메뉴 선택 - 이벤트 무시"), console.log("메뉴명:", f.menuNm, "menuGbCd:", f.menuGbCd)), o("");
983
1044
  }
984
- }, L = A(
985
- (b) => {
986
- const f = T(b);
987
- f?.menuGbCd === t.menuGubunCode.program && (console.log(
1045
+ }, w = D(
1046
+ (I) => {
1047
+ const k = N(I);
1048
+ k?.menuGbCd === t.menuGubunCode.program && (console.log(
988
1049
  "메뉴명:",
989
- f.menuNm,
1050
+ k.menuNm,
990
1051
  "경로:",
991
- f.scrnPath,
1052
+ k.scrnPath,
992
1053
  "scrnId:",
993
- f.scrnId
994
- ), y(f));
1054
+ k.scrnId
1055
+ ), i(k));
995
1056
  },
996
- [T, y]
997
- ), G = A((b) => b.map((f) => ({
998
- key: f.menuId,
1057
+ [N, i]
1058
+ ), W = D((I) => I.map((k) => ({
1059
+ key: k.menuId,
999
1060
  label: /* @__PURE__ */ e(
1000
1061
  "div",
1001
1062
  {
@@ -1004,21 +1065,21 @@ const Tt = ({
1004
1065
  justifyContent: "space-between",
1005
1066
  alignItems: "center"
1006
1067
  },
1007
- children: /* @__PURE__ */ e("span", { children: f.menuNm })
1068
+ children: /* @__PURE__ */ e("span", { children: k.menuNm })
1008
1069
  }
1009
1070
  ),
1010
- icon: q(f.iconCd, f.menuGbCd),
1011
- children: f.children && f.children.length > 0 ? G(f.children) : void 0
1012
- })), []), q = (b, f) => {
1013
- if (b) {
1014
- const a = le[b];
1015
- if (a)
1016
- return /* @__PURE__ */ e(a, {});
1071
+ icon: ee(k.iconCd, k.menuGbCd),
1072
+ children: k.children && k.children.length > 0 ? W(k.children) : void 0
1073
+ })), []), ee = (I, k) => {
1074
+ if (I) {
1075
+ const f = Q[I];
1076
+ if (f)
1077
+ return /* @__PURE__ */ e(f, {});
1017
1078
  }
1018
- if (f)
1019
- switch (f) {
1079
+ if (k)
1080
+ switch (k) {
1020
1081
  case t.menuGubunCode.mainMenu:
1021
- return /* @__PURE__ */ e(le.HomeOutlined, {});
1082
+ return /* @__PURE__ */ e(Q.HomeOutlined, {});
1022
1083
  case t.menuGubunCode.subMenu:
1023
1084
  return null;
1024
1085
  case t.menuGubunCode.program:
@@ -1027,66 +1088,66 @@ const Tt = ({
1027
1088
  return null;
1028
1089
  }
1029
1090
  return null;
1030
- }, U = A(
1031
- (b) => {
1032
- if (g.length === 0) return [];
1033
- const f = (k) => {
1034
- if (k)
1035
- return typeof k == "string" ? z[k] : k;
1036
- }, a = (k) => {
1037
- if (k.type === "M") {
1038
- const N = k, M = T(N.menuId) || void 0, P = !!M, be = P ? `${M?.menuNm ?? N.menuNm ?? N.menuId}` : `${N.menuNm ?? N.menuId} (삭제됨)`;
1091
+ }, Z = D(
1092
+ (I) => {
1093
+ if (h.length === 0) return [];
1094
+ const k = (S) => {
1095
+ if (S)
1096
+ return typeof S == "string" ? g[S] : S;
1097
+ }, f = (S) => {
1098
+ if (S.type === "M") {
1099
+ const L = S, O = N(L.menuId) || void 0, T = !!O, Ne = T ? `${O?.menuNm ?? L.menuNm ?? L.menuId}` : `${L.menuNm ?? L.menuId} (삭제됨)`;
1039
1100
  return {
1040
- key: N.menuId,
1041
- label: be,
1042
- icon: P ? void 0 : /* @__PURE__ */ e(nt, { style: { color: "#faad14" } })
1101
+ key: L.menuId,
1102
+ label: Ne,
1103
+ icon: T ? void 0 : /* @__PURE__ */ e(lt, { style: { color: "#faad14" } })
1043
1104
  };
1044
1105
  } else {
1045
- const N = k, M = (N.children ?? []).map(f).filter(Boolean).map(a);
1106
+ const L = S, O = (L.children ?? []).map(k).filter(Boolean).map(f);
1046
1107
  return {
1047
- key: N.bkmkId,
1048
- label: N.bkmkNm ?? N.bkmkId,
1049
- icon: N.prntBkmkId === "-" ? /* @__PURE__ */ e(rt, {}) : /* @__PURE__ */ e(ot, {}),
1050
- children: M
1108
+ key: L.bkmkId,
1109
+ label: L.bkmkNm ?? L.bkmkId,
1110
+ icon: L.prntBkmkId === "-" ? /* @__PURE__ */ e(ct, {}) : /* @__PURE__ */ e(dt, {}),
1111
+ children: O
1051
1112
  // 빈 배열이면 자동으로 말아줌
1052
1113
  };
1053
1114
  }
1054
1115
  };
1055
- return b.map(a);
1116
+ return I.map(f);
1056
1117
  },
1057
- [T, z, g]
1058
- ), E = Z(
1059
- () => U($),
1060
- [U, $, z]
1118
+ [N, g, h]
1119
+ ), $ = _(
1120
+ () => Z(P),
1121
+ [Z, P, g]
1061
1122
  );
1062
1123
  return B(() => {
1063
- ue() && c(ue());
1064
- }, [c]), B(() => {
1065
- o === "category" && s("");
1066
- }, [o]), B(() => {
1067
- if (!u || o !== "category") return;
1068
- const f = ((a) => {
1069
- const k = [], N = new Map(_.map((P) => [P.menuId, P]));
1070
- let M = a;
1071
- for (; M; ) {
1072
- const P = N.get(M);
1073
- if (!P) break;
1074
- if (P.menuPrntId && P.menuPrntId !== "-" && P.menuPrntId !== "")
1075
- k.push(P.menuPrntId), M = P.menuPrntId;
1124
+ pe() && A(pe());
1125
+ }, [A]), B(() => {
1126
+ s === "category" && o("");
1127
+ }, [s]), B(() => {
1128
+ if (!c || s !== "category") return;
1129
+ const k = ((f) => {
1130
+ const S = [], L = new Map(p.map((T) => [T.menuId, T]));
1131
+ let O = f;
1132
+ for (; O; ) {
1133
+ const T = L.get(O);
1134
+ if (!T) break;
1135
+ if (T.menuPrntId && T.menuPrntId !== "-" && T.menuPrntId !== "")
1136
+ S.push(T.menuPrntId), O = T.menuPrntId;
1076
1137
  else
1077
1138
  break;
1078
1139
  }
1079
- return k;
1080
- })(u);
1081
- f.length > 0 && p((a) => {
1082
- const k = /* @__PURE__ */ new Set([...a, ...f]);
1083
- return Array.from(k);
1140
+ return S;
1141
+ })(c);
1142
+ k.length > 0 && l((f) => {
1143
+ const S = /* @__PURE__ */ new Set([...f, ...k]);
1144
+ return Array.from(S);
1084
1145
  });
1085
- }, [u, o, _]), /* @__PURE__ */ m(
1086
- At,
1146
+ }, [c, s, p]), /* @__PURE__ */ C(
1147
+ Vt,
1087
1148
  {
1088
1149
  className: t.className.wrapper,
1089
- collapsed: t.collapsed || i,
1150
+ collapsed: t.collapsed || y,
1090
1151
  trigger: null,
1091
1152
  width: t.width || 230,
1092
1153
  children: [
@@ -1111,10 +1172,10 @@ const Tt = ({
1111
1172
  transition: "all 0.3s ease"
1112
1173
  },
1113
1174
  children: /* @__PURE__ */ e(
1114
- I,
1175
+ M,
1115
1176
  {
1116
1177
  type: "text",
1117
- icon: t.collapsed || i ? /* @__PURE__ */ e(Je, {}) : /* @__PURE__ */ e(et, {}),
1178
+ icon: t.collapsed || y ? /* @__PURE__ */ e(st, {}) : /* @__PURE__ */ e(at, {}),
1118
1179
  style: {
1119
1180
  fontSize: "12px",
1120
1181
  color: "#787878",
@@ -1126,28 +1187,28 @@ const Tt = ({
1126
1187
  justifyContent: "center",
1127
1188
  borderRadius: "0 10px 10px 0"
1128
1189
  },
1129
- onClick: w
1190
+ onClick: v
1130
1191
  }
1131
1192
  )
1132
1193
  }
1133
1194
  ),
1134
- !(t.collapsed || i) && /* @__PURE__ */ e(
1195
+ !(t.collapsed || y) && /* @__PURE__ */ e(
1135
1196
  "div",
1136
1197
  {
1137
1198
  style: {
1138
1199
  padding: 10
1139
1200
  },
1140
1201
  children: /* @__PURE__ */ e(
1141
- De,
1202
+ We,
1142
1203
  {
1143
- value: n,
1144
- options: d,
1145
- onSelect: S,
1146
- onSearch: s,
1204
+ value: r,
1205
+ options: m,
1206
+ onSelect: d,
1207
+ onSearch: o,
1147
1208
  style: { width: "100%" },
1148
1209
  allowClear: !0,
1149
1210
  children: /* @__PURE__ */ e(
1150
- te,
1211
+ oe,
1151
1212
  {
1152
1213
  className: t.className.search,
1153
1214
  placeholder: t.style.search.placeholder,
@@ -1181,7 +1242,7 @@ const Tt = ({
1181
1242
  )
1182
1243
  }
1183
1244
  ),
1184
- !(t.collapsed || i) && /* @__PURE__ */ e(
1245
+ !(t.collapsed || y) && /* @__PURE__ */ e(
1185
1246
  "div",
1186
1247
  {
1187
1248
  style: {
@@ -1190,18 +1251,18 @@ const Tt = ({
1190
1251
  marginBottom: "10px"
1191
1252
  },
1192
1253
  children: /* @__PURE__ */ e(
1193
- Oe,
1254
+ _e,
1194
1255
  {
1195
1256
  className: t.className.segmented.wrapper,
1196
1257
  options: [
1197
1258
  {
1198
- label: /* @__PURE__ */ m(V, { children: [
1259
+ label: /* @__PURE__ */ C(V, { children: [
1199
1260
  /* @__PURE__ */ e(
1200
1261
  "span",
1201
1262
  {
1202
1263
  className: t.className.segmented.item,
1203
1264
  style: { display: "flex", alignItems: "center" },
1204
- children: /* @__PURE__ */ m(
1265
+ children: /* @__PURE__ */ C(
1205
1266
  "svg",
1206
1267
  {
1207
1268
  xmlns: "http://www.w3.org/2000/svg",
@@ -1250,7 +1311,7 @@ const Tt = ({
1250
1311
  value: "category"
1251
1312
  },
1252
1313
  {
1253
- label: /* @__PURE__ */ m(V, { children: [
1314
+ label: /* @__PURE__ */ C(V, { children: [
1254
1315
  /* @__PURE__ */ e(
1255
1316
  "span",
1256
1317
  {
@@ -1282,9 +1343,9 @@ const Tt = ({
1282
1343
  value: "favorite"
1283
1344
  }
1284
1345
  ],
1285
- value: o,
1286
- onChange: (b) => {
1287
- l(b);
1346
+ value: s,
1347
+ onChange: (I) => {
1348
+ a(I);
1288
1349
  },
1289
1350
  style: {
1290
1351
  width: "100%"
@@ -1294,8 +1355,8 @@ const Tt = ({
1294
1355
  )
1295
1356
  }
1296
1357
  ),
1297
- /* @__PURE__ */ m("div", { className: t.className.sider.content, children: [
1298
- C && /* @__PURE__ */ m(
1358
+ /* @__PURE__ */ C("div", { className: t.className.sider.content, children: [
1359
+ u && /* @__PURE__ */ C(
1299
1360
  "div",
1300
1361
  {
1301
1362
  className: t.className.sider.loading,
@@ -1307,7 +1368,7 @@ const Tt = ({
1307
1368
  },
1308
1369
  children: [
1309
1370
  /* @__PURE__ */ e(
1310
- Re,
1371
+ Ge,
1311
1372
  {
1312
1373
  theme: {
1313
1374
  components: {
@@ -1316,7 +1377,7 @@ const Tt = ({
1316
1377
  }
1317
1378
  }
1318
1379
  },
1319
- children: /* @__PURE__ */ e(Y, { size: "default" })
1380
+ children: /* @__PURE__ */ e(q, { size: "default" })
1320
1381
  }
1321
1382
  ),
1322
1383
  /* @__PURE__ */ e(
@@ -1330,16 +1391,16 @@ const Tt = ({
1330
1391
  ]
1331
1392
  }
1332
1393
  ),
1333
- x && /* @__PURE__ */ m("div", { className: t.className.sider.error, children: [
1394
+ x && /* @__PURE__ */ C("div", { className: t.className.sider.error, children: [
1334
1395
  /* @__PURE__ */ e(
1335
- tt,
1396
+ it,
1336
1397
  {
1337
1398
  className: t.className.sider.errorIcon
1338
1399
  }
1339
1400
  ),
1340
1401
  /* @__PURE__ */ e("div", { className: t.className.sider.errorText, children: "메뉴 로드 실패" })
1341
1402
  ] }),
1342
- !C && !x && o === "category" && g.length === 0 && /* @__PURE__ */ e(
1403
+ !u && !x && s === "category" && h.length === 0 && /* @__PURE__ */ e(
1343
1404
  "div",
1344
1405
  {
1345
1406
  style: {
@@ -1351,7 +1412,7 @@ const Tt = ({
1351
1412
  children: "메뉴가 없습니다"
1352
1413
  }
1353
1414
  ),
1354
- !C && !x && o === "favorite" && E.length === 0 && /* @__PURE__ */ e(
1415
+ !u && !x && s === "favorite" && $.length === 0 && /* @__PURE__ */ e(
1355
1416
  "div",
1356
1417
  {
1357
1418
  style: {
@@ -1363,28 +1424,28 @@ const Tt = ({
1363
1424
  children: "즐겨찾기된 메뉴가 없습니다"
1364
1425
  }
1365
1426
  ),
1366
- !C && !x && o === "category" && g.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1367
- ie,
1427
+ !u && !x && s === "category" && h.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1428
+ se,
1368
1429
  {
1369
1430
  theme: "light",
1370
1431
  mode: "inline",
1371
- items: G(g),
1432
+ items: W(h),
1372
1433
  className: t.className.sider.menu,
1373
- selectedKeys: [u || ""],
1374
- openKeys: h,
1375
- onOpenChange: p,
1376
- onClick: (b) => L(b.key)
1434
+ selectedKeys: [c || ""],
1435
+ openKeys: b,
1436
+ onOpenChange: l,
1437
+ onClick: (I) => w(I.key)
1377
1438
  }
1378
1439
  ) }),
1379
- !C && !x && o === "favorite" && E.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1380
- ie,
1440
+ !u && !x && s === "favorite" && $.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1441
+ se,
1381
1442
  {
1382
1443
  theme: "light",
1383
1444
  mode: "inline",
1384
- items: E,
1445
+ items: $,
1385
1446
  className: t.className.sider.menu,
1386
- selectedKeys: [u || ""],
1387
- onClick: (b) => L(b.key)
1447
+ selectedKeys: [c || ""],
1448
+ onClick: (I) => w(I.key)
1388
1449
  }
1389
1450
  ) })
1390
1451
  ] })
@@ -1392,7 +1453,7 @@ const Tt = ({
1392
1453
  }
1393
1454
  );
1394
1455
  };
1395
- class $t extends Ge {
1456
+ class Kt extends Ye {
1396
1457
  constructor(t) {
1397
1458
  super(t), this.resetError = () => {
1398
1459
  this.setState({ hasError: !1, error: void 0, errorInfo: void 0 });
@@ -1401,14 +1462,14 @@ class $t extends Ge {
1401
1462
  static getDerivedStateFromError(t) {
1402
1463
  return { hasError: !0, error: t };
1403
1464
  }
1404
- componentDidCatch(t, n) {
1405
- console.error("ErrorBound caught an error:", t, n), this.setState({
1465
+ componentDidCatch(t, r) {
1466
+ console.error("ErrorBound caught an error:", t, r), this.setState({
1406
1467
  error: t,
1407
- errorInfo: n
1468
+ errorInfo: r
1408
1469
  });
1409
1470
  }
1410
1471
  render() {
1411
- return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ m(
1472
+ return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ C(
1412
1473
  "div",
1413
1474
  {
1414
1475
  style: {
@@ -1422,17 +1483,17 @@ class $t extends Ge {
1422
1483
  },
1423
1484
  children: [
1424
1485
  /* @__PURE__ */ e(
1425
- pe,
1486
+ be,
1426
1487
  {
1427
1488
  status: "error",
1428
1489
  title: "컴포넌트 로딩 중 오류가 발생했습니다",
1429
1490
  subTitle: this.state.error ? `오류 내용: ${this.state.error.message}` : "알 수 없는 오류가 발생했습니다",
1430
1491
  extra: [
1431
1492
  /* @__PURE__ */ e(
1432
- I,
1493
+ M,
1433
1494
  {
1434
1495
  type: "primary",
1435
- icon: /* @__PURE__ */ e(fe, {}),
1496
+ icon: /* @__PURE__ */ e(we, {}),
1436
1497
  onClick: this.resetError,
1437
1498
  style: { marginRight: 8 },
1438
1499
  children: "다시 시도"
@@ -1442,7 +1503,7 @@ class $t extends Ge {
1442
1503
  ]
1443
1504
  }
1444
1505
  ),
1445
- this.state.error && /* @__PURE__ */ m(
1506
+ this.state.error && /* @__PURE__ */ C(
1446
1507
  "details",
1447
1508
  {
1448
1509
  style: {
@@ -1477,13 +1538,13 @@ class $t extends Ge {
1477
1538
  ) : this.props.children;
1478
1539
  }
1479
1540
  }
1480
- const Gt = ({
1481
- isActive: r,
1541
+ const Ut = ({
1542
+ isActive: n,
1482
1543
  instance: t,
1483
- params: n
1544
+ params: r
1484
1545
  }) => {
1485
- const { activeMenuId: s, closeTab: o } = O(), l = () => {
1486
- s && o(s);
1546
+ const { activeMenuId: o, closeTab: s } = F(), a = () => {
1547
+ o && s(o);
1487
1548
  };
1488
1549
  return t ? /* @__PURE__ */ e(
1489
1550
  "div",
@@ -1494,12 +1555,12 @@ const Gt = ({
1494
1555
  left: 0,
1495
1556
  width: "100%",
1496
1557
  height: "100%",
1497
- visibility: r ? "visible" : "hidden",
1498
- opacity: r ? 1 : 0,
1558
+ visibility: n ? "visible" : "hidden",
1559
+ opacity: n ? 1 : 0,
1499
1560
  transition: "opacity 0.2s ease-in-out",
1500
- pointerEvents: r ? "auto" : "none"
1561
+ pointerEvents: n ? "auto" : "none"
1501
1562
  },
1502
- children: /* @__PURE__ */ e($t, { children: /* @__PURE__ */ e(se, { fallback: null, children: t && he(t, { params: n }) }) })
1563
+ children: /* @__PURE__ */ e(Kt, { children: /* @__PURE__ */ e(X, { fallback: null, children: t && ye(t, { params: r }) }) })
1503
1564
  }
1504
1565
  ) : /* @__PURE__ */ e(
1505
1566
  "div",
@@ -1513,10 +1574,10 @@ const Gt = ({
1513
1574
  display: "flex",
1514
1575
  justifyContent: "center",
1515
1576
  alignItems: "center",
1516
- visibility: r ? "visible" : "hidden",
1517
- opacity: r ? 1 : 0,
1577
+ visibility: n ? "visible" : "hidden",
1578
+ opacity: n ? 1 : 0,
1518
1579
  transition: "opacity 0.2s ease-in-out",
1519
- pointerEvents: r ? "auto" : "none"
1580
+ pointerEvents: n ? "auto" : "none"
1520
1581
  },
1521
1582
  children: /* @__PURE__ */ e(
1522
1583
  "div",
@@ -1530,20 +1591,110 @@ const Gt = ({
1530
1591
  padding: 24
1531
1592
  },
1532
1593
  children: /* @__PURE__ */ e(
1533
- pe,
1594
+ be,
1534
1595
  {
1535
- icon: /* @__PURE__ */ e(st, { twoToneColor: "#69b1ff" }),
1596
+ icon: /* @__PURE__ */ e(ut, { twoToneColor: "#69b1ff" }),
1536
1597
  status: "warning",
1537
1598
  title: "등록된 메뉴 정보가 없거나 유효한 메뉴가 아닙니다.",
1538
- subTitle: /* @__PURE__ */ e(Fe.Text, { type: "secondary", children: "자세한 내용은 관리자에게 문의바랍니다." }),
1539
- extra: /* @__PURE__ */ e(ze, { children: /* @__PURE__ */ e(I, { icon: /* @__PURE__ */ e(ge, {}), onClick: l, children: "탭 닫기" }) })
1599
+ subTitle: /* @__PURE__ */ e(Ve.Text, { type: "secondary", children: "자세한 내용은 관리자에게 문의바랍니다." }),
1600
+ extra: /* @__PURE__ */ e(He, { children: /* @__PURE__ */ e(M, { icon: /* @__PURE__ */ e(ve, {}), onClick: a, children: "탭 닫기" }) })
1540
1601
  }
1541
1602
  )
1542
1603
  }
1543
1604
  )
1544
1605
  }
1545
1606
  );
1546
- }, Ht = oe(Gt), Vt = () => /* @__PURE__ */ m(V, { children: [
1607
+ }, Zt = ce(Ut), Yt = ({
1608
+ menuGubunCode: n = {
1609
+ mainMenu: "MAIN",
1610
+ subMenu: "SUB",
1611
+ program: "PRGM"
1612
+ },
1613
+ mode: t = "horizontal",
1614
+ style: r,
1615
+ routeMap: o
1616
+ }) => {
1617
+ const { menuList: s, findMenuById: a, flatMenuList: b } = J(), { activeMenuId: l } = F(), c = le(), [y, i] = R([]), v = D(
1618
+ (N, p) => {
1619
+ if (N) {
1620
+ const g = Q[N];
1621
+ if (g)
1622
+ return /* @__PURE__ */ e(g, {});
1623
+ }
1624
+ if (p)
1625
+ switch (p) {
1626
+ case n.mainMenu:
1627
+ return /* @__PURE__ */ e(Q.HomeOutlined, {});
1628
+ default:
1629
+ return null;
1630
+ }
1631
+ return null;
1632
+ },
1633
+ [n]
1634
+ ), h = D(
1635
+ (N) => N.map((p) => {
1636
+ const g = p.children && p.children.length === 1 && p.children[0].menuGbCd === n.program;
1637
+ return {
1638
+ key: p.menuId,
1639
+ label: p.menuNm,
1640
+ icon: v(p.iconCd, p.menuGbCd),
1641
+ // children이 1개이고 program이면 드롭다운 없음, 2개 이상이면 드롭다운 표시
1642
+ children: p.children && p.children.length > 0 && !g ? h(p.children) : void 0
1643
+ };
1644
+ }),
1645
+ [v, n]
1646
+ ), u = _(() => h(s), [s, h]), x = D(
1647
+ (N) => {
1648
+ const p = a(N.key);
1649
+ if (p) {
1650
+ if (p.children && p.children.length === 1 && p.children[0].menuGbCd === n.program) {
1651
+ const g = p.children[0];
1652
+ let P = o?.[g.menuId] || g.scrnPath || "/";
1653
+ P === "/" ? P = "/main" : P.startsWith("/main") || (P = P.startsWith("/") ? `/main${P}` : `/main/${P}`), c(P);
1654
+ return;
1655
+ }
1656
+ if (p.menuGbCd === n.program && p.scrnPath) {
1657
+ let g = o?.[p.menuId] || p.scrnPath || "/";
1658
+ g === "/" ? g = "/main" : g.startsWith("/main") || (g = g.startsWith("/") ? `/main${g}` : `/main/${g}`), c(g);
1659
+ return;
1660
+ }
1661
+ }
1662
+ },
1663
+ [a, n, c, o]
1664
+ );
1665
+ return B(() => {
1666
+ if (!l || t !== "vertical") return;
1667
+ const p = ((g) => {
1668
+ const P = [], A = new Map(b.map((m) => [m.menuId, m]));
1669
+ let E = g;
1670
+ for (; E; ) {
1671
+ const m = A.get(E);
1672
+ if (!m) break;
1673
+ if (m.menuPrntId && m.menuPrntId !== "-" && m.menuPrntId !== "")
1674
+ P.push(m.menuPrntId), E = m.menuPrntId;
1675
+ else
1676
+ break;
1677
+ }
1678
+ return P;
1679
+ })(l);
1680
+ p.length > 0 && i((g) => {
1681
+ const P = /* @__PURE__ */ new Set([...g, ...p]);
1682
+ return Array.from(P);
1683
+ });
1684
+ }, [l, t, b]), /* @__PURE__ */ e(
1685
+ se,
1686
+ {
1687
+ mode: t,
1688
+ theme: "light",
1689
+ items: u,
1690
+ selectedKeys: [l || ""],
1691
+ openKeys: t === "vertical" ? y : void 0,
1692
+ onOpenChange: t === "vertical" ? i : void 0,
1693
+ onClick: x,
1694
+ style: r
1695
+ }
1696
+ );
1697
+ }, qt = () => /* @__PURE__ */ C(V, { children: [
1547
1698
  /* @__PURE__ */ e(
1548
1699
  "link",
1549
1700
  {
@@ -1553,141 +1704,141 @@ const Gt = ({
1553
1704
  }
1554
1705
  ),
1555
1706
  /* @__PURE__ */ e("div", { className: "LandingContainer-wrap", children: /* @__PURE__ */ e("div", { className: "inner", children: /* @__PURE__ */ e("div", { className: "content" }) }) })
1556
- ] }), Wt = (r, t) => {
1557
- console.log("createPopupViewLoader 호출 - popupUrl:", r);
1558
- const s = ((o) => {
1559
- if (o.startsWith("/src/pages/views/popup/")) {
1560
- const p = o + ".tsx";
1561
- return console.log(`팝업 URL 변환: ${o} -> ${p}`), p;
1707
+ ] }), Qt = (n, t) => {
1708
+ console.log("createPopupViewLoader 호출 - popupUrl:", n);
1709
+ const o = ((s) => {
1710
+ if (s.startsWith("/src/pages/views/popup/")) {
1711
+ const l = s + ".tsx";
1712
+ return console.log(`팝업 URL 변환: ${s} -> ${l}`), l;
1562
1713
  }
1563
- const h = `/src/pages/views/popup/${o.startsWith("/") ? o.substring(1) : o}.tsx`;
1564
- return console.log(`팝업 URL 변환: ${o} -> ${h}`), h;
1565
- })(r);
1566
- return !s || !t?.glob || !t.glob[s] ? (console.warn(`팝업 뷰를 찾을 수 없습니다: ${r} (${s})`), console.warn("사용 가능한 팝업 뷰들:", Object.keys(t?.glob || {})), null) : t.glob[s];
1567
- }, jt = ({ popup: r, modules: t }) => {
1568
- const [n, s] = D(null), [o, l] = D(!1), [h, p] = D(null), u = () => {
1569
- console.log("PopupArea - handleClose:", r.popupId), ae.getState().closePopup(r.popupId);
1714
+ const b = `/src/pages/views/popup/${s.startsWith("/") ? s.substring(1) : s}.tsx`;
1715
+ return console.log(`팝업 URL 변환: ${s} -> ${b}`), b;
1716
+ })(n);
1717
+ return !o || !t?.glob || !t.glob[o] ? (console.warn(`팝업 뷰를 찾을 수 없습니다: ${n} (${o})`), console.warn("사용 가능한 팝업 뷰들:", Object.keys(t?.glob || {})), null) : t.glob[o];
1718
+ }, Xt = ({ popup: n, modules: t }) => {
1719
+ const [r, o] = R(null), [s, a] = R(!1), [b, l] = R(null), c = () => {
1720
+ console.log("PopupArea - handleClose:", n.popupId), de.getState().closePopup(n.popupId);
1570
1721
  };
1571
1722
  return B(() => {
1572
1723
  (async () => {
1573
- console.log("팝업 뷰 로드 시작:", r.popupUrl), l(!0), p(null);
1724
+ console.log("팝업 뷰 로드 시작:", n.popupUrl), a(!0), l(null);
1574
1725
  try {
1575
- const y = Wt(r.popupUrl, t);
1576
- if (!y) {
1577
- const C = `팝업 뷰를 찾을 수 없습니다: ${r.popupUrl}`;
1578
- console.error(C), p(C), l(!1);
1726
+ const i = Qt(n.popupUrl, t);
1727
+ if (!i) {
1728
+ const u = `팝업 뷰를 찾을 수 없습니다: ${n.popupUrl}`;
1729
+ console.error(u), l(u), a(!1);
1579
1730
  return;
1580
1731
  }
1581
1732
  console.log("팝업 뷰 모듈 로드 중...");
1582
- const w = await y();
1583
- console.log("팝업 뷰 모듈 로드 완료:", w);
1584
- const g = w.default;
1585
- if (console.log("팝업 뷰 컴포넌트:", g), !g)
1733
+ const v = await i();
1734
+ console.log("팝업 뷰 모듈 로드 완료:", v);
1735
+ const h = v.default;
1736
+ if (console.log("팝업 뷰 컴포넌트:", h), !h)
1586
1737
  throw new Error("팝업 뷰 컴포넌트를 찾을 수 없습니다");
1587
- s(() => g), console.log("팝업 뷰 설정 완료");
1588
- } catch (y) {
1589
- console.error("팝업 뷰 로드 실패:", y), p(y instanceof Error ? y.message : "팝업 뷰 로드 실패");
1738
+ o(() => h), console.log("팝업 뷰 설정 완료");
1739
+ } catch (i) {
1740
+ console.error("팝업 뷰 로드 실패:", i), l(i instanceof Error ? i.message : "팝업 뷰 로드 실패");
1590
1741
  } finally {
1591
- l(!1);
1742
+ a(!1);
1592
1743
  }
1593
1744
  })();
1594
- }, [r.popupUrl]), o ? /* @__PURE__ */ m("div", { className: "popup-loading", children: [
1595
- /* @__PURE__ */ e(Y, { size: "large" }),
1745
+ }, [n.popupUrl]), s ? /* @__PURE__ */ C("div", { className: "popup-loading", children: [
1746
+ /* @__PURE__ */ e(q, { size: "large" }),
1596
1747
  /* @__PURE__ */ e("p", { children: "팝업을 로드하는 중..." })
1597
- ] }) : h ? /* @__PURE__ */ m("div", { className: "popup-error", children: [
1598
- /* @__PURE__ */ e(J, { description: h, image: J.PRESENTED_IMAGE_SIMPLE }),
1748
+ ] }) : b ? /* @__PURE__ */ C("div", { className: "popup-error", children: [
1749
+ /* @__PURE__ */ e(ne, { description: b, image: ne.PRESENTED_IMAGE_SIMPLE }),
1599
1750
  /* @__PURE__ */ e(
1600
- I,
1751
+ M,
1601
1752
  {
1602
- icon: /* @__PURE__ */ e(fe, {}),
1753
+ icon: /* @__PURE__ */ e(we, {}),
1603
1754
  onClick: () => window.location.reload(),
1604
1755
  children: "다시 시도"
1605
1756
  }
1606
1757
  )
1607
- ] }) : n ? /* @__PURE__ */ e(
1608
- se,
1758
+ ] }) : r ? /* @__PURE__ */ e(
1759
+ X,
1609
1760
  {
1610
- fallback: /* @__PURE__ */ m("div", { className: "popup-loading", children: [
1611
- /* @__PURE__ */ e(Y, { size: "large" }),
1761
+ fallback: /* @__PURE__ */ C("div", { className: "popup-loading", children: [
1762
+ /* @__PURE__ */ e(q, { size: "large" }),
1612
1763
  /* @__PURE__ */ e("p", { children: "컴포넌트를 로드하는 중..." })
1613
1764
  ] }),
1614
1765
  children: /* @__PURE__ */ e(
1615
- n,
1766
+ r,
1616
1767
  {
1617
1768
  popup: {
1618
- ...r,
1619
- close: u
1769
+ ...n,
1770
+ close: c
1620
1771
  // popup 객체에 close 이벤트 추가
1621
1772
  },
1622
- onClose: u
1773
+ onClose: c
1623
1774
  }
1624
1775
  )
1625
1776
  }
1626
- ) : /* @__PURE__ */ e("div", { className: "popup-empty", children: /* @__PURE__ */ e(J, { description: "팝업 내용을 불러올 수 없습니다." }) });
1627
- }, Kt = ({ modules: r }) => {
1628
- const { popups: t } = ae();
1629
- return t.length === 0 ? null : /* @__PURE__ */ e(V, { children: t.map((n) => {
1630
- if (n.isLocal || n.popupCode.startsWith("CORE_"))
1777
+ ) : /* @__PURE__ */ e("div", { className: "popup-empty", children: /* @__PURE__ */ e(ne, { description: "팝업 내용을 불러올 수 없습니다." }) });
1778
+ }, Jt = ({ modules: n }) => {
1779
+ const { popups: t } = de();
1780
+ return t.length === 0 ? null : /* @__PURE__ */ e(V, { children: t.map((r) => {
1781
+ if (r.isLocal || r.popupCode.startsWith("CORE_"))
1631
1782
  return null;
1632
- const s = n.config || {}, o = s.width || n.width || 800, l = s.height || n.height || 600, h = s.title || n.popupTitle, p = n.buttonList?.map((u, i) => ({
1633
- key: u.btnId || `btn_${i}`,
1634
- text: u.btnNm,
1635
- type: u.btnId === "CLOSE" ? "default" : "primary",
1636
- disabled: u.enblYn !== "Y",
1783
+ const o = r.config || {}, s = o.width || r.width || 800, a = o.height || r.height || 600, b = o.title || r.popupTitle, l = r.buttonList?.map((c, y) => ({
1784
+ key: c.btnId || `btn_${y}`,
1785
+ text: c.btnNm,
1786
+ type: c.btnId === "CLOSE" ? "default" : "primary",
1787
+ disabled: c.enblYn !== "Y",
1637
1788
  danger: !1
1638
1789
  })) || [];
1639
1790
  return console.log("팝업 렌더링:", {
1640
- popupId: n.popupId,
1641
- popupCode: n.popupCode,
1642
- title: h,
1643
- width: o,
1644
- height: l,
1645
- buttons: p
1646
- }), /* @__PURE__ */ e(re, { children: /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(jt, { popup: n, modules: r }) }, n.popupId) }, `sbp-${n.popupId}`);
1791
+ popupId: r.popupId,
1792
+ popupCode: r.popupCode,
1793
+ title: b,
1794
+ width: s,
1795
+ height: a,
1796
+ buttons: l
1797
+ }), /* @__PURE__ */ e(ie, { children: /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(Xt, { popup: r, modules: n }) }, r.popupId) }, `sbp-${r.popupId}`);
1647
1798
  }) });
1648
- }, Ut = () => {
1649
- const { popups: r, closePopup: t } = ae();
1650
- return /* @__PURE__ */ e(V, { children: r.map((n) => {
1651
- if (!(n.isLocal || n.popupCode.startsWith("CORE_"))) return null;
1652
- const s = It[n.popupCode];
1653
- if (!s) return null;
1654
- const o = s.component;
1655
- return /* @__PURE__ */ e(re, { children: /* @__PURE__ */ e(se, { fallback: null, children: /* @__PURE__ */ e(o, { popup: n, onClose: () => t(n.popupId) }) }, n.popupId) }, `sbp-${n.popupId}`);
1799
+ }, Ie = () => {
1800
+ const { popups: n, closePopup: t } = de();
1801
+ return /* @__PURE__ */ e(V, { children: n.map((r) => {
1802
+ if (!(r.isLocal || r.popupCode.startsWith("CORE_"))) return null;
1803
+ const o = Ot[r.popupCode];
1804
+ if (!o) return null;
1805
+ const s = o.component;
1806
+ return /* @__PURE__ */ e(ie, { children: /* @__PURE__ */ e(X, { fallback: null, children: /* @__PURE__ */ e(s, { popup: r, onClose: () => t(r.popupId) }) }, r.popupId) }, `sbp-${r.popupId}`);
1656
1807
  }) });
1657
- }, Zt = (r) => ({
1808
+ }, en = (n) => ({
1658
1809
  position: "absolute",
1659
1810
  inset: 0,
1660
- visibility: r ? "visible" : "hidden",
1661
- opacity: r ? 1 : 0,
1811
+ visibility: n ? "visible" : "hidden",
1812
+ opacity: n ? 1 : 0,
1662
1813
  transition: "opacity 0.2s ease-in-out",
1663
- pointerEvents: r ? "auto" : "none"
1664
- }), Yt = ({ once: r = !0 }) => {
1665
- const { lock: t } = we(), n = K(!1);
1814
+ pointerEvents: n ? "auto" : "none"
1815
+ }), tn = ({ once: n = !0 }) => {
1816
+ const { lock: t } = Me(), r = U(!1);
1666
1817
  return B(() => {
1667
- r && n.current || (n.current = !0, t());
1668
- }, [r, t]), null;
1669
- }, qt = ({ isActive: r, flagged: t, tabKey: n, onUnlock: s, children: o }) => {
1670
- const l = K(null), [h, p] = D(!1), u = A((y) => {
1671
- l.current = y, p(!!y);
1672
- }, []), i = Zt(r);
1673
- return /* @__PURE__ */ e("div", { ref: u, style: i, children: h ? /* @__PURE__ */ m(
1674
- ve,
1818
+ n && r.current || (r.current = !0, t());
1819
+ }, [n, t]), null;
1820
+ }, nn = ({ isActive: n, flagged: t, tabKey: r, onUnlock: o, children: s }) => {
1821
+ const a = U(null), [b, l] = R(!1), c = D((i) => {
1822
+ a.current = i, l(!!i);
1823
+ }, []), y = en(n);
1824
+ return /* @__PURE__ */ e("div", { ref: c, style: y, children: b ? /* @__PURE__ */ C(
1825
+ Le,
1675
1826
  {
1676
1827
  idleMs: Number.POSITIVE_INFINITY,
1677
1828
  persistLocked: !1,
1678
1829
  overlayScope: "scoped",
1679
1830
  overlayPosition: "absolute",
1680
- eventTarget: l.current,
1681
- overlayId: `tab-overlay-${n}`,
1682
- onUnlock: async () => (s(), !0),
1831
+ eventTarget: a.current,
1832
+ overlayId: `tab-overlay-${r}`,
1833
+ onUnlock: async () => (o(), !0),
1683
1834
  children: [
1684
- r && t ? /* @__PURE__ */ e(Yt, { once: !0 }) : null,
1685
- o
1835
+ n && t ? /* @__PURE__ */ e(tn, { once: !0 }) : null,
1836
+ s
1686
1837
  ]
1687
1838
  }
1688
- ) : o });
1689
- }, mn = ({
1690
- config: r = {},
1839
+ ) : s });
1840
+ }, Cn = ({
1841
+ config: n = {},
1691
1842
  modules: t = {
1692
1843
  view: {
1693
1844
  path: "/src/pages/views/content"
@@ -1697,38 +1848,38 @@ const Gt = ({
1697
1848
  }
1698
1849
  }
1699
1850
  }) => {
1700
- const n = K(
1851
+ const r = U(
1701
1852
  /* @__PURE__ */ new Map()
1702
1853
  ), {
1703
- tabs: s,
1704
- tabParams: o,
1705
- activeMenuId: l,
1706
- tabProtectFlag: h,
1707
- clearProtectFlagForKey: p
1708
- } = O(), u = A(
1854
+ tabs: o,
1855
+ tabParams: s,
1856
+ activeMenuId: a,
1857
+ tabProtectFlag: b,
1858
+ clearProtectFlagForKey: l
1859
+ } = F(), { enableProtectWrapper: c } = Ce(), y = D(
1709
1860
  (i) => {
1710
- const y = n.current.get(i.key);
1711
- if (y) return y;
1712
- const w = i.gubun === "M" ? `${t.view.path}${i.menuItem?.scrnPath}.tsx` : `${t.view.path}${i.componentItem?.scrnPath}.tsx`;
1713
- let g = t.view?.glob?.[w];
1714
- if (!g && typeof import.meta < "u" && typeof import.meta.glob == "function" && (g = (/* @__PURE__ */ Object.assign({}))[w]), g) {
1715
- const C = R(
1716
- g
1861
+ const v = r.current.get(i.key);
1862
+ if (v) return v;
1863
+ const h = i.gubun === "M" ? `${t.view.path}${i.menuItem?.scrnPath}.tsx` : `${t.view.path}${i.componentItem?.scrnPath}.tsx`;
1864
+ let u = t.view?.glob?.[h];
1865
+ if (!u && typeof import.meta < "u" && typeof import.meta.glob == "function" && (u = (/* @__PURE__ */ Object.assign({}))[h]), u) {
1866
+ const x = z(
1867
+ u
1717
1868
  );
1718
- return n.current.set(i.key, C), C;
1869
+ return r.current.set(i.key, x), x;
1719
1870
  }
1720
1871
  return null;
1721
1872
  },
1722
1873
  [t.view?.glob]
1723
1874
  );
1724
- return /* @__PURE__ */ m(j, { className: "main-layout", children: [
1725
- /* @__PURE__ */ e(Ot, { config: r?.header }),
1726
- /* @__PURE__ */ m(j, { children: [
1727
- /* @__PURE__ */ e(_t, { config: r?.sidebar }),
1728
- /* @__PURE__ */ m("div", { className: "content-container", children: [
1729
- /* @__PURE__ */ e(Ft, { config: r?.menuTab }),
1730
- /* @__PURE__ */ m(Pt, { config: r?.content, children: [
1731
- /* @__PURE__ */ e("div", { className: "view-container", children: /* @__PURE__ */ m(
1875
+ return /* @__PURE__ */ C(j, { className: "main-layout", children: [
1876
+ /* @__PURE__ */ e(ke, { config: n?.header }),
1877
+ /* @__PURE__ */ C(j, { children: [
1878
+ /* @__PURE__ */ e(jt, { config: n?.sidebar }),
1879
+ /* @__PURE__ */ C("div", { className: "content-container", children: [
1880
+ /* @__PURE__ */ e(Ht, { config: n?.menuTab }),
1881
+ /* @__PURE__ */ C(xe, { config: n?.content, children: [
1882
+ /* @__PURE__ */ e("div", { className: "view-container", children: /* @__PURE__ */ C(
1732
1883
  "div",
1733
1884
  {
1734
1885
  style: {
@@ -1737,72 +1888,216 @@ const Gt = ({
1737
1888
  height: "100%"
1738
1889
  },
1739
1890
  children: [
1740
- s.map((i) => {
1741
- const y = u(i), w = l === i.key, g = !!h?.[i.key], C = o[i.key] || {};
1742
- return /* @__PURE__ */ e(re, { children: /* @__PURE__ */ e(
1743
- qt,
1891
+ o.map((i) => {
1892
+ const v = y(i), h = a === i.key, u = !!b?.[i.key], x = s[i.key] || {}, N = /* @__PURE__ */ e(
1893
+ Zt,
1894
+ {
1895
+ isActive: h,
1896
+ instance: v || void 0,
1897
+ params: x
1898
+ },
1899
+ i.key
1900
+ );
1901
+ return /* @__PURE__ */ e(ie, { children: c ? /* @__PURE__ */ e(
1902
+ nn,
1744
1903
  {
1745
- isActive: w,
1746
- flagged: g,
1904
+ isActive: h,
1905
+ flagged: u,
1747
1906
  tabKey: i.key,
1748
- onUnlock: () => p(i.key),
1749
- children: /* @__PURE__ */ e(
1750
- Ht,
1751
- {
1752
- isActive: w,
1753
- instance: y || void 0,
1754
- params: C
1755
- },
1756
- i.key
1757
- )
1907
+ onUnlock: () => l(i.key),
1908
+ children: N
1758
1909
  },
1759
1910
  i.key
1760
- ) }, `sbp-${i.key}`);
1911
+ ) : N }, `sbp-${i.key}`);
1761
1912
  }),
1762
- (!l || s.length === 0) && /* @__PURE__ */ e(Vt, {})
1913
+ (!a || o.length === 0) && /* @__PURE__ */ e(qt, {})
1763
1914
  ]
1764
1915
  }
1765
1916
  ) }),
1766
- /* @__PURE__ */ e(Ut, {}),
1767
- /* @__PURE__ */ e(Kt, { modules: t?.popup })
1917
+ /* @__PURE__ */ e(Ie, {}),
1918
+ /* @__PURE__ */ e(Jt, { modules: t?.popup })
1768
1919
  ] })
1769
1920
  ] })
1770
1921
  ] }),
1771
- (r?.quickService?.visible ?? !0) && /* @__PURE__ */ e(Te, {})
1922
+ (n?.quickService?.visible ?? !0) && /* @__PURE__ */ e(Re, {})
1923
+ ] });
1924
+ }, rn = ({
1925
+ children: n,
1926
+ menuGubunCode: t = {
1927
+ mainMenu: "CMPRGRM",
1928
+ subMenu: "CMPRGRS",
1929
+ program: "CMPRGRP"
1930
+ },
1931
+ routeMap: r,
1932
+ routes: o
1933
+ }) => {
1934
+ const s = Ee(), a = le(), { flatMenuList: b, findMenuById: l } = J(), c = _(() => {
1935
+ const i = s.pathname, v = i.replace(/^\/main/, "") || "/";
1936
+ if (r) {
1937
+ const h = Object.keys(r).find(
1938
+ (x) => r[x] === i
1939
+ );
1940
+ if (h)
1941
+ return l(h);
1942
+ const u = Object.keys(r).find((x) => (r[x].replace(/^\/main/, "") || "/") === v);
1943
+ if (u)
1944
+ return l(u);
1945
+ }
1946
+ return b.find(
1947
+ (h) => h.menuGbCd === t.program && h.scrnPath && (h.scrnPath === v || h.scrnPath === i || i.endsWith(h.scrnPath) || v === h.scrnPath)
1948
+ );
1949
+ }, [
1950
+ s.pathname,
1951
+ b,
1952
+ t.program,
1953
+ r,
1954
+ l
1955
+ ]), y = _(() => {
1956
+ if (!c)
1957
+ return [];
1958
+ const i = [], v = (u) => {
1959
+ if (!u || !u.menuPrntId || u.menuPrntId === "-")
1960
+ return [];
1961
+ const x = l(u.menuPrntId);
1962
+ return x ? [...v(x), x] : [];
1963
+ };
1964
+ return v(c).forEach((u) => {
1965
+ if (u.menuGbCd === t.mainMenu || u.menuGbCd === t.subMenu) {
1966
+ let x;
1967
+ if (r && u.menuId && (x = r[u.menuId]), !x && o && u.scrnPath) {
1968
+ const N = u.scrnPath.startsWith("/") ? u.scrnPath : `/${u.scrnPath}`, p = Object.keys(o).find(
1969
+ (g) => g === N || g === `/main${N}`
1970
+ );
1971
+ p && (x = p.startsWith("/main") ? p : `/main${p.startsWith("/") ? p : `/${p}`}`);
1972
+ }
1973
+ i.push({
1974
+ title: u.menuNm,
1975
+ onClick: x ? () => a(x) : void 0
1976
+ });
1977
+ }
1978
+ }), i.push({
1979
+ title: c.menuNm
1980
+ }), i;
1981
+ }, [c, t, a, l]);
1982
+ return /* @__PURE__ */ C(
1983
+ "div",
1984
+ {
1985
+ style: {
1986
+ height: "100%",
1987
+ padding: "15px 20px"
1988
+ },
1989
+ children: [
1990
+ /* @__PURE__ */ e(
1991
+ je,
1992
+ {
1993
+ separator: ">",
1994
+ items: y,
1995
+ style: { marginBottom: "16px" }
1996
+ }
1997
+ ),
1998
+ /* @__PURE__ */ e("div", { children: n })
1999
+ ]
2000
+ }
2001
+ );
2002
+ }, vn = ({ config: n = {} }) => {
2003
+ const t = n?.header?.menu, r = t?.visible !== !1, o = t?.routes, s = _(() => {
2004
+ if (!o) return;
2005
+ const a = {}, { flatMenuList: b } = J.getState();
2006
+ return b.forEach((l) => {
2007
+ if (l.menuGbCd === t?.menuGubunCode?.program && l.scrnPath) {
2008
+ const c = l.scrnPath.startsWith("/") ? l.scrnPath : `/${l.scrnPath}`, y = Object.keys(o).find((i) => {
2009
+ const v = i === "/" ? "/" : i.startsWith("/") ? i : `/${i}`;
2010
+ return v === c || v === `/main${c}` || c === v.replace(/^\/main/, "");
2011
+ });
2012
+ if (y) {
2013
+ const i = y === "/" ? "/main" : y.startsWith("/main") ? y : `/main${y.startsWith("/") ? y : `/${y}`}`;
2014
+ a[l.menuId] = i;
2015
+ }
2016
+ }
2017
+ }), a;
2018
+ }, [o, t?.menuGubunCode?.program]);
2019
+ return /* @__PURE__ */ C(j, { className: "main-layout", children: [
2020
+ /* @__PURE__ */ e(ke, { config: n?.header, children: r && /* @__PURE__ */ e(
2021
+ Yt,
2022
+ {
2023
+ menuGubunCode: t?.menuGubunCode,
2024
+ mode: t?.style?.mode || "horizontal",
2025
+ routeMap: s,
2026
+ style: {
2027
+ border: "none",
2028
+ backgroundColor: "transparent",
2029
+ minWidth: 0,
2030
+ flex: 1,
2031
+ ...t?.style
2032
+ }
2033
+ }
2034
+ ) }),
2035
+ /* @__PURE__ */ e("div", { className: "content-container", children: /* @__PURE__ */ C(xe, { config: n?.content, children: [
2036
+ /* @__PURE__ */ e("div", { className: "view-container", children: /* @__PURE__ */ e(
2037
+ "div",
2038
+ {
2039
+ style: {
2040
+ position: "relative",
2041
+ width: "100%",
2042
+ height: "100%"
2043
+ },
2044
+ children: /* @__PURE__ */ e(X, { fallback: /* @__PURE__ */ e("div", { children: "Loading..." }), children: /* @__PURE__ */ e(fe, { children: Object.entries(o || {}).map(([a, b]) => {
2045
+ const l = a === "/" ? "" : a.replace(/^\/main/, "").replace(/^\//, "") || "";
2046
+ return /* @__PURE__ */ e(
2047
+ Y,
2048
+ {
2049
+ path: l,
2050
+ element: /* @__PURE__ */ e(
2051
+ rn,
2052
+ {
2053
+ menuGubunCode: t?.menuGubunCode,
2054
+ routeMap: s,
2055
+ routes: o,
2056
+ children: /* @__PURE__ */ e(b, {})
2057
+ }
2058
+ )
2059
+ },
2060
+ a
2061
+ );
2062
+ }) }) })
2063
+ }
2064
+ ) }),
2065
+ /* @__PURE__ */ e(Ie, {})
2066
+ ] }) })
1772
2067
  ] });
1773
- }, pn = ({ config: r, children: t }) => /* @__PURE__ */ e("div", { children: "BwgPortal02" });
1774
- function hn({
1775
- config: r,
2068
+ };
2069
+ function wn({
2070
+ config: n,
1776
2071
  ui: t,
1777
- navigate: n
2072
+ navigate: r
1778
2073
  }) {
1779
- const { loading: s, capsOn: o, prefills: l, onKeyDown: h, doLogin: p } = Ke(r), u = (i) => p(i, n);
2074
+ const { loading: o, capsOn: s, prefills: a, onKeyDown: b, doLogin: l } = Xe(n), c = (y) => l(y, r);
1780
2075
  return B(() => {
1781
- Ue.getState().fetchSystemMap();
1782
- }, []), /* @__PURE__ */ e(V, { children: t({ onSubmit: u, loading: s, capsOn: o, onKeyDown: h, prefills: l }) });
2076
+ Je.getState().fetchSystemMap();
2077
+ }, []), /* @__PURE__ */ e(V, { children: t({ onSubmit: c, loading: o, capsOn: s, onKeyDown: b, prefills: a }) });
1783
2078
  }
1784
- function gn({
1785
- onSubmit: r,
2079
+ function xn({
2080
+ onSubmit: n,
1786
2081
  loading: t,
1787
- capsOn: n,
1788
- onKeyDown: s,
1789
- prefills: o,
1790
- labels: l = {
2082
+ capsOn: r,
2083
+ onKeyDown: o,
2084
+ prefills: s,
2085
+ labels: a = {
1791
2086
  id: "ID 혹은 사번",
1792
2087
  pw: "비밀번호",
1793
2088
  remember: "Remember me",
1794
2089
  login: "로그인"
1795
2090
  },
1796
- header: h,
1797
- footer: p
2091
+ header: b,
2092
+ footer: l
1798
2093
  }) {
1799
- const [u] = H.useForm();
2094
+ const [c] = H.useForm();
1800
2095
  return B(() => {
1801
- o && (o.id || o.pswr) && u.setFieldsValue({ id: o.id, pswr: o.pswr });
1802
- }, [o, u]), /* @__PURE__ */ e("div", { className: "login-main", children: /* @__PURE__ */ m("div", { className: "login_wrap", children: [
1803
- h || /* @__PURE__ */ e("div", { className: "logo_box" }),
2096
+ s && (s.id || s.pswr) && c.setFieldsValue({ id: s.id, pswr: s.pswr });
2097
+ }, [s, c]), /* @__PURE__ */ e("div", { className: "login-main", children: /* @__PURE__ */ C("div", { className: "login_wrap", children: [
2098
+ b || /* @__PURE__ */ e("div", { className: "logo_box" }),
1804
2099
  /* @__PURE__ */ e("div", { className: "login_title" }),
1805
- /* @__PURE__ */ e(H, { form: u, onFinish: r, className: "login-form", children: /* @__PURE__ */ m(Ae, { vertical: !0, children: [
2100
+ /* @__PURE__ */ e(H, { form: c, onFinish: n, className: "login-form", children: /* @__PURE__ */ C(Ke, { vertical: !0, children: [
1806
2101
  /* @__PURE__ */ e(
1807
2102
  H.Item,
1808
2103
  {
@@ -1814,7 +2109,7 @@ function gn({
1814
2109
  message: "아이디는 공백이 들어갈 수 없습니다."
1815
2110
  }
1816
2111
  ],
1817
- children: /* @__PURE__ */ e(te, { allowClear: !0, placeholder: l.id, onKeyDown: s })
2112
+ children: /* @__PURE__ */ e(oe, { allowClear: !0, placeholder: a.id, onKeyDown: o })
1818
2113
  }
1819
2114
  ),
1820
2115
  /* @__PURE__ */ e(
@@ -1823,36 +2118,38 @@ function gn({
1823
2118
  name: "pswr",
1824
2119
  rules: [{ required: !0, message: "비밀번호를 입력하세요." }],
1825
2120
  children: /* @__PURE__ */ e(
1826
- te.Password,
2121
+ oe.Password,
1827
2122
  {
1828
2123
  allowClear: !0,
1829
- placeholder: l.pw,
1830
- onKeyDown: s
2124
+ placeholder: a.pw,
2125
+ onKeyDown: o
1831
2126
  }
1832
2127
  )
1833
2128
  }
1834
2129
  ),
1835
- /* @__PURE__ */ e(H.Item, { name: "remember", valuePropName: "checked", children: /* @__PURE__ */ e(_e, { children: l.remember }) }),
1836
- /* @__PURE__ */ e("div", { className: n ? "caps-lock caps-lock-on" : "caps-lock", children: n ? "Caps Lock On" : "Caps Lock Off" }),
1837
- /* @__PURE__ */ e(H.Item, { children: /* @__PURE__ */ e(I, { type: "primary", htmlType: "submit", loading: t, block: !0, children: l.login }) })
2130
+ /* @__PURE__ */ e(H.Item, { name: "remember", valuePropName: "checked", children: /* @__PURE__ */ e(Ue, { children: a.remember }) }),
2131
+ /* @__PURE__ */ e("div", { className: r ? "caps-lock caps-lock-on" : "caps-lock", children: r ? "Caps Lock On" : "Caps Lock Off" }),
2132
+ /* @__PURE__ */ e(H.Item, { children: /* @__PURE__ */ e(M, { type: "primary", htmlType: "submit", loading: t, block: !0, children: a.login }) })
1838
2133
  ] }) }),
1839
- p
2134
+ l
1840
2135
  ] }) });
1841
2136
  }
1842
2137
  export {
1843
- un as A,
1844
- mn as B,
1845
- Ht as C,
1846
- gn as D,
1847
- dn as L,
1848
- Kt as P,
1849
- pn as a,
1850
- hn as b,
1851
- Vt as c,
1852
- Pt as d,
1853
- Ot as e,
1854
- Ft as f,
1855
- _t as g,
1856
- qt as h,
1857
- It as l
2138
+ yn as A,
2139
+ Cn as B,
2140
+ Zt as C,
2141
+ xn as D,
2142
+ Yt as H,
2143
+ bn as L,
2144
+ Jt as P,
2145
+ vn as a,
2146
+ wn as b,
2147
+ qt as c,
2148
+ xe as d,
2149
+ ke as e,
2150
+ Ht as f,
2151
+ jt as g,
2152
+ rn as h,
2153
+ nn as i,
2154
+ Ot as l
1858
2155
  };