@owp/core 1.29.0 → 2.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 (250) hide show
  1. package/colors/chart.d.ts +3 -0
  2. package/colors/chart.js +1 -0
  3. package/contexts.d.ts +3 -0
  4. package/contexts.js +1 -0
  5. package/dist/{Close-Cm04EulE.js → Close-C91nHTKM.js} +398 -329
  6. package/dist/Close-C91nHTKM.js.map +1 -0
  7. package/dist/{OwpStoreProvider-CFq963Pl.js → OwpStoreProvider-BPa_lWCz.js} +3 -3
  8. package/dist/OwpStoreProvider-BPa_lWCz.js.map +1 -0
  9. package/dist/OwpUtils-DV2LSByd.js +411 -0
  10. package/dist/OwpUtils-DV2LSByd.js.map +1 -0
  11. package/dist/colorMap-DP-DCZbV.js +82 -0
  12. package/dist/colorMap-DP-DCZbV.js.map +1 -0
  13. package/dist/colors/chart.js +6 -0
  14. package/dist/colors/chart.js.map +1 -0
  15. package/dist/colors.js +6 -18
  16. package/dist/colors.js.map +1 -1
  17. package/dist/commonCodeUtils-DNfSjP6S.js +42 -0
  18. package/dist/commonCodeUtils-DNfSjP6S.js.map +1 -0
  19. package/dist/constants.js +19 -21
  20. package/dist/constants.js.map +1 -1
  21. package/dist/contexts.js +104 -0
  22. package/dist/contexts.js.map +1 -0
  23. package/dist/dark-DAY0F6Ph.js +21 -0
  24. package/dist/dark-DAY0F6Ph.js.map +1 -0
  25. package/dist/emotion-react-jsx-runtime.browser.esm-BMvSswBW.js +1496 -0
  26. package/dist/emotion-react-jsx-runtime.browser.esm-BMvSswBW.js.map +1 -0
  27. package/dist/hooks.js +116 -100
  28. package/dist/hooks.js.map +1 -1
  29. package/dist/index.css +1 -1
  30. package/dist/index.js +44321 -86
  31. package/dist/index.js.map +1 -1
  32. package/dist/isString-Codtu20I.js +55 -0
  33. package/dist/isString-Codtu20I.js.map +1 -0
  34. package/dist/isTypedArray-CCnDZ5HJ.js +609 -0
  35. package/dist/isTypedArray-CCnDZ5HJ.js.map +1 -0
  36. package/dist/language-DaxFvPOq.js +35 -0
  37. package/dist/language-DaxFvPOq.js.map +1 -0
  38. package/dist/lazyLoadedSlices-C18y0AEB.js +2773 -0
  39. package/dist/lazyLoadedSlices-C18y0AEB.js.map +1 -0
  40. package/dist/localStorageKeys-Che0CNci.js +10 -0
  41. package/dist/localStorageKeys-Che0CNci.js.map +1 -0
  42. package/dist/owp-app.css +1 -1
  43. package/dist/storageKeys-C6xHFiTo.js +42 -0
  44. package/dist/storageKeys-C6xHFiTo.js.map +1 -0
  45. package/dist/store.js +32 -33
  46. package/dist/{toUpper-K8I4frC5.js → toUpper-Dmh8Htx_.js} +2 -2
  47. package/dist/{toUpper-K8I4frC5.js.map → toUpper-Dmh8Htx_.js.map} +1 -1
  48. package/dist/treeGrid-DtKg-9uf.js +8 -0
  49. package/dist/treeGrid-DtKg-9uf.js.map +1 -0
  50. package/dist/{treeGridUtil-C46Qi5LG.js → treeGridUtil-DAfaAk6C.js} +79 -78
  51. package/dist/{treeGridUtil-C46Qi5LG.js.map → treeGridUtil-DAfaAk6C.js.map} +1 -1
  52. package/dist/types/colors/chart/colorMap.d.ts +8 -0
  53. package/dist/types/colors/chart/index.d.ts +1 -0
  54. package/dist/types/colors/index.d.ts +2 -2
  55. package/dist/types/colors/palettes/index.d.ts +2 -0
  56. package/dist/types/components/OwpErrorBoundary/OwpErrorBoundary.d.ts +1 -1
  57. package/dist/types/components/OwpFileUploadButton/OwpFileUploadButton.d.ts +2 -2
  58. package/dist/types/components/OwpHidden/OwpHidden.d.ts +19 -0
  59. package/dist/types/components/OwpHidden/index.d.ts +2 -0
  60. package/dist/types/components/OwpLayout/OwpLayout.d.ts +2 -2
  61. package/dist/types/components/OwpPageCarded/OwpPageCarded.d.ts +2 -2
  62. package/dist/types/components/OwpPageCarded/OwpPageCardedSidebar.d.ts +1 -1
  63. package/dist/types/components/OwpPicker/DatePickerInput.d.ts +1 -1
  64. package/dist/types/components/OwpStyleProvider/OwpStyleProvider.d.ts +5 -5
  65. package/dist/types/components/OwpTable/OwpTable.d.ts +1 -3
  66. package/dist/types/components/OwpTabs/OwpTab.d.ts +2 -4
  67. package/dist/types/components/OwpTabs/OwpTabs.d.ts +2 -4
  68. package/dist/types/{default-settings/OwpDefaultSettings.d.ts → configs/defaultConfig.d.ts} +26 -172
  69. package/dist/types/{components/layouts/layout2/Layout2Config.d.ts → configs/layoutConfig.d.ts} +12 -15
  70. package/dist/types/contexts/OwpAppProvider.d.ts +44 -0
  71. package/dist/types/hooks/index.d.ts +4 -2
  72. package/dist/types/{store/hooks.d.ts → hooks/useAppStore.d.ts} +1 -1
  73. package/dist/types/hooks/useCurrentLanguage.d.ts +1 -5
  74. package/dist/types/hooks/useInitApp.d.ts +8 -0
  75. package/dist/types/hooks/useInitCommonCodes.d.ts +4 -0
  76. package/dist/types/hooks/useLogoSrc.d.ts +8 -0
  77. package/dist/types/hooks/useNavigation.d.ts +3 -18
  78. package/dist/types/hooks/useOwpTranslation.d.ts +0 -2
  79. package/dist/types/hooks/useStorage.d.ts +0 -13
  80. package/dist/types/hooks/useThemeMediaQuery.d.ts +1 -1
  81. package/dist/types/index.d.ts +3 -28
  82. package/dist/types/{components/layouts/layout3/Layout3.d.ts → layout/Layout.d.ts} +4 -4
  83. package/dist/types/layout/components/layouts/FooterLayout.d.ts +9 -0
  84. package/dist/types/layout/components/layouts/LeftSideLayout.d.ts +6 -0
  85. package/dist/types/layout/components/layouts/NavbarToggleFabLayout.d.ts +8 -0
  86. package/dist/types/layout/components/layouts/NavbarWrapperLayout.d.ts +5 -0
  87. package/dist/types/layout/components/menus/LogoutMenu.d.ts +8 -0
  88. package/dist/types/layout/components/menus/PasswordChangeMenu.d.ts +8 -0
  89. package/dist/types/{components/layouts/shared-components → layout/components/menus}/UserMenu.d.ts +1 -1
  90. package/dist/types/{components/layouts/shared-components → layout/components}/navbar/NavbarPinToggleButton.d.ts +1 -1
  91. package/dist/types/layout/components/navbar/NavbarToggleButton.d.ts +11 -0
  92. package/dist/types/layout/components/navbar/style/NavbarStyle.d.ts +5 -0
  93. package/dist/types/layout/components/navbar/style/NavbarStyleContent.d.ts +9 -0
  94. package/dist/types/layout/components/navigation/NavBadge.d.ts +17 -0
  95. package/dist/types/layout/components/navigation/NavItem.d.ts +14 -0
  96. package/dist/types/layout/components/navigation/Navigation.d.ts +3 -0
  97. package/dist/types/layout/components/navigation/NavigationMenu.d.ts +23 -0
  98. package/dist/types/layout/components/navigation/vertical/NavVerticalLayout.d.ts +9 -0
  99. package/dist/types/layout/components/navigation/vertical/types/NavVerticalCollapse.d.ts +6 -0
  100. package/dist/types/layout/components/navigation/vertical/types/NavVerticalGroup.d.ts +6 -0
  101. package/dist/types/layout/components/navigation/vertical/types/NavVerticalItem.d.ts +6 -0
  102. package/dist/types/layout/components/navigation/vertical/types/NavVerticalLink.d.ts +7 -0
  103. package/dist/types/layout/components/toggles/FullScreenToggle.d.ts +8 -0
  104. package/dist/types/layout/components/toggles/LanguageSwitcherToggle.d.ts +9 -0
  105. package/dist/types/layout/components/toggles/NavigationSearchToggle.d.ts +16 -0
  106. package/dist/types/layout/components/toggles/NavigationShortcutsToggle.d.ts +9 -0
  107. package/dist/types/layout/components/toggles/toggleStyles.d.ts +10 -0
  108. package/dist/types/{components/layouts/layout3/components/FooterLayout3.d.ts → layout/components/toolbar/ToolbarLayout.d.ts} +4 -4
  109. package/dist/types/{components/layouts → layout}/themeLayoutConfigs.d.ts +2 -4
  110. package/dist/types/store/index.d.ts +1 -1
  111. package/dist/types/store/lazyLoadedSlices.d.ts +2 -2
  112. package/dist/types/{components/layouts/shared-components/navigation/store → store}/navigationSlice.d.ts +12 -12
  113. package/dist/types/store/owpSettingsSlice.d.ts +13 -1806
  114. package/dist/types/{components/OwpNavigation/types/OwpNavItemType.d.ts → types/OwpNavigationTypes.d.ts} +14 -4
  115. package/dist/types/types/OwpSettingsTypes.d.ts +2 -2
  116. package/dist/types/types/index.d.ts +3 -0
  117. package/dist/types/utils/getEstimatedTextCellWidth.d.ts +12 -0
  118. package/dist/types/utils/index.d.ts +2 -0
  119. package/dist/types/utils/language.d.ts +8 -0
  120. package/dist/types/{components/OwpNavigation/utils/OwpNavigationHelper.d.ts → utils/navigationUtils.d.ts} +17 -5
  121. package/dist/types.js +2 -0
  122. package/dist/types.js.map +1 -0
  123. package/dist/usePageLockLoading-BGODEt_k.js +39 -0
  124. package/dist/usePageLockLoading-BGODEt_k.js.map +1 -0
  125. package/dist/useShortcuts-BjtlXprQ.js +236 -0
  126. package/dist/useShortcuts-BjtlXprQ.js.map +1 -0
  127. package/dist/useTreeGridExcelExport-BE6h1hsO.js +120 -0
  128. package/dist/useTreeGridExcelExport-BE6h1hsO.js.map +1 -0
  129. package/dist/utils.js +6893 -6652
  130. package/dist/utils.js.map +1 -1
  131. package/owp-app.css +1 -0
  132. package/package.json +51 -47
  133. package/types.d.ts +3 -0
  134. package/types.js +1 -0
  135. package/context.d.ts +0 -3
  136. package/context.js +0 -1
  137. package/dist/Close-Cm04EulE.js.map +0 -1
  138. package/dist/OwpStoreProvider-CFq963Pl.js.map +0 -1
  139. package/dist/OwpUtils-9lHSCdan.js +0 -611
  140. package/dist/OwpUtils-9lHSCdan.js.map +0 -1
  141. package/dist/QuickPanel-DlrhsNXW.js +0 -104
  142. package/dist/QuickPanel-DlrhsNXW.js.map +0 -1
  143. package/dist/context.js +0 -74
  144. package/dist/context.js.map +0 -1
  145. package/dist/emotion-react-jsx-runtime.browser.esm-Cb9H5d3i.js +0 -1751
  146. package/dist/emotion-react-jsx-runtime.browser.esm-Cb9H5d3i.js.map +0 -1
  147. package/dist/index-Dn7pPU3W.js +0 -47049
  148. package/dist/index-Dn7pPU3W.js.map +0 -1
  149. package/dist/isTypedArray-xp-fB7W4.js +0 -411
  150. package/dist/isTypedArray-xp-fB7W4.js.map +0 -1
  151. package/dist/lazyLoadedSlices-BYAl2fil.js +0 -2786
  152. package/dist/lazyLoadedSlices-BYAl2fil.js.map +0 -1
  153. package/dist/storageKeys-DRzte9LZ.js +0 -15
  154. package/dist/storageKeys-DRzte9LZ.js.map +0 -1
  155. package/dist/treeGrid-DRAoPLXh.js +0 -35
  156. package/dist/treeGrid-DRAoPLXh.js.map +0 -1
  157. package/dist/types/components/OwpCommonDialog/OwpCommonDialog.d.ts +0 -1
  158. package/dist/types/components/OwpCommonDialog/index.d.ts +0 -1
  159. package/dist/types/components/OwpNavigation/OwpNavBadge.d.ts +0 -17
  160. package/dist/types/components/OwpNavigation/OwpNavItem.d.ts +0 -14
  161. package/dist/types/components/OwpNavigation/OwpNavigation.d.ts +0 -23
  162. package/dist/types/components/OwpNavigation/horizontal/OwpNavHorizontalLayout1.d.ts +0 -7
  163. package/dist/types/components/OwpNavigation/horizontal/types/OwpNavHorizontalCollapse.d.ts +0 -15
  164. package/dist/types/components/OwpNavigation/horizontal/types/OwpNavHorizontalGroup.d.ts +0 -13
  165. package/dist/types/components/OwpNavigation/horizontal/types/OwpNavHorizontalItem.d.ts +0 -11
  166. package/dist/types/components/OwpNavigation/horizontal/types/OwpNavHorizontalLink.d.ts +0 -8
  167. package/dist/types/components/OwpNavigation/index.d.ts +0 -1
  168. package/dist/types/components/OwpNavigation/isUrlInChildren.d.ts +0 -7
  169. package/dist/types/components/OwpNavigation/models/OwpNavItemModel.d.ts +0 -8
  170. package/dist/types/components/OwpNavigation/types/OwpNavBadgeType.d.ts +0 -9
  171. package/dist/types/components/OwpNavigation/utils/components.d.ts +0 -4
  172. package/dist/types/components/OwpNavigation/utils/registerComponent.d.ts +0 -4
  173. package/dist/types/components/OwpNavigation/vertical/OwpNavVerticalLayout1.d.ts +0 -9
  174. package/dist/types/components/OwpNavigation/vertical/OwpNavVerticalLayout2.d.ts +0 -7
  175. package/dist/types/components/OwpNavigation/vertical/types/OwpNavVerticalCollapse.d.ts +0 -7
  176. package/dist/types/components/OwpNavigation/vertical/types/OwpNavVerticalGroup.d.ts +0 -7
  177. package/dist/types/components/OwpNavigation/vertical/types/OwpNavVerticalItem.d.ts +0 -7
  178. package/dist/types/components/OwpNavigation/vertical/types/OwpNavVerticalLink.d.ts +0 -8
  179. package/dist/types/components/OwpNavigation/vertical/types/OwpNavVerticalTab.d.ts +0 -11
  180. package/dist/types/components/OwpSearch/OwpSearch.d.ts +0 -23
  181. package/dist/types/components/OwpSearch/index.d.ts +0 -1
  182. package/dist/types/components/OwpShortcuts/OwpShortcuts.d.ts +0 -19
  183. package/dist/types/components/OwpShortcuts/index.d.ts +0 -1
  184. package/dist/types/components/OwpSidePanel/OwpSidePanel.d.ts +0 -18
  185. package/dist/types/components/OwpSidePanel/index.d.ts +0 -1
  186. package/dist/types/components/OwpTheme/OwpTheme.d.ts +0 -18
  187. package/dist/types/components/OwpTheme/index.d.ts +0 -1
  188. package/dist/types/components/OwpThemeSelector/OwpThemeSelector.d.ts +0 -16
  189. package/dist/types/components/OwpThemeSelector/SchemePreview.d.ts +0 -14
  190. package/dist/types/components/OwpThemeSelector/ThemePreview.d.ts +0 -17
  191. package/dist/types/components/OwpThemeSelector/index.d.ts +0 -1
  192. package/dist/types/components/layouts/layout1/Layout1.d.ts +0 -10
  193. package/dist/types/components/layouts/layout1/Layout1Config.d.ts +0 -114
  194. package/dist/types/components/layouts/layout1/components/FooterLayout1.d.ts +0 -9
  195. package/dist/types/components/layouts/layout1/components/LeftSideLayout1.d.ts +0 -6
  196. package/dist/types/components/layouts/layout1/components/NavbarToggleFabLayout1.d.ts +0 -8
  197. package/dist/types/components/layouts/layout1/components/NavbarWrapperLayout1.d.ts +0 -5
  198. package/dist/types/components/layouts/layout1/components/ToolbarLayout1.d.ts +0 -9
  199. package/dist/types/components/layouts/layout1/components/navbar/style-1/NavbarStyle1.d.ts +0 -5
  200. package/dist/types/components/layouts/layout1/components/navbar/style-1/NavbarStyle1Content.d.ts +0 -9
  201. package/dist/types/components/layouts/layout1/components/navbar/style-2/NavbarStyle2.d.ts +0 -5
  202. package/dist/types/components/layouts/layout1/components/navbar/style-2/NavbarStyle2Content.d.ts +0 -9
  203. package/dist/types/components/layouts/layout1/components/navbar/style-3/NavbarStyle3.d.ts +0 -9
  204. package/dist/types/components/layouts/layout1/components/navbar/style-3/NavbarStyle3Content.d.ts +0 -10
  205. package/dist/types/components/layouts/layout2/Layout2.d.ts +0 -10
  206. package/dist/types/components/layouts/layout2/components/FooterLayout2.d.ts +0 -9
  207. package/dist/types/components/layouts/layout2/components/LeftSideLayout2.d.ts +0 -6
  208. package/dist/types/components/layouts/layout2/components/NavbarLayout2.d.ts +0 -9
  209. package/dist/types/components/layouts/layout2/components/NavbarMobileLayout2.d.ts +0 -9
  210. package/dist/types/components/layouts/layout2/components/NavbarToggleFabLayout2.d.ts +0 -8
  211. package/dist/types/components/layouts/layout2/components/NavbarWrapperLayout2.d.ts +0 -5
  212. package/dist/types/components/layouts/layout2/components/RightSideLayout2.d.ts +0 -6
  213. package/dist/types/components/layouts/layout2/components/ToolbarLayout2.d.ts +0 -9
  214. package/dist/types/components/layouts/layout3/Layout3Config.d.ts +0 -110
  215. package/dist/types/components/layouts/layout3/components/LeftSideLayout3.d.ts +0 -6
  216. package/dist/types/components/layouts/layout3/components/NavbarLayout3.d.ts +0 -9
  217. package/dist/types/components/layouts/layout3/components/NavbarMobileLayout3.d.ts +0 -9
  218. package/dist/types/components/layouts/layout3/components/NavbarWrapperLayout3.d.ts +0 -5
  219. package/dist/types/components/layouts/layout3/components/RightSideLayout3.d.ts +0 -6
  220. package/dist/types/components/layouts/layout3/components/ToolbarLayout3.d.ts +0 -9
  221. package/dist/types/components/layouts/shared-components/FullScreenToggle.d.ts +0 -8
  222. package/dist/types/components/layouts/shared-components/LanguageSwitcher.d.ts +0 -7
  223. package/dist/types/components/layouts/shared-components/PasswordChangeForm.d.ts +0 -2
  224. package/dist/types/components/layouts/shared-components/navbar/NavbarToggleButton.d.ts +0 -7
  225. package/dist/types/components/layouts/shared-components/navigation/Navigation.d.ts +0 -3
  226. package/dist/types/components/layouts/shared-components/navigation/NavigationSearch.d.ts +0 -6
  227. package/dist/types/components/layouts/shared-components/navigation/NavigationShortcuts.d.ts +0 -6
  228. package/dist/types/components/layouts/shared-components/quickPanel/QuickPanel.d.ts +0 -5
  229. package/dist/types/components/layouts/shared-components/quickPanel/QuickPanelToggleButton.d.ts +0 -9
  230. package/dist/types/components/layouts/shared-components/quickPanel/quickPanelSlice.d.ts +0 -14
  231. package/dist/types/context/OwpAppProvider.d.ts +0 -36
  232. package/dist/types/hooks/useCurrentLogoSrc.d.ts +0 -8
  233. package/dist/types/hooks/useTreeGridCommonCodeEnum.d.ts +0 -8
  234. package/dist/useOwpTranslation-CMrtqKkT.js +0 -190
  235. package/dist/useOwpTranslation-CMrtqKkT.js.map +0 -1
  236. package/dist/useStorage-BA0D8KA7.js +0 -67
  237. package/dist/useStorage-BA0D8KA7.js.map +0 -1
  238. package/dist/useTreeGridExcelExport-DLMecvHS.js +0 -186
  239. package/dist/useTreeGridExcelExport-DLMecvHS.js.map +0 -1
  240. /package/dist/types/colors/{owpDark.d.ts → palettes/dark.d.ts} +0 -0
  241. /package/dist/types/colors/{skyBlue.d.ts → palettes/skyBlue.d.ts} +0 -0
  242. /package/dist/types/{context → contexts}/OwpCoreProvider.d.ts +0 -0
  243. /package/dist/types/{context → contexts}/OwpStoreProvider.d.ts +0 -0
  244. /package/dist/types/{context → contexts}/OwpUiProvider.d.ts +0 -0
  245. /package/dist/types/{context → contexts}/index.d.ts +0 -0
  246. /package/dist/types/{components/layouts/shared-components → layout/components/logo}/Logo.d.ts +0 -0
  247. /package/dist/types/{components/layouts/shared-components → layout/components}/navbar/NavbarToggleFab.d.ts +0 -0
  248. /package/dist/types/{components/layouts/shared-components → layout/components/toggles}/LogoutToggle.d.ts +0 -0
  249. /package/dist/types/{components/layouts → layout}/themeLayouts.d.ts +0 -0
  250. /package/dist/types/{components/layouts/shared-components/navbar → store}/navbarSlice.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOwpTranslation-CMrtqKkT.js","sources":["../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/string/trimEnd.mjs","../src/context/OwpAppProvider.tsx","../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/string/trimEnd.mjs","../src/hooks/useConfirm.tsx","../src/hooks/useOwpTranslation.ts"],"sourcesContent":["function trimEnd(str, chars) {\n if (chars === undefined) {\n return str.trimEnd();\n }\n let endIndex = str.length;\n switch (typeof chars) {\n case 'string': {\n if (chars.length !== 1) {\n throw new Error(`The 'chars' parameter should be a single character string.`);\n }\n while (endIndex > 0 && str[endIndex - 1] === chars) {\n endIndex--;\n }\n break;\n }\n case 'object': {\n while (endIndex > 0 && chars.includes(str[endIndex - 1])) {\n endIndex--;\n }\n }\n }\n return str.substring(0, endIndex);\n}\n\nexport { trimEnd };\n","import type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';\nimport { useStorage } from '@/hooks/useStorage';\nimport { ComponentType, createContext, ReactNode, useContext, useLayoutEffect, useRef } from 'react';\n\n/**\n * Logo slot props\n */\nexport interface OwpLogoSlotProps {\n className?: string;\n}\n\nexport interface OwpAppConfigs {\n routesConfig: any;\n settingsConfig: OwpSettingsConfigType;\n themesConfig: any;\n navigationConfig: any;\n}\n\n/**\n * App slots\n */\nexport interface OwpAppSlots {\n logo?: ComponentType<OwpLogoSlotProps>;\n}\n\nexport interface OwpAppEnv {\n [key: string]: any;\n}\n\nexport interface OwpAppContextValue extends OwpAppConfigs {\n env?: OwpAppEnv;\n slots?: OwpAppSlots;\n}\n\nexport const OwpAppContext = createContext<OwpAppContextValue | undefined>(undefined);\n\nexport interface OwpAppProviderProps {\n configs: OwpAppConfigs;\n slots?: OwpAppSlots;\n children?: ReactNode;\n env?: OwpAppEnv;\n}\n\nexport const OwpAppProvider = ({ configs, slots, children, env }: OwpAppProviderProps) => {\n const value = useRef<OwpAppContextValue>({ ...configs, env, slots });\n const { setEnv } = useStorage();\n\n useLayoutEffect(() => {\n setEnv(env ?? {});\n }, [env, setEnv]);\n\n return <OwpAppContext.Provider value={value.current}>{children}</OwpAppContext.Provider>;\n};\n\nexport const useOwpAppContext = () => {\n const context = useContext(OwpAppContext);\n\n if (context === undefined) {\n throw new Error('useOwpAppContext must be used within a OwpAppProvider');\n }\n\n return context;\n};\n","import { trimEnd as trimEnd$1 } from '../../string/trimEnd.mjs';\n\nfunction trimEnd(str, chars, guard) {\n if (str == null) {\n return '';\n }\n if (guard != null || chars == null) {\n return str.toString().trimEnd();\n }\n return trimEnd$1(str, chars.toString().split(''));\n}\n\nexport { trimEnd };\n","import {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n Typography,\n} from '@mui/material';\nimport { DialogProps, useDialogs } from '@toolpad/core/useDialogs';\nimport { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport interface ConfirmProps {\n title?: ReactNode | string;\n okText?: string;\n cancelText?: string;\n severity?: 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning';\n useInfo?: boolean;\n okButtonProps?: ButtonProps;\n onClose?: (result: boolean) => Promise<void>;\n}\ninterface ConfirmBaseProps extends ConfirmProps {\n okButtonProps?: ButtonProps;\n cancelButtonProps?: ButtonProps;\n}\n\ninterface ConfirmTranslationConfig {\n primaryKey: string;\n fallbackKey: string;\n defaultValue: string;\n}\n\n/**\n * 확인 대화상자 번역 설정\n */\nconst CONFIRM_TRANSLATIONS = {\n infoTitle: {\n primaryKey: 'message.would_you_like_to_proceed',\n fallbackKey: 'Message.처리하시겠습니까',\n defaultValue: '처리하시겠습니까?',\n },\n infoOk: {\n primaryKey: 'button.ok',\n fallbackKey: 'Button.확인',\n defaultValue: '확인',\n },\n saveTitle: {\n primaryKey: 'message.do_you_want_to_save',\n fallbackKey: 'Message.저장하시겠습니까?',\n defaultValue: '저장하시겠습니까?',\n },\n saveOk: {\n primaryKey: 'button.save',\n fallbackKey: 'Button.저장',\n defaultValue: '저장',\n },\n updateTitle: {\n primaryKey: 'message.would_you_like_to_edit',\n fallbackKey: 'Message.수정하시겠습니까?',\n defaultValue: '수정하시겠습니까?',\n },\n updateOk: {\n primaryKey: 'button.edit',\n fallbackKey: 'Button.수정',\n defaultValue: '수정',\n },\n deleteTitle: {\n primaryKey: 'message.are_you_sure_you_want_to_delete',\n fallbackKey: 'Message.삭제하시겠습니까?',\n defaultValue: '삭제하시겠습니까?',\n },\n deleteOk: {\n primaryKey: 'button.delete',\n fallbackKey: 'Button.삭제',\n defaultValue: '삭제',\n },\n cancel: {\n primaryKey: 'button.cancel',\n fallbackKey: 'Button.취소',\n defaultValue: '취소',\n },\n} as const;\n\n/**\n * 확인 버튼 속성 병합\n * @param defaultColor 기본 버튼 색상\n * @param okButtonProps 사용자 버튼 속성\n */\nconst mergeOkButtonProps = (\n defaultColor: ButtonProps['color'] | undefined,\n okButtonProps?: ButtonProps,\n) => {\n if (!defaultColor) {\n return okButtonProps;\n }\n\n return {\n color: defaultColor,\n ...okButtonProps,\n } as ButtonProps;\n};\n/**\n * 확인 대화상자 훅\n */\nexport const useConfirm = () => {\n const dialogs = useDialogs();\n const { t, i18n } = useTranslation('owp');\n\n const translateConfirmText = ({\n primaryKey,\n fallbackKey,\n defaultValue,\n }: ConfirmTranslationConfig) => {\n return t(i18n.exists(primaryKey) ? primaryKey : fallbackKey, { defaultValue });\n };\n\n const confirmBase = (props: ConfirmBaseProps) => dialogs.open(ConfirmDialog, props);\n\n return {\n confirm: confirmBase,\n confirmInfo: async ({ title, okText, severity }: ConfirmProps | undefined = {}) => {\n return confirmBase({\n title:\n title ?? translateConfirmText(CONFIRM_TRANSLATIONS.infoTitle),\n okText: okText ?? translateConfirmText(CONFIRM_TRANSLATIONS.infoOk),\n severity: severity ?? 'primary',\n useInfo: true,\n });\n },\n confirmSave: async ({\n title,\n okText,\n cancelText,\n okButtonProps,\n }: ConfirmProps | undefined = {}) => {\n return confirmBase({\n title: title ?? translateConfirmText(CONFIRM_TRANSLATIONS.saveTitle),\n okText: okText ?? translateConfirmText(CONFIRM_TRANSLATIONS.saveOk),\n cancelText,\n okButtonProps: mergeOkButtonProps('secondary', okButtonProps),\n });\n },\n confirmUpdate: async ({\n title,\n okText,\n cancelText,\n okButtonProps,\n }: ConfirmProps | undefined = {}) => {\n return confirmBase({\n title: title ?? translateConfirmText(CONFIRM_TRANSLATIONS.updateTitle),\n okText: okText ?? translateConfirmText(CONFIRM_TRANSLATIONS.updateOk),\n cancelText,\n okButtonProps: mergeOkButtonProps('secondary', okButtonProps),\n });\n },\n confirmDelete: async ({\n title,\n okText,\n cancelText,\n okButtonProps,\n }: ConfirmProps | undefined = {}) => {\n return confirmBase({\n title: title ?? translateConfirmText(CONFIRM_TRANSLATIONS.deleteTitle),\n okText: okText ?? translateConfirmText(CONFIRM_TRANSLATIONS.deleteOk),\n cancelText,\n okButtonProps: mergeOkButtonProps('error', okButtonProps),\n });\n },\n };\n};\n\nconst ConfirmDialog = ({ payload, open, onClose }: DialogProps<ConfirmBaseProps, boolean>) => {\n const { title, okButtonProps, cancelButtonProps, severity, useInfo } = payload;\n\n const { t, i18n } = useTranslation('owp');\n\n const okText =\n payload?.okText ??\n t(i18n.exists(CONFIRM_TRANSLATIONS.infoOk.primaryKey) ? 'button.ok' : 'Button.확인', {\n defaultValue: CONFIRM_TRANSLATIONS.infoOk.defaultValue,\n });\n const cancelText =\n payload?.cancelText ??\n t(\n i18n.exists(CONFIRM_TRANSLATIONS.cancel.primaryKey)\n ? CONFIRM_TRANSLATIONS.cancel.primaryKey\n : CONFIRM_TRANSLATIONS.cancel.fallbackKey,\n { defaultValue: CONFIRM_TRANSLATIONS.cancel.defaultValue },\n );\n\n return (\n <Dialog fullWidth maxWidth=\"xs\" open={open} onClose={() => onClose(false)}>\n <DialogContent>\n <Typography className=\"mb-12\" variant=\"h6\">\n {title}\n </Typography>\n </DialogContent>\n <DialogActions>\n {!useInfo && (\n <Button {...cancelButtonProps} variant=\"outlined\" onClick={() => onClose(false)}>\n {cancelText}\n </Button>\n )}\n <Button\n color={severity ? severity : 'primary'}\n variant=\"contained\"\n {...okButtonProps}\n onClick={() => onClose(true)}\n >\n {okText}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","import { isPlainObject, trimEnd } from 'es-toolkit/compat';\nimport { useTranslation } from 'react-i18next';\n\n/**\n * 번역 키 기본 라벨 추출\n * @param key 번역 키\n */\nconst getDefaultValueFromKey = (key: string) => {\n if (!key.includes('.')) {\n return undefined;\n }\n\n const normalizedKey = trimEnd(key, '.');\n const lastSeparatorIndex = normalizedKey.lastIndexOf('.');\n\n if (lastSeparatorIndex < 0) {\n return key;\n }\n\n return key.slice(lastSeparatorIndex + 1);\n};\n\n/**\n * OWP 번역 훅\n */\nexport const useOwpTranslation = () => {\n const { t: i18nT, ...restProps } = useTranslation('owp');\n\n const t: typeof i18nT = ((...args: Parameters<typeof i18nT>) => {\n const [key, options] = args;\n const optionsObject = isPlainObject(options) ? (options as Record<string, unknown>) : undefined;\n const isOptionsObject = Boolean(optionsObject);\n const hasDefaultValue =\n isOptionsObject && Object.prototype.hasOwnProperty.call(optionsObject, 'defaultValue');\n const canInjectDefaultValue = options == null || isOptionsObject;\n\n if (canInjectDefaultValue && !hasDefaultValue && typeof key === 'string') {\n const defaultValue = getDefaultValueFromKey(key);\n\n if (defaultValue) {\n const nextOptions = isOptionsObject ? { ...optionsObject, defaultValue } : { defaultValue };\n\n return i18nT(...([key, nextOptions, ...args.slice(2)] as Parameters<typeof i18nT>));\n }\n }\n\n return i18nT(...args);\n }) as typeof i18nT;\n\n return { t, ...restProps };\n};\n"],"names":["trimEnd","str","chars","endIndex","OwpAppContext","createContext","OwpAppProvider","__name","configs","slots","children","env","value","useRef","setEnv","useStorage","useLayoutEffect","useOwpAppContext","context","useContext","guard","trimEnd$1","CONFIRM_TRANSLATIONS","mergeOkButtonProps","defaultColor","okButtonProps","useConfirm","dialogs","useDialogs","i18n","useTranslation","translateConfirmText","primaryKey","fallbackKey","defaultValue","confirmBase","props","ConfirmDialog","title","okText","severity","cancelText","payload","open","onClose","cancelButtonProps","useInfo","t","jsxs","Dialog","jsx","DialogContent","Typography","DialogActions","Button","getDefaultValueFromKey","key","lastSeparatorIndex","useOwpTranslation","i18nT","restProps","args","options","optionsObject","isPlainObject","isOptionsObject","hasDefaultValue","nextOptions"],"mappings":";;;;;;;;;AAAA,SAASA,EAAQC,GAAKC,GAAO;AACzB,MAAIA,MAAU;AACV,WAAOD,EAAI,QAAO;AAEtB,MAAIE,IAAWF,EAAI;AACnB,UAAQ,OAAOC,GAAK;AAAA,IAChB,KAAK,UAAU;AACX,UAAIA,EAAM,WAAW;AACjB,cAAM,IAAI,MAAM,4DAA4D;AAEhF,aAAOC,IAAW,KAAKF,EAAIE,IAAW,CAAC,MAAMD;AACzC,QAAAC;AAEJ;AAAA,IACJ;AAAA,IACA,KAAK;AACD,aAAOA,IAAW,KAAKD,EAAM,SAASD,EAAIE,IAAW,CAAC,CAAC;AACnD,QAAAA;AAAA,EAGhB;AACI,SAAOF,EAAI,UAAU,GAAGE,CAAQ;AACpC;AAtBSH,EAAAA,GAAAA;ACkCF,MAAMI,IAAgBC,EAA8C,MAAS,GASvEC,IAAiB,gBAAAC,EAAA,CAAC,EAAE,SAAAC,GAAS,OAAAC,GAAO,UAAAC,GAAU,KAAAC,QAA+B;AACxF,QAAMC,IAAQC,EAA2B,EAAE,GAAGL,GAAS,KAAAG,GAAK,OAAAF,GAAO,GAC7D,EAAE,QAAAK,EAAA,IAAWC,EAAA;AAEnB,SAAAC,EAAgB,MAAM;AACpB,IAAAF,EAAOH,KAAO,EAAE;AAAA,EAClB,GAAG,CAACA,GAAKG,CAAM,CAAC,qBAERV,EAAc,UAAd,EAAuB,OAAOQ,EAAM,SAAU,UAAAF,GAAS;AACjE,GAT8B,mBAWjBO,IAAmB,gBAAAV,EAAA,MAAM;AACpC,QAAMW,IAAUC,EAAWf,CAAa;AAExC,MAAIc,MAAY;AACd,UAAM,IAAI,MAAM,uDAAuD;AAGzE,SAAOA;AACT,GARgC;ACpDhC,SAASlB,EAAQC,GAAKC,GAAOkB,GAAO;AAChC,SAAInB,KAAO,OACA,KAKJoB,EAAUpB,GAAKC,EAAM,SAAQ,EAAG,MAAM,EAAE,CAAC;AACpD;AARSK,EAAAP,GAAA;ACiCT,MAAMsB,IAAuB;AAAA,EAC3B,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAAA,EAEhB,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAAA;AAElB,GAOMC,IAAqB,gBAAAhB,EAAA,CACzBiB,GACAC,MAEKD,IAIE;AAAA,EACL,OAAOA;AAAA,EACP,GAAGC;AAAA,IALIA,GALgB,uBAgBdC,IAAa,gBAAAnB,EAAA,MAAM;AAC9B,QAAMoB,IAAUC,EAAA,GACV,EAAE,GAAG,MAAAC,MAASC,EAAe,KAAK,GAElCC,IAAuB,gBAAAxB,EAAA,CAAC;AAAA,IAC5B,YAAAyB;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,MAEO,EAAEL,EAAK,OAAOG,CAAU,IAAIA,IAAaC,GAAa,EAAE,cAAAC,GAAc,GALlD,yBAQvBC,IAAc,gBAAA5B,EAAA,CAAC6B,MAA4BT,EAAQ,KAAKU,GAAeD,CAAK,GAA9D;AAEpB,SAAO;AAAA,IACL,SAASD;AAAA,IACT,aAAa,gBAAA5B,EAAA,OAAO,EAAE,OAAA+B,GAAO,QAAAC,GAAQ,UAAAC,EAAA,IAAuC,CAAA,MACnEL,EAAY;AAAA,MACjB,OACEG,KAASP,EAAqBT,EAAqB,SAAS;AAAA,MAC9D,QAAQiB,KAAUR,EAAqBT,EAAqB,MAAM;AAAA,MAClE,UAAUkB,KAAY;AAAA,MACtB,SAAS;AAAA,IAAA,CACV,GAPU;AAAA,IASb,aAAa,gBAAAjC,EAAA,OAAO;AAAA,MAClB,OAAA+B;AAAA,MACA,QAAAC;AAAA,MACA,YAAAE;AAAA,MACA,eAAAhB;AAAA,IAAA,IAC4B,OACrBU,EAAY;AAAA,MACjB,OAAOG,KAASP,EAAqBT,EAAqB,SAAS;AAAA,MACnE,QAAQiB,KAAUR,EAAqBT,EAAqB,MAAM;AAAA,MAClE,YAAAmB;AAAA,MACA,eAAelB,EAAmB,aAAaE,CAAa;AAAA,IAAA,CAC7D,GAXU;AAAA,IAab,eAAe,gBAAAlB,EAAA,OAAO;AAAA,MACpB,OAAA+B;AAAA,MACA,QAAAC;AAAA,MACA,YAAAE;AAAA,MACA,eAAAhB;AAAA,IAAA,IAC4B,OACrBU,EAAY;AAAA,MACjB,OAAOG,KAASP,EAAqBT,EAAqB,WAAW;AAAA,MACrE,QAAQiB,KAAUR,EAAqBT,EAAqB,QAAQ;AAAA,MACpE,YAAAmB;AAAA,MACA,eAAelB,EAAmB,aAAaE,CAAa;AAAA,IAAA,CAC7D,GAXY;AAAA,IAaf,eAAe,gBAAAlB,EAAA,OAAO;AAAA,MACpB,OAAA+B;AAAA,MACA,QAAAC;AAAA,MACA,YAAAE;AAAA,MACA,eAAAhB;AAAA,IAAA,IAC4B,OACrBU,EAAY;AAAA,MACjB,OAAOG,KAASP,EAAqBT,EAAqB,WAAW;AAAA,MACrE,QAAQiB,KAAUR,EAAqBT,EAAqB,QAAQ;AAAA,MACpE,YAAAmB;AAAA,MACA,eAAelB,EAAmB,SAASE,CAAa;AAAA,IAAA,CACzD,GAXY;AAAA,EAYf;AAEJ,GAjE0B,eAmEpBY,IAAgB,gBAAA9B,EAAA,CAAC,EAAE,SAAAmC,GAAS,MAAAC,GAAM,SAAAC,QAAsD;AAC5F,QAAM,EAAE,OAAAN,GAAO,eAAAb,GAAe,mBAAAoB,GAAmB,UAAAL,GAAU,SAAAM,MAAYJ,GAEjE,EAAE,GAAAK,GAAG,MAAAlB,MAASC,EAAe,KAAK,GAElCS,KACJG,KAAA,gBAAAA,EAAS,WACTK,EAAElB,EAAK,OAAOP,EAAqB,OAAO,UAAU,IAAI,cAAc,aAAa;AAAA,IACjF,cAAcA,EAAqB,OAAO;AAAA,EAAA,CAC3C,GACGmB,KACJC,KAAA,gBAAAA,EAAS,eACTK;AAAA,IACElB,EAAK,OAAOP,EAAqB,OAAO,UAAU,IAC9CA,EAAqB,OAAO,aAC5BA,EAAqB,OAAO;AAAA,IAChC,EAAE,cAAcA,EAAqB,OAAO,aAAA;AAAA,EAAa;AAG7D,SACE,gBAAA0B,EAACC,GAAA,EAAO,WAAS,IAAC,UAAS,MAAK,MAAAN,GAAY,SAAS,gBAAApC,EAAA,MAAMqC,EAAQ,EAAK,GAAnB,YACnD,UAAA;AAAA,IAAA,gBAAAM,EAACC,GAAA,EACC,4BAACC,GAAA,EAAW,WAAU,SAAQ,SAAQ,MACnC,aACH,EAAA,CACF;AAAA,sBACCC,GAAA,EACE,UAAA;AAAA,MAAA,CAACP,KACA,gBAAAI,EAACI,GAAA,EAAQ,GAAGT,GAAmB,SAAQ,YAAW,SAAS,gBAAAtC,EAAA,MAAMqC,EAAQ,EAAK,GAAnB,YACxD,UAAAH,EAAA,CACH;AAAA,MAEF,gBAAAS;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,OAAOd,KAAsB;AAAA,UAC7B,SAAQ;AAAA,UACP,GAAGf;AAAA,UACJ,SAAS,gBAAAlB,EAAA,MAAMqC,EAAQ,EAAI,GAAlB;AAAA,UAER,UAAAL;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GA3CsB,kBCpKhBgB,IAAyB,gBAAAhD,EAAA,CAACiD,MAAgB;AAC9C,MAAI,CAACA,EAAI,SAAS,GAAG;AACnB;AAIF,QAAMC,IADgBzD,EAAQwD,GAAK,GAAG,EACG,YAAY,GAAG;AAExD,SAAIC,IAAqB,IAChBD,IAGFA,EAAI,MAAMC,IAAqB,CAAC;AACzC,GAb+B,2BAkBlBC,IAAoB,gBAAAnD,EAAA,MAAM;AACrC,QAAM,EAAE,GAAGoD,GAAO,GAAGC,EAAA,IAAc9B,EAAe,KAAK;AAuBvD,SAAO,EAAE,GArBgB,gBAAAvB,EAAA,IAAIsD,MAAmC;AAC9D,UAAM,CAACL,GAAKM,CAAO,IAAID,GACjBE,IAAgBC,EAAcF,CAAO,IAAKA,IAAsC,QAChFG,IAAkB,EAAQF,GAC1BG,IACJD,KAAmB,OAAO,UAAU,eAAe,KAAKF,GAAe,cAAc;AAGvF,SAF8BD,KAAW,QAAQG,MAEpB,CAACC,KAAmB,OAAOV,KAAQ,UAAU;AACxE,YAAMtB,IAAeqB,EAAuBC,CAAG;AAE/C,UAAItB,GAAc;AAChB,cAAMiC,IAAcF,IAAkB,EAAE,GAAGF,GAAe,cAAA7B,EAAA,IAAiB,EAAE,cAAAA,EAAA;AAE7E,eAAOyB,EAAWH,GAAKW,GAAa,GAAGN,EAAK,MAAM,CAAC,CAA+B;AAAA,MACpF;AAAA,IACF;AAEA,WAAOF,EAAM,GAAGE,CAAI;AAAA,EACtB,GAnByB,MAqBb,GAAGD,EAAA;AACjB,GAzBiC;","x_google_ignoreList":[0,2]}
@@ -1,67 +0,0 @@
1
- var l = Object.defineProperty;
2
- var s = (t, r) => l(t, "name", { value: r, configurable: !0 });
3
- import { S as o } from "./storageKeys-DRzte9LZ.js";
4
- import { useCallback as E, useMemo as m } from "react";
5
- import { i as S } from "./isTypedArray-xp-fB7W4.js";
6
- const g = [
7
- o.currentLanguage,
8
- o.currentShortcuts,
9
- o.currentUserId,
10
- o.currentLogoSrc,
11
- o.owpEnv
12
- ], a = /* @__PURE__ */ s(() => typeof window > "u" ? null : window.localStorage, "getLocalStorage"), i = /* @__PURE__ */ s((t, r) => {
13
- if (!t)
14
- return r;
15
- try {
16
- return JSON.parse(t);
17
- } catch {
18
- return r;
19
- }
20
- }, "safeParseJson"), f = /* @__PURE__ */ s((t) => {
21
- const r = a();
22
- r && r.setItem(o.owpEnv, JSON.stringify(t ?? {}));
23
- }, "setEnv"), p = /* @__PURE__ */ s(() => {
24
- const t = a(), r = i((t == null ? void 0 : t.getItem(o.owpEnv)) ?? null, {});
25
- return S(r) ? r : {};
26
- }, "getEnv"), I = /* @__PURE__ */ s(() => {
27
- const t = E(() => {
28
- const e = a();
29
- if (!e)
30
- return;
31
- const n = g.map((u) => [u, e.getItem(u)]);
32
- e.clear(), n.forEach(([u, c]) => {
33
- c !== null && e.setItem(u, c);
34
- });
35
- }, []), r = E(() => {
36
- const e = a(), n = i(
37
- (e == null ? void 0 : e.getItem(o.currentUser)) ?? null,
38
- null
39
- );
40
- return S(n) ? {
41
- role: ["admin"],
42
- data: {
43
- displayName: n.USERNAME,
44
- email: n.EMAIL,
45
- MES_STARTPAGE: n.MES_STARTPAGE,
46
- STARTPAGE: n.STARTPAGE,
47
- USERSEQ: n.USERSEQ,
48
- photoURL: ""
49
- }
50
- } : null;
51
- }, []);
52
- return m(
53
- () => ({
54
- resetStorage: t,
55
- getCurrentUser: r,
56
- setEnv: f,
57
- getEnv: p
58
- }),
59
- [r, t]
60
- );
61
- }, "useStorage");
62
- export {
63
- p as g,
64
- f as s,
65
- I as u
66
- };
67
- //# sourceMappingURL=useStorage-BA0D8KA7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStorage-BA0D8KA7.js","sources":["../src/hooks/useStorage.ts"],"sourcesContent":["import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { isPlainObject } from 'es-toolkit';\nimport { useCallback, useMemo } from 'react';\n\nexport type StorageEnv = { [key: string]: any };\n\ntype StoredCurrentUserRaw = {\n USERNAME?: string;\n EMAIL?: string;\n MES_STARTPAGE?: string;\n STARTPAGE?: string;\n USERSEQ?: any;\n};\n\ntype StoredCurrentUser = {\n role: string[];\n data: {\n displayName?: string;\n email?: string;\n MES_STARTPAGE?: string;\n STARTPAGE?: string;\n USERSEQ?: any;\n photoURL: string;\n };\n};\n\nconst PRESERVED_STORAGE_KEYS = [\n STORAGE_KEYS.currentLanguage,\n STORAGE_KEYS.currentShortcuts,\n STORAGE_KEYS.currentUserId,\n STORAGE_KEYS.currentLogoSrc,\n STORAGE_KEYS.owpEnv,\n] as const;\n\n/**\n * 브라우저 스토리지 조회\n */\nconst getLocalStorage = () => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n return window.localStorage;\n};\n\n/**\n * 스토리지 문자열 안전 파싱\n * @param raw 스토리지 원본 문자열\n * @param fallback 파싱 실패 시 기본값\n */\nconst safeParseJson = <T>(raw: string | null, fallback: T): T => {\n if (!raw) {\n return fallback;\n }\n\n try {\n return JSON.parse(raw) as T;\n } catch {\n return fallback;\n }\n};\n\n/**\n * 앱 환경값 저장\n * @param env 저장할 환경값\n */\nexport const setEnv = (env: StorageEnv) => {\n const storage = getLocalStorage();\n\n if (!storage) {\n return;\n }\n\n storage.setItem(STORAGE_KEYS.owpEnv, JSON.stringify(env ?? {}));\n};\n\n/**\n * 앱 환경값 조회\n */\nexport const getEnv = (): StorageEnv => {\n const storage = getLocalStorage();\n const envData = safeParseJson<StorageEnv | null>(storage?.getItem(STORAGE_KEYS.owpEnv) ?? null, {});\n\n return isPlainObject(envData) ? envData : {};\n};\n\n/**\n * 스토리지 유틸 훅\n */\nexport const useStorage = () => {\n const resetStorage = useCallback(() => {\n const storage = getLocalStorage();\n\n if (!storage) {\n return;\n }\n\n const preservedEntries = PRESERVED_STORAGE_KEYS.map((key) => [key, storage.getItem(key)] as const);\n\n storage.clear();\n\n preservedEntries.forEach(([key, value]) => {\n if (value === null) {\n return;\n }\n\n storage.setItem(key, value);\n });\n }, []);\n\n const getCurrentUser = useCallback((): StoredCurrentUser | null => {\n const storage = getLocalStorage();\n const userData = safeParseJson<StoredCurrentUserRaw | null>(\n storage?.getItem(STORAGE_KEYS.currentUser) ?? null,\n null,\n );\n\n if (!isPlainObject(userData)) {\n return null;\n }\n\n return {\n role: ['admin'],\n data: {\n displayName: userData.USERNAME,\n email: userData.EMAIL,\n MES_STARTPAGE: userData.MES_STARTPAGE,\n STARTPAGE: userData.STARTPAGE,\n USERSEQ: userData.USERSEQ,\n photoURL: '',\n },\n };\n }, []);\n\n return useMemo(\n () => ({\n resetStorage,\n getCurrentUser,\n setEnv,\n getEnv,\n }),\n [getCurrentUser, resetStorage],\n );\n};\n"],"names":["PRESERVED_STORAGE_KEYS","STORAGE_KEYS","getLocalStorage","__name","safeParseJson","raw","fallback","setEnv","env","storage","getEnv","envData","isPlainObject","useStorage","resetStorage","useCallback","preservedEntries","key","value","getCurrentUser","userData","useMemo"],"mappings":";;;;;AA0BA,MAAMA,IAAyB;AAAA,EAC7BC,EAAa;AAAA,EACbA,EAAa;AAAA,EACbA,EAAa;AAAA,EACbA,EAAa;AAAA,EACbA,EAAa;AACf,GAKMC,IAAkB,gBAAAC,EAAA,MAClB,OAAO,SAAW,MACb,OAGF,OAAO,cALQ,oBAalBC,IAAgB,gBAAAD,EAAA,CAAIE,GAAoBC,MAAmB;AAC/D,MAAI,CAACD;AACH,WAAOC;AAGT,MAAI;AACF,WAAO,KAAK,MAAMD,CAAG;AAAA,EACvB,QAAQ;AACN,WAAOC;AAAA,EACT;AACF,GAVsB,kBAgBTC,IAAS,gBAAAJ,EAAA,CAACK,MAAoB;AACzC,QAAMC,IAAUP,EAAA;AAEhB,EAAKO,KAILA,EAAQ,QAAQR,EAAa,QAAQ,KAAK,UAAUO,KAAO,CAAA,CAAE,CAAC;AAChE,GARsB,WAaTE,IAAS,gBAAAP,EAAA,MAAkB;AACtC,QAAMM,IAAUP,EAAA,GACVS,IAAUP,GAAiCK,KAAA,gBAAAA,EAAS,QAAQR,EAAa,YAAW,MAAM,EAAE;AAElG,SAAOW,EAAcD,CAAO,IAAIA,IAAU,CAAA;AAC5C,GALsB,WAUTE,IAAa,gBAAAV,EAAA,MAAM;AAC9B,QAAMW,IAAeC,EAAY,MAAM;AACrC,UAAMN,IAAUP,EAAA;AAEhB,QAAI,CAACO;AACH;AAGF,UAAMO,IAAmBhB,EAAuB,IAAI,CAACiB,MAAQ,CAACA,GAAKR,EAAQ,QAAQQ,CAAG,CAAC,CAAU;AAEjG,IAAAR,EAAQ,MAAA,GAERO,EAAiB,QAAQ,CAAC,CAACC,GAAKC,CAAK,MAAM;AACzC,MAAIA,MAAU,QAIdT,EAAQ,QAAQQ,GAAKC,CAAK;AAAA,IAC5B,CAAC;AAAA,EACH,GAAG,CAAA,CAAE,GAECC,IAAiBJ,EAAY,MAAgC;AACjE,UAAMN,IAAUP,EAAA,GACVkB,IAAWhB;AAAA,OACfK,KAAA,gBAAAA,EAAS,QAAQR,EAAa,iBAAgB;AAAA,MAC9C;AAAA,IAAA;AAGF,WAAKW,EAAcQ,CAAQ,IAIpB;AAAA,MACL,MAAM,CAAC,OAAO;AAAA,MACd,MAAM;AAAA,QACJ,aAAaA,EAAS;AAAA,QACtB,OAAOA,EAAS;AAAA,QAChB,eAAeA,EAAS;AAAA,QACxB,WAAWA,EAAS;AAAA,QACpB,SAASA,EAAS;AAAA,QAClB,UAAU;AAAA,MAAA;AAAA,IACZ,IAZO;AAAA,EAcX,GAAG,CAAA,CAAE;AAEL,SAAOC;AAAA,IACL,OAAO;AAAA,MACL,cAAAP;AAAA,MACA,gBAAAK;AAAA,MACA,QAAAZ;AAAA,MACA,QAAAG;AAAA,IAAA;AAAA,IAEF,CAACS,GAAgBL,CAAY;AAAA,EAAA;AAEjC,GAtD0B;"}
@@ -1,186 +0,0 @@
1
- var _ = Object.defineProperty;
2
- var t = (e, r) => _(e, "name", { value: r, configurable: !0 });
3
- import { S as h } from "./storageKeys-DRzte9LZ.js";
4
- import { useAtomValue as g, useSetAtom as E } from "jotai";
5
- import { atomWithStorage as C } from "jotai/utils";
6
- import { useTranslation as q } from "react-i18next";
7
- import d, { useRef as w, useEffect as p, useCallback as B, useState as b } from "react";
8
- import { b as I } from "./isTypedArray-xp-fB7W4.js";
9
- import { useTheme as K } from "@mui/material/styles";
10
- import { g as O, e as y } from "./treeGridUtil-C46Qi5LG.js";
11
- import { b as j } from "./useOwpTranslation-CMrtqKkT.js";
12
- function k(e, r, { signal: n, edges: o } = {}) {
13
- let s, i = null;
14
- const u = o != null && o.includes("leading"), c = o == null || o.includes("trailing"), f = /* @__PURE__ */ t(() => {
15
- i !== null && (e.apply(s, i), s = void 0, i = null);
16
- }, "invoke"), l = /* @__PURE__ */ t(() => {
17
- c && f(), T();
18
- }, "onTimerEnd");
19
- let a = null;
20
- const L = /* @__PURE__ */ t(() => {
21
- a != null && clearTimeout(a), a = setTimeout(() => {
22
- a = null, l();
23
- }, r);
24
- }, "schedule"), m = /* @__PURE__ */ t(() => {
25
- a !== null && (clearTimeout(a), a = null);
26
- }, "cancelTimer"), T = /* @__PURE__ */ t(() => {
27
- m(), s = void 0, i = null;
28
- }, "cancel"), M = /* @__PURE__ */ t(() => {
29
- f();
30
- }, "flush"), S = /* @__PURE__ */ t(function(...N) {
31
- if (n != null && n.aborted)
32
- return;
33
- s = this, i = N;
34
- const V = a == null;
35
- L(), u && V && f();
36
- }, "debounced");
37
- return S.schedule = L, S.cancel = T, S.flush = M, n == null || n.addEventListener("abort", T, { once: !0 }), S;
38
- }
39
- t(k, "debounce$1");
40
- function F(e, r = 0, n = {}) {
41
- typeof n != "object" && (n = {});
42
- const { leading: o = !1, trailing: s = !0, maxWait: i } = n, u = Array(2);
43
- o && (u[0] = "leading"), s && (u[1] = "trailing");
44
- let c, f = null;
45
- const l = k(function(...m) {
46
- c = e.apply(this, m), f = null;
47
- }, r, { edges: u }), a = /* @__PURE__ */ t(function(...m) {
48
- return i != null && (f === null && (f = Date.now()), Date.now() - f >= i) ? (c = e.apply(this, m), f = Date.now(), l.cancel(), l.schedule(), c) : (l.apply(this, m), c);
49
- }, "debounced"), L = /* @__PURE__ */ t(() => (l.flush(), c), "flush");
50
- return a.cancel = l.cancel, a.flush = L, a;
51
- }
52
- t(F, "debounce");
53
- const v = C(h.commonCodeList, void 0), te = /* @__PURE__ */ t(() => g(v), "useGetCommonCodeList"), ne = /* @__PURE__ */ t(() => E(v), "useSetCommonCodeList"), R = C(h.currentLanguage, {
54
- id: "kr",
55
- title: "한국어",
56
- flag: "KR"
57
- }), re = /* @__PURE__ */ t(() => {
58
- const { t: e } = q("owp");
59
- return [
60
- { id: "kr", title: e("Common.한국어", { defaultValue: "한국어" }), flag: "KR" },
61
- {
62
- id: "en",
63
- title: e("Common.English", { defaultValue: "English" }),
64
- flag: "EN"
65
- },
66
- { id: "lc", title: e("Common.Etc", { defaultValue: "Etc" }), flag: "LC" }
67
- ];
68
- }, "useGetLanguageList"), oe = /* @__PURE__ */ t(() => g(R), "useGetCurrentLanguage"), ue = /* @__PURE__ */ t(() => E(R), "useSetCurrentLanguage"), x = C(
69
- h.currentLogoSrc,
70
- "assets/images/logo/daedong-door-logo-b.png"
71
- ), se = /* @__PURE__ */ t(() => g(x), "useGetCurrentLogoSrc"), ce = /* @__PURE__ */ t(() => E(x), "useSetCurrentLogoSrc");
72
- function ie(e, r) {
73
- const n = w(e);
74
- p(() => {
75
- n.current = e;
76
- }, [e]);
77
- const o = B(
78
- F((...s) => {
79
- n.current(...s);
80
- }, r),
81
- [r]
82
- );
83
- return p(() => () => {
84
- o.cancel();
85
- }, [o]), o;
86
- }
87
- t(ie, "useDebounce");
88
- function P(e) {
89
- if (!e || !e.length)
90
- throw new Error(
91
- "useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead."
92
- );
93
- if (e.every(Q))
94
- throw new Error(
95
- "useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead."
96
- );
97
- }
98
- t(P, "checkDeps");
99
- function Q(e) {
100
- return e == null || /^[sbn]/.test(typeof e);
101
- }
102
- t(Q, "isPrimitive");
103
- function G(e) {
104
- const r = d.useRef(e), n = d.useRef(0);
105
- return I(e, r.current) || (r.current = e, n.current += 1), d.useMemo(() => r.current, [n.current]);
106
- }
107
- t(G, "useDeepCompareMemoize");
108
- function ae(e, r) {
109
- return process.env.NODE_ENV !== "production" && P(r), d.useEffect(e, G(r));
110
- }
111
- t(ae, "useDeepCompareEffect");
112
- function fe(e, r) {
113
- return d.useEffect(e, G(r));
114
- }
115
- t(fe, "useDeepCompareEffectNoCheck");
116
- const A = C(h.navigationList, void 0), le = /* @__PURE__ */ t(() => g(A), "useGetNavigationList"), me = /* @__PURE__ */ t(() => E(A), "useSetNavigationList"), D = C(h.currentShortcuts, []), de = /* @__PURE__ */ t(() => g(D), "useGetShortcuts"), pe = /* @__PURE__ */ t(() => E(D), "useSetShortcuts");
117
- function he(e) {
118
- const r = K(), n = e(r).replace("@media ", "");
119
- function o(u) {
120
- return window.matchMedia(u).matches;
121
- }
122
- t(o, "getMatches");
123
- const [s, i] = b(o(n));
124
- return p(
125
- () => {
126
- const u = window.matchMedia(n);
127
- i(o(n));
128
- const c = /* @__PURE__ */ t((f) => i(f.matches), "handler");
129
- return u.addEventListener("change", c), () => u.removeEventListener("change", c);
130
- },
131
- [n]
132
- // Empty array ensures effect is only run on mount and unmount
133
- ), s;
134
- }
135
- t(he, "useThemeMediaQuery");
136
- function ge(e, r) {
137
- const n = w(e);
138
- p(() => {
139
- n.current = e;
140
- }, [e]), p(() => {
141
- let o;
142
- return r !== null && e && typeof e == "function" && (o = setTimeout(n.current, r)), () => {
143
- o && clearTimeout(o);
144
- };
145
- }, [e, r]);
146
- }
147
- t(ge, "useTimeout");
148
- const Ee = /* @__PURE__ */ t((e) => {
149
- const { t: r } = j(), n = w(!1), [o, s] = b(!1);
150
- return { exportByTreeGrid: /* @__PURE__ */ t(async (u) => {
151
- if (n.current)
152
- return;
153
- n.current = !0, s(!0);
154
- const c = O(e);
155
- try {
156
- return typeof u == "string" ? await y(c, { exportName: u, t: r }) : await y(c, {
157
- ...u,
158
- t: r
159
- });
160
- } finally {
161
- n.current = !1, s(!1);
162
- }
163
- }, "exportByTreeGrid"), isExporting: o };
164
- }, "useTreeGridExcelExport");
165
- export {
166
- ne as a,
167
- re as b,
168
- oe as c,
169
- ue as d,
170
- se as e,
171
- ce as f,
172
- ie as g,
173
- G as h,
174
- ae as i,
175
- fe as j,
176
- le as k,
177
- me as l,
178
- de as m,
179
- pe as n,
180
- he as o,
181
- ge as p,
182
- Ee as q,
183
- F as r,
184
- te as u
185
- };
186
- //# sourceMappingURL=useTreeGridExcelExport-DLMecvHS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTreeGridExcelExport-DLMecvHS.js","sources":["../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/function/debounce.mjs","../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.mjs","../src/hooks/useCommonCodeList.ts","../src/hooks/useCurrentLanguage.ts","../src/hooks/useCurrentLogoSrc.ts","../src/hooks/useDebounce.ts","../src/hooks/useDeepCompareEffect.ts","../src/hooks/useNavigation.ts","../src/hooks/useShortcuts.ts","../src/hooks/useThemeMediaQuery.ts","../src/hooks/useTimeout.ts","../src/hooks/useTreeGridExcelExport.ts"],"sourcesContent":["function debounce(func, debounceMs, { signal, edges } = {}) {\n let pendingThis = undefined;\n let pendingArgs = null;\n const leading = edges != null && edges.includes('leading');\n const trailing = edges == null || edges.includes('trailing');\n const invoke = () => {\n if (pendingArgs !== null) {\n func.apply(pendingThis, pendingArgs);\n pendingThis = undefined;\n pendingArgs = null;\n }\n };\n const onTimerEnd = () => {\n if (trailing) {\n invoke();\n }\n cancel();\n };\n let timeoutId = null;\n const schedule = () => {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = null;\n onTimerEnd();\n }, debounceMs);\n };\n const cancelTimer = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n const cancel = () => {\n cancelTimer();\n pendingThis = undefined;\n pendingArgs = null;\n };\n const flush = () => {\n invoke();\n };\n const debounced = function (...args) {\n if (signal?.aborted) {\n return;\n }\n pendingThis = this;\n pendingArgs = args;\n const isFirstCall = timeoutId == null;\n schedule();\n if (leading && isFirstCall) {\n invoke();\n }\n };\n debounced.schedule = schedule;\n debounced.cancel = cancel;\n debounced.flush = flush;\n signal?.addEventListener('abort', cancel, { once: true });\n return debounced;\n}\n\nexport { debounce };\n","import { debounce as debounce$1 } from '../../function/debounce.mjs';\n\nfunction debounce(func, debounceMs = 0, options = {}) {\n if (typeof options !== 'object') {\n options = {};\n }\n const { leading = false, trailing = true, maxWait } = options;\n const edges = Array(2);\n if (leading) {\n edges[0] = 'leading';\n }\n if (trailing) {\n edges[1] = 'trailing';\n }\n let result = undefined;\n let pendingAt = null;\n const _debounced = debounce$1(function (...args) {\n result = func.apply(this, args);\n pendingAt = null;\n }, debounceMs, { edges });\n const debounced = function (...args) {\n if (maxWait != null) {\n if (pendingAt === null) {\n pendingAt = Date.now();\n }\n if (Date.now() - pendingAt >= maxWait) {\n result = func.apply(this, args);\n pendingAt = Date.now();\n _debounced.cancel();\n _debounced.schedule();\n return result;\n }\n }\n _debounced.apply(this, args);\n return result;\n };\n const flush = () => {\n _debounced.flush();\n return result;\n };\n debounced.cancel = _debounced.cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport { debounce };\n","import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { CommonCode } from '@/utils/commonCodeUtils';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nconst commonCodeAtom = atomWithStorage<\n | {\n [codeId: string]: Array<CommonCode>;\n }\n | undefined\n>(STORAGE_KEYS.commonCodeList, undefined);\n\n/**\n * 공통코드 목록 조회 훅\n */\nexport const useGetCommonCodeList = () => {\n return useAtomValue(commonCodeAtom);\n};\n\n/**\n * 공통코드 목록 설정 훅\n */\nexport const useSetCommonCodeList = () => {\n return useSetAtom(commonCodeAtom);\n};\n","export { FALLBACK_LANGUAGE_LIST } from '@/constants/language';\nimport { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\nimport { useTranslation } from 'react-i18next';\n\nexport type CurrentLanguage = { id: 'en' | 'kr' | 'lc'; title: string; flag: string };\n\nconst currentLanguageAtom = atomWithStorage<CurrentLanguage>(STORAGE_KEYS.currentLanguage, {\n id: 'kr',\n title: '한국어',\n flag: 'KR',\n});\n\n/**\n * 언어 목록 조회 훅\n */\nexport const useGetLanguageList = () => {\n const { t } = useTranslation('owp');\n return [\n { id: 'kr', title: t('Common.한국어', { defaultValue: '한국어' }), flag: 'KR' },\n {\n id: 'en',\n title: t('Common.English', { defaultValue: 'English' }),\n flag: 'EN',\n },\n { id: 'lc', title: t('Common.Etc', { defaultValue: 'Etc' }), flag: 'LC' },\n ];\n};\n\n/**\n * 현재 언어 조회 훅\n */\nexport const useGetCurrentLanguage = () => {\n return useAtomValue(currentLanguageAtom);\n};\n\n/**\n * 현재 언어 설정 훅\n */\nexport const useSetCurrentLanguage = () => {\n return useSetAtom(currentLanguageAtom);\n};\n","import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nconst currentLogoSrcAtom = atomWithStorage<string>(\n STORAGE_KEYS.currentLogoSrc,\n 'assets/images/logo/daedong-door-logo-b.png',\n);\n\n/**\n * 현재 로고 경로 조회 훅\n */\nexport const useGetCurrentLogoSrc = () => {\n return useAtomValue(currentLogoSrcAtom);\n};\n\n/**\n * 현재 로고 경로 설정 훅\n */\nexport const useSetCurrentLogoSrc = () => {\n return useSetAtom(currentLogoSrcAtom);\n};\n","import { debounce } from 'es-toolkit/compat';\nimport { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Debounce hook.\n * @param {T} callback\n * @param {number} delay\n * @returns {T}\n */\nexport function useDebounce<T extends (...args: never[]) => void>(callback: T, delay: number): T {\n const callbackRef = useRef<T>(callback);\n\n // Update the current callback each time it changes.\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const debouncedFn = useCallback(\n debounce((...args: never[]) => {\n callbackRef.current(...args);\n }, delay),\n [delay],\n );\n\n useEffect(() => {\n // Cleanup function to cancel any pending debounced calls\n return () => {\n debouncedFn.cancel();\n };\n }, [debouncedFn]);\n\n return debouncedFn as unknown as T;\n}\n","import { isEqual as deepEqual } from 'es-toolkit/compat';\nimport React from 'react';\n\ntype UseEffectParamsType = Parameters<typeof React.useEffect>;\ntype EffectCallbackType = UseEffectParamsType[0];\ntype DependencyListType = UseEffectParamsType[1];\n\n// yes, I know it's void, but I like what this communicates about\n// the intent of these functions: It's just like useEffect\ntype UseEffectReturn = ReturnType<typeof React.useEffect>;\n\n/**\n * The checkDeps function checks if the dependency list is valid for use with useDeepCompareEffect.\n * It throws an error if the dependency list is empty or contains only primitive values.\n */\nfunction checkDeps(deps: DependencyListType) {\n if (!deps || !deps.length) {\n throw new Error(\n 'useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.',\n );\n }\n\n if (deps.every(isPrimitive)) {\n throw new Error(\n 'useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.',\n );\n }\n}\n\n/**\n * The isPrimitive function checks if a value is a primitive type.\n * It returns true if the value is null, undefined, a string, a boolean, or a number.\n */\nfunction isPrimitive(val: unknown) {\n return val == null || /^[sbn]/.test(typeof val);\n}\n\n/**\n * The isPrimitive function checks if a value is a primitive type.\n * It returns true if the value is null, undefined, a string, a boolean, or a number.\n */\nexport function useDeepCompareMemoize<T>(value: T) {\n const ref = React.useRef<T>(value);\n const signalRef = React.useRef<number>(0);\n\n if (!deepEqual(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n }\n\n return React.useMemo(() => ref.current, [signalRef.current]);\n}\n\n/**\n * The isPrimitive function checks if a value is a primitive type.\n * It returns true if the value is null, undefined, a string, a boolean, or a number.\n */\nexport function useDeepCompareEffect(\n callback: EffectCallbackType,\n dependencies: DependencyListType,\n): UseEffectReturn {\n if (process.env.NODE_ENV !== 'production') {\n checkDeps(dependencies);\n }\n\n return React.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\n/**\n * deep compare effect 훅\n * @param callback effect 콜백\n * @param dependencies 의존성 목록\n */\nexport function useDeepCompareEffectNoCheck(\n callback: EffectCallbackType,\n dependencies: DependencyListType,\n): UseEffectReturn {\n return React.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n","import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\ntype Navigation = {\n id: string;\n title: string;\n translate: string;\n type: string;\n icon: string;\n};\nconst navigationAtom = atomWithStorage<\n Array<Navigation & { children?: Array<Navigation> }> | undefined\n>(STORAGE_KEYS.navigationList, undefined);\n\n/**\n * 내비게이션 목록 조회 훅\n */\nexport const useGetNavigationList = () => {\n return useAtomValue(navigationAtom);\n};\n\n/**\n * 내비게이션 목록 설정 훅\n */\nexport const useSetNavigationList = () => {\n return useSetAtom(navigationAtom);\n};\n","import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nconst currentShortcutsAtom = atomWithStorage<Array<string> | []>(STORAGE_KEYS.currentShortcuts, []);\n\n/**\n * 바로가기 목록 조회 훅\n */\nexport const useGetShortcuts = () => {\n return useAtomValue(currentShortcutsAtom);\n};\n\n/**\n * 바로가기 목록 설정 훅\n */\nexport const useSetShortcuts = () => {\n return useSetAtom(currentShortcutsAtom);\n};\n","import { useTheme } from '@mui/material/styles';\nimport { Theme } from '@mui/system/createTheme/createTheme';\nimport { useEffect, useState } from 'react';\n\n/**\n * The useThemeMediaQuery function is a custom hook that returns a boolean indicating whether the current screen matches the specified media query.\n * It takes in a themeCallbackFunc as a parameter, which is a function that returns a string representing the media query to match.\n * It returns a boolean indicating whether the current screen matches the specified media query.\n */\nexport function useThemeMediaQuery(themeCallbackFunc: (theme: Theme) => string) {\n const theme = useTheme();\n\n const query = themeCallbackFunc(theme).replace('@media ', '');\n\n /**\n * The getMatches function checks if the current screen matches the specified media query.\n * It takes in a media query string as a parameter and returns a boolean indicating whether the screen matches the query.\n *\n */\n function getMatches(q: string) {\n return window.matchMedia(q).matches;\n }\n\n const [matches, setMatches] = useState(getMatches(query));\n\n useEffect(\n () => {\n const mediaQuery = window.matchMedia(query);\n\n // Update the state with the current value\n setMatches(getMatches(query));\n\n // Create an event listener\n const handler = (event: MediaQueryListEvent) => setMatches(event.matches);\n\n // Attach the event listener to know when the matches value changes\n mediaQuery.addEventListener('change', handler);\n\n // Remove the event listener on cleanup\n return () => mediaQuery.removeEventListener('change', handler);\n },\n [query], // Empty array ensures effect is only run on mount and unmount\n );\n\n return matches;\n}\n","import { useEffect, useRef } from 'react';\n\n/**\n * The useTimeout function is a custom hook that sets a timeout for a given callback function.\n * It takes in a callback function and a delay time in milliseconds as parameters.\n * It returns nothing.\n */\nexport function useTimeout(callback: () => void, delay: number) {\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined;\n\n if (delay !== null && callback && typeof callback === 'function') {\n timer = setTimeout(callbackRef.current, delay);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [callback, delay]);\n}\n","import {\n ExportTreeGridExcelOptions,\n exportTreeGridExcel,\n} from '@/utils/treeGridExportExcelUtil';\nimport { getTreeGridById } from '@/utils/treeGridUtil';\nimport { useRef, useState } from 'react';\nimport { useOwpTranslation } from './useOwpTranslation';\n\nexport type UseTreeGridExcelExportOptions = Omit<ExportTreeGridExcelOptions, 't'> | string;\n\n/**\n * TreeGrid 엑셀 내보내기 훅\n * @param gridId TreeGrid 인스턴스 ID\n */\nexport const useTreeGridExcelExport = (gridId: string) => {\n const { t } = useOwpTranslation();\n const exportPendingRef = useRef(false);\n const [isExporting, setIsExporting] = useState(false);\n\n /**\n * TreeGrid 엑셀 내보내기 실행기\n * @param options 다운로드 옵션\n */\n const exportByTreeGrid = async (options?: UseTreeGridExcelExportOptions) => {\n if (exportPendingRef.current) {\n return;\n }\n\n exportPendingRef.current = true;\n setIsExporting(true);\n\n const grid = getTreeGridById(gridId);\n\n try {\n if (typeof options === 'string') {\n return await exportTreeGridExcel(grid, { exportName: options, t });\n }\n\n return await exportTreeGridExcel(grid, {\n ...options,\n t,\n });\n } finally {\n exportPendingRef.current = false;\n setIsExporting(false);\n }\n };\n\n return { exportByTreeGrid, isExporting };\n};\n"],"names":["debounce","func","debounceMs","signal","edges","pendingThis","pendingArgs","leading","trailing","invoke","__name","onTimerEnd","cancel","timeoutId","schedule","cancelTimer","flush","debounced","args","isFirstCall","options","maxWait","result","pendingAt","_debounced","debounce$1","commonCodeAtom","atomWithStorage","STORAGE_KEYS","useGetCommonCodeList","useAtomValue","useSetCommonCodeList","useSetAtom","currentLanguageAtom","useGetLanguageList","t","useTranslation","useGetCurrentLanguage","useSetCurrentLanguage","currentLogoSrcAtom","useGetCurrentLogoSrc","useSetCurrentLogoSrc","useDebounce","callback","delay","callbackRef","useRef","useEffect","debouncedFn","useCallback","checkDeps","deps","isPrimitive","val","useDeepCompareMemoize","value","ref","React","signalRef","deepEqual","useDeepCompareEffect","dependencies","useDeepCompareEffectNoCheck","navigationAtom","useGetNavigationList","useSetNavigationList","currentShortcutsAtom","useGetShortcuts","useSetShortcuts","useThemeMediaQuery","themeCallbackFunc","theme","useTheme","query","getMatches","q","matches","setMatches","useState","mediaQuery","handler","event","useTimeout","timer","useTreeGridExcelExport","gridId","useOwpTranslation","exportPendingRef","isExporting","setIsExporting","grid","getTreeGridById","exportTreeGridExcel"],"mappings":"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","x_google_ignoreList":[0,1]}
File without changes