{"version":3,"sources":["common/hooks/useHeaderContext.js","common/layout/components/Breadcrumbs.jsx","utils/urlHelper.js","common/topnav/components/ProfileMenu.jsx","common/topnav/components/DomainSwitcher.jsx","common/topnav/components/Help.jsx","common/topnav/services/searchService.js","common/topnav/components/EnterpriseSearch.jsx","common/topnav/services/shoppingCartService.js","common/topnav/components/ShoppingCart.jsx","common/topnav/components/AppMenuHeader.jsx","common/topnav/services/sitemapService.js","common/topnav/services/timelineService.js","common/sidebar/components/ControlPanelContainer.jsx","common/layout/components/EmulationStrip.jsx","utils/treeHelper.js","common/layout/components/SitemapProvider.jsx","config/i18n.js","RouteChangeListener.jsx","analytics/Tracker.jsx","authentication/AuthorizeRoute.jsx","authentication/Login.jsx","authentication/Logout.jsx","AppRoutes.jsx","analytics/webAnalyticsService.js","analytics/PendoTracker.jsx","analytics/instance.js","analytics/TrackingProvider.jsx","AppRouter.jsx","contexts/UserContextProvider.jsx","contexts/HeaderContextProvider.jsx","contexts/IntegrationContextProvider.jsx","App.jsx","index.jsx","utils/IntegrationConstants.js","common/hooks/useSettingsContext.js","utils/integrationHelper.js","utils/cookieHelper.js","contexts/ThemeContext.jsx","common/hooks/useIntegrationContext.js","theme/services/themeHelper.js","authentication/AuthorizeService.js","contexts/UserContext.jsx","contexts/MessageContext.jsx","contexts/SettingsContext.jsx","common/hooks/useBreadcrumbContext.js","contexts/HeaderContext.jsx","contexts/BreadcrumbContext.jsx","contexts/IntegrationContext.jsx","utils/clientStorage.js","utils/logger.js","config/apiRequestConfigHandler.js","config/apiConfig.js","config/apiResponseHandler.js","config/Config.jsx","theme/GlobalStyle.jsx","common/hooks/useMessageContext.js","theme/ThemeContainer.jsx","modules/onePlace/activitiesAndTasks/activities/services/myActivitiesService.js","theme/services/themeService.js","modules/learning/activityBuilder/state/reducers/index.js","contexts/BreadcrumbContextProvider.jsx","common/topnav/services/personService.js","modules/core/components/CorePillarFrame.jsx","state/reducers.js","state/store.js","modules/configuration/activitiesAndTasks/services/activitiesAndTaskConfigurationService.js","contexts/MessageContextProvider.jsx","modules/core/services/translationService.js","common/settings/services/settingService.js","modules/userSecurityQuestion/components/UserSecurityQuestions.jsx","modules/core/components/CoreMessageListener.jsx","modules/core/services/bootstrapService.js","modules/core/services/navigationService.js","modules/core/components/SecurityQuestions.jsx","modules/learning/activityBuilder/state/reducers/activityReducer.js","modules/learning/activityBuilder/state/reducers/errorsReducer.js","contexts/SettingsContextProvider.jsx","authentication/AuthorizationConstants.js","modules/core/services/coreIFrameHelper.js","common/layout/components/AppLayout.jsx","utils/pageHelper.js","common/hooks/useGoToHome.js","common/hooks/useUserContext.js","modules/learning/activityBuilder/state/actions/actionTypes.js"],"names":["useHeaderContext","context","useContext","HeaderContext","Error","StyledBreadcrumbs","styled","NavigationBreadcrumbs","_templateObject","_taggedTemplateLiteral","Breadcrumbs","settingContext","settingKey","settingsData","useSettingsContext","breadcrumbContext","useBreadcrumbContext","breadcrumbsEnabled","settings","filter","setting","key","value","t","useTranslation","integrationContext","useIntegrationContext","useEffect","breadcrumbData","length","setPageTitleWithBreadcrumbData","toLowerCase","isRcoreNode","CheckIntegrationSetting","IntegrationElement","HideBreadCrumb","mode","_jsx","_Fragment","children","breadCrumbsData","homeIconLabel","authorizedRCoreRoutes","Set","rcoreBreadcrumbData","rootBreadcrumb","allowedCoreBreadcrumbs","nodeKey","GetProcessedNodeUrl","node","url","GetProcessedCoreUrl","addToAuthorisedRCoreRoutes","breadcrumb","rpKey","nodeUrl","replace","indexOf","substring","has","add","nodeBreadcrumbData","undefined","push","title","name","routeUrl","relyingPartyURL","urlPrefix","charAt","encodedUrl","encodeURIComponent","urlSuffix","concat","relyingPartyUrl","encodeRPUrl","window","location","host","StyledPopper","Popper","StyledMenuList","MenuList","_templateObject2","props","theme","variables","headerBarBackground","headerBarColor","MenuContainer","div","_templateObject3","ProfileMenuButton","MenuButton","_templateObject4","ariaExpanded","leftNavHeaderBackground","PofileMenu","_ref","index","userData","profileMenus","_useState","useState","_useState2","_slicedToArray","popperAnchor","setPopperAnchor","_useState3","_useState4","isMenuOpen","setIsMenuOpen","_useState5","_useState6","isEmulation","setIsEmulation","_useState7","_useState8","isGuestUser","setIsGuestUser","_useState9","_useState10","userInfo","setUserInfo","_useState11","_useState12","itemList","setItemList","user","useUserContext","disableProfileMenu","isEmulatedUser","mustAnswerSecurityQuestions","metricKey","headerData","open","Boolean","directReportAriaLabel","count","directReporteesCount","closeMenu","removeIframeClickListeners","getEmulationFlag","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","t0","authService","isEmulationMode","t1","sent","stop","apply","arguments","getGuestUserFlag","_ref3","_callee2","_context2","items","userDetails","personInfo","imagePath","Config","domain","fullName","jobTitle","showDonut","keyMeasure","Math","round","keyMeasureKey","options","keyMeasureLabel","label","donutVariant","getDonutColor","forEach","menu","showLink","item","iconType","iconName","actionType","ariaLabel","openRequisitionsCount","isEmulationEnabled","ApplicationPaths","Logout","CloseOnEscape","close","CloseOnClickAway","_jsxs","endIcon","menuOpenIcon","isOpen","onClick","e","event","currentTarget","headerContext","coreFrameLoaded","setTimeout","addIframeClickListeners","focusElement","document","getElementById","focus","disabled","id","ariaHasPopUp","disableFocusRipple","Avatar","variant","height","width","src","alt","className","toggle","anchorEl","placement","disableAutoAdjust","onKeyDown","menuItems","querySelectorAll","preventDefault","keyCode","firstChild","ProfilePopoutBody","textLine1","textLine2","textLine3","toString","onAvatarClick","data","type","userId","staticData","userID","postMessage","onUserNameClick","ariaLabelForTextLine1","ariaLabelForTextLine2","role","ariaLabelForTextLine3","ActionsList","onItemClick","action","eventData","removeAccessToken","then","assign","catch","err","getLogger","error","defaultProps","ActionButton","TransparentButton","leftNavParentColor","p","topbarNavHoverStateBackground","topbarNavHoverStateTextColor","topbarNavActiveStateTextColor","topbarNavActiveStateBackground","DomainText","span","DomainLabel","DomainSwitcher","domainName","domainSwitchUrl","callbackEvent","Link","React","forwardRef","ref","RouteLink","_objectSpread","txtarialabel","txtariadescribedby","displayName","size","component","path","startIcon","Icon","HelpIconButton","IconButton","Help","helpMenu","disableHelpIcon","color","disableRipple","getSearchTypes","logger","config","getMaskedUserId","getConfig","cache","abrupt","axios","get","response","_x2","_x","getSearchSuggestions","_callee4","searchTerm","searchContext","requestUrl","_context4","_ref4","_callee3","_context3","_x5","_x3","_x4","Container","SrOnly","SearchComboBox","ComboBox","isFloatingSearch","SearchMenuItem","MenuItem","AutoSuggestContainer","_templateObject5","ButtonContainer","_templateObject6","CustomTextField","TextField","_templateObject7","SearchIconContainer","_templateObject8","SearchIcon","_templateObject9","ClearIcon","_templateObject10","isVisible","StyledPaper","Paper","_templateObject11","FixedFooter","_templateObject12","showBorder","StyledHighlighter","Hightlighter","_templateObject13","getSettingValueFromContext","EnterpriseSearch","_searchTypes$filter$","searchUrl","searchTypes","disableSearch","suggestionsCount","setSuggestionsCount","autoSuggestEnabled","useTheme","history","useHistory","resultsView","setResultsView","setHeaderContext","defaultContext","searchContextKey","newSearchContext","newSearchTerm","getWindowLocation","search","qsList","split","keyValuePairs","_keyValuePairs","decodeURIComponent","setSearchContext","suggestions","setSuggestions","term","searchText","setSearchTerm","getSuggestions","optionList","suggestionResultSection","searchtext","interpolation","escapeValue","weight","isFixed","SearchCount","navigateToSearch","originalSearchText","isFromSuggestion","setContext","handleSearchClick","state","pathname","view","resetSearchValues","onChange","target","isNative","inputProps","menuProps","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","style","backgroundColor","overflow","map","AutoSuggest","disableClearable","onSearch","paperComponent","getOptionLabel","option","showIcon","freeSolo","renderInput","params","placeholder","onKeyUp","renderOption","inputValue","highlightClassName","textToHighlight","getCartItemsCount","totalItems","ShoppingCartButton","BadgeIcon","Badge","ShoppingCart","shoppingCartMenu","disableShoppingCart","shoppingCartCount","setShoppingCartCount","Count","cartItemsCount","itemCount","badgeContent","CloseIcon","SearchContainer","showGrid","AppMenuHeader","menusData","logoClickUrl","domainSwitchNode","onNavigationCallback","translationsData","screenResolution","matchMedia","matches","smallerResolution","setSmallerResolution","searchIconSelected","setSearchIconSelected","screenResize","setLiveRegionMessage","useLiveRegionContext","themeContext","CurrentThemeContext","disableAppHeader","logoData","favIconData","previewLogoUrl","favIconUrl","LogoSrc","logo","favIconSrc","favicon","faviconElement","href","image","addListener","removeListener","LiveRegion","AppHeader","logoSrc","skipLinkText","skipMenufocus","contentElement","getElementsByClassName","setAttribute","hideMenus","translations","onMenuOpen","callbackForClose","onMenuClose","selectedNode","poperLeftPosition","poperTopPosition","ResultsCallback","SearchText","searchElement","shoppingCartElement","profileMenu","ProfileMenu","helpElement","adminHeaderCustomElement","getSitemap","foreceRefreshSitemap","rcoreSitemapHash","sitemapRequest","cachedRcoreSiteMap","hashValues","getLocalStorageItem","StorageConstants","Keys","sitemap","sitemapHash","dashboardHash","getIdbItem","parseKeyValue","SitemapHash","DashboardHash","post","resp","updatedHash","respObj","nodes","addUpdateKeyValue","hash","setLocalStorageItem","setIdbItem","includeDashboardSitemap","dashboardParent","dashboards","selfNode","dashboardSitemap","childNodes","dashboardType","find","unshift","getNotificationCount","refresh","countOverDue","targetUserId","forceRefresh","countOverDueOnly","StyledControlPanel","ControlPanel","minh","StyledRouteLink","EllipseControlPanelItem","ControlPanelItem","DisabledLink","ControlPanelContainer","controlPanelItems","highlightControlPanelItem","setHighlightCPItem","ControlPanelItemList","setControlPanelItemList","PageControlPanelItemList","setPageControlPanelItemList","ControlPanelFooter","setControlPanelFooter","Nodes","footerNode","Footer","timelineCount","setTimelineCount","mytodosOverDueCount","setMytodosOverDueCount","disableControlPanel","showUpperEllipse","setShowUpperEllipse","_useState13","_useState14","showLowerEllipse","setShowLowerEllipse","_useState15","_useState16","calcHeight","updateCalcHeight","_useState17","_useState18","currentPage","setCurrentPage","_useState19","_useState20","firstPage","setFirstpage","_useState21","_useState22","lastPage","setLastPage","_useState23","_useState24","minHeight","setMinHeight","updateSize","clientheight","clientHeight","first","slice","ChangeEllipsePosition","position","timeLineBadgeAriaLable","useCallback","handleItemClick","libNode","handleItemMouseClick","button","ControlPanelData","refreshTimeline","getMyTodosOverDueCount","_yield$getPastDueCoun","pastDueTrainingCount","getPastDueCount","showBadgeIcon","notificationCount","addEventListener","removeEventListener","getBadgeCount","footer","to","isDisabled","iconSize","btnSize","navigatioUrl","onMouseDown","Strip","Text","ExitEmulationBtn","Button","EmulationStrip","emulatedUser","exitEmulationUrl","username","getMaxDepthOfTree","rootNode","property","maxDepth","eachDeep","child","i","parent","ctx","depth","childrenPath","HeaderSection","IntegrationHomeBtn","coreNodes","SitemapProvider","setMenusData","isLoaded","setIsLoaded","errorMessage","setErrorMessage","setUserData","setProfileMenus","setHelpMenu","setShoppingCartMenu","homeUrl","setHomeUrl","dispatch","setDomainSwitchNode","setcontrolPanelItems","setSearchTypes","setSearchUrl","_useState25","_useState26","setExitEmulationUrl","_useState27","_useState28","coreReady","setCoreReady","_useState29","_useState30","selectedMenuKey","setSelectedMenuKey","refreshSitemap","queryString","parse","parseBooleans","Promise","all","getUserProfile","results","termsForUse","termsAndConditionsLink","availableControlPanelNodes","menuNodeList","controlPanelMenuItems","configuredControlPanelNodes","menuItem","ControlPanelitem","findValueDeep","definition","iconSource","updateControlPanelMenus","userObject","UserJustAnsweredSecurityQuestion","landingDashBoardurl","landingWebPart","accessibleRcoreRoutes","level","isAllowedCoreNode","pathFormat","homePageUrl","userDetailsAuthService","securedRoutes","personNumber","personPK","culture","dateFormat","dateformat","timeFormat","timeformat","userTimeZoneId","usertimezoneid","twoLetterISOLanguageName","currentDomainId","setCurrentUser","routeUrls","quickLinks","filteredMenus","administration","setQuickLinks","maxDepthLevel","showAdditionalAction","actionName","myTeam","self","nodeIndex","findIndex","n","splice","shoppingCartNode","helpNodes","domainNodes","searchNodes","filterMenus","errorResponse","configuredQuickLinks","menuQuickLinksNodeKey","configuredQuickLinkNodes","quickLink","masterSitemapId","availableQuickLinkNodes","menuQuickLinksNode","expandQuickLinksByDefault","expandQuickLinksNodeKey","ShowHomeButton","HideTopBar","SelectedNode","HideControlPanel","PageLoader","show","getUser","i18n","use","Backend","initReactI18next","init","fallbackLng","debug","ns","defaultNS","lng","profile","backend","backends","LocalforageBackend","BackendAdapter","Http","loadPath","customHeaders","Authorization","access_token","allowMultiLoading","backendOptions","expirationTime","driver","localforage","INDEXEDDB","WEBSQL","LOCALSTORAGE","storeName","description","react","useSuspense","RouteChangeListener","sitemapBreadcrumbData","useLocation","getBreadCrumbsForUrl","_","endsWith","partialPath","lastIndexOf","isEmpty","updateBreadcrumbData","breadcrumbObj","startsWith","updateNavigationHistory","_settingsData$setting","captureNavigationHistory","breadcrumbList","destinationValue","destinationUrl","trackNavigationHistory","allowAccess","evaluatePermissions","route","r","Tracker","_useMatomo","useMatomo","trackPageView","pushInstruction","includes","NewVisitID","visitID","AuthorizeRoute","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","ready","authenticated","_createClass","_componentDidMount","_this2","this","subscription","subscribe","authenticationChanged","populateAuthenticationState","unsubscribe","_authenticationChanged","setState","_populateAuthenticationState","isAuthenticated","_this$state","link","createElement","returnUrl","protocol","redirectUrl","Login","QueryParameterNames","ReturnUrl","_this$props","RouteComponent","rest","_objectWithoutProperties","_excluded","Route","render","toggleVisibility","Redirect","Component","LoginContainer","getReturnUrl","fromQuery","URLSearchParams","origin","redirectToApiAuthorizationPath","apiAuthorizationPath","navigateToReturnUrl","message","LoginActions","login","LoginCallback","processLoginCallback","_login","result","signIn","status","AuthenticationResultStatus","Success","Fail","_processLoginCallback","completeSignIn","isReady","LogoutActions","logout","LoggedOut","_logout","signOut","Home","lazy","CoreUI","ControlPanelConfigurationRoutes","GoalWorkspaceRoutes","ActivityBuilderRoutes","ActivityAssignments","ToDoListConfiguration","ReportingRoutes","MyToDoList","AccessDeniedPage","UserManagement","OfferRoutes","AllApplicants","PensSettings","MicrosoftTeamsSettings","ZoomSettings","IntegrationSettings","AccreditationRoutes","LateCompletionsListRoutes","AchievementTemplateRoutes","MarketComparisonRoutes","CredlyConfiguration","AssignmentApprovalsRoutes","QuestionBankRoutes","InitiaivesDomainSettings","DashboardManagerRoutes","ActivityQrAttendanceReport","loginAction","AppRoutes","Switch","exact","getAnalyticsConfiguration","isinSite","PendoTracker","_renderPendo","userProfile","visitorId","accountId","analyticsData","analyticUrl","apiKey","pendoSourceScript","pendoLoadScript","pendoInitScript","personguid","tenant","webAnalyticSiteUrl","webAnalyticSiteID","webAnalyticIsEnable","async","innerHTML","body","appendChild","renderPendo","invokeWebAnalytics","u","visitId","createInstance","urlBase","siteId","trackerUrl","srcUrl","TrackingProvider","instance","setInstance","newTracker","MatomoProvider","AppRouterComponent","navigationType","BrowserRouter","HashRouter","AppRouter","userAuthStatus","setUserAuthStatus","emulatorusername","propername","bootstrapApplication","basename","appPrefix","AppLayout","showStickyHeader","CorePillarFrame","CoreMessageListener","SecurityQuestions","Suspense","fallback","defaultUserContext","userReducer","answerSecurityQuestions","getAndRemoveLocalStorageItem","JSON","UserContextProvider","_useReducer","useReducer","_useReducer2","UserContext","Provider","defaultHeaderContext","HeaderContextProvider","IntegrationContextProvider","defaultIntegrationContext","parsedUrl","parseUrl","top","query","im","IntegrationMode","Normal","Teams","getIntegrationMode","setIntegrationContext","IntegrationContext","App","store","SettingsContextProvider","ThemeContainer","LiveRegionContextProvider","MessageContextProvider","BreadcrumbContextProvider","configureServices","UserManager","signinSilentCallback","ReactDOM","None","HideHeader","LinkRedirect","HideMyActiviesHeader","HideDefaultHomeLink","RedirectToDetails","SettingsContext","integrationElement","integrationMode","RCORE_COOKIE","THEME_COOKIE","parseCookie","cookieName","delimiter","cookie","Cookies","keyValueMap","Map","pairs","pair","set","setCookieValue","v","k","join","getThemeCookieKeyValue","removeCookie","remove","createContext","nameProjectionFunc","substr","group","toUpperCase","getLessVariables","themeVarsObj","json","vars","evaluateLessVariables","themeVariablesString","Object","entries","castLessVarsToJson","VariblesData","lighten","log","Log","console","logLevel","populateOIDCLogLevel","AuthorizeService","callbacks","nextSubscriptionId","isUserAuthenticated","loggedinUser","signoutUrl","createArguments","useReplaceToNavigate","success","redirect","_isAuthenticated","_getLoggedInUserId","userid","_getMaskedUserId","maskeduserid","_getUserProfile","_getUser","_callee5","_context5","ensureUserManagerInitialized","userManager","_getAccessToken","_callee6","_context6","_removeAccessToken","_callee7","_context7","removeUser","_signIn","_callee8","_context8","signinRedirect","_completeSignIn","_callee9","that","_context9","signinCallback","updateState","_isEmulationMode","_callee10","_context10","_isGuestUser","_callee11","_context11","guestaccount","_signOut","_callee12","_context12","notifySubscribers","callback","subscriptionId","subscriptionIndex","found","_ensureUserManagerInitialized","_callee15","brokerQueryParams","qs","_context15","BrokerParams","param","keys","authority","client_id","redirect_uri","spaSiteDomain","post_logout_redirect_uri","LogoutCallback","response_type","scope","extraQueryParams","timeInsensitive","silent_redirect_uri","SilentRediectUri","automaticSilentRenew","includeIdTokenInSilentRenew","events","addUserSignedOut","_callee13","_context13","addAccessTokenExpired","_callee14","_context14","MessageContext","BreadcrumbContext","setItem","getItem","localStorage","kvpConstants","kvp","removeLocalStorageItem","removeItem","loglevel","require","setLevel","requestHandler","request","defaults","baseURL","interceptors","exceptionMessage","reject","errorResponseHandler","getCoreConfig","baseConfig","conf","accessToken","getAccessToken","headers","getLMConfig","getUserSummaryConfig","getAssignmentConfig","_ref5","getViltConfig","_ref6","getVivaConfig","_ref7","getPlatformConfig","_ref8","getEMSIConfig","_ref9","getReportConfig","_ref10","ConfigService","home","useSampleData","api","userMocks","process","API_URL","GlobalStyle","createGlobalStyle","fontFamilyBase","fontSizeBase","textColor","bodyBg","lineHeightBase","useMessageContext","Theme","userTheme","setUserTheme","setPreviewLogoUrl","setFavIconUrl","curThemeKey","currUserIdHash","isRTL","_yield$getUserTheme","currentTheme","varsJson","curTheme","personpk","isrtl","getUserTheme","useridhash","clientLogo","clientFavicon","themeData","CssBaseline","StyledThemeProvider","StyledEngineProvider","injectFirst","ThemeProvider","direction","StyleSheetManager","stylisPlugins","rtlPlugin","getActivitiesAndTasksDomainSettings","getActivitiesAndTaskConfigurations","getUserLearningData","payload","isV2Enabled","getCalendarData","_x6","registerForActivity","_x8","_x7","getCertificate","activityId","attemptId","_x11","_x9","_x10","downloadCertificate","_ref11","_ref12","_x14","_x12","_x13","getLateCompletionDataByAttempt","_ref13","_ref14","_x16","_x15","saveLateComments","_ref15","lateAttemptComments","_x17","cancelInterest","_ref16","_callee16","_context16","_x18","themeKey","reqObject","OverrideTheme","ThemeKey","rootReducer","activityBuilder","activityReducer","activityBuilderErrors","errorsReducer","defaultBreadcrumbContext","breadcrumbReducer","addBreadcrumb","_toConsumableArray","removeBreadcrumb","IFrame","iframe","frameSource","setFrameSource","coreframe","useRef","coreUrl","currentUrl","current","getAttribute","visibility","opacity","zIndex","frameBorder","allowFullScreen","UserSecurityQuestions","combineReducers","activityBuilderReducers","createStore","applyMiddleware","thunkMiddleware","saveActivitiesAndTaskConfigurations","defaultMessageContext","text","severity","messageContext","setMessageContext","getTranslationCategoryHash","refreshOutdatedTranslations","cachedHash","keysToUpdate","hashChanged","_i","_keys","i18next","reloadResources","getCoreSettings","allowCache","saveSettingDefinition","_useUserContext","useGoToHome","parseJson","jsonString","_unused","_useContext","_themeData","setCurrentTheme","addRemoveBackdrop","backdropElements","classList","MessageHandler","match","safeOrigin","warn","messageData","_messageData","parameters","setCoreframeTitle","frameTitle","isRcoreRoute","closeRCoreSlideout","elementId","themeVarsObject","previewTheme","clientFavIcon","isDeepLink","rc","prefix","stringifyUrl","replaceState","mustSetSecurityQuestions","nextRoute","onDomainChange","CookieNames","ApiSecurity","isMarketComparisonRoute","internalSkillData","destinationType","initialState","handleActivityPropertyChange","section","sectionsData","getNewSectionData","setSectionData","sectionData","propertyValue","_defineProperty","properties","outerProperty","prop","setData","setSectionsLoading","isLoading","_state$sectionsLoadin","sectionsLoading","isSectionsLoading","setSectionsLoaded","s","UPDATE_ACTIVITY_PROPERTY","UPDATE_ACTIVITY_PROPERTIES","latestState","SET_ACTIVITY_SECTION","newState","SET_LOADING","SET_ACTIVITY_INFO","activityType","SET_PICKER_DATA","pickersData","SET_SECTIONS_LOADING","SET_SECTIONS_LOADED","SET_TEMP_DATA","tempData","RESET_TEMP_DATA","subSectionsProperties","sectionsValidState","isValid","subSectionProperties","newSubSectionProperties","newSubSectionsPropertiesState","newSectionsValidState","getSubSectionValid","getAllSubsectionsValid","newErrors","_state$validations","validations","SET_ACTIVITY_PROPERTY_VALIDITY","SET_ACTIVITY_VALIDATIONS","ADD_ACTIVITY_VALIDATIONS","addCode","code","REMOVE_ACTIVITY_VALIDATIONS","codesToRemove","some","newValidations","REPLACE_ACTIVITY_SECTIONS_VALIDITY","reduce","obj","sectionName","getSettings","Message","AuthorizationPrefix","getIframeContainer","getRcoreContainer","forwardMessage","sourceElementId","opensSlideout","hideCore","fromRcoreRoute","pillarKey","contentWindow","setIframe","iFrameContainer","coreRedirectionQS","visible","showIframe","hideIframe","removeAttribute","rcoreContainer","display","addRemoveListenerForFrames","parentContainer","canAccessIFrame","onclick","onmousedown","frames","contentDocument","getElementsByTagName","addListenerForCrossOriginFrame","frameContainer","myConfObj","iframeMouseOver","_blurHandler","_mouseOverHandler","_mouseOutHandler","html","LayoutGrid","IntegrationLayoutGrid","showLayout","info","Grid","containerExists","breadCrumbList","pageTitle","setPageTitle","tenantName","FETCH_ACTIVITY_SECTION"],"mappings":"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","file":"static/js/main.74ea9249.chunk.js","sourcesContent":["import { useContext } from 'react';\nimport HeaderContext from '../../contexts/HeaderContext';\n\nconst useHeaderContext = () => {\n const context = useContext(HeaderContext);\n if (!context) {\n throw new Error('useHeaderContext must be used within HeaderContextProvider!');\n }\n return context;\n};\n\nexport default useHeaderContext;\n","import React, { useEffect } from 'react';\nimport { NavigationBreadcrumbs } from '@sumtotal/react-foundation';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport useSettingsContext from '../../hooks/useSettingsContext';\nimport useBreadcrumbContext from '../../hooks/useBreadcrumbContext';\nimport { setPageTitleWithBreadcrumbData } from '../../../utils/pageHelper';\nimport { IntegrationElement } from '../../../utils/IntegrationConstants';\nimport useIntegrationContext from '../../hooks/useIntegrationContext';\nimport CheckIntegrationSetting from '../../../utils/integrationHelper';\n\nconst StyledBreadcrumbs = styled(NavigationBreadcrumbs)`\n padding-top: 1rem;\n padding-left: 1rem;\n`;\n\nconst getSettingValueFromContext = (settingContext, settingKey) => {\n if (settingContext && settingContext.settings) {\n const settingObj = settingContext.settings.filter((setting) => setting.key === settingKey)[0];\n return settingObj.value;\n }\n return null;\n};\n\nfunction Breadcrumbs() {\n const { settingsData } = useSettingsContext();\n const { breadcrumbContext } = useBreadcrumbContext();\n const breadcrumbsEnabled = getSettingValueFromContext(\n settingsData,\n 'ELIXHRUI_GENERAL_SHOW_NAVIGATION_BREADCRUMBS'\n );\n const { t } = useTranslation(['TRANSLATIONS_RCORE_COMMON']);\n const { integrationContext } = useIntegrationContext();\n\n useEffect(() => {\n if (breadcrumbContext.breadcrumbData.length > 0)\n setPageTitleWithBreadcrumbData(breadcrumbContext.breadcrumbData);\n }, [breadcrumbContext.breadcrumbData]);\n\n if (\n breadcrumbsEnabled !== null &&\n breadcrumbsEnabled.toLowerCase() === 'true' &&\n breadcrumbContext.isRcoreNode &&\n CheckIntegrationSetting(IntegrationElement.HideBreadCrumb, integrationContext.mode) &&\n breadcrumbContext.breadcrumbData &&\n breadcrumbContext.breadcrumbData.length > 0\n ) {\n return (\n <>\n \n \n );\n }\n return null;\n}\n\nexport default Breadcrumbs;\n","import eachDeep from 'deepdash/eachDeep';\nimport { setIdbItem } from './clientStorage';\n\nconst authorizedRCoreRoutes = new Set();\nconst rcoreBreadcrumbData = [];\nlet rootBreadcrumb = {};\nconst allowedCoreBreadcrumbs = [\n { nodeKey: 'common_jobs' },\n { nodeKey: 'Administrator_MenuLearningActivies' }\n];\n\nconst ProcessTreeNodes = (nodes) => {\n eachDeep(\n nodes,\n (node) => {\n // eslint-disable-next-line no-param-reassign\n node.url = GetProcessedNodeUrl(node);\n if (node.level === 1) {\n if (node.nodeKey === 'admin_header') {\n rootBreadcrumb = {\n url: node.url.toLowerCase(),\n title: node.name,\n nodeKey: node.nodeKey,\n rpKey: node.rpKey\n };\n } else {\n rootBreadcrumb = undefined;\n }\n }\n const isAllowedCoreNode = allowedCoreBreadcrumbs.find((t) => t.nodeKey === node.nodeKey);\n if (node.isRcoreNode || isAllowedCoreNode !== undefined) {\n addToAuthorisedRCoreRoutes(node, rootBreadcrumb);\n }\n },\n { pathFormat: 'array', childrenPath: 'childNodes' }\n );\n setIdbItem('RCoreBreadCrumbData', rcoreBreadcrumbData);\n return authorizedRCoreRoutes;\n};\n\nconst GetProcessedNodeUrl = (node) => {\n let { url } = node;\n if (!node.isRcoreNode) {\n url = GetProcessedCoreUrl(node);\n }\n return url;\n};\n\nconst addToAuthorisedRCoreRoutes = (node, breadcrumb) => {\n const { url } = node;\n const pillarUrl = '/c/pillarredirect';\n if (\n (node.rpKey === 'ELIXHRUI' || node.rpKey === 'GAM' || node.rpKey === 'LM') &&\n url != null &&\n url !== ''\n ) {\n let nodeUrl = url.replace('#', '');\n if (nodeUrl.indexOf('?') > -1) nodeUrl = nodeUrl.substring(0, nodeUrl.indexOf('?'));\n if (!authorizedRCoreRoutes.has(nodeUrl)) {\n authorizedRCoreRoutes.add(nodeUrl.toLowerCase());\n\n const nodeBreadcrumbData = [];\n if (breadcrumb !== undefined) {\n nodeBreadcrumbData.push(breadcrumb);\n }\n nodeBreadcrumbData.push({\n url: nodeUrl.toLowerCase() !== pillarUrl ? nodeUrl.toLowerCase() : url.replace('#', ''),\n title: node.name,\n nodeKey: node.nodeKey,\n rpKey: node.rpKey\n });\n\n rcoreBreadcrumbData.push({\n routeUrl: nodeUrl.toLowerCase(),\n nodeKey: node.nodeKey,\n rpKey: node.rpKey,\n breadcrumbData: nodeBreadcrumbData\n });\n }\n }\n};\n\nconst GetProcessedCoreUrl = (node) => {\n const { rpKey, nodeKey, relyingPartyURL } = node;\n const urlPrefix = '/c';\n let { url } = node;\n // If the url is already processed then just return\n if (url && url.indexOf('/c/') > -1) {\n return url;\n }\n if (url) {\n if (url.charAt(0) === '#') {\n url = url.replace('#', '');\n }\n // encode the url to use it in qs\n const encodedUrl = encodeURIComponent(url);\n const urlSuffix = `nodeKey=${nodeKey}&nodeUrl=${encodedUrl}`;\n if (rpKey !== 'ELIXHRUI') {\n let relyingPartyUrl = relyingPartyURL;\n if (relyingPartyUrl && relyingPartyUrl.charAt(relyingPartyUrl.length - 1) !== '/') {\n relyingPartyUrl += '/';\n }\n const encodeRPUrl = encodeURIComponent(relyingPartyUrl);\n if (rpKey !== 'AdvancedReport') {\n url = `${urlPrefix}/pillarRedirect?relyingParty=${rpKey}&url=${encodeRPUrl}${encodedUrl}&${urlSuffix}`;\n } else {\n url = `${urlPrefix}/pillarRedirect?relyingParty=${rpKey}&url=${encodeRPUrl}&${urlSuffix}`;\n }\n } else if (url.indexOf('http') === 0) {\n url = url.replace('$HOST_NAME', window.location.host);\n } else {\n url = `${urlPrefix}${url}${\n url.indexOf('?') > 0 ? '&' : '?'\n }relyingParty=${rpKey}&${urlSuffix}`;\n }\n }\n return url;\n};\n\nexport { ProcessTreeNodes, GetProcessedNodeUrl };\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n MenuButton,\n Popper,\n Avatar,\n CloseOnEscape,\n CloseOnClickAway,\n ProfilePopoutBody,\n ActionsList,\n MenuList\n} from '@sumtotal/react-foundation';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport {\n postMessage,\n addIframeClickListeners,\n removeIframeClickListeners\n} from '../../../modules/core/services/coreIFrameHelper';\nimport { GetProcessedNodeUrl } from '../../../utils/urlHelper';\nimport Config from '../../../config/Config';\nimport { ApplicationPaths } from '../../../authentication/AuthorizationConstants';\nimport useUserContext from '../../hooks/useUserContext';\nimport authService from '../../../authentication/AuthorizeService';\nimport getLogger from '../../../utils/logger';\nimport useHeaderContext from '../../hooks/useHeaderContext';\nimport useSettingsContext from '../../hooks/useSettingsContext';\n\nconst StyledPopper = styled(Popper)`\n z-index: 10000;\n`;\n\nconst StyledMenuList = styled(MenuList)`\n width: 11.25rem;\n background-color: ${(props) => props.theme.variables.headerBarBackground};\n color: ${(props) => props.theme.variables.headerBarColor};\n padding-top: 0rem;\n li:nth-child(3) {\n margin-top: 0.5rem;\n }\n`;\n\nconst MenuContainer = styled.div`\n display: flex;\n`;\n\nconst ProfileMenuButton = styled(MenuButton)`\n &.Mui-disabled {\n background-color: transparent;\n color: ${(props) => props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n .avatar-border {\n border: 0.1875rem solid #f8b300;\n }\n &:hover {\n background-color: ${(props) =>\n props.ariaExpanded ? props.theme.variables.leftNavHeaderBackground : 'none'};\n }\n`;\n\nconst getSettingValueFromContext = (settingContext, settingKey) => {\n if (settingContext && settingContext.settings) {\n const settingObj = settingContext.settings.filter((setting) => setting.key === settingKey)[0];\n return settingObj.value;\n }\n return null;\n};\n\n/**\n * Profile Menu component for App Header.\n *\n */\nfunction PofileMenu({ userData, profileMenus }) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n const [popperAnchor, setPopperAnchor] = useState(null);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [isEmulation, setIsEmulation] = useState(false);\n const [isGuestUser, setIsGuestUser] = useState(false);\n const [userInfo, setUserInfo] = useState({});\n const [itemList, setItemList] = useState([]);\n const { user } = useUserContext();\n const disableProfileMenu = user.isEmulatedUser ? false : user.mustAnswerSecurityQuestions;\n const { settingsData } = useSettingsContext();\n let metricKey = '';\n const headerData = useHeaderContext();\n const open = Boolean(popperAnchor);\n let index;\n const directReportAriaLabel = t('RCORE_TOPNAV_PROFILE_DIRECT_REPORTS', {\n count: userData.directReporteesCount\n });\n metricKey = getSettingValueFromContext(settingsData, 'ELIXHRUI_METRIC_KEY_METRIC');\n\n const closeMenu = () => {\n setPopperAnchor(null);\n setIsMenuOpen(false);\n removeIframeClickListeners();\n };\n const menuButtonClick = (event) => {\n if (isMenuOpen) {\n closeMenu();\n } else {\n setPopperAnchor(event.currentTarget);\n setIsMenuOpen(true);\n if (headerData.headerContext.coreFrameLoaded) {\n setTimeout(() => {\n addIframeClickListeners(closeMenu);\n }, 100);\n }\n setTimeout(() => {\n const focusElement = document.getElementById('profileButton');\n if (focusElement) focusElement.focus();\n });\n }\n };\n\n const getEmulationFlag = async () => {\n setIsEmulation(await authService.isEmulationMode());\n };\n\n const getGuestUserFlag = async () => {\n setIsGuestUser(await authService.isGuestUser());\n };\n\n useEffect(() => {\n // Data required for actionlist\n const items = [];\n // Data required for ProfilePopoutBody\n const userDetails = {};\n\n if (userData != null) {\n if (userData.personInfo.imagePath === '') {\n userDetails.imagePath = '';\n } else {\n userDetails.imagePath = `${Config.domain}${userData.personInfo.imagePath}`;\n }\n userDetails.fullName = userData.personInfo.fullName;\n userDetails.jobTitle = userData.jobTitle;\n userDetails.showDonut = false;\n if (metricKey !== null && metricKey !== '') {\n userDetails.showDonut = true;\n }\n if (userData.keyMeasure) {\n userDetails.value = Math.round(userData.keyMeasure.value);\n userDetails.keyMeasureKey =\n userData.keyMeasure.options && userData.keyMeasure.options.key\n ? userData.keyMeasure.options.key\n : '';\n userDetails.keyMeasureLabel = userData.keyMeasure.label ? userData.keyMeasure.label : '';\n } else {\n userDetails.value = 0;\n userDetails.keyMeasureLabel = '';\n }\n userDetails.donutVariant = getDonutColor(userDetails.keyMeasureKey, userDetails.value);\n setUserInfo(userDetails);\n }\n\n if (profileMenus != null) {\n profileMenus.forEach((menu) => {\n if (menu.nodeKey === 'Profile') {\n userDetails.showLink = true;\n userDetails.url = GetProcessedNodeUrl(menu);\n setUserInfo(userDetails);\n } else {\n const item = {\n key: menu.nodeKey,\n name: menu.name,\n url: menu.url,\n iconType: 'MaterialIcon',\n rpKey: menu.rpKey\n };\n if (menu.nodeKey === 'orgchart') {\n if (!(userData != null && userData.directReporteesCount > 0)) return;\n item.name += ` ${userData.directReporteesCount}`;\n item.iconName = 'People';\n item.actionType = 'OPEN_MINI_PROFILE_ORGCHART';\n item.ariaLabel = directReportAriaLabel;\n } else if (menu.nodeKey === 'self_myteam') {\n if (!(userData != null && userData.openRequisitionsCount > 0)) return;\n item.name += ` ${userData.openRequisitionsCount}`;\n item.iconName = 'AssignmentInd';\n item.actionType = 'NAVIGATE';\n item.url = GetProcessedNodeUrl(menu);\n item.url += '?defaultMetricKey=openrequisitions';\n } else if (menu.nodeKey === 'self_personaldetails') {\n item.iconName = 'Settings';\n item.actionType = 'OPEN_PROFILE_DETAILS';\n } else if (menu.nodeKey === 'BADGES_LEVELS') {\n item.iconName = 'EmojiEvents';\n item.actionType = 'OPEN_BADGES_AND_LEVELS';\n } else if (menu.nodeKey === 'menu_signout') {\n if (menu.isEmulationEnabled) {\n return;\n }\n item.iconName = 'ExitToApp';\n item.actionType = 'NAVIGATE';\n item.url = ApplicationPaths.Logout;\n } else if (menu.nodeKey === 'self_signin') {\n item.iconName = 'ExitToApp';\n item.actionType = 'REDIRECT';\n item.url = menu.url.replace('$HOST_NAME', window.location.host);\n }\n items.push(item);\n }\n });\n }\n setItemList(items);\n }, [profileMenus, userData, directReportAriaLabel, metricKey]);\n\n useEffect(() => {\n getEmulationFlag();\n getGuestUserFlag();\n }, []);\n\n function getDonutColor(key, value) {\n if (key === 'performanceGoalMetrics') return 'Info';\n if (key !== 'positionFit') {\n if (value > 0 && value <= 25) return 'Danger';\n if (value > 25 && value <= 50) return 'Warning';\n if (value > 50 && value <= 75) return 'Info';\n if (value > 75) return 'Success';\n } else {\n if (value > 0 && value <= 50) return 'Danger';\n if (value > 50 && value <= 70) return 'Warning';\n if (value > 70 && value <= 89) return 'Info';\n if (value > 89) return 'Success';\n }\n }\n const handleAvatarClick = () => {\n const data = {\n type: 'mini',\n userId: window.staticData.userID\n };\n postMessage('SHOW_EMPLOYEE_PROFILE', data, null, 'profileMenu-button-id');\n closeMenu();\n };\n const handleItemClick = (key, action, url, rpKey) => {\n if (action !== 'NAVIGATE' && action !== 'REDIRECT') {\n const eventData = { nodeKey: key, action, url };\n postMessage(action, eventData, null, 'profileMenu-button-id');\n } else if (action === 'REDIRECT') {\n if (key === 'self_signin') {\n authService\n .removeAccessToken()\n .then(() => {\n window.location.assign(url);\n return null;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n }\n }\n // Signout & Open Requisitions will be hanlded with Route component so skip any actions on it\n else if (key !== 'menu_signout' && key !== 'self_myteam') {\n const eventData = { nodeKey: key, rpKey, url };\n postMessage('RCORE_NAVIGATION', eventData);\n }\n closeMenu();\n };\n\n const handleUserNameClick = () => {\n closeMenu();\n };\n\n const handleMenuListKeyDown = (event) => {\n const menuItems = document.querySelectorAll('li');\n if (event.key === 'Tab') {\n event.preventDefault();\n closeMenu();\n const focusElement = document.getElementById('profileMenu-button-id');\n if (focusElement) focusElement.focus();\n } else {\n if (index === undefined) {\n index = 0;\n }\n switch (event.keyCode) {\n case 40:\n if (index < menuItems.length - 1) {\n index++;\n } else if (index === menuItems.length - 1) {\n index = 0;\n }\n break;\n case 38:\n if (index > 0) {\n index--;\n } else if (index === 0) {\n index = menuItems.length - 1;\n }\n break;\n\n default:\n }\n if (menuItems[index].firstChild) {\n menuItems[index].firstChild.focus();\n }\n }\n };\n\n return (\n \n \n \n menuButtonClick(e)}\n disabled={disableProfileMenu}\n id=\"profileMenu-button-id\"\n ariaLabel={t('RCORE_TOPNAV_MY_PROFILE')}\n ariaExpanded={isMenuOpen}\n ariaHasPopUp\n disableFocusRipple\n >\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n// PropType check\nPofileMenu.propTypes = {\n /**\n * user data\n */\n userData: PropTypes.oneOfType([PropTypes.object]),\n /**\n * Profile Menus\n */\n profileMenus: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nPofileMenu.defaultProps = {\n userData: undefined,\n profileMenus: undefined\n};\n\nexport default PofileMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Icon, TransparentButton, RouteLink } from '@sumtotal/react-foundation';\nimport { useTranslation } from 'react-i18next';\n\nconst ActionButton = styled(TransparentButton)`\n color: ${(props) => props.theme.variables.leftNavParentColor};\n margin-right: 0.75rem;\n margin-left: 0.75rem;\n padding: 0.125rem 0.5rem;\n min-height: 1.25rem;\n min-width: 4.375rem;\n font-size: 0.625rem;\n font-weight: normal;\n text-transform: none;\n border-radius: 0.6875rem;\n border: 0.0625rem solid;\n &:hover,\n &:focus {\n border: 0.0625rem solid;\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n }\n &:active {\n color: ${(p) => p.theme.variables.topbarNavActiveStateTextColor};\n border: 0.0625rem solid;\n background-color: ${(p) => p.theme.variables.topbarNavActiveStateBackground};\n }\n\n .MuiButton-iconSizeSmall {\n margin-right: 0.25rem;\n margin-left: 0;\n > *:first-child {\n font-size: 0.625rem;\n }\n }\n`;\n\nconst DomainText = styled.span`\n font-weight: normal;\n font-size: 0.75rem;\n color: ${(props) => props.theme.variables.leftNavParentColor};\n padding-left: 0.25rem;\n max-width: 17.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst DomainLabel = styled(DomainText)`\n font-weight: 600;\n`;\n\n/**\n * Component for Domain Switcher.\n * It is used in the MegaMenuHeader\n */\nconst DomainSwitcher = ({ domainName, domainSwitchUrl, callbackEvent }) => {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n\n const Link = React.forwardRef((props, ref) => (\n \n ));\n Link.displayName = 'domainChangeButton';\n\n return (\n <>\n {t('RCORE_TOPNAV_MENU_LABEL_DOMAIN')}:\n {domainName}\n }\n >\n {t('RCORE_TOPNAV_MENU_LABEL_CHANGE')}\n \n \n );\n};\n\nDomainSwitcher.propTypes = {\n /**\n * Domain Name\n */\n domainName: PropTypes.string,\n /**\n * Domain Switch Url\n */\n domainSwitchUrl: PropTypes.string,\n /**\n * Parent callback event\n */\n callbackEvent: PropTypes.func\n};\n\nDomainSwitcher.defaultProps = {\n domainName: '',\n domainSwitchUrl: '',\n callbackEvent: () => {}\n};\n\nexport default DomainSwitcher;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconButton, Icon } from '@sumtotal/react-foundation';\nimport styled from 'styled-components';\nimport { postMessage } from '../../../modules/core/services/coreIFrameHelper';\nimport useUserContext from '../../hooks/useUserContext';\n\nconst HelpIconButton = styled(IconButton)`\n padding: 0.425rem 0.3rem;\n color: ${(props) => props.theme.variables.headerBarColor};\n &.Mui-disabled {\n color: ${(props) => props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n`;\n\nfunction Help({ helpMenu }) {\n const { user } = useUserContext();\n const disableHelpIcon = !user.isEmulatedUser ? user.mustAnswerSecurityQuestions : false;\n function onHelpClick() {\n postMessage('OPEN_HELP', null, false, null, false, true);\n }\n return (\n onHelpClick()}\n size=\"small\"\n color=\"inherit\"\n label={helpMenu.name}\n disableRipple={false}\n disableFocusRipple={false}\n disabled={disableHelpIcon}\n >\n \n \n );\n}\n\n// PropType check\nHelp.propTypes = {\n /**\n * Help SitemapNode\n */\n helpMenu: PropTypes.oneOfType([PropTypes.object])\n};\n\nHelp.defaultProps = {\n helpMenu: {}\n};\n\nexport default Help;\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\nimport authService from '../../../authentication/AuthorizeService';\nimport getLogger from '../../../utils/logger';\n\nexport const getSearchTypes = async (userId) => {\n let targetUserId = userId;\n if (!targetUserId) {\n targetUserId = await authService.getMaskedUserId();\n }\n const logger = getLogger();\n // Get auth header config\n const config = await getConfig();\n config.cache = true;\n const requestUrl = `api/search/getenabledsearchtypes`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch((err) => {\n logger.error(err.response);\n return null;\n });\n};\n\nexport const getSearchSuggestions = async (searchTerm, searchContext) => {\n if (\n searchTerm &&\n searchTerm.length >= 2 &&\n searchContext !== 'skillsoftcontent' &&\n searchContext !== 'kpointcontent'\n ) {\n const logger = getLogger();\n // Get auth header config\n const config = await getConfig();\n const requestUrl = `api/search/suggestions?searchTerm=${encodeURIComponent(\n searchTerm\n )}&contexts=${searchContext}`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch((err) => {\n logger.error(err.response);\n return null;\n });\n }\n\n return null;\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ComboBox,\n MenuItem,\n AutoSuggest,\n Paper,\n Hightlighter,\n TextField,\n IconButton,\n Icon\n} from '@sumtotal/react-foundation';\nimport styled, { useTheme } from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport useSettingsContext from '../../hooks/useSettingsContext';\nimport { getSearchSuggestions } from '../services/searchService';\nimport useHeaderContext from '../../hooks/useHeaderContext';\nimport { postMessage } from '../../../modules/core/services/coreIFrameHelper';\n\nconst Container = styled.div`\n display: grid;\n display: -ms-grid;\n grid-template-columns: auto 1fr;\n -ms-grid-columns: auto 1fr;\n padding-right: 0.25rem;\n .MuiInputBase-root.Mui-disabled {\n opacity: 0.5;\n }\n`;\nconst SrOnly = styled.div`\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n`;\n\nconst SearchComboBox = styled(ComboBox)`\n -ms-grid-column: 1;\n background-color: transparent;\n border: none;\n .MuiInputBase-root {\n margin-top: 0px;\n }\n\n .MuiInputBase-root:hover {\n .MuiSelect-icon {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor};\n }\n }\n\n .Mui-focused {\n .MuiSelect-icon {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor};\n }\n\n .MuiSelect-iconOpen {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor} !important;\n }\n }\n\n .MuiSelect-select {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n font-size: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 0.9rem;\n }\n .MuiSelect-icon {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n right: 0.25rem;\n top: 0.5625rem;\n }\n .MuiSelect-select:focus {\n background-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarBackground\n : props.theme.variables.leftNavHeaderBackground};\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor};\n }\n .MuiSelect-select:hover {\n background-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarBackground\n : props.theme.variables.leftNavHeaderBackground};\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor};\n }\n .MuiSelect-select[aria-expanded='true'] {\n background-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarBackground\n : props.theme.variables.leftNavHeaderBackground};\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.headerBarColor\n : props.theme.variables.leftNavParentColor};\n }\n .MuiOutlinedInput-notchedOutline {\n border-radius: 0.1875rem 0 0 0.1875rem;\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n border-right: none;\n }\n .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) => props.theme.variables.leftNavParentColor};\n border-radius: 0.1875rem 0 0 0.1875rem;\n border-right: none;\n }\n .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) => props.theme.variables.leftNavParentColor};\n border-radius: 0.1875rem 0 0 0.1875rem;\n border-width: 0.0625rem;\n border-right: none;\n }\n .MuiOutlinedInput-root.Mui-disabled .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) => props.theme.variables.headerBarColor};\n color: ${(props) => props.theme.variables.headerBarColor};\n }\n .MuiInputBase-root.Mui-disabled {\n color: ${(props) => props.theme.variables.headerBarColor};\n }\n`;\n\nconst SearchMenuItem = styled(MenuItem)`\n border-radius: 0.25rem;\n padding: 0.375rem 1rem;\n font-weight: 500;\n background-color: ${(props) => props.theme.variables.leftNavHeaderBackground};\n color: ${(props) => props.theme.variables.leftNavParentColor};\n &:hover {\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n }\n &:active {\n background-color: ${(p) => p.theme.variables.topbarNavActiveStateBackground};\n color: ${(p) => p.theme.variables.topbarNavActiveStateTextColor};\n }\n &:focus {\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n }\n`;\n\nconst AutoSuggestContainer = styled.div`\n display: flex;\n -ms-grid-column: 2;\n & .MuiAutocomplete-root {\n display: contents;\n }\n .MuiAutocomplete-hasClearIcon {\n .MuiAutocomplete-inputRoot {\n padding-right: 0;\n }\n }\n`;\n\nconst ButtonContainer = styled.div`\n position: relative;\n right: 4rem;\n display: flex;\n width: 0rem;\n`;\n\nconst CustomTextField = styled(TextField)`\n border: none;\n input[type='text']::-ms-clear {\n display: none;\n }\n input[type='text']::placeholder {\n opacity: 1;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n }\n .MuiInputBase-root {\n margin-top: 0;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n }\n .MuiInputBase-fullWidth {\n min-width: 12.5rem;\n }\n .MuiInputBase-input {\n font-size: 0.75rem;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n height: 1.25rem;\n }\n .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n border-radius: 0 0.1875rem 0.1875rem 0;\n }\n .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n border-radius: 0 0.1875rem 0.1875rem 0;\n }\n .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n border-radius: 0 0.1875rem 0.1875rem 0;\n border-width: 0.0625rem;\n }\n .MuiInputLabel-outlined {\n font-size: 0.75rem;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n margin-top: -0.875rem;\n }\n .MuiAutocomplete-inputRoot[class*='MuiOutlinedInput-root'] {\n .MuiAutocomplete-input {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-right: 4.1rem;\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n }\n }\n .MuiOutlinedInput-root.Mui-disabled .MuiOutlinedInput-notchedOutline {\n border-color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n }\n .MuiFormLabel-root.Mui-disabled {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n`;\n\nconst SearchIconContainer = styled.div`\n border-left: 0.0625rem solid\n ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n padding: 0.1875rem;\n margin-left: 0.1875rem;\n`;\n\nconst SearchIcon = styled(IconButton)`\n position: relative;\n padding: 0.425rem 0.3rem;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n &.Mui-disabled {\n color: ${(props) => props.theme.variables.headerBarColor};\n }\n`;\n\nconst ClearIcon = styled(IconButton)`\n position: relative;\n padding: 0.425rem 0.3rem;\n visibility: ${(props) => (props.isVisible ? 'visible' : 'hidden')};\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n`;\n\nconst StyledPaper = styled(Paper)`\n min-width: 21.875rem;\n font-size: 0.75rem;\n background-color: ${(props) => props.theme.variables.leftNavHeaderBackground};\n color: ${(props) => props.theme.variables.leftNavParentColor};\n margin: 0;\n & .MuiAutocomplete-listbox {\n padding-bottom: 0rem;\n }\n & .MuiAutocomplete-option {\n padding: 0rem;\n &:hover {\n font-weight: 700;\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n }\n &:active {\n background-color: ${(p) => p.theme.variables.topbarNavActiveStateBackground};\n color: ${(p) => p.theme.variables.topbarNavActiveStateTextColor};\n font-weight: 600;\n }\n &:focus {\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n font-weight: 700;\n }\n &[data-focus='true'] {\n background-color: ${(p) => p.theme.variables.topbarNavHoverStateBackground};\n color: ${(p) => p.theme.variables.topbarNavHoverStateTextColor};\n }\n }\n`;\n\nconst FixedFooter = styled.span`\n font-weight: bold;\n border-top: ${(props) => (props.showBorder ? '0.0625rem solid #cecece' : 'none')};\n width: 100%;\n display: block;\n padding: 0.5rem 1rem 0.5rem 1rem;\n`;\n\nconst StyledHighlighter = styled(Hightlighter)`\n width: 100%;\n padding: 0.5rem 1rem 0.5rem 1rem;\n max-height: 2.9rem;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n .markstyles {\n background-color: transparent;\n color: ${(props) => props.theme.variables.leftNavParentColor};\n text-decoration: none;\n font-style: normal;\n font-weight: bold;\n }\n`;\n\nconst getSettingValueFromContext = (settingContext, settingKey) => {\n if (settingContext && settingContext.settings) {\n const settingObj = settingContext.settings.filter((setting) => setting.key === settingKey)[0];\n return settingObj.value;\n }\n return null;\n};\n\nfunction EnterpriseSearch({ searchUrl, searchTypes, disableSearch, isFloatingSearch }) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV_SEARCH']);\n const [suggestionsCount, setSuggestionsCount] = useState();\n let autoSuggestEnabled = 'true';\n const { settingsData } = useSettingsContext();\n const theme = useTheme();\n const history = useHistory();\n autoSuggestEnabled = getSettingValueFromContext(\n settingsData,\n 'ENTERPRISE_SEARCH_ALLOW_AUTOCOMPLETE'\n );\n const [resultsView, setResultsView] = useState('List');\n\n const headerData = useHeaderContext();\n const { headerContext, setHeaderContext } = headerData;\n let defaultContext = getSettingValueFromContext(\n settingsData,\n 'ENTERPRISE_SEARCH_DEFAULT_CONTEXT'\n );\n\n const defaultContextNode = searchTypes.filter((node) => node.searchContextKey === defaultContext);\n if (defaultContextNode.length === 0) {\n defaultContext = searchTypes.length > 0 ? searchTypes[0].searchContextKey : '';\n }\n\n let newSearchContext = defaultContext;\n let newSearchTerm = '';\n if (\n getWindowLocation() === '/rcore/c/search' &&\n window.location.search !== '' &&\n window.location.search !== undefined\n ) {\n const qsList = window.location.search.replace('?', '').split('&');\n if (qsList.length > 0) {\n qsList.forEach((key) => {\n const keyValuePairs = key.split('=');\n if (keyValuePairs.length === 2) {\n if (\n keyValuePairs[0] === 'context' &&\n newSearchContext.toLowerCase() !== keyValuePairs[1].toLowerCase()\n ) {\n [, newSearchContext] = keyValuePairs;\n } else if (keyValuePairs[0] === 'searchTerm' && newSearchTerm !== keyValuePairs[1]) {\n newSearchTerm = decodeURIComponent(keyValuePairs[1]);\n }\n }\n });\n }\n }\n\n // State variables required for this component.\n const [searchContext, setSearchContext] = useState(newSearchContext.toLowerCase());\n const [suggestions, setSuggestions] = useState([]);\n const [searchTerm, setSearchTerm] = useState({\n term: headerContext.searchText !== undefined ? headerContext.searchText : newSearchTerm\n });\n\n const handleContextChange = (event) => {\n setSearchContext(event.target.value);\n setHeaderContext((state) => ({\n ...state,\n searchContext: event.target.value\n }));\n if (\n !(\n searchTerm.term &&\n searchTerm.term.length > 0 &&\n (getWindowLocation() === '/rcore/c/search' || getWindowLocation() === '/rcore/c/FindTalent')\n )\n ) {\n return;\n }\n setResultsView('List');\n navigateToSearch(\n event.target.value,\n encodeURIComponent(searchTerm.term),\n encodeURIComponent(searchTerm.term),\n 0\n );\n };\n\n const getSuggestions = async (searchText, context) => {\n let optionList = [];\n setSuggestionsCount('');\n if (\n autoSuggestEnabled.toLowerCase() === 'true' &&\n context &&\n searchText &&\n searchText !== '' &&\n searchText.length >= 2\n ) {\n const response = await getSearchSuggestions(searchText, context);\n if (\n response &&\n response.suggestionResultSection &&\n response.suggestionResultSection.length > 0 &&\n response.suggestionResultSection[0].suggestions &&\n response.suggestionResultSection[0].suggestions.length > 0\n )\n optionList = response.suggestionResultSection[0].suggestions;\n // Fixed footer option\n optionList.push({\n name: t('RCORE_TOPNAV_SEARCH_AUTOSUGGEST_SEEALL', {\n searchtext: searchText,\n interpolation: { escapeValue: false }\n }),\n term: searchText,\n weight: 0,\n isFixed: true\n });\n }\n setSuggestions(optionList);\n setSuggestionsCount(\n t('RCORE_ENTERPRISE_SEARCH_SUGGESTIONS_COUNT', {\n SearchCount: optionList.length > 1 ? optionList.length - 1 : 0\n })\n );\n };\n\n const onSuggestionsSearch = (value) => {\n setSearchTerm({\n term: value\n });\n setHeaderContext((state) => ({\n ...state,\n searchText: value,\n searchContext\n }));\n getSuggestions(value, searchContext);\n };\n\n const navigateToSearch = (context, searchText, originalSearchText, isFromSuggestion) => {\n postMessage('CLOSE_CURRENT_SLIDEOUT');\n const setContext = context === '' ? searchContext : context;\n if (setContext.toLowerCase() === 'talent') {\n const eventData = { searchTerm: searchText };\n postMessage('RCORE_NAVIGATE_TO_TALENT_SEARCH', eventData);\n } else\n history.push(\n `${searchUrl}&searchTerm=${searchText}&context=${setContext}&originalSearchText=${originalSearchText}&isFromSuggestion=${isFromSuggestion}`\n );\n };\n\n const handleSearchClick = () => {\n if (!(searchTerm.term && searchTerm.term.length > 0)) {\n return;\n }\n setHeaderContext((state) => ({\n ...state,\n searchText: searchTerm.term,\n searchContext\n }));\n if (resultsView === 'Calendar') {\n postMessage('RCORE_ACTIVITY_CALENDER_SEARCH_EVENT', searchTerm.term);\n } else {\n navigateToSearch(\n '',\n encodeURIComponent(searchTerm.term),\n encodeURIComponent(searchTerm.term),\n 0\n );\n }\n };\n\n const handleSuggestion = (option, value) => {\n setHeaderContext((state) => ({\n ...state,\n searchText: value ? value.term : '',\n searchContext\n }));\n if (value && resultsView === 'List') {\n navigateToSearch('', encodeURIComponent(value.term), encodeURIComponent(searchTerm.term), 1);\n } else if (value && resultsView === 'Calendar') {\n postMessage('RCORE_ACTIVITY_CALENDER_SEARCH_EVENT', value.term);\n }\n };\n\n const handleClearClick = () => {\n setSearchTerm({\n term: ''\n });\n setTimeout(() => {\n document.getElementById('enterpriseSearch').focus();\n }, 100);\n };\n\n function getWindowLocation() {\n return window.location.pathname;\n }\n\n useEffect(() => {\n if (\n headerContext &&\n headerContext.view !== undefined &&\n headerContext.view !== null &&\n headerContext.view !== resultsView &&\n headerContext.searchContext === 'activity'\n ) {\n setResultsView(headerContext.view);\n }\n if (\n getWindowLocation() !== '/rcore/c/search' &&\n getWindowLocation() !== '/rcore/c/FindTalent' &&\n headerContext.resetSearchValues\n ) {\n setSearchContext(defaultContext);\n setSearchTerm({\n term: ''\n });\n setHeaderContext((state) => ({\n ...state,\n searchText: '',\n searchContext: defaultContext,\n view: 'List'\n }));\n setResultsView('List');\n }\n if (headerContext.resetSearchValues) {\n setHeaderContext((state) => ({\n ...state,\n resetSearchValues: false\n }));\n }\n if (\n headerContext &&\n headerContext.searchText !== null &&\n headerContext.searchContext !== undefined\n ) {\n setSearchContext(headerContext.searchContext);\n setSearchTerm({\n term: headerContext.searchText\n });\n }\n }, [\n headerContext.resetSearchValues,\n defaultContext,\n setHeaderContext,\n headerContext.searchText,\n headerContext,\n headerContext.view,\n resultsView\n ]);\n\n return (\n \n type.searchContextKey === searchContext)[0]?.name || ''\n }`\n }}\n menuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right'\n },\n PaperProps: {\n style: { backgroundColor: theme.variables.leftNavHeaderBackground, overflow: 'hidden' }\n }\n }}\n >\n {searchTypes.map((type) => (\n \n {type.name}\n \n ))}\n \n \n (option.term ? option.term : '')}\n onChange={handleSuggestion}\n showIcon={false}\n value={searchTerm}\n freeSolo\n id=\"enterpriseSearch\"\n renderInput={(params) => (\n {\n if (e.keyCode === 13) {\n handleSearchClick();\n }\n }}\n inputProps={{\n 'aria-label': t('RCORE_TOPNAV_SEARCH_INPUT_LABEL'),\n ...params.inputProps\n }}\n />\n )}\n renderOption={(props, option, { inputValue }) => {\n return option.isFixed !== undefined && option.isFixed ? (\n
  • \n 1}>{option.name}\n
  • \n ) : (\n
  • \n \n
  • \n );\n }}\n />\n \n 0}\n onClick={handleClearClick}\n label={t('RCORE_TOPNAV_SEARCH_CLEAR_TEXT')}\n color=\"inherit\"\n >\n \n \n\n \n \n \n \n \n \n \n {suggestionsCount}\n \n
    \n
    \n );\n}\n\n// PropType check\nEnterpriseSearch.propTypes = {\n /**\n * Enabled search types\n */\n searchTypes: PropTypes.arrayOf(PropTypes.shape({ searchContextKey: PropTypes.string })),\n /**\n * Search Url\n */\n searchUrl: PropTypes.string,\n /**\n * disable Search\n */\n disableSearch: PropTypes.bool,\n /**\n * flag to check if the component is rendered in lower resolution\n */\n isFloatingSearch: PropTypes.bool\n};\n\nEnterpriseSearch.defaultProps = {\n searchTypes: [],\n searchUrl: '',\n disableSearch: false,\n isFloatingSearch: false\n};\n\nexport default EnterpriseSearch;\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\nimport getLogger from '../../../utils/logger';\n\nconst getCartItemsCount = async () => {\n const logger = getLogger();\n // Get auth header config\n const config = await getConfig();\n const requestUrl = `api/rcore/shoppingCart/getCartItems`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data.totalItems;\n })\n .catch((err) => {\n logger.error(err.response);\n return null;\n });\n};\n\nexport default getCartItemsCount;\n","import React, { useEffect, useState } from 'react';\nimport { Badge, IconButton, Icon } from '@sumtotal/react-foundation';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router';\nimport { useTranslation } from 'react-i18next';\nimport getCartItemsCount from '../services/shoppingCartService';\nimport getLogger from '../../../utils/logger';\nimport useUserContext from '../../hooks/useUserContext';\nimport useHeaderContext from '../../hooks/useHeaderContext';\n\nconst ShoppingCartButton = styled(IconButton)`\n color: ${(props) => props.theme.variables.headerBarColor};\n &.Mui-disabled {\n color: ${(props) => props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n`;\n\nconst BadgeIcon = styled(Badge)`\n display: flex;\n justify-content: center;\n & .MuiBadge-badge {\n height: 1rem;\n width: 1.2rem;\n min-width: 1.2rem;\n font-size: 0.7rem;\n font-weight: bold;\n }\n & .MuiBadge-colorPrimary {\n color: ${(props) => props.theme.variables.headerBarColor};\n border-color: ${(props) => props.theme.variables.headerBarColor};\n }\n & .MuiBadge-anchorOriginTopRightCircle {\n right: 1%;\n top: 1%;\n }\n`;\n\nfunction ShoppingCart({ shoppingCartMenu }) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n const history = useHistory();\n const { user } = useUserContext();\n const disableShoppingCart = user.isEmulatedUser ? false : user.mustAnswerSecurityQuestions;\n const headerData = useHeaderContext();\n const { headerContext } = headerData;\n const [shoppingCartCount, setShoppingCartCount] = useState();\n useEffect(() => {\n if (shoppingCartMenu) {\n getCartItemsCount()\n .then((Count) => {\n setShoppingCartCount(Count);\n return Count;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n }\n }, [shoppingCartMenu]);\n\n useEffect(() => {\n if (headerContext.cartItemsCount >= 0) {\n setShoppingCartCount(headerContext.cartItemsCount);\n }\n }, [headerContext.cartItemsCount]);\n\n const navigateToCart = () => {\n history.push(shoppingCartMenu.url);\n };\n\n if (shoppingCartMenu && shoppingCartCount > 0) {\n return (\n 1\n ? t('RCORE_TOPNAV_SHOPPING_CART_ITEMS', { itemCount: shoppingCartCount })\n : t('RCORE_TOPNAV_SHOPPING_CART_ITEM', { itemCount: shoppingCartCount })\n }\n disabled={disableShoppingCart}\n onClick={navigateToCart}\n >\n \n \n \n \n );\n }\n return null;\n}\n\n// PropType check\nShoppingCart.propTypes = {\n /**\n * ShoppingCart Menu\n */\n shoppingCartMenu: PropTypes.oneOfType([PropTypes.object])\n};\n\nShoppingCart.defaultProps = {\n shoppingCartMenu: undefined\n};\n\nexport default ShoppingCart;\n","import React, { useContext, useState, useEffect } from 'react';\nimport {\n AppHeader,\n IconButton,\n Icon,\n LiveRegion,\n useLiveRegionContext\n} from '@sumtotal/react-foundation';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport Config from '../../../config/Config';\nimport ProfileMenu from './ProfileMenu';\nimport CurrentThemeContext from '../../../contexts/ThemeContext';\nimport DomainSwitcher from './DomainSwitcher';\nimport Help from './Help';\nimport EnterpriseSearch from './EnterpriseSearch';\nimport ShoppingCart from './ShoppingCart';\nimport useUserContext from '../../hooks/useUserContext';\nimport authService from '../../../authentication/AuthorizeService';\nimport getLogger from '../../../utils/logger';\nimport {\n addIframeClickListeners,\n removeIframeClickListeners\n} from '../../../modules/core/services/coreIFrameHelper';\nimport useHeaderContext from '../../hooks/useHeaderContext';\n\nconst SearchIcon = styled(IconButton)`\n color: ${(props) => props.theme.variables.headerBarColor};\n &.Mui-disabled {\n color: ${(props) => props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n`;\nconst CloseIcon = styled(IconButton)`\n padding: 0rem 0rem 0rem 0.5rem;\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n &.Mui-disabled {\n color: ${(props) =>\n props.isFloatingSearch\n ? props.theme.variables.leftNavParentColor\n : props.theme.variables.headerBarColor};\n opacity: 0.5;\n }\n`;\n\nconst SearchContainer = styled.div`\n display: ${(props) => (props.showGrid ? 'grid' : 'block')};\n display: ${(props) => (props.showGrid ? '-ms-grid' : 'block')};\n grid-template-columns: ${(props) => (props.showGrid ? '1fr auto' : '')};\n -ms-grid-columns: ${(props) => (props.showGrid ? '1fr auto' : '')};\n .gridColumn1 {\n -ms-grid-column: 1;\n }\n .gridColumn2 {\n -ms-grid-column: 2;\n }\n`;\n\nconst AppMenuHeader = ({\n menusData,\n userData,\n profileMenus,\n helpMenu,\n logoClickUrl,\n domainSwitchNode,\n searchTypes,\n searchUrl,\n shoppingCartMenu,\n onNavigationCallback\n}) => {\n const { t } = useTranslation([\n 'TRANSLATIONS_RCORE_TOPNAV',\n 'TRANSLATIONS_RCORE_COMMON',\n 'TRANSLATIONS_RCORE_TOPNAV_SEARCH'\n ]);\n const translationsData = {};\n // Pass all the translation keys required for AppHeader component\n const translationKeys = [\n 'RCORE_TOPNAV_MENU_QUICKFIND_SEARCH',\n 'RCORE_TOPNAV_MENU_LABEL_CLOSE_MENU',\n 'RCORE_TOPNAV_MENU_LABEL_SEARCH',\n 'TRANSLATIONS_RCORE_TOPNAV_SEARCH:RCORE_TOPNAV_SEARCH_CLEAR_TEXT',\n 'RCORE_TOPNAV_MY_TEAM_MENU_CLOSE',\n 'RCORE_TOPNAV_SELF_MENU_CLOSE',\n 'RCORE_TOPNAV_ADMINISTRATION_MENU_CLOSE',\n 'RCORE_TOPNAV_ADMINISTRATION_MENU_SECTION',\n 'RCORE_TOPNAV_MY_TEAM_MENU_SECTION',\n 'RCORE_TOPNAV_SELF_MENU_SECTION',\n 'RCORE_TOPNAV_MENU_AREAS',\n 'RCORE_TOPNAV_MENU_QUICKFIND_SEARCH_NODATA'\n ];\n translationKeys.forEach((key) => {\n translationsData[key] = t(key);\n });\n const screenResolution = window.matchMedia('(max-width: 1279px)');\n const [smallerResolution, setSmallerResolution] = useState(screenResolution.matches);\n const [searchIconSelected, setSearchIconSelected] = useState(false);\n function screenResize(e) {\n setSmallerResolution(e.matches);\n if (searchIconSelected) setSearchIconSelected(false);\n }\n const { setLiveRegionMessage } = useLiveRegionContext();\n const themeContext = useContext(CurrentThemeContext);\n const { user } = useUserContext();\n const disableAppHeader = user.isEmulatedUser ? false : user.mustAnswerSecurityQuestions;\n const { logoData, favIconData } = themeContext;\n const [previewLogoUrl] = logoData;\n const [favIconUrl] = favIconData;\n const headerData = useHeaderContext();\n\n let LogoSrc = `${Config.domain}//${Config.logo}`;\n if (previewLogoUrl && previewLogoUrl !== '') {\n LogoSrc = previewLogoUrl;\n }\n\n let favIconSrc = `${Config.domain}${Config.favicon}`;\n if (favIconUrl && favIconUrl !== '') {\n favIconSrc = favIconUrl;\n }\n const faviconElement = document.getElementById('favicon');\n if (faviconElement) {\n faviconElement.href = favIconSrc;\n }\n\n const userDetails = { ...userData };\n if (userDetails.personInfo.imagePath !== user.image) {\n userDetails.personInfo.imagePath = user.image;\n } else {\n if (userDetails.personInfo.fullName !== user.name) {\n userDetails.personInfo.fullName = user.name;\n }\n if (userDetails.jobTitle !== user.jobTitle) {\n userDetails.jobTitle = user.jobTitle;\n }\n }\n const handleSearchClick = () => {\n setLiveRegionMessage('');\n setSearchIconSelected(true);\n setTimeout(() => {\n const focusElement = document.getElementById('enterpriseSearchComboBox');\n if (focusElement) {\n focusElement.focus();\n }\n setLiveRegionMessage(t('RCORE_TOPNAV_NAVIGATION_MENUS'));\n }, 1000);\n };\n const handleSearchClose = () => {\n setSearchIconSelected(false);\n\n setTimeout(() => {\n const focusElement = document.getElementsByClassName('headerSearchIcon');\n if (focusElement) {\n focusElement[0].focus();\n }\n });\n };\n\n useEffect(() => {\n screenResolution.addListener(screenResize);\n return () => screenResolution.removeListener(screenResize);\n });\n\n const onMenuClick = (selectedNode) => {\n removeIframeClickListeners();\n onNavigationCallback(selectedNode);\n if (selectedNode && selectedNode.nodeKey === 'self_createaccount') {\n authService\n .removeAccessToken()\n .then(() => {\n window.location.assign(selectedNode.url);\n return null;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n }\n };\n\n const onMenuOpen = (callbackForClose) => {\n if (headerData.headerContext.coreFrameLoaded) {\n setTimeout(() => {\n addIframeClickListeners(callbackForClose);\n }, 100);\n }\n };\n const onSkipLinkClick = () => {\n const contentElement = document.getElementsByClassName('content')[0];\n contentElement.setAttribute('tabindex', '-1');\n contentElement.focus();\n };\n\n const readResults = (count, searchText) => {\n setLiveRegionMessage('');\n setTimeout(() => {\n setLiveRegionMessage(\n t('TRANSLATIONS_RCORE_COMMON:RCORE_TOPNAV_SEARCH_RESULTS_ANNOUNCEMENT_TEXT', {\n SearchCount: count,\n SearchText: searchText\n })\n );\n }, 500);\n };\n\n return (\n <>\n \n
    \n 0 &&\n searchUrl &&\n (smallerResolution && !searchIconSelected ? (\n \n \n \n ) : (\n searchTypes &&\n searchTypes.length > 0 && (\n \n \n {searchIconSelected && (\n \n \n \n )}\n \n )\n ))\n }\n shoppingCartElement={\n shoppingCartMenu && \n }\n profileMenu={}\n helpElement={helpMenu && }\n adminHeaderCustomElement={\n domainSwitchNode && (\n \n )\n }\n />\n \n );\n};\n\nAppMenuHeader.propTypes = {\n /**\n * Menus data\n */\n menusData: PropTypes.arrayOf(PropTypes.shape({})),\n /**\n * user data\n */\n userData: PropTypes.oneOfType([PropTypes.object]),\n /**\n * Profile Menus\n */\n profileMenus: PropTypes.arrayOf(PropTypes.shape({})),\n /**\n * Help Menu\n */\n helpMenu: PropTypes.oneOfType([PropTypes.object]),\n /**\n * Home Logo click url\n */\n logoClickUrl: PropTypes.string,\n /**\n * Domain switch node\n */\n domainSwitchNode: PropTypes.oneOfType([PropTypes.object]),\n /**\n * Enabled search types\n */\n searchTypes: PropTypes.arrayOf(PropTypes.shape({})),\n /**\n * Search Url\n */\n searchUrl: PropTypes.string,\n /**\n * ShoppingCart Menu\n */\n shoppingCartMenu: PropTypes.oneOfType([PropTypes.object]),\n /**\n * Callback fired when menuItem is clicked.\n */\n onNavigationCallback: PropTypes.func\n};\n\nAppMenuHeader.defaultProps = {\n menusData: undefined,\n userData: undefined,\n profileMenus: undefined,\n helpMenu: undefined,\n logoClickUrl: undefined,\n domainSwitchNode: undefined,\n searchTypes: undefined,\n searchUrl: '',\n shoppingCartMenu: undefined,\n onNavigationCallback: undefined\n};\n\nexport default AppMenuHeader;\n","import axios from 'axios';\nimport {\n getIdbItem,\n getLocalStorageItem,\n setIdbItem,\n parseKeyValue,\n setLocalStorageItem,\n addUpdateKeyValue,\n StorageConstants\n} from '../../../utils/clientStorage';\nimport { getConfig } from '../../../config/apiConfig';\n\nconst getSitemap = async (foreceRefreshSitemap) => {\n const rcoreSitemapHash = getLocalStorageItem(StorageConstants.Keys.sitemap);\n let sitemapRequest = { sitemapHash: null, dashboardHash: null };\n let cachedRcoreSiteMap = {};\n\n if (foreceRefreshSitemap !== true) {\n let hashValues = null;\n // Get sitemap hash\n cachedRcoreSiteMap = await getIdbItem('RCoreSitemap');\n if (rcoreSitemapHash && cachedRcoreSiteMap) {\n hashValues = parseKeyValue(rcoreSitemapHash);\n }\n sitemapRequest = {\n sitemapHash: hashValues ? hashValues.get(StorageConstants.SitemapHash) : null,\n dashboardHash: hashValues ? hashValues.get(StorageConstants.DashboardHash) : null\n };\n }\n // Get auth header config\n const config = await getConfig();\n return axios\n .post('api/rcore/sitemap', sitemapRequest, config)\n .then(async (resp) => {\n let response = resp;\n // Refresh client storage with updated data if received from server\n if (\n response.data &&\n response.data.sitemap &&\n response.data.sitemap.nodes &&\n response.data.sitemap.nodes.length > 0\n ) {\n // Update sitemap hash to local storage\n const updatedHash = addUpdateKeyValue(\n rcoreSitemapHash,\n StorageConstants.SitemapHash,\n response.data.sitemap.hash\n );\n setLocalStorageItem(StorageConstants.Keys.sitemap, updatedHash);\n\n // Add profile menus to sitemap in order to store single object in cache\n response.data.sitemap.profileMenus = response.data.profileMenus;\n // Store sitemap in indexed db\n await setIdbItem('RCoreSitemap', response.data.sitemap);\n } else if (response.data && response.data.sitemap) {\n // Get the data from client storage\n response.data.sitemap = cachedRcoreSiteMap;\n } else {\n response = { data: { sitemap: { nodes: [] } } };\n }\n const respObj = await includeDashboardSitemap(response.data);\n\n return respObj;\n })\n .catch((err) => {\n throw err.response;\n });\n};\n\nconst includeDashboardSitemap = async (response) => {\n // Get accessible dashboards of the user and add them to self menu of the sitemap response\n if (\n response.dashboardSitemap &&\n response.dashboardSitemap.nodes &&\n response.dashboardSitemap.nodes.length > 0\n ) {\n const dashboardParent = response.dashboardSitemap.nodes.filter(\n (t) => t.nodeKey === 'manage_dashboard_listmenu'\n )[0];\n if (dashboardParent && dashboardParent.childNodes && dashboardParent.childNodes.length > 0) {\n /* Select only dashboards with dashboardType = 0 representing dashboards,\n skip dashboardType = 1 representing workspaces */\n const dashboards = dashboardParent.childNodes.filter((t) => t.dashboardType === 0);\n dashboardParent.childNodes = dashboards;\n\n // Add Dashboard sitemap to the self menu\n const selfNode = response.sitemap.nodes.find((t) => t.nodeKey === 'self_header');\n if (selfNode) {\n // Remove dashboards node if it already exists in Self menu\n selfNode.childNodes = selfNode.childNodes.filter(\n (t) => t.nodeKey !== 'manage_dashboard_listmenu'\n );\n selfNode.childNodes.unshift(dashboardParent);\n }\n }\n // Update dashboard hash to local storage\n const rcoreSitemapHash = getLocalStorageItem(StorageConstants.Keys.sitemap);\n const updatedHash = addUpdateKeyValue(\n rcoreSitemapHash,\n StorageConstants.DashboardHash,\n response.dashboardSitemap.hash\n );\n setLocalStorageItem(StorageConstants.Keys.sitemap, updatedHash);\n\n // Store dashboard sitemap in indexed db\n await setIdbItem('RCoreDashboardSitemap', response.dashboardSitemap);\n } else if (response && response.dashboardSitemap) {\n // Get dashboard data from client storage indexed db\n response.dashboardSitemap = await getIdbItem('RCoreDashboardSitemap');\n } else {\n response.dashboardSitemap = { nodes: [] };\n }\n return response;\n};\n\nexport default getSitemap;\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\nimport authService from '../../../authentication/AuthorizeService';\nimport getLogger from '../../../utils/logger';\n\nconst getNotificationCount = async (userId, refresh, countOverDue) => {\n let targetUserId = userId;\n let forceRefresh = refresh;\n let countOverDueOnly = countOverDue;\n\n if (!targetUserId) {\n targetUserId = await authService.getMaskedUserId();\n }\n if (!refresh) {\n forceRefresh = false;\n }\n if (!countOverDue) {\n countOverDueOnly = false;\n }\n // Get auth header config\n const config = await getConfig();\n const requestUrl = `api/timelineapi/LoadNotificationCount?targetUserId=${targetUserId}&forceRefresh=${forceRefresh}&countOverDueOnly=${countOverDueOnly}`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch((err) => {\n getLogger().error(err.response);\n return 0;\n });\n};\n\nexport default getNotificationCount;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router';\nimport { useTranslation } from 'react-i18next';\nimport { ControlPanel, ControlPanelItem, RouteLink } from '@sumtotal/react-foundation';\nimport styled from 'styled-components';\nimport { postMessage } from '../../../modules/core/services/coreIFrameHelper';\nimport { GetProcessedNodeUrl } from '../../../utils/urlHelper';\nimport useHeaderContext from '../../hooks/useHeaderContext';\nimport useUserContext from '../../hooks/useUserContext';\nimport getNotificationCount from '../../topnav/services/timelineService';\nimport { getPastDueCount } from '../../../modules/onePlace/activitiesAndTasks/activities/services/myActivitiesService';\nimport getLogger from '../../../utils/logger';\n\nconst StyledControlPanel = styled(ControlPanel)`\n min-height: ${(props) => props.minh}px;\n display: flex;\n flex-direction: column;\n .MuiButton-outlined.Mui-disabled {\n border: none;\n }\n`;\n\nconst StyledRouteLink = styled(RouteLink)`\n bottom: 0.75rem;\n width: inherit;\n margin-top: 0.75rem;\n text-align: center;\n text-transform: none;\n font-size: 0.625rem;\n line-height: 0.75rem;\n text-decoration: none;\n font-weight: 500;\n padding: 0.0625rem;\n color: ${(props) => props.theme.variables.leftNavParentColor};\n &:focus,\n &:hover,\n &:active {\n text-decoration: underline;\n }\n`;\n\nconst EllipseControlPanelItem = styled(ControlPanelItem)`\n padding-top: 0rem;\n padding-bottom: 0rem;\n min-height: 1.25rem;\n`;\n\nconst DisabledLink = styled(StyledRouteLink)`\n pointer-events: none;\n`;\n/**\n * Component for Control Panel Container.\n *\n */\nfunction ControlPanelContainer({\n controlPanelItems,\n highlightControlPanelItem,\n setHighlightCPItem\n}) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n const history = useHistory();\n const [ControlPanelItemList, setControlPanelItemList] = useState([]);\n const [PageControlPanelItemList, setPageControlPanelItemList] = useState([]);\n const [ControlPanelFooter, setControlPanelFooter] = useState({});\n const nodes = controlPanelItems.Nodes;\n const footerNode = controlPanelItems.Footer;\n const headerData = useHeaderContext();\n const { headerContext, setHeaderContext } = headerData;\n const [timelineCount, setTimelineCount] = useState();\n const [mytodosOverDueCount, setMytodosOverDueCount] = useState();\n const { user } = useUserContext();\n const disableControlPanel = user.isEmulatedUser ? false : user.mustAnswerSecurityQuestions;\n const Link = disableControlPanel ? DisabledLink : StyledRouteLink;\n const [showUpperEllipse, setShowUpperEllipse] = useState(false);\n const [showLowerEllipse, setShowLowerEllipse] = useState(false);\n const [calcHeight, updateCalcHeight] = useState(0);\n const [currentPage, setCurrentPage] = useState(1);\n const [firstPage, setFirstpage] = useState(0);\n const [lastPage, setLastPage] = useState(0);\n const [minHeight, setMinHeight] = useState(null);\n const logger = getLogger();\n\n const updateSize = () => {\n const clientheight = document.getElementById('modal-sidebar-controlpanel-items').clientHeight;\n updateCalcHeight(clientheight);\n if (clientheight > 220) {\n const first = Math.round((clientheight - 142) / 58);\n if (first >= ControlPanelItemList.length) {\n setCurrentPage(1);\n setShowLowerEllipse(false);\n setShowUpperEllipse(false);\n setFirstpage(ControlPanelItemList.length);\n setPageControlPanelItemList(ControlPanelItemList);\n } else {\n setFirstpage(first);\n setLastPage(ControlPanelItemList.length - first);\n if (currentPage === 2) {\n setPageControlPanelItemList(\n ControlPanelItemList.slice(\n ControlPanelItemList.length - lastPage,\n ControlPanelItemList.length\n )\n );\n setShowLowerEllipse(false);\n setShowUpperEllipse(true);\n const minh = 150 + (ControlPanelItemList.length - first) * 58;\n setMinHeight(minh);\n } else if (currentPage === 1) {\n setShowLowerEllipse(true);\n setShowUpperEllipse(false);\n setPageControlPanelItemList(ControlPanelItemList.slice(0, first));\n setMinHeight(null);\n }\n }\n }\n };\n\n function ChangeEllipsePosition(position) {\n if (position) {\n setShowUpperEllipse(false);\n setShowLowerEllipse(true);\n setPageControlPanelItemList(ControlPanelItemList.slice(0, firstPage));\n setCurrentPage(1);\n setMinHeight(null);\n setTimeout(() => {\n document.getElementById('sidebar-lower-ellipsis').focus();\n }, 200);\n } else if (!position) {\n setShowUpperEllipse(true);\n setShowLowerEllipse(false);\n setPageControlPanelItemList(\n ControlPanelItemList.slice(\n ControlPanelItemList.length - lastPage,\n ControlPanelItemList.length\n )\n );\n setCurrentPage(2);\n const minh = 150 + lastPage * 58;\n setMinHeight(minh);\n setTimeout(() => {\n document.getElementById('sidebar-upper-ellipsis').focus();\n }, 200);\n }\n }\n\n const timeLineBadgeAriaLable = useCallback((Count) => {\n if (Count > 1) {\n return t('RCORE_TOPNAV_TIMELINE_ITEMS', {\n Count\n });\n }\n return t('RCORE_TOPNAV_TIMELINE_ITEM', {\n Count\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n // Data required for Control Panel\n const ControlPanelData = [];\n if (nodes != null) {\n nodes.forEach((item) => {\n const node = item;\n if (node.nodeKey === 'home_header') {\n node.url = '/';\n } else if (\n node.nodeKey === 'alert_header' &&\n (headerContext.refreshTimeline === undefined || headerContext.refreshTimeline)\n ) {\n const forceRefresh =\n headerContext.refreshTimeline === undefined ? false : headerContext.refreshTimeline;\n getNotificationCount(null, forceRefresh, true)\n .then((Count) => {\n if (Count > 0) {\n node.showBadgeIcon = true;\n node.ariaLabel = timeLineBadgeAriaLable(Count);\n } else {\n node.showBadgeIcon = false;\n }\n setTimelineCount(Count);\n postMessage(\n 'REFRESH_TIMELINE_COUNT',\n { notificationCount: Count },\n false,\n null,\n false,\n true\n );\n if (headerContext.refreshTimeline) {\n setHeaderContext((state) => ({\n ...state,\n refreshTimeline: false\n }));\n }\n return Count;\n })\n .catch((err) => {\n logger.error(err);\n return 0;\n });\n } else if (node.nodeKey === 'my_activities') {\n const getMyTodosOverDueCount = async () => {\n try {\n const { data } = await getPastDueCount({});\n if (data) {\n const { pastDueTrainingCount } = data[0];\n if (pastDueTrainingCount) {\n node.showBadgeIcon = true;\n node.ariaLabel = timeLineBadgeAriaLable(pastDueTrainingCount);\n setMytodosOverDueCount(pastDueTrainingCount);\n } else {\n node.showBadgeIcon = false;\n node.ariaLabel = timeLineBadgeAriaLable(pastDueTrainingCount);\n setMytodosOverDueCount(pastDueTrainingCount);\n }\n }\n } catch (error) {\n logger.error(error);\n }\n };\n getMyTodosOverDueCount();\n }\n ControlPanelData.push(node);\n });\n }\n setControlPanelItemList(ControlPanelData);\n setPageControlPanelItemList(ControlPanelData);\n setFirstpage(ControlPanelData.length);\n if (footerNode != null) {\n footerNode.url = GetProcessedNodeUrl(footerNode);\n }\n setControlPanelFooter(footerNode);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nodes, footerNode, headerContext.refreshTimeline, setHeaderContext, timeLineBadgeAriaLable]);\n\n useEffect(() => {\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [calcHeight, ControlPanelItemList]);\n\n function handleItemClick(event, nodeKey, action) {\n setHighlightCPItem(nodeKey);\n if (action === 'OPEN_LIBRARY') {\n if (window.location.pathname.indexOf('/c/') > 0) {\n postMessage(action, null, null, event.currentTarget.id);\n return;\n }\n const libNode = ControlPanelItemList.find((item) => item.nodeKey === 'Learner_MenuTaxonomy');\n history.push(libNode.url);\n } else if (action !== 'NAVIGATE') {\n postMessage(action, null, null, event.currentTarget.id);\n } else return null;\n }\n\n function handleItemMouseClick(event, nodeKey, action, url) {\n if (\n action === 'NAVIGATE' &&\n (event.keyCode === 13 || event.button === 1 || event.button === 0)\n ) {\n setHighlightCPItem(nodeKey);\n history.push(url);\n }\n }\n\n const getBadgeCount = ({ nodeKey }) => {\n if (nodeKey === 'alert_header') return timelineCount;\n if (nodeKey === 'my_activities') return mytodosOverDueCount;\n return null;\n };\n return (\n {ControlPanelFooter.name}\n ) : null\n }\n minh={minHeight}\n >\n
    \n {showUpperEllipse && (\n ChangeEllipsePosition(true)}\n />\n )}\n {PageControlPanelItemList &&\n PageControlPanelItemList.map((item) => (\n \n ))}\n {showLowerEllipse && (\n ChangeEllipsePosition(false)}\n />\n )}\n \n );\n}\n// PropType check\nControlPanelContainer.propTypes = {\n /**\n * Control panel items\n */\n controlPanelItems: PropTypes.shape({\n Nodes: PropTypes.arrayOf(PropTypes.shape({})),\n Footer: PropTypes.shape({ url: PropTypes.string })\n }),\n /**\n * Highlight Control panel item\n */\n highlightControlPanelItem: PropTypes.string,\n /**\n * function highlight Control panel item\n */\n setHighlightCPItem: PropTypes.func\n};\n\nControlPanelContainer.defaultProps = {\n controlPanelItems: {},\n highlightControlPanelItem: '',\n setHighlightCPItem: undefined\n};\n\nexport default ControlPanelContainer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Icon } from '@sumtotal/react-foundation';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport authService from '../../../authentication/AuthorizeService';\nimport getLogger from '../../../utils/logger';\n\nconst Strip = styled.div`\n min-height: 2.1875rem;\n background-color: #f8b300;\n font-size: 0.875rem;\n color: #000;\n margin: 0.125rem;\n text-align: center;\n`;\n\nconst Text = styled.span`\n padding: 0.5rem 0;\n display: inline-block;\n width: 70%;\n font-weight: 600;\n`;\n\nconst ExitEmulationBtn = styled(Button)`\n color: #000;\n float: right;\n &:hover {\n background-color: transparent;\n color: #000;\n }\n &:active {\n color: #000;\n background-color: transparent;\n }\n &:focus {\n color: #000;\n background-color: transparent;\n }\n`;\n\nfunction EmulationStrip({ emulatedUser, exitEmulationUrl }) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n\n const handleExitEmulation = () => {\n authService\n .removeAccessToken()\n .then(() => {\n window.location.assign(exitEmulationUrl);\n return null;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n };\n\n if (emulatedUser && emulatedUser !== '') {\n return (\n <>\n \n \n {t('RCORE_TOPNAV_EMULATION_TEXT', {\n username: emulatedUser,\n interpolation: { escapeValue: false }\n })}\n \n }\n variant=\"text\"\n onClick={handleExitEmulation}\n disableFocusRipple\n >\n {t('RCORE_TOPNAV_EXIT_EMULATION')}\n \n \n \n );\n }\n return null;\n}\n\n// PropType check\nEmulationStrip.propTypes = {\n /**\n * isEmulationMode flag to detect emulation mode\n */\n emulatedUser: PropTypes.string,\n /**\n * url for exit emulation\n */\n exitEmulationUrl: PropTypes.string\n};\n\nEmulationStrip.defaultProps = {\n emulatedUser: '',\n exitEmulationUrl: ''\n};\n\nexport default EmulationStrip;\n","import eachDeep from 'deepdash/eachDeep';\n\nconst getMaxDepthOfTree = (rootNode, property) => {\n let maxDepth = 0;\n eachDeep(\n rootNode,\n (child, i, parent, ctx) => {\n if (maxDepth < ctx.depth) {\n maxDepth = ctx.depth;\n }\n },\n { childrenPath: property }\n );\n return maxDepth;\n};\n\nexport default getMaxDepthOfTree;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport findValueDeep from 'deepdash/findValueDeep';\nimport { Button, PageLoader } from '@sumtotal/react-foundation';\nimport { useTranslation } from 'react-i18next';\nimport queryString from 'query-string';\nimport AppMenuHeader from '../../topnav/components/AppMenuHeader';\nimport getSitemap from '../../topnav/services/sitemapService';\nimport { GetProcessedNodeUrl, ProcessTreeNodes } from '../../../utils/urlHelper';\nimport getUserProfile from '../../topnav/services/personService';\nimport authService from '../../../authentication/AuthorizeService';\nimport { getSearchTypes } from '../../topnav/services/searchService';\nimport useUserContext from '../../hooks/useUserContext';\nimport ControlPanelContainer from '../../sidebar/components/ControlPanelContainer';\nimport EmulationStrip from './EmulationStrip';\nimport useHeaderContext from '../../hooks/useHeaderContext';\nimport { IntegrationElement } from '../../../utils/IntegrationConstants';\nimport CheckIntegrationSetting from '../../../utils/integrationHelper';\nimport useIntegrationContext from '../../hooks/useIntegrationContext';\nimport getMaxDepthOfTree from '../../../utils/treeHelper';\n\nconst HeaderSection = styled.div`\n height: '3.25rem';\n`;\n\nconst IntegrationHomeBtn = styled(Button)`\n float: left;\n`;\n\nconst coreNodes = ['self_personaldetails', 'Profile', 'menu_signout', 'self_signin'];\n\nfunction updateExitEmulationUrl(profileData) {\n const { url } = profileData.filter((node) => node.nodeKey === 'menu_signout')[0];\n return url.replace('$HOST_NAME', window.location.host);\n}\n\nfunction SitemapProvider({ emulatedUser }) {\n const { t } = useTranslation(['TRANSLATIONS_RCORE_TOPNAV']);\n\n const [menusData, setMenusData] = useState([]);\n const [isLoaded, setIsLoaded] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [userData, setUserData] = useState({});\n const [profileMenus, setProfileMenus] = useState([]);\n const [helpMenu, setHelpMenu] = useState(null);\n const [shoppingCartMenu, setShoppingCartMenu] = useState(null);\n const [homeUrl, setHomeUrl] = useState(null);\n const { dispatch } = useUserContext();\n const [domainSwitchNode, setDomainSwitchNode] = useState(null);\n const [controlPanelItems, setcontrolPanelItems] = useState({});\n const [searchTypes, setSearchTypes] = useState([]);\n const [searchUrl, setSearchUrl] = useState(null);\n const [exitEmulationUrl, setExitEmulationUrl] = useState();\n const [coreReady, setCoreReady] = useState(false);\n const { headerContext } = useHeaderContext();\n const [selectedMenuKey, setSelectedMenuKey] = useState('');\n const { integrationContext } = useIntegrationContext();\n const { refreshSitemap } = queryString.parse(window.location.search, { parseBooleans: true });\n\n useEffect(() => {\n Promise.all([\n getSitemap(refreshSitemap),\n getUserProfile(),\n getSearchTypes(),\n authService.getUserProfile()\n ])\n .then((results) => {\n const data = results[0].sitemap;\n const termsForUse =\n results[0].termsAndConditionsLink && results[0].termsAndConditionsLink != null\n ? results[0].termsAndConditionsLink\n : null;\n const availableControlPanelNodes = updateControlPanelMenus(\n data.nodes,\n results[0].controlPanelMenuItems\n );\n const controlPanelNodes =\n availableControlPanelNodes != null ? availableControlPanelNodes : null;\n const controlPanelData = { Nodes: controlPanelNodes, Footer: termsForUse };\n setcontrolPanelItems(controlPanelData);\n // set exit emulation url\n if (emulatedUser && emulatedUser !== '') {\n const url = updateExitEmulationUrl(data.profileMenus);\n setExitEmulationUrl(url);\n }\n const userObject = results[1];\n if (userObject.mustAnswerSecurityQuestions) {\n userObject.UserJustAnsweredSecurityQuestion = !userObject.mustAnswerSecurityQuestions;\n } else {\n userObject.UserJustAnsweredSecurityQuestion = userObject.mustAnswerSecurityQuestions;\n }\n const landingDashBoardurl = GetProcessedNodeUrl(results[0].landingWebPart);\n setHomeUrl(landingDashBoardurl);\n setProfileMenus(data.profileMenus);\n setUserData(results[1]);\n if (results[2] && results[2].searchTypes) setSearchTypes(results[2].searchTypes);\n const accessibleRcoreRoutes = ProcessTreeNodes(data.nodes);\n setCurrentUser(\n results[1],\n landingDashBoardurl,\n results[3],\n accessibleRcoreRoutes,\n results[0].routeUrls\n );\n filterMenus(data, results[0].quickLinks);\n setErrorMessage('');\n setIsLoaded(true);\n return null;\n })\n .catch((errorResponse) => {\n setErrorMessage(errorResponse !== undefined ? errorResponse.data : '');\n setIsLoaded(true);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (isLoaded && emulatedUser && emulatedUser !== '') {\n const focusElement = document.getElementById('exitEmulationBtn');\n if (focusElement)\n setTimeout(() => {\n focusElement.focus();\n }, 1000);\n }\n }, [isLoaded, emulatedUser]);\n\n const isEmulatedUser = emulatedUser !== '' && emulatedUser;\n // setting user details in UserContext\n function setCurrentUser(\n userDetails,\n homePageUrl,\n userDetailsAuthService,\n accessibleRcoreRoutes,\n securedRoutes\n ) {\n dispatch({\n type: 'USER_INFO',\n user: {\n name: userDetails.personInfo.fullName,\n userId: userDetails.personInfo.personNumber,\n personPK: userDetails.personInfo.personPK,\n image: userDetails.personInfo.imagePath,\n jobTitle: userDetails.jobTitle,\n mustAnswerSecurityQuestions: userDetails.mustAnswerSecurityQuestions,\n culture: userDetailsAuthService.culture,\n dateFormat: userDetailsAuthService.dateformat,\n timeFormat: userDetailsAuthService.timeformat,\n userTimeZoneId: userDetailsAuthService.usertimezoneid,\n twoLetterISOLanguageName: userDetailsAuthService.twoLetterISOLanguageName,\n isEmulatedUser,\n currentDomainId: userDetails.personInfo.currentDomainId\n },\n accessibleRcoreRoutes,\n securedRoutes,\n homePageUrl\n });\n }\n // Filter menus from sitemap data\n function filterMenus(data, quickLinks) {\n const filteredMenus = data.nodes.filter(\n (node) =>\n node.nodeKey === 'self_header' ||\n node.nodeKey === 'team_header' ||\n node.nodeKey === 'admin_header'\n );\n filteredMenus.forEach((menu) => {\n const node = menu;\n if (node.nodeKey === 'admin_header') {\n if (quickLinks && quickLinks.administration) {\n setQuickLinks(node, quickLinks.administration, 'administration_quicklinks');\n }\n // Compute max depth for the administration sitemap node\n node.maxDepthLevel = getMaxDepthOfTree(node, 'childNodes');\n node.maxDepthLevel = node.maxDepthLevel < 4 ? 4 : node.maxDepthLevel;\n node.childNodes.unshift({\n nodeKey: node.nodeKey,\n url: node.url,\n name: t('RCORE_TOPNAV_MENU_ADMINISTRATION_OVERVIEW'),\n rpKey: node.rpKey,\n childNodes: []\n });\n } else {\n node.showAdditionalAction = false;\n node.actionName = '';\n if (node.nodeKey === 'team_header' && quickLinks && quickLinks.myTeam) {\n setQuickLinks(node, quickLinks.myTeam, 'myteam_quicklinks');\n } else if (quickLinks && quickLinks.self) {\n setQuickLinks(node, quickLinks.self, 'self_quicklinks');\n }\n\n // filter profile nodes from self menu\n if (node.nodeKey === 'self_header' && node.childNodes.length > 0) {\n coreNodes.forEach((key) => {\n const nodeIndex = node.childNodes.findIndex((n) => n.nodeKey === key);\n if (nodeIndex !== -1) {\n node.childNodes.splice(nodeIndex, 1);\n }\n });\n }\n // Compute max depth for each of the sitemap node\n node.maxDepthLevel = getMaxDepthOfTree(node, 'childNodes');\n node.maxDepthLevel = node.maxDepthLevel < 2 ? 2 : node.maxDepthLevel;\n }\n if (node.childNodes.length === 0) {\n filteredMenus.splice(filteredMenus.indexOf(node), 1);\n }\n });\n setMenusData(filteredMenus);\n const shoppingCartNode = data.nodes.filter((node) => node.nodeKey === 'cart_header');\n if (shoppingCartNode.length > 0) setShoppingCartMenu(shoppingCartNode[0]);\n\n const helpNodes = data.nodes.filter((node) => node.nodeKey === 'help_header');\n if (helpNodes.length > 0) setHelpMenu(helpNodes[0]);\n\n const domainNodes = data.nodes.filter((node) => node.nodeKey === 'Administrator_SwitchDomain');\n if (domainNodes.length > 0) setDomainSwitchNode(domainNodes[0]);\n\n const searchNodes = data.nodes.filter((node) => node.nodeKey === 'search_header');\n if (searchNodes.length > 0) {\n setSearchUrl(searchNodes[0].url);\n }\n }\n\n function setQuickLinks(menuNodeList, configuredQuickLinks, menuQuickLinksNodeKey) {\n const configuredQuickLinkNodes = [];\n if (configuredQuickLinks.menuItems && configuredQuickLinks.menuItems.length > 0) {\n configuredQuickLinks.menuItems.forEach((quickLink) => {\n configuredQuickLinkNodes.push(\n findValueDeep(\n menuNodeList,\n (child) => {\n if (child.id === quickLink.masterSitemapId) {\n return child;\n }\n },\n { childrenPath: 'childNodes' }\n )\n );\n });\n }\n const availableQuickLinkNodes = configuredQuickLinkNodes.filter((item) => item);\n\n if (availableQuickLinkNodes.length > 0) {\n const menuQuickLinksNode = {\n nodeKey: menuQuickLinksNodeKey,\n name: t('RCORE_TOPNAV_MENU_QUICKLINKS_MENUITEM'),\n childNodes: availableQuickLinkNodes,\n expandQuickLinksByDefault: configuredQuickLinks.expandQuickLinksByDefault\n };\n menuNodeList.childNodes.unshift(menuQuickLinksNode);\n // eslint-disable-next-line no-param-reassign\n menuNodeList.expandQuickLinksNodeKey = configuredQuickLinks.expandQuickLinksByDefault\n ? menuQuickLinksNodeKey\n : null;\n }\n }\n\n function updateControlPanelMenus(menuNodeList, controlPanelMenuItems) {\n const configuredControlPanelNodes = [];\n if (\n !(controlPanelMenuItems && controlPanelMenuItems.length > 0) ||\n !(menuNodeList && menuNodeList.length > 0)\n ) {\n return null;\n }\n controlPanelMenuItems.forEach((menuItem) => {\n for (let i = 0; i < menuNodeList.length; i++) {\n const node = menuNodeList[i];\n const ControlPanelitem = findValueDeep(\n node,\n (child) => {\n if (child.id === menuItem.definition.node.id) {\n return child;\n }\n },\n { childrenPath: 'childNodes' }\n );\n\n if (ControlPanelitem) {\n ControlPanelitem.iconName = menuItem.definition.iconName;\n ControlPanelitem.actionType = menuItem.definition.actionType;\n ControlPanelitem.url = GetProcessedNodeUrl(ControlPanelitem);\n if (menuItem.definition.iconSource === 1) {\n ControlPanelitem.iconType = 'MaterialIcon';\n } else if (menuItem.definition.iconSource === 2) {\n ControlPanelitem.iconType = 'IcomoonIcon';\n }\n configuredControlPanelNodes.push(ControlPanelitem);\n break;\n }\n }\n });\n return configuredControlPanelNodes;\n }\n\n const handleIntegrationHomeBtn = () => {\n window.location.assign('/rcore/mylearning?im=1');\n };\n\n const handleControlPanelItem = (SelectedNode) => {\n if (SelectedNode) {\n setSelectedMenuKey(SelectedNode.nodeKey);\n }\n };\n\n if (!isLoaded || !coreReady) {\n if (!coreReady && headerContext.coreFrameLoaded) setCoreReady(true);\n return ;\n }\n\n if (errorMessage !== '') {\n return
    {errorMessage}
    ;\n }\n\n return (\n <>\n {!CheckIntegrationSetting(IntegrationElement.ShowHomeButton, integrationContext.mode) && (\n
    \n \n {t('TRANSLATIONS_RCORE_COMMON:RCORE_HOME_TEXT')}\n \n
    \n )}\n {CheckIntegrationSetting(IntegrationElement.HideTopBar, integrationContext.mode) && (\n \n \n \n )}\n {emulatedUser && emulatedUser !== '' && exitEmulationUrl && exitEmulationUrl !== '' && (\n \n )}\n {CheckIntegrationSetting(IntegrationElement.HideControlPanel, integrationContext.mode) && (\n \n )}\n \n );\n}\n\nSitemapProvider.propTypes = {\n /**\n Emulated user name\n * */\n emulatedUser: PropTypes.string\n};\n\nSitemapProvider.defaultProps = {\n emulatedUser: ''\n};\n\nexport default SitemapProvider;\n","import i18n from 'i18next';\nimport Backend from 'i18next-chained-backend';\nimport Http from 'i18next-http-backend';\nimport LocalforageBackend from 'i18next-localforage-backend'; // primary use cache\nimport localforage from 'localforage';\nimport { initReactI18next } from 'react-i18next';\nimport BackendAdapter from 'i18next-multiload-backend-adapter';\nimport authService from '../authentication/AuthorizeService';\nimport config from './Config';\nimport getLogger from '../utils/logger';\n\nauthService\n .getUser()\n .then((user) => {\n if (user) {\n i18n\n // load translation using http -> see /public/locales\n // learn more: https://github.com/i18next/i18next-http-backend\n // pass the i18n instance to react-i18next.\n .use(Backend)\n .use(initReactI18next) // passes i18n down to react-i18next\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: 'en-US',\n debug: false,\n ns: [\n 'TRANSLATIONS_RCORE_TOPNAV',\n 'TRANSLATIONS_RCORE_TOPNAV_SEARCH',\n 'TRANSLATIONS_RCORE_COMMON'\n ],\n defaultNS: 'TRANSLATIONS_RCORE_TOPNAV',\n lng: user && user.profile && user.profile.culture, // this needs to change as per user locale so the translations are saved in indexeddb with proper key for e.g. en-US_TRANSLATIONS_PORTAL\n // interpolation: {\n // escapeValue: false, // not needed for react as it escapes by default\n // },\n backend: {\n backends: [\n LocalforageBackend, // primary\n new BackendAdapter(null, {\n backend: new Http(null, {\n // // loadPath: \"http://ayjain11in.amr.smtf.ds/services/api/i18n/react?keys={{ns}}\",\n loadPath: `${config.domain}services/api/i18n/react?ns={{ns}}`,\n customHeaders: {\n Authorization: `Bearer ${user && user.access_token}`\n },\n allowMultiLoading: false\n })\n })\n ],\n backendOptions: [\n {\n // set expiration to 1 day\n expirationTime: 1 * 24 * 60 * 60 * 1000,\n\n /**\n * Localforage specific options\n */\n // database name (prefix is using localStorage as storage driver)\n name: 'ST',\n\n // The driver(s) to use, if multiple are provided, the first available is used\n driver: [localforage.INDEXEDDB, localforage.WEBSQL, localforage.LOCALSTORAGE],\n\n // when using IndexedDb is the dataStore name, when using WebSQL is the table name\n storeName: 'rcore',\n\n // description of the database, for developer usage\n description: ''\n },\n {}\n ]\n },\n react: {\n useSuspense: true\n }\n });\n }\n return null;\n })\n .catch((error) => {\n getLogger().error('Error in fetching translations', error);\n });\n","import { useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router';\nimport _ from 'lodash-es';\nimport useHeaderContext from './common/hooks/useHeaderContext';\nimport useUserContext from './common/hooks/useUserContext';\nimport useSettingsContext from './common/hooks/useSettingsContext';\nimport useBreadcrumbContext from './common/hooks/useBreadcrumbContext';\nimport { getIdbItem } from './utils/clientStorage';\nimport trackNavigationHistory from './modules/core/services/navigationService';\n\nfunction RouteChangeListener() {\n const location = useLocation();\n const headerData = useHeaderContext();\n const { setHeaderContext } = headerData;\n const { user } = useUserContext();\n const history = useHistory();\n const { dispatch } = useBreadcrumbContext();\n const { settingsData } = useSettingsContext();\n let sitemapBreadcrumbData;\n\n const getBreadCrumbsForUrl = (routeUrl) => {\n let path = routeUrl;\n if (_.endsWith(path, '/')) path = path.slice(0, path.length - 1);\n const data = sitemapBreadcrumbData.find((item) => item.routeUrl === path);\n if (!data) {\n const partialPath = path.slice(0, path.lastIndexOf('/'));\n if (!_.isEmpty(partialPath) && partialPath !== '/') {\n return getBreadCrumbsForUrl(partialPath);\n }\n }\n return data;\n };\n\n const updateBreadcrumbData = async (pathname) => {\n let routeUrl = pathname.replace('#', '');\n if (_.startsWith(routeUrl, '/c/')) {\n dispatch({\n type: 'CLEAR_BREADCRUMBS'\n });\n } else {\n sitemapBreadcrumbData = await getIdbItem('RCoreBreadCrumbData');\n if (sitemapBreadcrumbData != null && sitemapBreadcrumbData.length > 0) {\n if (routeUrl.indexOf('?') > -1) routeUrl = routeUrl.substring(0, routeUrl.indexOf('?'));\n const breadcrumbObj = getBreadCrumbsForUrl(routeUrl);\n if (breadcrumbObj)\n dispatch({\n type: 'POPULATE_BREADCRUMBS',\n data: {\n ...breadcrumbObj,\n isRcoreNode: true\n }\n });\n }\n }\n };\n // Track navigation history for rcore routes that are part of sitemap.\n const updateNavigationHistory = async (pathname) => {\n let routeUrl = pathname.replace('#', '');\n if (_.startsWith(routeUrl, '/c/')) return null;\n const captureNavigationHistory =\n settingsData && settingsData.settings\n ? settingsData.settings.filter((setting) => setting.key === 'CAPTURE_NAVIGATION_HISTORY')[0]\n ?.value\n : 'False';\n if (\n captureNavigationHistory !== null &&\n captureNavigationHistory.toLowerCase() === 'true' &&\n sitemapBreadcrumbData != null &&\n sitemapBreadcrumbData.length > 0\n ) {\n if (routeUrl.indexOf('?') > -1) routeUrl = routeUrl.substring(0, routeUrl.indexOf('?'));\n if (_.endsWith(routeUrl, '/')) routeUrl = routeUrl.slice(0, routeUrl.length - 1);\n const breadcrumbObj = sitemapBreadcrumbData.find((item) => item.routeUrl === routeUrl);\n if (breadcrumbObj) {\n const breadcrumbList = breadcrumbObj.breadcrumbData;\n const destinationValue = breadcrumbList[breadcrumbList.length - 1].nodeKey;\n const destinationUrl = breadcrumbList[breadcrumbList.length - 1].url;\n trackNavigationHistory('SiteMap', destinationValue, destinationUrl);\n }\n }\n };\n\n useEffect(() => {\n const pathname = location.pathname.toLowerCase();\n // Populate all the public routes which should skip permission check\n const publicRoutes = new Set(['/accessdenied']);\n\n const evaluatePermissions = (route) => {\n let path = route;\n\n if (user.accessibleRcoreRoutes.has(path)) {\n return true;\n }\n const routeIndex = _.findIndex(user.securedRoutes, (r) => {\n return r === path;\n });\n\n if (routeIndex > -1) {\n return false;\n }\n if (_.endsWith(path, '/')) {\n path = path.slice(0, path.length - 1);\n }\n\n const partialPath = path.slice(0, path.lastIndexOf('/'));\n\n if (!_.isEmpty(partialPath) && partialPath !== '/') {\n return evaluatePermissions(partialPath);\n }\n return true;\n };\n\n /* Skip the checks in case of -\n * Public route - accessdenied\n * Base route - '/'\n * Invalid routes - 'rcore/usersecurity'\n * Core routes - '/c/'\n * Auth routes - '/authentication/'\n * User not having any accessible routes as the system would redirect the user to home page\n */\n\n const ignoreRouteCheck =\n publicRoutes.has(pathname) ||\n pathname === '/' ||\n _.startsWith(pathname, '/c/') ||\n _.startsWith(pathname, '/authentication') ||\n !user ||\n !user.accessibleRcoreRoutes;\n\n const allowAccess = ignoreRouteCheck ? true : evaluatePermissions(pathname);\n\n // Updating the headercontext resetSearchValues to true when there is change in location path\n setHeaderContext((state) => ({\n ...state,\n resetSearchValues: true\n }));\n\n if (!allowAccess) {\n history.push('/accessDenied');\n }\n }, [location.pathname, setHeaderContext, user, history]);\n\n useEffect(() => {\n (async () => {\n const pathname = location.pathname.toLowerCase();\n await updateBreadcrumbData(pathname);\n updateNavigationHistory(pathname);\n setTimeout(() => {\n const contentElement = document.getElementsByClassName('MuiBreadcrumbs-li')[0];\n if (contentElement !== undefined) {\n contentElement.firstChild.setAttribute('tabindex', '0');\n contentElement.firstChild.focus();\n }\n }, 500);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.pathname]);\n\n return null;\n}\nexport default RouteChangeListener;\n","import { useMatomo } from '@datapunt/matomo-tracker-react';\nimport { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { setLocalStorageItem, getLocalStorageItem } from '../utils/clientStorage';\n\nconst Tracker = () => {\n const location = useLocation();\n const { trackPageView, pushInstruction } = useMatomo();\n useEffect(() => {\n if (location.search.includes('relyingParty') || location.pathname.indexOf('/c/') > -1) {\n return;\n }\n const NewVisitID = getLocalStorageItem('NewVisitID');\n const visitID = getLocalStorageItem('visitID');\n if (\n typeof visitID !== 'undefined' &&\n (typeof visitID === 'undefined' || (typeof visitID !== 'undefined' && visitID !== NewVisitID))\n ) {\n pushInstruction('appendToTrackingUrl', 'send_image=0&new_visit=1');\n } else {\n pushInstruction('appendToTrackingUrl', 'send_image=0');\n }\n\n trackPageView();\n if (\n typeof visitID !== 'undefined' &&\n (typeof visitID === 'undefined' || (typeof visitID !== 'undefined' && visitID !== NewVisitID))\n )\n setLocalStorageItem('visitID', NewVisitID);\n }, [location.pathname, location.search, trackPageView, pushInstruction]);\n return null;\n};\nexport default Tracker;\n","/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { PageLoader } from '@sumtotal/react-foundation';\nimport PropTypes from 'prop-types';\nimport authService from './AuthorizeService';\nimport { ApplicationPaths, QueryParameterNames } from './AuthorizationConstants';\nimport { toggleVisibility, postMessage } from '../modules/core/services/coreIFrameHelper';\n\nexport default class AuthorizeRoute extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ready: false,\n authenticated: false\n };\n }\n\n async componentDidMount() {\n this.subscription = authService.subscribe(() => this.authenticationChanged());\n await this.populateAuthenticationState();\n }\n\n componentWillUnmount() {\n authService.unsubscribe(this.subscription);\n }\n\n async authenticationChanged() {\n this.setState({ ready: false, authenticated: false });\n await this.populateAuthenticationState();\n }\n\n async populateAuthenticationState() {\n const authenticated = await authService.isAuthenticated();\n this.setState({ ready: true, authenticated });\n }\n\n render() {\n const { ready, authenticated } = this.state;\n const link = document.createElement('a');\n const { path } = this.props;\n const { location } = window;\n const returnUrl = `${location.protocol}//${location.host}${location.pathname}${location.search}${location.hash}`;\n link.href = path;\n const redirectUrl = `${ApplicationPaths.Login}?${\n QueryParameterNames.ReturnUrl\n }=${encodeURIComponent(returnUrl)}`;\n if (!ready) {\n return ;\n }\n const { component: RouteComponent, ...rest } = this.props;\n return (\n {\n if (authenticated) {\n // If navigating to rcore route then hide the iframe\n if (location.pathname === '/rcore/c') {\n // Rerouting the /c to /c/\n location.assign('/rcore/c/');\n return;\n }\n if (rest.path !== '/' && rest.path !== '/c') {\n postMessage('CLOSE_CURRENT_SLIDEOUT');\n toggleVisibility(false);\n return (\n
    \n \n
    \n );\n }\n return ;\n }\n return ;\n }}\n />\n );\n }\n}\n\nAuthorizeRoute.propTypes = {\n path: PropTypes.string.isRequired,\n component: PropTypes.shape({}).isRequired\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { PageLoader } from '@sumtotal/react-foundation';\nimport authService, { AuthenticationResultStatus } from './AuthorizeService';\nimport { LoginActions, QueryParameterNames } from './AuthorizationConstants';\n\nconst LoginContainer = styled.div`\n text-align: center;\n`;\n\nexport default class Login extends Component {\n constructor(props) {\n super(props);\n this.state = { message: undefined };\n }\n\n componentDidMount() {\n const { action } = this.props;\n switch (action) {\n case LoginActions.Login:\n this.login(this.getReturnUrl());\n break;\n case LoginActions.LoginCallback:\n this.processLoginCallback();\n break;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n\n getReturnUrl = (state) => {\n const params = new URLSearchParams(window.location.search);\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\n // This is an extra check to prevent open redirects.\n throw new Error(\n 'Invalid return url. The return url needs to have the same origin as the current page.'\n );\n }\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\n };\n\n redirectToApiAuthorizationPath = (apiAuthorizationPath) => {\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\n // It's important that we do a replace here so that when the user hits the back arrow on the\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\n // component.\n window.location.replace(redirectUrl);\n };\n\n navigateToReturnUrl = (returnUrl) => {\n // It's important that we do a replace here so that we remove the callback uri with the\n // fragment containing the tokens from the browser history.\n window.location.replace(returnUrl);\n };\n\n async login(returnUrl) {\n const state = { returnUrl };\n const result = await authService.signIn(state);\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n break;\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(returnUrl);\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(`Invalid status result '${result.status}'`);\n }\n }\n\n async processLoginCallback() {\n const url = window.location.href;\n const result = await authService.completeSignIn(url);\n\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n throw new Error('Should not redirect.');\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(`Invalid authentication result status '${result.status}'.`);\n }\n }\n\n render() {\n const { action } = this.props;\n const { message } = this.state;\n\n if (message) {\n return {message};\n }\n switch (action) {\n case LoginActions.Login:\n return ;\n case LoginActions.LoginCallback:\n return ;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n}\n\nLogin.propTypes = {\n action: PropTypes.string.isRequired\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport authService, { AuthenticationResultStatus } from './AuthorizeService';\n\nimport { LogoutActions } from './AuthorizationConstants';\n\n// The main responsibility of this component is to handle the user's logout process.\n// This is the starting point for the logout process, which is usually initiated when a\n// user clicks on the logout button on the LoginMenu component.\nexport default class Logout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n message: undefined,\n isReady: false\n };\n }\n\n componentDidMount() {\n const { action } = this.props;\n switch (action) {\n case LogoutActions.Logout:\n this.logout();\n break;\n case LogoutActions.LoggedOut:\n this.setState({ isReady: true, message: 'You successfully logged out!' });\n break;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n\n async logout() {\n const isauthenticated = await authService.isAuthenticated();\n if (isauthenticated) {\n const result = await authService.signOut();\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error('Invalid authentication result status.');\n }\n } else {\n this.setState({ message: 'You successfully logged out!' });\n }\n }\n\n render() {\n const { isReady, message } = this.state;\n if (!isReady) {\n return
    ;\n }\n if (message) {\n return
    {message}
    ;\n }\n const { action } = this.props;\n switch (action) {\n case LogoutActions.Logout:\n return
    Processing logout
    ;\n case LogoutActions.LoggedOut:\n return
    {message}
    ;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n}\n\nLogout.propTypes = {\n action: PropTypes.string.isRequired\n};\n","import React, { lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport AuthorizeRoute from './authentication/AuthorizeRoute';\nimport {\n ApplicationPaths,\n LoginActions,\n LogoutActions\n} from './authentication/AuthorizationConstants';\nimport Login from './authentication/Login';\nimport Logout from './authentication/Logout';\n// Lazy load the routes to support code splitting\nconst Home = lazy(() => import('./modules/home/components/Home'));\nconst CoreUI = lazy(() => import('./modules/core/components/CoreUI'));\nconst ControlPanelConfigurationRoutes = lazy(() =>\n import('./modules/configuration/controlpanel/components/ControlPanelConfigurationRoutes')\n);\nconst GoalWorkspaceRoutes = lazy(() => import('./modules/goals/components/GoalWorkspaceRoutes'));\nconst ActivityBuilderRoutes = lazy(() =>\n import('./modules/learning/activityBuilder/components/ActivityBuilderRoutes')\n);\nconst ActivityAssignments = lazy(() =>\n import('./modules/learning/activityAssignments/components/ActivityAssignments')\n);\nconst ToDoListConfiguration = lazy(() =>\n import('./modules/configuration/activitiesAndTasks/components/MyActivitiesAndTasksConfiguration')\n);\nconst ReportingRoutes = lazy(() => import('./modules/reporting/ReportingRoutes'));\n\nconst MyToDoList = lazy(() =>\n import('./modules/onePlace/activitiesAndTasks/activities/components/MyActivitiesRoutes')\n);\n\nconst AccessDeniedPage = lazy(() => import('./common/layout/components/AccessDeniedPage'));\n\nconst UserManagement = lazy(() =>\n import('./modules/administration/users/components/UserManagement')\n);\nconst OfferRoutes = lazy(() => import('./modules/recruiting/offer/components/route/OfferRoutes'));\nconst AllApplicants = lazy(() =>\n import('./modules/recruiting/allApplicants/components/AllApplicantsView')\n);\nconst PensSettings = lazy(() => import('./modules/learning/pens/components/settings'));\nconst MicrosoftTeamsSettings = lazy(() =>\n import('./modules/learning/vilt/msTeams/components/msTeamsSettings')\n);\nconst ZoomSettings = lazy(() => import('./modules/learning/vilt/zoom/components/zoomSettings'));\nconst IntegrationSettings = lazy(() =>\n import('./modules/learning/vivaLearning/components/integrationSettings')\n);\nconst AccreditationRoutes = lazy(() =>\n import('./modules/learning/accreditation/components/AccreditationRoutes')\n);\nconst LateCompletionsListRoutes = lazy(() =>\n import('./modules/learning/latecompletions/components/LateCompletionsListRoutes')\n);\n\nconst AchievementTemplateRoutes = lazy(() =>\n import(\n './modules/administration/development/developmentplan/achievement/components/AchievementTemplateRoutes'\n )\n);\nconst MarketComparisonRoutes = lazy(() =>\n import('./modules/marketComparison/components/MarketComparisonRoutes')\n);\n\nconst CredlyConfiguration = lazy(() =>\n import('./modules/configuration/backPackServer/credly/components/CredlyConfiguration')\n);\nconst AssignmentApprovalsRoutes = lazy(() =>\n import('./modules/learning/assignmentapprovals/components/AssignmentApprovalsList')\n);\nconst QuestionBankRoutes = lazy(() =>\n import('./modules/learning/questionBanks/components/QuestionBankRoutes')\n);\nconst InitiaivesDomainSettings = lazy(() =>\n import('./modules/configuration/InitiativesDomainSettings/components/initiativesDomainSettings')\n);\nconst DashboardManagerRoutes = lazy(() =>\n import('./modules/dashboards/components/DashboardManagerRoutes')\n);\nconst ActivityQrAttendanceReport = lazy(() =>\n import('./modules/learning/activityQrAttendance/components/ActivityQrAttendanceReport')\n);\n\nfunction loginAction(name) {\n return ;\n}\n\nfunction logoutAction(name) {\n return ;\n}\n\nconst AppRoutes = () => {\n return (\n \n {/* BEGIN - routes required for oidc-client SSO */}\n {/* Don't add any new routes above this block */}\n loginAction(LoginActions.Login)} />\n loginAction(LoginActions.LoginCallback)}\n />\n logoutAction(LogoutActions.Logout)}\n />\n {/* END - oidc-client SSO routes */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AppRoutes;\n","import axios from 'axios';\nimport { getConfig } from '../config/apiConfig';\n\nconst getAnalyticsConfiguration = async (isinSite) => {\n // Get auth header config\n const config = await getConfig();\n const url = `api/webanalytics/webanalyticsdetails/inSite/${isinSite}`;\n\n return axios\n .get(url, config)\n .then(async (resp) => {\n let response = {};\n if (resp.data) {\n response = resp.data;\n }\n return response;\n })\n .catch((err) => {\n throw err.response;\n });\n};\n\nexport default getAnalyticsConfiguration;\n","import { useEffect } from 'react';\nimport authService from '../authentication/AuthorizeService';\nimport getAnalyticsConfiguration from './webAnalyticsService';\n\nconst PendoTracker = () => {\n useEffect(() => {\n async function renderPendo() {\n const userProfile = await authService.getUserProfile();\n if (userProfile === null || userProfile.personguid === '') {\n return null;\n }\n const visitorId = userProfile.personguid;\n const accountId = userProfile.tenant;\n\n const analyticsData = await getAnalyticsConfiguration(false);\n\n const analyticUrl = analyticsData.webAnalyticSiteUrl;\n const apiKey = analyticsData.webAnalyticSiteID;\n const pendoEnabled = analyticsData.webAnalyticIsEnable === '1';\n\n // only load the Pendo source and Initialization when Pendo has been enabled for the tenant\n if (pendoEnabled === true) {\n // script used to load the pendo resource\n // this script is not in a seperate file, as it's using some variables that must first be obtained via webanalytic service call\n const pendoSourceScript = `var p = window; var e = document; var n = 'script'; var d='pendo'; var o; var apikey ='${apiKey}'; var url = '${analyticUrl}'; var v, w, x, y, z; o = p[d] = p[d] || {}; o._q = o._q || []; v = ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']; for (w = 0, x = v.length; w < x; ++w)(function (m) { o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); }; })(v[w]); y = e.createElement(n); y.async = !0; y.src = url + '/' + apikey + '/pendo.js'; z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z);`;\n const pendoLoadScript = document.createElement('script');\n pendoLoadScript.type = 'text/javascript';\n pendoLoadScript.async = true;\n pendoLoadScript.innerHTML = pendoSourceScript;\n document.body.appendChild(pendoLoadScript);\n\n // script for initializing Pendo using logged in user's details\n const pendoInitScript = document.createElement('script');\n pendoInitScript.type = 'text/javascript';\n pendoInitScript.async = true;\n pendoInitScript.innerHTML = `pendo.initialize({visitor: {id:'${visitorId}',evtSource:'rcore'},account: {id:'${accountId}'}}); `;\n document.body.appendChild(pendoInitScript);\n }\n }\n renderPendo();\n }, []);\n return null;\n};\nexport default PendoTracker;\n","import axios from 'axios';\nimport { createInstance } from '@datapunt/matomo-tracker-react';\nimport { getConfig } from '../config/apiConfig';\nimport { setLocalStorageItem } from '../utils/clientStorage';\n\n/**\n *\n * @param {Boolean} isinSite\n * @returns {MatomoTracker}\n */\nconst invokeWebAnalytics = async (isinSite) => {\n // Get auth header config\n const config = await getConfig();\n const url = `api/webanalytics/webanalyticsdetails/inSite/${isinSite}`;\n const resp = await axios.get(url, config);\n if (!resp.data) {\n return null;\n }\n if (\n resp.data.webAnalyticIsEnable !== '1' ||\n !resp.data.webAnalyticSiteUrl ||\n !resp.data.webAnalyticSiteID\n ) {\n return null;\n }\n const u = `//${resp.data.webAnalyticSiteUrl}/`;\n setLocalStorageItem('NewVisitID', resp.data.visitId);\n return createInstance({\n urlBase: resp.data.webAnalyticSiteUrl,\n siteId: resp.data.webAnalyticSiteID,\n trackerUrl: `${u}matomo.php`, // optional, default value: `${urlBase}matomo.php`\n srcUrl: `${u}matomo.js` // optional, default value: `${urlBase}matomo.js`\n });\n};\nexport default invokeWebAnalytics;\n","import React, { useEffect, useState } from 'react';\nimport { MatomoProvider } from '@datapunt/matomo-tracker-react';\nimport PropTypes from 'prop-types';\nimport invokeWebAnalytics from './instance';\n\nconst TrackingProvider = ({ children, isinSite }) => {\n const [instance, setInstance] = useState(null);\n\n useEffect(() => {\n (async () => {\n const newTracker = await invokeWebAnalytics(isinSite);\n setInstance(newTracker);\n })();\n }, [isinSite]);\n\n return {children};\n};\n\nTrackingProvider.propTypes = {\n children: PropTypes.node.isRequired,\n\n isinSite: PropTypes.bool\n};\n\nTrackingProvider.defaultProps = {\n isinSite: true\n};\nexport default TrackingProvider;\n","import React, { Suspense, useEffect, useState } from 'react';\nimport { HashRouter, BrowserRouter } from 'react-router-dom';\nimport { PageLoader } from '@sumtotal/react-foundation';\nimport AppLayout from './common/layout/components/AppLayout';\nimport Breadcrumbs from './common/layout/components/Breadcrumbs';\nimport Config from './config/Config';\nimport authService from './authentication/AuthorizeService';\nimport CorePillarFrame from './modules/core/components/CorePillarFrame';\nimport CoreMessageListener from './modules/core/components/CoreMessageListener';\nimport SitemapProvider from './common/layout/components/SitemapProvider';\nimport bootstrapApplication from './modules/core/services/bootstrapService';\nimport './config/i18n';\nimport RouteChangeListener from './RouteChangeListener';\nimport SecurityQuestions from './modules/core/components/SecurityQuestions';\nimport Tracker from './analytics/Tracker';\nimport AppRoutes from './AppRoutes';\nimport PendoTracker from './analytics/PendoTracker';\nimport TrackingProvider from './analytics/TrackingProvider';\nimport getLogger from './utils/logger';\n\n// Use different router type depending on configuration\nconst AppRouterComponent = Config.navigationType === 'history' ? BrowserRouter : HashRouter;\n\nconst AppRouter = () => {\n const [userAuthStatus, setUserAuthStatus] = useState({\n isAuthenticated: false,\n emulatedUser: ''\n });\n\n useEffect(() => {\n authService\n .getUser()\n .then((user) => {\n if (user) {\n // To check if its emulation mode.\n if (\n user.profile &&\n user.profile.emulatorusername &&\n user.profile.emulatorusername !== ''\n ) {\n setUserAuthStatus({ isAuthenticated: true, emulatedUser: user.profile.propername });\n } else {\n setUserAuthStatus({ isAuthenticated: true, emulatedUser: '' });\n }\n }\n // bootstrap after successful auth\n if (user) {\n bootstrapApplication();\n }\n return null;\n })\n .catch((errorResponse) => {\n setUserAuthStatus({ isAuthenticated: false, emulatedUser: '' });\n getLogger().error(errorResponse);\n });\n }, []);\n\n return (\n <>\n \n \n {userAuthStatus.isAuthenticated && (\n \n )}\n {/* This component identifies the change in location path */}\n \n
    \n {userAuthStatus.isAuthenticated && }\n \n {userAuthStatus.isAuthenticated && (\n \n \n \n )}\n \n {userAuthStatus.isAuthenticated && }\n \n {userAuthStatus.isAuthenticated && }\n }>\n \n \n
    \n
    \n \n \n \n );\n};\n\nexport default AppRouter;\n","import React, { useReducer } from 'react';\nimport UserContext from './UserContext';\nimport { getAndRemoveLocalStorageItem } from '../utils/clientStorage';\n\nconst defaultUserContext = {\n name: '',\n userId: '',\n personPK: '',\n image: undefined,\n jobTitle: '',\n homePageUrl: '',\n mustAnswerSecurityQuestions: false,\n UserJustAnsweredSecurityQuestion: true,\n culture: '',\n dateFormat: '',\n timeFormat: '',\n userTimeZoneId: '',\n twoLetterISOLanguageName: '',\n accessibleRcoreRoutes: new Set(),\n securedRoutes: [],\n isEmulatedUser: false,\n currentDomainId: ''\n};\nconst UserContextProvider = (props) => {\n const [state, dispatch] = useReducer(userReducer, defaultUserContext);\n const value = { user: state, dispatch };\n return ;\n};\n\nconst userReducer = (state, action) => {\n switch (action.type) {\n case 'USER_INFO': {\n let answerSecurityQuestions = getAndRemoveLocalStorageItem('MustAnswerSecurityQuestions');\n if (typeof answerSecurityQuestions === 'undefined' || answerSecurityQuestions == null) {\n answerSecurityQuestions = action.user.mustAnswerSecurityQuestions;\n }\n return {\n ...state,\n name: action.user.name,\n userId: action.user.userId,\n personPK: action.user.personPK,\n image: action.user.image,\n jobTitle: action.user.jobTitle,\n homePageUrl: action.homePageUrl,\n mustAnswerSecurityQuestions: JSON.parse(answerSecurityQuestions),\n culture: action.user.culture,\n dateFormat: action.user.dateFormat,\n timeFormat: action.user.timeFormat,\n userTimeZoneId: action.user.userTimeZoneId,\n twoLetterISOLanguageName: action.user.twoLetterISOLanguageName,\n accessibleRcoreRoutes: action.accessibleRcoreRoutes,\n securedRoutes: action.securedRoutes,\n isEmulatedUser: action.user.isEmulatedUser,\n currentDomainId: action.user.currentDomainId\n };\n }\n case 'USER_SECURITY_QUESTIONS': {\n return {\n ...state,\n UserJustAnsweredSecurityQuestion: !action.mustAnswerSecurityQuestions,\n mustAnswerSecurityQuestions: action.mustAnswerSecurityQuestions\n };\n }\n case 'UPDATE_USER_DETAILS': {\n return {\n ...state,\n ...action.userData\n };\n }\n case 'USER_ANSWERED_SECURITY_QUESTIONS': {\n return {\n ...state,\n UserJustAnsweredSecurityQuestion: false\n };\n }\n default:\n throw new Error(`Unknon action type: ${action.type} for user update`);\n }\n};\n\nexport default UserContextProvider;\n","import React, { useState } from 'react';\nimport HeaderContext from './HeaderContext';\n\nconst defaultHeaderContext = {\n refreshTimeline: undefined,\n cartItemsCount: undefined\n};\nconst HeaderContextProvider = (props) => {\n const [headerContext, setHeaderContext] = useState(defaultHeaderContext);\n const value = { headerContext, setHeaderContext };\n return ;\n};\n\nexport default HeaderContextProvider;\n","import React, { useState } from 'react';\nimport queryString from 'query-string';\nimport IntegrationContext from './IntegrationContext';\nimport { IntegrationMode } from '../utils/IntegrationConstants';\n\nconst IntegrationContextProvider = (props) => {\n const getIntegrationMode = () => {\n const url = window.location.href;\n const parsedUrl = queryString.parseUrl(url);\n\n // If app is not in an iFrame, disable integration mode\n if (window.top === window.self || !parsedUrl.query.im) {\n return IntegrationMode.Normal;\n }\n\n switch (parsedUrl.query.im) {\n case 'teams':\n case '1':\n return IntegrationMode.Teams;\n\n default:\n return IntegrationMode.Normal;\n }\n };\n\n const defaultIntegrationContext = { mode: getIntegrationMode() };\n\n const [integrationContext, setIntegrationContext] = useState(defaultIntegrationContext);\n\n const value = { integrationContext, setIntegrationContext };\n return ;\n};\n\nexport default IntegrationContextProvider;\n","import React, { Suspense } from 'react';\nimport { Provider } from 'react-redux';\nimport { PageLoader, LiveRegionContextProvider } from '@sumtotal/react-foundation';\nimport AppRouter from './AppRouter';\nimport ThemeContainer from './theme/ThemeContainer';\nimport store from './state/store';\nimport UserContextProvider from './contexts/UserContextProvider';\nimport HeaderContextProvider from './contexts/HeaderContextProvider';\nimport SettingsContextProvider from './contexts/SettingsContextProvider';\nimport MessageContextProvider from './contexts/MessageContextProvider';\nimport BreadcrumbContextProvider from './contexts/BreadcrumbContextProvider';\nimport IntegrationContextProvider from './contexts/IntegrationContextProvider';\n\n// ----------------------------------------------------------------------\n\nfunction App() {\n return (\n \n \n \n \n \n \n \n \n \n }>\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport React from 'react';\n\nimport ReactDOM from 'react-dom';\n\nimport './index.scss';\nimport { UserManager } from 'oidc-client';\nimport App from './App';\nimport { configureServices } from './config/apiConfig';\n// ----------------------------------------------------------------------\n\nconfigureServices();\n\nif (window.location.pathname === '/rcore/authentication/silent-renew') {\n new UserManager().signinSilentCallback();\n} else {\n ReactDOM.render(\n // \n ,\n // ,\n document.getElementById('root')\n );\n}\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n// serviceWorker.unregister();\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\"<<\", \"|\"] }] */\nconst IntegrationElement = {\n None: 0,\n HideTopBar: 1 << 0,\n HideControlPanel: 1 << 1,\n HideBreadCrumb: 1 << 2,\n HideHeader: 1 << 3,\n LinkRedirect: 1 << 4,\n ShowHomeButton: 1 << 5,\n HideMyActiviesHeader: 1 << 6,\n HideDefaultHomeLink: 1 << 7,\n RedirectToDetails: 1 << 8\n};\n\nconst IntegrationMode = {\n Teams:\n IntegrationElement.HideTopBar |\n IntegrationElement.HideControlPanel |\n IntegrationElement.HideBreadCrumb |\n IntegrationElement.HideHeader |\n IntegrationElement.LinkRedirect |\n IntegrationElement.ShowHomeButton |\n IntegrationElement.HideMyActiviesHeader |\n IntegrationElement.HideDefaultHomeLink |\n IntegrationElement.RedirectToDetails,\n Normal: IntegrationElement.None\n};\n\nexport { IntegrationMode, IntegrationElement };\n","import { useContext } from 'react';\nimport SettingsContext from '../../contexts/SettingsContext';\n\nconst useSettingsContext = () => {\n const context = useContext(SettingsContext);\n if (!context) {\n throw new Error('useSettingsContext must be used within SettingsContextProvider!');\n }\n return context;\n};\n\nexport default useSettingsContext;\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\"&\"] }] */\n// using helper function to localize the linting rules\nfunction CheckIntegrationSetting(integrationElement, integrationMode) {\n return !(integrationElement & integrationMode);\n}\n\nexport default CheckIntegrationSetting;\n","import Cookies from 'js-cookie';\n\nexport const RCORE_COOKIE = 'rcore';\nexport const THEME_COOKIE = 'SumtTheme';\n\nconst parseCookie = (cookieName, delimiter) => {\n const cookie = Cookies.get(cookieName);\n const keyValueMap = new Map();\n if (cookie) {\n const pairs = cookie.split('&');\n if (pairs) {\n pairs.forEach((pair) => {\n const p = pair.split(delimiter);\n keyValueMap.set(p[0], p[1]);\n });\n }\n }\n return keyValueMap;\n};\n\nconst setCookieValue = (key, value) => {\n const keyValueMap = parseCookie(RCORE_COOKIE, ':');\n // updated the value\n keyValueMap.set(key, value);\n const cookie = [];\n keyValueMap.forEach((v, k) => {\n const pair = `${k}:${v}`;\n cookie.push(pair);\n });\n Cookies.set(RCORE_COOKIE, cookie.join('&'));\n};\n\nconst getCookieValue = (key) => {\n const keyValueMap = parseCookie(RCORE_COOKIE, ':');\n return keyValueMap.get(key);\n};\n\nconst getThemeCookieKeyValue = (key) => {\n const keyValueMap = parseCookie(THEME_COOKIE, '=');\n if (keyValueMap.size > 0) {\n return keyValueMap.get(key);\n }\n return null;\n};\n\nconst setKeyValueInThemeCookie = (key, value) => {\n const keyValueMap = parseCookie(THEME_COOKIE, '=');\n keyValueMap.set(key, value);\n const cookie = [];\n keyValueMap.forEach((v, k) => {\n const pair = `${k}=${v}`;\n cookie.push(pair);\n });\n Cookies.set(THEME_COOKIE, cookie.join('&'));\n};\n\nconst removeCookie = (name) => {\n Cookies.remove(name);\n};\n\nexport {\n parseCookie,\n setCookieValue,\n getCookieValue,\n getThemeCookieKeyValue,\n setKeyValueInThemeCookie,\n removeCookie\n};\n","import { createContext } from 'react';\n\nconst CurrentThemeContext = createContext({});\n\nexport default CurrentThemeContext;\n","import { useContext } from 'react';\nimport IntegrationContext from '../../contexts/IntegrationContext';\n\nconst useIntegrationContext = () => {\n const context = useContext(IntegrationContext);\n if (!context) {\n throw new Error('useIntegrationContext must be used within IntegrationContextProvider!');\n }\n return context;\n};\n\nexport default useIntegrationContext;\n","import castLessVarsToJson from 'cast-less-vars-to-json';\nimport { lighten } from 'polished';\n\nconst snakeToCamel = (str) =>\n str.replace(/([-][a-z])/g, (group) => group.toUpperCase().replace('-', ''));\n\nconst nameProjectionFunc = (name) => snakeToCamel(name.substr(1));\n\nconst getLessVariables = (theme) => {\n let themeVarsObj = {};\n if (theme.json) {\n // Extracting less variables object\n themeVarsObj = JSON.parse(theme.json).vars;\n }\n return themeVarsObj;\n};\n\nconst evaluateLessVariables = async (themeVarsObj) => {\n if (themeVarsObj) {\n let themeVariablesString = '';\n // Forming less variables string.\n\n Object.entries(themeVarsObj).forEach(([key, value]) => {\n themeVariablesString += `${key}: ${value};`;\n });\n // Evaluating less variables\n return castLessVarsToJson(themeVariablesString, { nameProjectionFunc }).then((data) => {\n const VariblesData = data;\n if (\n !(\n 'topbarNavActiveStateBackground' in VariblesData &&\n VariblesData.topbarNavActiveStateBackground\n )\n ) {\n VariblesData.topbarNavActiveStateBackground = lighten(\n 0.35,\n VariblesData.leftNavHeaderBackground\n );\n }\n if (\n !(\n 'topbarNavActiveStateTextColor' in VariblesData &&\n VariblesData.topbarNavActiveStateTextColor\n )\n ) {\n VariblesData.topbarNavActiveStateTextColor = VariblesData.leftNavParentColor;\n }\n if (\n !(\n 'topbarNavHoverStateBackground' in VariblesData &&\n VariblesData.topbarNavHoverStateBackground\n )\n ) {\n VariblesData.topbarNavHoverStateBackground = lighten(\n 0.15,\n VariblesData.leftNavHeaderBackground\n );\n }\n if (\n !(\n 'topbarNavHoverStateTextColor' in VariblesData &&\n VariblesData.topbarNavHoverStateTextColor\n )\n ) {\n VariblesData.topbarNavHoverStateTextColor = VariblesData.leftNavParentColor;\n }\n return VariblesData;\n });\n }\n return {};\n};\n\nexport { getLessVariables, evaluateLessVariables };\n","import { UserManager, Log } from 'oidc-client';\nimport queryString from 'query-string';\nimport config from '../config/Config';\nimport { ApplicationPaths, BrokerParams } from './AuthorizationConstants';\nimport getLogger from '../utils/logger';\nimport { getLocalStorageItem } from '../utils/clientStorage';\n\nconst log = getLogger();\n\nconst populateOIDCLogLevel = () => {\n const logLevel = getLocalStorageItem('loglevel:rcore') || 'ERROR';\n // Possible log levels for oidc logger\n // NONE: 0; ERROR: 1; WARN: 2; INFO: 3; DEBUG: 4;\n return Log[logLevel.toUpperCase()];\n};\n\nLog.logger = console;\nLog.level = populateOIDCLogLevel();\n\nexport class AuthorizeService {\n callbacks = [];\n\n nextSubscriptionId = 0;\n\n isUserAuthenticated = false;\n\n loggedinUser = null;\n\n async isAuthenticated() {\n const user = await this.getUser();\n return !!user;\n }\n\n async getLoggedInUserId() {\n const user = await this.getUserProfile();\n return user && user.userid;\n }\n\n async getMaskedUserId() {\n const user = await this.getUserProfile();\n return user && user.maskeduserid;\n }\n\n async getUserProfile() {\n const user = await this.getUser();\n return user && user.profile;\n }\n\n async getUser() {\n if (this.loggedinUser) {\n return this.loggedinUser;\n }\n\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user;\n }\n\n async getAccessToken() {\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user && user.access_token;\n }\n\n async removeAccessToken() {\n await this.userManager.removeUser();\n }\n\n async signIn(state) {\n await this.ensureUserManagerInitialized();\n try {\n await this.userManager.signinRedirect(this.createArguments(state));\n return this.redirect();\n } catch (redirectError) {\n return this.error(redirectError);\n }\n }\n\n async completeSignIn(url) {\n try {\n await this.ensureUserManagerInitialized();\n let user = null;\n const that = this;\n return this.userManager\n .signinCallback(url)\n .then((data) => {\n user = data;\n that.updateState(user);\n return that.success(user && user.state);\n })\n .catch((error) => {\n log.error(error);\n return that.error('There is an error signing in');\n });\n } catch (error) {\n log.error(error);\n return this.error('There is an error signing in');\n }\n }\n\n async isEmulationMode() {\n const user = await this.getUserProfile();\n return user && user.emulatorusername && user.emulatorusername !== '';\n }\n\n async isGuestUser() {\n const user = await this.getUserProfile();\n return user && user.guestaccount && user.guestaccount === '1';\n }\n\n async signOut() {\n await this.ensureUserManagerInitialized();\n try {\n if (!this.isAuthenticated()) {\n return this.success();\n }\n await this.userManager.removeUser();\n\n this.updateState(null);\n\n window.location.href = this.signoutUrl();\n return this.redirect();\n } catch (redirectSignOutError) {\n return this.error(redirectSignOutError);\n }\n }\n\n updateState(user) {\n this.loggedinUser = user;\n if (user == null) {\n this.isUserAuthenticated = false;\n } else {\n this.isUserAuthenticated = !!this.loggedinUser;\n }\n this.notifySubscribers();\n }\n\n subscribe(callback) {\n this.callbacks.push({ callback, subscription: this.nextSubscriptionId++ });\n return this.nextSubscriptionId - 1;\n }\n\n unsubscribe(subscriptionId) {\n const subscriptionIndex = this.callbacks\n .map((e, i) => (e.subscription === subscriptionId ? { found: true, i } : { found: false }))\n .filter((e) => e.found === true);\n if (subscriptionIndex.length !== 1) {\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\n }\n\n this.callbacks.splice(subscriptionIndex[0].index, 1);\n }\n\n notifySubscribers() {\n for (let i = 0; i < this.callbacks.length; i++) {\n const { callback } = this.callbacks[i];\n callback();\n }\n }\n\n signoutUrl = () => `${config.domain}apisecurity/account/signout`;\n\n createArguments = (state) => ({ useReplaceToNavigate: true, data: state });\n\n error = (message) => ({ status: AuthenticationResultStatus.Fail, message });\n\n success = (state) => ({ status: AuthenticationResultStatus.Success, state });\n\n redirect = () => ({ status: AuthenticationResultStatus.Redirect });\n\n async ensureUserManagerInitialized() {\n if (this.userManager !== undefined) {\n return;\n }\n\n // Parse and add any extra parameters that need to be passed on to broker\n const brokerQueryParams = {};\n const qs = queryString.parse(window.location.search);\n BrokerParams.forEach((param) => {\n if (Object.keys(qs).includes(param)) {\n brokerQueryParams[`broker_${param}`] = qs[param];\n }\n });\n\n const settings = {\n authority: `${config.domain}apisecurity`,\n client_id: 'sumtotal_rcore',\n redirect_uri: `${config.spaSiteDomain}${config.appPrefix}${ApplicationPaths.LoginCallback}`,\n post_logout_redirect_uri: `${config.spaSiteDomain}${config.appPrefix}${ApplicationPaths.LogoutCallback}`,\n response_type: 'code',\n scope: 'openid profile allapis all',\n extraQueryParams: brokerQueryParams,\n timeInsensitive: true,\n silent_redirect_uri: `${config.spaSiteDomain}${config.appPrefix}${ApplicationPaths.SilentRediectUri}`\n };\n settings.automaticSilentRenew = true;\n settings.includeIdTokenInSilentRenew = false;\n\n this.userManager = new UserManager(settings);\n window.userManager = this.userManager;\n this.userManager.events.addUserSignedOut(async () => {\n await this.signOut();\n });\n this.userManager.events.addAccessTokenExpired(async () => {\n await this.signOut();\n });\n }\n\n static get instance() {\n return authService;\n }\n}\n\nconst authService = new AuthorizeService();\n\nexport default authService;\n\nexport const AuthenticationResultStatus = {\n Redirect: 'redirect',\n Success: 'success',\n Fail: 'fail'\n};\n","import { createContext } from 'react';\n\nconst UserContext = createContext();\n\nexport default UserContext;\n","import { createContext } from 'react';\n\nconst MessageContext = createContext();\n\nexport default MessageContext;\n","import { createContext } from 'react';\n\nconst settingContext = createContext({});\n\nexport default settingContext;\n","import { useContext } from 'react';\nimport BreadcrumbContext from '../../contexts/BreadcrumbContext';\n\nconst useBreadcrumbContext = () => {\n const context = useContext(BreadcrumbContext);\n if (!context) {\n throw new Error('useBreadcrumbContext must be used within BreadcrumbContextProvider!');\n }\n return context;\n};\n\nexport default useBreadcrumbContext;\n","import { createContext } from 'react';\n\nconst HeaderContext = createContext();\n\nexport default HeaderContext;\n","import { createContext } from 'react';\n\nconst BreadcrumbContext = createContext();\n\nexport default BreadcrumbContext;\n","import { createContext } from 'react';\n\nconst IntegrationContext = createContext();\n\nexport default IntegrationContext;\n","import localforage from 'localforage';\n\nlocalforage.config({ name: 'ST' });\n\nconst setIdbItem = async (key, value) => {\n // sets indexedDb item and returns promise\n const item = await localforage.setItem(key, value);\n return item;\n};\n\nconst getIdbItem = async (key) => {\n // gets indexedDb item and returns promise\n const item = await localforage.getItem(key);\n return item;\n};\n\nconst setLocalStorageItem = (key, value) => {\n // sets localStorage item\n localStorage.setItem(key, value);\n};\n\nconst getLocalStorageItem = (key) => {\n // gets localStorage item, returns string\n const item = localStorage.getItem(key);\n return item;\n};\n\nconst kvpConstants = {\n separator: '=',\n delimiter: '&'\n};\n\nconst parseKeyValue = (data) => {\n const keyValueMap = new Map();\n if (data) {\n const pairs = data.split(kvpConstants.delimiter);\n if (pairs) {\n pairs.forEach((pair) => {\n const p = pair.split(kvpConstants.separator);\n keyValueMap.set(p[0], p[1]);\n });\n }\n }\n return keyValueMap;\n};\n\nconst addUpdateKeyValue = (data, key, value) => {\n const map = parseKeyValue(data);\n // updated the value\n map.set(key, value);\n const kvp = [];\n map.forEach((v, k) => {\n const pair = `${k}${kvpConstants.separator}${v}`;\n kvp.push(pair);\n });\n return kvp.join(kvpConstants.delimiter);\n};\n\nconst removeLocalStorageItem = (key) => {\n // sets localStorage item\n localStorage.removeItem(key);\n};\n\nconst getAndRemoveLocalStorageItem = (key) => {\n // removes the localStorage item after reading and returning it.\n const item = localStorage.getItem(key);\n localStorage.removeItem(key);\n return item;\n};\n\nconst StorageConstants = {\n Keys: {\n sitemap: 'rcoreSitemapHash',\n theme: 'SumtTheme'\n },\n SitemapHash: 'sitemapHash',\n DashboardHash: 'dashboardHash'\n};\n\nexport {\n setIdbItem,\n getIdbItem,\n setLocalStorageItem,\n getLocalStorageItem,\n parseKeyValue,\n addUpdateKeyValue,\n removeLocalStorageItem,\n getAndRemoveLocalStorageItem,\n StorageConstants\n};\n","import { getLocalStorageItem } from './clientStorage';\n\nconst loglevel = require('loglevel');\n\n/**\n * Get the Logger Object\n * Usage: Import the getLogger & get the log object [ var log = getLogger();]\n * Use the appropriate below methods to log mesages\n * 1.log.trace(msg)\n * 2.log.debug(msg)\n * 3.log.info(msg)\n * 4.log.warn(msg)\n * 5.log.error(msg)\n */\nconst getLogger = () => {\n // Loglevel set to 'ERROR' by default\n const level = getLocalStorageItem('loglevel:rcore') || 'ERROR';\n // get the Logger object\n const log = loglevel.getLogger('rcore');\n // set the loglevel\n log.setLevel(level);\n return log;\n};\n\nexport default getLogger;\n","const requestHandler = (request) => {\n return request;\n};\n\nexport default requestHandler;\n","/* * Global configuration for axios * */\nimport axios from 'axios';\nimport authService from '../authentication/AuthorizeService';\nimport config from './Config';\nimport requestHandler from './apiRequestConfigHandler';\nimport { successResponseHandler, errorResponseHandler } from './apiResponseHandler';\n\nconst configureServices = () => {\n // Set the base url for api calls\n axios.defaults.baseURL = `${config.domain}Services/`;\n\n // Request interceptor\n axios.interceptors.request.use(\n (request) => requestHandler(request),\n (error) => {\n throw error;\n }\n );\n\n // Response interceptor\n axios.interceptors.response.use(\n (response) => successResponseHandler(response),\n (error) => errorResponseHandler(error)\n );\n};\n\nconst getCoreConfig = async () => {\n const baseConfig = await getConfig();\n // Set the core url for api calls\n const conf = {\n baseURL: `${config.domain}Core/Core/`,\n ...baseConfig\n };\n return conf;\n};\n\n// Gets the api request configuration\nconst getConfig = async () => {\n const accessToken = await authService.getAccessToken();\n const conf = {\n headers: {\n Authorization: `Bearer ${accessToken}`\n }\n };\n return conf;\n};\n\nconst getLMConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}learning/service/webapi/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getUserSummaryConfig = async () => {\n const baseConfig = await getConfig();\n // Set the usersummary (micro service) url for api calls\n const conf = {\n baseURL: `${config.domain}usersummary/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getAssignmentConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}assignments/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getViltConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}vilt/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getVivaConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}contentconnectors/api/v1/tenant/`,\n ...baseConfig\n };\n return conf;\n};\nconst getPlatformConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}platform/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getEMSIConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}emsibgconnector/api/v1/jobs/`,\n ...baseConfig\n };\n return conf;\n};\n\nconst getReportConfig = async () => {\n const baseConfig = await getConfig();\n const conf = {\n baseURL: `${config.domain}core/Reporting/`,\n ...baseConfig\n };\n return conf;\n};\n\nexport {\n configureServices,\n getConfig,\n getLMConfig,\n getUserSummaryConfig,\n getAssignmentConfig,\n getViltConfig,\n getVivaConfig,\n getPlatformConfig,\n getEMSIConfig,\n getCoreConfig,\n getReportConfig\n};\n","import authService from '../authentication/AuthorizeService';\n\nconst errorResponseHandler = (error) => {\n /*\n Errors can be user action too and response will be null. So removing this TODO code\n if (\n (error.response.status === 403 || error.response.status === 500) &&\n error.response.data &&\n error.response.data.exceptionMessage.toLowerCase().startsWith('invalid authorization token')\n ) {\n console.log(error.response);\n } */\n if (\n error.response.status === 401 &&\n error.response.data &&\n error.response.data.exceptionMessage &&\n error.response.data.exceptionMessage.toLowerCase().startsWith('invalid authorization token')\n ) {\n authService.signOut();\n }\n return Promise.reject(error);\n};\n\nconst successResponseHandler = (response) => response;\n\nexport { errorResponseHandler, successResponseHandler };\n","export class ConfigService {\n navigationType = 'history';\n\n domain = null;\n\n home = 'core/dash/home';\n\n spaSiteDomain = null;\n\n appPrefix = '/rcore';\n\n useSampleData = true;\n\n logo = '/core/headerlogo.sumttheme';\n\n favicon = 'core/favicon.sumttheme';\n\n api = {\n userMocks: true,\n url: process.env.API_URL || '/api'\n };\n\n constructor() {\n const link = document.createElement('a');\n link.href = document.location.href;\n this.spaSiteDomain = `${link.protocol}//${link.host}`;\n\n const suiteDomain = process.env.REACT_APP_SUITE_DOMAIN;\n\n if (!suiteDomain || suiteDomain === 'null') {\n this.domain = `${link.protocol}//${link.host}/`;\n } else {\n this.domain = process.env.REACT_APP_SUITE_DOMAIN;\n }\n }\n\n static get instance() {\n return config;\n }\n}\n\nconst config = new ConfigService();\n\nexport default config;\n","import { createGlobalStyle } from 'styled-components';\n\nconst GlobalStyle = createGlobalStyle`\nbody {\n font-family: ${(props) => props.theme.variables.fontFamilyBase};\n font-size: ${(props) => props.theme.variables.fontSizeBase};\n color: ${(props) => props.theme.variables.textColor};\n background-color: ${(props) => props.theme.variables.bodyBg};\n line-height: ${(props) => props.theme.variables.lineHeightBase};\n}\nh1 {\nfont-size: 1.25rem;\nfont-weight: bold;\ntext-transform: uppercase;\n}\nh2 {\nfont-size: 1.125rem;\nfont-weight: bold;\ntext-transform: uppercase;\n}\nh3 {\n font-size: 1rem;\n font-weight: bold;\n text-transform: uppercase;\n}\nh4 {\n font-size: 0.875rem;\n font-weight: bold;\n text-transform: uppercase;\n line-height:1.875rem;\n}\n.body1{\n font-size: 0.875rem;\n font-weight: normal;\n}\n.body2{\n font-size: 0.75rem;\n font-weight: normal;\n}\n@media print {\n .no-print { \n display: none; \n }\n .grid-print-class\n {grid-row-start: 1 !important;\n grid-column-start: 1 !important;\n grid-column-end: span 2 ;\n grid-row-end:span 2 !important; \n position: absolute;overflow: auto;\n }\n}\n\n`;\n\nexport default GlobalStyle;\n","import { useContext } from 'react';\nimport MessageContext from '../../contexts/MessageContext';\n\nconst useMessageContext = () => {\n const context = useContext(MessageContext);\n if (!context) {\n throw new Error('useMessageContext must be used within MessageContextProvider!');\n }\n return context;\n};\n\nexport default useMessageContext;\n","import React, { useState, useEffect } from 'react';\nimport { Theme } from '@sumtotal/react-foundation';\nimport { ThemeProvider, StyledEngineProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { ThemeProvider as StyledThemeProvider, StyleSheetManager } from 'styled-components';\nimport rtlPlugin from 'stylis-plugin-rtl';\nimport PropTypes from 'prop-types';\nimport getUserTheme from './services/themeService';\nimport { getLessVariables, evaluateLessVariables } from './services/themeHelper';\nimport CurrentThemeContext from '../contexts/ThemeContext';\nimport { getThemeCookieKeyValue } from '../utils/cookieHelper';\nimport GlobalStyle from './GlobalStyle';\nimport authService from '../authentication/AuthorizeService';\nimport getLogger from '../utils/logger';\n\nfunction ThemeContainer({ children }) {\n const [userTheme, setUserTheme] = useState(Theme());\n const [previewLogoUrl, setPreviewLogoUrl] = useState('');\n const [favIconUrl, setFavIconUrl] = useState('');\n\n const THEME_COOKIE_KEY = 'k';\n const THEME_COOKIE_USER_KEY = 'u';\n\n const curThemeKey = getThemeCookieKeyValue(THEME_COOKIE_KEY);\n useEffect(() => {\n (async () => {\n try {\n let currUserIdHash = getThemeCookieKeyValue(THEME_COOKIE_USER_KEY);\n if (currUserIdHash === null || currUserIdHash === undefined) {\n currUserIdHash = 0;\n }\n const userProfile = await authService.getUserProfile();\n if (userProfile && userProfile.personpk) {\n const isRTL = userProfile.isrtl && userProfile.isrtl.toLowerCase() === 'true';\n const { currentTheme } = await getUserTheme(\n userProfile.useridhash === currUserIdHash ? curThemeKey : null\n );\n if (!currentTheme || !currentTheme.json) {\n setUserTheme(Theme(null, isRTL));\n document.body.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n return;\n }\n // Extracting less variables object\n const themeVarsObj = getLessVariables(currentTheme);\n // Setting HeaderLogo from Theme\n setPreviewLogoUrl(currentTheme.clientLogo);\n setFavIconUrl(currentTheme.clientFavicon);\n // Evaluating less variables\n const varsJson = await evaluateLessVariables(themeVarsObj);\n const curTheme = Theme(varsJson, isRTL);\n setUserTheme(curTheme);\n document.body.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n } catch (errorResponse) {\n getLogger().error(errorResponse);\n setUserTheme(Theme());\n document.body.setAttribute('dir', 'ltr');\n }\n })();\n }, [curThemeKey]);\n\n return (\n \n \n \n \n \n \n {userTheme.direction === 'rtl' ? (\n {children}\n ) : (\n children\n )}\n \n \n \n \n );\n}\n\n// PropType check\nThemeContainer.propTypes = {\n children: PropTypes.node.isRequired\n};\n\nexport default ThemeContainer;\n","/* eslint-disable import/prefer-default-export */\nimport axios from 'axios';\nimport { getConfig, getUserSummaryConfig } from '../../../../../config/apiConfig';\nimport { getActivitiesAndTaskConfigurations } from '../../../../configuration/activitiesAndTasks/services/activitiesAndTaskConfigurationService';\nimport getLogger from '../../../../../utils/logger';\n\nconst getSettingValueFromContext = (settingContext, settingKey) => {\n if (settingContext && settingContext.settings) {\n const settingObj = settingContext.settings.filter((setting) => setting.key === settingKey)[0];\n return settingObj.value;\n }\n return false;\n};\n\nexport const getActivitiesAndTasksDomainSettings = getActivitiesAndTaskConfigurations;\n\nexport const getUserLearningData = async (payload, settingsData) => {\n const config = await getUserSummaryConfig();\n let isV2Enabled = 'false';\n isV2Enabled = getSettingValueFromContext(settingsData, 'ENABLE_EXPERIENCEHUB_VERSION_V2');\n const requestUrl =\n isV2Enabled.toLowerCase() === 'true' ? 'api/v2/experiencehub' : 'api/v1/experiencehub';\n return axios\n .post(requestUrl, payload, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const getPastDueCount = async (payload) => {\n const config = await getUserSummaryConfig();\n const requestUrl = 'api/v2/getmylearningpastduecount';\n return axios\n .post(requestUrl, payload, config)\n .then(async (response) => {\n return {\n data: response.data\n };\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const getCalendarData = async () => {\n const config = await getUserSummaryConfig();\n const requestUrl = `api/v2/GetCalendarData`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const registerForActivity = async (payload) => {\n const config = await getConfig();\n const requestUrl = `api/rcore/myActivities/register`;\n return axios\n .post(requestUrl, payload, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const getCertificate = async (activityId, attemptId) => {\n const config = await getConfig();\n const requestUrl = `api/ConfigurationApi/GetActivitiyCertificateDetails?activityId=${activityId}&attemptId=${attemptId}`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const downloadCertificate = async (activityId, attemptId) => {\n const config = await getConfig();\n const requestUrl = `api/ConfigurationApi/GetExportCertificateToPDf?activityId=${activityId}&attemptId=${attemptId}`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\n/**\n * Gets activity type details\n * @param {Number} attemptId\n *\n */\nexport const getLateCompletionDataByAttempt = async (attemptId) => {\n if (attemptId === undefined) {\n return null;\n }\n // Get auth header config\n const config = await getConfig();\n const url = `/api/tracklatecompletions/${attemptId}/`;\n return axios\n .get(url, config)\n .then(async (resp) => {\n return resp;\n })\n .catch((err) => {\n getLogger().error(err);\n return {};\n });\n};\n\nexport const saveLateComments = async (lateAttemptComments) => {\n // Get auth header config\n const config = await getConfig();\n try {\n const resp = await axios.post(\n `/api/tracklatecompletions/savelatecomments`,\n lateAttemptComments,\n config\n );\n return resp;\n } catch (err) {\n getLogger().error(err);\n return null;\n }\n};\n\nexport const cancelInterest = async (payload) => {\n const config = await getUserSummaryConfig();\n const requestUrl = `/api/v2/CancelInterest`;\n try {\n const resp = await axios.post(requestUrl, payload, config);\n return resp;\n } catch (err) {\n getLogger().error(err);\n return null;\n }\n};\n","import axios from 'axios';\nimport { getConfig } from '../../config/apiConfig';\n\nconst getUserTheme = async (themeKey) => {\n // Get auth header config\n const config = await getConfig();\n const url = 'api/rcore/usertheme';\n if (themeKey != null) {\n const reqObject = { OverrideTheme: true, ThemeKey: themeKey };\n config.params = reqObject;\n }\n return axios\n .get(url, config)\n .then(async (resp) => {\n let response = {};\n if (resp.data) {\n response = resp.data;\n }\n return response;\n })\n .catch((err) => {\n throw err.response;\n });\n};\n\nexport default getUserTheme;\n","import activityReducer from './activityReducer';\nimport errorsReducer from './errorsReducer';\n\nconst rootReducer = {\n activityBuilder: activityReducer,\n activityBuilderErrors: errorsReducer\n};\n\nexport default rootReducer;\n","import React, { useReducer } from 'react';\nimport BreadcrumbContext from './BreadcrumbContext';\n\nconst defaultBreadcrumbContext = {\n routeUrl: '',\n rpKey: '',\n isRcoreNode: false,\n breadcrumbData: []\n};\nconst BreadcrumbContextProvider = (props) => {\n const [state, dispatch] = useReducer(breadcrumbReducer, defaultBreadcrumbContext);\n const value = { breadcrumbContext: state, dispatch };\n return ;\n};\n\nconst breadcrumbReducer = (state, action) => {\n switch (action.type) {\n case 'POPULATE_BREADCRUMBS': {\n return {\n ...state,\n ...action.data\n };\n }\n case 'CLEAR_BREADCRUMBS': {\n return defaultBreadcrumbContext;\n }\n case 'UPDATE_BREADCRUMB': {\n // Expects a breadcrumb object with title attribute as a mandatory\n if (\n action.addBreadcrumb !== undefined &&\n action.addBreadcrumb.title !== undefined &&\n action.addBreadcrumb.title !== null &&\n action.addBreadcrumb.title !== ''\n ) {\n return {\n ...state,\n breadcrumbData: [...state.breadcrumbData, action.addBreadcrumb]\n };\n }\n throw new Error(`Title for the breadcrumb data is mandatory`);\n }\n case 'REMOVE_BREADCRUMB_ITEM': {\n // Method to remove a breadcrumb. Has to send the breadcrumb object.\n const newState = {\n ...state,\n breadcrumbData: state.breadcrumbData.filter(\n (node) =>\n node.title !== action.removeBreadcrumb.title && node.url !== action.removeBreadcrumb.url\n )\n };\n return newState;\n }\n default:\n throw new Error(`Unknown action type: ${action.type} for breadcrumb update`);\n }\n};\n\nexport default BreadcrumbContextProvider;\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\nimport authService from '../../../authentication/AuthorizeService';\n\nconst getUserProfile = async (id) => {\n // Get auth header config\n const config = await getConfig();\n let userId = id;\n if (!userId) {\n userId = await authService.getMaskedUserId();\n }\n\n const url = `api/rcore/userprofile?userId=${userId}`;\n\n return axios\n .get(url, config)\n .then(async (resp) => {\n let response = {};\n if (resp.data) {\n response = resp.data;\n }\n return response;\n })\n .catch((err) => {\n throw err.response;\n });\n};\n\nexport default getUserProfile;\n","import React, { useEffect, useState, useRef } from 'react';\nimport styled from 'styled-components';\nimport useUserContext from '../../../common/hooks/useUserContext';\nimport config from '../../../config/Config';\nimport UserSecurityQuestions from '../../userSecurityQuestion/components/UserSecurityQuestions';\n\nconst IFrame = styled.iframe`\n position: absolute;\n height: 100%;\n width: 100%;\n`;\n\nconst CorePillarFrame = () => {\n const { user } = useUserContext();\n const [frameSource, setFrameSource] = useState('');\n const coreframe = useRef(null);\n\n useEffect(() => {\n const coreUrl = `${config.domain}core/?rc=1`;\n const homeUrl = user.homePageUrl ? user.homePageUrl.split('?')[0] : '';\n const currentUrl = window.location.pathname.replace('/rcore/c', '/c');\n if (\n (currentUrl === '/rcore' || currentUrl.indexOf('/c/') === -1 || currentUrl === homeUrl) &&\n coreframe.current !== null &&\n coreframe.current.getAttribute('src') === ''\n ) {\n setFrameSource(coreUrl);\n }\n }, [user.homePageUrl]);\n\n return (\n <>\n \n {user.UserJustAnsweredSecurityQuestion === true && }\n \n );\n};\n\nexport default CorePillarFrame;\n","import { combineReducers } from 'redux';\nimport activityBuilderReducers from '../modules/learning/activityBuilder/state/reducers';\n\nconst rootReducer = combineReducers({\n ...activityBuilderReducers\n});\n\nexport default rootReducer;\n","import { applyMiddleware, createStore } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport rootReducer from './reducers';\n\nexport default createStore(rootReducer, applyMiddleware(thunkMiddleware));\n","/* eslint-disable import/prefer-default-export */\nimport axios from 'axios';\nimport { getUserSummaryConfig } from '../../../../config/apiConfig';\n\nexport const getActivitiesAndTaskConfigurations = async () => {\n // Get auth header config\n const config = await getUserSummaryConfig();\n const requestUrl = `api/v1/adminconfiguration`;\n return axios\n .get(requestUrl, config)\n .then(async (response) => {\n return response.data;\n })\n .catch(() => {\n return null;\n });\n};\n\nexport const saveActivitiesAndTaskConfigurations = async (data) => {\n // post auth header config\n const config = await getUserSummaryConfig();\n const requestUrl = `api/v1/saveadminconfiguration`;\n return axios\n .post(requestUrl, data, config)\n .then(async (response) => {\n return response;\n })\n .catch(() => {\n return null;\n });\n};\n","import React, { useState } from 'react';\nimport MessageContext from './MessageContext';\n\nconst defaultMessageContext = {\n text: '',\n refresh: false,\n severity: 'info',\n data: {}\n};\nconst MessageContextProvider = (props) => {\n const [messageContext, setMessageContext] = useState(defaultMessageContext);\n const value = { messageContext, setMessageContext };\n return ;\n};\n\nexport default MessageContextProvider;\n","import axios from 'axios';\nimport i18next from 'i18next';\nimport localforage from 'localforage';\nimport { getConfig } from '../../../config/apiConfig';\nimport { getIdbItem, setIdbItem } from '../../../utils/clientStorage';\nimport getLogger from '../../../utils/logger';\n\nconst getTranslationCategoryHash = async () => {\n const config = await getConfig();\n return axios\n .get('api/i18n/categoryhash', config)\n .then((response) => {\n if (response && response.data) {\n return JSON.parse(response.data);\n }\n return [];\n })\n .catch((err) => {\n getLogger().error(err);\n return [];\n });\n};\n\nconst refreshOutdatedTranslations = async () => {\n const cachedHash = await getIdbItem('translationHash');\n const keysToUpdate = [];\n let hashChanged = false;\n let store;\n return getTranslationCategoryHash()\n .then(async (response) => {\n if (!cachedHash || cachedHash.length === 0) {\n // If translation category hash is not present then update the hash in indexedDB\n await setIdbItem('translationHash', response);\n return null;\n }\n\n const keys = Object.keys(response);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const k of keys) {\n if (cachedHash[k] && cachedHash[k] !== response[k]) {\n if (!hashChanged) {\n hashChanged = true;\n store = localforage.createInstance({\n name: 'ST',\n storeName: 'rcore'\n });\n }\n // Below check is to ensure we reload only the categories that are already loaded by rcore.\n // using 'en-Us' language as it is configured to be the fallback language for i18n instance.\n // eslint-disable-next-line no-await-in-loop\n const category = await store.getItem(`en-US-${k}`);\n if (category) keysToUpdate.push(k);\n }\n }\n // Update the hash in indexedDB when there is a change in hash for atleast one category.\n if (hashChanged) await setIdbItem('translationHash', response);\n\n if (keysToUpdate.length > 0) {\n await i18next.reloadResources(null, keysToUpdate);\n }\n return null;\n })\n .catch((err) => {\n getLogger().error('Error in refreshing translations', err);\n });\n};\n\nexport { getTranslationCategoryHash, refreshOutdatedTranslations };\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\n\nconst getCoreSettings = async (allowCache) => {\n // Get auth header config\n const config = await getConfig();\n const url = `api/settingapi/GetSettingsForPreferenceScreen?allowCache=${allowCache}`;\n\n return axios\n .get(url, config)\n .then(async (resp) => {\n let response = {};\n if (resp.data) {\n response = resp.data;\n }\n return response;\n })\n .catch((err) => err.response);\n};\n\nexport const saveSettingDefinition = async (settings) => {\n // Get auth header config\n const config = await getConfig();\n const url = `api/settingapi/SaveSettingsForPreferenceScreen`;\n return axios\n .post(url, settings, config)\n .then(async (resp) => {\n return resp.data;\n })\n .catch((err) => err.response);\n};\n\nexport default getCoreSettings;\n","import useGoToHome from '../../../common/hooks/useGoToHome';\nimport useUserContext from '../../../common/hooks/useUserContext';\n\nfunction UserSecurityQuestions() {\n const { user, dispatch } = useUserContext();\n useGoToHome();\n if (user.UserJustAnsweredSecurityQuestion) {\n dispatch({ type: 'USER_ANSWERED_SECURITY_QUESTIONS' });\n }\n return null;\n}\n\nexport default UserSecurityQuestions;\n","import { useContext, useEffect } from 'react';\nimport { Theme } from '@sumtotal/react-foundation';\nimport { useHistory } from 'react-router-dom';\nimport queryString from 'query-string';\nimport getLogger from '../../../utils/logger';\nimport { postMessage, setCoreframeTitle, toggleVisibility } from '../services/coreIFrameHelper';\nimport CurrentThemeContext from '../../../contexts/ThemeContext';\nimport { evaluateLessVariables } from '../../../theme/services/themeHelper';\nimport { setCookieValue, removeCookie } from '../../../utils/cookieHelper';\nimport { ApplicationPaths, CookieNames } from '../../../authentication/AuthorizationConstants';\nimport useUserContext from '../../../common/hooks/useUserContext';\nimport useMessageContext from '../../../common/hooks/useMessageContext';\nimport useHeaderContext from '../../../common/hooks/useHeaderContext';\nimport authService from '../../../authentication/AuthorizeService';\nimport {\n removeLocalStorageItem,\n StorageConstants,\n setLocalStorageItem\n} from '../../../utils/clientStorage';\n\nfunction CoreMessageListener() {\n const { themeData, logoData, favIconData } = useContext(CurrentThemeContext);\n const [currentTheme, setCurrentTheme] = themeData;\n const setPreviewLogoUrl = logoData[1];\n const setFavIconUrl = favIconData[1];\n const { dispatch } = useUserContext();\n const headerData = useHeaderContext();\n const { setHeaderContext } = headerData;\n const messageContextData = useMessageContext();\n const { setMessageContext } = messageContextData;\n\n const history = useHistory();\n // On domain change clear rcore cookies, reload rcore & navigate to admin route.\n function onDomainChange(route) {\n let nextRoute = route;\n if (!nextRoute) {\n nextRoute = 'admindashboard';\n }\n // Clearing rcore cookies\n setCookieValue('sitemapHash', '');\n setCookieValue('dashboardHash', '');\n removeLocalStorageItem(StorageConstants.Keys.sitemap);\n\n // reload rcore\n window.location.assign(nextRoute);\n }\n\n function addRemoveBackdrop(action) {\n const backdropElements = document.getElementsByClassName('modal-backdrop');\n for (let index = 0; index < backdropElements.length; index++) {\n if (action === 'ADD') backdropElements[index].classList.add('modal-add-backdrop');\n else backdropElements[index].classList.remove('modal-add-backdrop');\n }\n }\n\n const MessageHandler = (e) => {\n if (e && e.data) {\n // check to make sure that we're not goiong to get some XSS by insuring that the script\n // is invoked by our origin.\n if (window.staticData && !e.origin.match(window.staticData.safeOrigin)) {\n getLogger().warn('Received a post from a window which did not have the same origin.');\n return;\n }\n\n let messageData = e.data;\n if (typeof messageData === 'string') {\n messageData = parseJson(messageData);\n }\n const { action, parameters } = messageData;\n switch (action) {\n // Update page title\n case 'RCORE_UPDATE_TITLE': {\n document.title = parameters.title;\n // Update core iframe title\n setCoreframeTitle(parameters.frameTitle);\n break;\n }\n case 'CORE_FRAME_LOADED': {\n setHeaderContext((state) => ({\n ...state,\n coreFrameLoaded: true\n }));\n break;\n }\n case 'CORE_SLIDEOUT_OPENED': {\n const isRcoreRoute = window.location.pathname.indexOf('/c/') < 0;\n toggleVisibility(true, isRcoreRoute);\n if (window.location.pathname.indexOf('/dashboardManager/designer/') > -1) {\n setHeaderContext((state) => ({\n ...state,\n closeRCoreSlideout: true\n }));\n }\n break;\n }\n case 'CORE_SLIDEOUT_CLOSED': {\n if (window.location.pathname.indexOf('/c/') < 0) {\n toggleVisibility(false);\n }\n if (e.data.parameters.elementId && e.data.parameters.elementId !== '') {\n document.getElementById(e.data.parameters.elementId).focus();\n }\n break;\n }\n // Update theme\n case 'RCORE_UPDATE_THEME': {\n if (currentTheme && currentTheme.variables) {\n evaluateLessVariables(parameters.themeVarsObject)\n .then((varsJson) => {\n const previewTheme = Theme(varsJson);\n setCurrentTheme(previewTheme);\n setPreviewLogoUrl(parameters.clientLogo);\n setFavIconUrl(parameters.clientFavIcon);\n return null;\n })\n .catch((errorResponse) => {\n getLogger().error(errorResponse);\n });\n }\n break;\n }\n // Update the url to handle deep link navigation\n case 'RCORE_UPDATE_NAVIGATION_URL': {\n const parsedUrl = queryString.parseUrl(parameters.url);\n if (parsedUrl.url === '/search') {\n return;\n }\n if (!parsedUrl.query.isDeepLink) {\n parsedUrl.query.isDeepLink = 1;\n }\n if (parsedUrl.query.rc) {\n delete parsedUrl.query.rc;\n }\n const prefix = parsedUrl.url.indexOf('/') === 0 ? '' : '/';\n const url = `/rcore/c${prefix}${queryString.stringifyUrl(parsedUrl)}`;\n // If next route is a core route and current route is rcore route, make sure that iframe is visible.\n if (url.indexOf('/c/') > 0 && window.location.pathname.indexOf('/c/') < 0) {\n toggleVisibility(true, true);\n }\n window.history.replaceState('', '', url);\n break;\n }\n // Navigate to RCore node URL without reloading\n case 'NAVIGATE_TO_RCORE': {\n history.push(parameters.url);\n break;\n }\n\n case 'RCORE_SECURITY_QUESTIONS_ANSWERED': {\n // Setting UserJustAnsweredSecurityQuestion value false for enable rcore components.\n const mustAnswerSecurityQuestions = parameters.mustSetSecurityQuestions;\n dispatch({ type: 'USER_SECURITY_QUESTIONS', mustAnswerSecurityQuestions });\n setLocalStorageItem('MustAnswerSecurityQuestions', mustAnswerSecurityQuestions);\n break;\n }\n // Event triggered on domain change.\n case 'RCORE_SWITCH_USER_DOMAIN': {\n setLocalStorageItem('MustAnswerSecurityQuestions', false);\n onDomainChange(parameters.route);\n break;\n }\n\n case 'RCORE_EMULATE_EMPLOYEE': {\n authService\n .removeAccessToken()\n .then(() => {\n window.location.assign(parameters.route);\n return null;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n break;\n }\n case 'RCORE_SESSION_EXPIRED': {\n removeCookie(CookieNames.ApiSecurity);\n authService\n .removeAccessToken()\n .then(() => {\n window.location.assign(e.data.parameters.route);\n return null;\n })\n .catch((err) => {\n getLogger().error(err);\n });\n break;\n }\n case 'RCORE_SESSION_LOGOFF': {\n history.push(ApplicationPaths.Logout);\n break;\n }\n case 'RCORE_SEARCH_CONTEXT_UPDATE': {\n setHeaderContext((state) => ({\n ...state,\n searchText: parameters.text,\n searchContext: parameters.context,\n view: parameters.view\n }));\n break;\n }\n // Update user data\n case 'RCORE_UPDATE_USER_DATA': {\n const userData = {};\n if (parameters.imagePath !== undefined) {\n userData.image = parameters.imagePath;\n } else {\n if (parameters.fullName !== undefined) {\n userData.name = parameters.fullName;\n }\n if (parameters.jobTitle !== undefined) {\n userData.jobTitle = parameters.jobTitle;\n }\n }\n dispatch({ type: 'UPDATE_USER_DETAILS', userData });\n break;\n }\n case 'RCORE_GOAL_DETAIL_SLIDEOUT_CLOSE': {\n if (parameters.message !== undefined && parameters.message !== '') {\n setMessageContext((state) => ({\n ...state,\n text: parameters.message,\n refresh: true,\n severity: parameters.severity\n }));\n }\n break;\n }\n // current logic is very similar to RCORE_GOAL_DETAIL_SLIDEOUT_CLOSE, will add more logic later\n case 'RCORE_SKILL_SLIDEOUT_CLOSE': {\n const isMarketComparisonRoute =\n window.location.pathname.indexOf('/marketComparison/') >= 0;\n if (\n parameters.message !== undefined &&\n parameters.message !== '' &&\n isMarketComparisonRoute\n ) {\n setMessageContext((state) => ({\n ...state,\n text: parameters.message,\n refresh: true,\n severity: parameters.severity,\n data: parameters.internalSkillData\n }));\n }\n\n break;\n }\n // Refresh timeline count\n case 'RCORE_REFRESH_TIMELINE_COUNT': {\n setHeaderContext((state) => ({\n ...state,\n refreshTimeline: true\n }));\n break;\n }\n // Reset Search Term and Search values\n case 'RCORE_RESET_SEARCH_VALUES': {\n setHeaderContext((state) => ({\n ...state,\n resetSearchValues: true\n }));\n break;\n }\n case 'RCORE_UPDATE_CART': {\n setHeaderContext((state) => ({\n ...state,\n cartItemsCount: parameters.cartItemsCount\n }));\n break;\n }\n case 'CORE_MODAL_OPENED': {\n addRemoveBackdrop('ADD');\n break;\n }\n case 'CORE_MODAL_CLOSED': {\n addRemoveBackdrop('REMOVE');\n break;\n }\n /* Default case - redirect message to core as pillars post messages to top object\n * This listener wouldn't directly handle pillar messages as of now\n */\n default: {\n postMessage(null, e.data, true);\n }\n }\n }\n };\n\n useEffect(() => {\n window.addEventListener('message', MessageHandler);\n return () => window.removeEventListener('message', MessageHandler);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return null;\n}\n\n/**\n * Parse the string into json (if valid). returns same string if failed to convert\n * @param {String} jsonString\n * @returns {String | Object}\n */\nconst parseJson = (jsonString) => {\n try {\n return JSON.parse(jsonString);\n } catch {\n return jsonString;\n }\n};\n\nexport default CoreMessageListener;\n","import { refreshOutdatedTranslations } from './translationService';\n\nconst bootstrapApplication = async () => {\n Promise.all([refreshOutdatedTranslations()])\n .then(() => {\n return true;\n })\n .catch(() => {\n return false;\n });\n};\n\nexport default bootstrapApplication;\n","import axios from 'axios';\nimport { getConfig } from '../../../config/apiConfig';\nimport getLogger from '../../../utils/logger';\n\nconst trackNavigationHistory = async (destinationType, destinationValue, destinationUrl) => {\n const config = await getConfig();\n const requestUrl = `api/core/person/navigationHistory?destinationType=${destinationType}&destinationValue=${destinationValue}&destinationUrl=${destinationUrl}`;\n return axios\n .post(requestUrl, null, config)\n .then(async (response) => {\n return response.data;\n })\n .catch((err) => {\n getLogger().error(err);\n return null;\n });\n};\n\nexport default trackNavigationHistory;\n","import { useHistory, useLocation } from 'react-router';\nimport useUserContext from '../../../common/hooks/useUserContext';\n\nconst SecurityQuestions = () => {\n const { user } = useUserContext();\n const history = useHistory();\n const location = useLocation();\n\n if (\n location.pathname !== '/' &&\n !location.pathname.startsWith('/c/') &&\n user.mustAnswerSecurityQuestions\n ) {\n history.push(\n '/c/usersecurityquestion?relyingParty=ELIXHRUI&nodeKey=self_questions&nodeUrl=/usersecurityquestion'\n );\n }\n return null;\n};\n\nexport default SecurityQuestions;\n","import {\n UPDATE_ACTIVITY_PROPERTY,\n SET_ACTIVITY_SECTION,\n SET_ACTIVITY_INFO,\n SET_PICKER_DATA,\n SET_LOADING,\n UPDATE_ACTIVITY_PROPERTIES,\n SET_SECTIONS_LOADED,\n SET_SECTIONS_LOADING,\n RESET_TEMP_DATA,\n SET_TEMP_DATA\n} from '../actions/actionTypes';\n\nconst initialState = {\n data: {}\n};\n\nconst activityReducer = (state = initialState, { type, payload } = {}) => {\n switch (type) {\n case UPDATE_ACTIVITY_PROPERTY: {\n const { section, property, value } = payload;\n return handleActivityPropertyChange(state, section, property, value);\n }\n case UPDATE_ACTIVITY_PROPERTIES: {\n const { properties } = payload;\n let latestState = state;\n properties.forEach(({ section, property, value }) => {\n latestState = handleActivityPropertyChange(latestState, section, property, value);\n });\n return latestState;\n }\n\n case SET_ACTIVITY_SECTION: {\n let newState = state;\n payload.forEach(({ section, data: sectionData }) => {\n newState = setSectionData(newState, section, sectionData);\n });\n return newState;\n }\n case SET_LOADING: {\n const { isLoading } = payload;\n return {\n ...state,\n isLoading\n };\n }\n case SET_ACTIVITY_INFO: {\n const { activityId, activityType, data } = payload;\n // Should reset data, so that pickers data is refereshed\n return {\n isLoading: state.isLoading,\n activityId,\n activityType,\n data\n };\n }\n case SET_PICKER_DATA: {\n const { property, value } = payload;\n return {\n ...state,\n pickersData: {\n ...state.pickersData,\n [property]: value\n }\n };\n }\n case SET_SECTIONS_LOADING:\n return setSectionsLoading(state, payload);\n case SET_SECTIONS_LOADED:\n return setSectionsLoaded(state, payload);\n case SET_TEMP_DATA: {\n const { property, value } = payload;\n return {\n ...state,\n tempData: {\n ...state.pickersData,\n [property]: value\n }\n };\n }\n case RESET_TEMP_DATA:\n return {\n ...state,\n tempData: undefined\n };\n default:\n return state;\n }\n};\n\nconst handleActivityPropertyChange = (state, section, property, value) => {\n const sectionsData = getNewSectionData(state, section, property, value);\n return setSectionData(state, section, sectionsData);\n};\n/**\n *\n * @param {Object} state\n * @param {String} section\n * @param {String} property\n * @param {*} value\n */\nconst getNewSectionData = (state, section, property, value) => {\n const { data } = state;\n const { [section]: sectionData } = data;\n let propertyValue = {\n [property]: value\n };\n if (section === property) {\n return value;\n }\n if (property && property.indexOf('.') !== -1) {\n const properties = property.split('.');\n let outerProperty = sectionData || {};\n propertyValue = outerProperty;\n properties.forEach((prop, index) => {\n outerProperty[prop] = outerProperty[prop] || {};\n if (index === properties.length - 1) {\n outerProperty[prop] = value;\n }\n outerProperty = outerProperty[prop];\n });\n }\n return {\n ...sectionData,\n ...propertyValue\n };\n};\nconst setSectionData = (state, section, data) => {\n if (state.data[section] === data) {\n return state;\n }\n return setData(state, {\n ...state.data,\n [section]: data\n });\n};\nconst setData = (state, data) => ({\n ...state,\n data\n});\n\n/**\n *\n * @param {*} state\n * @param {String[]} payload\n */\nconst setSectionsLoading = (state, payload) => {\n let isLoading = true;\n const { sectionsLoading = {} } = state;\n payload.forEach((section) => {\n isLoading = true;\n sectionsLoading[section] = true;\n });\n return {\n ...state,\n sectionsLoading: {\n ...sectionsLoading\n },\n isSectionsLoading: isLoading\n };\n};\n\n/**\n *\n * @param {*} state\n * @param {String[]} payload\n */\nconst setSectionsLoaded = (state, payload) => {\n let isLoading = false;\n const { sectionsLoading } = state;\n payload.forEach((section) => {\n sectionsLoading[section] = false;\n });\n Object.keys(sectionsLoading).forEach((s) => {\n if (sectionsLoading[s]) {\n isLoading = true;\n }\n });\n return {\n ...state,\n sectionsLoading: {\n ...sectionsLoading\n },\n isSectionsLoading: isLoading\n };\n};\nexport default activityReducer;\n","import {\n SET_ACTIVITY_PROPERTY_VALIDITY,\n SET_ACTIVITY_VALIDATIONS,\n ADD_ACTIVITY_VALIDATIONS,\n REMOVE_ACTIVITY_VALIDATIONS,\n REPLACE_ACTIVITY_SECTIONS_VALIDITY\n} from '../actions/actionTypes';\n\nconst initialState = {\n subSectionsProperties: {},\n sectionsValidState: {},\n isValid: false\n};\n\nconst errorsReducer = (state = initialState, { type, payload } = {}) => {\n const { validations = [] } = state;\n switch (type) {\n case SET_ACTIVITY_PROPERTY_VALIDITY: {\n const { section, property, isValid } = payload;\n return handleActivityPropertyChange(state, section, property, isValid);\n }\n case SET_ACTIVITY_VALIDATIONS:\n return {\n ...state,\n validations: payload\n };\n case ADD_ACTIVITY_VALIDATIONS: {\n const { code: addCode } = payload;\n /*\n const currentValidation = validations.find((v) => v.key === addCode);\n NOT REQUIRED AS OF NOW\n if (currentValidation) {\n return state;\n }\n */\n return {\n ...state,\n validations: [...validations, { key: addCode }]\n };\n }\n case REMOVE_ACTIVITY_VALIDATIONS: {\n const { code: removeCode } = payload;\n const codesToRemove = removeCode;\n if (!validations.some((v) => codesToRemove.includes(v.key))) {\n return state;\n }\n const newValidations = validations.filter((v) => !codesToRemove.includes(v.key));\n return {\n ...state,\n validations: newValidations\n };\n }\n case REPLACE_ACTIVITY_SECTIONS_VALIDITY: {\n return {\n ...state,\n sectionsValidState: payload.reduce((obj, sectionName) => {\n // Disabling as spread operater is expensive.\n // eslint-disable-next-line no-param-reassign\n obj[sectionName] = false;\n return obj;\n }, {})\n };\n }\n default:\n return state;\n }\n};\nconst handleActivityPropertyChange = (state, section, property, isValid) => {\n const { [section]: subSectionProperties } = state.subSectionsProperties || {};\n const newSubSectionProperties = {\n ...subSectionProperties,\n [property]: isValid\n };\n const newSubSectionsPropertiesState = {\n ...state.subSectionsProperties,\n [section]: newSubSectionProperties\n };\n const newSectionsValidState = {\n ...state.sectionsValidState,\n [section]: getSubSectionValid(newSubSectionsPropertiesState[section])\n };\n return {\n ...state,\n subSectionsProperties: newSubSectionsPropertiesState,\n sectionsValidState: newSectionsValidState,\n isValid: getAllSubsectionsValid(newSectionsValidState)\n };\n};\n\nconst getAllSubsectionsValid = (newErrors) => {\n let isValid = true;\n Object.keys(newErrors).forEach((key) => {\n isValid = isValid && newErrors[key];\n });\n return isValid;\n};\n/**\n * Checks if all the object values are true\n * @param {Object} newErrors\n * @returns {Boolean} if form is valid\n */\nexport const getSubSectionValid = (newErrors) => {\n let isValid = true;\n Object.keys(newErrors).forEach((key) => {\n isValid = isValid && newErrors[key];\n });\n return isValid;\n};\n\nexport default errorsReducer;\n","import React, { useState, useEffect } from 'react';\nimport SettingsContext from './SettingsContext';\nimport getCoreSettings from '../common/settings/services/settingService';\nimport authService from '../authentication/AuthorizeService';\n\nconst SettingsContextProvider = (props) => {\n const [settingsData, setData] = useState({});\n\n const getSettings = async () => {\n const status = await authService.isAuthenticated();\n if (status) {\n const settings = await getCoreSettings(true);\n setData(settings);\n }\n };\n useEffect(() => {\n getSettings();\n }, []);\n\n return ;\n};\n\nexport default SettingsContextProvider;\n","export const QueryParameterNames = {\n ReturnUrl: 'returnUrl',\n Message: 'message'\n};\n\nexport const LoginActions = {\n Login: 'login',\n LoginCallback: 'login-callback',\n SilentRediectUri: 'silent-renew'\n};\n\nexport const LogoutActions = {\n Logout: 'logout',\n LoggedOut: 'logged-out'\n};\n\nconst prefix = '/authentication';\n\nexport const ApplicationPaths = {\n AuthorizationPrefix: `${prefix}`,\n Login: `${prefix}/${LoginActions.Login}`,\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\n Logout: `${prefix}/${LogoutActions.Logout}`,\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\n LogoutCallback: `${prefix}/${LogoutActions.LoggedOut}`,\n SilentRediectUri: `${prefix}/${LoginActions.SilentRediectUri}`\n};\n\nexport const CookieNames = {\n ApiSecurity: 'SumTotal_ApiSecurity'\n};\n\nexport const BrokerParams = ['domain', 'lang', 'username', 'password'];\n","import Config from '../../../config/Config';\nimport getLogger from '../../../utils/logger';\n\nconst getIframeContainer = () => document.getElementById('CoreIFrame');\nconst getRcoreContainer = () => document.getElementById('rcore-page-content');\n\nconst postMessage = (\n action,\n data,\n forwardMessage = false,\n sourceElementId = null,\n opensSlideout = false,\n hideCore = false\n) => {\n const fromRcoreRoute = window.location.pathname.indexOf('/c/') < 0;\n if (!forwardMessage && !opensSlideout && !hideCore) {\n toggleVisibility(true, fromRcoreRoute);\n }\n const iFrameContainer = getIframeContainer();\n let message = null;\n if (forwardMessage) {\n message = data;\n } else if (sourceElementId) {\n message = { pillarKey: 'RCORE', action, parameters: data, elementId: sourceElementId };\n } else {\n message = { pillarKey: 'RCORE', action, parameters: data };\n }\n iFrameContainer.contentWindow.postMessage(message, '*');\n};\n\nconst setIframe = (url, title) => {\n const isRcoreRoute = window.location.pathname.indexOf('/c/') < 0;\n toggleVisibility(!isRcoreRoute);\n const iFrameContainer = getIframeContainer();\n iFrameContainer.src = `${Config.domain + url}${\n url.indexOf('?') !== -1 ? '&' : '?'\n }${coreRedirectionQS}=1`;\n if (title && title.length > 0) iFrameContainer.title = title;\n};\n\nconst setCoreframeTitle = (title) => {\n const iFrameContainer = getIframeContainer();\n iFrameContainer.title = title;\n};\n\nconst toggleVisibility = (visible, fromRcoreRoute) => {\n if (visible) {\n if (fromRcoreRoute) showIframe(fromRcoreRoute);\n else {\n setTimeout(() => {\n showIframe(fromRcoreRoute);\n }, 500);\n }\n } else {\n hideIframe();\n }\n};\n\nconst showIframe = (fromRcoreRoute) => {\n const iFrameContainer = getIframeContainer();\n iFrameContainer.style.visibility = 'visible';\n iFrameContainer.style.opacity = '1';\n iFrameContainer.style.position = null;\n iFrameContainer.style.zIndex = fromRcoreRoute ? '2' : 'inherit';\n iFrameContainer.removeAttribute('aria-hidden');\n const rcoreContainer = getRcoreContainer();\n if (rcoreContainer !== null && rcoreContainer !== undefined) {\n rcoreContainer.style.overflow = fromRcoreRoute ? 'auto' : null;\n rcoreContainer.style.position = fromRcoreRoute ? 'relative' : null;\n rcoreContainer.style.height = fromRcoreRoute ? '100%' : null;\n rcoreContainer.style.display = fromRcoreRoute ? 'block' : 'none';\n }\n};\n\nconst hideIframe = () => {\n const iFrameContainer = getIframeContainer();\n iFrameContainer.style.visibility = 'hidden';\n iFrameContainer.style.opacity = '0';\n iFrameContainer.style.position = 'absolute';\n iFrameContainer.style.zIndex = -2;\n iFrameContainer.setAttribute('aria-hidden', 'true');\n const rcoreContainer = getRcoreContainer();\n if (rcoreContainer !== null && rcoreContainer !== undefined) {\n rcoreContainer.style.overflow = 'auto';\n rcoreContainer.style.position = 'relative';\n rcoreContainer.style.height = '100%';\n }\n};\n\nconst coreRedirectionQS = 'rc';\n\nconst removeIframeClickListeners = () => {\n const iFrameContainer = getIframeContainer();\n addRemoveListenerForFrames(iFrameContainer, 'REMOVE', null);\n};\n\nconst addIframeClickListeners = (callback) => {\n const iFrameContainer = getIframeContainer();\n addRemoveListenerForFrames(iFrameContainer, 'ADD', callback);\n};\n\nconst addRemoveListenerForFrames = (parentContainer, action, callback = null) => {\n const iFrameContainer = parentContainer;\n if (iFrameContainer) {\n if (\n canAccessIFrame(iFrameContainer) &&\n iFrameContainer.contentWindow &&\n iFrameContainer.contentWindow.document &&\n iFrameContainer.contentWindow.document.body\n ) {\n iFrameContainer.contentWindow.document.body.onclick = action === 'ADD' ? callback : null;\n iFrameContainer.contentWindow.document.body.onmousedown = action === 'ADD' ? callback : null;\n const frames = parentContainer.contentDocument.getElementsByTagName('iframe');\n if (frames.length > 0) {\n for (let i = 0; i < frames.length; i++) {\n addRemoveListenerForFrames(frames[i], action, callback);\n }\n }\n } else {\n addListenerForCrossOriginFrame(parentContainer, action, callback);\n }\n }\n};\n\nconst addListenerForCrossOriginFrame = (frameContainer, action, callback = null) => {\n if (action === 'ADD' && callback) {\n const myConfObj = {\n iframeMouseOver: false\n };\n window.addEventListener('blur', function _blurHandler() {\n if (myConfObj.iframeMouseOver) {\n callback();\n }\n window.removeEventListener('blur', _blurHandler);\n });\n\n frameContainer.addEventListener('mouseover', function _mouseOverHandler() {\n myConfObj.iframeMouseOver = true;\n frameContainer.removeEventListener('mouseover', _mouseOverHandler);\n });\n\n frameContainer.addEventListener('mouseout', function _mouseOutHandler() {\n myConfObj.iframeMouseOver = true;\n frameContainer.removeEventListener('mouseout', _mouseOutHandler);\n });\n }\n};\n\nconst canAccessIFrame = (iframe) => {\n let html = null;\n try {\n const doc = iframe.contentDocument || iframe.contentWindow.document;\n html = doc.body.innerHTML;\n } catch (err) {\n getLogger().warn(`Its a cross-origin frame!! id:${iframe.id}, src: ${iframe.src}`);\n }\n return html !== null;\n};\n\nexport {\n postMessage,\n toggleVisibility,\n setIframe,\n setCoreframeTitle,\n getIframeContainer,\n removeIframeClickListeners,\n addIframeClickListeners,\n addListenerForCrossOriginFrame\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport getLogger from '../../../utils/logger';\nimport { IntegrationMode } from '../../../utils/IntegrationConstants';\nimport useIntegrationContext from '../../hooks/useIntegrationContext';\nimport CheckIntegrationSetting from '../../../utils/integrationHelper';\n\nconst log = getLogger();\n\nconst LayoutGrid = styled.div`\n --header-height: 3.25rem;\n display: -ms-grid;\n display: grid;\n @supports (-webkit-touch-callout: none) {\n position: fixed;\n }\n -ms-grid-rows: ${(props) =>\n props.showStickyHeader\n ? '3.25rem 2.4375rem minmax(10rem, 100%)'\n : '3.25rem minmax(10rem, 100%)'};\n grid-template-rows: ${(props) =>\n props.showStickyHeader\n ? '3.25rem 2.4375rem minmax(10rem, auto)'\n : '3.25rem minmax(10rem, auto)'};\n -ms-grid-columns: 5.625rem 1fr;\n grid-template-columns: 5.625rem 1fr;\n width: 100%;\n height: 100vh;\n max-height: -webkit-fill-available;\n\n .header {\n -ms-grid-row: 1;\n grid-row-start: 1;\n -ms-grid-column: span 2;\n grid-column-start: 1;\n -ms-grid-column-span: 2;\n grid-column-end: span 2;\n }\n\n .side-bar {\n -ms-grid-column: 1;\n grid-column-start: 1;\n -ms-grid-row: 2;\n grid-row-start: 2;\n -ms-grid-row-span: ${(props) => (props.showStickyHeader ? '2' : '1')};\n grid-row-end: ${(props) => (props.showStickyHeader ? 'span 2' : 'span 1')};\n }\n .content {\n -ms-grid-column: 2;\n grid-column-start: 2;\n -ms-grid-row: ${(props) => (props.showStickyHeader ? '3' : '2')};\n grid-row-start: ${(props) => (props.showStickyHeader ? '3' : '2')};\n position: relative;\n overflow: auto;\n }\n .sticky-header {\n -ms-grid-column: 2;\n grid-column-start: 2;\n -ms-grid-row: 2;\n grid-row-start: 2;\n position: relative;\n overflow: auto;\n }\n .modal-backdrop {\n visibility: hidden;\n position: fixed;\n inset: 0;\n z-index: 0;\n }\n .header-backdrop {\n height: 3.25rem;\n }\n .sidebar-backdrop {\n width: 5.625rem;\n top: 3.25rem;\n }\n .modal-add-backdrop {\n visibility: visible;\n // This z-index should be more than the z-index value of header component(1100).\n z-index: 1200;\n background-color: #000;\n opacity: 0.5;\n transition: opacity 0.15s linear;\n }\n`;\n\nconst IntegrationLayoutGrid = styled(LayoutGrid)`\n -ms-grid-rows: ${(props) =>\n props.showStickyHeader ? '2rem 2.4375rem minmax(10rem, 100%)' : '2rem minmax(10rem, 100%)'};\n grid-template-rows: ${(props) =>\n props.showStickyHeader ? '2rem 2.4375rem minmax(10rem, auto)' : '2rem minmax(10rem, auto)'};\n -ms-grid-columns: 1fr;\n grid-template-columns: 1fr;\n\n .content {\n -ms-grid-column: 1;\n grid-column-start: 1;\n -ms-grid-row: ${(props) => (props.showStickyHeader ? '3' : '2')};\n grid-row-start: ${(props) => (props.showStickyHeader ? '3' : '2')};\n }\n`;\n\n/**\n AppLayout\n* */\nfunction AppLayout({ showStickyHeader, children }) {\n const { integrationContext } = useIntegrationContext();\n\n // only show layout if rcore is top\n let showLayout = true;\n // this checks if we are in our own domain and also if we are top\n if (window.top !== window.self) {\n try {\n // If our parent contains rcore, then we are in an rcore iFrame\n // else we are in an external iFrame and the current window is the top frame\n if (window.parent.location.href.includes('rcore')) {\n showLayout = false;\n }\n } catch {\n log.info('Parent location is external');\n }\n }\n\n const Grid = CheckIntegrationSetting(IntegrationMode.Teams, integrationContext.mode)\n ? LayoutGrid\n : IntegrationLayoutGrid;\n\n if (showLayout) {\n return (\n <>\n \n {children}\n \n \n );\n }\n\n const containerExists = window.self.document.getElementById('CoreIFrame') == null ? 0 : 1;\n const container =\n containerExists === 1\n ? window.self.document.getElementById('CoreIFrame')\n : window.top.document.getElementById('CoreIFrame');\n\n if (container != null) {\n if (window.location.href.indexOf('/rcore/c/') > -1) {\n const url = window.location.href.replace('/rcore/c/', '/core/');\n const parsedUrl = queryString.parseUrl(url);\n if (!parsedUrl.query.rc) {\n parsedUrl.query.rc = 1;\n }\n window.location.href = queryString.stringifyUrl(parsedUrl);\n } else if (window.location.href.indexOf('/rcore') > -1) {\n const parsedUrl = queryString.parseUrl(window.location.href);\n if (parsedUrl.query.rc) {\n delete parsedUrl.query.rc;\n }\n if (containerExists === 1) window.parent.location.href = queryString.stringifyUrl(parsedUrl);\n else window.top.location.href = queryString.stringifyUrl(parsedUrl);\n }\n }\n return
    ;\n}\n\nAppLayout.propTypes = {\n /**\n Flag to show static emulation strip above the page content.\n * */\n showStickyHeader: PropTypes.bool,\n /**\n Children elements\n * */\n children: PropTypes.node\n};\n\nAppLayout.defaultProps = {\n showStickyHeader: false,\n children: null\n};\n\nexport default AppLayout;\n","const setPageTitleWithBreadcrumbData = (breadCrumbList) => {\n if (breadCrumbList.length > 0) {\n let pageTitle = '';\n breadCrumbList.forEach((item, index) => {\n if (index === 0) pageTitle = item.title;\n else pageTitle = `${item.title} - ${pageTitle}`;\n });\n setPageTitle(pageTitle);\n }\n};\n\nconst setPageTitle = (title) => {\n if (title)\n document.title =\n window.staticData && window.staticData.tenantName && window.staticData.tenantName !== ''\n ? `${title} - ${window.staticData.tenantName}`\n : `${title} - SumTotal`;\n};\n\nexport { setPageTitleWithBreadcrumbData, setPageTitle };\n","import { useHistory } from 'react-router-dom';\nimport useUserContext from './useUserContext';\n\nconst useGoToHome = () => {\n const history = useHistory();\n const { user } = useUserContext();\n if (user.homePageUrl && user.homePageUrl !== '') {\n history.push(user.homePageUrl);\n }\n};\n\nexport default useGoToHome;\n","import { useContext } from 'react';\nimport UserContext from '../../contexts/UserContext';\n\nconst useUserContext = () => {\n const context = useContext(UserContext);\n if (!context) {\n throw new Error('useUserContext must be used within UserContextProvider!');\n }\n return context;\n};\n\nexport default useUserContext;\n","export const SET_ACTIVITY_INFO = 'SET_ACTIVITY_INFO';\nexport const UPDATE_ACTIVITY_PROPERTY = 'UPDATE_ACTIVITY_PROPERTY';\nexport const UPDATE_ACTIVITY_PROPERTIES = 'UPDATE_ACTIVITY_PROPERTIES';\nexport const SET_ACTIVITY_SECTION = 'SET_ACTIVITY_SECTION';\nexport const SET_ACTIVITY_VALIDATIONS = 'SET_ACTIVITY_VALIDATIONS';\nexport const SET_ACTIVITY_PROPERTY_VALIDITY = 'SET_ACTIVITY_PROPERTY_VALIDITY';\nexport const REPLACE_ACTIVITY_SECTIONS_VALIDITY = 'REPLACE_ACTIVITY_SECTIONS_VALIDITY';\nexport const FETCH_ACTIVITY_SECTION = 'FETCH_ACTIVITY_SECTION';\nexport const SET_PICKER_DATA = 'SET_PICKER_DATA';\nexport const SET_LOADING = 'SET_LOADING';\nexport const ADD_ACTIVITY_VALIDATIONS = 'ADD_ACTIVITY_VALIDATIONS';\nexport const REMOVE_ACTIVITY_VALIDATIONS = 'REMOVE_ACTIVITY_VALIDATIONS';\nexport const SET_SECTIONS_LOADING = 'SET_SECTIONS_LOADING';\nexport const SET_SECTIONS_LOADED = 'SET_SECTIONS_LOADED';\nexport const RESET_TEMP_DATA = 'RESET_TEMP_DATA';\nexport const SET_TEMP_DATA = 'SET_TEMP_DATA';\n"],"sourceRoot":""}