@erpsquad/common 1.9.97 → 1.9.98
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.
- package/dist/chunks/{android-12-switch-D3fU6Qtm.esm.js → android-12-switch-C3WlgdKQ.esm.js} +11 -9
- package/dist/chunks/{android-12-switch-D3fU6Qtm.esm.js.map → android-12-switch-C3WlgdKQ.esm.js.map} +1 -1
- package/dist/chunks/{android-12-switch-B5UmJZxg.js → android-12-switch-CVH-tc4s.js} +11 -9
- package/dist/chunks/{android-12-switch-B5UmJZxg.js.map → android-12-switch-CVH-tc4s.js.map} +1 -1
- package/dist/chunks/{apiHelper-BvnhN2uo.esm.js → apiHelper-DOCeCGD-.esm.js} +9 -4
- package/dist/chunks/apiHelper-DOCeCGD-.esm.js.map +1 -0
- package/dist/chunks/{apiHelper-BrzRrxpx.js → apiHelper-DSbRnRC1.js} +9 -4
- package/dist/chunks/apiHelper-DSbRnRC1.js.map +1 -0
- package/dist/chunks/{appbar-Dn00gF0A.esm.js → appbar-CrH_SjSo.esm.js} +2 -2
- package/dist/chunks/{appbar-Dn00gF0A.esm.js.map → appbar-CrH_SjSo.esm.js.map} +1 -1
- package/dist/chunks/{appbar-dBRF2bDa.js → appbar-D6bWAv8x.js} +2 -2
- package/dist/chunks/{appbar-dBRF2bDa.js.map → appbar-D6bWAv8x.js.map} +1 -1
- package/dist/chunks/{default-data-BCroqbYg.js → default-data-9-BQ_0wq.js} +7 -7
- package/dist/chunks/{default-data-BCroqbYg.js.map → default-data-9-BQ_0wq.js.map} +1 -1
- package/dist/chunks/{default-data-otyfdCNu.esm.js → default-data-D1f8nbl6.esm.js} +7 -7
- package/dist/chunks/{default-data-otyfdCNu.esm.js.map → default-data-D1f8nbl6.esm.js.map} +1 -1
- package/dist/chunks/{fullScreen-BHrQ0vTa.js → fullScreen-BtbOZq50.js} +2 -2
- package/dist/chunks/{fullScreen-BHrQ0vTa.js.map → fullScreen-BtbOZq50.js.map} +1 -1
- package/dist/chunks/{fullScreen-BdyRsEBm.esm.js → fullScreen-DSPrY2tY.esm.js} +2 -2
- package/dist/chunks/{fullScreen-BdyRsEBm.esm.js.map → fullScreen-DSPrY2tY.esm.js.map} +1 -1
- package/dist/chunks/module-routes-config-B8IucBuj.js +19 -0
- package/dist/chunks/module-routes-config-B8IucBuj.js.map +1 -0
- package/dist/chunks/module-routes-config-CCkZEtfg.esm.js +20 -0
- package/dist/chunks/module-routes-config-CCkZEtfg.esm.js.map +1 -0
- package/dist/chunks/{modules-BDHGBfwa.js → modules-C3T2Pnwc.js} +10 -5
- package/dist/chunks/modules-C3T2Pnwc.js.map +1 -0
- package/dist/chunks/{modules-UIv-lDBW.esm.js → modules-D5_hDIg9.esm.js} +10 -5
- package/dist/chunks/modules-D5_hDIg9.esm.js.map +1 -0
- package/dist/chunks/{page-context-DRbgpYFO.js → page-context-BKgBvHxw.js} +2 -2
- package/dist/chunks/{page-context-DRbgpYFO.js.map → page-context-BKgBvHxw.js.map} +1 -1
- package/dist/chunks/{page-context-DLUB4Qx9.esm.js → page-context-DATjzley.esm.js} +2 -2
- package/dist/chunks/{page-context-DLUB4Qx9.esm.js.map → page-context-DATjzley.esm.js.map} +1 -1
- package/dist/chunks/pathname.hrms-2_BEXO_r.js +262 -0
- package/dist/chunks/pathname.hrms-2_BEXO_r.js.map +1 -0
- package/dist/chunks/pathname.hrms-C5ojsho0.esm.js +263 -0
- package/dist/chunks/pathname.hrms-C5ojsho0.esm.js.map +1 -0
- package/dist/chunks/{route-page-map-DPlRjCJm.esm.js → route-page-map-C4wM0M4A.esm.js} +2 -2
- package/dist/chunks/{route-page-map-DPlRjCJm.esm.js.map → route-page-map-C4wM0M4A.esm.js.map} +1 -1
- package/dist/chunks/{route-page-map-Btth_lp5.js → route-page-map-CJLyl6P1.js} +2 -2
- package/dist/chunks/{route-page-map-Btth_lp5.js.map → route-page-map-CJLyl6P1.js.map} +1 -1
- package/dist/chunks/{sidebar-Dcw_6aQ7.js → sidebar-D2Q9rQrz.js} +2 -2
- package/dist/chunks/{sidebar-Dcw_6aQ7.js.map → sidebar-D2Q9rQrz.js.map} +1 -1
- package/dist/chunks/{sidebar-PZqii53B.esm.js → sidebar-gl6ML9FB.esm.js} +2 -2
- package/dist/chunks/{sidebar-PZqii53B.esm.js.map → sidebar-gl6ML9FB.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-DY4Uklrh.esm.js → sidebarScreen-57BCIH9V.esm.js} +3 -3
- package/dist/chunks/{sidebarScreen-DY4Uklrh.esm.js.map → sidebarScreen-57BCIH9V.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-FH1CEH8k.js → sidebarScreen-CnsblLHN.js} +3 -3
- package/dist/chunks/{sidebarScreen-FH1CEH8k.js.map → sidebarScreen-CnsblLHN.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-UBPKubPh.js → uom-field-wrapper-CjqCwlbR.js} +9 -9
- package/dist/chunks/{uom-field-wrapper-UBPKubPh.js.map → uom-field-wrapper-CjqCwlbR.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-CeeTt3Ph.esm.js → uom-field-wrapper-CzXOP8fb.esm.js} +9 -9
- package/dist/chunks/{uom-field-wrapper-CeeTt3Ph.esm.js.map → uom-field-wrapper-CzXOP8fb.esm.js.map} +1 -1
- package/dist/chunks/{useAccountSetting-B5qXSiGa.js → useAccountSetting-ChWinjqQ.js} +2 -2
- package/dist/chunks/{useAccountSetting-B5qXSiGa.js.map → useAccountSetting-ChWinjqQ.js.map} +1 -1
- package/dist/chunks/{useAccountSetting-BcPg1o6H.esm.js → useAccountSetting-nBdUAbgS.esm.js} +2 -2
- package/dist/chunks/{useAccountSetting-BcPg1o6H.esm.js.map → useAccountSetting-nBdUAbgS.esm.js.map} +1 -1
- package/dist/chunks/{useReduxIntegration-CPPcf1p7.esm.js → useReduxIntegration--sS2yQ4F.esm.js} +2 -2
- package/dist/chunks/{useReduxIntegration-CPPcf1p7.esm.js.map → useReduxIntegration--sS2yQ4F.esm.js.map} +1 -1
- package/dist/chunks/{useReduxIntegration-DvUNoDIr.js → useReduxIntegration-D6MZKdkS.js} +2 -2
- package/dist/chunks/{useReduxIntegration-DvUNoDIr.js.map → useReduxIntegration-D6MZKdkS.js.map} +1 -1
- package/dist/components/index.esm.js +6 -6
- package/dist/components/index.js +6 -6
- package/dist/components/providers/ERPUIProvider.d.ts +1 -0
- package/dist/constants/index.esm.js +3 -3
- package/dist/constants/index.js +3 -3
- package/dist/constants/pathnames/pathname.hrms.d.ts +61 -3
- package/dist/contexts/index.esm.js +1 -1
- package/dist/contexts/index.js +1 -1
- package/dist/hooks/index.esm.js +3 -3
- package/dist/hooks/index.js +3 -3
- package/dist/index.esm.js +45 -40
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +19 -14
- package/dist/index.js.map +1 -1
- package/dist/layout/index.esm.js +2 -2
- package/dist/layout/index.js +2 -2
- package/dist/src/components/providers/ERPUIProvider.d.ts +1 -0
- package/dist/src/constants/pathnames/pathname.hrms.d.ts +61 -3
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/module-routes-config.d.ts +34 -0
- package/dist/src/views/form-builder/utils/common.d.ts +1 -1
- package/dist/utils/index.esm.js +5 -0
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/module-routes-config.d.ts +34 -0
- package/dist/views/form-builder/utils/common.d.ts +1 -1
- package/dist/views/index.esm.js +7 -7
- package/dist/views/index.js +6 -6
- package/package.json +1 -1
- package/dist/chunks/apiHelper-BrzRrxpx.js.map +0 -1
- package/dist/chunks/apiHelper-BvnhN2uo.esm.js.map +0 -1
- package/dist/chunks/modules-BDHGBfwa.js.map +0 -1
- package/dist/chunks/modules-UIv-lDBW.esm.js.map +0 -1
- package/dist/chunks/pathname.hrms-BVwbtB1M.js +0 -109
- package/dist/chunks/pathname.hrms-BVwbtB1M.js.map +0 -1
- package/dist/chunks/pathname.hrms-BiL7sQv0.esm.js +0 -110
- package/dist/chunks/pathname.hrms-BiL7sQv0.esm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-context-DLUB4Qx9.esm.js","sources":["../../src/contexts/permission-context.tsx","../../src/components/loaders/erp-loader.tsx","../../src/contexts/page-context.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport React, { createContext, useMemo, ReactNode } from \"react\";\nimport { formatLabel } from \"../utils/format-text\";\nimport { useAppSelector } from \"../redux/hooks\";\n\n// Define the types for permissions\ntype PermissionActions = \"canEdit\" | \"canView\" | \"canAdd\" | \"canDelete\" | \"canAddForOthers\";\ntype SubModulePermissions = Partial<Record<PermissionActions, boolean>>;\ntype ModulePermissions = SubModulePermissions & Record<string, SubModulePermissions>;\n\nexport interface PermissionsContextType {\n [module: string]: ModulePermissions;\n}\n\ninterface PermissionsProviderProps {\n children: ReactNode;\n}\n\n// Create a context with a default value\nexport const PermissionsContext = createContext<PermissionsContextType | null>(null);\n\nexport const PermissionsProvider: React.FC<PermissionsProviderProps> = ({ children }) => {\n const { setIsPermissionLoaded = false } = useAppSelector(\n (store) => store.roles ?? {}\n );\n\n const storagePermission = useMemo(() => {\n return localStorage.getItem(\"role-permission\")\n }, [localStorage.getItem(\"role-permission\")])\n\n const permissions: Record<string, any> = useMemo(() => {\n const rawValue = storagePermission;\n\n if (!rawValue) {\n return {};\n }\n\n try {\n return JSON.parse(rawValue);\n } catch (error) {\n console.warn(\n \"[PermissionsProvider] Failed to parse stored permissions. Clearing corrupted value.\",\n error\n );\n localStorage.removeItem(\"role-permission\");\n return {};\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setIsPermissionLoaded, storagePermission]);\n const computedPermissions = useMemo(() => {\n const checkPermission = (module: string, action: string): boolean =>\n Boolean(permissions?.[module]?.[action]);\n\n const dynamicPermissions: PermissionsContextType = {};\n\n Object.keys(permissions)\n // .filter((key) => key.startsWith(\"rental-\"))\n .forEach((module) => {\n const formattedModule = formatLabel(\n module.replace(/p$/gi, \"\").replace(/-p-/gi, \"-\")\n ).replace(/[^a-zA-Z0-9]/gi, \"\");\n\n // Extract the main module name (e.g., \"RentalQuotations\")\n const [baseModule, subModule, ...subModuleParts] = formattedModule.split(/(?=[A-Z])/);\n const subModuleName = subModuleParts.join(\"\");\n const bModule = baseModule + (subModule || \"\")\n\n if (!dynamicPermissions[bModule]) {\n dynamicPermissions[bModule] = {};\n }\n\n const actionMap: Record<string, PermissionActions> = {\n u: \"canEdit\",\n e: \"canEdit\",\n r: \"canView\",\n w: \"canAdd\",\n d: \"canDelete\",\n wo: \"canAddForOthers\"\n };\n\n Object.entries(actionMap).forEach(([key, actionName]) => {\n if (subModuleName) {\n // Store sub-module actions separately\n if (!dynamicPermissions[bModule][subModuleName]) {\n dynamicPermissions[bModule][subModuleName] = {};\n }\n const currentValue = (dynamicPermissions[bModule][subModuleName] as SubModulePermissions)[actionName] || false;\n (dynamicPermissions[bModule][subModuleName] as SubModulePermissions)[actionName] = currentValue || checkPermission(module, key);\n } else {\n // Store main module actions\n const currentValue = (dynamicPermissions[bModule] as SubModulePermissions)[actionName] || false;\n (dynamicPermissions[bModule] as SubModulePermissions)[actionName] = currentValue || checkPermission(module, key);\n }\n });\n });\n\n\n return dynamicPermissions;\n }, [permissions]);\n\n return (\n <PermissionsContext.Provider value={computedPermissions}>\n {children}\n </PermissionsContext.Provider>\n );\n};\n","import React from \"react\"\nimport { Box, CircularProgress, CircularProgressProps } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nconst Loader = styled(CircularProgress)(({theme})=>({\n color: theme.palette?.theme?.primary[500]||\"#1976d2\"\n}))\n\nconst ErpLoader = (props:CircularProgressProps) => {\n\treturn <Box position=\"fixed\" left='50%' top=\"50%\">\n <Loader size={50} {...props}/>\n </Box>\n};\n\nexport { ErpLoader };\nexport default ErpLoader;\n","/* eslint-disable react-refresh/only-export-components */\n/* eslint-disable no-mixed-spaces-and-tabs */\n\nimport React, { createContext, useCallback, useEffect, useMemo, useState, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport {\n\tgetV1FilterResource,\n\tgetV1FormBuilder,\n\tgetV1FormBuilderSchemaFieldsName,\n\tgetV1PagesResource,\n\tpatchV1PagesPageId\n} from '../api-client/api.system-feature/api';\nimport { IResources, routeToColumnsMap, routeToResourceMap } from '../constants/route-page-map'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { removeIdStaticIdsFromMongoObject } from '../utils/common';\nimport { RuleGroupType } from 'react-querybuilder';\nimport { MaterialTableColumnProps } from '../components/material-table/material-table';\nimport _ from 'lodash';\nimport { formatLabel } from '../utils/format-text';\nimport ErpLoader from '../components/loaders/erp-loader';\nimport { enqueueSnackbar } from 'notistack';\nimport { useTranslation } from 'react-i18next';\nimport { useAuth } from '../hooks/useAuth';\n// import { usePermissions } from '../hooks/use-permissions';\n\n/* Interfaces and types */\nexport type ViewType = 'Table' | 'Grid' | 'Kanban' | 'Calendar' | 'Gantt' | '';\n\ninterface SchemaFields {\n\tselect: string;\n\talias: string;\n\ttype: string;\n\tfilter_type?: string;\n\tfilter_name?: string;\n\trequired?: boolean;\n\tisOrderAllowed?: boolean;\n\tisDefault?: boolean;\n\tisFilterAllowed?: boolean;\n\tlabel?: string;\n\tkey: string;\n\taccessorKey?: string;\n\tjoinKey?: string;\n\tenum?: string | string[];\n}\nexport interface SavedViewType {\n\tlabel: ViewType;\n\tposition: number;\n}\nexport interface PageState {\n\t_id: string | number;\n\tname: string;\n\tpage_size: number;\n\tcolumn_order: string[];\n\tvisible_columns: MaterialTableColumnProps[];\n\tviews: SavedViewType[];\n\tactive_view: ViewType;\n\tfilters: RuleGroupType;\n\tfilterQueryString: string;\n\tsort: Record<any, any> | null;\n\tsearch: string;\n\tenabled_views: ViewType[];\n\tisShared: boolean;\n\tcolumn_sizes: Record<string, number>;\n}\n\nexport interface GeneratedColumnsState {\n\tcolumns: MaterialTableColumnProps[];\n\torderKeys: string[];\n}\n\nexport const initialFilter: RuleGroupType = { combinator: 'and', rules: [] };\n\ninterface PageContextValue {\n\tpageTemplateId: string;\n\tactivePage: PageState;\n\tupdatePageInfo: (updates: Partial<PageState>) => void;\n\tloading: boolean;\n\tisSaving: boolean;\n\terror: string | null;\n\tpages: any[];\n\tsavePages: () => void;\n\tsetActivePage: (data: any) => void;\n\tsetPages: React.Dispatch<any>;\n\tschemaFields: SchemaFields[];\n\tinitializeColumns: (columns: MaterialTableColumnProps[]) => void;\n\tgeneratedColumns: GeneratedColumnsState;\n\tsharedPages: any[];\n\tupdateGeneratedColumns: (updates: Partial<GeneratedColumnsState>) => void;\n\tformData: Record<string, any>\n\tsetFormData: (data: Record<string, any>) => void\n}\n\nexport const defaultPageState: PageState = {\n\t_id: '',\n\tname: '',\n\tpage_size: 10,\n\tcolumn_order: ['id'],\n\tvisible_columns: [],\n\tviews: [],\n\tactive_view: '',\n\tfilters: initialFilter,\n\tfilterQueryString: '',\n\tsort: null,\n\tsearch: '',\n\tenabled_views: ['Table', 'Grid', 'Kanban', 'Calendar', 'Gantt'],\n\tisShared: false,\n\tcolumn_sizes: {}\n};\ninterface PageProviderProps {\n\tchildren: React.ReactNode;\n\trouteToColumnsMap?: Record<string, any>;\n\trouteToResourceMap?: Record<string, any>;\n}\n\nconst UpdatePageInfo = () => { };\nconst UpdateGeneratedColumns = () => { };\n\nexport const PageContext = createContext<PageContextValue>({\n\tpageTemplateId: '',\n\tactivePage: defaultPageState,\n\tupdatePageInfo: UpdatePageInfo,\n\tloading: false,\n\tisSaving: false,\n\terror: null,\n\tpages: [],\n\tsharedPages: [],\n\tsavePages: () => { },\n\tsetActivePage: () => { },\n\tsetPages: () => { },\n\tschemaFields: [],\n\tinitializeColumns: () => { },\n\tgeneratedColumns: { columns: [], orderKeys: [] },\n\tupdateGeneratedColumns: UpdateGeneratedColumns,\n});\n\nfunction mergeArraysKeepingOrder(array1: string[], array2: string[]): string[] {\n\t// Create a Set from the first array for efficient lookups\n\tconst array1Set = new Set(array1);\n\n\t// Filter the second array to find elements not in the first array\n\tconst elementsToAdd = array2.filter((item) => !array1Set.has(item));\n\n\t// Combine the original first array with the new elements\n\treturn [...array1, ...elementsToAdd];\n}\n\nconst generateColumnSchema = (\n\tdefaultColumns: MaterialTableColumnProps[],\n\tschemaFields: SchemaFields[],\n\tcolumnOrders: string[],\n\tdColumns?: any[],\n\tt?: any\n): { columns: MaterialTableColumnProps[]; orderKeys: string[] } => {\n\ttry {\n\t\t// if (dColumns && dColumns?.length) {\n\t\t// \tdefaultColumns = defaultColumns.map((column) => {\n\t\t// \t\tconst f = dColumns.find((c) => c.accessorKey == column.accessorKey);\n\t\t// \t\treturn f || column\n\t\t// \t})\n\t\t// }\n\t\tif (dColumns && dColumns?.length) {\n\t\t\tdefaultColumns = defaultColumns.map((column) => {\n\t\t\t\tconst f = dColumns.find((c) => c.accessorKey == column.accessorKey);\n\t\t\t\tconst merged = f ? { ...column, ...f } : column;\n\t\t\t\treturn merged\n\t\t\t})\n\t\t}\n\t\tlet orderKeys = columnOrders.length\n\t\t\t? columnOrders\n\t\t\t: (defaultColumns.map((column) => column.accessorKey) as string[]);\n\t\tconst getAccesorKeyViaField = (field: SchemaFields) =>\n\t\t\t(field.type === 'object' || field?.join) ? `${field.alias}.${field.accessorKey}` : field.key;\n\n\t\t// Clean up schema fields by removing \"__replaceKey\" from the keys\n\t\tconst updatedFields = schemaFields.map((field) => ({\n\t\t\t...field,\n\t\t\tkey: field.key.replace('__replaceKey', '')\n\t\t})).filter((field) => !field.is_inner_join);\n\n\t\tconst uniqueFields = _.differenceWith(\n\t\t\tupdatedFields,\n\t\t\tupdatedFields,\n\t\t\t(fieldA, fieldB) => fieldA.key === fieldB?.joinKey\n\t\t);\n\n\t\t// Find fields in schemaFields but not in defaultColumns based on accessorKey\n\t\tconst unmatchedFields = _.differenceWith(\n\t\t\tuniqueFields,\n\t\t\tdefaultColumns,\n\t\t\t(field, column) => getAccesorKeyViaField(field) === column.accessorKey\n\t\t);\n\n\t\t// Map unique fields to MaterialTableColumn structure\n\t\tconst additionalColumns: MaterialTableColumnProps[] = unmatchedFields.map(\n\t\t\t(field) => ({\n\t\t\t\theader: t ? formatLabel(t(field?.label)?.replace('_data', '') || '') : formatLabel(field?.label?.replace('_data', '') || ''),\n\t\t\t\taccessorKey: getAccesorKeyViaField(field),\n\t\t\t\tvisible: false,\n\t\t\t\ttype: field?.enum ? 'status' : field.type,\n\t\t\t\t...(field.type === 'array' && { typeArrayAccessorKey: field.accessorKey || '' }),\n\t\t\t\tenableSorting: (field.type === 'array' || field.type === 'object' || field?.join) ? false : true,\n\t\t\t\t...(field?.type === 'boolean' ? {\n\t\t\t\t\ttypeBooleanLabels: field?.values?.length ? _.mapValues(_.keyBy(\n\t\t\t\t\t\tfield?.values.map(item => ({\n\t\t\t\t\t\t\tkey: item.name,\n\t\t\t\t\t\t\tvalue: item.label\n\t\t\t\t\t\t})),\n\t\t\t\t\t\t'key'\n\t\t\t\t\t), 'value') : { 0: \"Inactive\", 1: \"Active\", false: \"Inactive\", true: \"Active\" }\n\t\t\t\t} : {})\n\t\t\t})\n\t\t);\n\n\t\tconst updatedDefaultColumns = defaultColumns?.map((column) => {\n\t\t\tconst field = schemaFields.find((field) => getAccesorKeyViaField(field) === column.accessorKey);\n\t\t\treturn {\n\t\t\t\t...column,\n\t\t\t\t...((field?.type === 'object' || field?.joinKey || column.enableSorting === false) ? { enableSorting: false } : {})\n\t\t\t};\n\t\t});\n\n\t\t// Combine default columns and additional columns\n\t\tconst columns = [...updatedDefaultColumns, ...additionalColumns];\n\n\t\t// Generate an array of column keys for ordering\n\t\tconst nOrderKeys = columns.map((column) => column.accessorKey) as string[];\n\n\t\torderKeys = mergeArraysKeepingOrder(orderKeys, nOrderKeys);\n\n\t\treturn { columns, orderKeys };\n\t} catch (error) {\n\t\treturn {\n\t\t\tcolumns: defaultColumns,\n\t\t\torderKeys: defaultColumns.map((column) => column.accessorKey) as string[]\n\t\t};\n\t}\n};\n\nexport const PageProvider: React.FC<PageProviderProps> = ({ children, routeToColumnsMap: customRouteToColumnsMap, routeToResourceMap: customRouteToResourceMap }) => {\n\tconsole.log(\"🚀 ~ PageProvider ~ customRouteToResourceMap:\", customRouteToResourceMap)\n\tconsole.log(\"🚀 ~ PageProvider ~ customRouteToColumnsMap:\", customRouteToColumnsMap)\n\tconst location = useLocation();\n\tconst [activePage, setActivePageData] = useState<PageState>(defaultPageState);\n\t// const permissions=usePermissions();\n\tconst [schemaFields, setSchemaFields] = useState<SchemaFields[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(true);\n\tconst [isSaving, setIsSaving] = useState<boolean>(false);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [pages, setPages] = useState<any>([]);\n\tconst [sharedPages, setSharedPages] = useState<any>([]);\n\tconst [isChanged, setIsChanged] = useState<boolean>(false);\n\tconst [pageTemplateId, setPageTemplateId] = useState<string>('');\n\tconst [isInitialLoad, setIsInitialLoad] = useState<boolean>(true);\n\tconst [isCreatePage, setIsCreatePage] = useState<boolean>(false);\n\tconst [formData, setFormData] = useState<any>({});\n\tconst [generatedColumns, setGeneratedColumns] = useState<{\n\t\tcolumns: MaterialTableColumnProps[];\n\t\torderKeys: string[];\n\t}>({ columns: [], orderKeys: [] });\n\tconst { user } = useAuth()\n\t// Add ref to track current pathname for race condition prevention\n\tconst currentPathnameRef = useRef<string>(location.pathname);\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\n\n\t// Get current page's default columns and resources\n\tconst defaultColumns: any[] = useMemo(() => {\n\t\tconst columns = (customRouteToColumnsMap?.[curPathName] || routeToColumnsMap[curPathName])?.defaultColumns || [];\n\t\treturn columns;\n\t}, [curPathName, customRouteToColumnsMap]);\n\n\tconst resources: IResources = useMemo(() => {\n\t\tconst resource = customRouteToResourceMap?.[curPathName] || routeToResourceMap[curPathName] || null;\n\t\treturn resource;\n\t}, [curPathName, customRouteToResourceMap]);\n\n\t//Translation\n\tconst { t } = useTranslation()\n\n\t// eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n\tconst initializeColumns = (columns: MaterialTableColumnProps[]) => {\n\t\t//! Remove the function if not needed\n\t};\n\n\t// Fetch page-related information from API\n\tconst fetchPageData = useCallback(\n\t\tasync (currentPath: string, currentDefaultColumns: any[], currentResources: IResources) => {\n\t\t\tconsole.log('PageContext: Entering fetchPageData', { currentPath, currentDefaultColumnsLength: currentDefaultColumns?.length, hasResources: !!currentResources });\n\n\t\t\t// Check if this request is still valid (pathname hasn't changed)\n\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\tconsole.log('Aborting fetchPageData - pathname changed', { ref: currentPathnameRef.current, current: currentPath });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetLoading(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconsole.log('PageContext: Resources Check:', { currentDefaultColumns, currentResources });\n\t\t\t\tif (currentDefaultColumns.length && currentResources) {\n\t\t\t\t\tconst { pageResource = '', fieldResource = '', formResource = '' } = currentResources;\n\n\t\t\t\t\tconsole.log('PageContext: Pathname:', currentPath);\n\t\t\t\t\tconsole.log('PageContext: Default Columns:', currentDefaultColumns);\n\t\t\t\t\tconsole.log('PageContext: Resources:', currentResources);\n\n\t\t\t\t\t// Double-check pathname hasn't changed before making API calls\n\t\t\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst [pageResponse, fieldResponse, formResponse] = await Promise.all([\n\t\t\t\t\t\tpageResource ? getV1PagesResource({ ...getToken(), resource: pageResource }) : Promise.resolve(null),\n\n\t\t\t\t\t\tgetV1FormBuilderSchemaFieldsName({\n\t\t\t\t\t\t\tname: fieldResource,\n\t\t\t\t\t\t\t...getToken(),\n\t\t\t\t\t\t\tskip: 0,\n\t\t\t\t\t\t\tlimit: 999\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tgetV1FormBuilder({\n\t\t\t\t\t\t\t...getToken(),\n\t\t\t\t\t\t\tfilters: `(resource.eq=${formResource}&company_id.eq=${user?.company_id})`,\n\t\t\t\t\t\t})\n\t\t\t\t\t]);\n\n\t\t\t\t\tconsole.log('PageContext: API Responses:', { pageResponse, fieldResponse, formResponse });\n\n\t\t\t\t\t// Final check - ensure pathname still matches\n\t\t\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\t\t\tconsole.log('Aborting fetchPageData - pathname changed after API call');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fields = fieldResponse?.data?.fields?.map(f => ({ ...f, label: !f?.label?.trim() ? formatLabel(f.key) : f.label }));\n\n\t\t\t\t\tconst gColumns = generateColumnSchema(currentDefaultColumns, fields, [], [], t);\n\t\t\t\t\tconsole.log('PageContext: Generated Columns:', gColumns);\n\n\t\t\t\t\tconst pages =\n\t\t\t\t\t\tpageResponse?.data?.pages?.map((p) => ({\n\t\t\t\t\t\t\t...defaultPageState,\n\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\tvisible_columns: generateColumnSchema(\n\t\t\t\t\t\t\t\tp.visible_columns?.length ? p.visible_columns : currentDefaultColumns,\n\t\t\t\t\t\t\t\tfields,\n\t\t\t\t\t\t\t\tp.column_order || [],\n\t\t\t\t\t\t\t\tcurrentDefaultColumns,\n\t\t\t\t\t\t\t\tt\n\t\t\t\t\t\t\t).columns,\n\t\t\t\t\t\t\tcolumn_order: mergeArraysKeepingOrder(\n\t\t\t\t\t\t\t\tp.column_order || [],\n\t\t\t\t\t\t\t\t_.uniq(gColumns.orderKeys)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})) || [];\n\t\t\t\t\tconst sharedPages =\n\t\t\t\t\t\tpageResponse?.data?.shared_pages?.map((sPages) => ({\n\t\t\t\t\t\t\t...sPages.details,\n\t\t\t\t\t\t\tisShared: true,\n\t\t\t\t\t\t\towner: sPages.owner,\n\t\t\t\t\t\t\t_id: sPages.id\n\t\t\t\t\t\t})) || [];\n\n\t\t\t\t\tconst uPages = [...pages, ...sharedPages];\n\n\t\t\t\t\t// Only update state if we're still on the same path\n\t\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\t\tsetSchemaFields(fields),\n\t\t\t\t\t\t\tsetGeneratedColumns(gColumns),\n\t\t\t\t\t\t\tsetPageTemplateId(pageResponse?.data?._id),\n\t\t\t\t\t\t\tsetSharedPages(sharedPages),\n\t\t\t\t\t\t\tsetPages(uPages || []),\n\t\t\t\t\t\t\tsetFormData(formResponse?.data?.form?.[0] || {}),\n\t\t\t\t\t\t\tsetActivePageData((prev) => ({\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t...(pages?.[0] || {}) // Merge API response with current state\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// Only set error if we're still on the same path\n\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\tsetError('Failed to load page data');\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Only update loading state if we're still on the same path\n\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t//eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[] // Remove dependencies to prevent stale closures\n\t);\n\n\t// Update page state dynamically\n\tconst updatePageInfo = (updates: Partial<PageState>) => {\n\t\tsetActivePageData((prev) => ({\n\t\t\t...prev,\n\t\t\t...updates\n\t\t}));\n\t\t!isInitialLoad && setIsChanged(true)\n\t\tsetIsInitialLoad(false)\n\t};\n\n\t// Update columns state dynamically\n\tconst updateGeneratedColumns = (updates: Partial<GeneratedColumnsState>) => {\n\t\tsetGeneratedColumns((prev) => ({\n\t\t\t...prev,\n\t\t\t...updates\n\t\t}));\n\t};\n\n\tconst setActivePage = (page: PageState) => {\n\t\tconst uPages = pages.map((p) =>\n\t\t\tp._id == activePage?._id ? activePage : p\n\t\t);\n\t\tsetPages(uPages);\n\t\tsetActivePageData(page);\n\t};\n\n\tconst savePages = async () => {\n\t\tsetError(null);\n\t\tsetIsSaving(true);\n\t\tawait addOrDeletePage()\n\t\tsetTimeout(() => {\n\t\t\tsetIsSaving(false);\n\t\t}, 1000);\n\t};\n\tconst fetchSavedFilters = async (): Promise<void> => {\n\n\t\tawait getV1FilterResource({ ...getToken(), resource: resources?.pageResource || resources?.fieldResource })\n\n\t};\n\n\tconst addOrDeletePage = async (restPages?: any[]) => {\n\t\ttry {\n\t\t\tconst filteredPages = restPages?.length ? restPages : pages.filter((page) => !page.isShared);\n\t\t\tconst uPages = filteredPages.map((p) =>\n\t\t\t\t(p._id == activePage?._id && activePage.name == p.name) ? activePage : p\n\t\t\t);\n\t\t\tconst sanitizedPages = removeIdStaticIdsFromMongoObject(uPages);\n\n\t\t\tconst response = await patchV1PagesPageId({\n\t\t\t\t...getToken(),\n\t\t\t\t...{ page_id: pageTemplateId, pages: sanitizedPages }\n\t\t\t});\n\t\t\tif (response.status_code === 200) {\n\t\t\t\tconst updatedPages = response?.data?.pages || [];\n\t\t\t\tsetPages(updatedPages);\n\t\t\t\tfetchSavedFilters();\n\t\t\t\tsetActivePageData((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\t...(updatedPages.find((p) => p.name == prev.name) || {})\n\t\t\t\t}));\n\t\t\t\tsetIsChanged(false);\n\t\t\t\tsetIsCreatePage(false);\n\t\t\t\tsetFormData(response?.data?.form?.[0] || {});\n\t\t\t\tconst msg = restPages?.length ? t('pages.msg.delete') : t('pages.msg.save')\n\t\t\t\tenqueueSnackbar(msg);\n\t\t\t}\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\tsetError('Failed to save page data');\n\t\t}\n\t}\n\n\tconst deletePage = async (pages: string) => {\n\t\taddOrDeletePage(pages);\n\t}\n\n\t// Handle pathname changes\n\tuseEffect(() => {\n\t\t// Update the ref immediately\n\t\tcurrentPathnameRef.current = curPathName;\n\n\t\t// Reset state for new page\n\t\tsetLoading(true);\n\t\tsetIsSaving(false);\n\t\tsetActivePageData(defaultPageState);\n\t\tsetIsChanged(false);\n\t\tsetIsInitialLoad(true);\n\n\t\t// Clear previous data to prevent showing stale data\n\t\tsetSchemaFields([]);\n\t\tsetGeneratedColumns({ columns: [], orderKeys: [] });\n\t\tsetPages([]);\n\t\tsetSharedPages([]);\n\t\tsetPageTemplateId('');\n\t\tsetError(null);\n\n\t\t// Fetch data for new page with current values\n\t\tconsole.log('PageContext: useEffect Triggered', { curPathName, defaultColumnsLength: defaultColumns?.length, hasResources: !!resources });\n\t\tfetchPageData(curPathName, defaultColumns, resources);\n\n\t\treturn () => { setLoading(true) }\n\t\t//eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [curPathName, JSON.stringify(defaultColumns), JSON.stringify(resources)]); // Remove other dependencies to prevent issues\n\n\n\t// Removed loading check to prevent blank page during loading\n\tif ((loading || curPathName != currentPathnameRef.current) && resources) {\n\t\treturn <ErpLoader />; // Show loader before rendering anything else\n\t}\n\n\tif ((loading || curPathName != currentPathnameRef.current) && resources) {\n\t\treturn <ErpLoader />; // Show loader before rendering anything else\n\t}\n\n\treturn (\n\t\t<PageContext.Provider\n\t\t\tvalue={{\n\t\t\t\tpageTemplateId,\n\t\t\t\tactivePage,\n\t\t\t\tpages,\n\t\t\t\tsharedPages,\n\t\t\t\tschemaFields,\n\t\t\t\tsetPages,\n\t\t\t\tupdatePageInfo,\n\t\t\t\tsavePages,\n\t\t\t\tsetActivePage,\n\t\t\t\tisSaving,\n\t\t\t\tloading,\n\t\t\t\terror,\n\t\t\t\tinitializeColumns,\n\t\t\t\tgeneratedColumns,\n\t\t\t\tupdateGeneratedColumns,\n\t\t\t\tisChanged,\n\t\t\t\tdeletePage,\n\t\t\t\tisCreatePage,\n\t\t\t\tsetIsCreatePage,\n\t\t\t\taddOrDeletePage,\n\t\t\t\tsetIsChanged,\n\t\t\t\tformData\n\t\t\t}}>\n\t\t\t{children}\n\t\t</PageContext.Provider>\n\t);\n};\n"],"names":["jsx","field","_a","pages","sharedPages"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-context-DATjzley.esm.js","sources":["../../src/contexts/permission-context.tsx","../../src/components/loaders/erp-loader.tsx","../../src/contexts/page-context.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport React, { createContext, useMemo, ReactNode } from \"react\";\nimport { formatLabel } from \"../utils/format-text\";\nimport { useAppSelector } from \"../redux/hooks\";\n\n// Define the types for permissions\ntype PermissionActions = \"canEdit\" | \"canView\" | \"canAdd\" | \"canDelete\" | \"canAddForOthers\";\ntype SubModulePermissions = Partial<Record<PermissionActions, boolean>>;\ntype ModulePermissions = SubModulePermissions & Record<string, SubModulePermissions>;\n\nexport interface PermissionsContextType {\n [module: string]: ModulePermissions;\n}\n\ninterface PermissionsProviderProps {\n children: ReactNode;\n}\n\n// Create a context with a default value\nexport const PermissionsContext = createContext<PermissionsContextType | null>(null);\n\nexport const PermissionsProvider: React.FC<PermissionsProviderProps> = ({ children }) => {\n const { setIsPermissionLoaded = false } = useAppSelector(\n (store) => store.roles ?? {}\n );\n\n const storagePermission = useMemo(() => {\n return localStorage.getItem(\"role-permission\")\n }, [localStorage.getItem(\"role-permission\")])\n\n const permissions: Record<string, any> = useMemo(() => {\n const rawValue = storagePermission;\n\n if (!rawValue) {\n return {};\n }\n\n try {\n return JSON.parse(rawValue);\n } catch (error) {\n console.warn(\n \"[PermissionsProvider] Failed to parse stored permissions. Clearing corrupted value.\",\n error\n );\n localStorage.removeItem(\"role-permission\");\n return {};\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setIsPermissionLoaded, storagePermission]);\n const computedPermissions = useMemo(() => {\n const checkPermission = (module: string, action: string): boolean =>\n Boolean(permissions?.[module]?.[action]);\n\n const dynamicPermissions: PermissionsContextType = {};\n\n Object.keys(permissions)\n // .filter((key) => key.startsWith(\"rental-\"))\n .forEach((module) => {\n const formattedModule = formatLabel(\n module.replace(/p$/gi, \"\").replace(/-p-/gi, \"-\")\n ).replace(/[^a-zA-Z0-9]/gi, \"\");\n\n // Extract the main module name (e.g., \"RentalQuotations\")\n const [baseModule, subModule, ...subModuleParts] = formattedModule.split(/(?=[A-Z])/);\n const subModuleName = subModuleParts.join(\"\");\n const bModule = baseModule + (subModule || \"\")\n\n if (!dynamicPermissions[bModule]) {\n dynamicPermissions[bModule] = {};\n }\n\n const actionMap: Record<string, PermissionActions> = {\n u: \"canEdit\",\n e: \"canEdit\",\n r: \"canView\",\n w: \"canAdd\",\n d: \"canDelete\",\n wo: \"canAddForOthers\"\n };\n\n Object.entries(actionMap).forEach(([key, actionName]) => {\n if (subModuleName) {\n // Store sub-module actions separately\n if (!dynamicPermissions[bModule][subModuleName]) {\n dynamicPermissions[bModule][subModuleName] = {};\n }\n const currentValue = (dynamicPermissions[bModule][subModuleName] as SubModulePermissions)[actionName] || false;\n (dynamicPermissions[bModule][subModuleName] as SubModulePermissions)[actionName] = currentValue || checkPermission(module, key);\n } else {\n // Store main module actions\n const currentValue = (dynamicPermissions[bModule] as SubModulePermissions)[actionName] || false;\n (dynamicPermissions[bModule] as SubModulePermissions)[actionName] = currentValue || checkPermission(module, key);\n }\n });\n });\n\n\n return dynamicPermissions;\n }, [permissions]);\n\n return (\n <PermissionsContext.Provider value={computedPermissions}>\n {children}\n </PermissionsContext.Provider>\n );\n};\n","import React from \"react\"\nimport { Box, CircularProgress, CircularProgressProps } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nconst Loader = styled(CircularProgress)(({theme})=>({\n color: theme.palette?.theme?.primary[500]||\"#1976d2\"\n}))\n\nconst ErpLoader = (props:CircularProgressProps) => {\n\treturn <Box position=\"fixed\" left='50%' top=\"50%\">\n <Loader size={50} {...props}/>\n </Box>\n};\n\nexport { ErpLoader };\nexport default ErpLoader;\n","/* eslint-disable react-refresh/only-export-components */\n/* eslint-disable no-mixed-spaces-and-tabs */\n\nimport React, { createContext, useCallback, useEffect, useMemo, useState, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport {\n\tgetV1FilterResource,\n\tgetV1FormBuilder,\n\tgetV1FormBuilderSchemaFieldsName,\n\tgetV1PagesResource,\n\tpatchV1PagesPageId\n} from '../api-client/api.system-feature/api';\nimport { IResources, routeToColumnsMap, routeToResourceMap } from '../constants/route-page-map'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { removeIdStaticIdsFromMongoObject } from '../utils/common';\nimport { RuleGroupType } from 'react-querybuilder';\nimport { MaterialTableColumnProps } from '../components/material-table/material-table';\nimport _ from 'lodash';\nimport { formatLabel } from '../utils/format-text';\nimport ErpLoader from '../components/loaders/erp-loader';\nimport { enqueueSnackbar } from 'notistack';\nimport { useTranslation } from 'react-i18next';\nimport { useAuth } from '../hooks/useAuth';\n// import { usePermissions } from '../hooks/use-permissions';\n\n/* Interfaces and types */\nexport type ViewType = 'Table' | 'Grid' | 'Kanban' | 'Calendar' | 'Gantt' | '';\n\ninterface SchemaFields {\n\tselect: string;\n\talias: string;\n\ttype: string;\n\tfilter_type?: string;\n\tfilter_name?: string;\n\trequired?: boolean;\n\tisOrderAllowed?: boolean;\n\tisDefault?: boolean;\n\tisFilterAllowed?: boolean;\n\tlabel?: string;\n\tkey: string;\n\taccessorKey?: string;\n\tjoinKey?: string;\n\tenum?: string | string[];\n}\nexport interface SavedViewType {\n\tlabel: ViewType;\n\tposition: number;\n}\nexport interface PageState {\n\t_id: string | number;\n\tname: string;\n\tpage_size: number;\n\tcolumn_order: string[];\n\tvisible_columns: MaterialTableColumnProps[];\n\tviews: SavedViewType[];\n\tactive_view: ViewType;\n\tfilters: RuleGroupType;\n\tfilterQueryString: string;\n\tsort: Record<any, any> | null;\n\tsearch: string;\n\tenabled_views: ViewType[];\n\tisShared: boolean;\n\tcolumn_sizes: Record<string, number>;\n}\n\nexport interface GeneratedColumnsState {\n\tcolumns: MaterialTableColumnProps[];\n\torderKeys: string[];\n}\n\nexport const initialFilter: RuleGroupType = { combinator: 'and', rules: [] };\n\ninterface PageContextValue {\n\tpageTemplateId: string;\n\tactivePage: PageState;\n\tupdatePageInfo: (updates: Partial<PageState>) => void;\n\tloading: boolean;\n\tisSaving: boolean;\n\terror: string | null;\n\tpages: any[];\n\tsavePages: () => void;\n\tsetActivePage: (data: any) => void;\n\tsetPages: React.Dispatch<any>;\n\tschemaFields: SchemaFields[];\n\tinitializeColumns: (columns: MaterialTableColumnProps[]) => void;\n\tgeneratedColumns: GeneratedColumnsState;\n\tsharedPages: any[];\n\tupdateGeneratedColumns: (updates: Partial<GeneratedColumnsState>) => void;\n\tformData: Record<string, any>\n\tsetFormData: (data: Record<string, any>) => void\n}\n\nexport const defaultPageState: PageState = {\n\t_id: '',\n\tname: '',\n\tpage_size: 10,\n\tcolumn_order: ['id'],\n\tvisible_columns: [],\n\tviews: [],\n\tactive_view: '',\n\tfilters: initialFilter,\n\tfilterQueryString: '',\n\tsort: null,\n\tsearch: '',\n\tenabled_views: ['Table', 'Grid', 'Kanban', 'Calendar', 'Gantt'],\n\tisShared: false,\n\tcolumn_sizes: {}\n};\ninterface PageProviderProps {\n\tchildren: React.ReactNode;\n\trouteToColumnsMap?: Record<string, any>;\n\trouteToResourceMap?: Record<string, any>;\n}\n\nconst UpdatePageInfo = () => { };\nconst UpdateGeneratedColumns = () => { };\n\nexport const PageContext = createContext<PageContextValue>({\n\tpageTemplateId: '',\n\tactivePage: defaultPageState,\n\tupdatePageInfo: UpdatePageInfo,\n\tloading: false,\n\tisSaving: false,\n\terror: null,\n\tpages: [],\n\tsharedPages: [],\n\tsavePages: () => { },\n\tsetActivePage: () => { },\n\tsetPages: () => { },\n\tschemaFields: [],\n\tinitializeColumns: () => { },\n\tgeneratedColumns: { columns: [], orderKeys: [] },\n\tupdateGeneratedColumns: UpdateGeneratedColumns,\n});\n\nfunction mergeArraysKeepingOrder(array1: string[], array2: string[]): string[] {\n\t// Create a Set from the first array for efficient lookups\n\tconst array1Set = new Set(array1);\n\n\t// Filter the second array to find elements not in the first array\n\tconst elementsToAdd = array2.filter((item) => !array1Set.has(item));\n\n\t// Combine the original first array with the new elements\n\treturn [...array1, ...elementsToAdd];\n}\n\nconst generateColumnSchema = (\n\tdefaultColumns: MaterialTableColumnProps[],\n\tschemaFields: SchemaFields[],\n\tcolumnOrders: string[],\n\tdColumns?: any[],\n\tt?: any\n): { columns: MaterialTableColumnProps[]; orderKeys: string[] } => {\n\ttry {\n\t\t// if (dColumns && dColumns?.length) {\n\t\t// \tdefaultColumns = defaultColumns.map((column) => {\n\t\t// \t\tconst f = dColumns.find((c) => c.accessorKey == column.accessorKey);\n\t\t// \t\treturn f || column\n\t\t// \t})\n\t\t// }\n\t\tif (dColumns && dColumns?.length) {\n\t\t\tdefaultColumns = defaultColumns.map((column) => {\n\t\t\t\tconst f = dColumns.find((c) => c.accessorKey == column.accessorKey);\n\t\t\t\tconst merged = f ? { ...column, ...f } : column;\n\t\t\t\treturn merged\n\t\t\t})\n\t\t}\n\t\tlet orderKeys = columnOrders.length\n\t\t\t? columnOrders\n\t\t\t: (defaultColumns.map((column) => column.accessorKey) as string[]);\n\t\tconst getAccesorKeyViaField = (field: SchemaFields) =>\n\t\t\t(field.type === 'object' || field?.join) ? `${field.alias}.${field.accessorKey}` : field.key;\n\n\t\t// Clean up schema fields by removing \"__replaceKey\" from the keys\n\t\tconst updatedFields = schemaFields.map((field) => ({\n\t\t\t...field,\n\t\t\tkey: field.key.replace('__replaceKey', '')\n\t\t})).filter((field) => !field.is_inner_join);\n\n\t\tconst uniqueFields = _.differenceWith(\n\t\t\tupdatedFields,\n\t\t\tupdatedFields,\n\t\t\t(fieldA, fieldB) => fieldA.key === fieldB?.joinKey\n\t\t);\n\n\t\t// Find fields in schemaFields but not in defaultColumns based on accessorKey\n\t\tconst unmatchedFields = _.differenceWith(\n\t\t\tuniqueFields,\n\t\t\tdefaultColumns,\n\t\t\t(field, column) => getAccesorKeyViaField(field) === column.accessorKey\n\t\t);\n\n\t\t// Map unique fields to MaterialTableColumn structure\n\t\tconst additionalColumns: MaterialTableColumnProps[] = unmatchedFields.map(\n\t\t\t(field) => ({\n\t\t\t\theader: t ? formatLabel(t(field?.label)?.replace('_data', '') || '') : formatLabel(field?.label?.replace('_data', '') || ''),\n\t\t\t\taccessorKey: getAccesorKeyViaField(field),\n\t\t\t\tvisible: false,\n\t\t\t\ttype: field?.enum ? 'status' : field.type,\n\t\t\t\t...(field.type === 'array' && { typeArrayAccessorKey: field.accessorKey || '' }),\n\t\t\t\tenableSorting: (field.type === 'array' || field.type === 'object' || field?.join) ? false : true,\n\t\t\t\t...(field?.type === 'boolean' ? {\n\t\t\t\t\ttypeBooleanLabels: field?.values?.length ? _.mapValues(_.keyBy(\n\t\t\t\t\t\tfield?.values.map(item => ({\n\t\t\t\t\t\t\tkey: item.name,\n\t\t\t\t\t\t\tvalue: item.label\n\t\t\t\t\t\t})),\n\t\t\t\t\t\t'key'\n\t\t\t\t\t), 'value') : { 0: \"Inactive\", 1: \"Active\", false: \"Inactive\", true: \"Active\" }\n\t\t\t\t} : {})\n\t\t\t})\n\t\t);\n\n\t\tconst updatedDefaultColumns = defaultColumns?.map((column) => {\n\t\t\tconst field = schemaFields.find((field) => getAccesorKeyViaField(field) === column.accessorKey);\n\t\t\treturn {\n\t\t\t\t...column,\n\t\t\t\t...((field?.type === 'object' || field?.joinKey || column.enableSorting === false) ? { enableSorting: false } : {})\n\t\t\t};\n\t\t});\n\n\t\t// Combine default columns and additional columns\n\t\tconst columns = [...updatedDefaultColumns, ...additionalColumns];\n\n\t\t// Generate an array of column keys for ordering\n\t\tconst nOrderKeys = columns.map((column) => column.accessorKey) as string[];\n\n\t\torderKeys = mergeArraysKeepingOrder(orderKeys, nOrderKeys);\n\n\t\treturn { columns, orderKeys };\n\t} catch (error) {\n\t\treturn {\n\t\t\tcolumns: defaultColumns,\n\t\t\torderKeys: defaultColumns.map((column) => column.accessorKey) as string[]\n\t\t};\n\t}\n};\n\nexport const PageProvider: React.FC<PageProviderProps> = ({ children, routeToColumnsMap: customRouteToColumnsMap, routeToResourceMap: customRouteToResourceMap }) => {\n\tconsole.log(\"🚀 ~ PageProvider ~ customRouteToResourceMap:\", customRouteToResourceMap)\n\tconsole.log(\"🚀 ~ PageProvider ~ customRouteToColumnsMap:\", customRouteToColumnsMap)\n\tconst location = useLocation();\n\tconst [activePage, setActivePageData] = useState<PageState>(defaultPageState);\n\t// const permissions=usePermissions();\n\tconst [schemaFields, setSchemaFields] = useState<SchemaFields[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(true);\n\tconst [isSaving, setIsSaving] = useState<boolean>(false);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [pages, setPages] = useState<any>([]);\n\tconst [sharedPages, setSharedPages] = useState<any>([]);\n\tconst [isChanged, setIsChanged] = useState<boolean>(false);\n\tconst [pageTemplateId, setPageTemplateId] = useState<string>('');\n\tconst [isInitialLoad, setIsInitialLoad] = useState<boolean>(true);\n\tconst [isCreatePage, setIsCreatePage] = useState<boolean>(false);\n\tconst [formData, setFormData] = useState<any>({});\n\tconst [generatedColumns, setGeneratedColumns] = useState<{\n\t\tcolumns: MaterialTableColumnProps[];\n\t\torderKeys: string[];\n\t}>({ columns: [], orderKeys: [] });\n\tconst { user } = useAuth()\n\t// Add ref to track current pathname for race condition prevention\n\tconst currentPathnameRef = useRef<string>(location.pathname);\n\tconst curPathName = useMemo(() => location.pathname, [location.pathname])\n\n\t// Get current page's default columns and resources\n\tconst defaultColumns: any[] = useMemo(() => {\n\t\tconst columns = (customRouteToColumnsMap?.[curPathName] || routeToColumnsMap[curPathName])?.defaultColumns || [];\n\t\treturn columns;\n\t}, [curPathName, customRouteToColumnsMap]);\n\n\tconst resources: IResources = useMemo(() => {\n\t\tconst resource = customRouteToResourceMap?.[curPathName] || routeToResourceMap[curPathName] || null;\n\t\treturn resource;\n\t}, [curPathName, customRouteToResourceMap]);\n\n\t//Translation\n\tconst { t } = useTranslation()\n\n\t// eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n\tconst initializeColumns = (columns: MaterialTableColumnProps[]) => {\n\t\t//! Remove the function if not needed\n\t};\n\n\t// Fetch page-related information from API\n\tconst fetchPageData = useCallback(\n\t\tasync (currentPath: string, currentDefaultColumns: any[], currentResources: IResources) => {\n\t\t\tconsole.log('PageContext: Entering fetchPageData', { currentPath, currentDefaultColumnsLength: currentDefaultColumns?.length, hasResources: !!currentResources });\n\n\t\t\t// Check if this request is still valid (pathname hasn't changed)\n\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\tconsole.log('Aborting fetchPageData - pathname changed', { ref: currentPathnameRef.current, current: currentPath });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetLoading(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconsole.log('PageContext: Resources Check:', { currentDefaultColumns, currentResources });\n\t\t\t\tif (currentDefaultColumns.length && currentResources) {\n\t\t\t\t\tconst { pageResource = '', fieldResource = '', formResource = '' } = currentResources;\n\n\t\t\t\t\tconsole.log('PageContext: Pathname:', currentPath);\n\t\t\t\t\tconsole.log('PageContext: Default Columns:', currentDefaultColumns);\n\t\t\t\t\tconsole.log('PageContext: Resources:', currentResources);\n\n\t\t\t\t\t// Double-check pathname hasn't changed before making API calls\n\t\t\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst [pageResponse, fieldResponse, formResponse] = await Promise.all([\n\t\t\t\t\t\tpageResource ? getV1PagesResource({ ...getToken(), resource: pageResource }) : Promise.resolve(null),\n\n\t\t\t\t\t\tgetV1FormBuilderSchemaFieldsName({\n\t\t\t\t\t\t\tname: fieldResource,\n\t\t\t\t\t\t\t...getToken(),\n\t\t\t\t\t\t\tskip: 0,\n\t\t\t\t\t\t\tlimit: 999\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tgetV1FormBuilder({\n\t\t\t\t\t\t\t...getToken(),\n\t\t\t\t\t\t\tfilters: `(resource.eq=${formResource}&company_id.eq=${user?.company_id})`,\n\t\t\t\t\t\t})\n\t\t\t\t\t]);\n\n\t\t\t\t\tconsole.log('PageContext: API Responses:', { pageResponse, fieldResponse, formResponse });\n\n\t\t\t\t\t// Final check - ensure pathname still matches\n\t\t\t\t\tif (currentPathnameRef.current !== currentPath) {\n\t\t\t\t\t\tconsole.log('Aborting fetchPageData - pathname changed after API call');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fields = fieldResponse?.data?.fields?.map(f => ({ ...f, label: !f?.label?.trim() ? formatLabel(f.key) : f.label }));\n\n\t\t\t\t\tconst gColumns = generateColumnSchema(currentDefaultColumns, fields, [], [], t);\n\t\t\t\t\tconsole.log('PageContext: Generated Columns:', gColumns);\n\n\t\t\t\t\tconst pages =\n\t\t\t\t\t\tpageResponse?.data?.pages?.map((p) => ({\n\t\t\t\t\t\t\t...defaultPageState,\n\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\tvisible_columns: generateColumnSchema(\n\t\t\t\t\t\t\t\tp.visible_columns?.length ? p.visible_columns : currentDefaultColumns,\n\t\t\t\t\t\t\t\tfields,\n\t\t\t\t\t\t\t\tp.column_order || [],\n\t\t\t\t\t\t\t\tcurrentDefaultColumns,\n\t\t\t\t\t\t\t\tt\n\t\t\t\t\t\t\t).columns,\n\t\t\t\t\t\t\tcolumn_order: mergeArraysKeepingOrder(\n\t\t\t\t\t\t\t\tp.column_order || [],\n\t\t\t\t\t\t\t\t_.uniq(gColumns.orderKeys)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})) || [];\n\t\t\t\t\tconst sharedPages =\n\t\t\t\t\t\tpageResponse?.data?.shared_pages?.map((sPages) => ({\n\t\t\t\t\t\t\t...sPages.details,\n\t\t\t\t\t\t\tisShared: true,\n\t\t\t\t\t\t\towner: sPages.owner,\n\t\t\t\t\t\t\t_id: sPages.id\n\t\t\t\t\t\t})) || [];\n\n\t\t\t\t\tconst uPages = [...pages, ...sharedPages];\n\n\t\t\t\t\t// Only update state if we're still on the same path\n\t\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\t\tsetSchemaFields(fields),\n\t\t\t\t\t\t\tsetGeneratedColumns(gColumns),\n\t\t\t\t\t\t\tsetPageTemplateId(pageResponse?.data?._id),\n\t\t\t\t\t\t\tsetSharedPages(sharedPages),\n\t\t\t\t\t\t\tsetPages(uPages || []),\n\t\t\t\t\t\t\tsetFormData(formResponse?.data?.form?.[0] || {}),\n\t\t\t\t\t\t\tsetActivePageData((prev) => ({\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t...(pages?.[0] || {}) // Merge API response with current state\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// Only set error if we're still on the same path\n\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\tsetError('Failed to load page data');\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Only update loading state if we're still on the same path\n\t\t\t\tif (currentPathnameRef.current === currentPath) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t//eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[] // Remove dependencies to prevent stale closures\n\t);\n\n\t// Update page state dynamically\n\tconst updatePageInfo = (updates: Partial<PageState>) => {\n\t\tsetActivePageData((prev) => ({\n\t\t\t...prev,\n\t\t\t...updates\n\t\t}));\n\t\t!isInitialLoad && setIsChanged(true)\n\t\tsetIsInitialLoad(false)\n\t};\n\n\t// Update columns state dynamically\n\tconst updateGeneratedColumns = (updates: Partial<GeneratedColumnsState>) => {\n\t\tsetGeneratedColumns((prev) => ({\n\t\t\t...prev,\n\t\t\t...updates\n\t\t}));\n\t};\n\n\tconst setActivePage = (page: PageState) => {\n\t\tconst uPages = pages.map((p) =>\n\t\t\tp._id == activePage?._id ? activePage : p\n\t\t);\n\t\tsetPages(uPages);\n\t\tsetActivePageData(page);\n\t};\n\n\tconst savePages = async () => {\n\t\tsetError(null);\n\t\tsetIsSaving(true);\n\t\tawait addOrDeletePage()\n\t\tsetTimeout(() => {\n\t\t\tsetIsSaving(false);\n\t\t}, 1000);\n\t};\n\tconst fetchSavedFilters = async (): Promise<void> => {\n\n\t\tawait getV1FilterResource({ ...getToken(), resource: resources?.pageResource || resources?.fieldResource })\n\n\t};\n\n\tconst addOrDeletePage = async (restPages?: any[]) => {\n\t\ttry {\n\t\t\tconst filteredPages = restPages?.length ? restPages : pages.filter((page) => !page.isShared);\n\t\t\tconst uPages = filteredPages.map((p) =>\n\t\t\t\t(p._id == activePage?._id && activePage.name == p.name) ? activePage : p\n\t\t\t);\n\t\t\tconst sanitizedPages = removeIdStaticIdsFromMongoObject(uPages);\n\n\t\t\tconst response = await patchV1PagesPageId({\n\t\t\t\t...getToken(),\n\t\t\t\t...{ page_id: pageTemplateId, pages: sanitizedPages }\n\t\t\t});\n\t\t\tif (response.status_code === 200) {\n\t\t\t\tconst updatedPages = response?.data?.pages || [];\n\t\t\t\tsetPages(updatedPages);\n\t\t\t\tfetchSavedFilters();\n\t\t\t\tsetActivePageData((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\t...(updatedPages.find((p) => p.name == prev.name) || {})\n\t\t\t\t}));\n\t\t\t\tsetIsChanged(false);\n\t\t\t\tsetIsCreatePage(false);\n\t\t\t\tsetFormData(response?.data?.form?.[0] || {});\n\t\t\t\tconst msg = restPages?.length ? t('pages.msg.delete') : t('pages.msg.save')\n\t\t\t\tenqueueSnackbar(msg);\n\t\t\t}\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\tsetError('Failed to save page data');\n\t\t}\n\t}\n\n\tconst deletePage = async (pages: string) => {\n\t\taddOrDeletePage(pages);\n\t}\n\n\t// Handle pathname changes\n\tuseEffect(() => {\n\t\t// Update the ref immediately\n\t\tcurrentPathnameRef.current = curPathName;\n\n\t\t// Reset state for new page\n\t\tsetLoading(true);\n\t\tsetIsSaving(false);\n\t\tsetActivePageData(defaultPageState);\n\t\tsetIsChanged(false);\n\t\tsetIsInitialLoad(true);\n\n\t\t// Clear previous data to prevent showing stale data\n\t\tsetSchemaFields([]);\n\t\tsetGeneratedColumns({ columns: [], orderKeys: [] });\n\t\tsetPages([]);\n\t\tsetSharedPages([]);\n\t\tsetPageTemplateId('');\n\t\tsetError(null);\n\n\t\t// Fetch data for new page with current values\n\t\tconsole.log('PageContext: useEffect Triggered', { curPathName, defaultColumnsLength: defaultColumns?.length, hasResources: !!resources });\n\t\tfetchPageData(curPathName, defaultColumns, resources);\n\n\t\treturn () => { setLoading(true) }\n\t\t//eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [curPathName, JSON.stringify(defaultColumns), JSON.stringify(resources)]); // Remove other dependencies to prevent issues\n\n\n\t// Removed loading check to prevent blank page during loading\n\tif ((loading || curPathName != currentPathnameRef.current) && resources) {\n\t\treturn <ErpLoader />; // Show loader before rendering anything else\n\t}\n\n\tif ((loading || curPathName != currentPathnameRef.current) && resources) {\n\t\treturn <ErpLoader />; // Show loader before rendering anything else\n\t}\n\n\treturn (\n\t\t<PageContext.Provider\n\t\t\tvalue={{\n\t\t\t\tpageTemplateId,\n\t\t\t\tactivePage,\n\t\t\t\tpages,\n\t\t\t\tsharedPages,\n\t\t\t\tschemaFields,\n\t\t\t\tsetPages,\n\t\t\t\tupdatePageInfo,\n\t\t\t\tsavePages,\n\t\t\t\tsetActivePage,\n\t\t\t\tisSaving,\n\t\t\t\tloading,\n\t\t\t\terror,\n\t\t\t\tinitializeColumns,\n\t\t\t\tgeneratedColumns,\n\t\t\t\tupdateGeneratedColumns,\n\t\t\t\tisChanged,\n\t\t\t\tdeletePage,\n\t\t\t\tisCreatePage,\n\t\t\t\tsetIsCreatePage,\n\t\t\t\taddOrDeletePage,\n\t\t\t\tsetIsChanged,\n\t\t\t\tformData\n\t\t\t}}>\n\t\t\t{children}\n\t\t</PageContext.Provider>\n\t);\n};\n"],"names":["jsx","field","_a","pages","sharedPages"],"mappings":"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"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const pathname_rental = require("./pathname.rental-C9fm1WTq.js");
|
|
3
|
+
const PathnameGenerator$1 = (name) => {
|
|
4
|
+
return pathname_rental.Pathname.DASHBOARD_USER + name;
|
|
5
|
+
};
|
|
6
|
+
const PathnameUsers = {
|
|
7
|
+
LANDING_PAGE: "/",
|
|
8
|
+
USER: "/user",
|
|
9
|
+
ROLE: "/role",
|
|
10
|
+
LANGUAGE: "/language",
|
|
11
|
+
FORMS: "/setting/forms",
|
|
12
|
+
CUSTOM_FORM: "/setting/forms/custom-form",
|
|
13
|
+
ADD_USER: "/user/add-user",
|
|
14
|
+
EDIT_USER: "/user/:id/edit-user",
|
|
15
|
+
VIEW_USER: "/user/:id/view-user",
|
|
16
|
+
ADD_ROLE: "/role/add-role",
|
|
17
|
+
EDIT_ROLE: "/role/:id/edit-role",
|
|
18
|
+
VIEW_ROLE: "/role/:id/view-role",
|
|
19
|
+
WORK: "/setting/works",
|
|
20
|
+
ADD_WORKFLOW: "/setting/works/workflow",
|
|
21
|
+
ADD_LANGUAGE: "/language/add-language",
|
|
22
|
+
EDIT_LANGUAGE: "/language/:id/edit-language",
|
|
23
|
+
VIEW_LANGUAGE: "/language/:id/view-language"
|
|
24
|
+
// EMAILS: "/setting/emails",
|
|
25
|
+
// ADD_EMAIL_TEMPLATE: "/setting/emails/:id/add-template",
|
|
26
|
+
// EDIT_EMAIL_TEMPLATE: "/setting/emails/:id/edit-template/:template_id",
|
|
27
|
+
};
|
|
28
|
+
const PathnameGenerator = (name) => {
|
|
29
|
+
return pathname_rental.Pathname.DASHBOARD_HRMS + name;
|
|
30
|
+
};
|
|
31
|
+
const CRUD_ACTIONS = { ADD: "add", VIEW: "view", EDIT: "edit" };
|
|
32
|
+
const COMPANY_MASTER_POLICY = "/company-master-policy";
|
|
33
|
+
const MAIN_MENU = {
|
|
34
|
+
COMPANY_MASTER_POLICY: "company-master-policy",
|
|
35
|
+
TIME_TRACKING: "time-tracking",
|
|
36
|
+
RECRUITMENT: "recruitment",
|
|
37
|
+
EMPLOYEE_MANAGEMENT: "employee-management",
|
|
38
|
+
ONBOARDING: "onboarding",
|
|
39
|
+
LEAVES: "leaves",
|
|
40
|
+
RESOURCE_MANAGEMENT: "resource-management",
|
|
41
|
+
PAYROLL_MANAGEMENT: "payroll-management",
|
|
42
|
+
ORGANISATION: "organisation",
|
|
43
|
+
ASSET_MANAGEMENT: "asset-management",
|
|
44
|
+
LOAN_MANAGEMENT: "loan-management"
|
|
45
|
+
};
|
|
46
|
+
const MODULES = {
|
|
47
|
+
// General
|
|
48
|
+
APPROVAL_WORKFLOW: "approval-workflow",
|
|
49
|
+
APPROVAL_DASHBOARD: "approval-dashboard",
|
|
50
|
+
ORGANIZATION_STRUCTURE: "organization-structure",
|
|
51
|
+
RESIGNATION_TERMINATION: "resignation-termination",
|
|
52
|
+
// Company Master Policy
|
|
53
|
+
LOAN_CONFIGURATION: "loan-configuration",
|
|
54
|
+
ACCRUALS_AND_BENEFIT: "accruals-and-benefit",
|
|
55
|
+
DOCUMENT_MASTER: "document-master",
|
|
56
|
+
DEPARTMENT_MASTER: "department-master",
|
|
57
|
+
DESIGNATION_MASTER: "designation-master",
|
|
58
|
+
COMPANY_CALENDAR: "company-calendar",
|
|
59
|
+
LEAVE_POLICY_MASTER: "leave-policy-master",
|
|
60
|
+
SALARY_STRUCTURE_MASTER: "salary-structure-master",
|
|
61
|
+
// Employee Management
|
|
62
|
+
EMPLOYEE_MANAGEMENT: "employee-management",
|
|
63
|
+
EMPLOYEE_MASTER: "employee-master",
|
|
64
|
+
EMPLOYEE_CONTRACTS: "employee-contracts",
|
|
65
|
+
EMPLOYEE_ASSETS: "employee-assets",
|
|
66
|
+
// Recruitment
|
|
67
|
+
HIRE_REQUEST: "hire-request",
|
|
68
|
+
REQUISITION_MANAGEMENT: "requisition-management",
|
|
69
|
+
CANDIDATE_MANAGEMENT: "candidate-management",
|
|
70
|
+
JOB_POSTING: "job-posting",
|
|
71
|
+
// Onboarding
|
|
72
|
+
OFFER_LETTER: "offer-letter",
|
|
73
|
+
// Asset Management
|
|
74
|
+
ASSET_LIST: "asset-list",
|
|
75
|
+
ASSET_REQUEST: "asset-request",
|
|
76
|
+
ASSET_TRANSFER: "asset-transfer",
|
|
77
|
+
ASSET_ALLOCATION: "asset-allocation",
|
|
78
|
+
ASSET_TRACKER: "asset-tracker",
|
|
79
|
+
DAMAGE_LOSS_CLAIM: "damage-loss-claim",
|
|
80
|
+
ASSET_HISTORY: "asset-history",
|
|
81
|
+
// Leaves
|
|
82
|
+
LEAVE_MANAGEMENT_EMPLOYEE: "leave-management",
|
|
83
|
+
LEAVE_REQUEST: "leave-request",
|
|
84
|
+
// Time Tracking
|
|
85
|
+
TIME_SHEET: "time-sheet",
|
|
86
|
+
TIME_CARD: "time-cards",
|
|
87
|
+
TIME_CARD_ENTRY: "time-card-entry",
|
|
88
|
+
// Resource Management
|
|
89
|
+
RESOURCE_ALLOCATION: "resource-allocation",
|
|
90
|
+
RESOURCE_ASSIGNMENT: "resource-assignment",
|
|
91
|
+
// Payroll Management
|
|
92
|
+
MONTHLY_PAYROLL: "monthly-payroll",
|
|
93
|
+
WPS_GENERATION: "wps-generation",
|
|
94
|
+
PAYSLIPS: "payslips",
|
|
95
|
+
GENERATE_PAYSLIPS: "generate-payslip",
|
|
96
|
+
// Loan Management
|
|
97
|
+
LOAN_REQUEST: "loan-request",
|
|
98
|
+
// Reports
|
|
99
|
+
EMPLOYEE_REPORT: "employee-report"
|
|
100
|
+
};
|
|
101
|
+
const generateCrudPaths = (base, entity, prefix = "", keyPostfix = "") => Object.fromEntries(
|
|
102
|
+
Object.entries(CRUD_ACTIONS).map(([key, action]) => {
|
|
103
|
+
const isEditOrView = action === "edit" || action === "view";
|
|
104
|
+
const routeParts = [prefix, MODULES[base]];
|
|
105
|
+
if (isEditOrView) {
|
|
106
|
+
routeParts.push(":id", `${action}-${entity}`);
|
|
107
|
+
} else {
|
|
108
|
+
routeParts.push(`${action}-${entity}`);
|
|
109
|
+
}
|
|
110
|
+
return [
|
|
111
|
+
`${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, "_").toUpperCase()}`,
|
|
112
|
+
`/${routeParts.filter(Boolean).join("/")}`
|
|
113
|
+
];
|
|
114
|
+
})
|
|
115
|
+
);
|
|
116
|
+
const generateModulePaths = (mainModule, subModule = "", entity, keyPostfix = "") => ({
|
|
117
|
+
[subModule.replace(/[^a-zA-Z0-9]/g, "_").toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join("/")}`,
|
|
118
|
+
...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix)
|
|
119
|
+
});
|
|
120
|
+
const ROUTES = {
|
|
121
|
+
// Misc
|
|
122
|
+
FORMS: "/forms",
|
|
123
|
+
CUSTOM_FORM: "/custom-form",
|
|
124
|
+
// Company Master Policy
|
|
125
|
+
EMPLOYEE_CONTRACT_MASTER: `${COMPANY_MASTER_POLICY}/employee-contract-master`,
|
|
126
|
+
DOCUMENT_MASTER: `${COMPANY_MASTER_POLICY}/document-master`,
|
|
127
|
+
ACCRUALS_BENEFITS_MASTER: `${COMPANY_MASTER_POLICY}/accruals-benefits-master`,
|
|
128
|
+
SALARY_STRUCTURE_MASTER: `${COMPANY_MASTER_POLICY}/salary-structure-master`,
|
|
129
|
+
LOAN_CONFIGURATION_MASTER: `${COMPANY_MASTER_POLICY}/loan-configuration-master`,
|
|
130
|
+
COMPANY_CALENDAR: `${COMPANY_MASTER_POLICY}/company-calendar`,
|
|
131
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "APPROVAL_WORKFLOW", "approval-workflow", "APPROVAL_WORKFLOW"),
|
|
132
|
+
// Approval Workflow (standalone)
|
|
133
|
+
...generateModulePaths("", "APPROVAL_WORKFLOW", "approval-workflow", "APPROVAL_WORKFLOW_STANDALONE"),
|
|
134
|
+
// Document master
|
|
135
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "DOCUMENT_MASTER", "document-master", "DOCUMENT_MASTER"),
|
|
136
|
+
// Department master
|
|
137
|
+
...generateModulePaths("ORGANISATION", "DEPARTMENT_MASTER", "department-master", "DEPARTMENT_MASTER"),
|
|
138
|
+
// Designation master
|
|
139
|
+
...generateModulePaths("ORGANISATION", "DESIGNATION_MASTER", "designation-master", "DESIGNATION_MASTER"),
|
|
140
|
+
// Accruals & benefit
|
|
141
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "ACCRUALS_AND_BENEFIT", "accruals-and-benefit", "ACCRUALS_AND_BENEFIT"),
|
|
142
|
+
// Company Calendar
|
|
143
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "COMPANY_CALENDAR", "company-calendar", "COMPANY_CALENDAR"),
|
|
144
|
+
// Leave Policy Master
|
|
145
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "LEAVE_POLICY_MASTER", "leave-policy-master", "LEAVE_POLICY_MASTER"),
|
|
146
|
+
// Salary Structure Master
|
|
147
|
+
...generateModulePaths("COMPANY_MASTER_POLICY", "SALARY_STRUCTURE_MASTER", "salary-structure-master", "SALARY_STRUCTURE_MASTER"),
|
|
148
|
+
// Loan Configuration (standalone)
|
|
149
|
+
...generateModulePaths("", "LOAN_CONFIGURATION", "loan-configuration", "LOAN_CONFIGURATION"),
|
|
150
|
+
// Organization Structure
|
|
151
|
+
ORGANIZATION_STRUCTURE: "/organization-structure",
|
|
152
|
+
...generateModulePaths("", "ORGANIZATION_STRUCTURE", "organization-structure", "ORGANIZATION_STRUCTURE"),
|
|
153
|
+
// Approval Dashboard
|
|
154
|
+
APPROVAL_DASHBOARD: "/approval-dashboard",
|
|
155
|
+
VIEW_APPROVAL_DASHBOARD: "/approval-dashboard/:id/view-approval-dashboard",
|
|
156
|
+
// Employee Management
|
|
157
|
+
EMPLOYEE_MANAGEMENT: "/employee-management",
|
|
158
|
+
...generateModulePaths("EMPLOYEE_MANAGEMENT", "EMPLOYEE_MASTER", "employee", "EMPLOYEE_MASTER"),
|
|
159
|
+
...generateModulePaths("EMPLOYEE_MANAGEMENT", "EMPLOYEE_CONTRACTS", "employee-contracts", "EMPLOYEE_CONTRACTS"),
|
|
160
|
+
...generateModulePaths("EMPLOYEE_MANAGEMENT", "EMPLOYEE_ASSETS", "asset", "EMPLOYEE_ASSETS"),
|
|
161
|
+
// Asset Management Pages
|
|
162
|
+
...generateModulePaths("ASSET_MANAGEMENT", "ASSET_LIST", "asset-list", "ASSET_LIST"),
|
|
163
|
+
...generateModulePaths("ASSET_MANAGEMENT", "ASSET_REQUEST", "asset-request", "ASSET_REQUEST"),
|
|
164
|
+
...generateModulePaths("ASSET_MANAGEMENT", "ASSET_TRANSFER", "asset-transfer", "ASSET_TRANSFER"),
|
|
165
|
+
...generateModulePaths("ASSET_MANAGEMENT", "ASSET_ALLOCATION", "asset-allocation", "ASSET_ALLOCATION"),
|
|
166
|
+
...generateModulePaths("ASSET_MANAGEMENT", "ASSET_TRACKER", "asset-tracker", "ASSET_TRACKER"),
|
|
167
|
+
...generateModulePaths("ASSET_MANAGEMENT", "DAMAGE_LOSS_CLAIM", "damage-loss-claim", "DAMAGE_LOSS_CLAIM"),
|
|
168
|
+
ASSET_RETURN: "/asset-return",
|
|
169
|
+
// Time Tracking
|
|
170
|
+
...generateModulePaths("TIME_TRACKING", "TIME_CARD", "time-card", "TIME_CARD"),
|
|
171
|
+
...generateModulePaths("TIME_TRACKING", "TIME_SHEET", "time-sheet", "TIME_SHEET"),
|
|
172
|
+
// Recruitment
|
|
173
|
+
RECRUITMENT: "/recruitment",
|
|
174
|
+
TALENT_POOL_DASHBOARD: "/recruitment/talent-pool-dashboard",
|
|
175
|
+
...generateModulePaths("RECRUITMENT", "HIRE_REQUEST", "hire-request", "HIRE_REQUEST"),
|
|
176
|
+
...generateModulePaths("RECRUITMENT", "REQUISITION_MANAGEMENT", "requisition-management", "REQUISITION_MANAGEMENT"),
|
|
177
|
+
...generateModulePaths("RECRUITMENT", "JOB_POSTING", "job-posting", "JOB_POSTING"),
|
|
178
|
+
...generateModulePaths("RECRUITMENT", "CANDIDATE_MANAGEMENT", "candidate", "CANDIDATE_MANAGEMENT"),
|
|
179
|
+
// Onboarding
|
|
180
|
+
...generateModulePaths("ONBOARDING", "OFFER_LETTER", "offer-letter", "OFFER_LETTER"),
|
|
181
|
+
ONBOARDING_MANAGEMENT: "/onboarding-management",
|
|
182
|
+
// Leaves
|
|
183
|
+
...generateModulePaths("LEAVES", "LEAVE_MANAGEMENT_EMPLOYEE", "leave-management", "LEAVE_MANAGEMENT_EMPLOYEE"),
|
|
184
|
+
...generateModulePaths("LEAVES", "LEAVE_REQUEST", "leave-request", "LEAVE_REQUEST"),
|
|
185
|
+
LEAVE_MANAGEMENT: "/leave-management",
|
|
186
|
+
// Resignation & Termination
|
|
187
|
+
RESIGNATION_LIST: "/resignations",
|
|
188
|
+
TERMINATION_LIST: "/terminations",
|
|
189
|
+
ADD_RESIGNATION: "/resignation-termination/add-resignation",
|
|
190
|
+
EDIT_RESIGNATION: "/resignation-termination/:id/edit-resignation",
|
|
191
|
+
VIEW_RESIGNATION: "/resignation-termination/:id/view-resignation",
|
|
192
|
+
ADD_TERMINATION: "/resignation-termination/add-termination",
|
|
193
|
+
EDIT_TERMINATION: "/resignation-termination/:id/edit-termination",
|
|
194
|
+
VIEW_TERMINATION: "/resignation-termination/:id/view-termination",
|
|
195
|
+
CLEARANCE_REVIEW: "/resignation-termination/:id/clearance-review",
|
|
196
|
+
RESIGNATION_FINAL_SETTLEMENT: "/resignation-termination/:id/resignation-final-settlement",
|
|
197
|
+
TERMINATION_FINAL_SETTLEMENT: "/resignation-termination/:id/termination-final-settlement",
|
|
198
|
+
// Resource Management
|
|
199
|
+
RESOURCE_ALLOCATION: "/resource-management/resource-allocation-requests",
|
|
200
|
+
ADD_RESOURCE_ALLOCATION: "/resource-management/resource-allocation/add-resource-allocation",
|
|
201
|
+
EDIT_RESOURCE_ALLOCATION: "/resource-management/resource-allocation/:id/edit-resource-allocation",
|
|
202
|
+
VIEW_RESOURCE_REQUIREMENTS: "/resource-management/resource-allocation/:id/view-resource-requirements",
|
|
203
|
+
RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment",
|
|
204
|
+
ADD_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/add-resource-assignment",
|
|
205
|
+
EDIT_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/:id/edit-resource-assignment",
|
|
206
|
+
VIEW_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/:id/view-resource-assignment",
|
|
207
|
+
// Payroll Management
|
|
208
|
+
...generateModulePaths("PAYROLL_MANAGEMENT", "MONTHLY_PAYROLL", "monthly-payroll", "MONTHLY_PAYROLL"),
|
|
209
|
+
...generateModulePaths("PAYROLL_MANAGEMENT", "WPS_GENERATION", "wps-generation", "WPS_GENERATION"),
|
|
210
|
+
...generateModulePaths("PAYROLL_MANAGEMENT", "PAYSLIPS", "payslips", "PAYSLIPS"),
|
|
211
|
+
...generateModulePaths("PAYROLL_MANAGEMENT", "GENERATE_PAYSLIPS", "generate-payslip", "GENERATE_PAYSLIPS"),
|
|
212
|
+
// Loan Management
|
|
213
|
+
LOAN_REQUEST_LIST: "/loan-requests",
|
|
214
|
+
ADD_LOAN_REQUEST: "/loan-requests/add-loan",
|
|
215
|
+
EDIT_LOAN_REQUEST: "/loan-requests/:id/edit-loan",
|
|
216
|
+
VIEW_LOAN_REQUEST: "/loan-requests/:id/view-loan",
|
|
217
|
+
// Reports
|
|
218
|
+
...generateModulePaths("", "EMPLOYEE_REPORT", "employee-report", "EMPLOYEE_REPORT"),
|
|
219
|
+
EMPLOYEE_LIST_REPORT: "/employee-list-report",
|
|
220
|
+
RECRUITMENT_REQUEST_REPORT: "/recruitment-request-report",
|
|
221
|
+
RECRUITMENT_FULFILMENT_REPORT: "/recruitment-fulfilment-report",
|
|
222
|
+
DEPARTMENT_ANALYSIS_REPORT: "/department-analysis-report",
|
|
223
|
+
EMPLOYEE_SALARY_REPORT: "/employee-salary-report",
|
|
224
|
+
CONTRACT_LIST_REPORT: "/contract-list-report",
|
|
225
|
+
RESIGNATION_REQUEST_REPORT: "/resignation-request-report",
|
|
226
|
+
ANNUAL_LEAVE_REPORT: "/annual-leave-report",
|
|
227
|
+
EMPLOYEE_LOAN_REPORT: "/employee-loan-report",
|
|
228
|
+
PENDING_LOAN_STATUS_REPORT: "/pending-loan-status-report",
|
|
229
|
+
SALARY_SHEET_REPORT: "/salary-sheet-report",
|
|
230
|
+
TIME_SHEET_REPORT: "/time-sheet-report",
|
|
231
|
+
TIME_CARD_REPORT: "/time-card-report",
|
|
232
|
+
MISSING_ATTENDANCE_REPORT: "/missing-attendance-report",
|
|
233
|
+
EMPLOYEE_OVERTIME_REPORT: "/employee-overtime-report",
|
|
234
|
+
LEAVE_ENCASHMENT_REPORT: "/leave-encashment-report",
|
|
235
|
+
ASSET_STATUS_REPORT: "/asset-status-report",
|
|
236
|
+
ASSET_DAMAGE_REPORT: "/asset-damage-report",
|
|
237
|
+
EMPLOYEE_GRATUITY_REPORT: "/employee-gratuity-report",
|
|
238
|
+
EMPLOYEE_TURNOVER_REPORT: "/employee-turnover-report",
|
|
239
|
+
ATTENDANCE_SUMMARY_REPORT: "/attendance-summary-report",
|
|
240
|
+
EMPLOYEE_PROBATION_REPORT: "/employee-probation-report",
|
|
241
|
+
EXPIRING_DOCUMENTS_REPORT: "/expiring-documents-report",
|
|
242
|
+
PAYROLL_VARIANCE_REPORT: "/payroll-variance-report",
|
|
243
|
+
EXPENSE_REIMBURSEMENT_REPORT: "/expense-reimbursement-report",
|
|
244
|
+
TERMINATION_REQUEST_REPORT: "/termination-request-report",
|
|
245
|
+
LEAVE_REQUEST_REPORT: "/leave-request-report",
|
|
246
|
+
EMPLOYEE_ASSET_RECORDS_REPORT: "/employee-asset-records-report",
|
|
247
|
+
// Offboarding / Attendance (legacy stubs)
|
|
248
|
+
OFFBOARDING_MANAGEMENT: "/offboarding-management",
|
|
249
|
+
ATTENDANCE_TIME_TRACKING: "/attendance-time-tracking"
|
|
250
|
+
};
|
|
251
|
+
const PathnameHrms = {
|
|
252
|
+
LANDING_PAGE: "/",
|
|
253
|
+
LIST: "/list",
|
|
254
|
+
FORMS: "/settings/forms",
|
|
255
|
+
CUSTOM_FORM: "/settings/custom-form",
|
|
256
|
+
...ROUTES
|
|
257
|
+
};
|
|
258
|
+
exports.PathnameGenerator = PathnameGenerator;
|
|
259
|
+
exports.PathnameGenerator$1 = PathnameGenerator$1;
|
|
260
|
+
exports.PathnameHrms = PathnameHrms;
|
|
261
|
+
exports.PathnameUsers = PathnameUsers;
|
|
262
|
+
//# sourceMappingURL=pathname.hrms-2_BEXO_r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathname.hrms-2_BEXO_r.js","sources":["../../src/constants/pathnames/pathname.user.ts","../../src/constants/pathnames/pathname.hrms.ts"],"sourcesContent":["import { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string) => {\n return Pathname.DASHBOARD_USER + name;\n};\n\nexport const PathnameUsers = {\n LANDING_PAGE: \"/\",\n USER: \"/user\",\n ROLE: \"/role\",\n LANGUAGE: \"/language\",\n FORMS: \"/setting/forms\",\n CUSTOM_FORM: \"/setting/forms/custom-form\",\n ADD_USER: \"/user/add-user\",\n EDIT_USER: \"/user/:id/edit-user\",\n VIEW_USER: \"/user/:id/view-user\",\n ADD_ROLE: \"/role/add-role\",\n EDIT_ROLE: \"/role/:id/edit-role\",\n VIEW_ROLE: \"/role/:id/view-role\",\n WORK: \"/setting/works\",\n ADD_WORKFLOW: \"/setting/works/workflow\",\n ADD_LANGUAGE: \"/language/add-language\",\n EDIT_LANGUAGE: \"/language/:id/edit-language\",\n VIEW_LANGUAGE: \"/language/:id/view-language\",\n // EMAILS: \"/setting/emails\",\n // ADD_EMAIL_TEMPLATE: \"/setting/emails/:id/add-template\",\n // EDIT_EMAIL_TEMPLATE: \"/setting/emails/:id/edit-template/:template_id\",\n};\n","import { Pathname } from \"./pathname\";\n\n\nexport const PathnameGenerator = (name: string) => {\n\treturn Pathname.DASHBOARD_HRMS + name;\n};\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\ntype ModulePaths = Record<string, string>;\nconst COMPANY_MASTER_POLICY = '/company-master-policy';\nexport const MAIN_MENU: ModulePaths = {\n\tCOMPANY_MASTER_POLICY: \"company-master-policy\",\n\tTIME_TRACKING: \"time-tracking\",\n\tRECRUITMENT: \"recruitment\",\n\tEMPLOYEE_MANAGEMENT: \"employee-management\",\n\tONBOARDING: \"onboarding\",\n\tLEAVES: \"leaves\",\n\tRESOURCE_MANAGEMENT: \"resource-management\",\n\tPAYROLL_MANAGEMENT: \"payroll-management\",\n\tORGANISATION: \"organisation\",\n\tASSET_MANAGEMENT: \"asset-management\",\n\tLOAN_MANAGEMENT: \"loan-management\",\n};\n\nexport const MODULES: ModulePaths = {\n\t// General\n\tAPPROVAL_WORKFLOW: 'approval-workflow',\n\tAPPROVAL_DASHBOARD: 'approval-dashboard',\n\tORGANIZATION_STRUCTURE: 'organization-structure',\n\tRESIGNATION_TERMINATION: 'resignation-termination',\n\n\t// Company Master Policy\n\tLOAN_CONFIGURATION: 'loan-configuration',\n\tACCRUALS_AND_BENEFIT: 'accruals-and-benefit',\n\tDOCUMENT_MASTER: 'document-master',\n\tDEPARTMENT_MASTER: 'department-master',\n\tDESIGNATION_MASTER: 'designation-master',\n\tCOMPANY_CALENDAR: 'company-calendar',\n\tLEAVE_POLICY_MASTER: 'leave-policy-master',\n\tSALARY_STRUCTURE_MASTER: 'salary-structure-master',\n\n\t// Employee Management\n\tEMPLOYEE_MANAGEMENT: 'employee-management',\n\tEMPLOYEE_MASTER: 'employee-master',\n\tEMPLOYEE_CONTRACTS: 'employee-contracts',\n\tEMPLOYEE_ASSETS: 'employee-assets',\n\n\t// Recruitment\n\tHIRE_REQUEST: 'hire-request',\n\tREQUISITION_MANAGEMENT: 'requisition-management',\n\tCANDIDATE_MANAGEMENT: 'candidate-management',\n\tJOB_POSTING: 'job-posting',\n\n\t// Onboarding\n\tOFFER_LETTER: 'offer-letter',\n\n\t// Asset Management\n\tASSET_LIST: 'asset-list',\n\tASSET_REQUEST: 'asset-request',\n\tASSET_TRANSFER: 'asset-transfer',\n\tASSET_ALLOCATION: 'asset-allocation',\n\tASSET_TRACKER: 'asset-tracker',\n\tDAMAGE_LOSS_CLAIM: 'damage-loss-claim',\n\tASSET_HISTORY: 'asset-history',\n\n\t// Leaves\n\tLEAVE_MANAGEMENT_EMPLOYEE: 'leave-management',\n\tLEAVE_REQUEST: 'leave-request',\n\n\t// Time Tracking\n\tTIME_SHEET: 'time-sheet',\n\tTIME_CARD: 'time-cards',\n\tTIME_CARD_ENTRY: 'time-card-entry',\n\n\t// Resource Management\n\tRESOURCE_ALLOCATION: 'resource-allocation',\n\tRESOURCE_ASSIGNMENT: 'resource-assignment',\n\n\t// Payroll Management\n\tMONTHLY_PAYROLL: 'monthly-payroll',\n\tWPS_GENERATION: 'wps-generation',\n\tPAYSLIPS: 'payslips',\n\tGENERATE_PAYSLIPS: 'generate-payslip',\n\n\t// Loan Management\n\tLOAN_REQUEST: 'loan-request',\n\n\t// Reports\n\tEMPLOYEE_REPORT: 'employee-report',\n};\nexport const generateCrudPaths = (\n\tbase: string,\n\tentity: string,\n\tprefix = '',\n\tkeyPostfix = ''\n) =>\n\tObject.fromEntries(\n\t\tObject.entries(CRUD_ACTIONS).map(([key, action]) => {\n\t\t\tconst isEditOrView = action === 'edit' || action === 'view';\n\n\t\t\tconst routeParts = [prefix, MODULES[base]];\n\t\t\tif (isEditOrView) {\n\t\t\t\trouteParts.push(':id', `${action}-${entity}`);\n\t\t\t} else {\n\t\t\t\trouteParts.push(`${action}-${entity}`);\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t`${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n\t\t\t\t`/${routeParts.filter(Boolean).join('/')}`,\n\t\t\t];\n\t\t})\n\t);\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n\t[subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n\t...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\n\nexport const ROUTES = {\n\t// Misc\n\tFORMS: '/forms',\n\tCUSTOM_FORM: '/custom-form',\n\n\t// Company Master Policy\n\tEMPLOYEE_CONTRACT_MASTER: `${COMPANY_MASTER_POLICY}/employee-contract-master`,\n\tDOCUMENT_MASTER: `${COMPANY_MASTER_POLICY}/document-master`,\n\tACCRUALS_BENEFITS_MASTER: `${COMPANY_MASTER_POLICY}/accruals-benefits-master`,\n\tSALARY_STRUCTURE_MASTER: `${COMPANY_MASTER_POLICY}/salary-structure-master`,\n\tLOAN_CONFIGURATION_MASTER: `${COMPANY_MASTER_POLICY}/loan-configuration-master`,\n\tCOMPANY_CALENDAR: `${COMPANY_MASTER_POLICY}/company-calendar`,\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'APPROVAL_WORKFLOW', 'approval-workflow', 'APPROVAL_WORKFLOW'),\n\n\t// Approval Workflow (standalone)\n\t...generateModulePaths('', 'APPROVAL_WORKFLOW', 'approval-workflow', 'APPROVAL_WORKFLOW_STANDALONE'),\n\n\t// Document master\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'DOCUMENT_MASTER', 'document-master', 'DOCUMENT_MASTER'),\n\n\t// Department master\n\t...generateModulePaths('ORGANISATION', 'DEPARTMENT_MASTER', 'department-master', 'DEPARTMENT_MASTER'),\n\n\t// Designation master\n\t...generateModulePaths('ORGANISATION', 'DESIGNATION_MASTER', 'designation-master', 'DESIGNATION_MASTER'),\n\n\t// Accruals & benefit\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'ACCRUALS_AND_BENEFIT', 'accruals-and-benefit', 'ACCRUALS_AND_BENEFIT'),\n\n\t// Company Calendar\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'COMPANY_CALENDAR', 'company-calendar', 'COMPANY_CALENDAR'),\n\n\t// Leave Policy Master\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'LEAVE_POLICY_MASTER', 'leave-policy-master', 'LEAVE_POLICY_MASTER'),\n\n\t// Salary Structure Master\n\t...generateModulePaths('COMPANY_MASTER_POLICY', 'SALARY_STRUCTURE_MASTER', 'salary-structure-master', 'SALARY_STRUCTURE_MASTER'),\n\n\t// Loan Configuration (standalone)\n\t...generateModulePaths('', 'LOAN_CONFIGURATION', 'loan-configuration', 'LOAN_CONFIGURATION'),\n\n\t// Organization Structure\n\tORGANIZATION_STRUCTURE: '/organization-structure',\n\t...generateModulePaths('', 'ORGANIZATION_STRUCTURE', 'organization-structure', 'ORGANIZATION_STRUCTURE'),\n\n\t// Approval Dashboard\n\tAPPROVAL_DASHBOARD: '/approval-dashboard',\n\tVIEW_APPROVAL_DASHBOARD: '/approval-dashboard/:id/view-approval-dashboard',\n\n\t// Employee Management\n\tEMPLOYEE_MANAGEMENT: '/employee-management',\n\t...generateModulePaths('EMPLOYEE_MANAGEMENT', 'EMPLOYEE_MASTER', 'employee', 'EMPLOYEE_MASTER'),\n\t...generateModulePaths('EMPLOYEE_MANAGEMENT', 'EMPLOYEE_CONTRACTS', 'employee-contracts', 'EMPLOYEE_CONTRACTS'),\n\t...generateModulePaths('EMPLOYEE_MANAGEMENT', 'EMPLOYEE_ASSETS', 'asset', 'EMPLOYEE_ASSETS'),\n\n\t// Asset Management Pages\n\t...generateModulePaths('ASSET_MANAGEMENT', 'ASSET_LIST', 'asset-list', 'ASSET_LIST'),\n\t...generateModulePaths('ASSET_MANAGEMENT', 'ASSET_REQUEST', 'asset-request', 'ASSET_REQUEST'),\n\t...generateModulePaths('ASSET_MANAGEMENT', 'ASSET_TRANSFER', 'asset-transfer', 'ASSET_TRANSFER'),\n\t...generateModulePaths('ASSET_MANAGEMENT', 'ASSET_ALLOCATION', 'asset-allocation', 'ASSET_ALLOCATION'),\n\t...generateModulePaths('ASSET_MANAGEMENT', 'ASSET_TRACKER', 'asset-tracker', 'ASSET_TRACKER'),\n\t...generateModulePaths('ASSET_MANAGEMENT', 'DAMAGE_LOSS_CLAIM', 'damage-loss-claim', 'DAMAGE_LOSS_CLAIM'),\n\tASSET_RETURN: '/asset-return',\n\n\t// Time Tracking\n\t...generateModulePaths('TIME_TRACKING', 'TIME_CARD', 'time-card', 'TIME_CARD'),\n\t...generateModulePaths('TIME_TRACKING', 'TIME_SHEET', 'time-sheet', 'TIME_SHEET'),\n\n\t// Recruitment\n\tRECRUITMENT: '/recruitment',\n\tTALENT_POOL_DASHBOARD: '/recruitment/talent-pool-dashboard',\n\t...generateModulePaths('RECRUITMENT', 'HIRE_REQUEST', 'hire-request', 'HIRE_REQUEST'),\n\t...generateModulePaths('RECRUITMENT', 'REQUISITION_MANAGEMENT', 'requisition-management', 'REQUISITION_MANAGEMENT'),\n\t...generateModulePaths('RECRUITMENT', 'JOB_POSTING', 'job-posting', 'JOB_POSTING'),\n\t...generateModulePaths('RECRUITMENT', 'CANDIDATE_MANAGEMENT', 'candidate', 'CANDIDATE_MANAGEMENT'),\n\n\t// Onboarding\n\t...generateModulePaths('ONBOARDING', 'OFFER_LETTER', 'offer-letter', 'OFFER_LETTER'),\n\tONBOARDING_MANAGEMENT: '/onboarding-management',\n\n\t// Leaves\n\t...generateModulePaths('LEAVES', 'LEAVE_MANAGEMENT_EMPLOYEE', 'leave-management', 'LEAVE_MANAGEMENT_EMPLOYEE'),\n\t...generateModulePaths('LEAVES', 'LEAVE_REQUEST', 'leave-request', 'LEAVE_REQUEST'),\n\tLEAVE_MANAGEMENT: '/leave-management',\n\n\t// Resignation & Termination\n\tRESIGNATION_LIST: '/resignations',\n\tTERMINATION_LIST: '/terminations',\n\tADD_RESIGNATION: '/resignation-termination/add-resignation',\n\tEDIT_RESIGNATION: '/resignation-termination/:id/edit-resignation',\n\tVIEW_RESIGNATION: '/resignation-termination/:id/view-resignation',\n\tADD_TERMINATION: '/resignation-termination/add-termination',\n\tEDIT_TERMINATION: '/resignation-termination/:id/edit-termination',\n\tVIEW_TERMINATION: '/resignation-termination/:id/view-termination',\n\tCLEARANCE_REVIEW: '/resignation-termination/:id/clearance-review',\n\tRESIGNATION_FINAL_SETTLEMENT: '/resignation-termination/:id/resignation-final-settlement',\n\tTERMINATION_FINAL_SETTLEMENT: '/resignation-termination/:id/termination-final-settlement',\n\n\t// Resource Management\n\tRESOURCE_ALLOCATION: '/resource-management/resource-allocation-requests',\n\tADD_RESOURCE_ALLOCATION: '/resource-management/resource-allocation/add-resource-allocation',\n\tEDIT_RESOURCE_ALLOCATION: '/resource-management/resource-allocation/:id/edit-resource-allocation',\n\tVIEW_RESOURCE_REQUIREMENTS: '/resource-management/resource-allocation/:id/view-resource-requirements',\n\tRESOURCE_ASSIGNMENT: '/resource-management/resource-assignment',\n\tADD_RESOURCE_ASSIGNMENT: '/resource-management/resource-assignment/add-resource-assignment',\n\tEDIT_RESOURCE_ASSIGNMENT: '/resource-management/resource-assignment/:id/edit-resource-assignment',\n\tVIEW_RESOURCE_ASSIGNMENT: '/resource-management/resource-assignment/:id/view-resource-assignment',\n\n\t// Payroll Management\n\t...generateModulePaths('PAYROLL_MANAGEMENT', 'MONTHLY_PAYROLL', 'monthly-payroll', 'MONTHLY_PAYROLL'),\n\t...generateModulePaths('PAYROLL_MANAGEMENT', 'WPS_GENERATION', 'wps-generation', 'WPS_GENERATION'),\n\t...generateModulePaths('PAYROLL_MANAGEMENT', 'PAYSLIPS', 'payslips', 'PAYSLIPS'),\n\t...generateModulePaths('PAYROLL_MANAGEMENT', 'GENERATE_PAYSLIPS', 'generate-payslip', 'GENERATE_PAYSLIPS'),\n\n\t// Loan Management\n\tLOAN_REQUEST_LIST: '/loan-requests',\n\tADD_LOAN_REQUEST: '/loan-requests/add-loan',\n\tEDIT_LOAN_REQUEST: '/loan-requests/:id/edit-loan',\n\tVIEW_LOAN_REQUEST: '/loan-requests/:id/view-loan',\n\n\t// Reports\n\t...generateModulePaths('', 'EMPLOYEE_REPORT', 'employee-report', 'EMPLOYEE_REPORT'),\n\tEMPLOYEE_LIST_REPORT: '/employee-list-report',\n\tRECRUITMENT_REQUEST_REPORT: '/recruitment-request-report',\n\tRECRUITMENT_FULFILMENT_REPORT: '/recruitment-fulfilment-report',\n\tDEPARTMENT_ANALYSIS_REPORT: '/department-analysis-report',\n\tEMPLOYEE_SALARY_REPORT: '/employee-salary-report',\n\tCONTRACT_LIST_REPORT: '/contract-list-report',\n\tRESIGNATION_REQUEST_REPORT: '/resignation-request-report',\n\tANNUAL_LEAVE_REPORT: '/annual-leave-report',\n\tEMPLOYEE_LOAN_REPORT: '/employee-loan-report',\n\tPENDING_LOAN_STATUS_REPORT: '/pending-loan-status-report',\n\tSALARY_SHEET_REPORT: '/salary-sheet-report',\n\tTIME_SHEET_REPORT: '/time-sheet-report',\n\tTIME_CARD_REPORT: '/time-card-report',\n\tMISSING_ATTENDANCE_REPORT: '/missing-attendance-report',\n\tEMPLOYEE_OVERTIME_REPORT: '/employee-overtime-report',\n\tLEAVE_ENCASHMENT_REPORT: '/leave-encashment-report',\n\tASSET_STATUS_REPORT: '/asset-status-report',\n\tASSET_DAMAGE_REPORT: '/asset-damage-report',\n\tEMPLOYEE_GRATUITY_REPORT: '/employee-gratuity-report',\n\tEMPLOYEE_TURNOVER_REPORT: '/employee-turnover-report',\n\tATTENDANCE_SUMMARY_REPORT: '/attendance-summary-report',\n\tEMPLOYEE_PROBATION_REPORT: '/employee-probation-report',\n\tEXPIRING_DOCUMENTS_REPORT: '/expiring-documents-report',\n\tPAYROLL_VARIANCE_REPORT: '/payroll-variance-report',\n\tEXPENSE_REIMBURSEMENT_REPORT: '/expense-reimbursement-report',\n\tTERMINATION_REQUEST_REPORT: '/termination-request-report',\n\tLEAVE_REQUEST_REPORT: '/leave-request-report',\n\tEMPLOYEE_ASSET_RECORDS_REPORT: '/employee-asset-records-report',\n\n\t// Offboarding / Attendance (legacy stubs)\n\tOFFBOARDING_MANAGEMENT: '/offboarding-management',\n\tATTENDANCE_TIME_TRACKING: '/attendance-time-tracking',\n} as const;\n\ntype ApprovalWorkflowRoutes = {\n\tAPPROVAL_WORKFLOW: string;\n\tADD_APPROVAL_WORKFLOW: string;\n\tVIEW_APPROVAL_WORKFLOW: string;\n\tEDIT_APPROVAL_WORKFLOW: string;\n};\ntype LoanConfigurationRoutes = {\n\tLOAN_CONFIGURATION: string;\n\tADD_LOAN_CONFIGURATION: string;\n\tVIEW_LOAN_CONFIGURATION: string;\n\tEDIT_LOAN_CONFIGURATION: string;\n\n};\ntype DocumentMasterRoutes = {\n\tDOCUMENT_MASTER: string;\n\tADD_DOCUMENT_MASTER: string;\n\tVIEW_DOCUMENT_MASTER: string;\n\tEDIT_DOCUMENT_MASTER: string;\n};\n\ntype CompanyCalenderRoutes = {\n\tCOMPANY_CALENDAR: string;\n\tADD_COMPANY_CALENDAR: string;\n\tEDIT_COMPANY_CALENDAR: string;\n\tVIEW_COMPANY_CALENDAR: string;\n}\n\ntype LeavePolicyMasterRoutes = {\n\tLEAVE_POLICY_MASTER: string;\n\tADD_LEAVE_POLICY_MASTER: string;\n\tEDIT_LEAVE_POLICY_MASTER: string;\n\tVIEW_LEAVE_POLICY_MASTER: string;\n}\n\ntype SalaryStructureMasterRoutes = {\n\tSALARY_STRUCTURE_MASTER: string;\n\tADD_SALARY_STRUCTURE_MASTER: string;\n\tEDIT_SALARY_STRUCTURE_MASTER: string;\n\tVIEW_SALARY_STRUCTURE_MASTER: string;\n}\n\ntype EmployeeManagementRoutes = {\n\tEMPLOYEE_MANAGEMENT: string;\n\tADD_EMPLOYEE_MANAGEMENT: string;\n\tEDIT_EMPLOYEE_MANAGEMENT: string;\n\tVIEW_EMPLOYEE_MANAGEMENT: string;\n}\n\nexport const PathnameHrms: typeof ROUTES & { LANDING_PAGE: string; LIST: string; FORMS: string; CUSTOM_FORM: string } & ApprovalWorkflowRoutes & LoanConfigurationRoutes & DocumentMasterRoutes & CompanyCalenderRoutes & LeavePolicyMasterRoutes & SalaryStructureMasterRoutes & EmployeeManagementRoutes = {\n\tLANDING_PAGE: '/',\n\tLIST: '/list',\n\tFORMS: '/settings/forms',\n\tCUSTOM_FORM: '/settings/custom-form',\n\t...ROUTES\n} as any;\n\n"],"names":["PathnameGenerator","Pathname"],"mappings":"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"}
|