@m4l/graphics 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -49
- package/.eslintignore +0 -2
- package/.eslintrc.cjs +0 -118
- package/.gitignore +0 -24
- package/.gitlab-ci.yml +0 -15
- package/.prettierignore +0 -3
- package/.prettierrc.json +0 -26
- package/.vscode/settings.json +0 -50
- package/dist/package.json +0 -34
- package/src/components/ProgressBarStyle/index.tsx +0 -39
- package/src/components/index.ts +0 -3
- package/src/contexts/FormatterContext/index.tsx +0 -131
- package/src/contexts/FormatterContext/types.ts +0 -73
- package/src/contexts/HostThemeContext/index.tsx +0 -85
- package/src/contexts/HostThemeContext/types.ts +0 -16
- package/src/contexts/LocalesContext/helper.ts +0 -67
- package/src/contexts/LocalesContext/index.tsx +0 -152
- package/src/contexts/LocalesContext/types.ts +0 -37
- package/src/contexts/index.ts +0 -15
- package/src/hooks/index.ts +0 -8
- package/src/hooks/useFirstRender/index.ts +0 -17
- package/src/hooks/useFormatter/index.ts +0 -10
- package/src/hooks/useHostTheme/index.ts +0 -10
- package/src/hooks/useIsMountedRef/index.ts +0 -16
- package/src/hooks/useLocales/index.ts +0 -10
- package/src/hooks/useOffSetTop.ts +0 -26
- package/src/hooks/useResponsive/index.ts +0 -44
- package/src/index.ts +0 -25
- package/src/theme/breakpoints.ts +0 -13
- package/src/theme/defaultThemeOptions.ts +0 -42
- package/src/theme/overrides/Accordion.ts +0 -85
- package/src/theme/overrides/Alert.tsx +0 -74
- package/src/theme/overrides/Autocomplete.ts +0 -31
- package/src/theme/overrides/Avatar.ts +0 -29
- package/src/theme/overrides/Backdrop.ts +0 -26
- package/src/theme/overrides/Badge.ts +0 -17
- package/src/theme/overrides/Breadcrumbs.ts +0 -16
- package/src/theme/overrides/Button.ts +0 -62
- package/src/theme/overrides/ButtonGroup.ts +0 -51
- package/src/theme/overrides/Card.ts +0 -36
- package/src/theme/overrides/Checkbox.tsx +0 -54
- package/src/theme/overrides/Chip.tsx +0 -49
- package/src/theme/overrides/ControlLabel.ts +0 -29
- package/src/theme/overrides/CssBaseline.ts +0 -46
- package/src/theme/overrides/CustomIcons.tsx +0 -122
- package/src/theme/overrides/DataGrid.ts +0 -101
- package/src/theme/overrides/Dialog.ts +0 -60
- package/src/theme/overrides/Drawer.ts +0 -30
- package/src/theme/overrides/Fab.ts +0 -40
- package/src/theme/overrides/IconButton.ts +0 -35
- package/src/theme/overrides/Input.ts +0 -94
- package/src/theme/overrides/InputLabel.ts +0 -17
- package/src/theme/overrides/Link.ts +0 -20
- package/src/theme/overrides/List.ts +0 -37
- package/src/theme/overrides/LoadingButton.ts +0 -28
- package/src/theme/overrides/Menu.ts +0 -20
- package/src/theme/overrides/Pagination.ts +0 -38
- package/src/theme/overrides/Paper.ts +0 -27
- package/src/theme/overrides/Popover.ts +0 -16
- package/src/theme/overrides/Progress.ts +0 -27
- package/src/theme/overrides/Radio.ts +0 -21
- package/src/theme/overrides/Rating.tsx +0 -30
- package/src/theme/overrides/Select.tsx +0 -14
- package/src/theme/overrides/Skeleton.ts +0 -19
- package/src/theme/overrides/Slider.ts +0 -31
- package/src/theme/overrides/Stepper.ts +0 -15
- package/src/theme/overrides/SvgIcon.ts +0 -21
- package/src/theme/overrides/Switch.ts +0 -35
- package/src/theme/overrides/Table.ts +0 -95
- package/src/theme/overrides/Tabs.ts +0 -61
- package/src/theme/overrides/Timeline.ts +0 -23
- package/src/theme/overrides/ToggleButton.ts +0 -54
- package/src/theme/overrides/Tooltip.ts +0 -20
- package/src/theme/overrides/TreeView.tsx +0 -25
- package/src/theme/overrides/Typography.ts +0 -18
- package/src/theme/overrides/index.ts +0 -102
- package/src/theme/palette.ts +0 -216
- package/src/theme/shadows.ts +0 -110
- package/src/theme/stretch.ts +0 -10
- package/src/theme/typography.ts +0 -91
- package/src/types/index.ts +0 -9
- package/src/utils/anchorEl.ts +0 -146
- package/src/utils/getColorPresets.ts +0 -91
- package/src/utils/getFontValue.ts +0 -73
- package/src/utils/strings.ts +0 -1
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.json +0 -29
- package/tsconfig.node.json +0 -8
- package/vite.config.ts +0 -234
- /package/{dist/components → components}/ProgressBarStyle/index.d.ts +0 -0
- /package/{dist/components → components}/ProgressBarStyle/index.fb6fd9ed.js +0 -0
- /package/{dist/components → components}/index.80514d59.js +0 -0
- /package/{dist/components → components}/index.d.ts +0 -0
- /package/{dist/contexts → contexts}/FormatterContext/index.92336f4c.js +0 -0
- /package/{dist/contexts → contexts}/FormatterContext/index.d.ts +0 -0
- /package/{dist/contexts → contexts}/FormatterContext/types.d.ts +0 -0
- /package/{dist/contexts → contexts}/HostThemeContext/index.a6a62c70.js +0 -0
- /package/{dist/contexts → contexts}/HostThemeContext/index.d.ts +0 -0
- /package/{dist/contexts → contexts}/HostThemeContext/types.d.ts +0 -0
- /package/{dist/contexts → contexts}/LocalesContext/helper.d.ts +0 -0
- /package/{dist/contexts → contexts}/LocalesContext/index.5b555637.js +0 -0
- /package/{dist/contexts → contexts}/LocalesContext/index.d.ts +0 -0
- /package/{dist/contexts → contexts}/LocalesContext/types.d.ts +0 -0
- /package/{dist/contexts → contexts}/index.2f4a4040.js +0 -0
- /package/{dist/contexts → contexts}/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/index.c13bc37e.js +0 -0
- /package/{dist/hooks → hooks}/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useFirstRender/index.1e9b02fb.js +0 -0
- /package/{dist/hooks → hooks}/useFirstRender/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useFormatter/index.57ac8cca.js +0 -0
- /package/{dist/hooks → hooks}/useFormatter/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useHostTheme/index.1c8e4ad7.js +0 -0
- /package/{dist/hooks → hooks}/useHostTheme/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useIsMountedRef/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useLocales/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useLocales/index.f676279e.js +0 -0
- /package/{dist/hooks → hooks}/useOffSetTop.d.ts +0 -0
- /package/{dist/hooks → hooks}/useResponsive/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/useResponsive/index.fc5e1b4f.js +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/index.js → index.js} +0 -0
- /package/{dist/theme → theme}/breakpoints.d.ts +0 -0
- /package/{dist/theme → theme}/defaultThemeOptions.b2cdbe59.js +0 -0
- /package/{dist/theme → theme}/defaultThemeOptions.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Accordion.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Autocomplete.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Avatar.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Backdrop.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Badge.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Breadcrumbs.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Button.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/ButtonGroup.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Card.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Checkbox.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/ControlLabel.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/CssBaseline.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/DataGrid.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Dialog.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Drawer.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Fab.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/IconButton.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Input.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/InputLabel.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Link.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/List.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/LoadingButton.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Menu.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Pagination.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Paper.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Popover.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Progress.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Radio.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Skeleton.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Slider.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Stepper.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/SvgIcon.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Switch.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Table.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Tabs.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Timeline.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/ToggleButton.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Tooltip.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/Typography.d.ts +0 -0
- /package/{dist/theme → theme}/overrides/index.d.ts +0 -0
- /package/{dist/theme → theme}/overrides.7958c0ab.js +0 -0
- /package/{dist/theme → theme}/palette.2baf72f5.js +0 -0
- /package/{dist/theme → theme}/palette.d.ts +0 -0
- /package/{dist/theme → theme}/shadows.bf8dc290.js +0 -0
- /package/{dist/theme → theme}/shadows.d.ts +0 -0
- /package/{dist/theme → theme}/stretch.d.ts +0 -0
- /package/{dist/theme → theme}/typography.63fff3ec.js +0 -0
- /package/{dist/theme → theme}/typography.d.ts +0 -0
- /package/{dist/types → types}/index.d.ts +0 -0
- /package/{dist/utils → utils}/anchorEl.d.ts +0 -0
- /package/{dist/utils → utils}/getColorPresets.d.ts +0 -0
- /package/{dist/utils → utils}/getFontValue.d.ts +0 -0
- /package/{dist/utils → utils}/index.7ab4fc54.js +0 -0
- /package/{dist/utils → utils}/strings.d.ts +0 -0
- /package/{dist/vendor.3b4b3674.js → vendor.3b4b3674.js} +0 -0
- /package/{dist/vite-env.d.ts → vite-env.d.ts} +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { createContext, useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
-
import { CssBaseline } from '@mui/material';
|
|
3
|
-
import {
|
|
4
|
-
ThemeOptions,
|
|
5
|
-
createTheme,
|
|
6
|
-
ThemeProvider as MUIThemeProvider,
|
|
7
|
-
StyledEngineProvider,
|
|
8
|
-
} from '@mui/material/styles';
|
|
9
|
-
|
|
10
|
-
// muis
|
|
11
|
-
// hooks
|
|
12
|
-
// utils
|
|
13
|
-
// config
|
|
14
|
-
// @type
|
|
15
|
-
import { HostThemeContextType, HostThemeProviderProps } from './types';
|
|
16
|
-
import { EmitEvents, useHostTools } from '@m4l/core';
|
|
17
|
-
|
|
18
|
-
// ----------------------------------------------------------------------
|
|
19
|
-
|
|
20
|
-
const HostThemeContext = createContext<HostThemeContextType | null>(null);
|
|
21
|
-
|
|
22
|
-
function HostThemeProvider(props: HostThemeProviderProps) {
|
|
23
|
-
const { children, hostThemeOptions, fnComponentsOverrides, isMicroFrontEnd } = props;
|
|
24
|
-
const [finalThemeOptions, setFinalThemeOptions] = useState<ThemeOptions>(hostThemeOptions);
|
|
25
|
-
const { events_add_listener, events_remove_listener, events_emit } = useHostTools();
|
|
26
|
-
const [isFirstTime, setIsFirstTime] = useState(true);
|
|
27
|
-
|
|
28
|
-
const finalTheme = useMemo(() => {
|
|
29
|
-
const theme = createTheme(finalThemeOptions);
|
|
30
|
-
theme.components = fnComponentsOverrides(theme);
|
|
31
|
-
return theme;
|
|
32
|
-
}, [finalThemeOptions]);
|
|
33
|
-
|
|
34
|
-
const onUpdateOverrides = useCallback((newThemeOptions: ThemeOptions) => {
|
|
35
|
-
setFinalThemeOptions(newThemeOptions);
|
|
36
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
|
-
}, []);
|
|
38
|
-
|
|
39
|
-
//Matricular el cambio de tema si es
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
if (isMicroFrontEnd) {
|
|
42
|
-
events_add_listener(EmitEvents.EMMIT_EVENT_HOST_THEME_CHANGE, onUpdateOverrides);
|
|
43
|
-
}
|
|
44
|
-
return () => {
|
|
45
|
-
if (isMicroFrontEnd) {
|
|
46
|
-
events_remove_listener(EmitEvents.EMMIT_EVENT_HOST_THEME_CHANGE, onUpdateOverrides);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}, []);
|
|
50
|
-
|
|
51
|
-
//Cuando cambie las opciones del tema debido al usuario
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (isFirstTime) {
|
|
54
|
-
setIsFirstTime(false);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (!isMicroFrontEnd) {
|
|
59
|
-
setFinalThemeOptions(hostThemeOptions);
|
|
60
|
-
events_emit(EmitEvents.EMMIT_EVENT_HOST_THEME_CHANGE, hostThemeOptions);
|
|
61
|
-
}
|
|
62
|
-
}, [hostThemeOptions]);
|
|
63
|
-
|
|
64
|
-
// const updateHostThemeOptions = useCallback((newThemeOptions: ThemeOptions) => {
|
|
65
|
-
// setFinalThemeOptions(newThemeOptions);
|
|
66
|
-
// }, []);
|
|
67
|
-
|
|
68
|
-
return (
|
|
69
|
-
<HostThemeContext.Provider
|
|
70
|
-
value={{
|
|
71
|
-
hostThemeOptions: finalThemeOptions,
|
|
72
|
-
fnComponentsOverrides,
|
|
73
|
-
}}
|
|
74
|
-
>
|
|
75
|
-
<StyledEngineProvider injectFirst>
|
|
76
|
-
<MUIThemeProvider theme={finalTheme}>
|
|
77
|
-
<CssBaseline enableColorScheme />
|
|
78
|
-
{children}
|
|
79
|
-
</MUIThemeProvider>
|
|
80
|
-
</StyledEngineProvider>
|
|
81
|
-
</HostThemeContext.Provider>
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { HostThemeProvider, HostThemeContext };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ThemeOptions, Theme } from '@mui/material/styles';
|
|
2
|
-
import type { ReactNode } from 'react';
|
|
3
|
-
|
|
4
|
-
export type EventFunListener = (...args: any[]) => void;
|
|
5
|
-
|
|
6
|
-
export interface HostThemeType {
|
|
7
|
-
hostThemeOptions: ThemeOptions;
|
|
8
|
-
fnComponentsOverrides: (theme: Theme) => any;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface HostThemeProviderProps extends HostThemeType {
|
|
12
|
-
isMicroFrontEnd: boolean;
|
|
13
|
-
children: ReactNode;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type HostThemeContextType = HostThemeType;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { BaseLocale, LocaleType, NetworkLocaleType } from './types';
|
|
2
|
-
import type { Locale } from 'date-fns';
|
|
3
|
-
import enLocale from 'date-fns/locale/en-US';
|
|
4
|
-
|
|
5
|
-
export async function getLocaleFromNetwork(
|
|
6
|
-
locale: NetworkLocaleType,
|
|
7
|
-
host_static_assets: string,
|
|
8
|
-
environment_assets: string,
|
|
9
|
-
): Promise<LocaleType> {
|
|
10
|
-
const stringLocale: string = joinLocale(locale);
|
|
11
|
-
|
|
12
|
-
const baseLocale: NetworkLocaleType = { ...locale };
|
|
13
|
-
|
|
14
|
-
let localeModule: Locale;
|
|
15
|
-
if (stringLocale === 'es') {
|
|
16
|
-
localeModule = (await import('date-fns/locale/es')).default as Locale; // Dynamic import
|
|
17
|
-
} else if (stringLocale === 'fr') {
|
|
18
|
-
localeModule = (await import('date-fns/locale/fr')).default as Locale; // Dynamic import
|
|
19
|
-
} else if (stringLocale === 'en-US') {
|
|
20
|
-
localeModule = enLocale; // Dynamic import
|
|
21
|
-
} else {
|
|
22
|
-
localeModule = enLocale; // Dynamic import
|
|
23
|
-
baseLocale.lang = 'en';
|
|
24
|
-
baseLocale.script = undefined;
|
|
25
|
-
baseLocale.region = 'US';
|
|
26
|
-
baseLocale.url_icon = `${host_static_assets}/${environment_assets}/frontend/commons/assets/icons/langs/lang_en.svg`;
|
|
27
|
-
baseLocale.name = 'English US*';
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
...baseLocale,
|
|
32
|
-
module: localeModule,
|
|
33
|
-
localeString: joinLocale(baseLocale),
|
|
34
|
-
}; // Dynamic import
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function joinLocale(baseLocale: BaseLocale): string {
|
|
38
|
-
let joinedLocale = baseLocale.lang;
|
|
39
|
-
|
|
40
|
-
if (baseLocale.script && baseLocale.script !== '') {
|
|
41
|
-
joinedLocale = joinedLocale + '-' + baseLocale.script;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (baseLocale.region && baseLocale.region !== '') {
|
|
45
|
-
joinedLocale = joinedLocale + '-' + baseLocale.region;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return joinedLocale;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function splitLocale(locale: string): BaseLocale {
|
|
52
|
-
try {
|
|
53
|
-
const lc = new Intl.Locale(locale);
|
|
54
|
-
|
|
55
|
-
return {
|
|
56
|
-
lang: lc.language || '',
|
|
57
|
-
script: lc.script,
|
|
58
|
-
region: lc.region,
|
|
59
|
-
};
|
|
60
|
-
} catch (error) {
|
|
61
|
-
return {
|
|
62
|
-
lang: 'en',
|
|
63
|
-
script: undefined,
|
|
64
|
-
region: 'US',
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { createContext, useState, useEffect, useCallback } from 'react';
|
|
3
|
-
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
|
|
4
|
-
import { LocalizationProvider as MUILocalizationProvider } from '@mui/x-date-pickers';
|
|
5
|
-
|
|
6
|
-
// import esLocale from 'date-fns/localeHost/es';
|
|
7
|
-
//import frLocale from 'date-fns/localeHost/fr';
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
EmitEvents,
|
|
11
|
-
useEnvironment,
|
|
12
|
-
useHostTools,
|
|
13
|
-
useLocalStorageWithListener,
|
|
14
|
-
useNetwork,
|
|
15
|
-
} from '@m4l/core';
|
|
16
|
-
import { BaseLocale, LocalesProviderProps, LocaleType, LocalesContextProps } from './types';
|
|
17
|
-
import { joinLocale, splitLocale } from './helper';
|
|
18
|
-
|
|
19
|
-
// ----------------------------------------------------------------------
|
|
20
|
-
|
|
21
|
-
const LocalesContext = createContext<LocalesContextProps | null>(null);
|
|
22
|
-
|
|
23
|
-
function LocalesProvider(props: LocalesProviderProps) {
|
|
24
|
-
const { children, isMicroFrontEnd, localeHost, getLocaleFromNetwork } = props;
|
|
25
|
-
|
|
26
|
-
if (isMicroFrontEnd && !localeHost) {
|
|
27
|
-
throw Error('Must set localeHost in microfrontend');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (!isMicroFrontEnd && !getLocaleFromNetwork) {
|
|
31
|
-
throw Error('Must set getLocaleFromNetwork in host');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const { domain_token, host_static_assets, environment_assets } = useEnvironment();
|
|
35
|
-
const { networkOperation } = useNetwork();
|
|
36
|
-
|
|
37
|
-
const { events_add_listener, events_remove_listener, events_emit } = useHostTools();
|
|
38
|
-
|
|
39
|
-
const [currentLocale, setCurrentLocale] = useState<LocaleType | undefined>(() => {
|
|
40
|
-
if (isMicroFrontEnd) {
|
|
41
|
-
return localeHost;
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const [nextLocaleString, setNextLocalString] = useLocalStorageWithListener<string>(
|
|
47
|
-
'localeHost',
|
|
48
|
-
navigator.language,
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
const [currentLocaleString, setCurrentLocalString] = useState<string>('');
|
|
52
|
-
|
|
53
|
-
const onUpdateLocale = useCallback((newLocale: LocaleType) => {
|
|
54
|
-
setCurrentLocale(newLocale);
|
|
55
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
-
}, []);
|
|
57
|
-
|
|
58
|
-
//Matricular el cambio de localee si es microfrontend
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (isMicroFrontEnd) {
|
|
61
|
-
events_add_listener(EmitEvents.EMMIT_EVENT_HOST_LOCALE_CHANGE, onUpdateLocale);
|
|
62
|
-
}
|
|
63
|
-
console.log('useEffect LocalesProvider');
|
|
64
|
-
return () => {
|
|
65
|
-
if (isMicroFrontEnd) {
|
|
66
|
-
events_remove_listener(EmitEvents.EMMIT_EVENT_HOST_LOCALE_CHANGE, onUpdateLocale);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}, []);
|
|
70
|
-
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
let mounted = true;
|
|
73
|
-
|
|
74
|
-
if (isMicroFrontEnd) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
if (!getLocaleFromNetwork) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (nextLocaleString === currentLocaleString && nextLocaleString !== '') {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
networkOperation({
|
|
86
|
-
method: 'POST',
|
|
87
|
-
endPoint: `na/locales`,
|
|
88
|
-
data: { ...splitLocale(nextLocaleString), domain_token },
|
|
89
|
-
})
|
|
90
|
-
.then((response: any) => {
|
|
91
|
-
if (mounted) {
|
|
92
|
-
//getLocale(response.data, host_static_assets, environment_assets).then(
|
|
93
|
-
getLocaleFromNetwork(
|
|
94
|
-
response.data,
|
|
95
|
-
host_static_assets,
|
|
96
|
-
environment_assets,
|
|
97
|
-
).then(newLocale => {
|
|
98
|
-
setCurrentLocale(newLocale);
|
|
99
|
-
setCurrentLocalString(newLocale.localeString);
|
|
100
|
-
|
|
101
|
-
if (nextLocaleString !== newLocale.localeString) {
|
|
102
|
-
//Solo si cambia
|
|
103
|
-
setNextLocalString(newLocale.localeString);
|
|
104
|
-
}
|
|
105
|
-
//Notificar a los microfrontends, que ha cambiado el locale
|
|
106
|
-
events_emit(EmitEvents.EMMIT_EVENT_HOST_LOCALE_CHANGE, newLocale);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
})
|
|
110
|
-
.finally(() => {});
|
|
111
|
-
|
|
112
|
-
return function cleanUp() {
|
|
113
|
-
mounted = false;
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
117
|
-
}, [nextLocaleString]);
|
|
118
|
-
|
|
119
|
-
if (!currentLocale) {
|
|
120
|
-
return <div></div>;
|
|
121
|
-
}
|
|
122
|
-
// const [locales];
|
|
123
|
-
|
|
124
|
-
const onChangeLocale = (newLocale: BaseLocale) => {
|
|
125
|
-
if (
|
|
126
|
-
newLocale.lang !== currentLocale.lang ||
|
|
127
|
-
newLocale.script !== currentLocale.script ||
|
|
128
|
-
newLocale.region !== currentLocale.region
|
|
129
|
-
) {
|
|
130
|
-
setNextLocalString(joinLocale(newLocale));
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
return (
|
|
135
|
-
<LocalesContext.Provider
|
|
136
|
-
value={{
|
|
137
|
-
currentLocale,
|
|
138
|
-
onChangeLocale,
|
|
139
|
-
}}
|
|
140
|
-
>
|
|
141
|
-
<MUILocalizationProvider
|
|
142
|
-
dateAdapter={AdapterDateFns}
|
|
143
|
-
adapterLocale={currentLocale.module}
|
|
144
|
-
dateFormats={{ hours24h: '23' }}
|
|
145
|
-
>
|
|
146
|
-
{children}
|
|
147
|
-
</MUILocalizationProvider>
|
|
148
|
-
</LocalesContext.Provider>
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export { LocalesProvider, LocalesContext };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import type { Locale } from 'date-fns';
|
|
3
|
-
|
|
4
|
-
export type SupportedLocales = 'en-US' | 'es' | 'fr';
|
|
5
|
-
|
|
6
|
-
export interface BaseLocale {
|
|
7
|
-
lang: string;
|
|
8
|
-
script?: string;
|
|
9
|
-
region?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface NetworkLocaleType extends BaseLocale {
|
|
13
|
-
name: string;
|
|
14
|
-
url_icon: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface LocaleType extends NetworkLocaleType {
|
|
18
|
-
module: Locale;
|
|
19
|
-
localeString: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type LocalesProviderProps = {
|
|
23
|
-
isMicroFrontEnd: boolean;
|
|
24
|
-
localeHost?: LocaleType; //undefined en host
|
|
25
|
-
getLocaleFromNetwork?: (
|
|
26
|
-
locale: NetworkLocaleType,
|
|
27
|
-
host_static_assets: string,
|
|
28
|
-
environment_assets: string,
|
|
29
|
-
) => Promise<LocaleType>;
|
|
30
|
-
children: ReactNode;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export type LocalesContextProps = {
|
|
34
|
-
currentLocale?: LocaleType;
|
|
35
|
-
// currentLocaleString: string;
|
|
36
|
-
onChangeLocale: (newLocaleString: BaseLocale) => void;
|
|
37
|
-
};
|
package/src/contexts/index.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from './FormatterContext';
|
|
2
|
-
export type {
|
|
3
|
-
Formatters,
|
|
4
|
-
DateFormatter,
|
|
5
|
-
NumberFormatter,
|
|
6
|
-
CurrencyFormatter,
|
|
7
|
-
} from './FormatterContext/types';
|
|
8
|
-
|
|
9
|
-
export * from './LocalesContext';
|
|
10
|
-
export type { NetworkLocaleType, LocaleType } from './LocalesContext/types';
|
|
11
|
-
export { getLocaleFromNetwork } from './LocalesContext/helper';
|
|
12
|
-
|
|
13
|
-
export * from './HostThemeContext';
|
|
14
|
-
|
|
15
|
-
// export { HelmetProvider } from 'react-helmet-async';
|
package/src/hooks/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { useFirstRender } from './useFirstRender';
|
|
2
|
-
export { useFormatter } from './useFormatter';
|
|
3
|
-
export { useHostTheme } from './useHostTheme';
|
|
4
|
-
export { useIsMountedRef } from './useIsMountedRef';
|
|
5
|
-
export { useLocales } from './useLocales';
|
|
6
|
-
export { useOffSetTop } from './useOffSetTop';
|
|
7
|
-
|
|
8
|
-
export { useResponsive, useResponsiveDesktop } from './useResponsive';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { useRef, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
// ----------------------------------------------------------------------
|
|
4
|
-
|
|
5
|
-
export function useFirstRender(dependencies: Array<any> = []) {
|
|
6
|
-
const isMounted = useRef(true);
|
|
7
|
-
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
isMounted.current = false;
|
|
10
|
-
|
|
11
|
-
return () => {
|
|
12
|
-
isMounted.current = true;
|
|
13
|
-
};
|
|
14
|
-
}, dependencies);
|
|
15
|
-
|
|
16
|
-
return isMounted.current;
|
|
17
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
2
|
-
import { FormatterContext } from '../../contexts/FormatterContext';
|
|
3
|
-
|
|
4
|
-
// ----------------------------------------------------------------------
|
|
5
|
-
export const useFormatter = () => {
|
|
6
|
-
const context = useContext(FormatterContext);
|
|
7
|
-
if (!context) throw new Error('useFormatter context must be use inside FormatterProvider');
|
|
8
|
-
|
|
9
|
-
return context;
|
|
10
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
2
|
-
import { HostThemeContext } from '../../contexts/HostThemeContext';
|
|
3
|
-
|
|
4
|
-
// ----------------------------------------------------------------------
|
|
5
|
-
export const useHostTheme = () => {
|
|
6
|
-
const context = useContext(HostThemeContext);
|
|
7
|
-
if (!context) throw new Error('useHostTheme context must be use inside HostThemeProvider');
|
|
8
|
-
|
|
9
|
-
return context;
|
|
10
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { useRef, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
// ----------------------------------------------------------------------
|
|
4
|
-
|
|
5
|
-
export function useIsMountedRef() {
|
|
6
|
-
const isMounted = useRef(true);
|
|
7
|
-
|
|
8
|
-
useEffect(
|
|
9
|
-
() => () => {
|
|
10
|
-
isMounted.current = false;
|
|
11
|
-
},
|
|
12
|
-
[],
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
return isMounted;
|
|
16
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
2
|
-
import { LocalesContext } from '../../contexts/LocalesContext';
|
|
3
|
-
|
|
4
|
-
// ----------------------------------------------------------------------
|
|
5
|
-
export const useLocales = () => {
|
|
6
|
-
const context = useContext(LocalesContext);
|
|
7
|
-
if (!context) throw new Error('useLocales context must be use inside LocalesProvider');
|
|
8
|
-
|
|
9
|
-
return context;
|
|
10
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
// ----------------------------------------------------------------------
|
|
4
|
-
|
|
5
|
-
export function useOffSetTop(top: number) {
|
|
6
|
-
const [offsetTop, setOffSetTop] = useState(false);
|
|
7
|
-
const isTop = top || 100;
|
|
8
|
-
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
window.onscroll = () => {
|
|
11
|
-
if (window.pageYOffset > isTop) {
|
|
12
|
-
setOffSetTop(true);
|
|
13
|
-
} else {
|
|
14
|
-
setOffSetTop(false);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
return () => {
|
|
18
|
-
window.onscroll = null;
|
|
19
|
-
};
|
|
20
|
-
}, [isTop]);
|
|
21
|
-
|
|
22
|
-
return offsetTop;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Usage
|
|
26
|
-
// const offset = useOffSetTop(100);
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// @mui
|
|
2
|
-
import { Breakpoint } from '@mui/material';
|
|
3
|
-
import { useTheme } from '@mui/material/styles';
|
|
4
|
-
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
5
|
-
|
|
6
|
-
// ----------------------------------------------------------------------
|
|
7
|
-
|
|
8
|
-
type Query = 'up' | 'down' | 'between' | 'only';
|
|
9
|
-
type Key = Breakpoint | number;
|
|
10
|
-
type Start = Breakpoint | number;
|
|
11
|
-
type End = Breakpoint | number;
|
|
12
|
-
|
|
13
|
-
export function useResponsive(query: Query, key?: Key, start?: Start, end?: End) {
|
|
14
|
-
const theme = useTheme();
|
|
15
|
-
|
|
16
|
-
const mediaUp = useMediaQuery(theme.breakpoints.up(key as Key));
|
|
17
|
-
|
|
18
|
-
const mediaDown = useMediaQuery(theme.breakpoints.down(key as Key));
|
|
19
|
-
|
|
20
|
-
const mediaBetween = useMediaQuery(theme.breakpoints.between(start as Start, end as End));
|
|
21
|
-
|
|
22
|
-
const mediaOnly = useMediaQuery(theme.breakpoints.only(key as Breakpoint));
|
|
23
|
-
|
|
24
|
-
if (query === 'up') {
|
|
25
|
-
return mediaUp;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (query === 'down') {
|
|
29
|
-
return mediaDown;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (query === 'between') {
|
|
33
|
-
return mediaBetween;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (query === 'only') {
|
|
37
|
-
return mediaOnly;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function useResponsiveDesktop() {
|
|
42
|
-
const isDesktop = useResponsive('up', 'sm');
|
|
43
|
-
return isDesktop;
|
|
44
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export * from './components';
|
|
2
|
-
export * from './contexts';
|
|
3
|
-
export * from './hooks';
|
|
4
|
-
|
|
5
|
-
export type { CustomShadowOptions } from './theme/shadows';
|
|
6
|
-
export type { GradientsPaletteOptions } from './theme/palette';
|
|
7
|
-
export type { ChartPaletteOptions } from './theme/palette';
|
|
8
|
-
export type { GridPaletteOptions } from './theme/palette';
|
|
9
|
-
|
|
10
|
-
export { defaultThemeOptions } from './theme/defaultThemeOptions';
|
|
11
|
-
export { shadows, customShadows } from './theme/shadows';
|
|
12
|
-
export * from './theme/stretch';
|
|
13
|
-
export { palette, type ColorSchema } from './theme/palette';
|
|
14
|
-
export { getColorPresets, colorPresets, defaultPreset } from './utils/getColorPresets';
|
|
15
|
-
export { getFontValue as GetFontValue } from './utils/getFontValue';
|
|
16
|
-
export * from './utils/strings';
|
|
17
|
-
|
|
18
|
-
export { default as fnComponentsOverrides } from './theme/overrides';
|
|
19
|
-
|
|
20
|
-
//types
|
|
21
|
-
export type { HostThemeType } from './types';
|
|
22
|
-
|
|
23
|
-
//anchoEl
|
|
24
|
-
|
|
25
|
-
export * from './utils/anchorEl';
|
package/src/theme/breakpoints.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { alpha, ThemeOptions } from '@mui/material/styles';
|
|
2
|
-
import { typography } from './typography';
|
|
3
|
-
import { palette, GREY } from './palette';
|
|
4
|
-
import shadows, { customShadows } from './shadows';
|
|
5
|
-
|
|
6
|
-
import getColorPresets from '../utils/getColorPresets';
|
|
7
|
-
import { breakpoints } from './breakpoints';
|
|
8
|
-
|
|
9
|
-
export const defaultThemeOptions: ThemeOptions = {
|
|
10
|
-
typography,
|
|
11
|
-
breakpoints: breakpoints,
|
|
12
|
-
shadows: shadows.light,
|
|
13
|
-
customShadows: {
|
|
14
|
-
...customShadows.light,
|
|
15
|
-
primary: `0 8px 16px 0 ${alpha(getColorPresets('default').main, 0.24)}`,
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
palette: {
|
|
19
|
-
...palette.light,
|
|
20
|
-
primary: {
|
|
21
|
-
lighter: '#283829',
|
|
22
|
-
light: '#26372b',
|
|
23
|
-
main: '#00AB55',
|
|
24
|
-
dark: '#007B55',
|
|
25
|
-
darker: '#005249',
|
|
26
|
-
LightSelected: '#EBF9F1',
|
|
27
|
-
LightSelectedHover: '#D6F2E3',
|
|
28
|
-
DarkSelected: '#142827',
|
|
29
|
-
DarkSelectedHover: '#12342B',
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
text: { primary: GREY[800], secondary: GREY[700], disabled: GREY[500] },
|
|
33
|
-
secondary: {
|
|
34
|
-
main: '#34ac4e',
|
|
35
|
-
},
|
|
36
|
-
// background: {
|
|
37
|
-
// header: '#cfd7e0'
|
|
38
|
-
// },
|
|
39
|
-
|
|
40
|
-
// grid: { sectionHeader: '#F6F7F9', divider: '#EDEFF2', rowHover: '#F6F7F9' }
|
|
41
|
-
},
|
|
42
|
-
};
|