udp-react-enterprise-component-library 25.18.1-beta.23 → 25.18.1-beta.25

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 (41) hide show
  1. package/dist/{MenuPage-B4ZN_tQt.js → MenuPage-D-GljLi1.js} +21 -4
  2. package/dist/MenuPage-D-GljLi1.js.map +1 -0
  3. package/dist/{MenuPage-HFTfG0b-.js → MenuPage-DZl_yJC2.js} +1 -1
  4. package/dist/{UdpFormsBuilderPage-h5Q62J02.js → UdpFormsBuilderPage-CoNaXBSz.js} +8 -4
  5. package/dist/UdpFormsBuilderPage-CoNaXBSz.js.map +1 -0
  6. package/dist/{UdpFormsListPage-D6eyoogV.js → UdpFormsListPage-BNgD_gIh.js} +9 -3
  7. package/dist/{UdpFormsListPage-D6eyoogV.js.map → UdpFormsListPage-BNgD_gIh.js.map} +1 -1
  8. package/dist/{UdpFormsSubmissionGrid-mPVNbJ97.js → UdpFormsSubmissionGrid-bDwM_jk1.js} +2 -2
  9. package/dist/{UdpFormsSubmissionGrid-mPVNbJ97.js.map → UdpFormsSubmissionGrid-bDwM_jk1.js.map} +1 -1
  10. package/dist/{UdpPages-DXB-xgq5.js → UdpPages-CDU_r1sf.js} +3 -3
  11. package/dist/{UdpPages-DXB-xgq5.js.map → UdpPages-CDU_r1sf.js.map} +1 -1
  12. package/dist/{UdpRoutes-Bbd0O-Yg.js → UdpRoutes-f3JxaT47.js} +2 -2
  13. package/dist/{UdpRoutes-Bbd0O-Yg.js.map → UdpRoutes-f3JxaT47.js.map} +1 -1
  14. package/dist/index.js +8 -8
  15. package/dist/menuPage/index.js +2 -2
  16. package/dist/{menuPage-Df5ucoQW.js → menuPage-DPvDtKpN.js} +7 -5
  17. package/dist/menuPage-DPvDtKpN.js.map +1 -0
  18. package/dist/routes/index.js +1 -1
  19. package/dist/types/src/index.d.ts +2 -0
  20. package/dist/types/src/index.d.ts.map +1 -1
  21. package/dist/types/src/menuPage/CustomMenuPage.d.ts +3 -1
  22. package/dist/types/src/menuPage/CustomMenuPage.d.ts.map +1 -1
  23. package/dist/types/src/menuPage/MenuPage.d.ts.map +1 -1
  24. package/dist/types/src/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.d.ts +1 -1
  25. package/dist/types/src/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.d.ts.map +1 -1
  26. package/dist/types/src/udp/pages/UdpFormsBuilderPage/index.d.ts +1 -1
  27. package/dist/types/src/udp/pages/UdpFormsBuilderPage/index.d.ts.map +1 -1
  28. package/dist/types/src/udp/pages/UdpFormsListPage/UdpFormsListPage.d.ts.map +1 -1
  29. package/dist/types/src/udp/pages/UdpFormsListPage/index.d.ts +1 -1
  30. package/dist/types/src/udp/pages/UdpFormsListPage/index.d.ts.map +1 -1
  31. package/dist/types/tsconfig.tsbuildinfo +1 -1
  32. package/dist/udp/pages/UdpFormsBuilderPage/index.js +2 -2
  33. package/dist/udp/pages/UdpFormsListPage/index.js +2 -2
  34. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +3 -3
  35. package/dist/udp/pages/UdpPages/index.js +3 -3
  36. package/dist/udp/pages/index.js +3 -3
  37. package/export-map.json +4 -2
  38. package/package.json +1 -1
  39. package/dist/MenuPage-B4ZN_tQt.js.map +0 -1
  40. package/dist/UdpFormsBuilderPage-h5Q62J02.js.map +0 -1
  41. package/dist/menuPage-Df5ucoQW.js.map +0 -1
@@ -68,7 +68,7 @@ const MenuPage = (props) => {
68
68
  const user = useUser();
69
69
  const { t } = useTranslation();
70
70
  const setLocationState = useSetLocationState();
71
- const { innerMenuOverride, mainContent, menuTitle, allowMissingPageParam = false } = props;
71
+ const { innerMenuOverride, mainContent, menuTitle, allowMissingPageParam = false, searchParamsTransformer } = props;
72
72
  const [menuItemsList, setMenuItemsList] = useState([]);
73
73
  const [selectedNode, setSelectedNode] = useState(null);
74
74
  const [sidebarExpanded, setSidebarExpanded] = useState(true);
@@ -79,6 +79,21 @@ const MenuPage = (props) => {
79
79
  const innerMenu = innerMenuOverride ?? fetchedInnerMenu;
80
80
  const { setSubHeaderActionHasChildren, setNavigationExpanded } = useShellStore();
81
81
  const [{ data: pageData, loading: pageLoading, error: pageError }] = useAxiosGet(ConfigService.tenantV1ApiUrl, `page/${selectedNode?.properties?.page?.id}`, {}, !selectedNode?.properties?.page?.id, false);
82
+ const buildSearchString = useCallback((params, node, menuIndex) => {
83
+ if (typeof searchParamsTransformer === "function") {
84
+ const result = searchParamsTransformer({
85
+ searchParams: params,
86
+ node,
87
+ menuIndex,
88
+ location
89
+ });
90
+ if (result === null) return "";
91
+ if (result instanceof URLSearchParams) return result.toString();
92
+ if (typeof result === "string") return result;
93
+ if (result !== void 0) return String(result);
94
+ }
95
+ return params.toString();
96
+ }, [location, searchParamsTransformer]);
82
97
  const handleSelectedNode = useCallback((node, menuIndex) => {
83
98
  if (allowMissingPageParam) {
84
99
  const firstNode = menuItemsList?.[0];
@@ -94,9 +109,10 @@ const MenuPage = (props) => {
94
109
  }
95
110
  const searchParams = new URLSearchParams(location.search);
96
111
  searchParams.set("page", node.id);
112
+ const searchString = buildSearchString(searchParams, node, menuIndex);
97
113
  history.push({
98
114
  pathname: location.pathname,
99
- search: searchParams.toString()
115
+ search: searchString
100
116
  });
101
117
  setSelectedNode(node);
102
118
  setHasUnsavedChanges(false);
@@ -104,7 +120,8 @@ const MenuPage = (props) => {
104
120
  history,
105
121
  location,
106
122
  allowMissingPageParam,
107
- menuItemsList
123
+ menuItemsList,
124
+ buildSearchString
108
125
  ]);
109
126
  const handleDropNode = useCallback((sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {}, []);
110
127
  const handleSidebarExpandClick = useCallback(() => {
@@ -248,4 +265,4 @@ var MenuPage_default = MenuPage;
248
265
 
249
266
  //#endregion
250
267
  export { MenuPage_default as t };
251
- //# sourceMappingURL=MenuPage-B4ZN_tQt.js.map
268
+ //# sourceMappingURL=MenuPage-D-GljLi1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPage-D-GljLi1.js","names":[],"sources":["../src/menuPage/MenuPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useHistory, useLocation, Prompt } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { PageContainer } from '../page/PageContainer';\nimport { transformMenuPageTree } from '../utilities/tree/TreeUtilities';\nimport { BaseTreeMenu } from '../treeMenu/BaseTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nconst MenuPage = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const history = useHistory();\n const location = useLocation();\n const user = useUser();\n const { t } = useTranslation();\n const setLocationState = useSetLocationState();\n // Allow callers to provide an innerMenu directly (CustomMenuPage wrapper)\n const {\n innerMenuOverride,\n mainContent,\n menuTitle,\n allowMissingPageParam = false,\n searchParamsTransformer\n } = props;\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n // Just the menuInstanceId for an inner menu\n const innerMenuId = location.pathname.replace('/menupage/', '');\n\n const prevInnerMenuId = useRef(innerMenuId);\n\n const [{ data: fetchedInnerMenu, loading: menuLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `menus/${innerMenuId}`,\n {},\n !innerMenuId,\n false\n );\n\n const innerMenu = innerMenuOverride ?? fetchedInnerMenu;\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const [{ data: pageData, loading: pageLoading, error: pageError }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${selectedNode?.properties?.page?.id}`,\n {},\n !selectedNode?.properties?.page?.id,\n false\n );\n\n const buildSearchString = useCallback(\n (params, node, menuIndex) => {\n if (typeof searchParamsTransformer === 'function') {\n const result = searchParamsTransformer({\n searchParams: params,\n node,\n menuIndex,\n location\n });\n\n if (result === null) {\n return '';\n }\n\n if (result instanceof URLSearchParams) {\n return result.toString();\n }\n\n if (typeof result === 'string') {\n return result;\n }\n\n if (result !== undefined) {\n return String(result);\n }\n }\n\n return params.toString();\n },\n [location, searchParamsTransformer]\n );\n\n const handleSelectedNode = useCallback(\n (node, menuIndex) => {\n if (allowMissingPageParam) {\n const firstNode = menuItemsList?.[0];\n if (firstNode && String(node?.id) === String(firstNode.id)) {\n // If there is an existing query string, normalize back to the base path\n if (location.search) {\n history.replace({\n pathname: location.pathname,\n search: ''\n });\n }\n setSelectedNode(node);\n setHasUnsavedChanges(false);\n return;\n }\n }\n\n const searchParams = new URLSearchParams(location.search);\n searchParams.set('page', node.id);\n const searchString = buildSearchString(searchParams, node, menuIndex);\n\n history.push({\n pathname: location.pathname,\n search: searchString\n });\n setSelectedNode(node);\n setHasUnsavedChanges(false);\n },\n [\n history,\n location,\n allowMissingPageParam,\n menuItemsList,\n buildSearchString\n ]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n const findNodeById = useCallback((node, id) => {\n if (!node) return null;\n if (node.id.toString() === id) return node;\n if (node.children) {\n for (const child of node.children) {\n const found = findNodeById(child, id);\n if (found) return found;\n }\n }\n return null;\n }, []);\n\n useEffect(() => {\n const searchParams = new URLSearchParams(location.search);\n const pageId = searchParams.get('page');\n if (pageId && menuItemsList.length > 0) {\n // Search all root menu trees for the node\n let node = null;\n for (const tree of menuItemsList) {\n node = findNodeById(tree, pageId);\n if (node) break;\n }\n if (node && node.id !== selectedNode?.id) {\n setSelectedNode(node);\n setHasUnsavedChanges(false);\n }\n }\n }, [location.search, menuItemsList, findNodeById, selectedNode]);\n\n useEffect(() => {\n const mainPageIdChanged = prevInnerMenuId.current !== innerMenuId;\n\n if (innerMenu) {\n const list = [];\n innerMenu.menuItemInstanceStructureViews.forEach((menuInstance) => {\n const updatedMenu = transformMenuPageTree(menuInstance);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n });\n setMenuItemsList(list);\n\n // Find the node matching the current page param\n const searchParams = new URLSearchParams(location.search);\n const pageId = searchParams.get('page');\n let nodeToSelect = null;\n\n if (pageId && list.length > 0) {\n // Try to find the node with this id\n for (const tree of list) {\n nodeToSelect = findNodeById(tree, pageId);\n if (nodeToSelect) break;\n }\n }\n\n // If we found a node, select it. If not, select the first node.\n if (nodeToSelect) {\n setSelectedNode(nodeToSelect);\n setHasUnsavedChanges(false);\n setNavigationExpanded(false);\n } else if (list.length > 0) {\n const firstNode = list[0];\n if (allowMissingPageParam) {\n // Do not modify URL when missing page param; select first node only.\n setSelectedNode(firstNode);\n setHasUnsavedChanges(false);\n setNavigationExpanded(false);\n } else {\n // No valid page param, select first node and update URL\n searchParams.set('page', firstNode.id);\n history.replace({\n pathname: location.pathname,\n search: searchParams.toString()\n });\n setSelectedNode(firstNode);\n setHasUnsavedChanges(false);\n setNavigationExpanded(false);\n }\n }\n }\n prevInnerMenuId.current = innerMenuId;\n }, [\n innerMenu,\n setNavigationExpanded,\n history,\n location,\n innerMenuId,\n findNodeById,\n allowMissingPageParam\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n if (innerMenu) {\n setLocationState({ label: t(innerMenu?.name) });\n }\n }, [setLocationState, t, innerMenu]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <Prompt\n when={hasUnsavedChanges}\n message='You have unsaved changes. Are you sure you want to leave this page?'\n />\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={innerMenu?.name || menuTitle}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={innerMenuId}>\n {menuItemsList?.length > 0 &&\n !menuLoading &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <BaseTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {menuLoading && (\n <div className={classes.loader}>\n <NodeLoader loading={menuLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n {mainContent ? (\n typeof mainContent === 'function'\n ? mainContent({ selectedNode, menuItemsList })\n : mainContent\n ) : (\n selectedNode?.properties?.page?.id && (\n <PageContainer\n user={user}\n key={selectedNode?.id}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={{\n pageId: pageData?.pageId,\n entityName: selectedNode?.properties?.page?.entity?.entityName,\n pbiReportCode: selectedNode?.properties?.page?.pbiReportCode,\n requiredFieldsMap:\n selectedNode?.properties?.page?.requiredFieldMapping,\n udpTagId: selectedNode?.properties?.page?.udpTagId,\n queryId: selectedNode?.properties?.page?.queryId,\n inquiryTreeId: selectedNode?.properties?.page?.inquiryTreeId,\n setHasUnsavedChanges: setHasUnsavedChanges\n }}\n disableMargins={true}\n fromMenu={true}\n />\n )\n )}\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default MenuPage;\n"],"mappings":"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"}
@@ -53,6 +53,6 @@ import "./SidebarCollapseButton-pxq7unTx.js";
53
53
  import "./UtilityBarInport-BkkjGmSO.js";
54
54
  import "./UtilitySideBar-CkymNmr-.js";
55
55
  import "./BaseTreeMenu-DitVfbeZ.js";
56
- import { t as MenuPage_default } from "./MenuPage-B4ZN_tQt.js";
56
+ import { t as MenuPage_default } from "./MenuPage-D-GljLi1.js";
57
57
 
58
58
  export { MenuPage_default as default };
@@ -7,7 +7,7 @@ import { useHistory, useLocation } from "react-router-dom";
7
7
  import { UdpFormsBuilder } from "udp-react-stencil-component-library";
8
8
 
9
9
  //#region src/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.jsx
10
- const UdpFormsBuilderPage = () => {
10
+ const UdpFormsBuilderPage = (props) => {
11
11
  const user = useUser();
12
12
  const tenant = useTenant();
13
13
  const location = useLocation();
@@ -27,15 +27,19 @@ const UdpFormsBuilderPage = () => {
27
27
  getUserCallback: () => user,
28
28
  getTenantCallback: () => tenant,
29
29
  enqueueSnackbar,
30
- closeSnackbar
30
+ closeSnackbar,
31
+ ...props
31
32
  }));
32
33
  };
33
34
  var UdpFormsBuilderPage_default = UdpFormsBuilderPage;
34
35
 
35
36
  //#endregion
36
37
  //#region src/udp/pages/UdpFormsBuilderPage/index.ts
37
- var UdpFormsBuilderPage_exports = /* @__PURE__ */ __export({ default: () => UdpFormsBuilderPage_default });
38
+ var UdpFormsBuilderPage_exports = /* @__PURE__ */ __export({
39
+ UdpFormsBuilderPage: () => UdpFormsBuilderPage_default,
40
+ default: () => UdpFormsBuilderPage_default
41
+ });
38
42
 
39
43
  //#endregion
40
44
  export { UdpFormsBuilderPage_default as n, UdpFormsBuilderPage_exports as t };
41
- //# sourceMappingURL=UdpFormsBuilderPage-h5Q62J02.js.map
45
+ //# sourceMappingURL=UdpFormsBuilderPage-CoNaXBSz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UdpFormsBuilderPage-CoNaXBSz.js","names":[],"sources":["../src/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.jsx","../src/udp/pages/UdpFormsBuilderPage/index.ts"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport { UdpFormsBuilder } from 'udp-react-stencil-component-library';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useSnackbar } from 'notistack';\n\nconst UdpFormsBuilderPage = (props) => {\n const user = useUser();\n const tenant = useTenant();\n const location = useLocation(); // detects changes in the URL\n const history = useHistory();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n // Store search params in state so re-render happens when they change\n const [searchParams, setSearchParams] = useState(() => new URLSearchParams(location.search));\n\n // Recompute search params on location change\n useEffect(() => {\n setSearchParams(new URLSearchParams(location.search));\n }, [location.search]);\n\n // Extract values from searchParams\n const formId = searchParams.get('udpf_formId');\n const version = searchParams.get('udpf_version');\n const callbackUrl = searchParams.get('udpf_callback_url');\n\n return (\n <div>\n <UdpFormsBuilder\n formId={formId} // optional for loading exisiting forms\n version={version} // optional for loading specific version of existing forms\n history={history} // required\n getUserCallback={() => user} // required\n getTenantCallback={() => tenant} // required\n enqueueSnackbar={enqueueSnackbar} // required\n closeSnackbar={closeSnackbar} // required\n {...props}\n />\n </div>\n );\n};\n\nexport default UdpFormsBuilderPage;","export {default} from './UdpFormsBuilderPage';\nexport {default as UdpFormsBuilderPage} from './UdpFormsBuilderPage';\n"],"mappings":";;;;;;;;;AAOA,MAAM,uBAAuB,UAAU;CACrC,MAAM,OAAO,SAAS;CACtB,MAAM,SAAS,WAAW;CAC1B,MAAM,WAAW,aAAa;CAC9B,MAAM,UAAU,YAAY;CAC5B,MAAM,EAAE,iBAAiB,kBAAkB,aAAa;CAGxD,MAAM,CAAC,cAAc,mBAAmB,eAAe,IAAI,gBAAgB,SAAS,OAAO,CAAC;AAG5F,iBAAgB;AACd,kBAAgB,IAAI,gBAAgB,SAAS,OAAO,CAAC;IACpD,CAAC,SAAS,OAAO,CAAC;CAGrB,MAAM,SAAS,aAAa,IAAI,cAAc;CAC9C,MAAM,UAAU,aAAa,IAAI,eAAe;AAC5B,cAAa,IAAI,oBAAoB;AAEzD,QACE,oCAAC,aACC,oCAAC;EACS;EACC;EACA;EACT,uBAAuB;EACvB,yBAAyB;EACR;EACF;EACf,GAAI;GACJ,CACE;;AAIV,kCAAe"}
@@ -11,14 +11,20 @@ const UdpFormsListPage = (props) => {
11
11
  const tenant = useTenant();
12
12
  const history = useHistory();
13
13
  tenant?.activeTenant?.tenantId;
14
- return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(UdpFormsList, { history }));
14
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(UdpFormsList, {
15
+ history,
16
+ ...props
17
+ }));
15
18
  };
16
19
  var UdpFormsListPage_default = UdpFormsListPage;
17
20
 
18
21
  //#endregion
19
22
  //#region src/udp/pages/UdpFormsListPage/index.ts
20
- var UdpFormsListPage_exports = /* @__PURE__ */ __export({ default: () => UdpFormsListPage_default });
23
+ var UdpFormsListPage_exports = /* @__PURE__ */ __export({
24
+ UdpFormsListPage: () => UdpFormsListPage_default,
25
+ default: () => UdpFormsListPage_default
26
+ });
21
27
 
22
28
  //#endregion
23
29
  export { UdpFormsListPage_default as n, UdpFormsListPage_exports as t };
24
- //# sourceMappingURL=UdpFormsListPage-D6eyoogV.js.map
30
+ //# sourceMappingURL=UdpFormsListPage-BNgD_gIh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpFormsListPage-D6eyoogV.js","names":[],"sources":["../src/udp/pages/UdpFormsListPage/UdpFormsListPage.jsx","../src/udp/pages/UdpFormsListPage/index.ts"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { UdpFormsList } from 'udp-react-stencil-component-library';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHistory } from 'react-router-dom';\n\nconst UdpFormsListPage = (props) => {\n const user = useUser();\n const tenant = useTenant();\n const history = useHistory();\n\n const tenantId = tenant?.activeTenant?.tenantId;\n\n return (\n <div>\n <UdpFormsList\n history={history}\n />\n </div>\n );\n};\nexport default UdpFormsListPage;\n","export {default} from './UdpFormsListPage';\nexport * from './UdpFormsListPage';\n"],"mappings":";;;;;;;;AAMA,MAAM,oBAAoB,UAAU;AACrB,UAAS;CACtB,MAAM,SAAS,WAAW;CAC1B,MAAM,UAAU,YAAY;AAEX,SAAQ,cAAc;AAEvC,QACE,oCAAC,aACC,oCAAC,gBACU,UACT,CACE;;AAGV,+BAAe"}
1
+ {"version":3,"file":"UdpFormsListPage-BNgD_gIh.js","names":[],"sources":["../src/udp/pages/UdpFormsListPage/UdpFormsListPage.jsx","../src/udp/pages/UdpFormsListPage/index.ts"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { UdpFormsList } from 'udp-react-stencil-component-library';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHistory } from 'react-router-dom';\n\nconst UdpFormsListPage = (props) => {\n const user = useUser();\n const tenant = useTenant();\n const history = useHistory();\n\n const tenantId = tenant?.activeTenant?.tenantId;\n\n return (\n <div>\n <UdpFormsList\n history={history}\n {...props}\n />\n </div>\n );\n};\nexport default UdpFormsListPage;\n","export {default} from './UdpFormsListPage';\nexport {default as UdpFormsListPage} from './UdpFormsListPage';\n"],"mappings":";;;;;;;;AAMA,MAAM,oBAAoB,UAAU;AACrB,UAAS;CACtB,MAAM,SAAS,WAAW;CAC1B,MAAM,UAAU,YAAY;AAEX,SAAQ,cAAc;AAEvC,QACE,oCAAC,aACC,oCAAC;EACU;EACT,GAAI;GACJ,CACE;;AAGV,+BAAe"}
@@ -5,7 +5,7 @@ import { t as apiMutate } from "./useAxiosMutate-DcLxzykX.js";
5
5
  import { t as useTenant } from "./useTenant-MqKOZve_.js";
6
6
  import { t as SearchMethodUdpGrid } from "./SearchMethodUdpGrid-QU4FZ0Gk.js";
7
7
  import { t as LoadingIndicator } from "./LoadingIndicator-DJ4rFzOc.js";
8
- import { t as CustomMenuPage_default } from "./menuPage-Df5ucoQW.js";
8
+ import { t as CustomMenuPage_default } from "./menuPage-DPvDtKpN.js";
9
9
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { useSnackbar } from "notistack";
11
11
  import { useHistory } from "react-router-dom";
@@ -456,4 +456,4 @@ const UdpFormsSubmissionGrid = ({ isManagerMode = false }) => {
456
456
 
457
457
  //#endregion
458
458
  export { UdpFormsSubmissionGrid as t };
459
- //# sourceMappingURL=UdpFormsSubmissionGrid-mPVNbJ97.js.map
459
+ //# sourceMappingURL=UdpFormsSubmissionGrid-bDwM_jk1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpFormsSubmissionGrid-mPVNbJ97.js","names":["CustomMenuPage"],"sources":["../src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.jsx"],"sourcesContent":["import React, {\n useMemo,\n useState,\n useEffect,\n useCallback,\n useRef\n} from 'react';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHistory } from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport { CustomMenuPage } from '../../../menuPage';\nimport { useTranslation } from 'react-i18next';\nimport { apiMutate } from '../../../utilities';\nimport { ConfigService } from '../../../configService';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { LoadingIndicator } from '../../../UI/loading/LoadingIndicator';\nimport { UdpPageEnums } from '../../../enums';\nimport { StatusCellRenderer } from '../../../UI/templates/ui/renderers';\nimport { UdpSideSheet } from 'udp-react-stencil-component-library';\nimport { SelectableList } from 'udp-react-stencil-component-library';\nimport { UdpSelector } from 'udp-react-stencil-component-library';\n\nconst UdpFormsSubmissionStatusEnum = Object.freeze({\n InProgress: 1,\n Submitted: 2,\n Created: 3\n});\n\nconst dateFormatter = (dateString) =>\n new Date(dateString).toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n\nexport const UdpFormsSubmissionGrid = ({ isManagerMode = false }) => {\n const user = useUser();\n const tenant = useTenant();\n const history = useHistory();\n const { t } = useTranslation();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const [innerMenuItemList, setInnerMenuItemList] = useState([]);\n const [formSubmissionViewDataRaw, setFormSubmissionViewDataRaw] = useState(\n []\n );\n const [formDataRaw, setFormDataRaw] = useState([]);\n const [isSidesheetOpen, setIsSidesheetOpen] = useState(false);\n const [selectedFormValue, setSelectedFormValue] = useState('');\n\n const selectorRef = useRef(null);\n\n const pendingNavRef = useRef(null);\n const handleSideSheetClosed = () => {\n setIsSidesheetOpen(false);\n };\n\n const consolidateAndSortFormsByFormId = useCallback(\n (forms, submissions = []) => {\n const resultMap = new Map();\n for (const item of forms) {\n const {\n id: formId,\n version: formVersion,\n name: formName,\n description: formDescription,\n initialCreatedOn: initialCreatedOn\n } = item;\n if (!formId || formVersion == null) continue;\n\n const key = String(formId);\n const existing = resultMap.get(key);\n\n // normalize version and timestamp\n const versionNum = Number(formVersion) || 0;\n const ts = initialCreatedOn ? new Date(initialCreatedOn).getTime() : 0;\n\n // robust comparison (coerce to string)\n const submissionCount = (submissions || []).filter(\n (sub) => String(sub?.formSubmission_FormId) === key\n ).length;\n\n if (!existing) {\n resultMap.set(key, {\n id: key,\n formId,\n formVersion: versionNum,\n name: formName || t('Untitled Form'),\n submissionCount,\n description: formDescription || '',\n mostRecentCreatedOn: ts\n });\n } else {\n // keep metadata (name/description/formVersion) from the highest version seen\n if (versionNum > (existing.formVersion || 0)) {\n existing.formVersion = versionNum;\n if (formName) existing.name = formName;\n if (formDescription) existing.description = formDescription;\n }\n }\n }\n\n const sortedOptions = Array.from(resultMap.values()).sort((a, b) =>\n b.name.localeCompare(a.name)\n );\n return sortedOptions;\n },\n [t]\n );\n\n const consolidateAndSortFormSubmissionsByFormId = useCallback(\n (submissions) => {\n const resultMap = new Map();\n for (const item of submissions) {\n const {\n formSubmission_FormId: formId,\n formSubmission_FormVersion: formVersion,\n form_Name: formName,\n form_Description: formDescription,\n formSubmission_InitialCreatedOn: initialCreatedOn\n } = item;\n if (!formId || formVersion == null) continue;\n\n const key = `${formId}`;\n const existing = resultMap.get(key);\n\n // normalize version and timestamp\n const versionNum = Number(formVersion) || 0;\n const ts = initialCreatedOn ? new Date(initialCreatedOn).getTime() : 0;\n\n if (!existing) {\n resultMap.set(key, {\n id: key,\n formId,\n formVersion: versionNum,\n name: formName || t('Untitled Form'),\n submissionCount: 1,\n description: formDescription || '',\n mostRecentCreatedOn: ts\n });\n } else {\n existing.submissionCount += 1;\n existing.mostRecentCreatedOn = Math.max(\n existing.mostRecentCreatedOn || 0,\n ts\n );\n\n // keep metadata (name/description/formVersion) from the highest version seen\n if (versionNum > (existing.formVersion || 0)) {\n existing.formVersion = versionNum;\n if (formName) existing.name = formName;\n if (formDescription) existing.description = formDescription;\n }\n }\n }\n\n const sortedOptions = Array.from(resultMap.values()).sort(\n (a, b) => b.mostRecentCreatedOn - a.mostRecentCreatedOn\n );\n return sortedOptions;\n },\n [t]\n );\n\n const filterSubmissionByTenantId = useCallback((submissions, tenantId) => {\n return submissions.filter(\n (submission) => submission.form_TenantId === tenantId\n );\n }, []);\n\n\n const fetchSubmissions = useCallback(async () => {\n try {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n filterElements.push({\n searchField: 'Form_TenantId',\n searchOperator: '=',\n searchValue: tenant.activeTenant.tenantId \n });\n\n if (!isManagerMode) {\n filterElements.push({\n searchField: 'FormSubmission_UnityUserId',\n searchOperator: '=',\n searchValue: user.id\n });\n }\n\n const formSubmissionViewSearchResponse = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpFormWithSubmissionsView/search`,\n {\n method: 'POST',\n data: {\n eagerLoad: false,\n getAll: true,\n filterElements\n }\n },\n {}\n );\n\n const submissions = formSubmissionViewSearchResponse?.data.pageList || [];\n const processedSubmissions = filterSubmissionByTenantId(submissions, tenant.activeTenant.tenantId)\n setFormSubmissionViewDataRaw(processedSubmissions);\n } catch (e) {\n console.error('fetchSubmissions error:', e);\n }\n }, [\n user,\n tenant,\n isManagerMode,\n consolidateAndSortFormSubmissionsByFormId,\n t\n ]);\n\n const fetchForms = useCallback(async () => {\n try {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n filterElements.push({\n searchField: 'tenantId',\n searchOperator: '=',\n searchValue: tenant.activeTenant.tenantId\n });\n\n const formResponse = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpForm/search`,\n {\n method: 'POST',\n data: {\n eagerLoad: false,\n getAll: true,\n filterElements\n }\n },\n {}\n );\n\n const forms = formResponse?.data.pageList || [];\n setFormDataRaw(forms);\n } catch (e) {\n console.error('fetchForms error:', e);\n }\n }, [user, tenant, consolidateAndSortFormSubmissionsByFormId]);\n\n const parseIdAndVersion = useCallback((input) => {\n const formSubmissionId = input.replace(/^form-submission-/, '');\n // Check for \"all forms\" special case\n if (formSubmissionId.includes('all-forms-key')) {\n return null;\n }\n return formSubmissionId;\n }, []);\n\n const getSearchMethodConfig = useCallback(\n (formId) => {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n if (!isManagerMode) {\n filterElements.push({\n searchField: 'formSubmission_unityUserId',\n searchOperator: '=',\n searchValue: user.id || ''\n });\n }\n\n if (formId) {\n filterElements.push({\n searchField: 'formSubmission_formId',\n searchOperator: '=',\n searchValue: formId\n });\n }\n\n filterElements.push({\n searchField: 'form_tenantId',\n searchOperator: '=',\n searchValue: tenant?.activeTenant?.tenantId || ''\n });\n\n return {\n requestUrl: `${ConfigService.productV1ApiUrl}/UdpFormWithSubmissionsView/search`,\n customSearchObject: {\n eagerLoad: false,\n filterElements,\n orderElements: [\n {\n sortColumn: 'initialCreatedOn',\n sortDirection: 'DESC'\n }\n ]\n }\n // logicalSearchOperator: 1,\n // groupingType: '',\n // groupProperty: [],\n // groupOperationList: [],\n // type: 'advanced',\n // pageNumber: 1,\n // pageSize: 20,\n };\n },\n [user, isManagerMode, tenant]\n );\n\n const getGridHeaderConfig = useCallback(\n (formId, formVersion, formTitle) => {\n const config = {\n title: formTitle\n };\n\n config.primaryActionButton = {\n label: t('Submit New Form'),\n onClick: () => {\n // Only show submit button when we have a specific form id and version\n if (formId && formVersion) {\n history.push(\n `/page/${UdpPageEnums.Udp_Form_Renderer_Page}?udpf_formId=${formId}&udpf_version=${formVersion}`\n );\n } else {\n setIsSidesheetOpen(true);\n }\n }\n };\n\n return config;\n },\n [history, t]\n );\n\n const getGridOptions = useCallback(() => {\n return {\n pagination: true,\n defaultColDef: {\n sortable: true,\n filter: true,\n resizable: true\n }\n };\n }, []);\n\n const getStatus = useMemo(() => {\n return {\n Created: 'info',\n InProgress: 'warning',\n Submitted: 'success',\n Overdue: 'error'\n };\n }, []);\n\n const getSubmissionStatusLabel = (node) => {\n const formStatus = node?.data?.formSubmission_Status;\n const dueDateRaw = node?.data?.formSubmission_DueDate;\n\n // overdue check\n if (dueDateRaw && formStatus != UdpFormsSubmissionStatusEnum.Submitted) {\n const dueTs = Date.parse(String(dueDateRaw));\n if (!Number.isNaN(dueTs) && Date.now() > dueTs) return 'Overdue';\n }\n\n switch (formStatus) {\n case UdpFormsSubmissionStatusEnum.InProgress:\n return 'InProgress';\n case UdpFormsSubmissionStatusEnum.Created:\n return 'Created';\n case UdpFormsSubmissionStatusEnum.Submitted:\n return 'Submitted';\n default:\n return 'Unknown';\n }\n };\n\n const columnDefs = useMemo(\n () => [\n { headerName: 'Form ID', field: 'formSubmission_FormId', hide: true },\n {\n headerName: t('Form Name'),\n field: 'form_Name',\n sortable: true\n },\n {\n headerName: t('Form Version'),\n field: 'formSubmission_FormVersion',\n hide: false\n },\n {\n headerName: t('Description'),\n field: 'form_Description',\n sortable: true\n },\n {\n headerName: t('Submitted By'),\n field: 'formSubmission_UserDisplayName'\n },\n {\n headerName: 'Form Status',\n // filter: true,\n field: 'formSubmission_Status',\n cellRenderer: 'statusRenderer',\n cellRendererParams: {\n statusMappingConfig: getStatus,\n getStatusValue: getSubmissionStatusLabel\n }\n },\n {\n headerName: t('Created On'),\n field: 'formSubmission_InitialCreatedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Last Modified On'),\n field: 'formSubmission_LastModifiedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Submitted On'),\n field: 'formSubmission_SubmittedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Due On'),\n field: 'formSubmission_DueDate',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: [\n {\n id: 0,\n iconName: 'view',\n title: t('Open This Submission'),\n handleOnClick: (e, params) => {\n history.push(\n `/page/${UdpPageEnums.Udp_Form_Renderer_Page}?udpf_submissionId=${params?.data?.formSubmission_Id}`\n );\n }\n }\n ]\n }\n }\n ],\n [history, t]\n );\n\n const gridFunctions = useMemo(\n () => [\n { name: 'agGridSizeColumnsToFit' },\n { name: 'agGridAutoSizeColumns' },\n { name: 'agGridResetColumns' },\n { name: 'agGridHideShowColumns' }\n ],\n []\n );\n\n const handleSidesheetPrimaryClick = useCallback(() => {\n // selectedFormValue format is \"formId|formVersion\"\n const raw = selectedFormValue || '';\n const [id, versionStr] = raw.split('|');\n const version = Number(versionStr || 0);\n if (!id || !version) {\n console.warn('Invalid selection:', selectedFormValue);\n setIsSidesheetOpen(false);\n return;\n }\n\n history.push(\n `/page/${\n UdpPageEnums.Udp_Form_Renderer_Page\n }?udpf_formId=${encodeURIComponent(id)}&udpf_version=${version}`\n );\n\n // schedule navigation after sheet closes to ensure Stencil cleans up its portal DOM\n pendingNavRef.current = { id, version };\n setIsSidesheetOpen(false);\n }, [selectedFormValue, formDataRaw, history]);\n\n // prepare items for SelectableList (normalize keys)\n const selectableItems = useMemo(() => {\n const map = new Map();\n\n for (const f of formDataRaw || []) {\n const formType = f.form_Type ?? f.formType ?? f.type;\n if (Number(formType) !== 1) continue;\n\n const formId = f.id ?? f.form_Id ?? f.formId ?? String(f?.Id ?? '');\n const version = Number(f.version ?? f.form_Version ?? f.formVersion ?? 0);\n const name =\n f.name ??\n f.form_Name ??\n f.formName ??\n f.Form_Name ??\n f.displayName ??\n t('Untitled Form');\n const description = f.description ?? f.form_Description ?? '';\n\n const existing = map.get(formId);\n if (!existing || version > existing.version) {\n map.set(formId, { id: formId, name, version, description });\n }\n }\n\n return Array.from(map.values()).sort((a, b) => b.version - a.version);\n }, [formDataRaw, t]);\n\n const selectorOptions = useMemo(() => {\n return (selectableItems || []).map((s) => ({\n value: `${s.id}|${s.version}`,\n label: s.version ? `${s.name} (v${s.version})` : s.name\n }));\n }, [selectableItems]);\n\n // attach stencil custom event listeners only while sidesheet is open\n useEffect(() => {\n const el = selectorRef.current;\n if (!el || !isSidesheetOpen) return;\n\n const onChange = (e) => {\n const val = e?.detail ?? (e?.target && e.target.value) ?? '';\n setSelectedFormValue(val || '');\n };\n\n el.addEventListener('change', onChange);\n el.addEventListener('input', onChange);\n\n // keep selector controlled-ish by syncing value -> element.value\n if (selectedFormValue) el.value = selectedFormValue;\n\n return () => {\n el.removeEventListener('change', onChange);\n el.removeEventListener('input', onChange);\n };\n }, [selectorRef, selectorOptions, isSidesheetOpen, selectedFormValue]);\n\n const getMainGridContent = ({\n selectedNode,\n menuItemsList,\n idMap,\n classes\n }) => {\n if (!selectedNode) {\n return <LoadingIndicator />;\n }\n const formId = parseIdAndVersion(selectedNode.id);\n // const formId = selectedNode.id;\n const found = innerMenuItemList.find((form) => form.formId == formId);\n const formTitle = `${found?.name}` || 'Unknown Form';\n const newestFormVersion = formDataRaw\n .filter((formObj) => formObj.id == formId)\n .reduce((acc, curr) => {\n return Math.max(acc, curr.version);\n }, 0);\n\n return (\n <>\n <UdpSideSheet\n open={isSidesheetOpen}\n title={t('Submit New Form')}\n position='right'\n width={'md'}\n primaryButtonLabel={t('Next')}\n primaryButtonDisabled={!selectedFormValue}\n onUdpPrimaryButtonClick={handleSidesheetPrimaryClick}\n onUdpSideSheetClose={handleSideSheetClosed}\n >\n {isSidesheetOpen && (\n <UdpSelector\n ref={selectorRef}\n options={selectorOptions}\n initialValue={selectedFormValue}\n multiSelect={false}\n label={t('Select a Form')}\n />\n )}\n </UdpSideSheet>\n <SearchMethodUdpGrid\n searchMethodConfig={getSearchMethodConfig(formId)}\n columnDefs={columnDefs}\n gridOptions={getGridOptions()}\n gridHeaderConfig={getGridHeaderConfig(\n formId,\n newestFormVersion,\n formTitle\n )}\n gridFunctions={gridFunctions}\n />\n </>\n );\n };\n\n useEffect(() => {\n if (!tenant?.activeTenant?.tenantId) return;\n\n (async () => {\n await fetchSubmissions();\n await fetchForms();\n })();\n }, [fetchSubmissions, fetchForms, tenant]);\n\n // derive menu items from fetched submissions (separate effect to avoid refetch loop)\n useEffect(() => {\n const innerMenuList = consolidateAndSortFormsByFormId(\n formDataRaw || [],\n formSubmissionViewDataRaw || []\n );\n\n innerMenuList.unshift({\n id: 'all-forms-key',\n name: t(\n isManagerMode ? 'All Form Submissions' : 'All My Form Submissions'\n ),\n submissionCount: formSubmissionViewDataRaw?.length || 0\n });\n setInnerMenuItemList(innerMenuList);\n }, [\n formSubmissionViewDataRaw,\n isManagerMode,\n consolidateAndSortFormsByFormId,\n formDataRaw, \n t\n ]);\n\n\n return (\n <div>\n <CustomMenuPage\n menuTitle={t('Forms')}\n items={innerMenuItemList}\n idPrefix='form-submission'\n showItemCount={true}\n itemCountAccessor={(item) => item?.submissionCount ?? 0}\n mainContent={({ selectedNode, menuItemsList, idMap, classes }) => {\n return (\n <div>\n {getMainGridContent({\n selectedNode,\n menuItemsList,\n idMap,\n classes\n })}\n </div>\n );\n }}\n />\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"UdpFormsSubmissionGrid-bDwM_jk1.js","names":["CustomMenuPage"],"sources":["../src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.jsx"],"sourcesContent":["import React, {\n useMemo,\n useState,\n useEffect,\n useCallback,\n useRef\n} from 'react';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\nimport { useHistory } from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport { CustomMenuPage } from '../../../menuPage';\nimport { useTranslation } from 'react-i18next';\nimport { apiMutate } from '../../../utilities';\nimport { ConfigService } from '../../../configService';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { LoadingIndicator } from '../../../UI/loading/LoadingIndicator';\nimport { UdpPageEnums } from '../../../enums';\nimport { StatusCellRenderer } from '../../../UI/templates/ui/renderers';\nimport { UdpSideSheet } from 'udp-react-stencil-component-library';\nimport { SelectableList } from 'udp-react-stencil-component-library';\nimport { UdpSelector } from 'udp-react-stencil-component-library';\n\nconst UdpFormsSubmissionStatusEnum = Object.freeze({\n InProgress: 1,\n Submitted: 2,\n Created: 3\n});\n\nconst dateFormatter = (dateString) =>\n new Date(dateString).toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n\nexport const UdpFormsSubmissionGrid = ({ isManagerMode = false }) => {\n const user = useUser();\n const tenant = useTenant();\n const history = useHistory();\n const { t } = useTranslation();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const [innerMenuItemList, setInnerMenuItemList] = useState([]);\n const [formSubmissionViewDataRaw, setFormSubmissionViewDataRaw] = useState(\n []\n );\n const [formDataRaw, setFormDataRaw] = useState([]);\n const [isSidesheetOpen, setIsSidesheetOpen] = useState(false);\n const [selectedFormValue, setSelectedFormValue] = useState('');\n\n const selectorRef = useRef(null);\n\n const pendingNavRef = useRef(null);\n const handleSideSheetClosed = () => {\n setIsSidesheetOpen(false);\n };\n\n const consolidateAndSortFormsByFormId = useCallback(\n (forms, submissions = []) => {\n const resultMap = new Map();\n for (const item of forms) {\n const {\n id: formId,\n version: formVersion,\n name: formName,\n description: formDescription,\n initialCreatedOn: initialCreatedOn\n } = item;\n if (!formId || formVersion == null) continue;\n\n const key = String(formId);\n const existing = resultMap.get(key);\n\n // normalize version and timestamp\n const versionNum = Number(formVersion) || 0;\n const ts = initialCreatedOn ? new Date(initialCreatedOn).getTime() : 0;\n\n // robust comparison (coerce to string)\n const submissionCount = (submissions || []).filter(\n (sub) => String(sub?.formSubmission_FormId) === key\n ).length;\n\n if (!existing) {\n resultMap.set(key, {\n id: key,\n formId,\n formVersion: versionNum,\n name: formName || t('Untitled Form'),\n submissionCount,\n description: formDescription || '',\n mostRecentCreatedOn: ts\n });\n } else {\n // keep metadata (name/description/formVersion) from the highest version seen\n if (versionNum > (existing.formVersion || 0)) {\n existing.formVersion = versionNum;\n if (formName) existing.name = formName;\n if (formDescription) existing.description = formDescription;\n }\n }\n }\n\n const sortedOptions = Array.from(resultMap.values()).sort((a, b) =>\n b.name.localeCompare(a.name)\n );\n return sortedOptions;\n },\n [t]\n );\n\n const consolidateAndSortFormSubmissionsByFormId = useCallback(\n (submissions) => {\n const resultMap = new Map();\n for (const item of submissions) {\n const {\n formSubmission_FormId: formId,\n formSubmission_FormVersion: formVersion,\n form_Name: formName,\n form_Description: formDescription,\n formSubmission_InitialCreatedOn: initialCreatedOn\n } = item;\n if (!formId || formVersion == null) continue;\n\n const key = `${formId}`;\n const existing = resultMap.get(key);\n\n // normalize version and timestamp\n const versionNum = Number(formVersion) || 0;\n const ts = initialCreatedOn ? new Date(initialCreatedOn).getTime() : 0;\n\n if (!existing) {\n resultMap.set(key, {\n id: key,\n formId,\n formVersion: versionNum,\n name: formName || t('Untitled Form'),\n submissionCount: 1,\n description: formDescription || '',\n mostRecentCreatedOn: ts\n });\n } else {\n existing.submissionCount += 1;\n existing.mostRecentCreatedOn = Math.max(\n existing.mostRecentCreatedOn || 0,\n ts\n );\n\n // keep metadata (name/description/formVersion) from the highest version seen\n if (versionNum > (existing.formVersion || 0)) {\n existing.formVersion = versionNum;\n if (formName) existing.name = formName;\n if (formDescription) existing.description = formDescription;\n }\n }\n }\n\n const sortedOptions = Array.from(resultMap.values()).sort(\n (a, b) => b.mostRecentCreatedOn - a.mostRecentCreatedOn\n );\n return sortedOptions;\n },\n [t]\n );\n\n const filterSubmissionByTenantId = useCallback((submissions, tenantId) => {\n return submissions.filter(\n (submission) => submission.form_TenantId === tenantId\n );\n }, []);\n\n\n const fetchSubmissions = useCallback(async () => {\n try {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n filterElements.push({\n searchField: 'Form_TenantId',\n searchOperator: '=',\n searchValue: tenant.activeTenant.tenantId \n });\n\n if (!isManagerMode) {\n filterElements.push({\n searchField: 'FormSubmission_UnityUserId',\n searchOperator: '=',\n searchValue: user.id\n });\n }\n\n const formSubmissionViewSearchResponse = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpFormWithSubmissionsView/search`,\n {\n method: 'POST',\n data: {\n eagerLoad: false,\n getAll: true,\n filterElements\n }\n },\n {}\n );\n\n const submissions = formSubmissionViewSearchResponse?.data.pageList || [];\n const processedSubmissions = filterSubmissionByTenantId(submissions, tenant.activeTenant.tenantId)\n setFormSubmissionViewDataRaw(processedSubmissions);\n } catch (e) {\n console.error('fetchSubmissions error:', e);\n }\n }, [\n user,\n tenant,\n isManagerMode,\n consolidateAndSortFormSubmissionsByFormId,\n t\n ]);\n\n const fetchForms = useCallback(async () => {\n try {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n filterElements.push({\n searchField: 'tenantId',\n searchOperator: '=',\n searchValue: tenant.activeTenant.tenantId\n });\n\n const formResponse = await apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpForm/search`,\n {\n method: 'POST',\n data: {\n eagerLoad: false,\n getAll: true,\n filterElements\n }\n },\n {}\n );\n\n const forms = formResponse?.data.pageList || [];\n setFormDataRaw(forms);\n } catch (e) {\n console.error('fetchForms error:', e);\n }\n }, [user, tenant, consolidateAndSortFormSubmissionsByFormId]);\n\n const parseIdAndVersion = useCallback((input) => {\n const formSubmissionId = input.replace(/^form-submission-/, '');\n // Check for \"all forms\" special case\n if (formSubmissionId.includes('all-forms-key')) {\n return null;\n }\n return formSubmissionId;\n }, []);\n\n const getSearchMethodConfig = useCallback(\n (formId) => {\n if (!tenant?.activeTenant?.tenantId) return;\n\n const filterElements = [];\n\n if (!isManagerMode) {\n filterElements.push({\n searchField: 'formSubmission_unityUserId',\n searchOperator: '=',\n searchValue: user.id || ''\n });\n }\n\n if (formId) {\n filterElements.push({\n searchField: 'formSubmission_formId',\n searchOperator: '=',\n searchValue: formId\n });\n }\n\n filterElements.push({\n searchField: 'form_tenantId',\n searchOperator: '=',\n searchValue: tenant?.activeTenant?.tenantId || ''\n });\n\n return {\n requestUrl: `${ConfigService.productV1ApiUrl}/UdpFormWithSubmissionsView/search`,\n customSearchObject: {\n eagerLoad: false,\n filterElements,\n orderElements: [\n {\n sortColumn: 'initialCreatedOn',\n sortDirection: 'DESC'\n }\n ]\n }\n // logicalSearchOperator: 1,\n // groupingType: '',\n // groupProperty: [],\n // groupOperationList: [],\n // type: 'advanced',\n // pageNumber: 1,\n // pageSize: 20,\n };\n },\n [user, isManagerMode, tenant]\n );\n\n const getGridHeaderConfig = useCallback(\n (formId, formVersion, formTitle) => {\n const config = {\n title: formTitle\n };\n\n config.primaryActionButton = {\n label: t('Submit New Form'),\n onClick: () => {\n // Only show submit button when we have a specific form id and version\n if (formId && formVersion) {\n history.push(\n `/page/${UdpPageEnums.Udp_Form_Renderer_Page}?udpf_formId=${formId}&udpf_version=${formVersion}`\n );\n } else {\n setIsSidesheetOpen(true);\n }\n }\n };\n\n return config;\n },\n [history, t]\n );\n\n const getGridOptions = useCallback(() => {\n return {\n pagination: true,\n defaultColDef: {\n sortable: true,\n filter: true,\n resizable: true\n }\n };\n }, []);\n\n const getStatus = useMemo(() => {\n return {\n Created: 'info',\n InProgress: 'warning',\n Submitted: 'success',\n Overdue: 'error'\n };\n }, []);\n\n const getSubmissionStatusLabel = (node) => {\n const formStatus = node?.data?.formSubmission_Status;\n const dueDateRaw = node?.data?.formSubmission_DueDate;\n\n // overdue check\n if (dueDateRaw && formStatus != UdpFormsSubmissionStatusEnum.Submitted) {\n const dueTs = Date.parse(String(dueDateRaw));\n if (!Number.isNaN(dueTs) && Date.now() > dueTs) return 'Overdue';\n }\n\n switch (formStatus) {\n case UdpFormsSubmissionStatusEnum.InProgress:\n return 'InProgress';\n case UdpFormsSubmissionStatusEnum.Created:\n return 'Created';\n case UdpFormsSubmissionStatusEnum.Submitted:\n return 'Submitted';\n default:\n return 'Unknown';\n }\n };\n\n const columnDefs = useMemo(\n () => [\n { headerName: 'Form ID', field: 'formSubmission_FormId', hide: true },\n {\n headerName: t('Form Name'),\n field: 'form_Name',\n sortable: true\n },\n {\n headerName: t('Form Version'),\n field: 'formSubmission_FormVersion',\n hide: false\n },\n {\n headerName: t('Description'),\n field: 'form_Description',\n sortable: true\n },\n {\n headerName: t('Submitted By'),\n field: 'formSubmission_UserDisplayName'\n },\n {\n headerName: 'Form Status',\n // filter: true,\n field: 'formSubmission_Status',\n cellRenderer: 'statusRenderer',\n cellRendererParams: {\n statusMappingConfig: getStatus,\n getStatusValue: getSubmissionStatusLabel\n }\n },\n {\n headerName: t('Created On'),\n field: 'formSubmission_InitialCreatedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Last Modified On'),\n field: 'formSubmission_LastModifiedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Submitted On'),\n field: 'formSubmission_SubmittedOn',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n headerName: t('Due On'),\n field: 'formSubmission_DueDate',\n valueFormatter: (p) => (p.value ? dateFormatter(p.value) : ''),\n sortable: true\n },\n {\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: [\n {\n id: 0,\n iconName: 'view',\n title: t('Open This Submission'),\n handleOnClick: (e, params) => {\n history.push(\n `/page/${UdpPageEnums.Udp_Form_Renderer_Page}?udpf_submissionId=${params?.data?.formSubmission_Id}`\n );\n }\n }\n ]\n }\n }\n ],\n [history, t]\n );\n\n const gridFunctions = useMemo(\n () => [\n { name: 'agGridSizeColumnsToFit' },\n { name: 'agGridAutoSizeColumns' },\n { name: 'agGridResetColumns' },\n { name: 'agGridHideShowColumns' }\n ],\n []\n );\n\n const handleSidesheetPrimaryClick = useCallback(() => {\n // selectedFormValue format is \"formId|formVersion\"\n const raw = selectedFormValue || '';\n const [id, versionStr] = raw.split('|');\n const version = Number(versionStr || 0);\n if (!id || !version) {\n console.warn('Invalid selection:', selectedFormValue);\n setIsSidesheetOpen(false);\n return;\n }\n\n history.push(\n `/page/${\n UdpPageEnums.Udp_Form_Renderer_Page\n }?udpf_formId=${encodeURIComponent(id)}&udpf_version=${version}`\n );\n\n // schedule navigation after sheet closes to ensure Stencil cleans up its portal DOM\n pendingNavRef.current = { id, version };\n setIsSidesheetOpen(false);\n }, [selectedFormValue, formDataRaw, history]);\n\n // prepare items for SelectableList (normalize keys)\n const selectableItems = useMemo(() => {\n const map = new Map();\n\n for (const f of formDataRaw || []) {\n const formType = f.form_Type ?? f.formType ?? f.type;\n if (Number(formType) !== 1) continue;\n\n const formId = f.id ?? f.form_Id ?? f.formId ?? String(f?.Id ?? '');\n const version = Number(f.version ?? f.form_Version ?? f.formVersion ?? 0);\n const name =\n f.name ??\n f.form_Name ??\n f.formName ??\n f.Form_Name ??\n f.displayName ??\n t('Untitled Form');\n const description = f.description ?? f.form_Description ?? '';\n\n const existing = map.get(formId);\n if (!existing || version > existing.version) {\n map.set(formId, { id: formId, name, version, description });\n }\n }\n\n return Array.from(map.values()).sort((a, b) => b.version - a.version);\n }, [formDataRaw, t]);\n\n const selectorOptions = useMemo(() => {\n return (selectableItems || []).map((s) => ({\n value: `${s.id}|${s.version}`,\n label: s.version ? `${s.name} (v${s.version})` : s.name\n }));\n }, [selectableItems]);\n\n // attach stencil custom event listeners only while sidesheet is open\n useEffect(() => {\n const el = selectorRef.current;\n if (!el || !isSidesheetOpen) return;\n\n const onChange = (e) => {\n const val = e?.detail ?? (e?.target && e.target.value) ?? '';\n setSelectedFormValue(val || '');\n };\n\n el.addEventListener('change', onChange);\n el.addEventListener('input', onChange);\n\n // keep selector controlled-ish by syncing value -> element.value\n if (selectedFormValue) el.value = selectedFormValue;\n\n return () => {\n el.removeEventListener('change', onChange);\n el.removeEventListener('input', onChange);\n };\n }, [selectorRef, selectorOptions, isSidesheetOpen, selectedFormValue]);\n\n const getMainGridContent = ({\n selectedNode,\n menuItemsList,\n idMap,\n classes\n }) => {\n if (!selectedNode) {\n return <LoadingIndicator />;\n }\n const formId = parseIdAndVersion(selectedNode.id);\n // const formId = selectedNode.id;\n const found = innerMenuItemList.find((form) => form.formId == formId);\n const formTitle = `${found?.name}` || 'Unknown Form';\n const newestFormVersion = formDataRaw\n .filter((formObj) => formObj.id == formId)\n .reduce((acc, curr) => {\n return Math.max(acc, curr.version);\n }, 0);\n\n return (\n <>\n <UdpSideSheet\n open={isSidesheetOpen}\n title={t('Submit New Form')}\n position='right'\n width={'md'}\n primaryButtonLabel={t('Next')}\n primaryButtonDisabled={!selectedFormValue}\n onUdpPrimaryButtonClick={handleSidesheetPrimaryClick}\n onUdpSideSheetClose={handleSideSheetClosed}\n >\n {isSidesheetOpen && (\n <UdpSelector\n ref={selectorRef}\n options={selectorOptions}\n initialValue={selectedFormValue}\n multiSelect={false}\n label={t('Select a Form')}\n />\n )}\n </UdpSideSheet>\n <SearchMethodUdpGrid\n searchMethodConfig={getSearchMethodConfig(formId)}\n columnDefs={columnDefs}\n gridOptions={getGridOptions()}\n gridHeaderConfig={getGridHeaderConfig(\n formId,\n newestFormVersion,\n formTitle\n )}\n gridFunctions={gridFunctions}\n />\n </>\n );\n };\n\n useEffect(() => {\n if (!tenant?.activeTenant?.tenantId) return;\n\n (async () => {\n await fetchSubmissions();\n await fetchForms();\n })();\n }, [fetchSubmissions, fetchForms, tenant]);\n\n // derive menu items from fetched submissions (separate effect to avoid refetch loop)\n useEffect(() => {\n const innerMenuList = consolidateAndSortFormsByFormId(\n formDataRaw || [],\n formSubmissionViewDataRaw || []\n );\n\n innerMenuList.unshift({\n id: 'all-forms-key',\n name: t(\n isManagerMode ? 'All Form Submissions' : 'All My Form Submissions'\n ),\n submissionCount: formSubmissionViewDataRaw?.length || 0\n });\n setInnerMenuItemList(innerMenuList);\n }, [\n formSubmissionViewDataRaw,\n isManagerMode,\n consolidateAndSortFormsByFormId,\n formDataRaw, \n t\n ]);\n\n\n return (\n <div>\n <CustomMenuPage\n menuTitle={t('Forms')}\n items={innerMenuItemList}\n idPrefix='form-submission'\n showItemCount={true}\n itemCountAccessor={(item) => item?.submissionCount ?? 0}\n mainContent={({ selectedNode, menuItemsList, idMap, classes }) => {\n return (\n <div>\n {getMainGridContent({\n selectedNode,\n menuItemsList,\n idMap,\n classes\n })}\n </div>\n );\n }}\n />\n </div>\n );\n};\n"],"mappings":"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"}
@@ -14,8 +14,8 @@ import { t as UdpRemindersPage_exports } from "./UdpRemindersPage-CkGREvgu.js";
14
14
  import { t as RemindersWidget_exports } from "./RemindersWidget-iGOcibjO.js";
15
15
  import { t as UdpPublicForm_exports } from "./UdpPublicForm-BLcb2F_H.js";
16
16
  import { t as UdpPrivateForm_exports } from "./UdpPrivateForm-CamStDVL.js";
17
- import { t as UdpFormsListPage_exports } from "./UdpFormsListPage-D6eyoogV.js";
18
- import { t as UdpFormsBuilderPage_exports } from "./UdpFormsBuilderPage-h5Q62J02.js";
17
+ import { t as UdpFormsListPage_exports } from "./UdpFormsListPage-BNgD_gIh.js";
18
+ import { t as UdpFormsBuilderPage_exports } from "./UdpFormsBuilderPage-CoNaXBSz.js";
19
19
  import { t as UdpImportFromFileMappingPage_exports } from "./UdpImportFromFileMappingPage-B-GRm1zk.js";
20
20
  import { t as UdpAuditEvents_exports } from "./UdpAuditEvents-C15mWgaI.js";
21
21
 
@@ -45,4 +45,4 @@ const UdpPages = {
45
45
 
46
46
  //#endregion
47
47
  export { UdpPages as t };
48
- //# sourceMappingURL=UdpPages-DXB-xgq5.js.map
48
+ //# sourceMappingURL=UdpPages-CDU_r1sf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpPages-DXB-xgq5.js","names":[],"sources":["../src/udp/pages/UdpPages/index.ts"],"sourcesContent":["import * as UdpNotesPage from '../UdpNotesPage';\nimport * as UdpVerticalManagementPage from '../UdpVerticalManagementPage';\nimport * as UdpGridPanelManagementPage from '../UdpGridPanelManagementPage';\nimport * as UdpMaintenanceEnginePage from '../UdpMaintenanceEnginePage';\nimport * as UdpInquiryMaintenanceEnginePage from '../UdpInquiryMaintenanceEnginePage';\nimport * as UdpReportsPage from '../UdpReportsPage';\nimport * as DonutChartWidget from '../../../UI/widgets/library/DonutChartWidget';\nimport * as SparklineWidget from '../../../UI/widgets/library/SparklineWidget';\nimport * as ProgressBarWidget from '../../../UI/widgets/library/ProgressBarWidget';\nimport * as RecentlyLoadedNodesWidget from '../../../UI/widgets/library/RecentlyLoadedNodesWidget';\nimport * as ChatUDP from '../ChatUDP';\nimport * as UdpDataBrowserPage from '../UdpDataBrowserPage';\nimport * as UdpRemindersPage from '../UdpRemindersPage';\nimport * as RemindersWidget from '../../../UI/widgets/library/RemindersWidget';\nimport * as UdpPublicForm from '../UdpPublicForm'\nimport * as UdpPrivateForm from '../UdpPrivateForm'\nimport * as UdpFormsListPage from '../UdpFormsListPage';\nimport * as UdpFormsBuilderPage from '../UdpFormsBuilderPage';\nimport * as UdpImportFromFileMappingPage from '../UdpImportFromFileMappingPage'\nimport * as UdpAuditEventsPage from '../UdpAuditEvents'\n\nexport const UdpPages = {\n UdpNotesPage,\n UdpVerticalManagementPage,\n UdpGridPanelManagementPage,\n UdpMaintenanceEnginePage,\n UdpInquiryMaintenanceEnginePage,\n UdpReportsPage,\n DonutChartWidget,\n SparklineWidget,\n ProgressBarWidget,\n RecentlyLoadedNodesWidget,\n ChatUDP,\n UdpDataBrowserPage,\n UdpRemindersPage,\n RemindersWidget,\n UdpPublicForm,\n UdpPrivateForm,\n UdpFormsBuilderPage,\n UdpFormsListPage,\n UdpImportFromFileMappingPage,\n UdpAuditEventsPage\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,WAAW;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"UdpPages-CDU_r1sf.js","names":[],"sources":["../src/udp/pages/UdpPages/index.ts"],"sourcesContent":["import * as UdpNotesPage from '../UdpNotesPage';\nimport * as UdpVerticalManagementPage from '../UdpVerticalManagementPage';\nimport * as UdpGridPanelManagementPage from '../UdpGridPanelManagementPage';\nimport * as UdpMaintenanceEnginePage from '../UdpMaintenanceEnginePage';\nimport * as UdpInquiryMaintenanceEnginePage from '../UdpInquiryMaintenanceEnginePage';\nimport * as UdpReportsPage from '../UdpReportsPage';\nimport * as DonutChartWidget from '../../../UI/widgets/library/DonutChartWidget';\nimport * as SparklineWidget from '../../../UI/widgets/library/SparklineWidget';\nimport * as ProgressBarWidget from '../../../UI/widgets/library/ProgressBarWidget';\nimport * as RecentlyLoadedNodesWidget from '../../../UI/widgets/library/RecentlyLoadedNodesWidget';\nimport * as ChatUDP from '../ChatUDP';\nimport * as UdpDataBrowserPage from '../UdpDataBrowserPage';\nimport * as UdpRemindersPage from '../UdpRemindersPage';\nimport * as RemindersWidget from '../../../UI/widgets/library/RemindersWidget';\nimport * as UdpPublicForm from '../UdpPublicForm'\nimport * as UdpPrivateForm from '../UdpPrivateForm'\nimport * as UdpFormsListPage from '../UdpFormsListPage';\nimport * as UdpFormsBuilderPage from '../UdpFormsBuilderPage';\nimport * as UdpImportFromFileMappingPage from '../UdpImportFromFileMappingPage'\nimport * as UdpAuditEventsPage from '../UdpAuditEvents'\n\nexport const UdpPages = {\n UdpNotesPage,\n UdpVerticalManagementPage,\n UdpGridPanelManagementPage,\n UdpMaintenanceEnginePage,\n UdpInquiryMaintenanceEnginePage,\n UdpReportsPage,\n DonutChartWidget,\n SparklineWidget,\n ProgressBarWidget,\n RecentlyLoadedNodesWidget,\n ChatUDP,\n UdpDataBrowserPage,\n UdpRemindersPage,\n RemindersWidget,\n UdpPublicForm,\n UdpPrivateForm,\n UdpFormsBuilderPage,\n UdpFormsListPage,\n UdpImportFromFileMappingPage,\n UdpAuditEventsPage\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,WAAW;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -62,7 +62,7 @@ const PrivateRoute = ({ ...otherProps }) => {
62
62
  //#endregion
63
63
  //#region src/routes/UdpRoutes.jsx
64
64
  const VirtualBrowser = lazy(() => import("./VirtualBrowser-CxAjZWKa.js"));
65
- const MenuPage = lazy(() => import("./MenuPage-HFTfG0b-.js"));
65
+ const MenuPage = lazy(() => import("./MenuPage-DZl_yJC2.js"));
66
66
  const UdpPublicForm = lazy(() => import("./udp/pages/UdpPublicForm/index.js"));
67
67
  const WorkflowContainer = lazy(() => import("./WorkflowContainer-CW9NJXbF.js"));
68
68
  const PasswordResetRedirect = lazy(() => import("./PasswordResetRedirect-DK8PFqW9.js"));
@@ -120,4 +120,4 @@ const UdpRoutes = (props) => {
120
120
 
121
121
  //#endregion
122
122
  export { PrivateRoute as n, UdpRoutes as t };
123
- //# sourceMappingURL=UdpRoutes-Bbd0O-Yg.js.map
123
+ //# sourceMappingURL=UdpRoutes-f3JxaT47.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpRoutes-Bbd0O-Yg.js","names":["props"],"sources":["../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\r\nimport { useUser } from '../utilities/auth/useUser';\r\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\r\n\r\nexport const PrivateRoute = ({ ...otherProps }) => {\r\n const isAuthenticated = useIsUnityAuthenticated();\r\n const user = useUser();\r\n const { t } = useTranslation();\r\n const { rolesMap, menuActiveMap } = otherProps;\r\n const userRoles = user.roleIds;\r\n //path is passed from frontend so making sure it meets expected fromat of all lowercase, no spaces, and has format /pathname or /pathname/:param\r\n let pathAsKey = otherProps.path\r\n .toLowerCase()\r\n .replaceAll(' ', '')\r\n .replace('/', '');\r\n pathAsKey = pathAsKey.split('/:')[0];\r\n\r\n const userHasAccessToTenant = useMemo(() => {\r\n if (user?.tenantIds?.includes(user.currentTenantId)) {\r\n return true;\r\n }\r\n return false;\r\n }, [user]);\r\n\r\n const userHasRoles = useMemo(() => {\r\n if (rolesMap?.size > 0) {\r\n if (!rolesMap.has(pathAsKey)) {\r\n return false;\r\n }\r\n const routeRoles = rolesMap.get(pathAsKey);\r\n return routeRoles.every((element) => userRoles.includes(element));\r\n }\r\n }, [userRoles, rolesMap, pathAsKey]);\r\n\r\n const menuIsActive = useMemo(() => {\r\n if (menuActiveMap?.size > 0 && menuActiveMap.has(pathAsKey)) {\r\n return menuActiveMap.get(pathAsKey);\r\n }\r\n }, [menuActiveMap, pathAsKey]);\r\n\r\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'You do not have access to this tenant. Please select a different Tenant.'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (rolesMap?.has(pathAsKey) && !menuIsActive) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'Trying to access inactive menu. Please check your menu configurations'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (!user.isUnitySystemAdmin && rolesMap?.size > 0 && !userHasRoles) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'You do not have the required roles to access this page.Please contact an administrator to get access'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (isAuthenticated && user?.statusCode === 200) {\r\n return <Route {...otherProps} />;\r\n }\r\n\r\n return null;\r\n};\r\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from '../configService';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"UdpRoutes-f3JxaT47.js","names":["props"],"sources":["../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\r\nimport { useUser } from '../utilities/auth/useUser';\r\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\r\n\r\nexport const PrivateRoute = ({ ...otherProps }) => {\r\n const isAuthenticated = useIsUnityAuthenticated();\r\n const user = useUser();\r\n const { t } = useTranslation();\r\n const { rolesMap, menuActiveMap } = otherProps;\r\n const userRoles = user.roleIds;\r\n //path is passed from frontend so making sure it meets expected fromat of all lowercase, no spaces, and has format /pathname or /pathname/:param\r\n let pathAsKey = otherProps.path\r\n .toLowerCase()\r\n .replaceAll(' ', '')\r\n .replace('/', '');\r\n pathAsKey = pathAsKey.split('/:')[0];\r\n\r\n const userHasAccessToTenant = useMemo(() => {\r\n if (user?.tenantIds?.includes(user.currentTenantId)) {\r\n return true;\r\n }\r\n return false;\r\n }, [user]);\r\n\r\n const userHasRoles = useMemo(() => {\r\n if (rolesMap?.size > 0) {\r\n if (!rolesMap.has(pathAsKey)) {\r\n return false;\r\n }\r\n const routeRoles = rolesMap.get(pathAsKey);\r\n return routeRoles.every((element) => userRoles.includes(element));\r\n }\r\n }, [userRoles, rolesMap, pathAsKey]);\r\n\r\n const menuIsActive = useMemo(() => {\r\n if (menuActiveMap?.size > 0 && menuActiveMap.has(pathAsKey)) {\r\n return menuActiveMap.get(pathAsKey);\r\n }\r\n }, [menuActiveMap, pathAsKey]);\r\n\r\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'You do not have access to this tenant. Please select a different Tenant.'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (rolesMap?.has(pathAsKey) && !menuIsActive) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'Trying to access inactive menu. Please check your menu configurations'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (!user.isUnitySystemAdmin && rolesMap?.size > 0 && !userHasRoles) {\r\n return (\r\n <Route\r\n path='*'\r\n render={(props) => (\r\n <PageForbiddenRoute\r\n message={t(\r\n 'You do not have the required roles to access this page.Please contact an administrator to get access'\r\n )}\r\n showButton={false}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (isAuthenticated && user?.statusCode === 200) {\r\n return <Route {...otherProps} />;\r\n }\r\n\r\n return null;\r\n};\r\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from '../configService';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -201,7 +201,7 @@ import { t as useIsUnityAuthenticated } from "./useIsUnityAuthenticated-DWwyEFry
201
201
  import { t as PowerBIReport } from "./PowerBIReport-DzVNLdH0.js";
202
202
  import { t as PageStatus } from "./PageStatus-CMPUSx1o.js";
203
203
  import "./PageForbiddenRoute-C32Jf7bX.js";
204
- import { n as PrivateRoute, t as UdpRoutes } from "./UdpRoutes-Bbd0O-Yg.js";
204
+ import { n as PrivateRoute, t as UdpRoutes } from "./UdpRoutes-f3JxaT47.js";
205
205
  import { c as AmbientProjectSwitcher, s as ShellDropdown, t as FluentProfileMenuCard } from "./FluentProfileMenuCard-DPPx-nDJ.js";
206
206
  import "./redirectToLink-CvjUyGaR.js";
207
207
  import { n as AppMenuItem, r as AppMenuItemComponent, t as AppMenu } from "./AppMenu-B9CCWiY8.js";
@@ -267,8 +267,8 @@ import { a as createUser, i as useAccessToken, n as AuthProviderWrapper, r as Au
267
267
  import "./TenantProvider-rYWrO7y7.js";
268
268
  import { t as PasswordResetRedirect } from "./PasswordResetRedirect-Ddfq7Gxu.js";
269
269
  import "./UdpPrivateForm-CamStDVL.js";
270
- import "./UdpFormsListPage-D6eyoogV.js";
271
- import "./UdpFormsBuilderPage-h5Q62J02.js";
270
+ import { n as UdpFormsListPage_default } from "./UdpFormsListPage-BNgD_gIh.js";
271
+ import { n as UdpFormsBuilderPage_default } from "./UdpFormsBuilderPage-CoNaXBSz.js";
272
272
  import { t as AmbientAutoComplete } from "./AmbientAutoComplete-PIhfakyF.js";
273
273
  import { t as formatBytes } from "./formatBytes-Cq2rh3hB.js";
274
274
  import { t as DragDropFileUpload } from "./DragDropFileUpload-TFHchivz.js";
@@ -287,7 +287,7 @@ import { t as ClientSideUdpGrid } from "./ClientSideUdpGrid-D--quAtb.js";
287
287
  import "./virtualActions-BrXVKweh.js";
288
288
  import "./useUpdateSearchParams-sZqx_zVu.js";
289
289
  import "./UdpAuditEvents-C15mWgaI.js";
290
- import { t as UdpPages } from "./UdpPages-DXB-xgq5.js";
290
+ import { t as UdpPages } from "./UdpPages-CDU_r1sf.js";
291
291
  import { t as AlertContainer } from "./AlertContainer-BxilszfK.js";
292
292
  import { t as Accordion } from "./Accordion-BVLUCIjd.js";
293
293
  import { t as Sticky } from "./Sticky-CIJot-6K.js";
@@ -392,12 +392,12 @@ import { t as FileViewer } from "./FileViewer-D4N4iN6a.js";
392
392
  import "./amcharts-C-oU6vTx.js";
393
393
  import { t as InsightRenderer } from "./InsightRenderer-BwE5OX4C.js";
394
394
  import "./BaseTreeMenu-DitVfbeZ.js";
395
- import "./MenuPage-B4ZN_tQt.js";
396
- import { t as CustomMenuPage_default } from "./menuPage-Df5ucoQW.js";
395
+ import "./MenuPage-D-GljLi1.js";
396
+ import { t as CustomMenuPage_default } from "./menuPage-DPvDtKpN.js";
397
397
  import "./enums-Edm9Kwqq.js";
398
398
  import { t as StatusCellRenderer } from "./StatusCellRenderer-DK3MexwY.js";
399
399
  import "./renderers-BI4w5Al3.js";
400
- import { t as UdpFormsSubmissionGrid } from "./UdpFormsSubmissionGrid-mPVNbJ97.js";
400
+ import { t as UdpFormsSubmissionGrid } from "./UdpFormsSubmissionGrid-bDwM_jk1.js";
401
401
  import { n as FieldType, t as FieldArrayCard } from "./FieldArrayCard-KGSDXwrq.js";
402
402
  import { n as ApprovalIcon, t as RejectIcon } from "./RejectIcon-DNo11W_H.js";
403
403
  import { t as UdpMap } from "./UdpMap-BgkNp2X2.js";
@@ -405,4 +405,4 @@ import { t as SupportCaseSideSheet } from "./SupportCaseSideSheet-BTCZjI26.js";
405
405
  import { t as MyExportsPage } from "./MyExportsPage-3e8kRwNT.js";
406
406
  import { ConfigService } from "udp-react-stencil-component-library";
407
407
 
408
- export { ADUserTypeEnums, Accordion, AccountFlags, ActionContext, ActionDispatchContext, ActionForm, ActionModal, ActionPanelPlacement, ActionProvider, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, ActionsRenderer, 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, 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_default as 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, Ellipse, EmptyStateDisplay, EntityAttributeEnums, EntityHeader, EntityMaintenanceUdpGrid, 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, ListCard, ListElement, LoadingIndicator, LogicalSearchOperatorEnums, LoginForm, LookupTypeEnums, LookupTypeIdEnums, Map, MapFilterBar, MapLayout, MapSheet, MenuItemEnums, MenuTypeEnums, MttMainTimeline, MttSummary, MttTimeline, MultilineTextPropertyWidget_exports as MultilineTextPropertyWidget, MyExportsPage, NestParent, NestWrapper, NestedGrid, NewsCard, NodeActionEnums, NodeActionTriggerEnums, NodeColumnHeader, NodeDetails, NodeGroupOutlierEnums, NodeGroupTypeEnums, NodeList, NodeLoader, Note, Notes, NotesScreen, NotificationElement, NumericPropertyWidget_exports as NumericPropertyWidget, OpenPage, OutlookCallback, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PDFViewer, PageContainer, PageContent, 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, PropertyField, PropertyFields, PropertyTypeEnum, QuickViewCard, RecentlyLoadedNodesTable, RecentlyLoadedNodesWidget_exports as RecentlyLoadedNodesWidget, RejectIcon, RemindersScreen, RemindersWidget_exports as RemindersWidget, RequiredFieldsMappingForm, RoleIdEnums, RoleNameEnums, RoleTypeEnums, 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, TableColumnDefs, TableContainer, TeleportSource, TenantTypeEnums, TextPropertyWidget_exports as TextPropertyWidget, ThemeProvider, TicketCard, TileDisplay, TileLayer, TimeField, TimeLine, TimePropertyWidget_exports as TimePropertyWidget, TimelineCalendar, TimelinePreloaderNode, ToggleSection, Token, TokenGroupItem, ToolBarButton, TreeViewModeEnums, TrimForAvatar, Typography, UdpAdvancedSearchBuilder, UdpBarChart, UdpCalendar, UdpCalendarDayView, UdpCalendarMonthView, UdpCalendarWeekView, UdpCalendarYearView, UdpCrudFormFields, UdpDateRangeSelector, UdpDateSelector, UdpDonutChart, UdpEnums, UdpFormsSubmissionGrid, UdpGridTemplate, UdpKeywordEnums, UdpLineChart, UdpMaintenanceEnginePage, UdpMap, UdpMapComponent, UdpMapToolbar, UdpPageEnums, UdpPages, UdpPublicForm_default as UdpPublicForm, UdpReminderFiledForType, UdpRoutes, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeSelector, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UnityFluentIcon, UnityIcon, UserContext, UserDispatchContext, UserForm, UtilityBar, UtilityBarInport, UtilityBarInportTarget, UtilityTabHeader, VectorLayer, VerticalEnums, VisibilityTypeEnums, WidgetCard, WorkOrderCard, WorkflowContainer, ZoomControl, acquireAccessToken, apiMutate, apiResponseArrayToOptions, arrayMutators, camelToPascalCaseWithSpace, checkNodeIsHidden, clearGridState, clearStoredExternalPath, clearStoredPath, clearStoredTenant, collapseAllNodes, colors, constructBusinessObjectArrFromTree, constructDynamicNodeGroups, constructDynamicNodeGroups2, constructPreloadedTree, constructStaticNodeGroups, createTimeline, createUser, csvStrToArray, csvStrToArrayOfObjects, defaultColumnActionsDef, deleteGridState, deleteNode, deleteNodeAndChildren, evaluateRule, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, expandAllNodes, findAllParentIds, findLastNode, findNodeById, findNodeByIdAndLabel, findNodesByIdAndLabel, findTermByType, fluentLibraryIcons, formatBytes, mttFunctions_exports as formatDataWithTimelineCategoryNameOrderedByDate, formatDateToLocaleString, formatTreeLabel, formatTreeMenuItem, getAccessToken, getAllChildrenNodesToDelete, getApiAccessScope, getApiMethodIdByPath, getBaseMethod, getCommonEntityName, getDisplayDetails, getDisplayName, getEntityAttributes, getFieldValuesForProperties, getFullyQualifiedName, getGridState, getHeaderTitle, getIconFromName, getLazyLoadChildrenArr, getLoginRequest, getMenuItemsRecursively, getMergedConfig, getNodeIdForRightBorder, getOrderedDynamicGroups, getPathObject, getPathParametersObj, getPrimaryKeyValues, getPropertiesForFieldValues, getPropertyMappingList, getPropertyMappingObj, getRatio, getRouteRolesMapAndMenuActiveMap, getSanitizedName, getSearchIdentifiers, getSearchObject, getSearchValueString, getSignInAuthProvider, getStoredExternalPath, getStoredPath, getStoredTenant, getSuccessAction, getTokenRequest, getUnityIconFromName, greyScale, handleResponseErrors, initSignInAuthProvider, loginRedirect, makeDynamicGroupStructures, makeDynamicTreeStructure, makeTreeStaticGroupStructure, makeTreeStructure, mapNodeGroupChildren, mapNodeObjValuesToSearchParameters, mapRule, mapRuleData, onFirstDataRendered, pluralize, processCatalogObjectKeysInOrder, processItemForDynamicNodeGroups, processItemForStaticNodeGroup, processObjIndex, processObjectToTree, processOrderedTreeData, processReferences, removeWhiteSpace, saveGridState, searchForMatchingNode, searchTree, storeCurrentPath, storeExternalPath, storeInitialPath, storeInitialTenant, storePath, storeTenant, 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, useIsAuthed, useIsUnityAuthenticated, useItemSubCard, useLocalUserActions, useLoginAction, useLogoutAction, useLookupsStore, useNoticeUpdate, useOutlook, usePageContext, usePosition, useProductVersion, usePromotedLookupMethods, usePromotedMethodEntity, useQueryExecutors, useQuickFilter, useScreenControl, useSearchFilterParamsMap, useServerSideDatasource, useSetInitialShellVisibility, useSetLocationState, useShellStore, useSingleLogout, useStyles, useSystemColor, useTenant, useTenantStore, useTypeScale, useUdpExport, useUser, useUserActions, useWorkflowStore, verticalPrimary, verticalSecondary, whitelistedPaths };
408
+ export { ADUserTypeEnums, Accordion, AccountFlags, ActionContext, ActionDispatchContext, ActionForm, ActionModal, ActionPanelPlacement, ActionProvider, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, ActionsRenderer, 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, 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_default as 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, Ellipse, EmptyStateDisplay, EntityAttributeEnums, EntityHeader, EntityMaintenanceUdpGrid, 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, ListCard, ListElement, LoadingIndicator, LogicalSearchOperatorEnums, LoginForm, LookupTypeEnums, LookupTypeIdEnums, Map, MapFilterBar, MapLayout, MapSheet, MenuItemEnums, MenuTypeEnums, MttMainTimeline, MttSummary, MttTimeline, MultilineTextPropertyWidget_exports as MultilineTextPropertyWidget, MyExportsPage, NestParent, NestWrapper, NestedGrid, NewsCard, NodeActionEnums, NodeActionTriggerEnums, NodeColumnHeader, NodeDetails, NodeGroupOutlierEnums, NodeGroupTypeEnums, NodeList, NodeLoader, Note, Notes, NotesScreen, NotificationElement, NumericPropertyWidget_exports as NumericPropertyWidget, OpenPage, OutlookCallback, PAHAdditionalRightComponent, PAHAdditionalTitleComponent, PAHExport, PDFViewer, PageContainer, PageContent, 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, PropertyField, PropertyFields, PropertyTypeEnum, QuickViewCard, RecentlyLoadedNodesTable, RecentlyLoadedNodesWidget_exports as RecentlyLoadedNodesWidget, RejectIcon, RemindersScreen, RemindersWidget_exports as RemindersWidget, RequiredFieldsMappingForm, RoleIdEnums, RoleNameEnums, RoleTypeEnums, 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, TableColumnDefs, TableContainer, TeleportSource, TenantTypeEnums, TextPropertyWidget_exports as TextPropertyWidget, ThemeProvider, TicketCard, TileDisplay, TileLayer, TimeField, TimeLine, TimePropertyWidget_exports as TimePropertyWidget, TimelineCalendar, TimelinePreloaderNode, ToggleSection, Token, TokenGroupItem, ToolBarButton, TreeViewModeEnums, TrimForAvatar, Typography, UdpAdvancedSearchBuilder, UdpBarChart, UdpCalendar, UdpCalendarDayView, UdpCalendarMonthView, UdpCalendarWeekView, UdpCalendarYearView, UdpCrudFormFields, UdpDateRangeSelector, UdpDateSelector, UdpDonutChart, UdpEnums, UdpFormsBuilderPage_default as UdpFormsBuilderPage, UdpFormsListPage_default as UdpFormsListPage, UdpFormsSubmissionGrid, UdpGridTemplate, UdpKeywordEnums, UdpLineChart, UdpMaintenanceEnginePage, UdpMap, UdpMapComponent, UdpMapToolbar, UdpPageEnums, UdpPages, UdpPublicForm_default as UdpPublicForm, UdpReminderFiledForType, UdpRoutes, UdpStepper, UdpTabPanel, UdpTabUtility, UdpTabs, UdpTimeSelector, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator, UnityFluentIcon, UnityIcon, UserContext, UserDispatchContext, UserForm, UtilityBar, UtilityBarInport, UtilityBarInportTarget, UtilityTabHeader, VectorLayer, VerticalEnums, VisibilityTypeEnums, WidgetCard, WorkOrderCard, WorkflowContainer, ZoomControl, acquireAccessToken, apiMutate, apiResponseArrayToOptions, arrayMutators, camelToPascalCaseWithSpace, checkNodeIsHidden, clearGridState, clearStoredExternalPath, clearStoredPath, clearStoredTenant, collapseAllNodes, colors, constructBusinessObjectArrFromTree, constructDynamicNodeGroups, constructDynamicNodeGroups2, constructPreloadedTree, constructStaticNodeGroups, createTimeline, createUser, csvStrToArray, csvStrToArrayOfObjects, defaultColumnActionsDef, deleteGridState, deleteNode, deleteNodeAndChildren, evaluateRule, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, expandAllNodes, findAllParentIds, findLastNode, findNodeById, findNodeByIdAndLabel, findNodesByIdAndLabel, findTermByType, fluentLibraryIcons, formatBytes, mttFunctions_exports as formatDataWithTimelineCategoryNameOrderedByDate, formatDateToLocaleString, formatTreeLabel, formatTreeMenuItem, getAccessToken, getAllChildrenNodesToDelete, getApiAccessScope, getApiMethodIdByPath, getBaseMethod, getCommonEntityName, getDisplayDetails, getDisplayName, getEntityAttributes, getFieldValuesForProperties, getFullyQualifiedName, getGridState, getHeaderTitle, getIconFromName, getLazyLoadChildrenArr, getLoginRequest, getMenuItemsRecursively, getMergedConfig, getNodeIdForRightBorder, getOrderedDynamicGroups, getPathObject, getPathParametersObj, getPrimaryKeyValues, getPropertiesForFieldValues, getPropertyMappingList, getPropertyMappingObj, getRatio, getRouteRolesMapAndMenuActiveMap, getSanitizedName, getSearchIdentifiers, getSearchObject, getSearchValueString, getSignInAuthProvider, getStoredExternalPath, getStoredPath, getStoredTenant, getSuccessAction, getTokenRequest, getUnityIconFromName, greyScale, handleResponseErrors, initSignInAuthProvider, loginRedirect, makeDynamicGroupStructures, makeDynamicTreeStructure, makeTreeStaticGroupStructure, makeTreeStructure, mapNodeGroupChildren, mapNodeObjValuesToSearchParameters, mapRule, mapRuleData, onFirstDataRendered, pluralize, processCatalogObjectKeysInOrder, processItemForDynamicNodeGroups, processItemForStaticNodeGroup, processObjIndex, processObjectToTree, processOrderedTreeData, processReferences, removeWhiteSpace, saveGridState, searchForMatchingNode, searchTree, storeCurrentPath, storeExternalPath, storeInitialPath, storeInitialTenant, storePath, storeTenant, 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, useIsAuthed, useIsUnityAuthenticated, useItemSubCard, useLocalUserActions, useLoginAction, useLogoutAction, useLookupsStore, useNoticeUpdate, useOutlook, usePageContext, usePosition, useProductVersion, usePromotedLookupMethods, usePromotedMethodEntity, useQueryExecutors, useQuickFilter, useScreenControl, useSearchFilterParamsMap, useServerSideDatasource, useSetInitialShellVisibility, useSetLocationState, useShellStore, useSingleLogout, useStyles, useSystemColor, useTenant, useTenantStore, useTypeScale, useUdpExport, useUser, useUserActions, useWorkflowStore, verticalPrimary, verticalSecondary, whitelistedPaths };
@@ -53,7 +53,7 @@ import "../SidebarCollapseButton-pxq7unTx.js";
53
53
  import "../UtilityBarInport-BkkjGmSO.js";
54
54
  import "../UtilitySideBar-CkymNmr-.js";
55
55
  import "../BaseTreeMenu-DitVfbeZ.js";
56
- import "../MenuPage-B4ZN_tQt.js";
57
- import { t as CustomMenuPage_default } from "../menuPage-Df5ucoQW.js";
56
+ import "../MenuPage-D-GljLi1.js";
57
+ import { t as CustomMenuPage_default } from "../menuPage-DPvDtKpN.js";
58
58
 
59
59
  export { CustomMenuPage_default as CustomMenuPage };
@@ -1,4 +1,4 @@
1
- import { t as MenuPage_default } from "./MenuPage-B4ZN_tQt.js";
1
+ import { t as MenuPage_default } from "./MenuPage-D-GljLi1.js";
2
2
  import React from "react";
3
3
  import { Typography, makeStyles } from "@material-ui/core";
4
4
  import PropTypes from "prop-types";
@@ -57,7 +57,7 @@ function buildInnerMenuFromItems(items = [], menuTitle, idPrefix = "custom", sho
57
57
  idMap
58
58
  };
59
59
  }
60
- const CustomMenuPage = ({ items = [], className = "", menuTitle, mainContent: clientMainContent, idPrefix = "custom", showItemCount = false, itemCountAccessor = null, allowMissingPageParam = false }) => {
60
+ const CustomMenuPage = ({ items = [], className = "", menuTitle, mainContent: clientMainContent, idPrefix = "custom", showItemCount = false, itemCountAccessor = null, allowMissingPageParam = false, searchParamsTransformer = null }) => {
61
61
  const classes = useStyles();
62
62
  const { innerMenu, idMap } = buildInnerMenuFromItems(items, menuTitle, idPrefix, showItemCount, itemCountAccessor);
63
63
  const clientContent = clientMainContent ? ({ selectedNode, menuItemsList }) => clientMainContent({
@@ -76,7 +76,8 @@ const CustomMenuPage = ({ items = [], className = "", menuTitle, mainContent: cl
76
76
  innerMenuOverride: innerMenu,
77
77
  mainContent: composedMainContent,
78
78
  menuTitle,
79
- allowMissingPageParam
79
+ allowMissingPageParam,
80
+ searchParamsTransformer
80
81
  });
81
82
  };
82
83
  CustomMenuPage.propTypes = {
@@ -87,10 +88,11 @@ CustomMenuPage.propTypes = {
87
88
  idPrefix: PropTypes.string,
88
89
  showItemCount: PropTypes.bool,
89
90
  itemCountAccessor: PropTypes.func,
90
- allowMissingPageParam: PropTypes.bool
91
+ allowMissingPageParam: PropTypes.bool,
92
+ searchParamsTransformer: PropTypes.func
91
93
  };
92
94
  var CustomMenuPage_default = CustomMenuPage;
93
95
 
94
96
  //#endregion
95
97
  export { CustomMenuPage_default as t };
96
- //# sourceMappingURL=menuPage-Df5ucoQW.js.map
98
+ //# sourceMappingURL=menuPage-DPvDtKpN.js.map