@erpsquad/common 1.10.14 → 1.10.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/chunks/{actionCreator-lW4xJwo6.esm.js → actionCreator-Bm5Z7JNA.esm.js} +2 -2
  2. package/dist/chunks/{actionCreator-lW4xJwo6.esm.js.map → actionCreator-Bm5Z7JNA.esm.js.map} +1 -1
  3. package/dist/chunks/{actionCreator-D12DAbZ9.js → actionCreator-CAzJUIbI.js} +2 -2
  4. package/dist/chunks/{actionCreator-D12DAbZ9.js.map → actionCreator-CAzJUIbI.js.map} +1 -1
  5. package/dist/chunks/{android-12-switch-CoThnqwA.esm.js → android-12-switch-B93Ol4Bg.esm.js} +11 -11
  6. package/dist/chunks/{android-12-switch-CoThnqwA.esm.js.map → android-12-switch-B93Ol4Bg.esm.js.map} +1 -1
  7. package/dist/chunks/{android-12-switch-qRyUMiBR.js → android-12-switch-CWPFBfKL.js} +11 -11
  8. package/dist/chunks/{android-12-switch-qRyUMiBR.js.map → android-12-switch-CWPFBfKL.js.map} +1 -1
  9. package/dist/chunks/{apiHelper-_PRkyV1m.js → apiHelper-CFq96NOb.js} +8 -8
  10. package/dist/chunks/apiHelper-CFq96NOb.js.map +1 -0
  11. package/dist/chunks/{apiHelper-Bq4r8G-i.esm.js → apiHelper-Dzagdi_A.esm.js} +8 -8
  12. package/dist/chunks/apiHelper-Dzagdi_A.esm.js.map +1 -0
  13. package/dist/chunks/{appbar-vt61cSmt.esm.js → appbar-BgZzhjCS.esm.js} +4 -4
  14. package/dist/chunks/{appbar-vt61cSmt.esm.js.map → appbar-BgZzhjCS.esm.js.map} +1 -1
  15. package/dist/chunks/{appbar-1U7U1Fvp.js → appbar-CdXzNh8I.js} +4 -4
  16. package/dist/chunks/{appbar-1U7U1Fvp.js.map → appbar-CdXzNh8I.js.map} +1 -1
  17. package/dist/chunks/{common-_5nWR1og.js → common-CsInqdHr.js} +41 -20
  18. package/dist/chunks/{common-_5nWR1og.js.map → common-CsInqdHr.js.map} +1 -1
  19. package/dist/chunks/{common-CV3mgXKS.esm.js → common-DIzRxFqY.esm.js} +97 -76
  20. package/dist/chunks/{common-CV3mgXKS.esm.js.map → common-DIzRxFqY.esm.js.map} +1 -1
  21. package/dist/chunks/{custom-editor-BZmByuu8.esm.js → custom-editor-C4Jq5T4R.esm.js} +2 -2
  22. package/dist/chunks/{custom-editor-BZmByuu8.esm.js.map → custom-editor-C4Jq5T4R.esm.js.map} +1 -1
  23. package/dist/chunks/{custom-editor-BmBkLFvo.js → custom-editor-Pww_Urox.js} +2 -2
  24. package/dist/chunks/{custom-editor-BmBkLFvo.js.map → custom-editor-Pww_Urox.js.map} +1 -1
  25. package/dist/chunks/{default-data-DGwWib7U.esm.js → default-data-A38oYEkw.esm.js} +12 -12
  26. package/dist/chunks/{default-data-DGwWib7U.esm.js.map → default-data-A38oYEkw.esm.js.map} +1 -1
  27. package/dist/chunks/{default-data-Dd73GJn0.js → default-data-DWT8-Z2A.js} +12 -12
  28. package/dist/chunks/{default-data-Dd73GJn0.js.map → default-data-DWT8-Z2A.js.map} +1 -1
  29. package/dist/chunks/{form-builder-conversion-BXoZIlka.esm.js → form-builder-conversion-DG5R2GHa.esm.js} +2 -2
  30. package/dist/chunks/{form-builder-conversion-BXoZIlka.esm.js.map → form-builder-conversion-DG5R2GHa.esm.js.map} +1 -1
  31. package/dist/chunks/{form-builder-conversion-C5mieOtj.js → form-builder-conversion-DgKro_00.js} +2 -2
  32. package/dist/chunks/{form-builder-conversion-C5mieOtj.js.map → form-builder-conversion-DgKro_00.js.map} +1 -1
  33. package/dist/chunks/{form-builder-deconversion-DHU0Mcmc.esm.js → form-builder-deconversion-BEXolKwg.esm.js} +7 -6
  34. package/dist/chunks/form-builder-deconversion-BEXolKwg.esm.js.map +1 -0
  35. package/dist/chunks/{form-builder-deconversion-_MiPmlIj.js → form-builder-deconversion-BmD2cK-D.js} +7 -6
  36. package/dist/chunks/form-builder-deconversion-BmD2cK-D.js.map +1 -0
  37. package/dist/chunks/{fullScreen-DXp-yHYf.js → fullScreen-BAF5Ivkm.js} +2 -2
  38. package/dist/chunks/{fullScreen-DXp-yHYf.js.map → fullScreen-BAF5Ivkm.js.map} +1 -1
  39. package/dist/chunks/{fullScreen-DQxTHz1C.esm.js → fullScreen-iLnMPT2w.esm.js} +2 -2
  40. package/dist/chunks/{fullScreen-DQxTHz1C.esm.js.map → fullScreen-iLnMPT2w.esm.js.map} +1 -1
  41. package/dist/chunks/{languageContext-Bw8B9BL_.esm.js → languageContext-CVElvSkU.esm.js} +3 -3
  42. package/dist/chunks/{languageContext-Bw8B9BL_.esm.js.map → languageContext-CVElvSkU.esm.js.map} +1 -1
  43. package/dist/chunks/{languageContext-CT35Azi8.js → languageContext-tYiy1fHW.js} +3 -3
  44. package/dist/chunks/{languageContext-CT35Azi8.js.map → languageContext-tYiy1fHW.js.map} +1 -1
  45. package/dist/chunks/{migration-utils-CnEwX72x.js → migration-utils-DE6OhrZJ.js} +2 -2
  46. package/dist/chunks/{migration-utils-CnEwX72x.js.map → migration-utils-DE6OhrZJ.js.map} +1 -1
  47. package/dist/chunks/{migration-utils-Ds3uaVjM.esm.js → migration-utils-pOWRPPYY.esm.js} +2 -2
  48. package/dist/chunks/{migration-utils-Ds3uaVjM.esm.js.map → migration-utils-pOWRPPYY.esm.js.map} +1 -1
  49. package/dist/chunks/{page-context-C8gnS9FC.js → page-context-BNWLDtGJ.js} +3 -3
  50. package/dist/chunks/{page-context-C8gnS9FC.js.map → page-context-BNWLDtGJ.js.map} +1 -1
  51. package/dist/chunks/{page-context-CaNYCJWQ.esm.js → page-context-DYdt1aSA.esm.js} +3 -3
  52. package/dist/chunks/{page-context-CaNYCJWQ.esm.js.map → page-context-DYdt1aSA.esm.js.map} +1 -1
  53. package/dist/chunks/{pathname.quotes-8fDcaeay.esm.js → pathname.quotes-BjXXxpE5.esm.js} +17 -2
  54. package/dist/chunks/pathname.quotes-BjXXxpE5.esm.js.map +1 -0
  55. package/dist/chunks/{pathname.quotes-Db7RqRXA.js → pathname.quotes-n5Riceoz.js} +17 -2
  56. package/dist/chunks/pathname.quotes-n5Riceoz.js.map +1 -0
  57. package/dist/chunks/{reducer-DJIq7qoO.esm.js → reducer-B9OdoP2Q.esm.js} +2 -2
  58. package/dist/chunks/{reducer-DJIq7qoO.esm.js.map → reducer-B9OdoP2Q.esm.js.map} +1 -1
  59. package/dist/chunks/{reducer-7sOKLwKI.js → reducer-BEIewojl.js} +2 -2
  60. package/dist/chunks/{reducer-7sOKLwKI.js.map → reducer-BEIewojl.js.map} +1 -1
  61. package/dist/chunks/{shareSlice-7mdZ3RA4.js → shareSlice-BpWlAxHC.js} +2 -2
  62. package/dist/chunks/{shareSlice-7mdZ3RA4.js.map → shareSlice-BpWlAxHC.js.map} +1 -1
  63. package/dist/chunks/{shareSlice-51WScgr_.esm.js → shareSlice-Cj5ABjUz.esm.js} +2 -2
  64. package/dist/chunks/{shareSlice-51WScgr_.esm.js.map → shareSlice-Cj5ABjUz.esm.js.map} +1 -1
  65. package/dist/chunks/{sidebar-CpWfNjUT.esm.js → sidebar-Cq65cdpI.esm.js} +4 -4
  66. package/dist/chunks/{sidebar-CpWfNjUT.esm.js.map → sidebar-Cq65cdpI.esm.js.map} +1 -1
  67. package/dist/chunks/{sidebar-BN0XT839.js → sidebar-DPII0vKr.js} +4 -4
  68. package/dist/chunks/{sidebar-BN0XT839.js.map → sidebar-DPII0vKr.js.map} +1 -1
  69. package/dist/chunks/{sidebarScreen-CPB8iFBn.esm.js → sidebarScreen-C4Fs-HoS.esm.js} +5 -5
  70. package/dist/chunks/{sidebarScreen-CPB8iFBn.esm.js.map → sidebarScreen-C4Fs-HoS.esm.js.map} +1 -1
  71. package/dist/chunks/{sidebarScreen-Bt1RH_Lr.js → sidebarScreen-U0gXtEWi.js} +5 -5
  72. package/dist/chunks/{sidebarScreen-Bt1RH_Lr.js.map → sidebarScreen-U0gXtEWi.js.map} +1 -1
  73. package/dist/chunks/{store-DDgy6GBV.esm.js → store-BOeF6T1u.esm.js} +3 -3
  74. package/dist/chunks/{store-DDgy6GBV.esm.js.map → store-BOeF6T1u.esm.js.map} +1 -1
  75. package/dist/chunks/{store-BD-qLowI.js → store-BRFg_0zG.js} +3 -3
  76. package/dist/chunks/{store-BD-qLowI.js.map → store-BRFg_0zG.js.map} +1 -1
  77. package/dist/chunks/{translations-B10m4l5x.js → translations-C0b9EQE6.js} +2 -2
  78. package/dist/chunks/{translations-B10m4l5x.js.map → translations-C0b9EQE6.js.map} +1 -1
  79. package/dist/chunks/{translations-DwY28SKt.esm.js → translations-OUQouZfe.esm.js} +2 -2
  80. package/dist/chunks/{translations-DwY28SKt.esm.js.map → translations-OUQouZfe.esm.js.map} +1 -1
  81. package/dist/chunks/{uom-field-wrapper-DBP9cQ6T.js → uom-field-wrapper-C93vgg-u.js} +15 -15
  82. package/dist/chunks/uom-field-wrapper-C93vgg-u.js.map +1 -0
  83. package/dist/chunks/{uom-field-wrapper-FO_gQY3H.esm.js → uom-field-wrapper-Q6fMj2wr.esm.js} +15 -15
  84. package/dist/chunks/uom-field-wrapper-Q6fMj2wr.esm.js.map +1 -0
  85. package/dist/chunks/{useAccountSetting-CB9ljz-G.esm.js → useAccountSetting-DCcp1paz.esm.js} +3 -3
  86. package/dist/chunks/{useAccountSetting-CB9ljz-G.esm.js.map → useAccountSetting-DCcp1paz.esm.js.map} +1 -1
  87. package/dist/chunks/{useAccountSetting-Bycshg6O.js → useAccountSetting-Dg5ZSKDq.js} +3 -3
  88. package/dist/chunks/{useAccountSetting-Bycshg6O.js.map → useAccountSetting-Dg5ZSKDq.js.map} +1 -1
  89. package/dist/chunks/{useAuth-D3DsEPuu.esm.js → useAuth-BCbocYle.esm.js} +2 -2
  90. package/dist/chunks/{useAuth-D3DsEPuu.esm.js.map → useAuth-BCbocYle.esm.js.map} +1 -1
  91. package/dist/chunks/{useAuth-CD5vn_uv.js → useAuth-xa_Kof3L.js} +2 -2
  92. package/dist/chunks/{useAuth-CD5vn_uv.js.map → useAuth-xa_Kof3L.js.map} +1 -1
  93. package/dist/chunks/{useLangauge-DofTENls.esm.js → useLangauge-BMK0MgIF.esm.js} +2 -2
  94. package/dist/chunks/{useLangauge-DofTENls.esm.js.map → useLangauge-BMK0MgIF.esm.js.map} +1 -1
  95. package/dist/chunks/{useLangauge-B9SPPP5T.js → useLangauge-DQ5KTFK5.js} +2 -2
  96. package/dist/chunks/{useLangauge-B9SPPP5T.js.map → useLangauge-DQ5KTFK5.js.map} +1 -1
  97. package/dist/chunks/{useReduxIntegration-BBWYc304.js → useReduxIntegration-BvPNIpL8.js} +4 -4
  98. package/dist/chunks/{useReduxIntegration-BBWYc304.js.map → useReduxIntegration-BvPNIpL8.js.map} +1 -1
  99. package/dist/chunks/{useReduxIntegration-BIxrhV9q.esm.js → useReduxIntegration-CUy8fuG5.esm.js} +4 -4
  100. package/dist/chunks/{useReduxIntegration-BIxrhV9q.esm.js.map → useReduxIntegration-CUy8fuG5.esm.js.map} +1 -1
  101. package/dist/components/index.esm.js +9 -9
  102. package/dist/components/index.js +9 -9
  103. package/dist/constants/index.esm.js +1 -1
  104. package/dist/constants/index.js +1 -1
  105. package/dist/constants/lang/en.d.ts +15 -0
  106. package/dist/constants/resource-lang.d.ts +15 -0
  107. package/dist/contexts/index.esm.js +3 -3
  108. package/dist/contexts/index.js +3 -3
  109. package/dist/hooks/index.esm.js +5 -5
  110. package/dist/hooks/index.js +5 -5
  111. package/dist/index.esm.js +74 -72
  112. package/dist/index.js +27 -25
  113. package/dist/index.js.map +1 -1
  114. package/dist/layout/index.esm.js +2 -2
  115. package/dist/layout/index.js +2 -2
  116. package/dist/redux/index.esm.js +4 -4
  117. package/dist/redux/index.js +4 -4
  118. package/dist/src/constants/lang/en.d.ts +15 -0
  119. package/dist/src/constants/resource-lang.d.ts +15 -0
  120. package/dist/src/utils/common-utility.d.ts +2 -1
  121. package/dist/src/utils/common.d.ts +4 -2
  122. package/dist/utils/common-utility.d.ts +2 -1
  123. package/dist/utils/common.d.ts +4 -2
  124. package/dist/utils/index.esm.js +61 -59
  125. package/dist/utils/index.js +8 -6
  126. package/dist/utils/index.js.map +1 -1
  127. package/dist/views/index.esm.js +8 -8
  128. package/dist/views/index.js +7 -7
  129. package/package.json +1 -1
  130. package/dist/chunks/apiHelper-Bq4r8G-i.esm.js.map +0 -1
  131. package/dist/chunks/apiHelper-_PRkyV1m.js.map +0 -1
  132. package/dist/chunks/form-builder-deconversion-DHU0Mcmc.esm.js.map +0 -1
  133. package/dist/chunks/form-builder-deconversion-_MiPmlIj.js.map +0 -1
  134. package/dist/chunks/pathname.quotes-8fDcaeay.esm.js.map +0 -1
  135. package/dist/chunks/pathname.quotes-Db7RqRXA.js.map +0 -1
  136. package/dist/chunks/uom-field-wrapper-DBP9cQ6T.js.map +0 -1
  137. package/dist/chunks/uom-field-wrapper-FO_gQY3H.esm.js.map +0 -1
@@ -10,7 +10,7 @@ export declare const generateAndFormatStringFromObj: (obj?: any, keysInOrder?: s
10
10
  export declare const generateFields: (fieldsConfig: any) => any;
11
11
  export declare const generateQueryString: (rule: any) => string;
12
12
  export declare const getOperatorLabel: (rule: any, filterFields: any[]) => string;
13
- export declare const formatAmount: (amount?: number | string, format?: string, position?: "after" | "before", symbol?: string) => string;
13
+ export declare const formatAmount: (amount?: number | string, format?: string, position?: "after" | "before", symbol?: string, fraction?: number) => string;
14
14
  export declare const filterCoaByCompanyIdOrNull: (allCoa: any[], { companyId }: {
15
15
  companyId?: number | string | null | any[];
16
16
  }) => any[];
@@ -135,7 +135,7 @@ export declare const downloadDoc: ({ api, raw }: {
135
135
  raw: any;
136
136
  }) => Promise<void>;
137
137
  export declare function formatResponseDatesToDayJS<T>(obj: T): T;
138
- export declare const toFixedWithNumbers: (num: number) => string | number;
138
+ export declare const toFixedWithNumbers: (num: number, fraction?: number) => string | number;
139
139
  export declare const findById: (arr: Array<any>, id: any) => any;
140
140
  export declare const getTaxAmountFromMultipleTaxCodes: (amount: number, taxCodes?: any[], detail?: boolean) => number | {
141
141
  id: any;
@@ -240,6 +240,8 @@ export declare const isBetweenTheDates: (startDate: any, endDate: any) => boolea
240
240
  export declare const setRateBasedOnPriceRules: (salesPrice: any, priceRules: any, addedQuantity: any) => any;
241
241
  export declare const uploadAttachments: (files: any) => Promise<string>;
242
242
  export declare const addOrEditArray: (array: any[], data: any) => any[];
243
+ export declare const getDefaultUserData: () => any;
244
+ export declare const getDefaultFraction: () => number;
243
245
  export declare const getAccessibleModules: (moduleNames?: string[]) => string[];
244
246
  export declare const filterAccessibleModules: (menu: any, moduleNames?: string[]) => any;
245
247
  export declare const checkDuplicateTracking: (data: any, typeOfTrcebility: string, trackRows: any[]) => {
@@ -21,8 +21,9 @@ export interface ITransformTableColumns {
21
21
  statusClasses?: string | StatusClassesFn;
22
22
  rows: any[];
23
23
  currencyFormat?: boolean;
24
+ fraction?: number;
24
25
  }
25
- export declare const transformTableColumns: ({ columns, currencySymbol, translationFn, enableFooter, redirectionLink, redirectionLinkState, redirectionPathWithId, idField, statusClasses, rows, customizeValue, currencyFormat }: ITransformTableColumns) => {
26
+ export declare const transformTableColumns: ({ columns, currencySymbol, translationFn, enableFooter, redirectionLink, redirectionLinkState, redirectionPathWithId, idField, statusClasses, rows, customizeValue, currencyFormat, fraction }: ITransformTableColumns) => {
26
27
  Footer: ({ column }: {
27
28
  column: any;
28
29
  }) => import("react/jsx-runtime").JSX.Element;
@@ -10,7 +10,7 @@ export declare const generateAndFormatStringFromObj: (obj?: any, keysInOrder?: s
10
10
  export declare const generateFields: (fieldsConfig: any) => any;
11
11
  export declare const generateQueryString: (rule: any) => string;
12
12
  export declare const getOperatorLabel: (rule: any, filterFields: any[]) => string;
13
- export declare const formatAmount: (amount?: number | string, format?: string, position?: "after" | "before", symbol?: string) => string;
13
+ export declare const formatAmount: (amount?: number | string, format?: string, position?: "after" | "before", symbol?: string, fraction?: number) => string;
14
14
  export declare const filterCoaByCompanyIdOrNull: (allCoa: any[], { companyId }: {
15
15
  companyId?: number | string | null | any[];
16
16
  }) => any[];
@@ -135,7 +135,7 @@ export declare const downloadDoc: ({ api, raw }: {
135
135
  raw: any;
136
136
  }) => Promise<void>;
137
137
  export declare function formatResponseDatesToDayJS<T>(obj: T): T;
138
- export declare const toFixedWithNumbers: (num: number) => string | number;
138
+ export declare const toFixedWithNumbers: (num: number, fraction?: number) => string | number;
139
139
  export declare const findById: (arr: Array<any>, id: any) => any;
140
140
  export declare const getTaxAmountFromMultipleTaxCodes: (amount: number, taxCodes?: any[], detail?: boolean) => number | {
141
141
  id: any;
@@ -240,6 +240,8 @@ export declare const isBetweenTheDates: (startDate: any, endDate: any) => boolea
240
240
  export declare const setRateBasedOnPriceRules: (salesPrice: any, priceRules: any, addedQuantity: any) => any;
241
241
  export declare const uploadAttachments: (files: any) => Promise<string>;
242
242
  export declare const addOrEditArray: (array: any[], data: any) => any[];
243
+ export declare const getDefaultUserData: () => any;
244
+ export declare const getDefaultFraction: () => number;
243
245
  export declare const getAccessibleModules: (moduleNames?: string[]) => string[];
244
246
  export declare const filterAccessibleModules: (menu: any, moduleNames?: string[]) => any;
245
247
  export declare const checkDuplicateTracking: (data: any, typeOfTrcebility: string, trackRows: any[]) => {
@@ -1,14 +1,14 @@
1
- import { ar as getToken } from "../chunks/common-CV3mgXKS.esm.js";
2
- import { I, a, b, c, d, e, f, g, S, U, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, aT, G, H, J, K, L, M, N, O, P, Q, R, T, V, W, X, Y, Z, aU, _, $, a0, a1, a2, a3, a4, a5, aV, a6, a7, a8, a9, aa, ab, ac, aW, ad, ae, af, ag, ah, ai, aX, aj, ak, al, am, an, ao, ap, aq, as, at, aY, au, av, aw, ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS } from "../chunks/common-CV3mgXKS.esm.js";
1
+ import { at as getToken } from "../chunks/common-DIzRxFqY.esm.js";
2
+ import { I, a, b, c, d, e, f, g, S, U, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, aV, G, H, J, K, L, M, N, O, P, Q, R, T, V, W, X, Y, Z, aW, _, $, a0, a1, a2, a3, a4, a5, aX, a6, a7, a8, a9, aa, ab, ac, ad, ae, aY, af, ag, ah, ai, aj, ak, aZ, al, am, an, ao, ap, aq, ar, as, au, av, a_, aw, ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS, aT, aU } from "../chunks/common-DIzRxFqY.esm.js";
3
3
  import { g as g2, b as b2, i as i2, c as c2, o as o2, r as r2 } from "../chunks/api-config-GOys-syK.esm.js";
4
4
  import { R as R2, c as c3, g as g3, h as h2, a as a10, n as n2 } from "../chunks/navigation-utils-DvSBvB6q.esm.js";
5
- import { c as c4, a as a11, f as f2, b as b3, g as g4, d as d2, r as r3, e as e2, t as t2 } from "../chunks/form-builder-deconversion-DHU0Mcmc.esm.js";
6
- import { C as C2, M as M2, a as a12, b as b4, c as c5, S as S2, d as d3, e as e3, f as f3, g as g5, h as h3, i as i3, j as j2, k as k2, l as l2, m as m2, n as n3, o as o3, p as p2, q as q2, r as r4, u as u2 } from "../chunks/migration-utils-Ds3uaVjM.esm.js";
7
- import { d as d4, f as f4 } from "../chunks/form-builder-conversion-BXoZIlka.esm.js";
5
+ import { c as c4, a as a11, f as f2, b as b3, g as g4, d as d2, r as r3, e as e2, t as t2 } from "../chunks/form-builder-deconversion-BEXolKwg.esm.js";
6
+ import { C as C2, M as M2, a as a12, b as b4, c as c5, S as S2, d as d3, e as e3, f as f3, g as g5, h as h3, i as i3, j as j2, k as k2, l as l2, m as m2, n as n3, o as o3, p as p2, q as q2, r as r4, u as u2 } from "../chunks/migration-utils-pOWRPPYY.esm.js";
7
+ import { d as d4, f as f4 } from "../chunks/form-builder-conversion-DG5R2GHa.esm.js";
8
8
  import { t as getV1Languages } from "../chunks/api-BaAELcXO.esm.js";
9
9
  import { s as s2, k as k3, l as l3 } from "../chunks/api-BaAELcXO.esm.js";
10
- import { c as c6, g as g6, n as n4, b as b5 } from "../chunks/useAuth-D3DsEPuu.esm.js";
11
- import { l as l4 } from "../chunks/translations-DwY28SKt.esm.js";
10
+ import { c as c6, g as g6, n as n4, b as b5 } from "../chunks/useAuth-BCbocYle.esm.js";
11
+ import { l as l4 } from "../chunks/translations-OUQouZfe.esm.js";
12
12
  import { g as g7, a as a13, r as r5, s as s3 } from "../chunks/module-routes-config-CCkZEtfg.esm.js";
13
13
  import { default as default2 } from "i18next";
14
14
  const primaryGreen = {
@@ -195,7 +195,7 @@ export {
195
195
  E as fetchExchageRate,
196
196
  F as fetchItems,
197
197
  fetchLanguages,
198
- aT as fetchOptions,
198
+ aV as fetchOptions,
199
199
  G as fetchRentalResponseItems,
200
200
  H as fetchRfqItemsByIdForResponse,
201
201
  m2 as fileSize,
@@ -216,7 +216,7 @@ export {
216
216
  X as formatOnlyTime,
217
217
  Y as formatResponseDatesToDayJS,
218
218
  Z as formatResponseOnlyDatesToDayJS,
219
- aU as formatText,
219
+ aW as formatText,
220
220
  _ as formatTimeForPayload,
221
221
  $ as formatUtcDate,
222
222
  b3 as formateValueByType,
@@ -232,92 +232,94 @@ export {
232
232
  b2 as getApiConfigSafe,
233
233
  o3 as getCountry,
234
234
  a5 as getCountryIdByName,
235
- aV as getCurrency,
235
+ aX as getCurrency,
236
236
  a6 as getCurrencyFormat,
237
237
  a7 as getCurrencySymbol,
238
+ a8 as getDefaultFraction,
239
+ a9 as getDefaultUserData,
238
240
  g3 as getEntityId,
239
- a8 as getErrorMessage,
240
- a9 as getExcelExportTemplate,
241
- aa as getExcelTemplateGenerateTemplate,
242
- ab as getFieldFilters,
243
- ac as getFileName,
241
+ aa as getErrorMessage,
242
+ ab as getExcelExportTemplate,
243
+ ac as getExcelTemplateGenerateTemplate,
244
+ ad as getFieldFilters,
245
+ ae as getFileName,
244
246
  g4 as getFileNamesFromUrls,
245
247
  d2 as getFileNamesFromUrlsAsLink,
246
- aW as getItems,
247
- ad as getLabelValuePairs,
248
- ae as getMinutesFromTime,
248
+ aY as getItems,
249
+ af as getLabelValuePairs,
250
+ ag as getMinutesFromTime,
249
251
  a13 as getModuleRoutes,
250
- af as getName,
251
- ag as getNestedValue,
252
- ah as getNextScheduleDate,
253
- ai as getOperatorLabel,
254
- aX as getOptions,
255
- aj as getOptionsData,
256
- ak as getPartyDependentData,
257
- al as getPartyName,
258
- am as getPdfExportTemplate,
259
- an as getSlicedValue,
260
- ao as getTaxAmountDataFromMultipleTaxCodes,
261
- ap as getTaxAmountFromMultipleTaxCodes,
262
- aq as getTimeFromMinutes,
252
+ ah as getName,
253
+ ai as getNestedValue,
254
+ aj as getNextScheduleDate,
255
+ ak as getOperatorLabel,
256
+ aZ as getOptions,
257
+ al as getOptionsData,
258
+ am as getPartyDependentData,
259
+ an as getPartyName,
260
+ ao as getPdfExportTemplate,
261
+ ap as getSlicedValue,
262
+ aq as getTaxAmountDataFromMultipleTaxCodes,
263
+ ar as getTaxAmountFromMultipleTaxCodes,
264
+ as as getTimeFromMinutes,
263
265
  getToken,
264
266
  green,
265
267
  h2 as handleCompareDateRange,
266
268
  a10 as handleCompareDateRangeSync,
267
- as as handleRegularUpload,
268
- at as hasValue,
269
+ au as handleRegularUpload,
270
+ av as hasValue,
269
271
  default2 as i18n,
270
- aY as initializeApiBaseUrls,
272
+ a_ as initializeApiBaseUrls,
271
273
  i2 as initializeApiConfig,
272
274
  c2 as isApiConfigInitialized,
273
- au as isBetweenTheDates,
274
- av as isJSONString,
275
- aw as isJsonParse,
275
+ aw as isBetweenTheDates,
276
+ ax as isJSONString,
277
+ ay as isJsonParse,
276
278
  lightGreen,
277
279
  l4 as loadModuleTranslations,
278
280
  magenta,
279
- ax as manageItems,
280
- ay as mapApiPayload,
281
- az as mapAsyncApiPayload,
282
- aA as matchedMaterialCostingTypeLabel,
281
+ az as manageItems,
282
+ aA as mapApiPayload,
283
+ aB as mapAsyncApiPayload,
284
+ aC as matchedMaterialCostingTypeLabel,
283
285
  p2 as migrateRoutesToUseParams,
284
286
  q2 as migrateToPathWithId,
285
287
  n4 as navigateToRouteWithId,
286
288
  n2 as navigateWithId,
287
289
  neutral,
288
290
  olive,
289
- aB as omitDataKeys,
291
+ aD as omitDataKeys,
290
292
  o2 as onApiConfigReady,
291
- aC as partyDuplicateCheck,
292
- aD as partyEmailIds,
293
+ aE as partyDuplicateCheck,
294
+ aF as partyEmailIds,
293
295
  r4 as pastDateValidation,
294
- aE as postImportSheet,
296
+ aG as postImportSheet,
295
297
  primaryGreen,
296
298
  red,
297
- aF as remainingMaterialCostingTypes,
298
- aG as removeIdFromObject,
299
- aH as removeIdStaticIdsFromMongoObject,
299
+ aH as remainingMaterialCostingTypes,
300
+ aI as removeIdFromObject,
301
+ aJ as removeIdStaticIdsFromMongoObject,
300
302
  r3 as renderEmptyRowsFallback,
301
303
  e2 as renderValueField,
302
304
  r2 as resetApiConfig,
303
305
  r5 as resetModuleRoutes,
304
- aI as responseItemDetailsColumns,
306
+ aK as responseItemDetailsColumns,
305
307
  s2 as setDriveURL,
306
308
  s3 as setModuleRoutes,
307
- aJ as setRateBasedOnPriceRules,
309
+ aL as setRateBasedOnPriceRules,
308
310
  k3 as setRoleURL,
309
311
  l3 as setSystemFeatureURL,
310
- aK as showSnackBar,
311
- aL as skuGenerator,
312
- aM as specificFilters,
313
- aN as subModuleMappings,
314
- aO as toFixedWithNumbers,
312
+ aM as showSnackBar,
313
+ aN as skuGenerator,
314
+ aO as specificFilters,
315
+ aP as subModuleMappings,
316
+ aQ as toFixedWithNumbers,
315
317
  t2 as transformTableColumns,
316
- aP as updateFieldsDisabledState,
318
+ aR as updateFieldsDisabledState,
317
319
  b5 as updatePathnameWithIdParams,
318
320
  u2 as updateTableConfigForParameterizedNavigation,
319
- aQ as uploadAttachments,
320
- aR as uploadFiles,
321
- aS as validateDiscountValidity
321
+ aS as uploadAttachments,
322
+ aT as uploadFiles,
323
+ aU as validateDiscountValidity
322
324
  };
323
325
  //# sourceMappingURL=index.esm.js.map
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const common = require("../chunks/common-_5nWR1og.js");
3
+ const common = require("../chunks/common-CsInqdHr.js");
4
4
  const apiConfig = require("../chunks/api-config-DXwDMFn-.js");
5
5
  const navigationUtils = require("../chunks/navigation-utils-CG-S6RJB.js");
6
- const formBuilderDeconversion = require("../chunks/form-builder-deconversion-_MiPmlIj.js");
7
- const migrationUtils = require("../chunks/migration-utils-CnEwX72x.js");
8
- const formBuilderConversion = require("../chunks/form-builder-conversion-C5mieOtj.js");
6
+ const formBuilderDeconversion = require("../chunks/form-builder-deconversion-BmD2cK-D.js");
7
+ const migrationUtils = require("../chunks/migration-utils-DE6OhrZJ.js");
8
+ const formBuilderConversion = require("../chunks/form-builder-conversion-DgKro_00.js");
9
9
  const api = require("../chunks/api-0Kj72_mJ.js");
10
- const useAuth = require("../chunks/useAuth-CD5vn_uv.js");
11
- const translations = require("../chunks/translations-B10m4l5x.js");
10
+ const useAuth = require("../chunks/useAuth-xa_Kof3L.js");
11
+ const translations = require("../chunks/translations-C0b9EQE6.js");
12
12
  const moduleRoutesConfig = require("../chunks/module-routes-config-B8IucBuj.js");
13
13
  const i18n = require("i18next");
14
14
  const primaryGreen = {
@@ -200,6 +200,8 @@ exports.getCountryIdByName = common.getCountryIdByName;
200
200
  exports.getCurrency = common.getCurrency;
201
201
  exports.getCurrencyFormat = common.getCurrencyFormat;
202
202
  exports.getCurrencySymbol = common.getCurrencySymbol;
203
+ exports.getDefaultFraction = common.getDefaultFraction;
204
+ exports.getDefaultUserData = common.getDefaultUserData;
203
205
  exports.getErrorMessage = common.getErrorMessage;
204
206
  exports.getExcelExportTemplate = common.getExcelExportTemplate;
205
207
  exports.getExcelTemplateGenerateTemplate = common.getExcelTemplateGenerateTemplate;
@@ -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":"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"}
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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"}
@@ -1,19 +1,19 @@
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-DGwWib7U.esm.js";
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-A38oYEkw.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-CoThnqwA.esm.js";
5
- import { al as al2 } from "../chunks/android-12-switch-CoThnqwA.esm.js";
6
- import { T as Typography } from "../chunks/useAuth-D3DsEPuu.esm.js";
7
- import { F as FullscreenLayout } from "../chunks/fullScreen-DQxTHz1C.esm.js";
4
+ import { _ as ModuleTile } from "../chunks/android-12-switch-B93Ol4Bg.esm.js";
5
+ import { al as al2 } from "../chunks/android-12-switch-B93Ol4Bg.esm.js";
6
+ import { T as Typography } from "../chunks/useAuth-BCbocYle.esm.js";
7
+ import { F as FullscreenLayout } from "../chunks/fullScreen-iLnMPT2w.esm.js";
8
8
  import { useState, useMemo, useEffect } from "react";
9
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
- import { ar as getToken } from "../chunks/common-CV3mgXKS.esm.js";
12
+ import { at as getToken } from "../chunks/common-DIzRxFqY.esm.js";
13
13
  import { u as getV1RoleUserId } from "../chunks/api-BaAELcXO.esm.js";
14
- import { f as Box } from "../chunks/appbar-vt61cSmt.esm.js";
14
+ import { f as Box } from "../chunks/appbar-BgZzhjCS.esm.js";
15
15
  import { C as CssBaseline } from "../chunks/CssBaseline-qnbPrAjr.esm.js";
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-DJIq7qoO.esm.js";
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-B9OdoP2Q.esm.js";
17
17
  import { bA, bB } from "../chunks/route-page-map-BXyFv1TG.esm.js";
18
18
  const Dashboard = () => {
19
19
  var _a, _b;
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const defaultData = require("../chunks/default-data-Dd73GJn0.js");
3
+ const defaultData = require("../chunks/default-data-DWT8-Z2A.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-qRyUMiBR.js");
7
- const useAuth = require("../chunks/useAuth-CD5vn_uv.js");
8
- const fullScreen = require("../chunks/fullScreen-DXp-yHYf.js");
6
+ const android12Switch = require("../chunks/android-12-switch-CWPFBfKL.js");
7
+ const useAuth = require("../chunks/useAuth-xa_Kof3L.js");
8
+ const fullScreen = require("../chunks/fullScreen-BAF5Ivkm.js");
9
9
  const React = require("react");
10
10
  const modules = require("../chunks/modules-C3T2Pnwc.js");
11
11
  const images = require("../chunks/images-Cmybjd2S.js");
12
12
  ;/* empty css */
13
- const common = require("../chunks/common-_5nWR1og.js");
13
+ const common = require("../chunks/common-CsInqdHr.js");
14
14
  const api = require("../chunks/api-0Kj72_mJ.js");
15
- const appbar = require("../chunks/appbar-1U7U1Fvp.js");
15
+ const appbar = require("../chunks/appbar-CdXzNh8I.js");
16
16
  const CssBaseline = require("../chunks/CssBaseline-Ba0wbudi.js");
17
- const reducer = require("../chunks/reducer-7sOKLwKI.js");
17
+ const reducer = require("../chunks/reducer-BEIewojl.js");
18
18
  const routePageMap = require("../chunks/route-page-map-C5Q89eFJ.js");
19
19
  const Dashboard = () => {
20
20
  var _a, _b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erpsquad/common",
3
- "version": "1.10.14",
3
+ "version": "1.10.15",
4
4
  "description": "Shared UI component library for ERP modules",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.esm.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiHelper-Bq4r8G-i.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 intentionally omitted: the Pagination component already\n\t\t// mirrors skip into activePage.skip on pageNo change; including pagination.skip\n\t\t// here would make fetchData identity change twice per pagination click,\n\t\t// triggering the listing useEffect twice and causing duplicate API calls.\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';\nimport { setModuleRoutes } from '../../utils/module-routes-config';\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 // Module routes override — allows MFE apps to inject their own full route set\n // so the header module dropdown can match routes correctly.\n // Example: { hrms: Object.values(PathnameHrms).map(p => Pathname.DASHBOARD_HRMS + p) }\n moduleRoutes?: Record<string, string[]>;\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 moduleRoutes,\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 // Inject MFE-provided module routes so the header can resolve modules\n if (moduleRoutes) {\n setModuleRoutes(moduleRoutes);\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 as staticEnqueueSnackbar } 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(\n res: ApiResponse, \n callBack?: Callback, \n enqueueSnackbarOverride?: any\n): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n const msg = res.error?.message || res?.payload?.message;\n return msg ? JSON.parse(msg) : null;\n } catch {\n return { message: res.error?.message || res?.payload?.message || \"Something went wrong\" };\n }\n })();\n\n const rawError = errorMessage?.message;\n let message = \"Something went wrong\";\n\n if (typeof rawError === \"string\") {\n message = rawError.replace(\"Error:\", \"\").trim();\n } else if (rawError && typeof rawError === \"object\") {\n message = (rawError as any).message || JSON.stringify(rawError);\n } else if (rawError) {\n message = String(rawError);\n }\n\n const snackbar = typeof enqueueSnackbarOverride === 'function' \n ? enqueueSnackbarOverride \n : staticEnqueueSnackbar;\n\n if (typeof snackbar === \"function\") {\n snackbar(message, { variant: \"error\" });\n }\n return;\n }\n\n if (callBack) {\n if (typeof callBack === \"function\") {\n try {\n callBack();\n } catch (err) {\n console.error(\"[apiHelper] callBack threw an error:\", err);\n }\n } else {\n console.warn(\"[apiHelper] Provided callBack is not a function:\", typeof callBack);\n }\n }\n}\n"],"names":["React","jsx","ReduxProvider","_a","staticEnqueueSnackbar"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiHelper-_PRkyV1m.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 intentionally omitted: the Pagination component already\n\t\t// mirrors skip into activePage.skip on pageNo change; including pagination.skip\n\t\t// here would make fetchData identity change twice per pagination click,\n\t\t// triggering the listing useEffect twice and causing duplicate API calls.\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';\nimport { setModuleRoutes } from '../../utils/module-routes-config';\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 // Module routes override — allows MFE apps to inject their own full route set\n // so the header module dropdown can match routes correctly.\n // Example: { hrms: Object.values(PathnameHrms).map(p => Pathname.DASHBOARD_HRMS + p) }\n moduleRoutes?: Record<string, string[]>;\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 moduleRoutes,\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 // Inject MFE-provided module routes so the header can resolve modules\n if (moduleRoutes) {\n setModuleRoutes(moduleRoutes);\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 as staticEnqueueSnackbar } 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(\n res: ApiResponse, \n callBack?: Callback, \n enqueueSnackbarOverride?: any\n): void {\n if (res?.meta?.requestStatus === \"rejected\") {\n const errorMessage = (() => {\n try {\n const msg = res.error?.message || res?.payload?.message;\n return msg ? JSON.parse(msg) : null;\n } catch {\n return { message: res.error?.message || res?.payload?.message || \"Something went wrong\" };\n }\n })();\n\n const rawError = errorMessage?.message;\n let message = \"Something went wrong\";\n\n if (typeof rawError === \"string\") {\n message = rawError.replace(\"Error:\", \"\").trim();\n } else if (rawError && typeof rawError === \"object\") {\n message = (rawError as any).message || JSON.stringify(rawError);\n } else if (rawError) {\n message = String(rawError);\n }\n\n const snackbar = typeof enqueueSnackbarOverride === 'function' \n ? enqueueSnackbarOverride \n : staticEnqueueSnackbar;\n\n if (typeof snackbar === \"function\") {\n snackbar(message, { variant: \"error\" });\n }\n return;\n }\n\n if (callBack) {\n if (typeof callBack === \"function\") {\n try {\n callBack();\n } catch (err) {\n console.error(\"[apiHelper] callBack threw an error:\", err);\n }\n } else {\n console.warn(\"[apiHelper] Provided callBack is not a function:\", typeof callBack);\n }\n }\n}\n"],"names":["useState","getI18n","useAuth","useTranslation","useEffect","modules","loadModuleTranslations","usePages","useDispatch","useLocation","useCallback","createContext","useContext","initializeApiConfig","initializeApiBaseUrls","extendApiConfigurations","setModuleRoutes","store","createLibraryStore","createDarkTheme","createLightTheme","jsx","MUIThemeWrapper","SnackbarProvider","PermissionsProvider","LanguageProvider","AuthProvider","BrowserRouter","ReduxProvider","_a","staticEnqueueSnackbar"],"mappings":"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"}