@erpsquad/common 1.8.28 → 1.8.30

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 (78) hide show
  1. package/dist/_virtual/index/index.esm3.js +2 -4
  2. package/dist/_virtual/index/index.esm3.js.map +1 -1
  3. package/dist/_virtual/index/index.esm4.js +3 -3
  4. package/dist/_virtual/index/index.esm5.js +4 -2
  5. package/dist/_virtual/index/index.esm5.js.map +1 -1
  6. package/dist/_virtual/index/index3.js +1 -1
  7. package/dist/_virtual/index/index4.js +1 -1
  8. package/dist/_virtual/index/index5.js +1 -1
  9. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  10. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  11. package/dist/components/action-bar/action-bar/index.js +1 -1
  12. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  13. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  14. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  15. package/dist/components/editor/custom-editor/index.js +1 -1
  16. package/dist/components/editor/custom-editor/index.js.map +1 -1
  17. package/dist/components/filter/filter/index.esm.js +1 -1
  18. package/dist/components/filter/filter/index.esm.js.map +1 -1
  19. package/dist/components/filter/filter/index.js +1 -1
  20. package/dist/components/filter/filter/index.js.map +1 -1
  21. package/dist/components/header/header/index.esm.js +1 -1
  22. package/dist/components/header/header/index.esm.js.map +1 -1
  23. package/dist/components/header/header/index.js +1 -1
  24. package/dist/components/header/header/index.js.map +1 -1
  25. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  26. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  27. package/dist/components/header/redux/actionCreator/index.js +1 -1
  28. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  29. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  30. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  31. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  32. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  33. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  34. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  35. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  36. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  37. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  38. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  39. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  40. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  41. package/dist/components/upload/upload/index.esm.js +2 -2
  42. package/dist/components/upload/upload/index.esm.js.map +1 -1
  43. package/dist/components/upload/upload/index.js +2 -2
  44. package/dist/components/upload/upload/index.js.map +1 -1
  45. package/dist/contexts/AuthContext/index.esm.js +2 -2
  46. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  47. package/dist/contexts/AuthContext/index.js +1 -1
  48. package/dist/contexts/AuthContext/index.js.map +1 -1
  49. package/dist/contexts/languageContext/index.esm.js +1 -1
  50. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  51. package/dist/contexts/languageContext/index.js +1 -1
  52. package/dist/contexts/languageContext/index.js.map +1 -1
  53. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  54. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  55. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  56. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  57. package/dist/style.css +2 -2
  58. package/dist/utils/api/index.esm.js +4 -4
  59. package/dist/utils/api/index.esm.js.map +1 -1
  60. package/dist/utils/api/index.js +1 -1
  61. package/dist/utils/api/index.js.map +1 -1
  62. package/dist/utils/common/index.esm.js +8 -8
  63. package/dist/utils/common/index.esm.js.map +1 -1
  64. package/dist/utils/common/index.js +1 -1
  65. package/dist/utils/common/index.js.map +1 -1
  66. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  67. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  68. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  69. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  70. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +3 -3
  71. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  72. package/dist/views/template-editor/components/EditorSidebar/index.js +14 -14
  73. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  74. package/dist/views/template-editor/templates/index.esm.js +1 -1
  75. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  76. package/dist/views/template-editor/templates/index.js +1 -1
  77. package/dist/views/template-editor/templates/index.js.map +1 -1
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["React","KeyboardBackspaceIcon","logo","LockIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["React","KeyboardBackspaceIcon","logo","LockIcon"],"mappings":"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"}
@@ -24,7 +24,7 @@ return e.jsxs(e.Fragment,{children:[
24
24
  /* @__PURE__ */e.jsx(f.default,{}),
25
25
  /* @__PURE__ */e.jsx(N.default,{size:"small","aria-label":"help",className:"p-0",children:/* @__PURE__ */e.jsx("img",{src:t.images.question,alt:"question icon"})}),
26
26
  /* @__PURE__ */e.jsx("img",{src:t.images.vdivider,alt:"divider icon"}),localStorage.getItem("_tid")?/* @__PURE__ */e.jsxs(q.default,{className:"user-profile-box",onClick:e=>$(e.currentTarget),children:[
27
- /* @__PURE__ */e.jsx(c.Avatar,{size:32,src:(null==T?void 0:T.profile_image)?`undefined${null==T?void 0:T.profile_image}`:void 0,alt:h.default(null==T?void 0:T.full_name),className:"avatar-class"}),
27
+ /* @__PURE__ */e.jsx(c.Avatar,{size:32,src:(null==T?void 0:T.profile_image)?`https://erpforce-dev.s3.eu-west-1.amazonaws.com/${null==T?void 0:T.profile_image}`:void 0,alt:h.default(null==T?void 0:T.full_name),className:"avatar-class"}),
28
28
  /* @__PURE__ */e.jsxs("div",{children:[
29
29
  /* @__PURE__ */e.jsx(o.Typography,{className:"profile-name",children:null==T?void 0:T.full_name}),
30
30
  /* @__PURE__ */e.jsx(o.Typography,{className:"user-auth",children:null==T?void 0:T.role_name})]})]}):/* @__PURE__ */e.jsx(N.default,{size:"large",edge:"end","aria-label":"account of current user","aria-controls":re,"aria-haspopup":"true",component:l.Link,to:i.Pathname.LOGIN,color:"inherit",children:/* @__PURE__ */e.jsx(n.default,{className:"icon-btn"})})]}),ie]}),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["Header","props","navigate","useNavigate","t","useTranslation","location","useLocation","logout","user","useAuth","languages","currentLanguage","changeLanguage","isLoading","languagesLoading","error","languageContextError","isFallbackActive","fetchLanguages","isRtl","useLanguage","pathname","anchorEl","setAnchorEl","React","useState","logoutConfirmation","setLogoutConfirmation","localLanguageError","setLocalLanguageError","showModal","setShowModal","u_data","localStorage","getItem","userData","JSON","parse","isMenuOpen","Boolean","handleLogoutConfirmation","checkMatchedRoutes","useCallback","paths","shouldMatch","Array","isArray","map","path","matchRoutes","erp_modules","useMemo","modules","selectedModule","find","module","_a","link","toLowerCase","connectedRoutes","onChangeLang","e","lang_code","target","value","length","errorMsg","some","lang","code","Error","message","language","handleRetryLanguages","async","menuId","renderMenu","jsxs","Menu","className","id","keepMounted","open","onClose","children","MenuItem","jsx","role_id","ListItemIcon","Avatar","size","alt","role_name","ListItemText","Typography","variant","color","src","images","tickicon","Divider","onClick","Eye","fontSize","width","height","htmlColor","Fragment","Box","isDropdownShow","Link","to","Pathname","DASHBOARD","LOGIN","logo","IconButton","window","history","back","KeyboardBackspaceIcon","Select","fullWidth","placeholder","onChange","event","selectedLink","setTimeout","renderValue","icon","label","index","availableLanguages","direction","displayValue","type","weight","style","fontStyle","renderLanguageSelector","NotificationMenu","question","vdivider","currentTarget","profile_image","formatText","full_name","edge","component","LockIcon","ConfirmPopUp","title","description","onConfirm","maxWidth","buttonTexts","confirm","cancel","ResetPasswordModal"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["Header","props","navigate","useNavigate","t","useTranslation","location","useLocation","logout","user","useAuth","languages","currentLanguage","changeLanguage","isLoading","languagesLoading","error","languageContextError","isFallbackActive","fetchLanguages","isRtl","useLanguage","pathname","anchorEl","setAnchorEl","React","useState","logoutConfirmation","setLogoutConfirmation","localLanguageError","setLocalLanguageError","showModal","setShowModal","u_data","localStorage","getItem","userData","JSON","parse","isMenuOpen","Boolean","handleLogoutConfirmation","checkMatchedRoutes","useCallback","paths","shouldMatch","Array","isArray","map","path","matchRoutes","erp_modules","useMemo","modules","selectedModule","find","module","_a","link","toLowerCase","connectedRoutes","onChangeLang","e","lang_code","target","value","length","errorMsg","some","lang","code","Error","message","language","handleRetryLanguages","async","menuId","renderMenu","jsxs","Menu","className","id","keepMounted","open","onClose","children","MenuItem","jsx","role_id","ListItemIcon","Avatar","size","alt","role_name","ListItemText","Typography","variant","color","src","images","tickicon","Divider","onClick","Eye","fontSize","width","height","htmlColor","Fragment","Box","isDropdownShow","Link","to","Pathname","DASHBOARD","LOGIN","logo","IconButton","window","history","back","KeyboardBackspaceIcon","Select","fullWidth","placeholder","onChange","event","selectedLink","setTimeout","renderValue","icon","label","index","availableLanguages","direction","displayValue","type","weight","style","fontStyle","renderLanguageSelector","NotificationMenu","question","vdivider","currentTarget","profile_image","formatText","full_name","edge","component","LockIcon","ConfirmPopUp","title","description","onConfirm","maxWidth","buttonTexts","confirm","cancel","ResetPasswordModal"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
2
2
  import { setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
3
3
  import { getV1Languages } from "../../../../api-client/api.system-feature/api/index.esm.js";
4
4
  import { getToken } from "../../../../utils/common/index.esm.js";
5
- setBaseUrl(`${void 0}/rbac`);
5
+ setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
6
6
  const fetchLanguages = createAsyncThunk(
7
7
  "header/language/get",
8
8
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,MAAA,OAA4C;AAEnD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;;AACV,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AACD,UAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,UAAM,aAAY,kCAAM,OAAO,CAAA,MAAK,uBAAG,eAArB,mBAAiC;AAAA,MAAI,CAAA,MAAK;AAC1D,eAAO;AAAA,UACL,OAAO,uBAAG;AAAA,UACV,MAAM,uBAAG;AAAA,UACT,WAAW,uBAAG;AAAA,QAAA;AAAA,MAElB;AAAA;AAEF,WAAO,EAAE,UAAA;AAAA,EACX;AAAC;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,uBAAqC,OAAO;AAEnD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;;AACV,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AACD,UAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,UAAM,aAAY,kCAAM,OAAO,CAAA,MAAK,uBAAG,eAArB,mBAAiC;AAAA,MAAI,CAAA,MAAK;AAC1D,eAAO;AAAA,UACL,OAAO,uBAAG;AAAA,UACV,MAAM,uBAAG;AAAA,UACT,WAAW,uBAAG;AAAA,QAAA;AAAA,MAElB;AAAA;AAEF,WAAO,EAAE,UAAA;AAAA,EACX;AAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),n=require("../../../../utils/common/index.js");i.setBaseUrl("undefined/rbac");const l=e.createAsyncThunk("header/language/get",async()=>{var e,i;const l=await a.getV1Languages({order:"id:1",...n.getToken()}),r=(null==(e=null==l?void 0:l.data)?void 0:e.languages)||[];return{languages:null==(i=null==r?void 0:r.filter(e=>null==e?void 0:e.is_active))?void 0:i.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}))}});exports.fetchLanguages=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),n=require("../../../../utils/common/index.js");i.setBaseUrl("http://127.0.0.1:4011/rbac");const t=e.createAsyncThunk("header/language/get",async()=>{var e,i;const t=await a.getV1Languages({order:"id:1",...n.getToken()}),l=(null==(e=null==t?void 0:t.data)?void 0:e.languages)||[];return{languages:null==(i=null==l?void 0:l.filter(e=>null==e?void 0:e.is_active))?void 0:i.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}))}});exports.fetchLanguages=t;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,kBAEJ,MAAMC,EAAiBC,EAAAA,iBAC5B,sBACAC,kBACE,MAAMC,QAAiBC,iBAAe,CACpCC,MAAO,UACJC,EAAAA,aAECC,GAAO,OAAAC,EAAA,MAAAL,OAAA,EAAAA,EAAUI,WAAV,EAAAC,EAAgBC,YAAa,GAS5C,MAAO,CAAEA,UARW,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAMI,OAAOC,GAAK,MAAAA,OAAA,EAAAA,EAAGC,iBAArB,EAAAH,EAAiCI,IAAIF,IAC9C,CACLG,MAAO,MAAAH,OAAA,EAAAA,EAAGI,KACVC,KAAM,MAAAL,OAAA,EAAAA,EAAGK,KACTC,UAAW,MAAAN,OAAA,EAAAA,EAAGM"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,8BAEJ,MAAMC,EAAiBC,EAAAA,iBAC5B,sBACAC,kBACE,MAAMC,QAAiBC,iBAAe,CACpCC,MAAO,UACJC,EAAAA,aAECC,GAAO,OAAAC,EAAA,MAAAL,OAAA,EAAAA,EAAUI,WAAV,EAAAC,EAAgBC,YAAa,GAS5C,MAAO,CAAEA,UARW,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAMI,OAAOC,GAAK,MAAAA,OAAA,EAAAA,EAAGC,iBAArB,EAAAH,EAAiCI,IAAIF,IAC9C,CACLG,MAAO,MAAAH,OAAA,EAAAA,EAAGI,KACVC,KAAM,MAAAL,OAAA,EAAAA,EAAGK,KACTC,UAAW,MAAAN,OAAA,EAAAA,EAAGM"}
@@ -3,7 +3,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
3
3
  import { getV1Company, setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
4
4
  import { getV1InventoryItems, getV1WarehouseLocation, getV1AssemblyItems } from "../../../../api-client/api.inventory/api/index.esm.js";
5
5
  import { getV1BillsOfMaterials } from "../../../../api-client/api.manufacturing/api/index.esm.js";
6
- setBaseUrl(`${void 0}/rbac`);
6
+ setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
7
7
  const fetchOptions = createAsyncThunk(
8
8
  "reports-title/fetchOptions",
9
9
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/inventory-reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}"],"names":[],"mappings":";;;;;AAUA,WAAW,GAAG,MAAA,OAA4C;AAInD,MAAM,eAAe;AAAA,EAC1B;AAAA,EACA,YAAY;AACV,UAAM,IAAI,MAAM,gBAAA;AAChB,UAAM,IAAI,MAAM,qBAAA;AAChB,UAAM,KAAK,MAAM,8BAAA;AACjB,UAAM,KAAK,MAAM,mBAAA;AACjB,WAAO,EAAE,GAAG,GAAG,IAAI,GAAA;AAAA,EACrB;AACF;AACO,MAAM,WAAW;AAAA,EACtB;AAAA,EACA,YAAY;AACV,UAAM,MAAM,MAAM,aAAA;AAClB,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,YAAY;;AAC9C,MAAI;AACF,UAAM,WAAW,MAAM,aAAa,EAAE,GAAG,SAAA,GAAY;AAErD,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAEO,MAAM,kBAAkB,YAAY;;AACzC,MAAI;AACF,UAAM,WAAW,MAAM,oBAAoB;AAAA,MACzC,GAAG,SAAA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA,CACV;AAED,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAEO,MAAM,gCAAgC,YAAY;;AACvD,MAAI;AACF,UAAM,WAAW,MAAM,uBAAuB;AAAA,MAC5C,GAAG,SAAA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,IAAA,CACR;AAGD,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAGO,MAAM,qBAAqB,YAAY;;AAC5C,MAAI;AACF,UAAM,WAAgB,MAAM;AAAA,MAAmB;AAAA,QAC7C,GAAG,SAAA;AAAA,QACH,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAEA,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAY;AACnB,WAAO,CAAA;AAAA,EACT;AACF;AAEA,MAAM,eAAe,YAAY;;AAC/B,MAAI;AACF,UAAM,WAAgB,MAAM,sBAAsB;AAAA,MAChD,MAAM;AAAA,MACN,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AAED,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/inventory-reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}"],"names":[],"mappings":";;;;;AAUA,WAAW,GAAG,uBAAqC,OAAO;AAInD,MAAM,eAAe;AAAA,EAC1B;AAAA,EACA,YAAY;AACV,UAAM,IAAI,MAAM,gBAAA;AAChB,UAAM,IAAI,MAAM,qBAAA;AAChB,UAAM,KAAK,MAAM,8BAAA;AACjB,UAAM,KAAK,MAAM,mBAAA;AACjB,WAAO,EAAE,GAAG,GAAG,IAAI,GAAA;AAAA,EACrB;AACF;AACO,MAAM,WAAW;AAAA,EACtB;AAAA,EACA,YAAY;AACV,UAAM,MAAM,MAAM,aAAA;AAClB,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,YAAY;;AAC9C,MAAI;AACF,UAAM,WAAW,MAAM,aAAa,EAAE,GAAG,SAAA,GAAY;AAErD,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAEO,MAAM,kBAAkB,YAAY;;AACzC,MAAI;AACF,UAAM,WAAW,MAAM,oBAAoB;AAAA,MACzC,GAAG,SAAA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA,CACV;AAED,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAEO,MAAM,gCAAgC,YAAY;;AACvD,MAAI;AACF,UAAM,WAAW,MAAM,uBAAuB;AAAA,MAC5C,GAAG,SAAA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,IAAA,CACR;AAGD,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;AAGO,MAAM,qBAAqB,YAAY;;AAC5C,MAAI;AACF,UAAM,WAAgB,MAAM;AAAA,MAAmB;AAAA,QAC7C,GAAG,SAAA;AAAA,QACH,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAEA,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAY;AACnB,WAAO,CAAA;AAAA,EACT;AACF;AAEA,MAAM,eAAe,YAAY;;AAC/B,MAAI;AACF,UAAM,WAAgB,MAAM,sBAAsB;AAAA,MAChD,MAAM;AAAA,MACN,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AAED,YAAO,0CAAU,SAAV,mBAAgB;AAAA,EACzB,SAAS,OAAO;AACd,WAAO,CAAA;AAAA,EACT;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../../../utils/common/index.js"),e=require("@reduxjs/toolkit"),a=require("../../../../api-client/api.rbac/api/index.js"),i=require("../../../../api-client/api.inventory/api/index.js"),n=require("../../../../api-client/api.manufacturing/api/index.js");a.setBaseUrl("undefined/rbac");const r=e.createAsyncThunk("reports-title/fetchOptions",async()=>({i:await c(),c:await o(),wl:await l(),ai:await u()})),s=e.createAsyncThunk("reports-title/fetchBom",async()=>await p()),o=async()=>{var e;try{const i=await a.getV1Company({...t.getToken()});return null==(e=null==i?void 0:i.data)?void 0:e.company}catch(i){return[]}},c=async()=>{var e;try{const a=await i.getV1InventoryItems({...t.getToken(),skip:0,limit:999,filters:"(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)"});return null==(e=null==a?void 0:a.data)?void 0:e.inventoryItemsList}catch(a){return[]}},l=async()=>{var e;try{const a=await i.getV1WarehouseLocation({...t.getToken(),skip:0,limit:999});return null==(e=null==a?void 0:a.data)?void 0:e.warehouseLocationList}catch(a){return[]}},u=async()=>{var e;try{const a=await i.getV1AssemblyItems({...t.getToken(),skip:0,limit:999});return null==(e=null==a?void 0:a.data)?void 0:e.assemblyItemsList}catch(a){return[]}},p=async()=>{var e;try{const a=await n.getV1BillsOfMaterials({skip:0,limit:99999,...t.getToken()});return null==(e=null==a?void 0:a.data)?void 0:e.bom_list}catch(a){return[]}};exports.fetchAssemblyItems=u,exports.fetchBom=s,exports.fetchOptions=r,exports.handleFetchCompanies=o,exports.handleFetchItem=c,exports.handleFetchWarehouseLocations=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../../../utils/common/index.js"),e=require("@reduxjs/toolkit"),a=require("../../../../api-client/api.rbac/api/index.js"),i=require("../../../../api-client/api.inventory/api/index.js"),n=require("../../../../api-client/api.manufacturing/api/index.js");a.setBaseUrl("http://127.0.0.1:4011/rbac");const r=e.createAsyncThunk("reports-title/fetchOptions",async()=>({i:await c(),c:await o(),wl:await l(),ai:await u()})),s=e.createAsyncThunk("reports-title/fetchBom",async()=>await p()),o=async()=>{var e;try{const i=await a.getV1Company({...t.getToken()});return null==(e=null==i?void 0:i.data)?void 0:e.company}catch(i){return[]}},c=async()=>{var e;try{const a=await i.getV1InventoryItems({...t.getToken(),skip:0,limit:999,filters:"(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)"});return null==(e=null==a?void 0:a.data)?void 0:e.inventoryItemsList}catch(a){return[]}},l=async()=>{var e;try{const a=await i.getV1WarehouseLocation({...t.getToken(),skip:0,limit:999});return null==(e=null==a?void 0:a.data)?void 0:e.warehouseLocationList}catch(a){return[]}},u=async()=>{var e;try{const a=await i.getV1AssemblyItems({...t.getToken(),skip:0,limit:999});return null==(e=null==a?void 0:a.data)?void 0:e.assemblyItemsList}catch(a){return[]}},p=async()=>{var e;try{const a=await n.getV1BillsOfMaterials({skip:0,limit:99999,...t.getToken()});return null==(e=null==a?void 0:a.data)?void 0:e.bom_list}catch(a){return[]}};exports.fetchAssemblyItems=u,exports.fetchBom=s,exports.fetchOptions=r,exports.handleFetchCompanies=o,exports.handleFetchItem=c,exports.handleFetchWarehouseLocations=l;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/inventory-reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}"],"names":["setBaseUrl","fetchOptions","createAsyncThunk","async","i","handleFetchItem","c","handleFetchCompanies","wl","handleFetchWarehouseLocations","ai","fetchAssemblyItems","fetchBom","fetchBomData","response","getV1Company","getToken","_a","data","company","error","getV1InventoryItems","skip","limit","filters","inventoryItemsList","getV1WarehouseLocation","warehouseLocationList","getV1AssemblyItems","assemblyItemsList","getV1BillsOfMaterials","bom_list"],"mappings":"iVAUAA,EAAAA,WAAW,kBAIJ,MAAMC,EAAeC,EAAAA,iBAC1B,6BACAC,UAKS,CAAEC,QAJOC,IAIJC,QAHIC,IAGDC,SAFEC,IAEEC,SADFC,OAIRC,EAAWV,EAAAA,iBACtB,yBACAC,eACoBU,KAKTN,EAAuBJ,gBAClC,IACE,MAAMW,QAAiBC,EAAAA,aAAa,IAAKC,EAAAA,aAEzC,OAAO,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBE,OACzB,OAASC,GACP,MAAO,EACT,GAGWf,EAAkBF,gBAC7B,IACE,MAAMW,QAAiBO,sBAAoB,IACtCL,aACHM,KAAM,EACNC,MAAO,IACPC,QAAS,kFAGX,OAAO,OAAAP,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBQ,kBACzB,OAASL,GACP,MAAO,EACT,GAGWX,EAAgCN,gBAC3C,IACE,MAAMW,QAAiBY,yBAAuB,IACzCV,aACHM,KAAM,EACNC,MAAO,MAIT,OAAO,OAAAN,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBU,qBACzB,OAASP,GACP,MAAO,EACT,GAIWT,EAAqBR,gBAChC,IACE,MAAMW,QAAsBc,EAAAA,mBAAmB,IAC1CZ,aACHM,KAAM,EACNC,MAAO,MAGT,OAAO,OAAAN,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBY,iBACzB,OAAST,GACP,MAAO,EACT,GAGIP,EAAeV,gBACnB,IACE,MAAMW,QAAsBgB,wBAAsB,CAChDR,KAAM,EACNC,MAAO,SACJP,EAAAA,aAGL,OAAO,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBc,QACzB,OAASX,GACP,MAAO,EACT"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/inventory-reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { getToken } from '../../../utils/common';\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\nimport { getV1AssemblyItems, getV1InventoryItems, getV1WarehouseLocation } from \"../../../api-client/api.inventory/api\";\nimport { getV1BillsOfMaterials } from \"../../../api-client/api.manufacturing/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchOptions = createAsyncThunk(\n \"reports-title/fetchOptions\",\n async () => {\n const i = await handleFetchItem();\n const c = await handleFetchCompanies();\n const wl = await handleFetchWarehouseLocations();\n const ai = await fetchAssemblyItems();\n return { i, c, wl, ai };\n }\n);\nexport const fetchBom = createAsyncThunk(\n \"reports-title/fetchBom\",\n async () => {\n const bom = await fetchBomData();\n return bom\n }\n);\n\nexport const handleFetchCompanies = async () => {\n try {\n const response = await getV1Company({ ...getToken() });\n\n return response?.data?.company\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchItem = async () => {\n try {\n const response = await getV1InventoryItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n filters: `(type.eq=inventory|type.eq=assembly&is_variant.eq=false|self_variant.eq=true)`,\n });\n\n return response?.data?.inventoryItemsList\n } catch (error) {\n return [];\n }\n};\n\nexport const handleFetchWarehouseLocations = async () => {\n try {\n const response = await getV1WarehouseLocation({\n ...getToken(),\n skip: 0,\n limit: 999,\n });\n\n\n return response?.data?.warehouseLocationList\n } catch (error) {\n return [];\n }\n};\n\n\nexport const fetchAssemblyItems = async () => {\n try {\n const response: any = await getV1AssemblyItems({\n ...getToken(),\n skip: 0,\n limit: 999,\n }\n )\n return response?.data?.assemblyItemsList\n } catch (error: any) {\n return []\n }\n}\n\nconst fetchBomData = async () => {\n try {\n const response: any = await getV1BillsOfMaterials({\n skip: 0,\n limit: 99999,\n ...getToken()\n })\n\n return response?.data?.bom_list\n } catch (error) {\n return []\n }\n}"],"names":["setBaseUrl","fetchOptions","createAsyncThunk","async","i","handleFetchItem","c","handleFetchCompanies","wl","handleFetchWarehouseLocations","ai","fetchAssemblyItems","fetchBom","fetchBomData","response","getV1Company","getToken","_a","data","company","error","getV1InventoryItems","skip","limit","filters","inventoryItemsList","getV1WarehouseLocation","warehouseLocationList","getV1AssemblyItems","assemblyItemsList","getV1BillsOfMaterials","bom_list"],"mappings":"iVAUAA,EAAAA,WAAW,8BAIJ,MAAMC,EAAeC,EAAAA,iBAC1B,6BACAC,UAKS,CAAEC,QAJOC,IAIJC,QAHIC,IAGDC,SAFEC,IAEEC,SADFC,OAIRC,EAAWV,EAAAA,iBACtB,yBACAC,eACoBU,KAKTN,EAAuBJ,gBAClC,IACE,MAAMW,QAAiBC,EAAAA,aAAa,IAAKC,EAAAA,aAEzC,OAAO,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBE,OACzB,OAASC,GACP,MAAO,EACT,GAGWf,EAAkBF,gBAC7B,IACE,MAAMW,QAAiBO,sBAAoB,IACtCL,aACHM,KAAM,EACNC,MAAO,IACPC,QAAS,kFAGX,OAAO,OAAAP,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBQ,kBACzB,OAASL,GACP,MAAO,EACT,GAGWX,EAAgCN,gBAC3C,IACE,MAAMW,QAAiBY,yBAAuB,IACzCV,aACHM,KAAM,EACNC,MAAO,MAIT,OAAO,OAAAN,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBU,qBACzB,OAASP,GACP,MAAO,EACT,GAIWT,EAAqBR,gBAChC,IACE,MAAMW,QAAsBc,EAAAA,mBAAmB,IAC1CZ,aACHM,KAAM,EACNC,MAAO,MAGT,OAAO,OAAAN,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBY,iBACzB,OAAST,GACP,MAAO,EACT,GAGIP,EAAeV,gBACnB,IACE,MAAMW,QAAsBgB,wBAAsB,CAChDR,KAAM,EACNC,MAAO,SACJP,EAAAA,aAGL,OAAO,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAUI,WAAV,EAAAD,EAAgBc,QACzB,OAASX,GACP,MAAO,EACT"}
@@ -1,7 +1,7 @@
1
1
  import { createAsyncThunk } from "@reduxjs/toolkit";
2
2
  import { getToken } from "../../../../utils/common/index.esm.js";
3
3
  import { getV1Company, setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
4
- setBaseUrl(`${void 0}/rbac`);
4
+ setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
5
5
  const fetchCompanies = createAsyncThunk(
6
6
  "reports-title/fetchCompanies",
7
7
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n"],"names":[],"mappings":";;;AAOA,WAAW,GAAG,MAAA,OAA4C;AAInD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;AACV,UAAM,WAAW,MAAM,aAAa,EAAE,GAAG,SAAA,GAAY;AACrD,WAAO;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n"],"names":[],"mappings":";;;AAOA,WAAW,GAAG,uBAAqC,OAAO;AAInD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;AACV,UAAM,WAAW,MAAM,aAAa,EAAE,GAAG,SAAA,GAAY;AACrD,WAAO;AAAA,EACT;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),t=require("../../../../utils/common/index.js"),r=require("../../../../api-client/api.rbac/api/index.js");r.setBaseUrl("undefined/rbac");const i=e.createAsyncThunk("reports-title/fetchCompanies",async()=>await r.getV1Company({...t.getToken()}));exports.fetchCompanies=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),t=require("../../../../utils/common/index.js"),r=require("../../../../api-client/api.rbac/api/index.js");r.setBaseUrl("http://127.0.0.1:4011/rbac");const i=e.createAsyncThunk("reports-title/fetchCompanies",async()=>await r.getV1Company({...t.getToken()}));exports.fetchCompanies=i;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n"],"names":["setBaseUrl","fetchCompanies","createAsyncThunk","async","getV1Company","getToken"],"mappings":"+MAOAA,EAAAA,WAAW,kBAIJ,MAAMC,EAAiBC,EAAAA,iBAC5B,+BACAC,eACyBC,EAAAA,aAAa,IAAKC,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/reports-title-bar/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { getToken } from '../../../utils/common';\nimport {\n getV1Company,\n setBaseUrl,\n} from \"../../../api-client/api.rbac/api\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\n\nexport const fetchCompanies = createAsyncThunk(\n \"reports-title/fetchCompanies\",\n async () => {\n const response = await getV1Company({ ...getToken() });\n return response;\n }\n);\n"],"names":["setBaseUrl","fetchCompanies","createAsyncThunk","async","getV1Company","getToken"],"mappings":"+MAOAA,EAAAA,WAAW,8BAIJ,MAAMC,EAAiBC,EAAAA,iBAC5B,+BACAC,eACyBC,EAAAA,aAAa,IAAKC,EAAAA"}
@@ -2,7 +2,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
2
2
  import { setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
3
3
  import { getV1PagesUserList, postV1PagesShare } from "../../../../api-client/api.system-feature/api/index.esm.js";
4
4
  import { getToken } from "../../../../utils/common/index.esm.js";
5
- setBaseUrl(`${void 0}/rbac`);
5
+ setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
6
6
  const getAllUserAndDepartmentDropdown = createAsyncThunk(
7
7
  "share/getUser",
8
8
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/share-modal/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport {\n getV1PagesUserList,\n postV1PagesShare,\n} from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const getAllUserAndDepartmentDropdown = createAsyncThunk(\n \"share/getUser\",\n async () => {\n const response = await getV1PagesUserList({ ...getToken() });\n return response;\n },\n);\n\nexport const sharePage = createAsyncThunk(\n \"share/sharePage\",\n async (data: any) => {\n const response = await postV1PagesShare({ ...getToken(), data });\n return response;\n },\n);\n"],"names":["setRoleURL"],"mappings":";;;;AAUAA,WAAW,GAAG,MAAA,OAA4C;AAEnD,MAAM,kCAAkC;AAAA,EAC7C;AAAA,EACA,YAAY;AACV,UAAM,WAAW,MAAM,mBAAmB,EAAE,GAAG,SAAA,GAAY;AAC3D,WAAO;AAAA,EACT;AACF;AAEO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA,OAAO,SAAc;AACnB,UAAM,WAAW,MAAM,iBAAiB,EAAE,GAAG,SAAA,GAAY,MAAM;AAC/D,WAAO;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/share-modal/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport {\n getV1PagesUserList,\n postV1PagesShare,\n} from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const getAllUserAndDepartmentDropdown = createAsyncThunk(\n \"share/getUser\",\n async () => {\n const response = await getV1PagesUserList({ ...getToken() });\n return response;\n },\n);\n\nexport const sharePage = createAsyncThunk(\n \"share/sharePage\",\n async (data: any) => {\n const response = await postV1PagesShare({ ...getToken(), data });\n return response;\n },\n);\n"],"names":["setRoleURL"],"mappings":";;;;AAUAA,WAAW,GAAG,uBAAqC,OAAO;AAEnD,MAAM,kCAAkC;AAAA,EAC7C;AAAA,EACA,YAAY;AACV,UAAM,WAAW,MAAM,mBAAmB,EAAE,GAAG,SAAA,GAAY;AAC3D,WAAO;AAAA,EACT;AACF;AAEO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA,OAAO,SAAc;AACnB,UAAM,WAAW,MAAM,iBAAiB,EAAE,GAAG,SAAA,GAAY,MAAM;AAC/D,WAAO;AAAA,EACT;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),a=require("../../../../api-client/api.rbac/api/index.js"),r=require("../../../../api-client/api.system-feature/api/index.js"),s=require("../../../../utils/common/index.js");a.setBaseUrl("undefined/rbac");const t=e.createAsyncThunk("share/getUser",async()=>await r.getV1PagesUserList({...s.getToken()})),i=e.createAsyncThunk("share/sharePage",async e=>await r.postV1PagesShare({...s.getToken(),data:e}));exports.getAllUserAndDepartmentDropdown=t,exports.sharePage=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),a=require("../../../../api-client/api.rbac/api/index.js"),r=require("../../../../api-client/api.system-feature/api/index.js"),t=require("../../../../utils/common/index.js");a.setBaseUrl("http://127.0.0.1:4011/rbac");const s=e.createAsyncThunk("share/getUser",async()=>await r.getV1PagesUserList({...t.getToken()})),i=e.createAsyncThunk("share/sharePage",async e=>await r.postV1PagesShare({...t.getToken(),data:e}));exports.getAllUserAndDepartmentDropdown=s,exports.sharePage=i;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/share-modal/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport {\n getV1PagesUserList,\n postV1PagesShare,\n} from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const getAllUserAndDepartmentDropdown = createAsyncThunk(\n \"share/getUser\",\n async () => {\n const response = await getV1PagesUserList({ ...getToken() });\n return response;\n },\n);\n\nexport const sharePage = createAsyncThunk(\n \"share/sharePage\",\n async (data: any) => {\n const response = await postV1PagesShare({ ...getToken(), data });\n return response;\n },\n);\n"],"names":["setRoleURL","getAllUserAndDepartmentDropdown","createAsyncThunk","async","getV1PagesUserList","getToken","sharePage","data","postV1PagesShare"],"mappings":"mRAUAA,EAAAA,WAAW,kBAEJ,MAAMC,EAAkCC,EAAAA,iBAC7C,gBACAC,eACyBC,EAAAA,mBAAmB,IAAKC,EAAAA,cAKtCC,EAAYJ,EAAAA,iBACvB,kBACAC,MAAOI,SACkBC,EAAAA,iBAAiB,IAAKH,EAAAA,WAAYE"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/share-modal/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport {\n getV1PagesUserList,\n postV1PagesShare,\n} from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const getAllUserAndDepartmentDropdown = createAsyncThunk(\n \"share/getUser\",\n async () => {\n const response = await getV1PagesUserList({ ...getToken() });\n return response;\n },\n);\n\nexport const sharePage = createAsyncThunk(\n \"share/sharePage\",\n async (data: any) => {\n const response = await postV1PagesShare({ ...getToken(), data });\n return response;\n },\n);\n"],"names":["setRoleURL","getAllUserAndDepartmentDropdown","createAsyncThunk","async","getV1PagesUserList","getToken","sharePage","data","postV1PagesShare"],"mappings":"mRAUAA,EAAAA,WAAW,8BAEJ,MAAMC,EAAkCC,EAAAA,iBAC7C,gBACAC,eACyBC,EAAAA,mBAAmB,IAAKC,EAAAA,cAKtCC,EAAYJ,EAAAA,iBACvB,kBACAC,MAAOI,SACkBC,EAAAA,iBAAiB,IAAKH,EAAAA,WAAYE"}
@@ -166,7 +166,7 @@ const Upload = (props) => {
166
166
  );
167
167
  }
168
168
  };
169
- const BASE_URL = `${void 0}/document/v1/file-upload/`;
169
+ const BASE_URL = `${"http://127.0.0.1:4011"}/document/v1/file-upload/`;
170
170
  const handleConfirm = async () => {
171
171
  setIsUploading(true);
172
172
  const controller = new AbortController();
@@ -472,7 +472,7 @@ const Upload = (props) => {
472
472
  setIsConfirmDialogOpen(false);
473
473
  };
474
474
  const onReplace = async () => {
475
- const baseUrl = `${void 0}`;
475
+ const baseUrl = `${"http://127.0.0.1:4011"}`;
476
476
  const fileId = existingDriveData == null ? void 0 : existingDriveData.filter((file) => file.title === selectedFileTitle)[0].id;
477
477
  const headers = {
478
478
  "Content-type": "application/json; charset=utf-8"