wcz-layout 5.2.2 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +49 -0
- package/dist/src/components/layout/leftDrawer/LeftDrawerItem.js.map +1 -1
- package/dist/src/contexts/LayoutContext.js +4 -4
- package/dist/src/contexts/LayoutContext.js.map +1 -1
- package/dist/src/models/KeycloakExtendedConfig.js.map +1 -1
- package/dist/src/models/LeftDrawerItem.js.map +1 -1
- package/dist/src/models/SnackbarModel.js.map +1 -1
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/utils/Fetches.js +2 -2
- package/dist/src/utils/Fetches.js.map +1 -1
- package/dist/src/utils/Helpers.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/contexts/LayoutContext.tsx +4 -4
- package/src/models/KeycloakExtendedConfig.ts +11 -11
- package/src/models/LeftDrawerItem.ts +6 -6
- package/src/models/SnackbarModel.ts +5 -5
- package/src/models/User.ts +12 -12
- package/src/utils/Fetches.ts +91 -91
- package/src/utils/Helpers.ts +8 -8
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wcz-layout",
|
|
3
|
+
"license": "MIT",
|
|
4
|
+
"author": "Dalibor Homola",
|
|
5
|
+
"version": "0.1.8",
|
|
6
|
+
"main": "dist/src/index.js",
|
|
7
|
+
"module": "dist/src/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/src/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"npm-install": "npm install",
|
|
13
|
+
"npm-update": "npm update",
|
|
14
|
+
"analyze": "cem analyze --litelement",
|
|
15
|
+
"start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
|
|
16
|
+
"build": "tsc && npm run analyze -- --exclude dist",
|
|
17
|
+
"prepublish": "tsc && npm run analyze -- --exclude dist",
|
|
18
|
+
"publish": "npm publish"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"guid-ts": "^1.1.2",
|
|
22
|
+
"i18next": "^22.0.6",
|
|
23
|
+
"i18next-browser-languagedetector": "^7.0.1",
|
|
24
|
+
"i18next-http-backend": "^2.0.1",
|
|
25
|
+
"keycloak-js": "^19.0.2",
|
|
26
|
+
"react-i18next": "^12.0.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@custom-elements-manifest/analyzer": "^0.4.17",
|
|
30
|
+
"@web/dev-server": "^0.1.28",
|
|
31
|
+
"concurrently": "^5.3.0",
|
|
32
|
+
"lit": "^2.0.2",
|
|
33
|
+
"react": "18.2.0",
|
|
34
|
+
"react-dom": "18.2.0",
|
|
35
|
+
"tslib": "^2.3.1",
|
|
36
|
+
"typescript": "^4.8.4"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"@emotion/react": "11.x",
|
|
40
|
+
"@emotion/styled": "11.x",
|
|
41
|
+
"@mui/icons-material": "5.x",
|
|
42
|
+
"@mui/material": "5.x",
|
|
43
|
+
"@tanstack/react-query": "4.x",
|
|
44
|
+
"moment": "2.x",
|
|
45
|
+
"react-router-dom": "6.x"
|
|
46
|
+
},
|
|
47
|
+
"customElements": "custom-elements.json",
|
|
48
|
+
"keycloak": {}
|
|
49
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftDrawerItem.js","sourceRoot":"","sources":["../../../../../src/components/layout/leftDrawer/LeftDrawerItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAWrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAA0B;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG;YACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAEpC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAA;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM;QACxC,OAAO,IAAI,CAAC;IAEhB,OAAO,CACH,MAAC,QAAQ,IAAC,MAAM,QAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,aAAa,aACxE,KAAC,YAAY,cACR,IAAI,GACM,EACf,KAAC,YAAY,IAAC,OAAO,EAAE,KAAK,GAAI,IACzB,CACd,CAAA;AACL,CAAC","sourcesContent":["import { ListItem, ListItemIcon, ListItemText } from '@mui/material';\
|
|
1
|
+
{"version":3,"file":"LeftDrawerItem.js","sourceRoot":"","sources":["../../../../../src/components/layout/leftDrawer/LeftDrawerItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAWrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAA0B;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG;YACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAEpC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAA;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM;QACxC,OAAO,IAAI,CAAC;IAEhB,OAAO,CACH,MAAC,QAAQ,IAAC,MAAM,QAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,aAAa,aACxE,KAAC,YAAY,cACR,IAAI,GACM,EACf,KAAC,YAAY,IAAC,OAAO,EAAE,KAAK,GAAI,IACzB,CACd,CAAA;AACL,CAAC","sourcesContent":["import { ListItem, ListItemIcon, ListItemText } from '@mui/material';\nimport React from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { hasRole } from '../../../utils/UserService';\n\ninterface LeftDrawerItemProps {\n title: string,\n url: string,\n icon: React.ReactNode,\n forRole?: string[],\n setDrawerOpen: (drawerOpen: boolean) => void,\n hidden?: boolean\n}\n\nexport default function DrawerItem(props: LeftDrawerItemProps) {\n const { title, url, icon, forRole, setDrawerOpen, hidden } = props;\n const navigate = useNavigate();\n const location = useLocation();\n\n const handleOnClick = () => {\n navigate(url);\n\n if (location.pathname === url)\n return window.location.reload();\n\n setDrawerOpen(false);\n }\n\n if ((forRole && !hasRole(forRole)) || hidden)\n return null;\n\n return (\n <ListItem button selected={location.pathname === url} onClick={handleOnClick}>\n <ListItemIcon>\n {icon}\n </ListItemIcon>\n <ListItemText primary={title} />\n </ListItem>\n )\n}\n"]}
|
|
@@ -7,8 +7,8 @@ import I18NextHttpBackend from 'i18next-http-backend';
|
|
|
7
7
|
import moment from 'moment';
|
|
8
8
|
import { createContext, useCallback, useEffect, useMemo, useState } from 'react';
|
|
9
9
|
import { initReactI18next, useTranslation } from 'react-i18next';
|
|
10
|
-
import Layout from '../components/Layout';
|
|
11
10
|
import CenteredBox from '../components/common/CenteredBox';
|
|
11
|
+
import Layout from '../components/Layout';
|
|
12
12
|
import { persistStorage } from '../utils/PersistStorage';
|
|
13
13
|
import { doLogin, doLogout, initKeycloak, loggedIn } from '../utils/UserService';
|
|
14
14
|
export const LayoutContext = createContext({});
|
|
@@ -23,7 +23,6 @@ i18next
|
|
|
23
23
|
.use(LanguageDetector)
|
|
24
24
|
.use(I18NextHttpBackend)
|
|
25
25
|
.init({ fallbackLng: 'en' });
|
|
26
|
-
//Moment
|
|
27
26
|
moment.defaultFormat = 'YYYY-MM-DD';
|
|
28
27
|
moment.fn.formatDate = function () {
|
|
29
28
|
if (!this.isValid())
|
|
@@ -65,10 +64,11 @@ export function LayoutProvider(props) {
|
|
|
65
64
|
queries: {
|
|
66
65
|
enabled: enabled,
|
|
67
66
|
refetchOnWindowFocus: false,
|
|
68
|
-
onError: message => setSnackbar({ message: String(message), severity: "error" })
|
|
67
|
+
onError: message => setSnackbar({ message: String(message), severity: "error" }),
|
|
68
|
+
retry: false
|
|
69
69
|
},
|
|
70
70
|
mutations: {
|
|
71
|
-
onError: message => setSnackbar({ message: String(message), severity: "error" })
|
|
71
|
+
onError: message => setSnackbar({ message: String(message), severity: "error" }),
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutContext.js","sourceRoot":"","sources":["../../../src/contexts/LayoutContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Alert, Snackbar, Stack } from '@mui/material';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport i18next, { i18n, TFunction } from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport I18NextHttpBackend from 'i18next-http-backend';\r\nimport moment from 'moment';\r\nimport { createContext, ReactNode, SyntheticEvent, useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { initReactI18next, useTranslation } from 'react-i18next';\r\nimport Layout from '../components/Layout';\r\nimport CenteredBox from '../components/common/CenteredBox';\r\nimport KeycloakExtendedConfig from '../models/KeycloakExtendedConfig';\r\nimport { LeftDrawerItem } from '../models/LeftDrawerItem';\r\nimport SnackbarModel from '../models/SnackbarModel';\r\nimport { ExtendedUser, User } from '../models/User';\r\nimport { persistStorage } from '../utils/PersistStorage';\r\nimport { doLogin, doLogout, initKeycloak, loggedIn } from '../utils/UserService';\r\n\r\ninterface LayoutContextInterface {\r\n changeTitle: (title: string) => void,\r\n snackbar: (snackbar: SnackbarModel) => void,\r\n user: User,\r\n t: TFunction<\"translation\", undefined>,\r\n i18n: i18n\r\n}\r\n\r\nexport const LayoutContext = createContext({} as LayoutContextInterface);\r\n\r\n//User\r\ninitKeycloak();\r\nconst initialUser: ExtendedUser = { login: doLogin, logout: doLogout, loggedIn: loggedIn(), department: \"\", id: \"\", name: \"\" };\r\n\r\n//QueryClient\r\nconst queryClient = new QueryClient({ defaultOptions: { queries: { enabled: false } } });\r\n\r\n//Localization\r\ni18next\r\n .use(initReactI18next)\r\n .use(LanguageDetector)\r\n .use(I18NextHttpBackend)\r\n .init({ fallbackLng: 'en' });\r\n\r\n//Moment\r\nmoment.defaultFormat = 'YYYY-MM-DD';\r\n\r\ndeclare module \"moment\" {\r\n interface Moment {\r\n formatDate(): string;\r\n formatDateTime(): string;\r\n }\r\n}\r\n\r\nmoment.fn.formatDate = function (): string {\r\n if (!this.isValid()) return \"\";\r\n return this.format();\r\n};\r\n\r\nmoment.fn.formatDateTime = function (): string {\r\n if (!this.isValid()) return \"\";\r\n return this.format(\"YYYY-MM-DD HH:mm\");\r\n};\r\n\r\ninterface LayoutProviderProps {\r\n title: string,\r\n appVersion: string,\r\n leftDrawerItems: LeftDrawerItem[],\r\n primaryColor: string,\r\n secondaryColor: string,\r\n children: ReactNode\r\n}\r\n\r\nexport function LayoutProvider(props: LayoutProviderProps) {\r\n const [user, setUser] = useState<ExtendedUser>(initialUser);\r\n const [title, setTitle] = useState(props.title);\r\n const [snackbar, setSnackbar] = useState({} as SnackbarModel);\r\n const [initialized, setInitialized] = useState<boolean>(false);\r\n const { t, i18n } = useTranslation();\r\n\r\n useEffect(() => {\r\n window.addEventListener('user', initUserInfo);\r\n return () => window.removeEventListener('user', initUserInfo);\r\n }, []);\r\n\r\n const initUserInfo = () => {\r\n const userInfo: User | null = persistStorage.getObject<User>(\"user\");\r\n if (userInfo)\r\n setUser({\r\n ...user,\r\n id: userInfo.id,\r\n department: userInfo.department,\r\n name: userInfo.name,\r\n loggedIn: loggedIn()\r\n });\r\n };\r\n\r\n useEffect(() => setQueryClientDefaultOptions(), [user.loggedIn]);\r\n\r\n const setQueryClientDefaultOptions = () => {\r\n const storedKeycloak: KeycloakExtendedConfig | null = persistStorage.getObject<KeycloakExtendedConfig>(\"keycloak\");\r\n const enabled = storedKeycloak ? (storedKeycloak.autoLogin && user.loggedIn) || !storedKeycloak.autoLogin : false;\r\n setInitialized(enabled);\r\n\r\n queryClient.setDefaultOptions({\r\n queries: {\r\n enabled: enabled,\r\n refetchOnWindowFocus: false,\r\n onError: message => setSnackbar({ message: String(message), severity: \"error\" })\r\n },\r\n mutations: {\r\n onError: message => setSnackbar({ message: String(message), severity: \"error\" })\r\n }\r\n });\r\n };\r\n\r\n const changeTitle = useCallback((newTitle: string) => {\r\n document.title = newTitle;\r\n setTitle(newTitle);\r\n }, []);\r\n\r\n const handleOnSnackbarClose = useCallback((event?: SyntheticEvent | Event, reason?: string) => {\r\n if (reason === 'clickaway') return;\r\n setSnackbar({ ...snackbar, message: \"\" });\r\n }, []);\r\n\r\n const providerValue: LayoutContextInterface = useMemo(() => ({ changeTitle: changeTitle, snackbar: setSnackbar, user: user, t: t, i18n: i18n }), [changeTitle, setSnackbar, user, t, i18n]);\r\n\r\n return (\r\n <QueryClientProvider client={queryClient}>\r\n <LayoutContext.Provider value={providerValue}>\r\n <Layout title={title} appVersion={props.appVersion} primaryColor={props.primaryColor} secondaryColor={props.secondaryColor} leftDrawerItems={props.leftDrawerItems} user={user} initialized={initialized}>\r\n {initialized ? props.children : <CenteredBox circularProgress />}\r\n\r\n <Stack spacing={2} sx={{ width: '100%' }}>\r\n <Snackbar open={!!snackbar.message} autoHideDuration={6000} onClose={handleOnSnackbarClose}>\r\n <Alert onClose={handleOnSnackbarClose} severity={snackbar.severity} sx={{ width: '100%' }} variant=\"filled\">{snackbar.message}</Alert>\r\n </Snackbar>\r\n </Stack>\r\n </Layout>\r\n </LayoutContext.Provider>\r\n </QueryClientProvider>\r\n );\r\n}"]}
|
|
1
|
+
{"version":3,"file":"LayoutContext.js","sourceRoot":"","sources":["../../../src/contexts/LayoutContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Alert, Snackbar, Stack } from '@mui/material';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport i18next, { i18n, TFunction } from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport I18NextHttpBackend from 'i18next-http-backend';\r\nimport moment from 'moment';\r\nimport { createContext, ReactNode, SyntheticEvent, useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { initReactI18next, useTranslation } from 'react-i18next';\r\nimport CenteredBox from '../components/common/CenteredBox';\r\nimport Layout from '../components/Layout';\r\nimport KeycloakExtendedConfig from '../models/KeycloakExtendedConfig';\r\nimport { LeftDrawerItem } from '../models/LeftDrawerItem';\r\nimport SnackbarModel from '../models/SnackbarModel';\r\nimport { ExtendedUser, User } from '../models/User';\r\nimport { persistStorage } from '../utils/PersistStorage';\r\nimport { doLogin, doLogout, initKeycloak, loggedIn } from '../utils/UserService';\r\n\r\ninterface LayoutContextInterface {\r\n changeTitle: (title: string) => void,\r\n snackbar: (snackbar: SnackbarModel) => void,\r\n user: User,\r\n t: TFunction<\"translation\", undefined>,\r\n i18n: i18n\r\n}\r\n\r\nexport const LayoutContext = createContext({} as LayoutContextInterface);\r\n\r\n//User\r\ninitKeycloak();\r\nconst initialUser: ExtendedUser = { login: doLogin, logout: doLogout, loggedIn: loggedIn(), department: \"\", id: \"\", name: \"\" };\r\n\r\n//QueryClient\r\nconst queryClient = new QueryClient({ defaultOptions: { queries: { enabled: false } } });\r\n\r\n//Localization\r\ni18next\r\n .use(initReactI18next)\r\n .use(LanguageDetector)\r\n .use(I18NextHttpBackend)\r\n .init({ fallbackLng: 'en' });\r\n\r\nmoment.defaultFormat = 'YYYY-MM-DD';\r\n\r\ndeclare module \"moment\" {\r\n interface Moment {\r\n formatDate(): string;\r\n formatDateTime(): string;\r\n }\r\n}\r\n\r\nmoment.fn.formatDate = function (): string {\r\n if (!this.isValid()) return \"\";\r\n return this.format();\r\n};\r\n\r\nmoment.fn.formatDateTime = function (): string {\r\n if (!this.isValid()) return \"\";\r\n return this.format(\"YYYY-MM-DD HH:mm\");\r\n};\r\n\r\ninterface LayoutProviderProps {\r\n title: string,\r\n appVersion: string,\r\n leftDrawerItems: LeftDrawerItem[],\r\n primaryColor: string,\r\n secondaryColor: string,\r\n children: ReactNode\r\n}\r\n\r\nexport function LayoutProvider(props: LayoutProviderProps) {\r\n const [user, setUser] = useState<ExtendedUser>(initialUser);\r\n const [title, setTitle] = useState(props.title);\r\n const [snackbar, setSnackbar] = useState({} as SnackbarModel);\r\n const [initialized, setInitialized] = useState<boolean>(false);\r\n const { t, i18n } = useTranslation();\r\n\r\n useEffect(() => {\r\n window.addEventListener('user', initUserInfo);\r\n return () => window.removeEventListener('user', initUserInfo);\r\n }, []);\r\n\r\n const initUserInfo = () => {\r\n const userInfo: User | null = persistStorage.getObject<User>(\"user\");\r\n if (userInfo)\r\n setUser({\r\n ...user,\r\n id: userInfo.id,\r\n department: userInfo.department,\r\n name: userInfo.name,\r\n loggedIn: loggedIn()\r\n });\r\n };\r\n\r\n useEffect(() => setQueryClientDefaultOptions(), [user.loggedIn]);\r\n\r\n const setQueryClientDefaultOptions = () => {\r\n const storedKeycloak: KeycloakExtendedConfig | null = persistStorage.getObject<KeycloakExtendedConfig>(\"keycloak\");\r\n const enabled = storedKeycloak ? (storedKeycloak.autoLogin && user.loggedIn) || !storedKeycloak.autoLogin : false;\r\n setInitialized(enabled);\r\n\r\n queryClient.setDefaultOptions({\r\n queries: {\r\n enabled: enabled,\r\n refetchOnWindowFocus: false,\r\n onError: message => setSnackbar({ message: String(message), severity: \"error\" }),\r\n retry: false\r\n },\r\n mutations: {\r\n onError: message => setSnackbar({ message: String(message), severity: \"error\" }),\r\n }\r\n });\r\n };\r\n\r\n const changeTitle = useCallback((newTitle: string) => {\r\n document.title = newTitle;\r\n setTitle(newTitle);\r\n }, []);\r\n\r\n const handleOnSnackbarClose = useCallback((event?: SyntheticEvent | Event, reason?: string) => {\r\n if (reason === 'clickaway') return;\r\n setSnackbar({ ...snackbar, message: \"\" });\r\n }, []);\r\n\r\n const providerValue: LayoutContextInterface = useMemo(() => ({ changeTitle: changeTitle, snackbar: setSnackbar, user: user, t: t, i18n: i18n }), [changeTitle, setSnackbar, user, t, i18n]);\r\n\r\n return (\r\n <QueryClientProvider client={queryClient}>\r\n <LayoutContext.Provider value={providerValue}>\r\n <Layout title={title} appVersion={props.appVersion} primaryColor={props.primaryColor} secondaryColor={props.secondaryColor} leftDrawerItems={props.leftDrawerItems} user={user} initialized={initialized}>\r\n {initialized ? props.children : <CenteredBox circularProgress />}\r\n\r\n <Stack spacing={2} sx={{ width: '100%' }}>\r\n <Snackbar open={!!snackbar.message} autoHideDuration={6000} onClose={handleOnSnackbarClose}>\r\n <Alert onClose={handleOnSnackbarClose} severity={snackbar.severity} sx={{ width: '100%' }} variant=\"filled\">{snackbar.message}</Alert>\r\n </Snackbar>\r\n </Stack>\r\n </Layout>\r\n </LayoutContext.Provider>\r\n </QueryClientProvider>\r\n );\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeycloakExtendedConfig.js","sourceRoot":"","sources":["../../../src/models/KeycloakExtendedConfig.ts"],"names":[],"mappings":"","sourcesContent":["export default interface KeycloakExtendedConfig {\
|
|
1
|
+
{"version":3,"file":"KeycloakExtendedConfig.js","sourceRoot":"","sources":["../../../src/models/KeycloakExtendedConfig.ts"],"names":[],"mappings":"","sourcesContent":["export default interface KeycloakExtendedConfig {\n autoLogin?: boolean,\n confidential?: Confidential,\n realm: string,\n \"auth-server-url\": string,\n idpHint?: string\n}\n\nexport interface Confidential {\n client: string,\n secret: string\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftDrawerItem.js","sourceRoot":"","sources":["../../../src/models/LeftDrawerItem.ts"],"names":[],"mappings":"","sourcesContent":["export interface LeftDrawerItem {\
|
|
1
|
+
{"version":3,"file":"LeftDrawerItem.js","sourceRoot":"","sources":["../../../src/models/LeftDrawerItem.ts"],"names":[],"mappings":"","sourcesContent":["export interface LeftDrawerItem {\n title: string,\n path: string,\n icon: React.ReactNode,\n hidden?: boolean\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnackbarModel.js","sourceRoot":"","sources":["../../../src/models/SnackbarModel.ts"],"names":[],"mappings":"","sourcesContent":["import { AlertColor } from \"@mui/material\";\
|
|
1
|
+
{"version":3,"file":"SnackbarModel.js","sourceRoot":"","sources":["../../../src/models/SnackbarModel.ts"],"names":[],"mappings":"","sourcesContent":["import { AlertColor } from \"@mui/material\";\n\nexport default interface SnackbarModel {\n message: string,\n severity?: AlertColor\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"","sourcesContent":["import { KeycloakPromise } from \"keycloak-js\";\
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"","sourcesContent":["import { KeycloakPromise } from \"keycloak-js\";\n\nexport interface User {\n id: string,\n name: string,\n department: string\n}\n\nexport interface ExtendedUser extends User {\n loggedIn: boolean,\n login: () => KeycloakPromise<void, void>,\n logout: () => KeycloakPromise<void, void> \n}"]}
|
|
@@ -59,9 +59,9 @@ const getRequestInit = async (method, data, signal) => {
|
|
|
59
59
|
return request;
|
|
60
60
|
};
|
|
61
61
|
const getQueryErrorMessage = async (response) => {
|
|
62
|
-
let message = `
|
|
62
|
+
let message = `[${response.status}] ${response.statusText}`;
|
|
63
63
|
const detailMessage = await response.json()
|
|
64
|
-
.then(data => {
|
|
64
|
+
.then(data => `[${response.status}] ${data.message}`)
|
|
65
65
|
.catch(() => (message));
|
|
66
66
|
if (detailMessage)
|
|
67
67
|
message = detailMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fetches.js","sourceRoot":"","sources":["../../../src/utils/Fetches.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Fetches.js","sourceRoot":"","sources":["../../../src/utils/Fetches.ts"],"names":[],"mappings":"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","sourcesContent":["import { getToken } from \"./UserService\";\n\nexport const fetchGet = async (url: string, signal: AbortSignal | undefined): Promise<any> => {\n const initReq: RequestInit = await getRequestInit(\"GET\", null, signal);\n\n const response: Response = await fetch(url, initReq);\n if (!response.ok)\n throw await getQueryErrorMessage(response);\n\n return response.json();\n};\n\nexport const fetchFileGet = async (url: string, signal: AbortSignal | undefined): Promise<Blob> => {\n const initReq: RequestInit = await getRequestInit(\"GET\", null, signal);\n\n const response: Response = await fetch(url, initReq);\n if (!response.ok)\n throw await getQueryErrorMessage(response);\n\n return response.blob();\n};\n\nexport const fetchPost = async (url: string, data: unknown): Promise<any> => {\n const initReq: RequestInit = await getRequestInit(\"POST\", data);\n\n const response: Response = await fetch(url, initReq);\n if (!response.ok)\n throw await getQueryErrorMessage(response);\n\n return response.json();\n};\n\nexport const fetchPut = async (url: string, data: unknown): Promise<Response> => {\n const initReq: RequestInit = await getRequestInit(\"PUT\", data);\n\n const response: Response = await fetch(url, initReq);\n if (!response.ok)\n throw await getQueryErrorMessage(response);\n\n return response;\n};\n\nexport const fetchDelete = async (url: string): Promise<Response> => {\n const initReq: RequestInit = await getRequestInit(\"DELETE\");\n\n const response: Response = await fetch(url, initReq);\n if (!response.ok)\n throw await getQueryErrorMessage(response);\n\n return response;\n};\n\nconst getRequestInit = async (method: string, data?: unknown, signal?: AbortSignal): Promise<RequestInit> => {\n const request: RequestInit = {\n method: method,\n signal: signal,\n credentials: 'include'\n };\n\n if (data) {\n if (data instanceof FormData)\n request.body = data;\n else\n request.body = JSON.stringify(data);\n }\n\n if (data instanceof FormData)\n request.headers = {\n 'Authorization': `Bearer ${await getToken()}`\n };\n else {\n request.headers = {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${await getToken()}`\n };\n }\n\n return request;\n};\n\nconst getQueryErrorMessage = async (response: Response): Promise<string> => {\n let message: string = `[${response.status}] ${response.statusText}`;\n\n const detailMessage: string | undefined = await response.json()\n .then(data => `[${response.status}] ${data.message}`)\n .catch(() => (message));\n\n if (detailMessage)\n message = detailMessage;\n\n return message;\n};"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../src/utils/Helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,CAAC,MAAM,SAAS,GAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAY,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE1H,MAAM,CAAC,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC","sourcesContent":["import { Guid } from \"guid-ts\";\
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../src/utils/Helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,CAAC,MAAM,SAAS,GAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAY,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE1H,MAAM,CAAC,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC","sourcesContent":["import { Guid } from \"guid-ts\";\n\nexport const isAndroid: boolean = /(android)/i.test(navigator.userAgent);\nexport const isMobile: boolean = /(android|iphone)/i.test(navigator.userAgent);\n\nexport const isDevelopment: boolean = window.location.href.includes(\".dev\") || window.location.href.includes(\"localhost\");\n\nexport const newGuid = (): string => Guid.newGuid().toString();"]}
|