@erpsquad/common 1.10.73 → 1.10.75

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 (143) hide show
  1. package/dist/chunks/{ERPUIProvider-BPpcQgND.js → ERPUIProvider-Ce7EhOa_.js} +15 -10
  2. package/dist/chunks/ERPUIProvider-Ce7EhOa_.js.map +1 -0
  3. package/dist/chunks/{ERPUIProvider-DZbxFsRb.esm.js → ERPUIProvider-CmmabhgQ.esm.js} +15 -10
  4. package/dist/chunks/{ERPUIProvider-DZbxFsRb.esm.js.map → ERPUIProvider-CmmabhgQ.esm.js.map} +1 -1
  5. package/dist/chunks/{actionCreator-B1XDiSfb.esm.js → actionCreator-Cy_J6Xfp.esm.js} +2 -2
  6. package/dist/chunks/{actionCreator-B1XDiSfb.esm.js.map → actionCreator-Cy_J6Xfp.esm.js.map} +1 -1
  7. package/dist/chunks/{actionCreator-DlbJbrTk.js → actionCreator-DqVmiGzl.js} +2 -2
  8. package/dist/chunks/{actionCreator-DlbJbrTk.js.map → actionCreator-DqVmiGzl.js.map} +1 -1
  9. package/dist/chunks/{android-12-switch-DcPr9cvn.js → android-12-switch-Cruc3J1J.js} +13 -13
  10. package/dist/chunks/{android-12-switch-DcPr9cvn.js.map → android-12-switch-Cruc3J1J.js.map} +1 -1
  11. package/dist/chunks/{android-12-switch-DSM1b9TA.esm.js → android-12-switch-DPP00xjJ.esm.js} +12 -12
  12. package/dist/chunks/{android-12-switch-DSM1b9TA.esm.js.map → android-12-switch-DPP00xjJ.esm.js.map} +1 -1
  13. package/dist/chunks/{appbar-DDijzrAm.esm.js → appbar-7puZelDZ.esm.js} +105 -6
  14. package/dist/chunks/appbar-7puZelDZ.esm.js.map +1 -0
  15. package/dist/chunks/{appbar-Bf_GaMVY.js → appbar-DbazXkez.js} +105 -6
  16. package/dist/chunks/appbar-DbazXkez.js.map +1 -0
  17. package/dist/chunks/{checkbox-Jgx2gkFF.js → checkbox-DNW1SYc0.js} +3 -3
  18. package/dist/chunks/{checkbox-Jgx2gkFF.js.map → checkbox-DNW1SYc0.js.map} +1 -1
  19. package/dist/chunks/{checkbox-C5oERyEy.esm.js → checkbox-Vd4h25n2.esm.js} +3 -3
  20. package/dist/chunks/{checkbox-C5oERyEy.esm.js.map → checkbox-Vd4h25n2.esm.js.map} +1 -1
  21. package/dist/chunks/{common-BtIKVrzA.js → common-B1hGK8kQ.js} +23 -7
  22. package/dist/chunks/{common-BtIKVrzA.js.map → common-B1hGK8kQ.js.map} +1 -1
  23. package/dist/chunks/{common-D8YIf-p0.esm.js → common-BVfS06ca.esm.js} +23 -7
  24. package/dist/chunks/{common-D8YIf-p0.esm.js.map → common-BVfS06ca.esm.js.map} +1 -1
  25. package/dist/chunks/{custom-editor-DxM6_6Mt.esm.js → custom-editor-e50eHmKt.esm.js} +2 -2
  26. package/dist/chunks/{custom-editor-DxM6_6Mt.esm.js.map → custom-editor-e50eHmKt.esm.js.map} +1 -1
  27. package/dist/chunks/{custom-editor-5dpZZW_j.js → custom-editor-iUZb8s2v.js} +2 -2
  28. package/dist/chunks/{custom-editor-5dpZZW_j.js.map → custom-editor-iUZb8s2v.js.map} +1 -1
  29. package/dist/chunks/{default-data-CmARVEBW.js → default-data-B0Y8TU26.js} +14 -14
  30. package/dist/chunks/{default-data-CmARVEBW.js.map → default-data-B0Y8TU26.js.map} +1 -1
  31. package/dist/chunks/{default-data-DSbmaVFY.esm.js → default-data-DlPr1rYe.esm.js} +14 -14
  32. package/dist/chunks/{default-data-DSbmaVFY.esm.js.map → default-data-DlPr1rYe.esm.js.map} +1 -1
  33. package/dist/chunks/{form-builder-conversion-D9q6WTmq.js → form-builder-conversion-BcJXOpRp.js} +2 -2
  34. package/dist/chunks/{form-builder-conversion-D9q6WTmq.js.map → form-builder-conversion-BcJXOpRp.js.map} +1 -1
  35. package/dist/chunks/{form-builder-conversion-C2frmPH6.esm.js → form-builder-conversion-DrA9C0NQ.esm.js} +2 -2
  36. package/dist/chunks/{form-builder-conversion-C2frmPH6.esm.js.map → form-builder-conversion-DrA9C0NQ.esm.js.map} +1 -1
  37. package/dist/chunks/{form-builder-deconversion-pKIkZ_95.esm.js → form-builder-deconversion-1hYI2jWw.esm.js} +3 -3
  38. package/dist/chunks/{form-builder-deconversion-pKIkZ_95.esm.js.map → form-builder-deconversion-1hYI2jWw.esm.js.map} +1 -1
  39. package/dist/chunks/{form-builder-deconversion-x7TevuHU.js → form-builder-deconversion-BmHlW07j.js} +3 -3
  40. package/dist/chunks/{form-builder-deconversion-x7TevuHU.js.map → form-builder-deconversion-BmHlW07j.js.map} +1 -1
  41. package/dist/chunks/{fullScreen-B73ASpXc.esm.js → fullScreen-B4ZPj9dr.esm.js} +2 -2
  42. package/dist/chunks/{fullScreen-B73ASpXc.esm.js.map → fullScreen-B4ZPj9dr.esm.js.map} +1 -1
  43. package/dist/chunks/{fullScreen-GATqKdsG.js → fullScreen-BrdRBi-K.js} +2 -2
  44. package/dist/chunks/{fullScreen-GATqKdsG.js.map → fullScreen-BrdRBi-K.js.map} +1 -1
  45. package/dist/chunks/{languageContext-CsSLzEaN.js → languageContext-CANlRoA0.js} +3 -3
  46. package/dist/chunks/{languageContext-CsSLzEaN.js.map → languageContext-CANlRoA0.js.map} +1 -1
  47. package/dist/chunks/{languageContext-9Nob_HWV.esm.js → languageContext-DfIURMbF.esm.js} +3 -3
  48. package/dist/chunks/{languageContext-9Nob_HWV.esm.js.map → languageContext-DfIURMbF.esm.js.map} +1 -1
  49. package/dist/chunks/{migration-utils-2n9_gMx1.esm.js → migration-utils-D4OMb4fL.esm.js} +2 -2
  50. package/dist/chunks/{migration-utils-2n9_gMx1.esm.js.map → migration-utils-D4OMb4fL.esm.js.map} +1 -1
  51. package/dist/chunks/{migration-utils-hBeA2Gxt.js → migration-utils-Dc_6VdeJ.js} +2 -2
  52. package/dist/chunks/{migration-utils-hBeA2Gxt.js.map → migration-utils-Dc_6VdeJ.js.map} +1 -1
  53. package/dist/chunks/{page-context-_AMJB_ty.js → page-context-Cg2MyCmD.js} +3 -3
  54. package/dist/chunks/{page-context-_AMJB_ty.js.map → page-context-Cg2MyCmD.js.map} +1 -1
  55. package/dist/chunks/{page-context-C_YWMVhh.esm.js → page-context-DfmpUWuf.esm.js} +3 -3
  56. package/dist/chunks/{page-context-C_YWMVhh.esm.js.map → page-context-DfmpUWuf.esm.js.map} +1 -1
  57. package/dist/chunks/{radio-button-BYtmY0l-.js → radio-button-Bxl9UISl.js} +1 -18
  58. package/dist/chunks/radio-button-Bxl9UISl.js.map +1 -0
  59. package/dist/chunks/{radio-button-wgwiOmaZ.esm.js → radio-button-mbPNQ3rc.esm.js} +16 -33
  60. package/dist/chunks/radio-button-mbPNQ3rc.esm.js.map +1 -0
  61. package/dist/chunks/{reducer-BMzMjtRW.js → reducer-BuEwR2fM.js} +2 -2
  62. package/dist/chunks/{reducer-BMzMjtRW.js.map → reducer-BuEwR2fM.js.map} +1 -1
  63. package/dist/chunks/{reducer-CUnOsvvx.esm.js → reducer-C0cHDjmv.esm.js} +2 -2
  64. package/dist/chunks/{reducer-CUnOsvvx.esm.js.map → reducer-C0cHDjmv.esm.js.map} +1 -1
  65. package/dist/chunks/{shareSlice-D8QQItpw.js → shareSlice-BHlSQRKw.js} +2 -2
  66. package/dist/chunks/{shareSlice-D8QQItpw.js.map → shareSlice-BHlSQRKw.js.map} +1 -1
  67. package/dist/chunks/{shareSlice-DtNEq6Sr.esm.js → shareSlice-DvnaG9GO.esm.js} +2 -2
  68. package/dist/chunks/{shareSlice-DtNEq6Sr.esm.js.map → shareSlice-DvnaG9GO.esm.js.map} +1 -1
  69. package/dist/chunks/{sidebar-CGU3tdez.esm.js → sidebar-B6-JNM4K.esm.js} +5 -5
  70. package/dist/chunks/{sidebar-CGU3tdez.esm.js.map → sidebar-B6-JNM4K.esm.js.map} +1 -1
  71. package/dist/chunks/{sidebar-CobitAdp.js → sidebar-CBzmUNFw.js} +5 -5
  72. package/dist/chunks/{sidebar-CobitAdp.js.map → sidebar-CBzmUNFw.js.map} +1 -1
  73. package/dist/chunks/{sidebarScreen-R_SLQJpq.esm.js → sidebarScreen-C7gUqSYZ.esm.js} +5 -5
  74. package/dist/chunks/{sidebarScreen-R_SLQJpq.esm.js.map → sidebarScreen-C7gUqSYZ.esm.js.map} +1 -1
  75. package/dist/chunks/{sidebarScreen-Kh58mSpF.js → sidebarScreen-vIzHgQxd.js} +5 -5
  76. package/dist/chunks/{sidebarScreen-Kh58mSpF.js.map → sidebarScreen-vIzHgQxd.js.map} +1 -1
  77. package/dist/chunks/{store-BlAfdMng.js → store-6mckWhh4.js} +3 -3
  78. package/dist/chunks/{store-BlAfdMng.js.map → store-6mckWhh4.js.map} +1 -1
  79. package/dist/chunks/{store-CKCweEtz.esm.js → store-giqheYvw.esm.js} +3 -3
  80. package/dist/chunks/{store-CKCweEtz.esm.js.map → store-giqheYvw.esm.js.map} +1 -1
  81. package/dist/chunks/{tick-B4IAsV4W.js → tick-COMAwRR1.js} +18 -1
  82. package/dist/chunks/tick-COMAwRR1.js.map +1 -0
  83. package/dist/chunks/{tick-DUuDXLjB.esm.js → tick-DaxkNl7E.esm.js} +18 -1
  84. package/dist/chunks/tick-DaxkNl7E.esm.js.map +1 -0
  85. package/dist/chunks/{translations-CURTcJu7.esm.js → translations-DiE6kTBI.esm.js} +2 -2
  86. package/dist/chunks/{translations-CURTcJu7.esm.js.map → translations-DiE6kTBI.esm.js.map} +1 -1
  87. package/dist/chunks/{translations-B5xv1gxS.js → translations-vAZ7RIc7.js} +2 -2
  88. package/dist/chunks/{translations-B5xv1gxS.js.map → translations-vAZ7RIc7.js.map} +1 -1
  89. package/dist/chunks/{uom-field-wrapper-Dke2cTpR.esm.js → uom-field-wrapper-BnjRsGw2.esm.js} +16 -16
  90. package/dist/chunks/{uom-field-wrapper-Dke2cTpR.esm.js.map → uom-field-wrapper-BnjRsGw2.esm.js.map} +1 -1
  91. package/dist/chunks/{uom-field-wrapper-BAFOTp35.js → uom-field-wrapper-aR0Kqbm9.js} +17 -17
  92. package/dist/chunks/{uom-field-wrapper-BAFOTp35.js.map → uom-field-wrapper-aR0Kqbm9.js.map} +1 -1
  93. package/dist/chunks/{useAddressContact-DRv6rxkI.js → useAddressContact-3jZsdmGS.js} +6 -6
  94. package/dist/chunks/{useAddressContact-DRv6rxkI.js.map → useAddressContact-3jZsdmGS.js.map} +1 -1
  95. package/dist/chunks/{useAddressContact-jJ8XlmC_.esm.js → useAddressContact-VUXo0xxq.esm.js} +6 -6
  96. package/dist/chunks/{useAddressContact-jJ8XlmC_.esm.js.map → useAddressContact-VUXo0xxq.esm.js.map} +1 -1
  97. package/dist/chunks/{useAuth-DtiC6c_b.js → useAuth-BNR7N60-.js} +2 -2
  98. package/dist/chunks/useAuth-BNR7N60-.js.map +1 -0
  99. package/dist/chunks/{useAuth-DnwuL4k3.esm.js → useAuth-b1FMAFmO.esm.js} +2 -2
  100. package/dist/chunks/useAuth-b1FMAFmO.esm.js.map +1 -0
  101. package/dist/chunks/{useLangauge-C_Z9sEw7.js → useLangauge-DsEM05Ll.js} +2 -2
  102. package/dist/chunks/{useLangauge-C_Z9sEw7.js.map → useLangauge-DsEM05Ll.js.map} +1 -1
  103. package/dist/chunks/{useLangauge-P-Sc0U-O.esm.js → useLangauge-dxTIlPe-.esm.js} +2 -2
  104. package/dist/chunks/{useLangauge-P-Sc0U-O.esm.js.map → useLangauge-dxTIlPe-.esm.js.map} +1 -1
  105. package/dist/components/header/components/index.d.ts +1 -0
  106. package/dist/components/header/components/language-switch/index.d.ts +2 -0
  107. package/dist/components/header/components/language-switch/language-switch.d.ts +2 -0
  108. package/dist/components/index.esm.js +34 -34
  109. package/dist/components/index.js +18 -18
  110. package/dist/components/providers/ERPUIProvider.d.ts +1 -0
  111. package/dist/contexts/AuthContext.d.ts +1 -0
  112. package/dist/contexts/index.esm.js +3 -3
  113. package/dist/contexts/index.js +3 -3
  114. package/dist/hooks/index.esm.js +5 -5
  115. package/dist/hooks/index.js +5 -5
  116. package/dist/icons/index.esm.js +26 -26
  117. package/dist/icons/index.js +8 -8
  118. package/dist/index.esm.js +58 -58
  119. package/dist/index.js +32 -32
  120. package/dist/layout/index.esm.js +2 -2
  121. package/dist/layout/index.js +2 -2
  122. package/dist/redux/index.esm.js +4 -4
  123. package/dist/redux/index.js +4 -4
  124. package/dist/src/components/header/components/index.d.ts +1 -0
  125. package/dist/src/components/header/components/language-switch/index.d.ts +2 -0
  126. package/dist/src/components/header/components/language-switch/language-switch.d.ts +2 -0
  127. package/dist/src/components/providers/ERPUIProvider.d.ts +1 -0
  128. package/dist/src/contexts/AuthContext.d.ts +1 -0
  129. package/dist/style.css +43 -0
  130. package/dist/utils/index.esm.js +7 -7
  131. package/dist/utils/index.js +6 -6
  132. package/dist/views/index.esm.js +8 -8
  133. package/dist/views/index.js +7 -7
  134. package/package.json +4 -3
  135. package/dist/chunks/ERPUIProvider-BPpcQgND.js.map +0 -1
  136. package/dist/chunks/appbar-Bf_GaMVY.js.map +0 -1
  137. package/dist/chunks/appbar-DDijzrAm.esm.js.map +0 -1
  138. package/dist/chunks/radio-button-BYtmY0l-.js.map +0 -1
  139. package/dist/chunks/radio-button-wgwiOmaZ.esm.js.map +0 -1
  140. package/dist/chunks/tick-B4IAsV4W.js.map +0 -1
  141. package/dist/chunks/tick-DUuDXLjB.esm.js.map +0 -1
  142. package/dist/chunks/useAuth-DnwuL4k3.esm.js.map +0 -1
  143. package/dist/chunks/useAuth-DtiC6c_b.js.map +0 -1
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  const React = require("react");
3
3
  const reactI18next = require("react-i18next");
4
- const translations = require("./translations-B5xv1gxS.js");
4
+ const translations = require("./translations-vAZ7RIc7.js");
5
5
  const modules = require("./modules-0TgSOLkZ.js");
6
- const useAuth = require("./useAuth-DtiC6c_b.js");
6
+ const useAuth = require("./useAuth-BNR7N60-.js");
7
7
  const pathname_rental = require("./pathname.rental-C0Yjyyx7.js");
8
8
  const reactRedux = require("react-redux");
9
- const checkbox = require("./checkbox-Jgx2gkFF.js");
9
+ const checkbox = require("./checkbox-DNW1SYc0.js");
10
10
  const reactRouterDom = require("react-router-dom");
11
11
  const jsxRuntime = require("./jsx-runtime-B6vEU3CM.js");
12
12
  const notistack = require("notistack");
13
- const store = require("./store-BlAfdMng.js");
13
+ const store = require("./store-6mckWhh4.js");
14
14
  const themeImpl = require("./theme-impl-VqZAJjv7.js");
15
- const languageContext = require("./languageContext-CsSLzEaN.js");
16
- const pageContext = require("./page-context-_AMJB_ty.js");
15
+ const languageContext = require("./languageContext-CANlRoA0.js");
16
+ const pageContext = require("./page-context-Cg2MyCmD.js");
17
17
  const apiConfig = require("./api-config-DXwDMFn-.js");
18
- const common = require("./common-BtIKVrzA.js");
18
+ const common = require("./common-B1hGK8kQ.js");
19
19
  const moduleRoutesConfig = require("./module-routes-config-B8IucBuj.js");
20
20
  let globalLastLoadedModules = "";
21
21
  let globalIsLoading = false;
@@ -228,10 +228,12 @@ const ERPUIProvider = ({
228
228
  moduleRoutes,
229
229
  routeToColumnsMap,
230
230
  routeToResourceMap,
231
- publicRoutes = []
232
- // Default empty array for public routes in AuthProvider
231
+ publicRoutes = [],
232
+ // Default empty array for public routes in AuthProvider
233
+ moduleToFractionFieldMap
233
234
  }) => {
234
235
  console.log("additionalApiConfigurations...........", additionalApiConfigurations);
236
+ console.log("Test................");
235
237
  const isInitialized = React.useRef(false);
236
238
  if (providedApiConfig && !isInitialized.current) {
237
239
  try {
@@ -243,6 +245,9 @@ const ERPUIProvider = ({
243
245
  if (moduleRoutes) {
244
246
  moduleRoutesConfig.setModuleRoutes(moduleRoutes);
245
247
  }
248
+ if (moduleToFractionFieldMap) {
249
+ localStorage.setItem("_module_fraction_map", JSON.stringify(moduleToFractionFieldMap));
250
+ }
246
251
  isInitialized.current = true;
247
252
  } catch (error) {
248
253
  console.error("Failed to initialize API configuration:", error);
@@ -301,4 +306,4 @@ exports.useAppTranslations = useAppTranslations;
301
306
  exports.useERPUI = useERPUI;
302
307
  exports.useGenericDataFetcher = useGenericDataFetcher;
303
308
  exports.useSnackbarRef = useSnackbarRef;
304
- //# sourceMappingURL=ERPUIProvider-BPpcQgND.js.map
309
+ //# sourceMappingURL=ERPUIProvider-Ce7EhOa_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERPUIProvider-Ce7EhOa_.js","sources":["../../src/hooks/use-translations.ts","../../src/hooks/useDataFetcher.tsx","../../src/hooks/apiHelper.ts","../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { Pathname } from '../constants'\nimport { useAuth } from './useAuth'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\n","import { useCallback, useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from './use-pages';\nimport { useLocation } from 'react-router-dom';\ninterface FilterParams {\n\tskip: number;\n\tlimit: number;\n\tsearch?: string;\n\tselect?: string;\n\torder?: string;\n\tfilters?: string;\n}\n\ninterface ActivePage {\n\tsort?: { id: string; desc: boolean };\n\tfilterQueryString?: string;\n\tsearch?: string;\n\tvisible_columns?: { visible: boolean; accessorKey: string }[];\n}\n\nconst useGenericDataFetcher = (\n\tcols?: ActivePage,\n\tpagination: { skip: number; limit: number },\n\tfetchAction: (filters: FilterParams) => void,\n\tcustomeFilter: any = '',\n\tcustomDeps?: any[],\n\tshowCreatedBy: boolean = true,\n\tcustomFields?: any = []\n) => {\n\tconst { activePage } = usePages();\n\tconst dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tconst sourceColumns = Array.isArray(cols) ? cols?.filter((col: any) => col.visible) : activePage?.visible_columns;\n\n\tconst [trackedPath, setTrackedPath] = useState<string | null>(null);\n\tconst [trackedColumns, setTrackedColumns] = useState<any[]>([]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath !== location?.pathname) {\n\t\t\tsetTrackedPath(location?.pathname);\n\t\t\tsetTrackedColumns([]);\n\t\t}\n\t}, [location?.pathname, trackedPath]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath === location?.pathname && sourceColumns?.length > 0) {\n\t\t\tif (JSON.stringify(trackedColumns) !== JSON.stringify(sourceColumns)) {\n\t\t\t\tsetTrackedColumns(sourceColumns);\n\t\t\t}\n\t\t}\n\t}, [location?.pathname, trackedPath, sourceColumns]);\n\n\tconst getProcessedFilters = useCallback(() => {\n\t\tconst { filterQueryString } = activePage || {};\n\t\tconst queryString = filterQueryString?.replaceAll(/[()]/g, \"\") || '';\n\t\tconst extraQueryString = queryString.length ? `&${queryString}` : '';\n\t\tlet filters = customeFilter;\n\n\t\tif (extraQueryString) {\n\t\t\tfilters = filters ? `(${filters}${extraQueryString})` : `(${extraQueryString})`;\n\t\t} else if (filters) {\n\t\t\tfilters = `(${filters})`;\n\t\t}\n\n\t\treturn filters || undefined;\n\t\t//eslint-disable-next-line\n\t}, [activePage.filterQueryString, customeFilter]);\n\n\tconst fetchData = useCallback(() => {\n\t\tif (!fetchAction) {\n\t\t\treturn;\n\t\t}\n\t\tconst { sort = null, search } = activePage;\n\n\t\tif (!trackedColumns || trackedColumns.length === 0) return;\n\n\t\tconst filters = getProcessedFilters();\n\t\tconst visibleColumns = trackedColumns?.filter((vc) => vc.visible)\n\n\t\tconst selectPayload = visibleColumns?.length > 0 ? `[${visibleColumns\n\t\t\t?.map((item) =>\n\t\t\t\titem.accessorKey?.includes(\".\")\n\t\t\t\t\t? item.accessorKey.split(\".\")[0]\n\t\t\t\t\t: item.accessorKey\n\t\t\t)}${showCreatedBy ? ',created_at,created_by_data' : ''}${customFields?.length ? `,${customFields?.join(',')}` : ''}]` : undefined\n\t\tconst payload: FilterParams = {\n\t\t\tskip: activePage?.skip || pagination?.skip,\n\t\t\tlimit: pagination.limit,\n\t\t\tsearch,\n\t\t\tselect: selectPayload,\n\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t...(filters && { filters }),\n\t\t};\n\n\t\tdispatch(fetchAction(payload));\n\t\t//eslint-disable-next-line\n\t}, [\n\t\ttrackedColumns,\n\t\tactivePage.sort,\n\t\tactivePage.filterQueryString,\n\t\tactivePage.search,\n\t\t// pagination?.skip intentionally omitted: the Pagination component already\n\t\t// mirrors skip into activePage.skip on pageNo change; including pagination.skip\n\t\t// here would make fetchData identity change twice per pagination click,\n\t\t// triggering the listing useEffect twice and causing duplicate API calls.\n\t\tactivePage?.skip,\n\t\tpagination?.limit,\n\t\tdispatch,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t...(customDeps || []),\n\t]);\n\n\n\n\treturn fetchData;\n};\n\nexport default useGenericDataFetcher;\n","import { enqueueSnackbar, useSnackbar } from 'notistack';\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nlet globalEnqueueSnackbar: any = null;\n\nexport const useSnackbarRef = (): void => {\n const { enqueueSnackbar: snackbarHook } = useSnackbar();\n globalEnqueueSnackbar = snackbarHook;\n};\n\nexport function apiHelper(\n res: ApiResponse,\n callBack?: Callback,\n enqueueSnackbarOverride?: any\n): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n const msg = res.error?.message || res?.payload?.message;\n return msg ? JSON.parse(msg) : null;\n } catch {\n return { message: res.error?.message || res?.payload?.message || \"Something went wrong\" };\n }\n })();\n\n const rawError = errorMessage?.message;\n let message = \"Something went wrong\";\n\n if (typeof rawError === \"string\") {\n message = rawError.replace(\"Error:\", \"\").trim();\n } else if (rawError && typeof rawError === \"object\") {\n message = (rawError as any).message || JSON.stringify(rawError);\n } else if (rawError) {\n message = String(rawError);\n }\n\n const snackbar = typeof enqueueSnackbarOverride === 'function'\n ? enqueueSnackbarOverride\n : (globalEnqueueSnackbar || enqueueSnackbar);\n\n if (typeof snackbar === \"function\") {\n snackbar(message, { variant: \"error\" });\n }\n return;\n }\n\n if (callBack) {\n if (typeof callBack === \"function\") {\n try {\n callBack();\n } catch (err) {\n console.error(\"[apiHelper] callBack threw an error:\", err);\n }\n } else {\n console.warn(\"[apiHelper] Provided callBack is not a function:\", typeof callBack);\n }\n }\n}\n","import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls, extendApiConfigurations } from '../../utils/api';\nimport { setModuleRoutes } from '../../utils/module-routes-config';\nimport { useSnackbarRef } from '../../hooks/apiHelper';\n\nconst SnackbarRefTracker: React.FC = () => {\n useSnackbarRef();\n return null;\n};\n\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Additional API configurations to extend the shared apiConfigurations map\n additionalApiConfigurations?: Record<string, any>;\n\n // Module routes override — allows MFE apps to inject their own full route set\n // so the header module dropdown can match routes correctly.\n // Example: { hrms: Object.values(PathnameHrms).map(p => Pathname.DASHBOARD_HRMS + p) }\n moduleRoutes?: Record<string, string[]>;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n publicRoutes?: string[]; // Optional prop to allow customization of public routes in AuthProvider\n\n // Maps module names (e.g. 'accounting') to the currency_data field used for\n // fraction precision in that module. Example: { accounting: 'accounting_fraction_unit' }\n moduleToFractionFieldMap?: Record<string, string>;\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n additionalApiConfigurations,\n moduleRoutes,\n routeToColumnsMap,\n routeToResourceMap,\n publicRoutes = [], // Default empty array for public routes in AuthProvider\n moduleToFractionFieldMap,\n}) => {\n console.log(\"additionalApiConfigurations...........\", additionalApiConfigurations)\n console.log(\"Test................\")\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n if (additionalApiConfigurations) {\n extendApiConfigurations(additionalApiConfigurations);\n }\n // Inject MFE-provided module routes so the header can resolve modules\n if (moduleRoutes) {\n setModuleRoutes(moduleRoutes);\n }\n // Store module-to-fraction-field mapping so utility functions can resolve\n // the correct currency fraction field per module (e.g. accounting_fraction_unit).\n if (moduleToFractionFieldMap) {\n localStorage.setItem('_module_fraction_map', JSON.stringify(moduleToFractionFieldMap));\n }\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n <SnackbarRefTracker />\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n // if (enablePages) {\n // content = (\n // <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n // {content}\n // </PageProvider>\n // );\n // }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider publicRoutes={publicRoutes}>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;"],"names":["useState","getI18n","useAuth","useTranslation","useEffect","modules","Pathname","loadModuleTranslations","usePages","useDispatch","useLocation","useCallback","useSnackbar","_a","enqueueSnackbar","createContext","useContext","initializeApiConfig","initializeApiBaseUrls","extendApiConfigurations","setModuleRoutes","store","createLibraryStore","createDarkTheme","createLightTheme","jsx","MUIThemeWrapper","jsxs","SnackbarProvider","PermissionsProvider","LanguageProvider","AuthProvider","BrowserRouter","ReduxProvider"],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  import React__default, { useState, useEffect, useCallback, useContext, createContext } from "react";
2
2
  import { getI18n, useTranslation } from "react-i18next";
3
- import { l as loadModuleTranslations } from "./translations-CURTcJu7.esm.js";
3
+ import { l as loadModuleTranslations } from "./translations-DiE6kTBI.esm.js";
4
4
  import { m as modules } from "./modules-CDt6nd-Q.esm.js";
5
- import { u as useAuth, a as AuthProvider } from "./useAuth-DnwuL4k3.esm.js";
5
+ import { u as useAuth, a as AuthProvider } from "./useAuth-b1FMAFmO.esm.js";
6
6
  import { P as Pathname } from "./pathname.rental-Dvo5a732.esm.js";
7
7
  import { useDispatch, Provider } from "react-redux";
8
- import { f as usePages } from "./checkbox-C5oERyEy.esm.js";
8
+ import { f as usePages } from "./checkbox-Vd4h25n2.esm.js";
9
9
  import { useLocation, BrowserRouter } from "react-router-dom";
10
10
  import { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
11
11
  import { useSnackbar, enqueueSnackbar, SnackbarProvider } from "notistack";
12
- import { c as createLibraryStore } from "./store-CKCweEtz.esm.js";
12
+ import { c as createLibraryStore } from "./store-giqheYvw.esm.js";
13
13
  import { M as MUIThemeWrapper, c as createDarkTheme, a as createLightTheme } from "./theme-impl-BPCaapgh.esm.js";
14
- import { a as LanguageProvider } from "./languageContext-9Nob_HWV.esm.js";
15
- import { c as PermissionsProvider } from "./page-context-C_YWMVhh.esm.js";
14
+ import { a as LanguageProvider } from "./languageContext-DfIURMbF.esm.js";
15
+ import { c as PermissionsProvider } from "./page-context-DfmpUWuf.esm.js";
16
16
  import { i as initializeApiConfig } from "./api-config-GOys-syK.esm.js";
17
- import { a$ as initializeApiBaseUrls, z as extendApiConfigurations } from "./common-D8YIf-p0.esm.js";
17
+ import { a$ as initializeApiBaseUrls, z as extendApiConfigurations } from "./common-BVfS06ca.esm.js";
18
18
  import { s as setModuleRoutes } from "./module-routes-config-CCkZEtfg.esm.js";
19
19
  let globalLastLoadedModules = "";
20
20
  let globalIsLoading = false;
@@ -227,10 +227,12 @@ const ERPUIProvider = ({
227
227
  moduleRoutes,
228
228
  routeToColumnsMap,
229
229
  routeToResourceMap,
230
- publicRoutes = []
231
- // Default empty array for public routes in AuthProvider
230
+ publicRoutes = [],
231
+ // Default empty array for public routes in AuthProvider
232
+ moduleToFractionFieldMap
232
233
  }) => {
233
234
  console.log("additionalApiConfigurations...........", additionalApiConfigurations);
235
+ console.log("Test................");
234
236
  const isInitialized = React__default.useRef(false);
235
237
  if (providedApiConfig && !isInitialized.current) {
236
238
  try {
@@ -242,6 +244,9 @@ const ERPUIProvider = ({
242
244
  if (moduleRoutes) {
243
245
  setModuleRoutes(moduleRoutes);
244
246
  }
247
+ if (moduleToFractionFieldMap) {
248
+ localStorage.setItem("_module_fraction_map", JSON.stringify(moduleToFractionFieldMap));
249
+ }
245
250
  isInitialized.current = true;
246
251
  } catch (error) {
247
252
  console.error("Failed to initialize API configuration:", error);
@@ -302,4 +307,4 @@ export {
302
307
  useSnackbarRef as d,
303
308
  useERPUI as u
304
309
  };
305
- //# sourceMappingURL=ERPUIProvider-DZbxFsRb.esm.js.map
310
+ //# sourceMappingURL=ERPUIProvider-CmmabhgQ.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ERPUIProvider-DZbxFsRb.esm.js","sources":["../../src/hooks/use-translations.ts","../../src/hooks/useDataFetcher.tsx","../../src/hooks/apiHelper.ts","../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { Pathname } from '../constants'\nimport { useAuth } from './useAuth'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\n","import { useCallback, useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from './use-pages';\nimport { useLocation } from 'react-router-dom';\ninterface FilterParams {\n\tskip: number;\n\tlimit: number;\n\tsearch?: string;\n\tselect?: string;\n\torder?: string;\n\tfilters?: string;\n}\n\ninterface ActivePage {\n\tsort?: { id: string; desc: boolean };\n\tfilterQueryString?: string;\n\tsearch?: string;\n\tvisible_columns?: { visible: boolean; accessorKey: string }[];\n}\n\nconst useGenericDataFetcher = (\n\tcols?: ActivePage,\n\tpagination: { skip: number; limit: number },\n\tfetchAction: (filters: FilterParams) => void,\n\tcustomeFilter: any = '',\n\tcustomDeps?: any[],\n\tshowCreatedBy: boolean = true,\n\tcustomFields?: any = []\n) => {\n\tconst { activePage } = usePages();\n\tconst dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tconst sourceColumns = Array.isArray(cols) ? cols?.filter((col: any) => col.visible) : activePage?.visible_columns;\n\n\tconst [trackedPath, setTrackedPath] = useState<string | null>(null);\n\tconst [trackedColumns, setTrackedColumns] = useState<any[]>([]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath !== location?.pathname) {\n\t\t\tsetTrackedPath(location?.pathname);\n\t\t\tsetTrackedColumns([]);\n\t\t}\n\t}, [location?.pathname, trackedPath]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath === location?.pathname && sourceColumns?.length > 0) {\n\t\t\tif (JSON.stringify(trackedColumns) !== JSON.stringify(sourceColumns)) {\n\t\t\t\tsetTrackedColumns(sourceColumns);\n\t\t\t}\n\t\t}\n\t}, [location?.pathname, trackedPath, sourceColumns]);\n\n\tconst getProcessedFilters = useCallback(() => {\n\t\tconst { filterQueryString } = activePage || {};\n\t\tconst queryString = filterQueryString?.replaceAll(/[()]/g, \"\") || '';\n\t\tconst extraQueryString = queryString.length ? `&${queryString}` : '';\n\t\tlet filters = customeFilter;\n\n\t\tif (extraQueryString) {\n\t\t\tfilters = filters ? `(${filters}${extraQueryString})` : `(${extraQueryString})`;\n\t\t} else if (filters) {\n\t\t\tfilters = `(${filters})`;\n\t\t}\n\n\t\treturn filters || undefined;\n\t\t//eslint-disable-next-line\n\t}, [activePage.filterQueryString, customeFilter]);\n\n\tconst fetchData = useCallback(() => {\n\t\tif (!fetchAction) {\n\t\t\treturn;\n\t\t}\n\t\tconst { sort = null, search } = activePage;\n\n\t\tif (!trackedColumns || trackedColumns.length === 0) return;\n\n\t\tconst filters = getProcessedFilters();\n\t\tconst visibleColumns = trackedColumns?.filter((vc) => vc.visible)\n\n\t\tconst selectPayload = visibleColumns?.length > 0 ? `[${visibleColumns\n\t\t\t?.map((item) =>\n\t\t\t\titem.accessorKey?.includes(\".\")\n\t\t\t\t\t? item.accessorKey.split(\".\")[0]\n\t\t\t\t\t: item.accessorKey\n\t\t\t)}${showCreatedBy ? ',created_at,created_by_data' : ''}${customFields?.length ? `,${customFields?.join(',')}` : ''}]` : undefined\n\t\tconst payload: FilterParams = {\n\t\t\tskip: activePage?.skip || pagination?.skip,\n\t\t\tlimit: pagination.limit,\n\t\t\tsearch,\n\t\t\tselect: selectPayload,\n\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t...(filters && { filters }),\n\t\t};\n\n\t\tdispatch(fetchAction(payload));\n\t\t//eslint-disable-next-line\n\t}, [\n\t\ttrackedColumns,\n\t\tactivePage.sort,\n\t\tactivePage.filterQueryString,\n\t\tactivePage.search,\n\t\t// pagination?.skip intentionally omitted: the Pagination component already\n\t\t// mirrors skip into activePage.skip on pageNo change; including pagination.skip\n\t\t// here would make fetchData identity change twice per pagination click,\n\t\t// triggering the listing useEffect twice and causing duplicate API calls.\n\t\tactivePage?.skip,\n\t\tpagination?.limit,\n\t\tdispatch,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t...(customDeps || []),\n\t]);\n\n\n\n\treturn fetchData;\n};\n\nexport default useGenericDataFetcher;\n","import { enqueueSnackbar, useSnackbar } from 'notistack';\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nlet globalEnqueueSnackbar: any = null;\n\nexport const useSnackbarRef = (): void => {\n const { enqueueSnackbar: snackbarHook } = useSnackbar();\n globalEnqueueSnackbar = snackbarHook;\n};\n\nexport function apiHelper(\n res: ApiResponse,\n callBack?: Callback,\n enqueueSnackbarOverride?: any\n): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n const msg = res.error?.message || res?.payload?.message;\n return msg ? JSON.parse(msg) : null;\n } catch {\n return { message: res.error?.message || res?.payload?.message || \"Something went wrong\" };\n }\n })();\n\n const rawError = errorMessage?.message;\n let message = \"Something went wrong\";\n\n if (typeof rawError === \"string\") {\n message = rawError.replace(\"Error:\", \"\").trim();\n } else if (rawError && typeof rawError === \"object\") {\n message = (rawError as any).message || JSON.stringify(rawError);\n } else if (rawError) {\n message = String(rawError);\n }\n\n const snackbar = typeof enqueueSnackbarOverride === 'function'\n ? enqueueSnackbarOverride\n : (globalEnqueueSnackbar || enqueueSnackbar);\n\n if (typeof snackbar === \"function\") {\n snackbar(message, { variant: \"error\" });\n }\n return;\n }\n\n if (callBack) {\n if (typeof callBack === \"function\") {\n try {\n callBack();\n } catch (err) {\n console.error(\"[apiHelper] callBack threw an error:\", err);\n }\n } else {\n console.warn(\"[apiHelper] Provided callBack is not a function:\", typeof callBack);\n }\n }\n}\n","import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls, extendApiConfigurations } from '../../utils/api';\nimport { setModuleRoutes } from '../../utils/module-routes-config';\nimport { useSnackbarRef } from '../../hooks/apiHelper';\n\nconst SnackbarRefTracker: React.FC = () => {\n useSnackbarRef();\n return null;\n};\n\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Additional API configurations to extend the shared apiConfigurations map\n additionalApiConfigurations?: Record<string, any>;\n\n // Module routes override — allows MFE apps to inject their own full route set\n // so the header module dropdown can match routes correctly.\n // Example: { hrms: Object.values(PathnameHrms).map(p => Pathname.DASHBOARD_HRMS + p) }\n moduleRoutes?: Record<string, string[]>;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n publicRoutes?: string[]; // Optional prop to allow customization of public routes in AuthProvider\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n additionalApiConfigurations,\n moduleRoutes,\n routeToColumnsMap,\n routeToResourceMap,\n publicRoutes = [], // Default empty array for public routes in AuthProvider \n}) => {\n console.log(\"additionalApiConfigurations...........\", additionalApiConfigurations)\n\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n if (additionalApiConfigurations) {\n extendApiConfigurations(additionalApiConfigurations);\n }\n // Inject MFE-provided module routes so the header can resolve modules\n if (moduleRoutes) {\n setModuleRoutes(moduleRoutes);\n }\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n <SnackbarRefTracker />\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n // if (enablePages) {\n // content = (\n // <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n // {content}\n // </PageProvider>\n // );\n // }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider publicRoutes={publicRoutes}>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;"],"names":["_a","React","jsx","jsxs","ReduxProvider"],"mappings":"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"}
1
+ {"version":3,"file":"ERPUIProvider-CmmabhgQ.esm.js","sources":["../../src/hooks/use-translations.ts","../../src/hooks/useDataFetcher.tsx","../../src/hooks/apiHelper.ts","../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { Pathname } from '../constants'\nimport { useAuth } from './useAuth'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\n","import { useCallback, useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from './use-pages';\nimport { useLocation } from 'react-router-dom';\ninterface FilterParams {\n\tskip: number;\n\tlimit: number;\n\tsearch?: string;\n\tselect?: string;\n\torder?: string;\n\tfilters?: string;\n}\n\ninterface ActivePage {\n\tsort?: { id: string; desc: boolean };\n\tfilterQueryString?: string;\n\tsearch?: string;\n\tvisible_columns?: { visible: boolean; accessorKey: string }[];\n}\n\nconst useGenericDataFetcher = (\n\tcols?: ActivePage,\n\tpagination: { skip: number; limit: number },\n\tfetchAction: (filters: FilterParams) => void,\n\tcustomeFilter: any = '',\n\tcustomDeps?: any[],\n\tshowCreatedBy: boolean = true,\n\tcustomFields?: any = []\n) => {\n\tconst { activePage } = usePages();\n\tconst dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tconst sourceColumns = Array.isArray(cols) ? cols?.filter((col: any) => col.visible) : activePage?.visible_columns;\n\n\tconst [trackedPath, setTrackedPath] = useState<string | null>(null);\n\tconst [trackedColumns, setTrackedColumns] = useState<any[]>([]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath !== location?.pathname) {\n\t\t\tsetTrackedPath(location?.pathname);\n\t\t\tsetTrackedColumns([]);\n\t\t}\n\t}, [location?.pathname, trackedPath]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath === location?.pathname && sourceColumns?.length > 0) {\n\t\t\tif (JSON.stringify(trackedColumns) !== JSON.stringify(sourceColumns)) {\n\t\t\t\tsetTrackedColumns(sourceColumns);\n\t\t\t}\n\t\t}\n\t}, [location?.pathname, trackedPath, sourceColumns]);\n\n\tconst getProcessedFilters = useCallback(() => {\n\t\tconst { filterQueryString } = activePage || {};\n\t\tconst queryString = filterQueryString?.replaceAll(/[()]/g, \"\") || '';\n\t\tconst extraQueryString = queryString.length ? `&${queryString}` : '';\n\t\tlet filters = customeFilter;\n\n\t\tif (extraQueryString) {\n\t\t\tfilters = filters ? `(${filters}${extraQueryString})` : `(${extraQueryString})`;\n\t\t} else if (filters) {\n\t\t\tfilters = `(${filters})`;\n\t\t}\n\n\t\treturn filters || undefined;\n\t\t//eslint-disable-next-line\n\t}, [activePage.filterQueryString, customeFilter]);\n\n\tconst fetchData = useCallback(() => {\n\t\tif (!fetchAction) {\n\t\t\treturn;\n\t\t}\n\t\tconst { sort = null, search } = activePage;\n\n\t\tif (!trackedColumns || trackedColumns.length === 0) return;\n\n\t\tconst filters = getProcessedFilters();\n\t\tconst visibleColumns = trackedColumns?.filter((vc) => vc.visible)\n\n\t\tconst selectPayload = visibleColumns?.length > 0 ? `[${visibleColumns\n\t\t\t?.map((item) =>\n\t\t\t\titem.accessorKey?.includes(\".\")\n\t\t\t\t\t? item.accessorKey.split(\".\")[0]\n\t\t\t\t\t: item.accessorKey\n\t\t\t)}${showCreatedBy ? ',created_at,created_by_data' : ''}${customFields?.length ? `,${customFields?.join(',')}` : ''}]` : undefined\n\t\tconst payload: FilterParams = {\n\t\t\tskip: activePage?.skip || pagination?.skip,\n\t\t\tlimit: pagination.limit,\n\t\t\tsearch,\n\t\t\tselect: selectPayload,\n\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t...(filters && { filters }),\n\t\t};\n\n\t\tdispatch(fetchAction(payload));\n\t\t//eslint-disable-next-line\n\t}, [\n\t\ttrackedColumns,\n\t\tactivePage.sort,\n\t\tactivePage.filterQueryString,\n\t\tactivePage.search,\n\t\t// pagination?.skip intentionally omitted: the Pagination component already\n\t\t// mirrors skip into activePage.skip on pageNo change; including pagination.skip\n\t\t// here would make fetchData identity change twice per pagination click,\n\t\t// triggering the listing useEffect twice and causing duplicate API calls.\n\t\tactivePage?.skip,\n\t\tpagination?.limit,\n\t\tdispatch,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t...(customDeps || []),\n\t]);\n\n\n\n\treturn fetchData;\n};\n\nexport default useGenericDataFetcher;\n","import { enqueueSnackbar, useSnackbar } from 'notistack';\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?: any\n};\n\ntype Callback = () => void;\n\nlet globalEnqueueSnackbar: any = null;\n\nexport const useSnackbarRef = (): void => {\n const { enqueueSnackbar: snackbarHook } = useSnackbar();\n globalEnqueueSnackbar = snackbarHook;\n};\n\nexport function apiHelper(\n res: ApiResponse,\n callBack?: Callback,\n enqueueSnackbarOverride?: any\n): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n const msg = res.error?.message || res?.payload?.message;\n return msg ? JSON.parse(msg) : null;\n } catch {\n return { message: res.error?.message || res?.payload?.message || \"Something went wrong\" };\n }\n })();\n\n const rawError = errorMessage?.message;\n let message = \"Something went wrong\";\n\n if (typeof rawError === \"string\") {\n message = rawError.replace(\"Error:\", \"\").trim();\n } else if (rawError && typeof rawError === \"object\") {\n message = (rawError as any).message || JSON.stringify(rawError);\n } else if (rawError) {\n message = String(rawError);\n }\n\n const snackbar = typeof enqueueSnackbarOverride === 'function'\n ? enqueueSnackbarOverride\n : (globalEnqueueSnackbar || enqueueSnackbar);\n\n if (typeof snackbar === \"function\") {\n snackbar(message, { variant: \"error\" });\n }\n return;\n }\n\n if (callBack) {\n if (typeof callBack === \"function\") {\n try {\n callBack();\n } catch (err) {\n console.error(\"[apiHelper] callBack threw an error:\", err);\n }\n } else {\n console.warn(\"[apiHelper] Provided callBack is not a function:\", typeof callBack);\n }\n }\n}\n","import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls, extendApiConfigurations } from '../../utils/api';\nimport { setModuleRoutes } from '../../utils/module-routes-config';\nimport { useSnackbarRef } from '../../hooks/apiHelper';\n\nconst SnackbarRefTracker: React.FC = () => {\n useSnackbarRef();\n return null;\n};\n\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Additional API configurations to extend the shared apiConfigurations map\n additionalApiConfigurations?: Record<string, any>;\n\n // Module routes override — allows MFE apps to inject their own full route set\n // so the header module dropdown can match routes correctly.\n // Example: { hrms: Object.values(PathnameHrms).map(p => Pathname.DASHBOARD_HRMS + p) }\n moduleRoutes?: Record<string, string[]>;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n publicRoutes?: string[]; // Optional prop to allow customization of public routes in AuthProvider\n\n // Maps module names (e.g. 'accounting') to the currency_data field used for\n // fraction precision in that module. Example: { accounting: 'accounting_fraction_unit' }\n moduleToFractionFieldMap?: Record<string, string>;\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n additionalApiConfigurations,\n moduleRoutes,\n routeToColumnsMap,\n routeToResourceMap,\n publicRoutes = [], // Default empty array for public routes in AuthProvider\n moduleToFractionFieldMap,\n}) => {\n console.log(\"additionalApiConfigurations...........\", additionalApiConfigurations)\n console.log(\"Test................\")\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n if (additionalApiConfigurations) {\n extendApiConfigurations(additionalApiConfigurations);\n }\n // Inject MFE-provided module routes so the header can resolve modules\n if (moduleRoutes) {\n setModuleRoutes(moduleRoutes);\n }\n // Store module-to-fraction-field mapping so utility functions can resolve\n // the correct currency fraction field per module (e.g. accounting_fraction_unit).\n if (moduleToFractionFieldMap) {\n localStorage.setItem('_module_fraction_map', JSON.stringify(moduleToFractionFieldMap));\n }\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n <SnackbarRefTracker />\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n // if (enablePages) {\n // content = (\n // <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n // {content}\n // </PageProvider>\n // );\n // }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider publicRoutes={publicRoutes}>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;"],"names":["_a","React","jsx","jsxs","ReduxProvider"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { p as postV1Parties, n as getV1WarehouseLocation, o as getV1Currency, q as getV1InventoryItems } from "./api-z4kM0HGD.esm.js";
2
- import { at as getToken } from "./common-D8YIf-p0.esm.js";
2
+ import { at as getToken } from "./common-BVfS06ca.esm.js";
3
3
  import { createAsyncThunk } from "@reduxjs/toolkit";
4
4
  import _ from "lodash";
5
5
  const createParties = createAsyncThunk(
@@ -76,4 +76,4 @@ export {
76
76
  getOptions as d,
77
77
  getCurrency as g
78
78
  };
79
- //# sourceMappingURL=actionCreator-B1XDiSfb.esm.js.map
79
+ //# sourceMappingURL=actionCreator-Cy_J6Xfp.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionCreator-B1XDiSfb.esm.js","sources":["../../src/redux/actionCreator.ts"],"sourcesContent":["import { getV1Currency, postV1Parties } from \"@/api-client/api.accounting/api\";\nimport { getV1InventoryItems, getV1WarehouseLocation } from \"@/api-client/api.inventory/api\";\nimport { LabelKeyFunction } from \"@/types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport _ from \"lodash\";\n\n// Stub implementation for Redux actions - consuming applications should provide their own implementation\nexport const createParties = createAsyncThunk(\n \"parties/create\",\n async (payload: any) => {\n const response = await postV1Parties({\n ...payload,\n ...getToken(),\n });\n return response;\n }\n);\nexport const getOptions = async (\n apiFunc: any,\n filters: any,\n dataKey: string,\n labelKey: string | LabelKeyFunction,\n valueKey?: any\n) => {\n const response = await apiFunc({\n ...filters,\n ...getToken(),\n });\n\n const options: any[] =\n response?.data?.[dataKey]?.map((d) => ({\n ...d,\n label: labelKey instanceof Function ? labelKey(d) : _.get(d, labelKey),\n value: valueKey ? _.get(d, valueKey, d.id) : d.id,\n })) || [];\n return options;\n};\n\nexport const getLocation = createAsyncThunk(\n \"location/fetch\",\n async (filter: any) => {\n const locationFilter = {\n ...filter,\n };\n const response = await getOptions(\n getV1WarehouseLocation,\n locationFilter,\n \"warehouseLocationList\",\n \"name\"\n );\n return response;\n }\n);\n\nexport const getItems = createAsyncThunk(\"item/fetch\", async (filter: any) => {\n const itemFilter = {\n ...filter,\n order: \"name:1\",\n // select:\"[id,name,type,unit_of_measurement,default_tax_id,vendor_informatio]\"\n };\n const response = await getOptions(\n getV1InventoryItems,\n itemFilter,\n \"inventoryItemsList\",\n \"name\"\n );\n return response;\n});\n\nexport const getCurrency = createAsyncThunk(\n \"currency/fetch\",\n async (filter: any) => {\n const currencyFiter = {\n ...filter,\n };\n const response = await getOptions(\n getV1Currency,\n currencyFiter,\n \"currencies\",\n \"currency_name\"\n );\n return response;\n }\n);"],"names":[],"mappings":";;;;AAQO,MAAM,gBAAgB;AAAA,EAC3B;AAAA,EACA,OAAO,YAAiB;AACtB,UAAM,WAAW,MAAM,cAAc;AAAA,MACnC,GAAG;AAAA,MACH,GAAG,SAAA;AAAA,IAAS,CACb;AACD,WAAO;AAAA,EACT;AACF;AACO,MAAM,aAAa,OACxB,SACA,SACA,SACA,UACA,aACG;;AACH,QAAM,WAAW,MAAM,QAAQ;AAAA,IAC7B,GAAG;AAAA,IACH,GAAG,SAAA;AAAA,EAAS,CACb;AAED,QAAM,YACJ,gDAAU,SAAV,mBAAiB,aAAjB,mBAA2B,IAAI,CAAC,OAAO;AAAA,IACrC,GAAG;AAAA,IACH,OAAO,oBAAoB,WAAW,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;AAAA,IACrE,OAAO,WAAW,EAAE,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE;AAAA,EAAA,QAC1C,CAAA;AACT,SAAO;AACT;AAEO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;AAEO,MAAM,WAAW,iBAAiB,cAAc,OAAO,WAAgB;AAC5E,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,OAAO;AAAA;AAAA,EAAA;AAGT,QAAM,WAAW,MAAM;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO;AACT,CAAC;AAEM,MAAM,cAAc;AAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"actionCreator-Cy_J6Xfp.esm.js","sources":["../../src/redux/actionCreator.ts"],"sourcesContent":["import { getV1Currency, postV1Parties } from \"@/api-client/api.accounting/api\";\nimport { getV1InventoryItems, getV1WarehouseLocation } from \"@/api-client/api.inventory/api\";\nimport { LabelKeyFunction } from \"@/types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport _ from \"lodash\";\n\n// Stub implementation for Redux actions - consuming applications should provide their own implementation\nexport const createParties = createAsyncThunk(\n \"parties/create\",\n async (payload: any) => {\n const response = await postV1Parties({\n ...payload,\n ...getToken(),\n });\n return response;\n }\n);\nexport const getOptions = async (\n apiFunc: any,\n filters: any,\n dataKey: string,\n labelKey: string | LabelKeyFunction,\n valueKey?: any\n) => {\n const response = await apiFunc({\n ...filters,\n ...getToken(),\n });\n\n const options: any[] =\n response?.data?.[dataKey]?.map((d) => ({\n ...d,\n label: labelKey instanceof Function ? labelKey(d) : _.get(d, labelKey),\n value: valueKey ? _.get(d, valueKey, d.id) : d.id,\n })) || [];\n return options;\n};\n\nexport const getLocation = createAsyncThunk(\n \"location/fetch\",\n async (filter: any) => {\n const locationFilter = {\n ...filter,\n };\n const response = await getOptions(\n getV1WarehouseLocation,\n locationFilter,\n \"warehouseLocationList\",\n \"name\"\n );\n return response;\n }\n);\n\nexport const getItems = createAsyncThunk(\"item/fetch\", async (filter: any) => {\n const itemFilter = {\n ...filter,\n order: \"name:1\",\n // select:\"[id,name,type,unit_of_measurement,default_tax_id,vendor_informatio]\"\n };\n const response = await getOptions(\n getV1InventoryItems,\n itemFilter,\n \"inventoryItemsList\",\n \"name\"\n );\n return response;\n});\n\nexport const getCurrency = createAsyncThunk(\n \"currency/fetch\",\n async (filter: any) => {\n const currencyFiter = {\n ...filter,\n };\n const response = await getOptions(\n getV1Currency,\n currencyFiter,\n \"currencies\",\n \"currency_name\"\n );\n return response;\n }\n);"],"names":[],"mappings":";;;;AAQO,MAAM,gBAAgB;AAAA,EAC3B;AAAA,EACA,OAAO,YAAiB;AACtB,UAAM,WAAW,MAAM,cAAc;AAAA,MACnC,GAAG;AAAA,MACH,GAAG,SAAA;AAAA,IAAS,CACb;AACD,WAAO;AAAA,EACT;AACF;AACO,MAAM,aAAa,OACxB,SACA,SACA,SACA,UACA,aACG;;AACH,QAAM,WAAW,MAAM,QAAQ;AAAA,IAC7B,GAAG;AAAA,IACH,GAAG,SAAA;AAAA,EAAS,CACb;AAED,QAAM,YACJ,gDAAU,SAAV,mBAAiB,aAAjB,mBAA2B,IAAI,CAAC,OAAO;AAAA,IACrC,GAAG;AAAA,IACH,OAAO,oBAAoB,WAAW,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;AAAA,IACrE,OAAO,WAAW,EAAE,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE;AAAA,EAAA,QAC1C,CAAA;AACT,SAAO;AACT;AAEO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;AAEO,MAAM,WAAW,iBAAiB,cAAc,OAAO,WAAgB;AAC5E,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,OAAO;AAAA;AAAA,EAAA;AAGT,QAAM,WAAW,MAAM;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO;AACT,CAAC;AAEM,MAAM,cAAc;AAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const api = require("./api-CrXXYiZ2.js");
3
- const common = require("./common-BtIKVrzA.js");
3
+ const common = require("./common-B1hGK8kQ.js");
4
4
  const toolkit = require("@reduxjs/toolkit");
5
5
  const _ = require("lodash");
6
6
  const createParties = toolkit.createAsyncThunk(
@@ -75,4 +75,4 @@ exports.getCurrency = getCurrency;
75
75
  exports.getItems = getItems;
76
76
  exports.getLocation = getLocation;
77
77
  exports.getOptions = getOptions;
78
- //# sourceMappingURL=actionCreator-DlbJbrTk.js.map
78
+ //# sourceMappingURL=actionCreator-DqVmiGzl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionCreator-DlbJbrTk.js","sources":["../../src/redux/actionCreator.ts"],"sourcesContent":["import { getV1Currency, postV1Parties } from \"@/api-client/api.accounting/api\";\nimport { getV1InventoryItems, getV1WarehouseLocation } from \"@/api-client/api.inventory/api\";\nimport { LabelKeyFunction } from \"@/types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport _ from \"lodash\";\n\n// Stub implementation for Redux actions - consuming applications should provide their own implementation\nexport const createParties = createAsyncThunk(\n \"parties/create\",\n async (payload: any) => {\n const response = await postV1Parties({\n ...payload,\n ...getToken(),\n });\n return response;\n }\n);\nexport const getOptions = async (\n apiFunc: any,\n filters: any,\n dataKey: string,\n labelKey: string | LabelKeyFunction,\n valueKey?: any\n) => {\n const response = await apiFunc({\n ...filters,\n ...getToken(),\n });\n\n const options: any[] =\n response?.data?.[dataKey]?.map((d) => ({\n ...d,\n label: labelKey instanceof Function ? labelKey(d) : _.get(d, labelKey),\n value: valueKey ? _.get(d, valueKey, d.id) : d.id,\n })) || [];\n return options;\n};\n\nexport const getLocation = createAsyncThunk(\n \"location/fetch\",\n async (filter: any) => {\n const locationFilter = {\n ...filter,\n };\n const response = await getOptions(\n getV1WarehouseLocation,\n locationFilter,\n \"warehouseLocationList\",\n \"name\"\n );\n return response;\n }\n);\n\nexport const getItems = createAsyncThunk(\"item/fetch\", async (filter: any) => {\n const itemFilter = {\n ...filter,\n order: \"name:1\",\n // select:\"[id,name,type,unit_of_measurement,default_tax_id,vendor_informatio]\"\n };\n const response = await getOptions(\n getV1InventoryItems,\n itemFilter,\n \"inventoryItemsList\",\n \"name\"\n );\n return response;\n});\n\nexport const getCurrency = createAsyncThunk(\n \"currency/fetch\",\n async (filter: any) => {\n const currencyFiter = {\n ...filter,\n };\n const response = await getOptions(\n getV1Currency,\n currencyFiter,\n \"currencies\",\n \"currency_name\"\n );\n return response;\n }\n);"],"names":["createAsyncThunk","postV1Parties","getToken","getV1WarehouseLocation","getV1InventoryItems","getV1Currency"],"mappings":";;;;;AAQO,MAAM,gBAAgBA,QAAAA;AAAAA,EAC3B;AAAA,EACA,OAAO,YAAiB;AACtB,UAAM,WAAW,MAAMC,kBAAc;AAAA,MACnC,GAAG;AAAA,MACH,GAAGC,OAAAA,SAAA;AAAA,IAAS,CACb;AACD,WAAO;AAAA,EACT;AACF;AACO,MAAM,aAAa,OACxB,SACA,SACA,SACA,UACA,aACG;;AACH,QAAM,WAAW,MAAM,QAAQ;AAAA,IAC7B,GAAG;AAAA,IACH,GAAGA,OAAAA,SAAA;AAAA,EAAS,CACb;AAED,QAAM,YACJ,gDAAU,SAAV,mBAAiB,aAAjB,mBAA2B,IAAI,CAAC,OAAO;AAAA,IACrC,GAAG;AAAA,IACH,OAAO,oBAAoB,WAAW,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;AAAA,IACrE,OAAO,WAAW,EAAE,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE;AAAA,EAAA,QAC1C,CAAA;AACT,SAAO;AACT;AAEO,MAAM,cAAcF,QAAAA;AAAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrBG,IAAAA;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;AAEO,MAAM,WAAWH,QAAAA,iBAAiB,cAAc,OAAO,WAAgB;AAC5E,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,OAAO;AAAA;AAAA,EAAA;AAGT,QAAM,WAAW,MAAM;AAAA,IACrBI,IAAAA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO;AACT,CAAC;AAEM,MAAM,cAAcJ,QAAAA;AAAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrBK,IAAAA;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;;;;;;"}
1
+ {"version":3,"file":"actionCreator-DqVmiGzl.js","sources":["../../src/redux/actionCreator.ts"],"sourcesContent":["import { getV1Currency, postV1Parties } from \"@/api-client/api.accounting/api\";\nimport { getV1InventoryItems, getV1WarehouseLocation } from \"@/api-client/api.inventory/api\";\nimport { LabelKeyFunction } from \"@/types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport _ from \"lodash\";\n\n// Stub implementation for Redux actions - consuming applications should provide their own implementation\nexport const createParties = createAsyncThunk(\n \"parties/create\",\n async (payload: any) => {\n const response = await postV1Parties({\n ...payload,\n ...getToken(),\n });\n return response;\n }\n);\nexport const getOptions = async (\n apiFunc: any,\n filters: any,\n dataKey: string,\n labelKey: string | LabelKeyFunction,\n valueKey?: any\n) => {\n const response = await apiFunc({\n ...filters,\n ...getToken(),\n });\n\n const options: any[] =\n response?.data?.[dataKey]?.map((d) => ({\n ...d,\n label: labelKey instanceof Function ? labelKey(d) : _.get(d, labelKey),\n value: valueKey ? _.get(d, valueKey, d.id) : d.id,\n })) || [];\n return options;\n};\n\nexport const getLocation = createAsyncThunk(\n \"location/fetch\",\n async (filter: any) => {\n const locationFilter = {\n ...filter,\n };\n const response = await getOptions(\n getV1WarehouseLocation,\n locationFilter,\n \"warehouseLocationList\",\n \"name\"\n );\n return response;\n }\n);\n\nexport const getItems = createAsyncThunk(\"item/fetch\", async (filter: any) => {\n const itemFilter = {\n ...filter,\n order: \"name:1\",\n // select:\"[id,name,type,unit_of_measurement,default_tax_id,vendor_informatio]\"\n };\n const response = await getOptions(\n getV1InventoryItems,\n itemFilter,\n \"inventoryItemsList\",\n \"name\"\n );\n return response;\n});\n\nexport const getCurrency = createAsyncThunk(\n \"currency/fetch\",\n async (filter: any) => {\n const currencyFiter = {\n ...filter,\n };\n const response = await getOptions(\n getV1Currency,\n currencyFiter,\n \"currencies\",\n \"currency_name\"\n );\n return response;\n }\n);"],"names":["createAsyncThunk","postV1Parties","getToken","getV1WarehouseLocation","getV1InventoryItems","getV1Currency"],"mappings":";;;;;AAQO,MAAM,gBAAgBA,QAAAA;AAAAA,EAC3B;AAAA,EACA,OAAO,YAAiB;AACtB,UAAM,WAAW,MAAMC,kBAAc;AAAA,MACnC,GAAG;AAAA,MACH,GAAGC,OAAAA,SAAA;AAAA,IAAS,CACb;AACD,WAAO;AAAA,EACT;AACF;AACO,MAAM,aAAa,OACxB,SACA,SACA,SACA,UACA,aACG;;AACH,QAAM,WAAW,MAAM,QAAQ;AAAA,IAC7B,GAAG;AAAA,IACH,GAAGA,OAAAA,SAAA;AAAA,EAAS,CACb;AAED,QAAM,YACJ,gDAAU,SAAV,mBAAiB,aAAjB,mBAA2B,IAAI,CAAC,OAAO;AAAA,IACrC,GAAG;AAAA,IACH,OAAO,oBAAoB,WAAW,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;AAAA,IACrE,OAAO,WAAW,EAAE,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE;AAAA,EAAA,QAC1C,CAAA;AACT,SAAO;AACT;AAEO,MAAM,cAAcF,QAAAA;AAAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrBG,IAAAA;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;AAEO,MAAM,WAAWH,QAAAA,iBAAiB,cAAc,OAAO,WAAgB;AAC5E,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,OAAO;AAAA;AAAA,EAAA;AAGT,QAAM,WAAW,MAAM;AAAA,IACrBI,IAAAA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO;AACT,CAAC;AAEM,MAAM,cAAcJ,QAAAA;AAAAA,EACzB;AAAA,EACA,OAAO,WAAgB;AACrB,UAAM,gBAAgB;AAAA,MACpB,GAAG;AAAA,IAAA;AAEL,UAAM,WAAW,MAAM;AAAA,MACrBK,IAAAA;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,WAAO;AAAA,EACT;AACF;;;;;;"}
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("./jsx-runtime-B6vEU3CM.js");
3
3
  const identifier = require("./identifier-CaTy7Osd.js");
4
4
  const button = require("./button-GxDcw3FY.js");
5
- const useAuth = require("./useAuth-DtiC6c_b.js");
5
+ const useAuth = require("./useAuth-BNR7N60-.js");
6
6
  const material = require("@mui/material");
7
7
  const reactDnd = require("react-dnd");
8
8
  ;/* empty css */
@@ -10,33 +10,33 @@ const images = require("./images-CY-_BlWh.js");
10
10
  const React$1 = require("react");
11
11
  const reactHookForm = require("react-hook-form");
12
12
  ;/* empty css */
13
- const appbar = require("./appbar-Bf_GaMVY.js");
13
+ const appbar = require("./appbar-DbazXkez.js");
14
14
  const reactI18next = require("react-i18next");
15
15
  const notification = require("./notification-vWmhkTRo.js");
16
- const formBuilderDeconversion = require("./form-builder-deconversion-x7TevuHU.js");
16
+ const formBuilderDeconversion = require("./form-builder-deconversion-BmHlW07j.js");
17
17
  const Yup = require("yup");
18
18
  const dayjs = require("dayjs");
19
- const common = require("./common-BtIKVrzA.js");
19
+ const common = require("./common-B1hGK8kQ.js");
20
20
  const _ = require("lodash");
21
21
  const apiConfig = require("./api-config-DXwDMFn-.js");
22
22
  const iconsMaterial = require("@mui/icons-material");
23
- const checkbox = require("./checkbox-Jgx2gkFF.js");
23
+ const checkbox = require("./checkbox-DNW1SYc0.js");
24
24
  const actionBar = require("./action-bar-DMv6sqDP.js");
25
25
  const reactQuerybuilder = require("react-querybuilder");
26
26
  const material$1 = require("@react-querybuilder/material");
27
- const useLangauge = require("./useLangauge-C_Z9sEw7.js");
27
+ const useLangauge = require("./useLangauge-DsEM05Ll.js");
28
28
  const trash = require("./trash-C63VDmtW.js");
29
29
  const api = require("./api-CrXXYiZ2.js");
30
- const radioButton = require("./radio-button-BYtmY0l-.js");
30
+ const radioButton = require("./radio-button-Bxl9UISl.js");
31
31
  const notistack = require("notistack");
32
32
  const routePageMap = require("./route-page-map-BMisO6c3.js");
33
33
  const reactRouterDom = require("react-router-dom");
34
34
  const hooks = require("./hooks-DsdahmnZ.js");
35
35
  const reactDropzone = require("react-dropzone");
36
- const pageContext = require("./page-context-_AMJB_ty.js");
37
- const tick = require("./tick-B4IAsV4W.js");
36
+ const pageContext = require("./page-context-Cg2MyCmD.js");
37
+ const tick = require("./tick-COMAwRR1.js");
38
38
  const reactRedux = require("react-redux");
39
- const reducer = require("./reducer-BMzMjtRW.js");
39
+ const reducer = require("./reducer-BuEwR2fM.js");
40
40
  const document$1 = require("./document-DzwARg8r.js");
41
41
  const ReactPhoneInput = require("react-phone-input-2");
42
42
  const materialReactTable = require("material-react-table");
@@ -44,7 +44,7 @@ const CssBaseline = require("./CssBaseline-BtFw_t3c.js");
44
44
  const modules = require("./modules-0TgSOLkZ.js");
45
45
  const pathname_rental = require("./pathname.rental-C0Yjyyx7.js");
46
46
  const parsePhoneNumberFromString = require("libphonenumber-js");
47
- const actionCreator = require("./actionCreator-DlbJbrTk.js");
47
+ const actionCreator = require("./actionCreator-DqVmiGzl.js");
48
48
  function _interopNamespaceDefault(e) {
49
49
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
50
50
  if (e) {
@@ -862,7 +862,7 @@ const Select$1 = React$1.memo((props) => {
862
862
  error,
863
863
  helperText,
864
864
  loading = false,
865
- CustomDropdownIcon = radioButton.ArrowDown,
865
+ CustomDropdownIcon = tick.ArrowDown,
866
866
  ...rest
867
867
  } = props;
868
868
  const handleOpen = () => {
@@ -41942,4 +41942,4 @@ exports.createPermissionConfig = createPermissionConfig;
41942
41942
  exports.dynamicSelectAdd = dynamicSelectAdd;
41943
41943
  exports.useThemeProps = useThemeProps;
41944
41944
  exports.userRoles = userRoles;
41945
- //# sourceMappingURL=android-12-switch-DcPr9cvn.js.map
41945
+ //# sourceMappingURL=android-12-switch-Cruc3J1J.js.map