@bwg-ui/core 1.3.0 → 1.3.2

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 (45) hide show
  1. package/dist/chunks/{CMSearchIntfGwP01-_h2B12Ig.js → CMSearchIntfGwP01-Bx5cpkhH.js} +1 -1
  2. package/dist/chunks/{CMSearchIntfGwP01-D7XtXMLy.cjs → CMSearchIntfGwP01-Uhl4uqiV.cjs} +1 -1
  3. package/dist/chunks/{MenuReport-DuWbbKBC.cjs → MenuReport-CPwq8w-z.cjs} +1 -1
  4. package/dist/chunks/{MenuReport-Bw3AvR6b.js → MenuReport-DxJIaW8D.js} +1 -1
  5. package/dist/chunks/{common-components-BOJo6FH_.cjs → common-components-Dd_AsKs7.cjs} +99 -99
  6. package/dist/chunks/{common-components-BjfrRYiU.js → common-components-dzN5Nuq0.js} +7245 -7093
  7. package/dist/chunks/{layout-components-DNhUIx4u.js → layout-components-B25FFvXj.js} +1017 -768
  8. package/dist/chunks/layout-components-Cz7Zets7.cjs +35 -0
  9. package/dist/components/common/BwgDetail.d.ts.map +1 -1
  10. package/dist/components/common/BwgGrid.d.ts.map +1 -1
  11. package/dist/components/common/BwgPagination.d.ts.map +1 -1
  12. package/dist/components/common/index.cjs +1 -1
  13. package/dist/components/common/index.js +1 -1
  14. package/dist/components/guide/index.cjs +1 -1
  15. package/dist/components/guide/index.js +1 -1
  16. package/dist/components/layout/BwgPortal01.d.ts.map +1 -1
  17. package/dist/components/layout/custom/ConfigurableHeader.d.ts.map +1 -1
  18. package/dist/components/layout/custom/ConfigurableMenuTab.d.ts.map +1 -1
  19. package/dist/components/layout/custom/ConfigurableSidebar.d.ts.map +1 -1
  20. package/dist/components/layout/default/LoadingContainer.d.ts.map +1 -1
  21. package/dist/components/layout/index.cjs +1 -1
  22. package/dist/components/layout/index.js +1 -1
  23. package/dist/components/popup/index.cjs +1 -1
  24. package/dist/components/popup/index.js +1 -1
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/stores/index.cjs +2 -2
  28. package/dist/stores/index.d.ts +12 -2
  29. package/dist/stores/index.d.ts.map +1 -1
  30. package/dist/stores/index.js +312 -216
  31. package/dist/stores/menuViewStore.d.ts +12 -2
  32. package/dist/stores/menuViewStore.d.ts.map +1 -1
  33. package/dist/stores/userStore.d.ts +19 -0
  34. package/dist/stores/userStore.d.ts.map +1 -1
  35. package/dist/styles/assets/images/contents/icon/ico-tab-hashtag-grey.svg +11 -0
  36. package/dist/styles/assets/images/contents/icon/ico-tab-hashtag.svg +11 -0
  37. package/dist/styles/components.css +71 -0
  38. package/dist/styles/layout.css +1289 -1234
  39. package/dist/utils/gridUtils.d.ts +6 -6
  40. package/dist/utils/gridUtils.d.ts.map +1 -1
  41. package/dist/utils/index.cjs +1 -1
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist/utils/index.js +936 -971
  44. package/package.json +1 -1
  45. package/dist/chunks/layout-components-Ddn-4n36.cjs +0 -35
@@ -1,38 +1,38 @@
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 = {
1
+ import { jsxs as b, jsx as e, Fragment as K } from "react/jsx-runtime";
2
+ import { o as Le, C as Be, S as ge, n as Oe, m as Ee } from "./provider-VCa8UGvF.js";
3
+ import { Routes as ke, Route as te, Navigate as Re, useNavigate as fe, useLocation as De } from "react-router-dom";
4
+ import { G as ze, B as Ae, Q as We } from "./common-components-dzN5Nuq0.js";
5
+ import { Spin as re, Layout as Z, Button as B, Divider as le, Flex as ne, Slider as ce, Switch as $e, Modal as Fe, Popover as _e, Avatar as Ge, Dropdown as He, Tabs as je, Tooltip as Q, AutoComplete as Ve, Input as me, Segmented as Ue, ConfigProvider as Ke, Menu as he, Result as Ie, Space as Ze, Typography as Ye, Empty as de, Breadcrumb as qe, Form as U, Checkbox as Qe } from "antd";
6
+ import { lazy as W, useEffect as z, useRef as Y, useCallback as D, useMemo as _, useState as A, createElement as Ne, memo as be, cloneElement as Xe, Component as Je, Suspense as se } from "react";
7
+ import { useLogout as et, useUserStore as Pe, useMenuViewStore as O, useMenuModelStore as ae, useFavoriteStore as tt, usePopupStore as ye, useLogin as nt, useSystemStore as rt } from "../stores/index.js";
8
+ import * as oe from "@ant-design/icons";
9
+ import { UndoOutlined as ee, UserOutlined as ot, CloseOutlined as X, PushpinOutlined as st, ReloadOutlined as Ce, RestOutlined as at, PushpinTwoTone as it, StepBackwardOutlined as lt, LeftOutlined as ct, RightOutlined as dt, StepForwardOutlined as ut, MenuUnfoldOutlined as mt, MenuFoldOutlined as ht, ExclamationCircleOutlined as pt, WarningOutlined as gt, StarOutlined as ft, FolderOpenOutlined as bt, ExclamationCircleTwoTone as yt } from "@ant-design/icons";
10
+ import { getTodateString as ve, colorFormat as Ct, getUserId as we } from "../utils/index.js";
11
+ import { useSensors as vt, useSensor as wt, PointerSensor as xt, DndContext as kt, closestCenter as It } from "@dnd-kit/core";
12
+ import { restrictToHorizontalAxis as Nt } from "@dnd-kit/modifiers";
13
+ import { arrayMove as Pt, SortableContext as St, horizontalListSortingStrategy as Tt, useSortable as Mt } from "@dnd-kit/sortable";
14
+ const Lt = W(
15
+ () => import("./MenuReport-DxJIaW8D.js")
16
+ ), Bt = W(
17
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.$)
18
+ ), Ot = W(
19
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a0)
20
+ ), Et = W(
21
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a1)
22
+ ), Rt = W(
23
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a2)
24
+ ), Dt = W(
25
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a4)
26
+ ), zt = W(
27
+ () => import("./CMSearchIntfGwP01-Bx5cpkhH.js")
28
+ ), At = W(
29
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a5)
30
+ ), Wt = W(
31
+ () => import("./common-components-dzN5Nuq0.js").then((n) => n.a3)
32
+ ), $t = {
33
33
  // 게시판/문의
34
34
  CORE_REPORT: {
35
- component: It,
35
+ component: Lt,
36
36
  defaultConfig: {
37
37
  title: "게시판/문의",
38
38
  width: 1200,
@@ -41,7 +41,7 @@ const It = z(
41
41
  },
42
42
  // 조직/부서 검색류
43
43
  CORE_DEPARTMENT_01: {
44
- component: Nt,
44
+ component: Bt,
45
45
  defaultConfig: {
46
46
  title: "부서 검색",
47
47
  width: 620,
@@ -49,7 +49,7 @@ const It = z(
49
49
  }
50
50
  },
51
51
  CORE_DEPARTMENT_02: {
52
- component: Pt,
52
+ component: Ot,
53
53
  defaultConfig: {
54
54
  title: "부서 검색",
55
55
  width: 620,
@@ -57,7 +57,7 @@ const It = z(
57
57
  }
58
58
  },
59
59
  CORE_ORGANIZATION_01: {
60
- component: St,
60
+ component: Et,
61
61
  defaultConfig: {
62
62
  title: "조직 검색",
63
63
  width: 620,
@@ -65,7 +65,7 @@ const It = z(
65
65
  }
66
66
  },
67
67
  CORE_ORGANIZATION_02: {
68
- component: Lt,
68
+ component: Rt,
69
69
  defaultConfig: {
70
70
  title: "조직 검색",
71
71
  width: 1e3,
@@ -73,7 +73,7 @@ const It = z(
73
73
  }
74
74
  },
75
75
  CORE_PRGR_02: {
76
- component: Mt,
76
+ component: Dt,
77
77
  defaultConfig: {
78
78
  title: "프로그램 검색",
79
79
  width: 700,
@@ -81,7 +81,7 @@ const It = z(
81
81
  }
82
82
  },
83
83
  CORE_GW_DRAFTS: {
84
- component: Tt,
84
+ component: zt,
85
85
  defaultConfig: {
86
86
  title: "기안 목록",
87
87
  width: 1e3,
@@ -89,7 +89,7 @@ const It = z(
89
89
  }
90
90
  },
91
91
  CORE_ADDRESS_01: {
92
- component: Et,
92
+ component: At,
93
93
  defaultConfig: {
94
94
  title: "주소 검색",
95
95
  width: 750,
@@ -97,18 +97,18 @@ const It = z(
97
97
  }
98
98
  },
99
99
  CORE_HOLIDAY_01: {
100
- component: Bt,
100
+ component: Wt,
101
101
  defaultConfig: {
102
102
  title: "휴일 검색",
103
103
  width: 750,
104
104
  height: 800
105
105
  }
106
106
  }
107
- }, ge = "bwg-dot-line-wave-v4";
108
- function Rt() {
109
- if (typeof document > "u" || document.getElementById(ge)) return;
107
+ }, xe = "bwg-dot-line-wave-v4";
108
+ function Ft() {
109
+ if (typeof document > "u" || document.getElementById(xe)) return;
110
110
  const n = document.createElement("style");
111
- n.id = ge, n.textContent = `
111
+ n.id = xe, n.textContent = `
112
112
  .bwg-dotline {
113
113
  display: inline-flex;
114
114
  align-items: center;
@@ -144,70 +144,67 @@ function Rt() {
144
144
  }
145
145
  `, document.head.appendChild(n);
146
146
  }
147
- const Dt = ({
147
+ const _t = ({
148
148
  colors: n = ["#DAD3FF", "#B3A6FF", "#9380FF", "#816BFA"],
149
149
  count: t,
150
150
  size: r = 12,
151
151
  gap: o = 10,
152
- amp: s = 16,
153
- speedMs: a = 900,
154
- direction: b = "ltr",
155
- phase: l = 0.7
152
+ amp: a = 16,
153
+ speedMs: i = 900,
154
+ direction: y = "ltr",
155
+ phase: c = 0.7
156
156
  }) => {
157
- B(() => {
158
- Rt();
157
+ z(() => {
158
+ Ft();
159
159
  }, []);
160
- const c = t ?? n.length, y = Array.from({ length: c }), i = {
160
+ const u = t ?? n.length, v = Array.from({ length: u }), p = {
161
161
  "--bwg-size": `${r}px`,
162
162
  "--bwg-gap": `${o}px`,
163
- "--bwg-amp": `${s}px`,
164
- "--bwg-speed": `${a}ms`
165
- }, v = a / c * l;
163
+ "--bwg-amp": `${a}px`,
164
+ "--bwg-speed": `${i}ms`
165
+ }, N = i / u * c;
166
166
  return /* @__PURE__ */ e(
167
167
  "span",
168
168
  {
169
169
  className: "bwg-dotline",
170
170
  role: "img",
171
171
  "aria-label": "loading",
172
- style: i,
173
- children: y.map((h, u) => /* @__PURE__ */ e(
172
+ style: p,
173
+ children: v.map((l, m) => /* @__PURE__ */ e(
174
174
  "span",
175
175
  {
176
176
  className: "dot",
177
177
  style: {
178
- backgroundColor: n[u % n.length],
179
- animationDelay: b === "ltr" ? `${u * v}ms` : `${(c - 1 - u) * v}ms`
178
+ backgroundColor: n[m % n.length],
179
+ animationDelay: y === "ltr" ? `${m * N}ms` : `${(u - 1 - m) * N}ms`
180
180
  }
181
181
  },
182
- u
182
+ m
183
183
  ))
184
184
  }
185
185
  );
186
- }, bn = ({
186
+ }, In = ({
187
187
  spin: n = null,
188
188
  text: t = "인증중...",
189
189
  dimStyle: r = "dark"
190
190
  }) => {
191
191
  if (!(n ?? !0)) return null;
192
- const a = r === "dark";
193
- return /* @__PURE__ */ C(
192
+ const i = r === "dark";
193
+ return /* @__PURE__ */ b(
194
194
  "div",
195
195
  {
196
196
  className: "loading-overlay",
197
197
  style: {
198
- position: "fixed",
199
- height: "100vh",
200
- left: 0,
201
- right: 0,
202
- top: 0,
198
+ position: "absolute",
199
+ inset: 0,
203
200
  display: "flex",
204
201
  flexDirection: "column",
205
202
  justifyContent: "center",
206
203
  alignItems: "center",
207
204
  gap: 8,
208
205
  padding: "8px 12px",
209
- background: a ? "rgba(0, 0, 0, 0.6)" : "rgba(255, 255, 255, 0.85)",
210
- color: a ? "#fff" : "#333",
206
+ background: i ? "rgba(0, 0, 0, 0.6)" : "rgba(255, 255, 255, 0.85)",
207
+ color: i ? "#fff" : "#333",
211
208
  backdropFilter: "blur(4px)",
212
209
  zIndex: 1e4
213
210
  },
@@ -216,10 +213,10 @@ const Dt = ({
216
213
  role: "status",
217
214
  children: [
218
215
  /* @__PURE__ */ e(
219
- q,
216
+ re,
220
217
  {
221
218
  indicator: /* @__PURE__ */ e(
222
- Dt,
219
+ _t,
223
220
  {
224
221
  colors: ["#DAD3FF", "#B3A6FF", "#9380FF", "#816BFA"],
225
222
  size: 12,
@@ -236,18 +233,18 @@ const Dt = ({
236
233
  ]
237
234
  }
238
235
  );
239
- }, yn = ({
236
+ }, Nn = ({
240
237
  routes: n,
241
238
  useCommonProvider: t = !0,
242
239
  useServiceProvider: r = !0
243
240
  }) => {
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 })
241
+ let a = /* @__PURE__ */ b(ke, { children: [
242
+ /* @__PURE__ */ e(te, { path: "/", element: /* @__PURE__ */ e(Re, { to: "/login" }) }),
243
+ /* @__PURE__ */ e(te, { path: "/login", element: n.login }),
244
+ /* @__PURE__ */ e(te, { path: "/main/*", element: n.main })
248
245
  ] });
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 = ({
246
+ return r && (a = /* @__PURE__ */ e(Le, { children: a })), t && (a = /* @__PURE__ */ e(Be, { children: a })), /* @__PURE__ */ e(ze, { children: a });
247
+ }, { Content: Gt } = Z, Se = ({
251
248
  config: n = {},
252
249
  children: t
253
250
  }) => {
@@ -263,11 +260,11 @@ const Dt = ({
263
260
  ...n
264
261
  };
265
262
  return /* @__PURE__ */ e(
266
- zt,
263
+ Gt,
267
264
  {
268
265
  className: r.wrapper.className,
269
266
  style: r.wrapper.style,
270
- children: /* @__PURE__ */ e(Oe, { children: /* @__PURE__ */ e(
267
+ children: /* @__PURE__ */ e(Ae, { children: /* @__PURE__ */ e(
271
268
  "div",
272
269
  {
273
270
  className: r.body.className,
@@ -277,7 +274,7 @@ const Dt = ({
277
274
  ) })
278
275
  }
279
276
  );
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 = {
277
+ }, Ht = "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", jt = "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", Vt = "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: Ut } = Z, { confirm: Kt } = Fe, $ = {
281
278
  light: {
282
279
  headerBg: "#ffffff",
283
280
  headerText: "#000000",
@@ -330,11 +327,11 @@ const Dt = ({
330
327
  buttonDefaultBorder: "#dddddd",
331
328
  buttonPermissionBorder: "#bdb1ff"
332
329
  }
333
- }, re = {
330
+ }, ue = {
334
331
  0: "작게",
335
332
  1: "보통",
336
333
  2: "크게"
337
- }, ke = ({ config: n = {}, children: t }) => {
334
+ }, Te = ({ config: n = {}, children: t }) => {
338
335
  const r = {
339
336
  gap: 14,
340
337
  minWidth: 200,
@@ -367,152 +364,273 @@ const Dt = ({
367
364
  ...n.logo
368
365
  },
369
366
  right: r
370
- }, s = le(), [a, b] = R("modern"), l = U(null), c = qe(), {
371
- componentSize: y,
372
- setComponentSize: i,
367
+ }, a = fe(), i = Y(null), y = et(), {
368
+ componentSize: c,
369
+ setComponentSize: u,
373
370
  gridSize: v,
374
- setGridSize: h,
375
- spacingSize: u,
376
- setSpacingSize: x,
377
- enableProtectWrapper: N,
378
- setEnableProtectWrapper: p
379
- } = Ce(), g = (d, w) => {
371
+ setGridSize: p,
372
+ spacingSize: N,
373
+ setSpacingSize: l,
374
+ enableProtectWrapper: m,
375
+ setEnableProtectWrapper: k,
376
+ theme: g,
377
+ setTheme: d,
378
+ clearAllGridLayouts: C
379
+ } = Pe(), T = 1, E = 2, R = 2, x = (h, S) => {
380
380
  try {
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);
381
+ if (!/^[a-zA-Z0-9-]+$/.test(h) || !/^[#a-zA-Z0-9()\s,.-]+$/.test(S)) return;
382
+ document.documentElement.style.setProperty(h, S);
383
+ } catch (I) {
384
+ console.error("CSS variable setting failed:", I);
385
385
  }
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(
386
+ }, F = (h) => {
387
+ if (!$[h]) return;
388
+ d(h);
389
+ const S = { ...$[h] };
390
+ x("--header-bg", S.headerBg), x("--header-text", S.headerText), x("--sidebar-bg", S.sidebarBg), x("--sidebar-text", S.sidebarText), x("--button-primary", S.buttonPrimary), x("--button-primary-hover", S.buttonPrimaryHover), x("--button-primary-active", S.buttonPrimaryActive), x("--button-default", S.buttonDefault), x("--button-default-hover", S.buttonDefaultHover), x("--button-default-border", S.buttonDefaultBorder), x(
391
391
  "--button-permission-border",
392
- w.buttonPermissionBorder
393
- ), l.current && l.current.setAttribute("data-theme", d), document.documentElement.setAttribute("data-theme", d), ht(he, d, 30);
392
+ S.buttonPermissionBorder
393
+ ), i.current && i.current.setAttribute("data-theme", h), document.documentElement.setAttribute("data-theme", h);
394
394
  };
395
- B(() => {
396
- const d = mt(he);
397
- d && G[d] ? P(d) : P("modern");
398
- }, []);
399
- const A = () => ({ ...G[a] }).headerBg, E = () => {
400
- c(), s("/login");
395
+ z(() => {
396
+ if (g && $[g]) {
397
+ const h = { ...$[g] };
398
+ x("--header-bg", h.headerBg), x("--header-text", h.headerText), x("--sidebar-bg", h.sidebarBg), x("--sidebar-text", h.sidebarText), x("--button-primary", h.buttonPrimary), x("--button-primary-hover", h.buttonPrimaryHover), x(
399
+ "--button-primary-active",
400
+ h.buttonPrimaryActive
401
+ ), x("--button-default", h.buttonDefault), x("--button-default-hover", h.buttonDefaultHover), x(
402
+ "--button-default-border",
403
+ h.buttonDefaultBorder
404
+ ), x(
405
+ "--button-permission-border",
406
+ h.buttonPermissionBorder
407
+ ), i.current && i.current.setAttribute("data-theme", g), document.documentElement.setAttribute("data-theme", g);
408
+ } else
409
+ F("modern");
410
+ }, [g]);
411
+ const j = () => {
412
+ y(), a("/login");
401
413
  };
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" }),
406
- /* @__PURE__ */ e("span", { style: { marginLeft: "8px", fontSize: "12px" }, children: "현재 테마 색상" })
407
- ] }),
408
- /* @__PURE__ */ C("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: [
409
- /* @__PURE__ */ e(
410
- M,
411
- {
412
- type: a === "modern" ? "primary" : "default",
413
- size: "small",
414
- onClick: () => P("modern"),
415
- style: {
416
- textAlign: "left",
417
- backgroundColor: a === "modern" ? G.modern.headerBg : void 0,
418
- color: a === "modern" ? G.modern.headerText : void 0
419
- },
420
- children: "모던"
421
- },
422
- "modern"
423
- ),
424
- Object.entries(G).filter(([d]) => d !== "modern").map(([d, w]) => /* @__PURE__ */ e(
425
- M,
426
- {
427
- type: a === d ? "primary" : "default",
428
- size: "small",
429
- onClick: () => P(d),
430
- style: {
431
- textAlign: "left",
432
- backgroundColor: a === d ? w.headerBg : void 0,
433
- color: a === d ? w.headerText : void 0
434
- },
435
- children: d
436
- },
437
- d
438
- ))
439
- ] }),
440
- /* @__PURE__ */ e(ue, {}),
441
- /* @__PURE__ */ C("div", { style: { marginTop: "8px" }, children: [
442
- /* @__PURE__ */ e("div", { style: { marginBottom: "8px", fontSize: "12px" }, children: "컴포넌트 크기" }),
443
- /* @__PURE__ */ e(
444
- te,
445
- {
446
- marks: re,
447
- value: y,
448
- min: 0,
449
- max: 2,
450
- step: 1,
451
- onChange: (d) => i(d)
452
- }
453
- ),
454
- /* @__PURE__ */ e(
455
- "div",
456
- {
457
- style: { marginTop: "16px", marginBottom: "8px", fontSize: "12px" },
458
- children: "그리드 크기"
459
- }
460
- ),
461
- /* @__PURE__ */ e(
462
- te,
463
- {
464
- marks: re,
465
- value: v,
466
- min: 0,
467
- max: 2,
468
- step: 1,
469
- onChange: (d) => h(d)
470
- }
471
- ),
472
- /* @__PURE__ */ e(
473
- "div",
474
- {
475
- style: { marginTop: "16px", marginBottom: "8px", fontSize: "12px" },
476
- children: "여백 조정"
477
- }
478
- ),
479
- /* @__PURE__ */ e(
480
- te,
481
- {
482
- marks: re,
483
- value: u,
484
- min: 0,
485
- max: 2,
486
- step: 1,
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
- ]
510
- }
511
- )
512
- ] })
513
- ] });
514
- return /* @__PURE__ */ C(
515
- Wt,
414
+ ve ? ve("HH:mm:ss") : (/* @__PURE__ */ new Date()).toLocaleTimeString("ko-KR");
415
+ const V = $[g]?.headerBg || "#f3f4ff", q = /* @__PURE__ */ b(
416
+ "div",
417
+ {
418
+ style: {
419
+ padding: "16px",
420
+ backgroundColor: V,
421
+ borderRadius: "8px",
422
+ minWidth: "320px"
423
+ },
424
+ children: [
425
+ /* @__PURE__ */ b("div", { style: { marginBottom: "16px" }, children: [
426
+ /* @__PURE__ */ e(
427
+ "div",
428
+ {
429
+ style: { marginBottom: "12px", fontSize: "14px", fontWeight: 500 },
430
+ children: "테마 선택"
431
+ }
432
+ ),
433
+ /* @__PURE__ */ b(
434
+ "div",
435
+ {
436
+ style: {
437
+ display: "grid",
438
+ gridTemplateColumns: "1fr 1fr",
439
+ gap: "8px",
440
+ marginBottom: "8px"
441
+ },
442
+ children: [
443
+ /* @__PURE__ */ e(
444
+ B,
445
+ {
446
+ type: g === "modern" ? "primary" : "default",
447
+ size: "small",
448
+ onClick: () => F("modern"),
449
+ style: {
450
+ width: "100%",
451
+ backgroundColor: g === "modern" ? $.modern.headerBg : void 0,
452
+ color: g === "modern" ? $.modern.headerText : void 0,
453
+ borderColor: g === "modern" ? $.modern.headerBg : void 0
454
+ },
455
+ children: "모던"
456
+ },
457
+ "modern"
458
+ ),
459
+ Object.entries($).filter(([h]) => h !== "modern").map(([h, S]) => /* @__PURE__ */ e(
460
+ B,
461
+ {
462
+ type: g === h ? "primary" : "default",
463
+ size: "small",
464
+ onClick: () => F(h),
465
+ style: {
466
+ width: "100%",
467
+ backgroundColor: g === h ? S.headerBg : void 0,
468
+ color: g === h ? S.headerText : void 0,
469
+ borderColor: g === h ? S.headerBg : void 0
470
+ },
471
+ children: h
472
+ },
473
+ h
474
+ ))
475
+ ]
476
+ }
477
+ )
478
+ ] }),
479
+ /* @__PURE__ */ e(le, { style: { margin: "16px 0" } }),
480
+ /* @__PURE__ */ b("div", { style: { marginBottom: "16px" }, children: [
481
+ /* @__PURE__ */ b(
482
+ ne,
483
+ {
484
+ justify: "space-between",
485
+ align: "center",
486
+ style: { marginBottom: "8px" },
487
+ children: [
488
+ /* @__PURE__ */ e("span", { style: { fontSize: "14px", fontWeight: 500 }, children: "컴포넌트 크기" }),
489
+ /* @__PURE__ */ e(
490
+ B,
491
+ {
492
+ type: "text",
493
+ size: "small",
494
+ icon: /* @__PURE__ */ e(ee, {}),
495
+ onClick: () => u(T),
496
+ disabled: c === T,
497
+ style: { padding: "0 4px" }
498
+ }
499
+ )
500
+ ]
501
+ }
502
+ ),
503
+ /* @__PURE__ */ e(
504
+ ce,
505
+ {
506
+ marks: ue,
507
+ value: c,
508
+ min: 0,
509
+ max: 2,
510
+ step: 1,
511
+ onChange: (h) => u(h)
512
+ }
513
+ )
514
+ ] }),
515
+ /* @__PURE__ */ b("div", { style: { marginBottom: "16px" }, children: [
516
+ /* @__PURE__ */ b(
517
+ ne,
518
+ {
519
+ justify: "space-between",
520
+ align: "center",
521
+ style: { marginBottom: "8px" },
522
+ children: [
523
+ /* @__PURE__ */ e("span", { style: { fontSize: "14px", fontWeight: 500 }, children: "그리드 크기" }),
524
+ /* @__PURE__ */ e(
525
+ B,
526
+ {
527
+ type: "text",
528
+ size: "small",
529
+ icon: /* @__PURE__ */ e(ee, {}),
530
+ onClick: () => p(E),
531
+ disabled: v === E,
532
+ style: { padding: "0 4px" }
533
+ }
534
+ )
535
+ ]
536
+ }
537
+ ),
538
+ /* @__PURE__ */ e(
539
+ ce,
540
+ {
541
+ marks: ue,
542
+ value: v,
543
+ min: 0,
544
+ max: 2,
545
+ step: 1,
546
+ onChange: (h) => p(h)
547
+ }
548
+ )
549
+ ] }),
550
+ /* @__PURE__ */ b("div", { style: { marginBottom: "16px" }, children: [
551
+ /* @__PURE__ */ b(
552
+ ne,
553
+ {
554
+ justify: "space-between",
555
+ align: "center",
556
+ style: { marginBottom: "8px" },
557
+ children: [
558
+ /* @__PURE__ */ e("span", { style: { fontSize: "14px", fontWeight: 500 }, children: "여백 조정" }),
559
+ /* @__PURE__ */ e(
560
+ B,
561
+ {
562
+ type: "text",
563
+ size: "small",
564
+ icon: /* @__PURE__ */ e(ee, {}),
565
+ onClick: () => l(R),
566
+ disabled: N === R,
567
+ style: { padding: "0 4px" }
568
+ }
569
+ )
570
+ ]
571
+ }
572
+ ),
573
+ /* @__PURE__ */ e(
574
+ ce,
575
+ {
576
+ marks: ue,
577
+ value: N,
578
+ min: 0,
579
+ max: 2,
580
+ step: 1,
581
+ onChange: (h) => l(h)
582
+ }
583
+ )
584
+ ] }),
585
+ /* @__PURE__ */ e(le, { style: { margin: "16px 0" } }),
586
+ /* @__PURE__ */ b(
587
+ "div",
588
+ {
589
+ style: {
590
+ marginBottom: "16px",
591
+ display: "flex",
592
+ justifyContent: "space-between",
593
+ alignItems: "center"
594
+ },
595
+ children: [
596
+ /* @__PURE__ */ e("span", { style: { fontSize: "14px", fontWeight: 500 }, children: "화면 보호 활성화" }),
597
+ /* @__PURE__ */ e(
598
+ $e,
599
+ {
600
+ checked: m,
601
+ onChange: k
602
+ }
603
+ )
604
+ ]
605
+ }
606
+ ),
607
+ /* @__PURE__ */ e(le, { style: { margin: "16px 0" } }),
608
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(
609
+ B,
610
+ {
611
+ type: "default",
612
+ danger: !0,
613
+ size: "small",
614
+ icon: /* @__PURE__ */ e(ee, {}),
615
+ onClick: () => {
616
+ Kt({
617
+ title: "전체 그리드 레이아웃 초기화",
618
+ content: "임의 변경한 그리드 레이아웃 변경사항을 초기화하시겠습니까? 기존 열려있는 화면들은 다시 열어야 적용됩니다.",
619
+ onOk() {
620
+ C();
621
+ }
622
+ });
623
+ },
624
+ block: !0,
625
+ style: { fontSize: "12px" },
626
+ children: "전체 그리드 레이아웃 초기화"
627
+ }
628
+ ) })
629
+ ]
630
+ }
631
+ );
632
+ return /* @__PURE__ */ b(
633
+ Ut,
516
634
  {
517
635
  className: o.wrapper.className,
518
636
  style: { ...o.wrapper.style },
@@ -538,7 +656,7 @@ const Dt = ({
538
656
  children: t
539
657
  }
540
658
  ),
541
- /* @__PURE__ */ C(
659
+ /* @__PURE__ */ b(
542
660
  "div",
543
661
  {
544
662
  className: "header-right",
@@ -547,29 +665,29 @@ const Dt = ({
547
665
  minWidth: o.right?.minWidth
548
666
  },
549
667
  children: [
550
- o.right?.items?.map((d, w) => /* @__PURE__ */ e("div", { children: d }, w)),
668
+ o.right?.items?.map((h, S) => /* @__PURE__ */ e("div", { children: h }, S)),
551
669
  o.right?.alarm?.visible && /* @__PURE__ */ e(
552
- M,
670
+ B,
553
671
  {
554
672
  type: "text",
555
- icon: /* @__PURE__ */ e("img", { src: At, alt: "알림" }),
673
+ icon: /* @__PURE__ */ e("img", { src: Ht, alt: "알림" }),
556
674
  className: "alarm-btn",
557
675
  onClick: o.right?.alarm?.onClick
558
676
  }
559
677
  ),
560
678
  o.right?.theme?.visible && /* @__PURE__ */ e(
561
- Ae,
679
+ _e,
562
680
  {
563
- content: m,
564
- title: "테마 설정",
681
+ content: q,
682
+ title: "개인 설정",
565
683
  trigger: "click",
566
684
  placement: "bottomRight",
567
- onOpenChange: (d) => o.right?.theme?.onOpenChange?.(d),
685
+ onOpenChange: (h) => o.right?.theme?.onOpenChange?.(h),
568
686
  children: /* @__PURE__ */ e(
569
- M,
687
+ B,
570
688
  {
571
689
  type: "text",
572
- icon: /* @__PURE__ */ e("img", { src: Ft, alt: "개인설정" }),
690
+ icon: /* @__PURE__ */ e("img", { src: Vt, alt: "개인설정" }),
573
691
  className: "theme-btn",
574
692
  onClick: o.right?.theme?.onClick
575
693
  }
@@ -577,18 +695,18 @@ const Dt = ({
577
695
  }
578
696
  ),
579
697
  o.right?.logout?.visible && /* @__PURE__ */ e(
580
- M,
698
+ B,
581
699
  {
582
700
  type: "text",
583
- icon: /* @__PURE__ */ e("img", { src: $t, alt: "로그아웃" }),
584
- onClick: o.right?.logout?.onClick || E,
701
+ icon: /* @__PURE__ */ e("img", { src: jt, alt: "로그아웃" }),
702
+ onClick: o.right?.logout?.onClick || j,
585
703
  className: "logout-btn"
586
704
  }
587
705
  ),
588
706
  o.right?.avatar?.visible && /* @__PURE__ */ e(
589
- $e,
707
+ Ge,
590
708
  {
591
- icon: /* @__PURE__ */ e(et, {}),
709
+ icon: /* @__PURE__ */ e(ot, {}),
592
710
  className: "avatar",
593
711
  style: {
594
712
  width: o.right?.avatar?.width,
@@ -603,7 +721,7 @@ const Dt = ({
603
721
  ]
604
722
  }
605
723
  );
606
- }, ae = /* @__PURE__ */ Object.freeze({
724
+ }, pe = /* @__PURE__ */ Object.freeze({
607
725
  Translate: {
608
726
  toString(n) {
609
727
  if (!n)
@@ -629,7 +747,7 @@ const Dt = ({
629
747
  Transform: {
630
748
  toString(n) {
631
749
  if (n)
632
- return [ae.Translate.toString(n), ae.Scale.toString(n)].join(" ");
750
+ return [pe.Translate.toString(n), pe.Scale.toString(n)].join(" ");
633
751
  }
634
752
  },
635
753
  Transition: {
@@ -642,156 +760,157 @@ const Dt = ({
642
760
  return t + " " + r + "ms " + o;
643
761
  }
644
762
  }
645
- }), _t = ce(
763
+ }), Zt = be(
646
764
  ({ className: n, ...t }) => {
647
- const r = U(null), {
765
+ const r = Y(null), {
648
766
  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();
655
- B(() => {
656
- const h = r.current;
657
- if (h)
658
- if (l) {
659
- const u = Math.round(h.getBoundingClientRect().width);
660
- i(u);
767
+ listeners: a,
768
+ transform: i,
769
+ transition: y,
770
+ isDragging: c,
771
+ setNodeRef: u
772
+ } = Mt({ id: t["data-node-key"] }), [v, p] = A();
773
+ z(() => {
774
+ const C = r.current;
775
+ if (C)
776
+ if (c) {
777
+ const T = Math.round(C.getBoundingClientRect().width);
778
+ p(T);
661
779
  } else
662
- i(void 0);
663
- }, [l]);
664
- const v = {
780
+ p(void 0);
781
+ }, [c]);
782
+ const N = {
665
783
  ...t.style,
666
- transform: a ? ae.Transform.toString(a) : void 0,
667
- transition: b ?? "transform 0.16s ease",
784
+ transform: i ? pe.Transform.toString(i) : void 0,
785
+ transition: y ?? "transform 0.16s ease",
668
786
  cursor: "grab",
669
787
  userSelect: "none",
670
788
  willChange: "transform",
671
789
  // ✅ 드래그 중 픽셀 폭 고정 (flex 재계산 억제)
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
676
- };
677
- return Ze(t.children, {
678
- ref: (h) => {
679
- r.current !== h && (r.current = h), c(h);
790
+ width: v ?? void 0,
791
+ minWidth: v ?? void 0,
792
+ maxWidth: v ?? void 0,
793
+ flex: v !== void 0 ? "0 0 auto" : void 0
794
+ }, l = t.children, m = l.props?.className || "", d = t["data-gubun"] === "C" ? m ? `${m} tab-special` : "tab-special" : m;
795
+ return Xe(l, {
796
+ ref: (C) => {
797
+ r.current !== C && (r.current = C), u(C);
680
798
  },
681
- style: v,
799
+ className: d,
800
+ style: N,
682
801
  ...o,
683
- ...s
802
+ ...a
684
803
  });
685
804
  }
686
- ), Gt = ce(function({
805
+ ), Yt = be(function({
687
806
  config: t,
688
807
  isFirst: r,
689
808
  isLast: o,
690
- canCloseAll: s,
691
- onFirst: a,
692
- onPrev: b,
693
- onNext: l,
694
- onLast: c,
695
- onCloseAll: y
809
+ canCloseAll: a,
810
+ onFirst: i,
811
+ onPrev: y,
812
+ onNext: c,
813
+ onLast: u,
814
+ onCloseAll: v
696
815
  }) {
697
- return /* @__PURE__ */ C("div", { className: t.wrapper?.className, style: t.wrapper?.style, children: [
816
+ return /* @__PURE__ */ b("div", { className: t.wrapper?.className, style: t.wrapper?.style, children: [
698
817
  /* @__PURE__ */ e(
699
- K,
818
+ Q,
700
819
  {
701
820
  title: "첫 번째 탭",
702
821
  className: t.tooltip?.className,
703
822
  style: t.tooltip?.style,
704
823
  children: /* @__PURE__ */ e(
705
- M,
824
+ B,
706
825
  {
707
826
  className: t.buttons?.className,
708
827
  style: t.buttons?.style,
709
828
  size: "small",
710
- icon: /* @__PURE__ */ e(tt, {}),
711
- onClick: a,
829
+ icon: /* @__PURE__ */ e(lt, {}),
830
+ onClick: i,
712
831
  disabled: r
713
832
  }
714
833
  )
715
834
  }
716
835
  ),
717
836
  /* @__PURE__ */ e(
718
- K,
837
+ Q,
719
838
  {
720
839
  title: "이전 탭",
721
840
  className: t.tooltip?.className,
722
841
  style: t.tooltip?.style,
723
842
  children: /* @__PURE__ */ e(
724
- M,
843
+ B,
725
844
  {
726
845
  className: t.buttons?.className,
727
846
  style: t.buttons?.style,
728
847
  size: "small",
729
- icon: /* @__PURE__ */ e(nt, {}),
730
- onClick: b,
848
+ icon: /* @__PURE__ */ e(ct, {}),
849
+ onClick: y,
731
850
  disabled: r
732
851
  }
733
852
  )
734
853
  }
735
854
  ),
736
855
  /* @__PURE__ */ e(
737
- K,
856
+ Q,
738
857
  {
739
858
  title: "다음 탭",
740
859
  className: t.tooltip?.className,
741
860
  style: t.tooltip?.style,
742
861
  children: /* @__PURE__ */ e(
743
- M,
862
+ B,
744
863
  {
745
864
  className: t.buttons?.className,
746
865
  style: t.buttons?.style,
747
866
  size: "small",
748
- icon: /* @__PURE__ */ e(rt, {}),
749
- onClick: l,
867
+ icon: /* @__PURE__ */ e(dt, {}),
868
+ onClick: c,
750
869
  disabled: o
751
870
  }
752
871
  )
753
872
  }
754
873
  ),
755
874
  /* @__PURE__ */ e(
756
- K,
875
+ Q,
757
876
  {
758
877
  title: "마지막 탭",
759
878
  className: t.tooltip?.className,
760
879
  style: t.tooltip?.style,
761
880
  children: /* @__PURE__ */ e(
762
- M,
881
+ B,
763
882
  {
764
883
  className: t.buttons?.className,
765
884
  style: t.buttons?.style,
766
885
  size: "small",
767
- icon: /* @__PURE__ */ e(ot, {}),
768
- onClick: c,
886
+ icon: /* @__PURE__ */ e(ut, {}),
887
+ onClick: u,
769
888
  disabled: o
770
889
  }
771
890
  )
772
891
  }
773
892
  ),
774
893
  /* @__PURE__ */ e(
775
- K,
894
+ Q,
776
895
  {
777
896
  title: "모든 탭 닫기",
778
897
  className: t.tooltip?.className,
779
898
  style: t.tooltip?.style,
780
899
  children: /* @__PURE__ */ e(
781
- M,
900
+ B,
782
901
  {
783
902
  className: t.buttons?.className,
784
903
  style: t.buttons?.style,
785
904
  size: "small",
786
- icon: /* @__PURE__ */ e(ve, {}),
787
- onClick: y,
788
- disabled: !s
905
+ icon: /* @__PURE__ */ e(X, {}),
906
+ onClick: v,
907
+ disabled: !a
789
908
  }
790
909
  )
791
910
  }
792
911
  )
793
912
  ] });
794
- }), Ht = ({
913
+ }), qt = ({
795
914
  config: n = {}
796
915
  }) => {
797
916
  const t = {
@@ -819,72 +938,192 @@ const Dt = ({
819
938
  ...n?.nav
820
939
  },
821
940
  ...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 = () => {
941
+ }, r = O((s) => s.tabs), o = O((s) => s.activeMenuId), a = O((s) => s.pinnedTabs), i = O((s) => s.focusTab), y = O((s) => s.closeTab), c = O((s) => s.reorderTabs), u = O((s) => s.togglePinTab), v = O((s) => s.refreshTab), p = O((s) => s.closeOtherTabs), N = O((s) => s.closeRightTabs);
942
+ O((s) => s.closeAllTabs);
943
+ const l = vt(
944
+ wt(xt, { activationConstraint: { distance: 6 } })
945
+ ), m = (s) => {
946
+ i(s);
947
+ }, k = (s, w) => {
948
+ w === "remove" && typeof s == "string" && y(s);
949
+ }, g = () => {
950
+ r.length > 0 && i(r[0].key);
951
+ }, d = () => {
831
952
  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 = () => {
953
+ const s = r.findIndex((w) => w.key === o);
954
+ s > 0 && i(r[s - 1].key);
955
+ }, C = () => {
835
956
  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);
840
- }, x = () => {
841
- r.forEach((m) => {
842
- a(m.key);
957
+ const s = r.findIndex((w) => w.key === o);
958
+ s < r.length - 1 && i(r[s + 1].key);
959
+ }, T = () => {
960
+ r.length > 0 && i(r[r.length - 1].key);
961
+ }, E = () => {
962
+ r.forEach((s) => {
963
+ a.has(s.key) || y(s.key);
843
964
  });
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,
848
- closable: !0,
849
- children: null
850
- // 컨텐츠는 Main 쪽에서 렌더 → 여기선 헤더만 필요
851
- })),
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);
965
+ }, R = D((s) => (w) => {
966
+ w.preventDefault(), w.stopPropagation();
967
+ }, []), x = D(
968
+ (s) => {
969
+ const w = a.has(s), M = r.findIndex((J) => J.key === s), L = M >= 0 && M < r.length - 1, G = r.length > 1;
970
+ return [
971
+ {
972
+ key: "close",
973
+ label: "닫기",
974
+ icon: /* @__PURE__ */ e(X, {}),
975
+ onClick: () => {
976
+ w || y(s);
977
+ },
978
+ disabled: w
979
+ },
980
+ {
981
+ key: "pin",
982
+ label: w ? "고정 해제" : "고정",
983
+ icon: /* @__PURE__ */ e(st, {}),
984
+ onClick: () => {
985
+ u(s);
986
+ }
987
+ },
988
+ {
989
+ key: "refresh",
990
+ label: "새로고침",
991
+ icon: /* @__PURE__ */ e(Ce, {}),
992
+ onClick: () => {
993
+ v(s);
994
+ }
995
+ },
996
+ {
997
+ type: "divider"
998
+ },
999
+ {
1000
+ key: "closeOthers",
1001
+ label: "다른 탭 닫기",
1002
+ icon: /* @__PURE__ */ e(X, {}),
1003
+ onClick: () => {
1004
+ p(s);
1005
+ },
1006
+ disabled: !G
1007
+ },
1008
+ {
1009
+ key: "closeRight",
1010
+ label: "우측 탭 닫기",
1011
+ icon: /* @__PURE__ */ e(X, {}),
1012
+ onClick: () => {
1013
+ N(s);
1014
+ },
1015
+ disabled: !L
1016
+ },
1017
+ {
1018
+ key: "closeAll",
1019
+ label: "전체 닫기",
1020
+ icon: /* @__PURE__ */ e(at, {}),
1021
+ onClick: () => {
1022
+ E();
1023
+ },
1024
+ disabled: r.length === 0
1025
+ }
1026
+ ];
860
1027
  },
861
- [r, b]
862
- ), E = D(
863
- (m, d) => /* @__PURE__ */ e(
864
- bt,
1028
+ [
1029
+ r,
1030
+ a,
1031
+ y,
1032
+ u,
1033
+ v,
1034
+ p,
1035
+ N
1036
+ ]
1037
+ ), F = o ? r.findIndex((s) => s.key === o) : -1, j = F === 0, V = F === r.length - 1, q = _(
1038
+ () => r.map((s) => {
1039
+ const w = a.has(s.key);
1040
+ return {
1041
+ key: s.key,
1042
+ label: /* @__PURE__ */ b("span", { style: { display: "flex", alignItems: "center", gap: 4 }, children: [
1043
+ w && /* @__PURE__ */ e(
1044
+ it,
1045
+ {
1046
+ twoToneColor: Ct.default.yellow05,
1047
+ style: { fontSize: "12px" }
1048
+ }
1049
+ ),
1050
+ s.label
1051
+ ] }),
1052
+ closable: !w,
1053
+ // 고정된 탭은 닫을 수 없음
1054
+ children: null
1055
+ // 컨텐츠는 Main 쪽에서 렌더 → 여기선 헤더만 필요
1056
+ };
1057
+ }),
1058
+ [r, a]
1059
+ ), [h, S] = A(null), I = D(({ active: s }) => {
1060
+ S(null);
1061
+ }, []), P = D(
1062
+ ({ active: s, over: w }) => {
1063
+ if (!w || s.id === w.id) return;
1064
+ const M = r.findIndex((H) => H.key === s.id), L = r.findIndex((H) => H.key === w.id);
1065
+ if (M < 0 || L < 0 || M === L) return;
1066
+ const G = r.map((H) => H.key), J = Pt(G, M, L);
1067
+ c?.(J);
1068
+ },
1069
+ [r, c]
1070
+ ), f = D(
1071
+ (s, w) => /* @__PURE__ */ e(
1072
+ kt,
865
1073
  {
866
1074
  sensors: l,
867
- onDragEnd: A,
868
- collisionDetection: yt,
869
- modifiers: [Ct],
1075
+ onDragStart: I,
1076
+ onDragEnd: P,
1077
+ collisionDetection: It,
1078
+ modifiers: [Nt],
870
1079
  children: /* @__PURE__ */ e(
871
- wt,
1080
+ St,
872
1081
  {
873
- items: r.map((w) => w.key),
874
- strategy: xt,
875
- children: /* @__PURE__ */ e(d, { ...m, children: (w) => /* @__PURE__ */ ye(
876
- _t,
877
- {
878
- ...w.props,
879
- key: w.key
880
- },
881
- w
882
- ) })
1082
+ items: r.map((M) => M.key),
1083
+ strategy: Tt,
1084
+ children: /* @__PURE__ */ e(w, { ...s, children: (M) => {
1085
+ const L = M.key, G = h === L, H = r.find((ie) => ie.key === L)?.gubun;
1086
+ return /* @__PURE__ */ e(
1087
+ He,
1088
+ {
1089
+ menu: { items: x(L) },
1090
+ trigger: ["contextMenu"],
1091
+ open: G,
1092
+ onOpenChange: (ie) => {
1093
+ S(ie ? L : null);
1094
+ },
1095
+ children: /* @__PURE__ */ e(
1096
+ "span",
1097
+ {
1098
+ onContextMenu: R(L),
1099
+ style: { display: "inline-block", width: "100%" },
1100
+ children: /* @__PURE__ */ Ne(
1101
+ Zt,
1102
+ {
1103
+ ...M.props,
1104
+ key: M.key,
1105
+ "data-gubun": H
1106
+ },
1107
+ M
1108
+ )
1109
+ }
1110
+ )
1111
+ }
1112
+ );
1113
+ } })
883
1114
  }
884
1115
  )
885
1116
  }
886
1117
  ),
887
- [l, A, r]
1118
+ [
1119
+ l,
1120
+ I,
1121
+ P,
1122
+ r,
1123
+ h,
1124
+ x,
1125
+ R
1126
+ ]
888
1127
  );
889
1128
  return /* @__PURE__ */ e(
890
1129
  "div",
@@ -895,36 +1134,36 @@ const Dt = ({
895
1134
  display: r.length === 0 ? "none" : "block"
896
1135
  },
897
1136
  children: /* @__PURE__ */ e(
898
- Fe,
1137
+ je,
899
1138
  {
900
1139
  type: "editable-card",
901
1140
  activeKey: o || void 0,
902
- onChange: c,
903
- onEdit: y,
1141
+ onChange: m,
1142
+ onEdit: k,
904
1143
  className: t.tabs.className,
905
1144
  style: t.tabs.style,
906
1145
  hideAdd: !0,
907
- items: P,
1146
+ items: q,
908
1147
  tabBarExtraContent: /* @__PURE__ */ e(
909
- Gt,
1148
+ Yt,
910
1149
  {
911
1150
  config: t?.nav,
912
- isFirst: !!p,
913
- isLast: !!g,
1151
+ isFirst: !!j,
1152
+ isLast: !!V,
914
1153
  canCloseAll: r.length > 0,
915
- onFirst: i,
916
- onPrev: v,
917
- onNext: h,
918
- onLast: u,
919
- onCloseAll: x
1154
+ onFirst: g,
1155
+ onPrev: d,
1156
+ onNext: C,
1157
+ onLast: T,
1158
+ onCloseAll: E
920
1159
  }
921
1160
  ),
922
- renderTabBar: E
1161
+ renderTabBar: f
923
1162
  }
924
1163
  )
925
1164
  }
926
1165
  );
927
- }, { Sider: Vt } = j, jt = ({
1166
+ }, { Sider: Qt } = Z, Xt = ({
928
1167
  config: n = {}
929
1168
  }) => {
930
1169
  const t = {
@@ -966,15 +1205,15 @@ const Dt = ({
966
1205
  ...n?.style
967
1206
  },
968
1207
  ...n
969
- }, [r, o] = R(""), [s, a] = R(
1208
+ }, [r, o] = A(""), [a, i] = A(
970
1209
  "category"
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) => {
1210
+ ), [y, c] = A([]), { activeMenuId: u, sidebarCollapsed: v, openTabFromMenu: p, toggleSidebar: N } = O(), { menuList: l, isLoading: m, error: k, findMenuById: g, flatMenuList: d } = ae(), { nodes: C, treeNodes: T, loadFavoritesIfNeeded: E } = tt(), R = _(() => {
1211
+ const I = [], P = (f, s = 0) => {
973
1212
  if (f.menuGbCd === t.menuGubunCode.program && f.scrnPath) {
974
- const L = " ".repeat(S), O = f.menuNo || "";
1213
+ const w = " ".repeat(s), M = f.menuNo || "";
975
1214
  I.push({
976
1215
  value: f.menuId,
977
- label: /* @__PURE__ */ C(
1216
+ label: /* @__PURE__ */ b(
978
1217
  "div",
979
1218
  {
980
1219
  style: {
@@ -983,8 +1222,8 @@ const Dt = ({
983
1222
  alignItems: "center"
984
1223
  },
985
1224
  children: [
986
- /* @__PURE__ */ C("span", { children: [
987
- L,
1225
+ /* @__PURE__ */ b("span", { children: [
1226
+ w,
988
1227
  f.menuNm
989
1228
  ] }),
990
1229
  /* @__PURE__ */ e(
@@ -998,7 +1237,7 @@ const Dt = ({
998
1237
  borderRadius: "3px",
999
1238
  marginLeft: "8px"
1000
1239
  },
1001
- children: O
1240
+ children: M
1002
1241
  }
1003
1242
  )
1004
1243
  ]
@@ -1007,13 +1246,13 @@ const Dt = ({
1007
1246
  menuItem: f
1008
1247
  });
1009
1248
  }
1010
- f.children && f.children.length > 0 && f.children.forEach((L) => k(L, S + 1));
1249
+ f.children && f.children.length > 0 && f.children.forEach((w) => P(w, s + 1));
1011
1250
  };
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) => {
1251
+ return l.forEach((f) => P(f)), I;
1252
+ }, [l]), x = _(() => r.trim() ? R.filter((I) => {
1253
+ const P = I.menuItem.menuNm.toLowerCase(), f = String(I.menuItem.menuNo || "미지정").toLowerCase(), s = r.toLowerCase();
1254
+ return P.includes(s) || f.includes(s);
1255
+ }) : [], [R, r]), F = (I) => {
1017
1256
  if (!I || typeof I != "string") {
1018
1257
  console.warn("Invalid menu selection value:", I);
1019
1258
  return;
@@ -1022,11 +1261,11 @@ const Dt = ({
1022
1261
  console.warn("Invalid menu ID format:", I);
1023
1262
  return;
1024
1263
  }
1025
- const k = E.find(
1264
+ const P = R.find(
1026
1265
  (f) => f.value === I
1027
1266
  );
1028
- if (k) {
1029
- const { menuItem: f } = k;
1267
+ if (P) {
1268
+ const { menuItem: f } = P;
1030
1269
  if (!f || !f.menuId || !f.menuNm) {
1031
1270
  console.warn("Invalid menu item:", f);
1032
1271
  return;
@@ -1040,23 +1279,23 @@ const Dt = ({
1040
1279
  f.scrnPath,
1041
1280
  "scrnId:",
1042
1281
  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("");
1282
+ ), p(f)) : (f.menuGbCd === t.menuGubunCode.mainMenu || f.menuGbCd === t.menuGubunCode.subMenu) && (console.log("❌ 검색으로 메인/서브 메뉴 선택 - 이벤트 무시"), console.log("메뉴명:", f.menuNm, "menuGbCd:", f.menuGbCd)), o("");
1044
1283
  }
1045
- }, w = D(
1284
+ }, j = D(
1046
1285
  (I) => {
1047
- const k = N(I);
1048
- k?.menuGbCd === t.menuGubunCode.program && (console.log(
1286
+ const P = g(I);
1287
+ P?.menuGbCd === t.menuGubunCode.program && (console.log(
1049
1288
  "메뉴명:",
1050
- k.menuNm,
1289
+ P.menuNm,
1051
1290
  "경로:",
1052
- k.scrnPath,
1291
+ P.scrnPath,
1053
1292
  "scrnId:",
1054
- k.scrnId
1055
- ), i(k));
1293
+ P.scrnId
1294
+ ), p(P));
1056
1295
  },
1057
- [N, i]
1058
- ), W = D((I) => I.map((k) => ({
1059
- key: k.menuId,
1296
+ [g, p, t.menuGubunCode.program]
1297
+ ), V = D((I) => I.map((P) => ({
1298
+ key: P.menuId,
1060
1299
  label: /* @__PURE__ */ e(
1061
1300
  "div",
1062
1301
  {
@@ -1065,21 +1304,24 @@ const Dt = ({
1065
1304
  justifyContent: "space-between",
1066
1305
  alignItems: "center"
1067
1306
  },
1068
- children: /* @__PURE__ */ e("span", { children: k.menuNm })
1307
+ onDoubleClick: (s) => {
1308
+ s.preventDefault(), s.stopPropagation();
1309
+ },
1310
+ children: /* @__PURE__ */ e("span", { children: P.menuNm })
1069
1311
  }
1070
1312
  ),
1071
- icon: ee(k.iconCd, k.menuGbCd),
1072
- children: k.children && k.children.length > 0 ? W(k.children) : void 0
1073
- })), []), ee = (I, k) => {
1313
+ icon: q(P.iconCd, P.menuGbCd),
1314
+ children: P.children && P.children.length > 0 ? V(P.children) : void 0
1315
+ })), []), q = (I, P) => {
1074
1316
  if (I) {
1075
- const f = Q[I];
1317
+ const f = oe[I];
1076
1318
  if (f)
1077
1319
  return /* @__PURE__ */ e(f, {});
1078
1320
  }
1079
- if (k)
1080
- switch (k) {
1321
+ if (P)
1322
+ switch (P) {
1081
1323
  case t.menuGubunCode.mainMenu:
1082
- return /* @__PURE__ */ e(Q.HomeOutlined, {});
1324
+ return /* @__PURE__ */ e(oe.HomeOutlined, {});
1083
1325
  case t.menuGubunCode.subMenu:
1084
1326
  return null;
1085
1327
  case t.menuGubunCode.program:
@@ -1088,66 +1330,66 @@ const Dt = ({
1088
1330
  return null;
1089
1331
  }
1090
1332
  return null;
1091
- }, Z = D(
1333
+ }, h = D(
1092
1334
  (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} (삭제됨)`;
1335
+ if (l.length === 0) return [];
1336
+ const P = (s) => {
1337
+ if (s)
1338
+ return typeof s == "string" ? C[s] : s;
1339
+ }, f = (s) => {
1340
+ if (s.type === "M") {
1341
+ const w = s, M = g(w.menuId) || void 0, L = !!M, G = L ? `${M?.menuNm ?? w.menuNm ?? w.menuId}` : `${w.menuNm ?? w.menuId} (삭제됨)`;
1100
1342
  return {
1101
- key: L.menuId,
1102
- label: Ne,
1103
- icon: T ? void 0 : /* @__PURE__ */ e(lt, { style: { color: "#faad14" } })
1343
+ key: w.menuId,
1344
+ label: G,
1345
+ icon: L ? void 0 : /* @__PURE__ */ e(gt, { style: { color: "#faad14" } })
1104
1346
  };
1105
1347
  } else {
1106
- const L = S, O = (L.children ?? []).map(k).filter(Boolean).map(f);
1348
+ const w = s, M = (w.children ?? []).map(P).filter(Boolean).map(f);
1107
1349
  return {
1108
- key: L.bkmkId,
1109
- label: L.bkmkNm ?? L.bkmkId,
1110
- icon: L.prntBkmkId === "-" ? /* @__PURE__ */ e(ct, {}) : /* @__PURE__ */ e(dt, {}),
1111
- children: O
1350
+ key: w.bkmkId,
1351
+ label: w.bkmkNm ?? w.bkmkId,
1352
+ icon: w.prntBkmkId === "-" ? /* @__PURE__ */ e(ft, {}) : /* @__PURE__ */ e(bt, {}),
1353
+ children: M
1112
1354
  // 빈 배열이면 자동으로 말아줌
1113
1355
  };
1114
1356
  }
1115
1357
  };
1116
1358
  return I.map(f);
1117
1359
  },
1118
- [N, g, h]
1119
- ), $ = _(
1120
- () => Z(P),
1121
- [Z, P, g]
1360
+ [g, C, l]
1361
+ ), S = _(
1362
+ () => h(T),
1363
+ [h, T, C]
1122
1364
  );
1123
- return B(() => {
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;
1365
+ return z(() => {
1366
+ we() && E(we());
1367
+ }, [E]), z(() => {
1368
+ a === "category" && o("");
1369
+ }, [a]), z(() => {
1370
+ if (!u || a !== "category") return;
1371
+ const P = ((f) => {
1372
+ const s = [], w = new Map(d.map((L) => [L.menuId, L]));
1373
+ let M = f;
1374
+ for (; M; ) {
1375
+ const L = w.get(M);
1376
+ if (!L) break;
1377
+ if (L.menuPrntId && L.menuPrntId !== "-" && L.menuPrntId !== "")
1378
+ s.push(L.menuPrntId), M = L.menuPrntId;
1137
1379
  else
1138
1380
  break;
1139
1381
  }
1140
- return S;
1141
- })(c);
1142
- k.length > 0 && l((f) => {
1143
- const S = /* @__PURE__ */ new Set([...f, ...k]);
1144
- return Array.from(S);
1382
+ return s;
1383
+ })(u);
1384
+ P.length > 0 && c((f) => {
1385
+ const s = /* @__PURE__ */ new Set([...f, ...P]);
1386
+ return Array.from(s);
1145
1387
  });
1146
- }, [c, s, p]), /* @__PURE__ */ C(
1147
- Vt,
1388
+ }, [u, a, d]), /* @__PURE__ */ b(
1389
+ Qt,
1148
1390
  {
1149
1391
  className: t.className.wrapper,
1150
- collapsed: t.collapsed || y,
1392
+ collapsed: t.collapsed || v,
1151
1393
  trigger: null,
1152
1394
  width: t.width || 230,
1153
1395
  children: [
@@ -1172,10 +1414,10 @@ const Dt = ({
1172
1414
  transition: "all 0.3s ease"
1173
1415
  },
1174
1416
  children: /* @__PURE__ */ e(
1175
- M,
1417
+ B,
1176
1418
  {
1177
1419
  type: "text",
1178
- icon: t.collapsed || y ? /* @__PURE__ */ e(st, {}) : /* @__PURE__ */ e(at, {}),
1420
+ icon: t.collapsed || v ? /* @__PURE__ */ e(mt, {}) : /* @__PURE__ */ e(ht, {}),
1179
1421
  style: {
1180
1422
  fontSize: "12px",
1181
1423
  color: "#787878",
@@ -1187,28 +1429,28 @@ const Dt = ({
1187
1429
  justifyContent: "center",
1188
1430
  borderRadius: "0 10px 10px 0"
1189
1431
  },
1190
- onClick: v
1432
+ onClick: N
1191
1433
  }
1192
1434
  )
1193
1435
  }
1194
1436
  ),
1195
- !(t.collapsed || y) && /* @__PURE__ */ e(
1437
+ !(t.collapsed || v) && /* @__PURE__ */ e(
1196
1438
  "div",
1197
1439
  {
1198
1440
  style: {
1199
1441
  padding: 10
1200
1442
  },
1201
1443
  children: /* @__PURE__ */ e(
1202
- We,
1444
+ Ve,
1203
1445
  {
1204
1446
  value: r,
1205
- options: m,
1206
- onSelect: d,
1447
+ options: x,
1448
+ onSelect: F,
1207
1449
  onSearch: o,
1208
1450
  style: { width: "100%" },
1209
1451
  allowClear: !0,
1210
1452
  children: /* @__PURE__ */ e(
1211
- oe,
1453
+ me,
1212
1454
  {
1213
1455
  className: t.className.search,
1214
1456
  placeholder: t.style.search.placeholder,
@@ -1242,7 +1484,7 @@ const Dt = ({
1242
1484
  )
1243
1485
  }
1244
1486
  ),
1245
- !(t.collapsed || y) && /* @__PURE__ */ e(
1487
+ !(t.collapsed || v) && /* @__PURE__ */ e(
1246
1488
  "div",
1247
1489
  {
1248
1490
  style: {
@@ -1251,18 +1493,18 @@ const Dt = ({
1251
1493
  marginBottom: "10px"
1252
1494
  },
1253
1495
  children: /* @__PURE__ */ e(
1254
- _e,
1496
+ Ue,
1255
1497
  {
1256
1498
  className: t.className.segmented.wrapper,
1257
1499
  options: [
1258
1500
  {
1259
- label: /* @__PURE__ */ C(V, { children: [
1501
+ label: /* @__PURE__ */ b(K, { children: [
1260
1502
  /* @__PURE__ */ e(
1261
1503
  "span",
1262
1504
  {
1263
1505
  className: t.className.segmented.item,
1264
1506
  style: { display: "flex", alignItems: "center" },
1265
- children: /* @__PURE__ */ C(
1507
+ children: /* @__PURE__ */ b(
1266
1508
  "svg",
1267
1509
  {
1268
1510
  xmlns: "http://www.w3.org/2000/svg",
@@ -1311,7 +1553,7 @@ const Dt = ({
1311
1553
  value: "category"
1312
1554
  },
1313
1555
  {
1314
- label: /* @__PURE__ */ C(V, { children: [
1556
+ label: /* @__PURE__ */ b(K, { children: [
1315
1557
  /* @__PURE__ */ e(
1316
1558
  "span",
1317
1559
  {
@@ -1343,9 +1585,9 @@ const Dt = ({
1343
1585
  value: "favorite"
1344
1586
  }
1345
1587
  ],
1346
- value: s,
1588
+ value: a,
1347
1589
  onChange: (I) => {
1348
- a(I);
1590
+ i(I);
1349
1591
  },
1350
1592
  style: {
1351
1593
  width: "100%"
@@ -1355,8 +1597,8 @@ const Dt = ({
1355
1597
  )
1356
1598
  }
1357
1599
  ),
1358
- /* @__PURE__ */ C("div", { className: t.className.sider.content, children: [
1359
- u && /* @__PURE__ */ C(
1600
+ /* @__PURE__ */ b("div", { className: t.className.sider.content, children: [
1601
+ m && /* @__PURE__ */ b(
1360
1602
  "div",
1361
1603
  {
1362
1604
  className: t.className.sider.loading,
@@ -1368,7 +1610,7 @@ const Dt = ({
1368
1610
  },
1369
1611
  children: [
1370
1612
  /* @__PURE__ */ e(
1371
- Ge,
1613
+ Ke,
1372
1614
  {
1373
1615
  theme: {
1374
1616
  components: {
@@ -1377,7 +1619,7 @@ const Dt = ({
1377
1619
  }
1378
1620
  }
1379
1621
  },
1380
- children: /* @__PURE__ */ e(q, { size: "default" })
1622
+ children: /* @__PURE__ */ e(re, { size: "default" })
1381
1623
  }
1382
1624
  ),
1383
1625
  /* @__PURE__ */ e(
@@ -1391,16 +1633,16 @@ const Dt = ({
1391
1633
  ]
1392
1634
  }
1393
1635
  ),
1394
- x && /* @__PURE__ */ C("div", { className: t.className.sider.error, children: [
1636
+ k && /* @__PURE__ */ b("div", { className: t.className.sider.error, children: [
1395
1637
  /* @__PURE__ */ e(
1396
- it,
1638
+ pt,
1397
1639
  {
1398
1640
  className: t.className.sider.errorIcon
1399
1641
  }
1400
1642
  ),
1401
1643
  /* @__PURE__ */ e("div", { className: t.className.sider.errorText, children: "메뉴 로드 실패" })
1402
1644
  ] }),
1403
- !u && !x && s === "category" && h.length === 0 && /* @__PURE__ */ e(
1645
+ !m && !k && a === "category" && l.length === 0 && /* @__PURE__ */ e(
1404
1646
  "div",
1405
1647
  {
1406
1648
  style: {
@@ -1412,7 +1654,7 @@ const Dt = ({
1412
1654
  children: "메뉴가 없습니다"
1413
1655
  }
1414
1656
  ),
1415
- !u && !x && s === "favorite" && $.length === 0 && /* @__PURE__ */ e(
1657
+ !m && !k && a === "favorite" && S.length === 0 && /* @__PURE__ */ e(
1416
1658
  "div",
1417
1659
  {
1418
1660
  style: {
@@ -1424,28 +1666,28 @@ const Dt = ({
1424
1666
  children: "즐겨찾기된 메뉴가 없습니다"
1425
1667
  }
1426
1668
  ),
1427
- !u && !x && s === "category" && h.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1428
- se,
1669
+ !m && !k && a === "category" && l.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1670
+ he,
1429
1671
  {
1430
1672
  theme: "light",
1431
1673
  mode: "inline",
1432
- items: W(h),
1674
+ items: V(l),
1433
1675
  className: t.className.sider.menu,
1434
- selectedKeys: [c || ""],
1435
- openKeys: b,
1436
- onOpenChange: l,
1437
- onClick: (I) => w(I.key)
1676
+ selectedKeys: [u || ""],
1677
+ openKeys: y,
1678
+ onOpenChange: c,
1679
+ onClick: (I) => j(I.key)
1438
1680
  }
1439
1681
  ) }),
1440
- !u && !x && s === "favorite" && $.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1441
- se,
1682
+ !m && !k && a === "favorite" && S.length > 0 && /* @__PURE__ */ e("div", { className: t.className.sider.menuContainer, children: /* @__PURE__ */ e(
1683
+ he,
1442
1684
  {
1443
1685
  theme: "light",
1444
1686
  mode: "inline",
1445
- items: $,
1687
+ items: S,
1446
1688
  className: t.className.sider.menu,
1447
- selectedKeys: [c || ""],
1448
- onClick: (I) => w(I.key)
1689
+ selectedKeys: [u || ""],
1690
+ onClick: (I) => j(I.key)
1449
1691
  }
1450
1692
  ) })
1451
1693
  ] })
@@ -1453,7 +1695,7 @@ const Dt = ({
1453
1695
  }
1454
1696
  );
1455
1697
  };
1456
- class Kt extends Ye {
1698
+ class Jt extends Je {
1457
1699
  constructor(t) {
1458
1700
  super(t), this.resetError = () => {
1459
1701
  this.setState({ hasError: !1, error: void 0, errorInfo: void 0 });
@@ -1469,7 +1711,7 @@ class Kt extends Ye {
1469
1711
  });
1470
1712
  }
1471
1713
  render() {
1472
- return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ C(
1714
+ return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ b(
1473
1715
  "div",
1474
1716
  {
1475
1717
  style: {
@@ -1483,17 +1725,17 @@ class Kt extends Ye {
1483
1725
  },
1484
1726
  children: [
1485
1727
  /* @__PURE__ */ e(
1486
- be,
1728
+ Ie,
1487
1729
  {
1488
1730
  status: "error",
1489
1731
  title: "컴포넌트 로딩 중 오류가 발생했습니다",
1490
1732
  subTitle: this.state.error ? `오류 내용: ${this.state.error.message}` : "알 수 없는 오류가 발생했습니다",
1491
1733
  extra: [
1492
1734
  /* @__PURE__ */ e(
1493
- M,
1735
+ B,
1494
1736
  {
1495
1737
  type: "primary",
1496
- icon: /* @__PURE__ */ e(we, {}),
1738
+ icon: /* @__PURE__ */ e(Ce, {}),
1497
1739
  onClick: this.resetError,
1498
1740
  style: { marginRight: 8 },
1499
1741
  children: "다시 시도"
@@ -1503,7 +1745,7 @@ class Kt extends Ye {
1503
1745
  ]
1504
1746
  }
1505
1747
  ),
1506
- this.state.error && /* @__PURE__ */ C(
1748
+ this.state.error && /* @__PURE__ */ b(
1507
1749
  "details",
1508
1750
  {
1509
1751
  style: {
@@ -1538,13 +1780,13 @@ class Kt extends Ye {
1538
1780
  ) : this.props.children;
1539
1781
  }
1540
1782
  }
1541
- const Ut = ({
1783
+ const en = ({
1542
1784
  isActive: n,
1543
1785
  instance: t,
1544
1786
  params: r
1545
1787
  }) => {
1546
- const { activeMenuId: o, closeTab: s } = F(), a = () => {
1547
- o && s(o);
1788
+ const { activeMenuId: o, closeTab: a } = O(), i = () => {
1789
+ o && a(o);
1548
1790
  };
1549
1791
  return t ? /* @__PURE__ */ e(
1550
1792
  "div",
@@ -1560,7 +1802,7 @@ const Ut = ({
1560
1802
  transition: "opacity 0.2s ease-in-out",
1561
1803
  pointerEvents: n ? "auto" : "none"
1562
1804
  },
1563
- children: /* @__PURE__ */ e(Kt, { children: /* @__PURE__ */ e(X, { fallback: null, children: t && ye(t, { params: r }) }) })
1805
+ children: /* @__PURE__ */ e(Jt, { children: /* @__PURE__ */ e(se, { fallback: null, children: t && Ne(t, { params: r }) }) })
1564
1806
  }
1565
1807
  ) : /* @__PURE__ */ e(
1566
1808
  "div",
@@ -1591,20 +1833,20 @@ const Ut = ({
1591
1833
  padding: 24
1592
1834
  },
1593
1835
  children: /* @__PURE__ */ e(
1594
- be,
1836
+ Ie,
1595
1837
  {
1596
- icon: /* @__PURE__ */ e(ut, { twoToneColor: "#69b1ff" }),
1838
+ icon: /* @__PURE__ */ e(yt, { twoToneColor: "#69b1ff" }),
1597
1839
  status: "warning",
1598
1840
  title: "등록된 메뉴 정보가 없거나 유효한 메뉴가 아닙니다.",
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: "탭 닫기" }) })
1841
+ subTitle: /* @__PURE__ */ e(Ye.Text, { type: "secondary", children: "자세한 내용은 관리자에게 문의바랍니다." }),
1842
+ extra: /* @__PURE__ */ e(Ze, { children: /* @__PURE__ */ e(B, { icon: /* @__PURE__ */ e(X, {}), onClick: i, children: "탭 닫기" }) })
1601
1843
  }
1602
1844
  )
1603
1845
  }
1604
1846
  )
1605
1847
  }
1606
1848
  );
1607
- }, Zt = ce(Ut), Yt = ({
1849
+ }, tn = be(en), nn = ({
1608
1850
  menuGubunCode: n = {
1609
1851
  mainMenu: "MAIN",
1610
1852
  subMenu: "SUB",
@@ -1614,87 +1856,87 @@ const Ut = ({
1614
1856
  style: r,
1615
1857
  routeMap: o
1616
1858
  }) => {
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, {});
1859
+ const { menuList: a, findMenuById: i, flatMenuList: y } = ae(), { activeMenuId: c } = O(), u = fe(), [v, p] = A([]), N = D(
1860
+ (g, d) => {
1861
+ if (g) {
1862
+ const C = oe[g];
1863
+ if (C)
1864
+ return /* @__PURE__ */ e(C, {});
1623
1865
  }
1624
- if (p)
1625
- switch (p) {
1866
+ if (d)
1867
+ switch (d) {
1626
1868
  case n.mainMenu:
1627
- return /* @__PURE__ */ e(Q.HomeOutlined, {});
1869
+ return /* @__PURE__ */ e(oe.HomeOutlined, {});
1628
1870
  default:
1629
1871
  return null;
1630
1872
  }
1631
1873
  return null;
1632
1874
  },
1633
1875
  [n]
1634
- ), h = D(
1635
- (N) => N.map((p) => {
1636
- const g = p.children && p.children.length === 1 && p.children[0].menuGbCd === n.program;
1876
+ ), l = D(
1877
+ (g) => g.map((d) => {
1878
+ const C = d.children && d.children.length === 1 && d.children[0].menuGbCd === n.program;
1637
1879
  return {
1638
- key: p.menuId,
1639
- label: p.menuNm,
1640
- icon: v(p.iconCd, p.menuGbCd),
1880
+ key: d.menuId,
1881
+ label: d.menuNm,
1882
+ icon: N(d.iconCd, d.menuGbCd),
1641
1883
  // children이 1개이고 program이면 드롭다운 없음, 2개 이상이면 드롭다운 표시
1642
- children: p.children && p.children.length > 0 && !g ? h(p.children) : void 0
1884
+ children: d.children && d.children.length > 0 && !C ? l(d.children) : void 0
1643
1885
  };
1644
1886
  }),
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);
1887
+ [N, n]
1888
+ ), m = _(() => l(a), [a, l]), k = D(
1889
+ (g) => {
1890
+ const d = i(g.key);
1891
+ if (d) {
1892
+ if (d.children && d.children.length === 1 && d.children[0].menuGbCd === n.program) {
1893
+ const C = d.children[0];
1894
+ let T = o?.[C.menuId] || C.scrnPath || "/";
1895
+ T === "/" ? T = "/main" : T.startsWith("/main") || (T = T.startsWith("/") ? `/main${T}` : `/main/${T}`), u(T);
1654
1896
  return;
1655
1897
  }
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);
1898
+ if (d.menuGbCd === n.program && d.scrnPath) {
1899
+ let C = o?.[d.menuId] || d.scrnPath || "/";
1900
+ C === "/" ? C = "/main" : C.startsWith("/main") || (C = C.startsWith("/") ? `/main${C}` : `/main/${C}`), u(C);
1659
1901
  return;
1660
1902
  }
1661
1903
  }
1662
1904
  },
1663
- [a, n, c, o]
1905
+ [i, n, u, o]
1664
1906
  );
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;
1907
+ return z(() => {
1908
+ if (!c || t !== "vertical") return;
1909
+ const d = ((C) => {
1910
+ const T = [], E = new Map(y.map((x) => [x.menuId, x]));
1911
+ let R = C;
1912
+ for (; R; ) {
1913
+ const x = E.get(R);
1914
+ if (!x) break;
1915
+ if (x.menuPrntId && x.menuPrntId !== "-" && x.menuPrntId !== "")
1916
+ T.push(x.menuPrntId), R = x.menuPrntId;
1675
1917
  else
1676
1918
  break;
1677
1919
  }
1678
- return P;
1679
- })(l);
1680
- p.length > 0 && i((g) => {
1681
- const P = /* @__PURE__ */ new Set([...g, ...p]);
1682
- return Array.from(P);
1920
+ return T;
1921
+ })(c);
1922
+ d.length > 0 && p((C) => {
1923
+ const T = /* @__PURE__ */ new Set([...C, ...d]);
1924
+ return Array.from(T);
1683
1925
  });
1684
- }, [l, t, b]), /* @__PURE__ */ e(
1685
- se,
1926
+ }, [c, t, y]), /* @__PURE__ */ e(
1927
+ he,
1686
1928
  {
1687
1929
  mode: t,
1688
1930
  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,
1931
+ items: m,
1932
+ selectedKeys: [c || ""],
1933
+ openKeys: t === "vertical" ? v : void 0,
1934
+ onOpenChange: t === "vertical" ? p : void 0,
1935
+ onClick: k,
1694
1936
  style: r
1695
1937
  }
1696
1938
  );
1697
- }, qt = () => /* @__PURE__ */ C(V, { children: [
1939
+ }, rn = () => /* @__PURE__ */ b(K, { children: [
1698
1940
  /* @__PURE__ */ e(
1699
1941
  "link",
1700
1942
  {
@@ -1704,62 +1946,62 @@ const Ut = ({
1704
1946
  }
1705
1947
  ),
1706
1948
  /* @__PURE__ */ e("div", { className: "LandingContainer-wrap", children: /* @__PURE__ */ e("div", { className: "inner", children: /* @__PURE__ */ e("div", { className: "content" }) }) })
1707
- ] }), Qt = (n, t) => {
1949
+ ] }), on = (n, t) => {
1708
1950
  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;
1951
+ const o = ((a) => {
1952
+ if (a.startsWith("/src/pages/views/popup/")) {
1953
+ const c = a + ".tsx";
1954
+ return console.log(`팝업 URL 변환: ${a} -> ${c}`), c;
1713
1955
  }
1714
- const b = `/src/pages/views/popup/${s.startsWith("/") ? s.substring(1) : s}.tsx`;
1715
- return console.log(`팝업 URL 변환: ${s} -> ${b}`), b;
1956
+ const y = `/src/pages/views/popup/${a.startsWith("/") ? a.substring(1) : a}.tsx`;
1957
+ return console.log(`팝업 URL 변환: ${a} -> ${y}`), y;
1716
1958
  })(n);
1717
1959
  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);
1960
+ }, sn = ({ popup: n, modules: t }) => {
1961
+ const [r, o] = A(null), [a, i] = A(!1), [y, c] = A(null), u = () => {
1962
+ console.log("PopupArea - handleClose:", n.popupId), ye.getState().closePopup(n.popupId);
1721
1963
  };
1722
- return B(() => {
1964
+ return z(() => {
1723
1965
  (async () => {
1724
- console.log("팝업 뷰 로드 시작:", n.popupUrl), a(!0), l(null);
1966
+ console.log("팝업 뷰 로드 시작:", n.popupUrl), i(!0), c(null);
1725
1967
  try {
1726
- const i = Qt(n.popupUrl, t);
1727
- if (!i) {
1728
- const u = `팝업 뷰를 찾을 수 없습니다: ${n.popupUrl}`;
1729
- console.error(u), l(u), a(!1);
1968
+ const p = on(n.popupUrl, t);
1969
+ if (!p) {
1970
+ const m = `팝업 뷰를 찾을 수 없습니다: ${n.popupUrl}`;
1971
+ console.error(m), c(m), i(!1);
1730
1972
  return;
1731
1973
  }
1732
1974
  console.log("팝업 뷰 모듈 로드 중...");
1733
- const v = await i();
1734
- console.log("팝업 뷰 모듈 로드 완료:", v);
1735
- const h = v.default;
1736
- if (console.log("팝업 뷰 컴포넌트:", h), !h)
1975
+ const N = await p();
1976
+ console.log("팝업 뷰 모듈 로드 완료:", N);
1977
+ const l = N.default;
1978
+ if (console.log("팝업 뷰 컴포넌트:", l), !l)
1737
1979
  throw new Error("팝업 뷰 컴포넌트를 찾을 수 없습니다");
1738
- o(() => h), console.log("팝업 뷰 설정 완료");
1739
- } catch (i) {
1740
- console.error("팝업 뷰 로드 실패:", i), l(i instanceof Error ? i.message : "팝업 뷰 로드 실패");
1980
+ o(() => l), console.log("팝업 뷰 설정 완료");
1981
+ } catch (p) {
1982
+ console.error("팝업 뷰 로드 실패:", p), c(p instanceof Error ? p.message : "팝업 뷰 로드 실패");
1741
1983
  } finally {
1742
- a(!1);
1984
+ i(!1);
1743
1985
  }
1744
1986
  })();
1745
- }, [n.popupUrl]), s ? /* @__PURE__ */ C("div", { className: "popup-loading", children: [
1746
- /* @__PURE__ */ e(q, { size: "large" }),
1987
+ }, [n.popupUrl]), a ? /* @__PURE__ */ b("div", { className: "popup-loading", children: [
1988
+ /* @__PURE__ */ e(re, { size: "large" }),
1747
1989
  /* @__PURE__ */ e("p", { children: "팝업을 로드하는 중..." })
1748
- ] }) : b ? /* @__PURE__ */ C("div", { className: "popup-error", children: [
1749
- /* @__PURE__ */ e(ne, { description: b, image: ne.PRESENTED_IMAGE_SIMPLE }),
1990
+ ] }) : y ? /* @__PURE__ */ b("div", { className: "popup-error", children: [
1991
+ /* @__PURE__ */ e(de, { description: y, image: de.PRESENTED_IMAGE_SIMPLE }),
1750
1992
  /* @__PURE__ */ e(
1751
- M,
1993
+ B,
1752
1994
  {
1753
- icon: /* @__PURE__ */ e(we, {}),
1995
+ icon: /* @__PURE__ */ e(Ce, {}),
1754
1996
  onClick: () => window.location.reload(),
1755
1997
  children: "다시 시도"
1756
1998
  }
1757
1999
  )
1758
2000
  ] }) : r ? /* @__PURE__ */ e(
1759
- X,
2001
+ se,
1760
2002
  {
1761
- fallback: /* @__PURE__ */ C("div", { className: "popup-loading", children: [
1762
- /* @__PURE__ */ e(q, { size: "large" }),
2003
+ fallback: /* @__PURE__ */ b("div", { className: "popup-loading", children: [
2004
+ /* @__PURE__ */ e(re, { size: "large" }),
1763
2005
  /* @__PURE__ */ e("p", { children: "컴포넌트를 로드하는 중..." })
1764
2006
  ] }),
1765
2007
  children: /* @__PURE__ */ e(
@@ -1767,77 +2009,77 @@ const Ut = ({
1767
2009
  {
1768
2010
  popup: {
1769
2011
  ...n,
1770
- close: c
2012
+ close: u
1771
2013
  // popup 객체에 close 이벤트 추가
1772
2014
  },
1773
- onClose: c
2015
+ onClose: u
1774
2016
  }
1775
2017
  )
1776
2018
  }
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) => {
2019
+ ) : /* @__PURE__ */ e("div", { className: "popup-empty", children: /* @__PURE__ */ e(de, { description: "팝업 내용을 불러올 수 없습니다." }) });
2020
+ }, an = ({ modules: n }) => {
2021
+ const { popups: t } = ye();
2022
+ return t.length === 0 ? null : /* @__PURE__ */ e(K, { children: t.map((r) => {
1781
2023
  if (r.isLocal || r.popupCode.startsWith("CORE_"))
1782
2024
  return null;
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",
2025
+ const o = r.config || {}, a = o.width || r.width || 800, i = o.height || r.height || 600, y = o.title || r.popupTitle, c = r.buttonList?.map((u, v) => ({
2026
+ key: u.btnId || `btn_${v}`,
2027
+ text: u.btnNm,
2028
+ type: u.btnId === "CLOSE" ? "default" : "primary",
2029
+ disabled: u.enblYn !== "Y",
1788
2030
  danger: !1
1789
2031
  })) || [];
1790
2032
  return console.log("팝업 렌더링:", {
1791
2033
  popupId: r.popupId,
1792
2034
  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}`);
2035
+ title: y,
2036
+ width: a,
2037
+ height: i,
2038
+ buttons: c
2039
+ }), /* @__PURE__ */ e(ge, { children: /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(sn, { popup: r, modules: n }) }, r.popupId) }, `sbp-${r.popupId}`);
1798
2040
  }) });
1799
- }, Ie = () => {
1800
- const { popups: n, closePopup: t } = de();
1801
- return /* @__PURE__ */ e(V, { children: n.map((r) => {
2041
+ }, Me = () => {
2042
+ const { popups: n, closePopup: t } = ye();
2043
+ return /* @__PURE__ */ e(K, { children: n.map((r) => {
1802
2044
  if (!(r.isLocal || r.popupCode.startsWith("CORE_"))) return null;
1803
- const o = Ot[r.popupCode];
2045
+ const o = $t[r.popupCode];
1804
2046
  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}`);
2047
+ const a = o.component;
2048
+ return /* @__PURE__ */ e(ge, { children: /* @__PURE__ */ e(se, { fallback: null, children: /* @__PURE__ */ e(a, { popup: r, onClose: () => t(r.popupId) }) }, r.popupId) }, `sbp-${r.popupId}`);
1807
2049
  }) });
1808
- }, en = (n) => ({
2050
+ }, ln = (n) => ({
1809
2051
  position: "absolute",
1810
2052
  inset: 0,
1811
2053
  visibility: n ? "visible" : "hidden",
1812
2054
  opacity: n ? 1 : 0,
1813
2055
  transition: "opacity 0.2s ease-in-out",
1814
2056
  pointerEvents: n ? "auto" : "none"
1815
- }), tn = ({ once: n = !0 }) => {
1816
- const { lock: t } = Me(), r = U(!1);
1817
- return B(() => {
2057
+ }), cn = ({ once: n = !0 }) => {
2058
+ const { lock: t } = Ee(), r = Y(!1);
2059
+ return z(() => {
1818
2060
  n && r.current || (r.current = !0, t());
1819
2061
  }, [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,
2062
+ }, dn = ({ isActive: n, flagged: t, tabKey: r, onUnlock: o, children: a }) => {
2063
+ const i = Y(null), [y, c] = A(!1), u = D((p) => {
2064
+ i.current = p, c(!!p);
2065
+ }, []), v = ln(n);
2066
+ return /* @__PURE__ */ e("div", { ref: u, style: v, children: y ? /* @__PURE__ */ b(
2067
+ Oe,
1826
2068
  {
1827
2069
  idleMs: Number.POSITIVE_INFINITY,
1828
2070
  persistLocked: !1,
1829
2071
  overlayScope: "scoped",
1830
2072
  overlayPosition: "absolute",
1831
- eventTarget: a.current,
2073
+ eventTarget: i.current,
1832
2074
  overlayId: `tab-overlay-${r}`,
1833
2075
  onUnlock: async () => (o(), !0),
1834
2076
  children: [
1835
- n && t ? /* @__PURE__ */ e(tn, { once: !0 }) : null,
1836
- s
2077
+ n && t ? /* @__PURE__ */ e(cn, { once: !0 }) : null,
2078
+ a
1837
2079
  ]
1838
2080
  }
1839
- ) : s });
1840
- }, Cn = ({
2081
+ ) : a });
2082
+ }, Pn = ({
1841
2083
  config: n = {},
1842
2084
  modules: t = {
1843
2085
  view: {
@@ -1848,38 +2090,45 @@ const Ut = ({
1848
2090
  }
1849
2091
  }
1850
2092
  }) => {
1851
- const r = U(
2093
+ const r = Y(
1852
2094
  /* @__PURE__ */ new Map()
1853
2095
  ), {
1854
2096
  tabs: o,
1855
- tabParams: s,
1856
- activeMenuId: a,
1857
- tabProtectFlag: b,
1858
- clearProtectFlagForKey: l
1859
- } = F(), { enableProtectWrapper: c } = Ce(), y = D(
1860
- (i) => {
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
2097
+ tabParams: a,
2098
+ activeMenuId: i,
2099
+ tabProtectFlag: y,
2100
+ refreshTabKey: c,
2101
+ clearProtectFlagForKey: u
2102
+ } = O(), { enableProtectWrapper: v } = Pe(), p = D(
2103
+ (l) => {
2104
+ const m = r.current.get(l.key);
2105
+ if (m) return m;
2106
+ const k = l.gubun === "M" ? `${t.view.path}${l.menuItem?.scrnPath}.tsx` : `${t.view.path}${l.componentItem?.scrnPath}.tsx`;
2107
+ let g = t.view?.glob?.[k];
2108
+ if (!g && typeof import.meta < "u" && typeof import.meta.glob == "function" && (g = (/* @__PURE__ */ Object.assign({}))[k]), g) {
2109
+ const d = W(
2110
+ g
1868
2111
  );
1869
- return r.current.set(i.key, x), x;
2112
+ return r.current.set(l.key, d), d;
1870
2113
  }
1871
2114
  return null;
1872
2115
  },
1873
2116
  [t.view?.glob]
1874
- );
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(
2117
+ ), N = Y({});
2118
+ return z(() => {
2119
+ const l = N.current, m = c;
2120
+ Object.keys(m).forEach((k) => {
2121
+ const g = l[k], d = m[k];
2122
+ g !== d && r.current.delete(k);
2123
+ }), N.current = { ...m };
2124
+ }, [c]), /* @__PURE__ */ b(Z, { className: "main-layout", children: [
2125
+ /* @__PURE__ */ e(Te, { config: n?.header }),
2126
+ /* @__PURE__ */ b(Z, { children: [
2127
+ /* @__PURE__ */ e(Xt, { config: n?.sidebar }),
2128
+ /* @__PURE__ */ b("div", { className: "content-container", children: [
2129
+ /* @__PURE__ */ e(qt, { config: n?.menuTab }),
2130
+ /* @__PURE__ */ b(Se, { config: n?.content, children: [
2131
+ /* @__PURE__ */ e("div", { className: "view-container", children: /* @__PURE__ */ b(
1883
2132
  "div",
1884
2133
  {
1885
2134
  style: {
@@ -1888,40 +2137,40 @@ const Ut = ({
1888
2137
  height: "100%"
1889
2138
  },
1890
2139
  children: [
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,
2140
+ o.map((l) => {
2141
+ const m = p(l), k = i === l.key, g = !!y?.[l.key], d = a[l.key] || {}, C = c[l.key], T = C !== void 0 ? `${l.key}-${C}` : l.key, E = /* @__PURE__ */ e(
2142
+ tn,
1894
2143
  {
1895
- isActive: h,
1896
- instance: v || void 0,
1897
- params: x
2144
+ isActive: k,
2145
+ instance: m || void 0,
2146
+ params: d
1898
2147
  },
1899
- i.key
2148
+ T
1900
2149
  );
1901
- return /* @__PURE__ */ e(ie, { children: c ? /* @__PURE__ */ e(
1902
- nn,
2150
+ return /* @__PURE__ */ e(ge, { children: v ? /* @__PURE__ */ e(
2151
+ dn,
1903
2152
  {
1904
- isActive: h,
1905
- flagged: u,
1906
- tabKey: i.key,
1907
- onUnlock: () => l(i.key),
1908
- children: N
2153
+ isActive: k,
2154
+ flagged: g,
2155
+ tabKey: l.key,
2156
+ onUnlock: () => u(l.key),
2157
+ children: E
1909
2158
  },
1910
- i.key
1911
- ) : N }, `sbp-${i.key}`);
2159
+ l.key
2160
+ ) : E }, `sbp-${l.key}`);
1912
2161
  }),
1913
- (!a || o.length === 0) && /* @__PURE__ */ e(qt, {})
2162
+ (!i || o.length === 0) && /* @__PURE__ */ e(rn, {})
1914
2163
  ]
1915
2164
  }
1916
2165
  ) }),
1917
- /* @__PURE__ */ e(Ie, {}),
1918
- /* @__PURE__ */ e(Jt, { modules: t?.popup })
2166
+ /* @__PURE__ */ e(Me, {}),
2167
+ /* @__PURE__ */ e(an, { modules: t?.popup })
1919
2168
  ] })
1920
2169
  ] })
1921
2170
  ] }),
1922
- (n?.quickService?.visible ?? !0) && /* @__PURE__ */ e(Re, {})
2171
+ (n?.quickService?.visible ?? !0) && /* @__PURE__ */ e(We, {})
1923
2172
  ] });
1924
- }, rn = ({
2173
+ }, un = ({
1925
2174
  children: n,
1926
2175
  menuGubunCode: t = {
1927
2176
  mainMenu: "CMPRGRM",
@@ -1931,55 +2180,55 @@ const Ut = ({
1931
2180
  routeMap: r,
1932
2181
  routes: o
1933
2182
  }) => {
1934
- const s = Ee(), a = le(), { flatMenuList: b, findMenuById: l } = J(), c = _(() => {
1935
- const i = s.pathname, v = i.replace(/^\/main/, "") || "/";
2183
+ const a = De(), i = fe(), { flatMenuList: y, findMenuById: c } = ae(), u = _(() => {
2184
+ const p = a.pathname, N = p.replace(/^\/main/, "") || "/";
1936
2185
  if (r) {
1937
- const h = Object.keys(r).find(
1938
- (x) => r[x] === i
2186
+ const l = Object.keys(r).find(
2187
+ (k) => r[k] === p
1939
2188
  );
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);
2189
+ if (l)
2190
+ return c(l);
2191
+ const m = Object.keys(r).find((k) => (r[k].replace(/^\/main/, "") || "/") === N);
2192
+ if (m)
2193
+ return c(m);
1945
2194
  }
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)
2195
+ return y.find(
2196
+ (l) => l.menuGbCd === t.program && l.scrnPath && (l.scrnPath === N || l.scrnPath === p || p.endsWith(l.scrnPath) || N === l.scrnPath)
1948
2197
  );
1949
2198
  }, [
1950
- s.pathname,
1951
- b,
2199
+ a.pathname,
2200
+ y,
1952
2201
  t.program,
1953
2202
  r,
1954
- l
1955
- ]), y = _(() => {
1956
- if (!c)
2203
+ c
2204
+ ]), v = _(() => {
2205
+ if (!u)
1957
2206
  return [];
1958
- const i = [], v = (u) => {
1959
- if (!u || !u.menuPrntId || u.menuPrntId === "-")
2207
+ const p = [], N = (m) => {
2208
+ if (!m || !m.menuPrntId || m.menuPrntId === "-")
1960
2209
  return [];
1961
- const x = l(u.menuPrntId);
1962
- return x ? [...v(x), x] : [];
2210
+ const k = c(m.menuPrntId);
2211
+ return k ? [...N(k), k] : [];
1963
2212
  };
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}`
2213
+ return N(u).forEach((m) => {
2214
+ if (m.menuGbCd === t.mainMenu || m.menuGbCd === t.subMenu) {
2215
+ let k;
2216
+ if (r && m.menuId && (k = r[m.menuId]), !k && o && m.scrnPath) {
2217
+ const g = m.scrnPath.startsWith("/") ? m.scrnPath : `/${m.scrnPath}`, d = Object.keys(o).find(
2218
+ (C) => C === g || C === `/main${g}`
1970
2219
  );
1971
- p && (x = p.startsWith("/main") ? p : `/main${p.startsWith("/") ? p : `/${p}`}`);
2220
+ d && (k = d.startsWith("/main") ? d : `/main${d.startsWith("/") ? d : `/${d}`}`);
1972
2221
  }
1973
- i.push({
1974
- title: u.menuNm,
1975
- onClick: x ? () => a(x) : void 0
2222
+ p.push({
2223
+ title: m.menuNm,
2224
+ onClick: k ? () => i(k) : void 0
1976
2225
  });
1977
2226
  }
1978
- }), i.push({
1979
- title: c.menuNm
1980
- }), i;
1981
- }, [c, t, a, l]);
1982
- return /* @__PURE__ */ C(
2227
+ }), p.push({
2228
+ title: u.menuNm
2229
+ }), p;
2230
+ }, [u, t, i, c]);
2231
+ return /* @__PURE__ */ b(
1983
2232
  "div",
1984
2233
  {
1985
2234
  style: {
@@ -1988,10 +2237,10 @@ const Ut = ({
1988
2237
  },
1989
2238
  children: [
1990
2239
  /* @__PURE__ */ e(
1991
- je,
2240
+ qe,
1992
2241
  {
1993
2242
  separator: ">",
1994
- items: y,
2243
+ items: v,
1995
2244
  style: { marginBottom: "16px" }
1996
2245
  }
1997
2246
  ),
@@ -1999,30 +2248,30 @@ const Ut = ({
1999
2248
  ]
2000
2249
  }
2001
2250
  );
2002
- }, vn = ({ config: n = {} }) => {
2003
- const t = n?.header?.menu, r = t?.visible !== !1, o = t?.routes, s = _(() => {
2251
+ }, Sn = ({ config: n = {} }) => {
2252
+ const t = n?.header?.menu, r = t?.visible !== !1, o = t?.routes, a = _(() => {
2004
2253
  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/, "");
2254
+ const i = {}, { flatMenuList: y } = ae.getState();
2255
+ return y.forEach((c) => {
2256
+ if (c.menuGbCd === t?.menuGubunCode?.program && c.scrnPath) {
2257
+ const u = c.scrnPath.startsWith("/") ? c.scrnPath : `/${c.scrnPath}`, v = Object.keys(o).find((p) => {
2258
+ const N = p === "/" ? "/" : p.startsWith("/") ? p : `/${p}`;
2259
+ return N === u || N === `/main${u}` || u === N.replace(/^\/main/, "");
2011
2260
  });
2012
- if (y) {
2013
- const i = y === "/" ? "/main" : y.startsWith("/main") ? y : `/main${y.startsWith("/") ? y : `/${y}`}`;
2014
- a[l.menuId] = i;
2261
+ if (v) {
2262
+ const p = v === "/" ? "/main" : v.startsWith("/main") ? v : `/main${v.startsWith("/") ? v : `/${v}`}`;
2263
+ i[c.menuId] = p;
2015
2264
  }
2016
2265
  }
2017
- }), a;
2266
+ }), i;
2018
2267
  }, [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,
2268
+ return /* @__PURE__ */ b(Z, { className: "main-layout", children: [
2269
+ /* @__PURE__ */ e(Te, { config: n?.header, children: r && /* @__PURE__ */ e(
2270
+ nn,
2022
2271
  {
2023
2272
  menuGubunCode: t?.menuGubunCode,
2024
2273
  mode: t?.style?.mode || "horizontal",
2025
- routeMap: s,
2274
+ routeMap: a,
2026
2275
  style: {
2027
2276
  border: "none",
2028
2277
  backgroundColor: "transparent",
@@ -2032,7 +2281,7 @@ const Ut = ({
2032
2281
  }
2033
2282
  }
2034
2283
  ) }),
2035
- /* @__PURE__ */ e("div", { className: "content-container", children: /* @__PURE__ */ C(xe, { config: n?.content, children: [
2284
+ /* @__PURE__ */ e("div", { className: "content-container", children: /* @__PURE__ */ b(Se, { config: n?.content, children: [
2036
2285
  /* @__PURE__ */ e("div", { className: "view-container", children: /* @__PURE__ */ e(
2037
2286
  "div",
2038
2287
  {
@@ -2041,65 +2290,65 @@ const Ut = ({
2041
2290
  width: "100%",
2042
2291
  height: "100%"
2043
2292
  },
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(/^\//, "") || "";
2293
+ children: /* @__PURE__ */ e(se, { fallback: /* @__PURE__ */ e("div", { children: "Loading..." }), children: /* @__PURE__ */ e(ke, { children: Object.entries(o || {}).map(([i, y]) => {
2294
+ const c = i === "/" ? "" : i.replace(/^\/main/, "").replace(/^\//, "") || "";
2046
2295
  return /* @__PURE__ */ e(
2047
- Y,
2296
+ te,
2048
2297
  {
2049
- path: l,
2298
+ path: c,
2050
2299
  element: /* @__PURE__ */ e(
2051
- rn,
2300
+ un,
2052
2301
  {
2053
2302
  menuGubunCode: t?.menuGubunCode,
2054
- routeMap: s,
2303
+ routeMap: a,
2055
2304
  routes: o,
2056
- children: /* @__PURE__ */ e(b, {})
2305
+ children: /* @__PURE__ */ e(y, {})
2057
2306
  }
2058
2307
  )
2059
2308
  },
2060
- a
2309
+ i
2061
2310
  );
2062
2311
  }) }) })
2063
2312
  }
2064
2313
  ) }),
2065
- /* @__PURE__ */ e(Ie, {})
2314
+ /* @__PURE__ */ e(Me, {})
2066
2315
  ] }) })
2067
2316
  ] });
2068
2317
  };
2069
- function wn({
2318
+ function Tn({
2070
2319
  config: n,
2071
2320
  ui: t,
2072
2321
  navigate: r
2073
2322
  }) {
2074
- const { loading: o, capsOn: s, prefills: a, onKeyDown: b, doLogin: l } = Xe(n), c = (y) => l(y, r);
2075
- return B(() => {
2076
- Je.getState().fetchSystemMap();
2077
- }, []), /* @__PURE__ */ e(V, { children: t({ onSubmit: c, loading: o, capsOn: s, onKeyDown: b, prefills: a }) });
2323
+ const { loading: o, capsOn: a, prefills: i, onKeyDown: y, doLogin: c } = nt(n), u = (v) => c(v, r);
2324
+ return z(() => {
2325
+ rt.getState().fetchSystemMap();
2326
+ }, []), /* @__PURE__ */ e(K, { children: t({ onSubmit: u, loading: o, capsOn: a, onKeyDown: y, prefills: i }) });
2078
2327
  }
2079
- function xn({
2328
+ function Mn({
2080
2329
  onSubmit: n,
2081
2330
  loading: t,
2082
2331
  capsOn: r,
2083
2332
  onKeyDown: o,
2084
- prefills: s,
2085
- labels: a = {
2333
+ prefills: a,
2334
+ labels: i = {
2086
2335
  id: "ID 혹은 사번",
2087
2336
  pw: "비밀번호",
2088
2337
  remember: "Remember me",
2089
2338
  login: "로그인"
2090
2339
  },
2091
- header: b,
2092
- footer: l
2340
+ header: y,
2341
+ footer: c
2093
2342
  }) {
2094
- const [c] = H.useForm();
2095
- return B(() => {
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" }),
2343
+ const [u] = U.useForm();
2344
+ return z(() => {
2345
+ a && (a.id || a.pswr) && u.setFieldsValue({ id: a.id, pswr: a.pswr });
2346
+ }, [a, u]), /* @__PURE__ */ e("div", { className: "login-main", children: /* @__PURE__ */ b("div", { className: "login_wrap", children: [
2347
+ y || /* @__PURE__ */ e("div", { className: "logo_box" }),
2099
2348
  /* @__PURE__ */ e("div", { className: "login_title" }),
2100
- /* @__PURE__ */ e(H, { form: c, onFinish: n, className: "login-form", children: /* @__PURE__ */ C(Ke, { vertical: !0, children: [
2349
+ /* @__PURE__ */ e(U, { form: u, onFinish: n, className: "login-form", children: /* @__PURE__ */ b(ne, { vertical: !0, children: [
2101
2350
  /* @__PURE__ */ e(
2102
- H.Item,
2351
+ U.Item,
2103
2352
  {
2104
2353
  name: "id",
2105
2354
  rules: [
@@ -2109,47 +2358,47 @@ function xn({
2109
2358
  message: "아이디는 공백이 들어갈 수 없습니다."
2110
2359
  }
2111
2360
  ],
2112
- children: /* @__PURE__ */ e(oe, { allowClear: !0, placeholder: a.id, onKeyDown: o })
2361
+ children: /* @__PURE__ */ e(me, { allowClear: !0, placeholder: i.id, onKeyDown: o })
2113
2362
  }
2114
2363
  ),
2115
2364
  /* @__PURE__ */ e(
2116
- H.Item,
2365
+ U.Item,
2117
2366
  {
2118
2367
  name: "pswr",
2119
2368
  rules: [{ required: !0, message: "비밀번호를 입력하세요." }],
2120
2369
  children: /* @__PURE__ */ e(
2121
- oe.Password,
2370
+ me.Password,
2122
2371
  {
2123
2372
  allowClear: !0,
2124
- placeholder: a.pw,
2373
+ placeholder: i.pw,
2125
2374
  onKeyDown: o
2126
2375
  }
2127
2376
  )
2128
2377
  }
2129
2378
  ),
2130
- /* @__PURE__ */ e(H.Item, { name: "remember", valuePropName: "checked", children: /* @__PURE__ */ e(Ue, { children: a.remember }) }),
2379
+ /* @__PURE__ */ e(U.Item, { name: "remember", valuePropName: "checked", children: /* @__PURE__ */ e(Qe, { children: i.remember }) }),
2131
2380
  /* @__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 }) })
2381
+ /* @__PURE__ */ e(U.Item, { children: /* @__PURE__ */ e(B, { type: "primary", htmlType: "submit", loading: t, block: !0, children: i.login }) })
2133
2382
  ] }) }),
2134
- l
2383
+ c
2135
2384
  ] }) });
2136
2385
  }
2137
2386
  export {
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
2387
+ Nn as A,
2388
+ Pn as B,
2389
+ tn as C,
2390
+ Mn as D,
2391
+ nn as H,
2392
+ In as L,
2393
+ an as P,
2394
+ Sn as a,
2395
+ Tn as b,
2396
+ rn as c,
2397
+ Se as d,
2398
+ Te as e,
2399
+ qt as f,
2400
+ Xt as g,
2401
+ un as h,
2402
+ dn as i,
2403
+ $t as l
2155
2404
  };