@bwg-ui/core 1.2.35 → 1.3.0

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 (78) hide show
  1. package/dist/chunks/{CMSearchIntfGwP01-CMSQULsU.cjs → CMSearchIntfGwP01-D7XtXMLy.cjs} +1 -1
  2. package/dist/chunks/{CMSearchIntfGwP01-Duabg_5A.js → CMSearchIntfGwP01-_h2B12Ig.js} +28 -28
  3. package/dist/chunks/{MenuReport-B4EU1A6l.js → MenuReport-Bw3AvR6b.js} +10 -10
  4. package/dist/chunks/MenuReport-DuWbbKBC.cjs +1 -0
  5. package/dist/chunks/common-components-BOJo6FH_.cjs +1109 -0
  6. package/dist/chunks/{common-components-DIpOkbb5.js → common-components-BjfrRYiU.js} +13530 -12812
  7. package/dist/chunks/{layout-components-D2Fla5uu.js → layout-components-DNhUIx4u.js} +603 -559
  8. package/dist/chunks/layout-components-Ddn-4n36.cjs +35 -0
  9. package/dist/chunks/provider-DrboIg2C.cjs +1 -0
  10. package/dist/chunks/provider-VCa8UGvF.js +446 -0
  11. package/dist/components/common/BwgGrid.d.ts +17 -16
  12. package/dist/components/common/BwgGrid.d.ts.map +1 -1
  13. package/dist/components/common/BwgPagination.d.ts.map +1 -1
  14. package/dist/components/common/BwgView.d.ts +3 -3
  15. package/dist/components/common/BwgView.d.ts.map +1 -1
  16. package/dist/components/common/index.cjs +1 -1
  17. package/dist/components/common/index.d.ts +4 -3
  18. package/dist/components/common/index.d.ts.map +1 -1
  19. package/dist/components/common/index.js +5 -5
  20. package/dist/components/common/type.d.ts +7 -0
  21. package/dist/components/common/type.d.ts.map +1 -1
  22. package/dist/components/core/BwgMaskedDate.d.ts +13 -0
  23. package/dist/components/core/BwgMaskedDate.d.ts.map +1 -0
  24. package/dist/components/core/{BwgMaskedPicker.d.ts → BwgMaskedRange.d.ts} +6 -4
  25. package/dist/components/core/BwgMaskedRange.d.ts.map +1 -0
  26. package/dist/components/core/index.cjs +1 -1
  27. package/dist/components/core/index.d.ts +4 -2
  28. package/dist/components/core/index.d.ts.map +1 -1
  29. package/dist/components/core/index.js +1219 -781
  30. package/dist/components/guide/index.cjs +1 -1
  31. package/dist/components/guide/index.js +2 -2
  32. package/dist/components/layout/BwgPortal01.d.ts.map +1 -1
  33. package/dist/components/layout/custom/ConfigurableHeader.d.ts.map +1 -1
  34. package/dist/components/layout/extension/ContentWrapper.d.ts.map +1 -1
  35. package/dist/components/layout/index.cjs +1 -1
  36. package/dist/components/layout/index.js +1 -1
  37. package/dist/components/pages/syst/CMHldyCfg.d.ts.map +1 -1
  38. package/dist/components/popup/MenuReport.d.ts.map +1 -1
  39. package/dist/components/popup/SearchAddressP01.d.ts +30 -0
  40. package/dist/components/popup/SearchAddressP01.d.ts.map +1 -0
  41. package/dist/components/popup/SearchHolidayP01.d.ts +2 -2
  42. package/dist/components/popup/SearchHolidayP01.d.ts.map +1 -1
  43. package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -1
  44. package/dist/components/popup/index.cjs +1 -1
  45. package/dist/components/popup/index.d.ts +2 -0
  46. package/dist/components/popup/index.d.ts.map +1 -1
  47. package/dist/components/popup/index.js +6 -5
  48. package/dist/index.cjs +1 -1
  49. package/dist/index.js +270 -259
  50. package/dist/provider/contexts/BwgViewContext.d.ts +19 -0
  51. package/dist/provider/contexts/BwgViewContext.d.ts.map +1 -0
  52. package/dist/provider/contexts/index.d.ts +1 -0
  53. package/dist/provider/contexts/index.d.ts.map +1 -1
  54. package/dist/provider/hooks/index.d.ts +1 -0
  55. package/dist/provider/hooks/index.d.ts.map +1 -1
  56. package/dist/provider/hooks/useSizeConfig.d.ts +19 -0
  57. package/dist/provider/hooks/useSizeConfig.d.ts.map +1 -0
  58. package/dist/provider/index.cjs +1 -1
  59. package/dist/provider/index.js +22 -381
  60. package/dist/stores/index.cjs +2 -2
  61. package/dist/stores/index.js +18 -11
  62. package/dist/stores/userStore.d.ts +4 -0
  63. package/dist/stores/userStore.d.ts.map +1 -1
  64. package/dist/styles/components.css +90 -60
  65. package/dist/utils/{FileUtils.d.ts → fileUtils.d.ts} +1 -1
  66. package/dist/utils/fileUtils.d.ts.map +1 -0
  67. package/dist/utils/gridUtils.d.ts +45 -0
  68. package/dist/utils/gridUtils.d.ts.map +1 -0
  69. package/dist/utils/index.cjs +1 -1
  70. package/dist/utils/index.d.ts +12 -2
  71. package/dist/utils/index.d.ts.map +1 -1
  72. package/dist/utils/index.js +1112 -1005
  73. package/package.json +1 -1
  74. package/dist/chunks/MenuReport-5e2dMr_C.cjs +0 -1
  75. package/dist/chunks/common-components-D3-r7D-8.cjs +0 -1109
  76. package/dist/chunks/layout-components-pfHVy2at.cjs +0 -35
  77. package/dist/components/core/BwgMaskedPicker.d.ts.map +0 -1
  78. package/dist/utils/FileUtils.d.ts.map +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),U=require("@ant-design/icons"),L=require("antd"),o=require("react"),p=require("dayjs"),F=require("../utils/index.cjs"),l=require("./common-components-D3-r7D-8.cjs"),h=require("../components/core/index.cjs"),W=[{label:"전체",value:""},{label:"기안",value:"DRAFT"},{label:"결재중",value:"IN_PROGRESS"},{label:"승인",value:"APPROVED"},{label:"반려",value:"REJECTED"}],Y=({popup:i,onClose:G})=>{const D=o.useRef(null),P=o.useRef(null),B=o.useRef(null),[j,v]=o.useState([]),[k,A]=o.useState(!1),[m,N]=o.useState(null),[I,E]=o.useState(1),[C,M]=o.useState(10),[K,O]=o.useState(0),T=o.useMemo(()=>{const a=p(),c=[];for(let s=1;s<=120;s++){const n=["DRAFT","IN_PROGRESS","APPROVED","REJECTED"];c.push({gwDcmtKey:`GW-${String(1e4+s)}`,gwDcmtNm:`업무 기안서 #${s}`,userId:`user${s%7+1}`,dprtNo:["HR","GEN","DEV1","DEV2","FIN"][s%5],aprvStts:n[s%n.length],aprvKey:F.generateUID(),createdAt:a.add(-(s%45),"day").hour(9+s%8).toISOString()})}return c},[]),w=o.useCallback(async(a,c)=>{A(!0),N(null);try{const s=B.current?.getFormData?.()??{},n=a??I,f=c??C,u={...s,page:n,pageSize:f},y=i?.popupParams?.serviceCode;if(y){const r=await F.callService(y,u),d=(r?.list||r?.data||[]).map(t=>({gwDcmtKey:t.gwDcmtKey??t.docNo??t.doc_id??t.id??"",gwDcmtNm:t.gwDcmtNm??t.title??t.subject??"",userId:t.userId??t.drafter??t.writerName??"",dprtNo:t.dprtNo??t.deptName??t.department??"",aprvStts:t.aprvStts??t.status??"DRAFT",createdAt:t.createdAt??t.writeYmd??t.created_at??"",aprvKey:t.aprvKey??void 0}));v(d),O(Number(r?.totalCount??r?.total??d.length));return}const S=T.filter(r=>{const d=u.keyword?.trim()?.toLowerCase(),t=!d||r.gwDcmtKey.toLowerCase().includes(d)||r.gwDcmtNm.toLowerCase().includes(d)||r.userId.toLowerCase().includes(d)||r.dprtNo.toLowerCase().includes(d),R=!u.status||r.aprvStts===u.status,g=u.createdAt,H=!g||(p(r.createdAt).isAfter(g[0].startOf("day"))||p(r.createdAt).isSame(g[0],"day"))&&(p(r.createdAt).isBefore(g[1].endOf("day"))||p(r.createdAt).isSame(g[1],"day"));return t&&R&&H});O(S.length);const x=(n-1)*f,$=S.slice(x,x+f);v($)}catch{L.message.error("목록 조회 중 오류가 발생했습니다.")}finally{A(!1)}},[I,C,i?.popupParams,T]);o.useEffect(()=>{w()},[]);const q=o.useCallback(()=>{E(1),w(1,C)},[w,C]),z=o.useCallback((a,c)=>{E(a),M(c),w(a,c)},[w]),b=o.useCallback(()=>{if(!m){L.message.warning("항목을 선택해주세요.");return}const a=i?.config;a?.onSelect?a.onSelect(m):i?.popupParams?.onSelect?i.popupParams.onSelect(m):i?.config?.callback&&i.config.callback(m),a?.onClose?.(),i?.close?.()},[m,i]),J=o.useMemo(()=>[{fieldName:"gwDcmtKey",name:"gwDcmtKey",header:{text:"문서번호"},width:140},{fieldName:"gwDcmtNm",name:"gwDcmtNm",header:{text:"제목"},width:260,button:"action"},{fieldName:"userId",name:"userId",header:{text:"기안자"},width:120},{fieldName:"aprvKey",name:"aprvKey",header:{text:"기안연계키값"},width:120},{fieldName:"dprtNo",name:"dprtNo",header:{text:"기안부서"},width:140},{fieldName:"aprvStts",name:"aprvStts",header:{text:"상태"},width:110},{fieldName:"createdAt",name:"createdAt",header:{text:"기안일"},width:160}],[]),_=o.useMemo(()=>({header:{height:40},display:{rowHeight:36},container:{indicator:!0,check:!1,footer:!1},edit:{editable:!1}}),[]),V=o.useMemo(()=>({onCellClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&N(n)}catch{}},onCellDblClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&(N(n),setTimeout(()=>b(),0))}catch{}},onCellButtonClicked(a,c,s){if(c.dataRow===void 0)return;let n=a.getDataSource().getJsonRow(c.dataRow);const f="https://kgwd.krx.co.kr/ezConn/ezApprGate.do",u="width=1000,height=600";console.log(n);const y=n?.dprtNo,S=n?.emplNo,x=n?.aprvKey,r=`${n?.formId}:${y}:${S}:${x}:SAMP`;console.log("@@ params",r);const d=new TextEncoder().encode(r),t=Array.from(d,g=>String.fromCharCode(g)).join(""),R=`${f}?connkey=${btoa(t)}`;console.log("@@ url",R),window.open(R,"_blank",u)}}),[b]);return o.useEffect(()=>{D.current&&D.current.addAllData(j||[])},[j]),o.useEffect(()=>{P.current&&P.current.setTotalData(K||0)},[K]),e.jsx(l.BwgPopup,{popup:i,buttons:[{id:"confirm",label:"확인",type:"primary",onClick:b}],onClose:()=>{i?.config?.onClose?.(),G?.(),i?.close?.()},children:e.jsx(l.ContentLayOut,{children:e.jsxs(l.ContentBox,{border:!1,style:{paddingBottom:16},children:[e.jsx(l.SearchBox,{ref:B,reqRows:e.jsx(e.Fragment,{children:e.jsx(l.BwgRow,{children:e.jsxs(l.BwgCol,{span:24,children:[e.jsx(l.BwgTitleBox,{title:"기안 검색"}),e.jsxs(l.BwgRow,{gutter:[12,8],style:{marginTop:8},children:[e.jsx(l.BwgCol,{span:8,children:e.jsx(h.BwgInput,{inputProps:{placeholder:"제목/기안자/부서/문서번호",prefix:e.jsx(U.SearchOutlined,{}),allowClear:!0,onPressEnter:q},itemProps:{name:"keyword"}})}),e.jsx(l.BwgCol,{span:6,children:e.jsx(h.BwgSelect,{selectProps:{options:W},itemProps:{label:"상태",name:"status"}})}),e.jsxs(l.BwgCol,{span:8,children:[e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안일",name:"createdAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}}),e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안완료일",name:"completedAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}})]}),e.jsx(l.BwgCol,{span:2,children:e.jsx(h.BwgButton,{type:"primary",onClick:q,loading:k,style:{width:"100%"},children:"검색"})})]})]})})})}),e.jsx(l.BwgGrid,{ref:D,type:"nrml",gridColumns:J,gridOptions:_,gridEvents:V}),e.jsx(l.BwgPagination,{ref:P,mode:"server",onServerPageChange:z,pageSizeOptions:[10,20,50,100]}),j.length===0&&!k&&e.jsx(l.BwgRow,{style:{display:"none"},children:e.jsx(l.BwgCol,{span:24,children:e.jsx("span",{})})})]})})})};exports.default=Y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),U=require("@ant-design/icons"),L=require("antd"),o=require("react"),p=require("dayjs"),F=require("../utils/index.cjs"),l=require("./common-components-BOJo6FH_.cjs"),h=require("../components/core/index.cjs"),W=[{label:"전체",value:""},{label:"기안",value:"DRAFT"},{label:"결재중",value:"IN_PROGRESS"},{label:"승인",value:"APPROVED"},{label:"반려",value:"REJECTED"}],Y=({popup:i,onClose:G})=>{const D=o.useRef(null),P=o.useRef(null),B=o.useRef(null),[j,v]=o.useState([]),[k,A]=o.useState(!1),[m,N]=o.useState(null),[I,E]=o.useState(1),[C,M]=o.useState(10),[K,O]=o.useState(0),T=o.useMemo(()=>{const a=p(),c=[];for(let s=1;s<=120;s++){const n=["DRAFT","IN_PROGRESS","APPROVED","REJECTED"];c.push({gwDcmtKey:`GW-${String(1e4+s)}`,gwDcmtNm:`업무 기안서 #${s}`,userId:`user${s%7+1}`,dprtNo:["HR","GEN","DEV1","DEV2","FIN"][s%5],aprvStts:n[s%n.length],aprvKey:F.generateUID(),createdAt:a.add(-(s%45),"day").hour(9+s%8).toISOString()})}return c},[]),w=o.useCallback(async(a,c)=>{A(!0),N(null);try{const s=B.current?.getFormData?.()??{},n=a??I,f=c??C,u={...s,page:n,pageSize:f},y=i?.popupParams?.serviceCode;if(y){const r=await F.callService(y,u),d=(r?.list||r?.data||[]).map(t=>({gwDcmtKey:t.gwDcmtKey??t.docNo??t.doc_id??t.id??"",gwDcmtNm:t.gwDcmtNm??t.title??t.subject??"",userId:t.userId??t.drafter??t.writerName??"",dprtNo:t.dprtNo??t.deptName??t.department??"",aprvStts:t.aprvStts??t.status??"DRAFT",createdAt:t.createdAt??t.writeYmd??t.created_at??"",aprvKey:t.aprvKey??void 0}));v(d),O(Number(r?.totalCount??r?.total??d.length));return}const S=T.filter(r=>{const d=u.keyword?.trim()?.toLowerCase(),t=!d||r.gwDcmtKey.toLowerCase().includes(d)||r.gwDcmtNm.toLowerCase().includes(d)||r.userId.toLowerCase().includes(d)||r.dprtNo.toLowerCase().includes(d),R=!u.status||r.aprvStts===u.status,g=u.createdAt,H=!g||(p(r.createdAt).isAfter(g[0].startOf("day"))||p(r.createdAt).isSame(g[0],"day"))&&(p(r.createdAt).isBefore(g[1].endOf("day"))||p(r.createdAt).isSame(g[1],"day"));return t&&R&&H});O(S.length);const x=(n-1)*f,$=S.slice(x,x+f);v($)}catch{L.message.error("목록 조회 중 오류가 발생했습니다.")}finally{A(!1)}},[I,C,i?.popupParams,T]);o.useEffect(()=>{w()},[]);const q=o.useCallback(()=>{E(1),w(1,C)},[w,C]),z=o.useCallback((a,c)=>{E(a),M(c),w(a,c)},[w]),b=o.useCallback(()=>{if(!m){L.message.warning("항목을 선택해주세요.");return}const a=i?.config;a?.onSelect?a.onSelect(m):i?.popupParams?.onSelect?i.popupParams.onSelect(m):i?.config?.callback&&i.config.callback(m),a?.onClose?.(),i?.close?.()},[m,i]),J=o.useMemo(()=>[{fieldName:"gwDcmtKey",name:"gwDcmtKey",header:{text:"문서번호"},width:140},{fieldName:"gwDcmtNm",name:"gwDcmtNm",header:{text:"제목"},width:260,button:"action"},{fieldName:"userId",name:"userId",header:{text:"기안자"},width:120},{fieldName:"aprvKey",name:"aprvKey",header:{text:"기안연계키값"},width:120},{fieldName:"dprtNo",name:"dprtNo",header:{text:"기안부서"},width:140},{fieldName:"aprvStts",name:"aprvStts",header:{text:"상태"},width:110},{fieldName:"createdAt",name:"createdAt",header:{text:"기안일"},width:160}],[]),_=o.useMemo(()=>({header:{height:40},display:{rowHeight:36},container:{indicator:!0,check:!1,footer:!1},edit:{editable:!1}}),[]),V=o.useMemo(()=>({onCellClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&N(n)}catch{}},onCellDblClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&(N(n),setTimeout(()=>b(),0))}catch{}},onCellButtonClicked(a,c,s){if(c.dataRow===void 0)return;let n=a.getDataSource().getJsonRow(c.dataRow);const f="https://kgwd.krx.co.kr/ezConn/ezApprGate.do",u="width=1000,height=600";console.log(n);const y=n?.dprtNo,S=n?.emplNo,x=n?.aprvKey,r=`${n?.formId}:${y}:${S}:${x}:SAMP`;console.log("@@ params",r);const d=new TextEncoder().encode(r),t=Array.from(d,g=>String.fromCharCode(g)).join(""),R=`${f}?connkey=${btoa(t)}`;console.log("@@ url",R),window.open(R,"_blank",u)}}),[b]);return o.useEffect(()=>{D.current&&D.current.addAllData(j||[])},[j]),o.useEffect(()=>{P.current&&P.current.setTotalData(K||0)},[K]),e.jsx(l.BwgPopup,{popup:i,buttons:[{id:"confirm",label:"확인",type:"primary",onClick:b}],onClose:()=>{i?.config?.onClose?.(),G?.(),i?.close?.()},children:e.jsx(l.ContentLayOut,{children:e.jsxs(l.ContentBox,{border:!1,style:{paddingBottom:16},children:[e.jsx(l.SearchBox,{ref:B,reqRows:e.jsx(e.Fragment,{children:e.jsx(l.BwgRow,{children:e.jsxs(l.BwgCol,{span:24,children:[e.jsx(l.BwgTitleBox,{title:"기안 검색"}),e.jsxs(l.BwgRow,{gutter:[12,8],style:{marginTop:8},children:[e.jsx(l.BwgCol,{span:8,children:e.jsx(h.BwgInput,{inputProps:{placeholder:"제목/기안자/부서/문서번호",prefix:e.jsx(U.SearchOutlined,{}),allowClear:!0,onPressEnter:q},itemProps:{name:"keyword"}})}),e.jsx(l.BwgCol,{span:6,children:e.jsx(h.BwgSelect,{selectProps:{options:W},itemProps:{label:"상태",name:"status"}})}),e.jsxs(l.BwgCol,{span:8,children:[e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안일",name:"createdAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}}),e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안완료일",name:"completedAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}})]}),e.jsx(l.BwgCol,{span:2,children:e.jsx(h.BwgButton,{type:"primary",onClick:q,loading:k,style:{width:"100%"},children:"검색"})})]})]})})})}),e.jsx(l.BwgGrid,{ref:D,type:"nrml",gridColumns:J,gridOptions:_,gridEvents:V}),e.jsx(l.BwgPagination,{ref:P,mode:"server",onServerPageChange:z,pageSizeOptions:[10,20,50,100]}),j.length===0&&!k&&e.jsx(l.BwgRow,{style:{display:"none"},children:e.jsx(l.BwgCol,{span:24,children:e.jsx("span",{})})})]})})})};exports.default=Y;
@@ -3,8 +3,8 @@ import { SearchOutlined as ee } from "@ant-design/icons";
3
3
  import { message as V } from "antd";
4
4
  import { useRef as x, useState as m, useMemo as N, useCallback as R, useEffect as B } from "react";
5
5
  import p from "dayjs";
6
- import { generateUID as te, callService as oe } from "../utils/index.js";
7
- import { n as ae, C as re, d as ne, S as se, i as E, j as g, e as ce, h as le, o as de } from "./common-components-DIpOkbb5.js";
6
+ import { generateUID as te, callService as ae } from "../utils/index.js";
7
+ import { m as oe, C as re, d as ne, S as se, i as E, j as g, e as ce, h as le, n as de } from "./common-components-BjfrRYiU.js";
8
8
  import { BwgInput as ie, BwgSelect as me, BwgRangePicker as M, BwgButton as ge } from "../components/core/index.js";
9
9
  const fe = [
10
10
  { label: "전체", value: "" },
@@ -14,8 +14,8 @@ const fe = [
14
14
  { label: "반려", value: "REJECTED" }
15
15
  ], Pe = ({ popup: c, onClose: H }) => {
16
16
  const v = x(null), b = x(null), K = x(null), [A, O] = m([]), [T, $] = m(!1), [f, I] = m(null), [L, F] = m(1), [h, U] = m(10), [G, j] = m(0), z = N(() => {
17
- const a = p(), s = [];
18
- for (let o = 1; o <= 120; o++) {
17
+ const o = p(), s = [];
18
+ for (let a = 1; a <= 120; a++) {
19
19
  const r = [
20
20
  "DRAFT",
21
21
  "IN_PROGRESS",
@@ -23,23 +23,23 @@ const fe = [
23
23
  "REJECTED"
24
24
  ];
25
25
  s.push({
26
- gwDcmtKey: `GW-${String(1e4 + o)}`,
27
- gwDcmtNm: `업무 기안서 #${o}`,
28
- userId: `user${o % 7 + 1}`,
29
- dprtNo: ["HR", "GEN", "DEV1", "DEV2", "FIN"][o % 5],
30
- aprvStts: r[o % r.length],
26
+ gwDcmtKey: `GW-${String(1e4 + a)}`,
27
+ gwDcmtNm: `업무 기안서 #${a}`,
28
+ userId: `user${a % 7 + 1}`,
29
+ dprtNo: ["HR", "GEN", "DEV1", "DEV2", "FIN"][a % 5],
30
+ aprvStts: r[a % r.length],
31
31
  aprvKey: te(),
32
- createdAt: a.add(-(o % 45), "day").hour(9 + o % 8).toISOString()
32
+ createdAt: o.add(-(a % 45), "day").hour(9 + a % 8).toISOString()
33
33
  });
34
34
  }
35
35
  return s;
36
36
  }, []), u = R(
37
- async (a, s) => {
37
+ async (o, s) => {
38
38
  $(!0), I(null);
39
39
  try {
40
- const o = K.current?.getFormData?.() ?? {}, r = a ?? L, w = s ?? h, d = { ...o, page: r, pageSize: w }, y = c?.popupParams?.serviceCode;
40
+ const a = K.current?.getFormData?.() ?? {}, r = o ?? L, w = s ?? h, d = { ...a, page: r, pageSize: w }, y = c?.popupParams?.serviceCode;
41
41
  if (y) {
42
- const n = await oe(y, d), l = (n?.list || n?.data || []).map(
42
+ const n = await ae(y, d), l = (n?.list || n?.data || []).map(
43
43
  (e) => ({
44
44
  gwDcmtKey: e.gwDcmtKey ?? e.docNo ?? e.doc_id ?? e.id ?? "",
45
45
  gwDcmtNm: e.gwDcmtNm ?? e.title ?? e.subject ?? "",
@@ -74,8 +74,8 @@ const fe = [
74
74
  const J = R(() => {
75
75
  F(1), u(1, h);
76
76
  }, [u, h]), q = R(
77
- (a, s) => {
78
- F(a), U(s), u(a, s);
77
+ (o, s) => {
78
+ F(o), U(s), u(o, s);
79
79
  },
80
80
  [u]
81
81
  ), k = R(() => {
@@ -83,8 +83,8 @@ const fe = [
83
83
  V.warning("항목을 선택해주세요.");
84
84
  return;
85
85
  }
86
- const a = c?.config;
87
- a?.onSelect ? a.onSelect(f) : c?.popupParams?.onSelect ? c.popupParams.onSelect(f) : c?.config?.callback && c.config.callback(f), a?.onClose?.(), c?.close?.();
86
+ const o = c?.config;
87
+ o?.onSelect ? o.onSelect(f) : c?.popupParams?.onSelect ? c.popupParams.onSelect(f) : c?.config?.callback && c.config.callback(f), o?.onClose?.(), c?.close?.();
88
88
  }, [f, c]), W = N(
89
89
  () => [
90
90
  {
@@ -142,27 +142,27 @@ const fe = [
142
142
  []
143
143
  ), Q = N(
144
144
  () => ({
145
- onCellClicked: (a, s) => {
145
+ onCellClicked: (o, s) => {
146
146
  try {
147
- const o = s?.itemIndex ?? s?.dataRow ?? -1;
148
- if (o < 0) return;
149
- const r = a.getDataSource()?.getJsonRow(o);
147
+ const a = s?.itemIndex ?? s?.dataRow ?? -1;
148
+ if (a < 0) return;
149
+ const r = o.getDataSource()?.getJsonRow(a);
150
150
  r && I(r);
151
151
  } catch {
152
152
  }
153
153
  },
154
- onCellDblClicked: (a, s) => {
154
+ onCellDblClicked: (o, s) => {
155
155
  try {
156
- const o = s?.itemIndex ?? s?.dataRow ?? -1;
157
- if (o < 0) return;
158
- const r = a.getDataSource()?.getJsonRow(o);
156
+ const a = s?.itemIndex ?? s?.dataRow ?? -1;
157
+ if (a < 0) return;
158
+ const r = o.getDataSource()?.getJsonRow(a);
159
159
  r && (I(r), setTimeout(() => k(), 0));
160
160
  } catch {
161
161
  }
162
162
  },
163
- onCellButtonClicked(a, s, o) {
163
+ onCellButtonClicked(o, s, a) {
164
164
  if (s.dataRow === void 0) return;
165
- let r = a.getDataSource().getJsonRow(s.dataRow);
165
+ let r = o.getDataSource().getJsonRow(s.dataRow);
166
166
  const w = "https://kgwd.krx.co.kr/ezConn/ezApprGate.do", d = "width=1000,height=600";
167
167
  console.log(r);
168
168
  const y = r?.dprtNo, C = r?.emplNo, S = r?.aprvKey, n = `${r?.formId}:${y}:${C}:${S}:SAMP`;
@@ -181,7 +181,7 @@ const fe = [
181
181
  }, [A]), B(() => {
182
182
  b.current && b.current.setTotalData(G || 0);
183
183
  }, [G]), /* @__PURE__ */ t(
184
- ae,
184
+ oe,
185
185
  {
186
186
  popup: c,
187
187
  buttons: [
@@ -4,10 +4,10 @@ import { Form as d, Tag as oe, message as g, Row as x, Col as l, Space as D, Inp
4
4
  import Ye from "dayjs";
5
5
  import { useRef as O, useState as b, useMemo as J, useEffect as E } from "react";
6
6
  import { useUserStore as Ge, useMenuViewStore as je } from "../stores/index.js";
7
- import { m as $, n as qe, d as L, S as Qe, h as We, o as He, p as ce } from "./common-components-DIpOkbb5.js";
8
- import { BwgFormItem as I, BwgSelect as V, BwgRangePicker as Je, BwgSwitch as $e, BwgInput as Ke, BwgDatePicker as K, BwgCheck as me, BwgForm as Xe } from "../components/core/index.js";
9
- import { callService as S, realFormat as X } from "../utils/index.js";
10
- import { useSearchBox as Ze } from "../provider/index.js";
7
+ import { m as qe, d as L, S as Qe, h as We, n as He, o as ce } from "./common-components-BjfrRYiU.js";
8
+ import { createBwgGridRenderer as $, callService as S, realFormat as K } from "../utils/index.js";
9
+ import { BwgFormItem as I, BwgSelect as V, BwgRangePicker as Je, BwgSwitch as $e, BwgInput as Ke, BwgDatePicker as X, BwgCheck as me, BwgForm as Xe } from "../components/core/index.js";
10
+ import { e as Ze } from "./provider-VCa8UGvF.js";
11
11
  const { TextArea: _e } = a, A = [
12
12
  { label: "요청", value: "RQST" },
13
13
  { label: "문의", value: "INQR" }
@@ -112,13 +112,13 @@ const { TextArea: _e } = a, A = [
112
112
  fieldName: "rgstDt",
113
113
  header: { text: "등록일자" },
114
114
  width: 120,
115
- renderer: X.maskYmd
115
+ renderer: K.maskYmd
116
116
  },
117
117
  {
118
118
  fieldName: "dueDt",
119
119
  header: { text: "마감요청일자" },
120
120
  width: 120,
121
- renderer: X.maskYmd
121
+ renderer: K.maskYmd
122
122
  },
123
123
  {
124
124
  fieldName: "urgentYn",
@@ -139,7 +139,7 @@ const { TextArea: _e } = a, A = [
139
139
  fieldName: "prcsDt",
140
140
  header: { text: "처리일자" },
141
141
  width: 120,
142
- renderer: X.maskYmd
142
+ renderer: K.maskYmd
143
143
  },
144
144
  {
145
145
  fieldName: "scrnId",
@@ -419,7 +419,7 @@ const { TextArea: _e } = a, A = [
419
419
  )
420
420
  ] }) }) }),
421
421
  /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
422
- K,
422
+ X,
423
423
  {
424
424
  itemProps: {
425
425
  label: "작성일자",
@@ -438,7 +438,7 @@ const { TextArea: _e } = a, A = [
438
438
  ] }),
439
439
  /* @__PURE__ */ n(x, { gutter: [16, 8], children: [
440
440
  /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
441
- K,
441
+ X,
442
442
  {
443
443
  itemProps: {
444
444
  label: "마감요청일",
@@ -495,7 +495,7 @@ const { TextArea: _e } = a, A = [
495
495
  )
496
496
  ] }) }) }),
497
497
  /* @__PURE__ */ e(l, { span: 8, children: /* @__PURE__ */ e(
498
- K,
498
+ X,
499
499
  {
500
500
  itemProps: {
501
501
  label: "처리일자",
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),C=require("@ant-design/icons"),t=require("antd"),pe=require("dayjs"),n=require("react"),G=require("../stores/index.cjs"),f=require("./common-components-BOJo6FH_.cjs"),h=require("../utils/index.cjs"),l=require("../components/core/index.cjs"),he=require("./provider-DrboIg2C.cjs"),{TextArea:ge}=t.Input,R=[{label:"요청",value:"RQST"},{label:"문의",value:"INQR"}],fe={INQR:"blue",RQST:"green",RPRT:"red",SGSN:"purple"},Q=[{label:"대기",value:"READY"},{label:"담당자 지정",value:"ASSIGNED"},{label:"처리중",value:"PROCESSING"},{label:"처리완료",value:"COMPLETED"},{label:"반려",value:"REJECTED"}],je={READY:"gray",ASSIGNED:"blue",PROCESSING:"yellow",COMPLETED:"green",REJECTED:"red"},W={READY:0,ASSIGNED:25,PROCESSING:50,COMPLETED:100,REJECTED:100},ye=({popup:y,onClose:O})=>{const{searchBoxRef:I}=he.useSearchBox(),b=n.useRef(null),E=n.useRef(null),{user:w}=G.useUserStore(),{activeMenuItem:c}=G.useMenuViewStore(),[i]=t.Form.useForm(),[z,L]=n.useState(!1),[V,A]=n.useState(!1),[M,H]=n.useState(!1),[g,J]=n.useState(!1),[a,S]=n.useState(!1),[d,j]=n.useState("list");n.useState(null);const D=n.useRef(null),[F,U]=n.useState([]),[B,Y]=n.useState(""),[P,Ce]=n.useState(!1),[$,N]=n.useState(15),T=n.useRef(null),K=n.useMemo(()=>h.createBwgGridRenderer((s,r,o,m,x)=>{const p=s.getValue(r.index?.itemIndex,"type");x.render(e.jsx(t.Tag,{color:fe[p],children:R.find(v=>v.value===p)?.label}))}),[]),X=n.useMemo(()=>h.createBwgGridRenderer((s,r,o,m,x)=>{const p=s.getValue(r.index?.itemIndex,"status");x.render(e.jsx(t.Tag,{color:je[p],children:Q.find(v=>v.value===p)?.label}))}),[]),Z=n.useMemo(()=>h.createBwgGridRenderer((s,r,o,m,x)=>{s.getValue(r.index?.itemIndex,"urgentYn")==="Y"?x.render(e.jsx(C.AlertTwoTone,{twoToneColor:"red"})):x.render(e.jsx(e.Fragment,{}))}),[]),_=[{fieldName:"boardMstrId",header:{text:"글 번호"},width:80},{name:"type",fieldName:"type",header:{text:"등록구분"},width:80,renderer:"tagType"},{fieldName:"title",header:{text:"제목"},width:200},{fieldName:"content",header:{text:"내용"},width:200,visible:!1},{name:"status",fieldName:"status",header:{text:"상태"},width:80,renderer:"statusTag"},{fieldName:"rgstUserId",visible:!1},{fieldName:"rgstUserNm",header:{text:"등록자"},width:100},{fieldName:"rgstDt",header:{text:"등록일자"},width:120,renderer:h.realFormat.maskYmd},{fieldName:"dueDt",header:{text:"마감요청일자"},width:120,renderer:h.realFormat.maskYmd},{fieldName:"urgentYn",header:{text:"긴급여부"},width:80,renderer:"alert"},{fieldName:"prcsUserId",visible:!1},{fieldName:"prcsUserNm",header:{text:"처리담당자"},width:100},{fieldName:"prcsDt",header:{text:"처리일자"},width:120,renderer:h.realFormat.maskYmd},{fieldName:"scrnId",header:{text:"화면ID"},width:100,visible:!1},{fieldName:"menuId",header:{text:"메뉴ID"},width:100,visible:!1}],ee={onCellDblClicked:(s,r)=>{const o=r.itemIndex??-1;if(o<0)return;const m=s.getValues(o);console.log("🔍 그리드 셀 더블클릭 이벤트:",m);const x={...m,menuId:c?.menuId,menuNm:c?.menuNm,scrnId:c?.scrnId};i.setFieldsValue(x),H(x.rgstUserId===w?.userId),J(x.status==="COMPLETED"||x.status==="REJECTED"),j("detail")}},k=()=>{i.resetFields(),j("list"),u.SCMBoardMstr0001(1,20)},q=async s=>{L(!0);try{i.validateFields().then(r=>{console.log("문의/신고 제출:",r),d==="new"?u.SCMBoardMstr0003(r):d==="detail"&&u.SCMBoardMstr0004(r)})}catch(r){console.error("문의/신고 제출 실패:",r)}finally{L(!1)}},te=()=>{u.SCMBoardMstr0005()},se=()=>{I?.current?.resetForm(),i.resetFields(),d==="new"?j("list"):(j("list"),y?.close?.()||O?.())},re=()=>{I?.current?.resetForm(),i.resetFields(),j("list"),y?.close?.()||O?.()},ne=()=>{(d==="detail"||d==="new")&&j("list")},le=()=>{i.resetFields(),j("new")},ie=()=>{console.log("댓글 수동 새로고침"),N(15)},oe=()=>{if(!B.trim()){t.message.warning("댓글 상세내용 작성");return}u.SCMBoardDtls0002(i.getFieldValue("boardMstrId"),B.trim()),Y(""),setTimeout(()=>{D.current&&(D.current.scrollTop=D.current.scrollHeight)},100)},ae=s=>{const r=F.find(o=>o.id===s);if(r&&r.regUserId!==w?.userId){t.message.error("본인이 작성한 댓글만 삭제할 수 있습니다.");return}u.SCMBoardDtls0003(i.getFieldValue("boardMstrId"),s)};n.useEffect(()=>{y&&setTimeout(()=>{u.SCMBoardMstr0001(1,20)},100)},[y]);const de=()=>e.jsxs(f.ContentBox,{border:!1,children:[e.jsx(f.SearchBox,{border:!0,ref:I,reqRows:e.jsxs(e.Fragment,{children:[e.jsx(t.Row,{gutter:[16,8],style:{marginBottom:"8px"},children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{disabled:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{disabled:!0})})]})})})}),e.jsxs(t.Row,{gutter:[16,8],style:{marginBottom:"8px"},children:[e.jsx(t.Col,{span:6,children:e.jsx(l.BwgSelect,{itemProps:{label:"등록구분",name:"type"},selectProps:{options:R}})}),e.jsx(t.Col,{span:12,children:e.jsx(l.BwgRangePicker,{itemProps:{label:"등록일자",name:"rgstDt"},inputProps:{allowEmpty:!0}})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgSwitch,{itemProps:{name:"myArticle",label:"내 글만"},inputProps:{format:"YN",onChange:()=>console.log("hello!!")}})})]}),e.jsx(t.Row,{children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgInput,{itemProps:{label:"제목 및 내용",name:"keyword"}})})})]})}),e.jsx(f.BwgGrid,{ref:T,gridColumns:_,gridEvents:ee,gridOptions:{},renderers:[{name:"tagType",renderer:K},{name:"statusTag",renderer:X},{name:"alert",renderer:Z}]}),e.jsx(f.BwgPagination,{ref:b,mode:"server",onServerPageChange:(s,r)=>{console.log("🔄 서버 모드 페이징 변경:",{page:s,size:r}),u.SCMBoardMstr0001(s,r)},pageSizeOptions:[10,20,50,100]})]}),ce=()=>e.jsxs(t.Splitter,{children:[e.jsx(t.Splitter.Panel,{defaultSize:"70%",min:"60%",max:"80%",style:{paddingRight:"15px",overflowX:"hidden",overflowY:"hidden"},children:e.jsx(f.ContentBox,{children:e.jsxs(t.Form,{form:i,onFinish:q,labelCol:{flex:"100px"},disabled:!M||g,children:[e.jsxs(t.Row,{gutter:[16,8],children:[e.jsxs(t.Col,{span:8,children:[e.jsx(t.Form.Item,{name:"boardMstrId",hidden:!0,children:e.jsx(t.Input,{})}),e.jsx(l.BwgSelect,{itemProps:{name:"type",label:"구분"},selectProps:{options:R}})]}),e.jsxs(t.Col,{span:16,children:[e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})}),e.jsx(t.Form.Item,{name:"scrnId",style:{width:"100%"},hidden:!0,children:e.jsx(t.Input,{readOnly:!0})})]})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"작성자",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"rgstUserId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"rgstUserNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"작성일자",name:"rgstDt"},inputProps:{disabled:!0}})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgSelect,{itemProps:{name:"status",label:"상태"},selectProps:{options:Q,disabled:!0}})})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"마감요청일",name:"dueDate"}})}),e.jsx(t.Col,{span:8,children:e.jsxs(t.Flex,{vertical:!0,gap:2,children:[e.jsx("span",{style:{fontSize:"12px",color:"#000000E0"},children:"진척률"}),e.jsx(t.Progress,{percent:W[i.getFieldValue("status")],status:W[i.getFieldValue("status")]>0?"active":"normal",size:"small",format:s=>`${s}%`})]})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgCheck,{itemProps:{name:"urgentYn",label:"긴급여부"}})})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"처리담당자",name:void 0,help:"",children:e.jsxs(t.Space.Compact,{children:[e.jsx(t.Form.Item,{name:"processor",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"processorNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"처리일자",name:"processDt"}})})]}),e.jsx(t.Row,{gutter:[16,8],children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"제목",name:"title",style:{width:"100%"},children:e.jsx(t.Input,{})})})}),e.jsx(f.BwgEditor,{border:!1,itemProps:{name:"content",label:"내용",rules:[{required:!0,message:"내용을 입력하세요."}]},editorProps:{isEditing:M&&!g,title:{title:"에디터"}}})]})})}),e.jsx(t.Splitter.Panel,{collapsible:!0,style:{paddingLeft:"15px"},children:e.jsxs(f.ContentBox,{style:{flex:"0 0 400px",display:"flex",flexDirection:"column"},children:[e.jsxs("div",{style:{borderBottom:"1px solid #e8e8e8",paddingBottom:"12px",marginBottom:"16px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsx("span",{style:{fontSize:"14px",fontWeight:"600",color:"#262626"},children:"댓글"}),e.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[e.jsx(t.Button,{type:"text",icon:e.jsx(C.ReloadOutlined,{spin:P||a}),onClick:ie,disabled:P||a,size:"small",style:{fontSize:"12px",color:g?"#d9d9d9":a?"#8c8c8c":"#595959",height:"24px",padding:"0 8px"}}),!g&&e.jsx("span",{style:{position:"absolute",top:"-4px",right:"-4px",fontSize:"10px",fontWeight:"700",color:P?"#8c8c8c":"#1890ff",minWidth:"14px",height:"14px",lineHeight:"14px",textAlign:"center",borderRadius:"50%",pointerEvents:"none"},children:$})]})]}),e.jsx("div",{ref:D,style:{flex:1,overflowY:"auto",marginBottom:"16px",minHeight:0,position:"relative"},children:a?e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"200px",color:"#8c8c8c"},children:[e.jsx("div",{style:{marginBottom:"12px"},children:e.jsx(C.ReloadOutlined,{spin:!0,style:{fontSize:"24px"}})}),e.jsx("div",{style:{fontSize:"13px"},children:"댓글을 불러오는 중..."})]}):F.length===0?e.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"200px",color:"#8c8c8c"},children:e.jsx("div",{style:{fontSize:"13px"},children:"등록된 댓글이 없습니다."})}):e.jsx(t.List,{dataSource:F,renderItem:s=>e.jsxs(t.List.Item,{style:{position:"relative",paddingRight:"20px",padding:"12px 20px 12px 12px",borderBottom:"1px solid #f0f0f0"},children:[e.jsx(t.List.Item.Meta,{avatar:e.jsx(t.Avatar,{size:32,style:{backgroundColor:"#1890ff",fontSize:"13px"},children:s.author[0]}),title:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"4px"},children:[e.jsx("span",{style:{fontWeight:"500",fontSize:"13px",color:"#262626"},children:s.author}),e.jsx("span",{style:{fontSize:"11px",color:"#8c8c8c"},children:s.regDt})]}),description:e.jsx("span",{style:{fontSize:"13px",color:"#595959",lineHeight:"1.5"},children:s.content})}),s.regUserId===w?.userId&&e.jsx(t.Button,{type:"text",danger:!0,icon:e.jsx(C.DeleteOutlined,{style:{fontSize:"12px"}}),size:"small",onClick:()=>ae(s.id),disabled:a,style:{position:"absolute",right:"8px",top:"62%",transform:"translateY(-50%)",opacity:a?.3:.5,height:"24px",width:"24px",padding:0},onMouseEnter:r=>{a||(r.currentTarget.style.opacity="1")},onMouseLeave:r=>{r.currentTarget.style.opacity=a?"0.3":"0.5"}})]},s.id)})}),e.jsx("div",{style:{padding:"12px",borderTop:"1px solid #e8e8e8",backgroundColor:g?"#f5f5f5":"#fafafa",flexShrink:0,marginTop:"auto"},children:g?e.jsxs("div",{style:{textAlign:"center",padding:"20px",color:"#8c8c8c",fontSize:"13px",backgroundColor:"#ffffff",borderRadius:"6px",border:"1px solid #e8e8e8"},children:[e.jsx("div",{style:{marginBottom:"8px"},children:e.jsx(C.AlertTwoTone,{twoToneColor:"#faad14"})}),e.jsx("div",{children:"이미 완료처리된 게시글입니다."}),e.jsx("div",{style:{fontSize:"11px",marginTop:"4px"},children:"댓글을 작성할 수 없습니다."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{marginBottom:"8px"},children:e.jsx(ge,{rows:2,placeholder:a?"댓글 처리 중...":"댓글을 입력하세요...",value:B,onChange:s=>Y(s.target.value),maxLength:300,disabled:a,style:{borderRadius:"6px",border:"1px solid #d9d9d9",resize:"none",fontSize:"13px",backgroundColor:a?"#f5f5f5":"#ffffff",color:a?"#8c8c8c":"#000000"},onFocus:s=>{a||(s.target.style.borderColor="#1890ff",s.target.style.boxShadow="0 0 0 2px rgba(24, 144, 255, 0.05)")},onBlur:s=>{s.target.style.borderColor="#d9d9d9",s.target.style.boxShadow="none"}})}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{style:{fontSize:"11px",color:"#8c8c8c"},children:a?"처리 중...":`${B.length} / 300자`}),e.jsx(t.Button,{type:"primary",onClick:oe,size:"small",loading:a,style:{borderRadius:"4px",fontSize:"12px",height:"28px",padding:"0 16px",fontWeight:"500"},disabled:!B.trim()||a,children:a?"등록 중...":"등록"})]})]})})]})})]}),ue=()=>e.jsx(f.ContentBox,{children:e.jsxs(l.BwgForm,{form:i,onFinish:q,initialValues:{type:"INQR"},labelCol:{flex:"100px"},style:{height:"100%",display:"flex",flexDirection:"column"},children:[e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgSelect,{itemProps:{name:"type",label:"구분",rules:[{required:!0,message:"구분을 선택해주세요."}]},selectProps:{options:R}})}),e.jsxs(t.Col,{span:16,children:[e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})}),e.jsx(t.Form.Item,{name:"scrnId",style:{width:"100%"},hidden:!0,children:e.jsx(t.Input,{readOnly:!0})})]})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"작성자",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"rgstUserId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"rgstUserNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgFormItem,{label:"작성일자",name:"rgstDt",style:{width:"100%"},children:e.jsx(t.DatePicker,{disabled:!0})})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgFormItem,{label:"마감요청일",name:"dueDate",style:{width:"100%"},children:e.jsx(t.DatePicker,{})})}),e.jsx(t.Col,{span:4,children:e.jsx(l.BwgCheck,{itemProps:{name:"urgentYn",label:"긴급여부"}})})]}),e.jsx(t.Row,{gutter:[16,8],children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"제목",name:"title",style:{width:"100%"},rules:[{required:!0,message:"제목을 입력해주세요."}],children:e.jsx(t.Input,{})})})}),e.jsx(f.BwgEditor,{border:!1,itemProps:{name:"content"},editorProps:{isEditing:V,title:{title:e.jsxs(e.Fragment,{children:[e.jsx(C.EditOutlined,{style:{marginRight:"5px"}})," 상세내용 작성"]}),children:e.jsx(t.Button,{icon:e.jsx(C.EyeFilled,{}),onClick:()=>A(!V),children:"미리보기"})}}})]})});n.useEffect(()=>{d==="new"&&(A(!0),i.setFieldsValue({type:"INQR",menuId:c?.menuId,menuNm:c?.menuNm,scrnId:c?.scrnId,rgstUserId:w?.userId,rgstUserNm:w?.userNm,rgstDt:pe(),content:""}))},[d,i,c,w]),n.useEffect(()=>{if(d==="detail"&&!g){const s=setInterval(()=>{N(r=>r<=1?(console.log("🔄 댓글 자동 갱신 실행 (카운트다운 완료)"),u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")),15):r-1)},1e3);return u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")),()=>{console.log("🧹 댓글 인터벌 정리"),clearInterval(s)}}else d==="detail"&&g&&(console.log("📋 완료된 게시글 - 댓글 조회만"),u.SCMBoardDtls0001(i.getFieldValue("boardMstrId")))},[d,g,i]),n.useEffect(()=>()=>{console.log("🧹 컴포넌트 언마운트 - 모든 인터벌 정리"),E.current&&(clearInterval(E.current),E.current=null)},[]),n.useEffect(()=>{d==="list"&&c&&(I?.current?.setFormData({menuId:c?.menuId,menuNm:c?.menuNm}),u.SCMBoardMstr0001(1,20))},[d,c]),n.useEffect(()=>{y&&c&&I?.current?.setFormData({menuId:c?.menuId,menuNm:c?.menuNm})},[y,c]);const u={SCMBoardMstr0001:async(s,r)=>{const o=s||b.current?.currentPage||1,m=r||b.current?.pageSize||20,x={...I?.current?.getFormData(),pageNum:o,pageCount:m};console.log("🔍 서버 모드 페이징 요청:",x);try{const p=await h.callService("SCMBoardMstr0001",x,{isPopup:!0});if(p&&p.pageList){const v=p.pageCnt||0;b.current?.setTotalData(v),T.current?.addAllData(p.pageList)}else b.current?.setTotalData(0),T.current?.addAllData([]),console.log("📭 서버 모드 페이징 데이터 없음")}catch(p){console.error("❌ SCMBoardMstr0001 호출 실패:",p),t.message.error("데이터 조회 중 오류가 발생했습니다.")}},SCMBoardMstr0003:s=>{h.callService("SCMBoardMstr0003",{...s,status:"READY"},{isPopup:!0}).then(r=>{console.log("문의/신고 제출 응답:",r),t.message.success("정상 접수되었습니다."),k()}).catch(r=>{console.error("문의/신고 제출 실패:",r),t.message.error("접수 중 오류가 발생했습니다.")})},SCMBoardMstr0004:s=>{h.callService("SCMBoardMstr0004",{boardMstrId:i.getFieldValue("boardMstrId"),...s},{isPopup:!0}).then(r=>{console.log("문의/신고 제출 응답:",r),t.message.success("수정이 완료되었습니다."),k()}).catch(r=>{console.error("문의/신고 변경 실패:",r)})},SCMBoardMstr0005:()=>{h.callService("SCMBoardMstr0005",{boardMstrId:i.getFieldValue("boardMstrId")},{isPopup:!0}).then(s=>{console.log("문의/신고 삭제 응답:",s),t.message.success("삭제가 완료되었습니다."),k()})},SCMBoardDtls0001:s=>{S(!0),h.callService("SCMBoardDtls0001",{boardMstrId:s},{isPopup:!0,showLoading:!1}).then(r=>{if(r&&r.subList){const o=r.subList.map(m=>({id:m.seq,author:m.userNm||m.regUserId,regUserId:m.regUserId,content:m.content,regDt:m.regDt}));U(o)}else U([])}).catch(r=>{console.error("게시글 댓글 목록 조회 실패:",r),t.message.error("댓글 목록 조회 중 오류가 발생했습니다.")}).finally(()=>{S(!1),N(15)})},SCMBoardDtls0002:(s,r)=>{S(!0),h.callService("SCMBoardDtls0002",{boardMstrId:s,content:r},{isPopup:!0,showLoading:!1}).then(o=>{o&&o.result===1?(t.message.success("댓글이 등록되었습니다."),u.SCMBoardDtls0001(s)):t.message.error("댓글 등록에 실패했습니다.")}).catch(o=>{t.message.error("댓글 등록 중 오류가 발생했습니다.")}).finally(()=>{S(!1)})},SCMBoardDtls0003:(s,r)=>{S(!0),h.callService("SCMBoardDtls0003",{boardMstrId:s,seq:r},{isPopup:!0,showLoading:!1}).then(o=>{o&&o.result===1?(t.message.success("댓글이 삭제되었습니다."),u.SCMBoardDtls0001(s)):t.message.error("댓글 삭제에 실패했습니다.")}).catch(o=>{t.message.error("댓글 삭제 중 오류가 발생했습니다.")}).finally(()=>{S(!1)})}},me=()=>{switch(d){case"list":return[{id:"REFRESH",label:"조회",type:"default",onClick:()=>u.SCMBoardMstr0001(),disabled:z},{id:"NEW",label:"신규 등록",type:"primary",onClick:le}];case"detail":return[{id:"BACK",label:"뒤로",type:"default",onClick:ne},{id:"EDIT",label:"수정",type:"primary",disabled:!M||g,onClick:()=>i.submit()},{id:"DELETE",label:"삭제",type:"default",disabled:!M||g,onClick:te}];case"new":return[{id:"SUBMIT",label:"제출",type:"primary",onClick:()=>i.submit(),disabled:z},{id:"CANCEL",label:"취소",type:"default",onClick:se}];default:return[]}},xe={};return e.jsxs(f.BwgPopup,{popup:y,buttons:me(),popupEvent:xe,onClose:re,children:[d==="list"&&de(),d==="detail"&&ce(),d==="new"&&ue()]})};exports.default=ye;