@erpsquad/common 1.10.45 → 1.10.47

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 (125) hide show
  1. package/dist/chunks/{ERPUIProvider-DRBMMA2A.js → ERPUIProvider-B0UbTkZY.js} +8 -8
  2. package/dist/chunks/{ERPUIProvider-DRBMMA2A.js.map → ERPUIProvider-B0UbTkZY.js.map} +1 -1
  3. package/dist/chunks/{ERPUIProvider-BO9DfpEM.esm.js → ERPUIProvider-D9YB9EQO.esm.js} +8 -8
  4. package/dist/chunks/{ERPUIProvider-BO9DfpEM.esm.js.map → ERPUIProvider-D9YB9EQO.esm.js.map} +1 -1
  5. package/dist/chunks/{actionCreator-D7uVYQk5.js → actionCreator-BrkbDoSD.js} +2 -2
  6. package/dist/chunks/{actionCreator-D7uVYQk5.js.map → actionCreator-BrkbDoSD.js.map} +1 -1
  7. package/dist/chunks/{actionCreator-B95RsBM_.esm.js → actionCreator-DpYNRFa8.esm.js} +2 -2
  8. package/dist/chunks/{actionCreator-B95RsBM_.esm.js.map → actionCreator-DpYNRFa8.esm.js.map} +1 -1
  9. package/dist/chunks/{android-12-switch-ZtDpzRHx.js → android-12-switch-BxTuSbqu.js} +10 -10
  10. package/dist/chunks/{android-12-switch-ZtDpzRHx.js.map → android-12-switch-BxTuSbqu.js.map} +1 -1
  11. package/dist/chunks/{android-12-switch-cQW7NicJ.esm.js → android-12-switch-ROt3lCqE.esm.js} +10 -10
  12. package/dist/chunks/{android-12-switch-cQW7NicJ.esm.js.map → android-12-switch-ROt3lCqE.esm.js.map} +1 -1
  13. package/dist/chunks/api-config-DXwDMFn-.js.map +1 -1
  14. package/dist/chunks/api-config-GOys-syK.esm.js.map +1 -1
  15. package/dist/chunks/{appbar-DgtcGDYS.esm.js → appbar-B_raEww7.esm.js} +23 -17
  16. package/dist/chunks/appbar-B_raEww7.esm.js.map +1 -0
  17. package/dist/chunks/{appbar-6ns8zbIa.js → appbar-CUtGg9P0.js} +23 -17
  18. package/dist/chunks/appbar-CUtGg9P0.js.map +1 -0
  19. package/dist/chunks/{common-jPwuLblQ.esm.js → common-KSaUU42L.esm.js} +3 -5
  20. package/dist/chunks/{common-jPwuLblQ.esm.js.map → common-KSaUU42L.esm.js.map} +1 -1
  21. package/dist/chunks/{common-DKNNF5nL.js → common-mZRiR8Bu.js} +3 -5
  22. package/dist/chunks/{common-DKNNF5nL.js.map → common-mZRiR8Bu.js.map} +1 -1
  23. package/dist/chunks/{custom-editor-CqXTZfSQ.esm.js → custom-editor-BZSuqGTe.esm.js} +2 -2
  24. package/dist/chunks/{custom-editor-CqXTZfSQ.esm.js.map → custom-editor-BZSuqGTe.esm.js.map} +1 -1
  25. package/dist/chunks/{custom-editor-DLZXfaz-.js → custom-editor-MPffh-YA.js} +2 -2
  26. package/dist/chunks/{custom-editor-DLZXfaz-.js.map → custom-editor-MPffh-YA.js.map} +1 -1
  27. package/dist/chunks/{default-data-DVkaYnjj.js → default-data-C2a_a9U_.js} +16 -12
  28. package/dist/chunks/default-data-C2a_a9U_.js.map +1 -0
  29. package/dist/chunks/{default-data-V8UszZI7.esm.js → default-data-Dc-m3LiT.esm.js} +16 -12
  30. package/dist/chunks/default-data-Dc-m3LiT.esm.js.map +1 -0
  31. package/dist/chunks/{form-builder-conversion-DNRiFeQI.esm.js → form-builder-conversion-BRi2qp8w.esm.js} +2 -2
  32. package/dist/chunks/{form-builder-conversion-DNRiFeQI.esm.js.map → form-builder-conversion-BRi2qp8w.esm.js.map} +1 -1
  33. package/dist/chunks/{form-builder-conversion-CoTbUuLY.js → form-builder-conversion-DpySpPti.js} +2 -2
  34. package/dist/chunks/{form-builder-conversion-CoTbUuLY.js.map → form-builder-conversion-DpySpPti.js.map} +1 -1
  35. package/dist/chunks/{form-builder-deconversion-DfqaBgYE.js → form-builder-deconversion-B36OjpvZ.js} +3 -3
  36. package/dist/chunks/{form-builder-deconversion-DfqaBgYE.js.map → form-builder-deconversion-B36OjpvZ.js.map} +1 -1
  37. package/dist/chunks/{form-builder-deconversion-BNZtxVJq.esm.js → form-builder-deconversion-BN3pnLiO.esm.js} +3 -3
  38. package/dist/chunks/{form-builder-deconversion-BNZtxVJq.esm.js.map → form-builder-deconversion-BN3pnLiO.esm.js.map} +1 -1
  39. package/dist/chunks/{fullScreen-DmRL-kQw.esm.js → fullScreen-BZAR9ggK.esm.js} +2 -2
  40. package/dist/chunks/{fullScreen-DmRL-kQw.esm.js.map → fullScreen-BZAR9ggK.esm.js.map} +1 -1
  41. package/dist/chunks/{fullScreen-QlygOdmi.js → fullScreen-CuPeq163.js} +2 -2
  42. package/dist/chunks/{fullScreen-QlygOdmi.js.map → fullScreen-CuPeq163.js.map} +1 -1
  43. package/dist/chunks/{languageContext-DxlXP-e8.esm.js → languageContext-DvTW1NGX.esm.js} +3 -3
  44. package/dist/chunks/{languageContext-DxlXP-e8.esm.js.map → languageContext-DvTW1NGX.esm.js.map} +1 -1
  45. package/dist/chunks/{languageContext-B1keNi61.js → languageContext-Dw4OL1Wm.js} +3 -3
  46. package/dist/chunks/{languageContext-B1keNi61.js.map → languageContext-Dw4OL1Wm.js.map} +1 -1
  47. package/dist/chunks/{migration-utils-pxEWQdqc.esm.js → migration-utils-DOGCUMgN.esm.js} +2 -2
  48. package/dist/chunks/{migration-utils-pxEWQdqc.esm.js.map → migration-utils-DOGCUMgN.esm.js.map} +1 -1
  49. package/dist/chunks/{migration-utils-DGMdYs70.js → migration-utils-DqTbHFlq.js} +2 -2
  50. package/dist/chunks/{migration-utils-DGMdYs70.js.map → migration-utils-DqTbHFlq.js.map} +1 -1
  51. package/dist/chunks/{page-context-Bw5BePz5.esm.js → page-context-BajNyjXY.esm.js} +3 -3
  52. package/dist/chunks/{page-context-Bw5BePz5.esm.js.map → page-context-BajNyjXY.esm.js.map} +1 -1
  53. package/dist/chunks/{page-context-C3cz5ObT.js → page-context-DNHWacPV.js} +3 -3
  54. package/dist/chunks/{page-context-C3cz5ObT.js.map → page-context-DNHWacPV.js.map} +1 -1
  55. package/dist/chunks/{reducer-CwiprTvu.esm.js → reducer-BqCQLXEh.esm.js} +10 -8
  56. package/dist/chunks/{reducer-CwiprTvu.esm.js.map → reducer-BqCQLXEh.esm.js.map} +1 -1
  57. package/dist/chunks/{reducer-Dg88irMQ.js → reducer-o59TdR-2.js} +6 -4
  58. package/dist/chunks/{reducer-Dg88irMQ.js.map → reducer-o59TdR-2.js.map} +1 -1
  59. package/dist/chunks/{shareSlice-C-VMZadp.esm.js → shareSlice-BfiZhdXs.esm.js} +2 -2
  60. package/dist/chunks/{shareSlice-C-VMZadp.esm.js.map → shareSlice-BfiZhdXs.esm.js.map} +1 -1
  61. package/dist/chunks/{shareSlice-cDIBlXCI.js → shareSlice-aO_INfaN.js} +2 -2
  62. package/dist/chunks/{shareSlice-cDIBlXCI.js.map → shareSlice-aO_INfaN.js.map} +1 -1
  63. package/dist/chunks/{sidebar-C5Y48-pe.js → sidebar-BAHwteHA.js} +4 -4
  64. package/dist/chunks/{sidebar-C5Y48-pe.js.map → sidebar-BAHwteHA.js.map} +1 -1
  65. package/dist/chunks/{sidebar--uK32fMl.esm.js → sidebar-CINlCsBR.esm.js} +4 -4
  66. package/dist/chunks/{sidebar--uK32fMl.esm.js.map → sidebar-CINlCsBR.esm.js.map} +1 -1
  67. package/dist/chunks/{sidebarScreen-xxapW1VS.js → sidebarScreen-B8w0eg8t.js} +5 -5
  68. package/dist/chunks/{sidebarScreen-xxapW1VS.js.map → sidebarScreen-B8w0eg8t.js.map} +1 -1
  69. package/dist/chunks/{sidebarScreen-DzPGEcEd.esm.js → sidebarScreen-DzP4Fy1-.esm.js} +5 -5
  70. package/dist/chunks/{sidebarScreen-DzPGEcEd.esm.js.map → sidebarScreen-DzP4Fy1-.esm.js.map} +1 -1
  71. package/dist/chunks/{store-DPHbeB97.js → store-B6aznScx.js} +3 -3
  72. package/dist/chunks/{store-DPHbeB97.js.map → store-B6aznScx.js.map} +1 -1
  73. package/dist/chunks/{store-DrIxOn4Z.esm.js → store-DY2m64HU.esm.js} +3 -3
  74. package/dist/chunks/{store-DrIxOn4Z.esm.js.map → store-DY2m64HU.esm.js.map} +1 -1
  75. package/dist/chunks/{translations-DZ8xJh20.js → translations-CtAAqKt_.js} +2 -2
  76. package/dist/chunks/{translations-DZ8xJh20.js.map → translations-CtAAqKt_.js.map} +1 -1
  77. package/dist/chunks/{translations-CQWs1-rP.esm.js → translations-DVs6ljbG.esm.js} +2 -2
  78. package/dist/chunks/{translations-CQWs1-rP.esm.js.map → translations-DVs6ljbG.esm.js.map} +1 -1
  79. package/dist/chunks/{uom-field-wrapper-DazM6vWq.js → uom-field-wrapper-870_KnFK.js} +18 -15
  80. package/dist/chunks/uom-field-wrapper-870_KnFK.js.map +1 -0
  81. package/dist/chunks/{uom-field-wrapper-BnOcTtY6.esm.js → uom-field-wrapper-DC1mK4-2.esm.js} +18 -15
  82. package/dist/chunks/uom-field-wrapper-DC1mK4-2.esm.js.map +1 -0
  83. package/dist/chunks/{useAccountSetting-DLprQFgv.js → useAccountSetting-BolqaAW4.js} +3 -3
  84. package/dist/chunks/{useAccountSetting-DLprQFgv.js.map → useAccountSetting-BolqaAW4.js.map} +1 -1
  85. package/dist/chunks/{useAccountSetting-C-vbVYcu.esm.js → useAccountSetting-BqPkM0WQ.esm.js} +3 -3
  86. package/dist/chunks/{useAccountSetting-C-vbVYcu.esm.js.map → useAccountSetting-BqPkM0WQ.esm.js.map} +1 -1
  87. package/dist/chunks/{useAdditionalDiscountAutoCalc-BZjzj936.esm.js → useAdditionalDiscountAutoCalc-BGR4dtRV.esm.js} +5 -5
  88. package/dist/chunks/{useAdditionalDiscountAutoCalc-BZjzj936.esm.js.map → useAdditionalDiscountAutoCalc-BGR4dtRV.esm.js.map} +1 -1
  89. package/dist/chunks/{useAdditionalDiscountAutoCalc-DFJ5MUDu.js → useAdditionalDiscountAutoCalc-Blm3Dv9D.js} +5 -5
  90. package/dist/chunks/{useAdditionalDiscountAutoCalc-DFJ5MUDu.js.map → useAdditionalDiscountAutoCalc-Blm3Dv9D.js.map} +1 -1
  91. package/dist/chunks/{useAuth-DdrmIbws.js → useAuth-BxOLRIR3.js} +2 -2
  92. package/dist/chunks/{useAuth-DdrmIbws.js.map → useAuth-BxOLRIR3.js.map} +1 -1
  93. package/dist/chunks/{useAuth-C2QRC3wF.esm.js → useAuth-Cc85zx55.esm.js} +2 -2
  94. package/dist/chunks/{useAuth-C2QRC3wF.esm.js.map → useAuth-Cc85zx55.esm.js.map} +1 -1
  95. package/dist/chunks/{useLangauge-C3CeLP6M.js → useLangauge-CH6Qmk_K.js} +2 -2
  96. package/dist/chunks/{useLangauge-C3CeLP6M.js.map → useLangauge-CH6Qmk_K.js.map} +1 -1
  97. package/dist/chunks/{useLangauge-DGf95f3m.esm.js → useLangauge-MakL7mDD.esm.js} +2 -2
  98. package/dist/chunks/{useLangauge-DGf95f3m.esm.js.map → useLangauge-MakL7mDD.esm.js.map} +1 -1
  99. package/dist/components/index.esm.js +9 -9
  100. package/dist/components/index.js +9 -9
  101. package/dist/contexts/index.esm.js +3 -3
  102. package/dist/contexts/index.js +3 -3
  103. package/dist/hooks/index.esm.js +5 -5
  104. package/dist/hooks/index.js +5 -5
  105. package/dist/index.esm.js +26 -27
  106. package/dist/index.js +24 -25
  107. package/dist/index.js.map +1 -1
  108. package/dist/layout/index.esm.js +2 -2
  109. package/dist/layout/index.js +2 -2
  110. package/dist/redux/index.esm.js +4 -4
  111. package/dist/redux/index.js +4 -4
  112. package/dist/src/utils/api-config.d.ts +1 -0
  113. package/dist/utils/api-config.d.ts +1 -0
  114. package/dist/utils/index.esm.js +7 -7
  115. package/dist/utils/index.js +6 -6
  116. package/dist/views/index.esm.js +9 -8
  117. package/dist/views/index.js +8 -7
  118. package/dist/views/index.js.map +1 -1
  119. package/package.json +1 -1
  120. package/dist/chunks/appbar-6ns8zbIa.js.map +0 -1
  121. package/dist/chunks/appbar-DgtcGDYS.esm.js.map +0 -1
  122. package/dist/chunks/default-data-DVkaYnjj.js.map +0 -1
  123. package/dist/chunks/default-data-V8UszZI7.esm.js.map +0 -1
  124. package/dist/chunks/uom-field-wrapper-BnOcTtY6.esm.js.map +0 -1
  125. package/dist/chunks/uom-field-wrapper-DazM6vWq.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api-config-DXwDMFn-.js","sources":["../../src/constants/auth.ts","../../src/utils/api-config.ts"],"sourcesContent":["export const auth = {\n storageTokenKeyName: \"_tid\",\n storageUserKeyName: \"_u_data\",\n storageRolePermissionKeyName: \"role-permission\"\n};\n","\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n appLogo: string;\n appFavicon: string;\n appEnv?: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":";AAAO,MAAM,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,8BAA8B;AAChC;ACMA,IAAI,YAA8B;AAIlC,MAAM,cAAkC,CAAA;AAQjC,SAAS,iBAAiB,UAAkC;AAC/D,MAAI,WAAW;AAEX,aAAS,SAAS;AAAA,EACtB,OAAO;AAEH,gBAAY,KAAK,QAAQ;AAAA,EAC7B;AACJ;AAEO,SAAS,oBAAoB,QAAyB;AACzD,MAAI,WAAW;AACX,YAAQ,KAAK,wEAAwE;AAAA,EACzF;AAGA,MAAI,CAAC,OAAO,gBAAgB;AACxB,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACrE;AAEA,cAAY,EAAE,GAAG,OAAA;AAGjB,cAAY,QAAQ,CAAA,aAAY;AAC5B,QAAI;AACA,eAAS,SAAU;AAAA,IACvB,SAAS,OAAO;AACZ,cAAQ,MAAM,mCAAmC,KAAK;AAAA,IAC1D;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,eAA0B;AACtC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAGR;AAEA,SAAO;AACX;AAOO,SAAS,mBAAqC;AACjD,SAAO;AACX;AAEO,SAAS,yBAAkC;AAC9C,SAAO,cAAc;AACzB;AAGO,SAAS,iBAAuB;AACnC,cAAY;AAChB;;;;;;;;"}
1
+ {"version":3,"file":"api-config-DXwDMFn-.js","sources":["../../src/constants/auth.ts","../../src/utils/api-config.ts"],"sourcesContent":["export const auth = {\n storageTokenKeyName: \"_tid\",\n storageUserKeyName: \"_u_data\",\n storageRolePermissionKeyName: \"role-permission\"\n};\n","\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n appLogo: string;\n appFavicon: string;\n appEnv?: string;\n aiFeatureEnabled?: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":";AAAO,MAAM,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,8BAA8B;AAChC;ACOA,IAAI,YAA8B;AAIlC,MAAM,cAAkC,CAAA;AAQjC,SAAS,iBAAiB,UAAkC;AAC/D,MAAI,WAAW;AAEX,aAAS,SAAS;AAAA,EACtB,OAAO;AAEH,gBAAY,KAAK,QAAQ;AAAA,EAC7B;AACJ;AAEO,SAAS,oBAAoB,QAAyB;AACzD,MAAI,WAAW;AACX,YAAQ,KAAK,wEAAwE;AAAA,EACzF;AAGA,MAAI,CAAC,OAAO,gBAAgB;AACxB,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACrE;AAEA,cAAY,EAAE,GAAG,OAAA;AAGjB,cAAY,QAAQ,CAAA,aAAY;AAC5B,QAAI;AACA,eAAS,SAAU;AAAA,IACvB,SAAS,OAAO;AACZ,cAAQ,MAAM,mCAAmC,KAAK;AAAA,IAC1D;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,eAA0B;AACtC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAGR;AAEA,SAAO;AACX;AAOO,SAAS,mBAAqC;AACjD,SAAO;AACX;AAEO,SAAS,yBAAkC;AAC9C,SAAO,cAAc;AACzB;AAGO,SAAS,iBAAuB;AACnC,cAAY;AAChB;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-config-GOys-syK.esm.js","sources":["../../src/constants/auth.ts","../../src/utils/api-config.ts"],"sourcesContent":["export const auth = {\n storageTokenKeyName: \"_tid\",\n storageUserKeyName: \"_u_data\",\n storageRolePermissionKeyName: \"role-permission\"\n};\n","\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n appLogo: string;\n appFavicon: string;\n appEnv?: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":"AAAO,MAAM,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,8BAA8B;AAChC;ACMA,IAAI,YAA8B;AAIlC,MAAM,cAAkC,CAAA;AAQjC,SAAS,iBAAiB,UAAkC;AAC/D,MAAI,WAAW;AAEX,aAAS,SAAS;AAAA,EACtB,OAAO;AAEH,gBAAY,KAAK,QAAQ;AAAA,EAC7B;AACJ;AAEO,SAAS,oBAAoB,QAAyB;AACzD,MAAI,WAAW;AACX,YAAQ,KAAK,wEAAwE;AAAA,EACzF;AAGA,MAAI,CAAC,OAAO,gBAAgB;AACxB,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACrE;AAEA,cAAY,EAAE,GAAG,OAAA;AAGjB,cAAY,QAAQ,CAAA,aAAY;AAC5B,QAAI;AACA,eAAS,SAAU;AAAA,IACvB,SAAS,OAAO;AACZ,cAAQ,MAAM,mCAAmC,KAAK;AAAA,IAC1D;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,eAA0B;AACtC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAGR;AAEA,SAAO;AACX;AAOO,SAAS,mBAAqC;AACjD,SAAO;AACX;AAEO,SAAS,yBAAkC;AAC9C,SAAO,cAAc;AACzB;AAGO,SAAS,iBAAuB;AACnC,cAAY;AAChB;"}
1
+ {"version":3,"file":"api-config-GOys-syK.esm.js","sources":["../../src/constants/auth.ts","../../src/utils/api-config.ts"],"sourcesContent":["export const auth = {\n storageTokenKeyName: \"_tid\",\n storageUserKeyName: \"_u_data\",\n storageRolePermissionKeyName: \"role-permission\"\n};\n","\nexport interface ApiConfig {\n backendBaseUrl: string;\n s3BucketUrl: string;\n socketBaseUrl: string;\n appLogo: string;\n appFavicon: string;\n appEnv?: string;\n aiFeatureEnabled?: string;\n}\n\nlet apiConfig: ApiConfig | null = null;\n\n// Subscriber pattern - callbacks to be notified when config is ready\ntype ConfigSubscriber = (config: ApiConfig) => void;\nconst subscribers: ConfigSubscriber[] = [];\n\n/**\n * Register a callback to be called when API config is initialized.\n * If config is already initialized, the callback is called immediately.\n * This allows modules to register their setBaseUrl calls without\n * worrying about initialization order.\n */\nexport function onApiConfigReady(callback: ConfigSubscriber): void {\n if (apiConfig) {\n // Config already initialized, call immediately\n callback(apiConfig);\n } else {\n // Store for later when config is initialized\n subscribers.push(callback);\n }\n}\n\nexport function initializeApiConfig(config: ApiConfig): void {\n if (apiConfig) {\n console.warn('API configuration is already initialized. Overwriting with new values.');\n }\n\n // Validate required fields\n if (!config.backendBaseUrl) {\n throw new Error('backendBaseUrl is required in API configuration');\n }\n\n apiConfig = { ...config };\n\n // Notify all subscribers\n subscribers.forEach(callback => {\n try {\n callback(apiConfig!);\n } catch (error) {\n console.error('Error in API config subscriber:', error);\n }\n });\n}\n\nexport function getApiConfig(): ApiConfig {\n if (!apiConfig) {\n throw new Error(\n 'API configuration not initialized. Please call initializeApiConfig() before using API features. ' +\n 'See documentation: https://github.com/erpforce/common#api-configuration'\n );\n }\n\n return apiConfig;\n}\n\n/**\n * Get API config if available, otherwise return null.\n * Use this for optional access where you want to gracefully handle\n * uninitialized state.\n */\nexport function getApiConfigSafe(): ApiConfig | null {\n return apiConfig;\n}\n\nexport function isApiConfigInitialized(): boolean {\n return apiConfig !== null;\n}\n\n\nexport function resetApiConfig(): void {\n apiConfig = null;\n}\n"],"names":[],"mappings":"AAAO,MAAM,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,8BAA8B;AAChC;ACOA,IAAI,YAA8B;AAIlC,MAAM,cAAkC,CAAA;AAQjC,SAAS,iBAAiB,UAAkC;AAC/D,MAAI,WAAW;AAEX,aAAS,SAAS;AAAA,EACtB,OAAO;AAEH,gBAAY,KAAK,QAAQ;AAAA,EAC7B;AACJ;AAEO,SAAS,oBAAoB,QAAyB;AACzD,MAAI,WAAW;AACX,YAAQ,KAAK,wEAAwE;AAAA,EACzF;AAGA,MAAI,CAAC,OAAO,gBAAgB;AACxB,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACrE;AAEA,cAAY,EAAE,GAAG,OAAA;AAGjB,cAAY,QAAQ,CAAA,aAAY;AAC5B,QAAI;AACA,eAAS,SAAU;AAAA,IACvB,SAAS,OAAO;AACZ,cAAQ,MAAM,mCAAmC,KAAK;AAAA,IAC1D;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,eAA0B;AACtC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAGR;AAEA,SAAO;AACX;AAOO,SAAS,mBAAqC;AACjD,SAAO;AACX;AAEO,SAAS,yBAAkC;AAC9C,SAAO,cAAc;AACzB;AAGO,SAAS,iBAAuB;AACnC,cAAY;AAChB;"}
@@ -2,8 +2,9 @@ import { j as jsxRuntimeExports } from "./jsx-runtime-ClFauRgV.esm.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useState, useRef, useEffect, useCallback, memo, isValidElement, cloneElement, Children, useMemo } from "react";
4
4
  import { marked } from "marked";
5
- import { e as useForkRef, u as useAuth, r as requireCreateSvgIcon, T as Typography$1, f as useTimeout, j as useIsFocusVisible, k as useEventCallback, l as ownerDocument, o as ownerWindow, d as useEnhancedEffect, s as setRef, m as createChainedFunction, p as isMuiElement, h as debounce$1, i as default_1$6, g as generateRouteWithId } from "./useAuth-C2QRC3wF.esm.js";
6
- import { at as getToken, aK as removeSeriesFromTitle, aa as getErrorMessage, aX as formatText, q as convertToUnderscore } from "./common-jPwuLblQ.esm.js";
5
+ import { e as useForkRef, u as useAuth, r as requireCreateSvgIcon, T as Typography$1, f as useTimeout, j as useIsFocusVisible, k as useEventCallback, l as ownerDocument, o as ownerWindow, d as useEnhancedEffect, s as setRef, m as createChainedFunction, p as isMuiElement, h as debounce$1, i as default_1$6, g as generateRouteWithId } from "./useAuth-Cc85zx55.esm.js";
6
+ import { b as getApiConfigSafe, g as getApiConfig } from "./api-config-GOys-syK.esm.js";
7
+ import { at as getToken, aK as removeSeriesFromTitle, aa as getErrorMessage, aX as formatText, q as convertToUnderscore } from "./common-KSaUU42L.esm.js";
7
8
  import { bh as streamV1CopilotChat, bi as postV1AiFeatureSearchQuery, bj as getV1Notification, bk as getV1NotificationMarkAllAsRead, bl as patchV1NotificationMarkAsReadId } from "./api-CAAYzky9.esm.js";
8
9
  import { Add, OpenInFullRounded, Close, ArrowUpwardRounded, Person, CheckCircle, Warning, Email, Assignment, HourglassEmpty, Cancel, AccountBalance } from "@mui/icons-material";
9
10
  import { P as PropTypes, _ as _extends, e as _objectWithoutPropertiesLoose, x as styled, v as styleFunctionSx, T as THEME_ID, d as defaultTheme$1, k as interopRequireDefaultExports, g as generateUtilityClass, u as useDefaultProps, j as capitalize, f as alpha_1, C as ClassNameGenerator, a as createTheme } from "./identifier-0SZUhw_A.esm.js";
@@ -15,7 +16,6 @@ import { a as clsx, e as extendSxProp, g as generateUtilityClasses, b as compose
15
16
  import { useNavigate, useLocation, matchRoutes, Link } from "react-router-dom";
16
17
  import { useTranslation } from "react-i18next";
17
18
  import { m as modules } from "./modules-DP_fWGjs.esm.js";
18
- import { g as getApiConfig, b as getApiConfigSafe } from "./api-config-GOys-syK.esm.js";
19
19
  import { i as images } from "./images-DvZ6-RV8.esm.js";
20
20
  import { f as PathnameRental, A as gateEntriesCrudPaths, y as equipmentsCrudPaths, a1 as productionPlanPaths, G as jobCardsCrudPaths, l as buildOrderCrudPaths, h as billOfMaterialCrudPaths, aF as workOrderCrudPaths, c as PathnameInventory, e as PathnamePurchase, b as PathnameCrm, a as PathnameAccounting, P as Pathname, aH as PathnameGenerator, aJ as PathnameGenerator$1, aI as PathnameGenerator$2, aN as ROUTES, aK as PathnameGenerator$3, d as PathnameManufacturing, aL as PathnameGenerator$4, aM as PathnameGenerator$5 } from "./pathname.rental-VYOFVGX6.esm.js";
21
21
  import { p as breadcrumbSegmentLabelMap } from "./route-page-map-v5YTqnK1.esm.js";
@@ -23,7 +23,7 @@ import { u as useTheme$1 } from "./CssBaseline-DD305XvW.esm.js";
23
23
  import * as ReactDOM from "react-dom";
24
24
  import ReactDOM__default from "react-dom";
25
25
  import { enqueueSnackbar } from "notistack";
26
- import { u as useLanguage } from "./useLangauge-DGf95f3m.esm.js";
26
+ import { u as useLanguage } from "./useLangauge-MakL7mDD.esm.js";
27
27
  import { Controller, appendErrors, useForm } from "react-hook-form";
28
28
  import { validateFieldsNatively, toNestErrors } from "@hookform/resolvers";
29
29
  import * as Yup from "yup";
@@ -591,6 +591,9 @@ const ChatBotLauncher = ({ onOpen }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("
591
591
  ] });
592
592
  marked.use({ breaks: true, gfm: true });
593
593
  const ChatBot = () => {
594
+ var _a;
595
+ const isAiEnabled = ((_a = getApiConfigSafe()) == null ? void 0 : _a.aiFeatureEnabled) === "true";
596
+ if (!isAiEnabled) return null;
594
597
  const { user } = useAuth();
595
598
  const [isOpen, setIsOpen] = useState(false);
596
599
  const [messages, setMessages] = useState([]);
@@ -609,8 +612,8 @@ const ChatBot = () => {
609
612
  );
610
613
  useEffect(() => {
611
614
  if (isOpen) setTimeout(() => {
612
- var _a;
613
- return (_a = textareaRef.current) == null ? void 0 : _a.focus();
615
+ var _a2;
616
+ return (_a2 = textareaRef.current) == null ? void 0 : _a2.focus();
614
617
  }, 100);
615
618
  }, [isOpen]);
616
619
  useEffect(() => {
@@ -634,8 +637,8 @@ const ChatBot = () => {
634
637
  setShowSlashMenu(false);
635
638
  setSlashIndex(0);
636
639
  setTimeout(() => {
637
- var _a;
638
- return (_a = textareaRef.current) == null ? void 0 : _a.focus();
640
+ var _a2;
641
+ return (_a2 = textareaRef.current) == null ? void 0 : _a2.focus();
639
642
  }, 0);
640
643
  };
641
644
  const handleInputChange = (e) => {
@@ -651,8 +654,8 @@ const ChatBot = () => {
651
654
  const handleSuggestion = (prompt) => {
652
655
  setInputValue(prompt);
653
656
  setTimeout(() => {
654
- var _a;
655
- return (_a = textareaRef.current) == null ? void 0 : _a.focus();
657
+ var _a2;
658
+ return (_a2 = textareaRef.current) == null ? void 0 : _a2.focus();
656
659
  }, 0);
657
660
  };
658
661
  const sendMessage = useCallback(
@@ -7828,6 +7831,9 @@ function Breadcrumb({ selectedModule, segments }) {
7828
7831
  ] });
7829
7832
  }
7830
7833
  function GlobalSearch() {
7834
+ var _a;
7835
+ const isAiEnabled = ((_a = getApiConfigSafe()) == null ? void 0 : _a.aiFeatureEnabled) === "true";
7836
+ if (!isAiEnabled) return null;
7831
7837
  const navigate = useNavigate();
7832
7838
  const [gsOpen, setGsOpen] = useState(false);
7833
7839
  const [gsQuery, setGsQuery] = useState("");
@@ -7863,8 +7869,8 @@ function GlobalSearch() {
7863
7869
  };
7864
7870
  }, [gsQuery]);
7865
7871
  const gsGrouped = useMemo(() => {
7866
- var _a;
7867
- const results = ((_a = gsApiResults == null ? void 0 : gsApiResults.data) == null ? void 0 : _a.results) ?? [];
7872
+ var _a2;
7873
+ const results = ((_a2 = gsApiResults == null ? void 0 : gsApiResults.data) == null ? void 0 : _a2.results) ?? [];
7868
7874
  const map = /* @__PURE__ */ new Map();
7869
7875
  for (const r of results) {
7870
7876
  if (!map.has(r.doc_type)) map.set(r.doc_type, []);
@@ -7921,12 +7927,12 @@ function GlobalSearch() {
7921
7927
  ] })
7922
7928
  ] }),
7923
7929
  items.map((item) => {
7924
- var _a, _b;
7925
- const highlightTitle = (_b = (_a = item.highlight) == null ? void 0 : _a.title) == null ? void 0 : _b[0];
7930
+ var _a2, _b;
7931
+ const highlightTitle = (_b = (_a2 = item.highlight) == null ? void 0 : _a2.title) == null ? void 0 : _b[0];
7926
7932
  const displayTitle = removeSeriesFromTitle(highlightTitle ?? item.title);
7927
7933
  const initials = item.title.split(" ").slice(0, 2).map((w) => {
7928
- var _a2;
7929
- return ((_a2 = w[0]) == null ? void 0 : _a2.toUpperCase()) ?? "";
7934
+ var _a3;
7935
+ return ((_a3 = w[0]) == null ? void 0 : _a3.toUpperCase()) ?? "";
7930
7936
  }).join("");
7931
7937
  const bgColor = MODULE_THUMB_COLOR[item.module] ?? "linear-gradient(135deg,#6B7280,#4B5563)";
7932
7938
  const meta = [item.reference, item.date, item.amount != null ? Number(item.amount).toLocaleString(void 0, { maximumFractionDigits: 2 }) : null].filter(Boolean).join(" · ");
@@ -8937,4 +8943,4 @@ export {
8937
8943
  default_1$5 as y,
8938
8944
  List as z
8939
8945
  };
8940
- //# sourceMappingURL=appbar-DgtcGDYS.esm.js.map
8946
+ //# sourceMappingURL=appbar-B_raEww7.esm.js.map