@erpsquad/common 1.10.17 → 1.10.19

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/{android-12-switch-Nw977vtV.esm.js → android-12-switch-BJGIDwYR.esm.js} +131 -80
  2. package/dist/chunks/android-12-switch-BJGIDwYR.esm.js.map +1 -0
  3. package/dist/chunks/{android-12-switch-DQG8As1Y.js → android-12-switch-PEYCUiaq.js} +131 -80
  4. package/dist/chunks/android-12-switch-PEYCUiaq.js.map +1 -0
  5. package/dist/chunks/{appbar-CGe_OPDv.js → appbar-rUKxg-G7.js} +3 -2
  6. package/dist/chunks/{appbar-CGe_OPDv.js.map → appbar-rUKxg-G7.js.map} +1 -1
  7. package/dist/chunks/{appbar-KrkQiVAV.esm.js → appbar-zELMJiqH.esm.js} +3 -2
  8. package/dist/chunks/{appbar-KrkQiVAV.esm.js.map → appbar-zELMJiqH.esm.js.map} +1 -1
  9. package/dist/chunks/{default-data-pmy2guR7.js → default-data-COIp_txP.js} +4 -4
  10. package/dist/chunks/{default-data-pmy2guR7.js.map → default-data-COIp_txP.js.map} +1 -1
  11. package/dist/chunks/{default-data-Dt8HLhhG.esm.js → default-data-Ceg98EuN.esm.js} +4 -4
  12. package/dist/chunks/{default-data-Dt8HLhhG.esm.js.map → default-data-Ceg98EuN.esm.js.map} +1 -1
  13. package/dist/chunks/{form-builder-deconversion-DLGJdpXM.esm.js → form-builder-deconversion-B4OuGvBB.esm.js} +6 -2
  14. package/dist/chunks/form-builder-deconversion-B4OuGvBB.esm.js.map +1 -0
  15. package/dist/chunks/{form-builder-deconversion-D5-FPTEJ.js → form-builder-deconversion-BcmOEnG9.js} +6 -2
  16. package/dist/chunks/form-builder-deconversion-BcmOEnG9.js.map +1 -0
  17. package/dist/chunks/{fullScreen-8kPj1_fu.esm.js → fullScreen-BZgvFEKI.esm.js} +2 -2
  18. package/dist/chunks/{fullScreen-8kPj1_fu.esm.js.map → fullScreen-BZgvFEKI.esm.js.map} +1 -1
  19. package/dist/chunks/{fullScreen-DZWgEHUi.js → fullScreen-CSJaBvxv.js} +2 -2
  20. package/dist/chunks/{fullScreen-DZWgEHUi.js.map → fullScreen-CSJaBvxv.js.map} +1 -1
  21. package/dist/chunks/{sidebar-BeSjxulx.esm.js → sidebar-BXrUlb1O.esm.js} +2 -2
  22. package/dist/chunks/{sidebar-BeSjxulx.esm.js.map → sidebar-BXrUlb1O.esm.js.map} +1 -1
  23. package/dist/chunks/{sidebar-DKHIqaS0.js → sidebar-BbJUAEIV.js} +2 -2
  24. package/dist/chunks/{sidebar-DKHIqaS0.js.map → sidebar-BbJUAEIV.js.map} +1 -1
  25. package/dist/chunks/{sidebarScreen-Ca2YjEI4.js → sidebarScreen-DnI42_mr.js} +3 -3
  26. package/dist/chunks/{sidebarScreen-Ca2YjEI4.js.map → sidebarScreen-DnI42_mr.js.map} +1 -1
  27. package/dist/chunks/{sidebarScreen-DQWQqmvK.esm.js → sidebarScreen-NlMW1w_l.esm.js} +3 -3
  28. package/dist/chunks/{sidebarScreen-DQWQqmvK.esm.js.map → sidebarScreen-NlMW1w_l.esm.js.map} +1 -1
  29. package/dist/chunks/{uom-field-wrapper-DjrmGUaV.js → uom-field-wrapper-BsTblyVT.js} +91 -15
  30. package/dist/chunks/uom-field-wrapper-BsTblyVT.js.map +1 -0
  31. package/dist/chunks/{uom-field-wrapper-Db0m4mhG.esm.js → uom-field-wrapper-D0YgJsP5.esm.js} +91 -15
  32. package/dist/chunks/uom-field-wrapper-D0YgJsP5.esm.js.map +1 -0
  33. package/dist/components/department-add-modal.d.ts +8 -1
  34. package/dist/components/designation-add-modal.d.ts +9 -1
  35. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select.d.ts +1 -0
  36. package/dist/components/index.esm.js +5 -5
  37. package/dist/components/index.js +5 -5
  38. package/dist/components/team-add-modal.d.ts +7 -1
  39. package/dist/hooks/useSetDefaultConfig.d.ts +2 -1
  40. package/dist/index.esm.js +8 -8
  41. package/dist/index.js +8 -8
  42. package/dist/layout/index.esm.js +2 -2
  43. package/dist/layout/index.js +2 -2
  44. package/dist/src/components/department-add-modal.d.ts +8 -1
  45. package/dist/src/components/designation-add-modal.d.ts +9 -1
  46. package/dist/src/components/form-control/form-builder/form-builder-element/dynamic-select.d.ts +1 -0
  47. package/dist/src/components/team-add-modal.d.ts +7 -1
  48. package/dist/src/hooks/useSetDefaultConfig.d.ts +2 -1
  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/android-12-switch-DQG8As1Y.js.map +0 -1
  55. package/dist/chunks/android-12-switch-Nw977vtV.esm.js.map +0 -1
  56. package/dist/chunks/form-builder-deconversion-D5-FPTEJ.js.map +0 -1
  57. package/dist/chunks/form-builder-deconversion-DLGJdpXM.esm.js.map +0 -1
  58. package/dist/chunks/uom-field-wrapper-Db0m4mhG.esm.js.map +0 -1
  59. package/dist/chunks/uom-field-wrapper-DjrmGUaV.js.map +0 -1
@@ -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-CGe_OPDv.js");
5
- const sidebar = require("./sidebar-DKHIqaS0.js");
4
+ const appbar = require("./appbar-rUKxg-G7.js");
5
+ const sidebar = require("./sidebar-BbJUAEIV.js");
6
6
  const mui_constants = require("./mui.constants-CJEIUmWO.js");
7
7
  const useLangauge = require("./useLangauge-CEhShUKV.js");
8
8
  const common = require("./common-BFmedrzX.js");
@@ -197,4 +197,4 @@ const SidebarLayout = (props) => {
197
197
  );
198
198
  };
199
199
  exports.SidebarLayout = SidebarLayout;
200
- //# sourceMappingURL=sidebarScreen-Ca2YjEI4.js.map
200
+ //# sourceMappingURL=sidebarScreen-DnI42_mr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarScreen-Ca2YjEI4.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport AppBar from '../../components/appbar/appbar';\r\nimport SideBar from '../../components/sidebar/sidebar';\r\nimport ActivityArea from '../../components/activityArea/activityArea';\r\nimport ChatBot from '../../components/chat-bot/chat-bot';\r\n\r\nimport drawerWidth from '../../constants/mui.constants';\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from '../../hooks/useLangauge';\r\nimport { getToken } from '@/utils';\r\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\nexport interface ISidebarLayoutProps {\r\n\tmenu: any[];\r\n\tchildren: React.ReactNode;\r\n\tdashboardPath?: string;\r\n}\r\n\r\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\r\n\tconst theme = useTheme();\r\n\tconst { currentLanguage } = useLanguage();\r\n\tconst isRtl = useMemo(\r\n\t\t() => currentLanguage?.direction === 'rtl',\r\n\t\t[currentLanguage]\r\n\t);\r\n\t// Enhanced state management\r\n\tconst [forcedOpen, setForcedOpen] = useState(true);\r\n\tconst [hoverOpen, setHoverOpen] = useState(false);\r\n\tconst [isInitialized, setIsInitialized] = useState(false);\r\n\tconst location = useLocation();\r\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\r\n\r\n\t// Memoized computed state for actual drawer open status\r\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n\t// Enhanced drawer control functions with better state management\r\n\tconst handleDrawerOpen = useCallback(() => {\r\n\t\tsetForcedOpen(true);\r\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\r\n\t\ttry {\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleDrawerClose = useCallback(() => {\r\n\t\tsetForcedOpen(false);\r\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\r\n\t}, []);\r\n\r\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\r\n\r\n\tconst getSettings = useCallback(async () => {\r\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n\t\tconst tokenData = getToken();\r\n\t\tconst apiParams = {\r\n\t\t\t'x-token': tokenData['x-token'],\r\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\r\n\t\t};\r\n\t\tconst response = await getV1Settings(apiParams);\r\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n\t\tsetWipSettingsData(data);\r\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif(curPathName?.includes('manufacturing')) {\r\n\t\t\tgetSettings();\r\n\t\t}\r\n\t}, [getSettings, curPathName]);\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\r\n\t\tprops.menu\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\r\n\t\t\t\t\treturn item.label !== 'Plans';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn item;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetManufacturingSubmenu(_new);\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu]);\r\n\t// const module_type = '';\r\n\r\n\tconst handleMouseEnter = () => {\r\n\t\tif (!forcedOpen) {\r\n\t\t\tsetOpen(true);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleMouseLeave = useCallback(() => {\r\n\t\tif (!forcedOpen && isInitialized) {\r\n\t\t\tsetHoverOpen(false);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n\t\t}\r\n\t}, [forcedOpen, isInitialized]);\r\n\r\n\t// Toggle function for programmatic control\r\n\tconst toggleDrawer = useCallback(() => {\r\n\t\tif (forcedOpen) {\r\n\t\t\thandleDrawerClose();\r\n\t\t} else {\r\n\t\t\thandleDrawerOpen();\r\n\t\t}\r\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n\t// Enhanced initialization with error handling\r\n\tuseEffect(() => {\r\n\t\tconst initializeDrawerState = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Fallback for environments without localStorage\r\n\t\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\r\n\t\t\t\t// Fallback to default state\r\n\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\tsetIsInitialized(true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tinitializeDrawerState();\r\n\t}, []);\r\n\r\n\t// Handle window focus to sync state across tabs\r\n\tuseEffect(() => {\r\n\t\tconst handleWindowFocus = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\r\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\t\tsetHoverOpen(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('focus', handleWindowFocus);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\r\n\t\t};\r\n\t}, [forcedOpen]);\r\n\r\n\t// Prevent rendering until initialization is complete\r\n\tif (!isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\tminHeight: '100vh',\r\n\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\tjustifyContent: 'center'\r\n\t\t\t\t}}>\r\n\t\t\t\t{/* Optional loading indicator */}\r\n\t\t\t\t<Box>Loading...</Box>\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Box\r\n\t\t\tsx={{\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\tminHeight: '100vh',\r\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\r\n\t\t\t}}>\r\n\t\t\t<AppBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t/>\r\n\r\n\t\t\t<SideBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\ttheme={theme}\r\n\t\t\t\tmenu={manufacturingSubmenu}\r\n\t\t\t\thandleMouseEnter={handleMouseEnter}\r\n\t\t\t\thandleMouseLeave={handleMouseLeave}\r\n\t\t\t\tisInitialized={isInitialized}\r\n\t\t\t\tdashboardPath={props.dashboardPath}\r\n\t\t\t/>\r\n\r\n\t\t\t<ActivityArea\r\n\t\t\t\tisDrawerOpen={isDrawerOpen}\r\n\t\t\t\tdrawerWidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}>\r\n\t\t\t\t{props.children}\r\n\t\t\t</ActivityArea>\r\n\t\t\t<ChatBot />\r\n\t\t</Box>\r\n\t);\r\n};\r\n\r\nexport default SidebarLayout;\r\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-DnI42_mr.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport AppBar from '../../components/appbar/appbar';\r\nimport SideBar from '../../components/sidebar/sidebar';\r\nimport ActivityArea from '../../components/activityArea/activityArea';\r\nimport ChatBot from '../../components/chat-bot/chat-bot';\r\n\r\nimport drawerWidth from '../../constants/mui.constants';\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from '../../hooks/useLangauge';\r\nimport { getToken } from '@/utils';\r\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\nexport interface ISidebarLayoutProps {\r\n\tmenu: any[];\r\n\tchildren: React.ReactNode;\r\n\tdashboardPath?: string;\r\n}\r\n\r\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\r\n\tconst theme = useTheme();\r\n\tconst { currentLanguage } = useLanguage();\r\n\tconst isRtl = useMemo(\r\n\t\t() => currentLanguage?.direction === 'rtl',\r\n\t\t[currentLanguage]\r\n\t);\r\n\t// Enhanced state management\r\n\tconst [forcedOpen, setForcedOpen] = useState(true);\r\n\tconst [hoverOpen, setHoverOpen] = useState(false);\r\n\tconst [isInitialized, setIsInitialized] = useState(false);\r\n\tconst location = useLocation();\r\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\r\n\r\n\t// Memoized computed state for actual drawer open status\r\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n\t// Enhanced drawer control functions with better state management\r\n\tconst handleDrawerOpen = useCallback(() => {\r\n\t\tsetForcedOpen(true);\r\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\r\n\t\ttry {\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleDrawerClose = useCallback(() => {\r\n\t\tsetForcedOpen(false);\r\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\r\n\t}, []);\r\n\r\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\r\n\r\n\tconst getSettings = useCallback(async () => {\r\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n\t\tconst tokenData = getToken();\r\n\t\tconst apiParams = {\r\n\t\t\t'x-token': tokenData['x-token'],\r\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\r\n\t\t};\r\n\t\tconst response = await getV1Settings(apiParams);\r\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n\t\tsetWipSettingsData(data);\r\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif(curPathName?.includes('manufacturing')) {\r\n\t\t\tgetSettings();\r\n\t\t}\r\n\t}, [getSettings, curPathName]);\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\r\n\t\tprops.menu\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\r\n\t\t\t\t\treturn item.label !== 'Plans';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn item;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetManufacturingSubmenu(_new);\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu]);\r\n\t// const module_type = '';\r\n\r\n\tconst handleMouseEnter = () => {\r\n\t\tif (!forcedOpen) {\r\n\t\t\tsetOpen(true);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleMouseLeave = useCallback(() => {\r\n\t\tif (!forcedOpen && isInitialized) {\r\n\t\t\tsetHoverOpen(false);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n\t\t}\r\n\t}, [forcedOpen, isInitialized]);\r\n\r\n\t// Toggle function for programmatic control\r\n\tconst toggleDrawer = useCallback(() => {\r\n\t\tif (forcedOpen) {\r\n\t\t\thandleDrawerClose();\r\n\t\t} else {\r\n\t\t\thandleDrawerOpen();\r\n\t\t}\r\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n\t// Enhanced initialization with error handling\r\n\tuseEffect(() => {\r\n\t\tconst initializeDrawerState = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Fallback for environments without localStorage\r\n\t\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\r\n\t\t\t\t// Fallback to default state\r\n\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\tsetIsInitialized(true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tinitializeDrawerState();\r\n\t}, []);\r\n\r\n\t// Handle window focus to sync state across tabs\r\n\tuseEffect(() => {\r\n\t\tconst handleWindowFocus = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\r\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\t\tsetHoverOpen(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('focus', handleWindowFocus);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\r\n\t\t};\r\n\t}, [forcedOpen]);\r\n\r\n\t// Prevent rendering until initialization is complete\r\n\tif (!isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\tminHeight: '100vh',\r\n\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\tjustifyContent: 'center'\r\n\t\t\t\t}}>\r\n\t\t\t\t{/* Optional loading indicator */}\r\n\t\t\t\t<Box>Loading...</Box>\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Box\r\n\t\t\tsx={{\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\tminHeight: '100vh',\r\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\r\n\t\t\t}}>\r\n\t\t\t<AppBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t/>\r\n\r\n\t\t\t<SideBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\ttheme={theme}\r\n\t\t\t\tmenu={manufacturingSubmenu}\r\n\t\t\t\thandleMouseEnter={handleMouseEnter}\r\n\t\t\t\thandleMouseLeave={handleMouseLeave}\r\n\t\t\t\tisInitialized={isInitialized}\r\n\t\t\t\tdashboardPath={props.dashboardPath}\r\n\t\t\t/>\r\n\r\n\t\t\t<ActivityArea\r\n\t\t\t\tisDrawerOpen={isDrawerOpen}\r\n\t\t\t\tdrawerWidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}>\r\n\t\t\t\t{props.children}\r\n\t\t\t</ActivityArea>\r\n\t\t\t<ChatBot />\r\n\t\t</Box>\r\n\t);\r\n};\r\n\r\nexport default SidebarLayout;\r\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 { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
2
2
  import { useMemo, useState, useCallback, useEffect } from "react";
3
- import { u as useTheme, g as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-KrkQiVAV.esm.js";
4
- import { S as Sidebar } from "./sidebar-BeSjxulx.esm.js";
3
+ import { u as useTheme, g as Box, a as AppBarWrapper, A as ActivityArea, C as ChatBot } from "./appbar-zELMJiqH.esm.js";
4
+ import { S as Sidebar } from "./sidebar-BXrUlb1O.esm.js";
5
5
  import { d as drawerWidth } from "./mui.constants-BFBzxaiA.esm.js";
6
6
  import { u as useLanguage } from "./useLangauge-DBLsTxEG.esm.js";
7
7
  import { ar as getToken } from "./common-Cv12BqWf.esm.js";
@@ -198,4 +198,4 @@ const SidebarLayout = (props) => {
198
198
  export {
199
199
  SidebarLayout as S
200
200
  };
201
- //# sourceMappingURL=sidebarScreen-DQWQqmvK.esm.js.map
201
+ //# sourceMappingURL=sidebarScreen-NlMW1w_l.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarScreen-DQWQqmvK.esm.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport AppBar from '../../components/appbar/appbar';\r\nimport SideBar from '../../components/sidebar/sidebar';\r\nimport ActivityArea from '../../components/activityArea/activityArea';\r\nimport ChatBot from '../../components/chat-bot/chat-bot';\r\n\r\nimport drawerWidth from '../../constants/mui.constants';\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from '../../hooks/useLangauge';\r\nimport { getToken } from '@/utils';\r\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\nexport interface ISidebarLayoutProps {\r\n\tmenu: any[];\r\n\tchildren: React.ReactNode;\r\n\tdashboardPath?: string;\r\n}\r\n\r\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\r\n\tconst theme = useTheme();\r\n\tconst { currentLanguage } = useLanguage();\r\n\tconst isRtl = useMemo(\r\n\t\t() => currentLanguage?.direction === 'rtl',\r\n\t\t[currentLanguage]\r\n\t);\r\n\t// Enhanced state management\r\n\tconst [forcedOpen, setForcedOpen] = useState(true);\r\n\tconst [hoverOpen, setHoverOpen] = useState(false);\r\n\tconst [isInitialized, setIsInitialized] = useState(false);\r\n\tconst location = useLocation();\r\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\r\n\r\n\t// Memoized computed state for actual drawer open status\r\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n\t// Enhanced drawer control functions with better state management\r\n\tconst handleDrawerOpen = useCallback(() => {\r\n\t\tsetForcedOpen(true);\r\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\r\n\t\ttry {\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleDrawerClose = useCallback(() => {\r\n\t\tsetForcedOpen(false);\r\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\r\n\t}, []);\r\n\r\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\r\n\r\n\tconst getSettings = useCallback(async () => {\r\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n\t\tconst tokenData = getToken();\r\n\t\tconst apiParams = {\r\n\t\t\t'x-token': tokenData['x-token'],\r\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\r\n\t\t};\r\n\t\tconst response = await getV1Settings(apiParams);\r\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n\t\tsetWipSettingsData(data);\r\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif(curPathName?.includes('manufacturing')) {\r\n\t\t\tgetSettings();\r\n\t\t}\r\n\t}, [getSettings, curPathName]);\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\r\n\t\tprops.menu\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\r\n\t\t\t\t\treturn item.label !== 'Plans';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn item;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetManufacturingSubmenu(_new);\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu]);\r\n\t// const module_type = '';\r\n\r\n\tconst handleMouseEnter = () => {\r\n\t\tif (!forcedOpen) {\r\n\t\t\tsetOpen(true);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleMouseLeave = useCallback(() => {\r\n\t\tif (!forcedOpen && isInitialized) {\r\n\t\t\tsetHoverOpen(false);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n\t\t}\r\n\t}, [forcedOpen, isInitialized]);\r\n\r\n\t// Toggle function for programmatic control\r\n\tconst toggleDrawer = useCallback(() => {\r\n\t\tif (forcedOpen) {\r\n\t\t\thandleDrawerClose();\r\n\t\t} else {\r\n\t\t\thandleDrawerOpen();\r\n\t\t}\r\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n\t// Enhanced initialization with error handling\r\n\tuseEffect(() => {\r\n\t\tconst initializeDrawerState = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Fallback for environments without localStorage\r\n\t\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\r\n\t\t\t\t// Fallback to default state\r\n\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\tsetIsInitialized(true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tinitializeDrawerState();\r\n\t}, []);\r\n\r\n\t// Handle window focus to sync state across tabs\r\n\tuseEffect(() => {\r\n\t\tconst handleWindowFocus = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\r\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\t\tsetHoverOpen(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('focus', handleWindowFocus);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\r\n\t\t};\r\n\t}, [forcedOpen]);\r\n\r\n\t// Prevent rendering until initialization is complete\r\n\tif (!isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\tminHeight: '100vh',\r\n\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\tjustifyContent: 'center'\r\n\t\t\t\t}}>\r\n\t\t\t\t{/* Optional loading indicator */}\r\n\t\t\t\t<Box>Loading...</Box>\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Box\r\n\t\t\tsx={{\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\tminHeight: '100vh',\r\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\r\n\t\t\t}}>\r\n\t\t\t<AppBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t/>\r\n\r\n\t\t\t<SideBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\ttheme={theme}\r\n\t\t\t\tmenu={manufacturingSubmenu}\r\n\t\t\t\thandleMouseEnter={handleMouseEnter}\r\n\t\t\t\thandleMouseLeave={handleMouseLeave}\r\n\t\t\t\tisInitialized={isInitialized}\r\n\t\t\t\tdashboardPath={props.dashboardPath}\r\n\t\t\t/>\r\n\r\n\t\t\t<ActivityArea\r\n\t\t\t\tisDrawerOpen={isDrawerOpen}\r\n\t\t\t\tdrawerWidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}>\r\n\t\t\t\t{props.children}\r\n\t\t\t</ActivityArea>\r\n\t\t\t<ChatBot />\r\n\t\t</Box>\r\n\t);\r\n};\r\n\r\nexport default SidebarLayout;\r\n"],"names":["jsx","jsxs","AppBar","SideBar"],"mappings":"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"}
1
+ {"version":3,"file":"sidebarScreen-NlMW1w_l.esm.js","sources":["../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport AppBar from '../../components/appbar/appbar';\r\nimport SideBar from '../../components/sidebar/sidebar';\r\nimport ActivityArea from '../../components/activityArea/activityArea';\r\nimport ChatBot from '../../components/chat-bot/chat-bot';\r\n\r\nimport drawerWidth from '../../constants/mui.constants';\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from '../../hooks/useLangauge';\r\nimport { getToken } from '@/utils';\r\nimport { getV1Settings } from '../../api-client/api.manufacturing/api';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\nexport interface ISidebarLayoutProps {\r\n\tmenu: any[];\r\n\tchildren: React.ReactNode;\r\n\tdashboardPath?: string;\r\n}\r\n\r\nexport const SidebarLayout = (props: ISidebarLayoutProps) => {\r\n\tconst theme = useTheme();\r\n\tconst { currentLanguage } = useLanguage();\r\n\tconst isRtl = useMemo(\r\n\t\t() => currentLanguage?.direction === 'rtl',\r\n\t\t[currentLanguage]\r\n\t);\r\n\t// Enhanced state management\r\n\tconst [forcedOpen, setForcedOpen] = useState(true);\r\n\tconst [hoverOpen, setHoverOpen] = useState(false);\r\n\tconst [isInitialized, setIsInitialized] = useState(false);\r\n\tconst location = useLocation();\r\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\r\n\r\n\t// Memoized computed state for actual drawer open status\r\n\tconst isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n\t// Enhanced drawer control functions with better state management\r\n\tconst handleDrawerOpen = useCallback(() => {\r\n\t\tsetForcedOpen(true);\r\n\t\tsetHoverOpen(false); // Clear hover state when forcing open\r\n\t\ttry {\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to save drawer state to localStorage:', error);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleDrawerClose = useCallback(() => {\r\n\t\tsetForcedOpen(false);\r\n\t\twindow.localStorage.setItem('_is_drawer_open', 'false');\r\n\t}, []);\r\n\r\n\tconst [wipSettingsData, setWipSettingsData] = useState<any>(null);\r\n\r\n\tconst getSettings = useCallback(async () => {\r\n\t\t// getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n\t\tconst tokenData = getToken();\r\n\t\tconst apiParams = {\r\n\t\t\t'x-token': tokenData['x-token'],\r\n\t\t\t'x-timezone': String(tokenData['x-timezone'])\r\n\t\t};\r\n\t\tconst response = await getV1Settings(apiParams);\r\n\t\t// The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n\t\tconst data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n\t\tsetWipSettingsData(data);\r\n\t\tlocalStorage.setItem('wip_settings_data', JSON.stringify(data));\r\n\t}, []);\r\n\tuseEffect(() => {\r\n\t\tif(curPathName?.includes('manufacturing')) {\r\n\t\t\tgetSettings();\r\n\t\t}\r\n\t}, [getSettings, curPathName]);\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(\r\n\t\tprops.menu\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (wipSettingsData && Array.isArray(props?.menu)) {\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif (!wipSettingsData?.enable_production_planning) {\r\n\t\t\t\t\treturn item.label !== 'Plans';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn item;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetManufacturingSubmenu(_new);\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu]);\r\n\t// const module_type = '';\r\n\r\n\tconst handleMouseEnter = () => {\r\n\t\tif (!forcedOpen) {\r\n\t\t\tsetOpen(true);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleMouseLeave = useCallback(() => {\r\n\t\tif (!forcedOpen && isInitialized) {\r\n\t\t\tsetHoverOpen(false);\r\n\t\t\twindow.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n\t\t}\r\n\t}, [forcedOpen, isInitialized]);\r\n\r\n\t// Toggle function for programmatic control\r\n\tconst toggleDrawer = useCallback(() => {\r\n\t\tif (forcedOpen) {\r\n\t\t\thandleDrawerClose();\r\n\t\t} else {\r\n\t\t\thandleDrawerOpen();\r\n\t\t}\r\n\t}, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n\t// Enhanced initialization with error handling\r\n\tuseEffect(() => {\r\n\t\tconst initializeDrawerState = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\tsetHoverOpen(false); // Ensure hover state is reset\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Fallback for environments without localStorage\r\n\t\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\t\tsetIsInitialized(true);\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to read drawer state from localStorage:', error);\r\n\t\t\t\t// Fallback to default state\r\n\t\t\t\tsetForcedOpen(true);\r\n\t\t\t\tsetIsInitialized(true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tinitializeDrawerState();\r\n\t}, []);\r\n\r\n\t// Handle window focus to sync state across tabs\r\n\tuseEffect(() => {\r\n\t\tconst handleWindowFocus = () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof window !== 'undefined' && window.localStorage) {\r\n\t\t\t\t\tconst savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n\t\t\t\t\tconst shouldBeOpen = savedState === 'true';\r\n\r\n\t\t\t\t\tif (shouldBeOpen !== forcedOpen) {\r\n\t\t\t\t\t\tsetForcedOpen(shouldBeOpen);\r\n\t\t\t\t\t\tsetHoverOpen(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn('Failed to sync drawer state on window focus:', error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('focus', handleWindowFocus);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('focus', handleWindowFocus);\r\n\t\t};\r\n\t}, [forcedOpen]);\r\n\r\n\t// Prevent rendering until initialization is complete\r\n\tif (!isInitialized) {\r\n\t\treturn (\r\n\t\t\t<Box\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\tminHeight: '100vh',\r\n\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\tjustifyContent: 'center'\r\n\t\t\t\t}}>\r\n\t\t\t\t{/* Optional loading indicator */}\r\n\t\t\t\t<Box>Loading...</Box>\r\n\t\t\t</Box>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Box\r\n\t\t\tsx={{\r\n\t\t\t\tdisplay: 'flex',\r\n\t\t\t\tminHeight: '100vh',\r\n\t\t\t\tdirection: isRtl ? 'rtl' : 'ltr'\r\n\t\t\t}}>\r\n\t\t\t<AppBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t/>\r\n\r\n\t\t\t<SideBar\r\n\t\t\t\topen={forcedOpen}\r\n\t\t\t\tforcedOpen={forcedOpen}\r\n\t\t\t\thoverOpen={hoverOpen}\r\n\t\t\t\thandleDrawerClose={handleDrawerClose}\r\n\t\t\t\thandleDrawerOpen={handleDrawerOpen}\r\n\t\t\t\ttoggleDrawer={toggleDrawer}\r\n\t\t\t\twidth={drawerWidth}\r\n\t\t\t\ttheme={theme}\r\n\t\t\t\tmenu={manufacturingSubmenu}\r\n\t\t\t\thandleMouseEnter={handleMouseEnter}\r\n\t\t\t\thandleMouseLeave={handleMouseLeave}\r\n\t\t\t\tisInitialized={isInitialized}\r\n\t\t\t\tdashboardPath={props.dashboardPath}\r\n\t\t\t/>\r\n\r\n\t\t\t<ActivityArea\r\n\t\t\t\tisDrawerOpen={isDrawerOpen}\r\n\t\t\t\tdrawerWidth={drawerWidth}\r\n\t\t\t\tforcedOpen={forcedOpen}>\r\n\t\t\t\t{props.children}\r\n\t\t\t</ActivityArea>\r\n\t\t\t<ChatBot />\r\n\t\t</Box>\r\n\t);\r\n};\r\n\r\nexport default SidebarLayout;\r\n"],"names":["jsx","jsxs","AppBar","SideBar"],"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-B8P9ZGxG.js");
5
5
  const useAuth = require("./useAuth-C0YAAvbk.js");
6
- const android12Switch = require("./android-12-switch-DQG8As1Y.js");
7
- const appbar = require("./appbar-CGe_OPDv.js");
6
+ const android12Switch = require("./android-12-switch-PEYCUiaq.js");
7
+ const appbar = require("./appbar-rUKxg-G7.js");
8
8
  const React = require("react");
9
9
  const DatePicker = require("react-datepicker");
10
10
  ;/* empty css */
@@ -22,7 +22,7 @@ const d3 = require("d3");
22
22
  const marked = require("marked");
23
23
  const api = require("./api-DCobO3lc.js");
24
24
  const Yup = require("yup");
25
- const formBuilderDeconversion = require("./form-builder-deconversion-D5-FPTEJ.js");
25
+ const formBuilderDeconversion = require("./form-builder-deconversion-BcmOEnG9.js");
26
26
  const trash = require("./trash-CUP1jXNo.js");
27
27
  const notistack = require("notistack");
28
28
  const reactRedux = require("react-redux");
@@ -47,7 +47,7 @@ const actionBar = require("./action-bar-DMv6sqDP.js");
47
47
  const DataEditor = require("@glideapps/glide-data-grid");
48
48
  const glideDataGridCells = require("@glideapps/glide-data-grid-cells");
49
49
  const ReactDOM = require("react-dom");
50
- const sidebar = require("./sidebar-DKHIqaS0.js");
50
+ const sidebar = require("./sidebar-BbJUAEIV.js");
51
51
  const materialReactTable = require("material-react-table");
52
52
  const _$1 = require("lodash");
53
53
  const useAccountSetting = require("./useAccountSetting-zW9NjEgH.js");
@@ -7550,6 +7550,7 @@ const InlineEditFields = ({
7550
7550
  await validationSchema2.validateAt(
7551
7551
  column.id,
7552
7552
  {
7553
+ // ...row._valuesCache,
7553
7554
  [column.id]: value
7554
7555
  },
7555
7556
  {
@@ -7680,7 +7681,8 @@ const InlineEditFields = ({
7680
7681
  isInternal: (fieldProperties == null ? void 0 : fieldProperties.isInternal) || !(fieldProperties == null ? void 0 : fieldProperties.apiType),
7681
7682
  multiple: fieldProperties == null ? void 0 : fieldProperties.is_multiple,
7682
7683
  value: (fieldProperties == null ? void 0 : fieldProperties.is_multiple) ? Array.isArray(inputValue == null ? void 0 : inputValue[column.id]) ? inputValue == null ? void 0 : inputValue[column.id] : [] : inputValue == null ? void 0 : inputValue[column.id],
7683
- getSelectedData: (row2) => getSelectedData(fieldProperties == null ? void 0 : fieldProperties.field_name, row2)
7684
+ getSelectedData: (row2) => getSelectedData(fieldProperties == null ? void 0 : fieldProperties.field_name, row2),
7685
+ disabled: fieldDisbled
7684
7686
  }
7685
7687
  ),
7686
7688
  (errors == null ? void 0 : errors[column.id]) && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(useAuth.Typography, { color: "theme.error.600", type: "s5", children: errors == null ? void 0 : errors[column.id] })
@@ -7698,7 +7700,7 @@ const InlineEditFields = ({
7698
7700
  helperText: errors == null ? void 0 : errors[column.id],
7699
7701
  format: fieldProperties == null ? void 0 : fieldProperties.dateFormat,
7700
7702
  placeholder: (fieldProperties == null ? void 0 : fieldProperties.placeholder) || (fieldProperties == null ? void 0 : fieldProperties.dateFormat),
7701
- value: dayjs(row._valuesCache[column.id]).isValid() ? dayjs(row._valuesCache[column.id]) : void 0,
7703
+ value: row._valuesCache[column.id] && dayjs(row._valuesCache[column.id]).isValid() ? dayjs(row._valuesCache[column.id]) : null,
7702
7704
  disabled: fieldDisbled,
7703
7705
  minDate: fieldProperties == null ? void 0 : fieldProperties.min_date,
7704
7706
  maxDate: fieldProperties == null ? void 0 : fieldProperties.max_date
@@ -7959,6 +7961,21 @@ const MaterialEditableTable = React.memo(({
7959
7961
  /^(https?:\/\/)?((([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,})|localhost)(:\d{2,5})?(\/[a-zA-Z0-9#_-]+\/?)*(\?[a-zA-Z0-9&=_-]+)?(#\S+)?$/,
7960
7962
  { excludeEmptyString: true, message: "Please enter valid URL." }
7961
7963
  );
7964
+ case "date":
7965
+ case "date_time":
7966
+ case "time":
7967
+ return Yup__namespace.date().nullable().transform((value, originalValue) => {
7968
+ if (originalValue === "" || originalValue === null || originalValue === void 0) {
7969
+ return null;
7970
+ }
7971
+ if (originalValue && typeof originalValue === "object" && "toDate" in originalValue) {
7972
+ return originalValue.toDate();
7973
+ }
7974
+ return value;
7975
+ }).typeError("Valid date is required");
7976
+ case "file":
7977
+ case "image":
7978
+ return Yup__namespace.mixed().nullable();
7962
7979
  default:
7963
7980
  return Yup__namespace.string();
7964
7981
  }
@@ -8114,6 +8131,23 @@ const MaterialEditableTable = React.memo(({
8114
8131
  validation.testFn
8115
8132
  );
8116
8133
  break;
8134
+ case "validate":
8135
+ if (typeof validation.callback === "function") {
8136
+ vld = vld.test(
8137
+ validation.name || "custom-validate",
8138
+ validation.msg_en || "Validation failed",
8139
+ function(value) {
8140
+ var _a2;
8141
+ const rowObj = ((_a2 = this.options.context) == null ? void 0 : _a2.row) || {
8142
+ original: this.parent,
8143
+ origin: this.parent,
8144
+ _valuesCache: this.parent
8145
+ };
8146
+ return validation.callback(value, this.parent, rowObj);
8147
+ }
8148
+ );
8149
+ }
8150
+ break;
8117
8151
  case "when":
8118
8152
  return vld.when(validation.relation, {
8119
8153
  is: (val) => typeof validation.is === "function" ? validation.is(val) : Array.isArray(validation.values) ? validation.values.includes(val) : val === validation.values,
@@ -8287,7 +8321,7 @@ const MaterialEditableTable = React.memo(({
8287
8321
  const setLoadingState = isEditMode ? setIsEditingRow : setIsCreatingRow;
8288
8322
  const rowId = row2.id;
8289
8323
  try {
8290
- await validationSchema2.validate(values, { abortEarly: false });
8324
+ await validationSchema2.validate(values, { abortEarly: false, context: { row: row2 } });
8291
8325
  setValidationErrors((prev) => {
8292
8326
  const next = { ...prev };
8293
8327
  delete next[rowId];
@@ -8324,16 +8358,58 @@ const MaterialEditableTable = React.memo(({
8324
8358
  },
8325
8359
  [validationSchema2, onEditRow, onCreateRow, formtValues]
8326
8360
  );
8327
- const validate = React.useCallback(async (values) => {
8361
+ const validate = React.useCallback(async (values, row2) => {
8328
8362
  try {
8329
- await validationSchema2.validate(values, { abortEarly: false });
8363
+ await validationSchema2.validate(values, { abortEarly: false, context: { row: row2 } });
8330
8364
  setValidationErrors({});
8331
8365
  return true;
8332
8366
  } catch (err) {
8333
8367
  return false;
8334
8368
  }
8335
8369
  }, [validationSchema2]);
8370
+ React.useCallback(
8371
+ async (columnId, value, rowId, rowValues) => {
8372
+ if (!validationSchema2 || typeof validationSchema2.validateAt !== "function" || !validationSchema2.fields || !validationSchema2.fields[columnId]) return;
8373
+ try {
8374
+ await validationSchema2.validateAt(
8375
+ columnId,
8376
+ {
8377
+ ...rowValues,
8378
+ [columnId]: value
8379
+ },
8380
+ {
8381
+ abortEarly: false
8382
+ }
8383
+ );
8384
+ setValidationErrors((prev) => {
8385
+ const next = { ...prev };
8386
+ if (next[rowId]) {
8387
+ const rowErrs = { ...next[rowId] };
8388
+ delete rowErrs[columnId];
8389
+ next[rowId] = rowErrs;
8390
+ }
8391
+ return next;
8392
+ });
8393
+ } catch (err) {
8394
+ if (err instanceof Yup__namespace.ValidationError) {
8395
+ const fieldErrors = err.inner.reduce((acc, { path: path2, message }) => {
8396
+ if (path2) acc[path2] = message;
8397
+ return acc;
8398
+ }, {});
8399
+ setValidationErrors((prev) => ({
8400
+ ...prev,
8401
+ [rowId]: {
8402
+ ...prev[rowId] ?? {},
8403
+ ...fieldErrors
8404
+ }
8405
+ }));
8406
+ }
8407
+ }
8408
+ },
8409
+ [validationSchema2]
8410
+ );
8336
8411
  const valuesRef = React.useRef({});
8412
+ console.log("🚀 ~ valuesRef:", valuesRef);
8337
8413
  const syncFieldValue = React.useCallback(
8338
8414
  (rowId, columnId, value) => {
8339
8415
  valuesRef.current[rowId] = {
@@ -8363,7 +8439,7 @@ const MaterialEditableTable = React.memo(({
8363
8439
  const creatingRow = table2.getState().creatingRow;
8364
8440
  if (!editingRow) return;
8365
8441
  const values = getRowValues(editingRow);
8366
- const isValid = await validate(values);
8442
+ const isValid = await validate(values, editingRow);
8367
8443
  if (!isValid) {
8368
8444
  await handleSaveRow({ row: editingRow, values, table: table2 }, "edit");
8369
8445
  return;
@@ -8387,7 +8463,7 @@ const MaterialEditableTable = React.memo(({
8387
8463
  if (values == null ? void 0 : values["mrt-row-actions"]) {
8388
8464
  delete values["mrt-row-actions"];
8389
8465
  }
8390
- const isValid = await validate(values);
8466
+ const isValid = await validate(values, creatingRow);
8391
8467
  await handleSaveRow({ row: creatingRow, values, table: table2 }, "create");
8392
8468
  if (!isValid) return;
8393
8469
  if (isValid) {
@@ -8754,14 +8830,14 @@ const MaterialEditableTable = React.memo(({
8754
8830
  let saveSucceeded = false;
8755
8831
  if (currentCreatingRow) {
8756
8832
  const values = getRowValues(currentCreatingRow);
8757
- const isValid = await validate(values);
8833
+ const isValid = await validate(values, currentCreatingRow);
8758
8834
  if (!isValid) return;
8759
8835
  await handleSaveRow({ row: currentCreatingRow, values, table: table2 }, "create");
8760
8836
  clearRow("mrt-row-create");
8761
8837
  saveSucceeded = true;
8762
8838
  } else if (currentEditingRow) {
8763
8839
  const values = getRowValues(currentEditingRow);
8764
- const isValid = await validate(values);
8840
+ const isValid = await validate(values, currentEditingRow);
8765
8841
  if (!isValid) return;
8766
8842
  await handleSaveRow({ row: currentEditingRow, values, table: table2 }, "edit");
8767
8843
  clearRow(currentEditingRow.id);
@@ -8789,8 +8865,8 @@ const MaterialEditableTable = React.memo(({
8789
8865
  } else {
8790
8866
  const editingRow = table2.getState().editingRow;
8791
8867
  if (editingRow) {
8792
- handleSaveRow({ row: editingRow, values: editingRow.original, table: table2 }, "edit");
8793
8868
  clearRow(editingRow.id);
8869
+ table2.setEditingRow(null);
8794
8870
  }
8795
8871
  }
8796
8872
  setDisableNextEdit(false);
@@ -16213,4 +16289,4 @@ exports.dynamicFields = dynamicFields;
16213
16289
  exports.fields = fields;
16214
16290
  exports.useDynamicLayout = useDynamicLayout;
16215
16291
  exports.validator = validator;
16216
- //# sourceMappingURL=uom-field-wrapper-DjrmGUaV.js.map
16292
+ //# sourceMappingURL=uom-field-wrapper-BsTblyVT.js.map