@bwg-ui/core 1.1.7 → 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.
- package/README.md +1 -1
- package/dist/chunks/BwgLargeUploader-1yDku10l.cjs +3 -0
- package/dist/chunks/BwgLargeUploader-1yDku10l.cjs.map +1 -0
- package/dist/chunks/{BwgLargeUploader-CZllyq7K.js → BwgLargeUploader-DsaIHpYz.js} +311 -297
- package/dist/chunks/BwgLargeUploader-DsaIHpYz.js.map +1 -0
- package/dist/chunks/LoadingOverlay-CAO6_FuF.js +29 -0
- package/dist/chunks/LoadingOverlay-CAO6_FuF.js.map +1 -0
- package/dist/chunks/LoadingOverlay-NX9Mo_6n.cjs +2 -0
- package/dist/chunks/LoadingOverlay-NX9Mo_6n.cjs.map +1 -0
- package/dist/chunks/{PublicLayout-BiTPwkVq.cjs → PublicLayout-3v46YZdi.cjs} +2 -2
- package/dist/chunks/{PublicLayout-BiTPwkVq.cjs.map → PublicLayout-3v46YZdi.cjs.map} +1 -1
- package/dist/chunks/{PublicLayout-g9WMtoZ0.js → PublicLayout-B4wGo0ut.js} +2 -2
- package/dist/chunks/{PublicLayout-g9WMtoZ0.js.map → PublicLayout-B4wGo0ut.js.map} +1 -1
- package/dist/chunks/{SSOHandler-Bu3v95k0.js → SSOHandler-B5rmYk8s.js} +2565 -2568
- package/dist/chunks/SSOHandler-B5rmYk8s.js.map +1 -0
- package/dist/chunks/SSOHandler-DjL0sH7k.cjs +184 -0
- package/dist/chunks/SSOHandler-DjL0sH7k.cjs.map +1 -0
- package/dist/chunks/ScreenProtectContext-3my4PHFa.js +154 -0
- package/dist/chunks/ScreenProtectContext-3my4PHFa.js.map +1 -0
- package/dist/chunks/ScreenProtectContext-CVuXrJm6.cjs +2 -0
- package/dist/chunks/ScreenProtectContext-CVuXrJm6.cjs.map +1 -0
- package/dist/chunks/{UtilsContext-CSgz9o2Z.js → UtilsContext-BKUZmmKx.js} +2 -2
- package/dist/chunks/{UtilsContext-CSgz9o2Z.js.map → UtilsContext-BKUZmmKx.js.map} +1 -1
- package/dist/chunks/{UtilsContext-5l7yFRQI.cjs → UtilsContext-DczQBfFi.cjs} +2 -2
- package/dist/chunks/{UtilsContext-5l7yFRQI.cjs.map → UtilsContext-DczQBfFi.cjs.map} +1 -1
- package/dist/chunks/{commonUtils-BV6WFv-z.js → commonUtils-Cvx6_eK2.js} +24 -23
- package/dist/chunks/commonUtils-Cvx6_eK2.js.map +1 -0
- package/dist/chunks/commonUtils-DaFg0y7C.cjs +2 -0
- package/dist/chunks/commonUtils-DaFg0y7C.cjs.map +1 -0
- package/dist/chunks/menuViewStore-BJak0NMm.cjs +3 -0
- package/dist/chunks/menuViewStore-BJak0NMm.cjs.map +1 -0
- package/dist/chunks/menuViewStore-BwR3vgPM.js +339 -0
- package/dist/chunks/menuViewStore-BwR3vgPM.js.map +1 -0
- package/dist/components/common/BwgButtonGroup.d.ts +2 -2
- package/dist/components/common/BwgButtonGroup.d.ts.map +1 -1
- package/dist/components/common/BwgTitleBox.d.ts +2 -2
- package/dist/components/common/BwgTitleBox.d.ts.map +1 -1
- package/dist/components/common/BwgView.d.ts.map +1 -1
- package/dist/components/common/QuickServiceToggle.d.ts.map +1 -1
- package/dist/components/common/index.cjs +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/core/BwgForm.d.ts.map +1 -1
- package/dist/components/core/BwgUploader.d.ts +5 -0
- package/dist/components/core/BwgUploader.d.ts.map +1 -1
- package/dist/components/core/index.cjs +1 -1
- package/dist/components/core/index.js +1 -1
- package/dist/components/layout/LoadingOverlay.d.ts +5 -0
- package/dist/components/layout/LoadingOverlay.d.ts.map +1 -0
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +3 -1
- package/dist/components/layout/index.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +295 -291
- package/dist/index.js.map +1 -1
- package/dist/provider/contexts/ScreenProtectContext.d.ts +9 -4
- package/dist/provider/contexts/ScreenProtectContext.d.ts.map +1 -1
- package/dist/provider/hooks/index.d.ts +0 -1
- package/dist/provider/hooks/index.d.ts.map +1 -1
- package/dist/provider/index.cjs +1 -1
- package/dist/provider/index.js +2 -2
- package/dist/stores/favoriteStore.d.ts +1 -1
- package/dist/stores/favoriteStore.d.ts.map +1 -1
- package/dist/stores/index.cjs +1 -1
- package/dist/stores/index.cjs.map +1 -1
- package/dist/stores/index.d.ts +34 -3
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +17 -15
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/menuModelStore.d.ts +36 -0
- package/dist/stores/menuModelStore.d.ts.map +1 -0
- package/dist/stores/menuViewStore.d.ts +31 -0
- package/dist/stores/menuViewStore.d.ts.map +1 -0
- package/dist/styles/assets/images/contents/icon/ico-quick-tab-move.svg +4 -4
- package/dist/styles/assets/images/logos/krx-logo-full.svg +35 -35
- package/dist/styles/components.css +2 -2
- package/dist/styles/layout.css +7 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +10 -4
- package/scripts/gen-component-registry.js +138 -0
- package/dist/chunks/BwgLargeUploader-CZllyq7K.js.map +0 -1
- package/dist/chunks/BwgLargeUploader-xAjj4TQ1.cjs +0 -3
- package/dist/chunks/BwgLargeUploader-xAjj4TQ1.cjs.map +0 -1
- package/dist/chunks/SSOHandler-Bu3v95k0.js.map +0 -1
- package/dist/chunks/SSOHandler-kghWABfM.cjs +0 -184
- package/dist/chunks/SSOHandler-kghWABfM.cjs.map +0 -1
- package/dist/chunks/ScreenProtectContext-ofv2QgMp.cjs +0 -2
- package/dist/chunks/ScreenProtectContext-ofv2QgMp.cjs.map +0 -1
- package/dist/chunks/ScreenProtectContext-zByHldrr.js +0 -115
- package/dist/chunks/ScreenProtectContext-zByHldrr.js.map +0 -1
- package/dist/chunks/commonUtils-BV6WFv-z.js.map +0 -1
- package/dist/chunks/commonUtils-L9Jgc5y-.cjs +0 -2
- package/dist/chunks/commonUtils-L9Jgc5y-.cjs.map +0 -1
- package/dist/chunks/menuStore-2zsN-PRt.js +0 -266
- package/dist/chunks/menuStore-2zsN-PRt.js.map +0 -1
- package/dist/chunks/menuStore-D7zl2c89.cjs +0 -2
- package/dist/chunks/menuStore-D7zl2c89.cjs.map +0 -1
- package/dist/provider/hooks/useViewState.d.ts +0 -15
- package/dist/provider/hooks/useViewState.d.ts.map +0 -1
- package/dist/stores/menuStore.d.ts +0 -53
- 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?:
|
|
21
|
-
size?:
|
|
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;
|
|
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:
|
|
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?:
|
|
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;
|
|
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":"
|
|
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;
|
|
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-
|
|
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-
|
|
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,
|
|
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;
|
|
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-
|
|
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-
|
|
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 @@
|
|
|
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-
|
|
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-
|
|
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":";;"}
|