@erpsquad/common 1.10.63 → 1.10.64

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 (59) hide show
  1. package/dist/chunks/{ERPUIProvider-PAl_tpW_.js → ERPUIProvider-B_cYjAdF.js} +2 -2
  2. package/dist/chunks/{ERPUIProvider-PAl_tpW_.js.map → ERPUIProvider-B_cYjAdF.js.map} +1 -1
  3. package/dist/chunks/{ERPUIProvider-BBpkVsj9.esm.js → ERPUIProvider-DtSGxSro.esm.js} +2 -2
  4. package/dist/chunks/{ERPUIProvider-BBpkVsj9.esm.js.map → ERPUIProvider-DtSGxSro.esm.js.map} +1 -1
  5. package/dist/chunks/{android-12-switch-WBRkjBCP.js → android-12-switch-CQqq1bod.js} +2 -2
  6. package/dist/chunks/{android-12-switch-WBRkjBCP.js.map → android-12-switch-CQqq1bod.js.map} +1 -1
  7. package/dist/chunks/{android-12-switch-XAicROeO.esm.js → android-12-switch-DMpKRS49.esm.js} +2 -2
  8. package/dist/chunks/{android-12-switch-XAicROeO.esm.js.map → android-12-switch-DMpKRS49.esm.js.map} +1 -1
  9. package/dist/chunks/{appbar-BBLrVA6U.esm.js → appbar-BPTUcuZH.esm.js} +2 -2
  10. package/dist/chunks/appbar-BPTUcuZH.esm.js.map +1 -0
  11. package/dist/chunks/{appbar-17zpqli4.js → appbar-GvhMl2LR.js} +2 -2
  12. package/dist/chunks/appbar-GvhMl2LR.js.map +1 -0
  13. package/dist/chunks/{default-data-Do_oTvMU.js → default-data-C3gd1olF.js} +3 -3
  14. package/dist/chunks/{default-data-Do_oTvMU.js.map → default-data-C3gd1olF.js.map} +1 -1
  15. package/dist/chunks/{default-data-CK-90IND.esm.js → default-data-c7qJW0S-.esm.js} +3 -3
  16. package/dist/chunks/{default-data-CK-90IND.esm.js.map → default-data-c7qJW0S-.esm.js.map} +1 -1
  17. package/dist/chunks/{fullScreen-CzRFGTzg.js → fullScreen-BvWfY0hb.js} +2 -2
  18. package/dist/chunks/{fullScreen-CzRFGTzg.js.map → fullScreen-BvWfY0hb.js.map} +1 -1
  19. package/dist/chunks/{fullScreen-B5e0kvj4.esm.js → fullScreen-CEK_HZnP.esm.js} +2 -2
  20. package/dist/chunks/{fullScreen-B5e0kvj4.esm.js.map → fullScreen-CEK_HZnP.esm.js.map} +1 -1
  21. package/dist/chunks/{sidebar-CGHpNE59.js → sidebar-C3G058lH.js} +2 -2
  22. package/dist/chunks/{sidebar-CGHpNE59.js.map → sidebar-C3G058lH.js.map} +1 -1
  23. package/dist/chunks/{sidebar-CaMjOaT0.esm.js → sidebar-PQ4JubXM.esm.js} +2 -2
  24. package/dist/chunks/{sidebar-CaMjOaT0.esm.js.map → sidebar-PQ4JubXM.esm.js.map} +1 -1
  25. package/dist/chunks/{sidebarScreen-vQN2vT2D.esm.js → sidebarScreen-DC7R30eg.esm.js} +3 -3
  26. package/dist/chunks/{sidebarScreen-vQN2vT2D.esm.js.map → sidebarScreen-DC7R30eg.esm.js.map} +1 -1
  27. package/dist/chunks/{sidebarScreen-BMRTGPNT.js → sidebarScreen-fIj--OhC.js} +3 -3
  28. package/dist/chunks/{sidebarScreen-BMRTGPNT.js.map → sidebarScreen-fIj--OhC.js.map} +1 -1
  29. package/dist/chunks/{translations-D-6zNK2j.esm.js → translations-Df5Mt7kz.esm.js} +3 -3
  30. package/dist/chunks/translations-Df5Mt7kz.esm.js.map +1 -0
  31. package/dist/chunks/{translations-BUtRMBGm.js → translations-DoAAs3Sh.js} +3 -3
  32. package/dist/chunks/translations-DoAAs3Sh.js.map +1 -0
  33. package/dist/chunks/{uom-field-wrapper-xtQt1ONl.js → uom-field-wrapper-BMejbao3.js} +7 -7
  34. package/dist/chunks/uom-field-wrapper-BMejbao3.js.map +1 -0
  35. package/dist/chunks/{uom-field-wrapper-DtW2ZDgN.esm.js → uom-field-wrapper-BlJaV_Jd.esm.js} +7 -7
  36. package/dist/chunks/uom-field-wrapper-BlJaV_Jd.esm.js.map +1 -0
  37. package/dist/chunks/{useAddressContact-Cz2yg1H9.esm.js → useAddressContact-Dm7nV19E.esm.js} +3 -3
  38. package/dist/chunks/{useAddressContact-Cz2yg1H9.esm.js.map → useAddressContact-Dm7nV19E.esm.js.map} +1 -1
  39. package/dist/chunks/{useAddressContact-CpNYDTXT.js → useAddressContact-omyt5axK.js} +3 -3
  40. package/dist/chunks/{useAddressContact-CpNYDTXT.js.map → useAddressContact-omyt5axK.js.map} +1 -1
  41. package/dist/components/index.esm.js +5 -5
  42. package/dist/components/index.js +5 -5
  43. package/dist/hooks/index.esm.js +2 -2
  44. package/dist/hooks/index.js +2 -2
  45. package/dist/index.esm.js +10 -10
  46. package/dist/index.js +10 -10
  47. package/dist/layout/index.esm.js +2 -2
  48. package/dist/layout/index.js +2 -2
  49. package/dist/utils/index.esm.js +1 -1
  50. package/dist/utils/index.js +1 -1
  51. package/dist/views/index.esm.js +5 -5
  52. package/dist/views/index.js +4 -4
  53. package/package.json +1 -1
  54. package/dist/chunks/appbar-17zpqli4.js.map +0 -1
  55. package/dist/chunks/appbar-BBLrVA6U.esm.js.map +0 -1
  56. package/dist/chunks/translations-BUtRMBGm.js.map +0 -1
  57. package/dist/chunks/translations-D-6zNK2j.esm.js.map +0 -1
  58. package/dist/chunks/uom-field-wrapper-DtW2ZDgN.esm.js.map +0 -1
  59. package/dist/chunks/uom-field-wrapper-xtQt1ONl.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
2
2
  import { useMemo, useState, useCallback, useEffect } from "react";
3
- import { u as useTheme, f as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-BBLrVA6U.esm.js";
4
- import { S as Sidebar } from "./sidebar-CaMjOaT0.esm.js";
3
+ import { u as useTheme, f as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-BPTUcuZH.esm.js";
4
+ import { S as Sidebar } from "./sidebar-PQ4JubXM.esm.js";
5
5
  import { d as drawerWidth } from "./mui.constants-BFBzxaiA.esm.js";
6
6
  import { u as useLanguage } from "./useLangauge-Cb9mu6cS.esm.js";
7
7
  import { at as getToken } from "./common-BrAjOeOq.esm.js";
@@ -197,4 +197,4 @@ const SidebarLayout = (props) => {
197
197
  export {
198
198
  SidebarLayout as S
199
199
  };
200
- //# sourceMappingURL=sidebarScreen-vQN2vT2D.esm.js.map
200
+ //# sourceMappingURL=sidebarScreen-DC7R30eg.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarScreen-vQN2vT2D.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":";;;;;;;;;AAkBA,MAAM,mBAAmB;AASlB,MAAM,gBAAgB,CAAC,UAA+B;AAC5D,QAAM,QAAQ,SAAA;AACd,QAAM,EAAE,gBAAA,IAAoB,YAAA;AAC5B,QAAM,QAAQ;AAAA,IACb,OAAM,mDAAiB,eAAc;AAAA,IACrC,CAAC,eAAe;AAAA,EAAA;AAGjB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,IAAI;AACjD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,WAAW,YAAA;AACjB,QAAM,cAAc,QAAQ,MAAM,SAAS,UAAU,CAAC,SAAS,QAAQ,CAAC;AAGxE,QAAM,eAAe,cAAe,CAAC,cAAc;AAGnD,QAAM,mBAAmB,YAAY,MAAM;AAC1C,kBAAc,IAAI;AAClB,iBAAa,KAAK;AAClB,QAAI;AACH,aAAO,aAAa,QAAQ,kBAAkB,MAAM;AAAA,IACrD,SAAS,OAAO;AACf,cAAQ,KAAK,gDAAgD,KAAK;AAAA,IACnE;AAAA,EACD,GAAG,CAAA,CAAE;AAEL,QAAM,oBAAoB,YAAY,MAAM;AAC3C,kBAAc,KAAK;AACnB,WAAO,aAAa,QAAQ,mBAAmB,OAAO;AAAA,EACvD,GAAG,CAAA,CAAE;AAEL,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAc,IAAI;AAEhE,QAAM,cAAc,YAAY,YAAY;;AAE3C,UAAM,YAAY,SAAA;AAClB,UAAM,YAAY;AAAA,MACjB,WAAW,UAAU,SAAS;AAAA,MAC9B,cAAc,OAAO,UAAU,YAAY,CAAC;AAAA,IAAA;AAE7C,UAAM,WAAW,MAAM,cAAc,SAAS;AAE9C,UAAM,OAAQ,cAAa,gDAAkB,SAAlB,mBAAwB,aAAxB,mBAAmC,OAAO;AACrE,uBAAmB,IAAI;AACvB,iBAAa,QAAQ,qBAAqB,KAAK,UAAU,IAAI,CAAC;AAAA,EAC/D,GAAG,CAAA,CAAE;AACL,YAAU,MAAM;AACf,QAAG,2CAAa,SAAS,kBAAkB;AAC1C,kBAAA;AAAA,IACD;AAAA,EACD,GAAG,CAAC,aAAa,WAAW,CAAC;AAE7B,QAAM,CAAC,sBAAsB,uBAAuB,IAAI;AAAA,IACvD,MAAM;AAAA,EAAA;AAGP,YAAU,MAAM;AACf,QAAI,mBAAmB,MAAM,QAAQ,+BAAO,IAAI,GAAG;AAClD,cAAQ,IAAI,qBAAqB,eAAe;AAChD,YAAM,OAAO,MAAM,KAAK,OAAO,CAAC,SAAS;AACxC,YAAI,EAAC,mDAAiB,6BAA4B;AACjD,iBAAO,KAAK,UAAU;AAAA,QACvB,OAAO;AACN,iBAAO;AAAA,QACR;AAAA,MACD,CAAC;AACD,8BAAwB,IAAI;AAAA,IAC7B;AAAA,EACD,GAAG,CAAC,iBAAiB,MAAM,IAAI,CAAC;AAGhC,QAAM,mBAAmB,MAAM;AAC9B,QAAI,CAAC,YAAY;AAEhB,aAAO,aAAa,QAAQ,kBAAkB,MAAM;AAAA,IACrD;AAAA,EACD;AAEA,QAAM,mBAAmB,YAAY,MAAM;AAC1C,QAAI,CAAC,cAAc,eAAe;AACjC,mBAAa,KAAK;AAClB,aAAO,aAAa,QAAQ,kBAAkB,OAAO;AAAA,IACtD;AAAA,EACD,GAAG,CAAC,YAAY,aAAa,CAAC;AAG9B,QAAM,eAAe,YAAY,MAAM;AACtC,QAAI,YAAY;AACf,wBAAA;AAAA,IACD,OAAO;AACN,uBAAA;AAAA,IACD;AAAA,EACD,GAAG,CAAC,YAAY,mBAAmB,gBAAgB,CAAC;AAGpD,YAAU,MAAM;AACf,UAAM,wBAAwB,MAAM;AACnC,UAAI;AACH,YAAI,OAAO,WAAW,eAAe,OAAO,cAAc;AACzD,gBAAM,aAAa,OAAO,aAAa,QAAQ,gBAAgB;AAC/D,gBAAM,eAAe,eAAe;AAEpC,wBAAc,YAAY;AAC1B,uBAAa,KAAK;AAClB,2BAAiB,IAAI;AAAA,QACtB,OAAO;AAEN,wBAAc,IAAI;AAClB,2BAAiB,IAAI;AAAA,QACtB;AAAA,MACD,SAAS,OAAO;AACf,gBAAQ,KAAK,kDAAkD,KAAK;AAEpE,sBAAc,IAAI;AAClB,yBAAiB,IAAI;AAAA,MACtB;AAAA,IACD;AAEA,0BAAA;AAAA,EACD,GAAG,CAAA,CAAE;AAGL,YAAU,MAAM;AACf,UAAM,oBAAoB,MAAM;AAC/B,UAAI;AACH,YAAI,OAAO,WAAW,eAAe,OAAO,cAAc;AACzD,gBAAM,aAAa,OAAO,aAAa,QAAQ,gBAAgB;AAC/D,gBAAM,eAAe,eAAe;AAEpC,cAAI,iBAAiB,YAAY;AAChC,0BAAc,YAAY;AAC1B,yBAAa,KAAK;AAAA,UACnB;AAAA,QACD;AAAA,MACD,SAAS,OAAO;AACf,gBAAQ,KAAK,gDAAgD,KAAK;AAAA,MACnE;AAAA,IACD;AAEA,WAAO,iBAAiB,SAAS,iBAAiB;AAElD,WAAO,MAAM;AACZ,aAAO,oBAAoB,SAAS,iBAAiB;AAAA,IACtD;AAAA,EACD,GAAG,CAAC,UAAU,CAAC;AAGf,MAAI,CAAC,eAAe;AACnB,WACCA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACA,IAAI;AAAA,UACH,SAAS;AAAA,UACT,WAAW;AAAA,UACX,YAAY;AAAA,UACZ,gBAAgB;AAAA,QAAA;AAAA,QAGjB,UAAAA,kCAAAA,IAAC,OAAI,UAAA,aAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAGlB;AAEA,SACCC,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACA,IAAI;AAAA,QACH,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW,QAAQ,QAAQ;AAAA,MAAA;AAAA,MAE5B,UAAA;AAAA,QAAAD,kCAAAA;AAAAA,UAACE;AAAAA,UAAA;AAAA,YACA,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACP;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGDF,kCAAAA;AAAAA,UAACG;AAAAA,UAAA;AAAA,YACA,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACP;AAAA,YACA,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAGtBH,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACC,UAAA,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,8CAEP,SAAA,CAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"sidebarScreen-DC7R30eg.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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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("./jsx-runtime-B6vEU3CM.js");
3
3
  const React = require("react");
4
- const appbar = require("./appbar-17zpqli4.js");
5
- const sidebar = require("./sidebar-CGHpNE59.js");
4
+ const appbar = require("./appbar-GvhMl2LR.js");
5
+ const sidebar = require("./sidebar-C3G058lH.js");
6
6
  const mui_constants = require("./mui.constants-CJEIUmWO.js");
7
7
  const useLangauge = require("./useLangauge-C5Vve5I7.js");
8
8
  const common = require("./common-Bj4EONF-.js");
@@ -196,4 +196,4 @@ const SidebarLayout = (props) => {
196
196
  );
197
197
  };
198
198
  exports.SidebarLayout = SidebarLayout;
199
- //# sourceMappingURL=sidebarScreen-BMRTGPNT.js.map
199
+ //# sourceMappingURL=sidebarScreen-fIj--OhC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarScreen-BMRTGPNT.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
+ {"version":3,"file":"sidebarScreen-fIj--OhC.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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"}
@@ -11,11 +11,11 @@ function calculateAdditionalDiscountCrossValue(sourceValue, sourceField, total,
11
11
  if (total <= 0 || sourceValue <= 0) return 0;
12
12
  if (sourceField === "percentage") {
13
13
  const result2 = total * (sourceValue / 100);
14
- if (((_a = getApiConfigSafe()) == null ? void 0 : _a.countryEnv) === "arabia") return result2;
14
+ if (((_a = getApiConfigSafe()) == null ? void 0 : _a.countryEnv) === "ksa") return result2;
15
15
  return useTruncation ? truncateDecimals(result2, decimals) : Number(result2.toFixed(decimals));
16
16
  }
17
17
  const result = sourceValue / total * 100;
18
- if (((_b = getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "arabia") return result;
18
+ if (((_b = getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "ksa") return result;
19
19
  return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));
20
20
  }
21
21
  const calculateEntries = (items, expenses, additionalDiscountOn, additionalDiscountPercentage, providedAdditionalDiscountAmount, roundOff, roundOffAmount, promotionAmount, decimals = 2, useTruncation = false) => {
@@ -143,4 +143,4 @@ export {
143
143
  loadModuleTranslations as l,
144
144
  truncateDecimals as t
145
145
  };
146
- //# sourceMappingURL=translations-D-6zNK2j.esm.js.map
146
+ //# sourceMappingURL=translations-Df5Mt7kz.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-Df5Mt7kz.esm.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["import { getApiConfigSafe } from './api-config';\n\nexport const truncateDecimals = (num: number, decimals: number = 4) => {\n const factor = Math.pow(10, decimals);\n\treturn Math.round(num * factor) / factor;\n};\n\nexport function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number,\n decimals: number = 2,\n useTruncation: boolean = false\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n const result = total * (sourceValue / 100);\n if (getApiConfigSafe()?.countryEnv === 'ksa') return result;\n return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));\n }\n const result = (sourceValue / total) * 100;\n if (getApiConfigSafe()?.countryEnv === 'ksa') return result;\n return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));\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 decimals: number = 2,\n useTruncation: boolean = false\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":["result","_a"],"mappings":"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"}
@@ -12,11 +12,11 @@ function calculateAdditionalDiscountCrossValue(sourceValue, sourceField, total,
12
12
  if (total <= 0 || sourceValue <= 0) return 0;
13
13
  if (sourceField === "percentage") {
14
14
  const result2 = total * (sourceValue / 100);
15
- if (((_a = apiConfig.getApiConfigSafe()) == null ? void 0 : _a.countryEnv) === "arabia") return result2;
15
+ if (((_a = apiConfig.getApiConfigSafe()) == null ? void 0 : _a.countryEnv) === "ksa") return result2;
16
16
  return useTruncation ? truncateDecimals(result2, decimals) : Number(result2.toFixed(decimals));
17
17
  }
18
18
  const result = sourceValue / total * 100;
19
- if (((_b = apiConfig.getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "arabia") return result;
19
+ if (((_b = apiConfig.getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "ksa") return result;
20
20
  return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));
21
21
  }
22
22
  const calculateEntries = (items, expenses, additionalDiscountOn, additionalDiscountPercentage, providedAdditionalDiscountAmount, roundOff, roundOffAmount, promotionAmount, decimals = 2, useTruncation = false) => {
@@ -142,4 +142,4 @@ exports.calculateAdditionalDiscountCrossValue = calculateAdditionalDiscountCross
142
142
  exports.calculateEntries = calculateEntries;
143
143
  exports.loadModuleTranslations = loadModuleTranslations;
144
144
  exports.truncateDecimals = truncateDecimals;
145
- //# sourceMappingURL=translations-BUtRMBGm.js.map
145
+ //# sourceMappingURL=translations-DoAAs3Sh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-DoAAs3Sh.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["import { getApiConfigSafe } from './api-config';\n\nexport const truncateDecimals = (num: number, decimals: number = 4) => {\n const factor = Math.pow(10, decimals);\n\treturn Math.round(num * factor) / factor;\n};\n\nexport function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number,\n decimals: number = 2,\n useTruncation: boolean = false\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n const result = total * (sourceValue / 100);\n if (getApiConfigSafe()?.countryEnv === 'ksa') return result;\n return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));\n }\n const result = (sourceValue / total) * 100;\n if (getApiConfigSafe()?.countryEnv === 'ksa') return result;\n return useTruncation ? truncateDecimals(result, decimals) : Number(result.toFixed(decimals));\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 decimals: number = 2,\n useTruncation: boolean = false\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":["result","getApiConfigSafe","getV1LanguagesTranslations","getToken","module","_a"],"mappings":"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"}
@@ -3,8 +3,8 @@ const jsxRuntime = require("./jsx-runtime-B6vEU3CM.js");
3
3
  const reactHookForm = require("react-hook-form");
4
4
  const identifier = require("./identifier-CaTy7Osd.js");
5
5
  const useAuth = require("./useAuth-Boeqeg4o.js");
6
- const android12Switch = require("./android-12-switch-WBRkjBCP.js");
7
- const appbar = require("./appbar-17zpqli4.js");
6
+ const android12Switch = require("./android-12-switch-CQqq1bod.js");
7
+ const appbar = require("./appbar-GvhMl2LR.js");
8
8
  const React = require("react");
9
9
  const DatePicker = require("react-datepicker");
10
10
  ;/* empty css */
@@ -28,9 +28,9 @@ const formBuilderDeconversion = require("./form-builder-deconversion-CtfddwVS.js
28
28
  const radioButton = require("./radio-button-Z203yCd7.js");
29
29
  const notistack = require("notistack");
30
30
  const reactRedux = require("react-redux");
31
- const ERPUIProvider = require("./ERPUIProvider-PAl_tpW_.js");
31
+ const ERPUIProvider = require("./ERPUIProvider-B_cYjAdF.js");
32
32
  const Board = require("@asseinfo/react-kanban");
33
- const translations = require("./translations-BUtRMBGm.js");
33
+ const translations = require("./translations-DoAAs3Sh.js");
34
34
  const FullCalendar = require("@fullcalendar/react");
35
35
  const dayGridPlugin = require("@fullcalendar/daygrid");
36
36
  const listPlugin = require("@fullcalendar/list");
@@ -51,7 +51,7 @@ const actionBar = require("./action-bar-DMv6sqDP.js");
51
51
  const DataEditor = require("@glideapps/glide-data-grid");
52
52
  const glideDataGridCells = require("@glideapps/glide-data-grid-cells");
53
53
  const ReactDOM = require("react-dom");
54
- const sidebar = require("./sidebar-CGHpNE59.js");
54
+ const sidebar = require("./sidebar-C3G058lH.js");
55
55
  const materialReactTable = require("material-react-table");
56
56
  const trash = require("./trash-C63VDmtW.js");
57
57
  const _$1 = require("lodash");
@@ -3501,7 +3501,7 @@ const CalculationSummary = ({
3501
3501
  var _a, _b;
3502
3502
  const { user } = useAuth.useAuth();
3503
3503
  const defaultCurrencySymbol = currencySymbol || ((_a = user == null ? void 0 : user.currency_data) == null ? void 0 : _a.symbol) || "";
3504
- const isArabia = ((_b = apiConfig.getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "arabia";
3504
+ const isArabia = ((_b = apiConfig.getApiConfigSafe()) == null ? void 0 : _b.countryEnv) === "ksa";
3505
3505
  const finalDecimals = isArabia ? 4 : decimals;
3506
3506
  const finalUseTruncation = isArabia ? true : useTruncation;
3507
3507
  const [itemsData, setItemsData] = React.useState({
@@ -16832,4 +16832,4 @@ exports.dynamicFields = dynamicFields;
16832
16832
  exports.fields = fields;
16833
16833
  exports.useDynamicLayout = useDynamicLayout;
16834
16834
  exports.validator = validator;
16835
- //# sourceMappingURL=uom-field-wrapper-xtQt1ONl.js.map
16835
+ //# sourceMappingURL=uom-field-wrapper-BMejbao3.js.map