@bwg-ui/core 1.3.9 → 1.3.10
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.
- package/dist/components/core/{BwgXlsxUploader.d.ts → BwgExcelUploaderBatch.d.ts} +4 -4
- package/dist/components/core/BwgExcelUploaderBatch.d.ts.map +1 -0
- package/dist/components/core/BwgExcelUploaderService.d.ts +31 -0
- package/dist/components/core/BwgExcelUploaderService.d.ts.map +1 -0
- package/dist/components/core/index.cjs +1 -1
- package/dist/components/core/index.d.ts +4 -2
- package/dist/components/core/index.d.ts.map +1 -1
- package/dist/components/core/index.js +1362 -1190
- package/dist/index.cjs +87 -39
- package/dist/index.js +9239 -9677
- package/dist/provider/hooks/useSizeConfig.d.ts +2 -2
- package/dist/stores/codeStore.d.ts.map +1 -1
- package/dist/stores/index.cjs +1 -1
- package/dist/stores/index.js +12 -12
- package/package.json +1 -1
- package/dist/components/core/BwgXlsxUploader.d.ts.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare const useSizeConfig: () => {
|
|
6
6
|
fontSize: number;
|
|
7
|
-
componentSize: "
|
|
7
|
+
componentSize: "large" | "small" | "middle";
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
10
|
* 그리드 사이즈에 따른 설정을 반환하는 Hook
|
|
@@ -12,7 +12,7 @@ export declare const useSizeConfig: () => {
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const useGridSizeConfig: () => {
|
|
14
14
|
fontSize: number;
|
|
15
|
-
componentSize: "
|
|
15
|
+
componentSize: "large" | "small" | "middle";
|
|
16
16
|
buttonSize: number;
|
|
17
17
|
width: number;
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeStore.d.ts","sourceRoot":"","sources":["../../src/stores/codeStore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codeStore.d.ts","sourceRoot":"","sources":["../../src/stores/codeStore.ts"],"names":[],"mappings":"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"}
|
package/dist/stores/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("zustand"),T=require("zustand/middleware"),f=require("../utils/index.cjs"),S=require("antd"),$=require("../chunks/layout-components-y9YpQQbx.cjs"),h=require("react"),V=require("axios"),C=b.create()(T.persist((r,s)=>({user:null,hrInfo:null,buttonAuths:{},componentSize:1,gridSize:2,spacingSize:2,enableProtectWrapper:!0,gridLayouts:{},theme:"modern",isLoggedIn:()=>!!s().user,setLoginUser:(e,n)=>{r({user:e,hrInfo:n??null}),console.log("사용자 로그인:",e,n)},clearLoginUser:()=>{r({user:null,hrInfo:null,buttonAuths:{}}),console.log("사용자 로그아웃")},updateUser:(e,n)=>{const t=s().user,o=s().hrInfo;t&&r({user:{...t,...e}}),o&&r({hrInfo:{...o,...n}})},setComponentSize:e=>{r({componentSize:e}),console.log("컴포넌트 사이즈 변경:",e)},setGridSize:e=>{r({gridSize:e}),console.log("그리드 사이즈 변경:",e)},setSpacingSize:e=>{r({spacingSize:e}),console.log("여백 사이즈 변경:",e)},setEnableProtectWrapper:e=>{r({enableProtectWrapper:e})},setTheme:e=>{r({theme:e}),console.log("테마 변경:",e)},getButtonAuth:(e,n)=>{const t=`${e}_${n}`;return s().buttonAuths[t]||null},setButtonAuth:(e,n,t)=>{const o=`${e}_${n}`;r(a=>({buttonAuths:{...a.buttonAuths,[o]:t}}))},clearButtonAuths:()=>{r({buttonAuths:{}})},getGridLayouts:e=>s().gridLayouts[e]||[],getGridLayout:(e,n,t)=>s().getGridLayouts(e).find(d=>d.menuId===n&&d.gridId===t)||null,saveGridLayout:(e,n,t,o)=>{const a={...s().gridLayouts};a[e]||(a[e]=[]);const d=a[e].findIndex(u=>u.menuId===n&&u.gridId===t),c={menuId:n,gridId:t,layout:o};d>=0?a[e][d]=c:a[e].push(c),r({gridLayouts:a}),console.log(`[UserStore] 그리드 레이아웃 저장 완료: ${e}/${n}/${t}`)},removeGridLayout:(e,n,t)=>{const o={...s().gridLayouts};o[e]&&(o[e]=o[e].filter(a=>!(a.menuId===n&&a.gridId===t)),r({gridLayouts:o}),console.log(`[UserStore] 그리드 레이아웃 삭제 완료: ${e}/${n}/${t}`))},clearGridLayouts:e=>{const n={...s().gridLayouts};delete n[e],r({gridLayouts:n}),console.log(`[UserStore] ${e}의 모든 그리드 레이아웃 삭제 완료`)},clearAllGridLayouts:()=>{r({gridLayouts:{}}),console.log("[UserStore] 전체 그리드 레이아웃 삭제 완료")}}),{name:"user-storage",partialize:r=>({user:r.user,hrInfo:r.hrInfo,componentSize:r.componentSize,gridSize:r.gridSize,spacingSize:r.spacingSize,enableProtectWrapper:r.enableProtectWrapper,gridLayouts:r.gridLayouts,theme:r.theme})})),Y=r=>{const s={};return r.forEach(e=>{const n=e.cmcdGrpCd,t=e.cmcdDtlCd;s[n]||(s[n]={}),s[n][t]={codeValue:t,codeNm:e.cmcdDtlNm,groupCode:n,fullCode:e.cmcdFullCd,color:e.cmcdColor,enabled:e.useYn==="Y",originalData:e}}),s},j=r=>{const s={};return r.forEach(e=>{const n=e.cmcdGrpCd,t=e.cmcdDtlCd,o=e.attrCd;s[n]||(s[n]={}),s[n][t]||(s[n][t]={}),s[n][t][o]||(s[n][t][o]=[]);const a={attrCd:o,attrNm:e.attrNm,attrValCd:e.attrValCd,attrValNm:e.attrValNm,refGrpCd:e.refGrpCd,dispSq:e.dispSq,enabled:e.useYn==="Y",originalData:e};s[n][t][o].push(a)}),s},g=b.create()(T.persist((r,s)=>({codeData:null,attrData:null,isLoading:!1,error:null,lastUpdated:null,fetchCommonCodes:async()=>{r({isLoading:!0,error:null});try{const e=f.getServiceCode("CMCD_CODE");if(!e)throw new Error("CMCD_CODE 서비스코드가 설정되지 않았습니다.");const n=f.getServiceCode("EXTN_CODE"),t=[f.callService(e,{crprCd:f.getCrprCd(),sysCd:__SYS_CD__})];n&&n.trim()!==""&&t.push(f.callService(n,{}));const a=(await Promise.all(t)).map(i=>i?.data&&Array.isArray(i.data)?i.data:Array.isArray(i)?i:(console.warn("공통코드 응답에서 배열을 찾을 수 없습니다:",i),[])).flat(),d=f.getServiceCode("CMCD_ATTR");let c=[];if(d&&d.trim()!=="")try{const i=await f.callService(d,{crprCd:f.getCrprCd(),sysCd:__SYS_CD__});i?.data&&Array.isArray(i.data)?c=i.data:Array.isArray(i)?c=i:(console.warn("속성코드 응답에서 배열을 찾을 수 없습니다:",i),c=[])}catch(i){console.warn("속성코드 조회 실패:",i),c=[]}const u=Y(a),l=j(c);r({codeData:u,attrData:l,isLoading:!1,error:null,lastUpdated:new Date})}catch(e){console.error("공통코드 데이터 가져오기 실패:",e),r({isLoading:!1,error:e instanceof Error?e.message:"공통코드 데이터 가져오기 실패"})}},clearCodes:()=>{r({codeData:null,attrData:null,isLoading:!1,error:null,lastUpdated:null})},getCodeList:(e,n="all",t=!1)=>{const{codeData:o}=s();if(!o||!o[e])return[];const a=o[e],d=[];return Object.values(a).forEach(c=>{(n==="all"||n==="Y"&&c.enabled||n==="N"&&!c.enabled)&&d.push({label:c.codeNm,value:t?c.codeValue:c.fullCode,tagColor:c.color})}),d.sort((c,u)=>c.value.localeCompare(u.value))},getCodeAttrList:(e,n,t="all")=>{const{attrData:o}=s();if(!o||!o[e])return[];const a=[],d=o[e];return Object.keys(d).forEach(c=>{const u=d[c];u[n]&&u[n].forEach(l=>{(t==="all"||t==="Y"&&l.enabled||t==="N"&&!l.enabled)&&a.push({label:l.attrValNm,value:l.attrValCd})})}),a.sort((c,u)=>{const l=Object.values(o[e]||{}).flatMap(I=>I[n]||[]).find(I=>I.attrValCd===c.value),i=Object.values(o[e]||{}).flatMap(I=>I[n]||[]).find(I=>I.attrValCd===u.value),m=l?.dispSq??999999,p=i?.dispSq??999999;return m!==p?(m??999999)-(p??999999):c.value.localeCompare(u.value)})},getCodeName:(e,n)=>{const{codeData:t}=s();if(!t||!t[e])return null;const o=t[e][n];return o?o.codeNm:null},getCodeColor:(e,n)=>{const{codeData:t}=s();if(!t||!t[e])return null;const o=t[e][n];return o?o.color:null},getGridLookup:e=>{const{codeData:n}=s();if(!n||!n[e])return{labels:[],values:[],lookupDisplay:!0};const t=n[e],o=[],a=[];return Object.values(t).filter(d=>d.enabled).sort((d,c)=>d.codeValue.localeCompare(c.codeValue)).forEach(d=>{o.push(d.codeNm),a.push(d.codeValue)}),{labels:o,values:a,lookupDisplay:!0}}}),{name:"code-storage",partialize:r=>({codeData:r.codeData,attrData:r.attrData,lastUpdated:r.lastUpdated})})),K=(r,s)=>({nodes:{},rootIds:[],loadedFor:void 0,loading:!1,error:void 0,treeNodes:[],isMenuBookmarked:e=>Object.values(s().nodes).some(n=>n.type==="M"&&n.menuId===e),getPrntBkmkIdByMenuId:e=>{const n=v(s().nodes,e);return n?s().nodes[n]?.prntBkmkId??"-":"-"},getNodeByMenuId:e=>{const n=v(s().nodes,e);if(!n)return null;const t=s().nodes[n];return t?.type==="M"?t:null},getFolderTree:e=>{const{nodes:n,rootIds:t}=s(),o=d=>e?d.toLowerCase().includes(e.toLowerCase()):!0,a=d=>{const c=n[d];if(!c||c.type!=="F")return null;const u=c,l=(u.children||[]).map(m=>n[m]).filter(m=>!!m&&m.type==="F").map(m=>a(m.bkmkId)).filter(Boolean);return o(u.bkmkNm)||l.length>0?{key:u.bkmkId,title:`📁 ${u.bkmkNm}`,children:l.length?l:void 0}:null};return t.map(d=>a(d)).filter(Boolean)},loadFavorites:async(e,n=!1)=>{console.log("loadFavorites ::::: ",e,n);const t=s();if(!(!n&&t.loadedFor===e&&Object.keys(t.nodes).length)){r({loading:!0,error:void 0});try{const o=await f.callService("SCMBKMK00101",{userId:e}),a=Array.isArray(o?.sub)?o.sub:[],d=H(a),c=k(d.nodes,d.rootIds);r({...d,treeNodes:c,loadedFor:e,loading:!1})}catch(o){throw r({loading:!1,error:o?.message||"즐겨찾기 로드 실패"}),o}}},loadFavoritesIfNeeded:async e=>{const n=s();(n.loadedFor!==e||Object.keys(n.nodes).length===0)&&await s().loadFavorites(e)},clearFavorites:()=>{r({nodes:{},rootIds:[],treeNodes:[],loadedFor:void 0,loading:!1,error:void 0}),console.log("📚 북마크 스토어 초기화 완료")},addNode:async e=>{const n=_(s()),t=W();r(o=>{const a=e.sortOrdr??O(o,e.prntBkmkId),d={...o,nodes:{...o.nodes,[t]:e.type==="F"?{bkmkId:t,type:"F",prntBkmkId:e.prntBkmkId||"-",sortOrdr:a,bkmkNm:e.bkmkNm??"새 폴더",children:[],sysCd:e.sysCd,userId:e.userId}:{bkmkId:t,type:"M",prntBkmkId:e.prntBkmkId,sortOrdr:a,menuId:e.menuId??"",menuNm:e.menuNm,sysCd:e.sysCd,userId:e.userId}},rootIds:o.rootIds.slice(),treeNodes:o.treeNodes};return X(d,t,e.prntBkmkId),d.treeNodes=k(d.nodes,d.rootIds),d});try{let o=t;const a=O(s(),e.prntBkmkId),d=await f.callService("SCMBKMK00102",{iudFlag:"I",type:e.type,sysCd:e.sysCd,userId:e.userId,bkmkId:t,bkmkNm:e.bkmkNm,prntBkmkId:e.prntBkmkId,menuId:e.menuId,sortOrdr:a,chngId:f.getUserId()});return o=String(d?.bkmkId??d?.itemId??t),r(c=>{const u=Z(c,t,o);return{...u,treeNodes:k(u.nodes,u.rootIds)}}),o}catch(o){throw r(n),o}},moveNode:async({bkmkId:e,newPrntBkmkId:n,sortOrdr:t,userId:o})=>{const a=s(),d=structuredClone(a.nodes),c=[...a.rootIds],u=d[e];if(!u)return;if(n!=="-"){const p=d[n];if(!p||p.type!=="F")throw new Error("부모는 폴더만 가능합니다.")}const l=u.prntBkmkId??"-",i=l==="-"?c:d[l].children||=[];{const p=i.indexOf(e);p>=0&&i.splice(p,1)}const m=n==="-"?c:d[n].children||=[];m.splice(Math.max(0,Math.min(t,m.length)),0,e),u.prntBkmkId=n,r({nodes:d,rootIds:c}),E(d,c,n),E(d,c,l);try{await f.callService("SCMBKMK00104",{bkmkId:e,prntBkmkId:n,sortOrdr:t,chngId:o})}catch(p){throw r(a),p}},removeNode:async e=>{const n=_(s());r(t=>{if(!t.nodes[e])return t;const o={...t,nodes:{...t.nodes},rootIds:t.rootIds.slice(),treeNodes:t.treeNodes};return R(o,e),o.treeNodes=k(o.nodes,o.rootIds),o});try{await f.callService("SCMBKMK00103",{bkmkId:e})}catch(t){throw r(n),t}},editNode:async({bkmkId:e,userId:n,bkmkNm:t,prntBkmkId:o,sortOrdr:a})=>{const d=_(s());r(c=>{const u={...c,nodes:{...c.nodes}},l=u.nodes[e];return l?.type==="F"&&typeof t=="string"&&(u.nodes[e]={...l,bkmkNm:t}),u});try{await f.callService("SCMBKMK00102",{iudFlag:"U",userId:n,bkmkId:e,bkmkNm:t,prntBkmkId:o,sortOrdr:a,chngId:f.getUserId()})}catch(c){throw r(d),c}},addFolder:async(e,n,t,o)=>await s().addNode({type:"F",bkmkNm:e,prntBkmkId:n,sysCd:t,userId:o}),addMenuToFolder:async(e,n)=>v(s().nodes,n.menuId)?"이미 북마크에 저장된 메뉴입니다.":await s().addNode({type:"M",prntBkmkId:e,sysCd:"KH",userId:f.getUserId(),menuId:n.menuId,menuNm:n.menuNm}),toggleMenuFavorite:async(e,n)=>{if(!e)return;const t=s(),o=Object.values(t.nodes).find(d=>d.type==="M"&&d.menuId===n.menuId);if(o){await s().removeNode(o.bkmkId);return}let a=U(t);a||(await s().loadFavorites(e,!0),a=U(s())),a&&await s().addNode({type:"M",prntBkmkId:a,sysCd:"KH",userId:f.getUserId(),menuId:n.menuId,menuNm:n.menuNm})},removeMenuByMenuId:async e=>{const n=s(),t=v(n.nodes,e);t&&await s().removeNode(t)},removeMenu:async e=>{await s().removeNode(e)},removeFolder:async e=>{await s().removeNode(e)},editFolder:async(e,n,t,o,a)=>{await s().editNode({bkmkId:e,userId:n,bkmkNm:t,prntBkmkId:o,sortOrdr:a})},convertToAntTreeData:(e,n,t,o=!1)=>{const a=c=>t?c.toLowerCase().includes(t.toLowerCase()):!0,d=c=>{const u=e[c];if(!u||o&&u.type!=="F")return null;if(u.type==="F"){const l=u,i=(l.children||[]).map(p=>d(p)).filter(Boolean);return a(l.bkmkNm)||i.length>0?{key:l.bkmkId,type:"F",title:`📁 ${l.bkmkNm}`,bkmkNm:l.bkmkNm,prntBkmkId:l.prntBkmkId,sortOrdr:l.sortOrdr,fullPath:l.fullPath,children:i.length?i:void 0}:null}else{const l=u,i=l.menuNm?`${l.menuNm} (${l.menuId})`:l.menuId;return a(i)?{key:l.bkmkId,type:"M",title:`📄 ${i}`,prntBkmkId:l.prntBkmkId,sortOrdr:l.sortOrdr,fullPath:l.fullPath,isLeaf:!0}:null}};return n.map(d).filter(Boolean)}}),D=b.create(K);function H(r){const s={},e=[],n=t=>{t.forEach(o=>{const a={type:o.type,bkmkId:o.bkmkId??o.BKMK_ID??o.id,prntBkmkId:o.prntBkmkId??o.PRNT_BKMK_ID??"-",sortOrdr:Number(o.sortOrdr??o.SORT_ORDR??0),sysCd:o.sysCd??o.SYS_CD,userId:o.userId??o.USER_ID,fullPath:o.fullPath??o.FULL_PATH};if(o.type==="F"){s[a.bkmkId]={...a,bkmkNm:o.bkmkNm??o.BKMK_NM??o.name??a.bkmkId,children:[]};const d=Array.isArray(o.children)?o.children:[];n(d)}else s[a.bkmkId]={...a,menuId:o.menuId??o.MENU_ID??"",menuNm:o.menuNm??o.MENU_NM}})};return n(r),Object.values(s).forEach(t=>{if(t.prntBkmkId&&t.prntBkmkId!=="-"){const o=s[t.prntBkmkId];o?.type==="F"&&o.children.push(t.bkmkId)}else t.type==="F"&&e.push(t.bkmkId)}),e.sort((t,o)=>(s[t].sortOrdr??0)-(s[o].sortOrdr??0)),Object.values(s).forEach(t=>{t.type==="F"&&t.children.sort((a,d)=>(s[a].sortOrdr??0)-(s[d].sortOrdr??0))}),{nodes:s,rootIds:e}}function _(r){return{...r,nodes:JSON.parse(JSON.stringify(r.nodes)),rootIds:r.rootIds.slice()}}function W(){return`tmp_${f.generateUID()}`}function O(r,s){if(!s||s==="-")return r.rootIds.length;const e=r.nodes[s];return e?e.children.length:0}function X(r,s,e){const n=r.nodes[s];if(n)if(e&&e!=="-"){const t=r.nodes[e];if(!t||t.type!=="F")return;n.prntBkmkId=e,t.children=[...t.children,s]}else n.prntBkmkId="-",r.rootIds=[...r.rootIds,s]}function J(r,s){const e=r.nodes[s];if(!e)return;const n=e.prntBkmkId;if(n&&n!=="-"){const t=r.nodes[n];t?.type==="F"&&(t.children=t.children.filter(o=>o!==s))}else r.rootIds=r.rootIds.filter(t=>t!==s)}function R(r,s){const e=r.nodes[s];if(!e)return;e.type==="F"&&e.children.slice().forEach(a=>R(r,a)),J(r,s);const{[s]:n,...t}=r.nodes;r.nodes=t}function Z(r,s,e){if(s===e)return r;const n=r.nodes[s];if(!n)return r;const t=JSON.parse(JSON.stringify(n));t.bkmkId=e;const o={...r.nodes,[e]:t};delete o[s];let a=r.rootIds;if(t.prntBkmkId&&t.prntBkmkId!=="-"){const d=o[t.prntBkmkId];d?.type==="F"&&(o[t.prntBkmkId]={...d,children:d.children.map(c=>c===s?e:c)})}else a=r.rootIds.map(d=>d===s?e:d);return{...r,nodes:o,rootIds:a}}function U(r){return r.rootIds.find(s=>r.nodes[s]?.type==="F")??null}function k(r,s){const e={};Object.values(r).forEach(c=>{const u=c.bkmkId,l=c.prntBkmkId;!u||!l||l==="-"||l===u||(e[l]??=[]).push(u)});const n=new Set,t=c=>{if(n.has(c))return null;const u=r[c];if(!u)return null;n.add(c);try{if(u.type==="F"){const i=u,m=e[c]??[];return{type:"F",bkmkId:c,bkmkNm:i.bkmkNm,prntBkmkId:i.prntBkmkId,children:m.map(t).filter(Boolean)}}const l=u;return{type:"M",bkmkId:c,bkmkNm:l.menuNm,menuId:l.menuId,menuNm:l.menuNm,prntBkmkId:l.prntBkmkId}}finally{n.delete(c)}},o=Object.values(r).filter(c=>c.prntBkmkId==="-"&&c.type==="M").map(c=>c.bkmkId),a=Object.values(r).filter(c=>c.prntBkmkId==="-"&&c.type==="F").map(c=>c.bkmkId);return Array.from(new Set([...s,...o,...a])).map(t).filter(Boolean)}function v(r,s){for(const e of Object.values(r))if(e.type==="M"&&e.menuId===s)return e.bkmkId;return null}function E(r,s,e){(!e||e==="-"?s:r[e].children||[]).forEach((t,o)=>{const a=r[t];a&&(a.sortOrdr=o)})}const P={DEFAULT_PRNT_GBCD:1},Q=r=>r&&typeof r=="object"&&typeof r.menuId=="string"&&typeof r.menuNm=="string",x=r=>Array.isArray(r)&&r.every(Q);let F=[],z=[];const ee=r=>{if(r&&typeof r=="object"){const s=r;if(s.menus&&x(s.menus))return s.menus;if(x(r))return r}return console.warn("⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다."),[]},te=(r,s)=>!!s&&r.crprCd===s.crprCd&&r.userId===s.userId&&(r.sysCd??__SYS_CD__)===(s.sysCd??__SYS_CD__)&&(r.prntGbcd??P.DEFAULT_PRNT_GBCD)===(s.prntGbcd??P.DEFAULT_PRNT_GBCD),oe=r=>{if(F.length===r.length&&F.every((o,a)=>o.menuId===r[a]?.menuId&&o.menuPrntId===r[a]?.menuPrntId))return z;if(!r.length)return[];const s=new Map,e=[];r.forEach(o=>o?.menuId&&s.set(o.menuId,{...o,children:[]})),r.forEach(o=>{const a=s.get(o.menuId);a&&(o.menuPrntId&&o.menuPrntId!==""&&o.menuPrntId!=="-"?s.get(o.menuPrntId)?.children?.push(a):e.push(a))});const n=o=>o.sort((a,d)=>{const c=a?.sortSq??(a?.menuNo?Number(a.menuNo):0),u=d?.sortSq??(d?.menuNo?Number(d.menuNo):0);return c-u}).map(a=>({...a,children:a.children&&a.children.length?n(a.children):void 0})),t=n(e);return F=[...r],z=t,t},M=b.create((r,s)=>({menuList:[],flatMenuList:[],isLoading:!1,error:null,_lastFetchParams:null,fetchMenu:async({crprCd:e,userId:n,prntGbcd:t,sysCd:o})=>{const a={crprCd:e,userId:n,sysCd:o??__SYS_CD__,prntGbcd:t??P.DEFAULT_PRNT_GBCD};if(te(a,s()._lastFetchParams)){console.log("✅ 중복 fetch 차단",a);return}r({isLoading:!0,error:null,_lastFetchParams:a});try{const d=await f.callService(f.getServiceCode("AUTH_MENU"),a),c=ee(d),u=oe(c);r({flatMenuList:c,menuList:u,isLoading:!1,error:null})}catch(d){r({isLoading:!1,error:d?.message??"메뉴 로드 실패"})}},clearMenu:()=>{r({menuList:[],flatMenuList:[],error:null,_lastFetchParams:null})},findMenuById:e=>{const{flatMenuList:n}=s();return n.find(t=>t.menuId===e)??null}})),L={MAX_TABS:15},A=b.create((r,s)=>({activeMenuId:null,activeMenuItem:null,activeDetailItem:null,tabs:[],sidebarCollapsed:!1,maxTabs:L.MAX_TABS,tabProtectFlag:{},tabParams:{},componentLabelMap:{},pinnedTabs:new Set,refreshTabKey:{},clearMenuViewStore:()=>{r({activeMenuId:null,activeMenuItem:null,activeDetailItem:null,tabs:[],sidebarCollapsed:!1,maxTabs:L.MAX_TABS,tabProtectFlag:{},tabParams:{},componentLabelMap:{},pinnedTabs:new Set,refreshTabKey:{}})},openTabFromMenu:(e,n,t)=>{const{tabs:o}=s(),a=o.find(u=>u.key===e.menuId),d=t?.skipRefreshModal??!1;if(a){if(d){s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId);return}S.Modal.confirm({title:`[${e.menuNm}] 메뉴이동 알림`,content:"이미 열린 화면입니다. 새로고침 하시겠습니까?",centered:!0,okText:"예",cancelText:"아니오",onOk:()=>{s().refreshTab(e.menuId),s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId)},onCancel:()=>{s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId)}});return}if(o.length>=L.MAX_TABS){console.warn("❌ 최대 탭 개수를 초과했습니다."),S.message.warning(`최대 ${L.MAX_TABS}개의 탭만 열 수 있습니다.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("zustand"),T=require("zustand/middleware"),f=require("../utils/index.cjs"),S=require("antd"),$=require("../chunks/layout-components-y9YpQQbx.cjs"),h=require("react"),V=require("axios"),C=b.create()(T.persist((r,s)=>({user:null,hrInfo:null,buttonAuths:{},componentSize:1,gridSize:2,spacingSize:2,enableProtectWrapper:!0,gridLayouts:{},theme:"modern",isLoggedIn:()=>!!s().user,setLoginUser:(e,n)=>{r({user:e,hrInfo:n??null}),console.log("사용자 로그인:",e,n)},clearLoginUser:()=>{r({user:null,hrInfo:null,buttonAuths:{}}),console.log("사용자 로그아웃")},updateUser:(e,n)=>{const t=s().user,o=s().hrInfo;t&&r({user:{...t,...e}}),o&&r({hrInfo:{...o,...n}})},setComponentSize:e=>{r({componentSize:e}),console.log("컴포넌트 사이즈 변경:",e)},setGridSize:e=>{r({gridSize:e}),console.log("그리드 사이즈 변경:",e)},setSpacingSize:e=>{r({spacingSize:e}),console.log("여백 사이즈 변경:",e)},setEnableProtectWrapper:e=>{r({enableProtectWrapper:e})},setTheme:e=>{r({theme:e}),console.log("테마 변경:",e)},getButtonAuth:(e,n)=>{const t=`${e}_${n}`;return s().buttonAuths[t]||null},setButtonAuth:(e,n,t)=>{const o=`${e}_${n}`;r(a=>({buttonAuths:{...a.buttonAuths,[o]:t}}))},clearButtonAuths:()=>{r({buttonAuths:{}})},getGridLayouts:e=>s().gridLayouts[e]||[],getGridLayout:(e,n,t)=>s().getGridLayouts(e).find(d=>d.menuId===n&&d.gridId===t)||null,saveGridLayout:(e,n,t,o)=>{const a={...s().gridLayouts};a[e]||(a[e]=[]);const d=a[e].findIndex(u=>u.menuId===n&&u.gridId===t),c={menuId:n,gridId:t,layout:o};d>=0?a[e][d]=c:a[e].push(c),r({gridLayouts:a}),console.log(`[UserStore] 그리드 레이아웃 저장 완료: ${e}/${n}/${t}`)},removeGridLayout:(e,n,t)=>{const o={...s().gridLayouts};o[e]&&(o[e]=o[e].filter(a=>!(a.menuId===n&&a.gridId===t)),r({gridLayouts:o}),console.log(`[UserStore] 그리드 레이아웃 삭제 완료: ${e}/${n}/${t}`))},clearGridLayouts:e=>{const n={...s().gridLayouts};delete n[e],r({gridLayouts:n}),console.log(`[UserStore] ${e}의 모든 그리드 레이아웃 삭제 완료`)},clearAllGridLayouts:()=>{r({gridLayouts:{}}),console.log("[UserStore] 전체 그리드 레이아웃 삭제 완료")}}),{name:"user-storage",partialize:r=>({user:r.user,hrInfo:r.hrInfo,componentSize:r.componentSize,gridSize:r.gridSize,spacingSize:r.spacingSize,enableProtectWrapper:r.enableProtectWrapper,gridLayouts:r.gridLayouts,theme:r.theme})})),Y=r=>{const s={};return r.forEach(e=>{const n=e.cmcdGrpCd,t=e.cmcdDtlCd;s[n]||(s[n]={}),s[n][t]={codeValue:t,codeNm:e.cmcdDtlNm,groupCode:n,fullCode:e.cmcdFullCd,color:e.cmcdColor,enabled:e.useYn==="Y",originalData:e}}),s},j=r=>{const s={};return r.forEach(e=>{const n=e.cmcdGrpCd,t=e.cmcdDtlCd,o=e.attrCd;s[n]||(s[n]={}),s[n][t]||(s[n][t]={}),s[n][t][o]||(s[n][t][o]=[]);const a={attrCd:o,attrNm:e.attrNm,attrValCd:e.attrValCd,attrValNm:e.attrValNm,refGrpCd:e.refGrpCd,dispSq:e.dispSq,enabled:e.useYn==="Y",originalData:e};s[n][t][o].push(a)}),s},g=b.create()(T.persist((r,s)=>({codeData:null,attrData:null,isLoading:!1,error:null,lastUpdated:null,fetchCommonCodes:async()=>{r({isLoading:!0,error:null});try{const e=f.getServiceCode("CMCD_CODE");if(!e)throw new Error("CMCD_CODE 서비스코드가 설정되지 않았습니다.");const n=f.getServiceCode("EXTN_CODE"),t=[f.callService(e,{crprCd:f.getCrprCd(),sysCd:__SYS_CD__})];n&&n.trim()!==""&&t.push(f.callService(n,{}));const a=(await Promise.all(t)).map(i=>i?.data&&Array.isArray(i.data)?i.data:Array.isArray(i)?i:(console.warn("공통코드 응답에서 배열을 찾을 수 없습니다:",i),[])).flat(),d=f.getServiceCode("CMCD_ATTR");let c=[];if(d&&d.trim()!=="")try{const i=await f.callService(d,{crprCd:f.getCrprCd(),sysCd:__SYS_CD__});i?.data&&Array.isArray(i.data)?c=i.data:Array.isArray(i)?c=i:(console.warn("속성코드 응답에서 배열을 찾을 수 없습니다:",i),c=[])}catch(i){console.warn("속성코드 조회 실패:",i),c=[]}const u=Y(a),l=j(c);r({codeData:u,attrData:l,isLoading:!1,error:null,lastUpdated:new Date})}catch(e){console.error("공통코드 데이터 가져오기 실패:",e),r({isLoading:!1,error:e instanceof Error?e.message:"공통코드 데이터 가져오기 실패"})}},clearCodes:()=>{r({codeData:null,attrData:null,isLoading:!1,error:null,lastUpdated:null})},getCodeList:(e,n="all",t=!1)=>{const{codeData:o}=s();if(!o||!o[e])return[];const a=o[e],d=[];return Object.values(a).forEach(c=>{(n==="all"||n==="Y"&&c.enabled||n==="N"&&!c.enabled)&&d.push({label:c.codeNm,value:t?c.codeValue:c.fullCode,tagColor:c.color})}),d.sort((c,u)=>c.value.localeCompare(u.value))},getCodeAttrList:(e,n,t="all")=>{const{attrData:o}=s();if(!o||!o[e])return[];const a=[],d=o[e];return Object.keys(d).forEach(c=>{const u=d[c];u[n]&&u[n].forEach(l=>{!l.attrValCd||!l.attrValNm||(t==="all"||t==="Y"&&l.enabled||t==="N"&&!l.enabled)&&a.push({label:l.attrValNm,value:l.attrValCd})})}),a.sort((c,u)=>{const l=Object.values(o[e]||{}).flatMap(I=>I[n]||[]).find(I=>I.attrValCd===c.value),i=Object.values(o[e]||{}).flatMap(I=>I[n]||[]).find(I=>I.attrValCd===u.value),m=l?.dispSq??999999,p=i?.dispSq??999999;return m!==p?(m??999999)-(p??999999):c.value.localeCompare(u.value)})},getCodeName:(e,n)=>{const{codeData:t}=s();if(!t||!t[e])return null;const o=t[e][n];return o?o.codeNm:null},getCodeColor:(e,n)=>{const{codeData:t}=s();if(!t||!t[e])return null;const o=t[e][n];return o?o.color:null},getGridLookup:e=>{const{codeData:n}=s();if(!n||!n[e])return{labels:[],values:[],lookupDisplay:!0};const t=n[e],o=[],a=[];return Object.values(t).filter(d=>d.enabled).sort((d,c)=>d.codeValue.localeCompare(c.codeValue)).forEach(d=>{o.push(d.codeNm),a.push(d.codeValue)}),{labels:o,values:a,lookupDisplay:!0}}}),{name:"code-storage",partialize:r=>({codeData:r.codeData,attrData:r.attrData,lastUpdated:r.lastUpdated})})),K=(r,s)=>({nodes:{},rootIds:[],loadedFor:void 0,loading:!1,error:void 0,treeNodes:[],isMenuBookmarked:e=>Object.values(s().nodes).some(n=>n.type==="M"&&n.menuId===e),getPrntBkmkIdByMenuId:e=>{const n=v(s().nodes,e);return n?s().nodes[n]?.prntBkmkId??"-":"-"},getNodeByMenuId:e=>{const n=v(s().nodes,e);if(!n)return null;const t=s().nodes[n];return t?.type==="M"?t:null},getFolderTree:e=>{const{nodes:n,rootIds:t}=s(),o=d=>e?d.toLowerCase().includes(e.toLowerCase()):!0,a=d=>{const c=n[d];if(!c||c.type!=="F")return null;const u=c,l=(u.children||[]).map(m=>n[m]).filter(m=>!!m&&m.type==="F").map(m=>a(m.bkmkId)).filter(Boolean);return o(u.bkmkNm)||l.length>0?{key:u.bkmkId,title:`📁 ${u.bkmkNm}`,children:l.length?l:void 0}:null};return t.map(d=>a(d)).filter(Boolean)},loadFavorites:async(e,n=!1)=>{console.log("loadFavorites ::::: ",e,n);const t=s();if(!(!n&&t.loadedFor===e&&Object.keys(t.nodes).length)){r({loading:!0,error:void 0});try{const o=await f.callService("SCMBKMK00101",{userId:e}),a=Array.isArray(o?.sub)?o.sub:[],d=H(a),c=k(d.nodes,d.rootIds);r({...d,treeNodes:c,loadedFor:e,loading:!1})}catch(o){throw r({loading:!1,error:o?.message||"즐겨찾기 로드 실패"}),o}}},loadFavoritesIfNeeded:async e=>{const n=s();(n.loadedFor!==e||Object.keys(n.nodes).length===0)&&await s().loadFavorites(e)},clearFavorites:()=>{r({nodes:{},rootIds:[],treeNodes:[],loadedFor:void 0,loading:!1,error:void 0}),console.log("📚 북마크 스토어 초기화 완료")},addNode:async e=>{const n=_(s()),t=W();r(o=>{const a=e.sortOrdr??O(o,e.prntBkmkId),d={...o,nodes:{...o.nodes,[t]:e.type==="F"?{bkmkId:t,type:"F",prntBkmkId:e.prntBkmkId||"-",sortOrdr:a,bkmkNm:e.bkmkNm??"새 폴더",children:[],sysCd:e.sysCd,userId:e.userId}:{bkmkId:t,type:"M",prntBkmkId:e.prntBkmkId,sortOrdr:a,menuId:e.menuId??"",menuNm:e.menuNm,sysCd:e.sysCd,userId:e.userId}},rootIds:o.rootIds.slice(),treeNodes:o.treeNodes};return X(d,t,e.prntBkmkId),d.treeNodes=k(d.nodes,d.rootIds),d});try{let o=t;const a=O(s(),e.prntBkmkId),d=await f.callService("SCMBKMK00102",{iudFlag:"I",type:e.type,sysCd:e.sysCd,userId:e.userId,bkmkId:t,bkmkNm:e.bkmkNm,prntBkmkId:e.prntBkmkId,menuId:e.menuId,sortOrdr:a,chngId:f.getUserId()});return o=String(d?.bkmkId??d?.itemId??t),r(c=>{const u=Z(c,t,o);return{...u,treeNodes:k(u.nodes,u.rootIds)}}),o}catch(o){throw r(n),o}},moveNode:async({bkmkId:e,newPrntBkmkId:n,sortOrdr:t,userId:o})=>{const a=s(),d=structuredClone(a.nodes),c=[...a.rootIds],u=d[e];if(!u)return;if(n!=="-"){const p=d[n];if(!p||p.type!=="F")throw new Error("부모는 폴더만 가능합니다.")}const l=u.prntBkmkId??"-",i=l==="-"?c:d[l].children||=[];{const p=i.indexOf(e);p>=0&&i.splice(p,1)}const m=n==="-"?c:d[n].children||=[];m.splice(Math.max(0,Math.min(t,m.length)),0,e),u.prntBkmkId=n,r({nodes:d,rootIds:c}),E(d,c,n),E(d,c,l);try{await f.callService("SCMBKMK00104",{bkmkId:e,prntBkmkId:n,sortOrdr:t,chngId:o})}catch(p){throw r(a),p}},removeNode:async e=>{const n=_(s());r(t=>{if(!t.nodes[e])return t;const o={...t,nodes:{...t.nodes},rootIds:t.rootIds.slice(),treeNodes:t.treeNodes};return R(o,e),o.treeNodes=k(o.nodes,o.rootIds),o});try{await f.callService("SCMBKMK00103",{bkmkId:e})}catch(t){throw r(n),t}},editNode:async({bkmkId:e,userId:n,bkmkNm:t,prntBkmkId:o,sortOrdr:a})=>{const d=_(s());r(c=>{const u={...c,nodes:{...c.nodes}},l=u.nodes[e];return l?.type==="F"&&typeof t=="string"&&(u.nodes[e]={...l,bkmkNm:t}),u});try{await f.callService("SCMBKMK00102",{iudFlag:"U",userId:n,bkmkId:e,bkmkNm:t,prntBkmkId:o,sortOrdr:a,chngId:f.getUserId()})}catch(c){throw r(d),c}},addFolder:async(e,n,t,o)=>await s().addNode({type:"F",bkmkNm:e,prntBkmkId:n,sysCd:t,userId:o}),addMenuToFolder:async(e,n)=>v(s().nodes,n.menuId)?"이미 북마크에 저장된 메뉴입니다.":await s().addNode({type:"M",prntBkmkId:e,sysCd:"KH",userId:f.getUserId(),menuId:n.menuId,menuNm:n.menuNm}),toggleMenuFavorite:async(e,n)=>{if(!e)return;const t=s(),o=Object.values(t.nodes).find(d=>d.type==="M"&&d.menuId===n.menuId);if(o){await s().removeNode(o.bkmkId);return}let a=U(t);a||(await s().loadFavorites(e,!0),a=U(s())),a&&await s().addNode({type:"M",prntBkmkId:a,sysCd:"KH",userId:f.getUserId(),menuId:n.menuId,menuNm:n.menuNm})},removeMenuByMenuId:async e=>{const n=s(),t=v(n.nodes,e);t&&await s().removeNode(t)},removeMenu:async e=>{await s().removeNode(e)},removeFolder:async e=>{await s().removeNode(e)},editFolder:async(e,n,t,o,a)=>{await s().editNode({bkmkId:e,userId:n,bkmkNm:t,prntBkmkId:o,sortOrdr:a})},convertToAntTreeData:(e,n,t,o=!1)=>{const a=c=>t?c.toLowerCase().includes(t.toLowerCase()):!0,d=c=>{const u=e[c];if(!u||o&&u.type!=="F")return null;if(u.type==="F"){const l=u,i=(l.children||[]).map(p=>d(p)).filter(Boolean);return a(l.bkmkNm)||i.length>0?{key:l.bkmkId,type:"F",title:`📁 ${l.bkmkNm}`,bkmkNm:l.bkmkNm,prntBkmkId:l.prntBkmkId,sortOrdr:l.sortOrdr,fullPath:l.fullPath,children:i.length?i:void 0}:null}else{const l=u,i=l.menuNm?`${l.menuNm} (${l.menuId})`:l.menuId;return a(i)?{key:l.bkmkId,type:"M",title:`📄 ${i}`,prntBkmkId:l.prntBkmkId,sortOrdr:l.sortOrdr,fullPath:l.fullPath,isLeaf:!0}:null}};return n.map(d).filter(Boolean)}}),D=b.create(K);function H(r){const s={},e=[],n=t=>{t.forEach(o=>{const a={type:o.type,bkmkId:o.bkmkId??o.BKMK_ID??o.id,prntBkmkId:o.prntBkmkId??o.PRNT_BKMK_ID??"-",sortOrdr:Number(o.sortOrdr??o.SORT_ORDR??0),sysCd:o.sysCd??o.SYS_CD,userId:o.userId??o.USER_ID,fullPath:o.fullPath??o.FULL_PATH};if(o.type==="F"){s[a.bkmkId]={...a,bkmkNm:o.bkmkNm??o.BKMK_NM??o.name??a.bkmkId,children:[]};const d=Array.isArray(o.children)?o.children:[];n(d)}else s[a.bkmkId]={...a,menuId:o.menuId??o.MENU_ID??"",menuNm:o.menuNm??o.MENU_NM}})};return n(r),Object.values(s).forEach(t=>{if(t.prntBkmkId&&t.prntBkmkId!=="-"){const o=s[t.prntBkmkId];o?.type==="F"&&o.children.push(t.bkmkId)}else t.type==="F"&&e.push(t.bkmkId)}),e.sort((t,o)=>(s[t].sortOrdr??0)-(s[o].sortOrdr??0)),Object.values(s).forEach(t=>{t.type==="F"&&t.children.sort((a,d)=>(s[a].sortOrdr??0)-(s[d].sortOrdr??0))}),{nodes:s,rootIds:e}}function _(r){return{...r,nodes:JSON.parse(JSON.stringify(r.nodes)),rootIds:r.rootIds.slice()}}function W(){return`tmp_${f.generateUID()}`}function O(r,s){if(!s||s==="-")return r.rootIds.length;const e=r.nodes[s];return e?e.children.length:0}function X(r,s,e){const n=r.nodes[s];if(n)if(e&&e!=="-"){const t=r.nodes[e];if(!t||t.type!=="F")return;n.prntBkmkId=e,t.children=[...t.children,s]}else n.prntBkmkId="-",r.rootIds=[...r.rootIds,s]}function J(r,s){const e=r.nodes[s];if(!e)return;const n=e.prntBkmkId;if(n&&n!=="-"){const t=r.nodes[n];t?.type==="F"&&(t.children=t.children.filter(o=>o!==s))}else r.rootIds=r.rootIds.filter(t=>t!==s)}function R(r,s){const e=r.nodes[s];if(!e)return;e.type==="F"&&e.children.slice().forEach(a=>R(r,a)),J(r,s);const{[s]:n,...t}=r.nodes;r.nodes=t}function Z(r,s,e){if(s===e)return r;const n=r.nodes[s];if(!n)return r;const t=JSON.parse(JSON.stringify(n));t.bkmkId=e;const o={...r.nodes,[e]:t};delete o[s];let a=r.rootIds;if(t.prntBkmkId&&t.prntBkmkId!=="-"){const d=o[t.prntBkmkId];d?.type==="F"&&(o[t.prntBkmkId]={...d,children:d.children.map(c=>c===s?e:c)})}else a=r.rootIds.map(d=>d===s?e:d);return{...r,nodes:o,rootIds:a}}function U(r){return r.rootIds.find(s=>r.nodes[s]?.type==="F")??null}function k(r,s){const e={};Object.values(r).forEach(c=>{const u=c.bkmkId,l=c.prntBkmkId;!u||!l||l==="-"||l===u||(e[l]??=[]).push(u)});const n=new Set,t=c=>{if(n.has(c))return null;const u=r[c];if(!u)return null;n.add(c);try{if(u.type==="F"){const i=u,m=e[c]??[];return{type:"F",bkmkId:c,bkmkNm:i.bkmkNm,prntBkmkId:i.prntBkmkId,children:m.map(t).filter(Boolean)}}const l=u;return{type:"M",bkmkId:c,bkmkNm:l.menuNm,menuId:l.menuId,menuNm:l.menuNm,prntBkmkId:l.prntBkmkId}}finally{n.delete(c)}},o=Object.values(r).filter(c=>c.prntBkmkId==="-"&&c.type==="M").map(c=>c.bkmkId),a=Object.values(r).filter(c=>c.prntBkmkId==="-"&&c.type==="F").map(c=>c.bkmkId);return Array.from(new Set([...s,...o,...a])).map(t).filter(Boolean)}function v(r,s){for(const e of Object.values(r))if(e.type==="M"&&e.menuId===s)return e.bkmkId;return null}function E(r,s,e){(!e||e==="-"?s:r[e].children||[]).forEach((t,o)=>{const a=r[t];a&&(a.sortOrdr=o)})}const P={DEFAULT_PRNT_GBCD:1},Q=r=>r&&typeof r=="object"&&typeof r.menuId=="string"&&typeof r.menuNm=="string",x=r=>Array.isArray(r)&&r.every(Q);let F=[],z=[];const ee=r=>{if(r&&typeof r=="object"){const s=r;if(s.menus&&x(s.menus))return s.menus;if(x(r))return r}return console.warn("⚠️ 메뉴 응답이 비어있거나 예상과 다릅니다."),[]},te=(r,s)=>!!s&&r.crprCd===s.crprCd&&r.userId===s.userId&&(r.sysCd??__SYS_CD__)===(s.sysCd??__SYS_CD__)&&(r.prntGbcd??P.DEFAULT_PRNT_GBCD)===(s.prntGbcd??P.DEFAULT_PRNT_GBCD),oe=r=>{if(F.length===r.length&&F.every((o,a)=>o.menuId===r[a]?.menuId&&o.menuPrntId===r[a]?.menuPrntId))return z;if(!r.length)return[];const s=new Map,e=[];r.forEach(o=>o?.menuId&&s.set(o.menuId,{...o,children:[]})),r.forEach(o=>{const a=s.get(o.menuId);a&&(o.menuPrntId&&o.menuPrntId!==""&&o.menuPrntId!=="-"?s.get(o.menuPrntId)?.children?.push(a):e.push(a))});const n=o=>o.sort((a,d)=>{const c=a?.sortSq??(a?.menuNo?Number(a.menuNo):0),u=d?.sortSq??(d?.menuNo?Number(d.menuNo):0);return c-u}).map(a=>({...a,children:a.children&&a.children.length?n(a.children):void 0})),t=n(e);return F=[...r],z=t,t},M=b.create((r,s)=>({menuList:[],flatMenuList:[],isLoading:!1,error:null,_lastFetchParams:null,fetchMenu:async({crprCd:e,userId:n,prntGbcd:t,sysCd:o})=>{const a={crprCd:e,userId:n,sysCd:o??__SYS_CD__,prntGbcd:t??P.DEFAULT_PRNT_GBCD};if(te(a,s()._lastFetchParams)){console.log("✅ 중복 fetch 차단",a);return}r({isLoading:!0,error:null,_lastFetchParams:a});try{const d=await f.callService(f.getServiceCode("AUTH_MENU"),a),c=ee(d),u=oe(c);r({flatMenuList:c,menuList:u,isLoading:!1,error:null})}catch(d){r({isLoading:!1,error:d?.message??"메뉴 로드 실패"})}},clearMenu:()=>{r({menuList:[],flatMenuList:[],error:null,_lastFetchParams:null})},findMenuById:e=>{const{flatMenuList:n}=s();return n.find(t=>t.menuId===e)??null}})),L={MAX_TABS:15},A=b.create((r,s)=>({activeMenuId:null,activeMenuItem:null,activeDetailItem:null,tabs:[],sidebarCollapsed:!1,maxTabs:L.MAX_TABS,tabProtectFlag:{},tabParams:{},componentLabelMap:{},pinnedTabs:new Set,refreshTabKey:{},clearMenuViewStore:()=>{r({activeMenuId:null,activeMenuItem:null,activeDetailItem:null,tabs:[],sidebarCollapsed:!1,maxTabs:L.MAX_TABS,tabProtectFlag:{},tabParams:{},componentLabelMap:{},pinnedTabs:new Set,refreshTabKey:{}})},openTabFromMenu:(e,n,t)=>{const{tabs:o}=s(),a=o.find(u=>u.key===e.menuId),d=t?.skipRefreshModal??!1;if(a){if(d){s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId);return}S.Modal.confirm({title:`[${e.menuNm}] 메뉴이동 알림`,content:"이미 열린 화면입니다. 새로고침 하시겠습니까?",centered:!0,okText:"예",cancelText:"아니오",onOk:()=>{s().refreshTab(e.menuId),s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId)},onCancel:()=>{s().focusTab(e.menuId),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId)}});return}if(o.length>=L.MAX_TABS){console.warn("❌ 최대 탭 개수를 초과했습니다."),S.message.warning(`최대 ${L.MAX_TABS}개의 탭만 열 수 있습니다.
|
|
2
2
|
기존 탭을 닫고 다시 시도해주세요.`);return}const c={key:e.menuId,label:e.menuNm,gubun:"M",menuItem:e,closable:!0};r({tabs:[...o,c],activeMenuId:e.menuId,activeMenuItem:e}),s().setTabParams(e.menuId,n||{}),e?.prsnInfoYn==="Y"&&s().setProtectFlagForKey(e.menuId)},openTabByMenuId:(e,n,t)=>{const o=M.getState().findMenuById(e);o?s().openTabFromMenu(o,n,t):S.message.warning("메뉴 ID를 찾을 수 없습니다.")},openDetailView:(e,n,t)=>{const{tabs:o}=s();if(o.find(d=>d.key===e.viewId))s().focusTab(e.viewId);else{const d={key:e.viewId,label:e.viewLabel,gubun:"C",componentItem:{prgrUrl:n,prsnInfoYn:t,prntInfo:e.prntInfo},closable:!0};r({tabs:[...o,d],activeMenuId:e.viewId,activeDetailItem:e}),s().setTabParams(e.viewId,e.viewParams||{})}},closeTab:e=>{const{tabs:n,activeMenuId:t,pinnedTabs:o}=s();if(o.has(e))return;n.find(c=>c.key===e);const a=n.filter(c=>c.key!==e);let d=t;if(t===e){const c=n.findIndex(u=>u.key===e);d=a.length?a[Math.min(c,a.length-1)]?.key??null:null}r({tabs:a}),d&&s().focusTab(d)},focusTab:e=>{const{tabs:n}=s(),t=n.find(o=>o.key===e);if(t){const o=t.gubun==="C"?{viewId:t.key,viewLabel:t.label,prntInfo:t.componentItem?.prntInfo}:null;t.menuItem?.prsnInfoYn==="Y"?(r({activeMenuId:e,activeMenuItem:t.menuItem,activeDetailItem:o}),console.log("✅ 탭 포커스 (개인정보) - activeMenuItem:",t.menuItem),s().setProtectFlagForKey(e)):(r({activeMenuId:e,activeMenuItem:t.menuItem,activeDetailItem:o}),s().clearProtectFlagForKey(e))}else r({activeMenuId:e,activeMenuItem:null,activeDetailItem:null}),console.warn("❌ 탭을 찾을 수 없음:",e)},closeAllTabs:()=>r({tabs:[],activeMenuId:null,activeMenuItem:null,activeDetailItem:null}),toggleSidebar:()=>r(e=>({sidebarCollapsed:!e.sidebarCollapsed})),reorderTabs:e=>r(n=>{const t=new Map(n.tabs.map(o=>[o.key,o]));return{tabs:e.map(o=>t.get(o)).filter(Boolean)}}),setProtectFlagForKey:e=>r(n=>({tabProtectFlag:{...n.tabProtectFlag,[e]:!0}})),clearProtectFlagForKey:e=>r(n=>{const t={...n.tabProtectFlag};return delete t[e],{tabProtectFlag:t}}),setTabParams:(e,n)=>r(t=>{const o=t.tabParams[e]||{},a={...n||{}};return Object.keys(o).length===Object.keys(a).length&&Object.keys(a).every(c=>o[c]===a[c])?t:{tabParams:{...t.tabParams,[e]:a}}}),setComponentLabelMap:(e,n)=>r({componentLabelMap:e}),togglePinTab:e=>r(n=>{const t=new Set(n.pinnedTabs);return t.has(e)?t.delete(e):t.add(e),{pinnedTabs:t}}),refreshTab:e=>r(n=>({refreshTabKey:{...n.refreshTabKey,[e]:Date.now()}})),closeOtherTabs:e=>{const{tabs:n,activeMenuId:t}=s();if(!n.find(c=>c.key===e))return;const a=s().pinnedTabs;n.filter(c=>c.key!==e&&!a.has(c.key)).forEach(c=>s().closeTab(c.key)),t!==e&&s().focusTab(e)},closeRightTabs:e=>{const{tabs:n}=s(),t=n.findIndex(d=>d.key===e);if(t<0)return;const o=s().pinnedTabs;n.slice(t+1).filter(d=>!o.has(d.key)).forEach(d=>s().closeTab(d.key))}})),q=b.create((r,s)=>({popups:[],activePopupId:null,isLoading:!1,error:null,zIndexSeed:1e3,openPopup:async(e,n,t)=>{r({isLoading:!0,error:null});try{let o=null;const a=await f.callService(f.getServiceCode("SRCH_POPU"),{crprCd:f.getUserInfo()?.crprCd,popuCd:e});o=a?.mstr;const d=a?.dtls||[];if(!o||!o.popuUrl){const p=`팝업 정보를 찾을 수 없습니다: ${e}`;throw console.error(p),new Error(p)}const u=(p=>`/src/pages/views/popup/${p}`)(o.popuUrl),l=s().zIndexSeed+1,i={popupId:`popup_${Date.now()}_${f.generateUID()}`,popupCode:e,popupTitle:t?.title||o.popuNm||"팝업",popupUrl:u,popupParams:n,width:o.popuWdth||800,height:o.popuHght||600,resizable:!0,draggable:!0,buttonList:d,config:t,zIndex:l},m=s().popups.find(p=>p.popupCode===e);if(m){r({activePopupId:m.popupId,popups:s().popups.map(p=>p.popupId===m.popupId?{...p,config:t}:p),isLoading:!1});return}r(p=>({popups:[...p.popups,i],activePopupId:i.popupId,isLoading:!1,zIndexSeed:l}))}catch(o){r({error:o instanceof Error?o.message:"팝업 열기 실패",isLoading:!1})}},openCorePopup:(e,n)=>{const t=`popup_${Date.now()}_${f.generateUID()}`,o=s().zIndexSeed+1,d=$.localPopupRegistry[e]?.defaultConfig||{},c={...d,...n,buttons:n?.buttons!==void 0?n.buttons:d.buttons,callback:n?.callback!==void 0?n.callback:d.callback},u=n?.defaultParams||{},l=s().popups.find(m=>m.popupCode===e&&m.isLocal);if(l){const m=s().zIndexSeed+1;r({activePopupId:l.popupId,zIndexSeed:m}),r(p=>({popups:p.popups.map(I=>I.popupId===l.popupId?{...I,config:c,zIndex:m,close:()=>{s().closePopup(l.popupId)}}:I)}));return}const i={popupId:t,popupCode:e,popupTitle:c.title||e,popupUrl:"",popupParams:u,width:c.width||1e3,height:c.height||700,resizable:c.resizable!==void 0?c.resizable:!0,draggable:c.draggable!==void 0?c.draggable:!0,buttonList:[],config:c,isLocal:!0,zIndex:o,close:()=>{s().closePopup(t)}};r(m=>({popups:[...m.popups,i],activePopupId:t,zIndexSeed:o}))},closePopup:e=>{const{popups:n,activePopupId:t}=s(),o=n.filter(d=>d.popupId!==e);let a=t;t===e&&(a=o.length>0?o[o.length-1].popupId:null),r({popups:o,activePopupId:a})},closeAllPopups:()=>{r({popups:[],activePopupId:null})},setActivePopup:e=>{const n=s().zIndexSeed+1;r(t=>({activePopupId:e,zIndexSeed:n,popups:t.popups.map(o=>o.popupId===e?{...o,zIndex:n}:o)}))},updatePopupConfig:(e,n)=>{r(t=>({popups:t.popups.map(o=>o.popupId===e?{...o,config:{...o.config,...n}}:o)}))}})),B=b.create()(T.persist((r,s)=>({sysInfo:null,appList:[],appCount:0,fetchCurrentSystemInfo:async()=>{try{const e=await f.callService(f.getServiceCode("SYS_INFO"),{crprCd:f.getCrprCd(),sysCd:__SYS_CD__});e&&e.sysInfo?r({sysInfo:e.sysInfo,appList:e.appList||[],appCount:e.appCount||0}):(console.warn("시스템 정보 조회 응답이 올바르지 않습니다.",e),r({sysInfo:null,appList:[],appCount:0}))}catch(e){console.error("시스템 정보 조회 실패:",e),r({sysInfo:null,appList:[],appCount:0})}},setSystemInfo:e=>{r({sysInfo:e})},setAppList:e=>{r({appList:e})},getSystemName:e=>{const n=e||__SYS_CD__,t=s().sysInfo;return t&&t.sysCd===n?t.sysNm:null},getCurrentAppList:()=>s().appList,getAppItCdList:()=>{const e=s().appList,n=new Map;return e.forEach(t=>{t.appItCd&&!n.has(t.appItCd)&&n.set(t.appItCd,t.appItCdNm)}),Array.from(n.entries()).map(([t,o])=>({appItCd:t,appItCdNm:o}))},getAppListByAppItCd:e=>s().appList.filter(n=>n.appItCd===e),getAppByAppCd:e=>s().appList.find(n=>n.appCd===e),findSystemByAppCd:e=>{const n=s().appList.find(o=>o.appCd===e),t=s().sysInfo;if(n&&t)return{sysCd:t.sysCd,appCd:n.appCd,appItCd:n.appItCd}},clearSystemInfo:()=>{r({sysInfo:null,appList:[],appCount:0})}}),{name:"system-info-store",partialize:r=>({sysInfo:r.sysInfo,appList:r.appList,appCount:r.appCount})})),ne=b.create(r=>({requestCount:0,loading:!1,showLoading:()=>r(s=>{const e=s.requestCount+1;return{requestCount:e,loading:e>0}}),hideLoading:()=>r(s=>{const e=Math.max(0,s.requestCount-1);return{requestCount:e,loading:e>0}})})),re=b.create(r=>({requestCount:0,loading:!1,showLoading:()=>r(s=>{const e=s.requestCount+1;return{requestCount:e,loading:e>0}}),hideLoading:()=>r(s=>{const e=Math.max(0,s.requestCount-1);return{requestCount:e,loading:e>0}})}));function G(){const[r,s]=h.useState(!1),e=h.useCallback(n=>{const t=n?.getModifierState?.("CapsLock");typeof t=="boolean"&&s(t)},[]);return{capsOn:r,onKeyDown:e}}function se(r){const{loginApi:s,fetchCommonCodes:e,onAfterLogin:n,onError:t,rememberCookie:o={enabled:!0,days:30}}=r,[a,d]=h.useState(!1),{capsOn:c,onKeyDown:u}=G(),l="SCMSIGN00101",i=`${__SYS_CD__}_login_id`,m={id:o?.enabled?f.getCookie(i):void 0,pswr:void 0},p=h.useCallback(async I=>{d(!0);try{const N={crprCd:"100",id:I.id,pswr:await f.encryptSha256(I.pswr)},y=await(s??(w=>f.callService(l,w)))(N);if(y?.userInfo?.userId){if(C.getState().setLoginUser(y.userInfo,y?.hrInfo),localStorage.setItem("LOGIN_USER_ID",y.userInfo.userId),o?.enabled){const w=o.days??30;I.remember?f.setCookie(i,I.id??"",w):f.setCookie(i,"",0)}return e?await e():await g.getState().fetchCommonCodes(),n(y),{user:y.userInfo,response:y}}else throw t({user:y.userInfo,response:y}),new Error("사용자 정보가 유효하지 않습니다.")}catch(N){t(N)}finally{d(!1)}},[l,s,e,n,t,o?.enabled,o?.days]);return{loading:a,capsOn:c,prefills:m,onKeyDown:u,doLogin:p}}function ae(r){const{loginApi:s,fetchCommonCodes:e,onAfterLogin:n,onError:t}=r,[o,a]=h.useState("LOADING"),d=h.useCallback(async c=>{a("LOADING");try{const u=new URLSearchParams;u.append("ip",f.getClientIp()||"");const l=await V.post("/api/sso",u);if(l.data.result&&l.data.userId)S.message.success(l.data.message);else if(!l.data.result)throw console.error(l.data.code," ::: ",l.data.message),S.message.error(l.data.message),new Error(l.data.message);const i={crprCd:"100",sysCd:c.sysCd,userId:l.data.userId,id:l.data.userId,pswr:await f.encryptSha256("krx2025!@")},p=await(s??(I=>f.callService("SCMSIGN00199",I)))(i);if(p?.userInfo?.userId)return C.getState().setLoginUser(p.userInfo,p?.hrInfo),localStorage.setItem("LOGIN_USER_ID",p.userInfo.userId),e?await e():await g.getState().fetchCommonCodes(),n(p),a("SUCCESS"),{user:p.userInfo,response:p};throw new Error("INVALID_USER")}catch(u){t?.({msg:u.message}),a("FAIL")}},[s,e,n,t]);return{loginStatus:o,doSsoLogin:d}}function de(r){return()=>{C.getState().clearLoginUser(),B.getState().clearSystemInfo(),g.getState().clearCodes(),M.getState().clearMenu(),A.getState().clearMenuViewStore(),D.getState().clearFavorites(),localStorage.removeItem("LOGIN_USER_ID"),r?.()}}const ce=()=>g.getState(),le=()=>q.getState(),ue=()=>C.getState(),ie=()=>D.getState(),pe=()=>M.getState(),fe=()=>A.getState(),me=()=>B.getState();exports.useCapsLock=G;exports.useCode=ce;exports.useCodeStore=g;exports.useFavorite=ie;exports.useFavoriteStore=D;exports.useLoadingStore=ne;exports.useLogin=se;exports.useLogout=de;exports.useMenuModel=pe;exports.useMenuModelStore=M;exports.useMenuView=fe;exports.useMenuViewStore=A;exports.usePopupLoadingStore=re;exports.usePopupState=le;exports.usePopupStore=q;exports.useSsoLogin=ae;exports.useSystemCode=me;exports.useSystemStore=B;exports.useUser=ue;exports.useUserStore=C;
|
package/dist/stores/index.js
CHANGED
|
@@ -245,7 +245,7 @@ const v = b()(
|
|
|
245
245
|
return Object.keys(d).forEach((l) => {
|
|
246
246
|
const u = d[l];
|
|
247
247
|
u[n] && u[n].forEach((c) => {
|
|
248
|
-
(t === "all" || t === "Y" && c.enabled || t === "N" && !c.enabled) && a.push({
|
|
248
|
+
!c.attrValCd || !c.attrValNm || (t === "all" || t === "Y" && c.enabled || t === "N" && !c.enabled) && a.push({
|
|
249
249
|
label: c.attrValNm,
|
|
250
250
|
value: c.attrValCd
|
|
251
251
|
});
|
|
@@ -467,7 +467,7 @@ const v = b()(
|
|
|
467
467
|
rootIds: t.rootIds.slice(),
|
|
468
468
|
treeNodes: t.treeNodes
|
|
469
469
|
};
|
|
470
|
-
return
|
|
470
|
+
return Y(o, e), o.treeNodes = C(o.nodes, o.rootIds), o;
|
|
471
471
|
});
|
|
472
472
|
try {
|
|
473
473
|
await I("SCMBKMK00103", { bkmkId: e });
|
|
@@ -585,7 +585,7 @@ const v = b()(
|
|
|
585
585
|
};
|
|
586
586
|
return n.map(d).filter(Boolean);
|
|
587
587
|
}
|
|
588
|
-
}),
|
|
588
|
+
}), V = b(oe);
|
|
589
589
|
function ne(r) {
|
|
590
590
|
const s = {}, e = [], n = (t) => {
|
|
591
591
|
t.forEach((o) => {
|
|
@@ -660,10 +660,10 @@ function ae(r, s) {
|
|
|
660
660
|
} else
|
|
661
661
|
r.rootIds = r.rootIds.filter((t) => t !== s);
|
|
662
662
|
}
|
|
663
|
-
function
|
|
663
|
+
function Y(r, s) {
|
|
664
664
|
const e = r.nodes[s];
|
|
665
665
|
if (!e) return;
|
|
666
|
-
e.type === "F" && e.children.slice().forEach((a) =>
|
|
666
|
+
e.type === "F" && e.children.slice().forEach((a) => Y(r, a)), ae(r, s);
|
|
667
667
|
const { [s]: n, ...t } = r.nodes;
|
|
668
668
|
r.nodes = t;
|
|
669
669
|
}
|
|
@@ -822,7 +822,7 @@ const ce = (r) => {
|
|
|
822
822
|
}
|
|
823
823
|
})), S = {
|
|
824
824
|
MAX_TABS: 15
|
|
825
|
-
},
|
|
825
|
+
}, j = b((r, s) => ({
|
|
826
826
|
// 📊 초기 상태값
|
|
827
827
|
activeMenuId: null,
|
|
828
828
|
activeMenuItem: null,
|
|
@@ -1183,7 +1183,7 @@ const ce = (r) => {
|
|
|
1183
1183
|
)
|
|
1184
1184
|
}));
|
|
1185
1185
|
}
|
|
1186
|
-
})),
|
|
1186
|
+
})), K = b()(
|
|
1187
1187
|
A(
|
|
1188
1188
|
(r, s) => ({
|
|
1189
1189
|
// 현재 시스템 정보
|
|
@@ -1385,29 +1385,29 @@ function Me(r) {
|
|
|
1385
1385
|
}
|
|
1386
1386
|
function Ne(r) {
|
|
1387
1387
|
return () => {
|
|
1388
|
-
v.getState().clearLoginUser(),
|
|
1388
|
+
v.getState().clearLoginUser(), K.getState().clearSystemInfo(), M.getState().clearCodes(), E.getState().clearMenu(), j.getState().clearMenuViewStore(), V.getState().clearFavorites(), localStorage.removeItem("LOGIN_USER_ID"), r?.();
|
|
1389
1389
|
};
|
|
1390
1390
|
}
|
|
1391
|
-
const we = () => M.getState(), _e = () => pe.getState(), Fe = () => v.getState(), Pe = () =>
|
|
1391
|
+
const we = () => M.getState(), _e = () => pe.getState(), Fe = () => v.getState(), Pe = () => V.getState(), Te = () => E.getState(), De = () => j.getState(), Ae = () => K.getState();
|
|
1392
1392
|
export {
|
|
1393
1393
|
fe as useCapsLock,
|
|
1394
1394
|
we as useCode,
|
|
1395
1395
|
M as useCodeStore,
|
|
1396
1396
|
Pe as useFavorite,
|
|
1397
|
-
|
|
1397
|
+
V as useFavoriteStore,
|
|
1398
1398
|
Se as useLoadingStore,
|
|
1399
1399
|
ve as useLogin,
|
|
1400
1400
|
Ne as useLogout,
|
|
1401
1401
|
Te as useMenuModel,
|
|
1402
1402
|
E as useMenuModelStore,
|
|
1403
1403
|
De as useMenuView,
|
|
1404
|
-
|
|
1404
|
+
j as useMenuViewStore,
|
|
1405
1405
|
Le as usePopupLoadingStore,
|
|
1406
1406
|
_e as usePopupState,
|
|
1407
1407
|
pe as usePopupStore,
|
|
1408
1408
|
Me as useSsoLogin,
|
|
1409
1409
|
Ae as useSystemCode,
|
|
1410
|
-
|
|
1410
|
+
K as useSystemStore,
|
|
1411
1411
|
Fe as useUser,
|
|
1412
1412
|
v as useUserStore
|
|
1413
1413
|
};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BwgXlsxUploader.d.ts","sourceRoot":"","sources":["../../../src/components/core/BwgXlsxUploader.tsx"],"names":[],"mappings":"AA4CA,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,eAAe,GAAI,oDAMtB,oBAAoB,4CAqRtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|