@erpsquad/common 1.8.82 → 1.8.83

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 (47) hide show
  1. package/dist/_virtual/index/index.esm2.js +4 -2
  2. package/dist/_virtual/index/index.esm2.js.map +1 -1
  3. package/dist/_virtual/index/index.esm3.js +3 -3
  4. package/dist/_virtual/index/index.esm4.js +3 -3
  5. package/dist/_virtual/index/index.esm5.js +2 -4
  6. package/dist/_virtual/index/index.esm5.js.map +1 -1
  7. package/dist/_virtual/index/index2.js +1 -1
  8. package/dist/_virtual/index/index3.js +1 -1
  9. package/dist/_virtual/index/index4.js +1 -1
  10. package/dist/_virtual/index/index5.js +1 -1
  11. package/dist/components/providers/ERPUIProvider/index.esm.js +15 -1
  12. package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
  13. package/dist/components/providers/ERPUIProvider/index.js +1 -1
  14. package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
  15. package/dist/components/providers/ERPUIProvider.d.ts +2 -0
  16. package/dist/index.esm.js +7 -1
  17. package/dist/index.esm.js.map +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  20. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  21. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
  22. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  23. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  24. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  25. package/dist/src/components/providers/ERPUIProvider.d.ts +2 -0
  26. package/dist/src/utils/api-config.d.ts +48 -0
  27. package/dist/src/utils/api.d.ts +1 -0
  28. package/dist/src/utils/index.d.ts +1 -0
  29. package/dist/style.css +71 -71
  30. package/dist/utils/api/index.esm.js +20 -7
  31. package/dist/utils/api/index.esm.js.map +1 -1
  32. package/dist/utils/api/index.js +1 -1
  33. package/dist/utils/api/index.js.map +1 -1
  34. package/dist/utils/api-config/index.esm.js +36 -0
  35. package/dist/utils/api-config/index.esm.js.map +1 -0
  36. package/dist/utils/api-config/index.js +2 -0
  37. package/dist/utils/api-config/index.js.map +1 -0
  38. package/dist/utils/api-config.d.ts +48 -0
  39. package/dist/utils/api.d.ts +1 -0
  40. package/dist/utils/common/index.esm.js +6 -5
  41. package/dist/utils/common/index.esm.js.map +1 -1
  42. package/dist/utils/common/index.js +1 -1
  43. package/dist/utils/common/index.js.map +1 -1
  44. package/dist/utils/index.esm.js +7 -1
  45. package/dist/utils/index.esm.js.map +1 -1
  46. package/dist/utils/index.js +1 -1
  47. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
- var dist = { exports: {} };
1
+ import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
2
+ import * as index from "../../node_modules/@mui/material/utils/index/index.esm.js";
3
+ var require$$0 = /* @__PURE__ */ getAugmentedNamespace(index);
2
4
  export {
3
- dist as __module
5
+ require$$0 as default
4
6
  };
5
7
  //# sourceMappingURL=index.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,7 +1,7 @@
1
1
  import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
2
- import * as index from "../../node_modules/@mui/material/utils/index/index.esm.js";
3
- var require$$0 = /* @__PURE__ */ getAugmentedNamespace(index);
2
+ import * as index from "../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.esm.js";
3
+ var require$$1 = /* @__PURE__ */ getAugmentedNamespace(index);
4
4
  export {
5
- require$$0 as default
5
+ require$$1 as default
6
6
  };
7
7
  //# sourceMappingURL=index.esm3.js.map
@@ -1,7 +1,7 @@
1
1
  import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
2
- import * as index from "../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.esm.js";
3
- var require$$1 = /* @__PURE__ */ getAugmentedNamespace(index);
2
+ import * as index from "../../node_modules/@mui/utils/esm/clamp/index/index.esm.js";
3
+ var require$$2 = /* @__PURE__ */ getAugmentedNamespace(index);
4
4
  export {
5
- require$$1 as default
5
+ require$$2 as default
6
6
  };
7
7
  //# sourceMappingURL=index.esm4.js.map
@@ -1,7 +1,5 @@
1
- import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
2
- import * as index from "../../node_modules/@mui/utils/esm/clamp/index/index.esm.js";
3
- var require$$2 = /* @__PURE__ */ getAugmentedNamespace(index);
1
+ var dist = { exports: {} };
4
2
  export {
5
- require$$2 as default
3
+ dist as __module
6
4
  };
7
5
  //# sourceMappingURL=index.esm5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.esm5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.__module={exports:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/material/utils/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
2
2
  //# sourceMappingURL=index2.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/material/utils/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
2
2
  //# sourceMappingURL=index3.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/clamp/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
2
2
  //# sourceMappingURL=index4.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/clamp/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.__module={exports:{}};
2
2
  //# sourceMappingURL=index5.js.map
@@ -8,6 +8,8 @@ import { LanguageProvider } from "../../../contexts/languageContext/index.esm.js
8
8
  import { PageProvider } from "../../../contexts/page-context/index.esm.js";
9
9
  import { PermissionsProvider } from "../../../contexts/permission-context/index.esm.js";
10
10
  import MUIThemeWrapper from "../../../theme/themeWrapper/index.esm.js";
11
+ import { initializeApiConfig } from "../../../utils/api-config/index.esm.js";
12
+ import { initializeApiBaseUrls } from "../../../utils/api/index.esm.js";
11
13
  import { createLibraryStore } from "../../../redux/store/index.esm.js";
12
14
  import { createDarkTheme, createLightTheme } from "../../../theme/theme-impl/index.esm.js";
13
15
  const ERPUIContext = createContext({
@@ -42,8 +44,20 @@ const ERPUIProvider = ({
42
44
  maxSnack: 3,
43
45
  anchorOrigin: { vertical: "top", horizontal: "right" },
44
46
  autoHideDuration: 5e3
45
- }
47
+ },
48
+ // API configuration
49
+ apiConfig: providedApiConfig
46
50
  }) => {
51
+ React__default.useEffect(() => {
52
+ if (providedApiConfig) {
53
+ try {
54
+ initializeApiConfig(providedApiConfig);
55
+ initializeApiBaseUrls();
56
+ } catch (error) {
57
+ console.error("Failed to initialize API configuration:", error);
58
+ }
59
+ }
60
+ }, [providedApiConfig]);
47
61
  const store = React__default.useMemo(() => {
48
62
  if (!useRedux) return null;
49
63
  if (reduxStore) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["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';\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\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\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>\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>\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;"],"names":["React","ReduxProvider"],"mappings":";;;;;;;;;;;;AA2BA,MAAM,eAAe,cAAiC;AAAA,EACpD,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,CAAC;AAEM,MAAM,WAAW,MAAM,WAAW,YAAY;AAsC9C,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA;AAAA,EAGA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,qBAAqB,CAAA;AAAA;AAAA,EAGrB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA;AAAA,EAGZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,eAAe;AAAA;AAAA,EACf,iBAAiB;AAAA;AAAA,EAGjB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,cAAc,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,IAC7C,kBAAkB;AAAA,EAAA;AAEtB,MAAM;AAOJ,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,CAAC,SAAU,QAAO;AAEtB,QAAI,YAAY;AACd,aAAO;AAAA,IACT;AAEA,WAAO,mBAAmB,oBAAoB,SAAS;AAAA,EACzD,GAAG,CAAC,UAAU,YAAY,oBAAoB,SAAS,CAAC;AAGxD,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,aAAa;AACf,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,cAAc,SAAS,kBAAkB;AAC9D,UAAM,EAAE,OAAO,eAAA,IAAmB,aAAa,cAAc,SAAS;AACtE,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,WAAW,cAAc,SAAS,CAAC;AAGpD,QAAM,eAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAIF,MAAI,UACF,oBAAC,aAAa,UAAb,EAAsB,OAAO,cAI5B,UAAA,oBAAC,iBAAA,EAAgB,OAAc,mBAC5B,SAAA,CACH,GAGF;AAIF,MAAI,gBAAgB;AAClB,cACE,oBAAC,kBAAA,EAAkB,GAAG,gBACnB,UAAA,SACH;AAAA,EAEJ;AAGA,MAAI,aAAa;AACf,cACE,oBAAC,gBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,mBAAmB;AACrB,cACE,oBAAC,uBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,gBAAgB;AAClB,cACE,oBAAC,oBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY;AACd,cACE,oBAAC,gBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,cAAc;AAChB,cACE,oBAAC,iBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY,OAAO;AACrB,cACE,oBAACC,UAAA,EAAc,OACZ,UAAA,SACH;AAAA,EAEJ;AAEA,SAAO;AACT;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["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 } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n}\n\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}) => {\n\n // Initialize API configuration if provided\n React.useEffect(() => {\n if (providedApiConfig) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n }, [providedApiConfig]);\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>\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>\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;"],"names":["React","ReduxProvider"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAM,eAAe,cAAiC;AAAA,EACpD,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,CAAC;AAEM,MAAM,WAAW,MAAM,WAAW,YAAY;AAyC9C,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA;AAAA,EAGA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,qBAAqB,CAAA;AAAA;AAAA,EAGrB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA;AAAA,EAGZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,eAAe;AAAA;AAAA,EACf,iBAAiB;AAAA;AAAA,EAGjB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,cAAc,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,IAC7C,kBAAkB;AAAA,EAAA;AAAA;AAAA,EAIpB,WAAW;AACb,MAAM;AAGJA,iBAAM,UAAU,MAAM;AACpB,QAAI,mBAAmB;AACrB,UAAI;AACF,4BAAoB,iBAAiB;AACrC,8BAAA;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,2CAA2C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAMtB,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,CAAC,SAAU,QAAO;AAEtB,QAAI,YAAY;AACd,aAAO;AAAA,IACT;AAEA,WAAO,mBAAmB,oBAAoB,SAAS;AAAA,EACzD,GAAG,CAAC,UAAU,YAAY,oBAAoB,SAAS,CAAC;AAGxD,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,aAAa;AACf,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,cAAc,SAAS,kBAAkB;AAC9D,UAAM,EAAE,OAAO,eAAA,IAAmB,aAAa,cAAc,SAAS;AACtE,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,WAAW,cAAc,SAAS,CAAC;AAGpD,QAAM,eAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAIF,MAAI,UACF,oBAAC,aAAa,UAAb,EAAsB,OAAO,cAI5B,UAAA,oBAAC,iBAAA,EAAgB,OAAc,mBAC5B,SAAA,CACH,GAGF;AAIF,MAAI,gBAAgB;AAClB,cACE,oBAAC,kBAAA,EAAkB,GAAG,gBACnB,UAAA,SACH;AAAA,EAEJ;AAGA,MAAI,aAAa;AACf,cACE,oBAAC,gBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,mBAAmB;AACrB,cACE,oBAAC,uBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,gBAAgB;AAClB,cACE,oBAAC,oBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY;AACd,cACE,oBAAC,gBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,cAAc;AAChB,cACE,oBAAC,iBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY,OAAO;AACrB,cACE,oBAACC,UAAA,EAAc,OACZ,UAAA,SACH;AAAA,EAEJ;AAEA,SAAO;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("react-redux"),i=require("../../../node_modules/notistack/notistack.esm/index.js"),n=require("react-router-dom"),o=require("../../../contexts/AuthContext/index.js"),s=require("../../../contexts/languageContext/index.js"),a=require("../../../contexts/page-context/index.js"),u=require("../../../contexts/permission-context/index.js"),d=require("../../../theme/themeWrapper/index.js"),l=require("../../../redux/store/index.js"),c=require("../../../theme/theme-impl/index.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=/* @__PURE__ */x(r);const m=r.createContext({useRedux:!1,themeMode:"light",direction:"ltr"}),j=({children:r,useRedux:x=!1,reduxStore:j,apiClient:p,additionalReducers:g={},theme:P,themeMode:b="light",primaryColor:v,direction:q="ltr",enableAuth:f=!0,enableLanguage:C=!0,enablePages:k=!0,enablePermissions:R=!0,enableRouter:M=!1,enableSnackbar:y=!0,enableCssBaseline:S=!0,snackbarConfig:L={maxSnack:3,anchorOrigin:{vertical:"top",horizontal:"right"},autoHideDuration:5e3}})=>{const A=h.default.useMemo(()=>x?j||l.createLibraryStore(g,p):null,[x,j,g,p]),B=h.default.useMemo(()=>{if(P)return P;const e="dark"===b?c.createDarkTheme:c.createLightTheme,{theme:r}=e(v,q);return r},[P,b,v,q]),_={useRedux:x,apiClient:p,theme:B,themeMode:b,direction:q,primaryColor:v};let D=/* @__PURE__ */e.jsx(m.Provider,{value:_,children:/* @__PURE__ */e.jsx(d.default,{theme:B,enableCssBaseline:S,children:r})});return y&&(D=/* @__PURE__ */e.jsx(i.SnackbarProvider,{...L,children:D})),k&&(D=/* @__PURE__ */e.jsx(a.PageProvider,{children:D})),R&&(D=/* @__PURE__ */e.jsx(u.PermissionsProvider,{children:D})),C&&(D=/* @__PURE__ */e.jsx(s.LanguageProvider,{children:D})),f&&(D=/* @__PURE__ */e.jsx(o.AuthProvider,{children:D})),M&&(D=/* @__PURE__ */e.jsx(n.BrowserRouter,{children:D})),x&&A&&(D=/* @__PURE__ */e.jsx(t.Provider,{store:A,children:D})),D};exports.ERPUIProvider=j,exports.default=j,exports.useERPUI=()=>r.useContext(m);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),i=require("react-redux"),t=require("../../../node_modules/notistack/notistack.esm/index.js"),n=require("react-router-dom"),a=require("../../../contexts/AuthContext/index.js"),s=require("../../../contexts/languageContext/index.js"),o=require("../../../contexts/page-context/index.js"),u=require("../../../contexts/permission-context/index.js"),d=require("../../../theme/themeWrapper/index.js"),l=require("../../../utils/api-config/index.js"),c=require("../../../utils/api/index.js"),x=require("../../../redux/store/index.js"),h=require("../../../theme/theme-impl/index.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=/* @__PURE__ */m(r);const p=r.createContext({useRedux:!1,themeMode:"light",direction:"ltr"}),f=({children:r,useRedux:m=!1,reduxStore:f,apiClient:g,additionalReducers:P={},theme:b,themeMode:q="light",primaryColor:v,direction:C="ltr",enableAuth:k=!0,enableLanguage:R=!0,enablePages:y=!0,enablePermissions:M=!0,enableRouter:A=!1,enableSnackbar:S=!0,enableCssBaseline:B=!0,snackbarConfig:L={maxSnack:3,anchorOrigin:{vertical:"top",horizontal:"right"},autoHideDuration:5e3},apiConfig:z})=>{j.default.useEffect(()=>{if(z)try{l.initializeApiConfig(z),c.initializeApiBaseUrls()}catch(e){}},[z]);const E=j.default.useMemo(()=>m?f||x.createLibraryStore(P,g):null,[m,f,P,g]),U=j.default.useMemo(()=>{if(b)return b;const e="dark"===q?h.createDarkTheme:h.createLightTheme,{theme:r}=e(v,C);return r},[b,q,v,C]),_={useRedux:m,apiClient:g,theme:U,themeMode:q,direction:C,primaryColor:v};let D=/* @__PURE__ */e.jsx(p.Provider,{value:_,children:/* @__PURE__ */e.jsx(d.default,{theme:U,enableCssBaseline:B,children:r})});return S&&(D=/* @__PURE__ */e.jsx(t.SnackbarProvider,{...L,children:D})),y&&(D=/* @__PURE__ */e.jsx(o.PageProvider,{children:D})),M&&(D=/* @__PURE__ */e.jsx(u.PermissionsProvider,{children:D})),R&&(D=/* @__PURE__ */e.jsx(s.LanguageProvider,{children:D})),k&&(D=/* @__PURE__ */e.jsx(a.AuthProvider,{children:D})),A&&(D=/* @__PURE__ */e.jsx(n.BrowserRouter,{children:D})),m&&E&&(D=/* @__PURE__ */e.jsx(i.Provider,{store:E,children:D})),D};exports.ERPUIProvider=f,exports.default=f,exports.useERPUI=()=>r.useContext(p);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["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';\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\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\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>\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>\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;"],"names":["ERPUIContext","createContext","useRedux","themeMode","direction","ERPUIProvider","children","reduxStore","apiClient","additionalReducers","theme","customTheme","primaryColor","enableAuth","enableLanguage","enablePages","enablePermissions","enableRouter","enableSnackbar","enableCssBaseline","snackbarConfig","maxSnack","anchorOrigin","vertical","horizontal","autoHideDuration","store","React","useMemo","createLibraryStore","themeCreator","createDarkTheme","createLightTheme","generatedTheme","contextValue","content","jsx","Provider","value","MUIThemeWrapper","SnackbarProvider","PageProvider","PermissionsProvider","LanguageProvider","AuthProvider","BrowserRouter","ReduxProvider","useContext"],"mappings":"gsBA2BA,MAAMA,EAAeC,EAAAA,cAAiC,CACpDC,UAAU,EACVC,UAAW,QACXC,UAAW,QAyCAC,EAA8C,EACzDC,WAGAJ,YAAW,EACXK,aACAC,YACAC,qBAAqB,CAAA,EAGrBC,MAAOC,EACPR,YAAY,QACZS,eACAR,YAAY,MAGZS,cAAa,EACbC,kBAAiB,EACjBC,eAAc,EACdC,qBAAoB,EACpBC,gBAAe,EACfC,kBAAiB,EAGjBC,qBAAoB,EACpBC,iBAAiB,CACfC,SAAU,EACVC,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CC,iBAAkB,SASpB,MAAMC,EAAQC,UAAMC,QAAQ,IACrB1B,EAEDK,GAIGsB,EAAAA,mBAAmBpB,EAAoBD,GANxB,KAOrB,CAACN,EAAUK,EAAYE,EAAoBD,IAGxCE,EAAQiB,UAAMC,QAAQ,KAC1B,GAAIjB,EACF,OAAOA,EAGT,MAAMmB,EAA6B,SAAd3B,EAAuB4B,EAAAA,gBAAkBC,EAAAA,kBACtDtB,MAAOuB,GAAmBH,EAAalB,EAAcR,GAC7D,OAAO6B,GACN,CAACtB,EAAaR,EAAWS,EAAcR,IAGpC8B,EAAkC,CACtChC,WACAM,YACAE,QACAP,YACAC,YACAQ,gBAIF,IAAIuB,iBACFC,EAAAA,IAACpC,EAAaqC,SAAb,CAAsBC,MAAOJ,EAI5B5B,0BAAA8B,IAACG,EAAAA,QAAA,CAAgB7B,QAAcS,oBAC5Bb,eAsEP,OA9DIY,IACFiB,iBACEC,EAAAA,IAACI,mBAAA,IAAqBpB,EACnBd,SAAA6B,KAMHpB,IACFoB,mBACEC,IAACK,EAAAA,cACEnC,SAAA6B,KAMHnB,IACFmB,mBACEC,IAACM,EAAAA,qBACEpC,SAAA6B,KAMHrB,IACFqB,mBACEC,IAACO,EAAAA,kBACErC,SAAA6B,KAMHtB,IACFsB,mBACEC,IAACQ,EAAAA,cACEtC,SAAA6B,KAMHlB,IACFkB,mBACEC,IAACS,EAAAA,eACEvC,SAAA6B,KAMHjC,GAAYwB,IACdS,iBACEC,EAAAA,IAACU,EAAAA,SAAA,CAAApB,MAAcA,EACZpB,SAAA6B,KAKAA,8DAvLe,IAAMY,EAAAA,WAAW/C"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["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 } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n}\n\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}) => {\n\n // Initialize API configuration if provided\n React.useEffect(() => {\n if (providedApiConfig) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n }, [providedApiConfig]);\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>\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>\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;"],"names":["ERPUIContext","createContext","useRedux","themeMode","direction","ERPUIProvider","children","reduxStore","apiClient","additionalReducers","theme","customTheme","primaryColor","enableAuth","enableLanguage","enablePages","enablePermissions","enableRouter","enableSnackbar","enableCssBaseline","snackbarConfig","maxSnack","anchorOrigin","vertical","horizontal","autoHideDuration","apiConfig","providedApiConfig","React","useEffect","initializeApiConfig","initializeApiBaseUrls","error","store","useMemo","createLibraryStore","themeCreator","createDarkTheme","createLightTheme","generatedTheme","contextValue","content","jsx","Provider","value","MUIThemeWrapper","SnackbarProvider","PageProvider","PermissionsProvider","LanguageProvider","AuthProvider","BrowserRouter","ReduxProvider","useContext"],"mappings":"yxBA6BA,MAAMA,EAAeC,EAAAA,cAAiC,CACpDC,UAAU,EACVC,UAAW,QACXC,UAAW,QA4CAC,EAA8C,EACzDC,WAGAJ,YAAW,EACXK,aACAC,YACAC,qBAAqB,CAAA,EAGrBC,MAAOC,EACPR,YAAY,QACZS,eACAR,YAAY,MAGZS,cAAa,EACbC,kBAAiB,EACjBC,eAAc,EACdC,qBAAoB,EACpBC,gBAAe,EACfC,kBAAiB,EAGjBC,qBAAoB,EACpBC,iBAAiB,CACfC,SAAU,EACVC,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CC,iBAAkB,KAIpBC,UAAWC,MAIXC,EAAAA,QAAMC,UAAU,KACd,GAAIF,EACF,IACEG,EAAAA,oBAAoBH,GACpBI,yBACF,OAASC,GAET,GAED,CAACL,IAMJ,MAAMM,EAAQL,UAAMM,QAAQ,IACrBhC,EAEDK,GAIG4B,EAAAA,mBAAmB1B,EAAoBD,GANxB,KAOrB,CAACN,EAAUK,EAAYE,EAAoBD,IAGxCE,EAAQkB,UAAMM,QAAQ,KAC1B,GAAIvB,EACF,OAAOA,EAGT,MAAMyB,EAA6B,SAAdjC,EAAuBkC,EAAAA,gBAAkBC,EAAAA,kBACtD5B,MAAO6B,GAAmBH,EAAaxB,EAAcR,GAC7D,OAAOmC,GACN,CAAC5B,EAAaR,EAAWS,EAAcR,IAGpCoC,EAAkC,CACtCtC,WACAM,YACAE,QACAP,YACAC,YACAQ,gBAIF,IAAI6B,iBACFC,EAAAA,IAAC1C,EAAa2C,SAAb,CAAsBC,MAAOJ,EAI5BlC,0BAAAoC,IAACG,EAAAA,QAAA,CAAgBnC,QAAcS,oBAC5Bb,eAsEP,OA9DIY,IACFuB,iBACEC,EAAAA,IAACI,mBAAA,IAAqB1B,EACnBd,SAAAmC,KAMH1B,IACF0B,mBACEC,IAACK,EAAAA,cACEzC,SAAAmC,KAMHzB,IACFyB,mBACEC,IAACM,EAAAA,qBACE1C,SAAAmC,KAMH3B,IACF2B,mBACEC,IAACO,EAAAA,kBACE3C,SAAAmC,KAMH5B,IACF4B,mBACEC,IAACQ,EAAAA,cACE5C,SAAAmC,KAMHxB,IACFwB,mBACEC,IAACS,EAAAA,eACE7C,SAAAmC,KAMHvC,GAAY+B,IACdQ,iBACEC,EAAAA,IAACU,EAAAA,SAAA,CAAAnB,MAAcA,EACZ3B,SAAAmC,KAKAA,8DAxMe,IAAMY,EAAAA,WAAWrD"}
@@ -1,6 +1,7 @@
1
1
  import { default as React, ReactNode } from 'react';
2
2
  import { ApiClientConfig } from '../../redux';
3
3
  import { Color } from '../../theme';
4
+ import { ApiConfig } from '../../utils/api-config';
4
5
 
5
6
  interface ERPUIContextValue {
6
7
  useRedux: boolean;
@@ -36,6 +37,7 @@ interface ERPUIProviderProps {
36
37
  };
37
38
  autoHideDuration?: number;
38
39
  };
40
+ apiConfig?: ApiConfig;
39
41
  }
40
42
  export declare const ERPUIProvider: React.FC<ERPUIProviderProps>;
41
43
  export default ERPUIProvider;
package/dist/index.esm.js CHANGED
@@ -436,7 +436,8 @@ import { PermissionsContext, PermissionsProvider } from "./contexts/permission-c
436
436
  import { createDarkTheme, createLightTheme, themes } from "./theme/theme-impl/index.esm.js";
437
437
  import { primaryFont, pxToRem, remToPx, responsiveFontSizes, secondaryFont, typography } from "./theme/typography/index.esm.js";
438
438
  import { default as default180 } from "i18next";
439
- import { apiConfigurations, fetchApi } from "./utils/api/index.esm.js";
439
+ import { apiConfigurations, fetchApi, initializeApiBaseUrls } from "./utils/api/index.esm.js";
440
+ import { getApiConfig, initializeApiConfig, isApiConfigInitialized, resetApiConfig } from "./utils/api-config/index.esm.js";
440
441
  import { calculateEntries } from "./utils/calculation/index.esm.js";
441
442
  import { getFileNamesFromUrls, getFileNamesFromUrlsAsLink, renderEmptyRowsFallback, renderValueField, transformTableColumns } from "./utils/common-utility/index.esm.js";
442
443
  import { InvoiceStatus, addOrEditArray, appendConditionSafely, calculateAmountData, calculatePeriods, checkDuplicateTracking, checkForDuplicate, checkSkuAndItemName, createdOnAndBy, defaultCompany, defaultCurrencyFormat, defaultCurrencySymbol, displayPhone, downloadDoc, downloadFile, fetchAssemblyItemData, fetchCompanyLocations, fetchDataLocally, fetchExchageRate, fetchItems, fetchRentalResponseItems, fetchRfqItemsByIdForResponse, filterAccessibleModules, filterCoaByCompanyIdOrNull, findById, formatAmount, formatAmountWithCurrency, formatAmountWithCurrencyData, formatDateForPayload, formatDateTimeForPayload, formatEmptyDataToNull, formatResponseDatesToDayJS, formatResponseOnlyDatesToDayJS, formatTimeForPayload, generateAndFormatStringFromObj, generateFields, generateQueryString, generateRandomId, getAccessibleModules, getCountryIdByName, getErrorMessage, getExcelExportTemplate, getExcelTemplateGenerateTemplate, getFieldFilters, getFileName, getLabelValuePairs, getName, getNestedValue, getNextScheduleDate, getOperatorLabel, getOptionsData, getPartyDependentData, getPartyName, getSlicedValue, getTaxAmountDataFromMultipleTaxCodes, getTaxAmountFromMultipleTaxCodes, getToken, handleRegularUpload, hasValue, isBetweenTheDates, isJSONString, isJsonParse, manageItems, mapApiPayload, mapAsyncApiPayload, matchedMaterialCostingTypeLabel, omitDataKeys, partyDuplicateCheck, partyEmailIds, postImportSheet, remainingMaterialCostingTypes, removeIdFromObject, removeIdStaticIdsFromMongoObject, setRateBasedOnPriceRules, showSnackBar, skuGenerator, toFixedWithNumbers, updateFieldsDisabledState, uploadAttachments, uploadFiles, validateDiscountValidity } from "./utils/common/index.esm.js";
@@ -1115,6 +1116,7 @@ export {
1115
1116
  generateRouteWithId,
1116
1117
  getAccessibleModules,
1117
1118
  getAllUserAndDepartmentDropdown,
1119
+ getApiConfig,
1118
1120
  getAvailableSteelTypes,
1119
1121
  getAvailableTubeTypes,
1120
1122
  getConfigFunction,
@@ -1158,9 +1160,12 @@ export {
1158
1160
  images,
1159
1161
  initialFilter,
1160
1162
  initialStyles,
1163
+ initializeApiBaseUrls,
1164
+ initializeApiConfig,
1161
1165
  default183 as inventoryReportsTitleBarSlice,
1162
1166
  isAllOf,
1163
1167
  isAnyOf,
1168
+ isApiConfigInitialized,
1164
1169
  isBetweenTheDates,
1165
1170
  isFulfilled,
1166
1171
  isJSONString,
@@ -1205,6 +1210,7 @@ export {
1205
1210
  renderEmptyRowsFallback,
1206
1211
  renderValueField,
1207
1212
  default184 as reportsTitleBarSlice,
1213
+ resetApiConfig,
1208
1214
  resetHeaderState,
1209
1215
  resetInventoryReportsTitleBarState,
1210
1216
  resetLanguagesState,
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}