udp-react-enterprise-component-library 25.18.4-beta.73 → 25.18.4-beta.74

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.
@@ -9,7 +9,7 @@ import { r as useRouteRegistry } from "./routeRegistryStore-BmhhxWS1.js";
9
9
  import { n as getMenuItemsRecursively, t as findHomeRouteSlug } from "./menuUtilities-BIiFWeWA.js";
10
10
  import { s as useMenuContext } from "./TenantProvider-r35vfTMk.js";
11
11
  import { t as UdpRoutes } from "./UdpRoutes-ClaIhJIi.js";
12
- import { c as NavigationSidebar, t as SiteHeader } from "./SiteHeader-BhJJmO1u.js";
12
+ import { c as NavigationSidebar, t as SiteHeader } from "./SiteHeader-vNgnheR6.js";
13
13
  import { t as FUIAppSwitcher } from "./FUIAppSwitcher-C6xv_T7_.js";
14
14
  import { t as ActionProvider } from "./ActionProvider-CEt8Z5bT.js";
15
15
  import { t as ChatBotProvider } from "./ChatBotProvider-C7FFww7I.js";
@@ -209,7 +209,8 @@ const Shell = (props) => {
209
209
  data: menus,
210
210
  navMenuHoverOn,
211
211
  user,
212
- useGlobalState: true
212
+ useGlobalState: true,
213
+ leftMenuLoading: leftMenuLoading || menuContext?.leftMenuLoading
213
214
  }), expander && /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(UtilitySideBar, {
214
215
  title: inquiryTitle || sidebarTitle,
215
216
  resizable: utilitySidebarResizable,
@@ -253,7 +254,8 @@ const Shell = (props) => {
253
254
  data: menus,
254
255
  navMenuHoverOn,
255
256
  user,
256
- useGlobalState: true
257
+ useGlobalState: true,
258
+ leftMenuLoading: leftMenuLoading || menuContext?.leftMenuLoading
257
259
  })), /* @__PURE__ */ React.createElement(Drawer, {
258
260
  variant: "temporary",
259
261
  anchor: "right",
@@ -318,4 +320,4 @@ Shell.propTypes = {
318
320
  //#endregion
319
321
  export { Shell as t };
320
322
 
321
- //# sourceMappingURL=Shell--4lbPR7c.js.map
323
+ //# sourceMappingURL=Shell-B09X7AWm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell-B09X7AWm.js","names":["Switch"],"sources":["../src/shell/useShellVisibility.js","../src/shell/Shell.jsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useShellStore, useSetInitialShellVisibility } from '../stores/shellStore';\n\n/**\n * Controls shell visibility based on layout flags, user presence, and route metadata.\n * Returns the effective hidden state that callers should use for rendering.\n */\nexport const useShellVisibility = ({ hideLayout, isPublicRoute, hasUser }) => {\n const { shellHidden, setShellHidden } = useShellStore();\n const shellHiddenBaselineRef = useRef();\n\n // Respect ?withoutShell on initial load\n useSetInitialShellVisibility();\n\n const syncShellHiddenWithRouteState = () => {\n const shouldForceHideShell = hideLayout || isPublicRoute || !hasUser;\n\n if (shouldForceHideShell) {\n if (shellHiddenBaselineRef.current === undefined) {\n shellHiddenBaselineRef.current = shellHidden;\n }\n if (!shellHidden) {\n setShellHidden(true);\n }\n } else if (shellHiddenBaselineRef.current !== undefined) {\n if (shellHidden !== shellHiddenBaselineRef.current) {\n setShellHidden(shellHiddenBaselineRef.current);\n } else {\n setShellHidden(false);\n }\n shellHiddenBaselineRef.current = undefined;\n } else if (shellHidden) {\n setShellHidden(false);\n }\n };\n\n useEffect(syncShellHiddenWithRouteState, [\n hideLayout,\n isPublicRoute,\n hasUser,\n setShellHidden,\n shellHidden\n ]);\n\n return shellHidden || hideLayout || isPublicRoute || !hasUser;\n};\n","import React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n Suspense\n} from 'react';\nimport { makeStyles, Drawer, useMediaQuery, useTheme } from '@material-ui/core';\nimport NavigationSidebar from './ui/NavigationSidebar';\nimport SiteHeader from './ui/SiteHeader';\nimport { UtilityBar } from '../UI/utilityDisplay/UtilityBar';\nimport { useTranslation } from 'react-i18next';\nimport FUIAppSwitcher from './ui/appSwitcher/FUIAppSwitcher';\nimport { getMenuItemsRecursively, findHomeRouteSlug } from '../utilities/menus/menuUtilities';\nimport clsx from 'clsx';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport PropTypes from 'prop-types';\nimport { useUser } from '../utilities/auth/useUser';\nimport { ActionProvider } from '../utilities/provider/ActionProvider';\nimport { PageActionWrapper } from '../actions/PageActionWrapper';\nimport { useInquiryStore } from '../stores/inquiryStore';\nimport { useShellStore } from '../stores/shellStore';\n\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './ui/useBuildEnvironment';\nimport { ChatBotProvider } from '../utilities/chatBot/ChatBotProvider';\nimport { UserProfileMenuWrapper } from '../shell/ui/profile';\nimport { useMenuContext } from '../utilities/menus/MenuProvider';\n//import { usePreloadPages } from '../hooks/usePreloadPages';\nimport { Switch } from 'react-router-dom';\nimport { UdpRoutes } from '../routes/UdpRoutes';\nimport { useRouteRegistry } from '../routes/routeRegistryStore';\nimport { useShellVisibility } from './useShellVisibility';\nimport { PageLoading } from '../UI';\n// load the page container module so its loaded when we need it\nvoid import('../page/PageContainer');\nconst MenuTypeEnums = {\n Left_Menu: 1,\n Application_Menu: 2,\n Builders_Menu: 3,\n Favorites_Menu: 4\n};\n\nconst useStyles = makeStyles(\n (theme) => ({\n '@global': {\n html: {\n minHeight: '100%'\n },\n 'html, body, #root': {\n display: 'flex',\n flexDirection: 'column'\n },\n 'body, #root': {\n flex: 1\n }\n },\n root: {\n flex: 1,\n minHeight: '100vh',\n display: 'grid',\n gridTemplateAreas: ['sidebar header', 'sidebar content']\n .map((line) => `\"${line}\"`)\n .join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n header: {\n gridArea: 'header'\n },\n sidebar: {\n gridArea: 'sidebar'\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${56 + appRibbonSpace}px)`,\n overflowY: 'auto'\n },\n paper: {\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n width: (props) => props.drawerWidth || 520\n }\n }\n }),\n { name: 'Layout' }\n);\n\n/**\n * Core site layout common to all pages\n */\nexport const Shell = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n ribbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const {\n children,\n userAvatar = <UserProfileMenuWrapper />,\n appContent,\n leftMenu,\n appSelectorMenus,\n siteName,\n className,\n navRoot,\n hideToggle,\n useMockData,\n mockMenus,\n user: passedInUser,\n unityUrl,\n expander,\n sidebarTitle,\n navMenuHoverOn = false,\n secondExtended,\n toggleOne,\n toggleTwo,\n closePrimary,\n closeSecondary,\n panelExpanded,\n panelExpandedSecondary,\n setPanelExpanded = false,\n setPanelExpandedSecondary = false,\n breadCrumbAltLabelList = [],\n currentLocation,\n utilitySidebarResizable,\n utilitySidebarToggleOverride,\n onUtilitySidebarToggleExpandClick,\n hideLayout = false,\n getAccessToken,\n switcherData,\n selectedItem,\n switcherWidth,\n languages,\n projectSwitcherColor,\n getWidget,\n isValidWidget,\n appSwitcherHeader,\n hamburgerMenuAccessRole,\n hideLanguageSwitcher = false,\n subheader,\n hideHelpCenter = false,\n leftMenuLoading = false\n } = props;\n const contextUser = useUser();\n const user = passedInUser ?? contextUser;\n const { setGetWidget, setIsValidWidget } = useShellStore();\n const routeConfig = useRouteRegistry(\n (state) => state.routeMap[state.currentPath]\n );\n const isPublicRoute = routeConfig?.isPublic !== false;\n const [appSwitcherMobile, setAppSwitcherMobile] = useState(false);\n const [appSwitcherDesktop, setAppSwitcherDesktop] = useState(false);\n const { i18n } = useTranslation();\n const inquiryTitle = useInquiryStore((state) => state.title);\n\n //usePreloadPages();\n\n const menuContext = useMenuContext?.();\n const resolvedLeftMenu = useMemo(\n () => (leftMenuLoading ? [] : leftMenu ?? menuContext?.leftMenu),\n [leftMenuLoading, leftMenu, menuContext]\n );\n const homeRoute = useMemo(\n () => (leftMenu?.length ? findHomeRouteSlug(leftMenu) : menuContext?.homeRoute),\n [leftMenu, menuContext]\n );\n const resolvedAppSelectorMenus =\n appSelectorMenus ?? menuContext?.appSelectorMenus;\n const providedLanguages = languages ?? menuContext?.languages;\n const resolvedLanguages = Array.isArray(providedLanguages)\n ? providedLanguages\n : [];\n useEffect(() => {\n setGetWidget(getWidget);\n return () => setGetWidget(null);\n }, [getWidget, setGetWidget]);\n\n useEffect(() => {\n setIsValidWidget(isValidWidget);\n return () => setIsValidWidget(null);\n }, [isValidWidget, setIsValidWidget]);\n\n const effectiveShellHidden = useShellVisibility({\n hideLayout,\n isPublicRoute,\n hasUser: Boolean(user?.id)\n });\n\n const getMenuItems = useCallback(\n (menuTypeId, menus) => {\n if (!menus && !useMockData) {\n return [];\n }\n const menusToFilter = useMockData ? mockMenus : menus;\n\n const foundMenus = menusToFilter.filter(\n (menu) => menu.menuTypeId === menuTypeId && menu.active\n );\n\n if (foundMenus) {\n return foundMenus.reduce((menuItemInstanceStructureViews, menu) => {\n return [\n ...menuItemInstanceStructureViews,\n ...menu.menuItemInstanceStructureViews\n ];\n }, []);\n } else {\n return [];\n }\n },\n [useMockData, mockMenus]\n );\n\n const menus = useMemo(() => {\n const menuItems = getMenuItems(1, resolvedLeftMenu);\n return getMenuItemsRecursively(menuItems, true, user);\n }, [getMenuItems, user, resolvedLeftMenu]);\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n const handleAppSwitcher = (type, bool) => {\n if (type === 'mobile') {\n setAppSwitcherMobile(bool);\n } else {\n setAppSwitcherDesktop(bool);\n }\n };\n\n const builderMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Builders_Menu,\n resolvedAppSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, resolvedAppSelectorMenus, getAccessToken]);\n\n const favoriteMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Favorites_Menu,\n resolvedAppSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, resolvedAppSelectorMenus, getAccessToken]);\n\n const appMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Application_Menu,\n resolvedAppSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, resolvedAppSelectorMenus, getAccessToken]);\n\n const hideAppMenu = useMemo(\n () =>\n !resolvedAppSelectorMenus ||\n (hamburgerMenuAccessRole &&\n !user?.roleNames.includes(hamburgerMenuAccessRole)),\n [user, resolvedAppSelectorMenus, hamburgerMenuAccessRole]\n );\n\n useEffect(() => {\n i18n.changeLanguage('en-US');\n }, [i18n]);\n\n return (\n <ChatBotProvider>\n <ActionProvider>\n <div className={classes.root}>\n {!effectiveShellHidden && (\n <SiteHeader\n className={classes.header}\n siteName={siteName}\n appContent={appContent}\n userAvatar={userAvatar}\n breadCrumbRoot={navRoot}\n setAppSwitcherOpen={(type, bool) => handleAppSwitcher(type, bool)}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n currentLocation={currentLocation}\n switcherData={switcherData}\n selectedItem={selectedItem}\n switcherWidth={switcherWidth}\n hideAppLaunch={hideAppMenu}\n languages={resolvedLanguages}\n hideLanguageSwitcher={hideLanguageSwitcher}\n backgroundColor={projectSwitcherColor}\n hideHelpCenter={hideHelpCenter}\n />\n )}\n\n <div style={{ display: 'flex' }} className={classes.sidebar}>\n {!effectiveShellHidden && mobile && (\n <NavigationSidebar\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\n leftMenuLoading={leftMenuLoading || menuContext?.leftMenuLoading}\n />\n )}\n {expander && (\n <div>\n <UtilitySideBar\n title={inquiryTitle || sidebarTitle}\n resizable={utilitySidebarResizable}\n utilitySidebarToggleOverride={utilitySidebarToggleOverride}\n onUtilitySidebarToggleExpandClick={\n onUtilitySidebarToggleExpandClick\n }\n sidebarHidden={effectiveShellHidden}\n {...props}\n />\n </div>\n )}\n </div>\n\n <div className={classes.content}>\n {!effectiveShellHidden && subheader}\n <UtilityBar\n className={clsx(className)}\n gutters={false}\n hideToggle={hideToggle}\n expander={expander}\n secondExtended={secondExtended}\n toggleOne={toggleOne}\n toggleTwo={toggleTwo}\n closePrimary={closePrimary}\n closeSecondary={closeSecondary}\n expanded={panelExpanded}\n expandedSecondary={panelExpandedSecondary}\n setExpanded={setPanelExpanded}\n setExpandedSecondary={setPanelExpandedSecondary}\n />\n\n <PageActionWrapper>\n <Suspense fallback={<PageLoading />}>\n <Switch>\n {children}\n <UdpRoutes homeRoute={homeRoute} />\n </Switch>\n </Suspense>\n </PageActionWrapper>\n </div>\n <Drawer\n variant='temporary'\n anchor='left'\n open={appSwitcherDesktop}\n classes={\n !mobile\n ? {}\n : !resolvedAppSelectorMenus\n ? {}\n : { paper: classes.paper }\n }\n onClose={() => handleAppSwitcher('desktop', false)}\n >\n {mobile && resolvedAppSelectorMenus && (\n <FUIAppSwitcher\n onClose={() => handleAppSwitcher('desktop', false)}\n favoriteMenu={favoriteMenu}\n builderMenu={builderMenu}\n appMenu={appMenu}\n unityUrl={unityUrl}\n user={user}\n header={\n appSwitcherHeader && typeof appSwitcherHeader === 'function'\n ? appSwitcherHeader(() => {\n handleAppSwitcher('desktop', false);\n })\n : appSwitcherHeader\n }\n />\n )}\n {(!mobile || (mobile && !resolvedAppSelectorMenus)) && (\n <NavigationSidebar\n toggle={false}\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\n leftMenuLoading={leftMenuLoading || menuContext?.leftMenuLoading}\n />\n )}\n </Drawer>\n\n <Drawer\n variant='temporary'\n anchor='right'\n open={appSwitcherMobile}\n classes={{ paper: classes.paper }}\n onClose={() => handleAppSwitcher('mobile', false)}\n >\n <FUIAppSwitcher\n onClose={() => handleAppSwitcher('mobile', false)}\n favoriteMenu={favoriteMenu}\n builderMenu={builderMenu}\n appMenu={appMenu}\n unityUrl={unityUrl}\n user={user}\n header={\n appSwitcherHeader && typeof appSwitcherHeader === 'function'\n ? appSwitcherHeader(() => {\n handleAppSwitcher('mobile', false);\n })\n : appSwitcherHeader\n }\n />\n </Drawer>\n </div>\n </ActionProvider>\n </ChatBotProvider>\n );\n};\n\nShell.propTypes = {\n /**\n * The newest propTypes have been added but older ones are missing @todo: add missing propTypes for Shell.\n */\n\n /**\n * The array used to map for label and functions to list items.\n */\n switcherData: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Provides a method set the selector width. Default is 100.\n */\n switcherWidth: PropTypes.number,\n /**\n * Children nodes\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]).isRequired,\n\n /**\n * Name of site\n */\n siteName: PropTypes.string,\n\n /**\n * Component to render for the user Avatar\n */\n userAvatar: PropTypes.element,\n\n appContent: PropTypes.element,\n\n leftMenu: PropTypes.array,\n\n appSelectorMenus: PropTypes.array,\n\n className: PropTypes.object,\n\n navRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node\n ]),\n\n /**\n * Should the shell use mock data\n */\n useMockData: PropTypes.bool,\n\n mockMenus: PropTypes.array,\n\n unityUrl: PropTypes.string,\n\n expander: PropTypes.bool,\n\n sidebarTitle: PropTypes.string,\n\n navMenuHoverOn: PropTypes.bool,\n\n toggleOne: PropTypes.bool,\n\n toggleTwo: PropTypes.bool,\n\n closePrimary: PropTypes.bool,\n\n closeSecondary: PropTypes.bool,\n\n panelExpanded: PropTypes.bool,\n\n panelExpandedSecondary: PropTypes.bool,\n\n setPanelExpanded: PropTypes.func,\n\n setPanelExpandedSecondary: PropTypes.func,\n\n breadCrumbAltLabelList: PropTypes.array,\n\n currentLocation: PropTypes.object,\n\n utilitySidebarResizable: PropTypes.bool,\n\n utilitySidebarToggleOverride: PropTypes.bool,\n\n onUtilitySidebarToggleExpandClick: PropTypes.func,\n\n hideLayout: PropTypes.bool,\n\n languages: PropTypes.arrayOf(PropTypes.object),\n\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n projectSwitcherColor: PropTypes.string,\n getWidget: PropTypes.func,\n isValidWidget: PropTypes.func,\n currentTenant: PropTypes.object,\n hamburgerMenuAccessRole: PropTypes.string\n};\n"],"mappings":"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"}
@@ -12,6 +12,7 @@ import { n as useBuildEnvironment } from "./useBuildEnvironment-DsBqfGwR.js";
12
12
  import { n as SidebarCollapseButton } from "./UtilitySideBar-VhHVhVUj.js";
13
13
  import { t as useTenant } from "./useTenant-DryxTalu.js";
14
14
  import { t as BreadCrumbMenu } from "./BreadCrumbMenu-DrvW8bI4.js";
15
+ import { MenuLoader } from "./UI/feedback/index.js";
15
16
  import { AppMenu } from "./UI/navigation/menus/index.js";
16
17
  import React, { Suspense, lazy, useCallback, useEffect, useRef, useState } from "react";
17
18
  import { AppBar, ClickAwayListener, Drawer, Grow, IconButton, List, ListItem, ListItemIcon, ListItemText, MenuItem, MenuList, Paper, Popover, Popper, Toolbar, Typography, lighten, makeStyles, useMediaQuery, useTheme } from "@material-ui/core";
@@ -85,7 +86,7 @@ const useStyles$6 = makeStyles((theme) => ({
85
86
  }), { name: "NavigationSidebar" });
86
87
  const NavigationSidebar = (props) => {
87
88
  const classes = useStyles$6({ appRibbonSpace: useBuildEnvironment() ? 25 : 0 });
88
- const { data, toggleExpandClick, navMenuHoverOn, user, toggle = true, useGlobalState = false, ...other } = props;
89
+ const { data, toggleExpandClick, navMenuHoverOn, user, toggle = true, useGlobalState = false, leftMenuLoading = false, ...other } = props;
89
90
  const [expanded, setExpanded] = useState(true);
90
91
  const { navigationExpanded, setNavigationExpanded } = useShellStore();
91
92
  let navExpanded = useGlobalState ? navigationExpanded : expanded;
@@ -122,7 +123,7 @@ const NavigationSidebar = (props) => {
122
123
  udprecordid: "udpRecord-NavigationSidebar",
123
124
  expanded: navExpanded,
124
125
  onClick: handleToggleClick
125
- }), data && /* @__PURE__ */ React.createElement(AppMenu, {
126
+ }), leftMenuLoading || !data ? /* @__PURE__ */ React.createElement(MenuLoader, { numOfPlaceholderNodes: 6 }) : /* @__PURE__ */ React.createElement(AppMenu, {
126
127
  menuItems: data,
127
128
  sidebarExpanded: navExpanded,
128
129
  user
@@ -653,4 +654,4 @@ SiteHeader.propTypes = {
653
654
  //#endregion
654
655
  export { LanguageSwitcher as a, NavigationSidebar as c, HelpCenter as i, SiteHeaderSpacer as n, ShellDropdown as o, EnvironmentRibbon as r, AmbientProjectSwitcher as s, SiteHeader as t };
655
656
 
656
- //# sourceMappingURL=SiteHeader-BhJJmO1u.js.map
657
+ //# sourceMappingURL=SiteHeader-vNgnheR6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteHeader-vNgnheR6.js","names":["useStyles","useStyles","useStyles","useStyles","useStyles","useStyles","HelpOutlineIcon","CloseIcon","ChatIcon","useStyles","Typography"],"sources":["../src/shell/ui/MiniCollapsibleSidebar.jsx","../src/shell/ui/NavigationSidebar.jsx","../src/shell/ui/AmbientProjectSwitcher.jsx","../src/shell/ui/ShellDropdown.jsx","../src/shell/ui/LanguageSwitcher.jsx","../src/shell/ui/HelpCenter.jsx","../src/shell/ui/EnvironmentRibbon.tsx","../src/shell/ui/SiteHeader.jsx"],"sourcesContent":["import { Drawer, makeStyles } from '@material-ui/core'\nimport clsx from 'clsx'\nimport React from 'react'\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n width: theme?.dimensions?.drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap'\n },\n expanded: {\n '&, & > $paper': {\n // width: theme.dimensions.drawerWidth,\n width: theme.spacing(32),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n })\n }\n },\n collapsed: {\n '&, & > $paper': {\n overflowX: 'hidden',\n width: theme.spacing(7) + 1,\n transition: theme?.transitions?.create('width', {\n easing: theme?.transitions?.easing?.sharp,\n duration: theme?.transitions?.duration?.leavingScreen\n })\n }\n },\n paper: {}\n }),\n { name: 'MiniCollapsibleSidebar' }\n)\n\nconst MiniCollapsibleSidebar = (props) => {\n const classes = useStyles(props)\n const { expanded = true, className, children, ...other } = props\n\n return (\n <Drawer\n variant='permanent'\n open\n {...other}\n className={clsx(\n className,\n classes.root,\n expanded ? classes.expanded : classes.collapsed\n )}\n classes={{\n root: classes.root,\n paper: classes.paper\n }}\n >\n {children}\n </Drawer>\n )\n}\n\nexport default MiniCollapsibleSidebar\n","import React, { useState, useCallback } from 'react';\nimport { makeStyles, Toolbar, lighten } from '@material-ui/core';\nimport MiniCollapsibleSidebar from './MiniCollapsibleSidebar';\nimport { SidebarCollapseButton } from './SidebarCollapseButton';\nimport { AppMenu } from '../../UI/navigation/menus/AppMenu';\nimport { useShellStore } from '../../stores/shellStore';\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './useBuildEnvironment';\nimport { MenuLoader } from '../../UI/feedback/MenuLoader';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n marginTop: 400\n },\n paper: {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? ''\n : lighten(theme?.palette?.primary?.main, 0.9),\n overflowX: 'hidden'\n },\n list: {\n flex: 1,\n paddingTop: 0,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n spacer: {\n flex: 1,\n minHeight: theme.spacing(2)\n },\n footer: {},\n toolbar: {\n padding: 0,\n minHeight: ({appRibbonSpace}) => theme.spacing(6) + appRibbonSpace\n }\n }),\n { name: 'NavigationSidebar' }\n);\n\nconst NavigationSidebar = (props) => {\n const buildEnv = useBuildEnvironment()\n const classes = useStyles({appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0});\n const {\n data,\n toggleExpandClick,\n navMenuHoverOn,\n user,\n toggle = true,\n useGlobalState = false,\n leftMenuLoading = false,\n ...other\n } = props;\n const [expanded, setExpanded] = useState(true);\n const { navigationExpanded, setNavigationExpanded } = useShellStore();\n\n let navExpanded = useGlobalState ? navigationExpanded : expanded;\n\n const [hoverExpand, setHoverExpand] = useState(false);\n\n // ** Remove for now to deal with programmatic toggle **\n // const wide = useMediaQuery(theme.breakpoints.up('sm'))\n // useEffect(() => {\n // // Set the bar to be expanded/collapsed depending on the breakpoint size\n // // This works on load and also when resizing crosses the breakpoint\n // setExpanded(wide)\n // }, [wide])\n\n const handleHoverToggle = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(true);\n }\n };\n const handleHoverLeave = () => {\n if (!navExpanded && navMenuHoverOn) {\n setHoverExpand(false);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (useGlobalState) {\n setNavigationExpanded(!navigationExpanded);\n } else {\n setExpanded((expanded) => !expanded);\n }\n }, [setNavigationExpanded, useGlobalState, navigationExpanded]);\n\n return (\n <MiniCollapsibleSidebar\n classes={{ root: classes.root, paper: classes.paper }}\n expanded={navExpanded || hoverExpand}\n onMouseEnter={handleHoverToggle}\n onMouseLeave={handleHoverLeave}\n PaperProps={{ elevation: 0, variant: 'outlined' }}\n {...other}\n >\n <Toolbar className={classes.toolbar} />\n\n {toggle && (\n <SidebarCollapseButton\n id='udpRecord-NavigationSidebar'\n udprecordid='udpRecord-NavigationSidebar'\n expanded={navExpanded}\n onClick={handleToggleClick}\n />\n )}\n {leftMenuLoading || !data ?\n <MenuLoader numOfPlaceholderNodes={6}/>\n :\n <AppMenu menuItems={data} sidebarExpanded={navExpanded} user={user} />\n }\n </MiniCollapsibleSidebar>\n );\n};\n\nexport default NavigationSidebar;\n","import React, { useState } from 'react'\nimport { makeStyles, Popover, Typography, useTheme } from '@material-ui/core'\nimport { ChevronDownIcon } from '@fluentui/react-icons'\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton'\nimport {AmbientPopoverMenuItem} from '../../UI/inputs/buttons/AmbientPopoverMenuItem'\nimport PropTypes from 'prop-types'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n // border: '1px solid white',\n background: props => props.backgroundColor ? props.backgroundColor : theme.palette.secondary.main,\n borderRadius: 50,\n padding: 6,\n paddingLeft:16\n },\n popoverRoot: {},\n icon: {\n color: theme.palette.primary.main,\n borderRadius: 50\n }, \n label: {\n display: 'block',\n width: props => props.width ? props.width : 100,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }, \n listWrapper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const AmbientProjectSwitcher = (props) => {\n \n const classes = useStyles(props)\n\n const theme = useTheme()\n\n const { data, selectedItem } = props\n\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'open' : undefined\n\n return (\n <div className={classes.root}>\n <div className={classes.listWrapper}>\n <Typography className={classes.label} > \n {selectedItem} \n </Typography>\n </div>\n \n <FluentIconButton\n className={classes.icon}\n icon={ChevronDownIcon}\n onClick={handleClick}\n style={{background: theme.palette.common.white}}\n />\n\n <Popover\n classes={{ root: classes.popoverRoot }}\n square\n elevation={6}\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div >\n <div>\n {data && data.map((item) => {\n return (\n <AmbientPopoverMenuItem\n label={item.label}\n component={ChevronDownIcon}\n click={()=>item.click(item.label)}\n />\n )\n })}\n </div>\n </div>\n </Popover>\n </div>\n )\n}\n\nAmbientProjectSwitcher.propTypes = {\n /**\n * The array used to map for label and functions to list items. (array).\n */\n data: PropTypes.array,\n /**\n * The active label displayed.\n */\n selectedItem: PropTypes.string,\n /**\n * Change the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex', alignItems: 'center' },\n field: {\n minWidth: 300,\n maxWidth: 400,\n width: '100%',\n alignSelf: 'left',\n color: '#fff',\n '& .MuiOutlinedInput-root': {\n color: '#fff',\n backgroundColor: 'transparent',\n '& fieldset': {\n borderColor: 'rgba(255,255,255,0.6)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(255,255,255,0.85)',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n '& input': {\n paddingTop: 4,\n paddingBottom: 4,\n height: 20,\n boxSizing: 'border-box',\n color: '#fff',\n },\n '& .MuiAutocomplete-input': {\n color: '#fff',\n },\n },\n '& .MuiInputBase-root': {\n color: '#fff',\n },\n '& .MuiAutocomplete-popupIndicator, & .MuiAutocomplete-clearIndicator': {\n color: '#fff',\n opacity: 0.95,\n },\n '& input::placeholder': {\n color: 'rgba(255,255,255,0.7)',\n },\n },\n}));\n\nfunction getDisplayName(item) {\n if (!item && item !== 0) return '';\n if (typeof item === 'string' || typeof item === 'number') return String(item);\n if (typeof item === 'object') {\n const name = item.name ?? item.label ?? item.title ?? item.displayName;\n return name !== undefined && name !== null ? String(name) : '';\n }\n return String(item);\n}\n\nexport const ShellDropdown = (props) => {\n const classes = useStyles();\n const {\n componentName = 'Item',\n data = [],\n value = null,\n onChange,\n optionLabelDisplayFunction = getDisplayName,\n placeholder,\n className,\n classProps,\n ...other\n } = props;\n\n const placeholderText = placeholder ?? (!value ? `All ${componentName}s` : undefined);\n\n return (\n <div className={`${classes.root} ${className || ''}`}>\n <FluentTextFieldAutoComplete\n className={classes.field}\n classProps={{ autocompleteRoot: classes.field, ...classProps }}\n options={data}\n optionLabelDisplayFunction={optionLabelDisplayFunction}\n onChange={onChange}\n value={value}\n placeholder={placeholderText}\n {...other}\n />\n </div>\n );\n};\n\nShellDropdown.propTypes = {\n componentName: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n onChange: PropTypes.func,\n optionLabelDisplayFunction: PropTypes.func,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n classProps: PropTypes.object,\n};\n\nexport default ShellDropdown;\n","import React, { useState, useRef, useEffect } from 'react'\nimport {\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuList,\n makeStyles,\n IconButton,\n MenuItem\n} from '@material-ui/core'\nimport { TranslateIcon } from '@fluentui/react-icons'\nimport i18n from 'i18next';\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n paper: {\n marginRight: theme.spacing(2)\n }\n}))\n\nexport const LanguageSwitcher = (props) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const { languages } = props\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n prevOpen.current = open\n }, [open])\n\n const handleLanguageChange = (event) => {\n const currentLanguage = event;\n //setLangKey(currentLanguage.languageCode);\n languageSelector(currentLanguage.languageCode);\n };\n\n const languageSelector = (defaultLang) => {\n i18n.changeLanguage(defaultLang);\n }\n\n if (languages != null) {\n return (\n <div id='udpRecord-LanguageSwitcher' className={classes.root}>\n <div>\n <IconButton\n id='udpRecord-LanguageSwitcher-IconButton'\n udprecordid='udpRecord-LanguageSwitcher-IconButton'\n ref={anchorRef}\n aria-controls={open ? 'menu-list-grow' : undefined}\n aria-haspopup='true'\n onClick={handleToggle}\n >\n <TranslateIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popper\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin:\n placement === 'bottom' ? 'center top' : 'center bottom'\n }}\n >\n <Paper>\n <ClickAwayListener \n id='udpRecord-LanguageSwitcher-ClickAway' \n udprecordid='udpRecord-LanguageSwitcher-ClickAway' \n onClickAway={handleClose}\n >\n <MenuList\n autoFocusItem={open}\n id='menu-list-grow'\n udprecordid='udpRecord-LanguageSwitcher-MenuList'\n onKeyDown={handleListKeyDown}\n onClick={() => setOpen(false)}\n >\n {languages.map((data) =>\n <MenuItem\n id={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n udprecordid={'udpRecord-LanguageSwitcher-MenuItem-'+data.languageLabel}\n onClick={() => handleLanguageChange(data)}\n value={data.languageCode}\n key={data.languageId}\n >\n {data.languageLabel}\n </MenuItem>)}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </div>\n </div>\n )\n } else {\n return (\n null\n )\n }\n\n}","import React, { useState, useCallback, useEffect, useRef, Suspense, lazy } from 'react';\nimport {\n makeStyles,\n IconButton,\n Popover,\n Typography,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogTitle,\n DialogContent\n} from '@material-ui/core';\nimport { HelpOutline as HelpOutlineIcon, Chat as ChatIcon, Close as CloseIcon } from '@material-ui/icons';\nimport { useActions } from '../../hooks/useActions';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../../src/utilities/auth/useUser';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { ConfigService } from '../../configService';\n\n// Lazy-load side sheets so they aren't imported until needed. Keep\n// module-level lazy declarations so the imports are deduped and cached.\nconst UserFormSideSheet = lazy(() => import('./user/UserFormSideSheet'));\nconst SupportCaseSideSheet = lazy(() => import('../../UI/support/SupportCaseSideSheet'));\n\n// Preload helpers (return the dynamic import promise). Calling these\n// will start fetching the chunk in the background and populate the\n// module cache so React.lazy resolves quickly later.\nconst preloadUserFormSideSheet = () => import('./user/UserFormSideSheet');\nconst preloadSupportCaseSideSheet = () => import('../../UI/support/SupportCaseSideSheet');\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n popover: {\n padding: theme.spacing(2),\n maxWidth: 300\n },\n icon: {\n minWidth: 40\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500]\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n dialog: {\n minWidth: '80vw',\n minHeight: '80vh'\n }\n}));\n\nexport const HelpCenter = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { triggerAction } = useActions();\n const user = useUser();\n const productId = Number(ConfigService.config.UNITY_PRODUCT_ID);\n\n const udpaiAPI = ConfigService.config.UDPAI_API_BASE;\n const udpaisearch = ConfigService.config.AI_SEARCH_URL;\n const udpaisearchkey = ConfigService.config.AI_SEARCH_KEY;\n const udpaisearchindex = ConfigService.config.AI_SEARCH_INDEX_NAME;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [isSupportCaseSideSheetOpen, setSupportCaseSideSheetOpen] =\n useState(false);\n const [isUserFormOpen, setUserFormOpen] = useState(false);\n const [supportCaseHealthOk, setSupportCaseHealthOk] = useState(false);\n\n const hasPreloadedRef = useRef(false);\n\n const handleOpenPopover = (event) => {\n setAnchorEl(event.currentTarget);\n\n // Preload both side sheets in the background the first time the popover opens.\n // We assume that if the user opened the popover, they might open one of the sheets.\n if (!hasPreloadedRef.current) {\n hasPreloadedRef.current = true;\n // Start background fetches but don't await them.\n try {\n preloadUserFormSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n try {\n preloadSupportCaseSideSheet();\n } catch (e) {\n // ignore preload errors\n }\n }\n };\n\n const handleClosePopover = () => {\n setAnchorEl(null);\n };\n\n const handleLaunchAction = useCallback(() => {\n setAnchorEl(null);\n triggerAction('CEE75B36-01B0-4FAC-9AE7-C1AC8A2A194F');\n }, [triggerAction]);\n\n const handleOpenSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(true);\n setAnchorEl(null);\n };\n\n const handleCloseSupportCaseSideSheet = () => {\n setSupportCaseSideSheetOpen(false);\n };\n\n const handleOpenUserForm = () => {\n setUserFormOpen(true); // Open UserForm modal\n setAnchorEl(null);\n };\n\n const handleCloseUserForm = () => {\n setUserFormOpen(false); // Close UserForm modal\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'help-center-popover' : undefined;\n\n // Conditions for rendering buttons\n // 2 assets, 41 sandbox, 51 assets, 53 mm, 68 timesheets\n const shouldShowAddUsers = (productId) => {\n const isValidProduct = [41, 53].includes(productId);\n const isSecurityApiConfigured = !!ConfigService.securityV1ApiUrl;\n const isValidUser =\n user.can.CAN_MANAGE_ROLES_USERS &&\n user.can.CAN_MANAGE_USERS &&\n user.can.CAN_VIEW_USERS;\n return isValidProduct && isSecurityApiConfigured && isValidUser;\n };\n\n const getSupportCaseStatus = useCallback(\n async () =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `udpunitysupport/healthCheck`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const getSupportCaseStatusUnity = useCallback(\n async () =>\n apiMutate(\n ConfigService.supportV1ApiUrl,\n `ServiceHealth/Support`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n const showAddUsers = shouldShowAddUsers(productId);\n const shouldShowChatAssistant =\n [2, 41, 51, 68].includes(productId) &&\n udpaiAPI &&\n udpaisearch &&\n udpaisearchkey &&\n udpaisearchindex;\n const shouldShowSupportTicket = productId && supportCaseHealthOk;\n\n useEffect(() => {\n const supportCaseStatus = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === \"1\") {\n const response = await getSupportCaseStatusUnity();\n setSupportCaseHealthOk(response?.status === 200);\n } else {\n const response = await getSupportCaseStatus();\n setSupportCaseHealthOk(response?.status === 200);\n }\n } catch (error) {\n setSupportCaseHealthOk(false);\n }\n };\n supportCaseStatus();\n }, [getSupportCaseStatus, getSupportCaseStatusUnity]);\n\n // Hide the entire help center if neither button should be rendered\n if (!showAddUsers && !shouldShowChatAssistant && !shouldShowSupportTicket) {\n return <div id='udpRecord-HelpCenter' />;\n }\n\n return (\n <div id='udpRecord-HelpCenter' className={classes.root}>\n <IconButton\n id='udpRecord-HelpCenter-IconButton'\n aria-controls={id}\n aria-haspopup='true'\n onClick={handleOpenPopover}\n >\n <HelpOutlineIcon style={{ color: 'white', opacity: 0.8 }} />\n </IconButton>\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClosePopover}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center'\n }}\n >\n <div className={classes.popover}>\n <div className={classes.header}>\n <Typography variant='h6'>{t('Help')}</Typography>\n <IconButton\n size='small'\n className={classes.closeButton}\n onClick={handleClosePopover}\n >\n <CloseIcon />\n </IconButton>\n </div>\n <List component='nav' aria-label='Help options'>\n {/* First Button: Add User */}\n {showAddUsers && (\n <ListItem\n button\n id='udpRecord-HelpCenter-AddUsers'\n onClick={handleOpenUserForm}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Add User')} />\n </ListItem>\n )}\n\n {/* Second Button: Chat Assistant */}\n {shouldShowChatAssistant && (\n <ListItem\n button\n id='udpRecord-HelpCenter-ChatAssistant'\n onClick={handleLaunchAction}\n >\n <ListItemIcon className={classes.icon}>\n <ChatIcon />\n </ListItemIcon>\n <ListItemText primary={t('Chat Assistant')} />\n </ListItem>\n )}\n\n {/* Third Button: Submit Support Ticket */}\n {shouldShowSupportTicket && (\n <ListItem\n button\n id='udpRecord-HelpCenter-SupportTicket'\n onClick={handleOpenSupportCaseSideSheet}\n >\n <ListItemIcon className={classes.icon}>\n <HelpOutlineIcon />\n </ListItemIcon>\n <ListItemText primary={t('Submit Support Ticket')} />\n </ListItem>\n )}\n </List>\n </div>\n </Popover>\n\n {/* Modal for UserForm (lazy-loaded) */}\n <Suspense fallback={null}>\n <UserFormSideSheet open={isUserFormOpen} onClose={handleCloseUserForm} />\n </Suspense>\n\n {/* Side Sheet for Support Ticket (lazy-loaded) */}\n <Suspense fallback={null}>\n <SupportCaseSideSheet\n open={isSupportCaseSideSheetOpen}\n onClose={handleCloseSupportCaseSideSheet}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n onSubmit={(values) => {\n console.log('Form submitted', values);\n }}\n initialValues={{}}\n />\n </Suspense>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { APP_RIBBON_SPACE, useBuildEnvironment } from './useBuildEnvironment';\n\n\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n","import React from 'react';\nimport {\n AppBar,\n makeStyles,\n Toolbar,\n Typography,\n IconButton,\n useMediaQuery,\n useTheme\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { WaffleIcon, CollapseMenuIcon } from '@fluentui/react-icons';\nimport { BreadCrumbMenu } from '../../UI/inputs/link/BreadCrumbMenu';\nimport { AmbientProjectSwitcher } from './AmbientProjectSwitcher';\nimport ShellDropdown from './ShellDropdown';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { HelpCenter } from './HelpCenter';\nimport { SiteHeaderRightComponentTarget } from './SiteHeaderRightComponent';\nimport PropTypes from 'prop-types';\nimport {\n useBuildEnvironment,\n APP_RIBBON_SPACE\n} from './useBuildEnvironment';\nimport { EnvironmentRibbon } from './EnvironmentRibbon';\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n color: theme?.palette?.appBar?.contrastText,\n zIndex: theme?.zIndex?.drawer + 1\n // Assume the drawer is always expanded unless the screen is too small for it and inset the left to account for it\n },\n spacer: {\n flex: 1\n },\n headerSpacer: {\n padding: 0,\n minHeight: ({ appRibbonSpace }) => 56 + appRibbonSpace\n },\n toolbar: {\n padding: 0,\n minHeight: theme.spacing(6)\n },\n appLaunch: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n avatar: {\n width: 25,\n height: 25,\n backgroundColor: theme?.palette?.secondary?.main\n },\n search: {\n marginLeft: theme.spacing(2),\n marginTop: theme.spacing(-1.35)\n },\n children: {\n flex: 1,\n minWidth: 5\n }\n }),\n { name: 'SiteHeader' }\n);\n\n/**\n * A spacing component with the same height as the SiteHeader\n */\nexport const SiteHeaderSpacer = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const { className } = props;\n\n return <div className={clsx(className, classes.headerSpacer)} />;\n};\n\n/**\n * Site header including app bar\n */\nconst SiteHeader = (props) => {\n const classes = useStyles(props);\n const {\n className,\n returnTo,\n appContent,\n userAvatar,\n siteName,\n breadCrumbRoot = 'home',\n color = 'primary',\n setAppSwitcherOpen,\n breadCrumbAltLabelList,\n currentLocation,\n switcherData,\n selectedItem,\n switcherWidth,\n hideAppLaunch,\n languages,\n backgroundColor,\n hideLanguageSwitcher =false,\n hideHelpCenter = false,\n ...other\n } = props;\n\n const theme = useTheme();\n const mobile = useMediaQuery(theme.breakpoints.up('sm'));\n\n return (\n <>\n <AppBar\n elevation={0}\n position='fixed'\n color={color}\n {...other}\n className={className}\n classes={{ root: classes.root }}\n >\n <EnvironmentRibbon />\n <Toolbar className={classes.toolbar}>\n {mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n {!mobile && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('desktop', true)}\n >\n <CollapseMenuIcon />\n </IconButton>\n )}\n\n <Typography\n component='h1'\n variant='h6'\n style={{ marginLeft: hideAppLaunch && 16 }}\n >\n {siteName}\n </Typography>\n\n {mobile && (\n <div style={{ marginLeft: 70 }}>\n {React.isValidElement(breadCrumbRoot) ? (\n breadCrumbRoot\n ) : breadCrumbRoot && typeof breadCrumbRoot === 'object' && (breadCrumbRoot.data || breadCrumbRoot.componentName) ? (\n <ShellDropdown\n componentName={breadCrumbRoot.componentName}\n data={breadCrumbRoot.data}\n value={breadCrumbRoot.value}\n onChange={breadCrumbRoot.onChange}\n optionLabelDisplayFunction={breadCrumbRoot.optionLabelDisplayFunction}\n placeholder={breadCrumbRoot.placeholder}\n className={breadCrumbRoot.className}\n classProps={breadCrumbRoot.classProps}\n />\n ) : (\n <BreadCrumbMenu\n color='primary'\n root={breadCrumbRoot}\n breadCrumbAltLabelList={breadCrumbAltLabelList}\n />\n )}\n </div>\n )}\n <div className={classes.children}>{appContent}</div>\n {switcherData && (\n <AmbientProjectSwitcher\n data={switcherData}\n selectedItem={selectedItem}\n width={switcherWidth}\n backgroundColor={backgroundColor}\n />\n )}\n\n {!mobile && !hideAppLaunch && (\n <IconButton\n className={classes.appLaunch}\n aria-label='App Launcher Menu'\n onClick={() => setAppSwitcherOpen('mobile', true)}\n >\n <WaffleIcon />\n </IconButton>\n )}\n <div className={classes.additionalRightComponent}>\n <SiteHeaderRightComponentTarget />\n </div>\n {!hideHelpCenter && <HelpCenter />}\n {!hideLanguageSwitcher && <LanguageSwitcher languages={languages} />}\n <div>{userAvatar}</div>\n </Toolbar>\n </AppBar>\n <SiteHeaderSpacer className={className} />\n </>\n );\n};\n\nexport default SiteHeader;\n\nSiteHeader.propTypes = {\n breadCrumbRoot: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.object\n ]),\n /**\n * Passes the background color on the project switcher (default: theme secondary)\n */\n backgroundColor: PropTypes.string\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,cAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,YAAY;EAC1B,YAAY;EACZ,YAAY;EACb;CACD,UAAU,EACR,iBAAiB;EAEf,OAAO,MAAM,QAAQ,GAAG;EACxB,YAAY,MAAM,YAAY,OAAO,SAAS;GAC5C,QAAQ,MAAM,YAAY,OAAO;GACjC,UAAU,MAAM,YAAY,SAAS;GACtC,CAAC;EACH,EACF;CACD,WAAW,EACT,iBAAiB;EACf,WAAW;EACX,OAAO,MAAM,QAAQ,EAAE,GAAG;EAC1B,YAAY,OAAO,aAAa,OAAO,SAAS;GAC9C,QAAQ,OAAO,aAAa,QAAQ;GACpC,UAAU,OAAO,aAAa,UAAU;GACzC,CAAC;EACH,EACF;CACD,OAAO,EAAE;CACV,GACD,EAAE,MAAM,0BAA0B,CACnC;AAED,MAAM,0BAA0B,UAAU;CACxC,MAAM,UAAUA,YAAU,MAAM;CAChC,MAAM,EAAE,WAAW,MAAM,WAAW,UAAU,GAAG,UAAU;AAE3D,QACE,sBAAA,cAAC,QAAD;EACE,SAAQ;EACR,MAAA;EACA,GAAI;EACJ,WAAW,KACT,WACA,QAAQ,MACR,WAAW,QAAQ,WAAW,QAAQ,UACvC;EACD,SAAS;GACP,MAAM,QAAQ;GACd,OAAO,QAAQ;GAChB;EAGM,EADN,SACM;;;;AC/Cb,MAAMC,cAAY,YACf,WAAW;CACV,MAAM,EACJ,WAAW,KACZ;CACD,OAAO;EACL,iBACE,OAAO,cAAc,EAAE,SAAS,SAC5B,KACA,QAAQ,OAAO,SAAS,SAAS,MAAM,GAAI;EACjD,WAAW;EACZ;CACD,MAAM;EACJ,MAAM;EACN,YAAY;EACZ,WAAW;EACX,yBAAyB;EAC1B;CACD,QAAQ;EACN,MAAM;EACN,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,QAAQ,EAAE;CACV,SAAS;EACP,SAAS;EACT,YAAY,EAAC,qBAAoB,MAAM,QAAQ,EAAE,GAAG;EACrD;CACF,GACD,EAAE,MAAM,qBAAqB,CAC9B;AAED,MAAM,qBAAqB,UAAU;CAEnC,MAAM,UAAUA,YAAU,EAAC,gBADV,qBAAqB,GAAA,KACmC,GAAE,CAAC;CAC5E,MAAM,EACJ,MACA,mBACA,gBACA,MACA,SAAS,MACT,iBAAiB,OACjB,kBAAkB,OAClB,GAAG,UACD;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,EAAE,oBAAoB,0BAA0B,eAAe;CAErE,IAAI,cAAc,iBAAiB,qBAAqB;CAExD,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAUrD,MAAM,0BAA0B;AAC9B,MAAI,CAAC,eAAe,eAClB,gBAAe,KAAK;;CAGxB,MAAM,yBAAyB;AAC7B,MAAI,CAAC,eAAe,eAClB,gBAAe,MAAM;;CAIzB,MAAM,oBAAoB,kBAAkB;AAC1C,MAAI,eACF,uBAAsB,CAAC,mBAAmB;MAE1C,cAAa,aAAa,CAAC,SAAS;IAErC;EAAC;EAAuB;EAAgB;EAAmB,CAAC;AAE/D,QACE,sBAAA,cAAC,wBAAD;EACE,SAAS;GAAE,MAAM,QAAQ;GAAM,OAAO,QAAQ;GAAO;EACrD,UAAU,eAAe;EACzB,cAAc;EACd,cAAc;EACd,YAAY;GAAE,WAAW;GAAG,SAAS;GAAY;EACjD,GAAI;EAiBmB,EAfvB,sBAAA,cAAC,SAAD,EAAS,WAAW,QAAQ,SAAW,CAAA,EAEtC,UACC,sBAAA,cAAC,uBAAD;EACE,IAAG;EACH,aAAY;EACZ,UAAU;EACV,SAAS;EACT,CAAA,EAEH,mBAAmB,CAAC,OACjB,sBAAA,cAAC,YAAD,EAAY,uBAAuB,GAAI,CAAA,GAE3C,sBAAA,cAAC,SAAD;EAAS,WAAW;EAAM,iBAAiB;EAAmB;EAAQ,CAAA,CAE/C;;;;ACxG7B,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EAET,aAAY,UAAS,MAAM,kBAAkB,MAAM,kBAAkB,MAAM,QAAQ,UAAU;EAC7F,cAAc;EACd,SAAS;EACT,aAAY;EACb;CACD,aAAa,EAAE;CACf,MAAM;EACJ,OAAO,MAAM,QAAQ,QAAQ;EAC7B,cAAc;EACf;CACD,OAAO;EACL,SAAS;EACT,QAAO,UAAS,MAAM,QAAQ,MAAM,QAAQ;EAC5C,UAAU;EACV,YAAY;EACZ,cAAc;EACf;CACD,aAAa,EACX,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,0BAA0B,UAAU;CAE/C,MAAM,UAAUA,YAAU,MAAM;CAEhC,MAAM,QAAQ,UAAU;CAExB,MAAM,EAAE,MAAM,iBAAiB;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAE9C,MAAM,eAAe,UAAU;AAC7B,cAAY,MAAM,cAAc;;CAGlC,MAAM,oBAAoB;AACxB,cAAY,KAAK;;CAGnB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,SAAS,KAAA;AAE3B,QACE,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,MA6ClB,EA5CJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,aAIlB,EAHJ,sBAAA,cAAC,YAAD,EAAY,WAAW,QAAQ,OAElB,EADV,aACU,CACT,EAEN,sBAAA,cAAC,kBAAD;EACE,WAAW,QAAQ;EACnB,MAAM;EACN,SAAS;EACT,OAAO,EAAC,YAAY,MAAM,QAAQ,OAAO,OAAM;EAC/C,CAAA,EAEF,sBAAA,cAAC,SAAD;EACE,SAAS,EAAE,MAAM,QAAQ,aAAa;EACtC,QAAA;EACA,WAAW;EACP;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;EAeO,EAbR,sBAAA,cAAC,OAAA,MACC,sBAAA,cAAC,OAAA,MACE,QAAQ,KAAK,KAAK,SAAS;AAC1B,SACE,sBAAA,cAAC,wBAAD;GACE,OAAO,KAAK;GACZ,WAAW;GACX,aAAW,KAAK,MAAM,KAAK,MAAM;GACjC,CAAA;GAEJ,CACE,CACF,CACE,CACN;;AAIV,uBAAuB,YAAY;CAIjC,MAAM,UAAU;CAIhB,cAAc,UAAU;CAIxB,iBAAiB,UAAU;;;;AC/G7B,MAAMC,cAAY,YAAW,WAAU;CACrC,MAAM;EAAE,SAAS;EAAQ,YAAY;EAAU;CAC/C,OAAO;EACL,UAAU;EACV,UAAU;EACV,OAAO;EACP,WAAW;EACX,OAAO;EACP,4BAA4B;GAC1B,OAAO;GACP,iBAAiB;GACjB,cAAc,EACZ,aAAa,yBACd;GACD,oBAAoB,EAClB,aAAa,0BACd;GACD,0BAA0B,EACxB,aAAa,QACd;GACD,WAAW;IACT,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,WAAW;IACX,OAAO;IACR;GACD,4BAA4B,EAC1B,OAAO,QACR;GACF;EACD,wBAAwB,EACtB,OAAO,QACR;EACD,wEAAwE;GACtE,OAAO;GACP,SAAS;GACV;EACD,wBAAwB,EACtB,OAAO,yBACR;EACF;CACF,EAAE;AAEH,SAAS,eAAe,MAAM;AAC5B,KAAI,CAAC,QAAQ,SAAS,EAAG,QAAO;AAChC,KAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAAU,QAAO,OAAO,KAAK;AAC7E,KAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,OAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK;AAC3D,SAAO,SAAS,KAAA,KAAa,SAAS,OAAO,OAAO,KAAK,GAAG;;AAE9D,QAAO,OAAO,KAAK;;AAGrB,MAAa,iBAAiB,UAAU;CACtC,MAAM,UAAUA,aAAW;CAC3B,MAAM,EACJ,gBAAgB,QAChB,OAAO,EAAE,EACT,QAAQ,MACR,UACA,6BAA6B,gBAC7B,aACA,WACA,YACA,GAAG,UACD;CAEJ,MAAM,kBAAkB,gBAAgB,CAAC,QAAQ,OAAO,cAAc,KAAK,KAAA;AAE3E,QACE,sBAAA,cAAC,OAAD,EAAK,WAAW,GAAG,QAAQ,KAAK,GAAG,aAAa,MAW1C,EAVJ,sBAAA,cAAC,6BAAD;EACE,WAAW,QAAQ;EACnB,YAAY;GAAE,kBAAkB,QAAQ;GAAO,GAAG;GAAY;EAC9D,SAAS;EACmB;EAClB;EACH;EACP,aAAa;EACb,GAAI;EACJ,CAAA,CACE;;AAIV,cAAc,YAAY;CACxB,eAAe,UAAU;CACzB,MAAM,UAAU;CAChB,OAAO,UAAU;CACjB,UAAU,UAAU;CACpB,4BAA4B,UAAU;CACtC,aAAa,UAAU;CACvB,WAAW,UAAU;CACrB,YAAY,UAAU;CACvB;;;ACrFD,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,OAAO,EACL,aAAa,MAAM,QAAQ,EAAE,EAC9B;CACF,EAAE;AAEH,MAAa,oBAAoB,UAAU;CACzC,MAAM,UAAUA,aAAW;CAC3B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,YAAY,OAAO,KAAK;CAC9B,MAAM,EAAE,cAAc;CAEtB,MAAM,qBAAqB;AACzB,WAAS,aAAa,CAAC,SAAS;;CAGlC,MAAM,eAAe,UAAU;AAC7B,MAAI,UAAU,WAAW,UAAU,QAAQ,SAAS,MAAM,OAAO,CAC/D;AAEF,UAAQ,MAAM;;CAGhB,SAAS,kBAAkB,OAAO;AAChC,MAAI,MAAM,QAAQ,OAAO;AACvB,SAAM,gBAAgB;AACtB,WAAQ,MAAM;;;CAKlB,MAAM,WAAW,OAAO,KAAK;AAC7B,iBAAgB;AACd,MAAI,SAAS,YAAY,QAAQ,SAAS,MACxC,WAAU,QAAQ,OAAO;AAE3B,WAAS,UAAU;IAClB,CAAC,KAAK,CAAC;CAEV,MAAM,wBAAwB,UAAU;AAGtC,mBAFwB,MAES,aAAa;;CAGhD,MAAM,oBAAoB,gBAAgB;AACxC,OAAK,eAAe,YAAY;;AAGlC,KAAI,aAAa,KACf,QACE,sBAAA,cAAC,OAAD;EAAK,IAAG;EAA6B,WAAW,QAAQ;EAyDlD,EAxDJ,sBAAA,cAAC,OAAA,MACC,sBAAA,cAAC,YAAD;EACE,IAAG;EACH,aAAY;EACZ,KAAK;EACL,iBAAe,OAAO,mBAAmB,KAAA;EACzC,iBAAc;EACd,SAAS;EAGE,EADX,sBAAA,cAAC,eAAD,EAAe,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,EAAI,CAAA,CAC/C,EACb,sBAAA,cAAC,QAAD;EACQ;EACN,UAAU,UAAU;EACpB,MAAM,KAAA;EACN,YAAA;EACA,eAAA;EAsCO,GApCL,EAAE,iBAAiB,gBACnB,sBAAA,cAAC,MAAD;EACE,GAAI;EACJ,OAAO,EACL,iBACE,cAAc,WAAW,eAAe,iBAC3C;EA4BI,EA1BL,sBAAA,cAAC,OAAA,MACC,sBAAA,cAAC,mBAAD;EACE,IAAG;EACH,aAAY;EACZ,aAAa;EAoBK,EAlBlB,sBAAA,cAAC,UAAD;EACE,eAAe;EACf,IAAG;EACH,aAAY;EACZ,WAAW;EACX,eAAe,QAAQ,MAAM;EAYpB,EAVR,UAAU,KAAK,SACd,sBAAA,cAAC,UAAD;EACE,IAAI,yCAAuC,KAAK;EAChD,aAAa,yCAAuC,KAAK;EACzD,eAAe,qBAAqB,KAAK;EACzC,OAAO,KAAK;EACZ,KAAK,KAAK;EAGD,EADR,KAAK,cACG,CAAC,CACL,CACO,CACd,CACH,CAEF,CACL,CACF;KAGR,QACE;;;;AC3GN,MAAM,oBAAoB,WAAW,OAAO,mCAAA,MAAA,MAAA,EAAA,EAAA,CAA4B;AACxE,MAAM,uBAAuB,WAAW,OAAO,sCAAA,MAAA,MAAA,EAAA,EAAA,CAAyC;AAKxF,MAAM,iCAAiC,OAAO,mCAAA,MAAA,MAAA,EAAA,EAAA;AAC9C,MAAM,oCAAoC,OAAO,sCAAA,MAAA,MAAA,EAAA,EAAA;AAEjD,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM,EACJ,SAAS,QACV;CACD,SAAS;EACP,SAAS,MAAM,QAAQ,EAAE;EACzB,UAAU;EACX;CACD,MAAM,EACJ,UAAU,IACX;CACD,aAAa;EACX,UAAU;EACV,OAAO,MAAM,QAAQ,EAAE;EACvB,KAAK,MAAM,QAAQ,EAAE;EACrB,OAAO,MAAM,QAAQ,KAAK;EAC3B;CACD,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,gBAAgB;EACjB;CACD,QAAQ;EACN,UAAU;EACV,WAAW;EACZ;CACF,EAAE;AAEH,MAAa,mBAAmB;CAC9B,MAAM,UAAUA,aAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,kBAAkB,YAAY;CACtC,MAAM,OAAO,SAAS;CACtB,MAAM,YAAY,OAAO,cAAc,OAAO,iBAAiB;CAE/D,MAAM,WAAW,cAAc,OAAO;CACtC,MAAM,cAAc,cAAc,OAAO;CACzC,MAAM,iBAAiB,cAAc,OAAO;CAC5C,MAAM,mBAAmB,cAAc,OAAO;CAE9C,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,CAAC,4BAA4B,+BACjC,SAAS,MAAM;CACjB,MAAM,CAAC,gBAAgB,mBAAmB,SAAS,MAAM;CACzD,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CAErE,MAAM,kBAAkB,OAAO,MAAM;CAErC,MAAM,qBAAqB,UAAU;AACnC,cAAY,MAAM,cAAc;AAIhC,MAAI,CAAC,gBAAgB,SAAS;AAC5B,mBAAgB,UAAU;AAE1B,OAAI;AACF,8BAA0B;YACnB,GAAG;AAGZ,OAAI;AACF,iCAA6B;YACtB,GAAG;;;CAMhB,MAAM,2BAA2B;AAC/B,cAAY,KAAK;;CAGnB,MAAM,qBAAqB,kBAAkB;AAC3C,cAAY,KAAK;AACjB,gBAAc,uCAAuC;IACpD,CAAC,cAAc,CAAC;CAEnB,MAAM,uCAAuC;AAC3C,8BAA4B,KAAK;AACjC,cAAY,KAAK;;CAGnB,MAAM,wCAAwC;AAC5C,8BAA4B,MAAM;;CAGpC,MAAM,2BAA2B;AAC/B,kBAAgB,KAAK;AACrB,cAAY,KAAK;;CAGnB,MAAM,4BAA4B;AAChC,kBAAgB,MAAM;;CAGxB,MAAM,OAAO,QAAQ,SAAS;CAC9B,MAAM,KAAK,OAAO,wBAAwB,KAAA;CAI1C,MAAM,sBAAsB,cAAc;EACxC,MAAM,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAAS,UAAU;EACnD,MAAM,0BAA0B,CAAC,CAAC,cAAc;EAChD,MAAM,cACJ,KAAK,IAAI,0BACT,KAAK,IAAI,oBACT,KAAK,IAAI;AACX,SAAO,kBAAkB,2BAA2B;;CAGtD,MAAM,uBAAuB,YAC3B,YACE,UACE,cAAc,iBACd,+BACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,4BAA4B,YAChC,YACE,UACE,cAAc,iBACd,yBACA;EACE,QAAQ;EACR,SAAS,EACP,iBAAiB,MAAM,iBACxB;EACF,CACF,EACH,CAAC,MAAM,gBAAgB,CACxB;CAED,MAAM,eAAe,mBAAmB,UAAU;CAClD,MAAM,0BACJ;EAAC;EAAG;EAAI;EAAI;EAAG,CAAC,SAAS,UAAU,IACnC,YACA,eACA,kBACA;CACF,MAAM,0BAA0B,aAAa;AAE7C,iBAAgB;EACd,MAAM,oBAAoB,YAAY;AACpC,OAAI;AACF,QAAI,cAAc,OAAO,qBAAqB,IAE5C,yBADiB,MAAM,2BAA2B,GACjB,WAAW,IAAI;QAGhD,yBADiB,MAAM,sBAAsB,GACZ,WAAW,IAAI;YAE3C,OAAO;AACd,2BAAuB,MAAM;;;AAGjC,qBAAmB;IAClB,CAAC,sBAAsB,0BAA0B,CAAC;AAGrD,KAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,wBAChD,QAAO,sBAAA,cAAC,OAAD,EAAK,IAAG,wBAAyB,CAAA;AAG1C,QACE,sBAAA,cAAC,OAAD;EAAK,IAAG;EAAuB,WAAW,QAAQ;EAiG5C,EAhGJ,sBAAA,cAAC,YAAD;EACE,IAAG;EACH,iBAAe;EACf,iBAAc;EACd,SAAS;EAGE,EADX,sBAAA,cAACC,aAAD,EAAiB,OAAO;EAAE,OAAO;EAAS,SAAS;EAAK,EAAI,CAAA,CACjD,EACb,sBAAA,cAAC,SAAD;EACM;EACE;EACI;EACV,SAAS;EACT,cAAc;GACZ,UAAU;GACV,YAAY;GACb;EACD,iBAAiB;GACf,UAAU;GACV,YAAY;GACb;EAyDO,EAvDR,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,SAsDlB,EArDJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,QASlB,EARJ,sBAAA,cAAC,YAAD,EAAY,SAAQ,MAA6B,EAAvB,EAAE,OAAO,CAAc,EACjD,sBAAA,cAAC,YAAD;EACE,MAAK;EACL,WAAW,QAAQ;EACnB,SAAS;EAGE,EADX,sBAAA,cAACC,OAAAA,KAAY,CACF,CACT,EACN,sBAAA,cAAC,MAAD;EAAM,WAAU;EAAM,cAAW;EA0C1B,EAxCJ,gBACC,sBAAA,cAAC,UAAD;EACE,QAAA;EACA,IAAG;EACH,SAAS;EAMA,EAJT,sBAAA,cAAC,cAAD,EAAc,WAAW,QAAQ,MAElB,EADb,sBAAA,cAACD,aAAAA,KAAkB,CACN,EACf,sBAAA,cAAC,cAAD,EAAc,SAAS,EAAE,WAAW,EAAI,CAAA,CAC/B,EAIZ,2BACC,sBAAA,cAAC,UAAD;EACE,QAAA;EACA,IAAG;EACH,SAAS;EAMA,EAJT,sBAAA,cAAC,cAAD,EAAc,WAAW,QAAQ,MAElB,EADb,sBAAA,cAACE,MAAAA,KAAW,CACC,EACf,sBAAA,cAAC,cAAD,EAAc,SAAS,EAAE,iBAAiB,EAAI,CAAA,CACrC,EAIZ,2BACC,sBAAA,cAAC,UAAD;EACE,QAAA;EACA,IAAG;EACH,SAAS;EAMA,EAJT,sBAAA,cAAC,cAAD,EAAc,WAAW,QAAQ,MAElB,EADb,sBAAA,cAACF,aAAAA,KAAkB,CACN,EACf,sBAAA,cAAC,cAAD,EAAc,SAAS,EAAE,wBAAwB,EAAI,CAAA,CAC5C,CAER,CACH,CACE,EAGV,sBAAA,cAAC,UAAD,EAAU,UAAU,MAET,EADT,sBAAA,cAAC,mBAAD;EAAmB,MAAM;EAAgB,SAAS;EAAuB,CAAA,CAChE,EAGX,sBAAA,cAAC,UAAD,EAAU,UAAU,MAUT,EATT,sBAAA,cAAC,sBAAD;EACE,MAAM;EACN,SAAS;EACwB;EACjC,WAAW,WAAW;AACpB,WAAQ,IAAI,kBAAkB,OAAO;;EAEvC,eAAe,EAAE;EACjB,CAAA,CACO,CACP;;;;ACpSV,MAAMG,cAAY,WAAW;CAC3B,MAAM;EACJ,OAAO;EACP,QAAA;EACA,kBAAkB,EAAC,kBAAoD,oBAAoB,YAAY;EACvG,OAAO;EACP,SAAS;EACT,YAAY;EACZ,UAAU;EAEV,aAAa,EACX,OAAO,WACR;EACF;CACF,YAAY;EACT,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACd;CACD,WAAW;EACR,UAAU;EACV,OAAO;EACP,YAAY;EACd;CACD,CAAC;AAEF,MAAa,0BAA0B;CACtC,MAAM,aAAa,WAAW;CAC9B,MAAM,mBAAmB,qBAAqB;CAE7C,MAAM,UAAUA,YAAU,EAAC,aAAa,kBAAiB,CAAC;AAC1D,KAAG,CAAC,iBAAmB,QAAO;AAE9B,QACE,sBAAA,cAAC,OAAD;EACE,WAAW,GAAG,QAAQ,KAAK,GAAG,qBAAqB,YAAY,YAAY;EAC3E,IAAG;EAQC,EANJ,sBAAA,cAACC,cAAD,EAAY,WAAW,QAAQ,YAElB,EADV,kBAAkB,OAAO,EAAE,CAAC,aAAa,GAAC,kBAAkB,MAAM,EAAE,IAAI,GAC9D,EAChB,sBAAA,cAACA,cAAD,EAAY,WAAW,QAAQ,WAEf,EADV,YAAY,cAAc,WAChB,CACT;;;;AC/BV,MAAM,YAAY,YACf,WAAW;CACV,MAAM;EACJ,OAAO,OAAO,SAAS,QAAQ;EAC/B,QAAQ,OAAO,QAAQ,SAAS;EAEjC;CACD,QAAQ,EACN,MAAM,GACP;CACD,cAAc;EACZ,SAAS;EACT,YAAY,EAAE,qBAAqB,KAAK;EACzC;CACD,SAAS;EACP,SAAS;EACT,WAAW,MAAM,QAAQ,EAAE;EAC5B;CACD,WAAW,EACT,OAAO,OAAO,SAAS,gBAAgB,OAAO,SAAS,SAAS,KAAK,EACtE;CACD,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,iBAAiB,OAAO,SAAS,WAAW;EAC7C;CACD,QAAQ;EACN,YAAY,MAAM,QAAQ,EAAE;EAC5B,WAAW,MAAM,QAAQ,MAAM;EAChC;CACD,UAAU;EACR,MAAM;EACN,UAAU;EACX;CACF,GACD,EAAE,MAAM,cAAc,CACvB;;;;AAKD,MAAa,oBAAoB,UAAU;CAEzC,MAAM,UAAU,UAAU,EACxB,gBAFe,qBAAqB,GAAA,KAEU,GAC/C,CAAC;CACF,MAAM,EAAE,cAAc;AAEtB,QAAO,sBAAA,cAAC,OAAD,EAAK,WAAW,KAAK,WAAW,QAAQ,aAAa,EAAI,CAAA;;;;;AAMlE,MAAM,cAAc,UAAU;CAC5B,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,EACJ,WACA,UACA,YACA,YACA,UACA,iBAAiB,QACjB,QAAQ,WACR,oBACA,wBACA,iBACA,cACA,cACA,eACA,eACA,WACA,iBACA,uBAAsB,OACtB,iBAAiB,OACjB,GAAG,UACD;CAGJ,MAAM,SAAS,cADD,UAAU,CACW,YAAY,GAAG,KAAK,CAAC;AAExD,QACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,QAAD;EACE,WAAW;EACX,UAAS;EACF;EACP,GAAI;EACO;EACX,SAAS,EAAE,MAAM,QAAQ,MAAM;EAiFxB,EA/EP,sBAAA,cAAC,mBAAA,KAAoB,EACrB,sBAAA,cAAC,SAAD,EAAS,WAAW,QAAQ,SA6ElB,EA5EP,UAAU,CAAC,iBACV,sBAAA,cAAC,YAAD;EACE,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;EAGvC,EADX,sBAAA,cAAC,YAAA,KAAa,CACH,EAEd,CAAC,UACA,sBAAA,cAAC,YAAD;EACE,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,WAAW,KAAK;EAGvC,EADX,sBAAA,cAAC,kBAAA,KAAmB,CACT,EAGf,sBAAA,cAAC,YAAD;EACE,WAAU;EACV,SAAQ;EACR,OAAO,EAAE,YAAY,iBAAiB,IAAI;EAG/B,EADV,SACU,EAEZ,UACC,sBAAA,cAAC,OAAD,EAAK,OAAO,EAAE,YAAY,IAAI,EAqBxB,EApBH,MAAM,eAAe,eAAe,GACnC,iBACE,kBAAkB,OAAO,mBAAmB,aAAa,eAAe,QAAQ,eAAe,iBACjG,sBAAA,cAAC,eAAD;EACE,eAAe,eAAe;EAC9B,MAAM,eAAe;EACrB,OAAO,eAAe;EACtB,UAAU,eAAe;EACzB,4BAA4B,eAAe;EAC3C,aAAa,eAAe;EAC5B,WAAW,eAAe;EAC1B,YAAY,eAAe;EAC3B,CAAA,GAEF,sBAAA,cAAC,gBAAD;EACE,OAAM;EACN,MAAM;EACkB;EACxB,CAAA,CAEA,EAER,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,UAA4B,EAAjB,WAAiB,EACnD,gBACC,sBAAA,cAAC,wBAAD;EACE,MAAM;EACQ;EACd,OAAO;EACU;EACjB,CAAA,EAGH,CAAC,UAAU,CAAC,iBACX,sBAAA,cAAC,YAAD;EACE,WAAW,QAAQ;EACnB,cAAW;EACX,eAAe,mBAAmB,UAAU,KAAK;EAGtC,EADX,sBAAA,cAAC,YAAA,KAAa,CACH,EAEf,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,0BAElB,EADJ,sBAAA,cAAC,gCAAA,KAAiC,CAC9B,EACL,CAAC,kBAAkB,sBAAA,cAAC,YAAA,KAAa,EACjC,CAAC,wBAAwB,sBAAA,cAAC,kBAAD,EAA6B,WAAa,CAAA,EACpE,sBAAA,cAAC,OAAA,MAAK,WAAiB,CACf,CACH,EACT,sBAAA,cAAC,kBAAD,EAA6B,WAAa,CAAA,CACzC;;AAMP,WAAW,YAAY;CACrB,gBAAgB,UAAU,UAAU;EAClC,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACX,CAAC;CAIF,iBAAiB,UAAU;CAC5B"}
@@ -3,4 +3,37 @@ import { t as FluentDialog } from "../../FluentDialog-C5PIPKcM.js";
3
3
  import { t as NodeLoader } from "../../NodeLoader-BZJpSGC8.js";
4
4
  import { t as AmbientToast } from "../../AmbientToast-DcJcgu8A.js";
5
5
  import { t as AmbientAlert } from "../../AmbientAlert-2_GYziuV.js";
6
- export { AmbientAlert, AmbientToast, FluentDialog, NodeLoader, PageLoading };
6
+ import React from "react";
7
+ import { makeStyles } from "@material-ui/core";
8
+ import Skeleton from "@material-ui/lab/Skeleton";
9
+ //#region src/UI/feedback/MenuLoader.jsx
10
+ const useStyles = makeStyles((theme) => ({
11
+ root: {},
12
+ nodeWrapper: {
13
+ display: "flex",
14
+ flexDirection: "row",
15
+ flex: 1,
16
+ margin: 10,
17
+ gap: 2
18
+ }
19
+ }));
20
+ const MenuLoader = (props) => {
21
+ const { numOfPlaceholderNodes = 1 } = props;
22
+ const classes = useStyles();
23
+ return /* @__PURE__ */ React.createElement("div", null, Array(numOfPlaceholderNodes).fill().map((_, i) => /* @__PURE__ */ React.createElement("div", {
24
+ key: i,
25
+ className: classes.nodeWrapper
26
+ }, /* @__PURE__ */ React.createElement(Skeleton, {
27
+ variant: "circle",
28
+ width: 20,
29
+ height: 20
30
+ }), /* @__PURE__ */ React.createElement(Skeleton, {
31
+ variant: "rect",
32
+ width: "100%",
33
+ height: 20
34
+ }))));
35
+ };
36
+ //#endregion
37
+ export { AmbientAlert, AmbientToast, FluentDialog, MenuLoader, NodeLoader, PageLoading };
38
+
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/UI/feedback/MenuLoader.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core'\nimport Skeleton from '@material-ui/lab/Skeleton'\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n nodeWrapper: {\n display: 'flex',\n flexDirection: 'row',\n flex: 1,\n margin: 10,\n gap: 2,\n }\n}))\n\n\nexport const MenuLoader = props => {\n const {numOfPlaceholderNodes = 1} = props\n const classes = useStyles()\n\n return(\n <div>\n {Array(numOfPlaceholderNodes).fill().map((_, i) => (\n <div key={i} className={classes.nodeWrapper}>\n <Skeleton variant=\"circle\" width={20} height={20}/>\n <Skeleton variant='rect' width={'100%'} height={20} />\n </div>\n ))}\n </div>\n )\n}\n\n"],"mappings":";;;;;;;;;AAIA,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,aAAa;EACX,SAAS;EACT,eAAe;EACf,MAAM;EACN,QAAQ;EACR,KAAK;EACN;CACF,EAAE;AAGH,MAAa,cAAa,UAAS;CACjC,MAAM,EAAC,wBAAwB,MAAK;CACpC,MAAM,UAAU,WAAW;AAE3B,QACE,sBAAA,cAAC,OAAA,MACE,MAAM,sBAAsB,CAAC,MAAM,CAAC,KAAK,GAAG,MAC3C,sBAAA,cAAC,OAAD;EAAK,KAAK;EAAG,WAAW,QAAQ;EAG1B,EAFJ,sBAAA,cAAC,UAAD;EAAU,SAAQ;EAAS,OAAO;EAAI,QAAQ;EAAK,CAAA,EACnD,sBAAA,cAAC,UAAD;EAAU,SAAQ;EAAO,OAAO;EAAQ,QAAQ;EAAM,CAAA,CAClD,CACN,CACE"}
package/dist/UI/index.js CHANGED
@@ -47,6 +47,7 @@ import { t as AmbientAlert } from "../AmbientAlert-2_GYziuV.js";
47
47
  import { CoreLayoutFloorplan } from "./floorplans/index.js";
48
48
  import { Sticky } from "./components/dataDisplay/index.js";
49
49
  import { Accordion } from "./accordion/index.js";
50
+ import { MenuLoader } from "./feedback/index.js";
50
51
  import { t as EmptyStateDisplay } from "../EmptyStateDisplay-DqpOg7fV.js";
51
52
  import { ItemsWidgetCard } from "./widgets/index.js";
52
53
  import { ExpandRenderer } from "./surfaces/NestedGrid/ui/index.js";
@@ -115,6 +116,6 @@ const AlertContainer = (props) => {
115
116
  else return null;
116
117
  };
117
118
  //#endregion
118
- export { Accordion, Adornment, AggregateChip, AlertContainer, AmbientAlert, AmbientList, AmbientToast, AppMenu, AppMenuItem, AppMenuItemComponent, AvatarAlphabet, BaseSideSheet, BioCard, Block, Box, BulkActionsGridButton, ChipAlphabet, ChipSection, CircularProgress, CompactDataList, CompactDataListItem, ContentDisplayCard, CoreLayoutFloorplan, CrudForm, Divider, DraggableSidebarTemplate, DynamicContainerWithMenu, Ellipse, EmailDisplay, EmptyStateDisplay, ExpandRenderer, ExpanderItem, FileViewer, FluentActivity, FluentActivityRow, FluentDataTable, FluentDialog, FluentListElement, FluentListItem, FluentMenuListItem, FluentSideNav, FluentSimpleTab, FluentSimpleTabs, FluentTabPanel, FluentTabPanels, FluentTabUtility, FluentTimeline, FluentTimelineContent, FluentTimelineHeader, FormControl, FormControlLabel, Grid, GridActionBar, GridPrimaryBar, HeaderExpander, HintPanel, Iframe, IndicatorChip, InfoCard, InputAdornment, InsightRenderer, ItemsWidgetCard, LinearProgress, LoginForm, MapLayout, NestParent, NestWrapper, NestedGrid, NodeLoader, OpenPage, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PageLoading, PaymentReversalForm, PrimaryActionHeader, PropertyField, PropertyFields, QuickViewCard, SapFlexibleTemplate, SaveViewFormDialog, SideSheet, SmsDisplay, Sticky, StyledTab, SummaryBlock, SupportCaseSideSheet, TeleportSource, TimeEntryStates, TimeLine, ToggleSection, Token, UdpAdvancedSearchBuilder, UdpAlert, UdpAlertsContainer, UdpCrudFormFields, UdpDetailList, UdpDetailListItem, UdpMap, UdpMapComponent, UdpMapToolbar, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UdpTransactionEmailForm, UtilityBar, UtilitySearch, UtilitySideBar, UtilityTabHeader, VirtualForm, a11yProps, getFieldValuesForProperties, getPropertiesForFieldValues, getSuccessAction, getThresholdStatus, toggleHeader, useAllTeleporters };
119
+ export { Accordion, Adornment, AggregateChip, AlertContainer, AmbientAlert, AmbientList, AmbientToast, AppMenu, AppMenuItem, AppMenuItemComponent, AvatarAlphabet, BaseSideSheet, BioCard, Block, Box, BulkActionsGridButton, ChipAlphabet, ChipSection, CircularProgress, CompactDataList, CompactDataListItem, ContentDisplayCard, CoreLayoutFloorplan, CrudForm, Divider, DraggableSidebarTemplate, DynamicContainerWithMenu, Ellipse, EmailDisplay, EmptyStateDisplay, ExpandRenderer, ExpanderItem, FileViewer, FluentActivity, FluentActivityRow, FluentDataTable, FluentDialog, FluentListElement, FluentListItem, FluentMenuListItem, FluentSideNav, FluentSimpleTab, FluentSimpleTabs, FluentTabPanel, FluentTabPanels, FluentTabUtility, FluentTimeline, FluentTimelineContent, FluentTimelineHeader, FormControl, FormControlLabel, Grid, GridActionBar, GridPrimaryBar, HeaderExpander, HintPanel, Iframe, IndicatorChip, InfoCard, InputAdornment, InsightRenderer, ItemsWidgetCard, LinearProgress, LoginForm, MapLayout, MenuLoader, NestParent, NestWrapper, NestedGrid, NodeLoader, OpenPage, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PageLoading, PaymentReversalForm, PrimaryActionHeader, PropertyField, PropertyFields, QuickViewCard, SapFlexibleTemplate, SaveViewFormDialog, SideSheet, SmsDisplay, Sticky, StyledTab, SummaryBlock, SupportCaseSideSheet, TeleportSource, TimeEntryStates, TimeLine, ToggleSection, Token, UdpAdvancedSearchBuilder, UdpAlert, UdpAlertsContainer, UdpCrudFormFields, UdpDetailList, UdpDetailListItem, UdpMap, UdpMapComponent, UdpMapToolbar, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UdpTransactionEmailForm, UtilityBar, UtilitySearch, UtilitySideBar, UtilityTabHeader, VirtualForm, a11yProps, getFieldValuesForProperties, getPropertiesForFieldValues, getSuccessAction, getThresholdStatus, toggleHeader, useAllTeleporters };
119
120
 
120
121
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/UI/AlertContainer.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport { Chip, useTheme, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'grid',\n gridTemplateColumns: 'auto auto'\n },\n alertContainer: {\n margin: '0.3em'\n },\n chipStyle: {\n maxWidth: '150px',\n textOverflow: 'ellipsis'\n }\n}));\n\nexport const AlertContainer = (props) => {\n const { data } = props;\n\n const theme = useTheme();\n const [alertData, setAlertData] = useState([]);\n const classes = useStyles(props);\n\n useEffect(() => {\n if (data?.properties?.alerts) {\n let tempData = [];\n data.properties.alerts.forEach((alert) => {\n let res = mapRule(alert.propertyMapping, alert.jsonLogic);\n if (\n evaluateRule(\n res,\n data.nodeObj,\n data.properties?.joiningEntityCatalogObjectKey,\n data.wasLazyLoaded\n )\n ) {\n tempData.push(alert);\n }\n });\n setAlertData(tempData);\n }\n }, [data]);\n\n if (alertData.length > 0) {\n return (\n <div className={classes.root}>\n {alertData\n .filter((item, i) => i % 2 === 0)\n .map((alert) => (\n <div className={classes.alertContainer}>\n <Chip\n label={alert.label}\n style={{\n backgroundColor: alert\n ? alert.alertColor.hex\n : theme.palette.secondary.main\n }}\n className={classes.chipStyle}\n />\n </div>\n ))}\n\n {alertData\n .filter((item, i) => i % 2 !== 0 && i !== 0)\n .map((alert) => (\n <div className={classes.alertContainer}>\n <Chip\n label={alert.label}\n style={{\n backgroundColor: alert\n ? alert.alertColor.hex\n : theme.palette.secondary.main\n }}\n className={classes.chipStyle}\n />\n </div>\n ))}\n </div>\n );\n } else {\n return null;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EACT,qBAAqB;EACtB;CACD,gBAAgB,EACd,QAAQ,SACT;CACD,WAAW;EACT,UAAU;EACV,cAAc;EACf;CACF,EAAE;AAEH,MAAa,kBAAkB,UAAU;CACvC,MAAM,EAAE,SAAS;CAEjB,MAAM,QAAQ,UAAU;CACxB,MAAM,CAAC,WAAW,gBAAgB,SAAS,EAAE,CAAC;CAC9C,MAAM,UAAU,UAAU,MAAM;AAEhC,iBAAgB;AACd,MAAI,MAAM,YAAY,QAAQ;GAC5B,IAAI,WAAW,EAAE;AACjB,QAAK,WAAW,OAAO,SAAS,UAAU;AAExC,QACE,aAFQ,QAAQ,MAAM,iBAAiB,MAAM,UAAU,EAIrD,KAAK,SACL,KAAK,YAAY,+BACjB,KAAK,cACN,CAED,UAAS,KAAK,MAAM;KAEtB;AACF,gBAAa,SAAS;;IAEvB,CAAC,KAAK,CAAC;AAEV,KAAI,UAAU,SAAS,EACrB,QACE,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,MAgClB,EA/BH,UACE,QAAQ,MAAM,MAAM,IAAI,MAAM,EAAE,CAChC,KAAK,UACJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,gBAUlB,EATJ,sBAAA,cAAC,MAAD;EACE,OAAO,MAAM;EACb,OAAO,EACL,iBAAiB,QACb,MAAM,WAAW,MACjB,MAAM,QAAQ,UAAU,MAC7B;EACD,WAAW,QAAQ;EACnB,CAAA,CACE,CACN,EAEH,UACE,QAAQ,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAC3C,KAAK,UACJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,gBAUlB,EATJ,sBAAA,cAAC,MAAD;EACE,OAAO,MAAM;EACb,OAAO,EACL,iBAAiB,QACb,MAAM,WAAW,MACjB,MAAM,QAAQ,UAAU,MAC7B;EACD,WAAW,QAAQ;EACnB,CAAA,CACE,CACN,CACA;KAGR,QAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/UI/AlertContainer.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport { Chip, useTheme, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'grid',\n gridTemplateColumns: 'auto auto'\n },\n alertContainer: {\n margin: '0.3em'\n },\n chipStyle: {\n maxWidth: '150px',\n textOverflow: 'ellipsis'\n }\n}));\n\nexport const AlertContainer = (props) => {\n const { data } = props;\n\n const theme = useTheme();\n const [alertData, setAlertData] = useState([]);\n const classes = useStyles(props);\n\n useEffect(() => {\n if (data?.properties?.alerts) {\n let tempData = [];\n data.properties.alerts.forEach((alert) => {\n let res = mapRule(alert.propertyMapping, alert.jsonLogic);\n if (\n evaluateRule(\n res,\n data.nodeObj,\n data.properties?.joiningEntityCatalogObjectKey,\n data.wasLazyLoaded\n )\n ) {\n tempData.push(alert);\n }\n });\n setAlertData(tempData);\n }\n }, [data]);\n\n if (alertData.length > 0) {\n return (\n <div className={classes.root}>\n {alertData\n .filter((item, i) => i % 2 === 0)\n .map((alert) => (\n <div className={classes.alertContainer}>\n <Chip\n label={alert.label}\n style={{\n backgroundColor: alert\n ? alert.alertColor.hex\n : theme.palette.secondary.main\n }}\n className={classes.chipStyle}\n />\n </div>\n ))}\n\n {alertData\n .filter((item, i) => i % 2 !== 0 && i !== 0)\n .map((alert) => (\n <div className={classes.alertContainer}>\n <Chip\n label={alert.label}\n style={{\n backgroundColor: alert\n ? alert.alertColor.hex\n : theme.palette.secondary.main\n }}\n className={classes.chipStyle}\n />\n </div>\n ))}\n </div>\n );\n } else {\n return null;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EACT,qBAAqB;EACtB;CACD,gBAAgB,EACd,QAAQ,SACT;CACD,WAAW;EACT,UAAU;EACV,cAAc;EACf;CACF,EAAE;AAEH,MAAa,kBAAkB,UAAU;CACvC,MAAM,EAAE,SAAS;CAEjB,MAAM,QAAQ,UAAU;CACxB,MAAM,CAAC,WAAW,gBAAgB,SAAS,EAAE,CAAC;CAC9C,MAAM,UAAU,UAAU,MAAM;AAEhC,iBAAgB;AACd,MAAI,MAAM,YAAY,QAAQ;GAC5B,IAAI,WAAW,EAAE;AACjB,QAAK,WAAW,OAAO,SAAS,UAAU;AAExC,QACE,aAFQ,QAAQ,MAAM,iBAAiB,MAAM,UAAU,EAIrD,KAAK,SACL,KAAK,YAAY,+BACjB,KAAK,cACN,CAED,UAAS,KAAK,MAAM;KAEtB;AACF,gBAAa,SAAS;;IAEvB,CAAC,KAAK,CAAC;AAEV,KAAI,UAAU,SAAS,EACrB,QACE,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,MAgClB,EA/BH,UACE,QAAQ,MAAM,MAAM,IAAI,MAAM,EAAE,CAChC,KAAK,UACJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,gBAUlB,EATJ,sBAAA,cAAC,MAAD;EACE,OAAO,MAAM;EACb,OAAO,EACL,iBAAiB,QACb,MAAM,WAAW,MACjB,MAAM,QAAQ,UAAU,MAC7B;EACD,WAAW,QAAQ;EACnB,CAAA,CACE,CACN,EAEH,UACE,QAAQ,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAC3C,KAAK,UACJ,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,gBAUlB,EATJ,sBAAA,cAAC,MAAD;EACE,OAAO,MAAM;EACb,OAAO,EACL,iBAAiB,QACb,MAAM,WAAW,MACjB,MAAM,QAAQ,UAAU,MAC7B;EACD,WAAW,QAAQ;EACnB,CAAA,CACE,CACN,CACA;KAGR,QAAO"}
package/dist/index.js CHANGED
@@ -159,7 +159,7 @@ import { t as useTenant } from "./useTenant-DryxTalu.js";
159
159
  import { Link, NavLink, Prompt, Redirect, Route, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from "./routes/index.js";
160
160
  import { t as PageNotFoundRoute } from "./PageNotFoundRoute-CAao-TQj.js";
161
161
  import "./routes/components/index.js";
162
- import { o as ShellDropdown, s as AmbientProjectSwitcher } from "./SiteHeader-BhJJmO1u.js";
162
+ import { o as ShellDropdown, s as AmbientProjectSwitcher } from "./SiteHeader-vNgnheR6.js";
163
163
  import { t as BreadCrumbMenu } from "./BreadCrumbMenu-DrvW8bI4.js";
164
164
  import { n as SubHeaderActionsTarget, t as SubHeaderAction } from "./SubHeaderAction-fXlK9QBW.js";
165
165
  import { i as InquiryHeaderTitleTarget, n as InquiryHeaderControlTarget, r as InquiryHeaderTitle, t as InquiryHeaderControl } from "./InquiryHeaderControl-Deqt--uV.js";
@@ -170,7 +170,7 @@ import { n as FluentProfileMenuCard } from "./profile-grsbAKwd.js";
170
170
  import { n as getStoredExternalPath, r as storeExternalPath, t as clearStoredExternalPath } from "./ExternalRedirectUrlStorage-B80_V9pU.js";
171
171
  import { n as createUser, t as AuthProvider } from "./AuthProvider-BUi9oEtK.js";
172
172
  import { AuthProviderWrapper, useAccessToken, useSingleLogout } from "./utilities/auth/index.js";
173
- import { t as Shell } from "./Shell--4lbPR7c.js";
173
+ import { t as Shell } from "./Shell-B09X7AWm.js";
174
174
  import { UdpStepper } from "./UI/stepper/index.js";
175
175
  import { n as FluentSimpleTab, t as FluentSimpleTabs } from "./FluentSimpleTabs-DESD8CK6.js";
176
176
  import { PAHAdditionalTitleComponent, UtilityTabHeader } from "./UI/utilityDisplay/utilityHeader/index.js";
@@ -197,6 +197,7 @@ import { t as AmbientAlert } from "./AmbientAlert-2_GYziuV.js";
197
197
  import { CoreLayoutFloorplan } from "./UI/floorplans/index.js";
198
198
  import { Sticky } from "./UI/components/dataDisplay/index.js";
199
199
  import { Accordion } from "./UI/accordion/index.js";
200
+ import { MenuLoader } from "./UI/feedback/index.js";
200
201
  import { t as EmptyStateDisplay } from "./EmptyStateDisplay-DqpOg7fV.js";
201
202
  import { ItemsWidgetCard } from "./UI/widgets/index.js";
202
203
  import { ExpandRenderer } from "./UI/surfaces/NestedGrid/ui/index.js";
@@ -1597,6 +1598,6 @@ const TransactionAttachmentPdfStitcher = (props) => {
1597
1598
  })));
1598
1599
  };
1599
1600
  //#endregion
1600
- export { ADUserTypeEnums, Accordion, AccountFlags, ActionContext, ActionDispatchContext, ActionForm, ActionModal, ActionPanelPlacement, ActionProvider, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, ActionsRenderer, AddUser, AddressListItem, Adornment, AgTable, AgTableButtons, AlertContainer, AlertFlag, AmChart, AmbientAlert, AmbientAutoComplete, AmbientCard, AmbientCardButton, AmbientCardTitle, AmbientDateRangeSelector, AmbientGridTemplate, AmbientList, AmbientListItem, AmbientPopoverMenuItem, AmbientProjectSwitcher, AmbientSingleDateSelector, AmbientSplitStatCard, AmbientStepper, AmbientSummaryListHeader, AmbientTextField, AmbientToast, AmbientToggleButton, AmbientToggleButtonGroup, AmbientTokenButton, AmbientVisualizationCard, AmbientVisualizer, ApiMethodInstanceUdpGrid, AppMenu, AppMenuItem, AppMenuItemComponent, ApprovalIcon, Attachments, AuthProvider, AuthProviderWrapper, AutoCompletePropertyWidget_exports as AutoCompletePropertyWidget, AvatarAlphabet, BackwardsCompatibleGrid, BarChartWidget_exports as BarChartWidget, BaseSideSheet, BioCard, Block, BooleanPropertyWidget_exports as BooleanPropertyWidget, Box, BreadCrumbMenu, BubbleWidget_exports as BubbleWidget, CardList, CardinalityTypeEnums, ChatContainer, ChatMessage, CheckboxGroup, CheckboxList, ChipAlphabet, CircleGaugeWidget, CircularProgress, CkRichEditor, ClickOpenEnums, ClientSideUdpGrid, ColorKey, CompactCard, CompactDataList, CompactDataListItem, ConfigService, ContainerTypeEnums, ContentContainer, Controls, CoreLayoutFloorplan, CrudForm, CustomMenuPage, DateField, DatePropertyWidget_exports as DatePropertyWidget, DateTimeField, DateTimePropertyWidget_exports as DateTimePropertyWidget, DateTrendWidget_exports as DateTrendWidget, DensePlotWidget_exports as DensePlotWidget, DeviceTypeEnums, DiffChecker, Directory, DirectoryListItem, Divider, DonutChartWidget_exports as DonutChartWidget, DragDropFileUpload, DraggableSidebarTemplate, DynamicContainerWithMenu, EMPTY_GUID, Ellipse, EmptyStateDisplay, EntityAttributeEnums, EntityHeader, ExecuteApiDialog, ExpandRenderer, ExportSidesheet, ExtenderToggle, Field, FieldArrayCard, FieldType, FileUpload, FileViewer, FilterOperators, FilterSearch, FlagBlock, FloatPropertyWidget_exports as FloatPropertyWidget, FluentActivity, FluentActivityRow, FluentButton, FluentCard, FluentCardActions, FluentCardContent, FluentCardHeader, FluentCardText, FluentCheckbox, FluentColorPicker, FluentCompoundButton, FluentDataTable, FluentDatePicker, FluentDateTimePicker, FluentDialog, FluentIcon, FluentIconButton, FluentImageMap, FluentLink, FluentListElement, FluentListItem, FluentMap, FluentMenuListButton, FluentMenuListItem, FluentProfileMenuCard, FluentRadio, FluentRadioGroup, FluentScrollLoadAutocompleteMenu, FluentSearchField, FluentSelectGroupMenu, FluentSelectMenu, FluentSideNav, FluentSimpleSelect, FluentSimpleTab, FluentSimpleTabs, FluentTabPanel, FluentTabUtility, FluentTagField, FluentTagFieldComponent, FluentTextField, FluentTextFieldAutoComplete, FluentTextFieldComponent, FluentTimePicker, FluentTimeline, FluentToggle, FluentUploadButton, FluentUploadIconButton, Form, FormButtons, FormControl, FormControlLabel, FormError, FormHeader, FormSpy, FormSubHeader, FullScreenControl, GaugeWidget, GeoMap, GraphCard, Grid, GridActionBar, GridEnums, GridExcelStyleEnums, GridGroup, GridGroupingHeader, GridGroupingSidebar, GridRow, GridSidebarContainer, GridStateTypeEnums, GridUnit, HeaderExpander, HeaderLayout, IconButtonWithTooltip, IconKey, IconRenderer, IframeContainer, ImageLayer, ImportDataFromFileMapping, IndicatorChip, InfoCard, InputAdornment, InputFieldType, Inquiry, InquiryAdvancedSearch, InquiryAdvancedSearchForm, InquiryContainer, InquiryDashboard, InquiryHeaderControl, InquiryHeaderControlTarget, InquiryHeaderSecondary, InquiryHeaderSecondaryAlert, InquiryHeaderSecondaryAlertTarget, InquiryHeaderSecondaryTarget, InquiryHeaderTitle, InquiryHeaderTitleTarget, InquiryNodeControls, InquirySearchContainer, InquirySearchDatasource, InquirySearchTable, InquiryTreeMenu, InquiryTreeMenuItem, InquiryWrapper, InsightRenderer, IntegerPropertyWidget_exports as IntegerPropertyWidget, ItemDescription, ItemsWidgetCard, JobStatusIdMapping, JobTypeIdMapping, KeyValueTextField, Layers, LayoutUnit, LicenseKey, LineAndSparklinesWidget_exports as LineAndSparklinesWidget, LineGraphWidget_exports as LineGraphWidget, LinearProgress, Link, ListCard, ListElement, ListSearch, LoadingIndicator, LogicalSearchOperatorEnums, LoginForm, LookupTypeEnums, LookupTypeIdEnums, MAX_FILE_SIZE_MB, Map, MapFilterBar, MapLayout, MapSheet, MenuItemEnums, MenuProvider, MenuTypeEnums, MttMainTimeline, MttSummary, MttTimeline, MultilineTextPropertyWidget_exports as MultilineTextPropertyWidget, MyExportsPage, NavLink, NestParent, NestWrapper, NestedGrid, NewsCard, NodeActionEnums, NodeActionTriggerEnums, NodeColumnHeader, NodeDetails, NodeGroupOutlierEnums, NodeGroupTypeEnums, NodeList, NodeLoader, Note, Notes, NotesScreen, NotificationElement, NumericPropertyWidget_exports as NumericPropertyWidget, OpenPage, OutlookCallback, OutlookIntegrationBanner, OutlookIntegrationCallbackPage, OutlookIntegrationSideSheet, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PDFViewer, Page, PageContainer, PageContent, PageForbiddenRoute, PageHeader, PageLoading, PageNotFoundRoute, PageRenderer, PageSectionHeader, PageSectionSpacer, PageStatus, PageSubHeaderAction, PageSubHeaderActionsTarget, PanelPositionEnums, ParamsMappingForm, PasswordResetRedirect, PaymentForm, PaymentMethodTypeEnum, PaymentReversalForm, PaymentTenderTypeEnum, PaymentVendorFactoryEnum, PopoverCard, PowerBIReport, PrimaryActionButton, PrimaryActionHeader, PrivateRoute, ProductEnums, ProductNameEnums, ProgressBarWidget_exports as ProgressBarWidget, Prompt, PropertyField, PropertyFields, PropertyTypeEnum, PublicRoute, QuickViewCard, RecentlyLoadedNodesTable, RecentlyLoadedNodesWidget_exports as RecentlyLoadedNodesWidget, Redirect, RejectIcon, RemindersScreen, RemindersWidget_exports as RemindersWidget, RequiredFieldsMappingForm, RoleIdEnums, RoleNameEnums, RoleTypeEnums, Route, SapFlexibleTemplate, SearchGroupingType, SearchMethodUdpGrid, SearchOperators, SearchServiceDatasource, SearchSortDirection, SearchValueType, SelectGroupMenu, SelectPropertyWidget_exports as SelectPropertyWidget, ServerSideUdpGrid, SeverityTypeEnums, Shell, ShellDropdown, SideBarTemplate, SideSheet, SideSheetHeader, SiteHeaderRightComponent, SiteHeaderRightComponentTarget, SparklineWidget_exports as SparklineWidget, SparsePlotWidget_exports as SparsePlotWidget, SplitScreenTypeEnums, StandardTitle, Statistic, StatusCellRenderer, StatusChip, StatusLineItem, Sticky, StylizedTitle, SubHeaderAction, SubHeaderActionsTarget, SubmitButton, SummaryBlock, SupportCaseSideSheet, SvgIcon, Switch, TableColumnDefs, TableContainer, TeleportSource, TenantTypeEnums, TestFullStencilPage, TestStencilWrappedComponentsPage, TextPropertyWidget_exports as TextPropertyWidget, ThemeProvider, TicketCard, TileDisplay, TileLayer, TimeField, TimeLine, TimePropertyWidget_exports as TimePropertyWidget, TimelineCalendar, TimelinePreloaderNode, ToggleSection, Token, TokenGroupItem, ToolBarButton, TransactionActionTypeEnums, TransactionAttachmentPdfStitcher, TransactionEventTypeEnums, TransactionUiActionTypeEnums, TreeViewModeEnums, TrimForAvatar, Typography, UdpAccordion, UdpAdvancedSearchBuilder, UdpAppProvider, UdpAutocomplete, UdpAvatar, UdpBadge, UdpBarChart, UdpButton, UdpCalendar, UdpCalendarDayView, UdpCalendarMonthView, UdpCalendarWeekView, UdpCalendarYearView, UdpCard, UdpCheckbox, UdpChip, UdpCompoundButton, UdpContainerQuery, UdpContainerQueryGrid, UdpCounterBadge, UdpCrudFormFields, UdpDateInput, UdpDatePicker, UdpDateRangeSelector, UdpDateSelector, UdpDateTimeInput, UdpDetailList, UdpDetailListItem, UdpDialog, UdpDivider, UdpDonutChart, UdpDrawer, UdpDropdown, UdpDurationInput, UdpEnums, UdpFlexbox, UdpFormRenderer, UdpFormsBuilderPage, UdpFormsListPage, UdpFormsSubmissionGrid, UdpFormsSubmissionGridManagerPage, UdpFormsSubmissionGridResponderPage, UdpGridTemplate, UdpIcon, UdpIconButton, UdpIconGrid, UdpImage, UdpKeywordEnums, UdpKpiCard, UdpKpiCards, UdpLineChart, UdpLink, UdpList, UdpListItem, UdpMaintenanceConfigPage, UdpMaintenanceEnginePage, UdpMap, UdpMapComponent, UdpMapToolbar, UdpMenu, UdpMessageBar, UdpPageEnums, UdpPages, UdpPagesLazy, UdpPagesLoaders, UdpPopover, UdpPrimaryActionHeader, UdpPrivateForm, UdpProgressBar, UdpPublicForm, UdpRadioGroup, UdpReminderFiledForType, UdpRoutes, UdpSearchEnums, UdpSearchInput, UdpSlider, UdpSpinner, UdpStepper, UdpSwatchPicker, UdpSwitch, UdpTabPanel, UdpTabUtility, UdpTablist, UdpTabs, UdpText, UdpTextInput, UdpTextarea, UdpTimeInput, UdpTimeSelector, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UdpToggleButton, UdpTooltip, UdpTransactionActionEnums, UdpTransactionEmailForm, UdpTransactionTypesPage, UdpTransactionsPage, UdpTree, UdpTreeContext, UdpTreeItem, UdpVerticalSpacer, UnityFluentIcon, UnityIcon, UnityProducts, UserContext, UserDispatchContext, UserForm, UserFormFields, UtilityBar, UtilityBarInport, UtilityBarInportTarget, UtilityTabHeader, VectorLayer, VerticalEnums, VisibilityTypeEnums, WidgetCard, WorkOrderCard, WorkflowContainer, ZoomControl, acquireAccessToken, allowedExtensions, apiMutate, apiResponseArrayToOptions, arrayMutators, camelToPascalCaseWithSpace, checkAndAuthenticate, checkNodeIsHidden, clearGridState, clearStoredExternalPath, clearStoredPath, clearStoredTenant, collapseAllNodes, colors, constructBusinessObjectArrFromTree, constructDynamicNodeGroups, constructDynamicNodeGroups2, constructPreloadedTree, constructStaticNodeGroups, corporateColors, corporateColorsHint, createTimeline, createUser, csvStrToArray, csvStrToArrayOfObjects, defaultColumnActionsDef, deleteGridState, deleteNode, deleteNodeAndChildren, disconnect, ensureOutlookStatusLoaded, evaluateRule, exchangeAuthorizationCode, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, expandAllNodes, findAllParentIds, findHomeRouteSlug, findLastNode, findNodeById, findNodeByIdAndLabel, findNodesByIdAndLabel, findTermByType, fluentLibraryIcons, formatBytes, mttFunctions_exports as formatDataWithTimelineCategoryNameOrderedByDate, formatDateToLocaleString, formatTreeLabel, formatTreeMenuItem, generatePath, getAccessToken, getAllChildrenNodesToDelete, getApiAccessScope, getApiMethodIdByPath, getAuthorizeUrl, getBaseMethod, getCommonEntityName, getDisplayDetails, getDisplayName, getEntityAttributes, getFieldValuesForProperties, getFullyQualifiedName, getGridState, getHeaderTitle, getI18nInstance, getIconFromName, getLazyLoadChildrenArr, getLoginRequest, getMenuItemsRecursively, getMergedConfig, getNodeIdForRightBorder, getOrderedDynamicGroups, getOutlookRedirectUri, getOutlookStatus, getPathObject, getPathParametersObj, getPrimaryKeyValues, getPropertiesForFieldValues, getPropertyMappingList, getPropertyMappingObj, getRatio, getRouteRolesMapAndMenuActiveMap, getSanitizedName, getSearchIdentifiers, getSearchObject, getSearchValueString, getSignInAuthProvider, getStatus, getStoredExternalPath, getStoredPath, getStoredTenant, getSuccessAction, getTokenRequest, getUnityIconFromName, greyScale, handleResponseErrors, initSignInAuthProvider, initializeUnityI18n, isOutlookConnected, loginRedirect, makeDynamicGroupStructures, makeDynamicTreeStructure, makeTreeStaticGroupStructure, makeTreeStructure, mapNodeGroupChildren, mapNodeObjValuesToSearchParameters, mapRule, mapRuleData, matchPath, onFirstDataRendered, parseSearchParamsIntoFilterObjects, pluralize, processCatalogObjectKeysInOrder, processItemForDynamicNodeGroups, processItemForStaticNodeGroup, processObjIndex, processObjectToTree, processOrderedTreeData, processReferences, productCategoryColors, refreshOutlookStatus, removeWhiteSpace, resetOutlookStatus, saveGridState, searchForMatchingNode, searchTree, sendMail, setOutlookDisconnected, storeCurrentPath, storeExternalPath, storeInitialPath, storeInitialTenant, storePath, storeRedirectPath, storeTenant, subscribeOutlookStatus, toLowerFirstChar, toTitleCase, toUpperFirstChar, toUtcDate, toggleHeader, transformMenuPageTree, trimStringAfter, unityIcons, updateTreeIds, useAccessToken, useActionState, useActions, useAgGridApi, useAllTeleporters, useApiCatalog, useAuthedUser, useAxiosGet, useAxiosGetQuery, useAxiosMutate, useCatalogStore, useControlZoom, useConvertFilterModelToSearchFilters, useCrudActions, useCurrentPageReturnTo, useDateLocale, useDefaultFormValues, useDynamicListCalculation, useExport, useField, useFieldChangeListener, useFluentIcon, useForm, useFormState, useGridClear, useGridFormat, useHandleAction, useHandleAxiosSnackbar, useHistory, useIsAuthed, useIsUnityAuthenticated, useItemSubCard, useLocalUserActions, useLocation, useLoginAction, useLogoutAction, useLookupsStore, useMenuContext, useNoticeUpdate, useOutlook, usePageContext, useParams, usePosition, useProductVersion, usePromotedLookupMethods, usePromotedMethodEntity, useQueryExecutors, useQuickFilter, useRouteMatch, useScreenControl, useSearchFilterParamsMap, useServerSideDatasource, useSetInitialShellVisibility, useSetLocationState, useShellStore, useSingleLogout, useStyles, useSystemColor, useTenant, useTenantStore, useTheme, useTypeScale, useUdpExport, useUdpWebSocket, useUser, useUserActions, useWorkflowStore, verticalPrimary, verticalSecondary, whitelistedPaths, withRouter };
1601
+ export { ADUserTypeEnums, Accordion, AccountFlags, ActionContext, ActionDispatchContext, ActionForm, ActionModal, ActionPanelPlacement, ActionProvider, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, ActionsRenderer, AddUser, AddressListItem, Adornment, AgTable, AgTableButtons, AlertContainer, AlertFlag, AmChart, AmbientAlert, AmbientAutoComplete, AmbientCard, AmbientCardButton, AmbientCardTitle, AmbientDateRangeSelector, AmbientGridTemplate, AmbientList, AmbientListItem, AmbientPopoverMenuItem, AmbientProjectSwitcher, AmbientSingleDateSelector, AmbientSplitStatCard, AmbientStepper, AmbientSummaryListHeader, AmbientTextField, AmbientToast, AmbientToggleButton, AmbientToggleButtonGroup, AmbientTokenButton, AmbientVisualizationCard, AmbientVisualizer, ApiMethodInstanceUdpGrid, AppMenu, AppMenuItem, AppMenuItemComponent, ApprovalIcon, Attachments, AuthProvider, AuthProviderWrapper, AutoCompletePropertyWidget_exports as AutoCompletePropertyWidget, AvatarAlphabet, BackwardsCompatibleGrid, BarChartWidget_exports as BarChartWidget, BaseSideSheet, BioCard, Block, BooleanPropertyWidget_exports as BooleanPropertyWidget, Box, BreadCrumbMenu, BubbleWidget_exports as BubbleWidget, CardList, CardinalityTypeEnums, ChatContainer, ChatMessage, CheckboxGroup, CheckboxList, ChipAlphabet, CircleGaugeWidget, CircularProgress, CkRichEditor, ClickOpenEnums, ClientSideUdpGrid, ColorKey, CompactCard, CompactDataList, CompactDataListItem, ConfigService, ContainerTypeEnums, ContentContainer, Controls, CoreLayoutFloorplan, CrudForm, CustomMenuPage, DateField, DatePropertyWidget_exports as DatePropertyWidget, DateTimeField, DateTimePropertyWidget_exports as DateTimePropertyWidget, DateTrendWidget_exports as DateTrendWidget, DensePlotWidget_exports as DensePlotWidget, DeviceTypeEnums, DiffChecker, Directory, DirectoryListItem, Divider, DonutChartWidget_exports as DonutChartWidget, DragDropFileUpload, DraggableSidebarTemplate, DynamicContainerWithMenu, EMPTY_GUID, Ellipse, EmptyStateDisplay, EntityAttributeEnums, EntityHeader, ExecuteApiDialog, ExpandRenderer, ExportSidesheet, ExtenderToggle, Field, FieldArrayCard, FieldType, FileUpload, FileViewer, FilterOperators, FilterSearch, FlagBlock, FloatPropertyWidget_exports as FloatPropertyWidget, FluentActivity, FluentActivityRow, FluentButton, FluentCard, FluentCardActions, FluentCardContent, FluentCardHeader, FluentCardText, FluentCheckbox, FluentColorPicker, FluentCompoundButton, FluentDataTable, FluentDatePicker, FluentDateTimePicker, FluentDialog, FluentIcon, FluentIconButton, FluentImageMap, FluentLink, FluentListElement, FluentListItem, FluentMap, FluentMenuListButton, FluentMenuListItem, FluentProfileMenuCard, FluentRadio, FluentRadioGroup, FluentScrollLoadAutocompleteMenu, FluentSearchField, FluentSelectGroupMenu, FluentSelectMenu, FluentSideNav, FluentSimpleSelect, FluentSimpleTab, FluentSimpleTabs, FluentTabPanel, FluentTabUtility, FluentTagField, FluentTagFieldComponent, FluentTextField, FluentTextFieldAutoComplete, FluentTextFieldComponent, FluentTimePicker, FluentTimeline, FluentToggle, FluentUploadButton, FluentUploadIconButton, Form, FormButtons, FormControl, FormControlLabel, FormError, FormHeader, FormSpy, FormSubHeader, FullScreenControl, GaugeWidget, GeoMap, GraphCard, Grid, GridActionBar, GridEnums, GridExcelStyleEnums, GridGroup, GridGroupingHeader, GridGroupingSidebar, GridRow, GridSidebarContainer, GridStateTypeEnums, GridUnit, HeaderExpander, HeaderLayout, IconButtonWithTooltip, IconKey, IconRenderer, IframeContainer, ImageLayer, ImportDataFromFileMapping, IndicatorChip, InfoCard, InputAdornment, InputFieldType, Inquiry, InquiryAdvancedSearch, InquiryAdvancedSearchForm, InquiryContainer, InquiryDashboard, InquiryHeaderControl, InquiryHeaderControlTarget, InquiryHeaderSecondary, InquiryHeaderSecondaryAlert, InquiryHeaderSecondaryAlertTarget, InquiryHeaderSecondaryTarget, InquiryHeaderTitle, InquiryHeaderTitleTarget, InquiryNodeControls, InquirySearchContainer, InquirySearchDatasource, InquirySearchTable, InquiryTreeMenu, InquiryTreeMenuItem, InquiryWrapper, InsightRenderer, IntegerPropertyWidget_exports as IntegerPropertyWidget, ItemDescription, ItemsWidgetCard, JobStatusIdMapping, JobTypeIdMapping, KeyValueTextField, Layers, LayoutUnit, LicenseKey, LineAndSparklinesWidget_exports as LineAndSparklinesWidget, LineGraphWidget_exports as LineGraphWidget, LinearProgress, Link, ListCard, ListElement, ListSearch, LoadingIndicator, LogicalSearchOperatorEnums, LoginForm, LookupTypeEnums, LookupTypeIdEnums, MAX_FILE_SIZE_MB, Map, MapFilterBar, MapLayout, MapSheet, MenuItemEnums, MenuLoader, MenuProvider, MenuTypeEnums, MttMainTimeline, MttSummary, MttTimeline, MultilineTextPropertyWidget_exports as MultilineTextPropertyWidget, MyExportsPage, NavLink, NestParent, NestWrapper, NestedGrid, NewsCard, NodeActionEnums, NodeActionTriggerEnums, NodeColumnHeader, NodeDetails, NodeGroupOutlierEnums, NodeGroupTypeEnums, NodeList, NodeLoader, Note, Notes, NotesScreen, NotificationElement, NumericPropertyWidget_exports as NumericPropertyWidget, OpenPage, OutlookCallback, OutlookIntegrationBanner, OutlookIntegrationCallbackPage, OutlookIntegrationSideSheet, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PDFViewer, Page, PageContainer, PageContent, PageForbiddenRoute, PageHeader, PageLoading, PageNotFoundRoute, PageRenderer, PageSectionHeader, PageSectionSpacer, PageStatus, PageSubHeaderAction, PageSubHeaderActionsTarget, PanelPositionEnums, ParamsMappingForm, PasswordResetRedirect, PaymentForm, PaymentMethodTypeEnum, PaymentReversalForm, PaymentTenderTypeEnum, PaymentVendorFactoryEnum, PopoverCard, PowerBIReport, PrimaryActionButton, PrimaryActionHeader, PrivateRoute, ProductEnums, ProductNameEnums, ProgressBarWidget_exports as ProgressBarWidget, Prompt, PropertyField, PropertyFields, PropertyTypeEnum, PublicRoute, QuickViewCard, RecentlyLoadedNodesTable, RecentlyLoadedNodesWidget_exports as RecentlyLoadedNodesWidget, Redirect, RejectIcon, RemindersScreen, RemindersWidget_exports as RemindersWidget, RequiredFieldsMappingForm, RoleIdEnums, RoleNameEnums, RoleTypeEnums, Route, SapFlexibleTemplate, SearchGroupingType, SearchMethodUdpGrid, SearchOperators, SearchServiceDatasource, SearchSortDirection, SearchValueType, SelectGroupMenu, SelectPropertyWidget_exports as SelectPropertyWidget, ServerSideUdpGrid, SeverityTypeEnums, Shell, ShellDropdown, SideBarTemplate, SideSheet, SideSheetHeader, SiteHeaderRightComponent, SiteHeaderRightComponentTarget, SparklineWidget_exports as SparklineWidget, SparsePlotWidget_exports as SparsePlotWidget, SplitScreenTypeEnums, StandardTitle, Statistic, StatusCellRenderer, StatusChip, StatusLineItem, Sticky, StylizedTitle, SubHeaderAction, SubHeaderActionsTarget, SubmitButton, SummaryBlock, SupportCaseSideSheet, SvgIcon, Switch, TableColumnDefs, TableContainer, TeleportSource, TenantTypeEnums, TestFullStencilPage, TestStencilWrappedComponentsPage, TextPropertyWidget_exports as TextPropertyWidget, ThemeProvider, TicketCard, TileDisplay, TileLayer, TimeField, TimeLine, TimePropertyWidget_exports as TimePropertyWidget, TimelineCalendar, TimelinePreloaderNode, ToggleSection, Token, TokenGroupItem, ToolBarButton, TransactionActionTypeEnums, TransactionAttachmentPdfStitcher, TransactionEventTypeEnums, TransactionUiActionTypeEnums, TreeViewModeEnums, TrimForAvatar, Typography, UdpAccordion, UdpAdvancedSearchBuilder, UdpAppProvider, UdpAutocomplete, UdpAvatar, UdpBadge, UdpBarChart, UdpButton, UdpCalendar, UdpCalendarDayView, UdpCalendarMonthView, UdpCalendarWeekView, UdpCalendarYearView, UdpCard, UdpCheckbox, UdpChip, UdpCompoundButton, UdpContainerQuery, UdpContainerQueryGrid, UdpCounterBadge, UdpCrudFormFields, UdpDateInput, UdpDatePicker, UdpDateRangeSelector, UdpDateSelector, UdpDateTimeInput, UdpDetailList, UdpDetailListItem, UdpDialog, UdpDivider, UdpDonutChart, UdpDrawer, UdpDropdown, UdpDurationInput, UdpEnums, UdpFlexbox, UdpFormRenderer, UdpFormsBuilderPage, UdpFormsListPage, UdpFormsSubmissionGrid, UdpFormsSubmissionGridManagerPage, UdpFormsSubmissionGridResponderPage, UdpGridTemplate, UdpIcon, UdpIconButton, UdpIconGrid, UdpImage, UdpKeywordEnums, UdpKpiCard, UdpKpiCards, UdpLineChart, UdpLink, UdpList, UdpListItem, UdpMaintenanceConfigPage, UdpMaintenanceEnginePage, UdpMap, UdpMapComponent, UdpMapToolbar, UdpMenu, UdpMessageBar, UdpPageEnums, UdpPages, UdpPagesLazy, UdpPagesLoaders, UdpPopover, UdpPrimaryActionHeader, UdpPrivateForm, UdpProgressBar, UdpPublicForm, UdpRadioGroup, UdpReminderFiledForType, UdpRoutes, UdpSearchEnums, UdpSearchInput, UdpSlider, UdpSpinner, UdpStepper, UdpSwatchPicker, UdpSwitch, UdpTabPanel, UdpTabUtility, UdpTablist, UdpTabs, UdpText, UdpTextInput, UdpTextarea, UdpTimeInput, UdpTimeSelector, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UdpToggleButton, UdpTooltip, UdpTransactionActionEnums, UdpTransactionEmailForm, UdpTransactionTypesPage, UdpTransactionsPage, UdpTree, UdpTreeContext, UdpTreeItem, UdpVerticalSpacer, UnityFluentIcon, UnityIcon, UnityProducts, UserContext, UserDispatchContext, UserForm, UserFormFields, UtilityBar, UtilityBarInport, UtilityBarInportTarget, UtilityTabHeader, VectorLayer, VerticalEnums, VisibilityTypeEnums, WidgetCard, WorkOrderCard, WorkflowContainer, ZoomControl, acquireAccessToken, allowedExtensions, apiMutate, apiResponseArrayToOptions, arrayMutators, camelToPascalCaseWithSpace, checkAndAuthenticate, checkNodeIsHidden, clearGridState, clearStoredExternalPath, clearStoredPath, clearStoredTenant, collapseAllNodes, colors, constructBusinessObjectArrFromTree, constructDynamicNodeGroups, constructDynamicNodeGroups2, constructPreloadedTree, constructStaticNodeGroups, corporateColors, corporateColorsHint, createTimeline, createUser, csvStrToArray, csvStrToArrayOfObjects, defaultColumnActionsDef, deleteGridState, deleteNode, deleteNodeAndChildren, disconnect, ensureOutlookStatusLoaded, evaluateRule, exchangeAuthorizationCode, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, expandAllNodes, findAllParentIds, findHomeRouteSlug, findLastNode, findNodeById, findNodeByIdAndLabel, findNodesByIdAndLabel, findTermByType, fluentLibraryIcons, formatBytes, mttFunctions_exports as formatDataWithTimelineCategoryNameOrderedByDate, formatDateToLocaleString, formatTreeLabel, formatTreeMenuItem, generatePath, getAccessToken, getAllChildrenNodesToDelete, getApiAccessScope, getApiMethodIdByPath, getAuthorizeUrl, getBaseMethod, getCommonEntityName, getDisplayDetails, getDisplayName, getEntityAttributes, getFieldValuesForProperties, getFullyQualifiedName, getGridState, getHeaderTitle, getI18nInstance, getIconFromName, getLazyLoadChildrenArr, getLoginRequest, getMenuItemsRecursively, getMergedConfig, getNodeIdForRightBorder, getOrderedDynamicGroups, getOutlookRedirectUri, getOutlookStatus, getPathObject, getPathParametersObj, getPrimaryKeyValues, getPropertiesForFieldValues, getPropertyMappingList, getPropertyMappingObj, getRatio, getRouteRolesMapAndMenuActiveMap, getSanitizedName, getSearchIdentifiers, getSearchObject, getSearchValueString, getSignInAuthProvider, getStatus, getStoredExternalPath, getStoredPath, getStoredTenant, getSuccessAction, getTokenRequest, getUnityIconFromName, greyScale, handleResponseErrors, initSignInAuthProvider, initializeUnityI18n, isOutlookConnected, loginRedirect, makeDynamicGroupStructures, makeDynamicTreeStructure, makeTreeStaticGroupStructure, makeTreeStructure, mapNodeGroupChildren, mapNodeObjValuesToSearchParameters, mapRule, mapRuleData, matchPath, onFirstDataRendered, parseSearchParamsIntoFilterObjects, pluralize, processCatalogObjectKeysInOrder, processItemForDynamicNodeGroups, processItemForStaticNodeGroup, processObjIndex, processObjectToTree, processOrderedTreeData, processReferences, productCategoryColors, refreshOutlookStatus, removeWhiteSpace, resetOutlookStatus, saveGridState, searchForMatchingNode, searchTree, sendMail, setOutlookDisconnected, storeCurrentPath, storeExternalPath, storeInitialPath, storeInitialTenant, storePath, storeRedirectPath, storeTenant, subscribeOutlookStatus, toLowerFirstChar, toTitleCase, toUpperFirstChar, toUtcDate, toggleHeader, transformMenuPageTree, trimStringAfter, unityIcons, updateTreeIds, useAccessToken, useActionState, useActions, useAgGridApi, useAllTeleporters, useApiCatalog, useAuthedUser, useAxiosGet, useAxiosGetQuery, useAxiosMutate, useCatalogStore, useControlZoom, useConvertFilterModelToSearchFilters, useCrudActions, useCurrentPageReturnTo, useDateLocale, useDefaultFormValues, useDynamicListCalculation, useExport, useField, useFieldChangeListener, useFluentIcon, useForm, useFormState, useGridClear, useGridFormat, useHandleAction, useHandleAxiosSnackbar, useHistory, useIsAuthed, useIsUnityAuthenticated, useItemSubCard, useLocalUserActions, useLocation, useLoginAction, useLogoutAction, useLookupsStore, useMenuContext, useNoticeUpdate, useOutlook, usePageContext, useParams, usePosition, useProductVersion, usePromotedLookupMethods, usePromotedMethodEntity, useQueryExecutors, useQuickFilter, useRouteMatch, useScreenControl, useSearchFilterParamsMap, useServerSideDatasource, useSetInitialShellVisibility, useSetLocationState, useShellStore, useSingleLogout, useStyles, useSystemColor, useTenant, useTenantStore, useTheme, useTypeScale, useUdpExport, useUdpWebSocket, useUser, useUserActions, useWorkflowStore, verticalPrimary, verticalSecondary, whitelistedPaths, withRouter };
1601
1602
 
1602
1603
  //# sourceMappingURL=index.js.map