@bwg-ui/core 1.1.6 → 1.1.8

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 (104) hide show
  1. package/README.md +1 -1
  2. package/dist/chunks/BwgLargeUploader-1yDku10l.cjs +3 -0
  3. package/dist/chunks/BwgLargeUploader-1yDku10l.cjs.map +1 -0
  4. package/dist/chunks/{BwgLargeUploader-CZllyq7K.js → BwgLargeUploader-DsaIHpYz.js} +311 -297
  5. package/dist/chunks/BwgLargeUploader-DsaIHpYz.js.map +1 -0
  6. package/dist/chunks/LoadingOverlay-CAO6_FuF.js +29 -0
  7. package/dist/chunks/LoadingOverlay-CAO6_FuF.js.map +1 -0
  8. package/dist/chunks/LoadingOverlay-NX9Mo_6n.cjs +2 -0
  9. package/dist/chunks/LoadingOverlay-NX9Mo_6n.cjs.map +1 -0
  10. package/dist/chunks/{PublicLayout-BiTPwkVq.cjs → PublicLayout-3v46YZdi.cjs} +2 -2
  11. package/dist/chunks/{PublicLayout-BiTPwkVq.cjs.map → PublicLayout-3v46YZdi.cjs.map} +1 -1
  12. package/dist/chunks/{PublicLayout-g9WMtoZ0.js → PublicLayout-B4wGo0ut.js} +2 -2
  13. package/dist/chunks/{PublicLayout-g9WMtoZ0.js.map → PublicLayout-B4wGo0ut.js.map} +1 -1
  14. package/dist/chunks/{SSOHandler-Bu3v95k0.js → SSOHandler-B5rmYk8s.js} +2565 -2568
  15. package/dist/chunks/SSOHandler-B5rmYk8s.js.map +1 -0
  16. package/dist/chunks/SSOHandler-DjL0sH7k.cjs +184 -0
  17. package/dist/chunks/SSOHandler-DjL0sH7k.cjs.map +1 -0
  18. package/dist/chunks/ScreenProtectContext-3my4PHFa.js +154 -0
  19. package/dist/chunks/ScreenProtectContext-3my4PHFa.js.map +1 -0
  20. package/dist/chunks/ScreenProtectContext-CVuXrJm6.cjs +2 -0
  21. package/dist/chunks/ScreenProtectContext-CVuXrJm6.cjs.map +1 -0
  22. package/dist/chunks/{UtilsContext-CSgz9o2Z.js → UtilsContext-BKUZmmKx.js} +2 -2
  23. package/dist/chunks/{UtilsContext-CSgz9o2Z.js.map → UtilsContext-BKUZmmKx.js.map} +1 -1
  24. package/dist/chunks/{UtilsContext-5l7yFRQI.cjs → UtilsContext-DczQBfFi.cjs} +2 -2
  25. package/dist/chunks/{UtilsContext-5l7yFRQI.cjs.map → UtilsContext-DczQBfFi.cjs.map} +1 -1
  26. package/dist/chunks/{commonUtils-BV6WFv-z.js → commonUtils-Cvx6_eK2.js} +24 -23
  27. package/dist/chunks/commonUtils-Cvx6_eK2.js.map +1 -0
  28. package/dist/chunks/commonUtils-DaFg0y7C.cjs +2 -0
  29. package/dist/chunks/commonUtils-DaFg0y7C.cjs.map +1 -0
  30. package/dist/chunks/menuViewStore-BJak0NMm.cjs +3 -0
  31. package/dist/chunks/menuViewStore-BJak0NMm.cjs.map +1 -0
  32. package/dist/chunks/menuViewStore-BwR3vgPM.js +339 -0
  33. package/dist/chunks/menuViewStore-BwR3vgPM.js.map +1 -0
  34. package/dist/components/common/BwgButtonGroup.d.ts +2 -2
  35. package/dist/components/common/BwgButtonGroup.d.ts.map +1 -1
  36. package/dist/components/common/BwgTitleBox.d.ts +2 -2
  37. package/dist/components/common/BwgTitleBox.d.ts.map +1 -1
  38. package/dist/components/common/BwgView.d.ts.map +1 -1
  39. package/dist/components/common/QuickServiceToggle.d.ts.map +1 -1
  40. package/dist/components/common/index.cjs +1 -1
  41. package/dist/components/common/index.js +1 -1
  42. package/dist/components/core/BwgForm.d.ts.map +1 -1
  43. package/dist/components/core/BwgUploader.d.ts +5 -0
  44. package/dist/components/core/BwgUploader.d.ts.map +1 -1
  45. package/dist/components/core/index.cjs +1 -1
  46. package/dist/components/core/index.js +1 -1
  47. package/dist/components/layout/LoadingOverlay.d.ts +5 -0
  48. package/dist/components/layout/LoadingOverlay.d.ts.map +1 -0
  49. package/dist/components/layout/index.cjs +1 -1
  50. package/dist/components/layout/index.d.ts +1 -0
  51. package/dist/components/layout/index.d.ts.map +1 -1
  52. package/dist/components/layout/index.js +3 -1
  53. package/dist/components/layout/index.js.map +1 -1
  54. package/dist/index.cjs +1 -1
  55. package/dist/index.js +295 -291
  56. package/dist/index.js.map +1 -1
  57. package/dist/provider/contexts/ScreenProtectContext.d.ts +9 -4
  58. package/dist/provider/contexts/ScreenProtectContext.d.ts.map +1 -1
  59. package/dist/provider/hooks/index.d.ts +0 -1
  60. package/dist/provider/hooks/index.d.ts.map +1 -1
  61. package/dist/provider/index.cjs +1 -1
  62. package/dist/provider/index.js +2 -2
  63. package/dist/public/realgrid/css/realgrid-style-custom.css +65 -60
  64. package/dist/stores/favoriteStore.d.ts +1 -1
  65. package/dist/stores/favoriteStore.d.ts.map +1 -1
  66. package/dist/stores/index.cjs +1 -1
  67. package/dist/stores/index.cjs.map +1 -1
  68. package/dist/stores/index.d.ts +34 -3
  69. package/dist/stores/index.d.ts.map +1 -1
  70. package/dist/stores/index.js +17 -15
  71. package/dist/stores/index.js.map +1 -1
  72. package/dist/stores/menuModelStore.d.ts +36 -0
  73. package/dist/stores/menuModelStore.d.ts.map +1 -0
  74. package/dist/stores/menuViewStore.d.ts +31 -0
  75. package/dist/stores/menuViewStore.d.ts.map +1 -0
  76. package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
  77. package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
  78. package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
  79. package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
  80. package/dist/utils/index.cjs +1 -1
  81. package/dist/utils/index.js +1 -1
  82. package/package.json +10 -4
  83. package/scripts/gen-component-registry.js +138 -0
  84. package/dist/chunks/BwgLargeUploader-CZllyq7K.js.map +0 -1
  85. package/dist/chunks/BwgLargeUploader-xAjj4TQ1.cjs +0 -3
  86. package/dist/chunks/BwgLargeUploader-xAjj4TQ1.cjs.map +0 -1
  87. package/dist/chunks/SSOHandler-Bu3v95k0.js.map +0 -1
  88. package/dist/chunks/SSOHandler-kghWABfM.cjs +0 -184
  89. package/dist/chunks/SSOHandler-kghWABfM.cjs.map +0 -1
  90. package/dist/chunks/ScreenProtectContext-ofv2QgMp.cjs +0 -2
  91. package/dist/chunks/ScreenProtectContext-ofv2QgMp.cjs.map +0 -1
  92. package/dist/chunks/ScreenProtectContext-zByHldrr.js +0 -115
  93. package/dist/chunks/ScreenProtectContext-zByHldrr.js.map +0 -1
  94. package/dist/chunks/commonUtils-BV6WFv-z.js.map +0 -1
  95. package/dist/chunks/commonUtils-L9Jgc5y-.cjs +0 -2
  96. package/dist/chunks/commonUtils-L9Jgc5y-.cjs.map +0 -1
  97. package/dist/chunks/menuStore-2zsN-PRt.js +0 -266
  98. package/dist/chunks/menuStore-2zsN-PRt.js.map +0 -1
  99. package/dist/chunks/menuStore-D7zl2c89.cjs +0 -2
  100. package/dist/chunks/menuStore-D7zl2c89.cjs.map +0 -1
  101. package/dist/provider/hooks/useViewState.d.ts +0 -15
  102. package/dist/provider/hooks/useViewState.d.ts.map +0 -1
  103. package/dist/stores/menuStore.d.ts +0 -53
  104. package/dist/stores/menuStore.d.ts.map +0 -1
@@ -0,0 +1,339 @@
1
+ import { create as g } from "zustand";
2
+ import { V as u, am as d } from "./serviceConfig-lAlRNVIw.js";
3
+ import { i as P } from "./envUtils-C9Gf5aek.js";
4
+ import { message as i } from "antd";
5
+ const L = g((r, a) => ({
6
+ favorites: [],
7
+ isLoading: !1,
8
+ error: null,
9
+ // 즐겨찾기 메뉴 가져오기
10
+ fetchFavorites: async ({ crprCd: e, userId: t }) => {
11
+ console.log("즐겨찾기 메뉴 요청:", { crprCd: e, userId: t }), r({ isLoading: !0, error: null });
12
+ try {
13
+ const o = await u(d("AUTH_BMRK"), {
14
+ crprCd: e,
15
+ userId: t
16
+ });
17
+ let n = [];
18
+ if (o?.favorites && Array.isArray(o.favorites) ? n = o.favorites : Array.isArray(o) ? n = o : (console.warn("즐겨찾기 데이터가 비어있거나 예상과 다른 구조입니다."), n = []), console.log("즐겨찾기 메뉴 로드 완료:", n), P && n.length === 0) {
19
+ const s = [
20
+ {
21
+ crprCd: "100",
22
+ menuGbCd: "CMPRGRP",
23
+ menuPrntId: "FAV001",
24
+ menuId: "FAV_TEST001",
25
+ menuNm: "API 테스트",
26
+ scrnId: "TEST001",
27
+ menuNo: 1,
28
+ scrnPath: "/dev/ApiTest",
29
+ menuLvl: 3,
30
+ rootMenu: "FAV001",
31
+ addedAt: (/* @__PURE__ */ new Date()).toISOString(),
32
+ userId: t
33
+ },
34
+ {
35
+ crprCd: "100",
36
+ menuGbCd: "CMPRGRP",
37
+ menuPrntId: "FAV001",
38
+ menuId: "FAV_TEST002",
39
+ menuNm: "프로젝트 개요",
40
+ scrnId: "DOCS001",
41
+ menuNo: 2,
42
+ scrnPath: "/docs/ProjectOverview",
43
+ menuLvl: 3,
44
+ rootMenu: "FAV001",
45
+ addedAt: (/* @__PURE__ */ new Date()).toISOString(),
46
+ userId: t
47
+ }
48
+ ];
49
+ r({ favorites: s, isLoading: !1, error: null }), console.log("개발 모드: 테스트용 즐겨찾기 데이터 추가");
50
+ } else
51
+ r({ favorites: n, isLoading: !1, error: null });
52
+ } catch (o) {
53
+ console.error("즐겨찾기 메뉴 로드 실패:", o), r({
54
+ error: o instanceof Error ? o.message : "즐겨찾기 로드 실패",
55
+ isLoading: !1
56
+ });
57
+ }
58
+ },
59
+ // 즐겨찾기 추가
60
+ addFavorite: async (e, t) => {
61
+ const { favorites: o } = a();
62
+ if (o.some((n) => n.menuId === e.menuId)) {
63
+ console.log("이미 즐겨찾기에 추가된 메뉴입니다:", e.menuNm);
64
+ return;
65
+ }
66
+ try {
67
+ await u(d("AUTH_BMRK"), {
68
+ action: "add",
69
+ crprCd: e.crprCd,
70
+ userId: t,
71
+ menuId: e.menuId,
72
+ menuNm: e.menuNm,
73
+ scrnPath: e.scrnPath
74
+ });
75
+ const n = {
76
+ ...e,
77
+ addedAt: (/* @__PURE__ */ new Date()).toISOString(),
78
+ userId: t
79
+ };
80
+ r({ favorites: [...o, n] }), console.log("즐겨찾기 추가 완료:", e.menuNm);
81
+ } catch (n) {
82
+ throw console.error("즐겨찾기 추가 실패:", n), n;
83
+ }
84
+ },
85
+ // 즐겨찾기 제거
86
+ removeFavorite: async (e, t) => {
87
+ const { favorites: o } = a();
88
+ try {
89
+ await u(d("AUTH_BMRK"), {
90
+ action: "remove",
91
+ crprCd: "100",
92
+ // 기본값
93
+ userId: t,
94
+ menuId: e
95
+ });
96
+ const n = o.filter((s) => s.menuId !== e);
97
+ r({ favorites: n }), console.log("즐겨찾기 제거 완료:", e);
98
+ } catch (n) {
99
+ throw console.error("즐겨찾기 제거 실패:", n), n;
100
+ }
101
+ },
102
+ // 즐겨찾기 여부 확인
103
+ isFavorite: (e) => {
104
+ const { favorites: t } = a();
105
+ return t.some((o) => o.menuId === e);
106
+ },
107
+ // 즐겨찾기 초기화
108
+ clearFavorites: () => {
109
+ r({ favorites: [], isLoading: !1, error: null });
110
+ }
111
+ })), v = {
112
+ DEFAULT_PRNT_GBCD: 1
113
+ }, T = (r) => r && typeof r == "object" && typeof r.menuId == "string" && typeof r.menuNm == "string" && typeof r.crprCd == "string", I = (r) => Array.isArray(r) && r.every(T);
114
+ let f = [], b = [];
115
+ const h = (r) => {
116
+ if (r && typeof r == "object") {
117
+ const a = r;
118
+ if (a.menus && I(a.menus)) return a.menus;
119
+ if (I(r)) return r;
120
+ }
121
+ return console.warn("⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다."), [];
122
+ }, F = (r, a) => !!a && r.crprCd === a.crprCd && r.userId === a.userId && (r.prntGbcd ?? v.DEFAULT_PRNT_GBCD) === (a.prntGbcd ?? v.DEFAULT_PRNT_GBCD), p = (r) => {
123
+ if (f.length === r.length && f.every(
124
+ (n, s) => n.menuId === r[s]?.menuId && n.menuPrntId === r[s]?.menuPrntId
125
+ ))
126
+ return b;
127
+ if (!r.length) return [];
128
+ const a = /* @__PURE__ */ new Map(), e = [];
129
+ r.forEach((n) => n?.menuId && a.set(n.menuId, { ...n, children: [] })), r.forEach((n) => {
130
+ const s = a.get(n.menuId);
131
+ s && (n.menuPrntId && n.menuPrntId !== "" && n.menuPrntId !== "-" ? a.get(n.menuPrntId)?.children?.push(s) : e.push(s));
132
+ });
133
+ const t = (n) => n.sort((s, c) => (s?.menuNo ?? 0) - (c?.menuNo ?? 0)).map((s) => ({
134
+ ...s,
135
+ children: s.children && s.children.length ? t(s.children) : void 0
136
+ })), o = t(e);
137
+ return f = [...r], b = o, o;
138
+ }, A = g((r, a) => ({
139
+ // 📊 초기 상태값
140
+ menuList: [],
141
+ flatMenuList: [],
142
+ isLoading: !1,
143
+ error: null,
144
+ _lastFetchParams: null,
145
+ // 🔧 메뉴 모델 조회
146
+ // 서버에서 사용자별 메뉴 권한 데이터를 가져와서 트리/플랫 구조로 저장
147
+ fetchMenu: async ({ crprCd: e, userId: t, prntGbcd: o }) => {
148
+ const n = {
149
+ crprCd: e,
150
+ userId: t,
151
+ prntGbcd: o ?? v.DEFAULT_PRNT_GBCD
152
+ };
153
+ if (F(n, a()._lastFetchParams)) {
154
+ console.log("✅ 중복 fetch 차단", n);
155
+ return;
156
+ }
157
+ r({ isLoading: !0, error: null, _lastFetchParams: n });
158
+ try {
159
+ const s = await u(d("AUTH_MENU"), n), c = h(s), l = p(c);
160
+ r({
161
+ flatMenuList: c,
162
+ // 평면 리스트 저장
163
+ menuList: l,
164
+ // 트리 구조 저장
165
+ isLoading: !1,
166
+ error: null
167
+ });
168
+ } catch (s) {
169
+ r({ isLoading: !1, error: s?.message ?? "메뉴 로드 실패" });
170
+ }
171
+ },
172
+ // 🔧 메뉴 모델 초기화
173
+ // 로그아웃 시나 사용자 변경 시 메뉴 모델 클리어
174
+ clearMenu: () => {
175
+ r({
176
+ menuList: [],
177
+ flatMenuList: [],
178
+ error: null,
179
+ _lastFetchParams: null
180
+ });
181
+ },
182
+ // 🔧 메뉴 ID로 메뉴 아이템 찾기
183
+ // URL 파라미터나 프로그래밍 방식으로 특정 메뉴를 찾을 때 사용
184
+ findMenuById: (e) => {
185
+ const { flatMenuList: t } = a();
186
+ return t.find((o) => o.menuId === e) ?? null;
187
+ }
188
+ })), M = {
189
+ MAX_TABS: 15
190
+ }, _ = g((r, a) => ({
191
+ // 📊 초기 상태값
192
+ activeMenuId: null,
193
+ activeMenuItem: null,
194
+ tabs: [],
195
+ sidebarCollapsed: !1,
196
+ maxTabs: M.MAX_TABS,
197
+ tabProtectFlag: {},
198
+ tabParams: {},
199
+ // 🔧 탭 추가 (메뉴 아이템 객체로)
200
+ // 사이드바에서 메뉴 클릭 시 호출되는 메인 함수
201
+ openTabFromMenu: (e, t) => {
202
+ const { tabs: o, activeMenuId: n } = a();
203
+ if (o.find((c) => c.key === e.menuId))
204
+ n !== e.menuId ? (r({ activeMenuId: e.menuId, activeMenuItem: e }), console.log("✅ 기존 탭 활성화 - activeMenuItem:", e), a().setTabParams(e.menuId, t || {}), e?.prsnInfoYn === "Y" && a().setProtectFlagForKey(e.menuId)) : (console.warn("❌ 유효하지 않은 메뉴정보", e.menuId), i.warning("유효하지 않은 메뉴정보입니다."));
205
+ else {
206
+ if (o.length > M.MAX_TABS) {
207
+ console.warn("❌ 최대 탭 개수를 초과했습니다."), i.warning(
208
+ `최대 ${M.MAX_TABS}개의 탭만 열 수 있습니다.
209
+ 기존 탭을 닫고 다시 시도해주세요.`
210
+ );
211
+ return;
212
+ }
213
+ const c = {
214
+ key: e.menuId,
215
+ label: e.menuNm,
216
+ gubun: "M",
217
+ menuItem: e,
218
+ closable: !0
219
+ };
220
+ r({
221
+ tabs: [...o, c],
222
+ // 탭 목록에 추가
223
+ activeMenuId: e.menuId,
224
+ // 새 탭을 활성화
225
+ activeMenuItem: e
226
+ // 현재 프로그램으로 설정
227
+ }), a().setTabParams(e.menuId, t || {}), console.log("✅ 새 탭 추가 - activeMenuItem:", e), e?.prsnInfoYn === "Y" && a().setProtectFlagForKey(e.menuId);
228
+ }
229
+ },
230
+ // 🔧 탭 추가 (메뉴 ID로)
231
+ // URL 파라미터로 메뉴 열기 시 사용 (예: ?menuId=CM000301)
232
+ openTabByMenuId: (e, t) => {
233
+ const o = A.getState().findMenuById(e);
234
+ o ? a().openTabFromMenu(o, t) : (console.warn("❌ 메뉴 ID를 찾을 수 없음:", e), i.warning("메뉴 ID를 찾을 수 없습니다."));
235
+ },
236
+ openTabByComponentId: (e, t, o) => {
237
+ const { tabs: n, activeMenuId: s } = a(), c = n.find((m) => m.key === e), l = {
238
+ crprCd: "",
239
+ menuNm: t || e,
240
+ menuId: e,
241
+ scrnId: e,
242
+ scrnPath: e,
243
+ menuNo: void 0,
244
+ menuLvl: 0,
245
+ prsnInfoYn: "N",
246
+ rootMenu: "",
247
+ iconCd: "",
248
+ menuGbCd: "",
249
+ menuPrntId: "",
250
+ children: []
251
+ };
252
+ if (c)
253
+ if (s !== l.menuId)
254
+ r({ activeMenuId: l.menuId, activeMenuItem: l }), a().setTabParams(l.menuId, o || {});
255
+ else {
256
+ console.warn("❌ 유효하지 않은 메뉴정보", e), i.warning("유효하지 않은 메뉴정보입니다.");
257
+ return;
258
+ }
259
+ else {
260
+ const m = {
261
+ key: e,
262
+ gubun: "C",
263
+ label: t || e,
264
+ menuItem: l,
265
+ closable: !0
266
+ };
267
+ r({
268
+ tabs: [...n, m],
269
+ // 탭 목록에 추가
270
+ activeMenuId: e,
271
+ // 새 탭을 활성화
272
+ activeMenuItem: l
273
+ // 현재 프로그램으로 설정
274
+ }), a().setTabParams(e, o || {});
275
+ }
276
+ },
277
+ // 🔧 탭 제거
278
+ // X 버튼 클릭 시 탭을 닫고 관련 상태도 정리
279
+ closeTab: (e) => {
280
+ const { tabs: t, activeMenuId: o } = a();
281
+ t.find((c) => c.key === e);
282
+ const n = t.filter((c) => c.key !== e);
283
+ let s = o;
284
+ if (o === e) {
285
+ const c = t.findIndex((l) => l.key === e);
286
+ s = n.length ? n[Math.min(c, n.length - 1)]?.key ?? null : null;
287
+ }
288
+ r({
289
+ tabs: n
290
+ }), s && a().focusTab(s);
291
+ },
292
+ // 🔧 활성 탭 변경
293
+ // 탭 헤더 클릭 시 해당 탭으로 전환
294
+ focusTab: (e) => {
295
+ const { tabs: t } = a(), o = t.find((n) => n.key === e);
296
+ o ? o.menuItem.prsnInfoYn === "Y" ? (r({
297
+ activeMenuId: e,
298
+ activeMenuItem: o.menuItem
299
+ }), console.log(
300
+ "✅ 탭 포커스 (개인정보) - activeMenuItem:",
301
+ o.menuItem
302
+ ), a().setProtectFlagForKey(e)) : (r({
303
+ activeMenuId: e,
304
+ activeMenuItem: o.menuItem
305
+ }), console.log("✅ 탭 포커스 (일반) - activeMenuItem:", o.menuItem), a().clearProtectFlagForKey(e)) : (r({ activeMenuId: e, activeMenuItem: null }), console.warn("❌ 탭을 찾을 수 없음:", e));
306
+ },
307
+ // 🔧 모든 탭 제거
308
+ // 로그아웃이나 전체 초기화 시 사용
309
+ closeAllTabs: () => r({ tabs: [], activeMenuId: null, activeMenuItem: null }),
310
+ // 🔧 사이드바 토글
311
+ // 햄버거 메뉴 클릭 시 사이드바 접기/펼치기
312
+ toggleSidebar: () => r((e) => ({ sidebarCollapsed: !e.sidebarCollapsed })),
313
+ // useMenuViewStore.ts
314
+ reorderTabs: (e) => r((t) => {
315
+ const o = new Map(t.tabs.map((n) => [n.key, n]));
316
+ return { tabs: e.map((n) => o.get(n)).filter(Boolean) };
317
+ }),
318
+ // 개인정보 포함여부에 따른 탭 잠금 Flag 설정
319
+ setProtectFlagForKey: (e) => r((t) => ({
320
+ tabProtectFlag: { ...t.tabProtectFlag, [e]: !0 }
321
+ })),
322
+ // 개인정보 포함여부에 따른 탭 잠금 해제
323
+ clearProtectFlagForKey: (e) => r((t) => {
324
+ const o = { ...t.tabProtectFlag };
325
+ return delete o[e], { tabProtectFlag: o };
326
+ }),
327
+ setTabParams: (e, t) => r((o) => {
328
+ const n = o.tabParams[e] || {}, s = { ...t || {} };
329
+ return Object.keys(n).length === Object.keys(s).length && Object.keys(s).every((l) => n[l] === s[l]) ? o : {
330
+ tabParams: { ...o.tabParams, [e]: s }
331
+ };
332
+ })
333
+ }));
334
+ export {
335
+ _ as a,
336
+ L as b,
337
+ A as u
338
+ };
339
+ //# sourceMappingURL=menuViewStore-BwR3vgPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuViewStore-BwR3vgPM.js","sources":["../../src/stores/favoriteStore.ts","../../src/stores/menuModelStore.ts","../../src/stores/menuViewStore.ts"],"sourcesContent":["import { create } from \"zustand\";\r\nimport { callService } from \"../utils/apiUtils\";\r\nimport { getServiceCode } from \"../utils/serviceConfig\";\r\nimport type { MenuItem } from \"./menuModelStore\";\r\nimport { isLocal } from \"@/utils\";\r\n\r\n// 즐겨찾기 메뉴 타입 정의\r\nexport interface FavoriteMenuItem extends MenuItem {\r\n addedAt: string; // 즐겨찾기 추가 시간\r\n userId: string; // 사용자 ID\r\n}\r\n\r\n// 즐겨찾기 스토어 타입 정의\r\nexport interface FavoriteStore {\r\n favorites: FavoriteMenuItem[];\r\n isLoading: boolean;\r\n error: string | null;\r\n\r\n // 즐겨찾기 메뉴 가져오기\r\n fetchFavorites: (params: { crprCd: string; userId: string }) => Promise<void>;\r\n\r\n // 즐겨찾기 추가\r\n addFavorite: (menuItem: MenuItem, userId: string) => Promise<void>;\r\n\r\n // 즐겨찾기 제거\r\n removeFavorite: (menuId: string, userId: string) => Promise<void>;\r\n\r\n // 즐겨찾기 여부 확인\r\n isFavorite: (menuId: string) => boolean;\r\n\r\n // 즐겨찾기 초기화\r\n clearFavorites: () => void;\r\n}\r\n\r\n// 즐겨찾기 스토어 생성\r\nexport const useFavoriteStore = create<FavoriteStore>((set, get) => ({\r\n favorites: [],\r\n isLoading: false,\r\n error: null,\r\n\r\n // 즐겨찾기 메뉴 가져오기\r\n fetchFavorites: async ({ crprCd, userId }) => {\r\n console.log(\"즐겨찾기 메뉴 요청:\", { crprCd, userId });\r\n set({ isLoading: true, error: null });\r\n\r\n try {\r\n // 서버에서 즐겨찾기 메뉴 가져오기\r\n const data = await callService(getServiceCode(\"AUTH_BMRK\"), {\r\n crprCd,\r\n userId,\r\n });\r\n\r\n let favoritesList: FavoriteMenuItem[] = [];\r\n\r\n if (data?.favorites && Array.isArray(data.favorites)) {\r\n favoritesList = data.favorites;\r\n } else if (Array.isArray(data)) {\r\n favoritesList = data;\r\n } else {\r\n console.warn(\"즐겨찾기 데이터가 비어있거나 예상과 다른 구조입니다.\");\r\n favoritesList = [];\r\n }\r\n\r\n console.log(\"즐겨찾기 메뉴 로드 완료:\", favoritesList);\r\n\r\n // 개발 모드에서 테스트용 즐겨찾기 데이터 추가\r\n if (isLocal && favoritesList.length === 0) {\r\n const testFavorites: FavoriteMenuItem[] = [\r\n {\r\n crprCd: \"100\",\r\n menuGbCd: \"CMPRGRP\",\r\n menuPrntId: \"FAV001\",\r\n menuId: \"FAV_TEST001\",\r\n menuNm: \"API 테스트\",\r\n scrnId: \"TEST001\",\r\n menuNo: 1,\r\n scrnPath: \"/dev/ApiTest\",\r\n menuLvl: 3,\r\n rootMenu: \"FAV001\",\r\n addedAt: new Date().toISOString(),\r\n userId,\r\n },\r\n {\r\n crprCd: \"100\",\r\n menuGbCd: \"CMPRGRP\",\r\n menuPrntId: \"FAV001\",\r\n menuId: \"FAV_TEST002\",\r\n menuNm: \"프로젝트 개요\",\r\n scrnId: \"DOCS001\",\r\n menuNo: 2,\r\n scrnPath: \"/docs/ProjectOverview\",\r\n menuLvl: 3,\r\n rootMenu: \"FAV001\",\r\n addedAt: new Date().toISOString(),\r\n userId,\r\n },\r\n ];\r\n set({ favorites: testFavorites, isLoading: false, error: null });\r\n console.log(\"개발 모드: 테스트용 즐겨찾기 데이터 추가\");\r\n } else {\r\n set({ favorites: favoritesList, isLoading: false, error: null });\r\n }\r\n } catch (error) {\r\n console.error(\"즐겨찾기 메뉴 로드 실패:\", error);\r\n set({\r\n error: error instanceof Error ? error.message : \"즐겨찾기 로드 실패\",\r\n isLoading: false,\r\n });\r\n }\r\n },\r\n\r\n // 즐겨찾기 추가\r\n addFavorite: async (menuItem: MenuItem, userId: string) => {\r\n const { favorites } = get();\r\n\r\n // 이미 즐겨찾기에 있는지 확인\r\n if (favorites.some((fav) => fav.menuId === menuItem.menuId)) {\r\n console.log(\"이미 즐겨찾기에 추가된 메뉴입니다:\", menuItem.menuNm);\r\n return;\r\n }\r\n\r\n try {\r\n // 서버에 즐겨찾기 추가 요청\r\n await callService(getServiceCode(\"AUTH_BMRK\"), {\r\n action: \"add\",\r\n crprCd: menuItem.crprCd,\r\n userId,\r\n menuId: menuItem.menuId,\r\n menuNm: menuItem.menuNm,\r\n scrnPath: menuItem.scrnPath,\r\n });\r\n\r\n // 로컬 상태 업데이트\r\n const newFavorite: FavoriteMenuItem = {\r\n ...menuItem,\r\n addedAt: new Date().toISOString(),\r\n userId,\r\n };\r\n\r\n set({ favorites: [...favorites, newFavorite] });\r\n console.log(\"즐겨찾기 추가 완료:\", menuItem.menuNm);\r\n } catch (error) {\r\n console.error(\"즐겨찾기 추가 실패:\", error);\r\n throw error;\r\n }\r\n },\r\n\r\n // 즐겨찾기 제거\r\n removeFavorite: async (menuId: string, userId: string) => {\r\n const { favorites } = get();\r\n\r\n try {\r\n // 서버에 즐겨찾기 제거 요청\r\n await callService(getServiceCode(\"AUTH_BMRK\"), {\r\n action: \"remove\",\r\n crprCd: \"100\", // 기본값\r\n userId,\r\n menuId,\r\n });\r\n\r\n // 로컬 상태 업데이트\r\n const updatedFavorites = favorites.filter((fav) => fav.menuId !== menuId);\r\n set({ favorites: updatedFavorites });\r\n console.log(\"즐겨찾기 제거 완료:\", menuId);\r\n } catch (error) {\r\n console.error(\"즐겨찾기 제거 실패:\", error);\r\n throw error;\r\n }\r\n },\r\n\r\n // 즐겨찾기 여부 확인\r\n isFavorite: (menuId: string) => {\r\n const { favorites } = get();\r\n return favorites.some((fav) => fav.menuId === menuId);\r\n },\r\n\r\n // 즐겨찾기 초기화\r\n clearFavorites: () => {\r\n set({ favorites: [], isLoading: false, error: null });\r\n },\r\n}));\r\n","import { create } from \"zustand\";\r\n// 필요에 맞게 경로 조정\r\nimport { callService } from \"@/utils/apiUtils\";\r\nimport { getServiceCode } from \"@/utils/serviceConfig\";\r\n\r\n/* ──── Constants ──── */\r\nconst MENU_CONSTANTS = {\r\n DEFAULT_ACTIVE_MENU: \"1\",\r\n DEFAULT_PRNT_GBCD: 1,\r\n COMPANY_CODE: \"100\",\r\n MENU_PARENT_ROOT: \"-\",\r\n MENU_TYPE: { MAIN: \"CMPRGRM\", SUB: \"CMPRGRS\", PROGRAM: \"CMPRGRP\" } as const,\r\n} as const;\r\n\r\n/* ──── Types (이 파일 전용) ──── */\r\nexport interface MenuItem {\r\n crprCd: string;\r\n menuGbCd: string;\r\n menuPrntId: string;\r\n menuId: string;\r\n menuNm: string;\r\n menuNo?: number;\r\n scrnId?: string;\r\n scrnPath?: string;\r\n prsnInfoYn?: \"Y\" | \"N\";\r\n rootMenu: string;\r\n iconCd?: string;\r\n children?: MenuItem[];\r\n}\r\n\r\nexport type FetchMenuParams = {\r\n crprCd: string;\r\n userId: string;\r\n prntGbcd: number;\r\n};\r\n\r\nexport interface MenuApiResponse {\r\n menus?: MenuItem[];\r\n [k: string]: any;\r\n}\r\n\r\n/* 런타임 타입가드 */\r\nconst isMenuItem = (v: any): v is MenuItem =>\r\n v &&\r\n typeof v === \"object\" &&\r\n typeof v.menuId === \"string\" &&\r\n typeof v.menuNm === \"string\" &&\r\n typeof v.crprCd === \"string\";\r\n\r\nconst isMenuItemArray = (v: any): v is MenuItem[] =>\r\n Array.isArray(v) && v.every(isMenuItem);\r\n\r\n/* ──── State Shape ──── */\r\ntype MenuModelState = {\r\n // 📊 State (상태)\r\n // 계층형 메뉴 트리 구조 (부모-자식 관계)\r\n menuList: MenuItem[];\r\n // 평면화된 메뉴 리스트 (검색/조회용)\r\n flatMenuList: MenuItem[];\r\n // 메뉴 데이터 로딩 상태\r\n isLoading: boolean;\r\n // 에러 메시지\r\n error: string | null;\r\n // 마지막 조회 파라미터 (중복 요청 방지)\r\n _lastFetchParams: FetchMenuParams | null;\r\n\r\n // 🔧 Actions (액션 함수들)\r\n // 서버에서 메뉴 데이터 조회\r\n fetchMenu: (p: FetchMenuParams) => Promise<void>;\r\n // 메뉴 데이터 초기화\r\n clearMenu: () => void;\r\n // 메뉴 ID로 특정 메뉴 찾기\r\n findMenuById: (menuId: string) => MenuItem | null;\r\n};\r\n\r\n/* ──── Local Memoization Cache ──── */\r\nlet _lastFlat: MenuItem[] = [];\r\nlet _cachedTree: MenuItem[] = [];\r\n\r\n/* ──── Helpers ──── */\r\nconst parseMenuResponse = (data: unknown): MenuItem[] => {\r\n if (data && typeof data === \"object\") {\r\n const r = data as MenuApiResponse;\r\n if (r.menus && isMenuItemArray(r.menus)) return r.menus;\r\n if (isMenuItemArray(data)) return data;\r\n }\r\n console.warn(\"⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다.\");\r\n return [];\r\n};\r\n\r\nconst sameParams = (a: FetchMenuParams, b: FetchMenuParams | null) =>\r\n !!b &&\r\n a.crprCd === b.crprCd &&\r\n a.userId === b.userId &&\r\n (a.prntGbcd ?? MENU_CONSTANTS.DEFAULT_PRNT_GBCD) ===\r\n (b.prntGbcd ?? MENU_CONSTANTS.DEFAULT_PRNT_GBCD);\r\n\r\nconst buildHierarchy = (flat: MenuItem[]): MenuItem[] => {\r\n if (\r\n _lastFlat.length === flat.length &&\r\n _lastFlat.every(\r\n (x, i) =>\r\n x.menuId === flat[i]?.menuId && x.menuPrntId === flat[i]?.menuPrntId\r\n )\r\n )\r\n return _cachedTree;\r\n\r\n if (!flat.length) return [];\r\n\r\n const map = new Map<string, MenuItem>();\r\n const roots: MenuItem[] = [];\r\n\r\n flat.forEach((m) => m?.menuId && map.set(m.menuId, { ...m, children: [] }));\r\n flat.forEach((m) => {\r\n const cur = map.get(m.menuId);\r\n if (!cur) return;\r\n if (m.menuPrntId && m.menuPrntId !== \"\" && m.menuPrntId !== \"-\") {\r\n const p = map.get(m.menuPrntId);\r\n p?.children?.push(cur);\r\n } else {\r\n roots.push(cur);\r\n }\r\n });\r\n\r\n const sortRec = (arr: MenuItem[]): MenuItem[] =>\r\n arr\r\n .sort((a, b) => (a?.menuNo ?? 0) - (b?.menuNo ?? 0))\r\n .map((x) => ({\r\n ...x,\r\n children:\r\n x.children && x.children.length ? sortRec(x.children) : undefined,\r\n }));\r\n\r\n const out = sortRec(roots);\r\n _lastFlat = [...flat];\r\n _cachedTree = out;\r\n return out;\r\n};\r\n\r\n/* ──── Store ──── */\r\nexport const useMenuModelStore = create<MenuModelState>((set, get) => ({\r\n // 📊 초기 상태값\r\n menuList: [],\r\n flatMenuList: [],\r\n isLoading: false,\r\n error: null,\r\n _lastFetchParams: null,\r\n\r\n // 🔧 메뉴 모델 조회\r\n // 서버에서 사용자별 메뉴 권한 데이터를 가져와서 트리/플랫 구조로 저장\r\n fetchMenu: async ({ crprCd, userId, prntGbcd }: FetchMenuParams) => {\r\n const p = {\r\n crprCd,\r\n userId,\r\n prntGbcd: prntGbcd ?? MENU_CONSTANTS.DEFAULT_PRNT_GBCD,\r\n };\r\n // 중복 요청 방지\r\n if (sameParams(p, get()._lastFetchParams)) {\r\n console.log(\"✅ 중복 fetch 차단\", p);\r\n return;\r\n }\r\n set({ isLoading: true, error: null, _lastFetchParams: p });\r\n try {\r\n // API 호출하여 메뉴 데이터 가져오기\r\n const data = await callService(getServiceCode(\"AUTH_MENU\"), p);\r\n const flat = parseMenuResponse(data); // 응답 데이터 파싱\r\n const tree = buildHierarchy(flat); // 계층 구조 생성\r\n set({\r\n flatMenuList: flat, // 평면 리스트 저장\r\n menuList: tree, // 트리 구조 저장\r\n isLoading: false,\r\n error: null,\r\n });\r\n } catch (e: any) {\r\n set({ isLoading: false, error: e?.message ?? \"메뉴 로드 실패\" });\r\n }\r\n },\r\n\r\n // 🔧 메뉴 모델 초기화\r\n // 로그아웃 시나 사용자 변경 시 메뉴 모델 클리어\r\n clearMenu: () => {\r\n set({\r\n menuList: [],\r\n flatMenuList: [],\r\n error: null,\r\n _lastFetchParams: null,\r\n });\r\n },\r\n\r\n // 🔧 메뉴 ID로 메뉴 아이템 찾기\r\n // URL 파라미터나 프로그래밍 방식으로 특정 메뉴를 찾을 때 사용\r\n findMenuById: (menuId: string) => {\r\n const { flatMenuList } = get();\r\n return flatMenuList.find((m) => m.menuId === menuId) ?? null;\r\n },\r\n}));\r\n","import { create } from \"zustand\";\r\nimport React from \"react\";\r\nimport { MenuItem, useMenuModelStore } from \"./menuModelStore\";\r\nimport { message } from \"antd\";\r\n\r\n/* ──── Constants (UI 측에도 독립적으로 존재) ──── */\r\nconst MENU_CONSTANTS = {\r\n DEFAULT_ACTIVE_MENU: \"1\",\r\n MAX_TABS: 15,\r\n} as const;\r\n\r\n/* ──── Types (이 파일 전용) ──── */\r\nexport interface TabItem {\r\n key: string; // menuId\r\n label: string; // menuNm\r\n gubun: \"M\" | \"C\"; // menuId or componentPath\r\n menuItem: MenuItem;\r\n\r\n closable: boolean;\r\n}\r\n\r\n/* ──── State Shape ──── */\r\ntype MenuViewState = {\r\n // 📊 UI State (화면 상태)\r\n // 현재 활성화된 메뉴 ID\r\n activeMenuId: string | undefined | null;\r\n // 현재 활성화된 메뉴 정보\r\n activeMenuItem: MenuItem | null;\r\n // 열린 탭 목록\r\n tabs: TabItem[];\r\n // 사이드바 접힘/펼침 상태\r\n sidebarCollapsed: boolean;\r\n // 최대 탭 개수\r\n maxTabs: number;\r\n tabProtectFlag: Record<string, boolean>;\r\n tabParams: Record<string, Record<string, any>>;\r\n\r\n /* 🛠 UI Actions (UI 액션 함수들) */\r\n // 메뉴 아이템으로 탭 추가\r\n openTabFromMenu: (menuItem: MenuItem, params?: Record<string, any>) => void;\r\n // 메뉴 ID로 탭 추가 (URL 파라미터 처리용)\r\n openTabByMenuId: (menuId: string, params?: Record<string, any>) => void;\r\n // 컴포넌트 ID로 탭 추가\r\n openTabByComponentId: (\r\n cpntId: string,\r\n cpntNm?: string,\r\n params?: Record<string, any>\r\n ) => void;\r\n // 활성 탭 변경\r\n focusTab: (tabKey: string) => void;\r\n // 탭 제거\r\n closeTab: (tabKey: string) => void;\r\n // 모든 탭 제거\r\n closeAllTabs: () => void;\r\n // 사이드바 토글\r\n toggleSidebar: () => void;\r\n // 탭 순서 변경\r\n reorderTabs: (keys: string[]) => void;\r\n // 개인정보 포함여부에 따른 탭 잠금 Flag 설정\r\n setProtectFlagForKey: (key: string) => void;\r\n // 개인정보 포함여부에 따른 탭 잠금 해제\r\n clearProtectFlagForKey: (key: string) => void;\r\n setTabParams: (key: string, params: Record<string, any>) => void;\r\n};\r\n\r\n/* ──── Store ──── */\r\nexport const useMenuViewStore = create<MenuViewState>((set, get) => ({\r\n // 📊 초기 상태값\r\n activeMenuId: null,\r\n activeMenuItem: null,\r\n tabs: [],\r\n sidebarCollapsed: false,\r\n maxTabs: MENU_CONSTANTS.MAX_TABS,\r\n tabProtectFlag: {},\r\n tabParams: {},\r\n // 🔧 탭 추가 (메뉴 아이템 객체로)\r\n // 사이드바에서 메뉴 클릭 시 호출되는 메인 함수\r\n openTabFromMenu: (menuItem, params) => {\r\n const { tabs, activeMenuId } = get();\r\n const exists = tabs.find((t) => t.key === menuItem.menuId);\r\n\r\n // 새 탭 생성\r\n if (!exists) {\r\n // 2. 최대 탭 개수 확인\r\n if (tabs.length > MENU_CONSTANTS.MAX_TABS) {\r\n console.warn(\"❌ 최대 탭 개수를 초과했습니다.\");\r\n message.warning(\r\n `최대 ${MENU_CONSTANTS.MAX_TABS}개의 탭만 열 수 있습니다.\\n기존 탭을 닫고 다시 시도해주세요.`\r\n );\r\n return;\r\n }\r\n const newTab: TabItem = {\r\n key: menuItem.menuId,\r\n label: menuItem.menuNm,\r\n gubun: \"M\",\r\n menuItem: menuItem as MenuItem,\r\n closable: true,\r\n };\r\n set({\r\n tabs: [...tabs, newTab], // 탭 목록에 추가\r\n activeMenuId: menuItem.menuId, // 새 탭을 활성화\r\n activeMenuItem: menuItem, // 현재 프로그램으로 설정\r\n });\r\n get().setTabParams(menuItem.menuId, params || {});\r\n console.log(\"✅ 새 탭 추가 - activeMenuItem:\", menuItem);\r\n\r\n // 개인정보 메뉴만 Protect\r\n if (menuItem?.prsnInfoYn === \"Y\") {\r\n get().setProtectFlagForKey(menuItem.menuId);\r\n }\r\n } else if (activeMenuId !== menuItem.menuId) {\r\n // 이미 존재하는 탭이면 활성화만\r\n set({ activeMenuId: menuItem.menuId, activeMenuItem: menuItem });\r\n console.log(\"✅ 기존 탭 활성화 - activeMenuItem:\", menuItem);\r\n get().setTabParams(menuItem.menuId, params || {});\r\n // 개인정보 메뉴만 Protect\r\n if (menuItem?.prsnInfoYn === \"Y\") {\r\n get().setProtectFlagForKey(menuItem.menuId);\r\n }\r\n } else {\r\n console.warn(\"❌ 유효하지 않은 메뉴정보\", menuItem.menuId);\r\n message.warning(\"유효하지 않은 메뉴정보입니다.\");\r\n }\r\n },\r\n // 🔧 탭 추가 (메뉴 ID로)\r\n // URL 파라미터로 메뉴 열기 시 사용 (예: ?menuId=CM000301)\r\n openTabByMenuId: (menuId, params) => {\r\n const target = useMenuModelStore.getState().findMenuById(menuId);\r\n if (!target) {\r\n console.warn(\"❌ 메뉴 ID를 찾을 수 없음:\", menuId);\r\n message.warning(\"메뉴 ID를 찾을 수 없습니다.\");\r\n } else {\r\n get().openTabFromMenu(target, params); // 찾은 메뉴로 탭 추가\r\n }\r\n },\r\n openTabByComponentId: (cpntId, cpntNm, params) => {\r\n const { tabs, activeMenuId } = get();\r\n const exists = tabs.find((t) => t.key === cpntId);\r\n const menuItem = {\r\n crprCd: \"\",\r\n menuNm: cpntNm || cpntId,\r\n menuId: cpntId,\r\n scrnId: cpntId,\r\n scrnPath: cpntId,\r\n menuNo: undefined,\r\n menuLvl: 0,\r\n prsnInfoYn: \"N\" as const,\r\n rootMenu: \"\",\r\n iconCd: \"\",\r\n menuGbCd: \"\",\r\n menuPrntId: \"\",\r\n children: [],\r\n };\r\n // 새 탭 생성\r\n if (!exists) {\r\n const newTab: TabItem = {\r\n key: cpntId,\r\n gubun: \"C\",\r\n label: cpntNm || cpntId,\r\n menuItem,\r\n closable: true,\r\n };\r\n\r\n set({\r\n tabs: [...tabs, newTab], // 탭 목록에 추가\r\n activeMenuId: cpntId, // 새 탭을 활성화\r\n activeMenuItem: menuItem, // 현재 프로그램으로 설정\r\n });\r\n get().setTabParams(cpntId, params || {});\r\n } else if (activeMenuId !== menuItem.menuId) {\r\n // 이미 존재하는 탭이면 활성화만\r\n set({ activeMenuId: menuItem.menuId, activeMenuItem: menuItem });\r\n get().setTabParams(menuItem.menuId, params || {});\r\n } else {\r\n console.warn(\"❌ 유효하지 않은 메뉴정보\", cpntId);\r\n message.warning(\"유효하지 않은 메뉴정보입니다.\");\r\n return;\r\n }\r\n },\r\n // 🔧 탭 제거\r\n // X 버튼 클릭 시 탭을 닫고 관련 상태도 정리\r\n closeTab: (tabKey) => {\r\n const { tabs, activeMenuId } = get();\r\n const removed = tabs.find((t) => t.key === tabKey);\r\n const nextTabs = tabs.filter((t) => t.key !== tabKey);\r\n\r\n // 닫힌 탭이 현재 활성 탭이면 다음 탭으로 이동\r\n let nextActive = activeMenuId;\r\n if (activeMenuId === tabKey) {\r\n const idx = tabs.findIndex((t) => t.key === tabKey);\r\n nextActive = nextTabs.length\r\n ? nextTabs[Math.min(idx, nextTabs.length - 1)]?.key ?? null\r\n : null;\r\n }\r\n\r\n set({\r\n tabs: nextTabs,\r\n });\r\n\r\n if (nextActive) get().focusTab(nextActive);\r\n },\r\n // 🔧 활성 탭 변경\r\n // 탭 헤더 클릭 시 해당 탭으로 전환\r\n focusTab: (tabKey) => {\r\n const { tabs } = get();\r\n const target = tabs.find((t) => t.key === tabKey);\r\n\r\n if (target) {\r\n if (target.menuItem.prsnInfoYn === \"Y\") {\r\n set({\r\n activeMenuId: tabKey,\r\n activeMenuItem: target.menuItem,\r\n });\r\n console.log(\r\n \"✅ 탭 포커스 (개인정보) - activeMenuItem:\",\r\n target.menuItem\r\n );\r\n get().setProtectFlagForKey(tabKey);\r\n } else {\r\n set({\r\n activeMenuId: tabKey,\r\n activeMenuItem: target.menuItem,\r\n });\r\n console.log(\"✅ 탭 포커스 (일반) - activeMenuItem:\", target.menuItem);\r\n get().clearProtectFlagForKey(tabKey);\r\n }\r\n } else {\r\n set({ activeMenuId: tabKey, activeMenuItem: null });\r\n console.warn(\"❌ 탭을 찾을 수 없음:\", tabKey);\r\n }\r\n },\r\n\r\n // 🔧 모든 탭 제거\r\n // 로그아웃이나 전체 초기화 시 사용\r\n closeAllTabs: () =>\r\n set({ tabs: [], activeMenuId: null, activeMenuItem: null }),\r\n\r\n // 🔧 사이드바 토글\r\n // 햄버거 메뉴 클릭 시 사이드바 접기/펼치기\r\n toggleSidebar: () => set((s) => ({ sidebarCollapsed: !s.sidebarCollapsed })),\r\n\r\n // useMenuViewStore.ts\r\n reorderTabs: (keys: string[]) =>\r\n set((state) => {\r\n const map = new Map(state.tabs.map((t) => [t.key, t]));\r\n return { tabs: keys.map((k) => map.get(k)!).filter(Boolean) };\r\n }),\r\n // 개인정보 포함여부에 따른 탭 잠금 Flag 설정\r\n setProtectFlagForKey: (key: string) =>\r\n set((s) => ({\r\n tabProtectFlag: { ...s.tabProtectFlag, [key]: true },\r\n })),\r\n // 개인정보 포함여부에 따른 탭 잠금 해제\r\n clearProtectFlagForKey: (key: string) =>\r\n set((s) => {\r\n const newFlags = { ...s.tabProtectFlag };\r\n delete newFlags[key];\r\n return { tabProtectFlag: newFlags };\r\n }),\r\n setTabParams: (key, params) =>\r\n set((state) => {\r\n const prev = state.tabParams[key] || {};\r\n const next = { ...(params || {}) }; // 새 객체 (불변 보장)\r\n\r\n // shallow equal이면 스킵(불필요 렌더 방지)\r\n const isShallowEqual =\r\n Object.keys(prev).length === Object.keys(next).length &&\r\n Object.keys(next).every((k) => prev[k] === next[k]);\r\n if (isShallowEqual) return state;\r\n\r\n return {\r\n tabParams: { ...state.tabParams, [key]: next },\r\n };\r\n }),\r\n}));\r\n"],"names":["useFavoriteStore","create","set","get","crprCd","userId","data","callService","getServiceCode","favoritesList","isLocal","testFavorites","error","menuItem","favorites","fav","newFavorite","menuId","updatedFavorites","MENU_CONSTANTS","isMenuItem","v","isMenuItemArray","_lastFlat","_cachedTree","parseMenuResponse","r","sameParams","a","b","buildHierarchy","flat","x","i","map","roots","m","cur","sortRec","arr","out","useMenuModelStore","prntGbcd","p","tree","e","flatMenuList","useMenuViewStore","params","tabs","activeMenuId","t","message","newTab","target","cpntId","cpntNm","exists","tabKey","nextTabs","nextActive","idx","s","keys","state","k","key","newFlags","prev","next"],"mappings":"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"}
@@ -17,8 +17,8 @@ export interface BwgButtonGroupProps {
17
17
  btnEvent?: {
18
18
  [key: string]: (params?: any) => void | Promise<void>;
19
19
  };
20
- layout?: 'horizontal' | 'vertical';
21
- size?: 'large' | 'middle' | 'small';
20
+ layout?: "horizontal" | "vertical";
21
+ size?: "large" | "middle" | "small";
22
22
  style?: React.CSSProperties;
23
23
  className?: string;
24
24
  onButtonClick?: (btnId: string, btnNm: string, grpId: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"BwgButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAGD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAED;;;GAGG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiNjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"BwgButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAQnD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAGD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAED;;;GAGG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2NjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export interface BwgTitleBoxIcon {
2
- type: 'cstm' | 'antd';
2
+ type: "cstm" | "antd";
3
3
  icon?: string;
4
4
  color?: string;
5
5
  }
@@ -15,7 +15,7 @@ export interface BwgTitleBoxProps {
15
15
  /** 툴팁 타이틀 */
16
16
  title: string;
17
17
  /** 툴팁 위치 */
18
- placement?: 'top' | 'bottom' | 'left' | 'right';
18
+ placement?: "top" | "bottom" | "left" | "right";
19
19
  };
20
20
  /**
21
21
  * 아이콘 표시 여부
@@ -1 +1 @@
1
- {"version":3,"file":"BwgTitleBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgTitleBox.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAEhB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU;IACV,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS;IACT,OAAO,CAAC,EAAE;QACR,aAAa;QACb,KAAK,EAAE,MAAM,CAAC;QACd,YAAY;QACZ,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;KACjD,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU;IACV,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,WAAW,GAAI,gFAQlB,gBAAgB,4CAqClB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BwgTitleBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgTitleBox.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU;IACV,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS;IACT,OAAO,CAAC,EAAE;QACR,aAAa;QACb,KAAK,EAAE,MAAM,CAAC;QACd,YAAY;QACZ,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;KACjD,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU;IACV,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,WAAW,GAAI,gFAQlB,gBAAgB,4CA0ClB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BwgView.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgView.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAQ7D,OAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkBxD,UAAU,YAAY;IAEpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,SAAS,CAAC,EAAE,cAAc,CAAA;IAE1B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,UAAU,CAAC,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IAGF,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;CACH;wBA4kByB,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;AAA3D,wBAA4D"}
1
+ {"version":3,"file":"BwgView.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgView.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAO7D,OAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoBxD,UAAU,YAAY;IAEpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,UAAU,CAAC,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IAGF,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;CACH;wBA8iByB,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;AAA3D,wBAA4D"}
@@ -1 +1 @@
1
- {"version":3,"file":"QuickServiceToggle.d.ts","sourceRoot":"","sources":["../../../src/components/common/QuickServiceToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAkB3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkTzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"QuickServiceToggle.d.ts","sourceRoot":"","sources":["../../../src/components/common/QuickServiceToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAiB3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAiUzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/SSOHandler-kghWABfM.cjs"),r=require("../../chunks/BwgSpace-b0hmM1Ht.cjs"),o=require("../../chunks/realFormat-Cha7OTd9.cjs");exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgCol=e.BwgCol;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDrawer=e.BwgDrawer;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPopup=e.BwgPopup;exports.BwgRow=e.BwgRow;exports.BwgTable=e.BwgTable;exports.BwgTabs=e.BwgTabs;exports.BwgTitleBox=e.BwgTitleBox;exports.BwgView=e.BwgView;exports.ContentBox=e.ContentBox;exports.ContentLayOut=e.ContentLayOut;exports.GlobalConfigProvider=e.GlobalConfigProvider;exports.QuickServiceToggle=e.QuickServiceToggle;exports.SSOHandler=e.SSOHandler;exports.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.BwgSpace=r.BwgSpace;exports.realFormat=o.realFormat;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/SSOHandler-DjL0sH7k.cjs"),r=require("../../chunks/BwgSpace-b0hmM1Ht.cjs"),o=require("../../chunks/realFormat-Cha7OTd9.cjs");exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgCol=e.BwgCol;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDrawer=e.BwgDrawer;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPopup=e.BwgPopup;exports.BwgRow=e.BwgRow;exports.BwgTable=e.BwgTable;exports.BwgTabs=e.BwgTabs;exports.BwgTitleBox=e.BwgTitleBox;exports.BwgView=e.BwgView;exports.ContentBox=e.ContentBox;exports.ContentLayOut=e.ContentLayOut;exports.GlobalConfigProvider=e.GlobalConfigProvider;exports.QuickServiceToggle=e.QuickServiceToggle;exports.SSOHandler=e.SSOHandler;exports.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.BwgSpace=r.BwgSpace;exports.realFormat=o.realFormat;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import { B as r, a as o, b as s, c as B, d as g, e as w, f as t, g as i, h as n, i as l, j as p, k as d, l as f, C, m as c, G as m, Q as x, n as S, S as u, o as G } from "../../chunks/SSOHandler-Bu3v95k0.js";
1
+ import { B as r, a as o, b as s, c as B, d as g, e as w, f as t, g as i, h as n, i as l, j as p, k as d, l as f, C, m as c, G as m, Q as x, n as S, S as u, o as G } from "../../chunks/SSOHandler-B5rmYk8s.js";
2
2
  import { B as T } from "../../chunks/BwgSpace-CnLM4qcg.js";
3
3
  import { r as P } from "../../chunks/realFormat-DRGLFabQ.js";
4
4
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"BwgForm.d.ts","sourceRoot":"","sources":["../../../src/components/core/BwgForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,MAAM,CAAC;AAGvC,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,OAAO,8FAeZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"BwgForm.d.ts","sourceRoot":"","sources":["../../../src/components/core/BwgForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,SAAS,EAAE,MAAM,MAAM,CAAC;AAGvD,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,OAAO,8FAsBZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -12,6 +12,11 @@ export interface BwgUploaderProps {
12
12
  onUploadComplete?: (fileDetails: {
13
13
  fileNameP: string;
14
14
  fileNameL: string;
15
+ filePath: string;
16
+ fileSize: number;
17
+ fileExt: string;
18
+ fileGrpKey: string;
19
+ fileKey: string;
15
20
  }) => void;
16
21
  /**
17
22
  * 파일 목록을 조회하는 거래코드.
@@ -1 +1 @@
1
- {"version":3,"file":"BwgUploader.d.ts","sourceRoot":"","sources":["../../../src/components/core/BwgUploader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AA+B3D,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,IAAI,CAAC;IACX;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6FD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiP3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BwgUploader.d.ts","sourceRoot":"","sources":["../../../src/components/core/BwgUploader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AA+B3D,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,IAAI,CAAC;IACX;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqGD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAuP3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/BwgLargeUploader-xAjj4TQ1.cjs");exports.BwgButton=e.BwgButton;exports.BwgCheck=e.BwgCheck;exports.BwgCheckList=e.BwgCheckList;exports.BwgDatePicker=e.BwgDatePicker;exports.BwgForm=e.BwgForm;exports.BwgFormItem=e.BwgFormItem;exports.BwgInput=e.BwgInput;exports.BwgLargeUploader=e.BwgLargeUploader;exports.BwgMaskedInput=e.BwgMaskedInput;exports.BwgMaskedPicker=e.BwgMaskedPicker;exports.BwgMultiSelect=e.BwgMultiSelect;exports.BwgNumber=e.BwgNumber;exports.BwgRadio=e.BwgRadio;exports.BwgRangePicker=e.BwgRangePicker;exports.BwgSearch=e.BwgSearch;exports.BwgSelect=e.BwgSelect;exports.BwgTextArea=e.BwgTextArea;exports.BwgUploader=e.BwgUploader;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/BwgLargeUploader-1yDku10l.cjs");exports.BwgButton=e.BwgButton;exports.BwgCheck=e.BwgCheck;exports.BwgCheckList=e.BwgCheckList;exports.BwgDatePicker=e.BwgDatePicker;exports.BwgForm=e.BwgForm;exports.BwgFormItem=e.BwgFormItem;exports.BwgInput=e.BwgInput;exports.BwgLargeUploader=e.BwgLargeUploader;exports.BwgMaskedInput=e.BwgMaskedInput;exports.BwgMaskedPicker=e.BwgMaskedPicker;exports.BwgMultiSelect=e.BwgMultiSelect;exports.BwgNumber=e.BwgNumber;exports.BwgRadio=e.BwgRadio;exports.BwgRangePicker=e.BwgRangePicker;exports.BwgSearch=e.BwgSearch;exports.BwgSelect=e.BwgSelect;exports.BwgTextArea=e.BwgTextArea;exports.BwgUploader=e.BwgUploader;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import { o as g, j as s, k as B, g as w, a as r, B as t, f as c, q as o, d as k, e as i, n as d, m as l, i as m, h as p, c as n, b as u, l as h, p as I } from "../../chunks/BwgLargeUploader-CZllyq7K.js";
1
+ import { o as g, j as s, k as B, g as w, a as r, B as t, f as c, q as o, d as k, e as i, n as d, m as l, i as m, h as p, c as n, b as u, l as h, p as I } from "../../chunks/BwgLargeUploader-DsaIHpYz.js";
2
2
  export {
3
3
  g as BwgButton,
4
4
  s as BwgCheck,
@@ -0,0 +1,5 @@
1
+ export default function LoadingOverlay({ text, backdrop, }: {
2
+ text?: string;
3
+ backdrop?: boolean;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=LoadingOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/layout/LoadingOverlay.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,IAAgB,EAChB,QAAgB,GACjB,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAkBA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/PublicLayout-BiTPwkVq.cjs");exports.ProgressOverlay=e.ProgressOverlay;exports.ProtectedLayout=e.ProtectedLayout;exports.PublicLayout=e.PublicLayout;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/PublicLayout-3v46YZdi.cjs"),r=require("../../chunks/LoadingOverlay-NX9Mo_6n.cjs");exports.ProgressOverlay=e.ProgressOverlay;exports.ProtectedLayout=e.ProtectedLayout;exports.PublicLayout=e.PublicLayout;exports.LoadingOverlay=r.LoadingOverlay;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,5 @@
1
1
  export { default as ProgressOverlay } from './ProgressOverlay';
2
2
  export { default as ProtectedLayout } from './ProtectLayout';
3
3
  export { default as PublicLayout } from './PublicLayout';
4
+ export { default as LoadingOverlay } from './LoadingOverlay';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,5 +1,7 @@
1
- import { P as r, a as e, b as s } from "../../chunks/PublicLayout-g9WMtoZ0.js";
1
+ import { P as r, a as e, b as s } from "../../chunks/PublicLayout-B4wGo0ut.js";
2
+ import { L as y } from "../../chunks/LoadingOverlay-CAO6_FuF.js";
2
3
  export {
4
+ y as LoadingOverlay,
3
5
  r as ProgressOverlay,
4
6
  e as ProtectedLayout,
5
7
  s as PublicLayout
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}