@deix/rossini-core 2.1.8 → 2.3.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/Avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAkBxC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAyExC,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/Avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAkBxC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA+ExC,CAAC"}
@@ -20,10 +20,10 @@ export const Avatar = ({ logoutUrl, accountSettingsUrl, }) => {
20
20
  // User data
21
21
  const userInfo = useUserInfo();
22
22
  return (React.createElement(React.Fragment, null,
23
- React.createElement(Tooltip, { title: userInfo?.preferredUsername || 'Anonymous User' },
24
- React.createElement(IconButton, { component: 'span', "aria-label": 'toggle dark mode', onClick: handleClick },
25
- React.createElement(PersonIcon, { htmlColor: muiTheme.palette.topbar.contrastText }))),
26
- React.createElement(Menu, { anchorEl: anchorEl, open: open, onClose: handleClose, anchorOrigin: {
23
+ (userInfo || accountSettingsUrl || logoutUrl) && (React.createElement(Tooltip, { title: userInfo?.preferredUsername || 'Anonymous User' },
24
+ React.createElement(IconButton, { component: 'span', "aria-label": 'user menu', onClick: handleClick },
25
+ React.createElement(PersonIcon, { htmlColor: muiTheme.palette.topbar.contrastText })))),
26
+ (accountSettingsUrl || logoutUrl) && (React.createElement(Menu, { anchorEl: anchorEl, open: open, onClose: handleClose, anchorOrigin: {
27
27
  vertical: 'bottom',
28
28
  horizontal: 'right',
29
29
  }, transformOrigin: {
@@ -45,5 +45,5 @@ export const Avatar = ({ logoutUrl, accountSettingsUrl, }) => {
45
45
  React.createElement(MenuItem, { onClick: handleClose },
46
46
  React.createElement(ListItemIcon, null,
47
47
  React.createElement(LogoutIcon, { fontSize: 'small' })),
48
- React.createElement(ListItemText, null, "Logout")))))));
48
+ React.createElement(ListItemText, null, "Logout"))))))));
49
49
  };
@@ -41,6 +41,18 @@ interface StandardLayoutProps {
41
41
  * List of language options
42
42
  */
43
43
  languages?: Language[];
44
+ /**
45
+ * List of React nodes to be rendered in the Topbar (on the left side)
46
+ */
47
+ topbarLeftItems?: ReactNode[];
48
+ /**
49
+ * List of React nodes to be rendered in the Topbar (on the right side)
50
+ */
51
+ topbarRightItems?: ReactNode[];
52
+ /**
53
+ * Hide the button to switch theme
54
+ */
55
+ disableDarkMode?: boolean;
44
56
  }
45
57
  declare const StandardLayout: React.FC<StandardLayoutProps>;
46
58
  export default StandardLayout;
@@ -1 +1 @@
1
- {"version":3,"file":"StandardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/StandardLayout/StandardLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQzC,OAAgB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAgB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,UAAU,mBAAmB;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoHjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"StandardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/StandardLayout/StandardLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQzC,OAAgB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAgB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D,UAAU,mBAAmB;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsHjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -10,7 +10,7 @@ import TopLine from '../components/Topline/TopLine';
10
10
  import { useLocale, usePersistedState } from '../../../utils';
11
11
  import ServerDown from '../assets/ServerDown';
12
12
  import t from './translations.json';
13
- const StandardLayout = ({ isLoading, isError, error, appLogo, footer, sidebarLinks = [], avatar, languages, children, }) => {
13
+ const StandardLayout = ({ isLoading, isError, error, appLogo, footer, sidebarLinks = [], avatar, languages, children, topbarLeftItems = [], topbarRightItems = [], disableDarkMode, }) => {
14
14
  const theme = useMUITheme();
15
15
  const locale = useLocale();
16
16
  // Get if we are dealing with mobile client
@@ -18,7 +18,7 @@ const StandardLayout = ({ isLoading, isError, error, appLogo, footer, sidebarLin
18
18
  // Persist user preference about the sidebar
19
19
  const [sidebarOpen, setSidebarOpen] = usePersistedState('sidebarOpen', isMobile ? false : true);
20
20
  // Don't show anything until localStorage has been read
21
- if (sidebarOpen == undefined) {
21
+ if (sidebarOpen === undefined) {
22
22
  return null;
23
23
  }
24
24
  return (React.createElement(Box, { sx: { display: 'flex', flexDirection: 'row' } },
@@ -32,13 +32,10 @@ const StandardLayout = ({ isLoading, isError, error, appLogo, footer, sidebarLin
32
32
  background: theme.palette.background.default,
33
33
  } },
34
34
  React.createElement(TopLine, null),
35
- React.createElement(Topbar, { hasSidebar: sidebarLinks && sidebarLinks.length > 0, onSidebarClose: () => setSidebarOpen(false), onSidebarOpen: () => setSidebarOpen(true), open: sidebarOpen, locale: locale, languages: languages, avatar: avatar }),
35
+ React.createElement(Topbar, { hasSidebar: sidebarLinks && sidebarLinks.length > 0, onSidebarClose: () => setSidebarOpen(false), onSidebarOpen: () => setSidebarOpen(true), open: sidebarOpen, locale: locale, languages: languages, avatar: avatar, additionalLeftItems: topbarLeftItems, additionalRightItems: topbarRightItems, disableDarkMode: disableDarkMode }),
36
36
  isLoading && React.createElement(CircularLoading, { locale: locale }),
37
37
  !isLoading && isError && (React.createElement(Box, { sx: {
38
38
  flexGrow: 1,
39
- // display: 'flex',
40
- // flexDirection: 'column',
41
- // height: '100%',
42
39
  maxWidth: '100%',
43
40
  overflowX: 'hidden',
44
41
  paddingTop: 2,
@@ -59,7 +56,6 @@ const StandardLayout = ({ isLoading, isError, error, appLogo, footer, sidebarLin
59
56
  "Error: ",
60
57
  error.message))))),
61
58
  !isLoading && (React.createElement(Box, { sx: {
62
- // flexGrow: 1,
63
59
  maxWidth: '100%',
64
60
  overflowX: 'hidden',
65
61
  paddingTop: 2,
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { Language, Locale } from '../../../../types/languages';
3
3
  import { AvatarProps } from '../../../buttons/Avatar/Avatar';
4
4
  interface TopbarProps {
@@ -30,8 +30,18 @@ interface TopbarProps {
30
30
  * The props to be passed to the Avatar button component.
31
31
  */
32
32
  avatar?: AvatarProps;
33
- backgroundColor?: string;
34
- iconsColor?: string;
33
+ /**
34
+ * Array of additional React nodes to display dynamically in the topbar (on the left side).
35
+ */
36
+ additionalLeftItems?: ReactNode[];
37
+ /**
38
+ * Array of additional React nodes to display dynamically in the topbar (on the right side).
39
+ */
40
+ additionalRightItems?: ReactNode[];
41
+ /**
42
+ * Hide the button to switch theme
43
+ */
44
+ disableDarkMode?: boolean;
35
45
  }
36
46
  declare const Topbar: React.FC<TopbarProps>;
37
47
  export default Topbar;
@@ -1 +1 @@
1
- {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/components/Topbar/Topbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAc1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAU,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIrE,UAAU,WAAW;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAuEjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/components/Topbar/Topbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAarD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAU,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAKrE,UAAU,WAAW;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC;IAClC;;OAEG;IACH,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsFjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -10,7 +10,7 @@ import ElevationScroll from './ElevationScroll';
10
10
  import t from './translations.json';
11
11
  import { ThemeModeContext } from '../../../provider/ThemeProvider';
12
12
  const Topbar = (props) => {
13
- const { hasSidebar = false, onSidebarClose, onSidebarOpen, open, locale, languages, avatar, } = props;
13
+ const { hasSidebar = false, onSidebarClose, onSidebarOpen, open, locale, languages, avatar, additionalLeftItems = [], additionalRightItems = [], disableDarkMode, } = props;
14
14
  const { themeMode, setThemeMode } = useContext(ThemeModeContext);
15
15
  const muiTheme = useMUITheme();
16
16
  const SidebarIcon = open ? (React.createElement(MenuOpenTwoToneIcon, { htmlColor: muiTheme.palette.topbar.contrastText })) : (React.createElement(MenuTwoToneIcon, { htmlColor: muiTheme.palette.topbar.contrastText }));
@@ -25,13 +25,15 @@ const Topbar = (props) => {
25
25
  React.createElement(Toolbar, null,
26
26
  hasSidebar && (React.createElement(Tooltip, { title: menuMessage, arrow: true },
27
27
  React.createElement(IconButton, { color: 'inherit', "aria-label": 'open drawer', onClick: () => (open ? onSidebarClose() : onSidebarOpen()), edge: 'start' }, SidebarIcon))),
28
+ additionalLeftItems.map((item, index) => (React.createElement(React.Fragment, { key: index }, item))),
28
29
  React.createElement("div", { style: { flexGrow: 1 } }),
29
- React.createElement(LanguageSelect, { locale: locale, languages: languages }),
30
+ additionalRightItems.map((item, index) => (React.createElement(React.Fragment, { key: index }, item))),
31
+ languages && languages.length > 1 && (React.createElement(LanguageSelect, { locale: locale, languages: languages })),
30
32
  React.createElement(Avatar, { ...avatar }),
31
- React.createElement(Tooltip, { title: themeMode === 'light'
33
+ !disableDarkMode && (React.createElement(Tooltip, { title: themeMode === 'light'
32
34
  ? t['enableDark'][locale]
33
35
  : t['disableDark'][locale] },
34
36
  React.createElement(IconButton, { component: 'span', "aria-label": 'toggle dark mode', onClick: () => setThemeMode(themeMode === 'light' ? 'dark' : 'light') },
35
- React.createElement(ModeNightIcon, { htmlColor: muiTheme.palette.topbar.contrastText })))))));
37
+ React.createElement(ModeNightIcon, { htmlColor: muiTheme.palette.topbar.contrastText }))))))));
36
38
  };
37
39
  export default Topbar;