@erpsquad/common 1.10.29 → 1.10.31

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 (75) hide show
  1. package/dist/chunks/{ERPUIProvider-CLg_Yo12.esm.js → ERPUIProvider-CIzXMsuV.esm.js} +8 -8
  2. package/dist/chunks/{ERPUIProvider-CLg_Yo12.esm.js.map → ERPUIProvider-CIzXMsuV.esm.js.map} +1 -1
  3. package/dist/chunks/{actionCreator-C8cLIOap.esm.js → actionCreator-BzPZv2rR.esm.js} +2 -2
  4. package/dist/chunks/{actionCreator-C8cLIOap.esm.js.map → actionCreator-BzPZv2rR.esm.js.map} +1 -1
  5. package/dist/chunks/{android-12-switch-DM9s0XTb.js → android-12-switch-BILQvv4G.js} +170 -5
  6. package/dist/chunks/android-12-switch-BILQvv4G.js.map +1 -0
  7. package/dist/chunks/{android-12-switch-eTZOAHAa.esm.js → android-12-switch-DpJE56Wi.esm.js} +212 -47
  8. package/dist/chunks/android-12-switch-DpJE56Wi.esm.js.map +1 -0
  9. package/dist/chunks/{appbar-DtROOKgm.esm.js → appbar-5rP5iXcS.esm.js} +4 -4
  10. package/dist/chunks/{appbar-DtROOKgm.esm.js.map → appbar-5rP5iXcS.esm.js.map} +1 -1
  11. package/dist/chunks/{common-Nn4SUfK7.esm.js → common-D59u5rE6.esm.js} +2 -2
  12. package/dist/chunks/{common-Nn4SUfK7.esm.js.map → common-D59u5rE6.esm.js.map} +1 -1
  13. package/dist/chunks/{custom-editor-B-mleFzm.esm.js → custom-editor-UhZu0Svw.esm.js} +2 -2
  14. package/dist/chunks/{custom-editor-B-mleFzm.esm.js.map → custom-editor-UhZu0Svw.esm.js.map} +1 -1
  15. package/dist/chunks/{default-data-BjzCfuoR.js → default-data-B2-JPE4u.js} +9 -11
  16. package/dist/chunks/{default-data-BjzCfuoR.js.map → default-data-B2-JPE4u.js.map} +1 -1
  17. package/dist/chunks/{default-data-C8B-fYa8.esm.js → default-data-DLCnpyaM.esm.js} +19 -21
  18. package/dist/chunks/{default-data-C8B-fYa8.esm.js.map → default-data-DLCnpyaM.esm.js.map} +1 -1
  19. package/dist/chunks/{form-builder-conversion-yi03Elpa.esm.js → form-builder-conversion-gLJCNqSQ.esm.js} +2 -2
  20. package/dist/chunks/{form-builder-conversion-yi03Elpa.esm.js.map → form-builder-conversion-gLJCNqSQ.esm.js.map} +1 -1
  21. package/dist/chunks/{form-builder-deconversion-CFtHF1hm.esm.js → form-builder-deconversion-DNGMsAEj.esm.js} +3 -3
  22. package/dist/chunks/{form-builder-deconversion-CFtHF1hm.esm.js.map → form-builder-deconversion-DNGMsAEj.esm.js.map} +1 -1
  23. package/dist/chunks/{fullScreen-Xv8AR914.esm.js → fullScreen-C8Qnoyrr.esm.js} +2 -2
  24. package/dist/chunks/{fullScreen-Xv8AR914.esm.js.map → fullScreen-C8Qnoyrr.esm.js.map} +1 -1
  25. package/dist/chunks/{languageContext-cweJTzn0.esm.js → languageContext-ffrxXJkr.esm.js} +3 -3
  26. package/dist/chunks/{languageContext-cweJTzn0.esm.js.map → languageContext-ffrxXJkr.esm.js.map} +1 -1
  27. package/dist/chunks/{migration-utils-llqrdBh8.esm.js → migration-utils-BJsX1G2n.esm.js} +2 -2
  28. package/dist/chunks/{migration-utils-llqrdBh8.esm.js.map → migration-utils-BJsX1G2n.esm.js.map} +1 -1
  29. package/dist/chunks/{page-context-BbQNncGA.esm.js → page-context-BlGcwtdZ.esm.js} +3 -3
  30. package/dist/chunks/{page-context-BbQNncGA.esm.js.map → page-context-BlGcwtdZ.esm.js.map} +1 -1
  31. package/dist/chunks/{reducer-DRkUwBHb.esm.js → reducer-D6_f0R4C.esm.js} +2 -2
  32. package/dist/chunks/{reducer-DRkUwBHb.esm.js.map → reducer-D6_f0R4C.esm.js.map} +1 -1
  33. package/dist/chunks/{shareSlice-H0nwzQZv.esm.js → shareSlice-Bxrgfv7o.esm.js} +2 -2
  34. package/dist/chunks/{shareSlice-H0nwzQZv.esm.js.map → shareSlice-Bxrgfv7o.esm.js.map} +1 -1
  35. package/dist/chunks/{sidebar-CdhW0PKj.esm.js → sidebar-n5_ky6G7.esm.js} +4 -4
  36. package/dist/chunks/{sidebar-CdhW0PKj.esm.js.map → sidebar-n5_ky6G7.esm.js.map} +1 -1
  37. package/dist/chunks/{sidebarScreen-DbfP32Xx.esm.js → sidebarScreen-BwkiIBud.esm.js} +5 -6
  38. package/dist/chunks/sidebarScreen-BwkiIBud.esm.js.map +1 -0
  39. package/dist/chunks/{sidebarScreen-figZp_Ln.js → sidebarScreen-Cm763s1P.js} +1 -2
  40. package/dist/chunks/sidebarScreen-Cm763s1P.js.map +1 -0
  41. package/dist/chunks/{store-C2XaFCA_.esm.js → store-OqHSsVaz.esm.js} +3 -3
  42. package/dist/chunks/{store-C2XaFCA_.esm.js.map → store-OqHSsVaz.esm.js.map} +1 -1
  43. package/dist/chunks/{translations-DJZgOpfH.esm.js → translations-GFvlFdi5.esm.js} +2 -2
  44. package/dist/chunks/{translations-DJZgOpfH.esm.js.map → translations-GFvlFdi5.esm.js.map} +1 -1
  45. package/dist/chunks/{uom-field-wrapper-DKN31prP.esm.js → uom-field-wrapper-CgYTONsG.esm.js} +33 -158
  46. package/dist/chunks/uom-field-wrapper-CgYTONsG.esm.js.map +1 -0
  47. package/dist/chunks/{uom-field-wrapper-NNhtGgqI.js → uom-field-wrapper-DoyshtE9.js} +2 -127
  48. package/dist/chunks/uom-field-wrapper-DoyshtE9.js.map +1 -0
  49. package/dist/chunks/{useAccountSetting-CAUDy8rg.esm.js → useAccountSetting-D1Ze8r-T.esm.js} +3 -3
  50. package/dist/chunks/{useAccountSetting-CAUDy8rg.esm.js.map → useAccountSetting-D1Ze8r-T.esm.js.map} +1 -1
  51. package/dist/chunks/{useAdditionalDiscountAutoCalc-DbyTG80U.esm.js → useAdditionalDiscountAutoCalc-PhSfzd5X.esm.js} +5 -5
  52. package/dist/chunks/{useAdditionalDiscountAutoCalc-DbyTG80U.esm.js.map → useAdditionalDiscountAutoCalc-PhSfzd5X.esm.js.map} +1 -1
  53. package/dist/chunks/{useAuth-BaUSGWbL.esm.js → useAuth-DhzbULWV.esm.js} +2 -2
  54. package/dist/chunks/{useAuth-BaUSGWbL.esm.js.map → useAuth-DhzbULWV.esm.js.map} +1 -1
  55. package/dist/chunks/{useLangauge-BUF4epYu.esm.js → useLangauge-CbMaEsdS.esm.js} +2 -2
  56. package/dist/chunks/{useLangauge-BUF4epYu.esm.js.map → useLangauge-CbMaEsdS.esm.js.map} +1 -1
  57. package/dist/components/index.esm.js +53 -53
  58. package/dist/components/index.js +4 -4
  59. package/dist/contexts/index.esm.js +3 -3
  60. package/dist/hooks/index.esm.js +5 -5
  61. package/dist/index.esm.js +90 -90
  62. package/dist/index.js +6 -6
  63. package/dist/layout/index.esm.js +2 -2
  64. package/dist/layout/index.js +1 -1
  65. package/dist/redux/index.esm.js +4 -4
  66. package/dist/utils/index.esm.js +7 -7
  67. package/dist/views/index.esm.js +9 -9
  68. package/dist/views/index.js +2 -2
  69. package/package.json +1 -1
  70. package/dist/chunks/android-12-switch-DM9s0XTb.js.map +0 -1
  71. package/dist/chunks/android-12-switch-eTZOAHAa.esm.js.map +0 -1
  72. package/dist/chunks/sidebarScreen-DbfP32Xx.esm.js.map +0 -1
  73. package/dist/chunks/sidebarScreen-figZp_Ln.js.map +0 -1
  74. package/dist/chunks/uom-field-wrapper-DKN31prP.esm.js.map +0 -1
  75. package/dist/chunks/uom-field-wrapper-NNhtGgqI.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
2
2
  import { useMemo, useState, useCallback, useEffect } from "react";
3
- import { a6 as useTheme, c as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-DtROOKgm.esm.js";
4
- import { S as Sidebar } from "./sidebar-CdhW0PKj.esm.js";
3
+ import { a6 as useTheme, c as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-5rP5iXcS.esm.js";
4
+ import { S as Sidebar } from "./sidebar-n5_ky6G7.esm.js";
5
5
  import { d as drawerWidth } from "./mui.constants-BFBzxaiA.esm.js";
6
- import { u as useLanguage } from "./useLangauge-BUF4epYu.esm.js";
7
- import { aw as getToken } from "./common-Nn4SUfK7.esm.js";
6
+ import { u as useLanguage } from "./useLangauge-CbMaEsdS.esm.js";
7
+ import { aw as getToken } from "./common-D59u5rE6.esm.js";
8
8
  import { aA as getV1Settings } from "./api-BF3CyrPB.esm.js";
9
9
  import { useLocation } from "react-router-dom";
10
10
  const DRAWER_STATE_KEY = "_is_drawer_open";
@@ -70,7 +70,6 @@ const SidebarLayout = (props) => {
70
70
  }, [wipSettingsData, props.menu]);
71
71
  const handleMouseEnter = () => {
72
72
  if (!forcedOpen) {
73
- setOpen(true);
74
73
  window.localStorage.setItem(DRAWER_STATE_KEY, "true");
75
74
  }
76
75
  };
@@ -198,4 +197,4 @@ const SidebarLayout = (props) => {
198
197
  export {
199
198
  SidebarLayout as S
200
199
  };
201
- //# sourceMappingURL=sidebarScreen-DbfP32Xx.esm.js.map
200
+ //# sourceMappingURL=sidebarScreen-BwkiIBud.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebarScreen-BwkiIBud.esm.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\n\nimport { useTheme } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\n\nimport AppBar from '../../components/appbar/appbar';\nimport SideBar from '../../components/sidebar/sidebar';\nimport ActivityArea from '../../components/activityArea/activityArea';\nimport ChatBot from '../../components/chat-bot/chat-bot';\n\nimport drawerWidth from '../../constants/mui.constants';\n// const drawerWidth = 240;\nimport { useLanguage } from '../../hooks/useLangauge';\nimport { getToken } from '@/utils';\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\nimport { useLocation } from 'react-router-dom';\n\n// Local storage key for drawer state\nconst DRAWER_STATE_KEY = '_is_drawer_open';\n\n// Interface for better type safety\nexport interface ISidebarLayoutProps {\n\tmenu: any[];\n\tchildren: React.ReactNode;\n\tdashboardPath?: string;\n}\n\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\n\tconst theme = useTheme();\n\tconst { currentLanguage } = useLanguage();\n\tconst isRtl = useMemo(\n\t\t() => currentLanguage?.direction === 'rtl',\n\t\t[currentLanguage]\n\t);\n\t// Enhanced state management\n\tconst [forcedOpen, setForcedOpen] = useState(true);\n\tconst [hoverOpen, setHoverOpen] = useState(false);\n\tconst [isInitialized, setIsInitialized] = useState(false);\n\tconst location = useLocation();\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\n\n\t// Memoized computed state for actual drawer open status\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\n\n\t// Enhanced drawer control functions with better state management\n\tconst handleDrawerOpen = useCallback(() => {\n\t\tsetForcedOpen(true);\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\n\t\ttry {\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n\t\t} catch (error) {\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\n\t\t}\n\t}, []);\n\n\tconst handleDrawerClose = useCallback(() => {\n\t\tsetForcedOpen(false);\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\n\t}, []);\n\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\n\n\tconst getSettings = useCallback(async () => {\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\n\t\tconst tokenData = getToken();\n\t\tconst apiParams = {\n\t\t\t'x-token': tokenData['x-token'],\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\n\t\t};\n\t\tconst response = await getV1Settings(apiParams);\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\n\t\tsetWipSettingsData(data);\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\n\t}, []);\n\tuseEffect(() => {\n\t\tif(curPathName?.includes('manufacturing')) {\n\t\t\tgetSettings();\n\t\t}\n\t}, [getSettings, curPathName]);\n\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\n\t\tprops.menu\n\t);\n\n\tuseEffect(() => {\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\n\t\t\tconst _new = props.menu.filter((item) => {\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\n\t\t\t\t\treturn item.label !== 'Plans';\n\t\t\t\t} else {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetManufacturingSubmenu(_new);\n\t\t}\n\t}, [wipSettingsData, props.menu]);\n\t// const module_type = '';\n\n\tconst handleMouseEnter = () => {\n\t\tif (!forcedOpen) {\n\t\t\t// setOpen(true);\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n\t\t}\n\t};\n\n\tconst handleMouseLeave = useCallback(() => {\n\t\tif (!forcedOpen && isInitialized) {\n\t\t\tsetHoverOpen(false);\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\n\t\t}\n\t}, [forcedOpen, isInitialized]);\n\n\t// Toggle function for programmatic control\n\tconst toggleDrawer = useCallback(() => {\n\t\tif (forcedOpen) {\n\t\t\thandleDrawerClose();\n\t\t} else {\n\t\t\thandleDrawerOpen();\n\t\t}\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\n\n\t// Enhanced initialization with error handling\n\tuseEffect(() => {\n\t\tconst initializeDrawerState = () => {\n\t\t\ttry {\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\n\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\n\t\t\t\t\tsetIsInitialized(true);\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback for environments without localStorage\n\t\t\t\t\tsetForcedOpen(true);\n\t\t\t\t\tsetIsInitialized(true);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\n\t\t\t\t// Fallback to default state\n\t\t\t\tsetForcedOpen(true);\n\t\t\t\tsetIsInitialized(true);\n\t\t\t}\n\t\t};\n\n\t\tinitializeDrawerState();\n\t}, []);\n\n\t// Handle window focus to sync state across tabs\n\tuseEffect(() => {\n\t\tconst handleWindowFocus = () => {\n\t\t\ttry {\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\n\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\n\t\t\t\t\t\tsetHoverOpen(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener('focus', handleWindowFocus);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\n\t\t};\n\t}, [forcedOpen]);\n\n\t// Prevent rendering until initialization is complete\n\tif (!isInitialized) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tsx={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tminHeight: '100vh',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tjustifyContent: 'center'\n\t\t\t\t}}>\n\t\t\t\t{/* Optional loading indicator */}\n\t\t\t\t<Box>Loading...</Box>\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\tsx={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tminHeight: '100vh',\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\n\t\t\t}}>\n\t\t\t<AppBar\n\t\t\t\topen={forcedOpen}\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\n\t\t\t\thandleDrawerClose={handleDrawerClose}\n\t\t\t\ttoggleDrawer={toggleDrawer}\n\t\t\t\twidth={drawerWidth}\n\t\t\t\tforcedOpen={forcedOpen}\n\t\t\t\thoverOpen={hoverOpen}\n\t\t\t/>\n\n\t\t\t<SideBar\n\t\t\t\topen={forcedOpen}\n\t\t\t\tforcedOpen={forcedOpen}\n\t\t\t\thoverOpen={hoverOpen}\n\t\t\t\thandleDrawerClose={handleDrawerClose}\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\n\t\t\t\ttoggleDrawer={toggleDrawer}\n\t\t\t\twidth={drawerWidth}\n\t\t\t\ttheme={theme}\n\t\t\t\tmenu={manufacturingSubmenu}\n\t\t\t\thandleMouseEnter={handleMouseEnter}\n\t\t\t\thandleMouseLeave={handleMouseLeave}\n\t\t\t\tisInitialized={isInitialized}\n\t\t\t\tdashboardPath={props.dashboardPath}\n\t\t\t/>\n\n\t\t\t<ActivityArea\n\t\t\t\tisDrawerOpen={isDrawerOpen}\n\t\t\t\tdrawerWidth={drawerWidth}\n\t\t\t\tforcedOpen={forcedOpen}>\n\t\t\t\t{props.children}\n\t\t\t</ActivityArea>\n\t\t\t<ChatBot />\n\t\t</Box>\n\t);\n};\n\nexport default SidebarLayout;\n"],"names":["jsx","jsxs","AppBar","SideBar"],"mappings":"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"}
@@ -71,7 +71,6 @@ const SidebarLayout = (props) => {
71
71
  }, [wipSettingsData, props.menu]);
72
72
  const handleMouseEnter = () => {
73
73
  if (!forcedOpen) {
74
- setOpen(true);
75
74
  window.localStorage.setItem(DRAWER_STATE_KEY, "true");
76
75
  }
77
76
  };
@@ -197,4 +196,4 @@ const SidebarLayout = (props) => {
197
196
  );
198
197
  };
199
198
  exports.SidebarLayout = SidebarLayout;
200
- //# sourceMappingURL=sidebarScreen-figZp_Ln.js.map
199
+ //# sourceMappingURL=sidebarScreen-Cm763s1P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebarScreen-Cm763s1P.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\n\nimport { useTheme } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\n\nimport AppBar from '../../components/appbar/appbar';\nimport SideBar from '../../components/sidebar/sidebar';\nimport ActivityArea from '../../components/activityArea/activityArea';\nimport ChatBot from '../../components/chat-bot/chat-bot';\n\nimport drawerWidth from '../../constants/mui.constants';\n// const drawerWidth = 240;\nimport { useLanguage } from '../../hooks/useLangauge';\nimport { getToken } from '@/utils';\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\nimport { useLocation } from 'react-router-dom';\n\n// Local storage key for drawer state\nconst DRAWER_STATE_KEY = '_is_drawer_open';\n\n// Interface for better type safety\nexport interface ISidebarLayoutProps {\n\tmenu: any[];\n\tchildren: React.ReactNode;\n\tdashboardPath?: string;\n}\n\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\n\tconst theme = useTheme();\n\tconst { currentLanguage } = useLanguage();\n\tconst isRtl = useMemo(\n\t\t() => currentLanguage?.direction === 'rtl',\n\t\t[currentLanguage]\n\t);\n\t// Enhanced state management\n\tconst [forcedOpen, setForcedOpen] = useState(true);\n\tconst [hoverOpen, setHoverOpen] = useState(false);\n\tconst [isInitialized, setIsInitialized] = useState(false);\n\tconst location = useLocation();\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\n\n\t// Memoized computed state for actual drawer open status\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\n\n\t// Enhanced drawer control functions with better state management\n\tconst handleDrawerOpen = useCallback(() => {\n\t\tsetForcedOpen(true);\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\n\t\ttry {\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n\t\t} catch (error) {\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\n\t\t}\n\t}, []);\n\n\tconst handleDrawerClose = useCallback(() => {\n\t\tsetForcedOpen(false);\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\n\t}, []);\n\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\n\n\tconst getSettings = useCallback(async () => {\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\n\t\tconst tokenData = getToken();\n\t\tconst apiParams = {\n\t\t\t'x-token': tokenData['x-token'],\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\n\t\t};\n\t\tconst response = await getV1Settings(apiParams);\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\n\t\tsetWipSettingsData(data);\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\n\t}, []);\n\tuseEffect(() => {\n\t\tif(curPathName?.includes('manufacturing')) {\n\t\t\tgetSettings();\n\t\t}\n\t}, [getSettings, curPathName]);\n\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\n\t\tprops.menu\n\t);\n\n\tuseEffect(() => {\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\n\t\t\tconst _new = props.menu.filter((item) => {\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\n\t\t\t\t\treturn item.label !== 'Plans';\n\t\t\t\t} else {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetManufacturingSubmenu(_new);\n\t\t}\n\t}, [wipSettingsData, props.menu]);\n\t// const module_type = '';\n\n\tconst handleMouseEnter = () => {\n\t\tif (!forcedOpen) {\n\t\t\t// setOpen(true);\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n\t\t}\n\t};\n\n\tconst handleMouseLeave = useCallback(() => {\n\t\tif (!forcedOpen && isInitialized) {\n\t\t\tsetHoverOpen(false);\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\n\t\t}\n\t}, [forcedOpen, isInitialized]);\n\n\t// Toggle function for programmatic control\n\tconst toggleDrawer = useCallback(() => {\n\t\tif (forcedOpen) {\n\t\t\thandleDrawerClose();\n\t\t} else {\n\t\t\thandleDrawerOpen();\n\t\t}\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\n\n\t// Enhanced initialization with error handling\n\tuseEffect(() => {\n\t\tconst initializeDrawerState = () => {\n\t\t\ttry {\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\n\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\n\t\t\t\t\tsetIsInitialized(true);\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback for environments without localStorage\n\t\t\t\t\tsetForcedOpen(true);\n\t\t\t\t\tsetIsInitialized(true);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\n\t\t\t\t// Fallback to default state\n\t\t\t\tsetForcedOpen(true);\n\t\t\t\tsetIsInitialized(true);\n\t\t\t}\n\t\t};\n\n\t\tinitializeDrawerState();\n\t}, []);\n\n\t// Handle window focus to sync state across tabs\n\tuseEffect(() => {\n\t\tconst handleWindowFocus = () => {\n\t\t\ttry {\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\n\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\n\t\t\t\t\t\tsetHoverOpen(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener('focus', handleWindowFocus);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\n\t\t};\n\t}, [forcedOpen]);\n\n\t// Prevent rendering until initialization is complete\n\tif (!isInitialized) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tsx={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tminHeight: '100vh',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tjustifyContent: 'center'\n\t\t\t\t}}>\n\t\t\t\t{/* Optional loading indicator */}\n\t\t\t\t<Box>Loading...</Box>\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\tsx={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tminHeight: '100vh',\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\n\t\t\t}}>\n\t\t\t<AppBar\n\t\t\t\topen={forcedOpen}\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\n\t\t\t\thandleDrawerClose={handleDrawerClose}\n\t\t\t\ttoggleDrawer={toggleDrawer}\n\t\t\t\twidth={drawerWidth}\n\t\t\t\tforcedOpen={forcedOpen}\n\t\t\t\thoverOpen={hoverOpen}\n\t\t\t/>\n\n\t\t\t<SideBar\n\t\t\t\topen={forcedOpen}\n\t\t\t\tforcedOpen={forcedOpen}\n\t\t\t\thoverOpen={hoverOpen}\n\t\t\t\thandleDrawerClose={handleDrawerClose}\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\n\t\t\t\ttoggleDrawer={toggleDrawer}\n\t\t\t\twidth={drawerWidth}\n\t\t\t\ttheme={theme}\n\t\t\t\tmenu={manufacturingSubmenu}\n\t\t\t\thandleMouseEnter={handleMouseEnter}\n\t\t\t\thandleMouseLeave={handleMouseLeave}\n\t\t\t\tisInitialized={isInitialized}\n\t\t\t\tdashboardPath={props.dashboardPath}\n\t\t\t/>\n\n\t\t\t<ActivityArea\n\t\t\t\tisDrawerOpen={isDrawerOpen}\n\t\t\t\tdrawerWidth={drawerWidth}\n\t\t\t\tforcedOpen={forcedOpen}>\n\t\t\t\t{props.children}\n\t\t\t</ActivityArea>\n\t\t\t<ChatBot />\n\t\t</Box>\n\t);\n};\n\nexport default SidebarLayout;\n"],"names":["useTheme","useLanguage","useMemo","useState","useLocation","useCallback","getToken","getV1Settings","useEffect","jsx","Box","jsxs","AppBar","drawerWidth","SideBar","ActivityArea","ChatBot"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createSlice, createAsyncThunk, configureStore, combineReducers } from "@reduxjs/toolkit";
2
- import { g as getAllUserAndDepartmentDropdown, f as formBuilderListSlice, a as dashboardSlice } from "./reducer-DRkUwBHb.esm.js";
2
+ import { g as getAllUserAndDepartmentDropdown, f as formBuilderListSlice, a as dashboardSlice } from "./reducer-D6_f0R4C.esm.js";
3
3
  import { a5 as getV1Languages, G as getV1Company, a2 as getV1InventoryItems, aS as getV1WarehouseLocation, n as getV1AssemblyItems, u as getV1BillsOfMaterials } from "./api-BF3CyrPB.esm.js";
4
- import { aw as getToken, ab as getErrorMessage } from "./common-Nn4SUfK7.esm.js";
4
+ import { aw as getToken, ab as getErrorMessage } from "./common-D59u5rE6.esm.js";
5
5
  const state$3 = {
6
6
  users: [],
7
7
  departments: [],
@@ -387,4 +387,4 @@ export {
387
387
  removeLibraryReducer as r,
388
388
  store as s
389
389
  };
390
- //# sourceMappingURL=store-C2XaFCA_.esm.js.map
390
+ //# sourceMappingURL=store-OqHSsVaz.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-C2XaFCA_.esm.js","sources":["../../src/components/share-modal/redux/state.ts","../../src/components/share-modal/redux/reducer.ts","../../src/components/header/redux/state.ts","../../src/components/header/redux/actionCreator.ts","../../src/components/header/redux/reducer.ts","../../src/components/reports-title-bar/redux/state.ts","../../src/components/reports-title-bar/redux/actionCreator.ts","../../src/components/reports-title-bar/redux/reducer.ts","../../src/components/inventory-reports-title-bar/redux/state.ts","../../src/components/inventory-reports-title-bar/redux/actionCreator.ts","../../src/components/inventory-reports-title-bar/redux/reducer.ts","../../src/redux/store.ts"],"sourcesContent":["export const state = {\n users: [],\n departments: [],\n loading: true,\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { getAllUserAndDepartmentDropdown } from \"./actionCreator\";\n\nexport const shareSlice = createSlice({\n name: \"share\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n\n builder.addCase(getAllUserAndDepartmentDropdown.pending, (state) => {\n state.loading = true;\n state.error = \"\";\n state.users = [];\n state.departments = [];\n state.isError = false;\n });\n\n /*-------------------------------- get share drive fullfiled State ---------------------------------*/\n builder.addCase(\n getAllUserAndDepartmentDropdown.fulfilled,\n (state, action) => {\n state.loading = false;\n state.users = action.payload?.data?.users?.map((user: any) => ({\n ...user,\n label: `${user.first_name} ${user.last_name}`,\n value: user.id,\n }));\n state.departments = action.payload?.data?.roles?.map((role: any) => ({\n ...role,\n label: role.name,\n value: role.id,\n }));\n state.error = \"\";\n state.isError = false;\n },\n );\n\n /*-------------------------------- get share drive Rejected State ---------------------------------*/\n builder.addCase(\n getAllUserAndDepartmentDropdown.rejected,\n (state, action) => {\n state.loading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n },\n );\n },\n});\n\nexport default shareSlice.reducer;\n","export const state = {\n\tlanguagesData: {\n\t\tisLoading: false,\n\t\tisError: false,\n\t\terror: '',\n\t\tdata: [],\n\t},\n\tcurrentLanguage: {\n\t\tlabel: 'English',\n\t\tcode: 'en',\n\t\tdirection: 'ltr',\n\t},\n}\n\nexport default state\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n });\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchLanguages } from \"./actionCreator\";\nimport { getErrorMessage } from \"../../../utils/common\";\n\nexport const headerSlice = createSlice({\n name: \"header\",\n initialState,\n reducers: {\n setLanguages(state, { payload }) {\n\t\t\tstate.languagesData = { ...state.languagesData, ...payload };\n\t\t},\n setCurrentLanguage(state, { payload }) {\n\t\t\tstate.currentLanguage = { ...state.currentLanguage, ...payload };\n\t\t},\n },\n extraReducers: (builder) => {\n /*-------------------------------- GET LANGUAGES ---------------------------------*/\n builder.addCase(fetchLanguages.pending, (state) => {\n state.languagesData = {\n isLoading: true,\n isError: false,\n error: '',\n data: [],\n }\n }).addCase(fetchLanguages.fulfilled, (state, { payload }) => {\n state.languagesData = {\n isLoading: false,\n isError: false,\n error: '',\n data: payload.languages || [],\n }\n },\n ).addCase(fetchLanguages.rejected, (state, { error }) => {\n const m = getErrorMessage(error.message);\n state.languagesData = {\n isLoading: false,\n isError: true,\n error: m,\n data: [],\n }\n },\n );\n },\n});\n\nexport const { setLanguages, setCurrentLanguage } = headerSlice.actions;\n\nexport default headerSlice.reducer;\n","export interface IReportsTitleBarState {\n companies: any[];\n isLoading: boolean;\n error: string;\n isError: boolean;\n}\n\nexport const state: IReportsTitleBarState = {\n companies: [],\n isLoading: true,\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n} from \"../../../api-client/api.rbac/api\";\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchCompanies } from \"./actionCreator\";\n\nexport const reportsTitleBarSlice = createSlice({\n name: \"reportsTitleBar\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n builder.addCase(fetchCompanies.pending, (state) => {\n state.isLoading = true;\n state.error = \"\";\n state.companies = [];\n });\n builder.addCase(fetchCompanies.fulfilled, (state, action) => {\n state.companies = action.payload?.data?.company;\n state.isLoading = false;\n state.isError = false;\n state.error = \"\";\n });\n builder.addCase(fetchCompanies.rejected, (state, action) => {\n state.isLoading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n });\n },\n});\n\nexport default reportsTitleBarSlice.reducer;\n","export interface IReportsTitleBarState {\n companies: any[];\n items: any[];\n warehouseLocations: any[];\n isLoading: boolean;\n error: string;\n isError: boolean;\n assemblyItems: any[];\n bomData: any[\n\n ]\n}\n\nexport const state: IReportsTitleBarState = {\n companies: [],\n items: [],\n warehouseLocations: [],\n isLoading: true,\n assemblyItems: [],\n bomData: [],\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchBom, fetchOptions } from \"./actionCreator\";\n\nexport const inventoryReportsTitleBarSlice = createSlice({\n name: \"inventoryReportsTitleBar\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n builder.addCase(fetchOptions.pending, (state) => {\n state.companies = [];\n state.items = [];\n state.warehouseLocations = [];\n state.assemblyItems = []\n state.isLoading = true;\n state.error = \"\";\n });\n builder.addCase(fetchOptions.fulfilled, (state, action) => {\n\n state.companies = action.payload?.c;\n state.items = action.payload?.i;\n state.warehouseLocations = action.payload?.wl;\n state.assemblyItems = action.payload?.ai;\n state.isLoading = false;\n state.isError = false;\n state.error = \"\";\n\n });\n builder.addCase(fetchOptions.rejected, (state, action) => {\n state.isLoading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n });\n builder.addCase(fetchBom.fulfilled, (state, action) => {\n state.bomData = action.payload?.bom;\n });\n },\n});\n\nexport default inventoryReportsTitleBarSlice.reducer;\n","import { configureStore, combineReducers, AnyAction } from '@reduxjs/toolkit';\nimport { LibraryReduxSlices } from './types';\nimport { shareSlice } from '../components/share-modal/redux/reducer';\nimport { headerSlice } from '../components/header/redux/reducer';\nimport { reportsTitleBarSlice } from '../components/reports-title-bar/redux/reducer';\nimport { inventoryReportsTitleBarSlice } from '../components/inventory-reports-title-bar/redux/reducer';\nimport { dashboardSlice } from '../views/afterAuth/dashboard/redux/reducer';\nimport { formBuilderListSlice } from '../views/form-builder/redux/reducer';\n\n// Default library reducers\nexport const libraryReducers = {\n share: shareSlice.reducer,\n header: headerSlice.reducer,\n reportsTitleBar: reportsTitleBarSlice.reducer,\n inventoryReportsTitleBar: inventoryReportsTitleBarSlice.reducer,\n dashboard: dashboardSlice.reducer,\n formBuilder: formBuilderListSlice.reducer,\n};\n\nexport type ReducerFn<State = Record<string, unknown>> = (\n state: State | undefined,\n action: AnyAction\n) => State;\ntype ReducerMap = Record<string, ReducerFn>;\n\nexport type ReducerManager = {\n getReducers: () => ReducerMap;\n reduce: ReducerFn;\n add: (key: string, reducer: ReducerFn) => void;\n remove: (key: string) => void;\n};\n\nconst createReducerManager = (initialReducers: ReducerMap): ReducerManager => {\n let reducers = { ...initialReducers };\n let combinedReducer = combineReducers(reducers);\n let keysToRemove: string[] = [];\n\n return {\n getReducers: () => ({ ...reducers }),\n reduce: (state: any, action: AnyAction) => {\n if (keysToRemove.length) {\n state = { ...state };\n keysToRemove.forEach((key) => delete state[key]);\n keysToRemove = [];\n }\n return combinedReducer(state, action);\n },\n add: (key: string, reducer: ReducerFn) => {\n if (!key || reducers[key]) return;\n reducers = { ...reducers, [key]: reducer };\n combinedReducer = combineReducers(reducers);\n },\n remove: (key: string) => {\n if (!key || !reducers[key]) return;\n const { [key]: _, ...rest } = reducers;\n reducers = rest;\n keysToRemove.push(key);\n combinedReducer = combineReducers(reducers);\n },\n };\n};\n\ntype ReducerInjectorStore = ReturnType<typeof configureStore> & {\n reducerManager: ReducerManager;\n injectReducer: (key: string, reducer: ReducerFn) => void;\n removeReducer: (key: string) => void;\n};\n\n// Helper function to create a store with library slices\nexport const createLibraryStore = (\n additionalReducers: Record<string, any> = {},\n apiClient?: any,\n middleware: any[] = []\n) => {\n const reducerManager = createReducerManager({\n ...libraryReducers,\n ...additionalReducers,\n });\n\n const store = configureStore({\n reducer: reducerManager.reduce,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n thunk: {\n extraArgument: { apiClient },\n },\n }).concat(middleware),\n });\n\n const reducerEnabledStore: ReducerInjectorStore = {\n ...store,\n reducerManager,\n injectReducer: (key: string, reducer: ReducerFn) => {\n reducerManager.add(key, reducer);\n store.replaceReducer(reducerManager.reduce);\n },\n removeReducer: (key: string) => {\n reducerManager.remove(key);\n store.replaceReducer(reducerManager.reduce);\n },\n };\n\n return reducerEnabledStore;\n};\n\n// Helper function to get just the library slices for integration with existing stores\nexport const getLibrarySlices = (): LibraryReduxSlices => {\n return {\n share: shareSlice.reducer,\n header: headerSlice.reducer,\n reportsTitleBar: reportsTitleBarSlice.reducer,\n inventoryReportsTitleBar: inventoryReportsTitleBarSlice.reducer,\n dashboard: dashboardSlice.reducer,\n formBuilder: formBuilderListSlice.reducer,\n };\n};\n\n// Type for the library store\nexport type LibraryStore = ReturnType<typeof createLibraryStore>;\nexport type LibraryRootState = ReturnType<LibraryStore['getState']>;\nexport type LibraryDispatch = LibraryStore['dispatch'];\n\n// Default store instance for consumers that want a ready-to-use store\nexport const store: LibraryStore = createLibraryStore();\n\n// Helpers for consuming apps to inject or remove reducers at runtime\nexport const injectLibraryReducer = (\n store: LibraryStore,\n key: string,\n reducer: ReducerFn\n) => {\n if (typeof store.injectReducer === 'function') {\n store.injectReducer(key, reducer);\n }\n};\n\nexport const removeLibraryReducer = (store: LibraryStore, key: string) => {\n if (typeof store.removeReducer === 'function') {\n store.removeReducer(key);\n }\n};"],"names":["state","initialState","store"],"mappings":"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"}
1
+ {"version":3,"file":"store-OqHSsVaz.esm.js","sources":["../../src/components/share-modal/redux/state.ts","../../src/components/share-modal/redux/reducer.ts","../../src/components/header/redux/state.ts","../../src/components/header/redux/actionCreator.ts","../../src/components/header/redux/reducer.ts","../../src/components/reports-title-bar/redux/state.ts","../../src/components/reports-title-bar/redux/actionCreator.ts","../../src/components/reports-title-bar/redux/reducer.ts","../../src/components/inventory-reports-title-bar/redux/state.ts","../../src/components/inventory-reports-title-bar/redux/actionCreator.ts","../../src/components/inventory-reports-title-bar/redux/reducer.ts","../../src/redux/store.ts"],"sourcesContent":["export const state = {\n users: [],\n departments: [],\n loading: true,\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { getAllUserAndDepartmentDropdown } from \"./actionCreator\";\n\nexport const shareSlice = createSlice({\n name: \"share\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n\n builder.addCase(getAllUserAndDepartmentDropdown.pending, (state) => {\n state.loading = true;\n state.error = \"\";\n state.users = [];\n state.departments = [];\n state.isError = false;\n });\n\n /*-------------------------------- get share drive fullfiled State ---------------------------------*/\n builder.addCase(\n getAllUserAndDepartmentDropdown.fulfilled,\n (state, action) => {\n state.loading = false;\n state.users = action.payload?.data?.users?.map((user: any) => ({\n ...user,\n label: `${user.first_name} ${user.last_name}`,\n value: user.id,\n }));\n state.departments = action.payload?.data?.roles?.map((role: any) => ({\n ...role,\n label: role.name,\n value: role.id,\n }));\n state.error = \"\";\n state.isError = false;\n },\n );\n\n /*-------------------------------- get share drive Rejected State ---------------------------------*/\n builder.addCase(\n getAllUserAndDepartmentDropdown.rejected,\n (state, action) => {\n state.loading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n },\n );\n },\n});\n\nexport default shareSlice.reducer;\n","export const state = {\n\tlanguagesData: {\n\t\tisLoading: false,\n\t\tisError: false,\n\t\terror: '',\n\t\tdata: [],\n\t},\n\tcurrentLanguage: {\n\t\tlabel: 'English',\n\t\tcode: 'en',\n\t\tdirection: 'ltr',\n\t},\n}\n\nexport default state\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n });\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchLanguages } from \"./actionCreator\";\nimport { getErrorMessage } from \"../../../utils/common\";\n\nexport const headerSlice = createSlice({\n name: \"header\",\n initialState,\n reducers: {\n setLanguages(state, { payload }) {\n\t\t\tstate.languagesData = { ...state.languagesData, ...payload };\n\t\t},\n setCurrentLanguage(state, { payload }) {\n\t\t\tstate.currentLanguage = { ...state.currentLanguage, ...payload };\n\t\t},\n },\n extraReducers: (builder) => {\n /*-------------------------------- GET LANGUAGES ---------------------------------*/\n builder.addCase(fetchLanguages.pending, (state) => {\n state.languagesData = {\n isLoading: true,\n isError: false,\n error: '',\n data: [],\n }\n }).addCase(fetchLanguages.fulfilled, (state, { payload }) => {\n state.languagesData = {\n isLoading: false,\n isError: false,\n error: '',\n data: payload.languages || [],\n }\n },\n ).addCase(fetchLanguages.rejected, (state, { error }) => {\n const m = getErrorMessage(error.message);\n state.languagesData = {\n isLoading: false,\n isError: true,\n error: m,\n data: [],\n }\n },\n );\n },\n});\n\nexport const { setLanguages, setCurrentLanguage } = headerSlice.actions;\n\nexport default headerSlice.reducer;\n","export interface IReportsTitleBarState {\n companies: any[];\n isLoading: boolean;\n error: string;\n isError: boolean;\n}\n\nexport const state: IReportsTitleBarState = {\n companies: [],\n isLoading: true,\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n} from \"../../../api-client/api.rbac/api\";\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchCompanies } from \"./actionCreator\";\n\nexport const reportsTitleBarSlice = createSlice({\n name: \"reportsTitleBar\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n builder.addCase(fetchCompanies.pending, (state) => {\n state.isLoading = true;\n state.error = \"\";\n state.companies = [];\n });\n builder.addCase(fetchCompanies.fulfilled, (state, action) => {\n state.companies = action.payload?.data?.company;\n state.isLoading = false;\n state.isError = false;\n state.error = \"\";\n });\n builder.addCase(fetchCompanies.rejected, (state, action) => {\n state.isLoading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n });\n },\n});\n\nexport default reportsTitleBarSlice.reducer;\n","export interface IReportsTitleBarState {\n companies: any[];\n items: any[];\n warehouseLocations: any[];\n isLoading: boolean;\n error: string;\n isError: boolean;\n assemblyItems: any[];\n bomData: any[\n\n ]\n}\n\nexport const state: IReportsTitleBarState = {\n companies: [],\n items: [],\n warehouseLocations: [],\n isLoading: true,\n assemblyItems: [],\n bomData: [],\n error: \"\",\n isError: false,\n};\n\nexport default state;\n","import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"./state\";\nimport { fetchBom, fetchOptions } from \"./actionCreator\";\n\nexport const inventoryReportsTitleBarSlice = createSlice({\n name: \"inventoryReportsTitleBar\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n /*-------------------------------- get share drive Pending State ---------------------------------*/\n builder.addCase(fetchOptions.pending, (state) => {\n state.companies = [];\n state.items = [];\n state.warehouseLocations = [];\n state.assemblyItems = []\n state.isLoading = true;\n state.error = \"\";\n });\n builder.addCase(fetchOptions.fulfilled, (state, action) => {\n\n state.companies = action.payload?.c;\n state.items = action.payload?.i;\n state.warehouseLocations = action.payload?.wl;\n state.assemblyItems = action.payload?.ai;\n state.isLoading = false;\n state.isError = false;\n state.error = \"\";\n\n });\n builder.addCase(fetchOptions.rejected, (state, action) => {\n state.isLoading = false;\n state.error = action.error.message || \"\";\n state.isError = true;\n });\n builder.addCase(fetchBom.fulfilled, (state, action) => {\n state.bomData = action.payload?.bom;\n });\n },\n});\n\nexport default inventoryReportsTitleBarSlice.reducer;\n","import { configureStore, combineReducers, AnyAction } from '@reduxjs/toolkit';\nimport { LibraryReduxSlices } from './types';\nimport { shareSlice } from '../components/share-modal/redux/reducer';\nimport { headerSlice } from '../components/header/redux/reducer';\nimport { reportsTitleBarSlice } from '../components/reports-title-bar/redux/reducer';\nimport { inventoryReportsTitleBarSlice } from '../components/inventory-reports-title-bar/redux/reducer';\nimport { dashboardSlice } from '../views/afterAuth/dashboard/redux/reducer';\nimport { formBuilderListSlice } from '../views/form-builder/redux/reducer';\n\n// Default library reducers\nexport const libraryReducers = {\n share: shareSlice.reducer,\n header: headerSlice.reducer,\n reportsTitleBar: reportsTitleBarSlice.reducer,\n inventoryReportsTitleBar: inventoryReportsTitleBarSlice.reducer,\n dashboard: dashboardSlice.reducer,\n formBuilder: formBuilderListSlice.reducer,\n};\n\nexport type ReducerFn<State = Record<string, unknown>> = (\n state: State | undefined,\n action: AnyAction\n) => State;\ntype ReducerMap = Record<string, ReducerFn>;\n\nexport type ReducerManager = {\n getReducers: () => ReducerMap;\n reduce: ReducerFn;\n add: (key: string, reducer: ReducerFn) => void;\n remove: (key: string) => void;\n};\n\nconst createReducerManager = (initialReducers: ReducerMap): ReducerManager => {\n let reducers = { ...initialReducers };\n let combinedReducer = combineReducers(reducers);\n let keysToRemove: string[] = [];\n\n return {\n getReducers: () => ({ ...reducers }),\n reduce: (state: any, action: AnyAction) => {\n if (keysToRemove.length) {\n state = { ...state };\n keysToRemove.forEach((key) => delete state[key]);\n keysToRemove = [];\n }\n return combinedReducer(state, action);\n },\n add: (key: string, reducer: ReducerFn) => {\n if (!key || reducers[key]) return;\n reducers = { ...reducers, [key]: reducer };\n combinedReducer = combineReducers(reducers);\n },\n remove: (key: string) => {\n if (!key || !reducers[key]) return;\n const { [key]: _, ...rest } = reducers;\n reducers = rest;\n keysToRemove.push(key);\n combinedReducer = combineReducers(reducers);\n },\n };\n};\n\ntype ReducerInjectorStore = ReturnType<typeof configureStore> & {\n reducerManager: ReducerManager;\n injectReducer: (key: string, reducer: ReducerFn) => void;\n removeReducer: (key: string) => void;\n};\n\n// Helper function to create a store with library slices\nexport const createLibraryStore = (\n additionalReducers: Record<string, any> = {},\n apiClient?: any,\n middleware: any[] = []\n) => {\n const reducerManager = createReducerManager({\n ...libraryReducers,\n ...additionalReducers,\n });\n\n const store = configureStore({\n reducer: reducerManager.reduce,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n thunk: {\n extraArgument: { apiClient },\n },\n }).concat(middleware),\n });\n\n const reducerEnabledStore: ReducerInjectorStore = {\n ...store,\n reducerManager,\n injectReducer: (key: string, reducer: ReducerFn) => {\n reducerManager.add(key, reducer);\n store.replaceReducer(reducerManager.reduce);\n },\n removeReducer: (key: string) => {\n reducerManager.remove(key);\n store.replaceReducer(reducerManager.reduce);\n },\n };\n\n return reducerEnabledStore;\n};\n\n// Helper function to get just the library slices for integration with existing stores\nexport const getLibrarySlices = (): LibraryReduxSlices => {\n return {\n share: shareSlice.reducer,\n header: headerSlice.reducer,\n reportsTitleBar: reportsTitleBarSlice.reducer,\n inventoryReportsTitleBar: inventoryReportsTitleBarSlice.reducer,\n dashboard: dashboardSlice.reducer,\n formBuilder: formBuilderListSlice.reducer,\n };\n};\n\n// Type for the library store\nexport type LibraryStore = ReturnType<typeof createLibraryStore>;\nexport type LibraryRootState = ReturnType<LibraryStore['getState']>;\nexport type LibraryDispatch = LibraryStore['dispatch'];\n\n// Default store instance for consumers that want a ready-to-use store\nexport const store: LibraryStore = createLibraryStore();\n\n// Helpers for consuming apps to inject or remove reducers at runtime\nexport const injectLibraryReducer = (\n store: LibraryStore,\n key: string,\n reducer: ReducerFn\n) => {\n if (typeof store.injectReducer === 'function') {\n store.injectReducer(key, reducer);\n }\n};\n\nexport const removeLibraryReducer = (store: LibraryStore, key: string) => {\n if (typeof store.removeReducer === 'function') {\n store.removeReducer(key);\n }\n};"],"names":["state","initialState","store"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import _ from "lodash";
2
2
  import { a6 as getV1LanguagesTranslations } from "./api-BF3CyrPB.esm.js";
3
- import { aw as getToken } from "./common-Nn4SUfK7.esm.js";
3
+ import { aw as getToken } from "./common-D59u5rE6.esm.js";
4
4
  function calculateAdditionalDiscountCrossValue(sourceValue, sourceField, total) {
5
5
  if (total <= 0 || sourceValue <= 0) return 0;
6
6
  if (sourceField === "percentage") {
@@ -132,4 +132,4 @@ export {
132
132
  calculateAdditionalDiscountCrossValue as c,
133
133
  loadModuleTranslations as l
134
134
  };
135
- //# sourceMappingURL=translations-DJZgOpfH.esm.js.map
135
+ //# sourceMappingURL=translations-GFvlFdi5.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"translations-DJZgOpfH.esm.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["export function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n return Number((total * (sourceValue / 100)).toFixed(2));\n }\n return Number(((sourceValue / total) * 100).toFixed(2));\n}\n\nexport const calculateEntries = (\n\titems: any[],\n\texpenses?: any[],\n\tadditionalDiscountOn?: string,\n\tadditionalDiscountPercentage?: number,\n\tprovidedAdditionalDiscountAmount?: number,\n\troundOff?: boolean,\n\troundOffAmount?: number,\n promotionAmount?: number\n) => {\n\tlet totalQuantity = 0,\n\t\ttotalDiscount = 0,\n\t\ttotalTaxAmount = 0,\n\t\ttotalAmountExcludingAll = 0,\n\t\ttotalAmountIncludingAll = 0,\n\t\tadditionalDiscountAmount = 0,\n\t\ttotalGrossAmount = 0;\n\n\tif (items.length) {\n\t\titems.forEach((item) => {\n\t\t\ttotalQuantity += Number(item?.quantity || 0);\n\t\t\ttotalDiscount += Number(item?.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll +=\n\t\t\t\tNumber(item.quantity || 0) *\n\t\t\t\tNumber(item.rate || 0);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\tif (expenses?.length) {\n\t\texpenses.forEach((item) => {\n\t\t\ttotalQuantity += 1;\n\t\t\ttotalDiscount += Number(item.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll += 1 * Number(item.rate);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\n\tlet finalAmount = totalAmountIncludingAll;\n\n\tif (additionalDiscountOn) {\n\t\tif (additionalDiscountOn === 'Net Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalAmountIncludingAll * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t} else if (additionalDiscountOn === 'Gross Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalGrossAmount * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalAmount =\n\t\tadditionalDiscountOn === 'Gross Amount'\n\t\t\t? Number(totalAmountIncludingAll) - Number(additionalDiscountAmount)\n\t\t\t: Number(totalAmountIncludingAll) - Number(additionalDiscountAmount);\n \n if(Number(promotionAmount)) {\n finalAmount = finalAmount - Number(promotionAmount)\n }\n\n\tconst actualTotalAmount = finalAmount;\n\tif (roundOff && roundOffAmount && Number(roundOffAmount)) {\n\t\tfinalAmount = Math.round(finalAmount / roundOffAmount) * roundOffAmount;\n\t}\n\tconst roundOffDifference = Number(finalAmount) - Number(actualTotalAmount);\n\tconst totalItemsExpenseDiscount = totalDiscount;\n\ttotalDiscount += Number(additionalDiscountAmount);\n\treturn {\n\t\ttotalQuantity,\n\t\ttotalDiscount,\n\t\ttotalItemsExpenseDiscount,\n\t\ttotalTaxAmount,\n\t\ttotalAmountExludingAll: totalAmountExcludingAll,\n\t\ttotalAmountIncludingAll,\n\t\tadditinoalDiscountAmount: additionalDiscountAmount,\n\t\ttotalGrossAmount,\n\t\tactualTotalAmount,\n\t\troundOffDifference,\n\t\tfinalAmount\n\t};\n};","import _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { getV1LanguagesTranslations } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nconst loadedModules = new Set<string>();\n\nfunction nestTranslation(flatObject: any) {\n const nested = {};\n const keys = Object.keys(flatObject);\n const namespaceKeys = new Set<string>();\n\n // Identify all keys that act as parent namespaces for nested objects\n keys.forEach((key) => {\n keys.forEach((otherKey) => {\n if (otherKey.startsWith(key + '.')) {\n namespaceKeys.add(key);\n }\n });\n });\n\n // Nest only the leaf keys to prevent intermediate primitive string collisions\n keys.forEach((key) => {\n if (!namespaceKeys.has(key)) {\n _.set(nested, key, flatObject[key]);\n }\n });\n\n return nested;\n}\n\nexport async function loadModuleTranslations(moduleNames: string[], i18nInstance?: any) {\n const modulesToLoad = moduleNames?.filter(m => !loadedModules.has(m)) || [];\n\n if(!modulesToLoad.length) return;\n\n const filters = `(module.in=[${modulesToLoad?.join(',')}])`;\n\n const response = await getV1LanguagesTranslations({\n filters,\n limit: 9999,\n ...getToken(),\n });\n\n const data = response?.data?.translations || [];\n\n const resources: Record<string, Record<string, string>> = {};\n\n data.forEach((module: any) => {\n module?.fields?.forEach((item: any) => {\n for (const lang in item.translation) {\n if (!resources[lang]) {\n resources[lang] = {};\n }\n resources[lang][item.slug] = item.translation[lang];\n }\n })\n });\n\n \n if (i18nInstance) {\n Object.keys(resources).forEach((lang) => {\n const nested = nestTranslation(resources[lang]);\n i18nInstance.addResourceBundle(lang, 'translation', nested, true, true);\n });\n }\n\n modulesToLoad.forEach((module) => {\n loadedModules.add(module);\n });\n}\n"],"names":["_a"],"mappings":";;;AAAO,SAAS,sCACd,aACA,aACA,OACQ;AACR,MAAI,SAAS,KAAK,eAAe,EAAG,QAAO;AAC3C,MAAI,gBAAgB,cAAc;AAChC,WAAO,QAAQ,SAAS,cAAc,MAAM,QAAQ,CAAC,CAAC;AAAA,EACxD;AACA,SAAO,QAAS,cAAc,QAAS,KAAK,QAAQ,CAAC,CAAC;AACxD;AAEO,MAAM,mBAAmB,CAC/B,OACA,UACA,sBACA,8BACA,kCACA,UACA,gBACC,oBACG;AACJ,MAAI,gBAAgB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,0BAA0B,GAC1B,0BAA0B,GAC1B,2BAA2B,GAC3B,mBAAmB;AAEpB,MAAI,MAAM,QAAQ;AACjB,UAAM,QAAQ,CAAC,SAAS;AACvB,uBAAiB,QAAO,6BAAM,aAAY,CAAC;AAC3C,uBAAiB,QAAO,6BAAM,oBAAmB,CAAC;AAClD,iCAA2B;AAAA,QAC1B,KAAK,gBAAgB;AAAA,MAAA;AAEtB,wBAAkB,OAAO,KAAK,UAAU;AACxC,iCACC,OAAO,KAAK,YAAY,CAAC,IACzB,OAAO,KAAK,QAAQ,CAAC;AACtB,0BAAoB,OAAO,KAAK,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACF;AACA,MAAI,qCAAU,QAAQ;AACrB,aAAS,QAAQ,CAAC,SAAS;AAC1B,uBAAiB;AACjB,uBAAiB,OAAO,KAAK,mBAAmB,CAAC;AACjD,iCAA2B;AAAA,QAC1B,KAAK,gBAAgB;AAAA,MAAA;AAEtB,wBAAkB,OAAO,KAAK,UAAU;AACxC,iCAA2B,IAAI,OAAO,KAAK,IAAI;AAC/C,0BAAoB,OAAO,KAAK,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACF;AAEA,MAAI,cAAc;AAElB,MAAI,sBAAsB;AACzB,QAAI,yBAAyB,cAAc;AAC1C,UACC,gCACA,OAAO,4BAA4B,MAAM,GACxC;AACD,mCACC,2BAA2B,+BAA+B;AAAA,MAC5D,OAAO;AACN,mCAA2B,oCAAoC;AAAA,MAChE;AAAA,IACD,WAAW,yBAAyB,gBAAgB;AACnD,UACC,gCACA,OAAO,4BAA4B,MAAM,GACxC;AACD,mCACC,oBAAoB,+BAA+B;AAAA,MACrD,OAAO;AACN,mCAA2B,oCAAoC;AAAA,MAChE;AAAA,IACD;AAAA,EACD;AAEA,gBACC,yBAAyB,iBACtB,OAAO,uBAAuB,IAAI,OAAO,wBAAwB,IACjE,OAAO,uBAAuB,IAAI,OAAO,wBAAwB;AAEpE,MAAG,OAAO,eAAe,GAAG;AAC1B,kBAAc,cAAc,OAAO,eAAe;AAAA,EACpD;AAED,QAAM,oBAAoB;AAC1B,MAAI,YAAY,kBAAkB,OAAO,cAAc,GAAG;AACzD,kBAAc,KAAK,MAAM,cAAc,cAAc,IAAI;AAAA,EAC1D;AACA,QAAM,qBAAqB,OAAO,WAAW,IAAI,OAAO,iBAAiB;AACzE,QAAM,4BAA4B;AAClC,mBAAiB,OAAO,wBAAwB;AAChD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB;AAAA,IACA,0BAA0B;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AC3GA,MAAM,oCAAoB,IAAA;AAE1B,SAAS,gBAAgB,YAAiB;AACxC,QAAM,SAAS,CAAA;AACf,QAAM,OAAO,OAAO,KAAK,UAAU;AACnC,QAAM,oCAAoB,IAAA;AAG1B,OAAK,QAAQ,CAAC,QAAQ;AACpB,SAAK,QAAQ,CAAC,aAAa;AACzB,UAAI,SAAS,WAAW,MAAM,GAAG,GAAG;AAClC,sBAAc,IAAI,GAAG;AAAA,MACvB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAGD,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,CAAC,cAAc,IAAI,GAAG,GAAG;AAC3B,QAAE,IAAI,QAAQ,KAAK,WAAW,GAAG,CAAC;AAAA,IACpC;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,eAAsB,uBAAuB,aAAuB,cAAoB;;AACtF,QAAM,iBAAgB,2CAAa,OAAO,CAAA,MAAK,CAAC,cAAc,IAAI,CAAC,OAAM,CAAA;AAEzE,MAAG,CAAC,cAAc,OAAQ;AAE1B,QAAM,UAAU,eAAe,+CAAe,KAAK,IAAI;AAEvD,QAAM,WAAW,MAAM,2BAA2B;AAAA,IAChD;AAAA,IACA,OAAO;AAAA,IACP,GAAG,SAAA;AAAA,EAAS,CACb;AAED,QAAM,SAAO,0CAAU,SAAV,mBAAgB,iBAAgB,CAAA;AAE7C,QAAM,YAAoD,CAAA;AAE1D,OAAK,QAAQ,CAAC,WAAgB;;AAC5B,KAAAA,MAAA,iCAAQ,WAAR,gBAAAA,IAAgB,QAAQ,CAAC,SAAc;AACrC,iBAAW,QAAQ,KAAK,aAAa;AACnC,YAAI,CAAC,UAAU,IAAI,GAAG;AACpB,oBAAU,IAAI,IAAI,CAAA;AAAA,QACpB;AACA,kBAAU,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,YAAY,IAAI;AAAA,MACpD;AAAA,IACF;AAAA,EACF,CAAC;AAGD,MAAI,cAAc;AAChB,WAAO,KAAK,SAAS,EAAE,QAAQ,CAAC,SAAS;AACvC,YAAM,SAAS,gBAAgB,UAAU,IAAI,CAAC;AAC9C,mBAAa,kBAAkB,MAAM,eAAe,QAAQ,MAAM,IAAI;AAAA,IACxE,CAAC;AAAA,EACH;AAEA,gBAAc,QAAQ,CAAC,WAAW;AAChC,kBAAc,IAAI,MAAM;AAAA,EAC1B,CAAC;AACH;"}
1
+ {"version":3,"file":"translations-GFvlFdi5.esm.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["export function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n return Number((total * (sourceValue / 100)).toFixed(2));\n }\n return Number(((sourceValue / total) * 100).toFixed(2));\n}\n\nexport const calculateEntries = (\n\titems: any[],\n\texpenses?: any[],\n\tadditionalDiscountOn?: string,\n\tadditionalDiscountPercentage?: number,\n\tprovidedAdditionalDiscountAmount?: number,\n\troundOff?: boolean,\n\troundOffAmount?: number,\n promotionAmount?: number\n) => {\n\tlet totalQuantity = 0,\n\t\ttotalDiscount = 0,\n\t\ttotalTaxAmount = 0,\n\t\ttotalAmountExcludingAll = 0,\n\t\ttotalAmountIncludingAll = 0,\n\t\tadditionalDiscountAmount = 0,\n\t\ttotalGrossAmount = 0;\n\n\tif (items.length) {\n\t\titems.forEach((item) => {\n\t\t\ttotalQuantity += Number(item?.quantity || 0);\n\t\t\ttotalDiscount += Number(item?.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll +=\n\t\t\t\tNumber(item.quantity || 0) *\n\t\t\t\tNumber(item.rate || 0);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\tif (expenses?.length) {\n\t\texpenses.forEach((item) => {\n\t\t\ttotalQuantity += 1;\n\t\t\ttotalDiscount += Number(item.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll += 1 * Number(item.rate);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\n\tlet finalAmount = totalAmountIncludingAll;\n\n\tif (additionalDiscountOn) {\n\t\tif (additionalDiscountOn === 'Net Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalAmountIncludingAll * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t} else if (additionalDiscountOn === 'Gross Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalGrossAmount * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalAmount =\n\t\tadditionalDiscountOn === 'Gross Amount'\n\t\t\t? Number(totalAmountIncludingAll) - Number(additionalDiscountAmount)\n\t\t\t: Number(totalAmountIncludingAll) - Number(additionalDiscountAmount);\n \n if(Number(promotionAmount)) {\n finalAmount = finalAmount - Number(promotionAmount)\n }\n\n\tconst actualTotalAmount = finalAmount;\n\tif (roundOff && roundOffAmount && Number(roundOffAmount)) {\n\t\tfinalAmount = Math.round(finalAmount / roundOffAmount) * roundOffAmount;\n\t}\n\tconst roundOffDifference = Number(finalAmount) - Number(actualTotalAmount);\n\tconst totalItemsExpenseDiscount = totalDiscount;\n\ttotalDiscount += Number(additionalDiscountAmount);\n\treturn {\n\t\ttotalQuantity,\n\t\ttotalDiscount,\n\t\ttotalItemsExpenseDiscount,\n\t\ttotalTaxAmount,\n\t\ttotalAmountExludingAll: totalAmountExcludingAll,\n\t\ttotalAmountIncludingAll,\n\t\tadditinoalDiscountAmount: additionalDiscountAmount,\n\t\ttotalGrossAmount,\n\t\tactualTotalAmount,\n\t\troundOffDifference,\n\t\tfinalAmount\n\t};\n};","import _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { getV1LanguagesTranslations } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nconst loadedModules = new Set<string>();\n\nfunction nestTranslation(flatObject: any) {\n const nested = {};\n const keys = Object.keys(flatObject);\n const namespaceKeys = new Set<string>();\n\n // Identify all keys that act as parent namespaces for nested objects\n keys.forEach((key) => {\n keys.forEach((otherKey) => {\n if (otherKey.startsWith(key + '.')) {\n namespaceKeys.add(key);\n }\n });\n });\n\n // Nest only the leaf keys to prevent intermediate primitive string collisions\n keys.forEach((key) => {\n if (!namespaceKeys.has(key)) {\n _.set(nested, key, flatObject[key]);\n }\n });\n\n return nested;\n}\n\nexport async function loadModuleTranslations(moduleNames: string[], i18nInstance?: any) {\n const modulesToLoad = moduleNames?.filter(m => !loadedModules.has(m)) || [];\n\n if(!modulesToLoad.length) return;\n\n const filters = `(module.in=[${modulesToLoad?.join(',')}])`;\n\n const response = await getV1LanguagesTranslations({\n filters,\n limit: 9999,\n ...getToken(),\n });\n\n const data = response?.data?.translations || [];\n\n const resources: Record<string, Record<string, string>> = {};\n\n data.forEach((module: any) => {\n module?.fields?.forEach((item: any) => {\n for (const lang in item.translation) {\n if (!resources[lang]) {\n resources[lang] = {};\n }\n resources[lang][item.slug] = item.translation[lang];\n }\n })\n });\n\n \n if (i18nInstance) {\n Object.keys(resources).forEach((lang) => {\n const nested = nestTranslation(resources[lang]);\n i18nInstance.addResourceBundle(lang, 'translation', nested, true, true);\n });\n }\n\n modulesToLoad.forEach((module) => {\n loadedModules.add(module);\n });\n}\n"],"names":["_a"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
2
2
  import { useFieldArray, Controller, useForm, useFormContext } from "react-hook-form";
3
3
  import { P as PropTypes, a as _objectWithoutPropertiesLoose, _ as _extends$1, q as generateUtilityClass, d as capitalize, I as useDefaultProps, v as interopRequireDefaultExports, x as lighten_1, k as darken_1, b as alpha_1 } from "./identifier-CEPqgYF0.esm.js";
4
- import { e as default_1$3, T as Typography, p as useForkRef, f as ownerWindow, l as useEnhancedEffect, d as debounce, i as isMuiElement, j as useAuth, k as useControlled, r as requireCreateSvgIcon } from "./useAuth-BaUSGWbL.esm.js";
5
- import { at as default_1$4, F as DynamicSelect, n as DateTimePicker, D as DatePicker$1, ax as useThemeProps, A as Accordion$1, a8 as Select, C as Checkbox$1, j as ChipOrPlaceholder$1, o as DropdownButton, ak as TitleDropdownButton, S as HeaderCard, af as TabBar, au as default_1$5, a7 as SearchableSelect, h as Chip$1, aj as TimePicker, ao as UploadMedia, a2 as PhoneInput, Y as ModalLoader, X as MaterialTable, z as DynamicSearchSelect, s as DynamicDate, I as DynamicTime, i as ChipGenerator, q as DynamicCheckBox, N as Footer, K as Fallback, T as IconButton$1, ag as TabContext, ah as TabList, ae as Tab, ai as TabPanel, av as default_1$9, a as ActionBar, ad as SwitchBase } from "./android-12-switch-eTZOAHAa.esm.js";
6
- import { g as DynamicInput, w as Typography$1, b as Avatar, a0 as o, p as Modal, d as Button, f as ConfirmPopUp, c as Box$1, s as Toast, a6 as useTheme$1, S as SearchBar, a3 as resolveComponentProps, $ as mergeSlotProps, x as appendOwnerState, P as Paper$1, y as chainPropTypes, e as ButtonBase$1, I as default_1$6, T as TextField$1, t as Tooltip$1, J as default_1$7, E as default_1$8, M as Menu$2, n as MenuItem$1, a4 as useRtl, L as List$1, k as ListItem, m as ListItemText$1, a1 as refType } from "./appbar-DtROOKgm.esm.js";
4
+ import { e as default_1$3, T as Typography, p as useForkRef, f as ownerWindow, l as useEnhancedEffect, d as debounce, i as isMuiElement, j as useAuth, k as useControlled, r as requireCreateSvgIcon } from "./useAuth-DhzbULWV.esm.js";
5
+ import { av as default_1$4, F as DynamicSelect, n as DateTimePicker, D as DatePicker$1, az as useThemeProps, A as Accordion$1, a9 as Select, C as Checkbox$1, j as ChipOrPlaceholder$1, o as DropdownButton, al as TitleDropdownButton, S as HeaderCard, ag as TabBar, aw as default_1$5, a8 as SearchableSelect, h as Chip$1, ak as TimePicker, ap as UploadMedia, a2 as PhoneInput, Y as ModalLoader, X as MaterialTable, z as DynamicSearchSelect, s as DynamicDate, I as DynamicTime, i as ChipGenerator, q as DynamicCheckBox, N as Footer, K as Fallback, T as IconButton$1, ah as TabContext, ai as TabList, af as Tab, aj as TabPanel, ax as default_1$9, a as ActionBar, ae as SwitchBase } from "./android-12-switch-DpJE56Wi.esm.js";
6
+ import { g as DynamicInput, w as Typography$1, b as Avatar, a0 as o, p as Modal, d as Button, f as ConfirmPopUp, c as Box$1, s as Toast, a6 as useTheme$1, S as SearchBar, a3 as resolveComponentProps, $ as mergeSlotProps, x as appendOwnerState, P as Paper$1, y as chainPropTypes, e as ButtonBase$1, I as default_1$6, T as TextField$1, t as Tooltip$1, J as default_1$7, E as default_1$8, M as Menu$2, n as MenuItem$1, a4 as useRtl, L as List$1, k as ListItem, m as ListItemText$1, a1 as refType } from "./appbar-5rP5iXcS.esm.js";
7
7
  import * as React from "react";
8
8
  import React__default, { useState, lazy, useMemo, useRef, useEffect, useCallback, useLayoutEffect, useContext, createElement, createContext, cloneElement } from "react";
9
9
  import DatePicker from "react-datepicker";
@@ -11,10 +11,10 @@ import DatePicker from "react-datepicker";
11
11
  import { C as CalenderIcon, i as images } from "./images-BY6aQF32.esm.js";
12
12
  import { KeyboardArrowLeft, KeyboardArrowRight, Close, ChevronLeft, ChevronRight, Add, AccessTimeRounded, KeyboardArrowUp, KeyboardArrowDown, Clear } from "@mui/icons-material";
13
13
  import { Box, styled as styled$1, TextField, DialogTitle, IconButton, DialogContent, MenuItem, DialogActions, CircularProgress, FormControlLabel, Checkbox as Checkbox$2, ButtonBase, useTheme, useMediaQuery, Drawer, Grid, Tooltip, Collapse, Divider, ButtonGroup, Button as Button$1, Popper, Grow, Paper, ClickAwayListener, Menu as Menu$1, ListItemIcon, ListItemText, OutlinedInput, InputAdornment, Dialog, FormHelperText, Card as Card$1, CardContent as CardContent$1, TableRow, TableCell, TableContainer, Table, TableHead, TableBody } from "@mui/material";
14
- import { u as useLanguage } from "./useLangauge-BUF4epYu.esm.js";
14
+ import { u as useLanguage } from "./useLangauge-CbMaEsdS.esm.js";
15
15
  import dayjs from "dayjs";
16
16
  /* empty css */
17
- import { $ as formatText, aw as getToken, X as formatLabel, a3 as generateFields, ab as getErrorMessage, H as fetchRentalResponseItems, J as fetchRfqItemsByIdForResponse, aS as responseItemDetailsColumns, a0 as formatTimeForPayload, T as formatDateForPayload, aE as mapApiPayload, R as formatDate, r as createdOnAndBy, aY as toFixedWithNumbers } from "./common-Nn4SUfK7.esm.js";
17
+ import { $ as formatText, aw as getToken, X as formatLabel, a3 as generateFields, ab as getErrorMessage, H as fetchRentalResponseItems, J as fetchRfqItemsByIdForResponse, aS as responseItemDetailsColumns, a0 as formatTimeForPayload, T as formatDateForPayload, aE as mapApiPayload, R as formatDate, r as createdOnAndBy, aY as toFixedWithNumbers } from "./common-D59u5rE6.esm.js";
18
18
  import { useTranslation } from "react-i18next";
19
19
  import { g as generateUtilityClasses, c as clsx, b as composeClasses, j as styled, r as reactIsExports, d as createSvgIcon, i as rootShouldForwardProp } from "./notification-DCKWI861.esm.js";
20
20
  import { Sparkles, X, TrendingUp, AlertTriangle, Clock, SendHorizontal, Check, Copy, ChevronUp, ThumbsUp, ThumbsDown, ChevronDown } from "lucide-react";
@@ -22,13 +22,13 @@ import * as d3 from "d3";
22
22
  import { marked } from "marked";
23
23
  import { bC as streamV1AiFeatureChat, aP as getV1User, as as getV1ReportsScheduleReport, ar as getV1ReportsReportList, l as deleteV1ReportsScheduleReportId, br as putV1ReportsUpdateScheduleReportId, bl as postV1ReportsScheduleReport, W as getV1FormBuilder } from "./api-BF3CyrPB.esm.js";
24
24
  import * as Yup from "yup";
25
- import { C as Chip, M as Menu, t as transformTableColumns, d as formateValueByType, r as renderEmptyRowsFallback } from "./form-builder-deconversion-CFtHF1hm.esm.js";
25
+ import { C as Chip, M as Menu, t as transformTableColumns, d as formateValueByType, r as renderEmptyRowsFallback } from "./form-builder-deconversion-DNGMsAEj.esm.js";
26
26
  import { M as MoreIcon, k as Filter, g as Close$1, c as ArrowUpDown, t as RecgtangleIcon, d as CheckBoxIcon$1, T as Trash, j as Export, C as Calendar$1, E as Edit, a as ArrowDown } from "./trash-DDBuxxtn.esm.js";
27
27
  import { enqueueSnackbar, useSnackbar, SnackbarProvider } from "notistack";
28
28
  import { useDispatch } from "react-redux";
29
- import { a as apiHelper, c as useGenericDataFetcher, u as useAppTranslations } from "./ERPUIProvider-CLg_Yo12.esm.js";
29
+ import { a as apiHelper, c as useGenericDataFetcher, u as useAppTranslations } from "./ERPUIProvider-CIzXMsuV.esm.js";
30
30
  import Board from "@asseinfo/react-kanban";
31
- import { a as calculateEntries } from "./translations-DJZgOpfH.esm.js";
31
+ import { a as calculateEntries } from "./translations-GFvlFdi5.esm.js";
32
32
  import FullCalendar from "@fullcalendar/react";
33
33
  import dayGridPlugin from "@fullcalendar/daygrid";
34
34
  import listPlugin from "@fullcalendar/list";
@@ -39,24 +39,24 @@ import timelinePlugin from "@fullcalendar/timeline";
39
39
  import resourceTimelinePlugin from "@fullcalendar/resource-timeline";
40
40
  import { E as Eye, a as EyeOff } from "./tick-DGRjM86F.esm.js";
41
41
  import ReactFlagsSelect from "react-flags-select";
42
- import { useParams, useLocation, useNavigate, Navigate } from "react-router-dom";
42
+ import { useParams, useLocation, useNavigate } from "react-router-dom";
43
43
  import { g as getEntityId, R as RANGE, a as handleCompareDateRangeSync, h as handleCompareDateRange } from "./navigation-utils-ChG-fDRf.esm.js";
44
- import { E as ErpLoader } from "./page-context-BbQNncGA.esm.js";
44
+ import { E as ErpLoader } from "./page-context-BlGcwtdZ.esm.js";
45
45
  import { Gantt, ViewMode } from "gantt-task-react";
46
46
  import { DateRange, Calendar } from "react-date-range";
47
47
  import { v as viewTypes } from "./action-bar-BsXTcYpL.esm.js";
48
48
  import DataEditor, { GridCellKind } from "@glideapps/glide-data-grid";
49
49
  import { useExtraCells } from "@glideapps/glide-data-grid-cells";
50
50
  import { createPortal } from "react-dom";
51
- import { C as Collapse$1 } from "./sidebar-CdhW0PKj.esm.js";
51
+ import { C as Collapse$1 } from "./sidebar-n5_ky6G7.esm.js";
52
52
  import { useMaterialReactTable, MaterialReactTable } from "material-react-table";
53
53
  import _$1 from "lodash";
54
- import { f as usePages, b as useDeepMemo, g as usePermissions, a as useApi } from "./useAccountSetting-CAUDy8rg.esm.js";
54
+ import { f as usePages, b as useDeepMemo, a as useApi } from "./useAccountSetting-D1Ze8r-T.esm.js";
55
55
  import { P as PathnameDocument } from "./modules-DIHbpV-p.esm.js";
56
56
  import { l as PathnameRental, b as PathnameCrm, k as PathnamePurchase, j as PathnameManufacturing, i as PathnameInventory, a as PathnameAccounting } from "./pathname.rental-BKwgwsUV.esm.js";
57
57
  import { c as PathnameUsers } from "./pathname.hrms-CWjGHE-w.esm.js";
58
58
  import { u as useAppDispatch, a as useAppSelector } from "./hooks-Cj9Yhy-E.esm.js";
59
- import { f as fetchCompanies } from "./store-C2XaFCA_.esm.js";
59
+ import { f as fetchCompanies } from "./store-OqHSsVaz.esm.js";
60
60
  import { useDropzone } from "react-dropzone";
61
61
  import { a as auth, g as getApiConfig } from "./api-config-GOys-syK.esm.js";
62
62
  /* empty css */
@@ -937,7 +937,7 @@ DynamicDateTime.propTypes = {
937
937
  min_date: PropTypes.any,
938
938
  max_date: PropTypes.any
939
939
  };
940
- const CustomEditor = lazy(() => import("./custom-editor-B-mleFzm.esm.js"));
940
+ const CustomEditor = lazy(() => import("./custom-editor-UhZu0Svw.esm.js"));
941
941
  const DyanmicTextEditor = ({
942
942
  formControl,
943
943
  name,
@@ -9541,129 +9541,6 @@ MultiSelect.propTypes = {
9541
9541
  selectedLabel: PropTypes.string,
9542
9542
  onChange: PropTypes.func
9543
9543
  };
9544
- const ProtectedRoute = ({
9545
- module,
9546
- action,
9547
- multiModule,
9548
- complexPermissions,
9549
- customPermissionCheck,
9550
- redirectTo = "/403",
9551
- showError = true,
9552
- children
9553
- }) => {
9554
- const permissions = usePermissions();
9555
- const hasPermission = useMemo(() => {
9556
- if (!permissions) {
9557
- return false;
9558
- }
9559
- if (customPermissionCheck) {
9560
- return customPermissionCheck(permissions);
9561
- }
9562
- if (complexPermissions) {
9563
- const { permissions: permList, operator = "AND" } = complexPermissions;
9564
- const results = permList.map(({ module: mod, action: act }) => {
9565
- const modulePerms = _$1.get(permissions, mod, {});
9566
- return modulePerms[act] ?? false;
9567
- });
9568
- return operator === "AND" ? results.every(Boolean) : results.some(Boolean);
9569
- }
9570
- if (multiModule) {
9571
- const { modules, action: act, operator = "OR" } = multiModule;
9572
- const results = modules.map((mod) => {
9573
- const modulePerms = _$1.get(permissions, mod, {});
9574
- return modulePerms[act] ?? false;
9575
- });
9576
- return operator === "AND" ? results.every(Boolean) : results.some(Boolean);
9577
- }
9578
- if (module && action) {
9579
- const modulePerms = _$1.get(permissions, module, {});
9580
- return modulePerms[action] ?? false;
9581
- }
9582
- return false;
9583
- }, [permissions, module, action, multiModule, complexPermissions, customPermissionCheck]);
9584
- const ErrorComponent = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(
9585
- Box,
9586
- {
9587
- sx: {
9588
- display: "flex",
9589
- flexDirection: "column",
9590
- justifyContent: "center",
9591
- alignItems: "center",
9592
- position: "absolute",
9593
- top: "50%",
9594
- left: "50%",
9595
- transform: "translate(-50%, -50%)",
9596
- // Fixed transform values
9597
- gap: 2,
9598
- textAlign: "center",
9599
- p: 3
9600
- },
9601
- children: [
9602
- /* @__PURE__ */ jsxRuntimeExports.jsx(
9603
- Typography,
9604
- {
9605
- type: "h1",
9606
- color: "theme.secondary.900",
9607
- weight: "bold",
9608
- sx: { fontSize: { xs: "4rem", sm: "6rem" } },
9609
- children: "403"
9610
- }
9611
- ),
9612
- /* @__PURE__ */ jsxRuntimeExports.jsx(
9613
- Divider,
9614
- {
9615
- flexItem: true
9616
- }
9617
- ),
9618
- /* @__PURE__ */ jsxRuntimeExports.jsx(
9619
- Typography,
9620
- {
9621
- type: "s3",
9622
- color: "theme.secondary.900",
9623
- weight: "medium",
9624
- children: "Access Denied"
9625
- }
9626
- ),
9627
- /* @__PURE__ */ jsxRuntimeExports.jsx(
9628
- Typography,
9629
- {
9630
- type: "body2",
9631
- color: "theme.secondary.700",
9632
- weight: "regular",
9633
- sx: { mt: 1, maxWidth: "300px" },
9634
- children: "You don't have the required permissions to access this resource."
9635
- }
9636
- )
9637
- ]
9638
- }
9639
- );
9640
- if (!permissions || Object.keys(permissions).length === 0) {
9641
- return null;
9642
- }
9643
- if (hasPermission) {
9644
- return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
9645
- }
9646
- return showError ? /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorComponent, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Navigate, { to: redirectTo, replace: true });
9647
- };
9648
- const createPermissionConfig = {
9649
- // Single module
9650
- single: (module, action) => ({
9651
- module,
9652
- action
9653
- }),
9654
- // Multiple modules with same action
9655
- multiModule: (modules, action, operator = "OR") => ({
9656
- multiModule: { modules, action, operator }
9657
- }),
9658
- // Complex permissions
9659
- complex: (permissions, operator = "AND") => ({
9660
- complexPermissions: { permissions, operator }
9661
- }),
9662
- // Custom function
9663
- custom: (checkFn) => ({
9664
- customPermissionCheck: checkFn
9665
- })
9666
- };
9667
9544
  const ReportButtons = ({ buttons, dropdownMenuButtonData = null, toggleCallback, className, zIndex = 999 }) => {
9668
9545
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className, children: [
9669
9546
  buttons == null ? void 0 : buttons.map((ele) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -16293,26 +16170,24 @@ export {
16293
16170
  MultiLineChart as a0,
16294
16171
  MultiSelect as a1,
16295
16172
  PageLoader as a2,
16296
- ProtectedRoute as a3,
16297
- QuickApprovalModal as a4,
16298
- ReportButtons as a5,
16299
- ReportTable as a6,
16300
- ReportsTitleBar as a7,
16301
- ScheduleReportModal as a8,
16302
- Snackbar as a9,
16303
- SubHeaderDoc as aa,
16304
- TabBarUi as ab,
16305
- TextArea as ac,
16306
- TimeRangePicker as ad,
16307
- UomFieldWrapper as ae,
16308
- Upload as af,
16309
- UserDropdown as ag,
16310
- calculateOptimalSizes as ah,
16311
- createPermissionConfig as ai,
16312
- dynamicFields as aj,
16313
- fields as ak,
16314
- useDynamicLayout as al,
16315
- validator as am,
16173
+ QuickApprovalModal as a3,
16174
+ ReportButtons as a4,
16175
+ ReportTable as a5,
16176
+ ReportsTitleBar as a6,
16177
+ ScheduleReportModal as a7,
16178
+ Snackbar as a8,
16179
+ SubHeaderDoc as a9,
16180
+ TabBarUi as aa,
16181
+ TextArea as ab,
16182
+ TimeRangePicker as ac,
16183
+ UomFieldWrapper as ad,
16184
+ Upload as ae,
16185
+ UserDropdown as af,
16186
+ calculateOptimalSizes as ag,
16187
+ dynamicFields as ah,
16188
+ fields as ai,
16189
+ useDynamicLayout as aj,
16190
+ validator as ak,
16316
16191
  ActivityTag$1 as b,
16317
16192
  AdvancedDynamicLayoutWrapper as c,
16318
16193
  ApprovalWrapper as d,
@@ -16339,4 +16214,4 @@ export {
16339
16214
  DynamicDateTime as y,
16340
16215
  DynamicLayoutWrapper as z
16341
16216
  };
16342
- //# sourceMappingURL=uom-field-wrapper-DKN31prP.esm.js.map
16217
+ //# sourceMappingURL=uom-field-wrapper-CgYTONsG.esm.js.map