@bwg-ui/core 1.2.29 → 1.2.31

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 (62) hide show
  1. package/dist/chunks/CMSearchIntfGwP01-C4Kg1iWo.cjs +1 -0
  2. package/dist/chunks/CMSearchIntfGwP01-CIf-fHXy.js +280 -0
  3. package/dist/chunks/MenuReport-DQS5SAmi.cjs +1 -0
  4. package/dist/chunks/{MenuReport-BOTGoNCO.js → MenuReport-GeXRkcDD.js} +26 -26
  5. package/dist/chunks/common-components-CyqUT5Vj.cjs +1109 -0
  6. package/dist/chunks/{common-components-DAW4iyA6.js → common-components-DNos8aEG.js} +14462 -14840
  7. package/dist/chunks/{layout-components-BtcSZhtL.js → layout-components-C4ehuALr.js} +537 -453
  8. package/dist/chunks/layout-components-USIA9TVn.cjs +35 -0
  9. package/dist/components/common/ButtonAccessController.d.ts.map +1 -1
  10. package/dist/components/common/BwgGrid.d.ts.map +1 -1
  11. package/dist/components/common/BwgTitleBox.d.ts.map +1 -1
  12. package/dist/components/common/BwgView.d.ts.map +1 -1
  13. package/dist/components/common/SearchBox.d.ts.map +1 -1
  14. package/dist/components/common/index.cjs +1 -1
  15. package/dist/components/common/index.js +1 -1
  16. package/dist/components/core/BwgButton.d.ts +2 -2
  17. package/dist/components/core/BwgButton.d.ts.map +1 -1
  18. package/dist/components/core/index.cjs +1 -1
  19. package/dist/components/core/index.js +299 -276
  20. package/dist/components/guide/index.cjs +1 -1
  21. package/dist/components/guide/index.js +1 -1
  22. package/dist/components/layout/custom/ConfigurableHeader.d.ts.map +1 -1
  23. package/dist/components/layout/index.cjs +1 -1
  24. package/dist/components/layout/index.js +1 -1
  25. package/dist/components/layout/types.d.ts +7 -0
  26. package/dist/components/layout/types.d.ts.map +1 -1
  27. package/dist/components/pages/rsrc/CMFileMstrM01.d.ts.map +1 -1
  28. package/dist/components/popup/CMSearchIntfGwP01.d.ts +8 -0
  29. package/dist/components/popup/CMSearchIntfGwP01.d.ts.map +1 -0
  30. package/dist/components/popup/SearchOrganizationP01.d.ts +2 -1
  31. package/dist/components/popup/SearchOrganizationP01.d.ts.map +1 -1
  32. package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -1
  33. package/dist/components/popup/index.cjs +1 -1
  34. package/dist/components/popup/index.js +1 -1
  35. package/dist/index.cjs +1 -1
  36. package/dist/index.js +248 -246
  37. package/dist/provider/contexts/ServiceCodeContext.d.ts.map +1 -1
  38. package/dist/provider/index.cjs +1 -1
  39. package/dist/provider/index.js +90 -90
  40. package/dist/public/realgrid/css/realgrid-style-custom.css +3 -3
  41. package/dist/stores/index.cjs +2 -2
  42. package/dist/stores/index.js +27 -6
  43. package/dist/stores/userStore.d.ts +15 -0
  44. package/dist/stores/userStore.d.ts.map +1 -1
  45. package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
  46. package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
  47. package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
  48. package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
  49. package/dist/styles/layout.css +1 -1
  50. package/dist/utils/{fileUtils.d.ts → FileUtils.d.ts} +1 -1
  51. package/dist/utils/FileUtils.d.ts.map +1 -0
  52. package/dist/utils/colorFormat.d.ts +169 -0
  53. package/dist/utils/colorFormat.d.ts.map +1 -0
  54. package/dist/utils/index.cjs +1 -1
  55. package/dist/utils/index.d.ts +179 -9
  56. package/dist/utils/index.d.ts.map +1 -1
  57. package/dist/utils/index.js +1152 -954
  58. package/package.json +1 -1
  59. package/dist/chunks/MenuReport-YSnbFhL_.cjs +0 -1
  60. package/dist/chunks/common-components-BOFr4JmN.cjs +0 -1109
  61. package/dist/chunks/layout-components-CthY7deC.cjs +0 -35
  62. package/dist/utils/fileUtils.d.ts.map +0 -1
@@ -1,16 +1,39 @@
1
1
  import { jsx as r, jsxs as q } from "react/jsx-runtime";
2
- import { Button as J, Form as B, Checkbox as ie, ConfigProvider as pe, DatePicker as le, message as b, Card as ye, List as P, Input as te, Spin as be, Upload as G, Typography as Fe, Flex as de, Progress as Se, notification as we, Tooltip as _e, Select as se, Space as ae, InputNumber as Ie, Radio as Ne, Switch as De } from "antd";
3
- import { memo as Me, useState as T, useEffect as j, useMemo as ee, forwardRef as ke, useRef as X, cloneElement as ve } from "react";
4
- import z from "dayjs";
5
- import { PaperClipOutlined as xe, DownloadOutlined as Be, DeleteOutlined as Ee, InboxOutlined as Oe, UploadOutlined as Ye, CloudUploadOutlined as Ve, CheckCircleOutlined as Ue, CloseCircleOutlined as Ae, FileTextOutlined as ze, SearchOutlined as Te } from "@ant-design/icons";
6
- import { isEmpty as Re, debounce as $e, findIndex as ne } from "lodash";
7
- import { callServiceBySysCd as je, getUserInfo as K, callService as W } from "../../utils/index.js";
8
- import He from "jszip";
2
+ import { Button as X, Form as B, Checkbox as ie, ConfigProvider as pe, DatePicker as le, message as L, Card as ye, List as ee, Input as te, Spin as Le, Upload as G, Typography as Fe, Flex as de, Progress as be, notification as we, Tooltip as _e, Select as se, Space as ae, InputNumber as Ie, Radio as Ne, Switch as Me } from "antd";
3
+ import { useMemo as W, memo as De, useState as T, useEffect as j, forwardRef as ke, useRef as Z, cloneElement as xe } from "react";
4
+ import { useUserStore as ve, usePopupStore as Be } from "../../stores/index.js";
5
+ import A from "dayjs";
6
+ import { PaperClipOutlined as Ee, DownloadOutlined as Oe, DeleteOutlined as ze, InboxOutlined as Ve, UploadOutlined as Ye, CloudUploadOutlined as Ue, CheckCircleOutlined as Ae, CloseCircleOutlined as Te, FileTextOutlined as Re, SearchOutlined as $e } from "@ant-design/icons";
7
+ import { isEmpty as je, debounce as He, findIndex as ne } from "lodash";
8
+ import { callServiceBySysCd as Ke, getUserInfo as K, callService as J } from "../../utils/index.js";
9
+ import Ge from "jszip";
9
10
  import Ce from "imask";
10
- import { usePopupStore as Ke } from "../../stores/index.js";
11
- import { DndProvider as Ge, useDrop as qe, useDrag as We } from "react-dnd";
12
- import { HTML5Backend as Je } from "react-dnd-html5-backend";
13
- const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
11
+ import { DndProvider as qe, useDrop as We, useDrag as Je } from "react-dnd";
12
+ import { HTML5Backend as Xe } from "react-dnd-html5-backend";
13
+ const Yt = (t) => {
14
+ const { componentSize: e } = ve(), l = W(() => t.size ? t.size : {
15
+ 0: "small",
16
+ 1: "middle",
17
+ 2: "large"
18
+ }[e], [e, t.size]), i = W(() => ({
19
+ 0: 12,
20
+ // 작게
21
+ 1: 14,
22
+ // 보통
23
+ 2: 16
24
+ // 크게
25
+ })[e], [e]);
26
+ return /* @__PURE__ */ r(
27
+ X,
28
+ {
29
+ ...t,
30
+ size: l,
31
+ className: "bwg-btn",
32
+ style: { fontSize: `${i}px`, ...t.style },
33
+ children: t.children
34
+ }
35
+ );
36
+ }, D = De(
14
37
  ({
15
38
  children: t,
16
39
  label: e,
@@ -50,7 +73,7 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
50
73
  }
51
74
  );
52
75
  }
53
- ), Yt = ({
76
+ ), Ct = ({
54
77
  itemProps: t,
55
78
  inputProps: e = {
56
79
  format: "YN"
@@ -58,7 +81,7 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
58
81
  }) => {
59
82
  const l = B.useFormInstance();
60
83
  return /* @__PURE__ */ r(
61
- M,
84
+ D,
62
85
  {
63
86
  ...t,
64
87
  getValueProps: (n) => ({ checked: e.format === "boolean" ? !!n : n === "Y" }),
@@ -68,7 +91,7 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
68
91
  }, children: e?.title })
69
92
  }
70
93
  );
71
- }, Ct = ({ itemProps: t, inputProps: e }) => {
94
+ }, St = ({ itemProps: t, inputProps: e }) => {
72
95
  const l = B.useFormInstance(), [i, n] = T(
73
96
  t?.initialValue ?? []
74
97
  ), [o, u] = T([]), a = o.length > 0 && o.length == i?.length, d = i?.length > 0 && i.length < o.length;
@@ -78,16 +101,16 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
78
101
  n(i);
79
102
  }, [i]);
80
103
  const s = (Y) => {
81
- const L = [];
104
+ const S = [];
82
105
  return (Y || []).map((k, E) => {
83
- L.push(k.value);
84
- }), L;
106
+ S.push(k.value);
107
+ }), S;
85
108
  }, C = (Y) => {
86
109
  n(Y.target.checked ? o : []), l.setFieldValue(t?.name, Y.target.checked ? o : []);
87
110
  }, p = (Y) => {
88
111
  n(Y), l.setFieldValue(t?.name, Y), e?.onChange && typeof e?.onChange == "function" && e?.onChange(Y);
89
112
  };
90
- return /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ q(pe, { theme: {
113
+ return /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ q(pe, { theme: {
91
114
  components: {
92
115
  Checkbox: {
93
116
  colorPrimary: "var(--check-primary)",
@@ -129,10 +152,10 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
129
152
  type: l = "date",
130
153
  returnType: i = "string"
131
154
  }) => {
132
- const { displayFormat: n, outputFormat: o } = ee(
155
+ const { displayFormat: n, outputFormat: o } = W(
133
156
  () => ue[l],
134
157
  [l]
135
- ), u = ee(
158
+ ), u = W(
136
159
  () => Object.values(ue).map((a) => a.outputFormat).sort((a, d) => {
137
160
  if (a.length === d.length) {
138
161
  if (a === o) return -1;
@@ -144,12 +167,12 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
144
167
  // type(outputFormat)이 바뀔 때마다 재정렬
145
168
  );
146
169
  return /* @__PURE__ */ r(
147
- M,
170
+ D,
148
171
  {
149
172
  ...t,
150
173
  getValueProps: (a) => ({
151
174
  // 폼에 저장된 값(문자열 또는 Dayjs)을 DatePicker가 요구하는 Dayjs로 변환
152
- value: a ? z.isDayjs(a) ? a : z(a, u) : null
175
+ value: a ? A.isDayjs(a) ? a : A(a, u) : null
153
176
  }),
154
177
  normalize: (a) => a ? i === "dayjs" ? a : a.format(o) : null,
155
178
  children: /* @__PURE__ */ r(
@@ -171,7 +194,7 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
171
194
  }) => {
172
195
  const [n, o] = T([]);
173
196
  j(() => {
174
- t && e ? i != __SYS_CD__ ? je(__APP_CD__, e, {
197
+ t && e ? i != __SYS_CD__ ? Ke(__APP_CD__, e, {
175
198
  crprCd: K()?.crprCd,
176
199
  sysCd: i,
177
200
  fileGrpKey: t
@@ -185,8 +208,8 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
185
208
  o(d);
186
209
  }
187
210
  }).catch((a) => {
188
- console.error("파일 목록 조회 서비스 호출에 실패했습니다.", a), b.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
189
- }) : W(e, {
211
+ console.error("파일 목록 조회 서비스 호출에 실패했습니다.", a), L.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
212
+ }) : J(e, {
190
213
  crprCd: K()?.crprCd,
191
214
  sysCd: i,
192
215
  fileGrpKey: t
@@ -200,7 +223,7 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
200
223
  o(d);
201
224
  }
202
225
  }).catch((a) => {
203
- console.error("파일 목록 조회 서비스 호출에 실패했습니다.", a), b.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
226
+ console.error("파일 목록 조회 서비스 호출에 실패했습니다.", a), L.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
204
227
  }) : o([]);
205
228
  }, [t, e]);
206
229
  const u = async (a) => {
@@ -227,35 +250,35 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
227
250
  const C = await s.blob(), p = window.URL.createObjectURL(C), Y = document.createElement("a");
228
251
  Y.href = p, Y.setAttribute("download", a.name), document.body.appendChild(Y), Y.click(), document.body.removeChild(Y), window.URL.revokeObjectURL(p);
229
252
  } catch (d) {
230
- console.error(d), b.error(
253
+ console.error(d), L.error(
231
254
  d.message || "파일을 다운로드하는 중 오류가 발생했습니다."
232
255
  );
233
256
  }
234
257
  };
235
- return Re(n) ? null : /* @__PURE__ */ r(ye, { title: "파일 목록", children: /* @__PURE__ */ r(
236
- P,
258
+ return je(n) ? null : /* @__PURE__ */ r(ye, { title: "파일 목록", children: /* @__PURE__ */ r(
259
+ ee,
237
260
  {
238
261
  dataSource: n,
239
262
  renderItem: (a) => /* @__PURE__ */ r(
240
- P.Item,
263
+ ee.Item,
241
264
  {
242
265
  actions: l ? [] : [
243
266
  /* @__PURE__ */ r(
244
- J,
267
+ X,
245
268
  {
246
269
  type: "text",
247
- icon: /* @__PURE__ */ r(Be, {}),
270
+ icon: /* @__PURE__ */ r(Oe, {}),
248
271
  onClick: () => u(a)
249
272
  },
250
273
  "download"
251
274
  )
252
275
  ],
253
- children: /* @__PURE__ */ r(P.Item.Meta, { avatar: /* @__PURE__ */ r(xe, {}), title: a.name })
276
+ children: /* @__PURE__ */ r(ee.Item.Meta, { avatar: /* @__PURE__ */ r(Ee, {}), title: a.name })
254
277
  }
255
278
  )
256
279
  }
257
280
  ) });
258
- }, Xe = ke(
281
+ }, Ze = ke(
259
282
  ({ children: t, labelCol: e, style: l, className: i, ...n }, o) => /* @__PURE__ */ r(
260
283
  pe,
261
284
  {
@@ -281,8 +304,8 @@ const Ft = (t) => /* @__PURE__ */ r(J, { ...t, className: "bwg-btn" }), M = Me(
281
304
  }
282
305
  )
283
306
  );
284
- Xe.displayName = "BwgForm";
285
- const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ r(te, { ...e }) }), { Text: oe } = Fe, { Dragger: Ze } = G, Qe = [
307
+ Ze.displayName = "BwgForm";
308
+ const wt = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ r(te, { ...e }) }), { Text: oe } = Fe, { Dragger: Qe } = G, Pe = [
286
309
  ".pdf",
287
310
  ".xlsx",
288
311
  ".xls",
@@ -300,41 +323,41 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
300
323
  ".gif",
301
324
  // 압축
302
325
  ".zip"
303
- ], Pe = (t, e = 2) => {
326
+ ], et = (t, e = 2) => {
304
327
  if (t === 0) return "0 Bytes";
305
328
  const l = 1024, i = e < 0 ? 0 : e, n = ["Bytes", "KB", "MB", "GB", "TB"], o = Math.floor(Math.log(t) / Math.log(l));
306
329
  return parseFloat((t / Math.pow(l, o)).toFixed(i)) + " " + n[o];
307
- }, wt = ({
330
+ }, _t = ({
308
331
  title: t = "첨부파일",
309
332
  fileGrpKey: e,
310
333
  onUploadComplete: l,
311
334
  onSuccessTrxCd: i = "SCMFILE00102",
312
335
  // BwgUploader와 동일한 기본 trxCd 설정
313
336
  anotherServiceTrxCd: n = "SCMFILE00105",
314
- allowedExtensions: o = Qe,
337
+ allowedExtensions: o = Pe,
315
338
  maxFileSize: u = 2048
316
339
  // 기본값 2GB
317
340
  }) => {
318
- const [a, d] = T([]), [s, C] = T(!1), [p, Y] = T(!1), [L, k] = T(0), E = (m) => {
341
+ const [a, d] = T([]), [s, C] = T(!1), [p, Y] = T(!1), [S, k] = T(0), E = (m) => {
319
342
  if (o && o.length > 0) {
320
343
  const _ = ((O) => {
321
344
  const H = O.lastIndexOf(".");
322
345
  return H === -1 ? "" : O.substring(H).toLowerCase();
323
346
  })(m.name);
324
347
  if (!o.includes(_))
325
- return b.error(
348
+ return L.error(
326
349
  `${m.name} 파일은 허용되지 않는 확장자입니다. (${o.join(
327
350
  ", "
328
351
  )}만 가능)`
329
352
  ), !1;
330
353
  }
331
354
  return !0;
332
- }, v = async () => {
333
- const m = a.filter((I) => I.status !== "done"), h = m.reduce(
355
+ }, x = async () => {
356
+ const m = a.filter((I) => I.status !== "done"), g = m.reduce(
334
357
  (I, R) => I + (R.size || 0),
335
358
  0
336
359
  ), _ = 2 * 1024 * 1024 * 1024;
337
- if (h > _) {
360
+ if (g > _) {
338
361
  we.error({
339
362
  message: "업로드 용량 초과",
340
363
  description: "한 번에 업로드할 수 있는 총 파일 용량은 2GB를 초과할 수 없습니다."
@@ -342,7 +365,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
342
365
  return;
343
366
  }
344
367
  if (m.length === 0) {
345
- b.warning(
368
+ L.warning(
346
369
  "업로드할 파일이 없거나 모든 파일이 이미 업로드되었습니다."
347
370
  );
348
371
  return;
@@ -350,7 +373,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
350
373
  Y(!0);
351
374
  let O;
352
375
  try {
353
- const I = new He();
376
+ const I = new Ge();
354
377
  m.forEach((R) => {
355
378
  R.originFileObj && I.file(R.name, R.originFileObj);
356
379
  }), O = await I.generateAsync({
@@ -362,53 +385,53 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
362
385
  }
363
386
  });
364
387
  } catch (I) {
365
- Y(!1), b.error("파일을 압축하는 중 오류가 발생했습니다."), console.error("Zipping error:", I);
388
+ Y(!1), L.error("파일을 압축하는 중 오류가 발생했습니다."), console.error("Zipping error:", I);
366
389
  return;
367
390
  }
368
391
  Y(!1);
369
392
  const H = new FormData();
370
393
  H.append("file", O, "upload.zip"), C(!0), k(0);
371
394
  try {
372
- const I = await new Promise((y, S) => {
373
- const x = new XMLHttpRequest();
374
- x.open("POST", "/api/upload-large", !0), x.upload.onprogress = (N) => {
395
+ const I = await new Promise((y, b) => {
396
+ const v = new XMLHttpRequest();
397
+ v.open("POST", "/api/upload-large", !0), v.upload.onprogress = (N) => {
375
398
  if (N.lengthComputable) {
376
399
  const re = Math.round(
377
400
  N.loaded / N.total * 100
378
401
  );
379
402
  k(re);
380
403
  }
381
- }, x.onload = () => {
382
- if (x.status >= 200 && x.status < 300)
404
+ }, v.onload = () => {
405
+ if (v.status >= 200 && v.status < 300)
383
406
  try {
384
- const N = JSON.parse(x.responseText);
385
- N.success ? y(N) : S(
407
+ const N = JSON.parse(v.responseText);
408
+ N.success ? y(N) : b(
386
409
  new Error(N.message || "파일 업로드에 실패했습니다.")
387
410
  );
388
411
  } catch {
389
- S(new Error("잘못된 서버 응답입니다."));
412
+ b(new Error("잘못된 서버 응답입니다."));
390
413
  }
391
414
  else
392
415
  try {
393
- const N = JSON.parse(x.responseText);
394
- S(new Error(N.message || `서버 오류: ${x.status}`));
416
+ const N = JSON.parse(v.responseText);
417
+ b(new Error(N.message || `서버 오류: ${v.status}`));
395
418
  } catch {
396
- S(new Error(`서버 오류: ${x.status}`));
419
+ b(new Error(`서버 오류: ${v.status}`));
397
420
  }
398
- }, x.onerror = () => {
399
- S(new Error("네트워크 오류가 발생했습니다."));
400
- }, x.send(H);
421
+ }, v.onerror = () => {
422
+ b(new Error("네트워크 오류가 발생했습니다."));
423
+ }, v.send(H);
401
424
  });
402
- b.success(
425
+ L.success(
403
426
  I.message || "압축 파일이 성공적으로 업로드되었습니다."
404
427
  );
405
428
  const R = a.map(
406
- (y) => m.find((S) => S.uid === y.uid) ? { ...y, status: "done" } : y
429
+ (y) => m.find((b) => b.uid === y.uid) ? { ...y, status: "done" } : y
407
430
  );
408
431
  if (d(R), i && I.uploadedFiles && Array.isArray(I.uploadedFiles)) {
409
432
  const y = K();
410
- I.uploadedFiles.forEach((S) => {
411
- const x = {
433
+ I.uploadedFiles.forEach((b) => {
434
+ const v = {
412
435
  crprCd: y?.crprCd,
413
436
  sysCd: __SYS_CD__,
414
437
  fileGrpKey: e,
@@ -417,44 +440,44 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
417
440
  crprCd: y?.crprCd,
418
441
  sysCd: __SYS_CD__,
419
442
  fileGrpKey: e,
420
- physFileNm: S.fileNameP,
421
- lgclFileNm: S.fileNameL,
422
- filePath: S.filePath,
423
- fileExtn: S.fileExt,
424
- fileSize: S.fileSize,
443
+ physFileNm: b.fileNameP,
444
+ lgclFileNm: b.fileNameL,
445
+ filePath: b.filePath,
446
+ fileExtn: b.fileExt,
447
+ fileSize: b.fileSize,
425
448
  mltpYn: "Y"
426
449
  }
427
450
  ]
428
451
  };
429
- W(i, x).then((N) => {
430
- const re = a.map((Z) => ({
452
+ J(i, v).then((N) => {
453
+ const re = a.map((Q) => ({
431
454
  crprCd: y?.crprCd,
432
455
  sysCd: __SYS_CD__,
433
456
  fileGrpKey: N.sub[0].fileGrpKey,
434
457
  fileKey: N.sub[0].fileKey,
435
- lgclFileNm: Z.name,
436
- fileSize: Z.size,
437
- fileExtn: Z.name.split(".").pop(),
438
- fileType: Z.type
458
+ lgclFileNm: Q.name,
459
+ fileSize: Q.size,
460
+ fileExtn: Q.name.split(".").pop(),
461
+ fileType: Q.type
439
462
  }));
440
- W(n, {
463
+ J(n, {
441
464
  // 파일 목록에 fileKey를 추가합니다.
442
465
  sub: re
443
466
  });
444
467
  }).catch((N) => {
445
- console.error("후처리 서비스 호출 실패:", N), b.error(
446
- `${S.fileNameL} 파일의 후처리 작업에 실패했습니다.`
468
+ console.error("후처리 서비스 호출 실패:", N), L.error(
469
+ `${b.fileNameL} 파일의 후처리 작업에 실패했습니다.`
447
470
  );
448
471
  }), l && l({
449
- fileNameP: S.fileNameP,
450
- fileNameL: S.fileNameL
472
+ fileNameP: b.fileNameP,
473
+ fileNameL: b.fileNameL
451
474
  });
452
475
  });
453
476
  }
454
477
  } catch (I) {
455
- b.error(I.message || "파일 업로드 중 오류가 발생했습니다.");
478
+ L.error(I.message || "파일 업로드 중 오류가 발생했습니다.");
456
479
  const R = a.map(
457
- (y) => m.find((S) => S.uid === y.uid) ? {
480
+ (y) => m.find((b) => b.uid === y.uid) ? {
458
481
  ...y,
459
482
  status: "error",
460
483
  response: I.message || "파일 업로드 중 오류가 발생했습니다."
@@ -467,38 +490,38 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
467
490
  }, f = {
468
491
  multiple: !0,
469
492
  fileList: a,
470
- beforeUpload: (m) => E(m) ? u && m.size >= u * 1024 * 1024 ? (b.error(
493
+ beforeUpload: (m) => E(m) ? u && m.size >= u * 1024 * 1024 ? (L.error(
471
494
  `대용량 첨부 파일 최대 크기는 ${(u / 1024).toFixed(
472
495
  1
473
496
  )}GB입니다.`
474
497
  ), G.LIST_IGNORE) : !1 : G.LIST_IGNORE,
475
498
  onChange: ({ fileList: m }) => {
476
- const h = new Map(a.map((_) => [_.uid, _]));
499
+ const g = new Map(a.map((_) => [_.uid, _]));
477
500
  m.forEach((_) => {
478
- h.set(_.uid, _);
479
- }), d(Array.from(h.values()));
501
+ g.set(_.uid, _);
502
+ }), d(Array.from(g.values()));
480
503
  },
481
504
  onRemove: (m) => {
482
- const h = a.filter((_) => _.uid !== m.uid);
483
- d(h);
505
+ const g = a.filter((_) => _.uid !== m.uid);
506
+ d(g);
484
507
  },
485
508
  showUploadList: !1
486
509
  // 수동으로 목록을 렌더링하므로 antd의 기본 목록은 숨깁니다.
487
510
  };
488
511
  return /* @__PURE__ */ r(
489
- be,
512
+ Le,
490
513
  {
491
514
  spinning: s || p,
492
- tip: p ? "파일 압축 중..." : `파일 업로드 중... ${L}%`,
515
+ tip: p ? "파일 압축 중..." : `파일 업로드 중... ${S}%`,
493
516
  children: /* @__PURE__ */ q("div", { className: "bwg-large-uploader-container", children: [
494
517
  /* @__PURE__ */ r(
495
518
  ye,
496
519
  {
497
520
  title: /* @__PURE__ */ r(oe, { strong: !0, children: t }),
498
- extra: /* @__PURE__ */ r(G, { ...f, children: /* @__PURE__ */ r(J, { icon: /* @__PURE__ */ r(Ye, {}), children: "파일 선택" }) }),
499
- bodyStyle: { padding: 0 },
521
+ extra: /* @__PURE__ */ r(G, { ...f, children: /* @__PURE__ */ r(X, { icon: /* @__PURE__ */ r(Ye, {}), children: "파일 선택" }) }),
522
+ style: { padding: 0 },
500
523
  children: /* @__PURE__ */ r(
501
- Ze,
524
+ Qe,
502
525
  {
503
526
  ...f,
504
527
  style: {
@@ -507,15 +530,15 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
507
530
  padding: 0
508
531
  },
509
532
  children: /* @__PURE__ */ r("div", { className: "upload-list-container", children: a.length > 0 ? /* @__PURE__ */ r(
510
- P,
533
+ ee,
511
534
  {
512
535
  style: { textAlign: "left" },
513
536
  dataSource: a,
514
537
  renderItem: (m) => {
515
- const h = m.status === "done", _ = m.status === "error";
538
+ const g = m.status === "done", _ = m.status === "error";
516
539
  let O;
517
- return h ? O = /* @__PURE__ */ r(
518
- Ue,
540
+ return g ? O = /* @__PURE__ */ r(
541
+ Ae,
519
542
  {
520
543
  style: { color: "#52c41a", fontSize: 14 }
521
544
  }
@@ -524,22 +547,22 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
524
547
  {
525
548
  title: typeof m.response == "string" ? m.response : "업로드 실패",
526
549
  children: /* @__PURE__ */ r(
527
- Ae,
550
+ Te,
528
551
  {
529
552
  style: { color: "#ff4d4f", fontSize: 14 }
530
553
  }
531
554
  )
532
555
  }
533
- ) : O = /* @__PURE__ */ r(ze, { style: { fontSize: 14 } }), /* @__PURE__ */ r(
534
- P.Item,
556
+ ) : O = /* @__PURE__ */ r(Re, { style: { fontSize: 14 } }), /* @__PURE__ */ r(
557
+ ee.Item,
535
558
  {
536
559
  actions: [
537
- /* @__PURE__ */ r(oe, { type: "secondary", children: Pe(m.size || 0) }, "size"),
560
+ /* @__PURE__ */ r(oe, { type: "secondary", children: et(m.size || 0) }, "size"),
538
561
  /* @__PURE__ */ r(
539
- J,
562
+ X,
540
563
  {
541
564
  type: "text",
542
- icon: /* @__PURE__ */ r(Ee, {}),
565
+ icon: /* @__PURE__ */ r(ze, {}),
543
566
  onClick: (H) => {
544
567
  H.stopPropagation(), f.onRemove?.(m);
545
568
  },
@@ -549,7 +572,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
549
572
  )
550
573
  ],
551
574
  children: /* @__PURE__ */ r(
552
- P.Item.Meta,
575
+ ee.Item.Meta,
553
576
  {
554
577
  avatar: O,
555
578
  title: /* @__PURE__ */ r(oe, { type: _ ? "danger" : void 0, children: m.name })
@@ -569,7 +592,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
569
592
  vertical: !0,
570
593
  style: { padding: "20px 0", minHeight: "120px" },
571
594
  children: [
572
- /* @__PURE__ */ r(Oe, { style: { fontSize: "32px", color: "#999" } }),
595
+ /* @__PURE__ */ r(Ve, { style: { fontSize: "32px", color: "#999" } }),
573
596
  /* @__PURE__ */ r(oe, { type: "secondary", children: "업로드할 파일을 선택하거나 이 영역으로 드래그하세요." })
574
597
  ]
575
598
  }
@@ -586,14 +609,14 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
586
609
  gap: "large",
587
610
  style: { marginTop: 16 },
588
611
  children: [
589
- s && /* @__PURE__ */ r("div", { style: { width: "250px" }, children: /* @__PURE__ */ r(Se, { percent: L, size: "small" }) }),
612
+ s && /* @__PURE__ */ r("div", { style: { width: "250px" }, children: /* @__PURE__ */ r(be, { percent: S, size: "small" }) }),
590
613
  /* @__PURE__ */ r(
591
- J,
614
+ X,
592
615
  {
593
616
  type: "primary",
594
- onClick: v,
617
+ onClick: x,
595
618
  disabled: s || p || a.filter((m) => m.status !== "done").length === 0,
596
- icon: /* @__PURE__ */ r(Ve, {}),
619
+ icon: /* @__PURE__ */ r(Ue, {}),
597
620
  children: "일괄 업로드"
598
621
  }
599
622
  )
@@ -603,7 +626,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
603
626
  ] })
604
627
  }
605
628
  );
606
- }, et = (t) => {
629
+ }, tt = (t) => {
607
630
  if (typeof t == "string")
608
631
  return t.replace(/0/g, "_");
609
632
  if (Array.isArray(t))
@@ -616,12 +639,12 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
616
639
  }).join(".");
617
640
  }
618
641
  return "";
619
- }, _t = ({
642
+ }, It = ({
620
643
  itemProps: t,
621
644
  inputProps: e,
622
645
  mask: l
623
646
  }) => {
624
- const i = X(null), n = B.useFormInstance(), o = ee(() => et(l), [l]);
647
+ const i = Z(null), n = B.useFormInstance(), o = W(() => tt(l), [l]);
625
648
  return j(() => {
626
649
  if (!i.current?.input) return;
627
650
  const u = typeof l == "string" || Array.isArray(l) ? { mask: l } : l, a = Ce(i.current.input, u);
@@ -630,8 +653,8 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
630
653
  }), () => {
631
654
  a.destroy();
632
655
  };
633
- }, [l, n, t?.name]), /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ r(te, { ...e, ref: i, placeholder: o }) });
634
- }, tt = (t) => {
656
+ }, [l, n, t?.name]), /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ r(te, { ...e, ref: i, placeholder: o }) });
657
+ }, rt = (t) => {
635
658
  switch (t) {
636
659
  case "year":
637
660
  return { format: "YYYY", mask: "0000", outputFormat: "YYYY" };
@@ -645,12 +668,12 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
645
668
  outputFormat: "YYYYMMDD"
646
669
  };
647
670
  }
648
- }, It = ({
671
+ }, Nt = ({
649
672
  type: t = "date",
650
673
  itemProps: e = { name: "calendar" },
651
674
  inputProps: l
652
675
  }) => {
653
- const { format: i, mask: n, outputFormat: o } = tt(t), u = X(null), a = X(null), d = B.useFormInstance(), [s, C] = T(!1), [p, Y] = T(!1), L = e?.name, [k, E] = T(null);
676
+ const { format: i, mask: n, outputFormat: o } = rt(t), u = Z(null), a = Z(null), d = B.useFormInstance(), [s, C] = T(!1), [p, Y] = T(!1), S = e?.name, [k, E] = T(null);
654
677
  j(() => {
655
678
  if (!u.current?.input) return;
656
679
  const f = Ce(u.current.input, {
@@ -659,15 +682,15 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
659
682
  });
660
683
  return a.current = f, f.on("accept", () => {
661
684
  console.log("input :: ", f.value);
662
- const m = f.value, h = z(m, i, !0);
663
- console.log("input :: ", h), m.length === i.length && h.isValid() && (console.log("parsed :: ", h.format(o)), d.setFieldValue(L, h.format(o)), a.current?.updateValue(), C(!1));
685
+ const m = f.value, g = A(m, i, !0);
686
+ console.log("input :: ", g), m.length === i.length && g.isValid() && (console.log("parsed :: ", g.format(o)), d.setFieldValue(S, g.format(o)), a.current?.updateValue(), C(!1));
664
687
  }), () => {
665
688
  f.destroy();
666
689
  };
667
690
  }, [i, n]), j(() => {
668
- E(z(d.getFieldValue(L)));
669
- }, [d.getFieldValue(L)]);
670
- const v = (f) => {
691
+ E(A(d.getFieldValue(S)));
692
+ }, [d.getFieldValue(S)]);
693
+ const x = (f) => {
671
694
  if (!f) {
672
695
  a.current?.updateValue();
673
696
  return;
@@ -676,7 +699,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
676
699
  console.log("formatted :: ", m), a.current && (a.current.value = m, a.current.updateValue()), Y(!1);
677
700
  };
678
701
  return /* @__PURE__ */ r(
679
- M,
702
+ D,
680
703
  {
681
704
  ...e,
682
705
  name: void 0,
@@ -686,11 +709,11 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
686
709
  /* @__PURE__ */ r(
687
710
  B.Item,
688
711
  {
689
- name: L,
712
+ name: S,
690
713
  getValueProps: (f) => ({
691
- value: f ? z(f).format(i) : void 0
714
+ value: f ? A(f).format(i) : void 0
692
715
  }),
693
- normalize: (f) => f ? z(f).format(o) : void 0,
716
+ normalize: (f) => f ? A(f).format(o) : void 0,
694
717
  noStyle: !0,
695
718
  children: /* @__PURE__ */ r(
696
719
  te,
@@ -717,7 +740,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
717
740
  picker: t,
718
741
  format: i,
719
742
  value: k,
720
- onChange: v,
743
+ onChange: x,
721
744
  getPopupContainer: (f) => f.parentElement,
722
745
  style: {
723
746
  position: "absolute",
@@ -732,7 +755,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
732
755
  ] })
733
756
  }
734
757
  );
735
- }, { Option: me } = se, Nt = ({ itemProps: t, inputProps: e }) => {
758
+ }, { Option: me } = se, Mt = ({ itemProps: t, inputProps: e }) => {
736
759
  const [l, i] = T([]);
737
760
  return j(() => {
738
761
  e?.addField === "ALL" ? i([
@@ -740,7 +763,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
740
763
  ...e?.list || []
741
764
  ]) : e?.addField === "NULL" ? i([{ label: "", value: "" }, ...e?.list || []]) : i(e?.list || []);
742
765
  }, [e?.list]), /* @__PURE__ */ r(
743
- M,
766
+ D,
744
767
  {
745
768
  ...t,
746
769
  getValueProps: (n) => n ? {
@@ -763,7 +786,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
763
786
  let o = n.toString().split(".");
764
787
  return e?.decimalPoint != null && o[1] != null && e?.decimalPoint > 0 ? o[1].length > e?.decimalPoint ? o[1] = "." + o[1].substring(0, e?.decimalPoint) : o[1] = "." + o[1] : o[1] = "", o[0].replace(/\$\s?|(,*)/g, "") + o[1];
765
788
  };
766
- return /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ r(
789
+ return /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ r(
767
790
  Ie,
768
791
  {
769
792
  ...e,
@@ -771,7 +794,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
771
794
  parser: (n) => i(n)
772
795
  }
773
796
  ) });
774
- }, Mt = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ r(Ne.Group, { ...e }) }), { RangePicker: rt } = le, fe = {
797
+ }, kt = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ r(Ne.Group, { ...e }) }), { RangePicker: nt } = le, fe = {
775
798
  year: { displayFormat: "YYYY", outputFormat: "YYYY" },
776
799
  month: { displayFormat: "YYYY-MM", outputFormat: "YYYYMM" },
777
800
  date: { displayFormat: "YYYY-MM-DD", outputFormat: "YYYYMMDD" },
@@ -780,7 +803,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
780
803
  displayFormat: "YYYY-MM-DD HH:mm",
781
804
  outputFormat: "YYYYMMDDHHmm"
782
805
  }
783
- }, kt = ({
806
+ }, xt = ({
784
807
  itemProps: t,
785
808
  inputProps: e,
786
809
  type: l = "date",
@@ -788,10 +811,10 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
788
811
  maxDate: n,
789
812
  returnType: o = "string"
790
813
  }) => {
791
- const { displayFormat: u, outputFormat: a } = ee(
814
+ const { displayFormat: u, outputFormat: a } = W(
792
815
  () => fe[l],
793
816
  [l]
794
- ), d = ee(
817
+ ), d = W(
795
818
  () => Object.values(fe).map((s) => s.outputFormat).sort((s, C) => {
796
819
  if (s.length === C.length) {
797
820
  if (s === a) return -1;
@@ -803,14 +826,14 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
803
826
  // type(outputFormat)이 바뀔 때마다 재정렬
804
827
  );
805
828
  return /* @__PURE__ */ r(
806
- M,
829
+ D,
807
830
  {
808
831
  ...t,
809
832
  getValueProps: (s) => ({
810
833
  // 폼에 저장된 값(문자열 또는 Dayjs)을 RangePicker가 요구하는 Dayjs 배열로 변환
811
834
  value: s && s.length > 0 ? [
812
- s[0] ? z.isDayjs(s[0]) ? s[0] : z(s[0], d) : null,
813
- s[1] ? z.isDayjs(s[1]) ? s[1] : z(s[1], d) : null
835
+ s[0] ? A.isDayjs(s[0]) ? s[0] : A(s[0], d) : null,
836
+ s[1] ? A.isDayjs(s[1]) ? s[1] : A(s[1], d) : null
814
837
  ] : null
815
838
  }),
816
839
  normalize: (s) => s ? o === "dayjs" ? [s[0] ?? void 0, s[1] ?? void 0] : [
@@ -818,12 +841,12 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
818
841
  s[1] ? s[1].format(a) : void 0
819
842
  ] : [void 0, void 0],
820
843
  children: /* @__PURE__ */ r(
821
- rt,
844
+ nt,
822
845
  {
823
846
  ...e,
824
847
  order: !0,
825
- minDate: i ? z(i, d) : void 0,
826
- maxDate: n ? z(n, d) : void 0,
848
+ minDate: i ? A(i, d) : void 0,
849
+ maxDate: n ? A(n, d) : void 0,
827
850
  picker: l === "datetime" ? "date" : l,
828
851
  showTime: e?.showTime ?? (l === "datetime" || l === "time"),
829
852
  format: u
@@ -831,8 +854,8 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
831
854
  )
832
855
  }
833
856
  );
834
- }, ge = te.Search, vt = (t) => {
835
- const e = B.useFormInstance(), { openPopup: l } = Ke(), i = t.itemProps?.name || [], n = t.popupConfig || {
857
+ }, he = te.Search, vt = (t) => {
858
+ const e = B.useFormInstance(), { openPopup: l } = Be(), i = t.itemProps?.name || [], n = t.popupConfig || {
836
859
  callback(u) {
837
860
  console.log("callback data :: ", u), i.length > 1 ? (e.setFieldValue(i[0], u.code), e.setFieldValue(i[1], u.name)) : e.setFieldValue(i, u.code);
838
861
  }
@@ -846,7 +869,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
846
869
  t.popuCd ? l(t.popuCd, t.popupParams, n) : t.onSearch?.(u);
847
870
  }
848
871
  };
849
- return i.length > 1 ? /* @__PURE__ */ r(M, { ...t.itemProps, name: void 0, children: /* @__PURE__ */ q(ae.Compact, { block: !0, children: [
872
+ return i.length > 1 ? /* @__PURE__ */ r(D, { ...t.itemProps, name: void 0, children: /* @__PURE__ */ q(ae.Compact, { block: !0, children: [
850
873
  /* @__PURE__ */ r(
851
874
  B.Item,
852
875
  {
@@ -866,28 +889,28 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
866
889
  }
867
890
  ),
868
891
  /* @__PURE__ */ r(B.Item, { name: i[1], style: { width: "60%", marginBottom: 0 }, children: /* @__PURE__ */ r(
869
- ge,
892
+ he,
870
893
  {
871
894
  readOnly: t.readOnly,
872
895
  enterButton: /* @__PURE__ */ r(
873
- J,
896
+ X,
874
897
  {
875
- icon: /* @__PURE__ */ r(Te, {}),
898
+ icon: /* @__PURE__ */ r($e, {}),
876
899
  disabled: t.readOnly
877
900
  }
878
901
  ),
879
902
  ...o
880
903
  }
881
904
  ) })
882
- ] }) }) : /* @__PURE__ */ r(M, { ...t.itemProps, children: /* @__PURE__ */ r(ge, { ...o }) });
883
- }, xt = ({
905
+ ] }) }) : /* @__PURE__ */ r(D, { ...t.itemProps, children: /* @__PURE__ */ r(he, { ...o }) });
906
+ }, Bt = ({
884
907
  itemProps: t,
885
908
  selectProps: e = {
886
909
  options: [],
887
910
  allowClear: !0
888
911
  }
889
912
  }) => {
890
- const l = B.useFormInstance(), i = !!l, n = ee(() => e?.addField === "ALL" ? [{ label: "전체", value: "" }, ...e?.options || []] : e?.addField === "NULL" ? [{ label: "", value: "" }, ...e?.options || []] : e?.options || [], [e.options, e.addField]), o = (d) => {
913
+ const l = B.useFormInstance(), i = !!l, n = W(() => e?.addField === "ALL" ? [{ label: "전체", value: "" }, ...e?.options || []] : e?.addField === "NULL" ? [{ label: "", value: "" }, ...e?.options || []] : e?.options || [], [e.options, e.addField]), o = (d) => {
891
914
  e.onChange?.(d);
892
915
  }, u = {
893
916
  ...e,
@@ -898,7 +921,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
898
921
  }, a = /* @__PURE__ */ r(se, { ...u, disabled: e.disabled });
899
922
  return e.copyable && !i && console.warn(
900
923
  "BwgSelect: copyable 기능은 Form 컨텍스트 내에서만 사용 가능합니다."
901
- ), e.copyable ? /* @__PURE__ */ r(M, { ...t, name: void 0, children: /* @__PURE__ */ q(ae.Compact, { block: !0, children: [
924
+ ), e.copyable ? /* @__PURE__ */ r(D, { ...t, name: void 0, children: /* @__PURE__ */ q(ae.Compact, { block: !0, children: [
902
925
  /* @__PURE__ */ r(
903
926
  B.Item,
904
927
  {
@@ -931,8 +954,8 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
931
954
  }
932
955
  }
933
956
  )
934
- ] }) }) : /* @__PURE__ */ r(M, { ...t, children: a });
935
- }, Bt = ({
957
+ ] }) }) : /* @__PURE__ */ r(D, { ...t, children: a });
958
+ }, Et = ({
936
959
  itemProps: t,
937
960
  inputProps: e = {
938
961
  format: "YN"
@@ -942,15 +965,15 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
942
965
  e.format === "boolean" ? l.setFieldValue(t?.name, n) : l.setFieldValue(t?.name, n ? "Y" : "N"), e.onChange && e.onChange(n, o);
943
966
  };
944
967
  return /* @__PURE__ */ r(
945
- M,
968
+ D,
946
969
  {
947
970
  ...t,
948
971
  getValueProps: (n) => ({ checked: e.format === "boolean" ? !!n : n === "Y" }),
949
972
  normalize: (n) => typeof n == "boolean" ? e.format === "boolean" ? n : n ? "Y" : "N" : e.format === "boolean" ? !!n : n ? "Y" : "N",
950
- children: /* @__PURE__ */ r(De, { ...e, onChange: (n, o) => i(n, o) })
973
+ children: /* @__PURE__ */ r(Me, { ...e, onChange: (n, o) => i(n, o) })
951
974
  }
952
975
  );
953
- }, { TextArea: nt } = te, Et = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, children: /* @__PURE__ */ r(nt, { ...e }) }), ot = [
976
+ }, { TextArea: ot } = te, Ot = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(D, { ...t, children: /* @__PURE__ */ r(ot, { ...e }) }), at = [
954
977
  ".pdf",
955
978
  ".xlsx",
956
979
  ".xls",
@@ -968,40 +991,40 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
968
991
  ".gif",
969
992
  // 압축
970
993
  ".zip"
971
- ], he = {
994
+ ], ge = {
972
995
  FILE: "file"
973
- }, at = ({
996
+ }, it = ({
974
997
  originNode: t,
975
998
  file: e,
976
999
  fileList: l,
977
1000
  moveFile: i,
978
1001
  onDrop: n
979
1002
  }) => {
980
- const o = X(null), [{ handlerId: u }, a] = qe({
981
- accept: he.FILE,
1003
+ const o = Z(null), [{ handlerId: u }, a] = We({
1004
+ accept: ge.FILE,
982
1005
  collect: (p) => ({
983
1006
  handlerId: p.getHandlerId()
984
1007
  }),
985
1008
  hover(p, Y) {
986
1009
  if (!o.current)
987
1010
  return;
988
- const L = p.uid, k = e.uid;
989
- if (L === k)
1011
+ const S = p.uid, k = e.uid;
1012
+ if (S === k)
990
1013
  return;
991
- const E = ne(l, { uid: k }), v = ne(l, { uid: L });
992
- if (v === -1 || E === -1)
1014
+ const E = ne(l, { uid: k }), x = ne(l, { uid: S });
1015
+ if (x === -1 || E === -1)
993
1016
  return;
994
1017
  const f = o.current.getBoundingClientRect(), m = Y.getClientOffset();
995
1018
  if (!m)
996
1019
  return;
997
- const h = (f.bottom - f.top) / 2, _ = m.y - f.top;
998
- v < E && _ < h || v > E && _ > h || i(L, k);
1020
+ const g = (f.bottom - f.top) / 2, _ = m.y - f.top;
1021
+ x < E && _ < g || x > E && _ > g || i(S, k);
999
1022
  },
1000
1023
  drop() {
1001
1024
  n();
1002
1025
  }
1003
- }), [{ isDragging: d }, s] = We({
1004
- type: he.FILE,
1026
+ }), [{ isDragging: d }, s] = Je({
1027
+ type: ge.FILE,
1005
1028
  item: () => ({
1006
1029
  uid: e.uid,
1007
1030
  index: ne(l, { uid: e.uid })
@@ -1011,7 +1034,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1011
1034
  })
1012
1035
  }), C = d ? 0 : 1;
1013
1036
  return s(a(o)), /* @__PURE__ */ r("div", { ref: o, style: { opacity: C }, "data-handler-id": u, children: t });
1014
- }, Ot = ({
1037
+ }, zt = ({
1015
1038
  itemProps: t,
1016
1039
  fileGrpKey: e,
1017
1040
  onUploadComplete: l,
@@ -1019,19 +1042,19 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1019
1042
  onSuccessTrxCd: n = "SCMFILE00102",
1020
1043
  onDeleteFileTrxCd: o = "SCMFILE00103",
1021
1044
  onReorderFilesTrxCd: u = "SCMFILE00104",
1022
- allowedExtensions: a = ot,
1045
+ allowedExtensions: a = at,
1023
1046
  maxFileSize: d = 200,
1024
1047
  showButton: s = !0,
1025
1048
  // 기본값으로 true 설정
1026
1049
  multiple: C = !1,
1027
1050
  newFileGrpKeyonModify: p = !1,
1028
1051
  buttonText: Y = "파일 선택",
1029
- localOnly: L = !1,
1052
+ localOnly: S = !1,
1030
1053
  onFilesChange: k
1031
1054
  }) => {
1032
- const [E, v] = T([]), f = X(e), m = X([]), h = B.useFormInstance(), O = X(
1033
- $e(() => {
1034
- if (L || m.current.length === 0)
1055
+ const [E, x] = T([]), f = Z(e), m = Z([]), g = B.useFormInstance(), O = Z(
1056
+ He(() => {
1057
+ if (S || m.current.length === 0)
1035
1058
  return;
1036
1059
  const c = [...m.current];
1037
1060
  if (m.current = [], n) {
@@ -1049,7 +1072,7 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1049
1072
  console.log("newFileGrpKeyonModify", p), console.log(
1050
1073
  "newFileGrpKeyonModify",
1051
1074
  p ? 0 : f.current
1052
- ), W(n, {
1075
+ ), J(n, {
1053
1076
  crprCd: K()?.crprCd,
1054
1077
  sysCd: __SYS_CD__,
1055
1078
  fileGrpKey: p ? 0 : f.current,
@@ -1058,57 +1081,57 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1058
1081
  sub: w
1059
1082
  }).then((F) => {
1060
1083
  if (F?.sub && F.sub.length > 0) {
1061
- const g = F.sub[0].fileGrpKey;
1062
- (!f.current || p) && (f.current = g);
1063
- const V = /* @__PURE__ */ new Map();
1064
- F.sub.forEach((D) => {
1065
- const U = c.find(
1066
- ($) => $.fileNameL === D.lgclFileNm
1084
+ const h = F.sub[0].fileGrpKey;
1085
+ (!f.current || p) && (f.current = h);
1086
+ const z = /* @__PURE__ */ new Map();
1087
+ F.sub.forEach((M) => {
1088
+ const V = c.find(
1089
+ ($) => $.fileNameL === M.lgclFileNm
1067
1090
  );
1068
- U && V.set(U.tempId, D);
1091
+ V && z.set(V.tempId, M);
1069
1092
  });
1070
- const Q = t?.name;
1071
- ((D) => {
1093
+ const P = t?.name;
1094
+ ((M) => {
1072
1095
  if (y) {
1073
- const U = h?.getFieldValue(Q) || [], $ = D(U);
1074
- h?.setFieldValue(Q, $);
1096
+ const V = g?.getFieldValue(P) || [], $ = M(V);
1097
+ g?.setFieldValue(P, $);
1075
1098
  } else
1076
- v((U) => D(U));
1077
- })((D) => D.map((U) => {
1078
- const $ = V.get(U.uid);
1099
+ x((V) => M(V));
1100
+ })((M) => M.map((V) => {
1101
+ const $ = z.get(V.uid);
1079
1102
  if ($) {
1080
1103
  const ce = c.find(
1081
- (Le) => Le.tempId === U.uid
1104
+ (Se) => Se.tempId === V.uid
1082
1105
  );
1083
1106
  return l && ce && l({
1084
1107
  ...ce,
1085
- fileGrpKey: g,
1108
+ fileGrpKey: h,
1086
1109
  fileKey: $.fileKey
1087
1110
  }), {
1088
- ...U,
1111
+ ...V,
1089
1112
  name: $.lgclFileNm,
1090
- fileGrpKey: g,
1113
+ fileGrpKey: h,
1091
1114
  fileKey: $.fileKey,
1092
1115
  uid: $.fileKey,
1093
1116
  status: "done",
1094
1117
  url: `/api/download?filePath=${$.filePath}&logicalName=${$.lgclFileNm}`
1095
1118
  };
1096
1119
  }
1097
- return U;
1120
+ return V;
1098
1121
  }));
1099
1122
  }
1100
1123
  }).catch((F) => {
1101
- console.error("업로드 후처리 서비스 호출 실패:", F), b.error("파일 후처리 중 오류가 발생했습니다.");
1102
- const g = new Set(c.map((A) => A.tempId)), V = t?.name;
1103
- ((A) => {
1124
+ console.error("업로드 후처리 서비스 호출 실패:", F), L.error("파일 후처리 중 오류가 발생했습니다.");
1125
+ const h = new Set(c.map((U) => U.tempId)), z = t?.name;
1126
+ ((U) => {
1104
1127
  if (y) {
1105
- const D = h?.getFieldValue(V) || [], U = A(D);
1106
- h?.setFieldValue(V, U);
1128
+ const M = g?.getFieldValue(z) || [], V = U(M);
1129
+ g?.setFieldValue(z, V);
1107
1130
  } else
1108
- v((D) => A(D));
1131
+ x((M) => U(M));
1109
1132
  })(
1110
- (A) => A.map(
1111
- (D) => g.has(D.uid) ? { ...D, status: "error", error: "후처리 실패" } : D
1133
+ (U) => U.map(
1134
+ (M) => h.has(M.uid) ? { ...M, status: "error", error: "후처리 실패" } : M
1112
1135
  )
1113
1136
  );
1114
1137
  });
@@ -1120,64 +1143,64 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1120
1143
  }, [O]), j(() => {
1121
1144
  f.current = e;
1122
1145
  }, [e]), j(() => {
1123
- L || e && i && W(i, {
1146
+ S || e && i && J(i, {
1124
1147
  crprCd: K()?.crprCd,
1125
1148
  sysCd: __SYS_CD__,
1126
1149
  fileGrpKey: e
1127
1150
  }).then((c) => {
1128
1151
  if (c?.sub) {
1129
- const w = c.sub.map((g) => ({
1130
- uid: g.fileKey,
1131
- name: g.lgclFileNm,
1152
+ const w = c.sub.map((h) => ({
1153
+ uid: h.fileKey,
1154
+ name: h.lgclFileNm,
1132
1155
  status: "done",
1133
- url: `/api/download?filePath=${g.filePath}&logicalName=${g.lgclFileNm}`
1156
+ url: `/api/download?filePath=${h.filePath}&logicalName=${h.lgclFileNm}`
1134
1157
  })), F = t?.name;
1135
- y ? h?.setFieldValue(F, w) : v(w);
1158
+ y ? g?.setFieldValue(F, w) : x(w);
1136
1159
  } else {
1137
1160
  const w = t?.name;
1138
- y ? h?.setFieldValue(w, []) : v([]);
1161
+ y ? g?.setFieldValue(w, []) : x([]);
1139
1162
  }
1140
1163
  }).catch((c) => {
1141
- console.error("파일 목록 조회 서비스 호출에 실패했습니다.", c), b.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
1164
+ console.error("파일 목록 조회 서비스 호출에 실패했습니다.", c), L.error("파일 목록을 불러오는 중 오류가 발생했습니다.");
1142
1165
  });
1143
1166
  }, [e, i]);
1144
1167
  const H = (c, w) => {
1145
- const F = t?.name, g = y ? h?.getFieldValue(F) || [] : E, V = ne(g, { uid: c }), Q = ne(g, { uid: w });
1146
- if (V < 0 || Q < 0) return;
1147
- const A = [...g], [D] = A.splice(V, 1);
1148
- A.splice(Q, 0, D), y ? h?.setFieldValue(F, A) : v(A);
1168
+ const F = t?.name, h = y ? g?.getFieldValue(F) || [] : E, z = ne(h, { uid: c }), P = ne(h, { uid: w });
1169
+ if (z < 0 || P < 0) return;
1170
+ const U = [...h], [M] = U.splice(z, 1);
1171
+ U.splice(P, 0, M), y ? g?.setFieldValue(F, U) : x(U);
1149
1172
  }, I = () => {
1150
- if (!L && e && u) {
1151
- const c = t?.name, F = (y ? h?.getFieldValue(c) || [] : E).map((g) => g.uid);
1152
- W(u, {
1173
+ if (!S && e && u) {
1174
+ const c = t?.name, F = (y ? g?.getFieldValue(c) || [] : E).map((h) => h.uid);
1175
+ J(u, {
1153
1176
  crprCd: K()?.crprCd,
1154
1177
  sysCd: __SYS_CD__,
1155
1178
  fileGrpKey: e,
1156
1179
  reorderedFileKeys: F
1157
1180
  }).then(() => {
1158
- b.success("파일 순서가 성공적으로 저장되었습니다.");
1159
- }).catch((g) => {
1160
- console.error("파일 순서 저장 서비스 호출 실패:", g), b.error("파일 순서 저장 중 오류가 발생했습니다.");
1181
+ L.success("파일 순서가 성공적으로 저장되었습니다.");
1182
+ }).catch((h) => {
1183
+ console.error("파일 순서 저장 서비스 호출 실패:", h), L.error("파일 순서 저장 중 오류가 발생했습니다.");
1161
1184
  });
1162
1185
  }
1163
1186
  }, R = (c) => {
1164
- const w = t?.name, F = y ? h?.getFieldValue(w) || [] : E;
1187
+ const w = t?.name, F = y ? g?.getFieldValue(w) || [] : E;
1165
1188
  if (!C && F.length > 0)
1166
- return b.error("하나의 파일만 업로드할 수 있습니다."), G.LIST_IGNORE;
1189
+ return L.error("하나의 파일만 업로드할 수 있습니다."), G.LIST_IGNORE;
1167
1190
  if (a && a.length > 0) {
1168
- const g = `.${c.name.split(".").pop()?.toLowerCase()}`;
1169
- if (!a.includes(g))
1170
- return b.error(
1191
+ const h = `.${c.name.split(".").pop()?.toLowerCase()}`;
1192
+ if (!a.includes(h))
1193
+ return L.error(
1171
1194
  `${c.name} 파일은 허용되지 않는 확장자입니다. (${a.join(
1172
1195
  ", "
1173
1196
  )})`
1174
1197
  ), G.LIST_IGNORE;
1175
1198
  }
1176
- return d && !(c.size / 1024 / 1024 < d) ? (b.error(`일반업로드의 최대용량은 ${d}MB입니다.`), G.LIST_IGNORE) : !L;
1177
- }, y = !!t?.name, S = {
1199
+ return d && !(c.size / 1024 / 1024 < d) ? (L.error(`일반업로드의 최대용량은 ${d}MB입니다.`), G.LIST_IGNORE) : !S;
1200
+ }, y = !!t?.name, b = {
1178
1201
  name: "file",
1179
1202
  multiple: C,
1180
- action: L ? void 0 : "/api/upload",
1203
+ action: S ? void 0 : "/api/upload",
1181
1204
  beforeUpload: R,
1182
1205
  showUploadList: {
1183
1206
  showRemoveIcon: s
@@ -1186,66 +1209,66 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1186
1209
  onChange(c) {
1187
1210
  const { status: w, uid: F } = c.file;
1188
1211
  if (w === "removed") {
1189
- if (!L && o)
1190
- W(o, {
1212
+ if (!S && o)
1213
+ J(o, {
1191
1214
  crprCd: K()?.crprCd,
1192
1215
  sysCd: __SYS_CD__,
1193
1216
  fileGrpKey: p ? 0 : f.current,
1194
1217
  fileKey: F,
1195
1218
  oldFileGrpKey: f.current,
1196
1219
  newFileGrpKeyonModify: p
1197
- }).then((g) => {
1198
- if (b.success("파일이 성공적으로 삭제되었습니다."), p && (f.current = g.fileGrpKey), y) {
1199
- const V = t?.name;
1200
- h?.setFieldValue(V, c.fileList);
1220
+ }).then((h) => {
1221
+ if (L.success("파일이 성공적으로 삭제되었습니다."), p && (f.current = h.fileGrpKey), y) {
1222
+ const z = t?.name;
1223
+ g?.setFieldValue(z, c.fileList);
1201
1224
  } else
1202
- v(c.fileList);
1225
+ x(c.fileList);
1203
1226
  k?.(c.fileList), l?.({
1204
- fileGrpKey: g.fileGrpKey
1227
+ fileGrpKey: h.fileGrpKey
1205
1228
  });
1206
- }).catch((g) => {
1207
- console.error("파일 삭제 서비스 호출에 실패했습니다.", g), b.error("파일 삭제 중 오류가 발생했습니다.");
1229
+ }).catch((h) => {
1230
+ console.error("파일 삭제 서비스 호출에 실패했습니다.", h), L.error("파일 삭제 중 오류가 발생했습니다.");
1208
1231
  });
1209
1232
  else {
1210
1233
  if (y) {
1211
- const g = t?.name;
1212
- h?.setFieldValue(g, c.fileList);
1234
+ const h = t?.name;
1235
+ g?.setFieldValue(h, c.fileList);
1213
1236
  } else
1214
- v(c.fileList);
1237
+ x(c.fileList);
1215
1238
  k?.(c.fileList);
1216
1239
  }
1217
1240
  return;
1218
1241
  }
1219
1242
  if (y) {
1220
- const g = t?.name;
1221
- h?.setFieldValue(g, c.fileList);
1243
+ const h = t?.name;
1244
+ g?.setFieldValue(h, c.fileList);
1222
1245
  } else
1223
- v(c.fileList);
1246
+ x(c.fileList);
1224
1247
  if (k?.(c.fileList), w === "done")
1225
- if (!L && c.file.response?.success) {
1226
- const { uploadedFiles: g } = c.file.response;
1227
- g && Array.isArray(g) && g.length > 0 && (g.forEach((V) => {
1228
- V.tempId = c.file.uid, m.current.push(V);
1229
- }), O()), b.success(
1248
+ if (!S && c.file.response?.success) {
1249
+ const { uploadedFiles: h } = c.file.response;
1250
+ h && Array.isArray(h) && h.length > 0 && (h.forEach((z) => {
1251
+ z.tempId = c.file.uid, m.current.push(z);
1252
+ }), O()), L.success(
1230
1253
  c.file.response.message || `${c.file.name} 파일이 성공적으로 업로드되었습니다.`
1231
1254
  );
1232
1255
  } else
1233
- b.error(
1256
+ L.error(
1234
1257
  c.file.response?.message || `${c.file.name} 파일 업로드에 실패했습니다.`
1235
1258
  );
1236
- else w === "error" && b.error(
1259
+ else w === "error" && L.error(
1237
1260
  c.file.response?.message || `${c.file.name} 파일 업로드 중 오류가 발생했습니다.`
1238
1261
  );
1239
1262
  },
1240
1263
  itemRender(c, w, F) {
1241
- const g = ve(c, {
1264
+ const h = xe(c, {
1242
1265
  href: w.url || void 0,
1243
1266
  title: void 0
1244
1267
  });
1245
1268
  return /* @__PURE__ */ r(
1246
- at,
1269
+ it,
1247
1270
  {
1248
- originNode: g,
1271
+ originNode: h,
1249
1272
  file: w,
1250
1273
  fileList: F,
1251
1274
  moveFile: H,
@@ -1255,45 +1278,45 @@ const St = ({ itemProps: t, inputProps: e }) => /* @__PURE__ */ r(M, { ...t, chi
1255
1278
  );
1256
1279
  }
1257
1280
  };
1258
- y || (S.fileList = E);
1259
- const x = (c) => Array.isArray(c) ? c : c && c.fileList, N = t?.name, re = y ? B.useWatch?.(N, h) : void 0, Z = y ? re || [] : E;
1260
- return /* @__PURE__ */ r(Ge, { backend: Je, children: /* @__PURE__ */ r(
1261
- M,
1281
+ y || (b.fileList = E);
1282
+ const v = (c) => Array.isArray(c) ? c : c && c.fileList, N = t?.name, re = y ? B.useWatch?.(N, g) : void 0, Q = y ? re || [] : E;
1283
+ return /* @__PURE__ */ r(qe, { backend: Xe, children: /* @__PURE__ */ r(
1284
+ D,
1262
1285
  {
1263
1286
  valuePropName: "fileList",
1264
- getValueFromEvent: x,
1287
+ getValueFromEvent: v,
1265
1288
  ...t,
1266
1289
  children: /* @__PURE__ */ r(
1267
1290
  G,
1268
1291
  {
1269
1292
  headers: { SYSCD: __SYS_CD__ },
1270
- ...S,
1293
+ ...b,
1271
1294
  listType: "picture",
1272
- children: s && (C || Z.length === 0) && /* @__PURE__ */ r(J, { icon: /* @__PURE__ */ r(Ye, {}), children: Y })
1295
+ children: s && (C || Q.length === 0) && /* @__PURE__ */ r(X, { icon: /* @__PURE__ */ r(Ye, {}), children: Y })
1273
1296
  }
1274
1297
  )
1275
1298
  }
1276
1299
  ) });
1277
1300
  };
1278
1301
  export {
1279
- Ft as BwgButton,
1280
- Yt as BwgCheck,
1281
- Ct as BwgCheckList,
1302
+ Yt as BwgButton,
1303
+ Ct as BwgCheck,
1304
+ St as BwgCheckList,
1282
1305
  Lt as BwgDatePicker,
1283
1306
  bt as BwgDownload,
1284
- Xe as BwgForm,
1285
- M as BwgFormItem,
1286
- St as BwgInput,
1287
- wt as BwgLargeUploader,
1288
- _t as BwgMaskedInput,
1289
- It as BwgMaskedPicker,
1290
- Nt as BwgMultiSelect,
1307
+ Ze as BwgForm,
1308
+ D as BwgFormItem,
1309
+ wt as BwgInput,
1310
+ _t as BwgLargeUploader,
1311
+ It as BwgMaskedInput,
1312
+ Nt as BwgMaskedPicker,
1313
+ Mt as BwgMultiSelect,
1291
1314
  Dt as BwgNumber,
1292
- Mt as BwgRadio,
1293
- kt as BwgRangePicker,
1315
+ kt as BwgRadio,
1316
+ xt as BwgRangePicker,
1294
1317
  vt as BwgSearch,
1295
- xt as BwgSelect,
1296
- Bt as BwgSwitch,
1297
- Et as BwgTextArea,
1298
- Ot as BwgUploader
1318
+ Bt as BwgSelect,
1319
+ Et as BwgSwitch,
1320
+ Ot as BwgTextArea,
1321
+ zt as BwgUploader
1299
1322
  };