@bwg-ui/core 1.2.9 → 1.2.11

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 (72) hide show
  1. package/dist/chunks/{MenuReport-CuAfCZbc.cjs → MenuReport-CXsmjSvg.cjs} +1 -1
  2. package/dist/chunks/{MenuReport-iuRC_snf.js → MenuReport-Dgq2wH6w.js} +1 -1
  3. package/dist/chunks/{common-components-CFIJNFN0.js → common-components-Bp95qOup.js} +6 -6
  4. package/dist/chunks/{common-components-CioS_8Bi.cjs → common-components-CoRIM-Z-.cjs} +2 -2
  5. package/dist/chunks/{layout-components-DMR4tl9_.cjs → layout-components-hCEUMfz3.cjs} +2 -2
  6. package/dist/chunks/{layout-components-C-9ATcL9.js → layout-components-yyItu5pi.js} +2 -2
  7. package/dist/components/common/BwgView.d.ts.map +1 -1
  8. package/dist/components/common/index.cjs +1 -1
  9. package/dist/components/common/index.js +5 -5
  10. package/dist/components/core/index.cjs +1 -1
  11. package/dist/components/core/index.js +107 -107
  12. package/dist/components/guide/index.cjs +1 -1
  13. package/dist/components/guide/index.js +1 -1
  14. package/dist/components/layout/index.cjs +1 -1
  15. package/dist/components/layout/index.js +1 -1
  16. package/dist/components/pages/auth/CMAuthMstrM01.d.ts +7 -0
  17. package/dist/components/pages/auth/CMAuthMstrM01.d.ts.map +1 -0
  18. package/dist/components/pages/auth/CMRoleMstrM01.d.ts +3 -0
  19. package/dist/components/pages/auth/CMRoleMstrM01.d.ts.map +1 -0
  20. package/dist/components/pages/guide/BwgComponentGuideM01.d.ts +3 -0
  21. package/dist/components/pages/guide/BwgComponentGuideM01.d.ts.map +1 -0
  22. package/dist/components/pages/guide/BwgDeveloperGuideM01.d.ts +3 -0
  23. package/dist/components/pages/guide/BwgDeveloperGuideM01.d.ts.map +1 -0
  24. package/dist/components/pages/guide/BwgReactGuideM01.d.ts +3 -0
  25. package/dist/components/pages/guide/BwgReactGuideM01.d.ts.map +1 -0
  26. package/dist/components/pages/index.d.ts +20 -0
  27. package/dist/components/pages/index.d.ts.map +1 -0
  28. package/dist/components/pages/rsrc/CMFileMstrM01.d.ts +3 -0
  29. package/dist/components/pages/rsrc/CMFileMstrM01.d.ts.map +1 -0
  30. package/dist/components/pages/rsrc/CMMenuMstrM01.d.ts +3 -0
  31. package/dist/components/pages/rsrc/CMMenuMstrM01.d.ts.map +1 -0
  32. package/dist/components/pages/rsrc/CMMenuPrgrSelectModal.d.ts +16 -0
  33. package/dist/components/pages/rsrc/CMMenuPrgrSelectModal.d.ts.map +1 -0
  34. package/dist/components/pages/rsrc/CMMenuPrntSelectModal.d.ts +16 -0
  35. package/dist/components/pages/rsrc/CMMenuPrntSelectModal.d.ts.map +1 -0
  36. package/dist/components/pages/rsrc/CMPopuMstrM01.d.ts +3 -0
  37. package/dist/components/pages/rsrc/CMPopuMstrM01.d.ts.map +1 -0
  38. package/dist/components/pages/rsrc/CMPrgrMstrM01.d.ts +3 -0
  39. package/dist/components/pages/rsrc/CMPrgrMstrM01.d.ts.map +1 -0
  40. package/dist/components/pages/syst/CMSystCfgM01.d.ts +3 -0
  41. package/dist/components/pages/syst/CMSystCfgM01.d.ts.map +1 -0
  42. package/dist/components/pages/syst/CMSystCodeM01.d.ts +3 -0
  43. package/dist/components/pages/syst/CMSystCodeM01.d.ts.map +1 -0
  44. package/dist/components/pages/user/CMUserMstrM01.d.ts +3 -0
  45. package/dist/components/pages/user/CMUserMstrM01.d.ts.map +1 -0
  46. package/dist/components/popup/SearchAddressModalM01.d.ts +7 -0
  47. package/dist/components/popup/SearchAddressModalM01.d.ts.map +1 -0
  48. package/dist/components/popup/index.cjs +1 -1
  49. package/dist/components/popup/index.d.ts +1 -1
  50. package/dist/components/popup/index.d.ts.map +1 -1
  51. package/dist/components/popup/index.js +1 -1
  52. package/dist/index.cjs +1 -1
  53. package/dist/index.js +17 -17
  54. package/dist/stores/index.cjs +1 -1
  55. package/dist/stores/index.js +1 -1
  56. package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
  57. package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
  58. package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
  59. package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
  60. package/dist/types/bwg-global.d.ts +2 -1
  61. package/dist/utils/commonUtils.d.ts +0 -6
  62. package/dist/utils/commonUtils.d.ts.map +1 -1
  63. package/dist/utils/index.cjs +1 -1
  64. package/dist/utils/index.d.ts.map +1 -1
  65. package/dist/utils/index.js +1386 -748
  66. package/package.json +1 -1
  67. package/dist/chunks/core-CA7iRgyb.cjs +0 -1
  68. package/dist/chunks/core-D18HD1It.js +0 -513
  69. package/dist/chunks/enc-base64-CdWu8KMI.js +0 -101
  70. package/dist/chunks/enc-base64-DSIiAsI5.cjs +0 -1
  71. package/dist/chunks/sha256-D5iKSlK6.cjs +0 -1
  72. package/dist/chunks/sha256-DQcqzuys.js +0 -78
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("react/jsx-runtime"),D=require("../provider/index.cjs"),E=require("react-router-dom"),G=require("./common-components-CioS_8Bi.cjs"),l=require("antd"),i=require("react"),k=require("../stores/index.cjs"),v=require("@ant-design/icons"),I=require("../utils/index.cjs"),O=require("@dnd-kit/core"),re=require("@dnd-kit/modifiers"),$=require("@dnd-kit/sortable");var _=typeof document<"u"?document.currentScript:null;function oe(n){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const s in n)if(s!=="default"){const o=Object.getOwnPropertyDescriptor(n,s);Object.defineProperty(t,s,o.get?o:{enumerable:!0,get:()=>n[s]})}}return t.default=n,Object.freeze(t)}const U=oe(v),ae=i.lazy(()=>Promise.resolve().then(()=>require("./MenuReport-CuAfCZbc.cjs"))),ie=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CioS_8Bi.cjs")).then(n=>n.SearchDepartmentP01$1)),le=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CioS_8Bi.cjs")).then(n=>n.SearchDepartmentP02$1)),ce=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CioS_8Bi.cjs")).then(n=>n.SearchOrganizationP01$1)),de=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CioS_8Bi.cjs")).then(n=>n.SearchOrganizationP02$1)),K={CORE_REPORT:{component:ae,defaultConfig:{title:"게시판/문의",width:1200,height:800}},CORE_DEPARTMENT_01:{component:ie,defaultConfig:{title:"부서 검색",width:620,height:700}},CORE_DEPARTMENT_02:{component:le,defaultConfig:{title:"부서 검색",width:620,height:700}},CORE_ORGANIZATION_01:{component:ce,defaultConfig:{title:"조직 검색",width:620,height:700}},CORE_ORGANIZATION_02:{component:de,defaultConfig:{title:"조직 검색",width:1e3,height:700}}},q="bwg-dot-line-wave-v4";function ue(){if(typeof document>"u"||document.getElementById(q))return;const n=document.createElement("style");n.id=q,n.textContent=`
1
+ "use strict";const e=require("react/jsx-runtime"),D=require("../provider/index.cjs"),E=require("react-router-dom"),G=require("./common-components-CoRIM-Z-.cjs"),l=require("antd"),i=require("react"),k=require("../stores/index.cjs"),v=require("@ant-design/icons"),I=require("../utils/index.cjs"),O=require("@dnd-kit/core"),re=require("@dnd-kit/modifiers"),$=require("@dnd-kit/sortable");var _=typeof document<"u"?document.currentScript:null;function oe(n){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const s in n)if(s!=="default"){const o=Object.getOwnPropertyDescriptor(n,s);Object.defineProperty(t,s,o.get?o:{enumerable:!0,get:()=>n[s]})}}return t.default=n,Object.freeze(t)}const U=oe(v),ae=i.lazy(()=>Promise.resolve().then(()=>require("./MenuReport-CXsmjSvg.cjs"))),ie=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CoRIM-Z-.cjs")).then(n=>n.SearchDepartmentP01$1)),le=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CoRIM-Z-.cjs")).then(n=>n.SearchDepartmentP02$1)),ce=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CoRIM-Z-.cjs")).then(n=>n.SearchOrganizationP01$1)),de=i.lazy(()=>Promise.resolve().then(()=>require("./common-components-CoRIM-Z-.cjs")).then(n=>n.SearchOrganizationP02$1)),K={CORE_REPORT:{component:ae,defaultConfig:{title:"게시판/문의",width:1200,height:800}},CORE_DEPARTMENT_01:{component:ie,defaultConfig:{title:"부서 검색",width:620,height:700}},CORE_DEPARTMENT_02:{component:le,defaultConfig:{title:"부서 검색",width:620,height:700}},CORE_ORGANIZATION_01:{component:ce,defaultConfig:{title:"조직 검색",width:620,height:700}},CORE_ORGANIZATION_02:{component:de,defaultConfig:{title:"조직 검색",width:1e3,height:700}}},q="bwg-dot-line-wave-v4";function ue(){if(typeof document>"u"||document.getElementById(q))return;const n=document.createElement("style");n.id=q,n.textContent=`
2
2
  .bwg-dotline {
3
3
  display: inline-flex;
4
4
  align-items: center;
@@ -32,4 +32,4 @@
32
32
  @media (prefers-reduced-motion: reduce) {
33
33
  .bwg-dotline .dot { animation: none; }
34
34
  }
35
- `,document.head.appendChild(n)}const pe=({colors:n=["#DAD3FF","#B3A6FF","#9380FF","#816BFA"],count:t,size:s=12,gap:o=10,amp:a=16,speedMs:g=900,direction:y="ltr",phase:u=.7})=>{i.useEffect(()=>{ue()},[]);const f=t??n.length,m=Array.from({length:f}),h={"--bwg-size":`${s}px`,"--bwg-gap":`${o}px`,"--bwg-amp":`${a}px`,"--bwg-speed":`${g}ms`},C=g/f*u;return e.jsx("span",{className:"bwg-dotline",role:"img","aria-label":"loading",style:h,children:m.map((r,c)=>e.jsx("span",{className:"dot",style:{backgroundColor:n[c%n.length],animationDelay:y==="ltr"?`${c*C}ms`:`${(f-1-c)*C}ms`}},c))})},me=({spin:n=null,text:t="인증중..."})=>n??!0?e.jsxs("div",{style:{position:"fixed",height:"100vh",left:0,right:0,top:0,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:8,padding:"8px 12px",background:"rgba(0,0,0,0.6)",color:"#fff",zIndex:1e4},"aria-live":"polite","aria-busy":"true",role:"status",children:[e.jsx(l.Spin,{indicator:e.jsx(pe,{colors:["#DAD3FF","#B3A6FF","#9380FF","#816BFA"],size:12,gap:10,amp:16,speedMs:900,phase:.75,direction:"ltr"})}),e.jsx("span",{className:"bwg-spin-txt",style:{marginTop:"15px"},children:t})]}):null,he=({routes:n,useCommonProvider:t=!0,useServiceProvider:s=!0})=>{let a=e.jsxs(E.Routes,{children:[e.jsx(E.Route,{path:"/",element:e.jsx(E.Navigate,{to:"/login"})}),e.jsx(E.Route,{path:"/login",element:n.login}),e.jsx(E.Route,{path:"/main",element:n.main})]});return s&&(a=e.jsx(D.ServiceCodeProvider,{children:a})),t&&(a=e.jsx(D.CommonCodeProvider,{children:a})),e.jsx(G.GlobalConfigProvider,{children:a})},{Content:ge}=l.Layout,Z=({config:n={},children:t})=>{const s={wrapper:{className:"content-wrapper",...n.wrapper},body:{className:"content-body",...n.body},...n};return e.jsx(ge,{className:s.wrapper.className,style:s.wrapper.style,children:e.jsx(G.BwgConfigProvider,{children:e.jsx("div",{className:s.body.className,style:s.body.style,children:t})})})},fe="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.9998%2019.9993V20.9993C11.9998%2021.3932%2012.0774%2021.7833%2012.2282%2022.1473C12.3789%2022.5112%2012.5999%2022.8419%2012.8785%2023.1205C13.157%2023.399%2013.4877%2023.62%2013.8517%2023.7708C14.2156%2023.9215%2014.6057%2023.9991%2014.9997%2023.9991C15.3936%2023.9991%2015.7837%2023.9215%2016.1477%2023.7708C16.5116%2023.62%2016.8423%2023.399%2017.1209%2023.1205C17.3994%2022.8419%2017.6204%2022.5112%2017.7712%2022.1473C17.9219%2021.7833%2017.9995%2021.3932%2017.9995%2020.9993V19.9993M20.9994%2011.9997C20.9994%2014.9996%2022.9993%2019.9993%2022.9993%2019.9993H7.00006C7.00006%2019.9993%208.99996%2015.9995%208.99996%2011.9997C8.99996%208.73187%2011.7318%206%2014.9997%206C18.2675%206%2020.9994%208.73187%2020.9994%2011.9997Z'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",xe="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_93_4488)'%3e%3cpath%20d='M18%207H21C22.1046%207%2023%207.89543%2023%209V21C23%2022.1046%2022.1046%2023%2021%2023H18M11%2011L7%2015M7%2015L11%2019M7%2015L19%2015'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_93_4488'%3e%3crect%20width='30'%20height='30'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",be="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%206H16C16.5523%206%2017%206.44772%2017%207V7.56879C17%207.99659%2017.2871%208.36825%2017.6822%208.53228C18.0775%208.69638%2018.5377%208.63384%2018.8403%208.33123L19.2426%207.92891C19.6331%207.53838%2020.2663%207.53838%2020.6568%207.92891L22.071%209.34312C22.4616%209.73365%2022.4615%2010.3668%2022.071%2010.7573L21.6688%2011.1596C21.3661%2011.4622%2021.3036%2011.9225%2021.4677%2012.3177C21.6317%2012.7129%2022.0034%2013%2022.4313%2013L23%2013C23.5523%2013%2024%2013.4477%2024%2014V16C24%2016.5523%2023.5523%2017%2023%2017H22.4312C22.0034%2017%2021.6318%2017.2871%2021.4677%2017.6822C21.3036%2018.0775%2021.3661%2018.5377%2021.6688%2018.8403L22.071%2019.2426C22.4616%2019.6331%2022.4616%2020.2663%2022.071%2020.6568L20.6568%2022.071C20.2663%2022.4616%2019.6331%2022.4616%2019.2426%2022.071L18.8403%2021.6688C18.5377%2021.3661%2018.0775%2021.3036%2017.6822%2021.4677C17.2871%2021.6318%2017%2022.0034%2017%2022.4312V23C17%2023.5523%2016.5523%2024%2016%2024H14C13.4477%2024%2013%2023.5523%2013%2023V22.4313C13%2022.0034%2012.7129%2021.6317%2012.3177%2021.4677C11.9225%2021.3036%2011.4622%2021.3661%2011.1596%2021.6688L10.7573%2022.071C10.3668%2022.4616%209.73363%2022.4616%209.34311%2022.071L7.92889%2020.6568C7.53837%2020.2663%207.53837%2019.6331%207.92889%2019.2426L8.33123%2018.8403C8.63384%2018.5377%208.69638%2018.0775%208.53228%2017.6822C8.36825%2017.2871%207.99659%2017%207.56879%2017H7C6.44772%2017%206%2016.5523%206%2016V14C6%2013.4477%206.44772%2013%207%2013L7.56877%2013C7.99658%2013%208.36825%2012.7129%208.53229%2012.3178C8.6964%2011.9225%208.63386%2011.4623%208.33123%2011.1597L7.92891%2010.7573C7.53838%2010.3668%207.53838%209.73365%207.92891%209.34313L9.34312%207.92891C9.73365%207.53839%2010.3668%207.53839%2010.7573%207.92891L11.1597%208.33123C11.4623%208.63386%2011.9225%208.6964%2012.3178%208.53229C12.7129%208.36825%2013%207.99658%2013%207.56876V7C13%206.44772%2013.4477%206%2014%206Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3cpath%20d='M17%2015C17%2016.1046%2016.1046%2017%2015%2017C13.8954%2017%2013%2016.1046%2013%2015C13%2013.8954%2013.8954%2013%2015%2013C16.1046%2013%2017%2013.8954%2017%2015Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3c/svg%3e",{Header:ye}=l.Layout,L={light:{headerBg:"#ffffff",headerText:"#000000",sidebarBg:"#ffffff",sidebarText:"#000000",buttonPrimary:"#1890ff",buttonPrimaryHover:"#40a9ff",buttonPrimaryActive:"#096dd9",buttonDefault:"#ffffff",buttonDefaultHover:"#f5f5f5",buttonDefaultBorder:"#d9d9d9",buttonPermissionBorder:"#bdb1ff"},dark:{headerBg:"#4a4a4a",headerText:"#ffffff",sidebarBg:"#4a4a4a",sidebarText:"#ffffff",buttonPrimary:"#177ddc",buttonPrimaryHover:"#1890ff",buttonPrimaryActive:"#0958b5",buttonDefault:"#434343",buttonDefaultHover:"#303030",buttonDefaultBorder:"#434343",buttonPermissionBorder:"#bdb1ff"},blue:{headerBg:"#4a90e2",headerText:"#ffffff",sidebarBg:"#4a90e2",sidebarText:"#ffffff",buttonPrimary:"#1890ff",buttonPrimaryHover:"#40a9ff",buttonPrimaryActive:"#096dd9",buttonDefault:"#ffffff",buttonDefaultHover:"#f0f8ff",buttonDefaultBorder:"#4a90e2",buttonPermissionBorder:"#bdb1ff"},modern:{headerBg:"#f3f4ff",headerText:"#333333",sidebarBg:"#ffffff",sidebarText:"#555555",buttonPrimary:"#6449FC",buttonPrimaryHover:"#6449FC",buttonPrimaryActive:"#6449FC",buttonDefault:"#ffffff",buttonDefaultHover:"#f5f5f5",buttonDefaultBorder:"#dddddd",buttonPermissionBorder:"#bdb1ff"}},Y=({config:n={}})=>{const t={wrapper:{className:"header-wrapper",...n.wrapper},logo:{gap:10,...n.logo},right:{gap:14,minWidth:200,avatar:{width:30,height:30,...n.right?.avatar},...n.right},...n},s=E.useNavigate(),[o,a]=i.useState("modern"),g=i.useRef(null),{logout:y}=k.useUserStore(),u=(r,c)=>{try{if(!/^[a-zA-Z0-9-]+$/.test(r)){console.warn(`Invalid CSS variable name: ${r}`);return}if(!/^[#a-zA-Z0-9()\s,.-]+$/.test(c)){console.warn(`Invalid CSS variable value: ${c}`);return}document.documentElement.style.setProperty(r,c)}catch(T){console.error("CSS variable setting failed:",T)}},f=r=>{if(!L[r]){console.warn(`Invalid theme: ${r}`);return}a(r);const c={...L[r]};u("--header-bg",c.headerBg),u("--header-text",c.headerText),u("--sidebar-bg",c.sidebarBg),u("--sidebar-text",c.sidebarText),u("--button-primary",c.buttonPrimary),u("--button-primary-hover",c.buttonPrimaryHover),u("--button-primary-active",c.buttonPrimaryActive),u("--button-default",c.buttonDefault),u("--button-default-hover",c.buttonDefaultHover),u("--button-default-border",c.buttonDefaultBorder),u("--button-permission-border",c.buttonPermissionBorder),g.current&&g.current.setAttribute("data-theme",r),document.documentElement.setAttribute("data-theme",r),I.setCookie(I.THEME_COOKIE_NAME,r,30)};i.useEffect(()=>{const r=I.getCookie(I.THEME_COOKIE_NAME);r&&L[r]?f(r):f("modern")},[]);const m=()=>({...L[o]}).headerBg,h=()=>{y(),s("/login")};I.getCurrentDateString?I.getCurrentDateString("HH:mm:ss"):new Date().toLocaleTimeString("ko-KR");const C=e.jsxs("div",{style:{padding:"8px 0"},children:[e.jsxs("div",{style:{marginBottom:"12px"},children:[e.jsx(l.ColorPicker,{value:m(),disabled:!0,size:"small"}),e.jsx("span",{style:{marginLeft:"8px",fontSize:"12px"},children:"현재 테마 색상"})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[e.jsx(l.Button,{type:o==="modern"?"primary":"default",size:"small",onClick:()=>f("modern"),style:{textAlign:"left",backgroundColor:o==="modern"?L.modern.headerBg:void 0,color:o==="modern"?L.modern.headerText:void 0},children:"모던"},"modern"),Object.entries(L).filter(([r])=>r!=="modern").map(([r,c])=>e.jsx(l.Button,{type:o===r?"primary":"default",size:"small",onClick:()=>f(r),style:{textAlign:"left",backgroundColor:o===r?c.headerBg:void 0,color:o===r?c.headerText:void 0},children:r==="light"?"라이트":r==="dark"?"다크":r==="blue"?"블루":r},r))]})]});return e.jsxs(ye,{className:t.wrapper.className,style:{...t.wrapper.style},children:[t.logo&&e.jsx("div",{className:"header-left",children:e.jsx("div",{className:"logo-container",style:{gap:t.logo?.gap},children:t.logo?.items})}),e.jsxs("div",{className:"header-right",style:{gap:t.right?.gap,minWidth:t.right?.minWidth},children:[t.right?.items?.map((r,c)=>e.jsx("div",{children:r},c)),e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:fe,alt:"알림"}),className:"alarm-btn"}),e.jsx(l.Popover,{content:C,title:"테마 설정",trigger:"click",placement:"bottomRight",children:e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:be,alt:"개인설정"}),className:"theme-btn"})}),e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:xe,alt:"로그아웃"}),onClick:h,className:"logout-btn"}),e.jsx(l.Avatar,{icon:e.jsx(v.UserOutlined,{}),className:"avatar",style:{width:t.right?.avatar?.width,height:t.right?.avatar?.height}})]})]})},H=Object.freeze({Translate:{toString(n){if(!n)return;const{x:t,y:s}=n;return"translate3d("+(t?Math.round(t):0)+"px, "+(s?Math.round(s):0)+"px, 0)"}},Scale:{toString(n){if(!n)return;const{scaleX:t,scaleY:s}=n;return"scaleX("+t+") scaleY("+s+")"}},Transform:{toString(n){if(n)return[H.Translate.toString(n),H.Scale.toString(n)].join(" ")}},Transition:{toString(n){let{property:t,duration:s,easing:o}=n;return t+" "+s+"ms "+o}}}),Ce=i.memo(({className:n,...t})=>{const s=i.useRef(null),{attributes:o,listeners:a,transform:g,transition:y,isDragging:u,setNodeRef:f}=$.useSortable({id:t["data-node-key"]}),[m,h]=i.useState();i.useEffect(()=>{const r=s.current;if(r)if(u){const c=Math.round(r.getBoundingClientRect().width);h(c)}else h(void 0)},[u]);const C={...t.style,transform:g?H.Transform.toString(g):void 0,transition:y??"transform 0.16s ease",cursor:"grab",userSelect:"none",willChange:"transform",width:m??void 0,minWidth:m??void 0,maxWidth:m??void 0,flex:m!==void 0?"0 0 auto":void 0};return i.cloneElement(t.children,{ref:r=>{s.current!==r&&(s.current=r),f(r)},style:C,...o,...a})}),ve=i.memo(function({config:t,isFirst:s,isLast:o,canCloseAll:a,onFirst:g,onPrev:y,onNext:u,onLast:f,onCloseAll:m}){return e.jsxs("div",{className:t.wrapper?.className,style:t.wrapper?.style,children:[e.jsx(l.Tooltip,{title:"첫 번째 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.StepBackwardOutlined,{}),onClick:g,disabled:s})}),e.jsx(l.Tooltip,{title:"이전 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.LeftOutlined,{}),onClick:y,disabled:s})}),e.jsx(l.Tooltip,{title:"다음 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.RightOutlined,{}),onClick:u,disabled:o})}),e.jsx(l.Tooltip,{title:"마지막 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.StepForwardOutlined,{}),onClick:f,disabled:o})}),e.jsx(l.Tooltip,{title:"모든 탭 닫기",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.CloseOutlined,{}),onClick:m,disabled:!a})})]})}),X=({config:n={}})=>{const t={wrapper:{className:"menu-tab-wrapper",...n?.wrapper},tabs:{className:"menu-tabs",...n?.tabs},nav:{wrapper:{className:"menu-nav-wrapper",...n?.nav?.wrapper},buttons:{className:"menu-nav-buttons",...n?.nav?.buttons},tooltip:{className:"menu-nav-tooltip",...n?.nav?.tooltip},...n?.nav},...n},s=k.useMenuViewStore(p=>p.tabs),o=k.useMenuViewStore(p=>p.activeMenuId),a=k.useMenuViewStore(p=>p.focusTab),g=k.useMenuViewStore(p=>p.closeTab),y=k.useMenuViewStore(p=>p.reorderTabs),u=O.useSensors(O.useSensor(O.PointerSensor,{activationConstraint:{distance:6}})),f=p=>{a(p)},m=(p,N)=>{N==="remove"&&typeof p=="string"&&g(p)},h=()=>{s.length>0&&a(s[0].key)},C=()=>{if(!o||s.length<=1)return;const p=s.findIndex(N=>N.key===o);p>0&&a(s[p-1].key)},r=()=>{if(!o||s.length<=1)return;const p=s.findIndex(N=>N.key===o);p<s.length-1&&a(s[p+1].key)},c=()=>{s.length>0&&a(s[s.length-1].key)},T=()=>{s.forEach(p=>{g(p.key)})},B=o?s.findIndex(p=>p.key===o):-1,z=B===0,R=B===s.length-1,V=i.useMemo(()=>s.map(p=>({key:p.key,label:p.label,closable:!0,children:null})),[s]),F=i.useCallback(({active:p,over:N})=>{if(!N||p.id===N.id)return;const S=s.findIndex(d=>d.key===p.id),P=s.findIndex(d=>d.key===N.id);if(S<0||P<0||S===P)return;const x=s.map(d=>d.key),b=$.arrayMove(x,S,P);y?.(b)},[s,y]),A=i.useCallback((p,N)=>e.jsx(O.DndContext,{sensors:u,onDragEnd:F,collisionDetection:O.closestCenter,modifiers:[re.restrictToHorizontalAxis],children:e.jsx($.SortableContext,{items:s.map(S=>S.key),strategy:$.horizontalListSortingStrategy,children:e.jsx(N,{...p,children:S=>i.createElement(Ce,{...S.props,key:S.key},S)})})}),[u,F,s]);return e.jsx("div",{className:t.wrapper.className,style:{...t.wrapper.style,display:s.length===0?"none":"block"},children:e.jsx(l.Tabs,{type:"editable-card",activeKey:o||void 0,onChange:f,onEdit:m,className:t.tabs.className,style:t.tabs.style,hideAdd:!0,items:V,tabBarExtraContent:e.jsx(ve,{config:t?.nav,isFirst:!!z,isLast:!!R,canCloseAll:s.length>0,onFirst:h,onPrev:C,onNext:r,onLast:c,onCloseAll:T}),renderTabBar:A})})},{Sider:we}=l.Layout,Q=({config:n={}})=>{const t={collapsed:!1,width:230,menuGubunCode:{mainMenu:"MAIN",subMenu:"SUB",program:"PRGM",...n?.menuGubunCode},className:{wrapper:"side-wrapper",search:"sider-search-ipt",segmented:{wrapper:"sider-segmented",item:"sider-segment-item",...n?.className?.segmented},sider:{content:"sider-content",loading:"sider-loading",loadingText:"sider-loading-text",error:"sider-error",errorIcon:"sider-error-icon",errorText:"sider-error-text",menu:"sider-menu",menuContainer:"sider-menu-container",...n?.className?.sider},...n?.className},style:{search:{placeholder:"메뉴명, 메뉴번호 검색...",height:30,...n?.style?.search},...n?.style},...n};console.log("@@ 사이드바 config : ",n);const[s,o]=i.useState(""),[a,g]=i.useState("category"),{activeMenuId:y,sidebarCollapsed:u,openTabFromMenu:f,toggleSidebar:m}=k.useMenuViewStore(),{menuList:h,isLoading:C,error:r,findMenuById:c}=k.useMenuModelStore(),{nodes:T,treeNodes:B,loadFavoritesIfNeeded:z}=k.useFavoriteStore(),R=i.useMemo(()=>{const x=[],b=(d,j=0)=>{if(d.menuGbCd===t.menuGubunCode.program&&d.scrnPath){const w=" ".repeat(j),M=d.menuNo||"";x.push({value:d.menuId,label:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsxs("span",{children:[w,d.menuNm]}),e.jsx("span",{style:{fontSize:"11px",color:"#999",backgroundColor:"#f0f0f0",padding:"2px 6px",borderRadius:"3px",marginLeft:"8px"},children:M})]}),menuItem:d})}d.children&&d.children.length>0&&d.children.forEach(w=>b(w,j+1))};return h.forEach(d=>b(d)),x},[h]),V=i.useMemo(()=>s.trim()?R.filter(x=>{const b=x.menuItem.menuNm.toLowerCase(),d=String(x.menuItem.menuNo||"미지정").toLowerCase(),j=s.toLowerCase();return b.includes(j)||d.includes(j)}):[],[R,s]),F=x=>{if(!x||typeof x!="string"){console.warn("Invalid menu selection value:",x);return}if(!/^[a-zA-Z0-9_-]+$/.test(x)){console.warn("Invalid menu ID format:",x);return}const b=R.find(d=>d.value===x);if(b){const{menuItem:d}=b;if(!d||!d.menuId||!d.menuNm){console.warn("Invalid menu item:",d);return}d.menuGbCd===t.menuGubunCode.program&&d.scrnPath?(console.log("✅ 검색으로 프로그램 메뉴 선택 - 탭 추가 및 setCurrentProgram 호출"),console.log("메뉴명:",d.menuNm,"경로:",d.scrnPath,"scrnId:",d.scrnId),f(d)):(d.menuGbCd===t.menuGubunCode.mainMenu||d.menuGbCd===t.menuGubunCode.subMenu)&&(console.log("❌ 검색으로 메인/서브 메뉴 선택 - 이벤트 무시"),console.log("메뉴명:",d.menuNm,"menuGbCd:",d.menuGbCd)),o("")}},A=i.useCallback(x=>{const b=c(x);b?.menuGbCd===t.menuGubunCode.program&&(console.log("메뉴명:",b.menuNm,"경로:",b.scrnPath,"scrnId:",b.scrnId),f(b))},[c,f]),p=i.useCallback(x=>x.map(b=>({key:b.menuId,label:e.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:e.jsx("span",{children:b.menuNm})}),icon:N(b.iconCd,b.menuGbCd),children:b.children&&b.children.length>0?p(b.children):void 0})),[]),N=(x,b)=>{if(x){const d=U[x];if(d)return e.jsx(d,{})}if(b)switch(b){case t.menuGubunCode.mainMenu:return e.jsx(U.HomeOutlined,{});case t.menuGubunCode.subMenu:return null;case t.menuGubunCode.program:return null;default:return null}return null},S=i.useCallback(x=>{if(h.length===0)return[];const b=j=>{if(j)return typeof j=="string"?T[j]:j},d=j=>{if(j.type==="M"){const w=j,M=c(w.menuId)||void 0,W=!!M,se=W?`${M?.menuNm??w.menuNm??w.menuId}`:`${w.menuNm??w.menuId} (삭제됨)`;return{key:w.menuId,label:se,icon:W?void 0:e.jsx(v.WarningOutlined,{style:{color:"#faad14"}})}}else{const w=j,M=(w.children??[]).map(b).filter(Boolean).map(d);return{key:w.bkmkId,label:w.bkmkNm??w.bkmkId,icon:w.prntBkmkId==="-"?e.jsx(v.StarOutlined,{}):e.jsx(v.FolderOpenOutlined,{}),children:M}}};return x.map(d)},[c,T,h]),P=i.useMemo(()=>S(B),[S,B,T]);return i.useEffect(()=>{I.getUserId()&&z(I.getUserId())},[z]),i.useEffect(()=>{a==="category"&&o("")},[a]),e.jsxs(we,{className:t.className.wrapper,collapsed:t.collapsed||u,trigger:null,width:t.width||230,children:[e.jsx("div",{style:{position:"absolute",top:"9px",right:"-25px",zIndex:"1000",width:"25px",height:"41px",backgroundColor:"#ffffff",border:"1px solid #dddddd",borderRadius:"0 10px 10px 0",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:"2px 2px 2px rgba(0, 0, 0, 0.05)",transition:"all 0.3s ease"},children:e.jsx(l.Button,{type:"text",icon:t.collapsed||u?e.jsx(v.MenuUnfoldOutlined,{}):e.jsx(v.MenuFoldOutlined,{}),style:{fontSize:"12px",color:"#787878",padding:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},onClick:m})}),!(t.collapsed||u)&&e.jsx("div",{style:{padding:10},children:e.jsx(l.AutoComplete,{value:s,options:V,onSelect:F,onSearch:o,style:{width:"100%"},allowClear:!0,children:e.jsx(l.Input,{className:t.className.search,placeholder:t.style.search.placeholder,prefix:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M16.4972 16.6667L13.0355 13.1694M14.8475 8.75C14.8475 5.29822 12.0777 2.5 8.66105 2.5C5.24437 2.5 2.47461 5.29822 2.47461 8.75C2.47461 12.2018 5.24437 15 8.66105 15C12.0777 15 14.8475 12.2018 14.8475 8.75Z",stroke:"#5F5F5F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),size:"middle",style:{height:t.style.search.height||30}})})}),!(t.collapsed||u)&&e.jsx("div",{style:{width:"100%",padding:"0px 10px",marginBottom:"10px"},children:e.jsx(l.Segmented,{className:t.className.segmented.wrapper,options:[{label:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:t.className.segmented.item,children:e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[e.jsx("path",{d:"M2.46979 6.90625H13.0298C13.7298 6.90625 14.2965 7.47292 14.2965 8.17292V13.5396H1.20312V8.17292C1.20312 7.47292 1.76979 6.90625 2.46979 6.90625Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M2.76318 4.70626C2.76318 4.00626 3.18318 3.75293 3.69652 3.75293H11.8032C12.3165 3.75293 12.7365 4.00626 12.7365 4.70626",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M4.71631 1.45996H10.783",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}),"카테고리"]}),value:"category"},{label:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:t.className.segmented.item,children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:e.jsx("path",{d:"M7.11329 1.33356C7.32084 0.888813 7.66676 0.888813 7.88296 1.33356L9.258 4.25619C9.46556 4.70094 10.0277 5.12753 10.4947 5.20014L13.5647 5.67212C14.0317 5.74473 14.1441 6.08964 13.7982 6.43455L11.5757 8.70367C11.2384 9.04858 11.0222 9.73839 11.1 10.2285L11.6276 13.4325C11.7054 13.9227 11.4287 14.1405 11.0049 13.9045L8.26348 12.3887C7.83972 12.1527 7.15653 12.1527 6.73277 12.3887L3.99134 13.9045C3.56759 14.1405 3.29085 13.9227 3.36868 13.4325L3.89621 10.2285C3.97405 9.73839 3.76649 9.04858 3.42057 8.70367L1.19802 6.43455C0.86075 6.08964 0.964526 5.74473 1.43152 5.67212L4.50158 5.20014C4.96857 5.12753 5.5307 4.70094 5.73825 4.25619L7.11329 1.33356Z",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"4"})})}),"즐겨찾기"]}),value:"favorite"}],value:a,onChange:x=>{g(x)},style:{width:"100%"},block:!0})}),e.jsxs("div",{className:t.className.sider.content,children:[C&&e.jsxs("div",{className:t.className.sider.loading,children:[e.jsx(l.Spin,{size:"default"}),e.jsx("div",{className:t.className.sider.loadingText,children:"메뉴 로딩 중..."})]}),r&&e.jsxs("div",{className:t.className.sider.error,children:[e.jsx(v.ExclamationCircleOutlined,{className:t.className.sider.errorIcon}),e.jsx("div",{className:t.className.sider.errorText,children:"메뉴 로드 실패"})]}),!C&&!r&&a==="category"&&h.length===0&&e.jsx("div",{style:{padding:"16px",textAlign:"center",color:"#666",fontSize:"12px"},children:"메뉴가 없습니다"}),!C&&!r&&a==="favorite"&&P.length===0&&e.jsx("div",{style:{padding:"16px",textAlign:"center",color:"#666",fontSize:"12px"},children:"즐겨찾기된 메뉴가 없습니다"}),!C&&!r&&a==="category"&&h.length>0&&e.jsx("div",{className:t.className.sider.menuContainer,children:e.jsx(l.Menu,{theme:"light",mode:"inline",items:p(h),className:t.className.sider.menu,selectedKeys:[y||""],onClick:x=>A(x.key)})}),!C&&!r&&a==="favorite"&&P.length>0&&e.jsx("div",{className:t.className.sider.menuContainer,children:e.jsx(l.Menu,{theme:"light",mode:"inline",items:P,className:t.className.sider.menu,selectedKeys:[y||""],onClick:x=>A(x.key)})})]})]})};class je extends i.Component{constructor(t){super(t),this.resetError=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})},this.state={hasError:!1}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,s){console.error("ErrorBound caught an error:",t,s),this.setState({error:t,errorInfo:s})}render(){return this.state.hasError?this.props.fallback?this.props.fallback:e.jsxs("div",{style:{padding:"40px 20px",textAlign:"center",backgroundColor:"#fafafa",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},children:[e.jsx(l.Result,{status:"error",title:"컴포넌트 로딩 중 오류가 발생했습니다",subTitle:this.state.error?`오류 내용: ${this.state.error.message}`:"알 수 없는 오류가 발생했습니다",extra:[e.jsx(l.Button,{type:"primary",icon:e.jsx(v.ReloadOutlined,{}),onClick:this.resetError,style:{marginRight:8},children:"다시 시도"},"retry")]}),this.state.error&&e.jsxs("details",{style:{marginTop:"20px",textAlign:"left",maxWidth:"600px",backgroundColor:"#fff",padding:"16px",borderRadius:"6px",border:"1px solid #d9d9d9"},children:[e.jsx("summary",{style:{cursor:"pointer",fontWeight:"bold"},children:"오류 상세 정보"}),e.jsx("pre",{style:{marginTop:"8px",fontSize:"12px",color:"#666",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:this.state.error.stack})]})]}):this.props.children}}const ke=({isActive:n,instance:t,params:s})=>{const{activeMenuId:o,closeTab:a}=k.useMenuViewStore(),g=()=>{o&&a(o)};return t?e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"},children:e.jsx(je,{children:e.jsx(i.Suspense,{fallback:null,children:t&&i.createElement(t,{params:s})})})}):e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"},children:e.jsx("div",{style:{width:500,maxWidth:"90%",background:"#fff",borderRadius:16,boxShadow:"0 8px 30px rgba(0,0,0,0.05)",padding:24},children:e.jsx(l.Result,{icon:e.jsx(v.ExclamationCircleTwoTone,{twoToneColor:"#69b1ff"}),status:"warning",title:"등록된 메뉴 정보가 없거나 유효한 메뉴가 아닙니다.",subTitle:e.jsx(l.Typography.Text,{type:"secondary",children:"자세한 내용은 관리자에게 문의바랍니다."}),extra:e.jsx(l.Space,{children:e.jsx(l.Button,{icon:e.jsx(v.CloseOutlined,{}),onClick:g,children:"탭 닫기"})})})})})},J=i.memo(ke),ee=()=>e.jsxs(e.Fragment,{children:[e.jsx("link",{rel:"preload",as:"image",href:"/src/styles/assets/images/backgrounds/LandingContainer_bg.png"}),e.jsx("div",{className:"LandingContainer-wrap",children:e.jsx("div",{className:"inner",children:e.jsx("div",{className:"content"})})})]}),Ne=(n,t)=>{console.log("createPopupViewLoader 호출 - popupUrl:",n);const o=(a=>{if(a.startsWith("/src/pages/views/popup/")){const u=a+".tsx";return console.log(`팝업 URL 변환: ${a} -> ${u}`),u}const y=`/src/pages/views/popup/${a.startsWith("/")?a.substring(1):a}.tsx`;return console.log(`팝업 URL 변환: ${a} -> ${y}`),y})(n);return!o||!t?.glob[o]?(console.warn(`팝업 뷰를 찾을 수 없습니다: ${n} (${o})`),console.warn("사용 가능한 팝업 뷰들:",Object.keys(t?.glob||{})),null):t?.glob[o]},Se=({popup:n,modules:t})=>{const[s,o]=i.useState(null),[a,g]=i.useState(!1),[y,u]=i.useState(null),f=()=>{console.log("PopupArea - handleClose:",n.popupId),k.usePopupStore.getState().closePopup(n.popupId)};return i.useEffect(()=>{(async()=>{console.log("팝업 뷰 로드 시작:",n.popupUrl),g(!0),u(null);try{const h=Ne(n.popupUrl,t);if(!h){const c=`팝업 뷰를 찾을 수 없습니다: ${n.popupUrl}`;console.error(c),u(c),g(!1);return}console.log("팝업 뷰 모듈 로드 중...");const C=await h();console.log("팝업 뷰 모듈 로드 완료:",C);const r=C.default;if(console.log("팝업 뷰 컴포넌트:",r),!r)throw new Error("팝업 뷰 컴포넌트를 찾을 수 없습니다");o(()=>r),console.log("팝업 뷰 설정 완료")}catch(h){console.error("팝업 뷰 로드 실패:",h),u(h instanceof Error?h.message:"팝업 뷰 로드 실패")}finally{g(!1)}})()},[n.popupUrl]),a?e.jsxs("div",{className:"popup-loading",children:[e.jsx(l.Spin,{size:"large"}),e.jsx("p",{children:"팝업을 로드하는 중..."})]}):y?e.jsxs("div",{className:"popup-error",children:[e.jsx(l.Empty,{description:y,image:l.Empty.PRESENTED_IMAGE_SIMPLE}),e.jsx(l.Button,{icon:e.jsx(v.ReloadOutlined,{}),onClick:()=>window.location.reload(),children:"다시 시도"})]}):s?e.jsx(i.Suspense,{fallback:e.jsxs("div",{className:"popup-loading",children:[e.jsx(l.Spin,{size:"large"}),e.jsx("p",{children:"컴포넌트를 로드하는 중..."})]}),children:e.jsx(s,{popup:{...n,close:f},onClose:f})}):e.jsx("div",{className:"popup-empty",children:e.jsx(l.Empty,{description:"팝업 내용을 불러올 수 없습니다."})})},te=({modules:n})=>{const{popups:t}=k.usePopupStore();return t.length===0?null:e.jsx(e.Fragment,{children:t.map(s=>{const o=s.config||{},a=o.width||s.width||800,g=o.height||s.height||600,y=o.title||s.popupTitle,u=s.buttonList?.map((f,m)=>({key:f.btnId||`btn_${m}`,text:f.btnNm,type:f.btnId==="CLOSE"?"default":"primary",disabled:f.enblYn!=="Y",danger:!1}))||[];return console.log("팝업 렌더링:",{popupId:s.popupId,popupCode:s.popupCode,title:y,width:a,height:g,buttons:u}),e.jsx("div",{children:e.jsx(Se,{popup:s,modules:n})},s.popupId)})})},Ie=()=>{const{popups:n,closePopup:t}=k.usePopupStore();return e.jsx(e.Fragment,{children:n.map(s=>{if(!(s.isLocal||s.popupCode.startsWith("CORE_")))return null;const o=K[s.popupCode];if(!o)return null;const a=o.component;return e.jsx(i.Suspense,{fallback:null,children:e.jsx(a,{popup:s,onClose:()=>t(s.popupId)})},s.popupId)})})},Te=n=>({position:"absolute",inset:0,visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"}),Pe=({once:n=!0})=>{const{lock:t}=D.useLock(),s=i.useRef(!1);return i.useEffect(()=>{n&&s.current||(s.current=!0,t())},[n,t]),null},ne=({isActive:n,flagged:t,tabKey:s,onUnlock:o,children:a})=>{const g=i.useRef(null),[y,u]=i.useState(!1),f=i.useCallback(h=>{g.current=h,u(!!h)},[]),m=Te(n);return e.jsx("div",{ref:f,style:m,children:y?e.jsxs(D.ScreenProtectProvider,{idleMs:Number.POSITIVE_INFINITY,persistLocked:!1,overlayScope:"scoped",overlayPosition:"absolute",eventTarget:g.current,overlayId:`tab-overlay-${s}`,onUnlock:async()=>(o(),!0),children:[n&&t?e.jsx(Pe,{once:!0}):null,a]}):a})},Le=({config:n={},modules:t={view:{path:"/src/pages/views/content"},popup:{path:"/src/pages/views/popups"}}})=>{const s=i.useRef(new Map),{tabs:o,tabParams:a,activeMenuId:g,tabProtectFlag:y,clearProtectFlagForKey:u}=k.useMenuViewStore(),f=i.useCallback(m=>{const h=s.current.get(m.key);if(h)return h;const C=m.gubun==="M"?`${t.view.path}${m.menuItem?.scrnPath}.tsx`:`${t.view.path}${m.componentItem?.scrnPath}.tsx`;let r=t.view?.glob?.[C];if(!r&&typeof{url:typeof document>"u"?require("url").pathToFileURL(__filename).href:_&&_.tagName.toUpperCase()==="SCRIPT"&&_.src||new URL("chunks/layout-components-DMR4tl9_.cjs",document.baseURI).href}<"u",r){const c=i.lazy(r);return s.current.set(m.key,c),c}return null},[t.view?.glob]);return e.jsxs(l.Layout,{className:"main-layout",children:[e.jsx(Y,{config:n?.header}),e.jsxs(l.Layout,{children:[e.jsx(Q,{config:n?.sidebar}),e.jsxs("div",{className:"content-container",children:[e.jsx(X,{config:n?.menuTab}),e.jsx(Z,{config:n?.content,children:e.jsxs(D.SearchBoxProvider,{children:[e.jsx("div",{className:"view-container",children:e.jsxs("div",{style:{position:"relative",width:"100%",height:"100%"},children:[o.map(m=>{const h=f(m),C=g===m.key,r=!!y?.[m.key],c=a[m.key]||{};return e.jsx(ne,{isActive:C,flagged:r,tabKey:m.key,onUnlock:()=>u(m.key),children:e.jsx(J,{isActive:C,instance:h||void 0,params:c},m.key)},m.key)}),(!g||o.length===0)&&e.jsx(ee,{})]})}),e.jsx(Ie,{}),e.jsx(te,{modules:t?.popup})]})})]})]}),e.jsx(G.QuickServiceToggle,{})]})},Me=({config:n,children:t})=>e.jsx("div",{children:"BwgPortal02"});exports.AppWrapper=he;exports.BwgPortal01=Le;exports.BwgPortal02=Me;exports.ConfigurableContent=Z;exports.ConfigurableHeader=Y;exports.ConfigurableMenuTab=X;exports.ConfigurableSidebar=Q;exports.ContentContainer=J;exports.LandingContainer=ee;exports.LoadingContainer=me;exports.PopupContainer=te;exports.ProtectWrapper=ne;exports.localPopupRegistry=K;
35
+ `,document.head.appendChild(n)}const pe=({colors:n=["#DAD3FF","#B3A6FF","#9380FF","#816BFA"],count:t,size:s=12,gap:o=10,amp:a=16,speedMs:g=900,direction:y="ltr",phase:u=.7})=>{i.useEffect(()=>{ue()},[]);const f=t??n.length,m=Array.from({length:f}),h={"--bwg-size":`${s}px`,"--bwg-gap":`${o}px`,"--bwg-amp":`${a}px`,"--bwg-speed":`${g}ms`},C=g/f*u;return e.jsx("span",{className:"bwg-dotline",role:"img","aria-label":"loading",style:h,children:m.map((r,c)=>e.jsx("span",{className:"dot",style:{backgroundColor:n[c%n.length],animationDelay:y==="ltr"?`${c*C}ms`:`${(f-1-c)*C}ms`}},c))})},me=({spin:n=null,text:t="인증중..."})=>n??!0?e.jsxs("div",{style:{position:"fixed",height:"100vh",left:0,right:0,top:0,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:8,padding:"8px 12px",background:"rgba(0,0,0,0.6)",color:"#fff",zIndex:1e4},"aria-live":"polite","aria-busy":"true",role:"status",children:[e.jsx(l.Spin,{indicator:e.jsx(pe,{colors:["#DAD3FF","#B3A6FF","#9380FF","#816BFA"],size:12,gap:10,amp:16,speedMs:900,phase:.75,direction:"ltr"})}),e.jsx("span",{className:"bwg-spin-txt",style:{marginTop:"15px"},children:t})]}):null,he=({routes:n,useCommonProvider:t=!0,useServiceProvider:s=!0})=>{let a=e.jsxs(E.Routes,{children:[e.jsx(E.Route,{path:"/",element:e.jsx(E.Navigate,{to:"/login"})}),e.jsx(E.Route,{path:"/login",element:n.login}),e.jsx(E.Route,{path:"/main",element:n.main})]});return s&&(a=e.jsx(D.ServiceCodeProvider,{children:a})),t&&(a=e.jsx(D.CommonCodeProvider,{children:a})),e.jsx(G.GlobalConfigProvider,{children:a})},{Content:ge}=l.Layout,Z=({config:n={},children:t})=>{const s={wrapper:{className:"content-wrapper",...n.wrapper},body:{className:"content-body",...n.body},...n};return e.jsx(ge,{className:s.wrapper.className,style:s.wrapper.style,children:e.jsx(G.BwgConfigProvider,{children:e.jsx("div",{className:s.body.className,style:s.body.style,children:t})})})},fe="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.9998%2019.9993V20.9993C11.9998%2021.3932%2012.0774%2021.7833%2012.2282%2022.1473C12.3789%2022.5112%2012.5999%2022.8419%2012.8785%2023.1205C13.157%2023.399%2013.4877%2023.62%2013.8517%2023.7708C14.2156%2023.9215%2014.6057%2023.9991%2014.9997%2023.9991C15.3936%2023.9991%2015.7837%2023.9215%2016.1477%2023.7708C16.5116%2023.62%2016.8423%2023.399%2017.1209%2023.1205C17.3994%2022.8419%2017.6204%2022.5112%2017.7712%2022.1473C17.9219%2021.7833%2017.9995%2021.3932%2017.9995%2020.9993V19.9993M20.9994%2011.9997C20.9994%2014.9996%2022.9993%2019.9993%2022.9993%2019.9993H7.00006C7.00006%2019.9993%208.99996%2015.9995%208.99996%2011.9997C8.99996%208.73187%2011.7318%206%2014.9997%206C18.2675%206%2020.9994%208.73187%2020.9994%2011.9997Z'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",xe="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_93_4488)'%3e%3cpath%20d='M18%207H21C22.1046%207%2023%207.89543%2023%209V21C23%2022.1046%2022.1046%2023%2021%2023H18M11%2011L7%2015M7%2015L11%2019M7%2015L19%2015'%20stroke='%23485299'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_93_4488'%3e%3crect%20width='30'%20height='30'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",be="data:image/svg+xml,%3csvg%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%206H16C16.5523%206%2017%206.44772%2017%207V7.56879C17%207.99659%2017.2871%208.36825%2017.6822%208.53228C18.0775%208.69638%2018.5377%208.63384%2018.8403%208.33123L19.2426%207.92891C19.6331%207.53838%2020.2663%207.53838%2020.6568%207.92891L22.071%209.34312C22.4616%209.73365%2022.4615%2010.3668%2022.071%2010.7573L21.6688%2011.1596C21.3661%2011.4622%2021.3036%2011.9225%2021.4677%2012.3177C21.6317%2012.7129%2022.0034%2013%2022.4313%2013L23%2013C23.5523%2013%2024%2013.4477%2024%2014V16C24%2016.5523%2023.5523%2017%2023%2017H22.4312C22.0034%2017%2021.6318%2017.2871%2021.4677%2017.6822C21.3036%2018.0775%2021.3661%2018.5377%2021.6688%2018.8403L22.071%2019.2426C22.4616%2019.6331%2022.4616%2020.2663%2022.071%2020.6568L20.6568%2022.071C20.2663%2022.4616%2019.6331%2022.4616%2019.2426%2022.071L18.8403%2021.6688C18.5377%2021.3661%2018.0775%2021.3036%2017.6822%2021.4677C17.2871%2021.6318%2017%2022.0034%2017%2022.4312V23C17%2023.5523%2016.5523%2024%2016%2024H14C13.4477%2024%2013%2023.5523%2013%2023V22.4313C13%2022.0034%2012.7129%2021.6317%2012.3177%2021.4677C11.9225%2021.3036%2011.4622%2021.3661%2011.1596%2021.6688L10.7573%2022.071C10.3668%2022.4616%209.73363%2022.4616%209.34311%2022.071L7.92889%2020.6568C7.53837%2020.2663%207.53837%2019.6331%207.92889%2019.2426L8.33123%2018.8403C8.63384%2018.5377%208.69638%2018.0775%208.53228%2017.6822C8.36825%2017.2871%207.99659%2017%207.56879%2017H7C6.44772%2017%206%2016.5523%206%2016V14C6%2013.4477%206.44772%2013%207%2013L7.56877%2013C7.99658%2013%208.36825%2012.7129%208.53229%2012.3178C8.6964%2011.9225%208.63386%2011.4623%208.33123%2011.1597L7.92891%2010.7573C7.53838%2010.3668%207.53838%209.73365%207.92891%209.34313L9.34312%207.92891C9.73365%207.53839%2010.3668%207.53839%2010.7573%207.92891L11.1597%208.33123C11.4623%208.63386%2011.9225%208.6964%2012.3178%208.53229C12.7129%208.36825%2013%207.99658%2013%207.56876V7C13%206.44772%2013.4477%206%2014%206Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3cpath%20d='M17%2015C17%2016.1046%2016.1046%2017%2015%2017C13.8954%2017%2013%2016.1046%2013%2015C13%2013.8954%2013.8954%2013%2015%2013C16.1046%2013%2017%2013.8954%2017%2015Z'%20stroke='%23485299'%20stroke-width='1.5'/%3e%3c/svg%3e",{Header:ye}=l.Layout,L={light:{headerBg:"#ffffff",headerText:"#000000",sidebarBg:"#ffffff",sidebarText:"#000000",buttonPrimary:"#1890ff",buttonPrimaryHover:"#40a9ff",buttonPrimaryActive:"#096dd9",buttonDefault:"#ffffff",buttonDefaultHover:"#f5f5f5",buttonDefaultBorder:"#d9d9d9",buttonPermissionBorder:"#bdb1ff"},dark:{headerBg:"#4a4a4a",headerText:"#ffffff",sidebarBg:"#4a4a4a",sidebarText:"#ffffff",buttonPrimary:"#177ddc",buttonPrimaryHover:"#1890ff",buttonPrimaryActive:"#0958b5",buttonDefault:"#434343",buttonDefaultHover:"#303030",buttonDefaultBorder:"#434343",buttonPermissionBorder:"#bdb1ff"},blue:{headerBg:"#4a90e2",headerText:"#ffffff",sidebarBg:"#4a90e2",sidebarText:"#ffffff",buttonPrimary:"#1890ff",buttonPrimaryHover:"#40a9ff",buttonPrimaryActive:"#096dd9",buttonDefault:"#ffffff",buttonDefaultHover:"#f0f8ff",buttonDefaultBorder:"#4a90e2",buttonPermissionBorder:"#bdb1ff"},modern:{headerBg:"#f3f4ff",headerText:"#333333",sidebarBg:"#ffffff",sidebarText:"#555555",buttonPrimary:"#6449FC",buttonPrimaryHover:"#6449FC",buttonPrimaryActive:"#6449FC",buttonDefault:"#ffffff",buttonDefaultHover:"#f5f5f5",buttonDefaultBorder:"#dddddd",buttonPermissionBorder:"#bdb1ff"}},Y=({config:n={}})=>{const t={wrapper:{className:"header-wrapper",...n.wrapper},logo:{gap:10,...n.logo},right:{gap:14,minWidth:200,avatar:{width:30,height:30,...n.right?.avatar},...n.right},...n},s=E.useNavigate(),[o,a]=i.useState("modern"),g=i.useRef(null),{logout:y}=k.useUserStore(),u=(r,c)=>{try{if(!/^[a-zA-Z0-9-]+$/.test(r)){console.warn(`Invalid CSS variable name: ${r}`);return}if(!/^[#a-zA-Z0-9()\s,.-]+$/.test(c)){console.warn(`Invalid CSS variable value: ${c}`);return}document.documentElement.style.setProperty(r,c)}catch(T){console.error("CSS variable setting failed:",T)}},f=r=>{if(!L[r]){console.warn(`Invalid theme: ${r}`);return}a(r);const c={...L[r]};u("--header-bg",c.headerBg),u("--header-text",c.headerText),u("--sidebar-bg",c.sidebarBg),u("--sidebar-text",c.sidebarText),u("--button-primary",c.buttonPrimary),u("--button-primary-hover",c.buttonPrimaryHover),u("--button-primary-active",c.buttonPrimaryActive),u("--button-default",c.buttonDefault),u("--button-default-hover",c.buttonDefaultHover),u("--button-default-border",c.buttonDefaultBorder),u("--button-permission-border",c.buttonPermissionBorder),g.current&&g.current.setAttribute("data-theme",r),document.documentElement.setAttribute("data-theme",r),I.setCookie(I.THEME_COOKIE_NAME,r,30)};i.useEffect(()=>{const r=I.getCookie(I.THEME_COOKIE_NAME);r&&L[r]?f(r):f("modern")},[]);const m=()=>({...L[o]}).headerBg,h=()=>{y(),s("/login")};I.getCurrentDateString?I.getCurrentDateString("HH:mm:ss"):new Date().toLocaleTimeString("ko-KR");const C=e.jsxs("div",{style:{padding:"8px 0"},children:[e.jsxs("div",{style:{marginBottom:"12px"},children:[e.jsx(l.ColorPicker,{value:m(),disabled:!0,size:"small"}),e.jsx("span",{style:{marginLeft:"8px",fontSize:"12px"},children:"현재 테마 색상"})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[e.jsx(l.Button,{type:o==="modern"?"primary":"default",size:"small",onClick:()=>f("modern"),style:{textAlign:"left",backgroundColor:o==="modern"?L.modern.headerBg:void 0,color:o==="modern"?L.modern.headerText:void 0},children:"모던"},"modern"),Object.entries(L).filter(([r])=>r!=="modern").map(([r,c])=>e.jsx(l.Button,{type:o===r?"primary":"default",size:"small",onClick:()=>f(r),style:{textAlign:"left",backgroundColor:o===r?c.headerBg:void 0,color:o===r?c.headerText:void 0},children:r==="light"?"라이트":r==="dark"?"다크":r==="blue"?"블루":r},r))]})]});return e.jsxs(ye,{className:t.wrapper.className,style:{...t.wrapper.style},children:[t.logo&&e.jsx("div",{className:"header-left",children:e.jsx("div",{className:"logo-container",style:{gap:t.logo?.gap},children:t.logo?.items})}),e.jsxs("div",{className:"header-right",style:{gap:t.right?.gap,minWidth:t.right?.minWidth},children:[t.right?.items?.map((r,c)=>e.jsx("div",{children:r},c)),e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:fe,alt:"알림"}),className:"alarm-btn"}),e.jsx(l.Popover,{content:C,title:"테마 설정",trigger:"click",placement:"bottomRight",children:e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:be,alt:"개인설정"}),className:"theme-btn"})}),e.jsx(l.Button,{type:"text",icon:e.jsx("img",{src:xe,alt:"로그아웃"}),onClick:h,className:"logout-btn"}),e.jsx(l.Avatar,{icon:e.jsx(v.UserOutlined,{}),className:"avatar",style:{width:t.right?.avatar?.width,height:t.right?.avatar?.height}})]})]})},H=Object.freeze({Translate:{toString(n){if(!n)return;const{x:t,y:s}=n;return"translate3d("+(t?Math.round(t):0)+"px, "+(s?Math.round(s):0)+"px, 0)"}},Scale:{toString(n){if(!n)return;const{scaleX:t,scaleY:s}=n;return"scaleX("+t+") scaleY("+s+")"}},Transform:{toString(n){if(n)return[H.Translate.toString(n),H.Scale.toString(n)].join(" ")}},Transition:{toString(n){let{property:t,duration:s,easing:o}=n;return t+" "+s+"ms "+o}}}),Ce=i.memo(({className:n,...t})=>{const s=i.useRef(null),{attributes:o,listeners:a,transform:g,transition:y,isDragging:u,setNodeRef:f}=$.useSortable({id:t["data-node-key"]}),[m,h]=i.useState();i.useEffect(()=>{const r=s.current;if(r)if(u){const c=Math.round(r.getBoundingClientRect().width);h(c)}else h(void 0)},[u]);const C={...t.style,transform:g?H.Transform.toString(g):void 0,transition:y??"transform 0.16s ease",cursor:"grab",userSelect:"none",willChange:"transform",width:m??void 0,minWidth:m??void 0,maxWidth:m??void 0,flex:m!==void 0?"0 0 auto":void 0};return i.cloneElement(t.children,{ref:r=>{s.current!==r&&(s.current=r),f(r)},style:C,...o,...a})}),ve=i.memo(function({config:t,isFirst:s,isLast:o,canCloseAll:a,onFirst:g,onPrev:y,onNext:u,onLast:f,onCloseAll:m}){return e.jsxs("div",{className:t.wrapper?.className,style:t.wrapper?.style,children:[e.jsx(l.Tooltip,{title:"첫 번째 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.StepBackwardOutlined,{}),onClick:g,disabled:s})}),e.jsx(l.Tooltip,{title:"이전 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.LeftOutlined,{}),onClick:y,disabled:s})}),e.jsx(l.Tooltip,{title:"다음 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.RightOutlined,{}),onClick:u,disabled:o})}),e.jsx(l.Tooltip,{title:"마지막 탭",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.StepForwardOutlined,{}),onClick:f,disabled:o})}),e.jsx(l.Tooltip,{title:"모든 탭 닫기",className:t.tooltip?.className,style:t.tooltip?.style,children:e.jsx(l.Button,{className:t.buttons?.className,style:t.buttons?.style,size:"small",icon:e.jsx(v.CloseOutlined,{}),onClick:m,disabled:!a})})]})}),X=({config:n={}})=>{const t={wrapper:{className:"menu-tab-wrapper",...n?.wrapper},tabs:{className:"menu-tabs",...n?.tabs},nav:{wrapper:{className:"menu-nav-wrapper",...n?.nav?.wrapper},buttons:{className:"menu-nav-buttons",...n?.nav?.buttons},tooltip:{className:"menu-nav-tooltip",...n?.nav?.tooltip},...n?.nav},...n},s=k.useMenuViewStore(p=>p.tabs),o=k.useMenuViewStore(p=>p.activeMenuId),a=k.useMenuViewStore(p=>p.focusTab),g=k.useMenuViewStore(p=>p.closeTab),y=k.useMenuViewStore(p=>p.reorderTabs),u=O.useSensors(O.useSensor(O.PointerSensor,{activationConstraint:{distance:6}})),f=p=>{a(p)},m=(p,N)=>{N==="remove"&&typeof p=="string"&&g(p)},h=()=>{s.length>0&&a(s[0].key)},C=()=>{if(!o||s.length<=1)return;const p=s.findIndex(N=>N.key===o);p>0&&a(s[p-1].key)},r=()=>{if(!o||s.length<=1)return;const p=s.findIndex(N=>N.key===o);p<s.length-1&&a(s[p+1].key)},c=()=>{s.length>0&&a(s[s.length-1].key)},T=()=>{s.forEach(p=>{g(p.key)})},B=o?s.findIndex(p=>p.key===o):-1,z=B===0,R=B===s.length-1,V=i.useMemo(()=>s.map(p=>({key:p.key,label:p.label,closable:!0,children:null})),[s]),F=i.useCallback(({active:p,over:N})=>{if(!N||p.id===N.id)return;const S=s.findIndex(d=>d.key===p.id),P=s.findIndex(d=>d.key===N.id);if(S<0||P<0||S===P)return;const x=s.map(d=>d.key),b=$.arrayMove(x,S,P);y?.(b)},[s,y]),A=i.useCallback((p,N)=>e.jsx(O.DndContext,{sensors:u,onDragEnd:F,collisionDetection:O.closestCenter,modifiers:[re.restrictToHorizontalAxis],children:e.jsx($.SortableContext,{items:s.map(S=>S.key),strategy:$.horizontalListSortingStrategy,children:e.jsx(N,{...p,children:S=>i.createElement(Ce,{...S.props,key:S.key},S)})})}),[u,F,s]);return e.jsx("div",{className:t.wrapper.className,style:{...t.wrapper.style,display:s.length===0?"none":"block"},children:e.jsx(l.Tabs,{type:"editable-card",activeKey:o||void 0,onChange:f,onEdit:m,className:t.tabs.className,style:t.tabs.style,hideAdd:!0,items:V,tabBarExtraContent:e.jsx(ve,{config:t?.nav,isFirst:!!z,isLast:!!R,canCloseAll:s.length>0,onFirst:h,onPrev:C,onNext:r,onLast:c,onCloseAll:T}),renderTabBar:A})})},{Sider:we}=l.Layout,Q=({config:n={}})=>{const t={collapsed:!1,width:230,menuGubunCode:{mainMenu:"MAIN",subMenu:"SUB",program:"PRGM",...n?.menuGubunCode},className:{wrapper:"side-wrapper",search:"sider-search-ipt",segmented:{wrapper:"sider-segmented",item:"sider-segment-item",...n?.className?.segmented},sider:{content:"sider-content",loading:"sider-loading",loadingText:"sider-loading-text",error:"sider-error",errorIcon:"sider-error-icon",errorText:"sider-error-text",menu:"sider-menu",menuContainer:"sider-menu-container",...n?.className?.sider},...n?.className},style:{search:{placeholder:"메뉴명, 메뉴번호 검색...",height:30,...n?.style?.search},...n?.style},...n};console.log("@@ 사이드바 config : ",n);const[s,o]=i.useState(""),[a,g]=i.useState("category"),{activeMenuId:y,sidebarCollapsed:u,openTabFromMenu:f,toggleSidebar:m}=k.useMenuViewStore(),{menuList:h,isLoading:C,error:r,findMenuById:c}=k.useMenuModelStore(),{nodes:T,treeNodes:B,loadFavoritesIfNeeded:z}=k.useFavoriteStore(),R=i.useMemo(()=>{const x=[],b=(d,j=0)=>{if(d.menuGbCd===t.menuGubunCode.program&&d.scrnPath){const w=" ".repeat(j),M=d.menuNo||"";x.push({value:d.menuId,label:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsxs("span",{children:[w,d.menuNm]}),e.jsx("span",{style:{fontSize:"11px",color:"#999",backgroundColor:"#f0f0f0",padding:"2px 6px",borderRadius:"3px",marginLeft:"8px"},children:M})]}),menuItem:d})}d.children&&d.children.length>0&&d.children.forEach(w=>b(w,j+1))};return h.forEach(d=>b(d)),x},[h]),V=i.useMemo(()=>s.trim()?R.filter(x=>{const b=x.menuItem.menuNm.toLowerCase(),d=String(x.menuItem.menuNo||"미지정").toLowerCase(),j=s.toLowerCase();return b.includes(j)||d.includes(j)}):[],[R,s]),F=x=>{if(!x||typeof x!="string"){console.warn("Invalid menu selection value:",x);return}if(!/^[a-zA-Z0-9_-]+$/.test(x)){console.warn("Invalid menu ID format:",x);return}const b=R.find(d=>d.value===x);if(b){const{menuItem:d}=b;if(!d||!d.menuId||!d.menuNm){console.warn("Invalid menu item:",d);return}d.menuGbCd===t.menuGubunCode.program&&d.scrnPath?(console.log("✅ 검색으로 프로그램 메뉴 선택 - 탭 추가 및 setCurrentProgram 호출"),console.log("메뉴명:",d.menuNm,"경로:",d.scrnPath,"scrnId:",d.scrnId),f(d)):(d.menuGbCd===t.menuGubunCode.mainMenu||d.menuGbCd===t.menuGubunCode.subMenu)&&(console.log("❌ 검색으로 메인/서브 메뉴 선택 - 이벤트 무시"),console.log("메뉴명:",d.menuNm,"menuGbCd:",d.menuGbCd)),o("")}},A=i.useCallback(x=>{const b=c(x);b?.menuGbCd===t.menuGubunCode.program&&(console.log("메뉴명:",b.menuNm,"경로:",b.scrnPath,"scrnId:",b.scrnId),f(b))},[c,f]),p=i.useCallback(x=>x.map(b=>({key:b.menuId,label:e.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:e.jsx("span",{children:b.menuNm})}),icon:N(b.iconCd,b.menuGbCd),children:b.children&&b.children.length>0?p(b.children):void 0})),[]),N=(x,b)=>{if(x){const d=U[x];if(d)return e.jsx(d,{})}if(b)switch(b){case t.menuGubunCode.mainMenu:return e.jsx(U.HomeOutlined,{});case t.menuGubunCode.subMenu:return null;case t.menuGubunCode.program:return null;default:return null}return null},S=i.useCallback(x=>{if(h.length===0)return[];const b=j=>{if(j)return typeof j=="string"?T[j]:j},d=j=>{if(j.type==="M"){const w=j,M=c(w.menuId)||void 0,W=!!M,se=W?`${M?.menuNm??w.menuNm??w.menuId}`:`${w.menuNm??w.menuId} (삭제됨)`;return{key:w.menuId,label:se,icon:W?void 0:e.jsx(v.WarningOutlined,{style:{color:"#faad14"}})}}else{const w=j,M=(w.children??[]).map(b).filter(Boolean).map(d);return{key:w.bkmkId,label:w.bkmkNm??w.bkmkId,icon:w.prntBkmkId==="-"?e.jsx(v.StarOutlined,{}):e.jsx(v.FolderOpenOutlined,{}),children:M}}};return x.map(d)},[c,T,h]),P=i.useMemo(()=>S(B),[S,B,T]);return i.useEffect(()=>{I.getUserId()&&z(I.getUserId())},[z]),i.useEffect(()=>{a==="category"&&o("")},[a]),e.jsxs(we,{className:t.className.wrapper,collapsed:t.collapsed||u,trigger:null,width:t.width||230,children:[e.jsx("div",{style:{position:"absolute",top:"9px",right:"-25px",zIndex:"1000",width:"25px",height:"41px",backgroundColor:"#ffffff",border:"1px solid #dddddd",borderRadius:"0 10px 10px 0",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:"2px 2px 2px rgba(0, 0, 0, 0.05)",transition:"all 0.3s ease"},children:e.jsx(l.Button,{type:"text",icon:t.collapsed||u?e.jsx(v.MenuUnfoldOutlined,{}):e.jsx(v.MenuFoldOutlined,{}),style:{fontSize:"12px",color:"#787878",padding:0,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},onClick:m})}),!(t.collapsed||u)&&e.jsx("div",{style:{padding:10},children:e.jsx(l.AutoComplete,{value:s,options:V,onSelect:F,onSearch:o,style:{width:"100%"},allowClear:!0,children:e.jsx(l.Input,{className:t.className.search,placeholder:t.style.search.placeholder,prefix:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M16.4972 16.6667L13.0355 13.1694M14.8475 8.75C14.8475 5.29822 12.0777 2.5 8.66105 2.5C5.24437 2.5 2.47461 5.29822 2.47461 8.75C2.47461 12.2018 5.24437 15 8.66105 15C12.0777 15 14.8475 12.2018 14.8475 8.75Z",stroke:"#5F5F5F",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),size:"middle",style:{height:t.style.search.height||30}})})}),!(t.collapsed||u)&&e.jsx("div",{style:{width:"100%",padding:"0px 10px",marginBottom:"10px"},children:e.jsx(l.Segmented,{className:t.className.segmented.wrapper,options:[{label:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:t.className.segmented.item,children:e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[e.jsx("path",{d:"M2.46979 6.90625H13.0298C13.7298 6.90625 14.2965 7.47292 14.2965 8.17292V13.5396H1.20312V8.17292C1.20312 7.47292 1.76979 6.90625 2.46979 6.90625Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M2.76318 4.70626C2.76318 4.00626 3.18318 3.75293 3.69652 3.75293H11.8032C12.3165 3.75293 12.7365 4.00626 12.7365 4.70626",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M4.71631 1.45996H10.783",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}),"카테고리"]}),value:"category"},{label:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:t.className.segmented.item,children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",children:e.jsx("path",{d:"M7.11329 1.33356C7.32084 0.888813 7.66676 0.888813 7.88296 1.33356L9.258 4.25619C9.46556 4.70094 10.0277 5.12753 10.4947 5.20014L13.5647 5.67212C14.0317 5.74473 14.1441 6.08964 13.7982 6.43455L11.5757 8.70367C11.2384 9.04858 11.0222 9.73839 11.1 10.2285L11.6276 13.4325C11.7054 13.9227 11.4287 14.1405 11.0049 13.9045L8.26348 12.3887C7.83972 12.1527 7.15653 12.1527 6.73277 12.3887L3.99134 13.9045C3.56759 14.1405 3.29085 13.9227 3.36868 13.4325L3.89621 10.2285C3.97405 9.73839 3.76649 9.04858 3.42057 8.70367L1.19802 6.43455C0.86075 6.08964 0.964526 5.74473 1.43152 5.67212L4.50158 5.20014C4.96857 5.12753 5.5307 4.70094 5.73825 4.25619L7.11329 1.33356Z",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"4"})})}),"즐겨찾기"]}),value:"favorite"}],value:a,onChange:x=>{g(x)},style:{width:"100%"},block:!0})}),e.jsxs("div",{className:t.className.sider.content,children:[C&&e.jsxs("div",{className:t.className.sider.loading,children:[e.jsx(l.Spin,{size:"default"}),e.jsx("div",{className:t.className.sider.loadingText,children:"메뉴 로딩 중..."})]}),r&&e.jsxs("div",{className:t.className.sider.error,children:[e.jsx(v.ExclamationCircleOutlined,{className:t.className.sider.errorIcon}),e.jsx("div",{className:t.className.sider.errorText,children:"메뉴 로드 실패"})]}),!C&&!r&&a==="category"&&h.length===0&&e.jsx("div",{style:{padding:"16px",textAlign:"center",color:"#666",fontSize:"12px"},children:"메뉴가 없습니다"}),!C&&!r&&a==="favorite"&&P.length===0&&e.jsx("div",{style:{padding:"16px",textAlign:"center",color:"#666",fontSize:"12px"},children:"즐겨찾기된 메뉴가 없습니다"}),!C&&!r&&a==="category"&&h.length>0&&e.jsx("div",{className:t.className.sider.menuContainer,children:e.jsx(l.Menu,{theme:"light",mode:"inline",items:p(h),className:t.className.sider.menu,selectedKeys:[y||""],onClick:x=>A(x.key)})}),!C&&!r&&a==="favorite"&&P.length>0&&e.jsx("div",{className:t.className.sider.menuContainer,children:e.jsx(l.Menu,{theme:"light",mode:"inline",items:P,className:t.className.sider.menu,selectedKeys:[y||""],onClick:x=>A(x.key)})})]})]})};class je extends i.Component{constructor(t){super(t),this.resetError=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})},this.state={hasError:!1}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,s){console.error("ErrorBound caught an error:",t,s),this.setState({error:t,errorInfo:s})}render(){return this.state.hasError?this.props.fallback?this.props.fallback:e.jsxs("div",{style:{padding:"40px 20px",textAlign:"center",backgroundColor:"#fafafa",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},children:[e.jsx(l.Result,{status:"error",title:"컴포넌트 로딩 중 오류가 발생했습니다",subTitle:this.state.error?`오류 내용: ${this.state.error.message}`:"알 수 없는 오류가 발생했습니다",extra:[e.jsx(l.Button,{type:"primary",icon:e.jsx(v.ReloadOutlined,{}),onClick:this.resetError,style:{marginRight:8},children:"다시 시도"},"retry")]}),this.state.error&&e.jsxs("details",{style:{marginTop:"20px",textAlign:"left",maxWidth:"600px",backgroundColor:"#fff",padding:"16px",borderRadius:"6px",border:"1px solid #d9d9d9"},children:[e.jsx("summary",{style:{cursor:"pointer",fontWeight:"bold"},children:"오류 상세 정보"}),e.jsx("pre",{style:{marginTop:"8px",fontSize:"12px",color:"#666",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:this.state.error.stack})]})]}):this.props.children}}const ke=({isActive:n,instance:t,params:s})=>{const{activeMenuId:o,closeTab:a}=k.useMenuViewStore(),g=()=>{o&&a(o)};return t?e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"},children:e.jsx(je,{children:e.jsx(i.Suspense,{fallback:null,children:t&&i.createElement(t,{params:s})})})}):e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"},children:e.jsx("div",{style:{width:500,maxWidth:"90%",background:"#fff",borderRadius:16,boxShadow:"0 8px 30px rgba(0,0,0,0.05)",padding:24},children:e.jsx(l.Result,{icon:e.jsx(v.ExclamationCircleTwoTone,{twoToneColor:"#69b1ff"}),status:"warning",title:"등록된 메뉴 정보가 없거나 유효한 메뉴가 아닙니다.",subTitle:e.jsx(l.Typography.Text,{type:"secondary",children:"자세한 내용은 관리자에게 문의바랍니다."}),extra:e.jsx(l.Space,{children:e.jsx(l.Button,{icon:e.jsx(v.CloseOutlined,{}),onClick:g,children:"탭 닫기"})})})})})},J=i.memo(ke),ee=()=>e.jsxs(e.Fragment,{children:[e.jsx("link",{rel:"preload",as:"image",href:"/src/styles/assets/images/backgrounds/LandingContainer_bg.png"}),e.jsx("div",{className:"LandingContainer-wrap",children:e.jsx("div",{className:"inner",children:e.jsx("div",{className:"content"})})})]}),Ne=(n,t)=>{console.log("createPopupViewLoader 호출 - popupUrl:",n);const o=(a=>{if(a.startsWith("/src/pages/views/popup/")){const u=a+".tsx";return console.log(`팝업 URL 변환: ${a} -> ${u}`),u}const y=`/src/pages/views/popup/${a.startsWith("/")?a.substring(1):a}.tsx`;return console.log(`팝업 URL 변환: ${a} -> ${y}`),y})(n);return!o||!t?.glob[o]?(console.warn(`팝업 뷰를 찾을 수 없습니다: ${n} (${o})`),console.warn("사용 가능한 팝업 뷰들:",Object.keys(t?.glob||{})),null):t?.glob[o]},Se=({popup:n,modules:t})=>{const[s,o]=i.useState(null),[a,g]=i.useState(!1),[y,u]=i.useState(null),f=()=>{console.log("PopupArea - handleClose:",n.popupId),k.usePopupStore.getState().closePopup(n.popupId)};return i.useEffect(()=>{(async()=>{console.log("팝업 뷰 로드 시작:",n.popupUrl),g(!0),u(null);try{const h=Ne(n.popupUrl,t);if(!h){const c=`팝업 뷰를 찾을 수 없습니다: ${n.popupUrl}`;console.error(c),u(c),g(!1);return}console.log("팝업 뷰 모듈 로드 중...");const C=await h();console.log("팝업 뷰 모듈 로드 완료:",C);const r=C.default;if(console.log("팝업 뷰 컴포넌트:",r),!r)throw new Error("팝업 뷰 컴포넌트를 찾을 수 없습니다");o(()=>r),console.log("팝업 뷰 설정 완료")}catch(h){console.error("팝업 뷰 로드 실패:",h),u(h instanceof Error?h.message:"팝업 뷰 로드 실패")}finally{g(!1)}})()},[n.popupUrl]),a?e.jsxs("div",{className:"popup-loading",children:[e.jsx(l.Spin,{size:"large"}),e.jsx("p",{children:"팝업을 로드하는 중..."})]}):y?e.jsxs("div",{className:"popup-error",children:[e.jsx(l.Empty,{description:y,image:l.Empty.PRESENTED_IMAGE_SIMPLE}),e.jsx(l.Button,{icon:e.jsx(v.ReloadOutlined,{}),onClick:()=>window.location.reload(),children:"다시 시도"})]}):s?e.jsx(i.Suspense,{fallback:e.jsxs("div",{className:"popup-loading",children:[e.jsx(l.Spin,{size:"large"}),e.jsx("p",{children:"컴포넌트를 로드하는 중..."})]}),children:e.jsx(s,{popup:{...n,close:f},onClose:f})}):e.jsx("div",{className:"popup-empty",children:e.jsx(l.Empty,{description:"팝업 내용을 불러올 수 없습니다."})})},te=({modules:n})=>{const{popups:t}=k.usePopupStore();return t.length===0?null:e.jsx(e.Fragment,{children:t.map(s=>{const o=s.config||{},a=o.width||s.width||800,g=o.height||s.height||600,y=o.title||s.popupTitle,u=s.buttonList?.map((f,m)=>({key:f.btnId||`btn_${m}`,text:f.btnNm,type:f.btnId==="CLOSE"?"default":"primary",disabled:f.enblYn!=="Y",danger:!1}))||[];return console.log("팝업 렌더링:",{popupId:s.popupId,popupCode:s.popupCode,title:y,width:a,height:g,buttons:u}),e.jsx("div",{children:e.jsx(Se,{popup:s,modules:n})},s.popupId)})})},Ie=()=>{const{popups:n,closePopup:t}=k.usePopupStore();return e.jsx(e.Fragment,{children:n.map(s=>{if(!(s.isLocal||s.popupCode.startsWith("CORE_")))return null;const o=K[s.popupCode];if(!o)return null;const a=o.component;return e.jsx(i.Suspense,{fallback:null,children:e.jsx(a,{popup:s,onClose:()=>t(s.popupId)})},s.popupId)})})},Te=n=>({position:"absolute",inset:0,visibility:n?"visible":"hidden",opacity:n?1:0,transition:"opacity 0.2s ease-in-out",pointerEvents:n?"auto":"none"}),Pe=({once:n=!0})=>{const{lock:t}=D.useLock(),s=i.useRef(!1);return i.useEffect(()=>{n&&s.current||(s.current=!0,t())},[n,t]),null},ne=({isActive:n,flagged:t,tabKey:s,onUnlock:o,children:a})=>{const g=i.useRef(null),[y,u]=i.useState(!1),f=i.useCallback(h=>{g.current=h,u(!!h)},[]),m=Te(n);return e.jsx("div",{ref:f,style:m,children:y?e.jsxs(D.ScreenProtectProvider,{idleMs:Number.POSITIVE_INFINITY,persistLocked:!1,overlayScope:"scoped",overlayPosition:"absolute",eventTarget:g.current,overlayId:`tab-overlay-${s}`,onUnlock:async()=>(o(),!0),children:[n&&t?e.jsx(Pe,{once:!0}):null,a]}):a})},Le=({config:n={},modules:t={view:{path:"/src/pages/views/content"},popup:{path:"/src/pages/views/popups"}}})=>{const s=i.useRef(new Map),{tabs:o,tabParams:a,activeMenuId:g,tabProtectFlag:y,clearProtectFlagForKey:u}=k.useMenuViewStore(),f=i.useCallback(m=>{const h=s.current.get(m.key);if(h)return h;const C=m.gubun==="M"?`${t.view.path}${m.menuItem?.scrnPath}.tsx`:`${t.view.path}${m.componentItem?.scrnPath}.tsx`;let r=t.view?.glob?.[C];if(!r&&typeof{url:typeof document>"u"?require("url").pathToFileURL(__filename).href:_&&_.tagName.toUpperCase()==="SCRIPT"&&_.src||new URL("chunks/layout-components-hCEUMfz3.cjs",document.baseURI).href}<"u",r){const c=i.lazy(r);return s.current.set(m.key,c),c}return null},[t.view?.glob]);return e.jsxs(l.Layout,{className:"main-layout",children:[e.jsx(Y,{config:n?.header}),e.jsxs(l.Layout,{children:[e.jsx(Q,{config:n?.sidebar}),e.jsxs("div",{className:"content-container",children:[e.jsx(X,{config:n?.menuTab}),e.jsx(Z,{config:n?.content,children:e.jsxs(D.SearchBoxProvider,{children:[e.jsx("div",{className:"view-container",children:e.jsxs("div",{style:{position:"relative",width:"100%",height:"100%"},children:[o.map(m=>{const h=f(m),C=g===m.key,r=!!y?.[m.key],c=a[m.key]||{};return e.jsx(ne,{isActive:C,flagged:r,tabKey:m.key,onUnlock:()=>u(m.key),children:e.jsx(J,{isActive:C,instance:h||void 0,params:c},m.key)},m.key)}),(!g||o.length===0)&&e.jsx(ee,{})]})}),e.jsx(Ie,{}),e.jsx(te,{modules:t?.popup})]})})]})]}),e.jsx(G.QuickServiceToggle,{})]})},Me=({config:n,children:t})=>e.jsx("div",{children:"BwgPortal02"});exports.AppWrapper=he;exports.BwgPortal01=Le;exports.BwgPortal02=Me;exports.ConfigurableContent=Z;exports.ConfigurableHeader=Y;exports.ConfigurableMenuTab=X;exports.ConfigurableSidebar=Q;exports.ContentContainer=J;exports.LandingContainer=ee;exports.LoadingContainer=me;exports.PopupContainer=te;exports.ProtectWrapper=ne;exports.localPopupRegistry=K;
@@ -1,7 +1,7 @@
1
1
  import { jsxs as f, jsx as e, Fragment as F } from "react/jsx-runtime";
2
2
  import { ServiceCodeProvider as de, CommonCodeProvider as ue, ScreenProtectProvider as pe, useLock as me, SearchBoxProvider as he } from "../provider/index.js";
3
3
  import { Routes as ge, Route as U, Navigate as fe, useNavigate as be } from "react-router-dom";
4
- import { G as ye, B as Ce, Q as ve } from "./common-components-CFIJNFN0.js";
4
+ import { G as ye, B as Ce, Q as ve } from "./common-components-Bp95qOup.js";
5
5
  import { Spin as W, Layout as z, ColorPicker as we, Button as x, Popover as xe, Avatar as ke, Tabs as Ne, Tooltip as A, AutoComplete as Ie, Input as Se, Segmented as Te, Menu as J, Result as se, Space as Le, Typography as Pe, Empty as K } from "antd";
6
6
  import { lazy as D, useEffect as E, useState as S, useRef as $, useMemo as _, useCallback as M, createElement as ae, memo as Y, cloneElement as Me, Component as Ee, Suspense as Q } from "react";
7
7
  import { useUserStore as Be, useMenuViewStore as I, useMenuModelStore as De, useFavoriteStore as Oe, usePopupStore as X } from "../stores/index.js";
@@ -11,7 +11,7 @@ import { getCookie as Ke, getCurrentDateString as te, setCookie as Ze, THEME_COO
11
11
  import { useSensors as Ye, useSensor as Qe, PointerSensor as Xe, DndContext as qe, closestCenter as Je } from "@dnd-kit/core";
12
12
  import { restrictToHorizontalAxis as et } from "@dnd-kit/modifiers";
13
13
  import { arrayMove as tt, SortableContext as nt, horizontalListSortingStrategy as rt, useSortable as ot } from "@dnd-kit/sortable";
14
- const st = D(() => import("./MenuReport-iuRC_snf.js")), at = D(() => import("./common-components-CFIJNFN0.js").then((n) => n.D)), it = D(() => import("./common-components-CFIJNFN0.js").then((n) => n.E)), lt = D(() => import("./common-components-CFIJNFN0.js").then((n) => n.F)), ct = D(() => import("./common-components-CFIJNFN0.js").then((n) => n.H)), dt = {
14
+ const st = D(() => import("./MenuReport-Dgq2wH6w.js")), at = D(() => import("./common-components-Bp95qOup.js").then((n) => n.D)), it = D(() => import("./common-components-Bp95qOup.js").then((n) => n.E)), lt = D(() => import("./common-components-Bp95qOup.js").then((n) => n.F)), ct = D(() => import("./common-components-Bp95qOup.js").then((n) => n.H)), dt = {
15
15
  // 게시판/문의
16
16
  CORE_REPORT: {
17
17
  component: st,
@@ -1 +1 @@
1
- {"version":3,"file":"BwgView.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgView.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAsC,MAAM,OAAO,CAAC;AAU1E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;wBA2cZ,aAAa,CAAC,YAAY,CAAC;AAArD,wBAAsD"}
1
+ {"version":3,"file":"BwgView.d.ts","sourceRoot":"","sources":["../../../src/components/common/BwgView.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAsC,MAAM,OAAO,CAAC;AAU1E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;wBA6cZ,aAAa,CAAC,YAAY,CAAC;AAArD,wBAAsD"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/common-components-CioS_8Bi.cjs"),o=require("../../utils/index.cjs");exports.ButtonAccessController=e.ButtonAccessController;exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgCol=e.BwgCol;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDetail=e.BwgDetail;exports.BwgDrawer=e.BwgDrawer;exports.BwgEditor=e.BwgEditor;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPagination=e.BwgPagination;exports.BwgPopup=e.BwgPopup;exports.BwgRow=e.BwgRow;exports.BwgSpace=e.BwgSpace;exports.BwgTable=e.BwgTable;exports.BwgTabs=e.BwgTabs;exports.BwgTitleBox=e.BwgTitleBox;exports.BwgView=e.BwgView;exports.ContentBox=e.ContentBox;exports.ContentLayOut=e.ContentLayOut;exports.GlobalConfigProvider=e.GlobalConfigProvider;exports.QuickServiceToggle=e.QuickServiceToggle;exports.SSOHandler=e.SSOHandler;exports.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.realFormat=o.realFormat;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/common-components-CoRIM-Z-.cjs"),o=require("../../utils/index.cjs");exports.ButtonAccessController=e.ButtonAccessController;exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgCol=e.BwgCol;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDetail=e.BwgDetail;exports.BwgDrawer=e.BwgDrawer;exports.BwgEditor=e.BwgEditor;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPagination=e.BwgPagination;exports.BwgPopup=e.BwgPopup;exports.BwgRow=e.BwgRow;exports.BwgSpace=e.BwgSpace;exports.BwgTable=e.BwgTable;exports.BwgTabs=e.BwgTabs;exports.BwgTitleBox=e.BwgTitleBox;exports.BwgView=e.BwgView;exports.ContentBox=e.ContentBox;exports.ContentLayOut=e.ContentLayOut;exports.GlobalConfigProvider=e.GlobalConfigProvider;exports.QuickServiceToggle=e.QuickServiceToggle;exports.SSOHandler=e.SSOHandler;exports.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.realFormat=o.realFormat;
@@ -1,4 +1,4 @@
1
- import { j as e, k as o, l as r, m as B, B as g, n as w, o as t, i, f as n, p as l, h as d, e as p, q as C, a as c, r as u, s as f, t as S, u as m, C as x, v as G, G as v, Q as P, w as T, S as b, d as A } from "../../chunks/common-components-CFIJNFN0.js";
1
+ import { j as e, k as o, l as r, m as B, B as g, n as w, o as t, i, f as n, p as l, h as d, e as p, q as C, b as c, r as u, s as f, t as S, u as m, C as x, v as G, G as b, Q as v, w as P, S as T, d as A } from "../../chunks/common-components-Bp95qOup.js";
2
2
  import { realFormat as k } from "../../utils/index.js";
3
3
  export {
4
4
  e as ButtonAccessController,
@@ -21,10 +21,10 @@ export {
21
21
  m as BwgView,
22
22
  x as ContentBox,
23
23
  G as ContentLayOut,
24
- v as GlobalConfigProvider,
25
- P as QuickServiceToggle,
26
- T as SSOHandler,
27
- b as SearchBox,
24
+ b as GlobalConfigProvider,
25
+ v as QuickServiceToggle,
26
+ P as SSOHandler,
27
+ T as SearchBox,
28
28
  A as createBwgGridRenderer,
29
29
  k as realFormat
30
30
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),n=require("antd"),h=require("react"),T=require("dayjs"),$=require("@ant-design/icons"),q=require("lodash"),k=require("../../utils/index.cjs"),ae=require("jszip"),ne=require("imask"),ie=require("../../stores/index.cjs"),X=require("react-dnd"),le=require("react-dnd-html5-backend"),ce=t=>r.jsx(n.Button,{...t,className:"bwg-btn"}),M=h.memo(({children:t,label:e,name:l,rules:i,initialValue:s,style:o,...u})=>{const a={fontWeight:"bold"},m=Array.isArray(i)&&i.some(Y=>Y.required===!0),c=()=>typeof e=="string"?r.jsxs("span",{style:a,children:[e,m&&r.jsx("span",{style:{color:"#ff4d4f",marginLeft:"4px"},children:"*"})]}):r.jsx("span",{style:a,children:e});return r.jsx(n.Form.Item,{className:"bwg-form-item",label:e?c():void 0,labelAlign:"left",name:l,rules:i,colon:!1,initialValue:s,style:o,...u,children:t})}),de=({itemProps:t,inputProps:e={format:"YN"}})=>{const l=n.Form.useFormInstance(),i=s=>{e.format==="boolean"?l.setFieldValue(t?.name,s.target.checked):l.setFieldValue(t?.name,s.target.checked?"Y":"N"),e.onChange&&e.onChange(s)};return r.jsx(M,{...t,getValueProps:s=>({checked:e.format==="boolean"?!!s:s==="Y"}),normalize:s=>typeof s=="boolean"?e.format==="boolean"?s:s?"Y":"N":e.format==="boolean"?!!s:s?"Y":"N",children:r.jsx(n.Checkbox,{...e,onChange:i,children:e?.title})})},ue=({itemProps:t,inputProps:e})=>{const l=n.Form.useFormInstance(),[i,s]=h.useState(t?.initialValue??[]),[o,u]=h.useState([]),a=o.length>0&&o.length==i?.length,m=i?.length>0&&i.length<o.length;h.useEffect(()=>{u(c(e?.options))},[e?.options]),h.useEffect(()=>{s(i)},[i]);const c=j=>{const C=[];return(j||[]).map((N,E)=>{C.push(N.value)}),C},Y=j=>{s(j.target.checked?o:[]),l.setFieldValue(t?.name,j.target.checked?o:[])},y=j=>{s(j),l.setFieldValue(t?.name,j),e?.onChange&&typeof e?.onChange=="function"&&e?.onChange(j)};return r.jsx(M,{...t,children:r.jsxs(n.ConfigProvider,{theme:{components:{Checkbox:{colorPrimary:"var(--check-primary)",colorPrimaryBorder:"var(--check-primary)",colorPrimaryHover:"var(--check-primary-active)"}}},children:[e?.allCheck&&r.jsx(n.Checkbox,{indeterminate:m,checked:a,onChange:Y,children:"전체선택"}),r.jsx(n.Checkbox.Group,{options:e?.options,value:i,onChange:y})]})})},P={year:{displayFormat:"YYYY",outputFormat:"YYYY"},month:{displayFormat:"YYYY-MM",outputFormat:"YYYYMM"},date:{displayFormat:"YYYY-MM-DD",outputFormat:"YYYYMMDD"},time:{displayFormat:"HH:mm",outputFormat:"HHmm"},datetime:{displayFormat:"YYYY-MM-DD HH:mm",outputFormat:"YYYYMMDDHHmm"}},me=({itemProps:t,inputProps:e,type:l="date",returnType:i="string"})=>{const{displayFormat:s,outputFormat:o}=h.useMemo(()=>P[l],[l]),u=h.useMemo(()=>Object.values(P).map(a=>a.outputFormat).sort((a,m)=>{if(a.length===m.length){if(a===o)return-1;if(m===o)return 1}return m.length-a.length}),[o]);return r.jsx(M,{...t,getValueProps:a=>({value:a?T.isDayjs(a)?a:T(a,u):null}),normalize:a=>a?i==="dayjs"?a:a.format(o):null,children:r.jsx(n.DatePicker,{...e,picker:l==="datetime"?"date":l,showTime:e?.showTime??(l==="datetime"||l==="time"),format:s})})},fe=({fileGrpKey:t,onFetchFilesTrxCd:e="SCMFILE00101",readOnly:l=!1,sysCd:i=__SYS_CD__})=>{const[s,o]=h.useState([]);h.useEffect(()=>{t&&e?i!=__SYS_CD__?k.callService_SYSCD(i,e,{crprCd:k.getUserInfo()?.crprCd,sysCd:i,fileGrpKey:t}).then(a=>{if(a?.sub){const m=a.sub.map(c=>({uid:c.fileKey,name:c.lgclFileNm,filePath:c.filePath}));o(m)}}).catch(a=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",a),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")}):k.callService(e,{crprCd:k.getUserInfo()?.crprCd,sysCd:i,fileGrpKey:t}).then(a=>{if(a?.sub){const m=a.sub.map(c=>({uid:c.fileKey,name:c.lgclFileNm,filePath:c.filePath}));o(m)}}).catch(a=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",a),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")}):o([])},[t,e]);const u=async a=>{try{let m;i!=__SYS_CD__?m="/api/download/"+i:m="/api/download";const c=await fetch(m,{method:"POST",headers:{SYSCD:__SYS_CD__,"Content-Type":"application/json"},body:JSON.stringify({filePath:a.filePath,logicalName:a.name,fileKey:a.uid})});if(!c.ok){const N=(await c.json().catch(()=>null))?.message||"파일 다운로드에 실패했습니다.";throw new Error(N)}const Y=await c.blob(),y=window.URL.createObjectURL(Y),j=document.createElement("a");j.href=y,j.setAttribute("download",a.name),document.body.appendChild(j),j.click(),document.body.removeChild(j),window.URL.revokeObjectURL(y)}catch(m){console.error(m),n.message.error(m.message||"파일을 다운로드하는 중 오류가 발생했습니다.")}};return q.isEmpty(s)?null:r.jsx(n.Card,{title:"파일 목록",children:r.jsx(n.List,{dataSource:s,renderItem:a=>r.jsx(n.List.Item,{actions:l?[]:[r.jsx(n.Button,{type:"text",icon:r.jsx($.DownloadOutlined,{}),onClick:()=>u(a)},"download")],children:r.jsx(n.List.Item.Meta,{avatar:r.jsx($.PaperClipOutlined,{}),title:a.name})})})})},se=h.forwardRef(({children:t,labelCol:e,style:l,className:i,...s},o)=>r.jsx(n.ConfigProvider,{form:{validateMessages:{required:"'${label}을(를) 입력해주세요.'"}},children:r.jsx(n.Form,{ref:o,...s,requiredMark:!1,labelCol:e||{flex:"100px"},style:{padding:"10px",...l},className:`bwg-form ${i??""}`,children:t})}));se.displayName="BwgForm";const ge=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(n.Input,{...e})}),{Text:J}=n.Typography,{Dragger:he}=n.Upload,pe=[".pdf",".xlsx",".xls",".docx",".doc",".pptx",".ppt",".hwp",".txt",".csv",".jpg",".jpeg",".png",".gif",".zip"],xe=(t,e=2)=>{if(t===0)return"0 Bytes";const l=1024,i=e<0?0:e,s=["Bytes","KB","MB","GB","TB"],o=Math.floor(Math.log(t)/Math.log(l));return parseFloat((t/Math.pow(l,o)).toFixed(i))+" "+s[o]},Fe=({title:t="첨부파일",fileGrpKey:e,onUploadComplete:l,onSuccessTrxCd:i="SCMFILE00102",anotherServiceTrxCd:s="SCMFILE00105",allowedExtensions:o=pe,maxFileSize:u=2048})=>{const[a,m]=h.useState([]),[c,Y]=h.useState(!1),[y,j]=h.useState(!1),[C,N]=h.useState(0),E=f=>{if(o&&o.length>0){const L=(U=>{const H=U.lastIndexOf(".");return H===-1?"":U.substring(H).toLowerCase()})(f.name);if(!o.includes(L))return n.message.error(`${f.name} 파일은 허용되지 않는 확장자입니다. (${o.join(", ")}만 가능)`),!1}return!0},D=async()=>{const f=a.filter(I=>I.status!=="done"),x=f.reduce((I,A)=>I+(A.size||0),0),L=2*1024*1024*1024;if(x>L){n.notification.error({message:"업로드 용량 초과",description:"한 번에 업로드할 수 있는 총 파일 용량은 2GB를 초과할 수 없습니다."});return}if(f.length===0){n.message.warning("업로드할 파일이 없거나 모든 파일이 이미 업로드되었습니다.");return}j(!0);let U;try{const I=new ae;f.forEach(A=>{A.originFileObj&&I.file(A.name,A.originFileObj)}),U=await I.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9}})}catch(I){j(!1),n.message.error("파일을 압축하는 중 오류가 발생했습니다."),console.error("Zipping error:",I);return}j(!1);const H=new FormData;H.append("file",U,"upload.zip"),Y(!0),N(0);try{const I=await new Promise((F,w)=>{const v=new XMLHttpRequest;v.open("POST","/api/upload-large",!0),v.upload.onprogress=B=>{if(B.lengthComputable){const W=Math.round(B.loaded/B.total*100);N(W)}},v.onload=()=>{if(v.status>=200&&v.status<300)try{const B=JSON.parse(v.responseText);B.success?F(B):w(new Error(B.message||"파일 업로드에 실패했습니다."))}catch{w(new Error("잘못된 서버 응답입니다."))}else try{const B=JSON.parse(v.responseText);w(new Error(B.message||`서버 오류: ${v.status}`))}catch{w(new Error(`서버 오류: ${v.status}`))}},v.onerror=()=>{w(new Error("네트워크 오류가 발생했습니다."))},v.send(H)});n.message.success(I.message||"압축 파일이 성공적으로 업로드되었습니다.");const A=a.map(F=>f.find(w=>w.uid===F.uid)?{...F,status:"done"}:F);if(m(A),i&&I.uploadedFiles&&Array.isArray(I.uploadedFiles)){const F=k.getUserInfo();I.uploadedFiles.forEach(w=>{const v={crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,sub:[{crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,physFileNm:w.fileNameP,lgclFileNm:w.fileNameL,filePath:w.filePath,fileExtn:w.fileExt,fileSize:w.fileSize,mltpYn:"Y"}]};k.callService(i,v).then(B=>{const W=a.map(K=>({crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:B.sub[0].fileGrpKey,fileKey:B.sub[0].fileKey,lgclFileNm:K.name,fileSize:K.size,fileExtn:K.name.split(".").pop(),fileType:K.type}));k.callService(s,{sub:W})}).catch(B=>{console.error("후처리 서비스 호출 실패:",B),n.message.error(`${w.fileNameL} 파일의 후처리 작업에 실패했습니다.`)}),l&&l({fileNameP:w.fileNameP,fileNameL:w.fileNameL})})}}catch(I){n.message.error(I.message||"파일 업로드 중 오류가 발생했습니다.");const A=a.map(F=>f.find(w=>w.uid===F.uid)?{...F,status:"error",response:I.message||"파일 업로드 중 오류가 발생했습니다."}:F);m(A)}finally{Y(!1)}},g={multiple:!0,fileList:a,beforeUpload:f=>E(f)?u&&f.size>=u*1024*1024?(n.message.error(`대용량 첨부 파일 최대 크기는 ${(u/1024).toFixed(1)}GB입니다.`),n.Upload.LIST_IGNORE):!1:n.Upload.LIST_IGNORE,onChange:({fileList:f})=>{const x=new Map(a.map(L=>[L.uid,L]));f.forEach(L=>{x.set(L.uid,L)}),m(Array.from(x.values()))},onRemove:f=>{const x=a.filter(L=>L.uid!==f.uid);m(x)},showUploadList:!1};return r.jsx(n.Spin,{spinning:c||y,tip:y?"파일 압축 중...":`파일 업로드 중... ${C}%`,children:r.jsxs("div",{className:"bwg-large-uploader-container",children:[r.jsx(n.Card,{title:r.jsx(J,{strong:!0,children:t}),extra:r.jsx(n.Upload,{...g,children:r.jsx(n.Button,{icon:r.jsx($.UploadOutlined,{}),children:"파일 선택"})}),bodyStyle:{padding:0},children:r.jsx(he,{...g,style:{border:"none",background:"transparent",padding:0},children:r.jsx("div",{className:"upload-list-container",children:a.length>0?r.jsx(n.List,{style:{textAlign:"left"},dataSource:a,renderItem:f=>{const x=f.status==="done",L=f.status==="error";let U;return x?U=r.jsx($.CheckCircleOutlined,{style:{color:"#52c41a",fontSize:14}}):L?U=r.jsx(n.Tooltip,{title:typeof f.response=="string"?f.response:"업로드 실패",children:r.jsx($.CloseCircleOutlined,{style:{color:"#ff4d4f",fontSize:14}})}):U=r.jsx($.FileTextOutlined,{style:{fontSize:14}}),r.jsx(n.List.Item,{actions:[r.jsx(J,{type:"secondary",children:xe(f.size||0)},"size"),r.jsx(n.Button,{type:"text",icon:r.jsx($.DeleteOutlined,{}),onClick:H=>{H.stopPropagation(),g.onRemove?.(f)},disabled:c||y},"delete")],children:r.jsx(n.List.Item.Meta,{avatar:U,title:r.jsx(J,{type:L?"danger":void 0,children:f.name})})},f.uid)}}):r.jsxs(n.Flex,{gap:"middle",align:"center",justify:"center",vertical:!0,style:{padding:"20px 0",minHeight:"120px"},children:[r.jsx($.InboxOutlined,{style:{fontSize:"32px",color:"#999"}}),r.jsx(J,{type:"secondary",children:"업로드할 파일을 선택하거나 이 영역으로 드래그하세요."})]})})})}),a.length>0&&r.jsxs(n.Flex,{justify:"flex-end",align:"center",gap:"large",style:{marginTop:16},children:[c&&r.jsx("div",{style:{width:"250px"},children:r.jsx(n.Progress,{percent:C,size:"small"})}),r.jsx(n.Button,{type:"primary",onClick:D,disabled:c||y||a.filter(f=>f.status!=="done").length===0,icon:r.jsx($.CloudUploadOutlined,{}),children:"일괄 업로드"})]})]})})},ye=t=>{if(typeof t=="string")return t.replace(/0/g,"_");if(Array.isArray(t))return t[0].replace(/0/g,"_");if(typeof t=="object"&&"mask"in t&&"blocks"in t){const{mask:e,blocks:l}=t;return e.split(".").map(i=>{const o=l?.[i]?.maxLength??3;return"_".repeat(o)}).join(".")}return""},Se=({itemProps:t,inputProps:e,mask:l})=>{const i=h.useRef(null),s=n.Form.useFormInstance(),o=h.useMemo(()=>ye(l),[l]);return h.useEffect(()=>{if(!i.current?.input)return;const u=typeof l=="string"||Array.isArray(l)?{mask:l}:l,a=ne(i.current.input,u);return a.on("accept",()=>{s&&t?.name&&s.setFieldValue(t.name,a.value)}),()=>{a.destroy()}},[l,s,t?.name]),r.jsx(M,{...t,children:r.jsx(n.Input,{...e,ref:i,placeholder:o})})},je=t=>{switch(t){case"year":return{format:"YYYY",mask:"0000",outputFormat:"YYYY"};case"month":return{format:"YYYY-MM",mask:"0000-00",outputFormat:"YYYYMM"};case"date":default:return{format:"YYYY-MM-DD",mask:"0000-00-00",outputFormat:"YYYYMMDD"}}},Ye=({type:t="date",itemProps:e={name:"calendar"},inputProps:l})=>{const{format:i,mask:s,outputFormat:o}=je(t),u=h.useRef(null),a=h.useRef(null),m=n.Form.useFormInstance(),[c,Y]=h.useState(!1),[y,j]=h.useState(!1),C=e?.name,[N,E]=h.useState(null);h.useEffect(()=>{if(!u.current?.input)return;const g=ne(u.current.input,{mask:s,lazy:!1});return a.current=g,g.on("accept",()=>{console.log("input :: ",g.value);const f=g.value,x=T(f,i,!0);console.log("input :: ",x),f.length===i.length&&x.isValid()&&(console.log("parsed :: ",x.format(o)),m.setFieldValue(C,x.format(o)),a.current?.updateValue(),Y(!1))}),()=>{g.destroy()}},[i,s]),h.useEffect(()=>{E(T(m.getFieldValue(C)))},[m.getFieldValue(C)]);const D=g=>{if(!g){a.current?.updateValue();return}const f=g.format(o);console.log("formatted :: ",f),a.current&&(a.current.value=f,a.current.updateValue()),j(!1)};return r.jsx(M,{...e,name:void 0,validateStatus:y?"warning":void 0,help:y?"유효하지 않은 날짜입니다":void 0,children:r.jsxs("div",{style:{position:"relative"},children:[r.jsx(n.Form.Item,{name:C,getValueProps:g=>({value:g?T(g).format(i):void 0}),normalize:g=>g?T(g).format(o):void 0,noStyle:!0,children:r.jsx(n.Input,{...l,ref:u,onFocus:()=>{Y(!c),a.current?.updateValue()},onKeyDown:g=>{g.key==="Backspace"&&Y(!0),g.key==="Tab"&&Y(!1)},allowClear:!0,placeholder:s.replace(/0/g,"_"),autoComplete:"off"})}),r.jsx(n.DatePicker,{open:c,picker:t,format:i,value:N,onChange:D,getPopupContainer:g=>g.parentElement,style:{position:"absolute",top:0,left:0,pointerEvents:"none",opacity:0,width:"100%"}})]})})},{Option:Q}=n.Select,Ce=({itemProps:t,inputProps:e})=>{const[l,i]=h.useState([]);return h.useEffect(()=>{e?.addField==="ALL"?i([{label:"전체",value:""},...e?.list||[]]):e?.addField==="NULL"?i([{label:"",value:""},...e?.list||[]]):i(e?.list||[])},[e?.list]),r.jsx(M,{...t,getValueProps:s=>s?{value:s&&s.indexOf(",")>0?s.split(","):[s]}:{value:[]},normalize:s=>s!=null&&s!=null&&s.length>0?s.toString():"",children:r.jsx(n.Select,{...e,mode:"multiple",children:l.map(s=>{const{value:o,label:u}=s;return e?.printCode?r.jsx(Q,{value:o,label:u,children:r.jsx(n.Space,{children:`[${o}] ${u}`})},o):r.jsx(Q,{value:o,label:u,children:r.jsx(n.Space,{children:`${u}`})},o)})})})},we=({itemProps:t,inputProps:e})=>{const l=s=>{let o=s.toString().split(".");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(/\B(?=(\d{3})+(?!\d))/g,",")+o[1]},i=s=>{let o=s.toString().split(".");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]};return r.jsx(M,{...t,children:r.jsx(n.InputNumber,{...e,formatter:s=>l(s),parser:s=>i(s)})})},Le=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(n.Radio.Group,{...e})}),{RangePicker:be}=n.DatePicker,ee={year:{displayFormat:"YYYY",outputFormat:"YYYY"},month:{displayFormat:"YYYY-MM",outputFormat:"YYYYMM"},date:{displayFormat:"YYYY-MM-DD",outputFormat:"YYYYMMDD"},time:{displayFormat:"HH:mm",outputFormat:"HHmm"},datetime:{displayFormat:"YYYY-MM-DD HH:mm",outputFormat:"YYYYMMDDHHmm"}},Ie=({itemProps:t,inputProps:e,type:l="date",minDate:i,maxDate:s,returnType:o="string"})=>{const{displayFormat:u,outputFormat:a}=h.useMemo(()=>ee[l],[l]),m=h.useMemo(()=>Object.values(ee).map(c=>c.outputFormat).sort((c,Y)=>{if(c.length===Y.length){if(c===a)return-1;if(Y===a)return 1}return Y.length-c.length}),[a]);return r.jsx(M,{...t,getValueProps:c=>({value:c&&c.length>0?[c[0]?T.isDayjs(c[0])?c[0]:T(c[0],m):null,c[1]?T.isDayjs(c[1])?c[1]:T(c[1],m):null]:null}),normalize:c=>c?o==="dayjs"?[c[0]??void 0,c[1]??void 0]:[c[0]?c[0].format(a):void 0,c[1]?c[1].format(a):void 0]:[void 0,void 0],children:r.jsx(be,{...e,order:!0,minDate:i?T(i,m):void 0,maxDate:s?T(s,m):void 0,picker:l==="datetime"?"date":l,showTime:e?.showTime??(l==="datetime"||l==="time"),format:u})})},te=n.Input.Search,Be=t=>{const e=n.Form.useFormInstance(),{openPopup:l}=ie.usePopupStore(),i=t.itemProps?.name||[],s=t.popupConfig||{callback(u){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)}},o={...t,placeholder:typeof t.placeholder=="string"?t.placeholder:t.placeholder?.[0]||"",onChange:u=>{i.length>1&&e.setFieldValue(i[0],""),t.onChange?.(u)},onSearch:u=>{t.popuCd?l(t.popuCd,t.popupParams,s):t.onSearch?.(u)}};return i.length>1?r.jsx(M,{...t.itemProps,name:void 0,children:r.jsxs(n.Space.Compact,{block:!0,children:[r.jsx(n.Form.Item,{name:i[0],rules:t.itemProps?.rules,style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:r.jsx(n.Input,{style:{color:"#999",backgroundColor:"#f5f5f5"},placeholder:t.placeholder?.[0]||"",readOnly:!0})}),r.jsx(n.Form.Item,{name:i[1],style:{width:"60%",marginBottom:0},children:r.jsx(te,{readOnly:t.readOnly,enterButton:r.jsx(n.Button,{icon:r.jsx($.SearchOutlined,{}),disabled:t.readOnly}),...o})})]})}):r.jsx(M,{...t.itemProps,children:r.jsx(te,{...o})})},Me=({itemProps:t,selectProps:e={options:[],allowClear:!0}})=>{const l=n.Form.useFormInstance(),i=!!l,s=h.useMemo(()=>e?.addField==="ALL"?[{label:"전체",value:""},...e?.options||[]]:e?.addField==="NULL"?[{label:"",value:""},...e?.options||[]]:e?.options||[],[e.options,e.addField]),o=m=>{e.onChange?.(m)},u={...e,allowClear:e.allowClear??!0,options:s,onChange:o,variant:e.variant},a=r.jsx(n.Select,{...u,disabled:e.disabled});return e.copyable&&!i&&console.warn("BwgSelect: copyable 기능은 Form 컨텍스트 내에서만 사용 가능합니다."),e.copyable?r.jsx(M,{...t,name:void 0,children:r.jsxs(n.Space.Compact,{block:!0,children:[r.jsx(n.Form.Item,{name:t?.name,rules:t?.rules,style:{width:"100%",marginBottom:0},validateStatus:"",help:"",children:a}),r.jsx(n.Typography.Paragraph,{copyable:{text:i&&l?.getFieldValue(t?.name)?.toString()||"",tooltips:["코드복사","코드복사됨"]},style:{margin:0,backgroundColor:"#f5f5f5",borderRadius:"4px",border:"1px solid #d9d9d9",fontSize:"12px",color:"#666",display:"flex",alignItems:"center",height:"30px",padding:"0 8px"}})]})}):r.jsx(M,{...t,children:a})},_e=({itemProps:t,inputProps:e={format:"YN"}})=>{const l=n.Form.useFormInstance(),i=(s,o)=>{e.format==="boolean"?l.setFieldValue(t?.name,s):l.setFieldValue(t?.name,s?"Y":"N"),e.onChange&&e.onChange(s,o)};return r.jsx(M,{...t,getValueProps:s=>({checked:e.format==="boolean"?!!s:s==="Y"}),normalize:s=>typeof s=="boolean"?e.format==="boolean"?s:s?"Y":"N":e.format==="boolean"?!!s:s?"Y":"N",children:r.jsx(n.Switch,{...e,onChange:(s,o)=>i(s,o)})})},{TextArea:Ne}=n.Input,De=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(Ne,{...e})}),ke=[".pdf",".xlsx",".xls",".docx",".doc",".pptx",".ppt",".hwp",".txt",".csv",".jpg",".jpeg",".png",".gif",".zip"],re={FILE:"file"},ve=({originNode:t,file:e,fileList:l,moveFile:i,onDrop:s})=>{const o=h.useRef(null),[{handlerId:u},a]=X.useDrop({accept:re.FILE,collect:y=>({handlerId:y.getHandlerId()}),hover(y,j){if(!o.current)return;const C=y.uid,N=e.uid;if(C===N)return;const E=q.findIndex(l,{uid:N}),D=q.findIndex(l,{uid:C});if(D===-1||E===-1)return;const g=o.current.getBoundingClientRect(),f=j.getClientOffset();if(!f)return;const x=(g.bottom-g.top)/2,L=f.y-g.top;D<E&&L<x||D>E&&L>x||i(C,N)},drop(){s()}}),[{isDragging:m},c]=X.useDrag({type:re.FILE,item:()=>({uid:e.uid,index:q.findIndex(l,{uid:e.uid})}),collect:y=>({isDragging:y.isDragging()})}),Y=m?0:1;return c(a(o)),r.jsx("div",{ref:o,style:{opacity:Y},"data-handler-id":u,children:t})},Ee=({itemProps:t,fileGrpKey:e,onUploadComplete:l,onFetchFilesTrxCd:i="SCMFILE00101",onSuccessTrxCd:s="SCMFILE00102",onDeleteFileTrxCd:o="SCMFILE00103",onReorderFilesTrxCd:u="SCMFILE00104",allowedExtensions:a=ke,maxFileSize:m=200,showButton:c=!0,multiple:Y=!1,newFileGrpKeyonModify:y=!1,buttonText:j="파일 선택",localOnly:C=!1,onFilesChange:N})=>{const[E,D]=h.useState([]),g=h.useRef(e),f=h.useRef([]),x=n.Form.useFormInstance(),L=()=>{if(C||f.current.length===0)return;const d=[...f.current];if(f.current=[],s){const b=d.map(S=>({crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:g.current,physFileNm:S.fileNameP,lgclFileNm:S.fileNameL,filePath:S.filePath,fileExtn:S.fileExt,fileSize:S.fileSize,mltpYn:"N"}));console.log("newFileGrpKeyonModify",y),console.log("newFileGrpKeyonModify",y?0:g.current),k.callService(s,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:y?0:g.current,oldFileGrpKey:g.current,newFileGrpKeyonModify:y,sub:b}).then(S=>{if(S?.sub&&S.sub.length>0){const p=S.sub[0].fileGrpKey;(!g.current||y)&&(g.current=p);const O=new Map;S.sub.forEach(_=>{const V=d.find(z=>z.fileNameL===_.lgclFileNm);V&&O.set(V.tempId,_)});const G=t?.name;(_=>{if(F){const V=x?.getFieldValue(G)||[],z=_(V);x?.setFieldValue(G,z)}else D(V=>_(V))})(_=>_.map(V=>{const z=O.get(V.uid);if(z){const Z=d.find(oe=>oe.tempId===V.uid);return l&&Z&&l({...Z,fileGrpKey:p,fileKey:z.fileKey}),{...V,name:z.lgclFileNm,fileGrpKey:p,fileKey:z.fileKey,uid:z.fileKey,status:"done",url:`/api/download?filePath=${z.filePath}&logicalName=${z.lgclFileNm}`}}return V}))}}).catch(S=>{console.error("업로드 후처리 서비스 호출 실패:",S),n.message.error("파일 후처리 중 오류가 발생했습니다.");const p=new Set(d.map(R=>R.tempId)),O=t?.name;(R=>{if(F){const _=x?.getFieldValue(O)||[],V=R(_);x?.setFieldValue(O,V)}else D(_=>R(_))})(R=>R.map(_=>p.has(_.uid)?{..._,status:"error",error:"후처리 실패"}:_))})}},U=h.useRef(q.debounce(L,500)).current;h.useEffect(()=>()=>{U.cancel()},[U]),h.useEffect(()=>{g.current=e},[e]),h.useEffect(()=>{C||e&&i&&k.callService(i,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e}).then(d=>{if(d?.sub){const b=d.sub.map(p=>({uid:p.fileKey,name:p.lgclFileNm,status:"done",url:`/api/download?filePath=${p.filePath}&logicalName=${p.lgclFileNm}`})),S=t?.name;F?x?.setFieldValue(S,b):D(b)}else{const b=t?.name;F?x?.setFieldValue(b,[]):D([])}}).catch(d=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",d),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")})},[e,i]);const H=(d,b)=>{const S=t?.name,p=F?x?.getFieldValue(S)||[]:E,O=q.findIndex(p,{uid:d}),G=q.findIndex(p,{uid:b});if(O<0||G<0)return;const R=[...p],[_]=R.splice(O,1);R.splice(G,0,_),F?x?.setFieldValue(S,R):D(R)},I=()=>{if(!C&&e&&u){const d=t?.name,S=(F?x?.getFieldValue(d)||[]:E).map(p=>p.uid);k.callService(u,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,reorderedFileKeys:S}).then(()=>{n.message.success("파일 순서가 성공적으로 저장되었습니다.")}).catch(p=>{console.error("파일 순서 저장 서비스 호출 실패:",p),n.message.error("파일 순서 저장 중 오류가 발생했습니다.")})}},A=d=>{const b=t?.name,S=F?x?.getFieldValue(b)||[]:E;if(!Y&&S.length>0)return n.message.error("하나의 파일만 업로드할 수 있습니다."),n.Upload.LIST_IGNORE;if(a&&a.length>0){const p=`.${d.name.split(".").pop()?.toLowerCase()}`;if(!a.includes(p))return n.message.error(`${d.name} 파일은 허용되지 않는 확장자입니다. (${a.join(", ")})`),n.Upload.LIST_IGNORE}return m&&!(d.size/1024/1024<m)?(n.message.error(`일반업로드의 최대용량은 ${m}MB입니다.`),n.Upload.LIST_IGNORE):!C},F=!!t?.name,w={name:"file",multiple:Y,action:C?void 0:"/api/upload",beforeUpload:A,showUploadList:{showRemoveIcon:c},onChange(d){const{status:b,uid:S}=d.file;if(b==="removed"){if(!C&&o)k.callService(o,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:y?0:g.current,fileKey:S,oldFileGrpKey:g.current,newFileGrpKeyonModify:y}).then(p=>{if(n.message.success("파일이 성공적으로 삭제되었습니다."),y&&(g.current=p.fileGrpKey),F){const O=t?.name;x?.setFieldValue(O,d.fileList)}else D(d.fileList);N?.(d.fileList),l?.({fileGrpKey:p.fileGrpKey})}).catch(p=>{console.error("파일 삭제 서비스 호출에 실패했습니다.",p),n.message.error("파일 삭제 중 오류가 발생했습니다.")});else{if(F){const p=t?.name;x?.setFieldValue(p,d.fileList)}else D(d.fileList);N?.(d.fileList)}return}if(F){const p=t?.name;x?.setFieldValue(p,d.fileList)}else D(d.fileList);if(N?.(d.fileList),b==="done")if(!C&&d.file.response?.success){const{uploadedFiles:p}=d.file.response;p&&Array.isArray(p)&&p.length>0&&(p.forEach(O=>{O.tempId=d.file.uid,f.current.push(O)}),U()),n.message.success(d.file.response.message||`${d.file.name} 파일이 성공적으로 업로드되었습니다.`)}else n.message.error(d.file.response?.message||`${d.file.name} 파일 업로드에 실패했습니다.`);else b==="error"&&n.message.error(d.file.response?.message||`${d.file.name} 파일 업로드 중 오류가 발생했습니다.`)},itemRender(d,b,S){const p=h.cloneElement(d,{href:b.url||void 0,title:void 0});return r.jsx(ve,{originNode:p,file:b,fileList:S,moveFile:H,onDrop:I},b.uid)}};F||(w.fileList=E);const v=d=>Array.isArray(d)?d:d&&d.fileList,B=t?.name,W=F?n.Form.useWatch?.(B,x):void 0,K=F?W||[]:E;return r.jsx(X.DndProvider,{backend:le.HTML5Backend,children:r.jsx(M,{valuePropName:"fileList",getValueFromEvent:v,...t,children:r.jsx(n.Upload,{headers:{SYSCD:__SYS_CD__},...w,listType:"picture",children:c&&(Y||K.length===0)&&r.jsx(n.Button,{icon:r.jsx($.UploadOutlined,{}),children:j})})})})};exports.BwgButton=ce;exports.BwgCheck=de;exports.BwgCheckList=ue;exports.BwgDatePicker=me;exports.BwgDownload=fe;exports.BwgForm=se;exports.BwgFormItem=M;exports.BwgInput=ge;exports.BwgLargeUploader=Fe;exports.BwgMaskedInput=Se;exports.BwgMaskedPicker=Ye;exports.BwgMultiSelect=Ce;exports.BwgNumber=we;exports.BwgRadio=Le;exports.BwgRangePicker=Ie;exports.BwgSearch=Be;exports.BwgSelect=Me;exports.BwgSwitch=_e;exports.BwgTextArea=De;exports.BwgUploader=Ee;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),n=require("antd"),h=require("react"),A=require("dayjs"),$=require("@ant-design/icons"),q=require("lodash"),k=require("../../utils/index.cjs"),ae=require("jszip"),ne=require("imask"),le=require("../../stores/index.cjs"),X=require("react-dnd"),ie=require("react-dnd-html5-backend"),ce=t=>r.jsx(n.Button,{...t,className:"bwg-btn"}),M=h.memo(({children:t,label:e,name:i,rules:l,initialValue:s,style:o,...u})=>{const a={fontWeight:"bold"},m=Array.isArray(l)&&l.some(Y=>Y.required===!0),c=()=>typeof e=="string"?r.jsxs("span",{style:a,children:[e,m&&r.jsx("span",{style:{color:"#ff4d4f",marginLeft:"4px"},children:"*"})]}):r.jsx("span",{style:a,children:e});return r.jsx(n.Form.Item,{className:"bwg-form-item",label:e?c():void 0,labelAlign:u.labelAlign||"left",name:i,rules:l,colon:!1,initialValue:s,style:o,...u,children:t})}),de=({itemProps:t,inputProps:e={format:"YN"}})=>{const i=n.Form.useFormInstance(),l=s=>{e.format==="boolean"?i.setFieldValue(t?.name,s.target.checked):i.setFieldValue(t?.name,s.target.checked?"Y":"N"),e.onChange&&e.onChange(s)};return r.jsx(M,{...t,getValueProps:s=>({checked:e.format==="boolean"?!!s:s==="Y"}),normalize:s=>typeof s=="boolean"?e.format==="boolean"?s:s?"Y":"N":e.format==="boolean"?!!s:s?"Y":"N",children:r.jsx(n.Checkbox,{...e,onChange:l,children:e?.title})})},ue=({itemProps:t,inputProps:e})=>{const i=n.Form.useFormInstance(),[l,s]=h.useState(t?.initialValue??[]),[o,u]=h.useState([]),a=o.length>0&&o.length==l?.length,m=l?.length>0&&l.length<o.length;h.useEffect(()=>{u(c(e?.options))},[e?.options]),h.useEffect(()=>{s(l)},[l]);const c=j=>{const C=[];return(j||[]).map((N,E)=>{C.push(N.value)}),C},Y=j=>{s(j.target.checked?o:[]),i.setFieldValue(t?.name,j.target.checked?o:[])},y=j=>{s(j),i.setFieldValue(t?.name,j),e?.onChange&&typeof e?.onChange=="function"&&e?.onChange(j)};return r.jsx(M,{...t,children:r.jsxs(n.ConfigProvider,{theme:{components:{Checkbox:{colorPrimary:"var(--check-primary)",colorPrimaryBorder:"var(--check-primary)",colorPrimaryHover:"var(--check-primary-active)"}}},children:[e?.allCheck&&r.jsx(n.Checkbox,{indeterminate:m,checked:a,onChange:Y,children:"전체선택"}),r.jsx(n.Checkbox.Group,{options:e?.options,value:l,onChange:y})]})})},P={year:{displayFormat:"YYYY",outputFormat:"YYYY"},month:{displayFormat:"YYYY-MM",outputFormat:"YYYYMM"},date:{displayFormat:"YYYY-MM-DD",outputFormat:"YYYYMMDD"},time:{displayFormat:"HH:mm",outputFormat:"HHmm"},datetime:{displayFormat:"YYYY-MM-DD HH:mm",outputFormat:"YYYYMMDDHHmm"}},me=({itemProps:t,inputProps:e,type:i="date",returnType:l="string"})=>{const{displayFormat:s,outputFormat:o}=h.useMemo(()=>P[i],[i]),u=h.useMemo(()=>Object.values(P).map(a=>a.outputFormat).sort((a,m)=>{if(a.length===m.length){if(a===o)return-1;if(m===o)return 1}return m.length-a.length}),[o]);return r.jsx(M,{...t,getValueProps:a=>({value:a?A.isDayjs(a)?a:A(a,u):null}),normalize:a=>a?l==="dayjs"?a:a.format(o):null,children:r.jsx(n.DatePicker,{...e,picker:i==="datetime"?"date":i,showTime:e?.showTime??(i==="datetime"||i==="time"),format:s})})},fe=({fileGrpKey:t,onFetchFilesTrxCd:e="SCMFILE00101",readOnly:i=!1,sysCd:l=__SYS_CD__})=>{const[s,o]=h.useState([]);h.useEffect(()=>{t&&e?l!=__SYS_CD__?k.callService_SYSCD(l,e,{crprCd:k.getUserInfo()?.crprCd,sysCd:l,fileGrpKey:t}).then(a=>{if(a?.sub){const m=a.sub.map(c=>({uid:c.fileKey,name:c.lgclFileNm,filePath:c.filePath}));o(m)}}).catch(a=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",a),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")}):k.callService(e,{crprCd:k.getUserInfo()?.crprCd,sysCd:l,fileGrpKey:t}).then(a=>{if(a?.sub){const m=a.sub.map(c=>({uid:c.fileKey,name:c.lgclFileNm,filePath:c.filePath}));o(m)}}).catch(a=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",a),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")}):o([])},[t,e]);const u=async a=>{try{let m;l!=__SYS_CD__?m="/api/download/"+l:m="/api/download";const c=await fetch(m,{method:"POST",headers:{SYSCD:__SYS_CD__,"Content-Type":"application/json"},body:JSON.stringify({filePath:a.filePath,logicalName:a.name,fileKey:a.uid})});if(!c.ok){const N=(await c.json().catch(()=>null))?.message||"파일 다운로드에 실패했습니다.";throw new Error(N)}const Y=await c.blob(),y=window.URL.createObjectURL(Y),j=document.createElement("a");j.href=y,j.setAttribute("download",a.name),document.body.appendChild(j),j.click(),document.body.removeChild(j),window.URL.revokeObjectURL(y)}catch(m){console.error(m),n.message.error(m.message||"파일을 다운로드하는 중 오류가 발생했습니다.")}};return q.isEmpty(s)?null:r.jsx(n.Card,{title:"파일 목록",children:r.jsx(n.List,{dataSource:s,renderItem:a=>r.jsx(n.List.Item,{actions:i?[]:[r.jsx(n.Button,{type:"text",icon:r.jsx($.DownloadOutlined,{}),onClick:()=>u(a)},"download")],children:r.jsx(n.List.Item.Meta,{avatar:r.jsx($.PaperClipOutlined,{}),title:a.name})})})})},se=h.forwardRef(({children:t,labelCol:e,style:i,className:l,...s},o)=>r.jsx(n.ConfigProvider,{form:{validateMessages:{required:"'${label}을(를) 입력해주세요.'"}},children:r.jsx(n.Form,{ref:o,...s,requiredMark:!1,labelCol:e||{flex:"100px"},style:{padding:"10px",...i},className:`bwg-form ${l??""}`,children:t})}));se.displayName="BwgForm";const ge=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(n.Input,{...e})}),{Text:J}=n.Typography,{Dragger:he}=n.Upload,pe=[".pdf",".xlsx",".xls",".docx",".doc",".pptx",".ppt",".hwp",".txt",".csv",".jpg",".jpeg",".png",".gif",".zip"],xe=(t,e=2)=>{if(t===0)return"0 Bytes";const i=1024,l=e<0?0:e,s=["Bytes","KB","MB","GB","TB"],o=Math.floor(Math.log(t)/Math.log(i));return parseFloat((t/Math.pow(i,o)).toFixed(l))+" "+s[o]},Fe=({title:t="첨부파일",fileGrpKey:e,onUploadComplete:i,onSuccessTrxCd:l="SCMFILE00102",anotherServiceTrxCd:s="SCMFILE00105",allowedExtensions:o=pe,maxFileSize:u=2048})=>{const[a,m]=h.useState([]),[c,Y]=h.useState(!1),[y,j]=h.useState(!1),[C,N]=h.useState(0),E=f=>{if(o&&o.length>0){const L=(U=>{const H=U.lastIndexOf(".");return H===-1?"":U.substring(H).toLowerCase()})(f.name);if(!o.includes(L))return n.message.error(`${f.name} 파일은 허용되지 않는 확장자입니다. (${o.join(", ")}만 가능)`),!1}return!0},D=async()=>{const f=a.filter(I=>I.status!=="done"),x=f.reduce((I,T)=>I+(T.size||0),0),L=2*1024*1024*1024;if(x>L){n.notification.error({message:"업로드 용량 초과",description:"한 번에 업로드할 수 있는 총 파일 용량은 2GB를 초과할 수 없습니다."});return}if(f.length===0){n.message.warning("업로드할 파일이 없거나 모든 파일이 이미 업로드되었습니다.");return}j(!0);let U;try{const I=new ae;f.forEach(T=>{T.originFileObj&&I.file(T.name,T.originFileObj)}),U=await I.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9}})}catch(I){j(!1),n.message.error("파일을 압축하는 중 오류가 발생했습니다."),console.error("Zipping error:",I);return}j(!1);const H=new FormData;H.append("file",U,"upload.zip"),Y(!0),N(0);try{const I=await new Promise((F,w)=>{const v=new XMLHttpRequest;v.open("POST","/api/upload-large",!0),v.upload.onprogress=B=>{if(B.lengthComputable){const W=Math.round(B.loaded/B.total*100);N(W)}},v.onload=()=>{if(v.status>=200&&v.status<300)try{const B=JSON.parse(v.responseText);B.success?F(B):w(new Error(B.message||"파일 업로드에 실패했습니다."))}catch{w(new Error("잘못된 서버 응답입니다."))}else try{const B=JSON.parse(v.responseText);w(new Error(B.message||`서버 오류: ${v.status}`))}catch{w(new Error(`서버 오류: ${v.status}`))}},v.onerror=()=>{w(new Error("네트워크 오류가 발생했습니다."))},v.send(H)});n.message.success(I.message||"압축 파일이 성공적으로 업로드되었습니다.");const T=a.map(F=>f.find(w=>w.uid===F.uid)?{...F,status:"done"}:F);if(m(T),l&&I.uploadedFiles&&Array.isArray(I.uploadedFiles)){const F=k.getUserInfo();I.uploadedFiles.forEach(w=>{const v={crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,sub:[{crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,physFileNm:w.fileNameP,lgclFileNm:w.fileNameL,filePath:w.filePath,fileExtn:w.fileExt,fileSize:w.fileSize,mltpYn:"Y"}]};k.callService(l,v).then(B=>{const W=a.map(K=>({crprCd:F?.crprCd,sysCd:__SYS_CD__,fileGrpKey:B.sub[0].fileGrpKey,fileKey:B.sub[0].fileKey,lgclFileNm:K.name,fileSize:K.size,fileExtn:K.name.split(".").pop(),fileType:K.type}));k.callService(s,{sub:W})}).catch(B=>{console.error("후처리 서비스 호출 실패:",B),n.message.error(`${w.fileNameL} 파일의 후처리 작업에 실패했습니다.`)}),i&&i({fileNameP:w.fileNameP,fileNameL:w.fileNameL})})}}catch(I){n.message.error(I.message||"파일 업로드 중 오류가 발생했습니다.");const T=a.map(F=>f.find(w=>w.uid===F.uid)?{...F,status:"error",response:I.message||"파일 업로드 중 오류가 발생했습니다."}:F);m(T)}finally{Y(!1)}},g={multiple:!0,fileList:a,beforeUpload:f=>E(f)?u&&f.size>=u*1024*1024?(n.message.error(`대용량 첨부 파일 최대 크기는 ${(u/1024).toFixed(1)}GB입니다.`),n.Upload.LIST_IGNORE):!1:n.Upload.LIST_IGNORE,onChange:({fileList:f})=>{const x=new Map(a.map(L=>[L.uid,L]));f.forEach(L=>{x.set(L.uid,L)}),m(Array.from(x.values()))},onRemove:f=>{const x=a.filter(L=>L.uid!==f.uid);m(x)},showUploadList:!1};return r.jsx(n.Spin,{spinning:c||y,tip:y?"파일 압축 중...":`파일 업로드 중... ${C}%`,children:r.jsxs("div",{className:"bwg-large-uploader-container",children:[r.jsx(n.Card,{title:r.jsx(J,{strong:!0,children:t}),extra:r.jsx(n.Upload,{...g,children:r.jsx(n.Button,{icon:r.jsx($.UploadOutlined,{}),children:"파일 선택"})}),bodyStyle:{padding:0},children:r.jsx(he,{...g,style:{border:"none",background:"transparent",padding:0},children:r.jsx("div",{className:"upload-list-container",children:a.length>0?r.jsx(n.List,{style:{textAlign:"left"},dataSource:a,renderItem:f=>{const x=f.status==="done",L=f.status==="error";let U;return x?U=r.jsx($.CheckCircleOutlined,{style:{color:"#52c41a",fontSize:14}}):L?U=r.jsx(n.Tooltip,{title:typeof f.response=="string"?f.response:"업로드 실패",children:r.jsx($.CloseCircleOutlined,{style:{color:"#ff4d4f",fontSize:14}})}):U=r.jsx($.FileTextOutlined,{style:{fontSize:14}}),r.jsx(n.List.Item,{actions:[r.jsx(J,{type:"secondary",children:xe(f.size||0)},"size"),r.jsx(n.Button,{type:"text",icon:r.jsx($.DeleteOutlined,{}),onClick:H=>{H.stopPropagation(),g.onRemove?.(f)},disabled:c||y},"delete")],children:r.jsx(n.List.Item.Meta,{avatar:U,title:r.jsx(J,{type:L?"danger":void 0,children:f.name})})},f.uid)}}):r.jsxs(n.Flex,{gap:"middle",align:"center",justify:"center",vertical:!0,style:{padding:"20px 0",minHeight:"120px"},children:[r.jsx($.InboxOutlined,{style:{fontSize:"32px",color:"#999"}}),r.jsx(J,{type:"secondary",children:"업로드할 파일을 선택하거나 이 영역으로 드래그하세요."})]})})})}),a.length>0&&r.jsxs(n.Flex,{justify:"flex-end",align:"center",gap:"large",style:{marginTop:16},children:[c&&r.jsx("div",{style:{width:"250px"},children:r.jsx(n.Progress,{percent:C,size:"small"})}),r.jsx(n.Button,{type:"primary",onClick:D,disabled:c||y||a.filter(f=>f.status!=="done").length===0,icon:r.jsx($.CloudUploadOutlined,{}),children:"일괄 업로드"})]})]})})},ye=t=>{if(typeof t=="string")return t.replace(/0/g,"_");if(Array.isArray(t))return t[0].replace(/0/g,"_");if(typeof t=="object"&&"mask"in t&&"blocks"in t){const{mask:e,blocks:i}=t;return e.split(".").map(l=>{const o=i?.[l]?.maxLength??3;return"_".repeat(o)}).join(".")}return""},Se=({itemProps:t,inputProps:e,mask:i})=>{const l=h.useRef(null),s=n.Form.useFormInstance(),o=h.useMemo(()=>ye(i),[i]);return h.useEffect(()=>{if(!l.current?.input)return;const u=typeof i=="string"||Array.isArray(i)?{mask:i}:i,a=ne(l.current.input,u);return a.on("accept",()=>{s&&t?.name&&s.setFieldValue(t.name,a.value)}),()=>{a.destroy()}},[i,s,t?.name]),r.jsx(M,{...t,children:r.jsx(n.Input,{...e,ref:l,placeholder:o})})},je=t=>{switch(t){case"year":return{format:"YYYY",mask:"0000",outputFormat:"YYYY"};case"month":return{format:"YYYY-MM",mask:"0000-00",outputFormat:"YYYYMM"};case"date":default:return{format:"YYYY-MM-DD",mask:"0000-00-00",outputFormat:"YYYYMMDD"}}},Ye=({type:t="date",itemProps:e={name:"calendar"},inputProps:i})=>{const{format:l,mask:s,outputFormat:o}=je(t),u=h.useRef(null),a=h.useRef(null),m=n.Form.useFormInstance(),[c,Y]=h.useState(!1),[y,j]=h.useState(!1),C=e?.name,[N,E]=h.useState(null);h.useEffect(()=>{if(!u.current?.input)return;const g=ne(u.current.input,{mask:s,lazy:!1});return a.current=g,g.on("accept",()=>{console.log("input :: ",g.value);const f=g.value,x=A(f,l,!0);console.log("input :: ",x),f.length===l.length&&x.isValid()&&(console.log("parsed :: ",x.format(o)),m.setFieldValue(C,x.format(o)),a.current?.updateValue(),Y(!1))}),()=>{g.destroy()}},[l,s]),h.useEffect(()=>{E(A(m.getFieldValue(C)))},[m.getFieldValue(C)]);const D=g=>{if(!g){a.current?.updateValue();return}const f=g.format(o);console.log("formatted :: ",f),a.current&&(a.current.value=f,a.current.updateValue()),j(!1)};return r.jsx(M,{...e,name:void 0,validateStatus:y?"warning":void 0,help:y?"유효하지 않은 날짜입니다":void 0,children:r.jsxs("div",{style:{position:"relative"},children:[r.jsx(n.Form.Item,{name:C,getValueProps:g=>({value:g?A(g).format(l):void 0}),normalize:g=>g?A(g).format(o):void 0,noStyle:!0,children:r.jsx(n.Input,{...i,ref:u,onFocus:()=>{Y(!c),a.current?.updateValue()},onKeyDown:g=>{g.key==="Backspace"&&Y(!0),g.key==="Tab"&&Y(!1)},allowClear:!0,placeholder:s.replace(/0/g,"_"),autoComplete:"off"})}),r.jsx(n.DatePicker,{open:c,picker:t,format:l,value:N,onChange:D,getPopupContainer:g=>g.parentElement,style:{position:"absolute",top:0,left:0,pointerEvents:"none",opacity:0,width:"100%"}})]})})},{Option:Q}=n.Select,Ce=({itemProps:t,inputProps:e})=>{const[i,l]=h.useState([]);return h.useEffect(()=>{e?.addField==="ALL"?l([{label:"전체",value:""},...e?.list||[]]):e?.addField==="NULL"?l([{label:"",value:""},...e?.list||[]]):l(e?.list||[])},[e?.list]),r.jsx(M,{...t,getValueProps:s=>s?{value:s&&s.indexOf(",")>0?s.split(","):[s]}:{value:[]},normalize:s=>s!=null&&s!=null&&s.length>0?s.toString():"",children:r.jsx(n.Select,{...e,mode:"multiple",children:i.map(s=>{const{value:o,label:u}=s;return e?.printCode?r.jsx(Q,{value:o,label:u,children:r.jsx(n.Space,{children:`[${o}] ${u}`})},o):r.jsx(Q,{value:o,label:u,children:r.jsx(n.Space,{children:`${u}`})},o)})})})},we=({itemProps:t,inputProps:e})=>{const i=s=>{let o=s.toString().split(".");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(/\B(?=(\d{3})+(?!\d))/g,",")+o[1]},l=s=>{let o=s.toString().split(".");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]};return r.jsx(M,{...t,children:r.jsx(n.InputNumber,{...e,formatter:s=>i(s),parser:s=>l(s)})})},Le=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(n.Radio.Group,{...e})}),{RangePicker:be}=n.DatePicker,ee={year:{displayFormat:"YYYY",outputFormat:"YYYY"},month:{displayFormat:"YYYY-MM",outputFormat:"YYYYMM"},date:{displayFormat:"YYYY-MM-DD",outputFormat:"YYYYMMDD"},time:{displayFormat:"HH:mm",outputFormat:"HHmm"},datetime:{displayFormat:"YYYY-MM-DD HH:mm",outputFormat:"YYYYMMDDHHmm"}},Ie=({itemProps:t,inputProps:e,type:i="date",minDate:l,maxDate:s,returnType:o="string"})=>{const{displayFormat:u,outputFormat:a}=h.useMemo(()=>ee[i],[i]),m=h.useMemo(()=>Object.values(ee).map(c=>c.outputFormat).sort((c,Y)=>{if(c.length===Y.length){if(c===a)return-1;if(Y===a)return 1}return Y.length-c.length}),[a]);return r.jsx(M,{...t,getValueProps:c=>({value:c&&c.length>0?[c[0]?A.isDayjs(c[0])?c[0]:A(c[0],m):null,c[1]?A.isDayjs(c[1])?c[1]:A(c[1],m):null]:null}),normalize:c=>c?o==="dayjs"?[c[0]??void 0,c[1]??void 0]:[c[0]?c[0].format(a):void 0,c[1]?c[1].format(a):void 0]:[void 0,void 0],children:r.jsx(be,{...e,order:!0,minDate:l?A(l,m):void 0,maxDate:s?A(s,m):void 0,picker:i==="datetime"?"date":i,showTime:e?.showTime??(i==="datetime"||i==="time"),format:u})})},te=n.Input.Search,Be=t=>{const e=n.Form.useFormInstance(),{openPopup:i}=le.usePopupStore(),l=t.itemProps?.name||[],s=t.popupConfig||{callback(u){console.log("callback data :: ",u),l.length>1?(e.setFieldValue(l[0],u.code),e.setFieldValue(l[1],u.name)):e.setFieldValue(l,u.code)}},o={...t,placeholder:typeof t.placeholder=="string"?t.placeholder:t.placeholder?.[0]||"",onChange:u=>{l.length>1&&e.setFieldValue(l[0],""),t.onChange?.(u)},onSearch:u=>{t.popuCd?i(t.popuCd,t.popupParams,s):t.onSearch?.(u)}};return l.length>1?r.jsx(M,{...t.itemProps,name:void 0,children:r.jsxs(n.Space.Compact,{block:!0,children:[r.jsx(n.Form.Item,{name:l[0],rules:t.itemProps?.rules,style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:r.jsx(n.Input,{style:{color:"#999",backgroundColor:"#f5f5f5"},placeholder:t.placeholder?.[0]||"",readOnly:!0})}),r.jsx(n.Form.Item,{name:l[1],style:{width:"60%",marginBottom:0},children:r.jsx(te,{readOnly:t.readOnly,enterButton:r.jsx(n.Button,{icon:r.jsx($.SearchOutlined,{}),disabled:t.readOnly}),...o})})]})}):r.jsx(M,{...t.itemProps,children:r.jsx(te,{...o})})},Me=({itemProps:t,selectProps:e={options:[],allowClear:!0}})=>{const i=n.Form.useFormInstance(),l=!!i,s=h.useMemo(()=>e?.addField==="ALL"?[{label:"전체",value:""},...e?.options||[]]:e?.addField==="NULL"?[{label:"",value:""},...e?.options||[]]:e?.options||[],[e.options,e.addField]),o=m=>{e.onChange?.(m)},u={...e,allowClear:e.allowClear??!0,options:s,onChange:o,variant:e.variant},a=r.jsx(n.Select,{...u,disabled:e.disabled});return e.copyable&&!l&&console.warn("BwgSelect: copyable 기능은 Form 컨텍스트 내에서만 사용 가능합니다."),e.copyable?r.jsx(M,{...t,name:void 0,children:r.jsxs(n.Space.Compact,{block:!0,children:[r.jsx(n.Form.Item,{name:t?.name,rules:t?.rules,style:{width:"100%",marginBottom:0},validateStatus:"",help:"",children:a}),r.jsx(n.Typography.Paragraph,{copyable:{text:l&&i?.getFieldValue(t?.name)?.toString()||"",tooltips:["코드복사","코드복사됨"]},style:{margin:0,backgroundColor:"#f5f5f5",borderRadius:"4px",border:"1px solid #d9d9d9",fontSize:"12px",color:"#666",display:"flex",alignItems:"center",height:"30px",padding:"0 8px"}})]})}):r.jsx(M,{...t,children:a})},_e=({itemProps:t,inputProps:e={format:"YN"}})=>{const i=n.Form.useFormInstance(),l=(s,o)=>{e.format==="boolean"?i.setFieldValue(t?.name,s):i.setFieldValue(t?.name,s?"Y":"N"),e.onChange&&e.onChange(s,o)};return r.jsx(M,{...t,getValueProps:s=>({checked:e.format==="boolean"?!!s:s==="Y"}),normalize:s=>typeof s=="boolean"?e.format==="boolean"?s:s?"Y":"N":e.format==="boolean"?!!s:s?"Y":"N",children:r.jsx(n.Switch,{...e,onChange:(s,o)=>l(s,o)})})},{TextArea:Ne}=n.Input,De=({itemProps:t,inputProps:e})=>r.jsx(M,{...t,children:r.jsx(Ne,{...e})}),ke=[".pdf",".xlsx",".xls",".docx",".doc",".pptx",".ppt",".hwp",".txt",".csv",".jpg",".jpeg",".png",".gif",".zip"],re={FILE:"file"},ve=({originNode:t,file:e,fileList:i,moveFile:l,onDrop:s})=>{const o=h.useRef(null),[{handlerId:u},a]=X.useDrop({accept:re.FILE,collect:y=>({handlerId:y.getHandlerId()}),hover(y,j){if(!o.current)return;const C=y.uid,N=e.uid;if(C===N)return;const E=q.findIndex(i,{uid:N}),D=q.findIndex(i,{uid:C});if(D===-1||E===-1)return;const g=o.current.getBoundingClientRect(),f=j.getClientOffset();if(!f)return;const x=(g.bottom-g.top)/2,L=f.y-g.top;D<E&&L<x||D>E&&L>x||l(C,N)},drop(){s()}}),[{isDragging:m},c]=X.useDrag({type:re.FILE,item:()=>({uid:e.uid,index:q.findIndex(i,{uid:e.uid})}),collect:y=>({isDragging:y.isDragging()})}),Y=m?0:1;return c(a(o)),r.jsx("div",{ref:o,style:{opacity:Y},"data-handler-id":u,children:t})},Ee=({itemProps:t,fileGrpKey:e,onUploadComplete:i,onFetchFilesTrxCd:l="SCMFILE00101",onSuccessTrxCd:s="SCMFILE00102",onDeleteFileTrxCd:o="SCMFILE00103",onReorderFilesTrxCd:u="SCMFILE00104",allowedExtensions:a=ke,maxFileSize:m=200,showButton:c=!0,multiple:Y=!1,newFileGrpKeyonModify:y=!1,buttonText:j="파일 선택",localOnly:C=!1,onFilesChange:N})=>{const[E,D]=h.useState([]),g=h.useRef(e),f=h.useRef([]),x=n.Form.useFormInstance(),L=()=>{if(C||f.current.length===0)return;const d=[...f.current];if(f.current=[],s){const b=d.map(S=>({crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:g.current,physFileNm:S.fileNameP,lgclFileNm:S.fileNameL,filePath:S.filePath,fileExtn:S.fileExt,fileSize:S.fileSize,mltpYn:"N"}));console.log("newFileGrpKeyonModify",y),console.log("newFileGrpKeyonModify",y?0:g.current),k.callService(s,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:y?0:g.current,oldFileGrpKey:g.current,newFileGrpKeyonModify:y,sub:b}).then(S=>{if(S?.sub&&S.sub.length>0){const p=S.sub[0].fileGrpKey;(!g.current||y)&&(g.current=p);const O=new Map;S.sub.forEach(_=>{const V=d.find(z=>z.fileNameL===_.lgclFileNm);V&&O.set(V.tempId,_)});const G=t?.name;(_=>{if(F){const V=x?.getFieldValue(G)||[],z=_(V);x?.setFieldValue(G,z)}else D(V=>_(V))})(_=>_.map(V=>{const z=O.get(V.uid);if(z){const Z=d.find(oe=>oe.tempId===V.uid);return i&&Z&&i({...Z,fileGrpKey:p,fileKey:z.fileKey}),{...V,name:z.lgclFileNm,fileGrpKey:p,fileKey:z.fileKey,uid:z.fileKey,status:"done",url:`/api/download?filePath=${z.filePath}&logicalName=${z.lgclFileNm}`}}return V}))}}).catch(S=>{console.error("업로드 후처리 서비스 호출 실패:",S),n.message.error("파일 후처리 중 오류가 발생했습니다.");const p=new Set(d.map(R=>R.tempId)),O=t?.name;(R=>{if(F){const _=x?.getFieldValue(O)||[],V=R(_);x?.setFieldValue(O,V)}else D(_=>R(_))})(R=>R.map(_=>p.has(_.uid)?{..._,status:"error",error:"후처리 실패"}:_))})}},U=h.useRef(q.debounce(L,500)).current;h.useEffect(()=>()=>{U.cancel()},[U]),h.useEffect(()=>{g.current=e},[e]),h.useEffect(()=>{C||e&&l&&k.callService(l,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e}).then(d=>{if(d?.sub){const b=d.sub.map(p=>({uid:p.fileKey,name:p.lgclFileNm,status:"done",url:`/api/download?filePath=${p.filePath}&logicalName=${p.lgclFileNm}`})),S=t?.name;F?x?.setFieldValue(S,b):D(b)}else{const b=t?.name;F?x?.setFieldValue(b,[]):D([])}}).catch(d=>{console.error("파일 목록 조회 서비스 호출에 실패했습니다.",d),n.message.error("파일 목록을 불러오는 중 오류가 발생했습니다.")})},[e,l]);const H=(d,b)=>{const S=t?.name,p=F?x?.getFieldValue(S)||[]:E,O=q.findIndex(p,{uid:d}),G=q.findIndex(p,{uid:b});if(O<0||G<0)return;const R=[...p],[_]=R.splice(O,1);R.splice(G,0,_),F?x?.setFieldValue(S,R):D(R)},I=()=>{if(!C&&e&&u){const d=t?.name,S=(F?x?.getFieldValue(d)||[]:E).map(p=>p.uid);k.callService(u,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:e,reorderedFileKeys:S}).then(()=>{n.message.success("파일 순서가 성공적으로 저장되었습니다.")}).catch(p=>{console.error("파일 순서 저장 서비스 호출 실패:",p),n.message.error("파일 순서 저장 중 오류가 발생했습니다.")})}},T=d=>{const b=t?.name,S=F?x?.getFieldValue(b)||[]:E;if(!Y&&S.length>0)return n.message.error("하나의 파일만 업로드할 수 있습니다."),n.Upload.LIST_IGNORE;if(a&&a.length>0){const p=`.${d.name.split(".").pop()?.toLowerCase()}`;if(!a.includes(p))return n.message.error(`${d.name} 파일은 허용되지 않는 확장자입니다. (${a.join(", ")})`),n.Upload.LIST_IGNORE}return m&&!(d.size/1024/1024<m)?(n.message.error(`일반업로드의 최대용량은 ${m}MB입니다.`),n.Upload.LIST_IGNORE):!C},F=!!t?.name,w={name:"file",multiple:Y,action:C?void 0:"/api/upload",beforeUpload:T,showUploadList:{showRemoveIcon:c},onChange(d){const{status:b,uid:S}=d.file;if(b==="removed"){if(!C&&o)k.callService(o,{crprCd:k.getUserInfo()?.crprCd,sysCd:__SYS_CD__,fileGrpKey:y?0:g.current,fileKey:S,oldFileGrpKey:g.current,newFileGrpKeyonModify:y}).then(p=>{if(n.message.success("파일이 성공적으로 삭제되었습니다."),y&&(g.current=p.fileGrpKey),F){const O=t?.name;x?.setFieldValue(O,d.fileList)}else D(d.fileList);N?.(d.fileList),i?.({fileGrpKey:p.fileGrpKey})}).catch(p=>{console.error("파일 삭제 서비스 호출에 실패했습니다.",p),n.message.error("파일 삭제 중 오류가 발생했습니다.")});else{if(F){const p=t?.name;x?.setFieldValue(p,d.fileList)}else D(d.fileList);N?.(d.fileList)}return}if(F){const p=t?.name;x?.setFieldValue(p,d.fileList)}else D(d.fileList);if(N?.(d.fileList),b==="done")if(!C&&d.file.response?.success){const{uploadedFiles:p}=d.file.response;p&&Array.isArray(p)&&p.length>0&&(p.forEach(O=>{O.tempId=d.file.uid,f.current.push(O)}),U()),n.message.success(d.file.response.message||`${d.file.name} 파일이 성공적으로 업로드되었습니다.`)}else n.message.error(d.file.response?.message||`${d.file.name} 파일 업로드에 실패했습니다.`);else b==="error"&&n.message.error(d.file.response?.message||`${d.file.name} 파일 업로드 중 오류가 발생했습니다.`)},itemRender(d,b,S){const p=h.cloneElement(d,{href:b.url||void 0,title:void 0});return r.jsx(ve,{originNode:p,file:b,fileList:S,moveFile:H,onDrop:I},b.uid)}};F||(w.fileList=E);const v=d=>Array.isArray(d)?d:d&&d.fileList,B=t?.name,W=F?n.Form.useWatch?.(B,x):void 0,K=F?W||[]:E;return r.jsx(X.DndProvider,{backend:ie.HTML5Backend,children:r.jsx(M,{valuePropName:"fileList",getValueFromEvent:v,...t,children:r.jsx(n.Upload,{headers:{SYSCD:__SYS_CD__},...w,listType:"picture",children:c&&(Y||K.length===0)&&r.jsx(n.Button,{icon:r.jsx($.UploadOutlined,{}),children:j})})})})};exports.BwgButton=ce;exports.BwgCheck=de;exports.BwgCheckList=ue;exports.BwgDatePicker=me;exports.BwgDownload=fe;exports.BwgForm=se;exports.BwgFormItem=M;exports.BwgInput=ge;exports.BwgLargeUploader=Fe;exports.BwgMaskedInput=Se;exports.BwgMaskedPicker=Ye;exports.BwgMultiSelect=Ce;exports.BwgNumber=we;exports.BwgRadio=Le;exports.BwgRangePicker=Ie;exports.BwgSearch=Be;exports.BwgSelect=Me;exports.BwgSwitch=_e;exports.BwgTextArea=De;exports.BwgUploader=Ee;