@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
|
@@ -9,12 +9,70 @@ export declare const generateModulePaths: (mainModule: keyof typeof MAIN_MENU, s
|
|
|
9
9
|
[x: string]: string;
|
|
10
10
|
};
|
|
11
11
|
export declare const ROUTES: {
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
12
|
+
readonly EMPLOYEE_LIST_REPORT: "/employee-list-report";
|
|
13
|
+
readonly RECRUITMENT_REQUEST_REPORT: "/recruitment-request-report";
|
|
14
|
+
readonly RECRUITMENT_FULFILMENT_REPORT: "/recruitment-fulfilment-report";
|
|
15
|
+
readonly DEPARTMENT_ANALYSIS_REPORT: "/department-analysis-report";
|
|
16
|
+
readonly EMPLOYEE_SALARY_REPORT: "/employee-salary-report";
|
|
17
|
+
readonly CONTRACT_LIST_REPORT: "/contract-list-report";
|
|
18
|
+
readonly RESIGNATION_REQUEST_REPORT: "/resignation-request-report";
|
|
19
|
+
readonly ANNUAL_LEAVE_REPORT: "/annual-leave-report";
|
|
20
|
+
readonly EMPLOYEE_LOAN_REPORT: "/employee-loan-report";
|
|
21
|
+
readonly PENDING_LOAN_STATUS_REPORT: "/pending-loan-status-report";
|
|
22
|
+
readonly SALARY_SHEET_REPORT: "/salary-sheet-report";
|
|
23
|
+
readonly TIME_SHEET_REPORT: "/time-sheet-report";
|
|
24
|
+
readonly TIME_CARD_REPORT: "/time-card-report";
|
|
25
|
+
readonly MISSING_ATTENDANCE_REPORT: "/missing-attendance-report";
|
|
26
|
+
readonly EMPLOYEE_OVERTIME_REPORT: "/employee-overtime-report";
|
|
27
|
+
readonly LEAVE_ENCASHMENT_REPORT: "/leave-encashment-report";
|
|
28
|
+
readonly ASSET_STATUS_REPORT: "/asset-status-report";
|
|
29
|
+
readonly ASSET_DAMAGE_REPORT: "/asset-damage-report";
|
|
30
|
+
readonly EMPLOYEE_GRATUITY_REPORT: "/employee-gratuity-report";
|
|
31
|
+
readonly EMPLOYEE_TURNOVER_REPORT: "/employee-turnover-report";
|
|
32
|
+
readonly ATTENDANCE_SUMMARY_REPORT: "/attendance-summary-report";
|
|
33
|
+
readonly EMPLOYEE_PROBATION_REPORT: "/employee-probation-report";
|
|
34
|
+
readonly EXPIRING_DOCUMENTS_REPORT: "/expiring-documents-report";
|
|
35
|
+
readonly PAYROLL_VARIANCE_REPORT: "/payroll-variance-report";
|
|
36
|
+
readonly EXPENSE_REIMBURSEMENT_REPORT: "/expense-reimbursement-report";
|
|
37
|
+
readonly TERMINATION_REQUEST_REPORT: "/termination-request-report";
|
|
38
|
+
readonly LEAVE_REQUEST_REPORT: "/leave-request-report";
|
|
39
|
+
readonly EMPLOYEE_ASSET_RECORDS_REPORT: "/employee-asset-records-report";
|
|
15
40
|
readonly OFFBOARDING_MANAGEMENT: "/offboarding-management";
|
|
16
41
|
readonly ATTENDANCE_TIME_TRACKING: "/attendance-time-tracking";
|
|
42
|
+
readonly LOAN_REQUEST_LIST: "/loan-requests";
|
|
43
|
+
readonly ADD_LOAN_REQUEST: "/loan-requests/add-loan";
|
|
44
|
+
readonly EDIT_LOAN_REQUEST: "/loan-requests/:id/edit-loan";
|
|
45
|
+
readonly VIEW_LOAN_REQUEST: "/loan-requests/:id/view-loan";
|
|
17
46
|
readonly LEAVE_MANAGEMENT: "/leave-management";
|
|
47
|
+
readonly RESIGNATION_LIST: "/resignations";
|
|
48
|
+
readonly TERMINATION_LIST: "/terminations";
|
|
49
|
+
readonly ADD_RESIGNATION: "/resignation-termination/add-resignation";
|
|
50
|
+
readonly EDIT_RESIGNATION: "/resignation-termination/:id/edit-resignation";
|
|
51
|
+
readonly VIEW_RESIGNATION: "/resignation-termination/:id/view-resignation";
|
|
52
|
+
readonly ADD_TERMINATION: "/resignation-termination/add-termination";
|
|
53
|
+
readonly EDIT_TERMINATION: "/resignation-termination/:id/edit-termination";
|
|
54
|
+
readonly VIEW_TERMINATION: "/resignation-termination/:id/view-termination";
|
|
55
|
+
readonly CLEARANCE_REVIEW: "/resignation-termination/:id/clearance-review";
|
|
56
|
+
readonly RESIGNATION_FINAL_SETTLEMENT: "/resignation-termination/:id/resignation-final-settlement";
|
|
57
|
+
readonly TERMINATION_FINAL_SETTLEMENT: "/resignation-termination/:id/termination-final-settlement";
|
|
58
|
+
readonly RESOURCE_ALLOCATION: "/resource-management/resource-allocation-requests";
|
|
59
|
+
readonly ADD_RESOURCE_ALLOCATION: "/resource-management/resource-allocation/add-resource-allocation";
|
|
60
|
+
readonly EDIT_RESOURCE_ALLOCATION: "/resource-management/resource-allocation/:id/edit-resource-allocation";
|
|
61
|
+
readonly VIEW_RESOURCE_REQUIREMENTS: "/resource-management/resource-allocation/:id/view-resource-requirements";
|
|
62
|
+
readonly RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment";
|
|
63
|
+
readonly ADD_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/add-resource-assignment";
|
|
64
|
+
readonly EDIT_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/:id/edit-resource-assignment";
|
|
65
|
+
readonly VIEW_RESOURCE_ASSIGNMENT: "/resource-management/resource-assignment/:id/view-resource-assignment";
|
|
66
|
+
readonly ONBOARDING_MANAGEMENT: "/onboarding-management";
|
|
67
|
+
readonly RECRUITMENT: "/recruitment";
|
|
68
|
+
readonly TALENT_POOL_DASHBOARD: "/recruitment/talent-pool-dashboard";
|
|
69
|
+
readonly ASSET_RETURN: "/asset-return";
|
|
70
|
+
readonly APPROVAL_DASHBOARD: "/approval-dashboard";
|
|
71
|
+
readonly VIEW_APPROVAL_DASHBOARD: "/approval-dashboard/:id/view-approval-dashboard";
|
|
72
|
+
readonly EMPLOYEE_MANAGEMENT: "/employee-management";
|
|
73
|
+
readonly ORGANIZATION_STRUCTURE: "/organization-structure";
|
|
74
|
+
readonly FORMS: "/forms";
|
|
75
|
+
readonly CUSTOM_FORM: "/custom-form";
|
|
18
76
|
readonly EMPLOYEE_CONTRACT_MASTER: "/company-master-policy/employee-contract-master";
|
|
19
77
|
readonly DOCUMENT_MASTER: "/company-master-policy/document-master";
|
|
20
78
|
readonly ACCRUALS_BENEFITS_MASTER: "/company-master-policy/accruals-benefits-master";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* module-routes-config.ts
|
|
3
|
+
*
|
|
4
|
+
* Singleton store for per-module connected routes.
|
|
5
|
+
* Each MFE app (hrms-fe, crm-fe, etc.) can inject its own full set of routes
|
|
6
|
+
* via ERPUIProvider's `moduleRoutes` prop. modules.ts then reads from this
|
|
7
|
+
* store instead of relying on the potentially-stale common-hub pathname files.
|
|
8
|
+
*
|
|
9
|
+
* Usage in consuming app (e.g. hrms-fe main.tsx):
|
|
10
|
+
* <ERPUIProvider moduleRoutes={{ hrms: Object.values(PathnameHrms) }} ...>
|
|
11
|
+
*
|
|
12
|
+
* Usage in modules.ts:
|
|
13
|
+
* import { getModuleRoutes } from '../utils/module-routes-config';
|
|
14
|
+
* const hrmsRoutes = getModuleRoutes('hrms');
|
|
15
|
+
*/
|
|
16
|
+
type ModuleRoutesMap = Record<string, string[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Set module routes — called by ERPUIProvider when `moduleRoutes` prop is provided.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setModuleRoutes(routes: ModuleRoutesMap): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get all connected routes for a given module key (e.g. 'hrms', 'crm').
|
|
23
|
+
* Returns an empty array if no routes have been registered for that module.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getModuleRoutes(moduleKey: string): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get the full routes map.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getAllModuleRoutes(): ModuleRoutesMap;
|
|
30
|
+
/**
|
|
31
|
+
* Reset — primarily for testing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resetModuleRoutes(): void;
|
|
34
|
+
export {};
|
|
@@ -39,7 +39,7 @@ declare const MODULE_PATHS: {
|
|
|
39
39
|
readonly crm: string;
|
|
40
40
|
readonly rental: string;
|
|
41
41
|
readonly user: string;
|
|
42
|
-
readonly hrms:
|
|
42
|
+
readonly hrms: "/forms";
|
|
43
43
|
};
|
|
44
44
|
export type ModuleType = keyof typeof MODULE_PATHS;
|
|
45
45
|
export declare const formatText: (text: string) => string;
|
package/dist/utils/index.esm.js
CHANGED
|
@@ -9,6 +9,7 @@ import { r as getV1Languages } from "../chunks/api-BAbF3OU7.esm.js";
|
|
|
9
9
|
import { s as s2, j as j3, k as k3 } from "../chunks/api-BAbF3OU7.esm.js";
|
|
10
10
|
import { c as c6, g as g6, n as n4, b as b5 } from "../chunks/useAuth-C4WcddEE.esm.js";
|
|
11
11
|
import { l as l3 } from "../chunks/translations-DJFxXzIm.esm.js";
|
|
12
|
+
import { g as g7, a as a13, r as r5, s as s3 } from "../chunks/module-routes-config-CCkZEtfg.esm.js";
|
|
12
13
|
import { default as default2 } from "i18next";
|
|
13
14
|
const primaryGreen = {
|
|
14
15
|
100: "#EBF9F2",
|
|
@@ -226,6 +227,7 @@ export {
|
|
|
226
227
|
a3 as generateRandomId,
|
|
227
228
|
g6 as generateRouteWithId,
|
|
228
229
|
a4 as getAccessibleModules,
|
|
230
|
+
g7 as getAllModuleRoutes,
|
|
229
231
|
g2 as getApiConfig,
|
|
230
232
|
b2 as getApiConfigSafe,
|
|
231
233
|
o3 as getCountry,
|
|
@@ -244,6 +246,7 @@ export {
|
|
|
244
246
|
aW as getItems,
|
|
245
247
|
ad as getLabelValuePairs,
|
|
246
248
|
ae as getMinutesFromTime,
|
|
249
|
+
a13 as getModuleRoutes,
|
|
247
250
|
af as getName,
|
|
248
251
|
ag as getNestedValue,
|
|
249
252
|
ah as getNextScheduleDate,
|
|
@@ -297,8 +300,10 @@ export {
|
|
|
297
300
|
r3 as renderEmptyRowsFallback,
|
|
298
301
|
e2 as renderValueField,
|
|
299
302
|
r2 as resetApiConfig,
|
|
303
|
+
r5 as resetModuleRoutes,
|
|
300
304
|
aI as responseItemDetailsColumns,
|
|
301
305
|
s2 as setDriveURL,
|
|
306
|
+
s3 as setModuleRoutes,
|
|
302
307
|
aJ as setRateBasedOnPriceRules,
|
|
303
308
|
j3 as setRoleURL,
|
|
304
309
|
k3 as setSystemFeatureURL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../src/utils/color.ts","../../src/utils/language.ts"],"sourcesContent":["export interface Color {\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 1000: string;\n}\n\nexport const primaryGreen: Color = {\n 100: \"#EBF9F2\",\n 200: \"#D6F3E5\",\n 300: \"#ADE7CB\",\n 400: \"#84DAB1\",\n 500: \"#5BCE97\",\n 600: \"#32C27D\",\n 700: \"#289B64\",\n 800: \"#1E744B\",\n 900: \"#144E32\",\n 1000: \"#0A2719\",\n};\n\nexport const green: Color = {\n 100: \"#DDF9E4\",\n 200: \"#D0F0DA\",\n 300: \"#C3E6CF\",\n 400: \"#B6DCC5\",\n 500: \"#A8D2BA\",\n 600: \"#72AA8F\",\n 700: \"#58967A\",\n 800: \"#3D8264\",\n 900: \"#226E4F\",\n 1000: \"#075A39\",\n};\n\nexport const lightGreen: Color = {\n 100: \"#F4FBCB\",\n 200: \"#EAF2BF\",\n 300: \"#E0E8B3\",\n 400: \"#D6DEA7\",\n 500: \"#CBD49A\",\n 600: \"#A2AD69\",\n 700: \"#98A45D\",\n 800: \"#8E9A51\",\n 900: \"#798638\",\n 1000: \"#505F07\",\n};\n\nexport const olive: Color = {\n 100: \"#FFF3CC\",\n 200: \"#F7EAC0\",\n 300: \"#EEE0B3\",\n 400: \"#E5D6A6\",\n 500: \"#DCCC99\",\n 600: \"#B8A466\",\n 700: \"#A6914D\",\n 800: \"#947D33\",\n 900: \"#82691A\",\n 1000: \"#705500\",\n};\n\nexport const magenta: Color = {\n 100: \"#FEECF1\",\n 200: \"#F6DEE8\",\n 300: \"#EDD0DF\",\n 400: \"#E4C2D6\",\n 500: \"#DBB3CC\",\n 600: \"#B779A7\",\n 700: \"#AE6B9E\",\n 800: \"#A55D95\",\n 900: \"#934082\",\n 1000: \"#6F065D\",\n};\n\nexport const blue: Color = {\n 100: \"#DAF4FC\",\n 200: \"#CDEBF4\",\n 300: \"#C0E1EB\",\n 400: \"#B3D8E2\",\n 500: \"#A6CED9\",\n 600: \"#72A7B6\",\n 700: \"#5894A5\",\n 800: \"#3E8193\",\n 900: \"#246E82\",\n 1000: \"#0A5A70\",\n};\n\nexport const neutral: Color = {\n 100: \"#FBFBFB\",\n 200: \"#EEEFF1\",\n 300: \"#D3D3D4\",\n 400: \"#BDBEBF\",\n 500: \"#A7A8A9\",\n 600: \"#919294\",\n 700: \"#7B7C7F\",\n 800: \"#656669\",\n 900: \"#232529\",\n 1000: \"#1F2125\",\n};\n\nexport const red: Color = {\n 100: \"#FFEBEB\",\n 200: \"#EED2D2\",\n 300: \"#DDB9B9\",\n 400: \"#D5ADAD\",\n 500: \"#CCA0A0\",\n 600: \"#BB8787\",\n 700: \"#AA6E6E\",\n 800: \"#995555\",\n 900: \"#883C3C\",\n 1000: \"#772322\",\n};\n\nexport const error: Color = {\n 100: \"#FEDFDF\",\n 200: \"#FCBFBF\",\n 300: \"#FBA0A0\",\n 400: \"#F98080\",\n 500: \"#F86060\",\n 600: \"#C64D4D\",\n 700: \"#953A3A\",\n 800: \"#632626\",\n 900: \"#321313\",\n 1000: \"#250E0E\",\n};\n","import { getV1Languages } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nexport async function fetchLanguages() {\n\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}"],"names":["d"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/utils/color.ts","../../src/utils/language.ts"],"sourcesContent":["export interface Color {\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 1000: string;\n}\n\nexport const primaryGreen: Color = {\n 100: \"#EBF9F2\",\n 200: \"#D6F3E5\",\n 300: \"#ADE7CB\",\n 400: \"#84DAB1\",\n 500: \"#5BCE97\",\n 600: \"#32C27D\",\n 700: \"#289B64\",\n 800: \"#1E744B\",\n 900: \"#144E32\",\n 1000: \"#0A2719\",\n};\n\nexport const green: Color = {\n 100: \"#DDF9E4\",\n 200: \"#D0F0DA\",\n 300: \"#C3E6CF\",\n 400: \"#B6DCC5\",\n 500: \"#A8D2BA\",\n 600: \"#72AA8F\",\n 700: \"#58967A\",\n 800: \"#3D8264\",\n 900: \"#226E4F\",\n 1000: \"#075A39\",\n};\n\nexport const lightGreen: Color = {\n 100: \"#F4FBCB\",\n 200: \"#EAF2BF\",\n 300: \"#E0E8B3\",\n 400: \"#D6DEA7\",\n 500: \"#CBD49A\",\n 600: \"#A2AD69\",\n 700: \"#98A45D\",\n 800: \"#8E9A51\",\n 900: \"#798638\",\n 1000: \"#505F07\",\n};\n\nexport const olive: Color = {\n 100: \"#FFF3CC\",\n 200: \"#F7EAC0\",\n 300: \"#EEE0B3\",\n 400: \"#E5D6A6\",\n 500: \"#DCCC99\",\n 600: \"#B8A466\",\n 700: \"#A6914D\",\n 800: \"#947D33\",\n 900: \"#82691A\",\n 1000: \"#705500\",\n};\n\nexport const magenta: Color = {\n 100: \"#FEECF1\",\n 200: \"#F6DEE8\",\n 300: \"#EDD0DF\",\n 400: \"#E4C2D6\",\n 500: \"#DBB3CC\",\n 600: \"#B779A7\",\n 700: \"#AE6B9E\",\n 800: \"#A55D95\",\n 900: \"#934082\",\n 1000: \"#6F065D\",\n};\n\nexport const blue: Color = {\n 100: \"#DAF4FC\",\n 200: \"#CDEBF4\",\n 300: \"#C0E1EB\",\n 400: \"#B3D8E2\",\n 500: \"#A6CED9\",\n 600: \"#72A7B6\",\n 700: \"#5894A5\",\n 800: \"#3E8193\",\n 900: \"#246E82\",\n 1000: \"#0A5A70\",\n};\n\nexport const neutral: Color = {\n 100: \"#FBFBFB\",\n 200: \"#EEEFF1\",\n 300: \"#D3D3D4\",\n 400: \"#BDBEBF\",\n 500: \"#A7A8A9\",\n 600: \"#919294\",\n 700: \"#7B7C7F\",\n 800: \"#656669\",\n 900: \"#232529\",\n 1000: \"#1F2125\",\n};\n\nexport const red: Color = {\n 100: \"#FFEBEB\",\n 200: \"#EED2D2\",\n 300: \"#DDB9B9\",\n 400: \"#D5ADAD\",\n 500: \"#CCA0A0\",\n 600: \"#BB8787\",\n 700: \"#AA6E6E\",\n 800: \"#995555\",\n 900: \"#883C3C\",\n 1000: \"#772322\",\n};\n\nexport const error: Color = {\n 100: \"#FEDFDF\",\n 200: \"#FCBFBF\",\n 300: \"#FBA0A0\",\n 400: \"#F98080\",\n 500: \"#F86060\",\n 600: \"#C64D4D\",\n 700: \"#953A3A\",\n 800: \"#632626\",\n 900: \"#321313\",\n 1000: \"#250E0E\",\n};\n","import { getV1Languages } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nexport async function fetchLanguages() {\n\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}"],"names":["d"],"mappings":";;;;;;;;;;;;;AAaO,MAAM,eAAsB;AAAA,EACjC,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,QAAe;AAAA,EAC1B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,aAAoB;AAAA,EAC/B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,QAAe;AAAA,EAC1B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,UAAiB;AAAA,EAC5B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,OAAc;AAAA,EACzB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,UAAiB;AAAA,EAC5B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,MAAa;AAAA,EACxB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AAEO,MAAM,QAAe;AAAA,EAC1B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAM;AACR;AC7HA,eAAsB,iBAAiB;;AAErC,QAAM,WAAW,MAAM,eAAe;AAAA,IACpC,OAAO;AAAA,IACP,GAAG,SAAA;AAAA,EAAS,CACb;AACD,QAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,QAAM,aAAY,kCAAM,OAAO,CAAAA,OAAKA,MAAA,gBAAAA,GAAG,eAArB,mBAAiC,IAAI,CAAAA,OAAK;AAC1D,WAAO;AAAA,MACL,OAAOA,MAAA,gBAAAA,GAAG;AAAA,MACV,MAAMA,MAAA,gBAAAA,GAAG;AAAA,MACT,WAAWA,MAAA,gBAAAA,GAAG;AAAA,IAAA;AAAA,EAElB;AAEA,SAAO;AACT;"}
|
package/dist/utils/index.js
CHANGED
|
@@ -9,6 +9,7 @@ const formBuilderConversion = require("../chunks/form-builder-conversion-nTpiw7Q
|
|
|
9
9
|
const api = require("../chunks/api-DJMpbRRM.js");
|
|
10
10
|
const useAuth = require("../chunks/useAuth-BhsPEB2T.js");
|
|
11
11
|
const translations = require("../chunks/translations-BVvsrCTo.js");
|
|
12
|
+
const moduleRoutesConfig = require("../chunks/module-routes-config-B8IucBuj.js");
|
|
12
13
|
const i18n = require("i18next");
|
|
13
14
|
const primaryGreen = {
|
|
14
15
|
100: "#EBF9F2",
|
|
@@ -302,6 +303,10 @@ exports.generateRouteWithId = useAuth.generateRouteWithId;
|
|
|
302
303
|
exports.navigateToRouteWithId = useAuth.navigateToRouteWithId;
|
|
303
304
|
exports.updatePathnameWithIdParams = useAuth.updatePathnameWithIdParams;
|
|
304
305
|
exports.loadModuleTranslations = translations.loadModuleTranslations;
|
|
306
|
+
exports.getAllModuleRoutes = moduleRoutesConfig.getAllModuleRoutes;
|
|
307
|
+
exports.getModuleRoutes = moduleRoutesConfig.getModuleRoutes;
|
|
308
|
+
exports.resetModuleRoutes = moduleRoutesConfig.resetModuleRoutes;
|
|
309
|
+
exports.setModuleRoutes = moduleRoutesConfig.setModuleRoutes;
|
|
305
310
|
exports.i18n = i18n;
|
|
306
311
|
exports.blue = blue;
|
|
307
312
|
exports.error = error;
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/color.ts","../../src/utils/language.ts"],"sourcesContent":["export interface Color {\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 1000: string;\n}\n\nexport const primaryGreen: Color = {\n 100: \"#EBF9F2\",\n 200: \"#D6F3E5\",\n 300: \"#ADE7CB\",\n 400: \"#84DAB1\",\n 500: \"#5BCE97\",\n 600: \"#32C27D\",\n 700: \"#289B64\",\n 800: \"#1E744B\",\n 900: \"#144E32\",\n 1000: \"#0A2719\",\n};\n\nexport const green: Color = {\n 100: \"#DDF9E4\",\n 200: \"#D0F0DA\",\n 300: \"#C3E6CF\",\n 400: \"#B6DCC5\",\n 500: \"#A8D2BA\",\n 600: \"#72AA8F\",\n 700: \"#58967A\",\n 800: \"#3D8264\",\n 900: \"#226E4F\",\n 1000: \"#075A39\",\n};\n\nexport const lightGreen: Color = {\n 100: \"#F4FBCB\",\n 200: \"#EAF2BF\",\n 300: \"#E0E8B3\",\n 400: \"#D6DEA7\",\n 500: \"#CBD49A\",\n 600: \"#A2AD69\",\n 700: \"#98A45D\",\n 800: \"#8E9A51\",\n 900: \"#798638\",\n 1000: \"#505F07\",\n};\n\nexport const olive: Color = {\n 100: \"#FFF3CC\",\n 200: \"#F7EAC0\",\n 300: \"#EEE0B3\",\n 400: \"#E5D6A6\",\n 500: \"#DCCC99\",\n 600: \"#B8A466\",\n 700: \"#A6914D\",\n 800: \"#947D33\",\n 900: \"#82691A\",\n 1000: \"#705500\",\n};\n\nexport const magenta: Color = {\n 100: \"#FEECF1\",\n 200: \"#F6DEE8\",\n 300: \"#EDD0DF\",\n 400: \"#E4C2D6\",\n 500: \"#DBB3CC\",\n 600: \"#B779A7\",\n 700: \"#AE6B9E\",\n 800: \"#A55D95\",\n 900: \"#934082\",\n 1000: \"#6F065D\",\n};\n\nexport const blue: Color = {\n 100: \"#DAF4FC\",\n 200: \"#CDEBF4\",\n 300: \"#C0E1EB\",\n 400: \"#B3D8E2\",\n 500: \"#A6CED9\",\n 600: \"#72A7B6\",\n 700: \"#5894A5\",\n 800: \"#3E8193\",\n 900: \"#246E82\",\n 1000: \"#0A5A70\",\n};\n\nexport const neutral: Color = {\n 100: \"#FBFBFB\",\n 200: \"#EEEFF1\",\n 300: \"#D3D3D4\",\n 400: \"#BDBEBF\",\n 500: \"#A7A8A9\",\n 600: \"#919294\",\n 700: \"#7B7C7F\",\n 800: \"#656669\",\n 900: \"#232529\",\n 1000: \"#1F2125\",\n};\n\nexport const red: Color = {\n 100: \"#FFEBEB\",\n 200: \"#EED2D2\",\n 300: \"#DDB9B9\",\n 400: \"#D5ADAD\",\n 500: \"#CCA0A0\",\n 600: \"#BB8787\",\n 700: \"#AA6E6E\",\n 800: \"#995555\",\n 900: \"#883C3C\",\n 1000: \"#772322\",\n};\n\nexport const error: Color = {\n 100: \"#FEDFDF\",\n 200: \"#FCBFBF\",\n 300: \"#FBA0A0\",\n 400: \"#F98080\",\n 500: \"#F86060\",\n 600: \"#C64D4D\",\n 700: \"#953A3A\",\n 800: \"#632626\",\n 900: \"#321313\",\n 1000: \"#250E0E\",\n};\n","import { getV1Languages } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nexport async function fetchLanguages() {\n\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}"],"names":["getV1Languages","getToken"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/color.ts","../../src/utils/language.ts"],"sourcesContent":["export interface Color {\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 1000: string;\n}\n\nexport const primaryGreen: Color = {\n 100: \"#EBF9F2\",\n 200: \"#D6F3E5\",\n 300: \"#ADE7CB\",\n 400: \"#84DAB1\",\n 500: \"#5BCE97\",\n 600: \"#32C27D\",\n 700: \"#289B64\",\n 800: \"#1E744B\",\n 900: \"#144E32\",\n 1000: \"#0A2719\",\n};\n\nexport const green: Color = {\n 100: \"#DDF9E4\",\n 200: \"#D0F0DA\",\n 300: \"#C3E6CF\",\n 400: \"#B6DCC5\",\n 500: \"#A8D2BA\",\n 600: \"#72AA8F\",\n 700: \"#58967A\",\n 800: \"#3D8264\",\n 900: \"#226E4F\",\n 1000: \"#075A39\",\n};\n\nexport const lightGreen: Color = {\n 100: \"#F4FBCB\",\n 200: \"#EAF2BF\",\n 300: \"#E0E8B3\",\n 400: \"#D6DEA7\",\n 500: \"#CBD49A\",\n 600: \"#A2AD69\",\n 700: \"#98A45D\",\n 800: \"#8E9A51\",\n 900: \"#798638\",\n 1000: \"#505F07\",\n};\n\nexport const olive: Color = {\n 100: \"#FFF3CC\",\n 200: \"#F7EAC0\",\n 300: \"#EEE0B3\",\n 400: \"#E5D6A6\",\n 500: \"#DCCC99\",\n 600: \"#B8A466\",\n 700: \"#A6914D\",\n 800: \"#947D33\",\n 900: \"#82691A\",\n 1000: \"#705500\",\n};\n\nexport const magenta: Color = {\n 100: \"#FEECF1\",\n 200: \"#F6DEE8\",\n 300: \"#EDD0DF\",\n 400: \"#E4C2D6\",\n 500: \"#DBB3CC\",\n 600: \"#B779A7\",\n 700: \"#AE6B9E\",\n 800: \"#A55D95\",\n 900: \"#934082\",\n 1000: \"#6F065D\",\n};\n\nexport const blue: Color = {\n 100: \"#DAF4FC\",\n 200: \"#CDEBF4\",\n 300: \"#C0E1EB\",\n 400: \"#B3D8E2\",\n 500: \"#A6CED9\",\n 600: \"#72A7B6\",\n 700: \"#5894A5\",\n 800: \"#3E8193\",\n 900: \"#246E82\",\n 1000: \"#0A5A70\",\n};\n\nexport const neutral: Color = {\n 100: \"#FBFBFB\",\n 200: \"#EEEFF1\",\n 300: \"#D3D3D4\",\n 400: \"#BDBEBF\",\n 500: \"#A7A8A9\",\n 600: \"#919294\",\n 700: \"#7B7C7F\",\n 800: \"#656669\",\n 900: \"#232529\",\n 1000: \"#1F2125\",\n};\n\nexport const red: Color = {\n 100: \"#FFEBEB\",\n 200: \"#EED2D2\",\n 300: \"#DDB9B9\",\n 400: \"#D5ADAD\",\n 500: \"#CCA0A0\",\n 600: \"#BB8787\",\n 700: \"#AA6E6E\",\n 800: \"#995555\",\n 900: \"#883C3C\",\n 1000: \"#772322\",\n};\n\nexport const error: Color = {\n 100: \"#FEDFDF\",\n 200: \"#FCBFBF\",\n 300: \"#FBA0A0\",\n 400: \"#F98080\",\n 500: \"#F86060\",\n 600: \"#C64D4D\",\n 700: \"#953A3A\",\n 800: \"#632626\",\n 900: \"#321313\",\n 1000: \"#250E0E\",\n};\n","import { getV1Languages } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nexport async function fetchLanguages() {\n\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}"],"names":["getV1Languages","getToken"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* module-routes-config.ts
|
|
3
|
+
*
|
|
4
|
+
* Singleton store for per-module connected routes.
|
|
5
|
+
* Each MFE app (hrms-fe, crm-fe, etc.) can inject its own full set of routes
|
|
6
|
+
* via ERPUIProvider's `moduleRoutes` prop. modules.ts then reads from this
|
|
7
|
+
* store instead of relying on the potentially-stale common-hub pathname files.
|
|
8
|
+
*
|
|
9
|
+
* Usage in consuming app (e.g. hrms-fe main.tsx):
|
|
10
|
+
* <ERPUIProvider moduleRoutes={{ hrms: Object.values(PathnameHrms) }} ...>
|
|
11
|
+
*
|
|
12
|
+
* Usage in modules.ts:
|
|
13
|
+
* import { getModuleRoutes } from '../utils/module-routes-config';
|
|
14
|
+
* const hrmsRoutes = getModuleRoutes('hrms');
|
|
15
|
+
*/
|
|
16
|
+
type ModuleRoutesMap = Record<string, string[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Set module routes — called by ERPUIProvider when `moduleRoutes` prop is provided.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setModuleRoutes(routes: ModuleRoutesMap): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get all connected routes for a given module key (e.g. 'hrms', 'crm').
|
|
23
|
+
* Returns an empty array if no routes have been registered for that module.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getModuleRoutes(moduleKey: string): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get the full routes map.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getAllModuleRoutes(): ModuleRoutesMap;
|
|
30
|
+
/**
|
|
31
|
+
* Reset — primarily for testing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resetModuleRoutes(): void;
|
|
34
|
+
export {};
|
|
@@ -39,7 +39,7 @@ declare const MODULE_PATHS: {
|
|
|
39
39
|
readonly crm: string;
|
|
40
40
|
readonly rental: string;
|
|
41
41
|
readonly user: string;
|
|
42
|
-
readonly hrms:
|
|
42
|
+
readonly hrms: "/forms";
|
|
43
43
|
};
|
|
44
44
|
export type ModuleType = keyof typeof MODULE_PATHS;
|
|
45
45
|
export declare const formatText: (text: string) => string;
|
package/dist/views/index.esm.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { A, a, B, b, C, c, d, e, f, g, D, E, h, i, M, j, F, k, l, m, H, I, L, N, P, n, T, R, S, o, p, q, r, s, t, u, v, w, x, y, z, G, J, K, O, Q, U, al, V, W, X, am, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak } from "../chunks/default-data-
|
|
1
|
+
import { A, a, B, b, C, c, d, e, f, g, D, E, h, i, M, j, F, k, l, m, H, I, L, N, P, n, T, R, S, o, p, q, r, s, t, u, v, w, x, y, z, G, J, K, O, Q, U, al, V, W, X, am, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak } from "../chunks/default-data-D1f8nbl6.esm.js";
|
|
2
2
|
import { j as jsxRuntimeExports } from "../chunks/jsx-runtime-ClFauRgV.esm.js";
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
|
-
import { _ as ModuleTile } from "../chunks/android-12-switch-
|
|
5
|
-
import { al as al2 } from "../chunks/android-12-switch-
|
|
4
|
+
import { _ as ModuleTile } from "../chunks/android-12-switch-C3WlgdKQ.esm.js";
|
|
5
|
+
import { al as al2 } from "../chunks/android-12-switch-C3WlgdKQ.esm.js";
|
|
6
6
|
import { T as Typography } from "../chunks/useAuth-C4WcddEE.esm.js";
|
|
7
|
-
import { F as FullscreenLayout } from "../chunks/fullScreen-
|
|
7
|
+
import { F as FullscreenLayout } from "../chunks/fullScreen-DSPrY2tY.esm.js";
|
|
8
8
|
import { useState, useMemo, useEffect } from "react";
|
|
9
|
-
import { m as modules } from "../chunks/modules-
|
|
9
|
+
import { m as modules } from "../chunks/modules-D5_hDIg9.esm.js";
|
|
10
10
|
import { i as images } from "../chunks/images-BY6aQF32.esm.js";
|
|
11
11
|
/* empty css */
|
|
12
12
|
import { ar as getToken } from "../chunks/common-B-nmtH5r.esm.js";
|
|
13
13
|
import { t as getV1RoleUserId } from "../chunks/api-BAbF3OU7.esm.js";
|
|
14
|
-
import { f as Box } from "../chunks/appbar-
|
|
14
|
+
import { f as Box } from "../chunks/appbar-CrH_SjSo.esm.js";
|
|
15
15
|
import { C as CssBaseline } from "../chunks/CssBaseline-qnbPrAjr.esm.js";
|
|
16
16
|
import { U as U2, c as c2, d as d2, r as r2, f as f2, g as g2, h as h2, i as i2, j as j2, p as p2, k as k2, e as e2, s as s2, l as l2, b as b2, m as m2, n as n2, o as o2, q as q2, t as t2, u as u2 } from "../chunks/reducer-Gajha1Kz.esm.js";
|
|
17
|
-
import { bA, bB } from "../chunks/route-page-map-
|
|
17
|
+
import { bA, bB } from "../chunks/route-page-map-C4wM0M4A.esm.js";
|
|
18
18
|
const Dashboard = () => {
|
|
19
19
|
var _a, _b;
|
|
20
20
|
const { t: t3 } = useTranslation();
|
package/dist/views/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const defaultData = require("../chunks/default-data-
|
|
3
|
+
const defaultData = require("../chunks/default-data-9-BQ_0wq.js");
|
|
4
4
|
const jsxRuntime = require("../chunks/jsx-runtime-B6vEU3CM.js");
|
|
5
5
|
const reactI18next = require("react-i18next");
|
|
6
|
-
const android12Switch = require("../chunks/android-12-switch-
|
|
6
|
+
const android12Switch = require("../chunks/android-12-switch-CVH-tc4s.js");
|
|
7
7
|
const useAuth = require("../chunks/useAuth-BhsPEB2T.js");
|
|
8
|
-
const fullScreen = require("../chunks/fullScreen-
|
|
8
|
+
const fullScreen = require("../chunks/fullScreen-BtbOZq50.js");
|
|
9
9
|
const React = require("react");
|
|
10
|
-
const modules = require("../chunks/modules-
|
|
10
|
+
const modules = require("../chunks/modules-C3T2Pnwc.js");
|
|
11
11
|
const images = require("../chunks/images-Cmybjd2S.js");
|
|
12
12
|
;/* empty css */
|
|
13
13
|
const common = require("../chunks/common-QvMCr1xx.js");
|
|
14
14
|
const api = require("../chunks/api-DJMpbRRM.js");
|
|
15
|
-
const appbar = require("../chunks/appbar-
|
|
15
|
+
const appbar = require("../chunks/appbar-D6bWAv8x.js");
|
|
16
16
|
const CssBaseline = require("../chunks/CssBaseline-Ba0wbudi.js");
|
|
17
17
|
const reducer = require("../chunks/reducer-DGvVphqy.js");
|
|
18
|
-
const routePageMap = require("../chunks/route-page-map-
|
|
18
|
+
const routePageMap = require("../chunks/route-page-map-CJLyl6P1.js");
|
|
19
19
|
const Dashboard = () => {
|
|
20
20
|
var _a, _b;
|
|
21
21
|
const { t } = reactI18next.useTranslation();
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apiHelper-BrzRrxpx.js","sources":["../../src/hooks/use-translations.ts","../../src/hooks/useDataFetcher.tsx","../../src/components/providers/ERPUIProvider.tsx","../../src/hooks/apiHelper.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from './useAuth'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && currentPath === '/dashboard') {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\n","import { useCallback, useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from './use-pages';\nimport { useLocation } from 'react-router-dom';\ninterface FilterParams {\n\tskip: number;\n\tlimit: number;\n\tsearch?: string;\n\tselect?: string;\n\torder?: string;\n\tfilters?: string;\n}\n\ninterface ActivePage {\n\tsort?: { id: string; desc: boolean };\n\tfilterQueryString?: string;\n\tsearch?: string;\n\tvisible_columns?: { visible: boolean; accessorKey: string }[];\n}\n\nconst useGenericDataFetcher = (\n\tcols?: ActivePage,\n\tpagination: { skip: number; limit: number },\n\tfetchAction: (filters: FilterParams) => void,\n\tcustomeFilter: any = '',\n\tcustomDeps?: any[],\n\tshowCreatedBy: boolean = true,\n\tcustomFields?: any = []\n) => {\n\tconst { activePage } = usePages();\n\tconst dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tconst sourceColumns = Array.isArray(cols) ? cols?.filter((col: any) => col.visible) : activePage?.visible_columns;\n\n\tconst [trackedPath, setTrackedPath] = useState<string | null>(null);\n\tconst [trackedColumns, setTrackedColumns] = useState<any[]>([]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath !== location?.pathname) {\n\t\t\tsetTrackedPath(location?.pathname);\n\t\t\tsetTrackedColumns([]);\n\t\t}\n\t}, [location?.pathname, trackedPath]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath === location?.pathname && sourceColumns?.length > 0) {\n\t\t\tif (JSON.stringify(trackedColumns) !== JSON.stringify(sourceColumns)) {\n\t\t\t\tsetTrackedColumns(sourceColumns);\n\t\t\t}\n\t\t}\n\t}, [location?.pathname, trackedPath, sourceColumns]);\n\n\tconst getProcessedFilters = useCallback(() => {\n\t\tconst { filterQueryString } = activePage || {};\n\t\tconst queryString = filterQueryString?.replaceAll(/[()]/g, \"\") || '';\n\t\tconst extraQueryString = queryString.length ? `&${queryString}` : '';\n\t\tlet filters = customeFilter;\n\n\t\tif (extraQueryString) {\n\t\t\tfilters = filters ? `(${filters}${extraQueryString})` : `(${extraQueryString})`;\n\t\t} else if (filters) {\n\t\t\tfilters = `(${filters})`;\n\t\t}\n\n\t\treturn filters || undefined;\n\t\t//eslint-disable-next-line\n\t}, [activePage.filterQueryString, customeFilter]);\n\n\tconst fetchData = useCallback(() => {\n\t\tif (!fetchAction) {\n\t\t\treturn;\n\t\t}\n\t\tconst { sort = null, search } = activePage;\n\n\t\tif (!trackedColumns || trackedColumns.length === 0) return;\n\n\t\tconst filters = getProcessedFilters();\n\t\tconst visibleColumns = trackedColumns?.filter((vc) => vc.visible)\n\n\t\tconst selectPayload = visibleColumns?.length > 0 ? `[${visibleColumns\n\t\t\t?.map((item) =>\n\t\t\t\titem.accessorKey?.includes(\".\")\n\t\t\t\t\t? item.accessorKey.split(\".\")[0]\n\t\t\t\t\t: item.accessorKey\n\t\t\t)}${showCreatedBy ? ',created_at,created_by_data' : ''}${customFields?.length ? `,${customFields?.join(',')}` : ''}]` : undefined\n\t\tconst payload: FilterParams = {\n\t\t\tskip: activePage?.skip || pagination?.skip,\n\t\t\tlimit: pagination.limit,\n\t\t\tsearch,\n\t\t\tselect: selectPayload,\n\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t...(filters && { filters }),\n\t\t};\n\n\t\tdispatch(fetchAction(payload));\n\t\t//eslint-disable-next-line\n\t}, [\n\t\ttrackedColumns,\n\t\tactivePage.sort,\n\t\tactivePage.filterQueryString,\n\t\tactivePage.search,\n\t\t// pagination?.skip,\n\t\tactivePage?.skip,\n\t\tpagination?.limit,\n\t\tdispatch,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t...(customDeps || []),\n\t]);\n\n\n\n\treturn fetchData;\n};\n\nexport default useGenericDataFetcher;\n","import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls, extendApiConfigurations } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Additional API configurations to extend the shared apiConfigurations map\n additionalApiConfigurations?: Record<string, any>;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n publicRoutes?: string[]; // Optional prop to allow customization of public routes in AuthProvider\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n additionalApiConfigurations,\n routeToColumnsMap,\n routeToResourceMap,\n publicRoutes = [], // Default empty array for public routes in AuthProvider \n}) => {\n console.log(\"additionalApiConfigurations...........\",additionalApiConfigurations)\n\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n if (additionalApiConfigurations) {\n extendApiConfigurations(additionalApiConfigurations);\n }\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n // if (enablePages) {\n // content = (\n // <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n // {content}\n // </PageProvider>\n // );\n // }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider publicRoutes={publicRoutes}>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;","import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?:any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return\n }\n\n if (callBack && typeof callBack === \"function\") {\n callBack();\n } else if (callBack) {\n console.warn(\"Provided callBack is not a function.\");\n }\n}\n"],"names":["useState","getI18n","useAuth","useTranslation","useEffect","modules","loadModuleTranslations","usePages","useDispatch","useLocation","useCallback","createContext","useContext","initializeApiConfig","initializeApiBaseUrls","extendApiConfigurations","store","createLibraryStore","createDarkTheme","createLightTheme","jsx","MUIThemeWrapper","SnackbarProvider","PermissionsProvider","LanguageProvider","AuthProvider","BrowserRouter","ReduxProvider","_a","enqueueSnackbar"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apiHelper-BvnhN2uo.esm.js","sources":["../../src/hooks/use-translations.ts","../../src/hooks/useDataFetcher.tsx","../../src/components/providers/ERPUIProvider.tsx","../../src/hooks/apiHelper.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from './useAuth'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && currentPath === '/dashboard') {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\n","import { useCallback, useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from './use-pages';\nimport { useLocation } from 'react-router-dom';\ninterface FilterParams {\n\tskip: number;\n\tlimit: number;\n\tsearch?: string;\n\tselect?: string;\n\torder?: string;\n\tfilters?: string;\n}\n\ninterface ActivePage {\n\tsort?: { id: string; desc: boolean };\n\tfilterQueryString?: string;\n\tsearch?: string;\n\tvisible_columns?: { visible: boolean; accessorKey: string }[];\n}\n\nconst useGenericDataFetcher = (\n\tcols?: ActivePage,\n\tpagination: { skip: number; limit: number },\n\tfetchAction: (filters: FilterParams) => void,\n\tcustomeFilter: any = '',\n\tcustomDeps?: any[],\n\tshowCreatedBy: boolean = true,\n\tcustomFields?: any = []\n) => {\n\tconst { activePage } = usePages();\n\tconst dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tconst sourceColumns = Array.isArray(cols) ? cols?.filter((col: any) => col.visible) : activePage?.visible_columns;\n\n\tconst [trackedPath, setTrackedPath] = useState<string | null>(null);\n\tconst [trackedColumns, setTrackedColumns] = useState<any[]>([]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath !== location?.pathname) {\n\t\t\tsetTrackedPath(location?.pathname);\n\t\t\tsetTrackedColumns([]);\n\t\t}\n\t}, [location?.pathname, trackedPath]);\n\n\tuseEffect(() => {\n\t\tif (trackedPath === location?.pathname && sourceColumns?.length > 0) {\n\t\t\tif (JSON.stringify(trackedColumns) !== JSON.stringify(sourceColumns)) {\n\t\t\t\tsetTrackedColumns(sourceColumns);\n\t\t\t}\n\t\t}\n\t}, [location?.pathname, trackedPath, sourceColumns]);\n\n\tconst getProcessedFilters = useCallback(() => {\n\t\tconst { filterQueryString } = activePage || {};\n\t\tconst queryString = filterQueryString?.replaceAll(/[()]/g, \"\") || '';\n\t\tconst extraQueryString = queryString.length ? `&${queryString}` : '';\n\t\tlet filters = customeFilter;\n\n\t\tif (extraQueryString) {\n\t\t\tfilters = filters ? `(${filters}${extraQueryString})` : `(${extraQueryString})`;\n\t\t} else if (filters) {\n\t\t\tfilters = `(${filters})`;\n\t\t}\n\n\t\treturn filters || undefined;\n\t\t//eslint-disable-next-line\n\t}, [activePage.filterQueryString, customeFilter]);\n\n\tconst fetchData = useCallback(() => {\n\t\tif (!fetchAction) {\n\t\t\treturn;\n\t\t}\n\t\tconst { sort = null, search } = activePage;\n\n\t\tif (!trackedColumns || trackedColumns.length === 0) return;\n\n\t\tconst filters = getProcessedFilters();\n\t\tconst visibleColumns = trackedColumns?.filter((vc) => vc.visible)\n\n\t\tconst selectPayload = visibleColumns?.length > 0 ? `[${visibleColumns\n\t\t\t?.map((item) =>\n\t\t\t\titem.accessorKey?.includes(\".\")\n\t\t\t\t\t? item.accessorKey.split(\".\")[0]\n\t\t\t\t\t: item.accessorKey\n\t\t\t)}${showCreatedBy ? ',created_at,created_by_data' : ''}${customFields?.length ? `,${customFields?.join(',')}` : ''}]` : undefined\n\t\tconst payload: FilterParams = {\n\t\t\tskip: activePage?.skip || pagination?.skip,\n\t\t\tlimit: pagination.limit,\n\t\t\tsearch,\n\t\t\tselect: selectPayload,\n\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t...(filters && { filters }),\n\t\t};\n\n\t\tdispatch(fetchAction(payload));\n\t\t//eslint-disable-next-line\n\t}, [\n\t\ttrackedColumns,\n\t\tactivePage.sort,\n\t\tactivePage.filterQueryString,\n\t\tactivePage.search,\n\t\t// pagination?.skip,\n\t\tactivePage?.skip,\n\t\tpagination?.limit,\n\t\tdispatch,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t...(customDeps || []),\n\t]);\n\n\n\n\treturn fetchData;\n};\n\nexport default useGenericDataFetcher;\n","import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls, extendApiConfigurations } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Additional API configurations to extend the shared apiConfigurations map\n additionalApiConfigurations?: Record<string, any>;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n publicRoutes?: string[]; // Optional prop to allow customization of public routes in AuthProvider\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n additionalApiConfigurations,\n routeToColumnsMap,\n routeToResourceMap,\n publicRoutes = [], // Default empty array for public routes in AuthProvider \n}) => {\n console.log(\"additionalApiConfigurations...........\",additionalApiConfigurations)\n\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n if (additionalApiConfigurations) {\n extendApiConfigurations(additionalApiConfigurations);\n }\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n // if (enablePages) {\n // content = (\n // <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n // {content}\n // </PageProvider>\n // );\n // }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider publicRoutes={publicRoutes}>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;","import { enqueueSnackbar } from \"notistack\";\n\ntype ApiResponse = {\n meta?: {\n requestStatus?: string;\n };\n error?: {\n message?: string;\n };\n payload?:any\n};\n\ntype Callback = () => void;\n\nexport function apiHelper(res: ApiResponse, callBack?: Callback): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n return res.error?.message ? JSON.parse(res.error.message) : null;\n } catch {\n return { message: \"Something went wrong\" };\n }\n })();\n\n const message = errorMessage?.message?.replace(\"Error:\", \"\").trim() || \"Something went wrong\";\n\n enqueueSnackbar(message, {\n variant: \"error\",\n });\n return\n }\n\n if (callBack && typeof callBack === \"function\") {\n callBack();\n } else if (callBack) {\n console.warn(\"Provided callBack is not a function.\");\n }\n}\n"],"names":["React","jsx","ReduxProvider","_a"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modules-BDHGBfwa.js","sources":["../../src/constants/pathnames/pathname.document.ts","../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["import { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string) => {\n return Pathname.DASHBOARD_DOCUMENT + name;\n};\n\nexport let PathnameDocument = {\n LANDING_PAGE: \"/\",\n PRIVATE: \"/private\",\n SHARED: \"/shared\",\n PUBLIC: \"/public\",\n SETTING: \"/setting\",\n FORMS: \"/setting/forms\",\n ADD_CUSTOM_FIELDS: \"/setting/forms/add-custom-fields\",\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n // console.log(\"CROSS_HIRE_ORDERS_GRNS 111\", MODULES[base])\n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"rgba(204, 172, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"user.name\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"rgba(204, 172, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"document.name\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"rgba(255, 164, 125, 0.10)\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"accounting.name\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"rgba(102, 215, 113, 0.10)\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"inventory.name\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"rgba(102, 120, 215, 0.20)\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"project.name\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"rgba(215, 102, 170, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"procurement.name\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"rgba(255, 125, 172, 0.10)\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\"]\n },\n {\n label: t(\"manufacturing.name\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"rgba(244, 96, 54, 0.10)\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"crm.name\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"rgba(111, 102, 215, 0.10)\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"hrms.name\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"rgba(75, 179, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n ),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"office.name\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"rgba(0, 172, 131, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"rental.name\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"rgba(0, 121, 63, 0.10)\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: \"Settings\",\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"rgba(125, 154, 255, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["Pathname","image","getApiConfig","module","PathnameUsers","PathnameAccounting","PathnameInventory","PathnamePurchase","PathnameManufacturing","PathnameCrm","PathnameHrms","PathnameRental"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modules-UIv-lDBW.esm.js","sources":["../../src/constants/pathnames/pathname.document.ts","../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["import { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string) => {\n return Pathname.DASHBOARD_DOCUMENT + name;\n};\n\nexport let PathnameDocument = {\n LANDING_PAGE: \"/\",\n PRIVATE: \"/private\",\n SHARED: \"/shared\",\n PUBLIC: \"/public\",\n SETTING: \"/setting\",\n FORMS: \"/setting/forms\",\n ADD_CUSTOM_FIELDS: \"/setting/forms/add-custom-fields\",\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n // console.log(\"CROSS_HIRE_ORDERS_GRNS 111\", MODULES[base])\n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"rgba(204, 172, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"user.name\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"rgba(204, 172, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"document.name\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"rgba(255, 164, 125, 0.10)\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"accounting.name\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"rgba(102, 215, 113, 0.10)\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"inventory.name\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"rgba(102, 120, 215, 0.20)\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"project.name\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"rgba(215, 102, 170, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"procurement.name\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"rgba(255, 125, 172, 0.10)\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\"]\n },\n {\n label: t(\"manufacturing.name\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"rgba(244, 96, 54, 0.10)\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"crm.name\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"rgba(111, 102, 215, 0.10)\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"hrms.name\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"rgba(75, 179, 255, 0.10)\",\n connectedRoutes: Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n ),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"office.name\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"rgba(0, 172, 131, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"rental.name\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"rgba(0, 121, 63, 0.10)\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: \"Settings\",\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"rgba(125, 154, 255, 0.10)\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["image"],"mappings":"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"}
|