udp-react-enterprise-component-library 25.1.0-beta.9 → 25.1.1-beta.1

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 (64) hide show
  1. package/dist/{AmbientGridTemplate-BqlMt5Su.js → AmbientGridTemplate-6xfwTiz-.js} +24 -62
  2. package/dist/AmbientGridTemplate-6xfwTiz-.js.map +1 -0
  3. package/dist/ClientSideUdpGrid-CEhDqIId.js +56 -0
  4. package/dist/ClientSideUdpGrid-CEhDqIId.js.map +1 -0
  5. package/dist/{EnvironmentRibbon-DaDmKAPO.js → EnvironmentRibbon-oEmbWjEq.js} +4 -148
  6. package/dist/EnvironmentRibbon-oEmbWjEq.js.map +1 -0
  7. package/dist/{MenuPage-CO6_GWwB.js → MenuPage-CZHpoopY.js} +12 -13
  8. package/dist/{MenuPage-CO6_GWwB.js.map → MenuPage-CZHpoopY.js.map} +1 -1
  9. package/dist/{MyExportsPage-CX9tzqHk.js → MyExportsPage-CS2Bw2mF.js} +56 -69
  10. package/dist/{MyExportsPage-CX9tzqHk.js.map → MyExportsPage-CS2Bw2mF.js.map} +1 -1
  11. package/dist/MyExportsPage-hyX42CN6.js +11 -0
  12. package/dist/{PageContainer-k8KCfGsM.js → PageContainer-BPHLFGju.js} +12 -17
  13. package/dist/PageContainer-BPHLFGju.js.map +1 -0
  14. package/dist/{PageNotFoundRoute-CxYZNEhN.js → PageNotFoundRoute-D9dLbM_w.js} +1 -1
  15. package/dist/{PageNotFoundRoute-CxYZNEhN.js.map → PageNotFoundRoute-D9dLbM_w.js.map} +1 -1
  16. package/dist/PageNotFoundRoute-DUj0Q9J8.js +3 -0
  17. package/dist/{PasswordResetRedirect-BHnkAW40.js → PasswordResetRedirect-C3g8L0vA.js} +2 -3
  18. package/dist/{PasswordResetRedirect-BHnkAW40.js.map → PasswordResetRedirect-C3g8L0vA.js.map} +1 -1
  19. package/dist/PasswordResetRedirect-Dh-S5Ril.js +3 -0
  20. package/dist/{SearchUtilities-Bor3HbfB.js → SearchUtilities-Btugro8y.js} +11 -20
  21. package/dist/{SearchUtilities-Bor3HbfB.js.map → SearchUtilities-Btugro8y.js.map} +1 -1
  22. package/dist/{SideSheet-DUsxG1FN.js → SideSheet-BsDoeNmq.js} +7 -47
  23. package/dist/SideSheet-BsDoeNmq.js.map +1 -0
  24. package/dist/UdpMaintenanceConfigPage-DcHntunS.js +88 -0
  25. package/dist/UdpMaintenanceConfigPage-DcHntunS.js.map +1 -0
  26. package/dist/UdpPublicForm-DTt-lMfk.js +4 -0
  27. package/dist/{UdpPublicForm-Caa1tH6z.js → UdpPublicForm-LDSuOwV2.js} +2 -2
  28. package/dist/{UdpPublicForm-Caa1tH6z.js.map → UdpPublicForm-LDSuOwV2.js.map} +1 -1
  29. package/dist/{UtilitySideBar-D4CXGtW2.js → UtilitySideBar-95k0edSA.js} +45 -89
  30. package/dist/{UtilitySideBar-D4CXGtW2.js.map → UtilitySideBar-95k0edSA.js.map} +1 -1
  31. package/dist/{VirtualBrowser-BXL0hdy0.js → VirtualBrowser-_epMjUkE.js} +23 -29
  32. package/dist/{VirtualBrowser-BXL0hdy0.js.map → VirtualBrowser-_epMjUkE.js.map} +1 -1
  33. package/dist/{WorkflowContainer-DrqzuQtU.js → WorkflowContainer-ClPvY2mG.js} +14 -20
  34. package/dist/{WorkflowContainer-DrqzuQtU.js.map → WorkflowContainer-ClPvY2mG.js.map} +1 -1
  35. package/dist/WorkflowContainer-D0QUOc-f.js +11 -0
  36. package/dist/{apiHelpers-DZots3og.js → apiHelpers-CmM6DWAT.js} +7 -12
  37. package/dist/{apiHelpers-DZots3og.js.map → apiHelpers-CmM6DWAT.js.map} +1 -1
  38. package/dist/entityUtilities-Dy-jsB5c.js +22 -0
  39. package/dist/entityUtilities-Dy-jsB5c.js.map +1 -0
  40. package/dist/index.js +1528 -2114
  41. package/dist/index.js.map +1 -1
  42. package/dist/{propertyTypeEnums-Civy7RJv.js → propertyTypeEnums-BCCGQqVB.js} +2 -2
  43. package/dist/{propertyTypeEnums-Civy7RJv.js.map → propertyTypeEnums-BCCGQqVB.js.map} +1 -1
  44. package/dist/types/index.d.ts +0 -4
  45. package/dist/types/maintenanceEngine/crudBrowser/CrudTableColumnDefs.d.ts +1 -9
  46. package/dist/types/maintenanceEngine/crudBrowser/crudHelper.d.ts +1 -0
  47. package/dist/types/menuPage/MenuPage.d.ts +2 -1
  48. package/dist/types/tsconfig.tsbuildinfo +1 -1
  49. package/dist/types/udp/pages/UdpMaintenanceConfigPage.d.ts +2 -1
  50. package/dist/useAxiosGet-Dh5pVURP.js +144 -0
  51. package/dist/useAxiosGet-Dh5pVURP.js.map +1 -0
  52. package/dist/useAxiosMutate-DlG255x9.js +43 -0
  53. package/dist/useAxiosMutate-DlG255x9.js.map +1 -0
  54. package/package.json +2 -2
  55. package/dist/AmbientGridTemplate-BqlMt5Su.js.map +0 -1
  56. package/dist/EnvironmentRibbon-DaDmKAPO.js.map +0 -1
  57. package/dist/MyExportsPage-CkzQ0MRq.js +0 -8
  58. package/dist/PageContainer-k8KCfGsM.js.map +0 -1
  59. package/dist/PageNotFoundRoute-BbBtA9Cz.js +0 -3
  60. package/dist/PasswordResetRedirect-tUV2yEkH.js +0 -3
  61. package/dist/SideSheet-DUsxG1FN.js.map +0 -1
  62. package/dist/UdpPublicForm-Cvw5tOHe.js +0 -4
  63. package/dist/WorkflowContainer-Q8gtuaB7.js +0 -9
  64. package/dist/types/maintenanceEngine/crudBrowser/CrudTableActionRender.d.ts +0 -3
@@ -0,0 +1,56 @@
1
+ import { useUser } from "./useAxiosGet-Dh5pVURP.js";
2
+ import React from "react";
3
+ import { CircularProgress, makeStyles } from "@material-ui/core";
4
+ import { ClientSideGrid } from "udp-react-stencil-component-library";
5
+ import { useLocation } from "react-router-dom";
6
+ import { useIsAuthenticated, useMsal } from "@azure/msal-react";
7
+
8
+ //#region src/utilities/auth/useAuthedUser.ts
9
+ /**
10
+ * Hook that provides a returnTo string for the current location
11
+ */
12
+ function useCurrentPageReturnTo() {
13
+ const { pathname, search, hash } = useLocation();
14
+ return {
15
+ pathname: String(pathname),
16
+ search: String(search),
17
+ hash: String(hash)
18
+ };
19
+ }
20
+ const useIsAuthed = () => {
21
+ return useIsAuthenticated();
22
+ };
23
+ /**
24
+ * Hook used on routes that require a logged in user to ensure that the user is logged in
25
+ * @see {@link useUser}
26
+ */
27
+ const useAuthedUser = () => {
28
+ const { inProgress } = useMsal();
29
+ const isAuthenticated = useIsAuthed();
30
+ const user = useUser();
31
+ if (isAuthenticated || inProgress) return user;
32
+ else return null;
33
+ };
34
+
35
+ //#endregion
36
+ //#region src/UI/feedback/PageLoading.jsx
37
+ const useStyles = makeStyles((theme) => ({ root: {
38
+ display: "flex",
39
+ justifyContent: "center",
40
+ alignItems: "center",
41
+ height: "50vh"
42
+ } }));
43
+ const PageLoading = () => {
44
+ const classes = useStyles();
45
+ return /* @__PURE__ */ React.createElement("div", { className: classes.root }, /* @__PURE__ */ React.createElement(CircularProgress, { color: "secondary" }));
46
+ };
47
+
48
+ //#endregion
49
+ //#region src/UI/templates/newGrid/ClientSideUdpGrid.jsx
50
+ const ClientSideUdpGrid = (props) => {
51
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(ClientSideGrid, props));
52
+ };
53
+
54
+ //#endregion
55
+ export { ClientSideUdpGrid, PageLoading, useAuthedUser, useCurrentPageReturnTo, useIsAuthed };
56
+ //# sourceMappingURL=ClientSideUdpGrid-CEhDqIId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSideUdpGrid-CEhDqIId.js","names":["useIsAuthed: () => boolean","useAuthedUser: () => User | null"],"sources":["../src/utilities/auth/useAuthedUser.ts","../src/UI/feedback/PageLoading.jsx","../src/UI/templates/newGrid/ClientSideUdpGrid.jsx"],"sourcesContent":["import { useLocation } from 'react-router-dom';\nimport { useUser } from './useUser';\nimport { User } from './user';\nimport { useIsAuthenticated, useMsal } from '@azure/msal-react';\n//import { getStoredAccessToken } from '../storage/UnitySessionStorage';\n\n/**\n * Hook that provides a returnTo string for the current location\n */\nexport function useCurrentPageReturnTo(): { pathname: string; search: string; hash: string } {\n const { pathname, search, hash } = useLocation();\n // Avoid shorthand to satisfy isolatedDeclarations\n return { pathname: String(pathname), search: String(search), hash: String(hash) };\n}\n\nexport const useIsAuthed: () => boolean = () => {\n const isAADAuthenticated = useIsAuthenticated();\n return isAADAuthenticated;\n}\n\n/**\n * Hook used on routes that require a logged in user to ensure that the user is logged in\n * @see {@link useUser}\n */\nexport const useAuthedUser: () => User | null = () => {\n const { inProgress } = useMsal();\n const isAuthenticated = useIsAuthed();\n const user = useUser();\n //const login = useLoginAction();\n\n if (\n isAuthenticated ||\n (inProgress)\n ) {\n return user;\n }\n else{\n return null;\n }\n // else {\n // login();\n // return null;\n // }\n}\n","import React from 'react';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '50vh'\n }\n}));\nexport const PageLoading = () => {\n const classes = useStyles();\n return (\n <div className={classes.root}>\n <CircularProgress color='secondary' />\n </div>\n );\n};\n","import React from 'react'\nimport { ClientSideGrid } from 'udp-react-stencil-component-library'\n\nexport const ClientSideUdpGrid = (props) => {\n\n return (\n <div >\n <ClientSideGrid {...props}/>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,yBAA6E;CAC3F,MAAM,EAAE,UAAU,QAAQ,SAAS,aAAa;AAEhD,QAAO;EAAE,UAAU,OAAO,SAAS;EAAE,QAAQ,OAAO,OAAO;EAAE,MAAM,OAAO,KAAK;EAAE;;AAGnF,MAAaA,oBAAmC;AAE9C,QAD2B,oBAAoB;;;;;;AAQjD,MAAaC,sBAAyC;CACpD,MAAM,EAAE,eAAe,SAAS;CAChC,MAAM,kBAAkB,aAAa;CACrC,MAAM,OAAO,SAAS;AAGtB,KACE,mBACC,WAED,QAAO;KAGP,QAAO;;;;;ACnCX,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM;CACJ,SAAS;CACT,gBAAgB;CAChB,YAAY;CACZ,QAAQ;CACT,EACF,EAAE;AACH,MAAa,oBAAoB;CAC/B,MAAM,UAAU,WAAW;AAC3B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC,oBAAiB,OAAM,cAAc,CAClC;;;;;ACZV,MAAa,qBAAqB,UAAU;AAE1C,QACC,oCAAC,aACE,oCAAC,gBAAmB,MAAQ,CACzB"}
@@ -1,8 +1,6 @@
1
- import { getAccessToken, getMergedConfig, handleResponseErrors, whitelistedPaths } from "./apiHelpers-DZots3og.js";
1
+ import { useUser } from "./useAxiosGet-Dh5pVURP.js";
2
2
  import React, { createContext, useContext, useEffect, useMemo } from "react";
3
3
  import { Badge, Button, Chip, CircularProgress, IconButton, Typography, makeStyles } from "@material-ui/core";
4
- import useAxios from "axios-hooks";
5
- import Axios from "axios";
6
4
  import { ConfigService, apiMutate } from "udp-react-stencil-component-library";
7
5
  import clsx from "clsx";
8
6
  import { create } from "zustand";
@@ -48,76 +46,6 @@ const FluentButton = (props) => {
48
46
  }), !progress && children);
49
47
  };
50
48
 
51
- //#endregion
52
- //#region src/utilities/axiosInterceptors.js
53
- const axiosInterceptors = () => {
54
- Axios.interceptors.request.use(async (config) => {
55
- if (!whitelistedPaths.includes(window.location.pathname)) {
56
- let accessToken = "";
57
- if (!config?.headers?.Authorization) accessToken = await getAccessToken();
58
- return getMergedConfig(accessToken, config);
59
- }
60
- return config;
61
- }, (error) => Promise.reject(error));
62
- Axios.interceptors.response.use((response) => response, async (error) => {
63
- const config = error?.config;
64
- if (error?.response?.status === 401 && !config?._retry && !whitelistedPaths.includes(window.location.pathname)) {
65
- config.headers.Authorization = `Bearer ${await getAccessToken()}`;
66
- config._retry = true;
67
- return Axios(config);
68
- }
69
- return Promise.reject(error);
70
- });
71
- };
72
- var axiosInterceptors_default = axiosInterceptors;
73
-
74
- //#endregion
75
- //#region src/utilities/auth/internal.ts
76
- const UserContext = createContext(null);
77
- const UserDispatchContext = createContext(null);
78
-
79
- //#endregion
80
- //#region src/utilities/auth/useUser.ts
81
- /**
82
- * Get the current User object (or null if not logged in)
83
- *
84
- * Does not redirect to login
85
- * @see {@link useAuthedUser}
86
- */
87
- function useUser() {
88
- return useContext(UserContext);
89
- }
90
-
91
- //#endregion
92
- //#region src/utilities/input/StringUtilities.js
93
- const removeWhiteSpace = (str) => {
94
- if (!str) return "";
95
- return str.replace(/\s/g, "");
96
- };
97
- const camelToPascalCaseWithSpace = (str) => {
98
- const capitalizedStr = str.charAt(0).toUpperCase() + str.slice(1);
99
- return capitalizedStr.replace(/([a-z0-9])([A-Z])/g, "$1 $2");
100
- };
101
- const trimStringAfter = (str, character) => {
102
- const lastIndex = str.lastIndexOf(character);
103
- return str.substring(0, lastIndex === -1 ? str.length : lastIndex);
104
- };
105
- const toLowerFirstChar = (field) => {
106
- return field?.charAt(0)?.toLowerCase() + field?.slice(1);
107
- };
108
- const toUpperFirstChar = (field) => {
109
- return field?.charAt(0)?.toUpperCase() + field?.slice(1);
110
- };
111
- const toTitleCase = (str) => {
112
- const result = str.replace(/([A-Z][a-z]+)/g, " $1").replace(/([A-Z]+)\b/g, " $1").replace(/_/g, " ").trim();
113
- return result.charAt(0).toUpperCase() + result.slice(1);
114
- };
115
- const pluralize = (str) => {
116
- const last = str.charAt(str.length - 1);
117
- if (last === "s") return str;
118
- else return `${str}s`;
119
- };
120
-
121
49
  //#endregion
122
50
  //#region src/utilities/FluentIcon.jsx
123
51
  const useStyles$8 = makeStyles((props) => ({
@@ -839,77 +767,6 @@ const StandardTitle = (props) => {
839
767
  }, children);
840
768
  };
841
769
 
842
- //#endregion
843
- //#region src/utilities/useAxiosGet.js
844
- axiosInterceptors_default();
845
- /**
846
- * A custom hook for making GET requests with query parameters.
847
- * @template T - The expected type of the response data.
848
- * @param {string} url - The URL for the request.
849
- * @param {object} [params] - Optional object for query parameters.
850
- * @param {import('axios').AxiosRequestConfig} [config] - Optional Axios request config.
851
- * @param {boolean} [isManual] - If true, the request is not made automatically.
852
- * @returns {import('axios-hooks').AxiosHooksResult<T>}
853
- */
854
- const useAxiosGetQuery = (url, params, config, isManual) => {
855
- const user = useUser();
856
- if (!user?.accessToken) isManual = true;
857
- const headers = useMemo(() => {
858
- const currentHeaders = config.headers ?? {};
859
- currentHeaders.currentTenantId ||= user?.currentTenantId ?? "";
860
- return currentHeaders;
861
- }, [user, config]);
862
- config.headers = headers;
863
- const [{ data, loading, error }, refetch] = useAxios({
864
- url,
865
- params,
866
- ...config
867
- }, { manual: isManual });
868
- useEffect(() => {
869
- handleResponseErrors(error);
870
- }, [error]);
871
- return [{
872
- data,
873
- loading,
874
- error
875
- }, refetch];
876
- };
877
- /**
878
- * A custom hook for making GET requests with Axios.
879
- * @template T - The expected type of the response data.
880
- * @param {string} baseURL - The base URL for the request.
881
- * @param {string} url - The URL path for the request.
882
- * @param {import('axios').AxiosRequestConfig} [config={}] - Optional Axios request config.
883
- * @param {boolean} [isManual] - If true, the request is not made automatically.
884
- * @param {boolean} [useCache=true] - If true, caching is enabled.
885
- * @returns {import('axios-hooks').AxiosHooksResult<T>}
886
- */
887
- const useAxiosGet = (baseURL, url, config = {}, isManual, useCache = true) => {
888
- const user = useUser();
889
- const headers = useMemo(() => {
890
- const currentHeaders = config.headers ?? {};
891
- currentHeaders.currentTenantId ||= user?.currentTenantId ?? "";
892
- return currentHeaders;
893
- }, [user, config]);
894
- config.headers = headers;
895
- const fullURL = { url: `${baseURL}/${url}` };
896
- const [{ data, loading, error }, refetch] = useAxios({
897
- ...fullURL,
898
- ...config
899
- }, {
900
- manual: isManual,
901
- useCache
902
- });
903
- useEffect(() => {
904
- handleResponseErrors(error);
905
- }, [error]);
906
- return [{
907
- data,
908
- loading,
909
- error
910
- }, refetch];
911
- };
912
-
913
770
  //#endregion
914
771
  //#region src/UI/widgets/utils/useId.js
915
772
  let idCounter = 0;
@@ -1028,7 +885,7 @@ const useTenant = () => {
1028
885
  const APP_RIBBON_SPACE = 25;
1029
886
  const useBuildEnvironment = () => {
1030
887
  const user = useUser();
1031
- const buildEnvironment = useMemo(() => {
888
+ return useMemo(() => {
1032
889
  const env = ConfigService.config.UNITY_ENVIRONMENT;
1033
890
  if (![
1034
891
  "development",
@@ -1038,7 +895,6 @@ const useBuildEnvironment = () => {
1038
895
  ].includes(env?.toLowerCase()) || env === "production" && !user?.can?.CAN_VIEW_PROD_APP_RIBBON) return void 0;
1039
896
  return env?.toLowerCase();
1040
897
  }, [user]);
1041
- return buildEnvironment;
1042
898
  };
1043
899
  const useStyles = makeStyles({
1044
900
  root: {
@@ -1075,5 +931,5 @@ const EnvironmentRibbon = () => {
1075
931
  };
1076
932
 
1077
933
  //#endregion
1078
- export { ADUserTypeEnums, APP_RIBBON_SPACE, CardinalityTypeEnums, ContainerTypeEnums, DeviceTypeEnums, EntityAttributeEnums, EnvironmentRibbon, FluentButton, FluentIcon, FluentIconButton, GridEnums, GridStateTypeEnums, JobStatusIdMapping, JobTypeIdMapping, LayoutUnit, LogicalSearchOperatorEnums, LookupTypeEnums, LookupTypeIdEnums, MenuItemEnums, MenuTypeEnums, NodeActionEnums, NodeActionTriggerEnums, NodeGroupOutlierEnums, NodeGroupTypeEnums, PanelPositionEnums, PrimaryActionButton, PrimaryActionButton_default, ProductEnums, ProductNameEnums, RoleIdEnums, RoleNameEnums, RoleTypeEnums, SearchGroupingType, SearchSortDirection, SearchValueType, SeverityTypeEnums, SplitScreenTypeEnums, StandardTitle, StatusChip, TenantContext, TenantTypeEnums, TreeViewModeEnums, Typography$1 as Typography, UdpEnums, UdpKeywordEnums, UdpReminderFiledForType, UnityFluentIcon, UnityIcon, UserContext, UserDispatchContext, VerticalEnums, VisibilityTypeEnums, axiosInterceptors_default, camelToPascalCaseWithSpace, colors$1 as colors, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, getBaseMethod, getCategoryColor, getEllipseColor, pluralize, removeWhiteSpace, toLowerFirstChar, toTitleCase, toUpperFirstChar, trimStringAfter, useAxiosGet, useAxiosGetQuery, useBuildEnvironment, useId, useSetInitialShellVisibility, useShellStore, useTenant, useUser };
1079
- //# sourceMappingURL=EnvironmentRibbon-DaDmKAPO.js.map
934
+ export { ADUserTypeEnums, APP_RIBBON_SPACE, CardinalityTypeEnums, ContainerTypeEnums, DeviceTypeEnums, EntityAttributeEnums, EnvironmentRibbon, FluentButton, FluentIcon, FluentIconButton, GridEnums, GridStateTypeEnums, JobStatusIdMapping, JobTypeIdMapping, LayoutUnit, LogicalSearchOperatorEnums, LookupTypeEnums, LookupTypeIdEnums, MenuItemEnums, MenuTypeEnums, NodeActionEnums, NodeActionTriggerEnums, NodeGroupOutlierEnums, NodeGroupTypeEnums, PanelPositionEnums, PrimaryActionButton, PrimaryActionButton_default, ProductEnums, ProductNameEnums, RoleIdEnums, RoleNameEnums, RoleTypeEnums, SearchGroupingType, SearchSortDirection, SearchValueType, SeverityTypeEnums, SplitScreenTypeEnums, StandardTitle, StatusChip, TenantContext, TenantTypeEnums, TreeViewModeEnums, Typography$1 as Typography, UdpEnums, UdpKeywordEnums, UdpReminderFiledForType, UnityFluentIcon, UnityIcon, VerticalEnums, VisibilityTypeEnums, colors$1 as colors, executeQueryAdHoc, executeQueryInstance, executeQueryInstanceWithApiMethodInstance, executeQueryWithParameters, getBaseMethod, getCategoryColor, getEllipseColor, useBuildEnvironment, useId, useSetInitialShellVisibility, useShellStore, useTenant };
935
+ //# sourceMappingURL=EnvironmentRibbon-oEmbWjEq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentRibbon-oEmbWjEq.js","names":["useStyles","useStyles","props","useStyles","useStyles","useSetInitialShellVisibility: () => void","useStyles","colors","colors","useStyles","Typography","MuiTypography","useStyles","LayoutUnit: React.FC<any>","useStyles","useStyles","Typography"],"sources":["../src/UI/inputs/buttons/FluentButton.jsx","../src/utilities/FluentIcon.jsx","../src/UI/inputs/buttons/FluentIconButton.jsx","../src/enums/unitySystemEnums.ts","../src/utilities/UnityIcon.jsx","../src/utilities/UnityFluentIcon.jsx","../src/stores/shellStore.ts","../src/UI/inputs/buttons/PrimaryActionButton.jsx","../src/utilities/style/colors.js","../src/utilities/style/colorConverter.js","../src/UI/dataDisplay/typography/Typography.jsx","../src/layout/LayoutUnit.tsx","../src/UI/dataDisplay/typography/StandardTitle.jsx","../src/UI/widgets/utils/useId.js","../src/UI/dataDisplay/StatusChip.jsx","../src/udp/utilities/methodUtils.js","../src/utilities/tenant/tenantContext.ts","../src/utilities/tenant/useTenant.ts","../src/shell/ui/EnvironmentRibbon.tsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { Button, CircularProgress } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderRadius: 2,\n height: (props) => (props.height ? props.height : 32),\n padding: '0 16px',\n minWidth: (props) => (props.minWidth ? props.minWidth : 80),\n border: (props) => `1px solid ${props.color}`\n },\n label: {\n textTransform: 'capitalize',\n fontSize: '0.875rem',\n fontWeight: 600\n }\n}));\n\nexport const FluentButton = (props) => {\n const classes = useStyles(props);\n const { children, id, udprecordid, minWidth, progress, disabled, ...otherProps } =\n props;\n return (\n <Button\n {...otherProps}\n disableElevation\n classes={{\n root: classes.root,\n label: classes.label\n }}\n margin='dense'\n id={id}\n udprecordid={udprecordid}\n minWidth={minWidth}\n disabled={disabled || progress}\n >\n {progress && (\n <CircularProgress\n id={id + '-ButtonProgress'}\n udprecordid={udprecordid + '-ButtonProgress'}\n size={18}\n color='primary'\n />\n )}\n {!progress && children}\n </Button>\n );\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(\n (props) => ({\n root: {\n display: 'inline-block',\n '& > svg': {\n display: 'inherit'\n }\n },\n default: {\n fontSize: 18,\n width: 18,\n height: 18\n },\n large: {\n fontSize: 24,\n width: 24,\n height: 24\n },\n medium: {\n fontSize: 16,\n width: 16,\n height: 16\n },\n small: {\n fontSize: 14,\n width: 14,\n height: 14\n },\n xs: {\n fontSize: 12,\n width: 12,\n height: 12\n },\n color: {\n color: (props) => props.color\n },\n customSize: {\n fontSize: (props) => props.size,\n width: (props) => props.size,\n height: (props) => props.size\n }\n }),\n { name: 'FluentIcon' }\n);\n\n/**\n * Wrapper for @fluentui/react-icons to provide it with required size\n */\nexport const FluentIcon = (props) => {\n const classes = useStyles(props);\n const {\n component: IconComponent,\n size = 'default',\n className,\n color,\n customSize = false,\n ...otherProps\n } = props;\n\n return (\n <IconComponent\n {...otherProps}\n className={clsx(\n classes.root,\n className,\n (customSize && typeof size === 'number' && classes['customSize']) ||\n classes[size],\n color && classes['color']\n )}\n />\n );\n};\n","import React from 'react'\nimport { makeStyles, IconButton } from '@material-ui/core'\nimport { FluentIcon } from '../../../utilities/FluentIcon'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderRadius: (props) => (props.rounded ? 50 : 2),\n width: (props) => (props.rounded ? theme.spacing(4) : theme.spacing(1)),\n height: (props) => (props.rounded ? theme.spacing(4) : theme.spacing(1)),\n border: (props) => props.rounded && `1px solid ${theme.palette.divider}`,\n background: (props) => props.rounded && theme.palette.common.white\n }\n}))\n\nexport const FluentIconButton = (props) => {\n const classes = useStyles(props)\n const { icon, size = 'medium', id, udprecordid, ...otherProps } = props\n return (\n <IconButton\n {...otherProps}\n classes={{\n root: classes.root\n }}\n udprecordid={udprecordid}\n >\n <FluentIcon component={icon} size={size} id={id} />\n </IconButton>\n )\n}\n","export enum GridEnums {\n Ideas = 'f3c1bf72-15fd-4dcd-904c-b67850525cff',\n Tickets = '787a2afc-26df-440a-9040-9a3e5c5333d5',\n Users = '4ea9fe5d-0af3-4102-af95-4d4a5ca886e1',\n Tenants = 'b543fc1d-6f45-469e-87ae-2b18b8200955',\n Roles = '9af2eebb-7687-4b3c-91fa-607efb0a5fea',\n Inquiry = 'ac0b9a3a-d113-4590-93db-dea62bcb89a2',\n Groups = 'c599b6ff-fee3-4ade-bf78-16700fddb5b9'\n}\n\nexport enum GridStateTypeEnums {\n Column = 1,\n Pivot_Mode = 2,\n Column_Sort = 3,\n Column_Filter = 4,\n Column_Group = 5\n}\n\nexport enum MenuTypeEnums {\n Left_Menu = 1,\n Application_Menu = 2,\n Builders_Menu = 3,\n Favorites_Menu = 4\n}\n\nexport enum VerticalEnums {\n Engage = 1,\n Manage = 2,\n Build = 3,\n Play = 4\n}\n\nexport enum MenuItemEnums {\n Container = 'b36cec3c-fe05-47ed-a687-70be22b0e200',\n External_Link = '11758dfd-ac3a-4996-b86c-767947776ff8',\n Data_Browser = 'afc3833e-e288-4cf6-8155-a069ec4ddc5a',\n Report = '22763e92-2477-43c3-92db-124a84e5ff7f',\n Page = 'd506aeef-ba1b-49a8-9032-beba450b11bc',\n Page_Builder = '16df758b-c456-4c8c-8ca3-2ae167b3b078',\n Route = 'ec5f1c26-e7e1-4f19-8e6e-143308995a40',\n Tree_Builder = 'd4379c4f-6496-4caa-bc0d-5f297fea580f',\n Inquiry = 'b45f660f-a172-4444-8dd8-8f51d56e0725',\n Scheduler = '4007feb9-e50c-44f9-8502-a1f337d82bcf',\n Config = 'aeb48be9-09ea-49b3-9f21-486fe3545b2d',\n Action = 'a66e9458-2540-4166-9b26-1e9b44a2b080',\n Inner_Menu = 'c4f7b46c-00b8-428e-b982-1639c03fde20'\n}\n\nexport enum ADUserTypeEnums {\n Guest = 'Guest',\n Member = 'Member'\n}\n\nexport enum ProductEnums {\n Unity = 1\n}\n\nexport enum RoleTypeEnums {\n System = 1,\n Tenant = 2\n}\n\nexport enum LookupTypeEnums {\n No_Lookup = 'NO_LOOKUP',\n Api = 'API',\n Csv = 'CSV',\n Domain = 'DOMAIN',\n Lookup = 'LOOKUP'\n}\n\nexport enum SearchValueType {\n String = 'String',\n Int = 'Int',\n Long = 'Long',\n Double = 'Double',\n Boolean = 'Boolean',\n DateTime = 'DateTime'\n}\n\nexport enum SearchGroupingType {\n Distinct = 'DISTINCT',\n Aggregate = 'AGGREGATE'\n}\n\nexport enum SearchSortDirection {\n Asc = 'ASC',\n Desc = 'DESC'\n}\n\nexport enum RoleNameEnums {\n System_Administrator = 'System Administrator',\n Company_Administrator = 'Company Administrator',\n Developer = 'Developer'\n}\n\nexport enum ProductNameEnums {\n Asset_Management = 'Asset Management',\n Asset_Routing = 'Asset Routing',\n AVI = 'AVI',\n Cashiering = 'Cashiering',\n Citizen_Portal = 'Citizen Portal',\n Compliance = 'Compliance',\n Consumer_Engagement = 'Consumer Engagement',\n Consumer_Information = 'Consumer Information',\n Contact_Center = 'Contact Center',\n Course_Management = 'Course Management',\n Crew_Routing = 'Crew Routing',\n Dispatch = 'Dispatch',\n Dispatch_Admin = 'Dispatch Admin',\n Employee_Network = 'Employee Network',\n Energy_Management = 'Energy Management',\n Equipment_Inspection = 'Equipment Inspection',\n Facility_Management = 'Facility Management',\n Field_Mobility = 'Field Mobility',\n Fixed_Assets = 'Fixed Assets',\n Fleet_Management = 'Fleet Management',\n Health_And_Safety = 'Health & Safety',\n Instructor_Application = 'Instructor Application',\n MDM = 'MDM',\n Member_Management = 'Member Management',\n Page_Builder = 'Page Builder',\n Project_Management = 'Project Management',\n Rentals = 'Rentals',\n Unity = 'Unity',\n Work_Orders = 'Work Orders'\n}\n\nexport enum LogicalSearchOperatorEnums {\n And = 1,\n Or = 2\n}\n\nexport enum NodeActionTriggerEnums {\n On_Node_Drop = 1\n}\n\nexport enum NodeActionEnums {\n Load_Inquiry_Page = 1,\n Execute_Api = 2,\n Start_Workflow = 3,\n Create = 4,\n Update = 5,\n Delete = 6,\n Retrieve = 7,\n Open_Inquiry = 8,\n Open_Maintenance_Engine = 9,\n Redirect = 10,\n Open_External_Link = 11,\n Hide = 12,\n Disable = 13,\n Open_Page_Split_Screen = 14,\n Open_Shell_Split_Screen = 15,\n Open_Notes = 16,\n Open_Reminders = 17,\n Execute_Function = 18\n}\n\nexport enum TreeViewModeEnums {\n Classic = 1,\n Compact = 2\n}\n\nexport enum PanelPositionEnums {\n Site_Header = 1,\n Site_Header_Summary = 2,\n Speed_Dial = 3,\n Inquiry_Header = 4,\n Inquiry_Header_Summary = 5\n}\n\nexport enum CardinalityTypeEnums {\n One_To_One = 0,\n One_To_Many = 1,\n Many_To_Many = 2,\n Many_To_One = 3\n}\n\nexport enum SplitScreenTypeEnums {\n Entity = 1,\n Notes = 2,\n Page = 3,\n Reminders = 4\n}\n\nexport enum UdpEnums {\n Udp_Note_Type = 'UdpNoteType',\n Udp_Note_Template = 'UdpNoteTemplate',\n Udp_Note = 'UdpNote',\n Udp_Note_Filed_For = 'UdpNoteFiledFor',\n Udp_Shortcut_Content = 'UdpShortcutContent',\n Udp_Lookup = 'UdpLookup',\n Udp_Reminder_Type = 'UdpReminderType',\n Udp_Reminder_Template = 'UdpReminderTemplate',\n Udp_Reminder = 'UdpReminder',\n Udp_Reminder_Filed_For = 'UdpReminderFiledFor'\n}\n\nexport enum NodeGroupTypeEnums {\n Static = 'static',\n Dynamic = 'dynamic'\n}\n\nexport enum NodeGroupOutlierEnums {\n Hide = 'hide',\n Group = 'group',\n Individual = 'individual'\n}\n\nexport enum LookupTypeIdEnums {\n Api = 1,\n Csv = 2,\n Domain = 3,\n Lookup = 4\n}\n\nexport enum VisibilityTypeEnums {\n Private = 1,\n Public = 2\n}\n\nexport enum SeverityTypeEnums {\n Success = 'success',\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Default = 'default'\n}\n\nexport enum UdpKeywordEnums {\n Udp_Tenant_Id = 'UDP_TENANT_ID',\n Udp_Product_Id = 'UDP_PRODUCT_ID',\n Udp_Language_Id = 'UDP_LANGUAGE_ID'\n}\n\nexport const enum JobStatusIdMapping {\n PENDING = 1,\n IN_PROGRESS = 2,\n COMPLETED = 3,\n FAILED = 4\n}\n\nexport const enum JobTypeIdMapping {\n IMPORT = 1,\n EXPORT = 2\n}\n\nexport enum UdpReminderFiledForType {\n User = 1,\n System = 2\n}\n\nexport enum DeviceTypeEnums {\n Desktop = 1,\n Tablet = 2,\n Mobile = 3\n}\n\nexport enum ContainerTypeEnums {\n Sidesheet = 1,\n SplitScreen = 2,\n Page = 3\n}\n\nexport enum TenantTypeEnums {\n Tenant = 1,\n Product = 2\n}\n\nexport enum EntityAttributeEnums {\n Is_Product_ShortcutContent = 'IsProductShortcutContent',\n Is_Product_Lookup = 'IsProductLookup',\n User_Defined = 'UserDefined',\n Domain_Name = 'DomainName'\n}\n\nexport enum RoleIdEnums {\n Unity_System_Administrator = '302dacf5-bf16-412d-bf66-519d4c3491c3'\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n fill: (props) => props.color || 'black'\n },\n showcase: {\n fontSize: 38,\n width: 38,\n height: 38\n },\n large: {\n fontSize: 20,\n width: 20,\n height: 20\n },\n default: {\n fontSize: 18,\n width: 18,\n height: 18\n },\n medium: {\n fontSize: 16,\n width: 16,\n height: 16\n },\n small: {\n fontSize: 14,\n width: 14,\n height: 14\n },\n xs: {\n fontSize: 12,\n width: 12,\n height: 12\n }\n}));\n\nexport const UnityIcon = (props) => {\n const { component, size = 'default', className, ...otherProps } = props;\n const classes = useStyles(props);\n\n return (\n <div\n {...otherProps}\n className={clsx(classes.root, className, classes[size])}\n >\n {component}\n </div>\n );\n};\n","import React from 'react';\nimport { UnityIcon } from './UnityIcon';\nimport { FluentIcon } from './FluentIcon';\n\nexport const UnityFluentIcon = (props) => {\n const { type, icon, color, ...other } = props;\n\n if (!icon) {\n return null;\n }\n\n return type === 'unity' ? (\n <UnityIcon component={icon} color={color} {...other} />\n ) : (\n <FluentIcon component={icon} style={{ color: color || '' }} {...other} />\n );\n};\n","import { useEffect } from 'react';\nimport { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport { ContainerTypeEnums } from '../enums/unitySystemEnums';\n\ninterface ShellState {\n subHeaderActionHasChildren: boolean | null | undefined;\n setSubHeaderActionHasChildren: (subHeaderActionHasChildren: boolean) => void;\n navigationExpanded: boolean | null | undefined;\n setNavigationExpanded: (navigationExpanded: boolean) => void;\n setIsValidWidget: (isValidWidget: (a: string) => boolean) => void;\n isValidWidget: (a: string) => boolean;\n setGetWidget: (getWidget: (a: string) => any) => void;\n getWidget: (a: string) => any;\n shellHidden: boolean | null | undefined;\n setShellHidden: (shellHidden: boolean) => void;\n currentContainerId: string | null | undefined;\n setCurrentContainerId: (containerId: string) => void;\n}\n\nexport const useShellStore = create<ShellState>()(\n devtools((set) => ({\n subHeaderActionHasChildren: false,\n setSubHeaderActionHasChildren: (subHeaderActionHasChildren) =>\n set((state) => ({\n subHeaderActionHasChildren: subHeaderActionHasChildren\n })),\n navigationExpanded: true,\n setNavigationExpanded: (navigationExpanded) =>\n set((state) => ({\n navigationExpanded: navigationExpanded\n })),\n isValidWidget: (a) => false,\n setIsValidWidget: (isValidWidget) =>\n set((state) => ({\n isValidWidget: isValidWidget\n })),\n getWidget: (a) => null,\n setGetWidget: (getWidget) =>\n set((state) => ({\n getWidget: getWidget\n })),\n shellHidden: false,\n setShellHidden: (shellHidden) =>\n set((state) => ({\n shellHidden: shellHidden\n })),\n currentContainerId: null,\n setCurrentContainerId: (currentContainerId) =>\n set((state) => ({ currentContainerId: currentContainerId }))\n }))\n);\n\nexport const useSetInitialShellVisibility: () => void = () => {\n const searchParams = new URLSearchParams(window.location.search);\n const withoutShell =\n searchParams.has('withoutShell') === true\n ? searchParams.get('withoutShell') === 'true'\n ? true\n : false\n : false;\n\n const setShellHidden = useShellStore((state) => state.setShellHidden);\n\n useEffect(() => {\n if (withoutShell) {\n setShellHidden(true);\n }\n }, [setShellHidden, withoutShell]);\n};\n","import React from 'react'\nimport { makeStyles, Button } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n borderRadius: 0,\n padding: 'calc(.875rem - 3px) 23px calc(.875rem - 3px) 15px'\n },\n label: {\n textTransform: 'none'\n },\n endIcon: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginLeft: theme.spacing(2)\n }\n}))\n\nexport const PrimaryActionButton = ({ children, icon, ...otherProps }) => {\n const classes = useStyles()\n\n return (\n <div>\n <Button\n {...otherProps}\n disableElevation\n classes={{\n root: classes.root,\n label: classes.label,\n endIcon: classes.endIcon\n }}\n variant='contained'\n color='secondary'\n endIcon={icon}\n >\n {children}\n </Button>\n </div>\n )\n}\nexport default PrimaryActionButton\n","export const colors = {\n systemIcon: {\n trigger: {\n main: '#FFCD27',\n hint: '#FDFAF0',\n hover: { outline: '#AF9027', background: '#FFFDEF' }\n },\n action: {\n main: '#1542FF',\n hint: '#F3F5FE',\n hover: { outline: '#40529D', background: '#ECEFFA' }\n },\n condition: {\n main: '#AE14FF',\n hint: '#F9EEFF',\n hover: { outline: '#844EA0', background: '#FAF2FE' }\n },\n sequence: {\n main: '#FD7F12',\n hint: '#FFF6EE',\n hover: { outline: '#A86123', background: '#FDF4EC' }\n }\n },\n unity: {\n success: {\n hint: '#F3FAF3'\n },\n warning: {\n hint: '#FFF6EA'\n },\n info: {\n hint: '#F3F9FE'\n },\n error: {\n hint: '#FDF7F6'\n }\n },\n categoryColors: {\n one: {\n hint: '#F8BBD0',\n main: '#F3FAF3'\n },\n two: {\n hint: '#FFF6EA',\n main: '#FFF6EA'\n },\n three: {\n hint: '#FFF6EA',\n main: '#FFF6EA'\n },\n four: {\n hint: '#F8BBD0',\n main: '#f3e0eb'\n },\n five: {\n hint: '#F8BBD0',\n main: 'rgb(194 223 218)'\n },\n six: {\n hint: '#F8BBD0',\n main: 'rgb(222 217 235)'\n }\n }\n};\n","import { colors } from './colors';\n\nexport const getEllipseColor = (theme, color, variant = 'main') => {\n if (!theme) {\n return '';\n }\n let ellipseColor = theme.palette.primary[variant];\n switch (color) {\n case 'action':\n ellipseColor = theme.palette.action?.[variant];\n break;\n case 'sequence':\n ellipseColor = theme.palette.sequence?.[variant];\n break;\n case 'trigger':\n ellipseColor = theme.palette.trigger?.[variant];\n break;\n case 'condition':\n ellipseColor = theme.palette.condition?.[variant];\n break;\n case 'primary':\n ellipseColor = theme.palette.primary[variant];\n break;\n case 'secondary':\n ellipseColor = theme.palette.secondary[variant];\n break;\n case 'info':\n ellipseColor = theme.palette.info[variant];\n break;\n case 'warning':\n ellipseColor = theme.palette.warning[variant];\n break;\n case 'error':\n ellipseColor = theme.palette.error[variant];\n break;\n case 'success':\n ellipseColor = theme.palette.success[variant];\n break;\n default:\n ellipseColor = theme.palette.secondary[variant];\n break;\n }\n return ellipseColor;\n};\n\nexport const getCustomHintColor = (color) => {\n // if (!theme) {\n // return '';\n // }\n let customHintColor = colors.unity.info.hint;\n switch (color) {\n // case 'primary':\n // customHintColor = theme.palette.primary.hint;\n // break;\n // case 'secondary':\n // customHintColor = theme.palette.secondary.hint;\n // break;\n case 'info':\n customHintColor = colors.unity.info.hint;\n break;\n case 'warning':\n customHintColor = colors.unity.warning.hint;\n break;\n case 'error':\n customHintColor = colors.unity.error.hint;\n break;\n case 'success':\n customHintColor = colors.unity.success.hint;\n break;\n default:\n customHintColor = colors.unity.info.hint;\n }\n\n return customHintColor;\n};\n\nexport const getCategoryColor = (color) => {\n // if (!theme) {\n // return '';\n // }\n let highlightColor = colors.unity.info.hint;\n switch (color) {\n case 'info':\n highlightColor = colors.unity.info.hint;\n break;\n case 'warning':\n highlightColor = colors.unity.warning.hint;\n break;\n case 'error':\n highlightColor = colors.unity.error.hint;\n break;\n case 'four':\n highlightColor = colors.categoryColors.four.main;\n break;\n case 'five':\n highlightColor = colors.categoryColors.five.main;\n break;\n case 'six':\n highlightColor = colors.categoryColors.six.main;\n break;\n default:\n highlightColor = colors.unity.info.hint;\n }\n\n return highlightColor;\n};\n","import React from 'react';\nimport { Typography as MuiTypography, makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { getEllipseColor } from '../../../utilities/style/colorConverter';\n\nconst useStyles = makeStyles((theme) => ({\n typography: {\n color: (props) => props?.color && getEllipseColor(theme, props?.color)\n }\n}));\nexport const Typography = (props) => {\n const {\n variant,\n align,\n children,\n className,\n noWrap = false,\n paragraph = false,\n color\n } = props;\n const classes = useStyles(props);\n\n return (\n <MuiTypography\n variant={variant}\n align={align}\n className={clsx({[classes.typography]: color}, className)}\n noWrap={noWrap}\n paragraph={paragraph}\n >\n {children}\n </MuiTypography>\n );\n};\n","import React from 'react'\nimport { makeStyles, Badge } from '@material-ui/core'\nimport clsx from 'clsx'\n\ntype LayoutUnitProps = {\n unit: 'nudge' | 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl',\n highlight: any\n}\n\nconst useStyles = makeStyles((theme) => ({\n highlight: {\n background: 'pink',\n opacity: (props:LayoutUnitProps) => (props.highlight ? 0.2 : 0)\n },\n nudge: {\n height: theme.spacing(1)\n },\n xxs: {\n height: theme.spacing(2)\n },\n xs: {\n height: theme.spacing(3)\n },\n sm: {\n height: theme.spacing(4)\n },\n md: {\n height: theme.spacing(5)\n },\n lg: {\n height: theme.spacing(8)\n },\n xl: {\n height: theme.spacing(12)\n },\n xxl: {\n height: theme.spacing(20)\n }\n}))\n\n\n\n\nexport const LayoutUnit: React.FC<any> = (props: LayoutUnitProps) => {\n const classes = useStyles(props)\n\n let spaceUnit\n const { unit, highlight } = props\n\n switch (unit) {\n case 'nudge':\n spaceUnit = (\n <div className={clsx(classes.nudge, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='Nudge' />}\n </div>\n )\n break\n case 'xxs':\n spaceUnit = (\n <div className={clsx(classes.xxs, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='XXS' />}\n </div>\n )\n break\n case 'xs':\n spaceUnit = (\n <div className={clsx(classes.xs, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='XS' />}\n </div>\n )\n break\n case 'sm':\n spaceUnit = (\n <div className={clsx(classes.sm, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='SM' />}\n </div>\n )\n break\n case 'md':\n spaceUnit = (\n <div className={clsx(classes.md, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='MD' />}\n </div>\n )\n break\n case 'lg':\n spaceUnit = (\n <div className={clsx(classes.lg, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='LG' />}\n </div>\n )\n break\n case 'xl':\n spaceUnit = (\n <div className={clsx(classes.xl, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='XL' />}\n </div>\n )\n break\n case 'xxl':\n spaceUnit = (\n <div className={clsx(classes.xxl, classes.highlight)}>\n {highlight && <Badge color='secondary' badgeContent='XXL' />}\n </div>\n )\n break\n default:\n }\n\n return spaceUnit\n}\n","import React from 'react'\nimport { makeStyles, Typography } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: props => props?.removeMarginTop ? 0 : theme.spacing(1),\n whiteSpace: 'nowrap',\n // overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n}))\n\nexport const StandardTitle = (props) => {\n const classes = useStyles(props)\n const { children, ...other } = props\n\n return (\n <Typography component='h2' variant='h6' className={classes.root} {...other}>\n {children}\n </Typography>\n )\n}\n","import warning from 'warning';\nimport useConstant from 'use-constant';\n\nlet idCounter = 0;\nfunction nextId() {\n idCounter += 1;\n warning(\n idCounter < 1e10,\n 'Id: you might have a memory leak.' +\n 'The idCounter is not supposed to grow that much.'\n );\n\n return idCounter;\n}\n\n/**\n * A simple hook that returns a unique page ID\n */\nexport default function useId(name, idFromProps) {\n const id = useConstant(nextId);\n\n if (idFromProps) {\n return idFromProps;\n }\n\n if (process.env.NODE_ENV === 'production') {\n return `uid${id}`;\n }\n\n return `${name || 'unnamed'}-${id}`;\n}\n","import React from 'react';\nimport { Chip, makeStyles } from '@material-ui/core';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles((theme) => ({\n smallChip: {\n height: theme.spacing(2.5),\n fontSize: '0.7rem',\n '& .MuiChip-label': {\n paddingLeft: theme.spacing(0.75),\n paddingRight: theme.spacing(0.75)\n }\n },\n actionable: {\n cursor: 'pointer'\n },\n success: {\n backgroundColor: theme.palette.success.main,\n color: '#FFF',\n '&.MuiChip-outlined': {\n color: theme.palette.success.main,\n borderColor: theme.palette.success.main,\n backgroundColor: 'transparent'\n }\n },\n warning: {\n backgroundColor: theme.palette.warning.main,\n color: '#FFF',\n '&.MuiChip-outlined': {\n color: theme.palette.warning.main,\n borderColor: theme.palette.warning.main,\n backgroundColor: 'transparent'\n }\n },\n error: {\n backgroundColor: theme.palette.error.main,\n color: '#FFF',\n '&.MuiChip-outlined': {\n color: theme.palette.error.main,\n borderColor: theme.palette.error.main,\n backgroundColor: 'transparent'\n }\n },\n info: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.getContrastText(theme.palette.info.main),\n '&.MuiChip-outlined': {\n color: theme.palette.info.main,\n borderColor: theme.palette.info.main,\n backgroundColor: 'transparent'\n }\n }\n}));\n\nexport const StatusChip = ({\n status,\n label,\n useSmallChip = false,\n isActionable = false,\n icon,\n variant = 'default',\n onClick,\n}) => {\n const classes = useStyles();\n\n const chipClass = clsx({\n [classes.smallChip]: useSmallChip,\n [classes.actionable]: isActionable,\n [classes.success]: status === 'success',\n [classes.warning]: status === 'warning',\n [classes.error]: status === 'error',\n [classes.info]: status === 'info'\n });\n\n return (\n <Chip\n className={chipClass}\n label={label}\n size='small'\n icon={icon || null}\n variant={variant}\n onClick={isActionable ? onClick : null}\n />\n );\n};\n","import { ConfigService, apiMutate} from 'udp-react-stencil-component-library';\n\nexport const getBaseMethod = (type, baseType, catalogPromotedEntities) => {\n if (!catalogPromotedEntities) {\n return null;\n }\n const entityMethod = catalogPromotedEntities.find((promotedEntity) => {\n const entityNameParts = promotedEntity.entityName.split('.');\n if (entityNameParts.length) {\n return entityNameParts[entityNameParts.length - 1] === type;\n }\n return false;\n });\n return entityMethod ? entityMethod[baseType] : null;\n};\n\nexport const executeQueryAdHoc = async (\n data,\n apiMethodId,\n urlQueryParams = ''\n) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryAdHoc/${apiMethodId}${urlQueryParams}`,\n {\n method: 'post'\n },\n data\n );\n\nexport const executeQueryWithParameters = async (\n data,\n apiMethodId,\n urlQueryParams = ''\n) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${apiMethodId}${urlQueryParams}`,\n {\n method: 'post'\n },\n data\n );\n\nexport const executeQueryInstance = async (\n data,\n apiMethodInstanceId,\n urlQueryParams = ''\n) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance/${apiMethodInstanceId}${urlQueryParams}`,\n {\n method: 'post'\n },\n data\n );\n\nexport const executeQueryInstanceWithApiMethodInstance = async (\n data,\n urlQueryParams = ''\n) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance${urlQueryParams}`,\n {\n method: 'post'\n },\n data\n );\n","import { Tenant } from '../types'\nimport { createContext } from 'react';\n\n\nexport const TenantContext = createContext<{tenantsList: Tenant[], activeTenant: Tenant, refresh: () => void} | null>(null);\n","import { useContext } from \"react\";\nimport { TenantContext } from \"./tenantContext\";\nimport { Tenant } from \"../types\";\n\nexport const useTenant = (): {activeTenant: Tenant, tenantsList: Tenant[], refresh: () => void} | null => {\n return useContext(TenantContext);\n}\n","import React, { useMemo } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\n// @ts-ignore\nimport { makeStyles } from '@material-ui/core';\nimport { useTenant } from '../../utilities/tenant/useTenant';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nexport const APP_RIBBON_SPACE = 25\n\nexport const useBuildEnvironment = (): string | undefined => {\n\tconst user = useUser()\n\n\tconst buildEnvironment = useMemo(() => {\n\n\t\tconst env = ConfigService.config.UNITY_ENVIRONMENT\n\n\t\tif(!['development', 'staging', 'production', 'build'].includes((env as string)?.toLowerCase()) || (env === 'production' && !user?.can?.CAN_VIEW_PROD_APP_RIBBON)) return undefined\n\n\t\treturn env?.toLowerCase();\n\n\n\t}, [user])\n\n\treturn buildEnvironment;\n};\n\nconst useStyles = makeStyles({\n root: {\n width: '100vw',\n height: APP_RIBBON_SPACE,\n backgroundColor: ({environment}: {environment: string | undefined}) => `var(--env-ribbon-${environment})`,\n color: '#ffffff', // Default white text\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n // Use CSS to handle staging text color\n '&.staging': {\n color: '#000000'\n }\n },\n\tcenterText: {\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n fontWeight: 600\n\t},\n\trightText: {\n position: 'absolute',\n right: '10px',\n fontWeight: 500\n\t}\n});\n\nexport const EnvironmentRibbon = () => {\n\tconst tenantInfo = useTenant()\n\tconst buildEnvironment = useBuildEnvironment()\n\n const classes = useStyles({environment: buildEnvironment});\n if(!buildEnvironment) return null;\n\n return (\n <div\n className={`${classes.root} ${buildEnvironment === 'staging' ? 'staging' : ''}`}\n id='udp-environment-banner'\n >\n <Typography className={classes.centerText}>\n {buildEnvironment?.charAt(0).toUpperCase()+buildEnvironment?.slice(1) || ''}\n </Typography>\n\t\t\t<Typography className={classes.rightText}>\n {tenantInfo?.activeTenant?.tenantName}\n </Typography>\n </div>\n );\n};\n"],"mappings":"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ACA;AACA;;;AAGF,IAAY,oFAAL;AACL;AACA;;;AAGF,IAAY,4EAAL;AACL;;;AAGF,IAAY,8DAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,kEAAL;AACL;AACA;;;AAGF,IAAY,oEAAL;AACL;AACA;AACA;AACA;AACA;;;AAGF,IAAY,wEAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,wEAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,gDAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,oEAAL;AACL;AACA;;;AAGF,IAAY,0EAAL;AACL;AACA;AACA;;;AAGF,IAAY,kEAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,sEAAL;AACL;AACA;;;AAGF,IAAY,kEAAL;AACL;AACA;AACA;AACA;AACA;;;AAGF,IAAY,8DAAL;AACL;AACA;AACA;;;AAGF,IAAkB,oEAAX;AACL;AACA;AACA;AACA;;;AAGF,IAAkB,gEAAX;AACL;AACA;;;AAGF,IAAY,8EAAL;AACL;AACA;;;AAGF,IAAY,8DAAL;AACL;AACA;AACA;;;AAGF,IAAY,oEAAL;AACL;AACA;AACA;;;AAGF,IAAY,8DAAL;AACL;AACA;;;AAGF,IAAY,wEAAL;AACL;AACA;AACA;AACA;;;AAGF,IAAY,sDAAL;AACL;;;;;;AChRF,MAAMC,cAAY,YAAY,WAAW;CACvC,MAAM;EACJ,SAAS;EACT,OAAO,UAAU,MAAM,SAAS;EACjC;CACD,UAAU;EACR,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,OAAO;EACL,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,SAAS;EACP,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,QAAQ;EACN,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,OAAO;EACL,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,IAAI;EACF,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACF,EAAE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"}
@@ -1,8 +1,9 @@
1
- import { APP_RIBBON_SPACE, FluentIcon, NodeActionTriggerEnums, TreeViewModeEnums, UnityFluentIcon, useAxiosGet, useBuildEnvironment, useShellStore, useUser } from "./EnvironmentRibbon-DaDmKAPO.js";
2
- import "./apiHelpers-DZots3og.js";
3
- import { AggregateChip, NodeLoader, UtilitySideBar, findAllParentIds, getIconFromName, getNodeIdForRightBorder, getUnityIconFromName, searchTree, transformMenuPageTree } from "./UtilitySideBar-D4CXGtW2.js";
4
- import "./SearchUtilities-Bor3HbfB.js";
5
- import { PageContainer, useSetLocationState } from "./PageContainer-k8KCfGsM.js";
1
+ import { APP_RIBBON_SPACE, FluentIcon, NodeActionTriggerEnums, TreeViewModeEnums, UnityFluentIcon, useBuildEnvironment, useShellStore } from "./EnvironmentRibbon-oEmbWjEq.js";
2
+ import "./apiHelpers-CmM6DWAT.js";
3
+ import { useAxiosGet, useUser } from "./useAxiosGet-Dh5pVURP.js";
4
+ import { AggregateChip, NodeLoader, UtilitySideBar, findAllParentIds, getIconFromName, getNodeIdForRightBorder, getUnityIconFromName, searchTree, transformMenuPageTree } from "./UtilitySideBar-95k0edSA.js";
5
+ import "./SearchUtilities-Btugro8y.js";
6
+ import { PageContainer, useSetLocationState } from "./PageContainer-BPHLFGju.js";
6
7
  import React, { useCallback, useEffect, useRef, useState } from "react";
7
8
  import { CircularProgress, Tooltip, Typography, darken, lighten, makeStyles, useTheme } from "@material-ui/core";
8
9
  import { ConfigService } from "udp-react-stencil-component-library";
@@ -128,8 +129,7 @@ const BaseTreeMenuItem = (props) => {
128
129
  if (sourceNode) {
129
130
  const onDropActions = node?.properties?.nodeActions?.filter((na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop);
130
131
  if (!onDropActions) return false;
131
- const nodeDragEntities = onDropActions?.map((action) => action?.dragEntityName);
132
- return nodeDragEntities.includes(sourceNode?.properties?.catalogReturnObject);
132
+ return (onDropActions?.map((action) => action?.dragEntityName)).includes(sourceNode?.properties?.catalogReturnObject);
133
133
  }
134
134
  }, [node]);
135
135
  const handleOnLabelClick = useCallback((e) => {
@@ -287,8 +287,7 @@ const BaseTreeMenu = (props) => {
287
287
  const treeCopy = cloneDeep(tree);
288
288
  setExpanded(nodeIds);
289
289
  const parentNode = searchTree(treeCopy, selectedNodeParentId);
290
- const initialAllParentNodeIds = selectedNodeParentId ? [selectedNodeParentId] : [];
291
- const allParentNodeIds = findAllParentIds(treeCopy, parentNode, initialAllParentNodeIds);
290
+ const allParentNodeIds = findAllParentIds(treeCopy, parentNode, selectedNodeParentId ? [selectedNodeParentId] : []);
292
291
  const selectedNodeShown = allParentNodeIds.every((id) => nodeIds.includes(id));
293
292
  if (isCurrentActiveTree && allParentNodeIds.length && !selectedNodeShown) setSelectedNodeIsHidden(true);
294
293
  else setSelectedNodeIsHidden(false);
@@ -439,8 +438,7 @@ const MenuPage = (props) => {
439
438
  return null;
440
439
  }, []);
441
440
  useEffect(() => {
442
- const searchParams = new URLSearchParams(location.search);
443
- const pageId = searchParams.get("page");
441
+ const pageId = new URLSearchParams(location.search).get("page");
444
442
  if (pageId && menuItemsList.length > 0) {
445
443
  let node = null;
446
444
  for (const tree of menuItemsList) {
@@ -554,7 +552,8 @@ const MenuPage = (props) => {
554
552
  fromMenu: true
555
553
  }))));
556
554
  };
555
+ var MenuPage_default = MenuPage;
557
556
 
558
557
  //#endregion
559
- export { MenuPage };
560
- //# sourceMappingURL=MenuPage-CO6_GWwB.js.map
558
+ export { MenuPage_default as default };
559
+ //# sourceMappingURL=MenuPage-CZHpoopY.js.map