@bwg-ui/core 1.0.0 → 1.1.1

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 (83) hide show
  1. package/dist/chunks/AuthContext-CXng9fj0.cjs +1 -0
  2. package/dist/chunks/AuthContext-Ei2P-z4d.js +52 -0
  3. package/dist/chunks/BwgLargeUploader-BOf905_l.cjs +2 -0
  4. package/dist/chunks/BwgLargeUploader-BeI8oV8y.js +3315 -0
  5. package/dist/chunks/FileUtils-BcnoJ2zn.js +140 -0
  6. package/dist/chunks/FileUtils-CCBueCSG.cjs +1 -0
  7. package/dist/chunks/PublicLayout-BiTPwkVq.cjs +35 -0
  8. package/dist/chunks/PublicLayout-g9WMtoZ0.js +138 -0
  9. package/dist/chunks/{QuickServiceToggle-y7esp1kp.js → SSOHandler-DVa4JKKb.js} +14831 -14630
  10. package/dist/chunks/SSOHandler-DiwKoTdN.cjs +183 -0
  11. package/dist/chunks/ScreenProtectContext-ofv2QgMp.cjs +1 -0
  12. package/dist/chunks/ScreenProtectContext-zByHldrr.js +114 -0
  13. package/dist/chunks/SearchBoxContext-B1nxG-Wd.cjs +1 -0
  14. package/dist/chunks/{ServiceCodeContext-CDZMr3Mm.js → SearchBoxContext-DhKP2pQj.js} +39 -39
  15. package/dist/chunks/{UtilsContext-B16Gh9LL.cjs → UtilsContext-CLJwXO1Q.cjs} +1 -1
  16. package/dist/chunks/{UtilsContext-BbfZYiMR.js → UtilsContext-CwVwmfrg.js} +9 -9
  17. package/dist/chunks/{codeStore-bxk_q1sl.js → codeStore-9alVvK1W.js} +1 -1
  18. package/dist/chunks/{codeStore-Dt6j826J.cjs → codeStore-B_4WPxpS.cjs} +1 -1
  19. package/dist/chunks/envUtils-C9Gf5aek.js +29 -0
  20. package/dist/chunks/envUtils-CduTHoHu.cjs +1 -0
  21. package/dist/chunks/menuStore-BwLORbDu.cjs +1 -0
  22. package/dist/chunks/{favoriteStore-CguRSEcH.js → menuStore-DXn19Xnr.js} +136 -123
  23. package/dist/chunks/{popupStore-CVD8SPTa.cjs → popupStore-D_-Wpcao.cjs} +1 -1
  24. package/dist/chunks/{popupStore-Dp_fqtim.js → popupStore-JBIRLYTL.js} +1 -1
  25. package/dist/chunks/{serviceConfig-BJBsdee_.js → serviceConfig-4iBLfLzF.js} +176 -205
  26. package/dist/chunks/serviceConfig-B5UJqk4b.cjs +2 -0
  27. package/dist/components/common/BwgCmptArea.d.ts +84 -6
  28. package/dist/components/common/BwgCol.d.ts +19 -0
  29. package/dist/components/common/BwgConfigProvider.d.ts +2 -1
  30. package/dist/components/common/BwgGrid.d.ts +9 -4
  31. package/dist/components/common/BwgInfoArea.d.ts +2 -1
  32. package/dist/components/common/BwgRow.d.ts +19 -0
  33. package/dist/components/common/BwgTitleBox.d.ts +5 -1
  34. package/dist/components/common/BwgView.d.ts +2 -13
  35. package/dist/components/common/SSOHandler.d.ts +2 -0
  36. package/dist/components/common/SearchBox.d.ts +59 -7
  37. package/dist/components/common/index.cjs +1 -1
  38. package/dist/components/common/index.d.ts +19 -16
  39. package/dist/components/common/index.js +20 -17
  40. package/dist/components/core/BwgLargeUploader.d.ts +4 -1
  41. package/dist/components/core/BwgSearch.d.ts +4 -0
  42. package/dist/components/core/BwgUploader.d.ts +30 -7
  43. package/dist/components/core/index.cjs +1 -1
  44. package/dist/components/core/index.js +1 -1
  45. package/dist/components/layout/ProgressOverlay.d.ts +10 -0
  46. package/dist/components/layout/ProtectLayout.d.ts +6 -0
  47. package/dist/components/layout/PublicLayout.d.ts +6 -0
  48. package/dist/components/layout/index.cjs +1 -0
  49. package/dist/components/layout/index.d.ts +3 -0
  50. package/dist/components/layout/index.js +6 -0
  51. package/dist/index.cjs +1 -1
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.js +304 -289
  54. package/dist/provider/contexts/AuthContext.d.ts +12 -0
  55. package/dist/provider/contexts/ScreenProtectContext.d.ts +21 -0
  56. package/dist/provider/contexts/index.d.ts +2 -0
  57. package/dist/provider/index.cjs +1 -1
  58. package/dist/provider/index.js +25 -19
  59. package/dist/stores/index.cjs +1 -1
  60. package/dist/stores/index.js +5 -5
  61. package/dist/styles/assets/images/backgrounds/krx_login_bg.png +0 -0
  62. package/dist/styles/assets/images/contents/icon/ico-lockscreen.svg +44 -0
  63. package/dist/styles/assets/images/logos/krx-logo-full.svg +35 -0
  64. package/dist/styles/components.css +130 -17
  65. package/dist/styles/global.css +19 -0
  66. package/dist/styles/layout.css +108 -35
  67. package/dist/styles/login.css +39 -33
  68. package/dist/styles/variables.css +221 -5
  69. package/dist/types/global.d.ts +2 -0
  70. package/dist/utils/FileUtils.d.ts +7 -0
  71. package/dist/utils/envUtils.d.ts +8 -0
  72. package/dist/utils/index.cjs +1 -1
  73. package/dist/utils/index.d.ts +1 -0
  74. package/dist/utils/index.js +105 -103
  75. package/package.json +32 -5
  76. package/dist/chunks/BwgLargeUploader-ByN1XWV4.js +0 -809
  77. package/dist/chunks/BwgLargeUploader-CU0-MVk4.cjs +0 -1
  78. package/dist/chunks/QuickServiceToggle-CiCuWfCF.cjs +0 -183
  79. package/dist/chunks/ServiceCodeContext--ZnMtjzD.cjs +0 -1
  80. package/dist/chunks/favoriteStore-TgeeY32l.cjs +0 -1
  81. package/dist/chunks/messageUtils-9DXOwada.js +0 -117
  82. package/dist/chunks/messageUtils-RjJD_ArW.cjs +0 -1
  83. package/dist/chunks/serviceConfig-Cr2P4yr4.cjs +0 -2
@@ -0,0 +1,2 @@
1
+ "use strict";const K=require("axios"),c=require("crypto-js"),I=require("antd"),We=require("zustand"),T=require("./envUtils-CduTHoHu.cjs"),w=e=>typeof e!="string"?!e:e.trim().length===0,j=(e,t)=>w(e)?t:e||"",He=e=>!w(e),q=(e,t,r="...")=>e.length<=t?e:e.substring(0,t)+r,H=e=>w(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),F=e=>w(e)?e:e.split(" ").map(t=>H(t)).join(" "),z=e=>e.replace(/-([a-z])/g,t=>t[1].toUpperCase()),J=e=>e.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`),V=e=>e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`),Z=e=>{const r=e.replace(/\D/g,"").match(/^(\d{3})(\d{4})(\d{4})$/);return r?`${r[1]}-${r[2]}-${r[3]}`:e},X=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),Y=e=>{try{return new URL(e),!0}catch{return!1}},Q=e=>e.replace(/\D/g,""),ee=e=>e.replace(/[^a-zA-Z0-9가-힣\s]/g,""),te=e=>e.replace(/<[^>]*>/g,""),re=e=>e.replace(/\n/g,"<br>"),ne=e=>e.replace(/<br\s*\/?>/gi,`
2
+ `),se=(e,t)=>{const r=e.match(t);return r||[]},$e=(e,t)=>e.repeat(t),oe=(e,t,r=" ")=>e.padStart(t,r),ae=(e,t,r=" ")=>e.padEnd(t,r),ce=(e,t,r=" ")=>{const n=t-e.length;if(n<=0)return e;const o=Math.floor(n/2),s=n-o;return r.repeat(o)+e+r.repeat(s)},E=(e,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")=>{let r="";for(let n=0;n<e;n++)r+=t.charAt(Math.floor(Math.random()*t.length));return r},ie=e=>e.split("").reverse().join(""),ue=(e,t)=>(e.match(new RegExp(t,"g"))||[]).length,le=e=>e.trim().split(/\s+/).length,de=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),A=(e=32)=>{const r=de().replace(/-/g,"");return e>=32?r+E(e-32,"0123456789abcdef"):r.substring(0,e)},ge=()=>A(16),me=()=>A(64),pe=(e=16)=>E(e,"0123456789"),he=(e=16)=>E(e,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"),$=()=>de(),G=()=>$().replace(/-/g,""),fe=()=>{const e=Date.now().toString(36),t=E(8,"0123456789abcdef");return e+t},Se=(e,t="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")=>e.replace(/[X-Z]/g,()=>t.charAt(Math.floor(Math.random()*t.length))),ye=e=>{const t=c.SHA256(e);return c.enc.Base64.stringify(t)},O=()=>"abcdefghij1234567890!@#$%^&*();;",Ce=()=>"123456098765!@#$",Ie=e=>{if(!e)return"";try{const t=c.enc.Utf8.parse(O()),r=c.enc.Utf8.parse(Ce());return c.AES.encrypt(e,t,{iv:r,padding:c.pad.Pkcs7,mode:c.mode.CBC}).toString()}catch(t){return console.error("암호화 오류:",t),""}},Ue=e=>{if(!e)return"";try{const t=c.enc.Utf8.parse(O()),r=c.enc.Utf8.parse(Ce());return c.AES.decrypt(e,t,{iv:r,padding:c.pad.Pkcs7,mode:c.mode.CBC}).toString(c.enc.Utf8)}catch(t){return console.error("복호화 오류:",t),""}},Ne=(e,t)=>{if(!e)return"";try{const r=t||O();return c.AES.encrypt(e,r).toString()}catch(r){return console.error("간단한 암호화 오류:",r),""}},De=(e,t)=>{if(!e)return"";try{const r=t||O();return c.AES.decrypt(e,r).toString(c.enc.Utf8)}catch(r){return console.error("간단한 복호화 오류:",r),""}},ve=e=>e?c.MD5(e).toString():"",we=e=>e?c.SHA256(e).toString():"",Ee=e=>e?c.enc.Base64.stringify(c.enc.Utf8.parse(e)):"",be=e=>{if(!e)return"";try{return c.enc.Base64.parse(e).toString(c.enc.Utf8)}catch(t){return console.error("Base64 디코딩 오류:",t),""}},Ge=Object.freeze(Object.defineProperty({__proto__:null,base64Decode:be,base64Encode:Ee,br2nl:ne,bxmDecrypt:Ue,bxmEncrypt:Ie,capitalize:H,capitalizeWords:F,center:ce,countChar:ue,countWords:le,encryptSha256:ye,extractNumbers:Q,findPattern:se,formatPhoneNumber:Z,generateAlphanumericUID:he,generateCustomUID:Se,generateGUID:$,generateGUIDWithoutHyphens:G,generateLongUID:me,generateNumericUID:pe,generateRandomString:E,generateShortUID:ge,generateTimestampUID:fe,generateUID:A,isEmpty:w,isNotEmpty:He,isSafeEmpty:j,isValidEmail:X,isValidUrl:Y,md5Hash:ve,nl2br:re,padLeft:oe,padRight:ae,removeHtmlTags:te,removeSpecialChars:ee,repeat:$e,reverse:ie,sha256Hash:we,simpleDecrypt:De,simpleEncrypt:Ne,toCamelCase:z,toKebabCase:V,toSnakeCase:J,truncate:q},Symbol.toStringTag,{value:"Module"})),g={duration:4.5,placement:"topRight"};class D{static instance;constructor(){}static getInstance(){return D.instance||(D.instance=new D),D.instance}showBwgError(t){const{message:r,description:n,duration:o=g.duration,placement:s=g.placement}=t;I.notification.error({message:`${r}`,description:n||"오류가 발생했습니다. 다시 시도해주세요.",duration:o,placement:s,style:{borderLeft:"4px solid #ff4d4f",backgroundColor:"#fff2f0"}})}showSuccess(t,r,n){I.notification.success({message:`${t}`,description:r,duration:n||g.duration,placement:g.placement})}showInfo(t,r,n){I.notification.info({message:`${t}`,description:r,duration:n||g.duration,placement:g.placement})}showWarning(t,r,n){I.notification.warning({message:`${t}`,description:r,duration:n||g.duration,placement:g.placement})}showError(t,r,n){I.notification.error({message:`${t}`,description:r,duration:n||g.duration,placement:g.placement})}destroy(){I.notification.destroy()}close(t){I.notification.destroy()}}const y=D.getInstance(),Me=e=>{y.showBwgError(e)},Be=(e,t,r)=>{y.showSuccess(e,t,r)},Ke=(e,t,r)=>{y.showInfo(e,t,r)},je=(e,t,r)=>{y.showWarning(e,t,r)},qe=(e,t,r)=>{y.showError(e,t,r)},Fe=()=>{y.destroy()},ze=e=>{y.close(e)};(void 0).DEV;function Je(e,t){let r;try{r=e()}catch{return}return{getItem:o=>{var s;const h=d=>d===null?null:JSON.parse(d,void 0),m=(s=r.getItem(o))!=null?s:null;return m instanceof Promise?m.then(h):h(m)},setItem:(o,s)=>r.setItem(o,JSON.stringify(s,void 0)),removeItem:o=>r.removeItem(o)}}const k=e=>t=>{try{const r=e(t);return r instanceof Promise?r:{then(n){return k(n)(r)},catch(n){return this}}}catch(r){return{then(n){return this},catch(n){return k(n)(r)}}}},Ve=(e,t)=>(r,n,o)=>{let s={storage:Je(()=>localStorage),partialize:a=>a,version:0,merge:(a,N)=>({...N,...a}),...t},h=!1;const m=new Set,d=new Set;let u=s.storage;if(!u)return e((...a)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...a)},n,o);const C=()=>{const a=s.partialize({...n()});return u.setItem(s.name,{state:a,version:s.version})},f=o.setState;o.setState=(a,N)=>(f(a,N),C());const S=e((...a)=>(r(...a),C()),n,o);o.getInitialState=()=>S;let U;const B=()=>{var a,N;if(!u)return;h=!1,m.forEach(i=>{var p;return i((p=n())!=null?p:S)});const P=((N=s.onRehydrateStorage)==null?void 0:N.call(s,(a=n())!=null?a:S))||void 0;return k(u.getItem.bind(u))(s.name).then(i=>{if(i)if(typeof i.version=="number"&&i.version!==s.version){if(s.migrate){const p=s.migrate(i.state,i.version);return p instanceof Promise?p.then(_=>[!0,_]):[!0,p]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,i.state];return[!1,void 0]}).then(i=>{var p;const[_,ke]=i;if(U=s.merge(ke,(p=n())!=null?p:S),r(U,!0),_)return C()}).then(()=>{P?.(U,void 0),U=n(),h=!0,d.forEach(i=>i(U))}).catch(i=>{P?.(void 0,i)})};return o.persist={setOptions:a=>{s={...s,...a},a.storage&&(u=a.storage)},clearStorage:()=>{u?.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>B(),hasHydrated:()=>h,onHydrate:a=>(m.add(a),()=>{m.delete(a)}),onFinishHydration:a=>(d.add(a),()=>{d.delete(a)})},s.skipHydration||B(),U||S},xe=Ve,l=We.create()(xe((e,t)=>({user:null,isLoggedIn:!1,login:r=>{e({user:r,isLoggedIn:!0}),console.log("사용자 로그인:",r)},logout:()=>{e({user:null,isLoggedIn:!1}),console.log("사용자 로그아웃")},updateUser:r=>{const n=t().user;n&&e({user:{...n,...r}})}}),{name:"user-storage",partialize:e=>({user:e.user,isLoggedIn:e.isLoggedIn})})),Ze=()=>l.getState().user?.crprCd||null,Te=()=>l.getState().user?.userId||null,Le=()=>l.getState().user?.userNm||null,Xe=()=>l.getState().user?.userDvsn||null,Ye=()=>l.getState().user?.emplNo||null,Pe=()=>l.getState().user?.dprtCd||null,Ae=()=>l.getState().user?.dprtNm||null,R=()=>l.getState().user?.roleList||null,Qe=e=>{const t=R();return t?t.includes(e):!1},et=e=>{const t=R();return t?e.some(r=>t.includes(r)):!1},tt=e=>{const t=R();return t?e.every(r=>t.includes(r)):!1},rt=()=>l.getState().isLoggedIn,M=()=>l.getState().user,nt=()=>M()!==null,st=()=>{const e=Le(),t=Te();return e||t||null},ot=()=>{const e=Ae(),t=Pe();return e||(t?String(t):null)};let L=null;const at=e=>{L===null&&(L=e)},ct=()=>L,it=async()=>(console.log("IP 검증 비활성화됨 (성능 최적화)"),L||"unknown"),W={method:"POST",timeout:3e4,withCredentials:!0,showLoading:!0,showError:!0,retryCount:3,retryDelay:1e3},v=K.create({timeout:W.timeout,withCredentials:W.withCredentials,headers:{"Content-Type":"application/json; charset=utf-8",Accept:"application/json; charset=utf-8"}});T.isLocal&&(console.log("🔧 API Client Configuration:"),console.log(" - Timeout:",v.defaults.timeout),console.log(" - With Credentials:",v.defaults.withCredentials),console.log(" - Environment:",T.getEnvCode()));v.interceptors.request.use(e=>{let t="UNKNOWN",r="UNKNOWN";new Date().getTime();try{e.data&&e.data.header?(t=e.data.header.trxCd||"UNKNOWN",r=e.data.header.guid||"UNKNOWN"):e.params&&e.params.header&&(t=e.params.header.trxCd||"UNKNOWN",r=e.params.header.guid||"UNKNOWN")}catch(o){console.warn("trxCd/guid 추출 실패:",o)}e.trxCd=t,e.guid=r,e.requestStartTime=Date.now(),console.log(`🚀 API 요청 시작 [거래코드: ${t} / GUID: ${r}]`);const n=localStorage.getItem("accessToken");return n&&(e.headers.Authorization=`Bearer ${n}`),e.headers["Content-Type"]="application/json; charset=UTF-8",e.headers.Accept="application/json; charset=UTF-8",e},e=>(console.error("❌ 요청 인터셉터 에러:",e),Promise.reject(e)));v.interceptors.response.use(e=>{let t="UNKNOWN",r="UNKNOWN";const n=new Date().getTime();try{e.config.trxCd&&(t=e.config.trxCd),e.config.guid?r=e.config.guid:e.data&&e.data.header&&e.data.header.trxCd?(t=e.data.header.trxCd,r=e.data.header.guid||"UNKNOWN"):e.config.data&&e.config.data.header?(t=e.config.data.header.trxCd||"UNKNOWN",r=e.config.data.header.guid||"UNKNOWN"):e.config.params&&e.config.params.header&&(t=e.config.params.header.trxCd||"UNKNOWN",r=e.config.params.header.guid||"UNKNOWN")}catch(s){console.warn("trxCd/guid 추출 실패:",s)}let o=0;return e.config.requestStartTime&&(o=n-e.config.requestStartTime),console.log(`✅ API 응답 성공 [거래코드: ${t} / GUID : ${r}] - (소요시간: ${o}ms)`),e},async e=>{if(console.error("❌ API 응답 에러:",e),T.isLocal&&console.error("🚨 Error Details:",{message:e.message,status:e.response?.status,statusText:e.response?.statusText,data:e.response?.data,config:{url:e.config?.url,method:e.config?.method,baseURL:e.config?.baseURL}}),e.response?.status===401){const t=localStorage.getItem("refreshToken");if(t)try{const r=await K.post("/auth/refresh",{refreshToken:t});if(r.data.accessToken){localStorage.setItem("accessToken",r.data.accessToken);const n=e.config;if(n)return n.headers.Authorization=`Bearer ${r.data.accessToken}`,v(n)}}catch{localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken"),window.location.href="/login"}}return Promise.reject(e)});const Oe=()=>G(),b=async(e,t,r)=>{try{const n={...W,...r},o={method:n.method,url:"/api/service",timeout:n.timeout,withCredentials:n.withCredentials};n.headers&&(o.headers=n.headers);const s=L||"unknown",h=__APP_CD__,m=__SYS_CD__;console.log("@@ request param :: ",t);const d={header:{trxCd:e,guid:Oe(),userInfo:M(),clientIp:s,domainId:"DEFAULT",appCd:h,sysCd:m},data:t};T.isLocal&&(console.log("__BWG_LOCAL__ 테스트 입니다. ",T.isLocal),console.log("📤 Request Data:",d)),n.method==="GET"?o.params=d||n.params:(o.data=d||n.data,n.params&&(o.params=n.params));let u;for(let C=0;C<=(n.retryCount||0);C++)try{const f=await v(o);if(f.data.header?.resCd==0){for(const S in f.data)if(S!=="header")return f.data[S]}else return Me({message:"서비스 호출 실패",description:f.data.header?.resMsg||"요청 처리 중 오류가 발생했습니다.",duration:5}),null}catch(f){if(u=f,ut(u)&&C<(n.retryCount||0)){await lt(n.retryDelay||1e3);continue}break}throw u}catch(n){throw console.error("callService 에러:",n),n}},ut=e=>!e.response||e.response.status>=500&&e.response.status<600,lt=e=>new Promise(t=>setTimeout(t,e)),dt=(e,t,r)=>b(e,t,{...r,method:"GET"}),gt=(e,t,r)=>b(e,t,{...r,method:"POST"}),mt=(e,t,r)=>b(e,t,{...r,method:"PUT"}),pt=(e,t,r)=>b(e,t,{...r,method:"DELETE"}),ht=(e,t,r)=>b(e,t,{...r,method:"PATCH"}),Re={AUTH_BTNS:"SCMSIGN00202",AUTH_MENU:"SCMSIGN00201",SRCH_CODE:"SCMSIGN00301",SRCH_POPU:"SCMPOPU00101",AUTH_BMRK:"SCMBMRK00101"};let x={};function ft(e){x=e,console.log("🔧 Provider 서비스코드 오버라이드 설정:",e)}function _e(e){if(x[e]&&x[e].trim()!=="")return console.log(`🔧 Provider 설정 사용: ${e} = ${x[e]}`),x[e];const t=Re[e];return console.log(`🔧 기본값 사용: ${e} = ${t}`),t}function St(){const e={};for(const t of Object.keys(Re))e[t]=_e(t);return e}exports.apiDelete=pt;exports.apiGet=dt;exports.apiPatch=ht;exports.apiPost=gt;exports.apiPut=mt;exports.base64Decode=be;exports.base64Encode=Ee;exports.br2nl=ne;exports.bxmDecrypt=Ue;exports.bxmEncrypt=Ie;exports.callService=b;exports.capitalize=H;exports.capitalizeWords=F;exports.center=ce;exports.closeNotification=ze;exports.countChar=ue;exports.countWords=le;exports.destroyNotifications=Fe;exports.encryptSha256=ye;exports.extractNumbers=Q;exports.findPattern=se;exports.formatPhoneNumber=Z;exports.generateAlphanumericUID=he;exports.generateCustomUID=Se;exports.generateGUID=$;exports.generateGUIDWithoutHyphens=G;exports.generateLongUID=me;exports.generateNumericUID=pe;exports.generateRandomString=E;exports.generateShortUID=ge;exports.generateTimestampUID=fe;exports.generateUID=A;exports.getAllServiceCodes=St;exports.getClientIp=ct;exports.getCrprCd=Ze;exports.getDepartmentInfo=ot;exports.getDisplayName=st;exports.getDprtCd=Pe;exports.getDprtNm=Ae;exports.getEmplNo=Ye;exports.getGuid=Oe;exports.getRoleList=R;exports.getServiceCode=_e;exports.getUserDvsn=Xe;exports.getUserId=Te;exports.getUserInfo=M;exports.getUserNm=Le;exports.hasAllRoles=tt;exports.hasAnyRole=et;exports.hasRole=Qe;exports.hasUserInfo=nt;exports.isEmpty=w;exports.isLoggedIn=rt;exports.isSafeEmpty=j;exports.isValidEmail=X;exports.isValidUrl=Y;exports.md5Hash=ve;exports.nl2br=re;exports.notificationService=y;exports.padLeft=oe;exports.padRight=ae;exports.persist=xe;exports.removeHtmlTags=te;exports.removeSpecialChars=ee;exports.reverse=ie;exports.setClientIp=at;exports.setServiceCodeOverrides=ft;exports.sha256Hash=we;exports.showError=qe;exports.showInfo=Ke;exports.showSuccess=Be;exports.showWarning=je;exports.simpleDecrypt=De;exports.simpleEncrypt=Ne;exports.stringUtils=Ge;exports.toCamelCase=z;exports.toKebabCase=V;exports.toSnakeCase=J;exports.truncate=q;exports.useUserStore=l;exports.verifyClientIp=it;
@@ -1,16 +1,94 @@
1
1
  import { default as React, CSSProperties } from 'react';
2
2
  export interface BwgCmptAreaProps {
3
- row1: React.ReactNode[];
4
- row2?: React.ReactNode[];
5
- row3?: React.ReactNode[];
6
- row4?: React.ReactNode[];
7
- row5?: React.ReactNode[];
3
+ /**
4
+ * 동적 행 배열 또는 커스텀 ReactNode
5
+ * - React.ReactNode[][]: 무제한 행을 동적으로 구성 (각 행은 React 컴포넌트 배열)
6
+ * - React.ReactNode: 완전히 커스텀한 레이아웃을 직접 렌더링
7
+ *
8
+ * @example
9
+ * // 무제한 행 방식
10
+ * content={[
11
+ * [<BwgSelect />, <BwgInput />], // 1행
12
+ * [<BwgButton />], // 2행
13
+ * [<BwgInput />, <BwgSelect />, <BwgButton />] // 3행
14
+ * ]}
15
+ *
16
+ * @example
17
+ * // 커스텀 ReactNode 방식
18
+ * content={(
19
+ * <div>
20
+ * <Row gutter={16}>
21
+ * <Col span={6}><BwgSelect /></Col>
22
+ * <Col span={6}><BwgInput /></Col>
23
+ * </Row>
24
+ * </div>
25
+ * )}
26
+ */
27
+ content?: React.ReactNode[][] | React.ReactNode;
28
+ /**
29
+ * 레이아웃 방식 선택
30
+ * - 'flex': Flexbox 기반 배치 (기본값)
31
+ * - 'grid': CSS Grid 기반 배치
32
+ * - 'equal': 동일한 너비로 균등 배치
33
+ * - 'auto': 내용에 따라 자동 조절
34
+ */
35
+ layout?: 'flex' | 'grid' | 'equal' | 'auto';
36
+ /**
37
+ * 컴포넌트 간 간격 (px)
38
+ * @default 16
39
+ */
40
+ gap?: number;
41
+ /**
42
+ * 최소 컴포넌트 너비 (px)
43
+ * @default 120
44
+ */
45
+ minWidth?: number;
46
+ /**
47
+ * 최대 컴포넌트 너비 (px)
48
+ * @default 300
49
+ */
50
+ maxWidth?: number;
51
+ /** CSS 스타일 객체 */
8
52
  style?: CSSProperties;
53
+ /** CSS 클래스명 */
9
54
  className?: string;
10
55
  }
11
56
  /**
12
57
  * 입력 폼 영역을 동적으로 그리기 위한 컴포넌트
13
- * 최대 5행을 구성할 수 있으며, colspan을 통한 동적 너비 조절 지원
58
+ *
59
+ * @description
60
+ * - content가 React.ReactNode[][]이면 무제한 행을 동적으로 구성
61
+ * - content가 React.ReactNode면 완전히 커스텀한 레이아웃을 직접 렌더링
62
+ * - 각 행의 컴포넌트들은 자동으로 백분위 너비로 배치됨
63
+ * - data-colspan 속성을 통해 컴포넌트의 너비를 조절할 수 있음
64
+ *
65
+ * @param content - 동적 행 배열 또는 커스텀 ReactNode
66
+ * @param style - CSS 스타일 객체
67
+ * @param className - CSS 클래스명
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * // 무제한 행 방식
72
+ * <BwgCmptArea
73
+ * content={[
74
+ * [<BwgSelect />, <BwgInput />],
75
+ * [<BwgButton />],
76
+ * [<BwgInput />, <BwgSelect />, <BwgButton />]
77
+ * ]}
78
+ * />
79
+ *
80
+ * // 커스텀 ReactNode 방식
81
+ * <BwgCmptArea
82
+ * content={(
83
+ * <div>
84
+ * <Row gutter={16}>
85
+ * <Col span={6}><BwgSelect /></Col>
86
+ * <Col span={6}><BwgInput /></Col>
87
+ * </Row>
88
+ * </div>
89
+ * )}
90
+ * />
91
+ * ```
14
92
  */
15
93
  declare const BwgCmptArea: React.FC<BwgCmptAreaProps>;
16
94
  export default BwgCmptArea;
@@ -0,0 +1,19 @@
1
+ import { ColProps } from 'antd';
2
+ /**
3
+ * BwgCol 컴포넌트는 Col 컴포넌트를 래핑하여 클래스 이름을 추가합니다.
4
+ * @param children - 컴포넌트의 자식 요소
5
+ * @param props - Col 컴포넌트의 속성
6
+ * @returns 래핑된 Col 컴포넌트
7
+ */
8
+ interface BwgColProps extends ColProps {
9
+ children: React.ReactNode;
10
+ }
11
+ /**
12
+ * BwgCol 컴포넌트는 Col 컴포넌트를 래핑하여 클래스 이름을 추가합니다.
13
+ * @param children - 컴포넌트의 자식 요소
14
+ * @param props - Col 컴포넌트의 속성
15
+ * @returns 래핑된 Col 컴포넌트
16
+ * @returns
17
+ */
18
+ declare const BwgCol: ({ children, ...props }: BwgColProps) => import("react/jsx-runtime").JSX.Element;
19
+ export default BwgCol;
@@ -1,10 +1,11 @@
1
- import { default as React, ReactNode } from 'react';
2
1
  import { ThemeConfig } from 'antd';
2
+ import { default as React, ReactNode } from 'react';
3
3
  export interface BwgConfigProviderProps {
4
4
  children: ReactNode;
5
5
  customTheme?: Partial<ThemeConfig>;
6
6
  customComponentSize?: 'small' | 'middle' | 'large';
7
7
  layout?: 'compact' | 'comfortable' | 'spacious';
8
+ getPopupContainer?: (triggerNode?: HTMLElement) => HTMLElement;
8
9
  }
9
10
  export declare const BwgConfigProvider: React.FC<BwgConfigProviderProps>;
10
11
  export default BwgConfigProvider;
@@ -1,6 +1,6 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { default as React, MutableRefObject } from 'react';
3
- import { default as RealGrid, CellIndex, ClickData, ColumnHeaderItemLocation, DataColumn, DataProviderBase, GridBase, GridColumn, GridFitStyle, GridView, LocalDataProvider, LocalTreeDataProvider, SelectionStyle, TreeView, ValidationError, ValueType } from 'realgrid';
3
+ import { default as RealGrid, CellIndex, ClickData, ColumnHeaderItemLocation, DataColumn, DataProviderBase, GridBase, GridColumn, GridExportOptions, GridFitStyle, GridView, LocalDataProvider, LocalTreeDataProvider, SelectionStyle, TreeView, ValidationError, ValueType } from 'realgrid';
4
4
  import { RealGridReact, RealTreeReact } from 'realgrid-react';
5
5
  interface BwgGridDataLoadOption {
6
6
  /** 작업한 현재 데이터 포커스 [default: false] */
@@ -243,6 +243,11 @@ interface BwgGridRef {
243
243
  * @default -1
244
244
  */
245
245
  getCurrentIndex: () => number;
246
+ /**
247
+ * 그리드 데이터 엑셀 변환
248
+ * @param GridExportOptions 그리드 export Option
249
+ */
250
+ gridExcelDown: (GridExportOptions?: GridExportOptions) => void;
246
251
  /** 데이터 프로바이더 직접 접근 */
247
252
  dp: LocalDataProvider | LocalTreeDataProvider | null;
248
253
  /** 그리드 뷰 직접 접근 */
@@ -250,7 +255,7 @@ interface BwgGridRef {
250
255
  }
251
256
  interface BwgGridProps {
252
257
  /** 그리드 렌더 타입 */
253
- type?: 'nrml' | 'tree';
258
+ type?: "nrml" | "tree";
254
259
  /** 그리드영역 CSS 스타일 */
255
260
  gridDivStyle?: React.CSSProperties;
256
261
  /** 그리드영역 CSS 클래스 */
@@ -439,7 +444,7 @@ interface BwgGridColProps extends DataColumn {
439
444
  /** 편집여부 */
440
445
  editable?: boolean;
441
446
  /** 컬럼 데이터 정렬 */
442
- align?: 'left' | 'center' | 'right';
447
+ align?: "left" | "center" | "right";
443
448
  /** 컬럼 필드 자료형 */
444
449
  dataType?: ValueType | string;
445
450
  /** 컬럼 필수 */
@@ -449,7 +454,7 @@ interface BwgGridColProps extends DataColumn {
449
454
  /** 그룹핑 자식 컬럼헤더 */
450
455
  children?: BwgGridColProps[];
451
456
  /** 그룹핑 정렬 */
452
- direction?: 'vertical' | 'horizontal';
457
+ direction?: "vertical" | "horizontal";
453
458
  /** true시 lookupDisplay가 true인 컬럼은 value가 아닌 label 또는 labelField의 값을 복사 */
454
459
  lookupDisplay?: boolean;
455
460
  renderer?: any;
@@ -3,6 +3,7 @@ export interface BwgInfoAreaProps {
3
3
  title: string;
4
4
  border?: boolean;
5
5
  children: React.ReactNode;
6
+ titleChildren?: React.ReactNode;
6
7
  }
7
- declare const BwgInfoArea: React.MemoExoticComponent<({ title, border, children }: BwgInfoAreaProps) => import("react/jsx-runtime").JSX.Element>;
8
+ declare const BwgInfoArea: React.MemoExoticComponent<({ title, border, children, titleChildren }: BwgInfoAreaProps) => import("react/jsx-runtime").JSX.Element>;
8
9
  export default BwgInfoArea;
@@ -0,0 +1,19 @@
1
+ import { RowProps } from 'antd';
2
+ /**
3
+ * BwgRow 컴포넌트는 Row 컴포넌트를 래핑하여 클래스 이름을 추가합니다.
4
+ * @param children - 컴포넌트의 자식 요소
5
+ * @param props - Row 컴포넌트의 속성
6
+ * @returns 래핑된 Row 컴포넌트
7
+ */
8
+ interface BwgRowProps extends RowProps {
9
+ children: React.ReactNode;
10
+ }
11
+ /**
12
+ * BwgRow 컴포넌트는 Row 컴포넌트를 래핑하여 클래스 이름을 추가합니다.
13
+ * @param children - 컴포넌트의 자식 요소
14
+ * @param props - Row 컴포넌트의 속성
15
+ * @returns 래핑된 Row 컴포넌트
16
+ * @returns
17
+ */
18
+ declare const BwgRow: ({ children, ...props }: BwgRowProps) => import("react/jsx-runtime").JSX.Element;
19
+ export default BwgRow;
@@ -22,8 +22,12 @@ export interface BwgTitleBoxProps {
22
22
  * @default true
23
23
  */
24
24
  iconVisible?: boolean;
25
+ /** 패딩 바텀 */
26
+ paddingBottom?: number;
27
+ /** 마진 바텀 */
28
+ marginBottom?: number;
25
29
  /** 컨텐츠 */
26
30
  children?: React.ReactNode;
27
31
  }
28
- declare const BwgTitleBox: ({ title, icons, tooltip, iconVisible, children, }: BwgTitleBoxProps) => import("react/jsx-runtime").JSX.Element;
32
+ declare const BwgTitleBox: ({ title, icons, tooltip, iconVisible, paddingBottom, marginBottom, children, }: BwgTitleBoxProps) => import("react/jsx-runtime").JSX.Element;
29
33
  export default BwgTitleBox;
@@ -1,18 +1,8 @@
1
1
  import { default as React } from 'react';
2
- import { default as BwgCmptArea } from './BwgCmptArea';
2
+ import { SearchBoxProps } from './SearchBox';
3
3
  interface BwgViewProps {
4
4
  children: React.ReactNode;
5
- searchBox?: {
6
- /**
7
- * 필수입력 영역
8
- */
9
- reqArea: React.ComponentProps<typeof BwgCmptArea>;
10
- /**
11
- * 추가 입력 영역
12
- */
13
- subArea?: React.ComponentProps<typeof BwgCmptArea>;
14
- style?: any;
15
- };
5
+ searchBox?: SearchBoxProps;
16
6
  title?: {
17
7
  text?: string;
18
8
  useMenuTitle?: boolean;
@@ -22,7 +12,6 @@ interface BwgViewProps {
22
12
  };
23
13
  preRenderEvents?: Array<() => Promise<void> | void>;
24
14
  postRenderEvents?: Array<() => Promise<void> | void>;
25
- requiredPermissions?: string[];
26
15
  loading?: boolean;
27
16
  error?: string | null;
28
17
  grantEvent?: {
@@ -0,0 +1,2 @@
1
+ declare const SSOHandler: React.FC;
2
+ export default SSOHandler;
@@ -1,16 +1,68 @@
1
- import { default as React } from 'react';
2
- import { BwgCmptAreaProps } from './BwgCmptArea';
3
1
  export interface SearchBoxProps {
4
- /** 필수출력 Row */
5
- reqRows?: BwgCmptAreaProps;
6
- /** Collapsible (접힘 가능) Row */
7
- subRows?: BwgCmptAreaProps;
2
+ /**
3
+ * 필수출력 Row - 항상 표시되는 검색 조건 영역
4
+ * ReactNode를 직접 렌더링하여 완전한 유연성 제공
5
+ *
6
+ * @example
7
+ * reqRows={<div>커스텀 검색 조건</div>}
8
+ */
9
+ reqRows?: React.ReactNode;
10
+ /**
11
+ * Collapsible (접힘 가능) Row - 토글 버튼으로 접고 펼칠 수 있는 검색 조건 영역
12
+ * ReactNode를 직접 렌더링하여 완전한 유연성 제공
13
+ *
14
+ * @example
15
+ * subRows={<div>접힘 가능한 검색 조건</div>}
16
+ */
17
+ subRows?: React.ReactNode;
18
+ /**
19
+ * 테두리 여부 - true일 경우 검색박스에 테두리와 패딩이 적용됨
20
+ * @default false
21
+ */
22
+ border?: boolean;
23
+ /**
24
+ * 반응형 label 표시 설정 - SearchBox 전체 Form에 적용
25
+ * - sm (768px 미만): small
26
+ * - md (768px~1199px): medium
27
+ * - lg (1200px 이상): large
28
+ *
29
+ * @example
30
+ * labelDisplay={{
31
+ * sm: '80px', // small: 80px
32
+ * md: '100px', // medium: 100px
33
+ * lg: '120px' // large: 120px
34
+ * }}
35
+ */
36
+ labelDisplay?: {
37
+ /** small 화면용 labelCol (768px 미만) */
38
+ sm?: string | number;
39
+ /** medium 화면용 labelCol (768px~1199px) */
40
+ md?: string | number;
41
+ /** large 화면용 labelCol (1200px 이상) */
42
+ lg?: string | number;
43
+ };
44
+ /**
45
+ * 커스텀 헤더 설정
46
+ * @example
47
+ * header={{
48
+ * title: '커스텀 타이틀',
49
+ * buttons: <BwgButton>커스텀 버튼</BwgButton>
50
+ * }}
51
+ */
52
+ header?: {
53
+ title?: string | React.ReactNode;
54
+ buttons?: React.ReactNode;
55
+ };
8
56
  }
9
57
  export interface SearchBoxRef {
58
+ /** 폼 데이터를 가져옵니다 */
10
59
  getFormData: () => any;
60
+ /** 폼 데이터를 설정합니다 */
11
61
  setFormData: (data: any) => void;
62
+ /** 폼을 초기화합니다 */
12
63
  resetForm: () => void;
64
+ /** 폼 유효성을 검사합니다 */
13
65
  validateForm: () => Promise<any>;
14
66
  }
15
- declare const SearchBox: React.ForwardRefExoticComponent<SearchBoxProps & React.RefAttributes<SearchBoxRef>>;
67
+ declare const SearchBox: import('react').ForwardRefExoticComponent<SearchBoxProps & import('react').RefAttributes<SearchBoxRef>>;
16
68
  export default SearchBox;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/QuickServiceToggle-CiCuWfCF.cjs"),r=require("../../chunks/BwgSpace-b0hmM1Ht.cjs"),o=require("../../chunks/realFormat-Cha7OTd9.cjs");exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDrawer=e.BwgDrawer;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPopup=e.BwgPopup;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.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.BwgSpace=r.BwgSpace;exports.realFormat=o.realFormat;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/SSOHandler-DiwKoTdN.cjs"),r=require("../../chunks/BwgSpace-b0hmM1Ht.cjs"),o=require("../../chunks/realFormat-Cha7OTd9.cjs");exports.BwgButtonGroup=e.BwgButtonGroup;exports.BwgCmptArea=e.BwgCmptArea;exports.BwgCol=e.BwgCol;exports.BwgConfigProvider=e.BwgConfigProvider;exports.BwgDrawer=e.BwgDrawer;exports.BwgGrid=e.BwgGrid;exports.BwgInfoArea=e.BwgInfoArea;exports.BwgPopup=e.BwgPopup;exports.BwgRow=e.BwgRow;exports.BwgTable=e.BwgTable;exports.BwgTabs=e.BwgTabs;exports.BwgTitleBox=e.BwgTitleBox;exports.BwgView=e.BwgView;exports.ContentBox=e.ContentBox;exports.ContentLayOut=e.ContentLayOut;exports.GlobalConfigProvider=e.GlobalConfigProvider;exports.QuickServiceToggle=e.QuickServiceToggle;exports.SSOHandler=e.SSOHandler;exports.SearchBox=e.SearchBox;exports.createBwgGridRenderer=e.createBwgGridRenderer;exports.BwgSpace=r.BwgSpace;exports.realFormat=o.realFormat;
@@ -1,34 +1,37 @@
1
+ export { default as BwgButtonGroup } from './BwgButtonGroup';
2
+ export { default as BwgCmptArea } from './BwgCmptArea';
3
+ export { default as BwgCol } from './BwgCol';
4
+ export { default as BwgConfigProvider } from './BwgConfigProvider';
5
+ export { default as BwgDrawer } from './BwgDrawer';
1
6
  export { default as BwgGrid } from './BwgGrid';
7
+ export { default as BwgInfoArea } from './BwgInfoArea';
8
+ export { default as BwgPopup } from './BwgPopup';
9
+ export { default as BwgRow } from './BwgRow';
2
10
  export { default as BwgSpace } from './BwgSpace';
3
- export { default as BwgView } from './BwgView';
11
+ export { default as BwgTable } from './BwgTable';
12
+ export { default as BwgTabs } from './BwgTabs';
4
13
  export { default as BwgTitleBox } from './BwgTitleBox';
14
+ export { default as BwgView } from './BwgView';
5
15
  export { default as ContentBox } from './ContentBox';
6
16
  export { default as ContentLayOut } from './ContentLayOut';
7
- export { default as BwgTable } from './BwgTable';
8
- export { default as SearchBox } from './SearchBox';
9
- export { default as BwgCmptArea } from './BwgCmptArea';
10
- export { default as BwgButtonGroup } from './BwgButtonGroup';
11
- export { default as BwgConfigProvider } from './BwgConfigProvider';
12
17
  export { default as GlobalConfigProvider } from './GlobalConfigProvider';
13
- export { default as BwgPopup } from './BwgPopup';
14
- export { default as BwgInfoArea } from './BwgInfoArea';
15
- export { default as BwgDrawer } from './BwgDrawer';
16
- export { default as BwgTabs } from './BwgTabs';
17
18
  export { default as QuickServiceToggle } from './QuickServiceToggle';
18
- export type { BwgGridProps, BwgGridColProps, BwgGridColHeaderProps, BwgGridRef, BwgGridOptions, BwgGridEventList, BwgGridRenderType, } from './BwgGrid';
19
+ export { default as SearchBox } from './SearchBox';
20
+ export { default as SSOHandler } from './SSOHandler';
21
+ export type { BwgGridColHeaderProps, BwgGridColProps, BwgGridEventList, BwgGridOptions, BwgGridProps, BwgGridRef, BwgGridRenderType } from './BwgGrid';
19
22
  export { createBwgGridRenderer } from './BwgGrid';
20
23
  export { default as realFormat } from '../../utils/realFormat';
21
- export type { BwgButtonGroupProps, ButtonEvent, ButtonPermissionResponse, } from './BwgButtonGroup';
24
+ export type { ButtonEvent, ButtonPermissionResponse, BwgButtonGroupProps } from './BwgButtonGroup';
25
+ export type { BwgCmptAreaProps } from './BwgCmptArea';
22
26
  export type { BwgConfigProviderProps } from './BwgConfigProvider';
23
27
  export type { BwgDrawerProps } from './BwgDrawer';
24
28
  export type { BwgInfoAreaProps } from './BwgInfoArea';
25
29
  export type { BwgPopupProps } from './BwgPopup';
26
- export type { BwgTitleBoxProps, BwgTitleBoxIcon } from './BwgTitleBox';
27
- export type { BwgTabsProps } from './BwgTabs';
28
30
  export type { BwgTableProps } from './BwgTable';
31
+ export type { BwgTabsProps } from './BwgTabs';
32
+ export type { BwgTitleBoxIcon, BwgTitleBoxProps } from './BwgTitleBox';
29
33
  export type { ContentBoxProps } from './ContentBox';
30
34
  export type { ContentLayOutProps } from './ContentLayOut';
31
35
  export type { GlobalConfigProviderProps } from './GlobalConfigProvider';
32
- export type { QuickServiceToggleProps, QuickServiceItem, } from './QuickServiceToggle';
36
+ export type { QuickServiceItem, QuickServiceToggleProps } from './QuickServiceToggle';
33
37
  export type { SearchBoxProps, SearchBoxRef } from './SearchBox';
34
- export type { BwgCmptAreaProps } from './BwgCmptArea';
@@ -1,24 +1,27 @@
1
- import { f as r, e as o, g as s, j as B, B as g, i as w, h as t, d as i, k as n, b as p, a as f, C as l, c, G as d, Q as x, S as C, l as m } from "../../chunks/QuickServiceToggle-y7esp1kp.js";
2
- import { B as G } from "../../chunks/BwgSpace-CnLM4qcg.js";
3
- import { r as S } from "../../chunks/realFormat-DRGLFabQ.js";
1
+ import { B as r, a as o, b as s, c as B, d as g, e as w, f as t, g as i, h as n, i as l, j as p, k as d, l as f, C, m as c, G as m, Q as x, n as S, S as u, o as G } from "../../chunks/SSOHandler-DVa4JKKb.js";
2
+ import { B as T } from "../../chunks/BwgSpace-CnLM4qcg.js";
3
+ import { r as P } from "../../chunks/realFormat-DRGLFabQ.js";
4
4
  export {
5
5
  r as BwgButtonGroup,
6
6
  o as BwgCmptArea,
7
- s as BwgConfigProvider,
8
- B as BwgDrawer,
9
- g as BwgGrid,
10
- w as BwgInfoArea,
11
- t as BwgPopup,
12
- G as BwgSpace,
13
- i as BwgTable,
14
- n as BwgTabs,
15
- p as BwgTitleBox,
7
+ s as BwgCol,
8
+ B as BwgConfigProvider,
9
+ g as BwgDrawer,
10
+ w as BwgGrid,
11
+ t as BwgInfoArea,
12
+ i as BwgPopup,
13
+ n as BwgRow,
14
+ T as BwgSpace,
15
+ l as BwgTable,
16
+ p as BwgTabs,
17
+ d as BwgTitleBox,
16
18
  f as BwgView,
17
- l as ContentBox,
19
+ C as ContentBox,
18
20
  c as ContentLayOut,
19
- d as GlobalConfigProvider,
21
+ m as GlobalConfigProvider,
20
22
  x as QuickServiceToggle,
21
- C as SearchBox,
22
- m as createBwgGridRenderer,
23
- S as realFormat
23
+ S as SSOHandler,
24
+ u as SearchBox,
25
+ G as createBwgGridRenderer,
26
+ P as realFormat
24
27
  };
@@ -1,12 +1,15 @@
1
1
  import { default as React } from 'react';
2
2
  export interface BwgLargeUploaderProps {
3
3
  title?: string;
4
+ fileGrpKey?: string;
4
5
  onUploadComplete?: (fileDetails: {
5
6
  fileNameP: string;
6
7
  fileNameL: string;
7
8
  }) => void;
8
- trxCd?: string;
9
+ onSuccessTrxCd?: string;
10
+ anotherServiceTrxCd?: string;
9
11
  allowedExtensions?: string[];
12
+ maxFileSize?: number;
10
13
  }
11
14
  /**
12
15
  * BwgLargeUploader 컴포넌트 (대용량 파일 일괄 업로드용)
@@ -11,6 +11,10 @@ export interface BwgSearchProps extends Omit<InputProps, "placeholder"> {
11
11
  popupParams?: any;
12
12
  /** 팝업 설정 */
13
13
  popupConfig?: any;
14
+ /** 읽기 전용 */
15
+ readOnly?: boolean;
16
+ /** 검색 함수 */
17
+ onSearch?: (value: string) => void;
14
18
  }
15
19
  declare const BwgSearch: (props: BwgSearchProps) => import("react/jsx-runtime").JSX.Element;
16
20
  export default BwgSearch;
@@ -1,20 +1,39 @@
1
1
  import { default as React } from 'react';
2
2
  export interface BwgUploaderProps {
3
+ /**
4
+ * 선/후처리 서비스에 전달할 파일 그룹 키입니다.
5
+ * 선처리 : 파일 목록조회
6
+ * 후처리 : 해당 파일 그룹키에 파일목록수정
7
+ */
8
+ fileGrpKey?: string;
3
9
  /**
4
10
  * 파일 업로드 완료 시 호출되는 콜백 함수입니다.
5
- * 업로드된 파일의 `fileNameP` (fileKey)와 `fileNameL` (fileName)을 포함하는 객체를 반환합니다.
6
11
  */
7
12
  onUploadComplete?: (fileDetails: {
8
13
  fileNameP: string;
9
14
  fileNameL: string;
10
15
  }) => void;
11
16
  /**
12
- * 파일 업로드 함께 전송할 거래코드(trxCd)입니다.
17
+ * 파일 목록을 조회하는 거래코드.
18
+ * 기본값: 'SCMFILE00101'
19
+ */
20
+ onFetchFilesTrxCd?: string;
21
+ /**
22
+ * 파일 업로드 후처리 서비스 호출을 위한 trxCd.
23
+ * 기본값: 'SCMFILE00102'
24
+ */
25
+ onSuccessTrxCd?: string;
26
+ /**
27
+ * 파일 삭제 후처리 서비스 호출을 위한 trxCd.
28
+ * 기본값: 'SCMFILE00103'
29
+ */
30
+ onDeleteFileTrxCd?: string;
31
+ /**
32
+ * 파일 순서 변경 후처리 서비스 호출을 위한 trxCd.
13
33
  */
14
- trxCd?: string;
34
+ onReorderFilesTrxCd?: string;
15
35
  /**
16
36
  * 허용되는 파일 확장자 목록입니다.
17
- * 예: `['.jpg', '.png', '.pdf']`
18
37
  */
19
38
  allowedExtensions?: string[];
20
39
  /**
@@ -25,10 +44,14 @@ export interface BwgUploaderProps {
25
44
  /**
26
45
  * BwgUploader 컴포넌트
27
46
  *
47
+ * @param fileGrpKey - 파일 그룹 키
28
48
  * @param onUploadComplete - 파일 업로드 완료 시 콜백
29
- * @param trxCd - 거래코드
30
- * @param allowedExtensions - 허용되는 파일 확장자 목록
31
- * @param maxFileSize - 최대 파일 크기(MB)
49
+ * @param onFetchFilesTrxCd - 파일 목록 조회 트랜잭션 코드
50
+ * @param onSuccessTrxCd - 파일 업로드 성공 후처리 트랜잭션 코드
51
+ * @param onDeleteFileTrxCd - 파일 삭제 후처리 트랜잭션 코드
52
+ * @param onReorderFilesTrxCd - 파일 순서 변경 후처리 트랜잭션 코드
53
+ * @param allowedExtensions - 허용 파일 확장자
54
+ * @param maxFileSize - 최대 파일 크기
32
55
  */
33
56
  declare const BwgUploader: React.FC<BwgUploaderProps>;
34
57
  export default BwgUploader;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/BwgLargeUploader-CU0-MVk4.cjs");exports.BwgButton=e.BwgButton;exports.BwgCheck=e.BwgCheck;exports.BwgCheckList=e.BwgCheckList;exports.BwgDatePicker=e.BwgDatePicker;exports.BwgForm=e.BwgForm;exports.BwgFormItem=e.BwgFormItem;exports.BwgInput=e.BwgInput;exports.BwgLargeUploader=e.BwgLargeUploader;exports.BwgMaskedInput=e.BwgMaskedInput;exports.BwgMaskedPicker=e.BwgMaskedPicker;exports.BwgMultiSelect=e.BwgMultiSelect;exports.BwgNumber=e.BwgNumber;exports.BwgRadio=e.BwgRadio;exports.BwgRangePicker=e.BwgRangePicker;exports.BwgSearch=e.BwgSearch;exports.BwgSelect=e.BwgSelect;exports.BwgTextArea=e.BwgTextArea;exports.BwgUploader=e.BwgUploader;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/BwgLargeUploader-BOf905_l.cjs");exports.BwgButton=e.BwgButton;exports.BwgCheck=e.BwgCheck;exports.BwgCheckList=e.BwgCheckList;exports.BwgDatePicker=e.BwgDatePicker;exports.BwgForm=e.BwgForm;exports.BwgFormItem=e.BwgFormItem;exports.BwgInput=e.BwgInput;exports.BwgLargeUploader=e.BwgLargeUploader;exports.BwgMaskedInput=e.BwgMaskedInput;exports.BwgMaskedPicker=e.BwgMaskedPicker;exports.BwgMultiSelect=e.BwgMultiSelect;exports.BwgNumber=e.BwgNumber;exports.BwgRadio=e.BwgRadio;exports.BwgRangePicker=e.BwgRangePicker;exports.BwgSearch=e.BwgSearch;exports.BwgSelect=e.BwgSelect;exports.BwgTextArea=e.BwgTextArea;exports.BwgUploader=e.BwgUploader;
@@ -1,4 +1,4 @@
1
- import { o as g, j as s, k as B, g as w, a as r, B as t, f as c, q as o, d as k, e as i, n as d, m as l, i as m, h as p, c as n, b as u, l as h, p as I } from "../../chunks/BwgLargeUploader-ByN1XWV4.js";
1
+ import { o as g, j as s, k as B, g as w, a as r, B as t, f as c, q as o, d as k, e as i, n as d, m as l, i as m, h as p, c as n, b as u, l as h, p as I } from "../../chunks/BwgLargeUploader-BeI8oV8y.js";
2
2
  export {
3
3
  g as BwgButton,
4
4
  s as BwgCheck,
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * 진행 중 표시
4
+ * @returns ProgressOverlay
5
+ */
6
+ declare const ProgressOverlay: React.FC<{
7
+ spin?: boolean | null;
8
+ text?: string;
9
+ }>;
10
+ export default ProgressOverlay;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 보호 레이아웃
3
+ * @returns ProtectedLayout
4
+ */
5
+ declare const ProtectedLayout: () => import("react/jsx-runtime").JSX.Element;
6
+ export default ProtectedLayout;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 공개 레이아웃
3
+ * @returns PublicLayout
4
+ */
5
+ declare const PublicLayout: () => import("react/jsx-runtime").JSX.Element;
6
+ export default PublicLayout;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../chunks/PublicLayout-BiTPwkVq.cjs");exports.ProgressOverlay=e.ProgressOverlay;exports.ProtectedLayout=e.ProtectedLayout;exports.PublicLayout=e.PublicLayout;
@@ -0,0 +1,3 @@
1
+ export { default as ProgressOverlay } from './ProgressOverlay';
2
+ export { default as ProtectedLayout } from './ProtectLayout';
3
+ export { default as PublicLayout } from './PublicLayout';
@@ -0,0 +1,6 @@
1
+ import { P as r, a as e, b as s } from "../../chunks/PublicLayout-g9WMtoZ0.js";
2
+ export {
3
+ r as ProgressOverlay,
4
+ e as ProtectedLayout,
5
+ s as PublicLayout
6
+ };