@bwg-ui/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/README.md +106 -0
  2. package/dist/chunks/BwgLargeUploader-ByN1XWV4.js +809 -0
  3. package/dist/chunks/BwgLargeUploader-CU0-MVk4.cjs +1 -0
  4. package/dist/chunks/BwgSpace-CnLM4qcg.js +26 -0
  5. package/dist/chunks/BwgSpace-b0hmM1Ht.cjs +1 -0
  6. package/dist/chunks/QuickServiceToggle-CiCuWfCF.cjs +183 -0
  7. package/dist/chunks/QuickServiceToggle-y7esp1kp.js +15510 -0
  8. package/dist/chunks/ServiceCodeContext--ZnMtjzD.cjs +1 -0
  9. package/dist/chunks/ServiceCodeContext-CDZMr3Mm.js +87 -0
  10. package/dist/chunks/UtilsContext-B16Gh9LL.cjs +1 -0
  11. package/dist/chunks/UtilsContext-BbfZYiMR.js +240 -0
  12. package/dist/chunks/_commonjsHelpers-C6fGbg64.js +6 -0
  13. package/dist/chunks/_commonjsHelpers-DwGv2jUC.cjs +1 -0
  14. package/dist/chunks/codeStore-Dt6j826J.cjs +1 -0
  15. package/dist/chunks/codeStore-bxk_q1sl.js +449 -0
  16. package/dist/chunks/commonUtils-BV6WFv-z.js +628 -0
  17. package/dist/chunks/commonUtils-L9Jgc5y-.cjs +1 -0
  18. package/dist/chunks/favoriteStore-CguRSEcH.js +367 -0
  19. package/dist/chunks/favoriteStore-TgeeY32l.cjs +1 -0
  20. package/dist/chunks/jsx-runtime-CeSfJrVB.cjs +30 -0
  21. package/dist/chunks/jsx-runtime-Dpn_P65e.js +633 -0
  22. package/dist/chunks/messageUtils-9DXOwada.js +117 -0
  23. package/dist/chunks/messageUtils-RjJD_ArW.cjs +1 -0
  24. package/dist/chunks/popupStore-CVD8SPTa.cjs +1 -0
  25. package/dist/chunks/popupStore-Dp_fqtim.js +96 -0
  26. package/dist/chunks/realFormat-Cha7OTd9.cjs +1 -0
  27. package/dist/chunks/realFormat-DRGLFabQ.js +304 -0
  28. package/dist/chunks/serviceConfig-BJBsdee_.js +699 -0
  29. package/dist/chunks/serviceConfig-Cr2P4yr4.cjs +2 -0
  30. package/dist/components/common/BwgButtonGroup.d.ts +31 -0
  31. package/dist/components/common/BwgCmptArea.d.ts +16 -0
  32. package/dist/components/common/BwgConfigProvider.d.ts +10 -0
  33. package/dist/components/common/BwgDrawer.d.ts +20 -0
  34. package/dist/components/common/BwgGrid.d.ts +505 -0
  35. package/dist/components/common/BwgInfoArea.d.ts +8 -0
  36. package/dist/components/common/BwgPopup.d.ts +9 -0
  37. package/dist/components/common/BwgSpace.d.ts +11 -0
  38. package/dist/components/common/BwgTable.d.ts +13 -0
  39. package/dist/components/common/BwgTabs.d.ts +5 -0
  40. package/dist/components/common/BwgTitleBox.d.ts +29 -0
  41. package/dist/components/common/BwgView.d.ts +36 -0
  42. package/dist/components/common/ContentBox.d.ts +19 -0
  43. package/dist/components/common/ContentLayOut.d.ts +13 -0
  44. package/dist/components/common/GlobalConfigProvider.d.ts +9 -0
  45. package/dist/components/common/QuickServiceToggle.d.ts +13 -0
  46. package/dist/components/common/SearchBox.d.ts +16 -0
  47. package/dist/components/common/index.cjs +1 -0
  48. package/dist/components/common/index.d.ts +34 -0
  49. package/dist/components/common/index.js +24 -0
  50. package/dist/components/core/BwgButton.d.ts +6 -0
  51. package/dist/components/core/BwgCheck.d.ts +11 -0
  52. package/dist/components/core/BwgCheckList.d.ts +11 -0
  53. package/dist/components/core/BwgDatePicker.d.ts +10 -0
  54. package/dist/components/core/BwgForm.d.ts +6 -0
  55. package/dist/components/core/BwgFormItem.d.ts +17 -0
  56. package/dist/components/core/BwgInput.d.ts +9 -0
  57. package/dist/components/core/BwgLargeUploader.d.ts +15 -0
  58. package/dist/components/core/BwgMaskedInput.d.ts +20 -0
  59. package/dist/components/core/BwgMaskedPicker.d.ts +11 -0
  60. package/dist/components/core/BwgMultiSelect.d.ts +14 -0
  61. package/dist/components/core/BwgNumber.d.ts +13 -0
  62. package/dist/components/core/BwgRadio.d.ts +8 -0
  63. package/dist/components/core/BwgRangePicker.d.ts +12 -0
  64. package/dist/components/core/BwgSearch.d.ts +16 -0
  65. package/dist/components/core/BwgSelect.d.ts +15 -0
  66. package/dist/components/core/BwgTextArea.d.ts +8 -0
  67. package/dist/components/core/BwgUploader.d.ts +34 -0
  68. package/dist/components/core/index.cjs +1 -0
  69. package/dist/components/core/index.d.ts +36 -0
  70. package/dist/components/core/index.js +21 -0
  71. package/dist/components/guide/BwgComponentGuide.d.ts +2 -0
  72. package/dist/components/guide/BwgDeveloperGuide.d.ts +2 -0
  73. package/dist/components/guide/index.cjs +1 -0
  74. package/dist/components/guide/index.d.ts +2 -0
  75. package/dist/components/guide/index.js +7 -0
  76. package/dist/index.cjs +1 -0
  77. package/dist/index.d.ts +5 -0
  78. package/dist/index.js +291 -0
  79. package/dist/provider/contexts/CommonCodeContext.d.ts +46 -0
  80. package/dist/provider/contexts/SearchBoxContext.d.ts +15 -0
  81. package/dist/provider/contexts/ServiceCodeContext.d.ts +108 -0
  82. package/dist/provider/contexts/UtilsContext.d.ts +194 -0
  83. package/dist/provider/contexts/index.d.ts +4 -0
  84. package/dist/provider/hooks/index.d.ts +2 -0
  85. package/dist/provider/hooks/usePopup.d.ts +17 -0
  86. package/dist/provider/hooks/useViewState.d.ts +14 -0
  87. package/dist/provider/index.cjs +1 -0
  88. package/dist/provider/index.d.ts +2 -0
  89. package/dist/provider/index.js +27 -0
  90. package/dist/public/styles/assets/images/contents/icon/ico-business-trip.svg +21 -0
  91. package/dist/public/styles/assets/images/contents/icon/ico-holiday.svg +23 -0
  92. package/dist/public/styles/assets/images/contents/icon/ico-menu-help.svg +5 -0
  93. package/dist/public/styles/assets/images/contents/icon/ico-overtime.svg +17 -0
  94. package/dist/public/styles/assets/images/contents/icon/ico-quick-tab-move.svg +8 -0
  95. package/dist/public/styles/assets/images/contents/icon/quick tab-text.svg +4 -0
  96. package/dist/public/styles/assets/images/contents/icon/quick-tab-text.svg +4 -0
  97. package/dist/public/test.txt +0 -0
  98. package/dist/stores/codeStore.d.ts +173 -0
  99. package/dist/stores/favoriteStore.d.ts +19 -0
  100. package/dist/stores/index.cjs +1 -0
  101. package/dist/stores/index.d.ts +14 -0
  102. package/dist/stores/index.js +20 -0
  103. package/dist/stores/menuStore.d.ts +52 -0
  104. package/dist/stores/popupStore.d.ts +72 -0
  105. package/dist/stores/userStore.d.ts +36 -0
  106. package/dist/styles/assets/fonts/Roboto/Roboto-bold.eot +2751 -0
  107. package/dist/styles/assets/fonts/Roboto/Roboto-bold.svg +626 -0
  108. package/dist/styles/assets/fonts/Roboto/Roboto-bold.ttf +2755 -0
  109. package/dist/styles/assets/fonts/Roboto/Roboto-bold.woff +2755 -0
  110. package/dist/styles/assets/fonts/Roboto/Roboto-bold.woff2 +2754 -0
  111. package/dist/styles/assets/fonts/Roboto/Roboto-medium.eot +0 -0
  112. package/dist/styles/assets/fonts/Roboto/Roboto-medium.svg +1064 -0
  113. package/dist/styles/assets/fonts/Roboto/Roboto-medium.ttf +0 -0
  114. package/dist/styles/assets/fonts/Roboto/Roboto-medium.woff +0 -0
  115. package/dist/styles/assets/fonts/Roboto/Roboto-medium.woff2 +2754 -0
  116. package/dist/styles/assets/fonts/Roboto/Roboto-regular.eot +0 -0
  117. package/dist/styles/assets/fonts/Roboto/Roboto-regular.svg +1063 -0
  118. package/dist/styles/assets/fonts/Roboto/Roboto-regular.ttf +1597 -0
  119. package/dist/styles/assets/fonts/Roboto/Roboto-regular.woff +1597 -0
  120. package/dist/styles/assets/fonts/Roboto/Roboto-regular.woff2 +1597 -0
  121. package/dist/styles/assets/fonts/material/MaterialIcons-Regular.eot +1594 -0
  122. package/dist/styles/assets/fonts/material/MaterialIcons-Regular.ttf +0 -0
  123. package/dist/styles/assets/fonts/material/MaterialIcons-Regular.woff +1594 -0
  124. package/dist/styles/assets/fonts/material/MaterialIcons-Regular.woff2 +1594 -0
  125. package/dist/styles/assets/fonts/material/MaterialSymbolsOutlined.woff2 +0 -0
  126. package/dist/styles/assets/fonts/meiryo/meiryo.ttf +0 -0
  127. package/dist/styles/assets/fonts/meiryo/meiryob.ttf +0 -0
  128. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothic.eot +0 -0
  129. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothic.ttf +0 -0
  130. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothic.woff +0 -0
  131. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicBold.eot +0 -0
  132. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicBold.ttf +0 -0
  133. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicBold.woff +0 -0
  134. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWeb.eot +0 -0
  135. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWeb.ttf +0 -0
  136. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWeb.woff +0 -0
  137. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebBold.eot +0 -0
  138. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebBold.ttf +0 -0
  139. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebBold.woff +0 -0
  140. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebLight.eot +0 -0
  141. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebLight.ttf +0 -0
  142. package/dist/styles/assets/fonts/nanumBarun/NanumBarunGothicWebLight.woff +0 -0
  143. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.eot +2314 -0
  144. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.otf +2314 -0
  145. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.svg +47 -0
  146. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.ttf +2301 -0
  147. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.woff +2314 -0
  148. package/dist/styles/assets/fonts/notokr/NotoSans-Bold.woff2 +2315 -0
  149. package/dist/styles/assets/fonts/notokr/NotoSans-Light.otf +0 -0
  150. package/dist/styles/assets/fonts/notokr/NotoSans-Light.woff +0 -0
  151. package/dist/styles/assets/fonts/notokr/NotoSans-Light.woff2 +0 -0
  152. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.eot +0 -0
  153. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.otf +0 -0
  154. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.svg +47 -0
  155. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.ttf +0 -0
  156. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.woff +0 -0
  157. package/dist/styles/assets/fonts/notokr/NotoSans-Medium.woff2 +0 -0
  158. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.eot +0 -0
  159. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.otf +0 -0
  160. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.svg +47 -0
  161. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.ttf +2299 -0
  162. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.woff +0 -0
  163. package/dist/styles/assets/fonts/notokr/NotoSans-Regular.woff2 +0 -0
  164. package/dist/styles/assets/fonts/poppins/Poppins-ExtraLight.eot +0 -0
  165. package/dist/styles/assets/fonts/poppins/Poppins-ExtraLight.ttf +0 -0
  166. package/dist/styles/assets/fonts/poppins/Poppins-ExtraLight.woff +0 -0
  167. package/dist/styles/assets/fonts/poppins/Poppins-ExtraLight.woff2 +0 -0
  168. package/dist/styles/assets/fonts/poppins/Poppins-Light.eot +0 -0
  169. package/dist/styles/assets/fonts/poppins/Poppins-Light.ttf +0 -0
  170. package/dist/styles/assets/fonts/poppins/Poppins-Light.woff +0 -0
  171. package/dist/styles/assets/fonts/poppins/Poppins-Light.woff2 +0 -0
  172. package/dist/styles/assets/fonts/poppins/Poppins-Medium.eot +0 -0
  173. package/dist/styles/assets/fonts/poppins/Poppins-Medium.ttf +0 -0
  174. package/dist/styles/assets/fonts/poppins/Poppins-Medium.woff +0 -0
  175. package/dist/styles/assets/fonts/poppins/Poppins-Medium.woff2 +0 -0
  176. package/dist/styles/assets/fonts/poppins/Poppins-Regular.eot +0 -0
  177. package/dist/styles/assets/fonts/poppins/Poppins-Regular.ttf +0 -0
  178. package/dist/styles/assets/fonts/poppins/Poppins-Regular.woff +0 -0
  179. package/dist/styles/assets/fonts/poppins/Poppins-Regular.woff2 +0 -0
  180. package/dist/styles/assets/fonts/poppins/Poppins-SemiBold.eot +0 -0
  181. package/dist/styles/assets/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  182. package/dist/styles/assets/fonts/poppins/Poppins-SemiBold.woff +0 -0
  183. package/dist/styles/assets/fonts/poppins/Poppins-SemiBold.woff2 +0 -0
  184. package/dist/styles/assets/fonts/pretendard/Pretendard-Black.woff2 +0 -0
  185. package/dist/styles/assets/fonts/pretendard/Pretendard-Bold.woff2 +0 -0
  186. package/dist/styles/assets/fonts/pretendard/Pretendard-ExtraBold.woff2 +0 -0
  187. package/dist/styles/assets/fonts/pretendard/Pretendard-ExtraLight.woff2 +0 -0
  188. package/dist/styles/assets/fonts/pretendard/Pretendard-Light.woff2 +0 -0
  189. package/dist/styles/assets/fonts/pretendard/Pretendard-Medium.woff2 +0 -0
  190. package/dist/styles/assets/fonts/pretendard/Pretendard-Regular.woff2 +0 -0
  191. package/dist/styles/assets/fonts/pretendard/Pretendard-SemiBold.woff2 +0 -0
  192. package/dist/styles/assets/fonts/pretendard/Pretendard-Thin.woff2 +0 -0
  193. package/dist/styles/assets/images/README.md +144 -0
  194. package/dist/styles/assets/images/backgrounds/landing_bg.png +0 -0
  195. package/dist/styles/assets/images/backgrounds/login_bg_01.png +0 -0
  196. package/dist/styles/assets/images/backgrounds/login_bg_02.png +0 -0
  197. package/dist/styles/assets/images/contents/btn/btn-down-on.png +0 -0
  198. package/dist/styles/assets/images/contents/btn/btn-down.png +0 -0
  199. package/dist/styles/assets/images/contents/btn/btn-left-on.png +0 -0
  200. package/dist/styles/assets/images/contents/btn/btn-left.png +0 -0
  201. package/dist/styles/assets/images/contents/btn/btn-right-on.png +0 -0
  202. package/dist/styles/assets/images/contents/btn/btn-right.png +0 -0
  203. package/dist/styles/assets/images/contents/btn/btn-up-on.png +0 -0
  204. package/dist/styles/assets/images/contents/btn/btn-up.png +0 -0
  205. package/dist/styles/assets/images/contents/icon/ico-business-trip.svg +21 -0
  206. package/dist/styles/assets/images/contents/icon/ico-holiday.svg +23 -0
  207. package/dist/styles/assets/images/contents/icon/ico-menu-help.svg +5 -0
  208. package/dist/styles/assets/images/contents/icon/ico-overtime.svg +17 -0
  209. package/dist/styles/assets/images/contents/icon/ico-quick-tab-move.svg +4 -0
  210. package/dist/styles/assets/images/contents/icon/ico-setting.svg +4 -0
  211. package/dist/styles/assets/images/contents/icon/ico_blue.png +0 -0
  212. package/dist/styles/assets/images/contents/icon/ico_red.png +0 -0
  213. package/dist/styles/assets/images/contents/icon/quick tab-text.svg +4 -0
  214. package/dist/styles/assets/images/contents/icon/quick-tab-text.svg +4 -0
  215. package/dist/styles/assets/images/logos/KRX Logo.svg +22 -0
  216. package/dist/styles/assets/images/logos/bwg-logo-blue.png +0 -0
  217. package/dist/styles/assets/images/logos/krx-logo-x2.png +0 -0
  218. package/dist/styles/assets/images/logos/krx-logo.png +0 -0
  219. package/dist/styles/assets/react.svg +1 -0
  220. package/dist/styles/components.css +785 -0
  221. package/dist/styles/fonts.css +101 -0
  222. package/dist/styles/global.css +52 -0
  223. package/dist/styles/index.css +41 -0
  224. package/dist/styles/layout.css +1132 -0
  225. package/dist/styles/login.css +151 -0
  226. package/dist/styles/popup.css +30 -0
  227. package/dist/styles/renderers.css +190 -0
  228. package/dist/styles/size.css +4019 -0
  229. package/dist/styles/variables.css +106 -0
  230. package/dist/test.txt +0 -0
  231. package/dist/types/images.d.ts +25 -0
  232. package/dist/utils/apiUtils.d.ts +85 -0
  233. package/dist/utils/arrayUtils.d.ts +34 -0
  234. package/dist/utils/commonUtils.d.ts +54 -0
  235. package/dist/utils/cookieUtils.d.ts +4 -0
  236. package/dist/utils/dateUtils.d.ts +26 -0
  237. package/dist/utils/envUtils.d.ts +8 -0
  238. package/dist/utils/imageUtils.d.ts +31 -0
  239. package/dist/utils/index.cjs +1 -0
  240. package/dist/utils/index.d.ts +14 -0
  241. package/dist/utils/index.js +211 -0
  242. package/dist/utils/messageUtils.d.ts +65 -0
  243. package/dist/utils/notificationUtils.d.ts +51 -0
  244. package/dist/utils/objectUtils.d.ts +27 -0
  245. package/dist/utils/realFormat.d.ts +242 -0
  246. package/dist/utils/serviceConfig.d.ts +35 -0
  247. package/dist/utils/stringUtils.d.ts +142 -0
  248. package/dist/utils/userUtils.d.ts +19 -0
  249. package/package.json +123 -0
  250. package/public/styles/assets/images/contents/icon/ico-business-trip.svg +21 -0
  251. package/public/styles/assets/images/contents/icon/ico-holiday.svg +23 -0
  252. package/public/styles/assets/images/contents/icon/ico-menu-help.svg +5 -0
  253. package/public/styles/assets/images/contents/icon/ico-overtime.svg +17 -0
  254. package/public/styles/assets/images/contents/icon/ico-quick-tab-move.svg +8 -0
  255. package/public/styles/assets/images/contents/icon/quick tab-text.svg +4 -0
  256. package/public/styles/assets/images/contents/icon/quick-tab-text.svg +4 -0
  257. package/public/test.txt +0 -0
@@ -0,0 +1 @@
1
+ "use strict";const a=require("./jsx-runtime-CeSfJrVB.cjs"),c=require("react"),d=require("./serviceConfig-Cr2P4yr4.cjs"),S=c.createContext(null),x=({children:o})=>{const e=c.useRef(null),C={searchBoxRef:e,getFormData:()=>e.current?.getFormData()||{},setFormData:v=>{e.current?.setFormData(v)},resetForm:()=>{e.current?.resetForm()},validateForm:async()=>await e.current?.validateForm()||{success:!1,error:null}};return a.jsxRuntimeExports.jsx(S.Provider,{value:C,children:o})},g=()=>{const o=c.useContext(S);if(!o)throw new Error("useSearchBox must be used within a SearchBoxProvider");return o},u={AUTH_BTNS:"SCMSIGN00202",AUTH_MENU:"SCMSIGN00201",SRCH_CODE:"SCMSIGN00301",SRCH_POPU:"SCMPOPU00101",AUTH_BMRK:"SCMBMRK00101"},l=c.createContext(null),m=({children:o,serviceCodes:e={}})=>{c.useEffect(()=>{d.setServiceCodeOverrides(e)},[e]);const i={serviceCodes:e,getServiceCode:r=>{if(e[r]&&e[r].trim()!=="")return console.log(`🔧 Provider 설정 사용: ${r} = ${e[r]}`),e[r];const s=u[r];return console.log(`🔧 기본값 사용: ${r} = ${s}`),s}};return a.jsxRuntimeExports.jsx(l.Provider,{value:i,children:o})},n=()=>{const o=c.useContext(l);if(!o)throw new Error("useServiceCode must be used within a ServiceCodeProvider");return o},f=o=>{const{getServiceCode:e}=n();return e(o)},P=()=>{const{getServiceCode:o}=n(),e={};for(const t of Object.keys(u))e[t]=o(t);return e},F=()=>{const{getServiceCode:o}=n();console.log("🔧 bwg-core 서비스코드 설정:"),console.log("📋 Provider 설정 > 기본값 순서로 확인");for(const e of Object.keys(u)){const t=o(e);console.log(` ${e}: ${t}`)}};exports.SearchBoxProvider=x;exports.ServiceCodeProvider=m;exports.useAllServiceCodes=P;exports.useLogServiceCodeConfig=F;exports.useSearchBox=g;exports.useServiceCode=n;exports.useServiceCodeValue=f;
@@ -0,0 +1,87 @@
1
+ import { j as u } from "./jsx-runtime-Dpn_P65e.js";
2
+ import { useRef as m, createContext as i, useContext as S, useEffect as x } from "react";
3
+ import { an as f } from "./serviceConfig-BJBsdee_.js";
4
+ const l = i(null), h = ({
5
+ children: o
6
+ }) => {
7
+ const e = m(null), v = {
8
+ searchBoxRef: e,
9
+ getFormData: () => e.current?.getFormData() || {},
10
+ setFormData: (C) => {
11
+ e.current?.setFormData(C);
12
+ },
13
+ resetForm: () => {
14
+ e.current?.resetForm();
15
+ },
16
+ validateForm: async () => await e.current?.validateForm() || {
17
+ success: !1,
18
+ error: null
19
+ }
20
+ };
21
+ return /* @__PURE__ */ u.jsx(l.Provider, { value: v, children: o });
22
+ }, E = () => {
23
+ const o = S(l);
24
+ if (!o)
25
+ throw new Error("useSearchBox must be used within a SearchBoxProvider");
26
+ return o;
27
+ }, s = {
28
+ // 권한 관련
29
+ AUTH_BTNS: "SCMSIGN00202",
30
+ // 버튼 권한 조회
31
+ AUTH_MENU: "SCMSIGN00201",
32
+ // 메뉴 권한 조회
33
+ SRCH_CODE: "SCMSIGN00301",
34
+ // 코드 조회
35
+ // 팝업 관련
36
+ SRCH_POPU: "SCMPOPU00101",
37
+ // 팝업 조회
38
+ // 즐겨찾기 관련
39
+ AUTH_BMRK: "SCMBMRK00101"
40
+ // 즐겨찾기 관리
41
+ }, d = i(null), B = ({
42
+ children: o,
43
+ serviceCodes: e = {}
44
+ }) => {
45
+ x(() => {
46
+ f(e);
47
+ }, [e]);
48
+ const a = {
49
+ serviceCodes: e,
50
+ getServiceCode: (r) => {
51
+ if (e[r] && e[r].trim() !== "")
52
+ return console.log(`🔧 Provider 설정 사용: ${r} = ${e[r]}`), e[r];
53
+ const n = s[r];
54
+ return console.log(`🔧 기본값 사용: ${r} = ${n}`), n;
55
+ }
56
+ };
57
+ return /* @__PURE__ */ u.jsx(d.Provider, { value: a, children: o });
58
+ }, c = () => {
59
+ const o = S(d);
60
+ if (!o)
61
+ throw new Error("useServiceCode must be used within a ServiceCodeProvider");
62
+ return o;
63
+ }, D = (o) => {
64
+ const { getServiceCode: e } = c();
65
+ return e(o);
66
+ }, w = () => {
67
+ const { getServiceCode: o } = c(), e = {};
68
+ for (const t of Object.keys(s))
69
+ e[t] = o(t);
70
+ return e;
71
+ }, M = () => {
72
+ const { getServiceCode: o } = c();
73
+ console.log("🔧 bwg-core 서비스코드 설정:"), console.log("📋 Provider 설정 > 기본값 순서로 확인");
74
+ for (const e of Object.keys(s)) {
75
+ const t = o(e);
76
+ console.log(` ${e}: ${t}`);
77
+ }
78
+ };
79
+ export {
80
+ h as S,
81
+ B as a,
82
+ c as b,
83
+ D as c,
84
+ w as d,
85
+ M as e,
86
+ E as u
87
+ };
@@ -0,0 +1 @@
1
+ "use strict";const u=require("react"),b=require("./popupStore-CVD8SPTa.cjs"),y=require("./jsx-runtime-CeSfJrVB.cjs"),L=require("./codeStore-Dt6j826J.cjs"),o=require("./commonUtils-L9Jgc5y-.cjs"),i=require("./serviceConfig-Cr2P4yr4.cjs"),x=()=>!1,E=()=>{const{popups:e,activePopupId:r,setActivePopup:s,closePopup:m,openPopup:c}=b.usePopupStore(),l=u.useCallback(async(d,g,C)=>{try{await c(d,g,C)}catch(p){throw console.error("팝업 열기 실패:",p),p}},[c]);return{popups:e,activePopupId:r,setActivePopup:s,closePopup:m,showPopup:l,isPopup:e.length>0}},D=u.createContext(void 0),S=({children:e})=>{const{codeData:r,isLoading:s,error:m,lastUpdated:c,getCodeList:l,getCodeListByOption:d,getCodeName:g,getCodeColor:C,getCodeByOption:p,getAvailableGroupCodes:U,getGridLookup:f,fetchCommonCodes:P}=L.useCodeStore(),v={codeData:r,isLoading:s,error:m,lastUpdated:c,getCodeList:l,getCodeListByOption:d,getCodeName:g,getCodeColor:C,getCodeByOption:p,getAvailableGroupCodes:U,getGridLookup:f,refreshCodes:P};return y.jsxRuntimeExports.jsx(D.Provider,{value:v,children:e})},a=()=>{const e=u.useContext(D);if(e===void 0)throw new Error("useCommonCode must be used within a CommonCodeProvider");return e},A=()=>{const{getCodeList:e,isLoading:r,error:s}=a();return{getCodeList:e,isLoading:r,error:s}},I=()=>{const{getCodeName:e,isLoading:r,error:s}=a();return{getCodeName:e,isLoading:r,error:s}},N=()=>{const{getCodeColor:e,isLoading:r,error:s}=a();return{getCodeColor:e,isLoading:r,error:s}},T=()=>{const{getCodeListByOption:e,isLoading:r,error:s}=a();return{getCodeListByOption:e,isLoading:r,error:s}},G=()=>{const{getGridLookup:e,isLoading:r,error:s}=a();return{getGridLookup:e,isLoading:r,error:s}},k={...o.dateUtils,...i.stringUtils,isEmptyArray:o.isEmptyArray,isNotEmptyArray:o.isNotEmptyArray,unique:o.unique,shuffle:o.shuffle,sortBy:o.sortBy,max:o.max,min:o.min,average:o.average,sum:o.sum,randomFromArray:o.randomFromArray,flattenArray:o.flattenArray,...o.objectUtils,debounce:o.debounce,throttle:o.throttle,setLocalStorage:o.setLocalStorage,getLocalStorage:o.getLocalStorage,formatNumber:o.formatNumber,formatCurrency:o.formatCurrency,copyToClipboard:o.copyToClipboard,isMobile:o.isMobile,isDesktop:o.isDesktop,callService:i.callService,apiGet:i.apiGet,apiPost:i.apiPost,apiPut:i.apiPut,apiDelete:i.apiDelete,apiPatch:i.apiPatch},h=u.createContext(void 0),q=({children:e})=>y.jsxRuntimeExports.jsx(h.Provider,{value:{utils:k},children:e}),n=()=>{const e=u.useContext(h);if(e===void 0)throw new Error("useUtils must be used within a UtilsProvider");return e.utils},t=(e,r,s)=>e&&typeof e[r]=="function"?e[r]:s||(()=>{}),w=()=>{const e=n();return{formatDate:t(e,"formatDate"),formatDateKorean:t(e,"formatDateKorean"),getCurrentDate:t(e,"getCurrentDate"),getCurrentDateString:t(e,"getCurrentDateString"),getRelativeTime:t(e,"getRelativeTime"),isToday:t(e,"isToday"),isThisWeek:t(e,"isThisWeek"),isThisMonth:t(e,"isThisMonth"),getDateDiff:t(e,"getDateDiff"),calculateAge:t(e,"calculateAge")}},B=()=>{const e=n();return{isEmpty:t(e,"isEmpty"),isNotEmpty:t(e,"isNotEmpty"),truncate:t(e,"truncate"),capitalize:t(e,"capitalize"),formatPhoneNumber:t(e,"formatPhoneNumber"),isValidEmail:t(e,"isValidEmail"),removeHtmlTags:t(e,"removeHtmlTags"),generateUID:t(e,"generateUID"),generateShortUID:t(e,"generateShortUID"),generateLongUID:t(e,"generateLongUID"),generateNumericUID:t(e,"generateNumericUID"),generateAlphanumericUID:t(e,"generateAlphanumericUID"),generateGUID:t(e,"generateGUID"),generateGUIDWithoutHyphens:t(e,"generateGUIDWithoutHyphens"),generateTimestampUID:t(e,"generateTimestampUID"),generateCustomUID:t(e,"generateCustomUID"),encryptSha256:t(e,"encryptSha256"),bxmEncrypt:t(e,"bxmEncrypt"),bxmDecrypt:t(e,"bxmDecrypt"),simpleEncrypt:t(e,"simpleEncrypt"),simpleDecrypt:t(e,"simpleDecrypt"),md5Hash:t(e,"md5Hash"),sha256Hash:t(e,"sha256Hash"),base64Encode:t(e,"base64Encode"),base64Decode:t(e,"base64Decode")}},H=()=>{const e=n();return{isEmptyArray:t(e,"isEmptyArray"),isNotEmptyArray:t(e,"isNotEmptyArray"),unique:t(e,"unique"),shuffle:t(e,"shuffle"),sortBy:t(e,"sortBy"),max:t(e,"max"),min:t(e,"min"),average:t(e,"average"),sum:t(e,"sum")}},M=()=>{const e=n();return{debounce:t(e,"debounce"),throttle:t(e,"throttle"),setLocalStorage:t(e,"setLocalStorage"),getLocalStorage:t(e,"getLocalStorage"),formatNumber:t(e,"formatNumber"),formatCurrency:t(e,"formatCurrency"),copyToClipboard:t(e,"copyToClipboard"),isMobile:t(e,"isMobile"),isDesktop:t(e,"isDesktop")}},R=()=>{const e=n();return{callService:t(e,"callService"),apiGet:t(e,"apiGet"),apiPost:t(e,"apiPost"),apiPut:t(e,"apiPut"),apiDelete:t(e,"apiDelete"),apiPatch:t(e,"apiPatch")}};exports.CommonCodeProvider=S;exports.UtilsProvider=q;exports.useApiUtils=R;exports.useArrayUtils=H;exports.useCodeColor=N;exports.useCodeList=A;exports.useCodeListByOption=T;exports.useCodeName=I;exports.useCommonCode=a;exports.useCommonUtils=M;exports.useDateUtils=w;exports.useGridLookup=G;exports.usePopup=E;exports.usePopupContext=x;exports.useStringUtils=B;exports.useUtils=n;
@@ -0,0 +1,240 @@
1
+ import { useCallback as P, createContext as g, useContext as d } from "react";
2
+ import { u as v } from "./popupStore-Dp_fqtim.js";
3
+ import { j as y } from "./jsx-runtime-Dpn_P65e.js";
4
+ import { u as L } from "./codeStore-bxk_q1sl.js";
5
+ import { am as E, ap as S, ac as x, aI as A, aJ as I, ai as N, aF as T, aH as G, ad as k, aK as w, a6 as H, T as B, Z as M, Y as O, X as R, W, P as j, O as q, R as V, aL as F, aM as K, aN as z } from "./commonUtils-BV6WFv-z.js";
6
+ import { S as J, Q, U as X, T as Y, R as Z, V as _, au as $ } from "./serviceConfig-BJBsdee_.js";
7
+ const ne = () => !1, ue = () => {
8
+ const { popups: e, activePopupId: o, setActivePopup: a, closePopup: u, openPopup: i } = v(), c = P(
9
+ async (m, p, l) => {
10
+ try {
11
+ await i(m, p, l);
12
+ } catch (n) {
13
+ throw console.error("팝업 열기 실패:", n), n;
14
+ }
15
+ },
16
+ [i]
17
+ );
18
+ return {
19
+ popups: e,
20
+ activePopupId: o,
21
+ setActivePopup: a,
22
+ closePopup: u,
23
+ showPopup: c,
24
+ isPopup: e.length > 0
25
+ };
26
+ }, C = g(
27
+ void 0
28
+ ), ce = ({
29
+ children: e
30
+ }) => {
31
+ const {
32
+ codeData: o,
33
+ isLoading: a,
34
+ error: u,
35
+ lastUpdated: i,
36
+ getCodeList: c,
37
+ getCodeListByOption: m,
38
+ getCodeName: p,
39
+ getCodeColor: l,
40
+ getCodeByOption: n,
41
+ getAvailableGroupCodes: D,
42
+ getGridLookup: f,
43
+ fetchCommonCodes: U
44
+ } = L(), b = {
45
+ codeData: o,
46
+ isLoading: a,
47
+ error: u,
48
+ lastUpdated: i,
49
+ getCodeList: c,
50
+ getCodeListByOption: m,
51
+ getCodeName: p,
52
+ getCodeColor: l,
53
+ getCodeByOption: n,
54
+ getAvailableGroupCodes: D,
55
+ getGridLookup: f,
56
+ refreshCodes: U
57
+ };
58
+ return /* @__PURE__ */ y.jsx(C.Provider, { value: b, children: e });
59
+ }, r = () => {
60
+ const e = d(C);
61
+ if (e === void 0)
62
+ throw new Error("useCommonCode must be used within a CommonCodeProvider");
63
+ return e;
64
+ }, me = () => {
65
+ const { getCodeList: e, isLoading: o, error: a } = r();
66
+ return {
67
+ getCodeList: e,
68
+ isLoading: o,
69
+ error: a
70
+ };
71
+ }, pe = () => {
72
+ const { getCodeName: e, isLoading: o, error: a } = r();
73
+ return {
74
+ getCodeName: e,
75
+ isLoading: o,
76
+ error: a
77
+ };
78
+ }, le = () => {
79
+ const { getCodeColor: e, isLoading: o, error: a } = r();
80
+ return {
81
+ getCodeColor: e,
82
+ isLoading: o,
83
+ error: a
84
+ };
85
+ }, ge = () => {
86
+ const { getCodeListByOption: e, isLoading: o, error: a } = r();
87
+ return {
88
+ getCodeListByOption: e,
89
+ isLoading: o,
90
+ error: a
91
+ };
92
+ }, de = () => {
93
+ const { getGridLookup: e, isLoading: o, error: a } = r();
94
+ return {
95
+ getGridLookup: e,
96
+ isLoading: o,
97
+ error: a
98
+ };
99
+ }, ee = {
100
+ // 날짜 유틸리티
101
+ ...z,
102
+ // 문자열 유틸리티
103
+ ...$,
104
+ // 배열 유틸리티 (충돌하는 함수명은 별칭 사용)
105
+ isEmptyArray: K,
106
+ isNotEmptyArray: F,
107
+ unique: V,
108
+ shuffle: q,
109
+ sortBy: j,
110
+ max: W,
111
+ min: R,
112
+ average: O,
113
+ sum: M,
114
+ randomFromArray: B,
115
+ flattenArray: H,
116
+ // 객체 유틸리티
117
+ ...w,
118
+ // 일반 유틸리티 (충돌하는 함수명은 별칭 사용)
119
+ debounce: k,
120
+ throttle: G,
121
+ setLocalStorage: T,
122
+ getLocalStorage: N,
123
+ formatNumber: I,
124
+ formatCurrency: A,
125
+ copyToClipboard: x,
126
+ isMobile: S,
127
+ isDesktop: E,
128
+ // API 유틸리티
129
+ callService: _,
130
+ apiGet: Z,
131
+ apiPost: Y,
132
+ apiPut: X,
133
+ apiDelete: Q,
134
+ apiPatch: J
135
+ }, h = g(void 0), ye = ({ children: e }) => /* @__PURE__ */ y.jsx(h.Provider, { value: { utils: ee }, children: e }), s = () => {
136
+ const e = d(h);
137
+ if (e === void 0)
138
+ throw new Error("useUtils must be used within a UtilsProvider");
139
+ return e.utils;
140
+ }, t = (e, o, a) => e && typeof e[o] == "function" ? e[o] : a || (() => {
141
+ }), Ce = () => {
142
+ const e = s();
143
+ return {
144
+ formatDate: t(e, "formatDate"),
145
+ formatDateKorean: t(e, "formatDateKorean"),
146
+ getCurrentDate: t(e, "getCurrentDate"),
147
+ getCurrentDateString: t(e, "getCurrentDateString"),
148
+ getRelativeTime: t(e, "getRelativeTime"),
149
+ isToday: t(e, "isToday"),
150
+ isThisWeek: t(e, "isThisWeek"),
151
+ isThisMonth: t(e, "isThisMonth"),
152
+ getDateDiff: t(e, "getDateDiff"),
153
+ calculateAge: t(e, "calculateAge")
154
+ };
155
+ }, he = () => {
156
+ const e = s();
157
+ return {
158
+ isEmpty: t(e, "isEmpty"),
159
+ isNotEmpty: t(e, "isNotEmpty"),
160
+ truncate: t(e, "truncate"),
161
+ capitalize: t(e, "capitalize"),
162
+ formatPhoneNumber: t(e, "formatPhoneNumber"),
163
+ isValidEmail: t(e, "isValidEmail"),
164
+ removeHtmlTags: t(e, "removeHtmlTags"),
165
+ // UID 생성 함수들
166
+ generateUID: t(e, "generateUID"),
167
+ generateShortUID: t(e, "generateShortUID"),
168
+ generateLongUID: t(e, "generateLongUID"),
169
+ generateNumericUID: t(e, "generateNumericUID"),
170
+ generateAlphanumericUID: t(e, "generateAlphanumericUID"),
171
+ generateGUID: t(e, "generateGUID"),
172
+ generateGUIDWithoutHyphens: t(e, "generateGUIDWithoutHyphens"),
173
+ generateTimestampUID: t(e, "generateTimestampUID"),
174
+ generateCustomUID: t(e, "generateCustomUID"),
175
+ // 암호화 관련 함수들
176
+ encryptSha256: t(e, "encryptSha256"),
177
+ bxmEncrypt: t(e, "bxmEncrypt"),
178
+ bxmDecrypt: t(e, "bxmDecrypt"),
179
+ simpleEncrypt: t(e, "simpleEncrypt"),
180
+ simpleDecrypt: t(e, "simpleDecrypt"),
181
+ md5Hash: t(e, "md5Hash"),
182
+ sha256Hash: t(e, "sha256Hash"),
183
+ base64Encode: t(e, "base64Encode"),
184
+ base64Decode: t(e, "base64Decode")
185
+ };
186
+ }, De = () => {
187
+ const e = s();
188
+ return {
189
+ isEmptyArray: t(e, "isEmptyArray"),
190
+ isNotEmptyArray: t(e, "isNotEmptyArray"),
191
+ unique: t(e, "unique"),
192
+ shuffle: t(e, "shuffle"),
193
+ sortBy: t(e, "sortBy"),
194
+ max: t(e, "max"),
195
+ min: t(e, "min"),
196
+ average: t(e, "average"),
197
+ sum: t(e, "sum")
198
+ };
199
+ }, fe = () => {
200
+ const e = s();
201
+ return {
202
+ debounce: t(e, "debounce"),
203
+ throttle: t(e, "throttle"),
204
+ setLocalStorage: t(e, "setLocalStorage"),
205
+ getLocalStorage: t(e, "getLocalStorage"),
206
+ formatNumber: t(e, "formatNumber"),
207
+ formatCurrency: t(e, "formatCurrency"),
208
+ copyToClipboard: t(e, "copyToClipboard"),
209
+ isMobile: t(e, "isMobile"),
210
+ isDesktop: t(e, "isDesktop")
211
+ };
212
+ }, Ue = () => {
213
+ const e = s();
214
+ return {
215
+ callService: t(e, "callService"),
216
+ apiGet: t(e, "apiGet"),
217
+ apiPost: t(e, "apiPost"),
218
+ apiPut: t(e, "apiPut"),
219
+ apiDelete: t(e, "apiDelete"),
220
+ apiPatch: t(e, "apiPatch")
221
+ };
222
+ };
223
+ export {
224
+ ce as C,
225
+ ye as U,
226
+ me as a,
227
+ pe as b,
228
+ le as c,
229
+ ge as d,
230
+ de as e,
231
+ s as f,
232
+ Ce as g,
233
+ he as h,
234
+ De as i,
235
+ fe as j,
236
+ Ue as k,
237
+ ne as l,
238
+ ue as m,
239
+ r as u
240
+ };
@@ -0,0 +1,6 @@
1
+ function e(t) {
2
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
3
+ }
4
+ export {
5
+ e as g
6
+ };
@@ -0,0 +1 @@
1
+ "use strict";function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}exports.getDefaultExportFromCjs=e;
@@ -0,0 +1 @@
1
+ "use strict";const D=require("zustand"),S=require("./serviceConfig-Cr2P4yr4.cjs"),O={CACHE_SIZE_LIMIT:1e3},t={codeCache:new Map,nameCache:new Map,optionCache:new Map,colorCache:new Map,loadedGroups:new Set,cacheHits:new Map,clearCache(){this.codeCache.clear(),this.nameCache.clear(),this.optionCache.clear(),this.colorCache.clear(),this.loadedGroups.clear(),this.cacheHits.clear()},cleanupCache(){const s=Array.from(this.cacheHits.entries());s.sort((e,c)=>e[1]-c[1]),s.slice(0,Math.floor(s.length*.3)).forEach(([e])=>{this.codeCache.delete(e),this.nameCache.delete(e),this.optionCache.delete(e),this.colorCache.delete(e),this.cacheHits.delete(e)})},isGroupLoaded(s){return this.loadedGroups.has(s)},markGroupLoaded(s){this.loadedGroups.add(s)}},_=s=>{console.log("대규모 데이터 변환 시작:",s);const p={};if(s&&s.code&&Array.isArray(s.code)){const e=s.code,c=s.opt||[],o=new Map;c.forEach(a=>{a.cmmnCd&&a.enblYn==="Y"&&(o.has(a.cmmnCd)||o.set(a.cmmnCd,[]),o.get(a.cmmnCd).push(a))}),e.forEach(a=>{if(a&&a.cmmnCdGrp&&a.cmmnCd&&a.enblYn==="Y"){const n=a.cmmnCdGrp;p[n]||(p[n]={});const d=(o.get(a.cmmnCd)||[]).reduce((i,l)=>(l.optnCd&&l.optnNm&&(i[l.optnCd]=l.optnNm),i),{});p[n][a.cmmnCd]={codeValue:a.cmmnCd,codeNm:a.cmmnCdNm,groupCode:a.cmmnCdGrp,commonCode:a.cmmnCd,labelColor:a.cmmnCdClr,systemCodeYn:a.syscdYn,sortOrder:parseInt(a.sortOrd)||1,enabled:a.enblYn==="Y",options:Object.keys(d).length>0?d:null,originalData:a}}})}return console.log("대규모 데이터 변환 완료:",p),p},r=D.create()(S.persist((s,p)=>({codeData:null,isLoading:!1,error:null,lastUpdated:null,loadedGroups:new Set,fetchData:async()=>{s({isLoading:!0,error:null});try{console.log("대규모 공통코드 데이터 가져오기 시작: SCMSIGN00301");const e=await S.callService(S.getServiceCode("SRCH_CODE"),{crprCd:"100"});console.log("대규모 공통코드 응답:",e),console.log("대규모 공통코드목록:",e.code),console.log("대규모 공통코드옵션션목록:",e.opt);const c=_(e);t.clearCache();const o=new Set(Object.keys(c));o.forEach(a=>{t.markGroupLoaded(a)}),s({codeData:c,isLoading:!1,error:null,lastUpdated:new Date,loadedGroups:o}),console.log("대규모 공통코드 데이터 가져오기 완료")}catch(e){console.error("대규모 공통코드 데이터 가져오기 실패:",e),s({isLoading:!1,error:e instanceof Error?e.message:"대규모 공통코드 데이터 가져오기 실패"})}},loadSpecificGroup:async e=>{const{codeData:c,loadedGroups:o}=p();if(!c||o.has(e))return;const a=new Set(o).add(e);s({loadedGroups:a}),t.markGroupLoaded(e)},setData:e=>{t.clearCache();const c=new Set(Object.keys(e));c.forEach(o=>{t.markGroupLoaded(o)}),s({codeData:e,lastUpdated:new Date,loadedGroups:c})},clearData:()=>{t.clearCache(),s({codeData:null,isLoading:!1,error:null,lastUpdated:null,loadedGroups:new Set})},getLoadedGroups:()=>Array.from(p().loadedGroups)}),{name:"large-data-storage",partialize:s=>({codeData:s.codeData,lastUpdated:s.lastUpdated,loadedGroups:Array.from(s.loadedGroups)})})),b=D.create()(S.persist((s,p)=>({get codeData(){return r.getState().codeData},get isLoading(){return r.getState().isLoading},get error(){return r.getState().error},get lastUpdated(){return r.getState().lastUpdated},fetchCommonCodes:async()=>{await r.getState().fetchData()},getCodeList:(e,c)=>{const{enabledOnly:o=!0,systemCodeOnly:a=!1,sortByOrder:n=!1,excludeParentCode:u=!1}=c||{},d=`simpleCodeList_${e}_${o}_${a}_${n}_${u}`;if(t.optionCache.has(d)){const h=t.cacheHits.get(d)||0;return t.cacheHits.set(d,h+1),t.optionCache.get(d)}const i=r.getState().codeData;if(!i)return[];if(!t.isGroupLoaded(e)&&!i[e])return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`),[];const l=[],f=i[e];f&&Object.values(f).forEach(h=>{if(!(o&&!h.enabled)&&!(a&&h.systemCodeYn!=="Y"))if(u){const m=e.length,H=h.codeValue.substring(m);H.length>0&&l.push({...h,codeValue:H})}else l.push(h)});let g;n?g=l.sort((h,m)=>h.sortOrder!==m.sortOrder?h.sortOrder-m.sortOrder:h.codeValue.localeCompare(m.codeValue)):g=l.sort((h,m)=>h.codeValue.localeCompare(m.codeValue));const C=g.map(h=>({label:h.codeNm,value:h.codeValue,tagColor:h.labelColor}));return t.optionCache.size>=O.CACHE_SIZE_LIMIT&&t.cleanupCache(),t.optionCache.set(d,C),t.cacheHits.set(d,1),C},getCodeName:e=>{if(t.nameCache.has(e)){const o=t.cacheHits.get(`name_${e}`)||0;return t.cacheHits.set(`name_${e}`,o+1),t.nameCache.get(e)}const c=r.getState().codeData;if(!c)return null;for(const o of Object.values(c))for(const a of Object.values(o))if(a.codeValue===e)return t.nameCache.set(e,a.codeNm),t.cacheHits.set(`name_${e}`,1),a.codeNm;return null},getCodeColor:e=>{if(t.colorCache.has(e)){const o=t.cacheHits.get(`color_${e}`)||0;return t.cacheHits.set(`color_${e}`,o+1),t.colorCache.get(e)}const c=r.getState().codeData;if(!c)return null;for(const o of Object.values(c))for(const a of Object.values(o))if(a.codeValue===e)return t.colorCache.set(e,a.labelColor||""),t.cacheHits.set(`color_${e}`,1),a.labelColor;return null},getGridLookup:e=>{const c=`gridLookup_${e}`;if(t.optionCache.has(c)){const i=t.cacheHits.get(c)||0;return t.cacheHits.set(c,i+1),t.optionCache.get(c)}const o=r.getState().codeData;if(!o)return{labels:[],values:[],lookupDisplay:!0};const a=o[e];if(!a)return{labels:[],values:[],lookupDisplay:!0};const n=[],u=[];Object.values(a).filter(i=>i.enabled).sort((i,l)=>i.sortOrder-l.sortOrder).forEach(i=>{n.push(i.codeNm),u.push(i.codeValue)});const d={labels:n,values:u,lookupDisplay:!0};return t.optionCache.set(c,d),t.cacheHits.set(c,1),d},getCodeByOption:(e,c,o)=>{const a=`codeByOption_${e}_${c}_${o}`;if(t.codeCache.has(a)){const l=t.cacheHits.get(a)||0;return t.cacheHits.set(a,l+1),t.codeCache.get(a)}const n=r.getState().codeData;if(!n)return[];const u=[],d=n[e];d&&Object.values(d).forEach(l=>{l.enabled&&l.options&&l.options[c]===o&&u.push({...l,codeNm:l.options[c]||l.codeNm})});const i=u.sort((l,f)=>l.codeValue.localeCompare(f.codeValue));return t.codeCache.size>=O.CACHE_SIZE_LIMIT&&t.cleanupCache(),t.codeCache.set(a,i),t.cacheHits.set(a,1),i},getCodeListByOption:(e,c,o)=>{const{enabledOnly:a=!0,systemCodeOnly:n=!1,sortByOrder:u=!1}=o||{},d=`codeListByOption_${e}_${c}_${a}_${n}_${u}`;if(t.codeCache.has(d)){const C=t.cacheHits.get(d)||0;return t.cacheHits.set(d,C+1),t.codeCache.get(d)}const i=r.getState().codeData;if(!i)return[];if(!t.isGroupLoaded(e)&&!i[e])return console.warn(`그룹 ${e}가 아직 로드되지 않았습니다.`),[];const l=[],f=i[e];f&&Object.values(f).forEach(C=>{a&&!C.enabled||n&&C.systemCodeYn!=="Y"||C.options&&C.options[c]&&l.push({label:C.options[c],value:C.commonCode,tagColor:C.labelColor})});let g;return u?g=l.sort((C,h)=>C.value.localeCompare(h.value)):g=l.sort((C,h)=>C.value.localeCompare(h.value)),t.codeCache.size>=O.CACHE_SIZE_LIMIT&&t.cleanupCache(),t.codeCache.set(d,g),t.cacheHits.set(d,1),g},getAvailableGroupCodes:()=>{const e="available_group_codes";if(t.nameCache.has(e)){const a=t.cacheHits.get(e)||0;return t.cacheHits.set(e,a+1),JSON.parse(t.nameCache.get(e))}const c=r.getState().codeData;if(!c)return[];const o=Object.keys(c).sort();return t.nameCache.set(e,JSON.stringify(o)),t.cacheHits.set(e,1),o},clearCodes:()=>{r.getState().clearData()}}),{name:"code-storage",partialize:s=>({})})),y=D.create()(S.persist((s,p)=>({get codeData(){return r.getState().codeData},get isLoading(){return r.getState().isLoading},get error(){return r.getState().error},get lastUpdated(){return r.getState().lastUpdated},fetchCommonCodes:async()=>{await r.getState().fetchData()},getOptionValue:(e,c)=>{const o=`option_${e}_${c}`;if(t.optionCache.has(o)){const u=t.cacheHits.get(o)||0;return t.cacheHits.set(o,u+1),t.optionCache.get(o)}const a=r.getState().codeData;if(!a)return null;const n=a[e];if(n&&n[c]){const u=n[c].options;return t.optionCache.set(o,u),t.cacheHits.set(o,1),u}return null},getOptionByKey:(e,c,o)=>{const a=`option_${e}_${c}_${o}`;if(t.optionCache.has(a)){const d=t.cacheHits.get(a)||0;return t.cacheHits.set(a,d+1),t.optionCache.get(a)}const n=p().getOptionValue(e,c),u=n?n[o]:null;return t.optionCache.set(a,u),t.cacheHits.set(a,1),u},clearCodes:()=>{r.getState().clearData()}}),{name:"option-storage",partialize:s=>({})})),L=D.create()(S.persist((s,p)=>({get codeData(){return r.getState().codeData},get isLoading(){return r.getState().isLoading},get error(){return r.getState().error},get lastUpdated(){return r.getState().lastUpdated},fetchCommonCodes:async()=>{await r.getState().fetchData()},getColorCode:e=>{if(t.colorCache.has(e)){const o=t.cacheHits.get(`color_${e}`)||0;return t.cacheHits.set(`color_${e}`,o+1),t.colorCache.get(e)}const c=r.getState().codeData;if(!c)return null;for(const o of Object.values(c))for(const a of Object.values(o))if(a.codeValue===e)return t.colorCache.set(e,a.labelColor||""),t.cacheHits.set(`color_${e}`,1),a.labelColor;return null},getColorMapping:()=>{const e="color_mapping";if(t.optionCache.has(e)){const a=t.cacheHits.get(e)||0;return t.cacheHits.set(e,a+1),t.optionCache.get(e)}const c=r.getState().codeData;if(!c)return[];const o=[];return Object.values(c).forEach(a=>{Object.values(a).forEach(n=>{n.labelColor&&o.push({code:n.codeValue,color:n.labelColor})})}),t.optionCache.set(e,o),t.cacheHits.set(e,1),o},clearCodes:()=>{r.getState().clearData()}}),{name:"color-storage",partialize:s=>({})}));exports.useCodeStore=b;exports.useColorStore=L;exports.useOptionStore=y;