{"version":3,"sources":["web.config","env-config.ts","app-platform.styles.ts","digital-ops-home/digital-ops-home.styles.ts","digital-ops-home/digital-ops-home.tsx","app-platform-content.tsx","app-platform-providers.tsx","app-platform-auth.tsx","app-platform.tsx","index.tsx"],"names":["UI_REDIRECTION_ORIGIN","process","APP_CLIENT_ID","ENABLE_BENCHMARKING","JSON","parse","TRACK_USER_NAME","height","style","appTile","colors","depth","backgroundColor","docCardBackground","boxShadow","depth4","width","border","borderRadius","textDecoration","color","$nest","docNeutralLighter","depth16","cursor","docNeutralLight","rootStack","paddingTop","appTileStack","buttonBarStack","padding","borderTopRightRadius","contentStackItem","contentStackInternal","description","lineHeight","overflow","DigitalOpsHome","contextHook","useContext","Context","switching","setSwitching","useState","cacheChecked","setCacheChecked","COLORS","DEPTH","docAppSelectionCacheKey","useEffect","context","profilesLoading","location","search","ignoreQueryPrefix","cache","cachedAppSelection","localStorage","getItem","cachedApp","applicationProfileSets","find","set","application","setItem","url","includes","window","open","concat","setTimeout","_jsx","Stack","className","verticalAlign","horizontalAlign","tokens","childrenGap","children","Item","Spinner","size","SpinnerSize","large","PageWrapper","isLoading","pageConfig","pageTitle","codename","urlPartial","hasLeftNav","_jsxs","Styles","horizontal","PrimaryButton","onClick","console","log","wrap","filter","profileSet","onboarded","userProfiles","length","map","role","tabIndex","onKeyDown","evt","keyCode","KeyCodes","enter","applicationUrl","ButtonBar","overflowItems","profile","key","name","text","displayName","contextMutations","switchApplicationProfile","AppPlatformContent","client","useApolloClient","siteTitle","environment","authentication","generateHeaders","then","headers","query","gql","_templateObject","_taggedTemplateLiteral","fetchPolicy","response","_response$data","data","getTenantVersions","Fragment","Suspense","fallback","Switch","Route","path","ref","rootUrl","EnvConfig","hash","replace","queryString","component","document","title","NavConfirmation","showDialog","showNavConfirmationDialog","onOk","redirectUnsafe","navPath","navExtension","onClose","hideNavigationInterrupt","AppPlatformProviders","props","_msalContext$instance","msalContext","useMsal","CoherenceCustomizations","settings","theme","palette","themePrimary","docThemePrimary","envProps","serviceOffering","componentName","componentId","environmentName","serviceLine","service","trackUserName","enableBenchmarking","ApolloProvider","HashRouter","TelemetryProvider","instrumentationKey","environmentProps","userName","instance","getAllAccounts","username","ContextProvider","onGetAppInsights","getAppInsights","onTrackException","trackException","clientId","tenantId","AppPlatformAuth","useMsalAuthentication","InteractionType","Redirect","AuthenticatedTemplate","UnauthenticatedTemplate","AppPlatform","msalInstance","PublicClientApplication","msalConfig","MsalProvider","InMemoryCache","addTypename","auth","authority","redirectUri","origin","toString","cacheLocation","storeAuthStateInCookie","ApolloClient","link","createHttpLink","uri","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.9264399a.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/web.30ff17ea.config\";","//General Configuration\r\nconst ENVIRONMENT = process.env.REACT_APP_ENVIRONMENT || \"prod\";\r\nconst API_URL = process.env.REACT_APP_API_URL || \"\";\r\nconst UI_REDIRECTION_ORIGIN = process.env.REACT_APP_UI_REDIRECTION_ORIGIN || \"\";\r\n\r\n//Authentication Configuration\r\nconst GRAPH_API_BASE_URL = process.env.REACT_APP_GRAPH_API_BASE_URL || \"\";\r\nconst GRAPH_API_VERSION = process.env.REACT_APP_GRAPH_API_VERSION || \"\";\r\nconst APP_CLIENT_ID = process.env.REACT_APP_CLIENT_ID || \"\";\r\n\r\n//Security Group Configuration\r\nconst SG_JOIN_BASE_URL = process.env.REACT_APP_SG_JOIN_BASE_URL || \"\";\r\nconst SG_LEAVE_BASE_URL = process.env.REACT_APP_SG_LEAVE_BASE_URL || \"\";\r\n\r\n//Telemetry Configuration\r\nconst ENVIRONMENT_NAME = process.env.REACT_APP_ENVIRONMENT_NAME || \"\";\r\nconst INSTRUMENTATION_KEY = process.env.REACT_APP_INSTRUMENTATION_KEY || \"\";\r\nconst SERVICE_OFFERING = process.env.REACT_APP_SERVICE_OFFERING || \"\";\r\nconst COMPONENT_NAME = process.env.REACT_APP_COMPONENT_NAME || \"\";\r\nconst COMPONENT_ID = process.env.REACT_APP_COMPONENT_ID || \"\";\r\nconst SERVICE_LINE = process.env.REACT_APP_SERVICE_LINE || \"\";\r\nconst SERVICE = process.env.REACT_APP_SERVICE || \"\";\r\nconst ENABLE_BENCHMARKING = JSON.parse(process.env.REACT_APP_ENABLE_BENCHMARKING ? process.env.REACT_APP_ENABLE_BENCHMARKING : \"false\");\r\nconst TRACK_USER_NAME = JSON.parse(process.env.REACT_APP_TRACK_USER_NAME ? process.env.REACT_APP_TRACK_USER_NAME : \"false\");\r\nconst XCV = process.env.REACT_APP_XCV || \"\";\r\n\r\n//Onboard User API\r\nconst ONBOARD_API_URL = process.env.REACT_APP_ONBOARD_API_URL || \"\";\r\n\r\nexport {\r\n //General Configuration\r\n ENVIRONMENT,\r\n API_URL,\r\n UI_REDIRECTION_ORIGIN,\r\n\r\n //Authentication Configuration\r\n GRAPH_API_BASE_URL,\r\n GRAPH_API_VERSION,\r\n APP_CLIENT_ID,\r\n\r\n //Onboard Configuration\r\n ONBOARD_API_URL,\r\n\r\n //Security Group Configuration\r\n SG_JOIN_BASE_URL,\r\n SG_LEAVE_BASE_URL,\r\n\r\n //Telemetry Configuration\r\n ENVIRONMENT_NAME,\r\n INSTRUMENTATION_KEY,\r\n SERVICE_OFFERING,\r\n COMPONENT_NAME,\r\n COMPONENT_ID,\r\n SERVICE_LINE,\r\n SERVICE,\r\n ENABLE_BENCHMARKING,\r\n TRACK_USER_NAME,\r\n XCV,\r\n}\r\n","import { style } from \"typestyle\";\r\n\r\nexport const height = style({\r\n height: \"100vh\"\r\n});\r\n","import { COLORS, DEPTH } from \"@epic/doc-platform-components\";\r\n\r\nimport { style } from \"typestyle\";\r\n\r\n/** styles */\r\nexport const appTile = (colors: COLORS, depth: DEPTH): string =>\r\n style({\r\n backgroundColor: colors.docCardBackground,\r\n boxShadow: depth.depth4,\r\n height: 100,\r\n width: 200,\r\n border: \"none\",\r\n borderRadius: 8,\r\n textDecoration: \"none !important\",\r\n color: \"unset\",\r\n $nest: {\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n color: \"unset\",\r\n backgroundColor: colors.docNeutralLighter,\r\n boxShadow: depth.depth16,\r\n cursor: \"pointer\"\r\n },\r\n \"&:active\": {\r\n textDecoration: \"none\",\r\n color: \"unset\",\r\n backgroundColor: colors.docNeutralLight\r\n }\r\n }\r\n });\r\n\r\nexport const rootStack = style({ paddingTop: 60 });\r\n\r\nexport const appTileStack = style({ height: 100, width: 200 });\r\n\r\nexport const buttonBarStack = style({\r\n height: 20,\r\n width: 200,\r\n $nest: {\r\n \"& > div\": {\r\n padding: 0,\r\n $nest: {\r\n \"* > div\": {\r\n padding: 0,\r\n borderTopRightRadius: 8,\r\n height: 30\r\n },\r\n \":hover\": {\r\n color: \"orange\"\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\r\nexport const contentStackItem = style({\r\n height: \"60px\",\r\n padding: \"0px 10px\"\r\n});\r\n\r\nexport const contentStackInternal = style({\r\n height: \"100%\"\r\n});\r\n\r\nexport const description = style({\r\n lineHeight: \"normal\",\r\n height: \"12.8px\",\r\n overflow: \"visible\",\r\n});\r\n","import * as React from \"react\";\r\nimport * as Styles from \"./digital-ops-home.styles\";\r\n\r\nimport { ButtonBar, COLORS, DEPTH, PageWrapper } from \"@epic/doc-platform-components\";\r\nimport { ICommandBarItemProps, KeyCodes, PrimaryButton, Spinner, SpinnerSize, Stack } from \"@fluentui/react\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { Context } from \"@epic/doc-platform-context\";\r\nimport { parse } from \"qs\";\r\nimport { style } from \"typestyle\";\r\n\r\n/**\r\n * The default page for the Digital Operations Center which is rendered when no app is specified in the route.\r\n * Handles looking up the user's last used app for redirection.\r\n */\r\nexport const DigitalOpsHome: React.FunctionComponent = (): JSX.Element => {\r\n const contextHook = useContext(Context);\r\n\r\n const [switching, setSwitching] = useState(false);\r\n const [cacheChecked, setCacheChecked] = useState(false);\r\n\r\n const colors = new COLORS();\r\n const depth = new DEPTH();\r\n\r\n const docAppSelectionCacheKey = \"DOC_APP_SELECTION\";\r\n\r\n useEffect(() => {\r\n if (!contextHook.context.profilesLoading) {\r\n const shouldCheckCache = parse(location.search, { ignoreQueryPrefix: true }).cache;\r\n\r\n if (shouldCheckCache !== \"no\") {\r\n const cachedAppSelection = localStorage.getItem(docAppSelectionCacheKey);\r\n\r\n if (cachedAppSelection) {\r\n const cachedApp = contextHook.context.applicationProfileSets.find(\r\n (set) => set.application === cachedAppSelection\r\n );\r\n\r\n if (cachedApp) {\r\n localStorage.setItem(docAppSelectionCacheKey, cachedApp.application);\r\n\r\n if (cachedApp.url.includes(\"azurewebsites.net\")) {\r\n window.open(`${cachedApp.url}#/${cachedApp.application}`, \"_self\");\r\n } else {\r\n window.open(`${cachedApp.url}`, \"_self\");\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n setCacheChecked(true);\r\n }, 500);\r\n } else {\r\n setCacheChecked(true);\r\n }\r\n }\r\n }, [contextHook.context.profilesLoading]);\r\n\r\n const element = (\r\n <Stack\r\n className={style({ height: \"100vh\" })}\r\n verticalAlign=\"center\"\r\n horizontalAlign=\"center\"\r\n tokens={{ childrenGap: 40 }}\r\n >\r\n {contextHook.context.profilesLoading || switching || !cacheChecked ? (\r\n <Stack.Item>\r\n <Spinner size={SpinnerSize.large} />\r\n </Stack.Item>\r\n ) : (\r\n <PageWrapper\r\n isLoading={contextHook.context.profilesLoading}\r\n pageConfig={{ pageTitle: \"Digital Operations Center\", codename: \"\", urlPartial: \"\", hasLeftNav: false }}\r\n >\r\n <Stack tokens={{ childrenGap: 30 }} className={Styles.rootStack}>\r\n <Stack.Item>\r\n <Stack horizontal horizontalAlign=\"space-between\">\r\n <Stack.Item>\r\n <h2>Apps</h2>\r\n </Stack.Item>\r\n <Stack.Item>\r\n <PrimaryButton\r\n onClick={(): void => {\r\n console.log(\"Get more apps\");\r\n }}\r\n >\r\n Get more Apps\r\n </PrimaryButton>\r\n </Stack.Item>\r\n </Stack>\r\n </Stack.Item>\r\n <Stack.Item>\r\n <Stack horizontal wrap tokens={{ childrenGap: 20 }}>\r\n {contextHook.context.applicationProfileSets\r\n .filter((profileSet) => profileSet.onboarded && profileSet.userProfiles.length > 0)\r\n .map((set) => {\r\n return (\r\n <Stack.Item key={set.application}>\r\n <div\r\n role=\"link\"\r\n tabIndex={0}\r\n className={Styles.appTile(colors, depth)}\r\n onKeyDown={(evt): void => {\r\n if (evt.keyCode === KeyCodes.enter) {\r\n localStorage.setItem(docAppSelectionCacheKey, set.application);\r\n\r\n if (set.userProfiles[0].applicationUrl.includes(\"azurewebsites.net\")) {\r\n window.open(\r\n `${set.userProfiles[0].applicationUrl}#/${set.userProfiles[0].application}`,\r\n \"_self\"\r\n );\r\n } else {\r\n window.open(`${set.userProfiles[0].applicationUrl}`, \"_self\");\r\n }\r\n }\r\n }}\r\n onClick={(): void => {\r\n localStorage.setItem(docAppSelectionCacheKey, set.application);\r\n\r\n if (set.userProfiles[0].applicationUrl.includes(\"azurewebsites.net\")) {\r\n window.open(\r\n `${set.userProfiles[0].applicationUrl}#/${set.userProfiles[0].application}`,\r\n \"_self\"\r\n );\r\n } else {\r\n window.open(`${set.userProfiles[0].applicationUrl}`, \"_self\");\r\n }\r\n }}\r\n >\r\n <Stack horizontalAlign=\"start\" className={Styles.appTileStack}>\r\n <Stack.Item>\r\n <Stack className={Styles.buttonBarStack} horizontalAlign=\"end\">\r\n <ButtonBar\r\n isLoading={false}\r\n overflowItems={[\r\n ...set.userProfiles.map((profile) => {\r\n const item: ICommandBarItemProps = {\r\n key: profile.name,\r\n text: profile.displayName,\r\n onClick: (): void => {\r\n setSwitching(true);\r\n localStorage.setItem(docAppSelectionCacheKey, set.application);\r\n contextHook.contextMutations.switchApplicationProfile(profile);\r\n }\r\n };\r\n\r\n return item;\r\n })\r\n ]}\r\n />\r\n </Stack>\r\n </Stack.Item>\r\n <Stack.Item className={Styles.contentStackItem}>\r\n <Stack className={Styles.contentStackInternal} verticalAlign={\"center\"}>\r\n <h3>{set.displayName}</h3>\r\n <h6 className={Styles.description}>{set.description}</h6>\r\n </Stack>\r\n </Stack.Item>\r\n </Stack>\r\n </div>\r\n </Stack.Item>\r\n );\r\n })}\r\n </Stack>\r\n </Stack.Item>\r\n </Stack>\r\n </PageWrapper>\r\n )}\r\n </Stack>\r\n );\r\n\r\n return element;\r\n};\r\n","import * as EnvConfig from \"./env-config\";\r\n\r\nimport { NavConfirmation, PayloadData } from \"@epic/doc-platform-components\";\r\nimport React, { Fragment, Suspense, useContext, useEffect } from \"react\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { Spinner, SpinnerSize, Stack } from \"@fluentui/react\";\r\n\r\nimport { Context } from \"@epic/doc-platform-context\";\r\nimport { DigitalOpsHome } from \"./digital-ops-home/digital-ops-home\";\r\nimport { gql } from \"apollo-boost\";\r\nimport { useApolloClient } from \"@apollo/react-hooks\";\r\n\r\n/**\r\n * The content to display for the App Platform.\r\n * @returns A JSX.Element.\r\n */\r\nexport const AppPlatformContent: React.FunctionComponent = (): JSX.Element => {\r\n const contextHook = useContext(Context);\r\n const client = useApolloClient();\r\n\r\n const siteTitle = contextHook.context.environment === \"prod\" ? \"DOC\" : `DOC(${contextHook.context.environment})`;\r\n\r\n // Run on initial mount\r\n useEffect(() => {\r\n contextHook.authentication.generateHeaders().then((headers) => {\r\n client\r\n .query({\r\n query: gql`\r\n query getTenantVersions {\r\n getTenantVersions\r\n }\r\n `,\r\n fetchPolicy: \"network-only\",\r\n context: headers\r\n })\r\n .then((response: PayloadData) => {\r\n console.log(response?.data?.getTenantVersions);\r\n });\r\n });\r\n }, []);\r\n\r\n return (\r\n <Fragment>\r\n <Suspense\r\n fallback={\r\n <Stack className=\"homeSpinner\" verticalAlign=\"center\">\r\n <Stack.Item>\r\n <Spinner size={SpinnerSize.large} />\r\n </Stack.Item>\r\n </Stack>\r\n }\r\n >\r\n <Switch>\r\n <Route\r\n path=\"/contoso\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/contoso`;\r\n const hash = window.location.hash.replace(\"/contoso\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/launch\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/mila`;\r\n const hash = window.location.hash.replace(\"/launch\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/deal\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/deal`;\r\n const hash = window.location.hash.replace(\"/deal\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/pslip\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/pslip`;\r\n const hash = window.location.hash.replace(\"/pslip\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/wfm\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/wfm`;\r\n const hash = window.location.hash.replace(\"/wfm\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/qubit\"\r\n ref={(): void => {\r\n const rootUrl = `${EnvConfig.UI_REDIRECTION_ORIGIN}/qubit`;\r\n const hash = window.location.hash.replace(\"/qubit\", \"\");\r\n const queryString = window.location.search;\r\n const url = `${rootUrl}/${hash}${queryString}`;\r\n window.open(url, \"_self\");\r\n }}\r\n />\r\n <Route\r\n path=\"/\"\r\n component={DigitalOpsHome}\r\n ref={(): void => {\r\n document.title = `${siteTitle}`;\r\n }}\r\n />\r\n </Switch>\r\n </Suspense>\r\n <NavConfirmation\r\n showDialog={contextHook.context.showNavConfirmationDialog}\r\n onOk={(): void => {\r\n contextHook.contextMutations.redirectUnsafe(contextHook.context.navPath, contextHook.context.navExtension);\r\n }}\r\n onClose={(): void => {\r\n contextHook.contextMutations.hideNavigationInterrupt();\r\n }}\r\n />\r\n </Fragment>\r\n );\r\n};\r\n","import * as EnvConfig from \"./env-config\";\r\nimport * as React from \"react\";\r\n\r\nimport { ContextProvider, Environments } from \"@epic/doc-platform-context\";\r\nimport {\r\n TelemetryEnvironmentProps,\r\n TelemetryProvider,\r\n getAppInsights,\r\n trackException\r\n} from \"@epic/doc-platform-telemetry\";\r\n\r\nimport { ApolloClient } from \"apollo-boost\";\r\nimport { ApolloProvider } from \"@apollo/react-hooks\";\r\nimport { AppPlatformContent } from \"./app-platform-content\";\r\nimport { COLORS } from \"@epic/doc-platform-components\";\r\nimport { CoherenceCustomizations } from \"@coherence-design-system/styles\";\r\nimport { HashRouter } from \"react-router-dom\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\ninterface AppPlatformProvidersProps {\r\n client: ApolloClient<object>;\r\n}\r\n\r\n/** Providers. */\r\nexport const AppPlatformProviders: React.FunctionComponent<AppPlatformProvidersProps> = (\r\n props: PropsWithChildren<AppPlatformProvidersProps>\r\n): JSX.Element => {\r\n const msalContext = useMsal();\r\n\r\n const modifiedCustomizations = CoherenceCustomizations;\r\n modifiedCustomizations.settings.theme.palette.themePrimary = new COLORS().docThemePrimary;\r\n\r\n const envProps: TelemetryEnvironmentProps = {\r\n serviceOffering: EnvConfig.SERVICE_OFFERING,\r\n componentName: EnvConfig.COMPONENT_NAME,\r\n componentId: EnvConfig.COMPONENT_ID,\r\n environmentName: EnvConfig.ENVIRONMENT_NAME,\r\n serviceLine: EnvConfig.SERVICE_LINE,\r\n service: EnvConfig.SERVICE,\r\n trackUserName: EnvConfig.TRACK_USER_NAME,\r\n enableBenchmarking: EnvConfig.ENABLE_BENCHMARKING\r\n };\r\n\r\n const element = (\r\n <ApolloProvider client={props.client}>\r\n <HashRouter>\r\n <TelemetryProvider\r\n instrumentationKey={EnvConfig.INSTRUMENTATION_KEY}\r\n environmentProps={envProps}\r\n userName={msalContext.instance.getAllAccounts()[0].username ?? \"\"}\r\n >\r\n <ContextProvider\r\n client={props.client}\r\n msalContext={msalContext}\r\n environment={EnvConfig.ENVIRONMENT as keyof typeof Environments}\r\n onGetAppInsights={getAppInsights}\r\n onTrackException={trackException}\r\n clientId={EnvConfig.APP_CLIENT_ID}\r\n tenantId={\"72f988bf-86f1-41af-91ab-2d7cd011db47\"}\r\n >\r\n <AppPlatformContent />\r\n </ContextProvider>\r\n </TelemetryProvider>\r\n </HashRouter>\r\n </ApolloProvider>\r\n );\r\n\r\n return element;\r\n};\r\n","import * as React from \"react\";\r\nimport * as Styles from \"./app-platform.styles\";\r\n\r\nimport { AuthenticatedTemplate, UnauthenticatedTemplate, useMsalAuthentication } from \"@azure/msal-react\";\r\n\r\nimport ApolloClient from \"apollo-client\";\r\nimport { AppPlatformProviders } from \"./app-platform-providers\";\r\nimport { Fragment } from \"react\";\r\nimport { InteractionType } from \"@azure/msal-browser\";\r\nimport { Stack } from \"@fluentui/react\";\r\n\r\ninterface AppPlatformAuthProps {\r\n client: ApolloClient<object>;\r\n}\r\n\r\n/** Authentication wrapper for MSAL. */\r\nexport const AppPlatformAuth: React.FunctionComponent<AppPlatformAuthProps> = (\r\n props: AppPlatformAuthProps\r\n): JSX.Element => {\r\n useMsalAuthentication(InteractionType.Redirect);\r\n\r\n return (\r\n <Fragment>\r\n <AuthenticatedTemplate>\r\n <AppPlatformProviders client={props.client} />\r\n </AuthenticatedTemplate>\r\n <UnauthenticatedTemplate>\r\n <Stack horizontalAlign=\"center\" verticalAlign=\"center\" className={Styles.height}>\r\n <Stack.Item>\r\n <p>Signing in...</p>\r\n </Stack.Item>\r\n </Stack>\r\n </UnauthenticatedTemplate>\r\n </Fragment>\r\n );\r\n};\r\n","import * as React from \"react\";\r\n\r\nimport { Configuration, PublicClientApplication } from \"@azure/msal-browser\";\r\n\r\nimport ApolloClient from \"apollo-client\";\r\nimport { AppPlatformAuth } from \"./app-platform-auth\";\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\n\r\ninterface AppPlatformProps {\r\n msalConfig: Configuration;\r\n client: ApolloClient<object>;\r\n}\r\n\r\n/** The app platform */\r\nexport const AppPlatform: React.FunctionComponent<AppPlatformProps> = (props: AppPlatformProps): JSX.Element => {\r\n const msalInstance = new PublicClientApplication(props.msalConfig);\r\n\r\n return (\r\n <MsalProvider instance={msalInstance}>\r\n <AppPlatformAuth client={props.client} />\r\n </MsalProvider>\r\n );\r\n};\r\n","import \"./web.config\";\r\nimport \"@progress/kendo-theme-default/dist/all.css\";\r\n\r\nimport * as EnvConfig from \"./env-config\";\r\n\r\nimport { ApolloClient } from \"apollo-boost\";\r\nimport { AppPlatform } from \"./app-platform\";\r\nimport { Configuration } from \"@azure/msal-browser\";\r\nimport { InMemoryCache } from \"apollo-cache-inmemory\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { createHttpLink } from \"apollo-link-http\";\r\n\r\nconst cache = new InMemoryCache({\r\n // https://github.com/apollographql/apollo-client/issues/1913\r\n addTypename: false\r\n});\r\n\r\nconst msalConfig: Configuration = {\r\n auth: {\r\n clientId: `api://${EnvConfig.APP_CLIENT_ID}`,\r\n authority: \"https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47\", // This is a URL (e.g. https://login.microsoftonline.com/{your tenant ID})\r\n redirectUri: window.location.origin.toString()\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false // Set this to \"true\" if you are having issues on IE11 or Edge\r\n }\r\n};\r\n\r\nconst client = new ApolloClient({\r\n cache,\r\n link: createHttpLink({\r\n uri: `${process.env.REACT_APP_API_URL}`\r\n })\r\n});\r\n\r\nReactDOM.render(<AppPlatform client={client} msalConfig={msalConfig} />, document.getElementById(\"root\"));\r\n"],"sourceRoot":""}