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
@@ -21,8 +21,7 @@ async function initSignInAuthProvider() {
21
21
  const applicationID = ConfigService.config.MSAL_CLIENT_ID;
22
22
  const reactRedirectUri = `${REDIRECT_URL_BASE}/${ConfigService.config.USE_AAD_REDIRECT ? "aad_redirect" : "aad_callback"}`;
23
23
  const tenantSubdomain = tenant.split(".")[0];
24
- const instance = `https://${tenantSubdomain}.b2clogin.com/`;
25
- const signInAuthority = `${instance}${tenant}/${signInPolicy}`;
24
+ const signInAuthority = `${`https://${tenantSubdomain}.b2clogin.com/`}${tenant}/${signInPolicy}`;
26
25
  apiAccessScopeValue = `https://${tenant}/${ConfigService.config.MSAL_API_ACCESS_SCOPE}`;
27
26
  const ua = window.navigator.userAgent;
28
27
  const msie = ua.indexOf("MSIE ");
@@ -118,8 +117,7 @@ const whitelistedPaths = [
118
117
  */
119
118
  const useLoginAction = () => loginRedirect;
120
119
  const loginRedirect = () => {
121
- const signInAuthProvider = getSignInAuthProvider();
122
- signInAuthProvider.loginRedirect(getLoginRequest());
120
+ getSignInAuthProvider().loginRedirect(getLoginRequest());
123
121
  };
124
122
  function useLogoutAction() {
125
123
  return async () => {
@@ -136,8 +134,7 @@ async function acquireAccessToken() {
136
134
  }).then((response) => {
137
135
  return response.accessToken;
138
136
  }).catch(async (error) => {
139
- const currentPathIsWhitelisted = whitelistedPaths.includes(window.location.pathname);
140
- if (!currentPathIsWhitelisted) signInAuthProvider.loginRedirect(getLoginRequest());
137
+ if (!whitelistedPaths.includes(window.location.pathname)) signInAuthProvider.loginRedirect(getLoginRequest());
141
138
  });
142
139
  }
143
140
 
@@ -145,8 +142,7 @@ async function acquireAccessToken() {
145
142
  //#region src/utilities/storage/UnitySessionStorage.js
146
143
  const TenantStorageKey = "active-tenant";
147
144
  const storeInitialTenant = () => {
148
- const urlParams = new URLSearchParams(window.location.search);
149
- const urlTenantId = urlParams.get("tenantId");
145
+ const urlTenantId = new URLSearchParams(window.location.search).get("tenantId");
150
146
  if (urlTenantId) storeTenant(urlTenantId);
151
147
  };
152
148
  const storeTenant = (tenantId) => {
@@ -215,7 +211,7 @@ const useHandleAxiosSnackbar = () => {
215
211
  if (preCallBack && !showMessage) return;
216
212
  let successMessage = message ?? fallbackSuccessMessage;
217
213
  if (typeof successMessage !== "string" || !successMessage || successMessage.length === 0) successMessage = fallbackSuccessMessage;
218
- const options = {
214
+ enqueueSnackbar(successMessage, {
219
215
  variant: "default",
220
216
  anchorOrigin: {
221
217
  vertical: "top",
@@ -235,8 +231,7 @@ const useHandleAxiosSnackbar = () => {
235
231
  dismissSnackbar(key);
236
232
  }
237
233
  }, "Ok"))
238
- };
239
- enqueueSnackbar(successMessage, options);
234
+ });
240
235
  }, [dismissSnackbar, enqueueSnackbar]);
241
236
  return {
242
237
  handleErrorSnackbar,
@@ -246,4 +241,4 @@ const useHandleAxiosSnackbar = () => {
246
241
 
247
242
  //#endregion
248
243
  export { ClickOpenEnums, UdpPageEnums, acquireAccessToken, clearStoredTenant, getAccessToken, getApiAccessScope, getLoginRequest, getMergedConfig, getSignInAuthProvider, getStoredTenant, getTokenRequest, handleResponseErrors, initSignInAuthProvider, loginRedirect, storeInitialTenant, storeTenant, useHandleAxiosSnackbar, useLoginAction, useLogoutAction, whitelistedPaths };
249
- //# sourceMappingURL=apiHelpers-DZots3og.js.map
244
+ //# sourceMappingURL=apiHelpers-CmM6DWAT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiHelpers-DZots3og.js","names":["useLoginAction: LoginFunction","loginRedirect: () => void"],"sources":["../src/utilities/auth/signInAuthProvider.js","../src/enums/pageEnums.ts","../src/utilities/auth/whitelistedPaths.js","../src/utilities/auth/authActions.ts","../src/utilities/storage/UnitySessionStorage.js","../src/utilities/apiHelpers.jsx"],"sourcesContent":["import { PublicClientApplication, EventType } from '@azure/msal-browser';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nlet signInAuthProviderInstance = null;\nlet loginRequestInstance = null;\nlet tokenRequestInstance = null;\nlet apiAccessScopeValue = null;\n\nexport async function initSignInAuthProvider() {\n if (signInAuthProviderInstance) {\n return; // Already initialized\n }\n\n const PUBLIC_URL = new URL(\n import.meta.env.BASE_URL || '/',\n window.location.origin\n ).href.replace(/\\/$/, '');\n\n const REDIRECT_URL_BASE = ConfigService.config.USE_AAD_REDIRECT\n ? ConfigService.config.UNITY_URL\n : PUBLIC_URL;\n\n if (!ConfigService.config.MSAL_TENANT)\n throw new Error('MSAL_TENANT not configured');\n if (!ConfigService.config.MSAL_CLIENT_ID)\n throw new Error('MSAL_CLIENT_ID not configured');\n\n const tenant = ConfigService.config.MSAL_TENANT;\n const signInPolicy = ConfigService.config.SIGN_IN_POLICY;\n const applicationID = ConfigService.config.MSAL_CLIENT_ID;\n const reactRedirectUri = `${REDIRECT_URL_BASE}/${\n ConfigService.config.USE_AAD_REDIRECT ? 'aad_redirect' : 'aad_callback'\n }`;\n const tenantSubdomain = tenant.split('.')[0];\n const instance = `https://${tenantSubdomain}.b2clogin.com/`;\n const signInAuthority = `${instance}${tenant}/${signInPolicy}`;\n apiAccessScopeValue = `https://${tenant}/${ConfigService.config.MSAL_API_ACCESS_SCOPE}`;\n\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const msie11 = ua.indexOf('Trident/');\n const msedge = ua.indexOf('Edge/');\n const firefox = ua.indexOf('Firefox');\n const isIE = msie > 0 || msie11 > 0;\n const isEdge = msedge > 0;\n const isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\n\n // Msal Configurations\n const signInConfig = {\n auth: {\n authority: signInAuthority,\n knownAuthorities: [`${tenantSubdomain}.b2clogin.com`],\n clientId: applicationID,\n redirectUri: reactRedirectUri,\n postLogoutRedirectUri: PUBLIC_URL + '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: isIE || isEdge || isFirefox,\n },\n system: {\n allowRedirectInIframe: true,\n },\n };\n\n signInAuthProviderInstance = new PublicClientApplication(signInConfig);\n\n await signInAuthProviderInstance.initialize();\n\n if (\n !signInAuthProviderInstance.getActiveAccount() &&\n signInAuthProviderInstance.getAllAccounts().length > 0\n ) {\n signInAuthProviderInstance.setActiveAccount(\n signInAuthProviderInstance.getAllAccounts()[0]\n );\n }\n\n signInAuthProviderInstance.addEventCallback((event) => {\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\n const account = event.payload.account;\n signInAuthProviderInstance.setActiveAccount(account);\n }\n });\n\n tokenRequestInstance = { scopes: [apiAccessScopeValue] };\n\n loginRequestInstance = {\n scopes: [apiAccessScopeValue, 'openid', 'offline_access'],\n state: `${PUBLIC_URL}/aad_callback`,\n };\n}\n\nexport const getSignInAuthProvider = () => {\n if (!signInAuthProviderInstance) {\n throw new Error(\n 'signInAuthProvider is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return signInAuthProviderInstance;\n};\n\nexport const getLoginRequest = () => {\n if (!loginRequestInstance) {\n throw new Error(\n 'loginRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return loginRequestInstance;\n};\n\nexport const getTokenRequest = () => {\n if (!tokenRequestInstance) {\n throw new Error(\n 'tokenRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return tokenRequestInstance;\n};\n\nexport const getApiAccessScope = () => {\n if (!apiAccessScopeValue) {\n throw new Error(\n 'apiAccessScope is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return apiAccessScopeValue;\n};\n","export enum ClickOpenEnums {\n SideSheet = 'sideSheet',\n Dialog = 'dialog',\n SplitScreen = 'splitScreen'\n}\n\nexport enum UdpPageEnums {\n Udp_Maintenance_Engine_Page = '32f32abb-e633-494e-b4c7-8e187c731e95',\n Udp_Data_Browser_Page = 'efaa7518-c943-4cd3-ad44-d78941de3211',\n Udp_Notes_Page = 'ef18c935-4d7b-4923-a87e-975d71f019a2',\n Udp_Reminders_Page = '308d9644-60db-4a0f-88c6-3a1309600ebc',\n Udp_Reports_Page = '35eb68db-cadc-497a-b915-de4e4b709459',\n Udp_Inquiry_Explore_Page = '8118a06e-5e26-437f-8661-8171f9e2ab16',\n Udp_Public_Forms_Page = '0a2f83f1-6f74-4088-b954-7d5762d93cfa'\n}\n","import { UdpPageEnums } from \"../../enums/pageEnums\";\n\nexport const whitelistedPaths = [\n '/verify', \n `/page/${UdpPageEnums.Udp_Public_Forms_Page}`, // Public forms page\n '/aad_redirect',\n '/passwordresetsuccess'\n];\n","import {\n getSignInAuthProvider,\n getTokenRequest,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { BrowserUtils } from '@azure/msal-browser';\nimport { storeCurrentPath } from '../redirect/LocalRedirectUrlStorage';\nimport { whitelistedPaths } from './whitelistedPaths';\nexport type LoginFunction = () => void;\nexport type LogoutFunction = () => void;\n/**\n * Hook providing auth \"actions\" such as login/logout\n */\n\nexport const useLoginAction: LoginFunction = () => loginRedirect;\nexport const loginRedirect: () => void = () => {\n const signInAuthProvider = getSignInAuthProvider();\n signInAuthProvider.loginRedirect(getLoginRequest());\n};\n\nexport function useLogoutAction(): LogoutFunction {\n return async () => {\n const signInAuthProvider = getSignInAuthProvider();\n await signInAuthProvider.logoutRedirect({\n account: signInAuthProvider.getActiveAccount(),\n });\n };\n}\n\nexport async function acquireAccessToken(): Promise<string | void> {\n const signInAuthProvider = getSignInAuthProvider();\n const account = signInAuthProvider.getActiveAccount() ?? undefined;\n\n if (account) {\n return signInAuthProvider\n .acquireTokenSilent({ ...getTokenRequest(), account })\n .then((response) => {\n return response.accessToken;\n })\n .catch(async (error) => {\n const currentPathIsWhitelisted = whitelistedPaths.includes(\n window.location.pathname\n );\n if (!currentPathIsWhitelisted) {\n signInAuthProvider.loginRedirect(getLoginRequest());\n }\n });\n }\n}\n","const TenantStorageKey = 'active-tenant';\n\nexport const storeInitialTenant = () => {\n const urlParams = new URLSearchParams(window.location.search);\n const urlTenantId = urlParams.get('tenantId');\n\n if (urlTenantId) {\n storeTenant(urlTenantId);\n }\n};\n\nexport const storeTenant = (tenantId) => {\n window.sessionStorage.setItem(TenantStorageKey, tenantId);\n};\n\nexport const getStoredTenant = () => {\n return window.sessionStorage.getItem(TenantStorageKey);\n};\n\nexport const clearStoredTenant = () => {\n window.sessionStorage.removeItem(TenantStorageKey);\n};\n","import React from \"react\";\nimport { acquireAccessToken } from './auth/authActions';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { getStoredTenant } from './storage/UnitySessionStorage';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nexport const getMergedConfig = (accessToken, config) => {\n const headers = config?.headers ?? {};\n\n headers.currentTenantId ||= getStoredTenant();\n if (accessToken) headers.Authorization ||= `Bearer ${accessToken}`;\n\n config.headers = headers;\n return config;\n};\n\nexport const handleResponseErrors = async (error) => {\n if (error?.response?.status === 401) {\n await acquireAccessToken();\n }\n};\n\nexport const getAccessToken = async () => {\n return await acquireAccessToken();\n};\n\n/**\n * Checks to make sure the error isn't cancelled, if so just return w/o doing anything\n *Otherwise call a pre-method, create a snackbar, then call a post-method\n *preCallBack returns a bool, true = show snackbar\n */\nexport const useHandleAxiosSnackbar = () => {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const history = useHistory();\n\n const dismissSnackbar = useCallback(\n (key, callback) => {\n closeSnackbar(key);\n callback?.();\n },\n [closeSnackbar]\n );\n\n const handleErrorSnackbar = useCallback(\n (error, customMessage, preCallBack, callback) => {\n const fallbackErrorMessage = 'Error executing request';\n if (\n error?.toString()?.toLowerCase() === 'cancel' ||\n error?.code === 'ERR_CANCELED'\n )\n return;\n\n // Don't call the preCallback unless we actually failed.\n const showSnackBar = preCallBack?.();\n if (preCallBack && !showSnackBar) return;\n\n let errorMessage =\n customMessage ??\n (error?.response?.data || error?.message || fallbackErrorMessage);\n if (\n typeof errorMessage !== 'string' ||\n !errorMessage ||\n errorMessage.length === 0\n ) {\n errorMessage = fallbackErrorMessage;\n }\n\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n )\n });\n\n callback?.();\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n const handleSuccessSnackbar = useCallback(\n (message, preCallBack, callback, navigationPath, buttonText) => {\n const fallbackSuccessMessage = 'Executed request successfully';\n const showMessage = preCallBack?.();\n if (preCallBack && !showMessage) return;\n\n let successMessage = message ?? fallbackSuccessMessage;\n if (\n typeof successMessage !== 'string' ||\n !successMessage ||\n successMessage.length === 0\n ) {\n successMessage = fallbackSuccessMessage;\n }\n\n const options = {\n variant: 'default',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <>\n {navigationPath && (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n history.push(navigationPath);\n dismissSnackbar(key);\n }}\n >\n {buttonText? buttonText : 'Go to page'}\n </Button>\n )}\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n </>\n )\n };\n\n enqueueSnackbar(successMessage, options);\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n return { handleErrorSnackbar, handleSuccessSnackbar };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"apiHelpers-CmM6DWAT.js","names":["useLoginAction: LoginFunction","loginRedirect: () => void"],"sources":["../src/utilities/auth/signInAuthProvider.js","../src/enums/pageEnums.ts","../src/utilities/auth/whitelistedPaths.js","../src/utilities/auth/authActions.ts","../src/utilities/storage/UnitySessionStorage.js","../src/utilities/apiHelpers.jsx"],"sourcesContent":["import { PublicClientApplication, EventType } from '@azure/msal-browser';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nlet signInAuthProviderInstance = null;\nlet loginRequestInstance = null;\nlet tokenRequestInstance = null;\nlet apiAccessScopeValue = null;\n\nexport async function initSignInAuthProvider() {\n if (signInAuthProviderInstance) {\n return; // Already initialized\n }\n\n const PUBLIC_URL = new URL(\n import.meta.env.BASE_URL || '/',\n window.location.origin\n ).href.replace(/\\/$/, '');\n\n const REDIRECT_URL_BASE = ConfigService.config.USE_AAD_REDIRECT\n ? ConfigService.config.UNITY_URL\n : PUBLIC_URL;\n\n if (!ConfigService.config.MSAL_TENANT)\n throw new Error('MSAL_TENANT not configured');\n if (!ConfigService.config.MSAL_CLIENT_ID)\n throw new Error('MSAL_CLIENT_ID not configured');\n\n const tenant = ConfigService.config.MSAL_TENANT;\n const signInPolicy = ConfigService.config.SIGN_IN_POLICY;\n const applicationID = ConfigService.config.MSAL_CLIENT_ID;\n const reactRedirectUri = `${REDIRECT_URL_BASE}/${\n ConfigService.config.USE_AAD_REDIRECT ? 'aad_redirect' : 'aad_callback'\n }`;\n const tenantSubdomain = tenant.split('.')[0];\n const instance = `https://${tenantSubdomain}.b2clogin.com/`;\n const signInAuthority = `${instance}${tenant}/${signInPolicy}`;\n apiAccessScopeValue = `https://${tenant}/${ConfigService.config.MSAL_API_ACCESS_SCOPE}`;\n\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const msie11 = ua.indexOf('Trident/');\n const msedge = ua.indexOf('Edge/');\n const firefox = ua.indexOf('Firefox');\n const isIE = msie > 0 || msie11 > 0;\n const isEdge = msedge > 0;\n const isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\n\n // Msal Configurations\n const signInConfig = {\n auth: {\n authority: signInAuthority,\n knownAuthorities: [`${tenantSubdomain}.b2clogin.com`],\n clientId: applicationID,\n redirectUri: reactRedirectUri,\n postLogoutRedirectUri: PUBLIC_URL + '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: isIE || isEdge || isFirefox,\n },\n system: {\n allowRedirectInIframe: true,\n },\n };\n\n signInAuthProviderInstance = new PublicClientApplication(signInConfig);\n\n await signInAuthProviderInstance.initialize();\n\n if (\n !signInAuthProviderInstance.getActiveAccount() &&\n signInAuthProviderInstance.getAllAccounts().length > 0\n ) {\n signInAuthProviderInstance.setActiveAccount(\n signInAuthProviderInstance.getAllAccounts()[0]\n );\n }\n\n signInAuthProviderInstance.addEventCallback((event) => {\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\n const account = event.payload.account;\n signInAuthProviderInstance.setActiveAccount(account);\n }\n });\n\n tokenRequestInstance = { scopes: [apiAccessScopeValue] };\n\n loginRequestInstance = {\n scopes: [apiAccessScopeValue, 'openid', 'offline_access'],\n state: `${PUBLIC_URL}/aad_callback`,\n };\n}\n\nexport const getSignInAuthProvider = () => {\n if (!signInAuthProviderInstance) {\n throw new Error(\n 'signInAuthProvider is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return signInAuthProviderInstance;\n};\n\nexport const getLoginRequest = () => {\n if (!loginRequestInstance) {\n throw new Error(\n 'loginRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return loginRequestInstance;\n};\n\nexport const getTokenRequest = () => {\n if (!tokenRequestInstance) {\n throw new Error(\n 'tokenRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return tokenRequestInstance;\n};\n\nexport const getApiAccessScope = () => {\n if (!apiAccessScopeValue) {\n throw new Error(\n 'apiAccessScope is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return apiAccessScopeValue;\n};\n","export enum ClickOpenEnums {\n SideSheet = 'sideSheet',\n Dialog = 'dialog',\n SplitScreen = 'splitScreen'\n}\n\nexport enum UdpPageEnums {\n Udp_Maintenance_Engine_Page = '32f32abb-e633-494e-b4c7-8e187c731e95',\n Udp_Data_Browser_Page = 'efaa7518-c943-4cd3-ad44-d78941de3211',\n Udp_Notes_Page = 'ef18c935-4d7b-4923-a87e-975d71f019a2',\n Udp_Reminders_Page = '308d9644-60db-4a0f-88c6-3a1309600ebc',\n Udp_Reports_Page = '35eb68db-cadc-497a-b915-de4e4b709459',\n Udp_Inquiry_Explore_Page = '8118a06e-5e26-437f-8661-8171f9e2ab16',\n Udp_Public_Forms_Page = '0a2f83f1-6f74-4088-b954-7d5762d93cfa'\n}\n","import { UdpPageEnums } from \"../../enums/pageEnums\";\n\nexport const whitelistedPaths = [\n '/verify', \n `/page/${UdpPageEnums.Udp_Public_Forms_Page}`, // Public forms page\n '/aad_redirect',\n '/passwordresetsuccess'\n];\n","import {\n getSignInAuthProvider,\n getTokenRequest,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { BrowserUtils } from '@azure/msal-browser';\nimport { storeCurrentPath } from '../redirect/LocalRedirectUrlStorage';\nimport { whitelistedPaths } from './whitelistedPaths';\nexport type LoginFunction = () => void;\nexport type LogoutFunction = () => void;\n/**\n * Hook providing auth \"actions\" such as login/logout\n */\n\nexport const useLoginAction: LoginFunction = () => loginRedirect;\nexport const loginRedirect: () => void = () => {\n const signInAuthProvider = getSignInAuthProvider();\n signInAuthProvider.loginRedirect(getLoginRequest());\n};\n\nexport function useLogoutAction(): LogoutFunction {\n return async () => {\n const signInAuthProvider = getSignInAuthProvider();\n await signInAuthProvider.logoutRedirect({\n account: signInAuthProvider.getActiveAccount(),\n });\n };\n}\n\nexport async function acquireAccessToken(): Promise<string | void> {\n const signInAuthProvider = getSignInAuthProvider();\n const account = signInAuthProvider.getActiveAccount() ?? undefined;\n\n if (account) {\n return signInAuthProvider\n .acquireTokenSilent({ ...getTokenRequest(), account })\n .then((response) => {\n return response.accessToken;\n })\n .catch(async (error) => {\n const currentPathIsWhitelisted = whitelistedPaths.includes(\n window.location.pathname\n );\n if (!currentPathIsWhitelisted) {\n signInAuthProvider.loginRedirect(getLoginRequest());\n }\n });\n }\n}\n","const TenantStorageKey = 'active-tenant';\n\nexport const storeInitialTenant = () => {\n const urlParams = new URLSearchParams(window.location.search);\n const urlTenantId = urlParams.get('tenantId');\n\n if (urlTenantId) {\n storeTenant(urlTenantId);\n }\n};\n\nexport const storeTenant = (tenantId) => {\n window.sessionStorage.setItem(TenantStorageKey, tenantId);\n};\n\nexport const getStoredTenant = () => {\n return window.sessionStorage.getItem(TenantStorageKey);\n};\n\nexport const clearStoredTenant = () => {\n window.sessionStorage.removeItem(TenantStorageKey);\n};\n","import React from \"react\";\nimport { acquireAccessToken } from './auth/authActions';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { getStoredTenant } from './storage/UnitySessionStorage';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nexport const getMergedConfig = (accessToken, config) => {\n const headers = config?.headers ?? {};\n\n headers.currentTenantId ||= getStoredTenant();\n if (accessToken) headers.Authorization ||= `Bearer ${accessToken}`;\n\n config.headers = headers;\n return config;\n};\n\nexport const handleResponseErrors = async (error) => {\n if (error?.response?.status === 401) {\n await acquireAccessToken();\n }\n};\n\nexport const getAccessToken = async () => {\n return await acquireAccessToken();\n};\n\n/**\n * Checks to make sure the error isn't cancelled, if so just return w/o doing anything\n *Otherwise call a pre-method, create a snackbar, then call a post-method\n *preCallBack returns a bool, true = show snackbar\n */\nexport const useHandleAxiosSnackbar = () => {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const history = useHistory();\n\n const dismissSnackbar = useCallback(\n (key, callback) => {\n closeSnackbar(key);\n callback?.();\n },\n [closeSnackbar]\n );\n\n const handleErrorSnackbar = useCallback(\n (error, customMessage, preCallBack, callback) => {\n const fallbackErrorMessage = 'Error executing request';\n if (\n error?.toString()?.toLowerCase() === 'cancel' ||\n error?.code === 'ERR_CANCELED'\n )\n return;\n\n // Don't call the preCallback unless we actually failed.\n const showSnackBar = preCallBack?.();\n if (preCallBack && !showSnackBar) return;\n\n let errorMessage =\n customMessage ??\n (error?.response?.data || error?.message || fallbackErrorMessage);\n if (\n typeof errorMessage !== 'string' ||\n !errorMessage ||\n errorMessage.length === 0\n ) {\n errorMessage = fallbackErrorMessage;\n }\n\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n )\n });\n\n callback?.();\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n const handleSuccessSnackbar = useCallback(\n (message, preCallBack, callback, navigationPath, buttonText) => {\n const fallbackSuccessMessage = 'Executed request successfully';\n const showMessage = preCallBack?.();\n if (preCallBack && !showMessage) return;\n\n let successMessage = message ?? fallbackSuccessMessage;\n if (\n typeof successMessage !== 'string' ||\n !successMessage ||\n successMessage.length === 0\n ) {\n successMessage = fallbackSuccessMessage;\n }\n\n const options = {\n variant: 'default',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <>\n {navigationPath && (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n history.push(navigationPath);\n dismissSnackbar(key);\n }}\n >\n {buttonText? buttonText : 'Go to page'}\n </Button>\n )}\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n </>\n )\n };\n\n enqueueSnackbar(successMessage, options);\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n return { handleErrorSnackbar, handleSuccessSnackbar };\n};\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { toTitleCase } from "./useAxiosGet-Dh5pVURP.js";
2
+
3
+ //#region src/utilities/entities/entityUtilities.js
4
+ const getCommonEntityName = (entityName) => {
5
+ if (!entityName) return entityName;
6
+ return toTitleCase(getSanitizedName(entityName));
7
+ };
8
+ const getSanitizedName = (entityName) => {
9
+ if (!entityName) return "";
10
+ const entityNameParts = entityName.split(".");
11
+ return entityNameParts[entityNameParts.length - 1];
12
+ };
13
+ const getFullyQualifiedName = (udpObjectInfo) => {
14
+ if (!udpObjectInfo) return "";
15
+ const modelNameSpace = udpObjectInfo.namespaceStructure?.model;
16
+ if (modelNameSpace) return `${modelNameSpace}.Models.${udpObjectInfo.sanitizedName}`;
17
+ else return "";
18
+ };
19
+
20
+ //#endregion
21
+ export { getCommonEntityName, getFullyQualifiedName, getSanitizedName };
22
+ //# sourceMappingURL=entityUtilities-Dy-jsB5c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityUtilities-Dy-jsB5c.js","names":[],"sources":["../src/utilities/entities/entityUtilities.js"],"sourcesContent":["import { toTitleCase } from '../input/StringUtilities';\nexport const getCommonEntityName = (entityName) => {\n if (!entityName) return entityName;\n return toTitleCase(getSanitizedName(entityName));\n};\n\nexport const getSanitizedName = (entityName) => {\n if (!entityName) return '';\n const entityNameParts = entityName.split('.');\n return entityNameParts[entityNameParts.length - 1];\n};\n\nexport const getFullyQualifiedName = (udpObjectInfo) => {\n if (!udpObjectInfo) return '';\n const modelNameSpace = udpObjectInfo.namespaceStructure?.model;\n if (modelNameSpace) {\n return `${modelNameSpace}.Models.${udpObjectInfo.sanitizedName}`;\n } else {\n return '';\n }\n};\n"],"mappings":";;;AACA,MAAa,uBAAuB,eAAe;AACjD,KAAI,CAAC,WAAY,QAAO;AACxB,QAAO,YAAY,iBAAiB,WAAW,CAAC;;AAGlD,MAAa,oBAAoB,eAAe;AAC9C,KAAI,CAAC,WAAY,QAAO;CACxB,MAAM,kBAAkB,WAAW,MAAM,IAAI;AAC7C,QAAO,gBAAgB,gBAAgB,SAAS;;AAGlD,MAAa,yBAAyB,kBAAkB;AACtD,KAAI,CAAC,cAAe,QAAO;CAC3B,MAAM,iBAAiB,cAAc,oBAAoB;AACzD,KAAI,eACF,QAAO,GAAG,eAAe,UAAU,cAAc;KAEjD,QAAO"}