@bwg-ui/core 1.2.7 → 1.2.9

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 (81) hide show
  1. package/README.md +28 -0
  2. package/dist/chunks/MenuReport-CuAfCZbc.cjs +1 -0
  3. package/dist/chunks/MenuReport-iuRC_snf.js +1244 -0
  4. package/dist/chunks/{common-components-BiUtYMIt.js → common-components-CFIJNFN0.js} +6704 -7999
  5. package/dist/chunks/common-components-CioS_8Bi.cjs +183 -0
  6. package/dist/chunks/{core-CF_HWm44.cjs → core-CA7iRgyb.cjs} +1 -1
  7. package/dist/chunks/{core-Cb5dF0QU.js → core-D18HD1It.js} +1 -1
  8. package/dist/chunks/{enc-base64-Dy-3zKzn.js → enc-base64-CdWu8KMI.js} +2 -2
  9. package/dist/chunks/{enc-base64-CAxIzedh.cjs → enc-base64-DSIiAsI5.cjs} +1 -1
  10. package/dist/chunks/layout-components-C-9ATcL9.js +1616 -0
  11. package/dist/chunks/layout-components-DMR4tl9_.cjs +35 -0
  12. package/dist/chunks/{sha256-DbQnwvPn.cjs → sha256-D5iKSlK6.cjs} +1 -1
  13. package/dist/chunks/{sha256-DKma8qua.js → sha256-DQcqzuys.js} +2 -2
  14. package/dist/components/common/ButtonAccessController.d.ts +5 -0
  15. package/dist/components/common/ButtonAccessController.d.ts.map +1 -0
  16. package/dist/components/common/BwgEditor.d.ts +3 -3
  17. package/dist/components/common/BwgEditor.d.ts.map +1 -1
  18. package/dist/components/common/BwgPopup.d.ts +15 -0
  19. package/dist/components/common/BwgPopup.d.ts.map +1 -1
  20. package/dist/components/common/BwgView.d.ts +2 -23
  21. package/dist/components/common/BwgView.d.ts.map +1 -1
  22. package/dist/components/common/SearchBox.d.ts +1 -57
  23. package/dist/components/common/SearchBox.d.ts.map +1 -1
  24. package/dist/components/common/index.cjs +1 -1
  25. package/dist/components/common/index.d.ts +5 -3
  26. package/dist/components/common/index.d.ts.map +1 -1
  27. package/dist/components/common/index.js +24 -23
  28. package/dist/components/common/type.d.ts +132 -0
  29. package/dist/components/common/type.d.ts.map +1 -0
  30. package/dist/components/guide/index.cjs +1 -1
  31. package/dist/components/guide/index.js +1 -1
  32. package/dist/components/layout/BwgPortal01.d.ts.map +1 -1
  33. package/dist/components/layout/default/LocalPopupContainer.d.ts +3 -0
  34. package/dist/components/layout/default/LocalPopupContainer.d.ts.map +1 -0
  35. package/dist/components/layout/default/PopupContainer.d.ts.map +1 -1
  36. package/dist/components/layout/index.cjs +1 -35
  37. package/dist/components/layout/index.js +13 -1558
  38. package/dist/components/popup/MenuReport.d.ts +2 -5
  39. package/dist/components/popup/MenuReport.d.ts.map +1 -1
  40. package/dist/components/popup/SearchDepartmentP01.d.ts +4 -5
  41. package/dist/components/popup/SearchDepartmentP01.d.ts.map +1 -1
  42. package/dist/components/popup/SearchDepartmentP02.d.ts +3 -5
  43. package/dist/components/popup/SearchDepartmentP02.d.ts.map +1 -1
  44. package/dist/components/popup/SearchEmployeeP01.d.ts +3 -1
  45. package/dist/components/popup/SearchEmployeeP01.d.ts.map +1 -1
  46. package/dist/components/popup/SearchEmployeeP02.d.ts +3 -1
  47. package/dist/components/popup/SearchEmployeeP02.d.ts.map +1 -1
  48. package/dist/components/popup/SearchOrganizationP01.d.ts +2 -4
  49. package/dist/components/popup/SearchOrganizationP01.d.ts.map +1 -1
  50. package/dist/components/popup/SearchOrganizationP02.d.ts +3 -4
  51. package/dist/components/popup/SearchOrganizationP02.d.ts.map +1 -1
  52. package/dist/components/popup/config/localPopupRegistry.d.ts +8 -0
  53. package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -0
  54. package/dist/components/popup/index.cjs +1 -1
  55. package/dist/components/popup/index.d.ts +2 -4
  56. package/dist/components/popup/index.d.ts.map +1 -1
  57. package/dist/components/popup/index.js +1 -1
  58. package/dist/index.cjs +1 -1
  59. package/dist/index.js +238 -217
  60. package/dist/provider/hooks/usePopup.d.ts +2 -1
  61. package/dist/provider/hooks/usePopup.d.ts.map +1 -1
  62. package/dist/provider/index.cjs +1 -1
  63. package/dist/provider/index.js +205 -188
  64. package/dist/stores/index.cjs +2 -2
  65. package/dist/stores/index.js +265 -196
  66. package/dist/stores/popupStore.d.ts +17 -1
  67. package/dist/stores/popupStore.d.ts.map +1 -1
  68. package/dist/stores/userStore.d.ts +16 -2
  69. package/dist/stores/userStore.d.ts.map +1 -1
  70. package/dist/utils/commonUtils.d.ts +77 -6
  71. package/dist/utils/commonUtils.d.ts.map +1 -1
  72. package/dist/utils/gwUtils.d.ts +23 -0
  73. package/dist/utils/gwUtils.d.ts.map +1 -0
  74. package/dist/utils/index.cjs +1 -1
  75. package/dist/utils/index.d.ts +27 -8
  76. package/dist/utils/index.d.ts.map +1 -1
  77. package/dist/utils/index.js +770 -619
  78. package/dist/utils/userUtils.d.ts +6 -0
  79. package/dist/utils/userUtils.d.ts.map +1 -1
  80. package/package.json +4 -4
  81. package/dist/chunks/common-components-DyOLtUJx.cjs +0 -183
@@ -0,0 +1,1244 @@
1
+ import { jsx as e, Fragment as k, jsxs as n } from "react/jsx-runtime";
2
+ import { AlertTwoTone as se, ReloadOutlined as ae, DeleteOutlined as ze, EyeFilled as Oe, EditOutlined as Le } from "@ant-design/icons";
3
+ import { Form as d, Tag as oe, message as g, Row as x, Col as l, Space as D, Input as a, Splitter as W, Flex as Ve, Progress as Ae, Button as z, List as H, Avatar as Ue, DatePicker as de } from "antd";
4
+ import Ye from "dayjs";
5
+ import { useRef as O, useState as b, useMemo as J, useEffect as E } from "react";
6
+ import { useUserStore as Ge, useMenuViewStore as je } from "../stores/index.js";
7
+ import { d as $, e as qe, C as L, S as Qe, f as We, h as He, i as ce } from "./common-components-CFIJNFN0.js";
8
+ import { useSearchBox as Je } from "../provider/index.js";
9
+ import { BwgFormItem as C, BwgSelect as V, BwgRangePicker as $e, BwgSwitch as Ke, BwgInput as Xe, BwgDatePicker as K, BwgCheck as me, BwgForm as Ze } from "../components/core/index.js";
10
+ import { callService as S, realFormat as X } from "../utils/index.js";
11
+ const { TextArea: _e } = a, A = [
12
+ { label: "요청", value: "RQST" },
13
+ { label: "문의", value: "INQR" }
14
+ // { label: '신고', value: 'RPRT' },
15
+ // { label: '건의', value: 'SGSN' },
16
+ ], et = {
17
+ INQR: "blue",
18
+ RQST: "green",
19
+ RPRT: "red",
20
+ SGSN: "purple"
21
+ }, ue = [
22
+ { label: "대기", value: "READY" },
23
+ { label: "담당자 지정", value: "ASSIGNED" },
24
+ { label: "처리중", value: "PROCESSING" },
25
+ { label: "처리완료", value: "COMPLETED" },
26
+ { label: "반려", value: "REJECTED" }
27
+ ], tt = {
28
+ READY: "gray",
29
+ ASSIGNED: "blue",
30
+ PROCESSING: "yellow",
31
+ COMPLETED: "green",
32
+ REJECTED: "red"
33
+ }, he = {
34
+ READY: 0,
35
+ ASSIGNED: 25,
36
+ PROCESSING: 50,
37
+ COMPLETED: 100,
38
+ REJECTED: 100
39
+ }, ht = ({ popup: w, onClose: Z }) => {
40
+ const { searchBoxRef: B } = Je(), N = O(null), U = O(null), { user: v } = Ge(), { activeMenuItem: m } = je(), [i] = d.useForm(), [_, ee] = b(!1), [te, re] = b(!1), [T, pe] = b(!1), [y, ge] = b(!1), [o, M] = b(!1), [c, I] = b(
41
+ "list"
42
+ );
43
+ b(null);
44
+ const F = O(null), [Y, ne] = b([]), [P, le] = b(""), [G, rt] = b(!1), [fe, j] = b(15), q = O(null), ye = J(
45
+ () => $(
46
+ (t, r, s, h, p) => {
47
+ const f = t.getValue(r.index?.itemIndex, "type");
48
+ p.render(
49
+ /* @__PURE__ */ e(oe, { color: et[f], children: A.find((R) => R.value === f)?.label })
50
+ );
51
+ }
52
+ ),
53
+ []
54
+ ), xe = J(
55
+ () => $(
56
+ (t, r, s, h, p) => {
57
+ const f = t.getValue(r.index?.itemIndex, "status");
58
+ p.render(
59
+ /* @__PURE__ */ e(oe, { color: tt[f], children: ue.find((R) => R.value === f)?.label })
60
+ );
61
+ }
62
+ ),
63
+ []
64
+ ), be = J(
65
+ () => $(
66
+ (t, r, s, h, p) => {
67
+ t.getValue(r.index?.itemIndex, "urgentYn") === "Y" ? p.render(/* @__PURE__ */ e(se, { twoToneColor: "red" })) : p.render(/* @__PURE__ */ e(k, {}));
68
+ }
69
+ ),
70
+ []
71
+ ), Ce = [
72
+ {
73
+ fieldName: "boardMstrId",
74
+ header: { text: "글 번호" },
75
+ width: 80
76
+ },
77
+ {
78
+ name: "type",
79
+ fieldName: "type",
80
+ header: { text: "등록구분" },
81
+ width: 80,
82
+ renderer: "tagType"
83
+ },
84
+ {
85
+ fieldName: "title",
86
+ header: { text: "제목" },
87
+ width: 200
88
+ },
89
+ {
90
+ fieldName: "content",
91
+ header: { text: "내용" },
92
+ width: 200,
93
+ visible: !1
94
+ },
95
+ {
96
+ name: "status",
97
+ fieldName: "status",
98
+ header: { text: "상태" },
99
+ width: 80,
100
+ renderer: "statusTag"
101
+ },
102
+ {
103
+ fieldName: "rgstUserId",
104
+ visible: !1
105
+ },
106
+ {
107
+ fieldName: "rgstUserNm",
108
+ header: { text: "등록자" },
109
+ width: 100
110
+ },
111
+ {
112
+ fieldName: "rgstDt",
113
+ header: { text: "등록일자" },
114
+ width: 120,
115
+ renderer: X.maskYmd
116
+ },
117
+ {
118
+ fieldName: "dueDt",
119
+ header: { text: "마감요청일자" },
120
+ width: 120,
121
+ renderer: X.maskYmd
122
+ },
123
+ {
124
+ fieldName: "urgentYn",
125
+ header: { text: "긴급여부" },
126
+ width: 80,
127
+ renderer: "alert"
128
+ },
129
+ {
130
+ fieldName: "prcsUserId",
131
+ visible: !1
132
+ },
133
+ {
134
+ fieldName: "prcsUserNm",
135
+ header: { text: "처리담당자" },
136
+ width: 100
137
+ },
138
+ {
139
+ fieldName: "prcsDt",
140
+ header: { text: "처리일자" },
141
+ width: 120,
142
+ renderer: X.maskYmd
143
+ },
144
+ {
145
+ fieldName: "scrnId",
146
+ header: { text: "화면ID" },
147
+ width: 100,
148
+ visible: !1
149
+ },
150
+ {
151
+ fieldName: "menuId",
152
+ header: { text: "메뉴ID" },
153
+ width: 100,
154
+ visible: !1
155
+ }
156
+ ], Ie = {
157
+ onCellDblClicked: (t, r) => {
158
+ const s = r.itemIndex ?? -1;
159
+ if (s < 0) return;
160
+ const h = t.getValues(s);
161
+ console.log("🔍 그리드 셀 더블클릭 이벤트:", h);
162
+ const p = {
163
+ ...h,
164
+ menuId: m?.menuId,
165
+ menuNm: m?.menuNm,
166
+ scrnId: m?.scrnId
167
+ };
168
+ i.setFieldsValue(p), pe(p.rgstUserId === v?.userId), ge(
169
+ p.status === "COMPLETED" || p.status === "REJECTED"
170
+ ), I("detail");
171
+ }
172
+ }, Q = () => {
173
+ i.resetFields(), I("list"), u.SCMBoardMstr0001(1, 20);
174
+ }, ie = async (t) => {
175
+ ee(!0);
176
+ try {
177
+ i.validateFields().then((r) => {
178
+ console.log("문의/신고 제출:", r), c === "new" ? u.SCMBoardMstr0003(r) : c === "detail" && u.SCMBoardMstr0004(r);
179
+ });
180
+ } catch (r) {
181
+ console.error("문의/신고 제출 실패:", r);
182
+ } finally {
183
+ ee(!1);
184
+ }
185
+ }, we = () => {
186
+ u.SCMBoardMstr0005();
187
+ }, Se = () => {
188
+ B?.current?.resetForm(), i.resetFields(), c === "new" ? I("list") : (I("list"), w?.close?.() || Z?.());
189
+ }, Be = () => {
190
+ B?.current?.resetForm(), i.resetFields(), I("list"), w?.close?.() || Z?.();
191
+ }, ve = () => {
192
+ (c === "detail" || c === "new") && I("list");
193
+ }, Me = () => {
194
+ i.resetFields(), I("new");
195
+ }, De = () => {
196
+ console.log("댓글 수동 새로고침"), j(15);
197
+ }, Ee = () => {
198
+ if (!P.trim()) {
199
+ g.warning("댓글 상세내용 작성");
200
+ return;
201
+ }
202
+ u.SCMBoardDtls0002(
203
+ i.getFieldValue("boardMstrId"),
204
+ P.trim()
205
+ ), le(""), setTimeout(() => {
206
+ F.current && (F.current.scrollTop = F.current.scrollHeight);
207
+ }, 100);
208
+ }, Ne = (t) => {
209
+ const r = Y.find((s) => s.id === t);
210
+ if (r && r.regUserId !== v?.userId) {
211
+ g.error("본인이 작성한 댓글만 삭제할 수 있습니다.");
212
+ return;
213
+ }
214
+ u.SCMBoardDtls0003(i.getFieldValue("boardMstrId"), t);
215
+ };
216
+ E(() => {
217
+ w && setTimeout(() => {
218
+ u.SCMBoardMstr0001(1, 20);
219
+ }, 100);
220
+ }, [w]);
221
+ const Pe = () => /* @__PURE__ */ n(L, { border: !1, children: [
222
+ /* @__PURE__ */ e(
223
+ Qe,
224
+ {
225
+ border: !0,
226
+ ref: B,
227
+ reqRows: /* @__PURE__ */ n(k, { children: [
228
+ /* @__PURE__ */ e(x, { gutter: [16, 8], style: { marginBottom: "8px" }, children: /* @__PURE__ */ e(l, { span: 24, children: /* @__PURE__ */ e(C, { label: "화면 정보", name: void 0, children: /* @__PURE__ */ n(D.Compact, { style: { width: "100%" }, children: [
229
+ /* @__PURE__ */ e(
230
+ d.Item,
231
+ {
232
+ name: "menuId",
233
+ style: {
234
+ width: "40%",
235
+ marginBottom: 0,
236
+ marginInlineEnd: 0
237
+ },
238
+ validateStatus: "",
239
+ help: "",
240
+ children: /* @__PURE__ */ e(a, { disabled: !0 })
241
+ }
242
+ ),
243
+ /* @__PURE__ */ e(
244
+ d.Item,
245
+ {
246
+ name: "menuNm",
247
+ style: { width: "60%", marginBottom: 0 },
248
+ children: /* @__PURE__ */ e(a, { disabled: !0 })
249
+ }
250
+ )
251
+ ] }) }) }) }),
252
+ /* @__PURE__ */ n(x, { gutter: [16, 8], style: { marginBottom: "8px" }, children: [
253
+ /* @__PURE__ */ e(l, { span: 6, children: /* @__PURE__ */ e(
254
+ V,
255
+ {
256
+ itemProps: {
257
+ label: "등록구분",
258
+ name: "type"
259
+ },
260
+ selectProps: {
261
+ options: A
262
+ }
263
+ }
264
+ ) }),
265
+ /* @__PURE__ */ e(l, { span: 12, children: /* @__PURE__ */ e(
266
+ $e,
267
+ {
268
+ itemProps: {
269
+ label: "등록일자",
270
+ name: "rgstDt"
271
+ },
272
+ inputProps: {
273
+ allowEmpty: !0
274
+ }
275
+ }
276
+ ) }),
277
+ /* @__PURE__ */ e(l, { span: 6, children: /* @__PURE__ */ e(
278
+ Ke,
279
+ {
280
+ itemProps: {
281
+ name: "myArticle",
282
+ label: "내 글만"
283
+ },
284
+ inputProps: {
285
+ format: "YN",
286
+ onChange: () => console.log("hello!!")
287
+ }
288
+ }
289
+ ) })
290
+ ] }),
291
+ /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e(l, { span: 24, children: /* @__PURE__ */ e(
292
+ Xe,
293
+ {
294
+ itemProps: {
295
+ label: "제목 및 내용",
296
+ name: "keyword"
297
+ }
298
+ }
299
+ ) }) })
300
+ ] })
301
+ }
302
+ ),
303
+ /* @__PURE__ */ e(
304
+ We,
305
+ {
306
+ ref: q,
307
+ gridColumns: Ce,
308
+ gridEvents: Ie,
309
+ gridOptions: {},
310
+ renderers: [
311
+ {
312
+ name: "tagType",
313
+ renderer: ye
314
+ },
315
+ {
316
+ name: "statusTag",
317
+ renderer: xe
318
+ },
319
+ {
320
+ name: "alert",
321
+ renderer: be
322
+ }
323
+ ]
324
+ }
325
+ ),
326
+ /* @__PURE__ */ e(
327
+ He,
328
+ {
329
+ ref: N,
330
+ mode: "server",
331
+ onServerPageChange: (t, r) => {
332
+ console.log("🔄 서버 모드 페이징 변경:", { page: t, size: r }), u.SCMBoardMstr0001(t, r);
333
+ },
334
+ pageSizeOptions: [10, 20, 50, 100]
335
+ }
336
+ )
337
+ ] }), Re = () => /* @__PURE__ */ n(W, { children: [
338
+ /* @__PURE__ */ e(
339
+ W.Panel,
340
+ {
341
+ defaultSize: "70%",
342
+ min: "60%",
343
+ max: "80%",
344
+ style: {
345
+ paddingRight: "15px",
346
+ overflowX: "hidden",
347
+ overflowY: "hidden"
348
+ },
349
+ children: /* @__PURE__ */ e(L, { children: /* @__PURE__ */ n(
350
+ d,
351
+ {
352
+ form: i,
353
+ onFinish: ie,
354
+ labelCol: { flex: "100px" },
355
+ disabled: !T || y,
356
+ children: [
357
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
358
+ /* @__PURE__ */ n(l, { span: 8, children: [
359
+ /* @__PURE__ */ e(d.Item, { name: "boardMstrId", hidden: !0, children: /* @__PURE__ */ e(a, {}) }),
360
+ /* @__PURE__ */ e(
361
+ V,
362
+ {
363
+ itemProps: { name: "type", label: "구분" },
364
+ selectProps: { options: A }
365
+ }
366
+ )
367
+ ] }),
368
+ /* @__PURE__ */ n(l, { span: 16, children: [
369
+ /* @__PURE__ */ e(C, { label: "화면 정보", name: void 0, children: /* @__PURE__ */ n(D.Compact, { children: [
370
+ /* @__PURE__ */ e(
371
+ d.Item,
372
+ {
373
+ name: "menuId",
374
+ style: {
375
+ width: "40%",
376
+ marginBottom: 0,
377
+ marginInlineEnd: 0
378
+ },
379
+ validateStatus: "",
380
+ help: "",
381
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
382
+ }
383
+ ),
384
+ /* @__PURE__ */ e(
385
+ d.Item,
386
+ {
387
+ name: "menuNm",
388
+ style: { width: "60%", marginBottom: 0 },
389
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
390
+ }
391
+ )
392
+ ] }) }),
393
+ /* @__PURE__ */ e(d.Item, { name: "scrnId", style: { width: "100%" }, hidden: !0, children: /* @__PURE__ */ e(a, { readOnly: !0 }) })
394
+ ] })
395
+ ] }),
396
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
397
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(C, { label: "작성자", name: void 0, children: /* @__PURE__ */ n(D.Compact, { style: { width: "100%" }, children: [
398
+ /* @__PURE__ */ e(
399
+ d.Item,
400
+ {
401
+ name: "rgstUserId",
402
+ style: {
403
+ width: "40%",
404
+ marginBottom: 0,
405
+ marginInlineEnd: 0
406
+ },
407
+ validateStatus: "",
408
+ help: "",
409
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
410
+ }
411
+ ),
412
+ /* @__PURE__ */ e(
413
+ d.Item,
414
+ {
415
+ name: "rgstUserNm",
416
+ style: { width: "60%", marginBottom: 0 },
417
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
418
+ }
419
+ )
420
+ ] }) }) }),
421
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
422
+ K,
423
+ {
424
+ itemProps: {
425
+ label: "작성일자",
426
+ name: "rgstDt"
427
+ },
428
+ inputProps: { disabled: !0 }
429
+ }
430
+ ) }),
431
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
432
+ V,
433
+ {
434
+ itemProps: { name: "status", label: "상태" },
435
+ selectProps: { options: ue, disabled: !0 }
436
+ }
437
+ ) })
438
+ ] }),
439
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
440
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
441
+ K,
442
+ {
443
+ itemProps: {
444
+ label: "마감요청일",
445
+ name: "dueDate"
446
+ }
447
+ }
448
+ ) }),
449
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ n(Ve, { vertical: !0, gap: 2, children: [
450
+ /* @__PURE__ */ e("span", { style: { fontSize: "12px", color: "#000000E0" }, children: "진척률" }),
451
+ /* @__PURE__ */ e(
452
+ Ae,
453
+ {
454
+ percent: he[i.getFieldValue(
455
+ "status"
456
+ )],
457
+ status: he[i.getFieldValue(
458
+ "status"
459
+ )] > 0 ? "active" : "normal",
460
+ size: "small",
461
+ format: (t) => `${t}%`
462
+ }
463
+ )
464
+ ] }) }),
465
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
466
+ me,
467
+ {
468
+ itemProps: { name: "urgentYn", label: "긴급여부" }
469
+ }
470
+ ) })
471
+ ] }),
472
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
473
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(C, { label: "처리담당자", name: void 0, help: "", children: /* @__PURE__ */ n(D.Compact, { children: [
474
+ /* @__PURE__ */ e(
475
+ d.Item,
476
+ {
477
+ name: "processor",
478
+ style: {
479
+ width: "40%",
480
+ marginBottom: 0,
481
+ marginInlineEnd: 0
482
+ },
483
+ validateStatus: "",
484
+ help: "",
485
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
486
+ }
487
+ ),
488
+ /* @__PURE__ */ e(
489
+ d.Item,
490
+ {
491
+ name: "processorNm",
492
+ style: { width: "60%", marginBottom: 0 },
493
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
494
+ }
495
+ )
496
+ ] }) }) }),
497
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
498
+ K,
499
+ {
500
+ itemProps: {
501
+ label: "처리일자",
502
+ name: "processDt"
503
+ }
504
+ }
505
+ ) })
506
+ ] }),
507
+ /* @__PURE__ */ e(x, { gutter: [16, 8], children: /* @__PURE__ */ e(l, { span: 24, children: /* @__PURE__ */ e(
508
+ C,
509
+ {
510
+ label: "제목",
511
+ name: "title",
512
+ style: { width: "100%" },
513
+ children: /* @__PURE__ */ e(a, {})
514
+ }
515
+ ) }) }),
516
+ /* @__PURE__ */ e(
517
+ ce,
518
+ {
519
+ border: !1,
520
+ itemProps: {
521
+ name: "content",
522
+ label: "내용",
523
+ rules: [{ required: !0, message: "내용을 입력하세요." }]
524
+ },
525
+ editorProps: {
526
+ isEditing: T && !y,
527
+ title: { title: "에디터" }
528
+ }
529
+ }
530
+ )
531
+ ]
532
+ }
533
+ ) })
534
+ }
535
+ ),
536
+ /* @__PURE__ */ e(W.Panel, { collapsible: !0, style: { paddingLeft: "15px" }, children: /* @__PURE__ */ n(
537
+ L,
538
+ {
539
+ style: {
540
+ flex: "0 0 400px",
541
+ display: "flex",
542
+ flexDirection: "column"
543
+ },
544
+ children: [
545
+ /* @__PURE__ */ n(
546
+ "div",
547
+ {
548
+ style: {
549
+ borderBottom: "1px solid #e8e8e8",
550
+ paddingBottom: "12px",
551
+ marginBottom: "16px",
552
+ display: "flex",
553
+ alignItems: "center",
554
+ justifyContent: "space-between"
555
+ },
556
+ children: [
557
+ /* @__PURE__ */ e(
558
+ "span",
559
+ {
560
+ style: {
561
+ fontSize: "14px",
562
+ fontWeight: "600",
563
+ color: "#262626"
564
+ },
565
+ children: "댓글"
566
+ }
567
+ ),
568
+ /* @__PURE__ */ n("div", { style: { position: "relative", display: "inline-block" }, children: [
569
+ /* @__PURE__ */ e(
570
+ z,
571
+ {
572
+ type: "text",
573
+ icon: /* @__PURE__ */ e(ae, { spin: G || o }),
574
+ onClick: De,
575
+ disabled: G || o,
576
+ size: "small",
577
+ style: {
578
+ fontSize: "12px",
579
+ color: y ? "#d9d9d9" : o ? "#8c8c8c" : "#595959",
580
+ height: "24px",
581
+ padding: "0 8px"
582
+ }
583
+ }
584
+ ),
585
+ !y && /* @__PURE__ */ e(
586
+ "span",
587
+ {
588
+ style: {
589
+ position: "absolute",
590
+ top: "-4px",
591
+ right: "-4px",
592
+ fontSize: "10px",
593
+ fontWeight: "700",
594
+ color: G ? "#8c8c8c" : "#1890ff",
595
+ minWidth: "14px",
596
+ height: "14px",
597
+ lineHeight: "14px",
598
+ textAlign: "center",
599
+ borderRadius: "50%",
600
+ pointerEvents: "none"
601
+ },
602
+ children: fe
603
+ }
604
+ )
605
+ ] })
606
+ ]
607
+ }
608
+ ),
609
+ /* @__PURE__ */ e(
610
+ "div",
611
+ {
612
+ ref: F,
613
+ style: {
614
+ flex: 1,
615
+ overflowY: "auto",
616
+ marginBottom: "16px",
617
+ minHeight: 0,
618
+ position: "relative"
619
+ },
620
+ children: o ? /* @__PURE__ */ n(
621
+ "div",
622
+ {
623
+ style: {
624
+ display: "flex",
625
+ flexDirection: "column",
626
+ alignItems: "center",
627
+ justifyContent: "center",
628
+ height: "200px",
629
+ color: "#8c8c8c"
630
+ },
631
+ children: [
632
+ /* @__PURE__ */ e("div", { style: { marginBottom: "12px" }, children: /* @__PURE__ */ e(ae, { spin: !0, style: { fontSize: "24px" } }) }),
633
+ /* @__PURE__ */ e("div", { style: { fontSize: "13px" }, children: "댓글을 불러오는 중..." })
634
+ ]
635
+ }
636
+ ) : Y.length === 0 ? /* @__PURE__ */ e(
637
+ "div",
638
+ {
639
+ style: {
640
+ display: "flex",
641
+ flexDirection: "column",
642
+ alignItems: "center",
643
+ justifyContent: "center",
644
+ height: "200px",
645
+ color: "#8c8c8c"
646
+ },
647
+ children: /* @__PURE__ */ e("div", { style: { fontSize: "13px" }, children: "등록된 댓글이 없습니다." })
648
+ }
649
+ ) : /* @__PURE__ */ e(
650
+ H,
651
+ {
652
+ dataSource: Y,
653
+ renderItem: (t) => /* @__PURE__ */ n(
654
+ H.Item,
655
+ {
656
+ style: {
657
+ position: "relative",
658
+ paddingRight: "20px",
659
+ padding: "12px 20px 12px 12px",
660
+ borderBottom: "1px solid #f0f0f0"
661
+ },
662
+ children: [
663
+ /* @__PURE__ */ e(
664
+ H.Item.Meta,
665
+ {
666
+ avatar: /* @__PURE__ */ e(
667
+ Ue,
668
+ {
669
+ size: 32,
670
+ style: {
671
+ backgroundColor: "#1890ff",
672
+ fontSize: "13px"
673
+ },
674
+ children: t.author[0]
675
+ }
676
+ ),
677
+ title: /* @__PURE__ */ n(
678
+ "div",
679
+ {
680
+ style: {
681
+ display: "flex",
682
+ justifyContent: "space-between",
683
+ alignItems: "center",
684
+ marginBottom: "4px"
685
+ },
686
+ children: [
687
+ /* @__PURE__ */ e(
688
+ "span",
689
+ {
690
+ style: {
691
+ fontWeight: "500",
692
+ fontSize: "13px",
693
+ color: "#262626"
694
+ },
695
+ children: t.author
696
+ }
697
+ ),
698
+ /* @__PURE__ */ e(
699
+ "span",
700
+ {
701
+ style: {
702
+ fontSize: "11px",
703
+ color: "#8c8c8c"
704
+ },
705
+ children: t.regDt
706
+ }
707
+ )
708
+ ]
709
+ }
710
+ ),
711
+ description: /* @__PURE__ */ e(
712
+ "span",
713
+ {
714
+ style: {
715
+ fontSize: "13px",
716
+ color: "#595959",
717
+ lineHeight: "1.5"
718
+ },
719
+ children: t.content
720
+ }
721
+ )
722
+ }
723
+ ),
724
+ t.regUserId === v?.userId && /* @__PURE__ */ e(
725
+ z,
726
+ {
727
+ type: "text",
728
+ danger: !0,
729
+ icon: /* @__PURE__ */ e(ze, { style: { fontSize: "12px" } }),
730
+ size: "small",
731
+ onClick: () => Ne(t.id),
732
+ disabled: o,
733
+ style: {
734
+ position: "absolute",
735
+ right: "8px",
736
+ top: "62%",
737
+ transform: "translateY(-50%)",
738
+ opacity: o ? 0.3 : 0.5,
739
+ height: "24px",
740
+ width: "24px",
741
+ padding: 0
742
+ },
743
+ onMouseEnter: (r) => {
744
+ o || (r.currentTarget.style.opacity = "1");
745
+ },
746
+ onMouseLeave: (r) => {
747
+ r.currentTarget.style.opacity = o ? "0.3" : "0.5";
748
+ }
749
+ }
750
+ )
751
+ ]
752
+ },
753
+ t.id
754
+ )
755
+ }
756
+ )
757
+ }
758
+ ),
759
+ /* @__PURE__ */ e(
760
+ "div",
761
+ {
762
+ style: {
763
+ padding: "12px",
764
+ borderTop: "1px solid #e8e8e8",
765
+ backgroundColor: y ? "#f5f5f5" : "#fafafa",
766
+ flexShrink: 0,
767
+ marginTop: "auto"
768
+ },
769
+ children: y ? /* @__PURE__ */ n(
770
+ "div",
771
+ {
772
+ style: {
773
+ textAlign: "center",
774
+ padding: "20px",
775
+ color: "#8c8c8c",
776
+ fontSize: "13px",
777
+ backgroundColor: "#ffffff",
778
+ borderRadius: "6px",
779
+ border: "1px solid #e8e8e8"
780
+ },
781
+ children: [
782
+ /* @__PURE__ */ e("div", { style: { marginBottom: "8px" }, children: /* @__PURE__ */ e(se, { twoToneColor: "#faad14" }) }),
783
+ /* @__PURE__ */ e("div", { children: "이미 완료처리된 게시글입니다." }),
784
+ /* @__PURE__ */ e("div", { style: { fontSize: "11px", marginTop: "4px" }, children: "댓글을 작성할 수 없습니다." })
785
+ ]
786
+ }
787
+ ) : /* @__PURE__ */ n(k, { children: [
788
+ /* @__PURE__ */ e("div", { style: { marginBottom: "8px" }, children: /* @__PURE__ */ e(
789
+ _e,
790
+ {
791
+ rows: 2,
792
+ placeholder: o ? "댓글 처리 중..." : "댓글을 입력하세요...",
793
+ value: P,
794
+ onChange: (t) => le(t.target.value),
795
+ maxLength: 300,
796
+ disabled: o,
797
+ style: {
798
+ borderRadius: "6px",
799
+ border: "1px solid #d9d9d9",
800
+ resize: "none",
801
+ fontSize: "13px",
802
+ backgroundColor: o ? "#f5f5f5" : "#ffffff",
803
+ color: o ? "#8c8c8c" : "#000000"
804
+ },
805
+ onFocus: (t) => {
806
+ o || (t.target.style.borderColor = "#1890ff", t.target.style.boxShadow = "0 0 0 2px rgba(24, 144, 255, 0.05)");
807
+ },
808
+ onBlur: (t) => {
809
+ t.target.style.borderColor = "#d9d9d9", t.target.style.boxShadow = "none";
810
+ }
811
+ }
812
+ ) }),
813
+ /* @__PURE__ */ n(
814
+ "div",
815
+ {
816
+ style: {
817
+ display: "flex",
818
+ justifyContent: "space-between",
819
+ alignItems: "center"
820
+ },
821
+ children: [
822
+ /* @__PURE__ */ e("span", { style: { fontSize: "11px", color: "#8c8c8c" }, children: o ? "처리 중..." : `${P.length} / 300자` }),
823
+ /* @__PURE__ */ e(
824
+ z,
825
+ {
826
+ type: "primary",
827
+ onClick: Ee,
828
+ size: "small",
829
+ loading: o,
830
+ style: {
831
+ borderRadius: "4px",
832
+ fontSize: "12px",
833
+ height: "28px",
834
+ padding: "0 16px",
835
+ fontWeight: "500"
836
+ },
837
+ disabled: !P.trim() || o,
838
+ children: o ? "등록 중..." : "등록"
839
+ }
840
+ )
841
+ ]
842
+ }
843
+ )
844
+ ] })
845
+ }
846
+ )
847
+ ]
848
+ }
849
+ ) })
850
+ ] }), Te = () => /* @__PURE__ */ e(L, { children: /* @__PURE__ */ n(
851
+ Ze,
852
+ {
853
+ form: i,
854
+ onFinish: ie,
855
+ initialValues: {
856
+ type: "INQR"
857
+ // 기본값: 문의
858
+ },
859
+ labelCol: { flex: "100px" },
860
+ children: [
861
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
862
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
863
+ V,
864
+ {
865
+ itemProps: {
866
+ name: "type",
867
+ label: "구분",
868
+ rules: [{ required: !0, message: "구분을 선택해주세요." }]
869
+ },
870
+ selectProps: { options: A }
871
+ }
872
+ ) }),
873
+ /* @__PURE__ */ n(l, { span: 16, children: [
874
+ /* @__PURE__ */ e(C, { label: "화면 정보", name: void 0, children: /* @__PURE__ */ n(D.Compact, { style: { width: "100%" }, children: [
875
+ /* @__PURE__ */ e(
876
+ d.Item,
877
+ {
878
+ name: "menuId",
879
+ style: {
880
+ width: "40%",
881
+ marginBottom: 0,
882
+ marginInlineEnd: 0
883
+ },
884
+ validateStatus: "",
885
+ help: "",
886
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
887
+ }
888
+ ),
889
+ /* @__PURE__ */ e(
890
+ d.Item,
891
+ {
892
+ name: "menuNm",
893
+ style: { width: "60%", marginBottom: 0 },
894
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
895
+ }
896
+ )
897
+ ] }) }),
898
+ /* @__PURE__ */ e(d.Item, { name: "scrnId", style: { width: "100%" }, hidden: !0, children: /* @__PURE__ */ e(a, { readOnly: !0 }) })
899
+ ] })
900
+ ] }),
901
+ /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
902
+ /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(C, { label: "작성자", name: void 0, children: /* @__PURE__ */ n(D.Compact, { style: { width: "100%" }, children: [
903
+ /* @__PURE__ */ e(
904
+ d.Item,
905
+ {
906
+ name: "rgstUserId",
907
+ style: {
908
+ width: "40%",
909
+ marginBottom: 0,
910
+ marginInlineEnd: 0
911
+ },
912
+ validateStatus: "",
913
+ help: "",
914
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
915
+ }
916
+ ),
917
+ /* @__PURE__ */ e(
918
+ d.Item,
919
+ {
920
+ name: "rgstUserNm",
921
+ style: { width: "60%", marginBottom: 0 },
922
+ children: /* @__PURE__ */ e(a, { readOnly: !0 })
923
+ }
924
+ )
925
+ ] }) }) }),
926
+ /* @__PURE__ */ e(l, { span: 6, children: /* @__PURE__ */ e(
927
+ C,
928
+ {
929
+ label: "작성일자",
930
+ name: "rgstDt",
931
+ style: { width: "100%" },
932
+ children: /* @__PURE__ */ e(de, { disabled: !0 })
933
+ }
934
+ ) }),
935
+ /* @__PURE__ */ e(l, { span: 6, children: /* @__PURE__ */ e(
936
+ C,
937
+ {
938
+ label: "마감요청일",
939
+ name: "dueDate",
940
+ style: { width: "100%" },
941
+ children: /* @__PURE__ */ e(de, {})
942
+ }
943
+ ) }),
944
+ /* @__PURE__ */ e(l, { span: 4, children: /* @__PURE__ */ e(
945
+ me,
946
+ {
947
+ itemProps: { name: "urgentYn", label: "긴급여부" }
948
+ }
949
+ ) })
950
+ ] }),
951
+ /* @__PURE__ */ e(x, { gutter: [16, 8], children: /* @__PURE__ */ e(l, { span: 24, children: /* @__PURE__ */ e(
952
+ C,
953
+ {
954
+ label: "제목",
955
+ name: "title",
956
+ style: { width: "100%" },
957
+ rules: [{ required: !0, message: "제목을 입력해주세요." }],
958
+ children: /* @__PURE__ */ e(a, {})
959
+ }
960
+ ) }) }),
961
+ /* @__PURE__ */ e(
962
+ ce,
963
+ {
964
+ border: !1,
965
+ itemProps: { name: "content" },
966
+ editorProps: {
967
+ isEditing: te,
968
+ title: {
969
+ title: /* @__PURE__ */ n(k, { children: [
970
+ /* @__PURE__ */ e(Le, { style: { marginRight: "5px" } }),
971
+ " 상세내용 작성"
972
+ ] }),
973
+ children: /* @__PURE__ */ e(
974
+ z,
975
+ {
976
+ icon: /* @__PURE__ */ e(Oe, {}),
977
+ onClick: () => re(!te),
978
+ children: "미리보기"
979
+ }
980
+ )
981
+ }
982
+ }
983
+ }
984
+ )
985
+ ]
986
+ }
987
+ ) });
988
+ E(() => {
989
+ c === "new" && (re(!0), i.setFieldsValue({
990
+ type: "INQR",
991
+ // 기본값: 문의
992
+ menuId: m?.menuId,
993
+ menuNm: m?.menuNm,
994
+ scrnId: m?.scrnId,
995
+ rgstUserId: v?.userId,
996
+ rgstUserNm: v?.userNm,
997
+ rgstDt: Ye(),
998
+ // 오늘 날짜 자동 설정
999
+ content: ""
1000
+ // 에디터 초기화
1001
+ }));
1002
+ }, [c, i, m, v]), E(() => {
1003
+ if (c === "detail" && !y) {
1004
+ const t = setInterval(() => {
1005
+ j((r) => r <= 1 ? (console.log("🔄 댓글 자동 갱신 실행 (카운트다운 완료)"), u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")), 15) : r - 1);
1006
+ }, 1e3);
1007
+ return u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")), () => {
1008
+ console.log("🧹 댓글 인터벌 정리"), clearInterval(t);
1009
+ };
1010
+ } else c === "detail" && y && (console.log("📋 완료된 게시글 - 댓글 조회만"), u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")));
1011
+ }, [c, y, i]), E(() => () => {
1012
+ console.log("🧹 컴포넌트 언마운트 - 모든 인터벌 정리"), U.current && (clearInterval(U.current), U.current = null);
1013
+ }, []), E(() => {
1014
+ c === "list" && m && (B?.current?.setFormData({
1015
+ menuId: m?.menuId,
1016
+ menuNm: m?.menuNm
1017
+ }), u.SCMBoardMstr0001(1, 20));
1018
+ }, [c, m]), E(() => {
1019
+ w && m && B?.current?.setFormData({
1020
+ menuId: m?.menuId,
1021
+ menuNm: m?.menuNm
1022
+ });
1023
+ }, [w, m]);
1024
+ const u = {
1025
+ SCMBoardMstr0001: async (t, r) => {
1026
+ const s = t || N.current?.currentPage || 1, h = r || N.current?.pageSize || 20, p = {
1027
+ ...B?.current?.getFormData(),
1028
+ pageNum: s,
1029
+ // 1-based
1030
+ pageCount: h
1031
+ };
1032
+ console.log("🔍 서버 모드 페이징 요청:", p);
1033
+ try {
1034
+ const f = await S("SCMBoardMstr0001", p, {
1035
+ isPopup: !0
1036
+ });
1037
+ if (f && f.pageList) {
1038
+ const R = f.pageCnt || 0;
1039
+ N.current?.setTotalData(R), q.current?.addAllData(f.pageList);
1040
+ } else
1041
+ N.current?.setTotalData(0), q.current?.addAllData([]), console.log("📭 서버 모드 페이징 데이터 없음");
1042
+ } catch (f) {
1043
+ console.error("❌ SCMBoardMstr0001 호출 실패:", f), g.error("데이터 조회 중 오류가 발생했습니다.");
1044
+ }
1045
+ },
1046
+ /**
1047
+ * 문의/신고 등록
1048
+ * @param values
1049
+ */
1050
+ SCMBoardMstr0003: (t) => {
1051
+ S(
1052
+ "SCMBoardMstr0003",
1053
+ {
1054
+ ...t,
1055
+ status: "READY"
1056
+ },
1057
+ { isPopup: !0 }
1058
+ ).then((r) => {
1059
+ console.log("문의/신고 제출 응답:", r), g.success("정상 접수되었습니다."), Q();
1060
+ }).catch((r) => {
1061
+ console.error("문의/신고 제출 실패:", r), g.error("접수 중 오류가 발생했습니다.");
1062
+ });
1063
+ },
1064
+ /**
1065
+ * 문의/신고 수정
1066
+ * @param values
1067
+ */
1068
+ SCMBoardMstr0004: (t) => {
1069
+ S(
1070
+ "SCMBoardMstr0004",
1071
+ {
1072
+ boardMstrId: i.getFieldValue("boardMstrId"),
1073
+ ...t
1074
+ },
1075
+ { isPopup: !0 }
1076
+ ).then((r) => {
1077
+ console.log("문의/신고 제출 응답:", r), g.success("수정이 완료되었습니다."), Q();
1078
+ }).catch((r) => {
1079
+ console.error("문의/신고 변경 실패:", r);
1080
+ });
1081
+ },
1082
+ SCMBoardMstr0005: () => {
1083
+ S(
1084
+ "SCMBoardMstr0005",
1085
+ { boardMstrId: i.getFieldValue("boardMstrId") },
1086
+ { isPopup: !0 }
1087
+ ).then((t) => {
1088
+ console.log("문의/신고 삭제 응답:", t), g.success("삭제가 완료되었습니다."), Q();
1089
+ });
1090
+ },
1091
+ /**
1092
+ * 게시글 댓글 목록 조회
1093
+ * @param boardMstrId
1094
+ * @returns 댓글 목록
1095
+ */
1096
+ SCMBoardDtls0001: (t) => {
1097
+ M(!0), S(
1098
+ "SCMBoardDtls0001",
1099
+ {
1100
+ boardMstrId: t
1101
+ },
1102
+ { isPopup: !0, showLoading: !1 }
1103
+ ).then((r) => {
1104
+ if (r && r.subList) {
1105
+ const s = r.subList.map((h) => ({
1106
+ id: h.seq,
1107
+ author: h.userNm || h.regUserId,
1108
+ regUserId: h.regUserId,
1109
+ content: h.content,
1110
+ regDt: h.regDt
1111
+ }));
1112
+ ne(s);
1113
+ } else
1114
+ ne([]);
1115
+ }).catch((r) => {
1116
+ console.error("게시글 댓글 목록 조회 실패:", r), g.error("댓글 목록 조회 중 오류가 발생했습니다.");
1117
+ }).finally(() => {
1118
+ M(!1), j(15);
1119
+ });
1120
+ },
1121
+ /**
1122
+ *
1123
+ * 게시글 댓글 등록
1124
+ * @param boardMstrId
1125
+ * @param content
1126
+ * @returns
1127
+ */
1128
+ SCMBoardDtls0002: (t, r) => {
1129
+ M(!0), S(
1130
+ "SCMBoardDtls0002",
1131
+ {
1132
+ boardMstrId: t,
1133
+ content: r
1134
+ },
1135
+ { isPopup: !0, showLoading: !1 }
1136
+ ).then((s) => {
1137
+ s && s.result === 1 ? (g.success("댓글이 등록되었습니다."), u.SCMBoardDtls0001(t)) : g.error("댓글 등록에 실패했습니다.");
1138
+ }).catch((s) => {
1139
+ g.error("댓글 등록 중 오류가 발생했습니다.");
1140
+ }).finally(() => {
1141
+ M(!1);
1142
+ });
1143
+ },
1144
+ /**
1145
+ * 게시글 댓글 삭제
1146
+ * @param boardMstrId
1147
+ * @param seq
1148
+ * @returns
1149
+ */
1150
+ SCMBoardDtls0003: (t, r) => {
1151
+ M(!0), S(
1152
+ "SCMBoardDtls0003",
1153
+ {
1154
+ boardMstrId: t,
1155
+ seq: r
1156
+ },
1157
+ { isPopup: !0, showLoading: !1 }
1158
+ ).then((s) => {
1159
+ s && s.result === 1 ? (g.success("댓글이 삭제되었습니다."), u.SCMBoardDtls0001(t)) : g.error("댓글 삭제에 실패했습니다.");
1160
+ }).catch((s) => {
1161
+ g.error("댓글 삭제 중 오류가 발생했습니다.");
1162
+ }).finally(() => {
1163
+ M(!1);
1164
+ });
1165
+ }
1166
+ }, Fe = () => {
1167
+ switch (c) {
1168
+ case "list":
1169
+ return [
1170
+ {
1171
+ id: "REFRESH",
1172
+ label: "조회",
1173
+ type: "default",
1174
+ onClick: () => u.SCMBoardMstr0001(),
1175
+ disabled: _
1176
+ },
1177
+ {
1178
+ id: "NEW",
1179
+ label: "신규 등록",
1180
+ type: "primary",
1181
+ onClick: Me
1182
+ }
1183
+ ];
1184
+ case "detail":
1185
+ return [
1186
+ {
1187
+ id: "BACK",
1188
+ label: "뒤로",
1189
+ type: "default",
1190
+ onClick: ve
1191
+ },
1192
+ {
1193
+ id: "EDIT",
1194
+ label: "수정",
1195
+ type: "primary",
1196
+ disabled: !T || y,
1197
+ onClick: () => i.submit()
1198
+ },
1199
+ {
1200
+ id: "DELETE",
1201
+ label: "삭제",
1202
+ type: "default",
1203
+ disabled: !T || y,
1204
+ onClick: we
1205
+ }
1206
+ ];
1207
+ case "new":
1208
+ return [
1209
+ {
1210
+ id: "SUBMIT",
1211
+ label: "제출",
1212
+ type: "primary",
1213
+ onClick: () => i.submit(),
1214
+ disabled: _
1215
+ },
1216
+ {
1217
+ id: "CANCEL",
1218
+ label: "취소",
1219
+ type: "default",
1220
+ onClick: Se
1221
+ }
1222
+ ];
1223
+ default:
1224
+ return [];
1225
+ }
1226
+ }, ke = {};
1227
+ return /* @__PURE__ */ n(
1228
+ qe,
1229
+ {
1230
+ popup: w,
1231
+ buttons: Fe(),
1232
+ popupEvent: ke,
1233
+ onClose: Be,
1234
+ children: [
1235
+ c === "list" && Pe(),
1236
+ c === "detail" && Re(),
1237
+ c === "new" && Te()
1238
+ ]
1239
+ }
1240
+ );
1241
+ };
1242
+ export {
1243
+ ht as default
1244
+ };