supernav-test 2.2.15 → 2.2.16

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 (60) hide show
  1. package/dist/App.test.d.ts +1 -0
  2. package/dist/App.test.js +7 -0
  3. package/dist/LsacContainer.d.ts +4 -0
  4. package/dist/LsacContainer.js +14 -0
  5. package/dist/components/lsac-supernavbar/AuthWrapper.d.ts +4 -0
  6. package/dist/components/lsac-supernavbar/AuthWrapper.js +47 -0
  7. package/dist/components/lsac-supernavbar/LsacSidebar.d.ts +44 -0
  8. package/dist/components/lsac-supernavbar/LsacSidebar.js +35 -0
  9. package/dist/components/lsac-supernavbar/Store.d.ts +3 -0
  10. package/dist/components/lsac-supernavbar/Store.js +12 -0
  11. package/dist/components/lsac-supernavbar/actions/AuthActions.d.ts +8 -0
  12. package/dist/components/lsac-supernavbar/actions/AuthActions.js +22 -0
  13. package/dist/components/lsac-supernavbar/actions/SidebarActions.d.ts +23 -0
  14. package/dist/components/lsac-supernavbar/actions/SidebarActions.js +81 -0
  15. package/dist/components/lsac-supernavbar/components/Sidebar.d.ts +13 -0
  16. package/dist/components/lsac-supernavbar/components/Sidebar.js +193 -0
  17. package/dist/components/lsac-supernavbar/components/SidebarForm.d.ts +5 -0
  18. package/dist/components/lsac-supernavbar/components/SidebarForm.js +8 -0
  19. package/dist/components/lsac-supernavbar/components/SidebarMainLink.d.ts +14 -0
  20. package/dist/components/lsac-supernavbar/components/SidebarMainLink.js +60 -0
  21. package/dist/components/lsac-supernavbar/components/SidebarOption.d.ts +4 -0
  22. package/dist/components/lsac-supernavbar/components/SidebarOption.js +8 -0
  23. package/dist/components/lsac-supernavbar/components/SidebarSubMenu.d.ts +5 -0
  24. package/dist/components/lsac-supernavbar/components/SidebarSubMenu.js +68 -0
  25. package/dist/components/lsac-supernavbar/components/SidebarTab.d.ts +1 -0
  26. package/dist/components/lsac-supernavbar/components/SidebarTab.js +50 -0
  27. package/dist/components/lsac-supernavbar/components/Topnav.d.ts +14 -0
  28. package/dist/components/lsac-supernavbar/components/Topnav.js +76 -0
  29. package/dist/components/lsac-supernavbar/components/sidebar_submenus/CategorizedSubmenu.d.ts +9 -0
  30. package/dist/components/lsac-supernavbar/components/sidebar_submenus/CategorizedSubmenu.js +57 -0
  31. package/dist/components/lsac-supernavbar/components/sidebar_submenus/Marketplace.d.ts +5 -0
  32. package/dist/components/lsac-supernavbar/components/sidebar_submenus/Marketplace.js +7 -0
  33. package/dist/components/lsac-supernavbar/constants/SidebarConstants.d.ts +8 -0
  34. package/dist/components/lsac-supernavbar/constants/SidebarConstants.js +12 -0
  35. package/dist/components/lsac-supernavbar/constants/UtilityConstants.d.ts +15 -0
  36. package/dist/components/lsac-supernavbar/constants/UtilityConstants.js +21 -0
  37. package/dist/components/lsac-supernavbar/interfaces/Models.d.ts +65 -0
  38. package/dist/components/lsac-supernavbar/interfaces/Models.js +12 -0
  39. package/dist/components/lsac-supernavbar/interfaces/Redux.d.ts +7 -0
  40. package/dist/components/lsac-supernavbar/interfaces/Redux.js +2 -0
  41. package/dist/components/lsac-supernavbar/reducers/AuthReducer.d.ts +7 -0
  42. package/dist/components/lsac-supernavbar/reducers/AuthReducer.js +19 -0
  43. package/dist/components/lsac-supernavbar/reducers/RootReducer.d.ts +5 -0
  44. package/dist/components/lsac-supernavbar/reducers/RootReducer.js +10 -0
  45. package/dist/components/lsac-supernavbar/reducers/SidebarReducer.d.ts +17 -0
  46. package/dist/components/lsac-supernavbar/reducers/SidebarReducer.js +49 -0
  47. package/dist/components/lsac-supernavbar/resources/icomoon-library.json +1 -0
  48. package/dist/components/lsac-supernavbar/test/App.test.d.ts +1 -0
  49. package/dist/components/lsac-supernavbar/test/App.test.js +22 -0
  50. package/dist/components/lsac-supernavbar/util/SubmenuUtil.d.ts +9 -0
  51. package/dist/components/lsac-supernavbar/util/SubmenuUtil.js +112 -0
  52. package/dist/components/lsac-supernavbar/util/Util.d.ts +4 -0
  53. package/dist/components/lsac-supernavbar/util/Util.js +24 -0
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.js +17 -67
  56. package/dist/reportWebVitals.d.ts +3 -0
  57. package/dist/reportWebVitals.js +33 -0
  58. package/dist/setupTests.d.ts +1 -0
  59. package/dist/setupTests.js +7 -0
  60. package/package.json +9 -4
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ interface SidebarFormProps {
3
+ }
4
+ declare function SidebarForm(props: SidebarFormProps): JSX.Element;
5
+ export default SidebarForm;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const styles = require('../stylesheets/form.scss');
5
+ function SidebarForm(props) {
6
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: 'sidebar-form' }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'sidebar-header' }, { children: "Form Launched From Sidebar Action" }), void 0), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'sidebar-form-body' }, { children: "Contents of the form" }), void 0)] }), void 0));
7
+ }
8
+ exports.default = SidebarForm;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { SidebarMenuTypes } from "../constants/SidebarConstants";
3
+ export interface SidebarMainLinkProps {
4
+ appContext?: string;
5
+ id: SidebarMenuTypes;
6
+ icon?: any;
7
+ label: string;
8
+ onClick: () => void;
9
+ click?: () => void;
10
+ selectedOption?: any;
11
+ subMenu: boolean;
12
+ }
13
+ declare function SidebarMainLink(props: SidebarMainLinkProps): JSX.Element;
14
+ export default SidebarMainLink;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const classnames_1 = __importDefault(require("classnames"));
9
+ const react_redux_1 = require("react-redux");
10
+ const SidebarActions_1 = require("../actions/SidebarActions");
11
+ const Models_1 = require("../interfaces/Models");
12
+ // import IconRight from '../static/images/sidebar-icons/rightIcon.svg';
13
+ const styles = require('../stylesheets/sidebar-main-link.scss');
14
+ function SidebarMainLink(props) {
15
+ const { icon, label, id, click, selectedOption, subMenu } = props;
16
+ const dispatch = (0, react_redux_1.useDispatch)();
17
+ const selectedSidebarOption = (0, react_redux_1.useSelector)((state) => state.sidebar.selectedSidebarOption);
18
+ const selected = id === selectedSidebarOption;
19
+ const apps = (0, react_redux_1.useSelector)((state) => { var _a; return ((_a = state.auth.userInfo) === null || _a === void 0 ? void 0 : _a.applications) || new Array(); });
20
+ const active = id === selectedOption;
21
+ const onClick = (0, react_1.useCallback)(() => {
22
+ if (id === 'marketplace') {
23
+ const marketplaceUrl = apps.filter((e) => e.attributes !== undefined && e.attributes !== null)
24
+ .filter((f) => Object.keys(f.attributes).length > 0)
25
+ .filter((e) => e.attributes['category'] !== undefined)
26
+ .filter((app) => app.attributes['category'].toLowerCase() === Models_1.SidebarCategory.MARKETPLACE)[0].url;
27
+ window.location.href = marketplaceUrl;
28
+ dispatch((0, SidebarActions_1.SetExpandSidebar)(false));
29
+ dispatch((0, SidebarActions_1.SetMinimalSidebar)(true));
30
+ }
31
+ else if (id === 'home') {
32
+ const home_url = apps.filter((e) => e.attributes !== undefined)
33
+ .filter((f) => Object.keys(f.attributes).length > 0)
34
+ .filter((e) => e.attributes['category'] !== undefined)
35
+ .filter((app) => app.attributes['category'].toLowerCase() === Models_1.SidebarCategory.MY_HOME)[0].url;
36
+ window.location.href = home_url;
37
+ dispatch((0, SidebarActions_1.SetExpandSidebar)(false));
38
+ dispatch((0, SidebarActions_1.SetMinimalSidebar)(true));
39
+ }
40
+ }, [id, dispatch]);
41
+ const onHover = (0, react_1.useCallback)((id) => {
42
+ dispatch((0, SidebarActions_1.SetSelectedSidebarOption)(id));
43
+ if (id === 'marketplace' || id === 'home') {
44
+ dispatch((0, SidebarActions_1.SetExpandSidebar)(false));
45
+ dispatch((0, SidebarActions_1.SetMinimalSidebar)(true));
46
+ }
47
+ else {
48
+ dispatch((0, SidebarActions_1.SetExpandSidebar)(true));
49
+ dispatch((0, SidebarActions_1.SetMinimalSidebar)(false));
50
+ }
51
+ }, [id, dispatch]);
52
+ const iconRight = ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "icon-right" }, { children: (0, jsx_runtime_1.jsx)("div", { className: "icon-right-arrow" }, void 0) }), void 0));
53
+ if (subMenu) {
54
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, classnames_1.default)('lsac-sidebar-main-link', { selected: selected }, { active: active }), onClick: onClick, onMouseOver: (e) => { onHover(id); }, title: label }, { children: [icon, iconRight] }), void 0));
55
+ }
56
+ else {
57
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: (0, classnames_1.default)('lsac-sidebar-main-link', { selected: selected }, { active: active }), onClick: onClick, onMouseOver: (e) => { onHover(id); }, title: label }, { children: icon }), void 0));
58
+ }
59
+ }
60
+ exports.default = SidebarMainLink;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { SidebarOption as ISidebarOption } from "../interfaces/Models";
3
+ declare function SidebarOption(props: ISidebarOption): JSX.Element;
4
+ export default SidebarOption;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ function SidebarOption(props) {
5
+ const { label, onClick } = props;
6
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'lsac-sidebar-option', onClick: onClick }, { children: label }), void 0));
7
+ }
8
+ exports.default = SidebarOption;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ }
4
+ declare function SidebarSubMenu(props: Props): JSX.Element | null;
5
+ export default SidebarSubMenu;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const SidebarConstants_1 = require("../constants/SidebarConstants");
9
+ const CategorizedSubmenu_1 = __importDefault(require("./sidebar_submenus/CategorizedSubmenu"));
10
+ const Models_1 = require("../interfaces/Models");
11
+ const react_redux_1 = require("react-redux");
12
+ const SubmenuUtil_1 = __importDefault(require("../util/SubmenuUtil"));
13
+ function groupApplicationsByCategory(applications) {
14
+ return applications.reduce((memo, application) => {
15
+ const { category } = application;
16
+ const updatedGrouping = Object.assign({}, memo);
17
+ const { myApps, engagementApps, collaborationApps, managementApps } = updatedGrouping;
18
+ switch (category) {
19
+ case Models_1.SidebarCategory.COLLABORATION:
20
+ updatedGrouping.collaborationApps = [...collaborationApps, application];
21
+ break;
22
+ case Models_1.SidebarCategory.ENGAGEMENT:
23
+ updatedGrouping.engagementApps = [...engagementApps, application];
24
+ break;
25
+ case Models_1.SidebarCategory.MANAGEMENT:
26
+ updatedGrouping.managementApps = [...managementApps, application];
27
+ break;
28
+ case Models_1.SidebarCategory.MY_APPS:
29
+ updatedGrouping.myApps = [...myApps, application];
30
+ break;
31
+ default:
32
+ }
33
+ return updatedGrouping;
34
+ }, {
35
+ myApps: [],
36
+ engagementApps: [],
37
+ collaborationApps: [],
38
+ managementApps: [],
39
+ });
40
+ }
41
+ function getMenuForSelection(selection, groupedApps) {
42
+ const { myApps, engagementApps, collaborationApps, managementApps } = groupedApps;
43
+ const myAppsComponent = (0, jsx_runtime_1.jsx)(CategorizedSubmenu_1.default, { applications: myApps, title: 'My Apps', className: 'lsac-my-apps-pane' }, void 0);
44
+ switch (selection) {
45
+ case SidebarConstants_1.SidebarMenuTypes.MyApps:
46
+ return myAppsComponent;
47
+ case SidebarConstants_1.SidebarMenuTypes.Engagement:
48
+ return (0, jsx_runtime_1.jsx)(CategorizedSubmenu_1.default, { applications: engagementApps, title: 'Engagement', className: 'lsac-engagement-pane' }, void 0);
49
+ case SidebarConstants_1.SidebarMenuTypes.Collaboration:
50
+ return (0, jsx_runtime_1.jsx)(CategorizedSubmenu_1.default, { applications: collaborationApps, title: 'Collaboration', className: 'lsac-collaboration-pane' }, void 0);
51
+ case SidebarConstants_1.SidebarMenuTypes.Management:
52
+ return (0, jsx_runtime_1.jsx)(CategorizedSubmenu_1.default, { applications: managementApps, title: 'Administration', className: 'lsac-management-pane' }, void 0);
53
+ case SidebarConstants_1.SidebarMenuTypes.Home:
54
+ return null;
55
+ default:
56
+ return (0, jsx_runtime_1.jsx)("div", {}, void 0);
57
+ }
58
+ }
59
+ function SidebarSubMenu(props) {
60
+ const selectedOption = (0, react_redux_1.useSelector)((state) => state.sidebar.selectedSidebarOption);
61
+ const localApps = (0, react_redux_1.useSelector)((state) => state.sidebar.localApplications);
62
+ const keycloakApps = (0, react_redux_1.useSelector)((state) => { var _a; return (_a = state.auth.userInfo) === null || _a === void 0 ? void 0 : _a.applications; }) || [];
63
+ const applications = (0, react_1.useMemo)(() => [...localApps, ...(keycloakApps.map(SubmenuUtil_1.default.keycloakAppToApplication))], [localApps, keycloakApps]);
64
+ const groupedApps = (0, react_1.useMemo)(() => groupApplicationsByCategory(applications), [applications]);
65
+ const displayComponent = getMenuForSelection(selectedOption, groupedApps);
66
+ return displayComponent;
67
+ }
68
+ exports.default = SidebarSubMenu;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = __importDefault(require("react"));
8
+ function getDetailsFromType(type) {
9
+ let color;
10
+ let text;
11
+ let options;
12
+ switch (type) {
13
+ case 'apps':
14
+ color = '#2d7cb5';
15
+ text = 'My Apps';
16
+ options = [];
17
+ break;
18
+ case 'collaboration':
19
+ color = '#0f7a11';
20
+ text = 'Collaboration';
21
+ options = [];
22
+ break;
23
+ case 'management':
24
+ color = '#3c003c';
25
+ text = 'Management';
26
+ options = [];
27
+ break;
28
+ case 'marketplace':
29
+ color = '#9a521c';
30
+ text = 'Marketplace';
31
+ options = [];
32
+ break;
33
+ case 'engage':
34
+ color = '#34190a';
35
+ text = 'Engage';
36
+ options = [];
37
+ break;
38
+ default:
39
+ color = '#fff';
40
+ text = '';
41
+ options = [];
42
+ break;
43
+ }
44
+ }
45
+ function SidebarTab({ type, selectedType }) {
46
+ const { color, text, options } = getDetailsFromType(type);
47
+ const identifier = `lsac-sidebar-tab-${type}`;
48
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: identifier }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'lsac-sidebar-tab-text' }, { children: text }), void 0) }), identifier));
49
+ }
50
+ const MemoizedSidebarTab = react_1.default.memo(SidebarTab);
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { SidebarDisplayModes, TopnavDisplayModes } from "../constants/UtilityConstants";
3
+ interface Props {
4
+ extraTopNavComponent: any;
5
+ topNavHeight: string;
6
+ applicationTitle: string;
7
+ accountName: string;
8
+ accountSwitchUrl: string;
9
+ logoutUrl: string;
10
+ sidebarDisplayMode: SidebarDisplayModes;
11
+ topnavDisplayMode: TopnavDisplayModes;
12
+ }
13
+ declare function TopNav(props: Props): JSX.Element;
14
+ export default TopNav;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_redux_1 = require("react-redux");
9
+ // import Hamburger from '../static/images/hamburger-icon.svg';
10
+ // import CloseHamburger from '../static/images/close-hamburger-icon.svg'
11
+ // import SaamaLogo from '../static/images/saama_logo.svg';
12
+ // import UserIcon from '../static/images/icon-user.svg';
13
+ const classnames_1 = __importDefault(require("classnames"));
14
+ const SidebarActions_1 = require("../actions/SidebarActions");
15
+ const react_bootstrap_1 = require("react-bootstrap");
16
+ const UtilityConstants_1 = require("../constants/UtilityConstants");
17
+ // icon imports
18
+ const icomoon_library_json_1 = __importDefault(require("../resources/icomoon-library.json"));
19
+ const icomoon_react_1 = __importDefault(require("icomoon-react"));
20
+ require('../stylesheets/topnav.scss');
21
+ require('../stylesheets/study-filter.scss');
22
+ require('../stylesheets/fontIcons.css');
23
+ function TopNav(props) {
24
+ const { extraTopNavComponent, topNavHeight, applicationTitle, accountName, accountSwitchUrl, logoutUrl, sidebarDisplayMode, topnavDisplayMode } = props;
25
+ const dispatch = (0, react_redux_1.useDispatch)();
26
+ const isMinimal = (0, react_redux_1.useSelector)((state) => state.sidebar.isMinimal);
27
+ const expanded = (0, react_redux_1.useSelector)((state) => state.sidebar.expanded);
28
+ const userName = (0, react_redux_1.useSelector)((state) => state.auth.userInfo && state.auth.userInfo.name);
29
+ const uiDevMode = (0, react_redux_1.useSelector)((state) => state.auth.uiDevMode);
30
+ const isLogoClickable = sidebarDisplayMode === UtilityConstants_1.SidebarDisplayModes.HIDDEN;
31
+ function handleToggleClick() {
32
+ // Don't handle click events if always showing the sidebar
33
+ if (!isLogoClickable) {
34
+ return;
35
+ }
36
+ dispatch((0, SidebarActions_1.SetMinimalSidebar)(!isMinimal));
37
+ }
38
+ ;
39
+ const extraStyle = {
40
+ height: topNavHeight,
41
+ };
42
+ // TODO - figure out what to do about logout
43
+ function logoutMenuClick() {
44
+ // Only handle logout when not in UI Dev mode
45
+ // if (!uiDevMode) {
46
+ // keycloak?.logout();
47
+ // }
48
+ }
49
+ const expandButtonClassnames = (0, classnames_1.default)('lsac-topnav-toggle', {
50
+ minimal: sidebarDisplayMode === UtilityConstants_1.SidebarDisplayModes.MINIMAL,
51
+ });
52
+ const userMenuClassnames = (0, classnames_1.default)('logout-menu', 'icon-userInfo', {
53
+ "click-disabled": uiDevMode
54
+ });
55
+ const showHamburger = () => {
56
+ let menuIcon;
57
+ if (isLogoClickable) {
58
+ // menuIcon = isMinimal || expanded ? <span className="close-hamburger-icon"><CloseHamburger /></span> : <Hamburger />
59
+ }
60
+ else {
61
+ // menuIcon= <Hamburger />
62
+ }
63
+ return menuIcon;
64
+ };
65
+ // create a reference to the topNav toggle button
66
+ // use effect to send that reference to the Sidebar store upon rendering
67
+ const topNavToggleref = (0, react_1.useRef)(null);
68
+ (0, react_1.useEffect)(() => {
69
+ dispatch((0, SidebarActions_1.SetTopnavToggleref)(topNavToggleref));
70
+ }, [topNavToggleref]);
71
+ const expandButton = ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: expandButtonClassnames, ref: topNavToggleref }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, classnames_1.default)('hamburger-logo', { clickable: isLogoClickable }, { disable: !isLogoClickable }), onClick: handleToggleClick }, { children: showHamburger() }), void 0), (0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)('saama-logo', { clickable: isLogoClickable }), onClick: handleToggleClick }, void 0), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: 'LSAC-logo' }, { children: ["Life Science ", (0, jsx_runtime_1.jsx)("br", {}, void 0), "Analytics Cloud"] }), void 0), !!applicationTitle ? (0, jsx_runtime_1.jsx)("span", Object.assign({ className: "app-name" }, { children: applicationTitle }), void 0) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}, void 0)] }), void 0));
72
+ const content = topnavDisplayMode === UtilityConstants_1.TopnavDisplayModes.MINIMAL ? ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'top-nav-minimal header-logo', style: extraStyle }, { children: expandButton }), void 0))
73
+ : ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'top-nav', style: extraStyle }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: 'top-nav-row' }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'header-logo' }, { children: expandButton }), void 0), extraTopNavComponent, (0, jsx_runtime_1.jsx)("div", Object.assign({ className: userMenuClassnames, onClick: logoutMenuClick }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "user-icon" }, { children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Dropdown, { children: [(0, jsx_runtime_1.jsx)(react_bootstrap_1.Dropdown.Toggle, Object.assign({ variant: "", id: "dropdown-basic" }, { children: (0, jsx_runtime_1.jsx)("span", Object.assign({ className: "account-name" }, { children: accountName }), void 0) }), void 0), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "user-dropdown-contents" }, { children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Dropdown.Menu, { children: [(0, jsx_runtime_1.jsx)("span", { children: userName }, void 0), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: "switch-account-link-wrapper" }, { children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Dropdown.Item, Object.assign({ href: accountSwitchUrl }, { children: [(0, jsx_runtime_1.jsx)(icomoon_react_1.default, { iconSet: icomoon_library_json_1.default, icon: "switch" }, void 0), " Switch Account"] }), void 0) }), void 0), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: "user-details-logout" }, { children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Dropdown.Item, Object.assign({ href: logoutUrl }, { children: [(0, jsx_runtime_1.jsx)(icomoon_react_1.default, { iconSet: icomoon_library_json_1.default, icon: "exit" }, void 0), "Logout"] }), void 0) }), void 0)] }, void 0) }), void 0)] }, void 0) }), void 0) }), void 0)] }), void 0) }), void 0));
74
+ return content;
75
+ }
76
+ exports.default = TopNav;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Application } from "../../interfaces/Models";
3
+ interface MyAppsProps {
4
+ title: string;
5
+ applications: Array<Application>;
6
+ className: string;
7
+ }
8
+ declare function CategorizedSubmenu(props: MyAppsProps): JSX.Element;
9
+ export default CategorizedSubmenu;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_redux_1 = require("react-redux");
8
+ const SubmenuUtil_1 = __importDefault(require("../../util/SubmenuUtil"));
9
+ const SidebarActions_1 = require("../../actions/SidebarActions");
10
+ function CategorizedSubmenu(props) {
11
+ const Dispatch = (0, react_redux_1.useDispatch)();
12
+ const { title, applications, className } = props;
13
+ const showExpanded = (0, react_redux_1.useSelector)((state) => state.sidebar.showExpandedApps);
14
+ const selectedSidebarOption = (0, react_redux_1.useSelector)((state) => state.sidebar.selectedSidebarOption);
15
+ function setSelectedSidebarOption() {
16
+ Dispatch((0, SidebarActions_1.SetSelectedSidebarOption)(selectedSidebarOption));
17
+ }
18
+ ;
19
+ function AppSequence(a, b) {
20
+ let x = (a.rank && a.rank.length > 0) ? parseInt(a.rank) : a.linkInfo.label.toUpperCase(), y = (b.rank && b.rank.length > 0) ? parseInt(b.rank) : b.linkInfo.label.toUpperCase();
21
+ return x == y ? 0 : x > y ? 1 : -1;
22
+ }
23
+ ;
24
+ function getSortedAppsList() {
25
+ let appWithRank = [], appWithoutRank = [];
26
+ applications.filter((app) => app.attributes && !app.attributes['grouping']).forEach(app => {
27
+ if (app.rank && app.rank.length > 0) {
28
+ appWithRank.push(app);
29
+ }
30
+ else {
31
+ appWithoutRank.push(app);
32
+ }
33
+ });
34
+ applications.filter((app) => app.attributes === undefined).forEach(app => {
35
+ appWithoutRank.push(app);
36
+ });
37
+ appWithRank = appWithRank.sort(AppSequence);
38
+ appWithoutRank = appWithoutRank.sort(AppSequence);
39
+ return [...appWithRank, ...appWithoutRank];
40
+ }
41
+ const appLinks = getSortedAppsList();
42
+ const toggleShowExpanded = () => {
43
+ Dispatch((0, SidebarActions_1.SetShowExpandedApps)(!showExpanded));
44
+ };
45
+ const expandedApps = title === 'My Apps' && applications.filter((app) => app.attributes['grouping']);
46
+ expandedApps && appLinks.splice(2, 0, expandedApps);
47
+ const rankedApps = appLinks.map((app, idx) => {
48
+ if (app.linkInfo) {
49
+ return SubmenuUtil_1.default.generateLink(app, idx);
50
+ }
51
+ else {
52
+ return SubmenuUtil_1.default.generateSubApplications(app, toggleShowExpanded, showExpanded);
53
+ }
54
+ });
55
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: className }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'title' }, { children: title }), void 0), rankedApps] }), Math.random()));
56
+ }
57
+ exports.default = CategorizedSubmenu;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ }
4
+ declare function Marketplace(props: Props): JSX.Element;
5
+ export default Marketplace;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ function Marketplace(props) {
5
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'title' }, { children: "Marketplace" }), void 0) }, void 0));
6
+ }
7
+ exports.default = Marketplace;
@@ -0,0 +1,8 @@
1
+ export declare enum SidebarMenuTypes {
2
+ Home = "home",
3
+ MyApps = "my_apps",
4
+ Management = "management",
5
+ Collaboration = "collaboration",
6
+ Marketplace = "marketplace",
7
+ Engagement = "engagement"
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SidebarMenuTypes = void 0;
4
+ var SidebarMenuTypes;
5
+ (function (SidebarMenuTypes) {
6
+ SidebarMenuTypes["Home"] = "home";
7
+ SidebarMenuTypes["MyApps"] = "my_apps";
8
+ SidebarMenuTypes["Management"] = "management";
9
+ SidebarMenuTypes["Collaboration"] = "collaboration";
10
+ SidebarMenuTypes["Marketplace"] = "marketplace";
11
+ SidebarMenuTypes["Engagement"] = "engagement";
12
+ })(SidebarMenuTypes = exports.SidebarMenuTypes || (exports.SidebarMenuTypes = {}));