udp-react-enterprise-component-library 25.18.1-beta.15 → 25.18.1-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/{FieldArrayCard-56TLTaZc.js → FieldArrayCard-KGSDXwrq.js} +1 -1
  2. package/dist/{FieldArrayCard-56TLTaZc.js.map → FieldArrayCard-KGSDXwrq.js.map} +1 -1
  3. package/dist/{FluentProfileMenuCard-CnUOy-ne.js → FluentProfileMenuCard-DPPx-nDJ.js} +3 -3
  4. package/dist/{FluentProfileMenuCard-CnUOy-ne.js.map → FluentProfileMenuCard-DPPx-nDJ.js.map} +1 -1
  5. package/dist/{MyExportsPage-lqTyApig.js → MyExportsPage-3e8kRwNT.js} +2 -2
  6. package/dist/{MyExportsPage-lqTyApig.js.map → MyExportsPage-3e8kRwNT.js.map} +1 -1
  7. package/dist/{MyExportsPage-Bw0ueYE_.js → MyExportsPage-D3yr41VC.js} +2 -2
  8. package/dist/{RejectIcon-9a6AQhFS.js → RejectIcon-DNo11W_H.js} +1 -1
  9. package/dist/{RejectIcon-9a6AQhFS.js.map → RejectIcon-DNo11W_H.js.map} +1 -1
  10. package/dist/{Shell-BnKSMfKq.js → Shell-FkTfRpO5.js} +2 -2
  11. package/dist/{Shell-BnKSMfKq.js.map → Shell-FkTfRpO5.js.map} +1 -1
  12. package/dist/{SimpleTable-BMjywRbx.js → SimpleTable-DX9xdKYK.js} +1 -1
  13. package/dist/{SimpleTable-BMjywRbx.js.map → SimpleTable-DX9xdKYK.js.map} +1 -1
  14. package/dist/{StatusCellRenderer-DOYDkiZu.js → StatusCellRenderer-DK3MexwY.js} +1 -1
  15. package/dist/{StatusCellRenderer-DOYDkiZu.js.map → StatusCellRenderer-DK3MexwY.js.map} +1 -1
  16. package/dist/{SupportCaseSideSheet-DPfapAFC.js → SupportCaseSideSheet-BTCZjI26.js} +1 -1
  17. package/dist/{SupportCaseSideSheet-DPfapAFC.js.map → SupportCaseSideSheet-BTCZjI26.js.map} +1 -1
  18. package/dist/{SupportCaseSideSheet-D5VyeXgu.js → SupportCaseSideSheet-Bv9FsrIk.js} +1 -1
  19. package/dist/UI/iframe/index.js +1 -1
  20. package/dist/UI/index.js +5 -7
  21. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  22. package/dist/UI/maps/index.js +1 -1
  23. package/dist/UI/support/index.js +1 -1
  24. package/dist/UI/templates/index.js +1 -1
  25. package/dist/UI/templates/ui/renderers/index.js +2 -1
  26. package/dist/UI/widgets/FluentComponents/index.js +1 -1
  27. package/dist/UI/widgets/library/TableWidget/index.js +1 -1
  28. package/dist/{UdpFormsSubmissionGrid-Bzo5wcCS.js → UdpFormsSubmissionGrid-DesZibh4.js} +139 -20
  29. package/dist/UdpFormsSubmissionGrid-DesZibh4.js.map +1 -0
  30. package/dist/{UdpMap-DB0qsBfI.js → UdpMap-BgkNp2X2.js} +1 -1
  31. package/dist/{UdpMap-DB0qsBfI.js.map → UdpMap-BgkNp2X2.js.map} +1 -1
  32. package/dist/{UdpRoutes-MhKxW3An.js → UdpRoutes-Bbd0O-Yg.js} +2 -2
  33. package/dist/{UdpRoutes-MhKxW3An.js.map → UdpRoutes-Bbd0O-Yg.js.map} +1 -1
  34. package/dist/index.js +12 -12
  35. package/dist/routes/index.js +1 -1
  36. package/dist/shell/index.js +2 -2
  37. package/dist/shell/ui/index.js +1 -1
  38. package/dist/types/src/UI/index.d.ts +0 -1
  39. package/dist/types/src/UI/index.d.ts.map +1 -1
  40. package/dist/types/src/index.d.ts +0 -1
  41. package/dist/types/src/index.d.ts.map +1 -1
  42. package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -1
  43. package/dist/types/tsconfig.tsbuildinfo +1 -1
  44. package/dist/udp/export/index.js +2 -2
  45. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +7 -1
  46. package/dist/utilities/customIcons/index.js +1 -1
  47. package/export-map.json +2 -3
  48. package/package.json +1 -1
  49. package/dist/InputsExample-ClC-vFVK.js +0 -11
  50. package/dist/InputsExample-ClC-vFVK.js.map +0 -1
  51. package/dist/UI/demos/index.js +0 -4
  52. package/dist/UdpFormsSubmissionGrid-Bzo5wcCS.js.map +0 -1
  53. package/dist/types/src/UI/demos/InputsExample.d.ts +0 -5
  54. package/dist/types/src/UI/demos/InputsExample.d.ts.map +0 -1
  55. package/dist/types/src/UI/demos/index.d.ts +0 -4
  56. package/dist/types/src/UI/demos/index.d.ts.map +0 -1
  57. /package/dist/{demos-D1hYYoOq.js → iframe-TEQyCzjj.js} +0 -0
  58. /package/dist/{iframe-CM2OOxOu.js → renderers-BI4w5Al3.js} +0 -0
  59. /package/dist/{templates-Cz1v1M4q.js → templates-CQ8zAjnU.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Shell-BnKSMfKq.js","names":["menus","SiteHeader","NavigationSidebar","FUIAppSwitcher"],"sources":["../src/shell/Shell.jsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } 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 } 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 {\n useSetInitialShellVisibility,\n useShellStore\n} from '../stores/shellStore';\n\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './ui/useBuildEnvironment';\nimport { ChatBotProvider } from '../utilities/chatBot/ChatBotProvider';\n//import { usePreloadPages } from '../hooks/usePreloadPages';\n\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\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n ribbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const {\n children,\n userAvatar,\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 = true,\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 utilityBarHasTabsOpen,\n projectSwitcherColor,\n getWidget,\n isValidWidget,\n appSwitcherHeader,\n hamburgerMenuAccessRole\n } = props;\n const contextUser = useUser();\n const user = passedInUser ?? contextUser;\n const { setGetWidget, setIsValidWidget, shellHidden } = useShellStore();\n const [appSwitcherMobile, setAppSwitcherMobile] = useState(false);\n const [appSwitcherDesktop, setAppSwitcherDesktop] = useState(false);\n const { i18n } = useTranslation();\n const inquiryTitle = useInquiryStore((state) => state.title);\n useSetInitialShellVisibility();\n\n //usePreloadPages();\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 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, leftMenu);\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, leftMenu, getAccessToken]);\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 appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const favoriteMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Favorites_Menu,\n appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const appMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Application_Menu,\n appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const hideAppMenu = useMemo(\n () =>\n !appSelectorMenus ||\n (hamburgerMenuAccessRole &&\n !user?.roleNames.includes(hamburgerMenuAccessRole)),\n [user, appSelectorMenus, hamburgerMenuAccessRole]\n );\n\n useEffect(() => {\n i18n.changeLanguage('en-US');\n }, [i18n]);\n\n if (hideLayout) {\n return <div>{children}</div>;\n }\n\n return (\n <ChatBotProvider>\n <ActionProvider>\n <div className={classes.root}>\n {!shellHidden && (\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={languages}\n backgroundColor={projectSwitcherColor}\n />\n )}\n\n <div style={{ display: 'flex' }} className={classes.sidebar}>\n {!shellHidden && mobile && (\n <NavigationSidebar\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\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={shellHidden}\n {...props}\n />\n </div>\n )}\n </div>\n\n <div className={classes.content}>\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 <PageActionWrapper>{children}</PageActionWrapper>\n </div>\n <Drawer\n variant='temporary'\n anchor='left'\n open={appSwitcherDesktop}\n classes={\n !mobile ? {} : !appSelectorMenus ? {} : { paper: classes.paper }\n }\n onClose={() => handleAppSwitcher('desktop', false)}\n >\n {mobile && appSelectorMenus && (\n <FUIAppSwitcher\n onClose={() => handleAppSwitcher('desktop', false)}\n favoriteMenu={favoriteMenu}\n builderMenu={builderMenu}\n appMenu={appMenu}\n unityUrl={unityUrl}\n user={user}\n header={appSwitcherHeader}\n />\n )}\n {(!mobile || (mobile && !appSelectorMenus)) && (\n <NavigationSidebar\n toggle={false}\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\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={appSwitcherHeader}\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([PropTypes.string, PropTypes.element, PropTypes.node]),\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 utilityBarHasTabsOpen: PropTypes.bool,\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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"}
1
+ {"version":3,"file":"Shell-FkTfRpO5.js","names":["menus","SiteHeader","NavigationSidebar","FUIAppSwitcher"],"sources":["../src/shell/Shell.jsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } 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 } 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 {\n useSetInitialShellVisibility,\n useShellStore\n} from '../stores/shellStore';\n\nimport { useBuildEnvironment, APP_RIBBON_SPACE } from './ui/useBuildEnvironment';\nimport { ChatBotProvider } from '../utilities/chatBot/ChatBotProvider';\n//import { usePreloadPages } from '../hooks/usePreloadPages';\n\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\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n ribbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const {\n children,\n userAvatar,\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 = true,\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 utilityBarHasTabsOpen,\n projectSwitcherColor,\n getWidget,\n isValidWidget,\n appSwitcherHeader,\n hamburgerMenuAccessRole\n } = props;\n const contextUser = useUser();\n const user = passedInUser ?? contextUser;\n const { setGetWidget, setIsValidWidget, shellHidden } = useShellStore();\n const [appSwitcherMobile, setAppSwitcherMobile] = useState(false);\n const [appSwitcherDesktop, setAppSwitcherDesktop] = useState(false);\n const { i18n } = useTranslation();\n const inquiryTitle = useInquiryStore((state) => state.title);\n useSetInitialShellVisibility();\n\n //usePreloadPages();\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 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, leftMenu);\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, leftMenu, getAccessToken]);\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 appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const favoriteMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Favorites_Menu,\n appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const appMenu = useMemo(() => {\n const menuItems = getMenuItems(\n MenuTypeEnums.Application_Menu,\n appSelectorMenus\n );\n return getMenuItemsRecursively(menuItems, true, user, getAccessToken);\n }, [getMenuItems, user, appSelectorMenus, getAccessToken]);\n\n const hideAppMenu = useMemo(\n () =>\n !appSelectorMenus ||\n (hamburgerMenuAccessRole &&\n !user?.roleNames.includes(hamburgerMenuAccessRole)),\n [user, appSelectorMenus, hamburgerMenuAccessRole]\n );\n\n useEffect(() => {\n i18n.changeLanguage('en-US');\n }, [i18n]);\n\n if (hideLayout) {\n return <div>{children}</div>;\n }\n\n return (\n <ChatBotProvider>\n <ActionProvider>\n <div className={classes.root}>\n {!shellHidden && (\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={languages}\n backgroundColor={projectSwitcherColor}\n />\n )}\n\n <div style={{ display: 'flex' }} className={classes.sidebar}>\n {!shellHidden && mobile && (\n <NavigationSidebar\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\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={shellHidden}\n {...props}\n />\n </div>\n )}\n </div>\n\n <div className={classes.content}>\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 <PageActionWrapper>{children}</PageActionWrapper>\n </div>\n <Drawer\n variant='temporary'\n anchor='left'\n open={appSwitcherDesktop}\n classes={\n !mobile ? {} : !appSelectorMenus ? {} : { paper: classes.paper }\n }\n onClose={() => handleAppSwitcher('desktop', false)}\n >\n {mobile && appSelectorMenus && (\n <FUIAppSwitcher\n onClose={() => handleAppSwitcher('desktop', false)}\n favoriteMenu={favoriteMenu}\n builderMenu={builderMenu}\n appMenu={appMenu}\n unityUrl={unityUrl}\n user={user}\n header={appSwitcherHeader}\n />\n )}\n {(!mobile || (mobile && !appSelectorMenus)) && (\n <NavigationSidebar\n toggle={false}\n className={classes.sidebar}\n data={menus}\n navMenuHoverOn={navMenuHoverOn}\n user={user}\n useGlobalState={true}\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={appSwitcherHeader}\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([PropTypes.string, PropTypes.element, PropTypes.node]),\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 utilityBarHasTabsOpen: PropTypes.bool,\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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"}
@@ -22,4 +22,4 @@ var SimpleTable_default = SimpleTable;
22
22
 
23
23
  //#endregion
24
24
  export { SimpleTable_default as t };
25
- //# sourceMappingURL=SimpleTable-BMjywRbx.js.map
25
+ //# sourceMappingURL=SimpleTable-DX9xdKYK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTable-BMjywRbx.js","names":[],"sources":["../src/UI/widgets/FluentComponents/SimpleTable.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 350\n }\n})\n\nlet SimpleTable = (props) => {\n const { columns, rows } = props\n const classes = useStyles()\n\n return (\n <TableContainer>\n <Table className={classes.table} aria-label='simple table' size='small'>\n <TableHead>\n <TableRow>\n {columns.map((column) => (\n <TableCell>{column}</TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map((row) => (\n <TableRow key={row.name}>\n {row.rowValues.map((rowValue) => (\n <TableCell>{rowValue}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n )\n}\nexport default SimpleTable\n"],"mappings":";;;;;;;;;;AASA,MAAM,YAAY,WAAW,EAC3B,OAAO,EACL,UAAU,KACX,EACF,CAAC;AAEF,IAAI,eAAe,UAAU;CAC3B,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,UAAU,WAAW;AAE3B,QACE,oCAAC,sBACC,oCAAC;EAAM,WAAW,QAAQ;EAAO,cAAW;EAAe,MAAK;IAC9D,oCAAC,iBACC,oCAAC,gBACE,QAAQ,KAAK,WACZ,oCAAC,iBAAW,OAAmB,CAC/B,CACO,CACD,EACZ,oCAAC,iBACE,KAAK,KAAK,QACT,oCAAC,YAAS,KAAK,IAAI,QAChB,IAAI,UAAU,KAAK,aAClB,oCAAC,iBAAW,SAAqB,CACjC,CACO,CACX,CACQ,CACN,CACO;;AAGrB,0BAAe"}
1
+ {"version":3,"file":"SimpleTable-DX9xdKYK.js","names":[],"sources":["../src/UI/widgets/FluentComponents/SimpleTable.jsx"],"sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 350\n }\n})\n\nlet SimpleTable = (props) => {\n const { columns, rows } = props\n const classes = useStyles()\n\n return (\n <TableContainer>\n <Table className={classes.table} aria-label='simple table' size='small'>\n <TableHead>\n <TableRow>\n {columns.map((column) => (\n <TableCell>{column}</TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map((row) => (\n <TableRow key={row.name}>\n {row.rowValues.map((rowValue) => (\n <TableCell>{rowValue}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n )\n}\nexport default SimpleTable\n"],"mappings":";;;;;;;;;;AASA,MAAM,YAAY,WAAW,EAC3B,OAAO,EACL,UAAU,KACX,EACF,CAAC;AAEF,IAAI,eAAe,UAAU;CAC3B,MAAM,EAAE,SAAS,SAAS;CAC1B,MAAM,UAAU,WAAW;AAE3B,QACE,oCAAC,sBACC,oCAAC;EAAM,WAAW,QAAQ;EAAO,cAAW;EAAe,MAAK;IAC9D,oCAAC,iBACC,oCAAC,gBACE,QAAQ,KAAK,WACZ,oCAAC,iBAAW,OAAmB,CAC/B,CACO,CACD,EACZ,oCAAC,iBACE,KAAK,KAAK,QACT,oCAAC,YAAS,KAAK,IAAI,QAChB,IAAI,UAAU,KAAK,aAClB,oCAAC,iBAAW,SAAqB,CACjC,CACO,CACX,CACQ,CACN,CACO;;AAGrB,0BAAe"}
@@ -15,4 +15,4 @@ const StatusCellRenderer = (props) => {
15
15
 
16
16
  //#endregion
17
17
  export { StatusCellRenderer as t };
18
- //# sourceMappingURL=StatusCellRenderer-DOYDkiZu.js.map
18
+ //# sourceMappingURL=StatusCellRenderer-DK3MexwY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusCellRenderer-DOYDkiZu.js","names":["value"],"sources":["../src/UI/templates/ui/renderers/StatusCellRenderer.jsx"],"sourcesContent":["import React from 'react';\nimport { StatusChip } from '../../../dataDisplay/status/StatusChip';\n\nexport const StatusCellRenderer = props => {\n const { value, getStatus, getLabel } = props;\n const formattedLabel = value => {\n return value\n ?.replace(/([a-z])([A-Z])/g, '$1 $2')\n ?.replace(/\\b\\w/g, char => char.toUpperCase());\n };\n return (\n <StatusChip\n status={getStatus(value)}\n label={getLabel ? formattedLabel(getLabel(value)) : formattedLabel(value)}\n />\n );\n};\n"],"mappings":";;;;AAGA,MAAa,sBAAqB,UAAS;CACzC,MAAM,EAAE,OAAO,WAAW,aAAa;CACvC,MAAM,kBAAiB,YAAS;AAC9B,SAAOA,SACH,QAAQ,mBAAmB,QAAQ,EACnC,QAAQ,UAAS,SAAQ,KAAK,aAAa,CAAC;;AAElD,QACE,oCAAC;EACC,QAAQ,UAAU,MAAM;EACxB,OAAO,WAAW,eAAe,SAAS,MAAM,CAAC,GAAG,eAAe,MAAM;GACzE"}
1
+ {"version":3,"file":"StatusCellRenderer-DK3MexwY.js","names":["value"],"sources":["../src/UI/templates/ui/renderers/StatusCellRenderer.jsx"],"sourcesContent":["import React from 'react';\nimport { StatusChip } from '../../../dataDisplay/status/StatusChip';\n\nexport const StatusCellRenderer = props => {\n const { value, getStatus, getLabel } = props;\n const formattedLabel = value => {\n return value\n ?.replace(/([a-z])([A-Z])/g, '$1 $2')\n ?.replace(/\\b\\w/g, char => char.toUpperCase());\n };\n return (\n <StatusChip\n status={getStatus(value)}\n label={getLabel ? formattedLabel(getLabel(value)) : formattedLabel(value)}\n />\n );\n};\n"],"mappings":";;;;AAGA,MAAa,sBAAqB,UAAS;CACzC,MAAM,EAAE,OAAO,WAAW,aAAa;CACvC,MAAM,kBAAiB,YAAS;AAC9B,SAAOA,SACH,QAAQ,mBAAmB,QAAQ,EACnC,QAAQ,UAAS,SAAQ,KAAK,aAAa,CAAC;;AAElD,QACE,oCAAC;EACC,QAAQ,UAAU,MAAM;EACxB,OAAO,WAAW,eAAe,SAAS,MAAM,CAAC,GAAG,eAAe,MAAM;GACzE"}
@@ -373,4 +373,4 @@ var SupportCaseSideSheet_default = SupportCaseSideSheet;
373
373
 
374
374
  //#endregion
375
375
  export { SupportCaseSideSheet_default as n, SupportCaseSideSheet as t };
376
- //# sourceMappingURL=SupportCaseSideSheet-DPfapAFC.js.map
376
+ //# sourceMappingURL=SupportCaseSideSheet-BTCZjI26.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupportCaseSideSheet-DPfapAFC.js","names":["LinearProgress","SupportCaseForm"],"sources":["../src/UI/support/SupportCaseForm.jsx","../src/UI/support/SupportCaseSideSheet.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { FluentTextFieldAutoComplete } from '../inputs/textField/FluentTextFieldAutoComplete';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport { Form, FormButtons, SubmitButton, Field } from '../../utilities/form';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useTranslation } from 'react-i18next';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { LinearProgress } from '../../UI/loading/LinearProgress';\nimport { useHistory } from 'react-router-dom';\nimport { ConfigService } from '../../configService';\n\nconst SupportCaseForm = ({\n onSubmit,\n initialValues = {},\n handleCloseSupportCaseSideSheet\n}) => {\n const { t } = useTranslation();\n const user = useUser();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const [severityOptions, setSeverityOptions] = useState([]);\n const [environmentOptions, setEnvironmentOptions] = useState([]);\n const [brandOptions, setBrandOptions] = useState([]);\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [unityState, setUnityState] = useState();\n const [loadingState, setLoadingState] = useState(false);\n const baseUrl = ConfigService.productV1ApiUrl; // backend base url\n const unityUrl = ConfigService.supportV1ApiUrl; // unity support bypass\n const unityEnv = ConfigService.config.UNITY_ENVIRONMENT; // unity environment\n const [uploadKey, setUploadKey] = useState(0);\n const [restrictedFiles, setRestrictedFiles] = useState({});\n const history = useHistory();\n\n const getFileRestrictions = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/supportFileUploadRestrictions`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n const getFileRestrictionsUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `evergrncaseattachment/get-attachment-restrictions`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getSeverityUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `caseseverity/get-case-severity`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getEnvironmentUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `evergrncaseenvironment/get-case-environments`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getSeverity = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/severities`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n const getEnvironment = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/environments`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n // externalUuid will be needed part of the post request to submit ticket\n const getTenantCaseAccount = useCallback(\n async () =>\n apiMutate(\n baseUrl,\n `udpunitysupport/tenantCaseAccount/` + user?.currentTenantId,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [baseUrl, user?.currentTenantId]\n );\n\n // list of products to choose from when in Support Portal, if cooresponsding externalUuid is null, default to devops support GUID\n const getTenantCaseBrand = useCallback(\n async () =>\n apiMutate(ConfigService.tenantV2ApiUrl, `tenant/products`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [user?.currentTenantId]\n );\n\n const getTenantSubscribedProducts = useCallback(\n async () =>\n apiMutate(\n ConfigService.tenantV1ApiUrl,\n `tenantProducts?tenantId=${user?.currentTenantId}`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n // TODO: this data should come from Unity table -> Unity UEM -> Unity Support\n const getCasesEnv = {\n Development: '100000003',\n Build: '100000003',\n Staging: '100000001',\n Production: '100000000'\n };\n\n function getCaseEnvironment() {\n return getCasesEnv[unityEnv] || '100000003'; // default to dev\n }\n\n let brandId = '416b0ca8-e679-ef11-ac20-6045bdcd3d86'; // Default to devops support ID, should come from API\n\n const postCaseAttachment = useCallback(\n (values) => {\n const data = new FormData();\n uploadedFiles.forEach((file) => {\n data.append('files', file);\n });\n data.append('EvergrnCaseName', values.title);\n data.append('EvergrnDescription', values.description);\n data.append('EvergrnCaseEnvironment', getCaseEnvironment());\n data.append('EvergrnSeverity', values.severity.value);\n // Find the corresponding brand ID using environment variable's product ID\n const matchingProduct = brandOptions.find(\n (product) => product.productId == ConfigService.config.UNITY_PRODUCT_ID\n );\n if (matchingProduct && matchingProduct.value) {\n brandId = matchingProduct.value;\n }\n data.append('EvergrnBrandId', brandId);\n data.append(\n 'UDPDriveUnityProductId',\n ConfigService.config.UNITY_PRODUCT_ID\n );\n\n return apiMutate(\n baseUrl,\n `udpunitysupport/case`,\n {\n method: 'post',\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n },\n { data: data }\n );\n },\n [baseUrl, uploadedFiles, getCaseEnvironment, brandOptions, brandId]\n );\n\n const postCaseAttachmentUnity = useCallback(\n (values) => {\n const data = new FormData();\n uploadedFiles.forEach((file) => {\n data.append('files', file);\n });\n data.append('EvergrnCaseName', values.title);\n data.append('EvergrnDescription', values.description);\n data.append('EvergrnCaseEnvironment', getCaseEnvironment());\n data.append('EvergrnSeverity', values.severity.value);\n data.append('EvergrnBrandId', values.product?.value || brandId);\n data.append(\n 'UDPDriveUnityProductId',\n ConfigService.config.UNITY_PRODUCT_ID\n );\n\n return apiMutate(\n unityUrl,\n `evergrncase/post-case`,\n {\n method: 'post',\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n },\n { data: data }\n );\n },\n [unityUrl, uploadedFiles, getCaseEnvironment, brandId]\n );\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === '1') {\n setUnityState(true);\n } else {\n setUnityState(false);\n }\n\n let getFileRestrictionsResponse = unityState\n ? await getFileRestrictionsUnity()\n : await getFileRestrictions();\n\n let severityResponse = unityState\n ? await getSeverityUnity()\n : await getSeverity();\n\n let environmentResponse = unityState\n ? await getEnvironmentUnity()\n : await getEnvironment();\n\n if (getFileRestrictionsResponse) {\n const fileRestrictionsData = getFileRestrictionsResponse.data;\n setRestrictedFiles(fileRestrictionsData);\n }\n\n if (severityResponse) {\n const severityOptions = severityResponse.data.map((item) => ({\n value: item.externalUUID.toString(),\n label: item.name\n }));\n setSeverityOptions(severityOptions);\n }\n\n if (environmentResponse) {\n const environmentOptions = environmentResponse.data.map((item) => ({\n value: item.evergrnCaseEnvironmentValue.toString(),\n label: item.evergrnCaseEnvironmentLabel\n }));\n setEnvironmentOptions(environmentOptions);\n }\n\n // fetch brand data\n const brandResponse = await getTenantCaseBrand();\n const tenantSubscribedProductsResponse =\n await getTenantSubscribedProducts();\n\n if (brandResponse && tenantSubscribedProductsResponse) {\n const brandArray = brandResponse.data.filter(\n (brandItem) => brandItem.externalUuid != null\n );\n const subscribedArray = tenantSubscribedProductsResponse.data;\n\n const brandOptions = subscribedArray\n .map((subscribedProduct) => {\n const foundProduct = brandArray.find(\n (brandItem) =>\n brandItem.productId === subscribedProduct.productId\n );\n\n if (!foundProduct) {\n return null;\n }\n\n return {\n ...subscribedProduct,\n value: foundProduct.externalUuid?.toString(), // Cases Brand ID\n label: foundProduct.name.toString()\n };\n })\n .filter(Boolean);\n\n setBrandOptions(brandOptions);\n }\n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n\n fetchData();\n }, [\n unityState,\n getSeverityUnity,\n getEnvironmentUnity,\n getFileRestrictionsUnity,\n getFileRestrictions,\n getSeverity,\n getEnvironment,\n getTenantCaseBrand,\n getTenantSubscribedProducts\n ]);\n\n const handleUploadFile = (files) => {\n const identifiedRestrictedExtensions = [];\n const identifiedRestrictedFileSizes = [];\n\n files.forEach((file) => {\n const fileExtension = file.name.includes('.')\n ? '.' + file.name.split('.').pop().toLowerCase()\n : '';\n\n if (restrictedFiles.restrictedExtensions.includes(fileExtension)) {\n identifiedRestrictedExtensions.push(fileExtension);\n }\n\n if (file.size > restrictedFiles.maxFileSize) {\n identifiedRestrictedFileSizes.push(file.name);\n }\n });\n\n const isAcceptableExtensions = identifiedRestrictedExtensions.length === 0;\n const isAcceptableSizes = identifiedRestrictedFileSizes.length === 0;\n\n if (!(isAcceptableExtensions && isAcceptableSizes)) {\n if (!isAcceptableExtensions) {\n const uniqueExtensions = [...new Set(identifiedRestrictedExtensions)];\n const errorText = `Restricted file type(s). ${uniqueExtensions.join(\n ', '\n )}`;\n enqueueSnackbar(t(errorText), {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' }\n });\n }\n\n if (!isAcceptableSizes) {\n const errorText = `File(s) are too large (5MB limit). ${identifiedRestrictedFileSizes.join(\n ', '\n )}`;\n enqueueSnackbar(t(errorText), {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' }\n });\n }\n\n setUploadKey((prevKey) => prevKey + 1);\n return;\n }\n\n setUploadedFiles(files);\n };\n\n const handleSubmit = async (values) => {\n setLoadingState(true);\n\n let response;\n try {\n response = unityState\n ? await postCaseAttachmentUnity(values)\n : await postCaseAttachment(values);\n } catch (apiError) {\n console.error('post Case API call failed:', apiError);\n enqueueSnackbar(t('Submission failed'), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-close'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n close\n </Button>\n )\n });\n setLoadingState(false);\n return { submitError: apiError.message };\n }\n\n // Check for valid response\n if (!response?.data?.evergrnCaseId) {\n console.error('API call succeeded but no case ID returned');\n enqueueSnackbar(t('Submission failed - No case ID returned'), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-close'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n close\n </Button>\n )\n });\n setLoadingState(false);\n return { submitError: 'No case ID was returned from the server' };\n }\n\n window.dispatchEvent(new CustomEvent('support-case-created'));\n\n try {\n handleCloseSupportCaseSideSheet();\n } catch (closeError) {\n console.error('Error closing sheet:', closeError);\n }\n\n enqueueSnackbar(t(`Support Case Created. View your cases`), {\n variant: 'success',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-here'\n onClick={() => {\n try {\n const caseId = response.data.evergrnCaseId;\n let url;\n if (unityState) {\n url = `/support/cases/${caseId}`;\n history.push(url);\n } else {\n url = `${ConfigService.config.UNITY_URL}/support/cases/${caseId}`;\n window.location.href = url;\n }\n closeSnackbar(key);\n } catch (navError) {\n console.error('Navigation error:', navError);\n closeSnackbar(key);\n }\n }}\n >\n here\n </Button>\n )\n });\n\n try {\n await onSubmit(values);\n } catch (onSubmitError) {\n console.error('Error in onSubmit:', onSubmitError);\n }\n setLoadingState(false);\n };\n\n return (\n <>\n {loadingState && <LinearProgress />}\n <Form onSubmit={handleSubmit}>\n <AmbientCard fullWidth>\n <Field\n component={FluentTextField}\n name='title'\n label={t('Title')}\n placeholder={t('Enter a brief title for your issue')}\n variant='outlined'\n fullWidth\n autoFocus\n required={true}\n />\n {unityState && (\n <Field\n component={FluentTextFieldAutoComplete}\n name='product'\n label={t('Product')}\n variant='outlined'\n margin='normal'\n size='small'\n options={brandOptions}\n optionKey='label'\n style={{ width: '100%' }}\n disableClearable\n id='udpRecord-CreateSupportCaseForm-product'\n udprecordid='udpRecord-CreateSupportCaseForm-product'\n />\n )}\n <Field\n component={FluentTextFieldAutoComplete}\n name='severity'\n label={t('Severity')}\n variant='outlined'\n margin='normal'\n size='small'\n options={severityOptions}\n optionKey='label'\n style={{ width: '100%' }}\n disableClearable\n id='udpRecord-CreateSupportCaseForm-severity'\n udprecordid='udpRecord-CreateSupportCaseForm-severity'\n required={true}\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <AmbientCard fullWidth>\n <Field\n name='description'\n component={FluentTextField}\n multiline={true}\n rows={10}\n minRows={3}\n maxRows={20}\n required={true}\n label='Description'\n placeholder='Please describe your issue in detail'\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <AmbientCard fullWidth>\n <DragDropFileUpload\n key={uploadKey}\n title='Attachments'\n multiple={true}\n minHeight='100px'\n maxHeight='400px'\n acceptedFiles='.pdf,.doc,.docx,.png,.jpg,.jpeg'\n handleUploadFile={handleUploadFile}\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <FormButtons>\n <SubmitButton\n color='primary'\n variant='contained'\n disablePristine={false}\n >\n Submit Ticket\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n );\n};\n\nexport default SupportCaseForm;\n","import React from 'react';\nimport { SideSheet } from '../surfaces/SideSheet';\nimport SupportCaseForm from './SupportCaseForm';\n\nexport const SupportCaseSideSheet = ({\n open,\n onClose,\n onSubmit,\n initialValues,\n handleCloseSupportCaseSideSheet,\n loading\n}) => {\n return (\n <SideSheet\n open={open}\n onClose={onClose}\n title=\"Submit Support Ticket\"\n width={600} // You can adjust the width as needed\n >\n <SupportCaseForm\n onSubmit={onSubmit}\n initialValues={initialValues}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n loading={loading}\n />\n </SideSheet>\n );\n};\n\nexport default SupportCaseSideSheet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SupportCaseSideSheet-BTCZjI26.js","names":["LinearProgress","SupportCaseForm"],"sources":["../src/UI/support/SupportCaseForm.jsx","../src/UI/support/SupportCaseSideSheet.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { FluentTextField } from '../inputs/textField/FluentTextField';\nimport { FluentTextFieldAutoComplete } from '../inputs/textField/FluentTextFieldAutoComplete';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport { Form, FormButtons, SubmitButton, Field } from '../../utilities/form';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useTranslation } from 'react-i18next';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { LinearProgress } from '../../UI/loading/LinearProgress';\nimport { useHistory } from 'react-router-dom';\nimport { ConfigService } from '../../configService';\n\nconst SupportCaseForm = ({\n onSubmit,\n initialValues = {},\n handleCloseSupportCaseSideSheet\n}) => {\n const { t } = useTranslation();\n const user = useUser();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const [severityOptions, setSeverityOptions] = useState([]);\n const [environmentOptions, setEnvironmentOptions] = useState([]);\n const [brandOptions, setBrandOptions] = useState([]);\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [unityState, setUnityState] = useState();\n const [loadingState, setLoadingState] = useState(false);\n const baseUrl = ConfigService.productV1ApiUrl; // backend base url\n const unityUrl = ConfigService.supportV1ApiUrl; // unity support bypass\n const unityEnv = ConfigService.config.UNITY_ENVIRONMENT; // unity environment\n const [uploadKey, setUploadKey] = useState(0);\n const [restrictedFiles, setRestrictedFiles] = useState({});\n const history = useHistory();\n\n const getFileRestrictions = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/supportFileUploadRestrictions`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n const getFileRestrictionsUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `evergrncaseattachment/get-attachment-restrictions`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getSeverityUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `caseseverity/get-case-severity`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getEnvironmentUnity = useCallback(\n async () =>\n apiMutate(unityUrl, `evergrncaseenvironment/get-case-environments`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [unityUrl, user?.currentTenantId]\n );\n\n const getSeverity = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/severities`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n const getEnvironment = useCallback(\n async () =>\n apiMutate(baseUrl, `udpunitysupport/environments`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [baseUrl, user?.currentTenantId]\n );\n\n // externalUuid will be needed part of the post request to submit ticket\n const getTenantCaseAccount = useCallback(\n async () =>\n apiMutate(\n baseUrl,\n `udpunitysupport/tenantCaseAccount/` + user?.currentTenantId,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [baseUrl, user?.currentTenantId]\n );\n\n // list of products to choose from when in Support Portal, if cooresponsding externalUuid is null, default to devops support GUID\n const getTenantCaseBrand = useCallback(\n async () =>\n apiMutate(ConfigService.tenantV2ApiUrl, `tenant/products`, {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }),\n [user?.currentTenantId]\n );\n\n const getTenantSubscribedProducts = useCallback(\n async () =>\n apiMutate(\n ConfigService.tenantV1ApiUrl,\n `tenantProducts?tenantId=${user?.currentTenantId}`,\n {\n method: 'get',\n headers: {\n currentTenantId: user?.currentTenantId\n }\n }\n ),\n [user?.currentTenantId]\n );\n\n // TODO: this data should come from Unity table -> Unity UEM -> Unity Support\n const getCasesEnv = {\n Development: '100000003',\n Build: '100000003',\n Staging: '100000001',\n Production: '100000000'\n };\n\n function getCaseEnvironment() {\n return getCasesEnv[unityEnv] || '100000003'; // default to dev\n }\n\n let brandId = '416b0ca8-e679-ef11-ac20-6045bdcd3d86'; // Default to devops support ID, should come from API\n\n const postCaseAttachment = useCallback(\n (values) => {\n const data = new FormData();\n uploadedFiles.forEach((file) => {\n data.append('files', file);\n });\n data.append('EvergrnCaseName', values.title);\n data.append('EvergrnDescription', values.description);\n data.append('EvergrnCaseEnvironment', getCaseEnvironment());\n data.append('EvergrnSeverity', values.severity.value);\n // Find the corresponding brand ID using environment variable's product ID\n const matchingProduct = brandOptions.find(\n (product) => product.productId == ConfigService.config.UNITY_PRODUCT_ID\n );\n if (matchingProduct && matchingProduct.value) {\n brandId = matchingProduct.value;\n }\n data.append('EvergrnBrandId', brandId);\n data.append(\n 'UDPDriveUnityProductId',\n ConfigService.config.UNITY_PRODUCT_ID\n );\n\n return apiMutate(\n baseUrl,\n `udpunitysupport/case`,\n {\n method: 'post',\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n },\n { data: data }\n );\n },\n [baseUrl, uploadedFiles, getCaseEnvironment, brandOptions, brandId]\n );\n\n const postCaseAttachmentUnity = useCallback(\n (values) => {\n const data = new FormData();\n uploadedFiles.forEach((file) => {\n data.append('files', file);\n });\n data.append('EvergrnCaseName', values.title);\n data.append('EvergrnDescription', values.description);\n data.append('EvergrnCaseEnvironment', getCaseEnvironment());\n data.append('EvergrnSeverity', values.severity.value);\n data.append('EvergrnBrandId', values.product?.value || brandId);\n data.append(\n 'UDPDriveUnityProductId',\n ConfigService.config.UNITY_PRODUCT_ID\n );\n\n return apiMutate(\n unityUrl,\n `evergrncase/post-case`,\n {\n method: 'post',\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n },\n { data: data }\n );\n },\n [unityUrl, uploadedFiles, getCaseEnvironment, brandId]\n );\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n if (ConfigService.config.UNITY_PRODUCT_ID === '1') {\n setUnityState(true);\n } else {\n setUnityState(false);\n }\n\n let getFileRestrictionsResponse = unityState\n ? await getFileRestrictionsUnity()\n : await getFileRestrictions();\n\n let severityResponse = unityState\n ? await getSeverityUnity()\n : await getSeverity();\n\n let environmentResponse = unityState\n ? await getEnvironmentUnity()\n : await getEnvironment();\n\n if (getFileRestrictionsResponse) {\n const fileRestrictionsData = getFileRestrictionsResponse.data;\n setRestrictedFiles(fileRestrictionsData);\n }\n\n if (severityResponse) {\n const severityOptions = severityResponse.data.map((item) => ({\n value: item.externalUUID.toString(),\n label: item.name\n }));\n setSeverityOptions(severityOptions);\n }\n\n if (environmentResponse) {\n const environmentOptions = environmentResponse.data.map((item) => ({\n value: item.evergrnCaseEnvironmentValue.toString(),\n label: item.evergrnCaseEnvironmentLabel\n }));\n setEnvironmentOptions(environmentOptions);\n }\n\n // fetch brand data\n const brandResponse = await getTenantCaseBrand();\n const tenantSubscribedProductsResponse =\n await getTenantSubscribedProducts();\n\n if (brandResponse && tenantSubscribedProductsResponse) {\n const brandArray = brandResponse.data.filter(\n (brandItem) => brandItem.externalUuid != null\n );\n const subscribedArray = tenantSubscribedProductsResponse.data;\n\n const brandOptions = subscribedArray\n .map((subscribedProduct) => {\n const foundProduct = brandArray.find(\n (brandItem) =>\n brandItem.productId === subscribedProduct.productId\n );\n\n if (!foundProduct) {\n return null;\n }\n\n return {\n ...subscribedProduct,\n value: foundProduct.externalUuid?.toString(), // Cases Brand ID\n label: foundProduct.name.toString()\n };\n })\n .filter(Boolean);\n\n setBrandOptions(brandOptions);\n }\n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n\n fetchData();\n }, [\n unityState,\n getSeverityUnity,\n getEnvironmentUnity,\n getFileRestrictionsUnity,\n getFileRestrictions,\n getSeverity,\n getEnvironment,\n getTenantCaseBrand,\n getTenantSubscribedProducts\n ]);\n\n const handleUploadFile = (files) => {\n const identifiedRestrictedExtensions = [];\n const identifiedRestrictedFileSizes = [];\n\n files.forEach((file) => {\n const fileExtension = file.name.includes('.')\n ? '.' + file.name.split('.').pop().toLowerCase()\n : '';\n\n if (restrictedFiles.restrictedExtensions.includes(fileExtension)) {\n identifiedRestrictedExtensions.push(fileExtension);\n }\n\n if (file.size > restrictedFiles.maxFileSize) {\n identifiedRestrictedFileSizes.push(file.name);\n }\n });\n\n const isAcceptableExtensions = identifiedRestrictedExtensions.length === 0;\n const isAcceptableSizes = identifiedRestrictedFileSizes.length === 0;\n\n if (!(isAcceptableExtensions && isAcceptableSizes)) {\n if (!isAcceptableExtensions) {\n const uniqueExtensions = [...new Set(identifiedRestrictedExtensions)];\n const errorText = `Restricted file type(s). ${uniqueExtensions.join(\n ', '\n )}`;\n enqueueSnackbar(t(errorText), {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' }\n });\n }\n\n if (!isAcceptableSizes) {\n const errorText = `File(s) are too large (5MB limit). ${identifiedRestrictedFileSizes.join(\n ', '\n )}`;\n enqueueSnackbar(t(errorText), {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' }\n });\n }\n\n setUploadKey((prevKey) => prevKey + 1);\n return;\n }\n\n setUploadedFiles(files);\n };\n\n const handleSubmit = async (values) => {\n setLoadingState(true);\n\n let response;\n try {\n response = unityState\n ? await postCaseAttachmentUnity(values)\n : await postCaseAttachment(values);\n } catch (apiError) {\n console.error('post Case API call failed:', apiError);\n enqueueSnackbar(t('Submission failed'), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-close'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n close\n </Button>\n )\n });\n setLoadingState(false);\n return { submitError: apiError.message };\n }\n\n // Check for valid response\n if (!response?.data?.evergrnCaseId) {\n console.error('API call succeeded but no case ID returned');\n enqueueSnackbar(t('Submission failed - No case ID returned'), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-close'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n close\n </Button>\n )\n });\n setLoadingState(false);\n return { submitError: 'No case ID was returned from the server' };\n }\n\n window.dispatchEvent(new CustomEvent('support-case-created'));\n\n try {\n handleCloseSupportCaseSideSheet();\n } catch (closeError) {\n console.error('Error closing sheet:', closeError);\n }\n\n enqueueSnackbar(t(`Support Case Created. View your cases`), {\n variant: 'success',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='primary'\n size='small'\n id='udpRecord-SupportCaseForm-here'\n onClick={() => {\n try {\n const caseId = response.data.evergrnCaseId;\n let url;\n if (unityState) {\n url = `/support/cases/${caseId}`;\n history.push(url);\n } else {\n url = `${ConfigService.config.UNITY_URL}/support/cases/${caseId}`;\n window.location.href = url;\n }\n closeSnackbar(key);\n } catch (navError) {\n console.error('Navigation error:', navError);\n closeSnackbar(key);\n }\n }}\n >\n here\n </Button>\n )\n });\n\n try {\n await onSubmit(values);\n } catch (onSubmitError) {\n console.error('Error in onSubmit:', onSubmitError);\n }\n setLoadingState(false);\n };\n\n return (\n <>\n {loadingState && <LinearProgress />}\n <Form onSubmit={handleSubmit}>\n <AmbientCard fullWidth>\n <Field\n component={FluentTextField}\n name='title'\n label={t('Title')}\n placeholder={t('Enter a brief title for your issue')}\n variant='outlined'\n fullWidth\n autoFocus\n required={true}\n />\n {unityState && (\n <Field\n component={FluentTextFieldAutoComplete}\n name='product'\n label={t('Product')}\n variant='outlined'\n margin='normal'\n size='small'\n options={brandOptions}\n optionKey='label'\n style={{ width: '100%' }}\n disableClearable\n id='udpRecord-CreateSupportCaseForm-product'\n udprecordid='udpRecord-CreateSupportCaseForm-product'\n />\n )}\n <Field\n component={FluentTextFieldAutoComplete}\n name='severity'\n label={t('Severity')}\n variant='outlined'\n margin='normal'\n size='small'\n options={severityOptions}\n optionKey='label'\n style={{ width: '100%' }}\n disableClearable\n id='udpRecord-CreateSupportCaseForm-severity'\n udprecordid='udpRecord-CreateSupportCaseForm-severity'\n required={true}\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <AmbientCard fullWidth>\n <Field\n name='description'\n component={FluentTextField}\n multiline={true}\n rows={10}\n minRows={3}\n maxRows={20}\n required={true}\n label='Description'\n placeholder='Please describe your issue in detail'\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <AmbientCard fullWidth>\n <DragDropFileUpload\n key={uploadKey}\n title='Attachments'\n multiple={true}\n minHeight='100px'\n maxHeight='400px'\n acceptedFiles='.pdf,.doc,.docx,.png,.jpg,.jpeg'\n handleUploadFile={handleUploadFile}\n />\n </AmbientCard>\n\n <LayoutUnit unit='xxs' />\n\n <FormButtons>\n <SubmitButton\n color='primary'\n variant='contained'\n disablePristine={false}\n >\n Submit Ticket\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n );\n};\n\nexport default SupportCaseForm;\n","import React from 'react';\nimport { SideSheet } from '../surfaces/SideSheet';\nimport SupportCaseForm from './SupportCaseForm';\n\nexport const SupportCaseSideSheet = ({\n open,\n onClose,\n onSubmit,\n initialValues,\n handleCloseSupportCaseSideSheet,\n loading\n}) => {\n return (\n <SideSheet\n open={open}\n onClose={onClose}\n title=\"Submit Support Ticket\"\n width={600} // You can adjust the width as needed\n >\n <SupportCaseForm\n onSubmit={onSubmit}\n initialValues={initialValues}\n handleCloseSupportCaseSideSheet={handleCloseSupportCaseSideSheet}\n loading={loading}\n />\n </SideSheet>\n );\n};\n\nexport default SupportCaseSideSheet;\n"],"mappings":"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"}
@@ -28,6 +28,6 @@ import "./LinearProgress-DM2DNWCe.js";
28
28
  import "./FluentTextField-CXvZawOG.js";
29
29
  import "./formatBytes-Cq2rh3hB.js";
30
30
  import "./DragDropFileUpload-TFHchivz.js";
31
- import { n as SupportCaseSideSheet_default, t as SupportCaseSideSheet } from "./SupportCaseSideSheet-DPfapAFC.js";
31
+ import { n as SupportCaseSideSheet_default, t as SupportCaseSideSheet } from "./SupportCaseSideSheet-BTCZjI26.js";
32
32
 
33
33
  export { SupportCaseSideSheet, SupportCaseSideSheet_default as default };
@@ -1,4 +1,4 @@
1
1
  import { t as Iframe } from "../../Iframe-BfXbTs-j.js";
2
- import "../../iframe-CM2OOxOu.js";
2
+ import "../../iframe-TEQyCzjj.js";
3
3
 
4
4
  export { Iframe };
package/dist/UI/index.js CHANGED
@@ -177,9 +177,8 @@ import "../UdpXYMultiSeriesChart-BLyAiDEL.js";
177
177
  import { t as FileViewer } from "../FileViewer-D4N4iN6a.js";
178
178
  import "../amcharts-C-oU6vTx.js";
179
179
  import { t as InsightRenderer } from "../InsightRenderer-BwE5OX4C.js";
180
- import { t as UdpMap } from "../UdpMap-DB0qsBfI.js";
181
- import { t as SupportCaseSideSheet } from "../SupportCaseSideSheet-DPfapAFC.js";
182
- import { t as InputsExample } from "../InputsExample-ClC-vFVK.js";
180
+ import { t as UdpMap } from "../UdpMap-BgkNp2X2.js";
181
+ import { t as SupportCaseSideSheet } from "../SupportCaseSideSheet-BTCZjI26.js";
183
182
  import { t as VirtualForm } from "../VirtualForm-Dj5FMp9u.js";
184
183
  import "../stepper-sZXSP0dk.js";
185
184
  import "../utilityHeader-BsUlwtE7.js";
@@ -217,8 +216,7 @@ import "../fluentTimeline-BbvrZFSz.js";
217
216
  import "../timeline-x3kpYbLD.js";
218
217
  import "../maps-D2whP8Zh.js";
219
218
  import "../advancedSearchBuilder-DAGBcP1-.js";
220
- import "../demos-D1hYYoOq.js";
221
- import "../templates-Cz1v1M4q.js";
222
- import "../iframe-CM2OOxOu.js";
219
+ import "../templates-CQ8zAjnU.js";
220
+ import "../iframe-TEQyCzjj.js";
223
221
 
224
- 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, InputsExample, 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, UdpMap, UdpMapComponent, UdpMapToolbar, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UtilityBar, UtilitySearch, UtilitySideBar, UtilityTabHeader, VirtualForm, a11yProps, getFieldValuesForProperties, getPropertiesForFieldValues, getSuccessAction, getThresholdStatus, toggleHeader, useAllTeleporters };
222
+ 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, UdpMap, UdpMapComponent, UdpMapToolbar, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UtilityBar, UtilitySearch, UtilitySideBar, UtilityTabHeader, VirtualForm, a11yProps, getFieldValuesForProperties, getPropertiesForFieldValues, getSuccessAction, getThresholdStatus, toggleHeader, useAllTeleporters };
@@ -64,6 +64,6 @@ import "../../../EmptyStateDisplay-CVeCBelv.js";
64
64
  import "../../../Grid-CQe49OTv.js";
65
65
  import "../../../FluentTimePicker-BfGJcPck.js";
66
66
  import "../../../FormControlLabel-CtB6GV-I.js";
67
- import { n as FieldType, t as FieldArrayCard } from "../../../FieldArrayCard-56TLTaZc.js";
67
+ import { n as FieldType, t as FieldArrayCard } from "../../../FieldArrayCard-KGSDXwrq.js";
68
68
 
69
69
  export { FieldArrayCard, FieldType };
@@ -1,5 +1,5 @@
1
1
  import { n as UdpMapComponent, t as UdpMapToolbar } from "../../UdpMapToolbar-DBzTPyjO.js";
2
- import { t as UdpMap } from "../../UdpMap-DB0qsBfI.js";
2
+ import { t as UdpMap } from "../../UdpMap-BgkNp2X2.js";
3
3
  import "../../maps-D2whP8Zh.js";
4
4
 
5
5
  export { UdpMap, UdpMapComponent, UdpMapToolbar };
@@ -28,7 +28,7 @@ import "../../LinearProgress-DM2DNWCe.js";
28
28
  import "../../FluentTextField-CXvZawOG.js";
29
29
  import "../../formatBytes-Cq2rh3hB.js";
30
30
  import "../../DragDropFileUpload-TFHchivz.js";
31
- import { t as SupportCaseSideSheet } from "../../SupportCaseSideSheet-DPfapAFC.js";
31
+ import { t as SupportCaseSideSheet } from "../../SupportCaseSideSheet-BTCZjI26.js";
32
32
  import "../../support-BhMVhBcD.js";
33
33
 
34
34
  export { SupportCaseSideSheet };
@@ -6,6 +6,6 @@ import "../../Ellipse-DGTaApGj.js";
6
6
  import "../../Token-rFpVjQT_.js";
7
7
  import "../../ExtenderToggle-CKt1tY6l.js";
8
8
  import { n as SapFlexibleTemplate, t as ToggleSection } from "../../ToggleSection-D08xH-j8.js";
9
- import "../../templates-Cz1v1M4q.js";
9
+ import "../../templates-CQ8zAjnU.js";
10
10
 
11
11
  export { DraggableSidebarTemplate, OpenPage, SapFlexibleTemplate, ToggleSection };
@@ -20,6 +20,7 @@ import { t as IconRenderer } from "../../../../IconRenderer-B2FUVnhs.js";
20
20
  import "../../../../FluentDialog-B5ZxvX1E.js";
21
21
  import "../../../../IconButtonWithToolTip-DswviiJB.js";
22
22
  import { t as ActionsRenderer } from "../../../../ActionsRenderer-B1ImXko3.js";
23
- import { t as StatusCellRenderer } from "../../../../StatusCellRenderer-DOYDkiZu.js";
23
+ import { t as StatusCellRenderer } from "../../../../StatusCellRenderer-DK3MexwY.js";
24
+ import "../../../../renderers-BI4w5Al3.js";
24
25
 
25
26
  export { ActionsRenderer, IconRenderer, StatusCellRenderer };
@@ -1,6 +1,6 @@
1
1
  import "../../../FluentIcon-DQ6nSDJg.js";
2
2
  import "../../../FUIMenuItem-BZJKJa91.js";
3
3
  import "../../../ChartSummaryToggle-x9LKkWUM.js";
4
- import "../../../SimpleTable-BMjywRbx.js";
4
+ import "../../../SimpleTable-DX9xdKYK.js";
5
5
 
6
6
  export { };
@@ -5,7 +5,7 @@ import "../../../../FluentCard-C3qSYfiz.js";
5
5
  import "../../../../useId-I-OmRBmB.js";
6
6
  import "../../../../FUIMenuItem-BZJKJa91.js";
7
7
  import { t as WidgetCard_default } from "../../../../WidgetCard-CDqYxK5O.js";
8
- import { t as SimpleTable_default } from "../../../../SimpleTable-BMjywRbx.js";
8
+ import { t as SimpleTable_default } from "../../../../SimpleTable-DX9xdKYK.js";
9
9
  import React, { forwardRef } from "react";
10
10
 
11
11
  //#region src/UI/widgets/library/TableWidget/TableWidget.jsx