{"version":3,"sources":["lib/utils/cognito-utils.ts","lib/utils/error-utils.ts","lib/config/index.ts","lib/http-client/errors.ts","lib/config/get-env-config.ts","lib/models/amplify-models.ts","lib/http-client/http-client.ts","lib/models/cookie-models.ts","lib/http-client/index.ts","lib/services/account-service.ts","lib/services/public-service.ts","lib/utils/token-utils.ts","lib/utils/url-utils.ts","contexts/alert-context.tsx","contexts/auto-sign-in-context.tsx","contexts/platforms-context.tsx","jss/colors.ts","jss/fonts.ts","jss/media-queries.ts","jss/mixins.ts","contexts/theme-context.tsx","hooks/use-alert.ts","hooks/use-auto-sign-in-context.tsx","hooks/use-handle-error.tsx","hooks/use-platforms.tsx","hooks/use-query.ts","hooks/use-redirect-user.ts","hooks/use-theme.ts","components/async-page.tsx","components/alert.tsx","assets/logos/logo-hackett.svg","components/error-display.tsx","components/fade-transition.tsx","assets/logos/logo-hackett-connect.svg","components/footer.tsx","assets/icons/icon-chevron-left.svg","components/header-no-auth.tsx","assets/icons/icon-chevron-right.svg","components/expanding-carousel.tsx","components/loader.tsx","components/loading-button.tsx","components/mfa-choice-modal.tsx","components/mfa-code-entry-modal.tsx","components/mfa-flow-modals.tsx","components/mfa-sms-setup-modal.tsx","components/mfa-totp-setup-modal.tsx","components/new-password-required-modal.tsx","components/phone-number-input.tsx","components/platform-selection-modal.tsx","components/private-route.tsx","components/render-json.tsx","assets/icons/icon-chevron-down.svg","components/select.tsx","jss/hooks/use-themed-bootstrap-styles.ts","components/update-credentials-modal.tsx","jss/bootstrap/_prefixes.ts","jss/bootstrap/badge.ts","jss/bootstrap/button.ts","jss/bootstrap/card.ts","assets/icons/icon-checkmark-checkbox.svg","jss/bootstrap/form.ts","jss/bootstrap/modal.ts","jss/hooks/use-global-styles.ts","assets/logos/logo-hackett-r.svg","pages/accept-invite.tsx","assets/images/ai-bg.png","assets/images/ai-xplr-bg.png","assets/images/ai-xplr-process.png","pages/sign-in.tsx","routes.tsx","pages/forgot-password.tsx","pages/forgot-password-submit.tsx","pages/change-mfa-method.tsx","pages/change-password.tsx","pages/version.tsx","pages/no-match.tsx","app.tsx","index.tsx"],"names":["refreshCognitoUserSession","cognitoUser","Promise","resolve","reject","getSession","sessionError","session","Error","refreshSession","getRefreshToken","refreshError","isErrorConfig","error","undefined","code","getEnvConfig","ERROR_CODES","HACKETT_USER_AUTH_BASE_URL","env","process","REACT_APP_HACKETT_USER_AUTH_BASE_URL","HACKETT_USER_AUTH_SHOW_DEBUG","REACT_APP_HACKETT_USER_AUTH_SHOW_DEBUG","HACKETT_USER_AUTH_USE_REAL_AUTH","REACT_APP_HACKETT_USER_AUTH_USE_REAL_AUTH","HACKETT_USER_AUTH_AMPLIFY_REGION","REACT_APP_HACKETT_USER_AUTH_AMPLIFY_REGION","HACKETT_USER_AUTH_AMPLIFY_USER_POOL_ID","REACT_APP_HACKETT_USER_AUTH_AMPLIFY_USER_POOL_ID","HACKETT_USER_AUTH_AMPLIFY_USER_POOL_WEB_CLIENT_ID","REACT_APP_HACKETT_USER_AUTH_AMPLIFY_USER_POOL_WEB_CLIENT_ID","HACKETT_USER_AUTH_PACKAGE_VERSION","HACKETT_USER_AUTH_PACKAGE_VESRION","SENTRY_DSN","REACT_APP_SENTRY_DSN","CHALLENGE_NAMES","errors","GENERIC","message","axiosError","REQUEST_ABORTED","HttpClient","httpConfig","_baseUrl","_headers","_requests","_axiosInstance","this","baseUrl","defaultHeaders","axios","create","interceptors","request","use","options","tokenHeaderKey","getToken","token","headers","tokenHeaderType","console","requestId","abort","config","response","isCancel","_getFormattedError","errorFromApi","data","apiError","requestConfig","orchestratedRequest","uuid","requestComplete","fetch","a","source","CancelToken","baseURL","cancelToken","JSON","stringify","_fetch","cancel","MFA_TYPES","PREFERRED_MFA_TYPES","COOKIES","SMS_MFA","SOFTWARE_TOKEN_MFA","NEW_PASSWORD_REQUIRED","MFA_SETUP","SELECT_MFA_TYPE","CUSTOM_CHALLENGE","httpSingleton","Cookies","get","ACCESS_TOKEN","accountService","orchestrateRequest","method","url","Authorization","publicService","inviteId","getEncryptedToken","user","getSignInUserSession","jwtToken","getIdToken","getJwtToken","encryptedToken","constructUrl","queryParameters","queryString","Object","keys","map","key","value","Array","isArray","v","join","handleDangerousHtmlClick","event","anchorElement","currentTarget","querySelector","contains","set","UPDATE_CREDENTIALS_LINK_CLICKED","AlertContext","createContext","AlertProvider","children","hideTimeoutRef","useRef","useState","alertChildren","setAlertChildren","alertVariant","setAlertVariant","alertDuration","setAlertDuration","alertIsShowing","setAlertIsShowing","hideAlert","useCallback","current","clearTimeout","showAlert","alertConfig","variant","duration","setTimeout","Provider","AutoSignInContext","AutoSignInProvider","autoSignInUser","setAutoSignInUser","emailAddress","setEmailAddress","password","setPassword","PlatformsContext","PlatformsProvider","platforms","setPlatforms","colors","white","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","black","primary","secondary","tertiary","success","warning","danger","info","dark","openSans","fontFamily","weights","regular","semiBold","bold","fonts","xxl","fontSize","lineHeight","xl","l","m","s","xs","xxs","openSansRegular","fontWeight","openSansSemiBold","openSansBold","screenWidths","mediaQueries","sm","md","lg","boxShadow","ThemeContext","ThemeProvider","props","theme","setInternalTheme","setColors","newColors","setFonts","newFonts","values","useAlert","Consumer","useContext","useAutoSignInContext","useHandleError","history","useHistory","className","status","replace","window","alert","usePlatformsContext","useQuery","URLSearchParams","useLocation","search","useRedirectUser","platform","useMemo","accessToken","redirectUrl","REDIRECT_URL","signOnUrl","soUrl","URL","rdUrl","searchParams","location","href","origin","pathname","fromEntries","createUseThemedStyles","style","createUseStyles","DISPLAY_STATES","useAlertStyles","alertOuter","top","left","zIndex","position","transition","display","alignItems","padding","backgroundColor","hideAlertButton","right","border","width","height","appearance","transform","content","opacity","Alert","classes","useEffect","CSSTransition","in","timeout","classNames","mountOnEnter","unmountOnExit","onClick","_g","AsyncPage","fetchData","abortFetch","fetchPageDataError","setFetchPageDataError","LOADING","displayState","setDisplayState","fetchPageData","SUCCESS","platformId","searchParamString","toString","signInUrl","name","Auth","signOut","ERROR","Loader","showBackButton","showRetryButton","onRetryButtonClick","getDisplayState","ErrorDisplay","Container","Row","Col","Button","goBack","json","useStyles","fadeTransitionOuter","animationDuration","overflow","opacityHeightTransition","FadeTransition","outerRef","innerRef","ref","onEnter","onEntering","targetHeight","getBoundingClientRect","onEntered","removeProperty","onExit","onExiting","onExited","_extends","assign","target","i","arguments","length","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgLogoHackett","_ref","svgRef","title","titleId","xmlns","viewBox","id","fill","points","d","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","ForwardRef","footer","bottom","textDecoration","Footer","footerRef","year","Date","getFullYear","handleWindowResize","setBodyPadding","footerHeight","clientHeight","document","body","paddingBottom","addEventListener","removeEventListener","rel","SvgLogoHackettConnect","fillRule","clipRule","_polygon","headerNoAuth","justifyContent","hackettConnectLogo","HeaderNoAuth","to","headerIconUrl","src","alt","platformName","margin","maxWidth","SvgIconChevronLeft","SvgIconChevronRight","animationDurationInMs","carousel","slide","backgroundSize","backgroundPosition","backgroundRepeat","slideContent","carouselControls","listStyle","borderRadius","marginLeft","marginRight","arrowButton","ExpandingCarousel","slides","currentSlideIndex","setCurrentSlideIndex","animationClassNames","setAnimationClassNames","currentSlide","handlePreviousButtonClick","previousValue","handleNextButtonClick","handlePageButtonClick","index","previousIndex","TransitionGroup","childFactory","child","React","cloneElement","backgroundImage","imageUrl","slideContentStyle","htmlContent","dangerouslySetInnerHTML","__html","action","_slide","slideIndex","active","useLoaderStyles","loader","size","borderTopColor","animation","memo","displayName","isLoading","LoadingButton","preventDefault","MfaChoiceModal","onTotpClick","onSmsClick","NOMFA","mfaMethod","setMfaMethod","handleOnEnter","handleContinueButtonClick","SMS","TOTP","Modal","centered","Header","Title","Body","Form","Check","type","checked","onChange","label","onHide","disabled","MfaCodeEntryModal","onSuccess","handleError","setIsLoading","codeInputValue","setCodeInputValue","confirmSignIn","challengeName","confirmedUser","onSubmit","Group","Label","Control","required","supportEmailAddress","MfaFlowModals","show","firstTimeSetup","onComplete","showMfaChoiceModal","setShowMfaChoiceModal","showMfaTotpSetupModal","setShowMfaTotpSetupModal","showMfaSmsSetupModal","setShowMfaSmsSetupModal","resetFlow","sendMFASelectionAnswer","_session","onFailure","onBack","username","getUsername","MfaSmsSetupModal","fauxSignedInUser","setFauxSignedInUser","phoneNumberInputValue","setPhoneNumberInputValue","codeSent","setCodeSent","phoneNumber","String","signIn","signedInUser","currentAuthenticatedUser","updateUserAttributes","phone_number","verifyUserAttribute","currentUser","verifyUserAttributeSubmit","setPreferredMFA","MfaTotpSetupModal","setCode","isShowingSecretKey","setIsShowingSecretKey","secretKey","setSecretKey","challengeAnswer","setChallengeAnswer","setupTOTP","setupCode","verifyTotpToken","cognitoUserSession","NewPasswordRequiredModal","newPasswordInputValue","setNewPasswordInputValue","requiresPhoneNumber","setRequiresPhoneNumber","challengeParam","requiredAttributes","includes","completeNewPassword","loggedUser","phoneNumberInput","flex","flexShrink","outline","PhoneNumberInput","defaultCountry","PlatformSelectionModal","redirectUserToUrl","urlObj","userAttributes","platformAttributeValue","find","cognitoUserAttribute","Name","Value","parsedPlatformAttributeValue","parse","PrivateView","routeIsInitialized","PrivateRoute","routeProps","render","renderJson","marginTop","RenderJson","select","cursor","color","fontStyle","downChevron","pointerEvents","UpdateCredentialsModal","onClose","ctaHtmlBottom","prefixes","badge","btn","card","solidButton","textColor","disabledTextColor","disabledBackgroundColor","Color","lighten","hex","darken","alpha","rgb","outlineButton","activeColor","disabledColor","string","borderColor","button","letterSpacing","borderBottom","form","marginBottom","textIndent","checkmarkIcon","flexDirection","userSelect","visibility","resize","modal","textTransform","borderTop","useGlobalStyles","html","minHeight","hr","ml","mr","mt","mb","mx","my","p","pl","pr","pt","pb","px","py","paddingLeft","paddingRight","paddingTop","_defs","useThemedBootstrapStyles","textAlign","overflowX","flexWrap","borderRight","borderLeft","whiteSpace","emailObfuscationRegex","SvgLogoHackettR","clipPath","logInFormOuter","carouselOuter","logInForm","hackettGroupLogo","routes","path","exact","private","header","main","redirectUser","emailInputValue","setEmailInputValue","passwordInputValue","setPasswordInputValue","setUser","isFirstTimeSetup","setIsFirstTimeSetup","showMfaFlow","setShowMfaFlow","showNewPasswordRequiredModal","setShowNewPasswordRequiredModal","showMfaCodeEntryModal","setShowMfaCodeEntryModal","showUpdateCredentialsModal","setShowUpdateCredentialsModal","platformSelectionUser","setPlatformSelectionUser","showPlatformSelectionModal","setShowPlatformSelectionModal","trim","cognitoUserHasClearedChallenges","handleHubAuthEvent","payload","Hub","listen","remove","ctaHtmlTop","controlId","placeholder","aiXplrBg","aiXplrSlide","open","aiBg","emailAddressInputValue","setEmailAddressInputValue","forgotPassword","push","span","offset","Card","setNewPasswordCodeInputValue","forgotPasswordSubmit","state","preferredMfaType","setPreferredMfaType","userPhoneNumber","setUserPhoneNumber","showMfaFlowModals","setShowMfaFlowModals","userResponse","getPreferredMFA","bypassCache","mfaResponse","phoneNumberAttributeValue","handleMfaFlowComplete","useParams","query","sessionExpired","userEmail","setUserEmail","showAlreadyAuthenticatedModal","setShowAlreadyAuthenticatedModal","invite","setInvite","showCodeModal","setShowCodeModal","emailAttributeValue","platformJson","it","signUp","attributes","autoSignIn","enabled","resendSignUp","confirmSignUp","acceptedInvite","readOnly","oldPasswordInputValue","setOldPasswordInputValue","changePassword","date","setDate","setStatus","version","setVersion","__VERSION__","Amplify","configure","region","userPoolId","userPoolWebClientId","RoutedApp","decodeURIComponent","appIsLoaded","scrollTo","checkAuthentication","fetchPlatform","initApp","isChangeAuthRoute","some","route","createElement","Route","ThemedApp","Sentry","dsn","release","integrations","routingInstrumentation","createBrowserHistory","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","App","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.bca38b5c.chunk.js","sourcesContent":["import { CognitoUser } from '@aws-amplify/auth';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\n\nexport function refreshCognitoUserSession(cognitoUser: CognitoUser) {\n\treturn new Promise((resolve: (session: CognitoUserSession) => void, reject: (error: Error) => void) => {\n\t\tcognitoUser.getSession(async (sessionError: Error | null, session: CognitoUserSession | null) => {\n\t\t\tif (sessionError) {\n\t\t\t\treject(sessionError);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!session) {\n\t\t\t\treject(new Error('Error getting CognitoUser session.'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcognitoUser.refreshSession(\n\t\t\t\tsession.getRefreshToken(),\n\t\t\t\tasync (refreshError: Error | null, session: CognitoUserSession | null) => {\n\t\t\t\t\tif (refreshError) {\n\t\t\t\t\t\treject(refreshError);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (session) {\n\t\t\t\t\t\tresolve(session);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treject(new Error('Error refreshing CognitoUser token.'));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t});\n}\n","import { ErrorConfig } from '@/lib/http-client';\n\nexport function isErrorConfig(error: ErrorConfig | unknown): error is ErrorConfig {\n\treturn (error as ErrorConfig).code !== undefined;\n}\n","import { getEnvConfig } from './get-env-config';\n\nexport default getEnvConfig();\n","import { AxiosError } from 'axios';\n\nexport enum ERROR_CODES {\n\tGENERIC = 'GENERIC',\n\tREQUEST_ABORTED = 'REQUEST_ABORTED',\n}\n\nexport type ErrorConfig = {\n\tcode: ERROR_CODES | string;\n\tstatus?: number;\n\tmessage: string;\n\tapiError?: ApiError;\n\taxiosError: AxiosError;\n};\n\nexport type ApiError = {\n\tcode: string;\n\tstackTrace: string;\n\tmessage: string;\n\tglobalErrors?: string;\n\tfieldErrors?: FieldError[];\n\tmetaData?: Record;\n};\n\ntype FieldError = {\n\tfield: string;\n\terror: string;\n};\n\nexport type ErrorGeneratorFuction = (error: AxiosError) => ErrorConfig;\nexport type ErrorsConfig = Record;\n\nexport const errors: ErrorsConfig = {\n\t[ERROR_CODES.GENERIC]: (error) => {\n\t\treturn {\n\t\t\tcode: ERROR_CODES.GENERIC,\n\t\t\tmessage: 'Sorry, an error occurred.',\n\t\t\taxiosError: error,\n\t\t};\n\t},\n\t[ERROR_CODES.REQUEST_ABORTED]: (error) => {\n\t\treturn {\n\t\t\tcode: ERROR_CODES.REQUEST_ABORTED,\n\t\t\tmessage: 'Sorry, the request was cancelled.',\n\t\t\taxiosError: error,\n\t\t};\n\t},\n};\n","import { ENV_VARS } from './constants';\n\nexport type Environment = {\n\t[varName in ENV_VARS]: string;\n};\n\nfunction processEnvToConfig(env: NodeJS.ProcessEnv): Readonly {\n\treturn {\n\t\tHACKETT_USER_AUTH_BASE_URL: env.REACT_APP_HACKETT_USER_AUTH_BASE_URL || '',\n\t\tHACKETT_USER_AUTH_SHOW_DEBUG: env.REACT_APP_HACKETT_USER_AUTH_SHOW_DEBUG || '',\n\t\tHACKETT_USER_AUTH_USE_REAL_AUTH: env.REACT_APP_HACKETT_USER_AUTH_USE_REAL_AUTH || '',\n\t\tHACKETT_USER_AUTH_AMPLIFY_REGION: env.REACT_APP_HACKETT_USER_AUTH_AMPLIFY_REGION || '',\n\t\tHACKETT_USER_AUTH_AMPLIFY_USER_POOL_ID: env.REACT_APP_HACKETT_USER_AUTH_AMPLIFY_USER_POOL_ID || '',\n\t\tHACKETT_USER_AUTH_AMPLIFY_USER_POOL_WEB_CLIENT_ID: env.REACT_APP_HACKETT_USER_AUTH_AMPLIFY_USER_POOL_WEB_CLIENT_ID || '',\n\t\tHACKETT_USER_AUTH_PACKAGE_VERSION: env.HACKETT_USER_AUTH_PACKAGE_VESRION || '',\n\t\tSENTRY_DSN: env.REACT_APP_SENTRY_DSN || ''\n\t};\n}\n\nexport function getEnvConfig(): Readonly {\n\treturn processEnvToConfig(process.env);\n}\n","export enum CHALLENGE_NAMES {\n\tSMS_MFA = 'SMS_MFA',\n\tSOFTWARE_TOKEN_MFA = 'SOFTWARE_TOKEN_MFA',\n\tNEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED',\n\tMFA_SETUP = 'MFA_SETUP',\n\tSELECT_MFA_TYPE = 'SELECT_MFA_TYPE',\n\tCUSTOM_CHALLENGE = 'CUSTOM_CHALLENGE',\n}\n\nexport const challengeNameDescriptions = {\n\t[CHALLENGE_NAMES.SMS_MFA]: 'SMS MFA',\n\t[CHALLENGE_NAMES.SOFTWARE_TOKEN_MFA]: 'Software Token MFA',\n\t[CHALLENGE_NAMES.NEW_PASSWORD_REQUIRED]: 'New Password Required',\n\t[CHALLENGE_NAMES.MFA_SETUP]: 'MFA Setup',\n\t[CHALLENGE_NAMES.SELECT_MFA_TYPE]: 'Select MFA Type',\n\t[CHALLENGE_NAMES.CUSTOM_CHALLENGE]: 'Custom Challenge',\n};\n\nexport enum MFA_TYPES {\n\tTOTP = 'TOTP',\n\tSMS = 'SMS',\n\tNOMFA = 'NOMFA',\n}\n\nexport enum PREFERRED_MFA_TYPES {\n\tSOFTWARE_TOKEN_MFA = 'SOFTWARE_TOKEN_MFA',\n\tSMS_MFA = 'SMS_MFA',\n\tNOMFA = 'NOMFA',\n}\n","import { v4 as uuid } from 'uuid';\nimport axios, { AxiosInstance, AxiosRequestConfig, AxiosError, AxiosResponse, CancelTokenSource } from 'axios';\nimport { ERROR_CODES, errors, ErrorConfig, ApiError } from './errors';\n\nexport type HttpConfig = {\n\tbaseUrl?: string;\n\tdefaultHeaders?: Record;\n\ttokenHeaderKey?: string;\n\ttokenHeaderType?: string;\n\tgetToken?(): Promise;\n};\n\nexport type OrchestratedRequest = {\n\trequestId: string;\n\trequestComplete: boolean;\n\tsource: CancelTokenSource;\n\tconfig: AxiosRequestConfig;\n\tfetch(): Promise;\n\tabort(): void;\n};\n\nexport class HttpClient {\n\t_baseUrl: string;\n\t_headers: any;\n\t_requests: Record>;\n\t_axiosInstance: AxiosInstance;\n\n\tconstructor(httpConfig: HttpConfig) {\n\t\tthis._baseUrl = httpConfig.baseUrl || '';\n\t\tthis._headers = httpConfig.defaultHeaders || {};\n\t\tthis._requests = {};\n\n\t\tthis._axiosInstance = axios.create();\n\t\tthis._axiosInstance.interceptors.request.use(\n\t\t\tasync (options) => {\n\t\t\t\tif (httpConfig.tokenHeaderKey && httpConfig.getToken) {\n\t\t\t\t\tconst token = await httpConfig.getToken();\n\n\t\t\t\t\tif (token) {\n\t\t\t\t\t\toptions.headers[httpConfig.tokenHeaderKey] = `${\n\t\t\t\t\t\t\thttpConfig.tokenHeaderType ? `${httpConfig.tokenHeaderType} ` : ''\n\t\t\t\t\t\t}${token}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn options;\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.error('Error obtaining accessToken:', error);\n\t\t\t}\n\t\t);\n\t}\n\n\tabortRequest(requestId: string) {\n\t\tconst request = this._requests[requestId];\n\n\t\tif (request) {\n\t\t\trequest.abort();\n\t\t}\n\t}\n\n\tasync _fetch(config: AxiosRequestConfig) {\n\t\ttry {\n\t\t\tconst response: AxiosResponse = await this._axiosInstance(config);\n\t\t\treturn response;\n\t\t} catch (error) {\n\t\t\tif (axios.isCancel(error)) {\n\t\t\t\tthrow errors[ERROR_CODES.REQUEST_ABORTED](error as AxiosError);\n\t\t\t} else {\n\t\t\t\tconst formattedError = this._getFormattedError(error as AxiosError);\n\t\t\t\tthrow formattedError;\n\t\t\t}\n\t\t}\n\t}\n\n\t_getFormattedError(error: AxiosError): ErrorConfig {\n\t\tconst errorFromApi: ApiError = error?.response?.data;\n\n\t\tif (errorFromApi) {\n\t\t\tconst formattedApiError: ErrorConfig = {\n\t\t\t\tcode: errorFromApi.code,\n\t\t\t\tmessage: errorFromApi.message,\n\t\t\t\tapiError: errorFromApi,\n\t\t\t\taxiosError: error,\n\t\t\t};\n\n\t\t\treturn formattedApiError;\n\t\t}\n\n\t\treturn errors[ERROR_CODES.GENERIC](error);\n\t}\n\n\torchestrateRequest(requestConfig: AxiosRequestConfig) {\n\t\tconst orchestratedRequest: OrchestratedRequest = {\n\t\t\trequestId: uuid(),\n\t\t\trequestComplete: false,\n\t\t} as any;\n\n\t\torchestratedRequest.fetch = async () => {\n\t\t\tconst source = axios.CancelToken.source();\n\n\t\t\torchestratedRequest.requestComplete = false;\n\t\t\torchestratedRequest.source = source;\n\t\t\torchestratedRequest.config = {\n\t\t\t\t...requestConfig,\n\t\t\t\tbaseURL: this._baseUrl,\n\t\t\t\theaders: {\n\t\t\t\t\t...this._headers,\n\t\t\t\t\t...requestConfig.headers,\n\t\t\t\t},\n\t\t\t\tcancelToken: source.token,\n\t\t\t\t...(requestConfig.data ? { data: JSON.stringify(requestConfig.data) } : {}),\n\t\t\t};\n\n\t\t\tthis._requests[orchestratedRequest.requestId] = orchestratedRequest;\n\n\t\t\tconst { data } = await this._fetch(orchestratedRequest.config);\n\n\t\t\torchestratedRequest.requestComplete = true;\n\t\t\tdelete this._requests[orchestratedRequest.requestId];\n\n\t\t\treturn data as T;\n\t\t};\n\n\t\torchestratedRequest.abort = () => {\n\t\t\tif (orchestratedRequest.requestComplete) return;\n\t\t\tif (!orchestratedRequest.source) return;\n\n\t\t\torchestratedRequest.source.cancel();\n\n\t\t\torchestratedRequest.requestComplete = true;\n\t\t\tdelete this._requests[orchestratedRequest.requestId];\n\t\t};\n\n\t\treturn orchestratedRequest;\n\t}\n}\n","export enum COOKIES {\n\tACCESS_TOKEN = 'ACCESS_TOKEN',\n\tREDIRECT_URL = 'REDIRECT_URL',\n\tUPDATE_CREDENTIALS_LINK_CLICKED = 'UPDATE_CREDENTIALS_LINK_CLICKED',\n}\n","import Cookies from 'js-cookie';\nimport config from '@/lib/config';\nimport { HttpClient } from './http-client';\nimport { COOKIES } from '../models';\n\nexport * from './errors';\n\nexport const httpSingleton = new HttpClient({\n\tbaseUrl: config.HACKETT_USER_AUTH_BASE_URL,\n\tdefaultHeaders: {\n\t\t'Content-Type': 'application/json',\n\t},\n\ttokenHeaderKey: 'Authorization',\n\ttokenHeaderType: 'Bearer',\n\tgetToken: async () => {\n\t\ttry {\n\t\t\treturn Cookies.get(COOKIES.ACCESS_TOKEN);\n\t\t} catch (error) {\n\t\t\treturn undefined;\n\t\t}\n\t},\n});\n","import { httpSingleton } from '@/lib/http-client';\n\nexport const accountService = {\n\tverifySignIn(token: string) {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/account/sign-in`,\n\t\t\theaders: { Authorization: 'Bearer ' + token },\n\t\t});\n\t},\n};\n","import { httpSingleton } from '@/lib/http-client';\nimport { AccountInviteModel, PlatformModel } from '@/lib/models';\n\nexport const publicService = {\n\tauthenticate(data: { emailAddress: string }) {\n\t\treturn httpSingleton.orchestrateRequest<{\n\t\t\ttoken: string;\n\t\t}>({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/public/authenticate`,\n\t\t\tdata,\n\t\t});\n\t},\n\tcreateInvite(data: {\n\t\temailAddress: string;\n\t\tname: string;\n\t\tredirectUrl: string;\n\t\texpirationDays: number;\n\t\tsuppressInvite?: boolean;\n\t}) {\n\t\treturn httpSingleton.orchestrateRequest<{\n\t\t\tinviteToken: string;\n\t\t}>({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/public/invite`,\n\t\t\tdata,\n\t\t});\n\t},\n\tgetInvite(inviteId: string) {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'GET',\n\t\t\turl: `/auth-service/api/v1/public/invite/${inviteId}`,\n\t\t});\n\t},\n\taccountInvite(inviteId: string) {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/public/invite/${inviteId}/accept`,\n\t\t});\n\t},\n\tupdateAndVerifyUserPhoneNumber(data: { username: string; phoneNumber: string }) {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/public/phone-number`,\n\t\t\tdata,\n\t\t});\n\t},\n\tverifyUserPhoneNumberSubmit(data: { username: string; clientId: string; code: string }) {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'POST',\n\t\t\turl: `/auth-service/api/v1/public/code`,\n\t\t\tdata,\n\t\t});\n\t},\n\tgetSystemStatus() {\n\t\treturn httpSingleton.orchestrateRequest<{\n\t\t\tversion: string;\n\t\t\tstatus: string;\n\t\t\tdate: string;\n\t\t}>({\n\t\t\tmethod: 'GET',\n\t\t\turl: '/auth-service/api/v1/public/system/status',\n\t\t});\n\t},\n\tgetError() {\n\t\treturn httpSingleton.orchestrateRequest({\n\t\t\tmethod: 'GET',\n\t\t\turl: '/auth-service/api/v1/public/system/error',\n\t\t});\n\t},\n\tgetPlatforms(data: { platform: string[] }) {\n\t\treturn httpSingleton.orchestrateRequest<{\n\t\t\tplatforms: PlatformModel[];\n\t\t}>({\n\t\t\tmethod: 'POST',\n\t\t\turl: '/auth-service/api/v1/public/platforms',\n\t\t\tdata,\n\t\t});\n\t},\n};\n","import { CognitoUser } from '@aws-amplify/auth';\nimport { accountService } from '../services';\n\nexport const getEncryptedToken = async (user?: CognitoUser) => {\n\tif (!user) {\n\t\tthrow new Error('user is undefined.');\n\t}\n\n\tconst session = user.getSignInUserSession();\n\n\tif (!session) {\n\t\tthrow new Error('user session is undefined.');\n\t}\n\n\tconst jwtToken = session.getIdToken().getJwtToken();\n\n\ttry {\n\t\tconst encryptedToken = await accountService.verifySignIn(jwtToken).fetch();\n\t\treturn encryptedToken;\n\t} catch (error) {\n\t\tthrow error;\n\t}\n};\n","import Cookies from 'js-cookie';\nimport { COOKIES } from '@/lib/models';\n\nexport function constructUrl(baseUrl: string, queryParameters?: Record) {\n\tif (queryParameters) {\n\t\tconst queryString = Object.keys(queryParameters)\n\t\t\t.map((key) => {\n\t\t\t\tconst value = queryParameters[key];\n\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\treturn value\n\t\t\t\t\t\t.map((v) => {\n\t\t\t\t\t\t\treturn `${key}=${v}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('&');\n\t\t\t\t}\n\n\t\t\t\treturn `${key}=${value}`;\n\t\t\t})\n\t\t\t.join('&');\n\n\t\treturn `${baseUrl}?${queryString}`;\n\t}\n\n\treturn baseUrl;\n}\n\nexport function getParsedQuery(query: URLSearchParams) {\n\tconst parsedQuery: Record = {};\n\n\tfor (const keyValuePair of query.entries()) {\n\t\tconst key = keyValuePair[0];\n\t\tconst value = keyValuePair[1];\n\n\t\tif (parsedQuery[key]) {\n\t\t\tif (Array.isArray(parsedQuery[key])) {\n\t\t\t\tparsedQuery[key].push(value);\n\t\t\t} else {\n\t\t\t\tconst previousValue = parsedQuery[key];\n\t\t\t\tparsedQuery[key] = [previousValue, value];\n\t\t\t}\n\t\t} else {\n\t\t\tparsedQuery[key] = value;\n\t\t}\n\t}\n\n\treturn parsedQuery;\n}\n\nexport const handleDangerousHtmlClick = (event: React.MouseEvent) => {\n\tconst anchorElement = event.currentTarget.querySelector('a');\n\n\tif (anchorElement && event.currentTarget.contains(anchorElement)) {\n\t\tCookies.set(COOKIES.UPDATE_CREDENTIALS_LINK_CLICKED, 'true');\n\t}\n};\n","import React, { FC, createContext, useState, useRef, useCallback } from 'react';\n\nexport type AlertVariant = '' | 'success' | 'warning' | 'danger';\n\ninterface AlertConfig {\n\tchildren: JSX.Element | (() => JSX.Element) | null;\n\tvariant: AlertVariant;\n\tduration?: number;\n}\n\ninterface AlertContextConfig {\n\talertChildren: JSX.Element | (() => JSX.Element) | null;\n\talertVariant: AlertVariant;\n\talertDuration: number;\n\talertIsShowing: boolean;\n\tshowAlert(alertConfig: AlertConfig): void;\n\thideAlert(): void;\n}\n\nexport const AlertContext = createContext({} as AlertContextConfig);\n\nconst defaultAlertDuration = 6000;\n\nexport const AlertProvider: FC = ({ children }) => {\n\tconst hideTimeoutRef = useRef(undefined);\n\n\tconst [alertChildren, setAlertChildren] = useState JSX.Element) | null>(null);\n\tconst [alertVariant, setAlertVariant] = useState('');\n\tconst [alertDuration, setAlertDuration] = useState(defaultAlertDuration);\n\tconst [alertIsShowing, setAlertIsShowing] = useState(false);\n\n\tconst hideAlert = useCallback(() => {\n\t\tif (hideTimeoutRef.current) {\n\t\t\tclearTimeout(hideTimeoutRef.current);\n\t\t}\n\n\t\tsetAlertIsShowing(false);\n\t}, []);\n\n\tconst showAlert = useCallback(\n\t\t(alertConfig: AlertConfig) => {\n\t\t\tsetAlertChildren(alertConfig.children);\n\t\t\tsetAlertVariant(alertConfig.variant);\n\t\t\tsetAlertDuration(alertConfig.duration ? alertConfig.duration : defaultAlertDuration);\n\t\t\tsetAlertIsShowing(true);\n\n\t\t\tif (hideTimeoutRef.current) {\n\t\t\t\tclearTimeout(hideTimeoutRef.current);\n\t\t\t}\n\n\t\t\thideTimeoutRef.current = setTimeout(() => {\n\t\t\t\thideAlert();\n\t\t\t}, alertDuration);\n\t\t},\n\t\t[alertDuration, hideAlert]\n\t);\n\n\tconst value = {\n\t\talertChildren,\n\t\talertVariant,\n\t\talertDuration,\n\t\talertIsShowing,\n\t\tshowAlert,\n\t\thideAlert,\n\t};\n\n\treturn {children};\n};\n","import React, { FC, createContext, useState } from 'react';\n\nimport { CognitoUser } from '@aws-amplify/auth';\n\ninterface AutoSignInAccountContextConfig {\n\tautoSignInUser: CognitoUser | undefined;\n\tsetAutoSignInUser: React.Dispatch>;\n\temailAddress: string;\n\tsetEmailAddress: React.Dispatch>;\n\tpassword: string;\n\tsetPassword: React.Dispatch>;\n}\n\nexport const AutoSignInContext = createContext({} as AutoSignInAccountContextConfig);\n\nexport const AutoSignInProvider: FC = ({ children }) => {\n\tconst [autoSignInUser, setAutoSignInUser] = useState(undefined);\n\tconst [emailAddress, setEmailAddress] = useState('');\n\tconst [password, setPassword] = useState('');\n\n\tconst value = {\n\t\tautoSignInUser,\n\t\tsetAutoSignInUser,\n\t\temailAddress,\n\t\tsetEmailAddress,\n\t\tpassword,\n\t\tsetPassword,\n\t};\n\n\treturn {children};\n};\n","import React, { FC, createContext, useState } from 'react';\n\nimport { PlatformModel } from '@/lib/models';\n\ninterface PlatformsContextConfig {\n\tplatforms: PlatformModel[];\n\tsetPlatforms: React.Dispatch>;\n}\n\nexport const PlatformsContext = createContext({} as PlatformsContextConfig);\n\nexport const PlatformsProvider: FC = ({ children }) => {\n\tconst [platforms, setPlatforms] = useState([]);\n\n\tconst value = {\n\t\tplatforms,\n\t\tsetPlatforms,\n\t};\n\n\treturn {children};\n};\n","export const colors = {\n\twhite: '#FFFFFF',\n\tgray100: '#F8F9FA',\n\tgray200: '#E9ECEF',\n\tgray300: '#DEE2E6',\n\tgray400: '#CED4DA',\n\tgray500: '#ADB5BD',\n\tgray600: '#6D757D',\n\tgray700: '#495057',\n\tgray800: '#343A40',\n\tgray900: '#212529',\n\tblack: '#000000',\n\n\tprimary: '#006FBA',\n\tsecondary: '#F47920',\n\ttertiary: '#890C58',\n\tsuccess: '#7FAA3A',\n\twarning: '#F8AF0A',\n\tdanger: '#CC3333',\n\tinfo: '#00A1DE',\n\tdark: '#002F5F',\n};\n","const openSans = {\n\tfontFamily: '\"Open Sans\", sans-serif',\n\tweights: {\n\t\tregular: 400,\n\t\tsemiBold: 600,\n\t\tbold: 700,\n\t},\n};\n\nexport const fonts = {\n\t...openSans,\n\txxl: {\n\t\tfontSize: '5.0rem',\n\t\tlineHeight: 1.2,\n\t},\n\txl: {\n\t\tfontSize: '3.6rem',\n\t\tlineHeight: 1.2,\n\t},\n\tl: {\n\t\tfontSize: '2.8rem',\n\t\tlineHeight: 1.2,\n\t},\n\tm: {\n\t\tfontSize: '2.2rem',\n\t\tlineHeight: 1.2,\n\t},\n\ts: {\n\t\tfontSize: '1.6rem',\n\t\tlineHeight: 1.5,\n\t},\n\txs: {\n\t\tfontSize: '1.4rem',\n\t\tlineHeight: 1.5,\n\t},\n\txxs: {\n\t\tfontSize: '1.2rem',\n\t\tlineHeight: 1.5,\n\t},\n\topenSansRegular: {\n\t\tfontFamily: openSans.fontFamily,\n\t\tfontWeight: openSans.weights.regular,\n\t},\n\topenSansSemiBold: {\n\t\tfontFamily: openSans.fontFamily,\n\t\tfontWeight: openSans.weights.semiBold,\n\t},\n\topenSansBold: {\n\t\tfontFamily: openSans.fontFamily,\n\t\tfontWeight: openSans.weights.bold,\n\t},\n};\n","// Media queries as defined by react-bootstrap 1.0.0-beta.17\n// https://react-bootstrap.github.io/layout/grid/\n\nexport const screenWidths = {\n\txs: 575,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n};\n\nexport const mediaQueries = {\n\txs: `@media(max-width: ${screenWidths.xs}px)`,\n\tsm: `@media(min-width: ${screenWidths.sm}px)`,\n\tmd: `@media(min-width: ${screenWidths.md}px)`,\n\tlg: `@media(min-width: ${screenWidths.lg}px)`,\n\txl: `@media(min-width: ${screenWidths.xl}px)`,\n};\n\nexport default mediaQueries;\n","export const boxShadow = {\n\tboxShadow: '0 1px 2px 0 rgba(91,103,112,0.1), 0 2px 5px 0 rgba(91,103,112,0.1)',\n};\n","import React, { FC, createContext, useState, useCallback } from 'react';\nimport { ThemeProvider as JssProvider } from 'react-jss';\n\nimport { colors, fonts } from '@/jss';\n\ntype TypeOfColors = typeof colors;\ntype TypeOfFonts = typeof fonts;\n\nexport interface ThemeConfig {\n\tcolors: TypeOfColors;\n\tfonts: TypeOfFonts;\n}\n\ninterface ThemeContextConfig {\n\ttheme: ThemeConfig;\n\tsetColors(values: Partial): void;\n\tsetFonts(values: Partial): void;\n}\n\nexport const ThemeContext = createContext({} as ThemeContextConfig);\n\nexport const ThemeProvider: FC = (props) => {\n\tconst [theme, setInternalTheme] = useState({\n\t\tcolors,\n\t\tfonts,\n\t});\n\n\tconst setColors = useCallback(\n\t\t(newColors: Partial) => {\n\t\t\tsetInternalTheme({\n\t\t\t\t...theme,\n\t\t\t\tcolors: {\n\t\t\t\t\t...colors,\n\t\t\t\t\t...newColors,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t[theme]\n\t);\n\n\tconst setFonts = useCallback(\n\t\t(newFonts: Partial) => {\n\t\t\tsetInternalTheme({\n\t\t\t\t...theme,\n\t\t\t\tfonts: {\n\t\t\t\t\t...fonts,\n\t\t\t\t\t...newFonts,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t[theme]\n\t);\n\n\tconst values = {\n\t\ttheme,\n\t\tsetColors,\n\t\tsetFonts,\n\t};\n\n\treturn (\n\t\t\n\t\t\t{props.children}\n\t\t\n\t);\n};\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n","import { useContext } from 'react';\nimport { AlertContext } from '@/contexts';\n\nexport const useAlert = () => {\n\tconst alertContext = useContext(AlertContext);\n\treturn alertContext;\n};\n","import { useContext } from 'react';\n\nimport { AutoSignInContext } from '@/contexts';\n\nexport const useAutoSignInContext = () => {\n\tconst autoSignInContext = useContext(AutoSignInContext);\n\treturn autoSignInContext;\n};\n","import React, { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { isErrorConfig } from '@/lib/utils';\nimport { ERROR_CODES } from '@/lib/http-client';\nimport { useAlert } from '@/hooks';\n\nexport function useHandleError() {\n\tconst history = useHistory();\n\tconst { showAlert } = useAlert();\n\n\tconst handleError = useCallback(\n\t\t(error: unknown) => {\n\t\t\tif (isErrorConfig(error)) {\n\t\t\t\tif (error.code === ERROR_CODES.REQUEST_ABORTED) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'danger',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tError: {error.message}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tif (\n\t\t\t\t\terror.code === 'AUTHENTICATION_REQUIRED' ||\n\t\t\t\t\terror.code === 'NotAuthorizedException' ||\n\t\t\t\t\terror.status === 401\n\t\t\t\t) {\n\t\t\t\t\treturn history.replace('/sign-in');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twindow.alert(error);\n\t\t\t}\n\t\t},\n\t\t[history, showAlert]\n\t);\n\n\treturn handleError;\n}\n","import { useContext } from 'react';\n\nimport { PlatformsContext } from '@/contexts';\n\nexport const usePlatformsContext = () => {\n\tconst platformContext = useContext(PlatformsContext);\n\treturn platformContext;\n};\n","import { useLocation } from 'react-router-dom';\n\nexport function useQuery() {\n\treturn new URLSearchParams(useLocation().search);\n}\n","import { useCallback, useMemo } from 'react';\nimport { usePlatformsContext } from './use-platforms';\nimport Cookies from 'js-cookie';\nimport { COOKIES } from '@/lib/models';\nimport { constructUrl } from '@/lib/utils';\n\nexport const useRedirectUser = () => {\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\tconst redirectUser = useCallback(\n\t\t(accessToken?: string) => {\n\t\t\tconst redirectUrl = Cookies.get(COOKIES.REDIRECT_URL);\n\n\t\t\tif (platform?.signOnUrl && redirectUrl) {\n\t\t\t\tconst soUrl = new URL(platform?.signOnUrl);\n\t\t\t\tconst rdUrl = new URL(redirectUrl);\n\t\t\t\tconst searchParams = new URLSearchParams(rdUrl.search);\n\n\t\t\t\tif (accessToken) {\n\t\t\t\t\tsearchParams.set('X-Hackett-Access-Token', accessToken);\n\t\t\t\t}\n\n\t\t\t\twindow.location.href = constructUrl(\n\t\t\t\t\t`${soUrl.origin}${rdUrl.pathname}`,\n\t\t\t\t\tObject.fromEntries(searchParams)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (platform?.signOnUrl && !redirectUrl) {\n\t\t\t\tconst url = new URL(platform?.signOnUrl);\n\t\t\t\tconst searchParams = new URLSearchParams(url.search);\n\n\t\t\t\tif (accessToken) {\n\t\t\t\t\tsearchParams.set('X-Hackett-Access-Token', accessToken);\n\t\t\t\t}\n\n\t\t\t\twindow.location.href = constructUrl(`${url.origin}${url.pathname}`, Object.fromEntries(searchParams));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!platform?.signOnUrl && redirectUrl) {\n\t\t\t\tconst url = new URL(redirectUrl);\n\t\t\t\tconst searchParams = new URLSearchParams(url.search);\n\n\t\t\t\tif (accessToken) {\n\t\t\t\t\tsearchParams.set('X-Hackett-Access-Token', accessToken);\n\t\t\t\t}\n\n\t\t\t\twindow.location.href = constructUrl(`${url.origin}${url.pathname}`, Object.fromEntries(searchParams));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthrow new Error('platform?.signOnUrl and redirectUrl are undefined.');\n\t\t},\n\t\t[platform]\n\t);\n\n\treturn redirectUser;\n};\n","import { useContext } from 'react';\nimport { createUseStyles } from 'react-jss';\n\nimport { ThemeConfig, ThemeContext } from '@/contexts/theme-context';\n\nexport function useTheme() {\n\tconst themeContext = useContext(ThemeContext);\n\treturn themeContext;\n}\n\nexport function createUseThemedStyles(\n\tstyle: Record | ((theme: Theme) => Record)\n) {\n\treturn createUseStyles(style);\n}\n","import React, { FC, useState, useEffect, useCallback } from 'react';\nimport { Auth } from 'aws-amplify';\n\nimport { isErrorConfig } from '@/lib/utils';\nimport { ErrorConfig, ERROR_CODES } from '@/lib/http-client';\nimport { usePlatformsContext } from '@/hooks';\nimport { ErrorDisplay, Loader } from '@/components';\n\nenum DISPLAY_STATES {\n\tLOADING = 'LOADING',\n\tSUCCESS = 'SUCCESS',\n\tERROR = 'ERROR',\n}\n\ninterface AsyncPageProps {\n\tfetchData(): Promise;\n\tabortFetch?(): void;\n}\n\nexport const AsyncPage: FC = ({ children, fetchData, abortFetch }) => {\n\tconst [fetchPageDataError, setFetchPageDataError] = useState(undefined);\n\tconst [displayState, setDisplayState] = useState(DISPLAY_STATES.LOADING);\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = platforms?.[0];\n\n\tconst fetchPageData = useCallback(async () => {\n\t\tsetDisplayState(DISPLAY_STATES.LOADING);\n\t\tsetFetchPageDataError(undefined);\n\n\t\ttry {\n\t\t\tawait fetchData();\n\t\t\tsetDisplayState(DISPLAY_STATES.SUCCESS);\n\t\t} catch (error) {\n\t\t\tconst searchParams = new URLSearchParams(window.location.search);\n\n\t\t\tif (platform) {\n\t\t\t\tsearchParams.set('platform', platform.platformId);\n\t\t\t}\n\n\t\t\tconst searchParamString = searchParams.toString();\n\t\t\tconst signInUrl = searchParamString ? `/sign-in?${searchParamString}` : '/sign-in';\n\n\t\t\tif (isErrorConfig(error)) {\n\t\t\t\tif (error.code === ERROR_CODES.REQUEST_ABORTED) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (error.code === 'INVITE_ACCEPTED') {\n\t\t\t\t\twindow.location.href = signInUrl;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\terror.code === 'AUTHENTICATION_REQUIRED' ||\n\t\t\t\t\terror.code === 'NotAuthorizedException' ||\n\t\t\t\t\terror.status === 401\n\t\t\t\t) {\n\t\t\t\t\twindow.location.href = signInUrl;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\t(error as any).code === 'UserNotFoundException' ||\n\t\t\t\t\t(error as any).name === 'UserNotFoundException'\n\t\t\t\t) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Auth.signOut();\n\t\t\t\t\t\twindow.location.href = signInUrl;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tsetFetchPageDataError(error);\n\t\t\t\t\t\tsetDisplayState(DISPLAY_STATES.ERROR);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (error === 'The user is not authenticated') {\n\t\t\t\t\twindow.location.href = signInUrl;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetFetchPageDataError(error);\n\t\t\tsetDisplayState(DISPLAY_STATES.ERROR);\n\t\t}\n\t}, [fetchData, platform]);\n\n\tuseEffect(() => {\n\t\tfetchPageData();\n\n\t\treturn () => {\n\t\t\ttypeof abortFetch === 'function' && abortFetch();\n\t\t};\n\t}, [fetchPageData, abortFetch]);\n\n\tfunction getDisplayState() {\n\t\tswitch (displayState) {\n\t\t\tcase DISPLAY_STATES.LOADING:\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\tcase DISPLAY_STATES.SUCCESS:\n\t\t\t\treturn children;\n\t\t\tcase DISPLAY_STATES.ERROR:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn <>;\n\t\t}\n\t}\n\n\treturn <>{getDisplayState()};\n};\n","import React, { FC, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\n\nimport { createUseThemedStyles, useAlert } from '@/hooks';\n\nconst transitionDuration = 200;\n\nconst useAlertStyles = createUseThemedStyles((theme) => ({\n\talertOuter: {\n\t\ttop: 20,\n\t\tleft: '50%',\n\t\tzIndex: 1051, // Must be placed above Bootstrap's modal shadow\n\t\tposition: 'fixed',\n\t\ttransition: `all ${transitionDuration}ms`,\n\t},\n\talert: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\ttransition: `background-color ${transitionDuration}ms`,\n\t\tpadding: `15px 40px 15px 25px`,\n\t\t'&.success': {\n\t\t\tbackgroundColor: theme.colors.success,\n\t\t},\n\t\t'&.warning': {\n\t\t\tbackgroundColor: theme.colors.warning,\n\t\t},\n\t\t'&.danger': {\n\t\t\tbackgroundColor: theme.colors.danger,\n\t\t},\n\t},\n\thideAlertButton: {\n\t\tright: 2,\n\t\tborder: 0,\n\t\twidth: 44,\n\t\theight: 44,\n\t\ttop: '50%',\n\t\tappearance: 'none',\n\t\tposition: 'absolute',\n\t\ttransform: 'translateY(-50%)',\n\t\tbackgroundColor: 'transparent',\n\t\t'&:before, &:after': {\n\t\t\ttop: '50%',\n\t\t\twidth: 12,\n\t\t\theight: 2,\n\t\t\tleft: '50%',\n\t\t\tcontent: '\"\"',\n\t\t\tposition: 'absolute',\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t},\n\t\t'&:before': {\n\t\t\ttransform: 'translate(-50%, -50%) rotate(-45deg)',\n\t\t},\n\t\t'&:after': {\n\t\t\ttransform: 'translate(-50%, -50%) rotate(45deg)',\n\t\t},\n\t},\n\t'@global': {\n\t\t'.alert-enter': {\n\t\t\topacity: 0,\n\t\t\ttransform: 'translate(-50%, -100%)',\n\t\t},\n\t\t'.alert-enter-active': {\n\t\t\topacity: 1,\n\t\t\ttransform: 'translate(-50%, 0)',\n\t\t},\n\t\t'.alert-enter-done': {\n\t\t\topacity: 1,\n\t\t\ttransform: 'translate(-50%, 0)',\n\t\t},\n\t\t'.alert-exit': {\n\t\t\topacity: 1,\n\t\t\ttransform: 'translate(-50%, 0)',\n\t\t},\n\t\t'.alert-exit-active': {\n\t\t\topacity: 0,\n\t\t\ttransform: 'translate(-50%, -100%)',\n\t\t},\n\t},\n}));\n\nexport const Alert: FC = () => {\n\tconst { alertIsShowing, alertChildren, alertVariant, hideAlert } = useAlert();\n\tconst classes = useAlertStyles();\n\n\tuseEffect(() => {}, [alertChildren]);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{alertChildren}\n\t\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","var _g;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoHackett(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 190,\n height: 24,\n viewBox: \"0 0 190 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"8.392 4.294 2.183 9.901 5.213 9.901 8.392 6.334 8.392 4.294\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"8.392 2.215 .706 2.215 .706 9.901 2.14 9.901 8.392 2.297 8.392 2.215\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"8.392 7.982 6.133 9.9 8.392 9.9 8.392 7.982\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"8.369 14.254 8.369 11.258 3.62 15.443 7.929 10.609 5.302 10.609 2.336 13.13 4.583 10.609 .684 10.609 .684 18.294 8.369 18.294 8.369 14.844 6.056 16.851 8.369 14.254\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"13.255 10.609 9.175 14.147 9.175 17.306 15.137 10.609 13.255 10.609\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"9.174 13.351 11.618 10.609 9.174 10.609 9.174 13.351\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"9.174 18.294 16.86 18.294 16.86 10.764 9.174 17.316 9.174 18.294\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"9.134 17.349 9.175 17.316 9.175 17.306 9.134 17.349\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#002344\",\n points: \"10.126 0 19.205 0 19.205 9.082 10.126 9.082\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002344\",\n d: \"M27.1613793 9.2697931C27.1613793 7.86206897 27.1406897 6.45517241 27.1001379 5.04744828 25.6924138 5.04744828 23.8775172 5.12855172 22.7346207 5.27172414 22.7958621 5.06813793 22.8364138 4.84386207 22.8364138 4.61875862 22.8364138 4.41434483 22.7958621 4.21075862 22.7346207 3.98648276 24.4891034 4.04689655 26.2435862 4.08827586 27.9972414 4.08827586 29.7517241 4.08827586 31.5062069 4.04689655 33.2598621 3.98648276 33.1986207 4.21075862 33.158069 4.41434483 33.158069 4.63944828 33.158069 4.84386207 33.1986207 5.06813793 33.2598621 5.27172414 32.1177931 5.12855172 30.3028966 5.04744828 28.8951724 5.04744828 28.8554483 6.45517241 28.833931 7.86206897 28.833931 9.2697931L28.833931 12.7795862C28.833931 14.5324138 28.9150345 16.3084138 28.9969655 18.062069 28.6502069 18 28.3241379 17.9602759 27.9972414 17.9602759 27.672 17.9602759 27.3451034 18 26.9983448 18.062069 27.0802759 16.3084138 27.1613793 14.5324138 27.1613793 12.7795862L27.1613793 9.2697931M34.464 8.49517241C34.464 6.61737931 34.4234483 3.98648276 34.3009655 2.61931034 34.6071724 2.68055172 34.9125517 2.72193103 35.2195862 2.72193103 35.5257931 2.72193103 35.8311724 2.68055172 36.1373793 2.61931034 36.0148966 3.98648276 35.9743448 6.61737931 35.9743448 8.39255172L35.9743448 9.94344828 36.0148966 9.94344828C36.7688276 8.78068966 37.809931 8.1062069 39.2788966 8.1062069 40.7875862 8.1062069 42.5428966 8.84193103 42.5428966 11.6565517 42.5428966 12.8193103 42.4609655 14.0424828 42.4609655 15.4303448 42.4609655 16.3274483 42.4609655 17.184 42.5006897 18.062069 42.1953103 18 41.9304828 17.9602759 41.6449655 17.9602759 41.3594483 17.9602759 41.0929655 18 40.8082759 18.062069 40.8496552 16.5732414 40.9514483 15.0844138 40.9514483 13.5128276L40.9514483 12.2681379C40.9514483 10.2695172 40.0742069 9.16717241 38.7277241 9.16717241 36.8317241 9.16717241 35.9743448 10.3911724 35.9743448 12.5131034 35.9743448 14.064 36.0148966 16.6957241 36.1373793 18.062069 35.8311724 18 35.5257931 17.9602759 35.2195862 17.9602759 34.9125517 17.9602759 34.6071724 18 34.3009655 18.062069 34.4234483 16.6957241 34.464 14.064 34.464 12.1870345L34.464 8.49517241M49.4788966 8.1062069C52.3348966 8.1062069 53.7012414 10.0038621 53.7012414 12.2689655 53.7012414 12.5329655 53.6805517 12.7986207 53.6606897 13.0642759 52.1908966 13.0444138 50.7426207 13.0038621 49.2943448 13.0038621 48.3964138 13.0038621 47.52 13.0444138 46.622069 13.0642759 46.6030345 13.2678621 46.6030345 13.4532414 46.6030345 13.6353103 46.6030345 15.758069 47.8667586 17.4091034 50.1310345 17.4091034 51.2126897 17.4091034 52.4764138 16.7776552 53.1914483 15.9616552L53.2932414 16.0237241 53.1707586 17.0209655C52.353931 17.6747586 51.0289655 18.2656552 49.7644138 18.2656552 46.8273103 18.2656552 44.8071724 16.185931 44.8071724 13.4722759 44.8071724 10.1668966 46.4788966 8.1062069 49.4788966 8.1062069M46.6634483 12.2888276C47.5001379 12.3086897 48.4584828 12.350069 49.3142069 12.350069 50.2121379 12.350069 51.1713103 12.3086897 52.0278621 12.2888276 52.0278621 10.8397241 51.6405517 8.76082759 49.5202759 8.76082759 47.52 8.76082759 46.766069 10.8206897 46.6634483 12.2888276M72.1613793 9.2697931C72.1613793 7.51531034 72.0811034 5.74096552 71.9983448 3.98648276 72.345931 4.04689655 72.672 4.08827586 72.9988966 4.08827586 73.3249655 4.08827586 73.6510345 4.04689655 73.9977931 3.98648276 73.9166897 5.74096552 73.8347586 7.51531034 73.8347586 9.2697931L73.8347586 12.7795862C73.8347586 14.5324138 73.9166897 16.3084138 73.9977931 18.062069 73.6510345 18 73.3249655 17.9602759 72.9988966 17.9602759 72.672 17.9602759 72.345931 18 71.9983448 18.062069 72.0811034 16.3084138 72.1613793 14.5324138 72.1613793 12.7795862L72.1613793 10.944C70.7346207 10.9216552 69.326069 10.9026207 67.8984828 10.9026207 66.4708966 10.9026207 65.0631724 10.9216552 63.6355862 10.944L63.6355862 12.7795862C63.6355862 14.5324138 63.7166897 16.3084138 63.7977931 18.062069 63.4526897 18 63.1249655 17.9602759 62.7988966 17.9602759 62.4736552 17.9602759 62.145931 18 61.7991724 18.062069 61.8802759 16.3084138 61.9622069 14.5324138 61.9622069 12.7795862L61.9622069 9.2697931C61.9622069 7.51531034 61.8802759 5.74096552 61.7991724 3.98648276 62.145931 4.04689655 62.4736552 4.08827586 62.7988966 4.08827586 63.1249655 4.08827586 63.4526897 4.04689655 63.7977931 3.98648276 63.7166897 5.74096552 63.6355862 7.51531034 63.6355862 9.2697931L63.6355862 9.98317241C65.0631724 10.0038621 66.4708966 10.0452414 67.8984828 10.0452414 69.326069 10.0452414 70.7346207 10.0038621 72.1613793 9.98317241L72.1613793 9.2697931M77.5878621 9.28965517C78.8118621 8.37268966 79.7917241 8.1062069 80.8725517 8.1062069 82.8306207 8.1062069 84.1771034 9.31034483 84.1771034 11.126069 84.1771034 12.6562759 84.096 14.1657931 84.096 15.8797241 84.096 16.5517241 84.096 17.3892414 84.8904828 17.3892414 85.0146207 17.3892414 85.1768276 17.3892414 85.3183448 17.3073103L85.3183448 17.7550345C85.0336552 17.8783448 84.5437241 18.0413793 84.014069 18.0413793 83.1368276 18.0413793 82.6882759 17.4703448 82.6063448 16.7768276 81.6273103 17.7550345 80.7906207 18.2664828 79.4035862 18.2664828 78.0372414 18.2664828 76.6907586 17.3073103 76.6907586 15.7572414 76.6907586 14.1244138 77.7922759 13.2471724 79.5674483 12.9624828 82.5252414 12.4932414 82.6262069 12.3302069 82.6262069 11.534069 82.6262069 10.1668966 82.0146207 8.96358621 80.3826207 8.96358621 79.3009655 8.96358621 78.2813793 9.4742069 77.8129655 10.3514483L77.5878621 10.3514483 77.5878621 9.28965517 77.5878621 9.28965517zM82.6262069 12.9211034C81.2184828 13.3903448 78.3624828 13.2471724 78.3624828 15.4717241 78.3624828 16.7569655 79.2405517 17.4082759 80.1384828 17.4082759 81.1787586 17.4082759 82.0758621 16.7371034 82.5451034 15.9815172L82.6262069 12.9211034 82.6262069 12.9211034zM92.0921379 8.10703448C93.5817931 8.10703448 94.8670345 8.53572414 95.3776552 9.00496552 95.1931034 9.41213793 95.0292414 9.86151724 94.9274483 10.3514483L94.7644138 10.3514483C94.3771034 9.65793103 93.4386207 8.76082759 92.1542069 8.76082759 89.6855172 8.76082759 88.6857931 10.6576552 88.6857931 13.1668966 88.6857931 15.9608276 89.9503448 17.4091034 92.2137931 17.4091034 93.2962759 17.4091034 94.56 16.7768276 95.2750345 15.9608276L95.3776552 16.0228966C95.3155862 16.3481379 95.2750345 16.6965517 95.2543448 17.0217931 94.4383448 17.6755862 93.1108966 18.2664828 91.8471724 18.2664828 89.4811034 18.2664828 86.8891034 16.8388966 86.8891034 13.1867586 86.8891034 9.65793103 89.4811034 8.10703448 92.0921379 8.10703448M97.5798621 8.49517241C97.5798621 6.61737931 97.5401379 3.98648276 97.4151724 2.61931034 97.7230345 2.68055172 98.0292414 2.72193103 98.3346207 2.72193103 98.6408276 2.72193103 98.9478621 2.68055172 99.2532414 2.61931034 99.1291034 3.98648276 99.0902069 6.61737931 99.0902069 8.49517241L99.0902069 12.2077241C99.0902069 12.4526897 99.1704828 12.5950345 99.3351724 12.5950345 99.537931 12.5950345 99.8044138 12.3707586 100.129655 12.1249655 100.617931 11.7583448 102.618207 9.75972414 103.881931 8.31144828 104.107862 8.37268966 104.371862 8.41324138 104.658207 8.41324138 104.942897 8.41324138 105.208552 8.37268966 105.679448 8.31144828 103.984552 9.6777931 102.393103 11.0449655 100.986207 12.4113103 102.537931 14.2882759 104.230345 16.185931 105.902897 18.062069 105.434483 18 105.087724 17.9602759 104.740138 17.9602759 104.392552 17.9602759 104.046621 18 103.699034 18.062069 102.516414 16.512 100.559172 14.2262069 99.6 13.2066207 99.518069 13.1048276 99.3947586 13.0038621 99.2929655 13.0038621 99.1704828 13.0038621 99.0902069 13.0849655 99.0902069 13.2471724L99.0902069 14.4711724C99.0902069 15.6753103 99.1291034 16.8587586 99.2532414 18.062069 98.9478621 18 98.6408276 17.9602759 98.3346207 17.9602759 98.0292414 17.9602759 97.7230345 18 97.4151724 18.062069 97.5401379 16.6957241 97.5798621 14.064 97.5798621 12.1870345L97.5798621 8.49517241M111.451862 8.1062069C114.306207 8.1062069 115.673379 10.0038621 115.673379 12.2689655 115.673379 12.5329655 115.654345 12.7986207 115.633655 13.0642759 114.16469 13.0444138 112.717241 13.0038621 111.268966 13.0038621 110.370207 13.0038621 109.492966 13.0444138 108.594207 13.0642759 108.575172 13.2678621 108.575172 13.4532414 108.575172 13.6353103 108.575172 15.758069 109.840552 17.4091034 112.104828 17.4091034 113.185655 17.4091034 114.449379 16.7776552 115.163586 15.9616552L115.267034 16.0237241 115.142069 17.0209655C114.327724 17.6747586 113.001103 18.2656552 111.737379 18.2656552 108.799448 18.2656552 106.780138 16.185931 106.780138 13.4722759 106.780138 10.1668966 108.45269 8.1062069 111.451862 8.1062069M108.634759 12.2888276C109.472276 12.3086897 110.431448 12.350069 111.288828 12.350069 112.185103 12.350069 113.145103 12.3086897 114.001655 12.2888276 114.001655 10.8397241 113.613517 8.76082759 111.493241 8.76082759 109.492966 8.76082759 108.738207 10.8206897 108.634759 12.2888276M119.569655 5.57710345L119.673103 5.57710345C119.591172 6.59834483 119.548966 7.59724138 119.510069 8.59696552 119.794759 8.59696552 120.733241 8.57627586 121.671724 8.53489655 121.651034 8.67806897 121.651034 8.82124138 121.651034 8.96441379 121.651034 9.10675862 121.651034 9.24993103 121.671724 9.39227586 120.95669 9.35255172 119.999172 9.35255172 119.510069 9.35255172 119.467862 9.55531034 119.366897 12.758069 119.366897 14.5324138 119.366897 16.0626207 119.407448 17.6126897 121.018759 17.6126897 121.243034 17.6126897 121.671724 17.5522759 121.935724 17.4711724L121.935724 17.9602759C121.468138 18.1233103 120.876414 18.2664828 120.367448 18.2664828 118.672552 18.2664828 117.856552 17.3073103 117.856552 15.7158621 117.856552 14.2262069 117.979862 12.3914483 117.999724 9.35255172 117.591724 9.35255172 117.142345 9.35255172 116.613517 9.39227586 116.632552 9.22924138 116.653241 9.08606897 116.653241 8.92386207 116.653241 8.78068966 116.632552 8.6582069 116.613517 8.51503448 117.225931 8.55641379 117.673655 8.57627586 117.95669 8.57627586 117.937655 8.0457931 117.918621 7.16855172 117.878069 6.29213793L119.569655 5.57710345M125.241931 5.57710345L125.343724 5.57710345C125.261793 6.59834483 125.222069 7.59724138 125.179862 8.59696552 125.466207 8.59696552 126.403862 8.57627586 127.343172 8.53489655 127.322483 8.67806897 127.322483 8.82124138 127.322483 8.96441379 127.322483 9.10675862 127.322483 9.24993103 127.343172 9.39227586 126.628138 9.35255172 125.669793 9.35255172 125.179862 9.35255172 125.13931 9.55531034 125.037517 12.758069 125.037517 14.5324138 125.037517 16.0626207 125.078069 17.6126897 126.691034 17.6126897 126.91531 17.6126897 127.343172 17.5522759 127.607172 17.4711724L127.607172 17.9602759C127.137931 18.1233103 126.547034 18.2664828 126.037241 18.2664828 124.343172 18.2664828 123.528828 17.3073103 123.528828 15.7158621 123.528828 14.2262069 123.65131 12.3914483 123.670345 9.35255172 123.262345 9.35255172 122.814621 9.35255172 122.284138 9.39227586 122.304828 9.22924138 122.32469 9.08606897 122.32469 8.92386207 122.32469 8.78068966 122.304828 8.6582069 122.284138 8.51503448 122.895724 8.55641379 123.344276 8.57627586 123.630621 8.57627586 123.609931 8.0457931 123.589241 7.16855172 123.54869 6.29213793L125.241931 5.57710345M146.966069 6.47503448C146.130207 5.47613793 144.538759 4.47558621 142.478069 4.47558621 139.092414 4.47558621 136.500414 6.49572414 136.500414 11.0242759 136.500414 15.0223448 138.745655 17.4711724 142.58069 17.4711724 143.743448 17.4711724 145.150345 17.246069 145.84469 16.8182069 145.864552 16.0022069 145.884414 15.1862069 145.884414 14.3503448 145.884414 13.3903448 145.824828 12.4113103 145.782621 11.553931 146.049103 11.616 146.435586 11.6565517 146.762483 11.6565517 147.06869 11.6565517 147.373241 11.6366897 147.639724 11.553931 147.598345 12.1671724 147.557793 13.4929655 147.557793 15.696 147.557793 16.2256552 147.57931 16.7966897 147.57931 17.3470345 146.414069 17.7550345 143.966897 18.3268966 142.377103 18.3268966 137.521655 18.3268966 134.502621 15.7977931 134.502621 11.0242759 134.502621 6.39393103 137.644138 3.72248276 142.478069 3.72248276 145.232276 3.72248276 146.721931 4.39448276 147.679448 4.90344828 147.475862 5.27172414 147.271448 5.96606897 147.211034 6.47503448L146.966069 6.47503448M155.371862 9.98317241C155.227862 9.82013793 154.77931 9.65793103 154.37131 9.65793103 153.067034 9.65793103 152.289103 10.9026207 152.289103 12.4932414 152.289103 16.041931 152.289103 17.1244138 152.371034 18.062069 152.107862 18 151.821517 17.9602759 151.55669 17.9602759 151.271172 17.9602759 151.005517 18 150.698483 18.062069 150.780414 17.0615172 150.780414 15.4717241 150.780414 13.185931L150.780414 12.5329655C150.780414 11.4736552 150.780414 10.065931 150.698483 8.31144828 151.005517 8.37268966 151.271172 8.41324138 151.55669 8.41324138 151.821517 8.41324138 152.107862 8.37268966 152.371034 8.31144828 152.270897 9.28965517 152.270897 9.78124138 152.270897 10.2893793L152.310621 10.310069C153.086897 8.84193103 154.065931 8.10703448 155.003586 8.10703448 155.248552 8.10703448 155.390897 8.12772414 155.657379 8.22951724 155.515034 8.55641379 155.515034 9.33186207 155.515034 9.88137931L155.371862 9.98317241M161.61269 8.10703448C163.978759 8.10703448 166.569931 9.47503448 166.569931 13.1867586 166.569931 16.9001379 163.978759 18.2664828 161.61269 18.2664828 159.246621 18.2664828 156.655448 16.9001379 156.655448 13.1867586 156.655448 9.47503448 159.246621 8.10703448 161.61269 8.10703448M161.61269 17.6126897C164.020138 17.6126897 164.774897 15.4717241 164.774897 13.1867586 164.774897 10.9026207 164.020138 8.76082759 161.61269 8.76082759 159.205241 8.76082759 158.450483 10.9026207 158.450483 13.1867586 158.450483 15.4717241 159.205241 17.6126897 161.61269 17.6126897M168.895448 11.5547586C168.895448 10.5947586 168.875586 9.45268966 168.854069 8.31227586 169.139586 8.37268966 169.447448 8.41406897 169.711448 8.41406897 169.976276 8.41406897 170.261793 8.37268966 170.54731 8.31227586 170.425655 9.90124138 170.345379 11.9826207 170.345379 13.982069 170.345379 15.3897931 170.628414 16.0626207 170.976828 16.449931 171.36331 16.8777931 171.934345 17.2046897 172.729655 17.2046897 173.873379 17.2046897 174.647172 16.6336552 174.994759 15.8995862 175.403586 15.0215172 175.422621 14.8593103 175.422621 11.6565517 175.422621 10.5558621 175.422621 9.29048276 175.383724 8.31227586 175.667586 8.37268966 175.934069 8.41406897 176.239448 8.41406897 176.544828 8.41406897 176.810483 8.37268966 177.07531 8.31227586 176.952828 10.4325517 176.932138 12.350069 176.932138 14.5117241 176.932138 15.7158621 176.952828 16.9183448 177.014069 18.062069 176.750069 18 176.483586 17.9602759 176.220414 17.9602759 175.954759 17.9602759 175.688276 18 175.422621 18.062069 175.462345 17.4703448 175.462345 16.8777931 175.462345 16.3084138L175.422621 16.3084138C174.729931 17.5729655 173.524966 18.2656552 172.239724 18.2656552 170.120276 18.2656552 168.835034 17.0424828 168.835034 14.9197241 168.835034 13.4929655 168.895448 12.5536552 168.895448 11.5547586M179.950345 14.2468966C179.950345 12.3707586 179.909793 9.73986207 179.788138 8.31144828 180.094345 8.37268966 180.400552 8.41324138 180.705931 8.41324138 181.012138 8.41324138 181.318345 8.37268966 181.623724 8.31144828 181.521103 9.024 181.461517 9.65793103 181.461517 10.310069L181.501241 10.310069C181.910897 9.45351724 182.888276 8.10703448 184.948966 8.10703448 187.030345 8.10703448 189.110069 9.61655172 189.110069 13.1255172 189.110069 16.5931034 186.846621 18.2664828 184.704 18.2664828 183.193655 18.2664828 182.13269 17.5522759 181.501241 16.2662069L181.461517 16.2662069 181.461517 17.5522759C181.461517 19.4284138 181.501241 22.0601379 181.623724 23.4264828 181.318345 23.3652414 181.012138 23.3263448 180.705931 23.3263448 180.400552 23.3263448 180.094345 23.3652414 179.788138 23.4264828 179.909793 22.0601379 179.950345 19.4284138 179.950345 17.5522759L179.950345 14.2468966 179.950345 14.2468966zM184.499586 8.96358621C182.296552 8.96358621 181.461517 10.9224828 181.461517 13.2678621 181.461517 16.0626207 182.49931 17.5125517 184.44 17.5125517 186.396414 17.5125517 187.315034 15.5735172 187.315034 13.1048276 187.315034 9.84082759 185.825379 8.96358621 184.499586 8.96358621L184.499586 8.96358621z\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n fill: \"#5B7E90\",\n points: \"8.965 16.842 9.004 16.809 9.004 16.799 8.965 16.842\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoHackett);\nexport default __webpack_public_path__ + \"static/media/logo-hackett.94477983.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Button, Container, Row, Col } from 'react-bootstrap';\n\nimport { RenderJson } from '@/components';\n\ninterface ErrorDisplayProps {\n\terror: any;\n\tshowBackButton?: boolean;\n\tshowRetryButton?: boolean;\n\n\tonRetryButtonClick?(): void;\n}\n\nexport const ErrorDisplay = ({ error, showBackButton, showRetryButton, onRetryButtonClick }: ErrorDisplayProps) => {\n\tconst history = useHistory();\n\n\tfunction handleGoBackButtonClick() {\n\t\thistory.goBack();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

Error

\n\t\t\t\t\t\t

{error.message}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{showBackButton && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{showRetryButton && }\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import React, { FC, useRef } from 'react';\nimport { createUseStyles } from 'react-jss';\nimport { CSSTransition } from 'react-transition-group';\nimport { CSSTransitionProps } from 'react-transition-group/CSSTransition';\n\nconst useStyles = createUseStyles({\n\tfadeTransitionOuter: ({ animationDuration }: { animationDuration: number }) => ({\n\t\toverflow: 'hidden',\n\t\ttransition: `height ${animationDuration}ms ease-out`,\n\t}),\n\topacityHeightTransition: ({ animationDuration }: { animationDuration: number }) => ({\n\t\t'&-enter': {\n\t\t\topacity: 0,\n\t\t},\n\t\t'&-enter-active': {\n\t\t\topacity: 1,\n\t\t\ttransition: `opacity ${animationDuration}ms ease-out`,\n\t\t},\n\t\t'&-exit': {\n\t\t\topacity: 1,\n\t\t},\n\t\t'&-exit-active': {\n\t\t\topacity: 0,\n\t\t\ttransition: `opacity ${animationDuration}ms ease-out`,\n\t\t},\n\t}),\n});\n\ntype FadeTransitionProps = Partial & {\n\tanimationDuration?: number;\n};\n\nexport const FadeTransition: FC = ({ animationDuration = 200, children, ...props }) => {\n\tconst outerRef = useRef(null);\n\tconst innerRef = useRef(null);\n\tconst classes = useStyles({ animationDuration });\n\n\tfunction handleEnter() {\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.height = '0px';\n\t\t}\n\t}\n\n\tfunction handleEntering() {\n\t\tconst targetHeight = innerRef.current?.getBoundingClientRect().height;\n\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.height = `${targetHeight}px`;\n\t\t}\n\t}\n\n\tfunction handleEntered() {\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.removeProperty('height');\n\t\t}\n\t}\n\n\tfunction handleExit() {\n\t\tconst targetHeight = innerRef.current?.getBoundingClientRect().height;\n\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.height = `${targetHeight}px`;\n\t\t}\n\t}\n\n\tfunction handleExiting() {\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.height = '0px';\n\t\t}\n\t}\n\n\tfunction handleExited() {\n\t\tif (outerRef.current) {\n\t\t\touterRef.current.style.removeProperty('height');\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
{children}
\n\t\t\t\n\t\t
\n\t);\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoHackettConnect(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 588,\n height: 54,\n viewBox: \"0 0 588 54\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 4.46051V51.8487H5.63283V29.6701H27.2587V51.8487H32.8915V4.46051H27.2587V24.0372H5.63283V4.46051H0Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M61.5078 52.6541C65.4182 52.6541 68.6762 51.3666 71.1437 49.0823V51.8487H76.5287V17.0986H71.1437V19.5502C68.7274 17.3763 65.4255 16.0455 61.1361 16.0455C51.7455 16.0455 43.0176 23.4586 43.0176 34.5356C43.0176 43.9263 50.4308 52.6541 61.5078 52.6541ZM61.1981 21.4305C65.3923 21.4305 68.8679 23.2338 71.1437 25.9018V42.8006C68.7583 45.6216 65.1837 47.2691 61.4459 47.2691C53.6294 47.2691 48.4027 41.1303 48.4027 34.4737C48.4027 26.6572 54.5415 21.4305 61.1981 21.4305Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.014 46.2103L115.148 42.4515L114.351 43.2865C111.961 45.7909 108.603 47.2691 105.081 47.2691C97.2641 47.2691 92.0374 41.1303 92.0374 34.4737C92.0374 26.6572 98.1762 21.4305 104.833 21.4305C108.784 21.4305 112.075 23.0284 114.341 25.4643L115.149 26.3326L119.01 22.4711L118.234 21.6627C114.991 18.2872 110.36 16.0455 104.771 16.0455C95.3802 16.0455 86.6524 23.4586 86.6524 34.5356C86.6524 43.9263 94.0655 52.6541 105.143 52.6541C110.037 52.6541 114.862 50.607 118.24 47.0298L119.014 46.2103Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.061 51.8487H133.446V36.1817L150.578 53.3137L154.364 49.5279L139.185 34.3498L154.302 19.2336L150.516 15.4478L133.446 32.5179V0H128.061V51.8487Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M197.115 30.0483L166.335 35.4286C166.808 41.703 171.902 47.2691 179.405 47.2691C181.678 47.2691 183.956 46.6424 185.887 45.5065L186.878 44.9236L189.574 49.56L188.601 50.139C185.819 51.7949 182.643 52.6541 179.405 52.6541C168.328 52.6541 160.914 43.9263 160.914 34.5356C160.914 23.4534 169.71 16.0455 179.095 16.0455C187.922 16.0455 194.48 21.5997 196.728 28.8053L197.115 30.0483ZM189.174 25.9832L167.118 29.8724C168.966 24.6549 173.886 21.4305 179.095 21.4305C183.379 21.4305 186.872 23.2416 189.174 25.9832Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.733 40.0493V22.4837H225.353V17.0986H210.733V7.9298H205.348V17.0986H202.25V22.4837H205.348V40.1113C205.348 46.2571 210.199 52.5302 218.138 52.5302C220.327 52.5302 222.577 51.9167 224.493 50.7534L225.453 50.171L222.769 45.5556L221.784 46.1188C220.637 46.7739 219.344 47.1452 218.076 47.1452C213.502 47.1452 210.733 43.5683 210.733 40.0493Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.211 40.0493V22.4837H254.831V17.0986H240.211V7.9298H234.826V17.0986H231.728V22.4837H234.826V40.1113C234.826 46.2571 239.676 52.5302 247.616 52.5302C249.805 52.5302 252.055 51.9167 253.971 50.7534L254.93 50.171L252.247 45.5556L251.261 46.1188C250.115 46.7739 248.822 47.1452 247.554 47.1452C242.98 47.1452 240.211 43.5683 240.211 40.0493Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M328.922 45.0112L324.958 41.047L324.15 41.8294C320.517 45.3443 315.659 47.331 310.696 47.331C299.513 47.331 291.334 38.4447 291.334 28.2166C291.334 17.0313 300.222 8.85432 310.386 8.85432C316.147 8.85432 320.934 11.0826 324.315 14.5217L325.124 15.3443L329.096 11.3716L328.3 10.5629C323.875 6.07372 317.636 3.22148 310.386 3.22148C297.46 3.22148 285.701 13.489 285.701 28.2785C285.701 41.2051 295.968 52.9639 310.758 52.9639C317.258 52.9639 323.493 50.3644 328.102 45.8199L328.922 45.0112Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M355.28 16.0455C345.89 16.0455 337.162 23.4586 337.162 34.5356C337.162 43.9263 344.575 52.6541 355.652 52.6541C365.043 52.6541 373.771 45.241 373.771 34.1639C373.771 24.7733 366.357 16.0455 355.28 16.0455ZM355.342 21.4305C363.159 21.4305 368.385 27.5693 368.385 34.2259C368.385 42.0424 362.247 47.2691 355.59 47.2691C347.774 47.2691 342.547 41.1303 342.547 34.4737C342.547 26.6572 348.686 21.4305 355.342 21.4305Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M409.728 51.8487H415.113V28.4644C415.113 22.3359 410.402 16.0455 402.446 16.0455C399.021 16.0455 395.439 17.4901 392.627 19.403C391.35 20.2709 390.204 21.2544 389.279 22.2808V17.0986H383.894V51.8487H389.279V34.2259C389.279 27.5727 394.503 21.4305 402.384 21.4305C407.015 21.4305 409.728 25.0015 409.728 28.5263V51.8487Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M454.149 51.8487H459.534V28.4644C459.534 22.3359 454.824 16.0455 446.868 16.0455C443.443 16.0455 439.86 17.4901 437.048 19.403C435.772 20.2709 434.625 21.2544 433.7 22.2808V17.0986H428.315V51.8487H433.7V34.2259C433.7 27.5727 438.924 21.4305 446.806 21.4305C451.436 21.4305 454.149 25.0015 454.149 28.5263V51.8487Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M505.84 30.0483L475.06 35.4286C475.532 41.703 480.626 47.2691 488.129 47.2691C490.403 47.2691 492.681 46.6424 494.612 45.5065L495.603 44.9236L498.298 49.56L497.326 50.139C494.544 51.7949 491.367 52.6541 488.129 52.6541C477.052 52.6541 469.639 43.9263 469.639 34.5356C469.639 23.4534 478.434 16.0455 487.819 16.0455C496.647 16.0455 503.205 21.5997 505.452 28.8053L505.84 30.0483ZM497.899 25.9832L475.842 29.8724C477.691 24.6549 482.611 21.4305 487.819 21.4305C492.104 21.4305 495.597 23.2416 497.899 25.9832Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M543.337 46.2103L539.471 42.4515L538.674 43.2865C536.283 45.7909 532.925 47.2691 529.403 47.2691C521.587 47.2691 516.36 41.1303 516.36 34.4737C516.36 26.6572 522.499 21.4305 529.155 21.4305C533.106 21.4305 536.398 23.0284 538.664 25.4643L539.471 26.3326L543.333 22.4711L542.556 21.6627C539.313 18.2872 534.682 16.0455 529.093 16.0455C519.703 16.0455 510.975 23.4586 510.975 34.5356C510.975 43.9263 518.388 52.6541 529.465 52.6541C534.36 52.6541 539.184 50.607 542.563 47.0298L543.337 46.2103Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M557.768 40.0493V22.4837H572.389V17.0986H557.768V7.9298H552.383V17.0986H549.286V22.4837H552.383V40.1113C552.383 46.2571 557.234 52.5302 565.174 52.5302C567.363 52.5302 569.613 51.9167 571.529 50.7534L572.488 50.171L569.805 45.5556L568.819 46.1188C567.673 46.7739 566.38 47.1452 565.112 47.1452C560.538 47.1452 557.768 43.5683 557.768 40.0493Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M577.705 13.9505H579.112V9.15892H580.779V7.91076H576.055V9.15892H577.705V13.9505Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M582.547 9.51912L583.929 13.9505H585.118L586.576 9.51912H586.626L586.593 10.5327V13.9505H588V7.91076H585.99L584.565 12.183L583.225 7.91076H581.156V13.9505H582.522V10.449L582.488 9.51912H582.547Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoHackettConnect);\nexport default __webpack_public_path__ + \"static/media/logo-hackett-connect.ee4c381f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FC, useRef, useEffect, useCallback } from 'react';\nimport { Col, Container, Row } from 'react-bootstrap';\nimport { createUseThemedStyles } from '@/hooks';\nimport { ReactComponent as HackettLogo } from '@/assets/logos/logo-hackett.svg';\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\tfooter: {\n\t\tleft: 0,\n\t\tbottom: 0,\n\t\twidth: '100%',\n\t\tpadding: '32px 0',\n\t\tposition: 'absolute',\n\t\talignItems: 'center',\n\t\tbackgroundColor: theme.colors.gray100,\n\t\t'& p a': {\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\nexport const Footer: FC = () => {\n\tconst classes = useStyles();\n\tconst footerRef = useRef(null);\n\tconst year = useRef(new Date().getFullYear());\n\n\tconst handleWindowResize = useCallback(() => {\n\t\tsetBodyPadding();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetBodyPadding();\n\t\twindow.addEventListener('resize', handleWindowResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', handleWindowResize);\n\t\t};\n\t}, [handleWindowResize]);\n\n\tfunction setBodyPadding() {\n\t\tif (!footerRef.current) return;\n\n\t\tconst footerHeight = footerRef.current.clientHeight;\n\t\tdocument.body.style.paddingBottom = `${footerHeight}px`;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
Notice of Processing
\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAny personal data that you provide us, which is collected or processed in connection\n\t\t\t\t\t\t\t\twith your use of our services or site, will be processed in accordance with our Privacy\n\t\t\t\t\t\t\t\tPolicy located at{' '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\twww.thehackettgroup.com/privacy-statement\n\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\tand, if you provide us with personal data from persons located in the European Economic\n\t\t\t\t\t\t\t\tArea (“EEA”), we may require your data to be processed outside of the EEA (including our\n\t\t\t\t\t\t\t\tdesignated third party sub-processors who assist us in our operations). We may aggregate\n\t\t\t\t\t\t\t\tand de-identify the responses we receive and place them into reports that we distribute\n\t\t\t\t\t\t\t\tto one or more of our current and prospective clients.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tCopyright © {year.current} The Hackett Group, Inc.; All Rights Reserved.\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","var _polygon;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgIconChevronLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 10,\n viewBox: \"0 0 10 10\",\n fill: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n fillRule: \"evenodd\",\n points: \"5 8.214 0 3.214 1.429 1.786 5 5.357 8.571 1.786 10 3.214\",\n transform: \"rotate(90 5 5)\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconChevronLeft);\nexport default __webpack_public_path__ + \"static/media/icon-chevron-left.fa6a9903.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useMemo } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { createUseThemedStyles, usePlatformsContext } from '@/hooks';\nimport { boxShadow } from '@/jss';\n\nimport { ReactComponent as HackettConnectLogo } from '@/assets/logos/logo-hackett-connect.svg';\n// import { ReactComponent as HackettLogo } from '@/assets/logos/logo-hackett-r.svg';\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\theaderNoAuth: {\n\t\t...boxShadow,\n\t\tdisplay: 'flex',\n\t\tpadding: '20px 40px',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t\tbackgroundColor: theme.colors.white,\n\t},\n\thackettConnectLogo: {\n\t\twidth: 390,\n\t\theight: 'auto',\n\t\tdisplay: 'block',\n\t},\n}));\n\nexport const HeaderNoAuth = () => {\n\tconst classes = useStyles();\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\treturn (\n\t\t
\n\t\t\t

\n\t\t\t\t\n\t\t\t\t\t{platform?.headerIconUrl ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t

\n\t\t
\n\t);\n};\n","var _polygon;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgIconChevronRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 10,\n fill: \"currentColor\",\n viewBox: \"0 0 10 10\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n fillRule: \"evenodd\",\n points: \"5.214 8.214 .214 3.214 1.643 1.786 5.214 5.357 8.786 1.786 10.214 3.214\",\n transform: \"rotate(-90 5.214 5)\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconChevronRight);\nexport default __webpack_public_path__ + \"static/media/icon-chevron-right.4be9e1dc.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback, useMemo, useState } from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport classNames from 'classnames';\nimport { createUseThemedStyles } from '@/hooks';\n\nimport { ReactComponent as ChevronLeft } from '@/assets/icons/icon-chevron-left.svg';\nimport { ReactComponent as ChevronRight } from '@/assets/icons/icon-chevron-right.svg';\n\nconst animationDurationInMs = 300;\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\tcarousel: {\n\t\twidth: '100%',\n\t\theight: '100%',\n\t\toverflow: 'hidden',\n\t\tposition: 'relative',\n\t},\n\tslide: {\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tpadding: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tposition: 'absolute',\n\t\tbackgroundSize: 'cover',\n\t\tbackgroundPosition: 'center',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundColor: theme.colors.gray300,\n\t},\n\tslideContent: {\n\t\twidth: '85%',\n\t\t'& img': {\n\t\t\tmaxWidth: '100%',\n\t\t},\n\t},\n\tcarouselControls: {\n\t\tbottom: 25,\n\t\tleft: '50%',\n\t\tdisplay: 'flex',\n\t\tposition: 'absolute',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\ttransform: 'translateX(-50%)',\n\t\t'& ul': {\n\t\t\tpadding: 0,\n\t\t\tdisplay: 'flex',\n\t\t\tmargin: '0 10px',\n\t\t\tlistStyle: 'none',\n\t\t\t'& li': {\n\t\t\t\twidth: 10,\n\t\t\t\theight: 10,\n\t\t\t\tmargin: '0 5px',\n\t\t\t\tborderRadius: 5,\n\t\t\t\tposition: 'relative',\n\t\t\t\tbackgroundColor: 'rgba(255,255,255,0.5)',\n\t\t\t\t'&:first-child': {\n\t\t\t\t\tmarginLeft: 0,\n\t\t\t\t},\n\t\t\t\t'&:last-child': {\n\t\t\t\t\tmarginRight: 0,\n\t\t\t\t},\n\t\t\t\t'&.active': {\n\t\t\t\t\tbackgroundColor: theme.colors.white,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tarrowButton: {\n\t\twidth: 44,\n\t\theight: 44,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\t'&:disabled': {\n\t\t\tbackgroundColor: 'transparent !important',\n\t\t},\n\t},\n\t'@global': {\n\t\t'.carousel-previous-enter': {\n\t\t\ttransform: 'translateX(-100%)',\n\t\t},\n\t\t'.carousel-previous-enter-active': {\n\t\t\ttransition: `transform ${animationDurationInMs}ms`,\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-previous-enter-done': {\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-previous-exit': {\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-previous-exit-active': {\n\t\t\ttransition: `transform ${animationDurationInMs}ms`,\n\t\t\ttransform: 'translateX(100%)',\n\t\t},\n\t\t'.carousel-previous-exit-done': {\n\t\t\ttransform: 'translateX(100%)',\n\t\t},\n\t\t'.carousel-next-enter': {\n\t\t\ttransform: 'translateX(100%)',\n\t\t},\n\t\t'.carousel-next-enter-active': {\n\t\t\ttransition: `transform ${animationDurationInMs}ms`,\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-next-enter-done': {\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-next-exit': {\n\t\t\ttransform: 'translateX(0%)',\n\t\t},\n\t\t'.carousel-next-exit-active': {\n\t\t\ttransition: `transform ${animationDurationInMs}ms`,\n\t\t\ttransform: 'translateX(-100%)',\n\t\t},\n\t\t'.carousel-next-exit-done': {\n\t\t\ttransform: 'translateX(-100%)',\n\t\t},\n\t},\n}));\n\ninterface CarouselSlide {\n\timageUrl: string;\n\thtmlContent?: string;\n\taction: ButtonProps;\n\tslideContentStyle?: React.CSSProperties;\n}\n\ninterface ExpandingCarouselProps {\n\tslides: CarouselSlide[];\n}\n\nexport const ExpandingCarousel = ({ slides }: ExpandingCarouselProps) => {\n\tconst classes = useStyles();\n\n\tconst [currentSlideIndex, setCurrentSlideIndex] = useState(0);\n\tconst [animationClassNames, setAnimationClassNames] = useState('carousel-next');\n\tconst currentSlide = useMemo(() => slides[currentSlideIndex], [currentSlideIndex, slides]);\n\n\tconst handlePreviousButtonClick = useCallback(() => {\n\t\tsetCurrentSlideIndex((previousValue) => {\n\t\t\tif (previousValue === 0) {\n\t\t\t\treturn slides.length - 1;\n\t\t\t}\n\n\t\t\treturn previousValue - 1;\n\t\t});\n\n\t\tsetAnimationClassNames('carousel-previous');\n\t}, [slides]);\n\n\tconst handleNextButtonClick = useCallback(() => {\n\t\tsetCurrentSlideIndex((previousValue) => {\n\t\t\tif (previousValue === slides.length - 1) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\treturn previousValue + 1;\n\t\t});\n\n\t\tsetAnimationClassNames('carousel-next');\n\t}, [slides]);\n\n\tconst handlePageButtonClick = useCallback((index: number) => {\n\t\tlet previousIndex = 0;\n\n\t\tsetCurrentSlideIndex((previousValue) => {\n\t\t\tpreviousIndex = previousValue;\n\t\t\treturn index;\n\t\t});\n\n\t\tif (previousIndex > index) {\n\t\t\tsetAnimationClassNames('carousel-previous');\n\t\t} else {\n\t\t\tsetAnimationClassNames('carousel-next');\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t
\n\t\t\t React.cloneElement(child, { classNames: animationClassNames })}>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{currentSlide.htmlContent && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{slides.map((_slide, slideIndex) => (\n\t\t\t\t\t\t handlePageButtonClick(slideIndex)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { createUseThemedStyles } from '@/hooks';\n\nconst useLoaderStyles = createUseThemedStyles((theme) => ({\n\tloader: ({ size }: { size: number }) => ({\n\t\twidth: size,\n\t\theight: size,\n\t\tborderRadius: '50%',\n\t\tborder: `${size * 0.14}px solid ${theme.colors.gray200}`,\n\t\tborderTopColor: theme.colors.primary,\n\t\tanimation: `$rotate 1000ms linear 0ms infinite normal`,\n\t}),\n\t'@keyframes rotate': {\n\t\t'0%': {\n\t\t\ttransform: 'rotate(0deg)',\n\t\t},\n\t\t'100%': {\n\t\t\ttransform: 'rotate(360deg)',\n\t\t},\n\t},\n}));\n\ninterface LoadingProps {\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport const Loader = React.memo(({ size = 56, className }: LoadingProps) => {\n\tconst classes = useLoaderStyles({ size });\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t
\n\t);\n});\n\nLoader.displayName = 'Loader';\n","import React, { FC } from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\nimport classNames from 'classnames';\n\nimport { createUseThemedStyles } from '@/hooks';\nimport { Loader } from '@/components';\n\nconst useStyles = createUseThemedStyles({\n\tloader: {\n\t\ttop: '50%',\n\t\tleft: '50%',\n\t\tposition: 'absolute',\n\t\ttransform: 'translate(-50%, -50%)',\n\t},\n\tchildren: ({ isLoading }: { isLoading: boolean }) => ({\n\t\topacity: isLoading ? 0 : 1,\n\t}),\n});\n\ninterface LoadingButtonProps extends ButtonProps {\n\tisLoading?: boolean;\n}\n\nexport const LoadingButton: FC = ({ isLoading, className, onClick, children, ...props }) => {\n\tconst classes = useStyles({ isLoading });\n\n\treturn (\n\t\t {\n\t\t\t\tif (isLoading) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tif (onClick) {\n\t\t\t\t\tonClick(event);\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isLoading && }\n\t\t\t{children}\n\t\t\n\t);\n};\n","import { MFA_TYPES } from '@/lib/models';\nimport React, { useCallback, useState } from 'react';\nimport { Button, Form, Modal, ModalProps } from 'react-bootstrap';\n\ninterface MfaChoiceModalProps extends ModalProps {\n\tonTotpClick(): void;\n\tonSmsClick(): void;\n}\n\nexport const MfaChoiceModal = ({ onTotpClick, onSmsClick, ...props }: MfaChoiceModalProps) => {\n\tconst [mfaMethod, setMfaMethod] = useState(MFA_TYPES.NOMFA);\n\n\tconst handleOnEnter = useCallback(() => {\n\t\tsetMfaMethod(MFA_TYPES.NOMFA);\n\t}, []);\n\n\tconst handleContinueButtonClick = useCallback(() => {\n\t\tswitch (mfaMethod) {\n\t\t\tcase MFA_TYPES.SMS:\n\t\t\t\tonSmsClick();\n\t\t\t\tbreak;\n\t\t\tcase MFA_TYPES.TOTP:\n\t\t\t\tonTotpClick();\n\t\t\t\tbreak;\n\t\t\tcase MFA_TYPES.NOMFA:\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}, [mfaMethod, onSmsClick, onTotpClick]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tChoose Multi-Factor Authentication (MFA) Method\n\t\t\t\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\tYou must configure MFA before you can sign in. Choose how you want to authenticate.\n\t\t\t\t

\n\t\t\t\t {\n\t\t\t\t\t\tsetMfaMethod(currentTarget.value as MFA_TYPES);\n\t\t\t\t\t}}\n\t\t\t\t\tlabel={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tSMS\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t

Authenticate using a code sent via text message to your phone.

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tsetMfaMethod(currentTarget.value as MFA_TYPES);\n\t\t\t\t\t}}\n\t\t\t\t\tlabel={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tAuthenticator App\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tAuthenticate using a code generated by an app installed on your mobile device or\n\t\t\t\t\t\t\t\tcomputer.\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tContinue\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { Button, Form, Modal, ModalProps } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\nimport classNames from 'classnames';\n\nimport { useHandleError, usePlatformsContext } from '@/hooks';\nimport { LoadingButton } from '@/components/loading-button';\nimport { CHALLENGE_NAMES } from '@/lib/models';\n\ninterface MfaCodeEntryModalProps extends ModalProps {\n\tuser: CognitoUser;\n\tonSuccess(user: CognitoUser): void;\n}\n\nexport const MfaCodeEntryModal = ({ user, onSuccess, ...props }: MfaCodeEntryModalProps) => {\n\tconst handleError = useHandleError();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [codeInputValue, setCodeInputValue] = useState('');\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\tconst handleOnEnter = useCallback(() => {\n\t\tsetIsLoading(false);\n\t\tsetCodeInputValue('');\n\t}, []);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst confirmedUser: CognitoUser = await Auth.confirmSignIn(\n\t\t\t\tuser,\n\t\t\t\tcodeInputValue.replace(/\\s/g, ''),\n\t\t\t\t(user.challengeName as unknown) as undefined\n\t\t\t);\n\n\t\t\tonSuccess(confirmedUser);\n\t\t} catch (error) {\n\t\t\tif ((error as any).code === 'CodeMismatchException' || (error as any).name === 'CodeMismatchException') {\n\t\t\t\t(error as any).message = 'Code is invalid.';\n\t\t\t}\n\n\t\t\tsetCodeInputValue('');\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tMulti-Factor Authentication\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAuthentication Code\n\t\t\t\t\t\t setCodeInputValue(event.target.value)}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{user.challengeName === CHALLENGE_NAMES.SOFTWARE_TOKEN_MFA && (\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tOpen your authentication app (TOTP) on your mobile device to view your authentication code.\n\t\t\t\t\t\t

\n\t\t\t\t\t)}\n\t\t\t\t\t{user.challengeName === CHALLENGE_NAMES.SMS_MFA && (\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tWe have delivered the authentication code via SMS. Please enter the code to complete\n\t\t\t\t\t\t\tauthentication.\n\t\t\t\t\t\t

\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{platform && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tContact Us\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useEffect, useState } from 'react';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport { MfaChoiceModal, MfaSmsSetupModal, MfaTotpSetupModal } from '@/components';\nimport { useHandleError } from '@/hooks';\nimport { CHALLENGE_NAMES, PREFERRED_MFA_TYPES } from '@/lib/models';\n\ninterface Props {\n\tshow: boolean;\n\tonHide(): void;\n\tuser: CognitoUser;\n\tfirstTimeSetup: boolean;\n\tonComplete(): void;\n}\n\nexport const MfaFlowModals = ({ show, user, firstTimeSetup, onHide, onComplete }: Props) => {\n\tconst handleError = useHandleError();\n\n\tconst [showMfaChoiceModal, setShowMfaChoiceModal] = useState(false);\n\tconst [showMfaTotpSetupModal, setShowMfaTotpSetupModal] = useState(false);\n\tconst [showMfaSmsSetupModal, setShowMfaSmsSetupModal] = useState(false);\n\n\tconst resetFlow = () => {\n\t\tsetShowMfaChoiceModal(true);\n\t\tsetShowMfaTotpSetupModal(false);\n\t\tsetShowMfaSmsSetupModal(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (show) {\n\t\t\tresetFlow();\n\t\t} else {\n\t\t\tsetShowMfaChoiceModal(false);\n\t\t\tsetShowMfaTotpSetupModal(false);\n\t\t\tsetShowMfaSmsSetupModal(false);\n\t\t}\n\t}, [show, user]);\n\n\treturn (\n\t\t<>\n\t\t\t {\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t\tonTotpClick={() => {\n\t\t\t\t\tif (user.challengeName === CHALLENGE_NAMES.SELECT_MFA_TYPE) {\n\t\t\t\t\t\tuser.sendMFASelectionAnswer(PREFERRED_MFA_TYPES.SOFTWARE_TOKEN_MFA, {\n\t\t\t\t\t\t\tonSuccess: (_session) => {\n\t\t\t\t\t\t\t\tsetShowMfaChoiceModal(false);\n\t\t\t\t\t\t\t\tsetShowMfaTotpSetupModal(true);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonFailure: (error) => {\n\t\t\t\t\t\t\t\thandleError(error);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetShowMfaChoiceModal(false);\n\t\t\t\t\t\tsetShowMfaTotpSetupModal(true);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tonSmsClick={() => {\n\t\t\t\t\tif (user.challengeName === CHALLENGE_NAMES.SELECT_MFA_TYPE) {\n\t\t\t\t\t\tuser.sendMFASelectionAnswer(PREFERRED_MFA_TYPES.SMS_MFA, {\n\t\t\t\t\t\t\tonSuccess: (_session) => {\n\t\t\t\t\t\t\t\tsetShowMfaChoiceModal(false);\n\t\t\t\t\t\t\t\tsetShowMfaSmsSetupModal(true);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonFailure: (error) => {\n\t\t\t\t\t\t\t\thandleError(error);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetShowMfaChoiceModal(false);\n\t\t\t\t\t\tsetShowMfaSmsSetupModal(true);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\tresetFlow();\n\t\t\t\t}}\n\t\t\t\tonHide={() => {\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t\tonSuccess={() => {\n\t\t\t\t\tonComplete();\n\t\t\t\t}}\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\tresetFlow();\n\t\t\t\t}}\n\t\t\t\tonHide={() => {\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t\tonSuccess={() => {\n\t\t\t\t\tonComplete();\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Button, Form, Modal, ModalProps } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\nimport { E164Number } from 'libphonenumber-js/core';\n\nimport { MFA_TYPES, PREFERRED_MFA_TYPES } from '@/lib/models';\nimport { useAutoSignInContext, useHandleError } from '@/hooks';\nimport { LoadingButton, PhoneNumberInput } from '@/components';\nimport { publicService } from '@/lib/services';\n\ninterface MfaSmsSetupModalProps extends ModalProps {\n\tusername: string;\n\tfirstTimeSetup: boolean;\n\tonBack(): void;\n\tonSuccess(user: CognitoUser): void;\n}\n\nexport const MfaSmsSetupModal = ({ username, firstTimeSetup, onBack, onSuccess, ...props }: MfaSmsSetupModalProps) => {\n\tconst handleError = useHandleError();\n\tconst { emailAddress, password } = useAutoSignInContext();\n\n\tconst [fauxSignedInUser, setFauxSignedInUser] = useState();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [phoneNumberInputValue, setPhoneNumberInputValue] = useState();\n\tconst [codeInputValue, setCodeInputValue] = useState('');\n\tconst [codeSent, setCodeSent] = useState(false);\n\n\tconst handleOnEnter = useCallback(() => {\n\t\tsetFauxSignedInUser(undefined);\n\t\tsetIsLoading(false);\n\t\tsetPhoneNumberInputValue('');\n\t\tsetCodeInputValue('');\n\t\tsetCodeSent(false);\n\t}, []);\n\n\tasync function handleSendCodeButtonClick() {\n\t\tif (firstTimeSetup) {\n\t\t\ttry {\n\t\t\t\tawait publicService\n\t\t\t\t\t.updateAndVerifyUserPhoneNumber({\n\t\t\t\t\t\tusername,\n\t\t\t\t\t\tphoneNumber: String(phoneNumberInputValue),\n\t\t\t\t\t})\n\t\t\t\t\t.fetch();\n\t\t\t\tconst signedInUser = await Auth.signIn(emailAddress, password);\n\n\t\t\t\tsetFauxSignedInUser(signedInUser);\n\t\t\t\tsetCodeSent(true);\n\t\t\t} catch (publicServiceError) {\n\t\t\t\thandleError(publicServiceError);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst currentAuthenticatedUser: CognitoUser = await Auth.currentAuthenticatedUser();\n\t\t\tawait Auth.updateUserAttributes(currentAuthenticatedUser, { phone_number: phoneNumberInputValue });\n\t\t\tawait Auth.verifyUserAttribute(currentAuthenticatedUser, 'phone_number');\n\n\t\t\tsetCodeSent(true);\n\t\t} catch (amplifyError) {\n\t\t\thandleError(amplifyError);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst currentUser: CognitoUser = await Auth.currentAuthenticatedUser();\n\t\t\tawait Auth.verifyUserAttributeSubmit(currentUser, 'phone_number', codeInputValue);\n\t\t\tawait Auth.setPreferredMFA(currentUser, MFA_TYPES.SMS);\n\n\t\t\tonSuccess(currentUser);\n\t\t} catch (userUnauthenticatedError) {\n\t\t\ttry {\n\t\t\t\tconst cognitoUser: CognitoUser = await Auth.confirmSignIn(\n\t\t\t\t\tfauxSignedInUser,\n\t\t\t\t\tcodeInputValue.replace(/\\s/g, ''),\n\t\t\t\t\tPREFERRED_MFA_TYPES.SMS_MFA\n\t\t\t\t);\n\n\t\t\t\tonSuccess(cognitoUser);\n\t\t\t} catch (confirmSignInError) {\n\t\t\t\thandleError(confirmSignInError);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tSet up SMS MFA\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPhone Number\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSend Verification Code\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tVerification Code\n\t\t\t\t\t\t setCodeInputValue(event.target.value)}\n\t\t\t\t\t\t\tdisabled={!codeSent}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Button, Form, Modal, ModalProps } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\nimport QRCode from 'qrcode.react';\n\nimport { MFA_TYPES } from '@/lib/models';\nimport { useHandleError } from '@/hooks';\nimport { LoadingButton } from '@/components/loading-button';\nimport { FadeTransition } from './fade-transition';\n\ninterface MfaTotpSetupModalProps extends ModalProps {\n\tuser: CognitoUser;\n\tonBack(): void;\n\tonSuccess(cognitoUserSession: CognitoUserSession): void;\n}\n\nexport const MfaTotpSetupModal = ({ user, onBack, onSuccess, ...props }: MfaTotpSetupModalProps) => {\n\tconst handleError = useHandleError();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [code, setCode] = useState();\n\tconst [isShowingSecretKey, setIsShowingSecretKey] = useState(false);\n\tconst [secretKey, setSecretKey] = useState('');\n\tconst [challengeAnswer, setChallengeAnswer] = useState('');\n\n\tconst handleOnEnter = useCallback(async () => {\n\t\tsetCode('');\n\t\tsetIsShowingSecretKey(false);\n\t\tsetSecretKey('');\n\t\tsetChallengeAnswer('');\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst setupCode = await Auth.setupTOTP(user);\n\n\t\t\tsetSecretKey(setupCode);\n\t\t\tsetCode(`otpauth://totp/AWSCognito:${user.getUsername()}?secret=${setupCode}&issuer=Hackett%20Advisory`);\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [handleError, user]);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst cognitoUserSession = await Auth.verifyTotpToken(user, challengeAnswer);\n\t\t\tawait Auth.setPreferredMFA(user, MFA_TYPES.TOTP);\n\n\t\t\tonSuccess(cognitoUserSession);\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tSet up Authenticator App MFA\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\tStep 1:\n\t\t\t\t\t

\n\t\t\t\t\t

Install an authenticator app on your mobile device.

\n\n\t\t\t\t\t

\n\t\t\t\t\t\tStep 2:\n\t\t\t\t\t

\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tScan this QR Code using your authenticator app. Alternatively, you can manually enter a\n\t\t\t\t\t\t\tsecret key in your authenticator app.{' '}\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetIsShowingSecretKey(!isShowingSecretKey);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{isShowingSecretKey ? 'Hide' : 'Show'} Secret Key\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{secretKey}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tStep 3:\n\t\t\t\t\t\t

\n\t\t\t\t\t\t

Enter a code from your authenticator app.

\n\t\t\t\t\t\t setChallengeAnswer(event.target.value)}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Button, Form, Modal, ModalProps } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\nimport { E164Number } from 'libphonenumber-js/core';\nimport classNames from 'classnames';\n\nimport { useHandleError } from '@/hooks';\nimport { LoadingButton, PhoneNumberInput } from '@/components';\n\ninterface NewPasswordRequiredModalProps extends ModalProps {\n\tuser: CognitoUser;\n\tonSuccess(user: CognitoUser): void;\n}\n\nexport const NewPasswordRequiredModal = ({ user, onSuccess, ...props }: NewPasswordRequiredModalProps) => {\n\tconst handleError = useHandleError();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [newPasswordInputValue, setNewPasswordInputValue] = useState('');\n\tconst [phoneNumberInputValue, setPhoneNumberInputValue] = useState();\n\tconst [requiresPhoneNumber, setRequiresPhoneNumber] = useState(false);\n\n\tconst handleOnEnter = useCallback(() => {\n\t\tsetIsLoading(false);\n\t\tsetNewPasswordInputValue('');\n\t\tsetPhoneNumberInputValue(undefined);\n\n\t\t// challengeParam property is missing on CognitoUser TS definition\n\t\t// @ts-ignore\n\t\tif (user.challengeParam?.requiredAttributes?.includes('phone_number')) {\n\t\t\tsetRequiresPhoneNumber(true);\n\t\t} else {\n\t\t\tsetRequiresPhoneNumber(false);\n\t\t}\n\t}, [user]);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\t\tsetIsLoading(true);\n\n\t\ttry {\n\t\t\tconst loggedUser: CognitoUser = await Auth.completeNewPassword(user, newPasswordInputValue, {\n\t\t\t\t...(requiresPhoneNumber && { phone_number: phoneNumberInputValue }),\n\t\t\t});\n\t\t\tonSuccess(loggedUser);\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tNew Password Required\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tNew Password\n\t\t\t\t\t\t setNewPasswordInputValue(event.target.value)}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{requiresPhoneNumber && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPhone Number\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSave\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React from 'react';\nimport PhoneInput from 'react-phone-number-input';\nimport { E164Number } from 'libphonenumber-js/core';\n\nimport { createUseThemedStyles } from '@/hooks';\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\tphoneNumberInput: {\n\t\tflex: 1,\n\t\theight: 40,\n\t\tborderRadius: 2,\n\t\tpadding: '0 15px',\n\t\tbackgroundColor: theme.colors.white,\n\t\tborder: `1px solid ${theme.colors.gray500}`,\n\t\tboxShadow: 'inset 0 1px 4px 0 rgba(0, 0, 0, 0.16)',\n\t\t'&:hover': {\n\t\t\tborder: `1px solid ${theme.colors.gray600}`,\n\t\t},\n\t\t'&:focus-within': {\n\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t},\n\t\t'& .PhoneInput': {\n\t\t\theight: '100%',\n\t\t},\n\t\t'& .PhoneInputCountry': {\n\t\t\tflexShrink: 0,\n\t\t\tmarginRight: 10,\n\t\t},\n\t\t'& .PhoneInputInput': {\n\t\t\tborder: 0,\n\t\t\tpadding: 0,\n\t\t\t...theme.fonts.s,\n\t\t\tlineHeight: 'normal',\n\t\t\tbackgroundColor: 'transparent',\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t},\n\t\t},\n\t},\n}));\n\ninterface PhoneNumberInputProps {\n\tvalue: E164Number | undefined;\n\tonChange(value?: E164Number | undefined): void;\n\tdisabled?: boolean;\n\trequired?: boolean;\n}\n\nexport const PhoneNumberInput = ({ ...props }: PhoneNumberInputProps) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Button, Modal, ModalProps } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport { Loader } from '@/components';\nimport { publicService } from '@/lib/services';\nimport { PlatformModel } from '@/lib/models';\nimport { constructUrl, getEncryptedToken } from '@/lib/utils';\n\ninterface PlatformSelectionModalProps extends ModalProps {\n\tuser: CognitoUser;\n}\n\nexport const PlatformSelectionModal = ({ user, ...props }: PlatformSelectionModalProps) => {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [platforms, setPlatforms] = useState([]);\n\n\tconst redirectUserToUrl = useCallback(\n\t\tasync (url: string) => {\n\t\t\ttry {\n\t\t\t\tconst encryptedToken = await getEncryptedToken(user);\n\t\t\t\tconst urlObj = new URL(url);\n\t\t\t\tconst searchParams = new URLSearchParams();\n\t\t\t\tsearchParams.set('X-Hackett-Access-Token', encryptedToken);\n\n\t\t\t\twindow.location.href = constructUrl(\n\t\t\t\t\t`${urlObj.origin}${urlObj.pathname}`,\n\t\t\t\t\tObject.fromEntries(searchParams)\n\t\t\t\t);\n\t\t\t} catch (_error) {\n\t\t\t\twindow.location.href = url;\n\t\t\t}\n\t\t},\n\t\t[user]\n\t);\n\n\tconst handleOnEnter = useCallback(async () => {\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst userAttributes = await Auth.userAttributes(user);\n\t\t\tconst platformAttributeValue = userAttributes.find((cognitoUserAttribute) => {\n\t\t\t\treturn cognitoUserAttribute.Name === 'custom:platform';\n\t\t\t})?.Value;\n\t\t\tconst parsedPlatformAttributeValue: string[] = platformAttributeValue\n\t\t\t\t? JSON.parse(platformAttributeValue)\n\t\t\t\t: [];\n\t\t\tconst response = await publicService.getPlatforms({ platform: parsedPlatformAttributeValue }).fetch();\n\n\t\t\tif (response.platforms.length === 1) {\n\t\t\t\tredirectUserToUrl(response.platforms[0].signOnUrl);\n\t\t\t}\n\n\t\t\tsetPlatforms(response.platforms);\n\t\t\tsetIsLoading(false);\n\t\t} catch (error) {\n\t\t\twindow.location.href = '/';\n\t\t}\n\t}, [redirectUserToUrl, user]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tSelect Platform\n\t\t\t\n\t\t\t\n\t\t\t\t{isLoading ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{platforms.map((platform) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t redirectUserToUrl(platform.signOnUrl)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{platform.platformName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { FC, useCallback, useRef } from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\n\nimport { AsyncPage } from '@/components';\nimport { Auth } from 'aws-amplify';\n\nconst PrivateView: FC = ({ children }) => {\n\tconst routeIsInitialized = useRef(false);\n\n\tconst fetchData = useCallback(async () => {\n\t\tif (routeIsInitialized.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait Auth.currentAuthenticatedUser();\n\t\trouteIsInitialized.current = true;\n\t}, []);\n\n\treturn {children};\n};\n\nexport const PrivateRoute: FC = ({ children, ...routeProps }) => {\n\treturn {children}} />;\n};\n","import React from 'react';\n\nimport config from '@/lib/config';\nimport { createUseThemedStyles } from '@/hooks';\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\trenderJson: {\n\t\tpadding: 16,\n\t\tmarginTop: 24,\n\t\tborderRadius: 4,\n\t\t...theme.fonts.xs,\n\t\tbackgroundColor: theme.colors.white,\n\t\tborder: `1px solid ${theme.colors.gray300}`,\n\t},\n}));\n\ninterface RenderJsonProps {\n\tjson: any;\n}\n\nexport const RenderJson = ({ json }: RenderJsonProps) => {\n\tconst classes = useStyles();\n\n\tif (config.HACKETT_USER_AUTH_SHOW_DEBUG === 'true') {\n\t\treturn
{JSON.stringify(json, null, 4)}
;\n\t}\n\n\treturn null;\n};\n","var _polygon;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgIconChevronDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 10,\n viewBox: \"0 0 10 10\",\n fill: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n fillRule: \"evenodd\",\n points: \"5 8.429 0 3.429 1.429 2 5 5.571 8.571 2 10 3.429\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconChevronDown);\nexport default __webpack_public_path__ + \"static/media/icon-chevron-down.e93cba4a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FC } from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { createUseThemedStyles } from '@/hooks';\nimport { ReactComponent as DownChevron } from '@/assets/icons/icon-chevron-down.svg';\n\nconst useSelectStyles = createUseThemedStyles((theme) => ({\n\tselect: {\n\t\tposition: 'relative',\n\t\t'& select': {\n\t\t\tzIndex: 0,\n\t\t\t...theme.fonts.s,\n\t\t\theight: 40,\n\t\t\twidth: '100%',\n\t\t\tborderRadius: 2,\n\t\t\tcursor: 'pointer',\n\t\t\tappearance: 'none',\n\t\t\tposition: 'relative',\n\t\t\tpadding: '0 40px 0 15px',\n\t\t\tcolor: theme.colors.black,\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t\tborder: `1px solid ${theme.colors.gray500}`,\n\t\t\tboxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.16)',\n\t\t\t'&:hover': {\n\t\t\t\tborder: `1px solid ${theme.colors.gray600}`,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tcursor: 'default',\n\t\t\t\tcolor: theme.colors.gray500,\n\t\t\t\tbackgroundColor: theme.colors.gray300,\n\t\t\t\t'&:hover': {\n\t\t\t\t\tborder: `1px solid ${theme.colors.gray600}`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&:invalid': {\n\t\t\t\tfontStyle: 'italic',\n\t\t\t\tcolor: theme.colors.gray600,\n\t\t\t},\n\t\t\t'&::-ms-expand': {\n\t\t\t\tdisplay: 'none',\n\t\t\t},\n\t\t},\n\t},\n\tdownChevron: {\n\t\tzIndex: 1,\n\t\tright: 15,\n\t\ttop: '50%',\n\t\tposition: 'absolute',\n\t\tpointerEvents: 'none',\n\t\ttransform: 'translateY(-50%)',\n\t\tfill: theme.colors.primary,\n\t},\n}));\n\ninterface SelectProps {\n\tvalue: string;\n\tonChange(event: React.ChangeEvent): void;\n\trequired?: boolean;\n}\n\nexport const Select: FC = (props) => {\n\tconst classes = useSelectStyles();\n\n\tfunction handleOnChange(event: React.ChangeEvent) {\n\t\tprops.onChange(event);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{props.children}\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n","import Color from 'color';\n\nimport { createUseThemedStyles } from '@/hooks';\n\nimport { badge, button, form, card, modal } from '@/jss/bootstrap';\nimport mediaQueries from '@/jss/media-queries';\n\nconst spacerSize: number = 5;\nconst iterations: number = 40;\n\nconst m: Record> = {};\nconst ml: Record> = {};\nconst mr: Record> = {};\nconst mt: Record> = {};\nconst mb: Record> = {};\nconst mx: Record> = {};\nconst my: Record> = {};\n\nconst p: Record> = {};\nconst pl: Record> = {};\nconst pr: Record> = {};\nconst pt: Record> = {};\nconst pb: Record> = {};\nconst px: Record> = {};\nconst py: Record> = {};\n\nfor (let i: number = 0; i <= iterations; i++) {\n\tm[`.m-${i}`] = { margin: `${spacerSize * i}px !important` };\n\tml[`.ml-${i}`] = { marginLeft: `${spacerSize * i}px !important` };\n\tmr[`.mr-${i}`] = { marginRight: `${spacerSize * i}px !important` };\n\tmt[`.mt-${i}`] = { marginTop: `${spacerSize * i}px !important` };\n\tmb[`.mb-${i}`] = { marginBottom: `${spacerSize * i}px !important` };\n\tmx[`.mx-${i}`] = { marginLeft: `${spacerSize * i}px !important`, marginRight: `${spacerSize * i}px !important` };\n\tmy[`.my-${i}`] = { marginTop: `${spacerSize * i}px !important`, marginBottom: `${spacerSize * i}px !important` };\n\n\tp[`.p-${i}`] = { padding: `${spacerSize * i}px !important` };\n\tpl[`.pl-${i}`] = { paddingLeft: `${spacerSize * i}px !important` };\n\tpr[`.pr-${i}`] = { paddingRight: `${spacerSize * i}px !important` };\n\tpt[`.pt-${i}`] = { paddingTop: `${spacerSize * i}px !important` };\n\tpb[`.pb-${i}`] = { paddingBottom: `${spacerSize * i}px !important` };\n\tpx[`.px-${i}`] = { paddingLeft: `${spacerSize * i}px !important`, paddingRight: `${spacerSize * i}px !important` };\n\tpy[`.py-${i}`] = { paddingTop: `${spacerSize * i}px !important`, paddingBottom: `${spacerSize * i}px !important` };\n}\n\nexport const useThemedBootstrapStyles = createUseThemedStyles((theme) => ({\n\t'@global': {\n\t\t/* ----------------------------------------------------------- */\n\t\t/* bsPrefix overrides */\n\t\t/* ----------------------------------------------------------- */\n\t\t...badge(theme),\n\t\t...button(theme),\n\t\t...card(theme),\n\t\t...form(theme),\n\t\t...modal(theme),\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Generic overrides */\n\t\t/* ----------------------------------------------------------- */\n\t\t'.container': {\n\t\t\t[mediaQueries.xl]: {\n\t\t\t\tmaxWidth: 1440,\n\t\t\t\twidth: 'calc(100% - 70px)',\n\t\t\t},\n\t\t\t[mediaQueries.lg]: {\n\t\t\t\tmaxWidth: 1440,\n\t\t\t\twidth: 'calc(100% - 70px)',\n\t\t\t},\n\t\t\t[mediaQueries.md]: {\n\t\t\t\tmaxWidth: 1440,\n\t\t\t\twidth: 'calc(100% - 70px)',\n\t\t\t},\n\t\t\t[mediaQueries.sm]: {\n\t\t\t\tmaxWidth: 1440,\n\t\t\t\twidth: 'calc(100% - 70px)',\n\t\t\t},\n\t\t},\n\t\t'.font-weight-regular': {\n\t\t\t...theme.fonts.openSansRegular,\n\t\t},\n\t\t'.font-weight-semi-bold': {\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'.font-weight-bold': {\n\t\t\t...theme.fonts.openSansBold,\n\t\t},\n\t\t'.font-italic': {\n\t\t\tfontStyle: 'italic',\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Spacer overrides */\n\t\t/* ----------------------------------------------------------- */\n\t\t...m,\n\t\t...ml,\n\t\t...mr,\n\t\t...mt,\n\t\t...mb,\n\t\t...mx,\n\t\t...my,\n\t\t...p,\n\t\t...pl,\n\t\t...pr,\n\t\t...pt,\n\t\t...pb,\n\t\t...px,\n\t\t...py,\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Headings and text overrides */\n\t\t/* ----------------------------------------------------------- */\n\t\t'h1, .h1': {\n\t\t\t...theme.fonts.xl,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'h2, .h2': {\n\t\t\t...theme.fonts.l,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'h3, .h3': {\n\t\t\t...theme.fonts.m,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'h4, .h4': {\n\t\t\t...theme.fonts.s,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'h5, .h5': {\n\t\t\t...theme.fonts.xs,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'h6, .h6': {\n\t\t\t...theme.fonts.xxs,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'p, .p': {\n\t\t\t...theme.fonts.s,\n\t\t\t...theme.fonts.openSansRegular,\n\t\t},\n\t\t'small, .small': {\n\t\t\t...theme.fonts.xs,\n\t\t},\n\t\t'a, .a': {\n\t\t\ttextDecoration: 'none',\n\t\t\tcolor: theme.colors.info,\n\t\t\t'&:hover': {\n\t\t\t\ttextDecoration: 'underline',\n\t\t\t\tcolor: Color(theme.colors.info)\n\t\t\t\t\t.lighten(0.16)\n\t\t\t\t\t.hex(),\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tboxShadow: `0 0 0 0.2rem ${Color(theme.colors.info)\n\t\t\t\t\t.alpha(0.3)\n\t\t\t\t\t.rgb()}`,\n\t\t\t},\n\t\t},\n\t\t'strong, bold, .strong, .bold': {\n\t\t\t...theme.fonts.openSansBold,\n\t\t},\n\t\t'.text-black': {\n\t\t\tcolor: `${theme.colors.black} !important`,\n\t\t},\n\t\t'.text-muted': {\n\t\t\tcolor: `${theme.colors.gray600} !important`,\n\t\t},\n\t\t'.text-primary': {\n\t\t\tcolor: `${theme.colors.primary} !important`,\n\t\t},\n\t\t'.text-secondary': {\n\t\t\tcolor: `${theme.colors.secondary} !important`,\n\t\t},\n\t\t'.text-success': {\n\t\t\tcolor: `${theme.colors.success} !important`,\n\t\t},\n\t\t'.text-warning': {\n\t\t\tcolor: `${theme.colors.warning} !important`,\n\t\t},\n\t\t'.text-danger': {\n\t\t\tcolor: `${theme.colors.danger} !important`,\n\t\t},\n\t\t'.text-info': {\n\t\t\tcolor: `${theme.colors.info} !important`,\n\t\t},\n\t\t'.text-dark': {\n\t\t\tcolor: `${theme.colors.dark} !important`,\n\t\t},\n\t\t'.text-gray-100': {\n\t\t\tcolor: `${theme.colors.gray100} !important`,\n\t\t},\n\t\t'.text-gray-200': {\n\t\t\tcolor: `${theme.colors.gray200} !important`,\n\t\t},\n\t\t'.text-gray-300': {\n\t\t\tcolor: `${theme.colors.gray300} !important`,\n\t\t},\n\t\t'.text-gray-400': {\n\t\t\tcolor: `${theme.colors.gray400} !important`,\n\t\t},\n\t\t'.text-gray-500': {\n\t\t\tcolor: `${theme.colors.gray500} !important`,\n\t\t},\n\t\t'.text-gray-600': {\n\t\t\tcolor: `${theme.colors.gray600} !important`,\n\t\t},\n\t\t'.text-gray-700': {\n\t\t\tcolor: `${theme.colors.gray700} !important`,\n\t\t},\n\t\t'.text-right': {\n\t\t\ttextAlign: 'right',\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* BG overrides */\n\t\t/* ----------------------------------------------------------- */\n\t\t'.bg-white': {\n\t\t\tbackgroundColor: `${theme.colors.white} !important`,\n\t\t},\n\t\t'.bg-gray-100': {\n\t\t\tbackgroundColor: `${theme.colors.gray100} !important`,\n\t\t},\n\t\t'.bg-gray-200': {\n\t\t\tbackgroundColor: `${theme.colors.gray200} !important`,\n\t\t},\n\t\t'.bg-gray-300': {\n\t\t\tbackgroundColor: `${theme.colors.gray300} !important`,\n\t\t},\n\t\t'.bg-primary': {\n\t\t\tbackgroundColor: `${theme.colors.primary} !important`,\n\t\t},\n\t\t'.bg-secondary': {\n\t\t\tbackgroundColor: `${theme.colors.secondary} !important`,\n\t\t},\n\t\t'.bg-success': {\n\t\t\tbackgroundColor: `${theme.colors.success} !important`,\n\t\t},\n\t\t'.bg-warning': {\n\t\t\tbackgroundColor: `${theme.colors.warning} !important`,\n\t\t},\n\t\t'.bg-danger': {\n\t\t\tbackgroundColor: `${theme.colors.danger} !important`,\n\t\t},\n\t\t'.bg-info': {\n\t\t\tbackgroundColor: `${theme.colors.info} !important`,\n\t\t},\n\t\t'.bg-dark': {\n\t\t\tbackgroundColor: `${theme.colors.dark} !important`,\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* overrides (no bsPrefix support for default tabs) */\n\t\t/* ----------------------------------------------------------- */\n\t\t'.nav-tabs': {\n\t\t\tborder: 0,\n\t\t\toverflowX: 'auto',\n\t\t\tflexWrap: 'nowrap',\n\t\t\t'& .nav-item': {\n\t\t\t\tborderTop: `1px solid ${theme.colors.gray300}`,\n\t\t\t\tborderRight: 0,\n\t\t\t\tborderBottom: 0,\n\t\t\t\tborderLeft: `1px solid ${theme.colors.gray300}`,\n\t\t\t\t'&:last-child': {\n\t\t\t\t\tborderRight: `1px solid ${theme.colors.gray300}`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'& .nav-link': {\n\t\t\t\tborder: 0,\n\t\t\t\tborderRadius: 0,\n\t\t\t\tmarginBottom: 0,\n\t\t\t\tposition: 'relative',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tpadding: '2.4rem 3.2rem',\n\t\t\t\ttextTransform: 'uppercase',\n\t\t\t\t...theme.fonts.xs,\n\t\t\t\t...theme.fonts.openSansSemiBold,\n\t\t\t\tcolor: theme.colors.primary,\n\t\t\t\t'&.active': {\n\t\t\t\t\tcolor: theme.colors.primary,\n\t\t\t\t\tbackgroundColor: theme.colors.white,\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t.alpha(0.08)\n\t\t\t\t\t\t\t.string(),\n\t\t\t\t\t},\n\t\t\t\t\t'&:after': {\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\theight: 2,\n\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbackgroundColor: theme.colors.primary,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'& + .tab-content': {\n\t\t\t\tpadding: '2.4rem 3.2rem',\n\t\t\t\tborder: `1px solid ${theme.colors.gray300}`,\n\t\t\t},\n\t\t},\n\t},\n}));\n","import React, { useMemo } from 'react';\nimport { Button, Modal, ModalProps } from 'react-bootstrap';\nimport { handleDangerousHtmlClick } from '@/lib/utils';\nimport { usePlatformsContext } from '@/hooks';\n\ninterface UpdateCredentialsModalProps extends ModalProps {\n\tonClose(): void;\n}\n\nexport const UpdateCredentialsModal = ({ onClose, ...props }: UpdateCredentialsModalProps) => {\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\treturn (\n\t\t {\n\t\t\t\treturn;\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\tUpdate Credentials\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","export const prefixes = {\n\tbadge: 'hackett-badge',\n\tbtn: 'hackett-button',\n\t'form-group': 'hackett-form__group',\n\t'form-label': 'hackett-form__label',\n\t'form-control': 'hackett-form__control',\n\t'form-check': 'hackett-form__check',\n\tcard: 'hackett-card',\n\t'card-header': 'hackett-card__header',\n\t'card-title': 'hackett-card__title',\n\t'card-body': 'hackett-card__body',\n\t'modal-header': 'hackett-modal__header',\n\t'modal-title': 'hackett-modal__title',\n\t'modal-body': 'hackett-modal__body',\n\t'modal-footer': 'hackett-modal__footer',\n};\n","import { ThemeConfig } from '@/contexts';\n\nexport const badge = (theme: ThemeConfig) => ({\n\t'.hackett-badge': {\n\t\t...theme.fonts.s,\n\t\tpadding: '1.2rem 2rem',\n\t\tdisplay: 'inline-flex',\n\t\tbackgroundColor: theme.colors.white,\n\t\tborder: `1px solid ${theme.colors.gray400}`,\n\t\t'&-pill': {\n\t\t\tborderRadius: 500,\n\t\t},\n\t\t'&-primary': {\n\t\t\tcolor: theme.colors.white,\n\t\t\tbackgroundColor: theme.colors.primary,\n\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t},\n\t},\n});\n","import Color from 'color';\nimport { ThemeConfig } from '@/contexts';\n\nconst solidButton = (\n\ttextColor: string,\n\tbackgroundColor: string,\n\tdisabledTextColor: string,\n\tdisabledBackgroundColor: string\n) => {\n\treturn {\n\t\tcolor: textColor,\n\t\tbackgroundColor: backgroundColor,\n\t\t'&:hover': {\n\t\t\tcolor: textColor,\n\t\t\tbackgroundColor: Color(backgroundColor)\n\t\t\t\t.lighten(0.16)\n\t\t\t\t.hex(),\n\t\t\ttextDecoration: 'none',\n\t\t},\n\t\t'&:active': {\n\t\t\tbackgroundColor: Color(backgroundColor)\n\t\t\t\t.darken(0.16)\n\t\t\t\t.hex(),\n\t\t},\n\t\t'&:focus': {\n\t\t\toutline: 'none',\n\t\t\tboxShadow: `0 0 0 0.2rem ${Color(backgroundColor)\n\t\t\t\t.alpha(0.32)\n\t\t\t\t.rgb()}`,\n\t\t},\n\t\t'&:disabled': {\n\t\t\tcolor: disabledTextColor,\n\t\t\tbackgroundColor: disabledBackgroundColor,\n\t\t},\n\t};\n};\n\nconst outlineButton = (activeColor: string, disabledColor: string) => {\n\treturn {\n\t\tcolor: activeColor,\n\t\tposition: 'relative',\n\t\tbackgroundColor: 'transparent',\n\t\t'&:before': {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tcontent: '\"\"',\n\t\t\tposition: 'absolute',\n\t\t\tpointerEvents: 'none',\n\t\t\tborderRadius: 'inherit',\n\t\t\tborder: `1px solid ${activeColor}`,\n\t\t},\n\t\t'&:hover': {\n\t\t\tcolor: activeColor,\n\t\t\tbackgroundColor: Color(activeColor)\n\t\t\t\t.alpha(0.16)\n\t\t\t\t.string(),\n\t\t},\n\t\t'&:active': {\n\t\t\tbackgroundColor: Color(activeColor)\n\t\t\t\t.alpha(0.32)\n\t\t\t\t.string(),\n\t\t},\n\t\t'&:disabled': {\n\t\t\tcolor: disabledColor,\n\t\t\tborderColor: disabledColor,\n\t\t},\n\t};\n};\n\nexport const button = (theme: ThemeConfig) => ({\n\t'.hackett-button': {\n\t\tdisplay: 'inline-flex',\n\t\tborder: 0,\n\t\tborderRadius: 2,\n\t\t...theme.fonts.s,\n\t\tappearance: 'none',\n\t\tpadding: '1.2rem 2.4rem',\n\t\tletterSpacing: '0.026rem',\n\t\t...theme.fonts.openSansBold,\n\t\tcolor: theme.colors.white,\n\t\tbackgroundColor: theme.colors.primary,\n\t\t'&:hover': {\n\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t.lighten(0.16)\n\t\t\t\t.hex(),\n\t\t\tcolor: theme.colors.white,\n\t\t\ttextDecoration: 'none',\n\t\t},\n\t\t'&:active': {\n\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t.darken(0.16)\n\t\t\t\t.hex(),\n\t\t},\n\t\t'&:focus': {\n\t\t\toutline: 'none',\n\t\t\tboxShadow: `0 0 0 0.2rem ${Color(theme.colors.primary)\n\t\t\t\t.alpha(0.32)\n\t\t\t\t.rgb()}`,\n\t\t},\n\t\t'&:disabled': {\n\t\t\tcolor: theme.colors.gray500,\n\t\t\tbackgroundColor: theme.colors.gray300,\n\t\t},\n\n\t\t'&-sm': {\n\t\t\tpadding: '0.8rem 2.4rem',\n\t\t},\n\n\t\t/* ---------------------------------------------- */\n\t\t/* Solid variants */\n\t\t/* ---------------------------------------------- */\n\t\t'&-secondary': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.secondary, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-success': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.success, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-warning': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.warning, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-danger': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.danger, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-info': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.info, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-dark': {\n\t\t\t...solidButton(theme.colors.white, theme.colors.dark, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\t\t'&-light': {\n\t\t\t...solidButton(theme.colors.dark, theme.colors.white, theme.colors.gray500, theme.colors.gray300),\n\t\t},\n\n\t\t/* ---------------------------------------------- */\n\t\t/* Outline variant */\n\t\t/* ---------------------------------------------- */\n\t\t'&-outline-primary': {\n\t\t\tjustifyContent: 'center',\n\t\t\t...outlineButton(theme.colors.primary, theme.colors.gray300),\n\t\t},\n\t\t'&-outline-primary&:hover': {\n\t\t\tcolor: theme.colors.primary,\n\t\t},\n\t\t'&-outline-secondary': {\n\t\t\t...outlineButton(theme.colors.secondary, theme.colors.gray300),\n\t\t},\n\t\t'&-outline-success': {\n\t\t\t...outlineButton(theme.colors.success, theme.colors.gray300),\n\t\t},\n\t\t'&-outline-warning': {\n\t\t\t...outlineButton(theme.colors.warning, theme.colors.gray300),\n\t\t},\n\t\t'&-outline-danger': {\n\t\t\t...outlineButton(theme.colors.danger, theme.colors.gray300),\n\t\t},\n\t\t'&-outline-info': {\n\t\t\t...outlineButton(theme.colors.info, theme.colors.gray300),\n\t\t},\n\n\t\t/* ---------------------------------------------- */\n\t\t/* Link variant */\n\t\t/* ---------------------------------------------- */\n\t\t'&-link': {\n\t\t\tpadding: 0,\n\t\t\tborderRadius: 0,\n\t\t\t...theme.fonts.openSansRegular,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\tcolor: `${theme.colors.info} !important`,\n\t\t\t'&:hover': {\n\t\t\t\ttextDecoration: 'underline',\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t},\n\t\t\t'&:active': {\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\tcolor: `${theme.colors.gray500} !important`,\n\t\t\t\t'&:hover': {\n\t\t\t\t\ttextDecoration: 'none',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n});\n","import { ThemeConfig } from '@/contexts';\n\nexport const card = (theme: ThemeConfig) => ({\n\t'.hackett-card': {\n\t\tborderRadius: 2,\n\t\tbackgroundColor: theme.colors.white,\n\t\tboxShadow: '0 1px 2px 0 rgba(91,103,112,0.1), 0 2px 5px 0 rgba(91,103,112,0.1)',\n\t\t'&__header': {\n\t\t\tpadding: '20px 30px',\n\t\t\tborderBottom: `1px solid ${theme.colors.gray300}`,\n\t\t},\n\t\t'&__title': {\n\t\t\tmargin: 0,\n\t\t\t...theme.fonts.m,\n\t\t\tletterSpacing: '0.025rem',\n\t\t\t...theme.fonts.openSansBold,\n\t\t},\n\t\t'&__body': {\n\t\t\tpadding: 30,\n\t\t},\n\t},\n});\n","export default __webpack_public_path__ + \"static/media/icon-checkmark-checkbox.d5258ba8.svg\";","import Color from 'color';\nimport { ThemeConfig } from '@/contexts';\n\nimport checkmarkIcon from '@/assets/icons/icon-checkmark-checkbox.svg';\n\nexport const form = (theme: ThemeConfig) => ({\n\t'.hackett-form': {\n\t\t'&__group': {\n\t\t\tmarginBottom: 30,\n\t\t},\n\t\t'&__label': {\n\t\t\t...theme.fonts.s,\n\t\t\tmarginBottom: 5,\n\t\t\tcolor: theme.colors.black,\n\t\t\t...theme.fonts.openSansSemiBold,\n\t\t},\n\t\t'&__control': {\n\t\t\tflex: 1,\n\t\t\tpadding: 0,\n\t\t\t...theme.fonts.s,\n\t\t\twidth: '100%',\n\t\t\ttextIndent: 15,\n\t\t\tborderRadius: 2,\n\t\t\tdisplay: 'block',\n\t\t\tappearance: 'none',\n\t\t\tlineHeight: 'normal',\n\t\t\tcolor: theme.colors.black,\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t\tborder: `1px solid ${theme.colors.gray500}`,\n\t\t\tboxShadow: 'inset 0 1px 4px 0 rgba(0, 0, 0, 0.16)',\n\t\t\t'&:hover': {\n\t\t\t\tborder: `1px solid ${theme.colors.gray600}`,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tbackgroundColor: theme.colors.gray300,\n\t\t\t\t'&:hover': {\n\t\t\t\t\tborder: `1px solid ${theme.colors.gray500}`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&[type=date], &[type=datetime-local], &[type=email], &[type=month], &[type=number], &[type=password], &[type=search], &[type=tel], &[type=text], &[type=time], &[type=url], &[type=week]': {\n\t\t\t\theight: 40,\n\t\t\t},\n\t\t},\n\t\t'&__check': {\n\t\t\tposition: 'relative',\n\t\t\t'&-inline': {\n\t\t\t\tmarginRight: 16,\n\t\t\t\tdisplay: 'inline-block',\n\t\t\t},\n\t\t\t'& input[type=checkbox], & input[type=radio]': {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t\topacity: 0,\n\t\t\t\tposition: 'absolute',\n\t\t\t\t'& + label': {\n\t\t\t\t\t...theme.fonts.s,\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\talignItems: 'baseline',\n\t\t\t\t\tcolor: theme.colors.gray700,\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\twidth: 18,\n\t\t\t\t\t\theight: 18,\n\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\tmarginRight: 8,\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\ttransform: 'translateY(2px)',\n\t\t\t\t\t\tbackgroundColor: theme.colors.white,\n\t\t\t\t\t\tborder: `1px solid ${theme.colors.gray500}`,\n\t\t\t\t\t\tboxShadow: `inset 0 1px 3px 0 rgba(51,51,51,0.1)`,\n\t\t\t\t\t},\n\t\t\t\t\t'&:hover:before': {\n\t\t\t\t\t\tbackgroundColor: Color(theme.colors.white)\n\t\t\t\t\t\t\t.darken(0.16)\n\t\t\t\t\t\t\t.hex(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'&:checked + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tborderColor: theme.colors.primary,\n\t\t\t\t\t},\n\t\t\t\t\t'&:hover:before': {\n\t\t\t\t\t\tborderColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t.lighten(0.16)\n\t\t\t\t\t\t\t.hex(),\n\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t.lighten(0.16)\n\t\t\t\t\t\t\t.hex(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'&:focus + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'& input[type=checkbox]': {\n\t\t\t\t'& + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tborderRadius: 2,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'&:checked + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tbackgroundPosition: 'center',\n\t\t\t\t\t\tbackgroundRepeat: 'no-repeat',\n\t\t\t\t\t\tbackgroundImage: `url(${checkmarkIcon})`,\n\t\t\t\t\t\tbackgroundColor: theme.colors.primary,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'& input[type=radio]': {\n\t\t\t\t'& + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'&:checked + label': {\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tbackgroundColor: theme.colors.primary,\n\t\t\t\t\t},\n\t\t\t\t\t'&:after': {\n\t\t\t\t\t\ttop: 7,\n\t\t\t\t\t\tleft: 5,\n\t\t\t\t\t\twidth: 8,\n\t\t\t\t\t\theight: 8,\n\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbackgroundColor: theme.colors.white,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&--badge': {\n\t\t\t\t'&-inline': {\n\t\t\t\t\tmarginRight: 8,\n\t\t\t\t\tmarginBottom: 8,\n\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t},\n\t\t\t\t'& input[type=checkbox], & input[type=radio]': {\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\topacity: 0,\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t'& + label': {\n\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t...theme.fonts.s,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tborderRadius: 500,\n\t\t\t\t\t\tpadding: '0.8rem 2.4rem',\n\t\t\t\t\t\t...theme.fonts.openSansRegular,\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tcolor: theme.colors.primary,\n\t\t\t\t\t\tborder: `1px solid ${theme.colors.primary}`,\n\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t\t.alpha(0.16)\n\t\t\t\t\t\t\t\t.string(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'&:active': {\n\t\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t\t.alpha(0.32)\n\t\t\t\t\t\t\t\t.string(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// CSS Trick to not increase width when font changes from regular to bold when checked\n\t\t\t\t\t\t'&:after': {\n\t\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t\t...theme.fonts.openSansBold,\n\t\t\t\t\t\t\tcontent: 'attr(data-title) / \"\"',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'&:checked + label': {\n\t\t\t\t\t\tcolor: theme.colors.white,\n\t\t\t\t\t\t...theme.fonts.openSansBold,\n\t\t\t\t\t\tbackgroundColor: theme.colors.primary,\n\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t\t.lighten(0.16)\n\t\t\t\t\t\t\t\t.hex(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'&:active': {\n\t\t\t\t\t\t\tbackgroundColor: Color(theme.colors.primary)\n\t\t\t\t\t\t\t\t.darken(0.16)\n\t\t\t\t\t\t\t\t.hex(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'&:focus + label': {\n\t\t\t\t\t\toutline: 'none',\n\t\t\t\t\t\tboxShadow: `0 0 0 0.2rem ${Color(theme.colors.primary)\n\t\t\t\t\t\t\t.alpha(0.3)\n\t\t\t\t\t\t\t.rgb()}`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\t'textarea.hackett-form__control': {\n\t\theight: 74,\n\t\tresize: 'none',\n\t\tpadding: '8px 0',\n\t},\n});\n","import { ThemeConfig } from '@/contexts';\n\nexport const modal = (theme: ThemeConfig) => ({\n\t'.hackett-modal': {\n\t\t'&__header': {\n\t\t\tpadding: '20px 30px',\n\t\t\tborderBottom: `1px solid ${theme.colors.gray300}`,\n\t\t},\n\t\t'&__title.h4': {\n\t\t\tmargin: 0,\n\t\t\t...theme.fonts.m,\n\t\t\ttextTransform: 'none',\n\t\t\tletterSpacing: '0.025rem',\n\t\t\t...theme.fonts.openSansBold,\n\t\t},\n\t\t'&__body': {\n\t\t\tpadding: 30,\n\t\t},\n\t\t'&__footer': {\n\t\t\tpadding: '20px 30px',\n\t\t\tborderTop: `1px solid ${theme.colors.gray300}`,\n\t\t},\n\t},\n});\n","import { createUseThemedStyles } from '@/hooks';\n\nexport const useGlobalStyles = createUseThemedStyles((theme) => ({\n\t'@global': {\n\t\t'#root': {\n\t\t\toverflow: 'hidden',\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Search input controls */\n\t\t/* ----------------------------------------------------------- */\n\t\t'input[type=search]::-ms-clear': {\n\t\t\tdisplay: 'none',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t},\n\t\t'input[type=search]::-ms-reveal': {\n\t\t\tdisplay: 'none',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t},\n\t\t'input[type=\"search\"]::-webkit-search-decoration, input[type=\"search\"]::-webkit-search-cancel-button, input[type=\"search\"]::-webkit-search-results-button, input[type=\"search\"]::-webkit-search-results-decoration': {\n\t\t\tdisplay: 'none',\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Placeholder text */\n\t\t/* ----------------------------------------------------------- */\n\t\t'::-webkit-input-placeholder': {\n\t\t\tfontStyle: 'italic',\n\t\t\tcolor: theme.colors.gray600,\n\t\t},\n\t\t'::-moz-placeholder': {\n\t\t\tfontStyle: 'italic',\n\t\t\tcolor: theme.colors.gray600,\n\t\t},\n\t\t':-ms-input-placeholder': {\n\t\t\tfontStyle: 'italic',\n\t\t\tcolor: theme.colors.gray600,\n\t\t},\n\t\t':-moz-placeholder': {\n\t\t\tfontStyle: 'italic',\n\t\t\tcolor: theme.colors.gray600,\n\t\t},\n\n\t\t/* ----------------------------------------------------------- */\n\t\t/* Generics */\n\t\t/* ----------------------------------------------------------- */\n\t\thtml: {\n\t\t\theight: '100%',\n\t\t\tfontSize: '10px',\n\t\t},\n\t\tbody: {\n\t\t\t...theme.fonts.s,\n\t\t\tminHeight: '100%',\n\t\t\tposition: 'relative',\n\t\t\tcolor: theme.colors.black,\n\t\t\t...theme.fonts.openSansRegular,\n\t\t\tbackgroundColor: theme.colors.gray100,\n\t\t},\n\t\thr: {\n\t\t\tmargin: 0,\n\t\t},\n\t},\n}));\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoHackettR(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 234,\n height: 29,\n viewBox: \"0 0 234 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1109_221)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.3137 5.1879L1.8117 11.9639H5.4727L9.3137 7.6539V5.1879Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.0270004 2.6765V11.9635H1.76L9.314 2.7755V2.6765H0.0270004Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.3137 9.64551L6.5847 11.9635H9.3137V9.64551Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.58 12.8186L1.996 15.8656L4.712 12.8186H0V22.1046H9.286V17.9356L6.492 20.3616L9.286 17.2226V13.6046L3.547 18.6606L8.754 12.8186H5.58Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.1897 12.8188L10.2587 17.0938V20.9108L17.4637 12.8188H15.1897Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.259 16.1328L13.212 12.8188H10.259V16.1328Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.259 22.1054H19.545V13.0074L10.259 20.9234V22.1054Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.2105 20.9627L10.2595 20.9227V20.9117L10.2105 20.9627Z\",\n fill: \"#5D87A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.408 10.975H22.379V0H11.408V10.975Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.9934 11.2016C31.9934 9.5006 31.9684 7.8006 31.9194 6.0996C30.2184 6.0996 28.0254 6.1976 26.6444 6.3706C26.7184 6.1246 26.7674 5.8536 26.7674 5.5816C26.7674 5.3346 26.7184 5.0876 26.6444 4.8176C28.7644 4.8906 30.8844 4.9396 33.0034 4.9396C35.1234 4.9396 37.2434 4.8906 39.3624 4.8176C39.2884 5.0876 39.2394 5.3346 39.2394 5.6056C39.2394 5.8536 39.2884 6.1246 39.3624 6.3706C37.9824 6.1976 35.7894 6.0996 34.0884 6.0996C34.0404 7.8006 34.0144 9.5006 34.0144 11.2016V15.4416C34.0144 17.5606 34.1124 19.7056 34.2114 21.8256C33.7924 21.7506 33.3984 21.7026 33.0034 21.7026C32.6104 21.7026 32.2154 21.7506 31.7964 21.8256C31.8954 19.7056 31.9934 17.5606 31.9934 15.4416V11.2016Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M40.8176 10.2651C40.8176 7.9961 40.7686 4.8171 40.6206 3.1651C40.9906 3.2391 41.3596 3.2891 41.7306 3.2891C42.1006 3.2891 42.4696 3.2391 42.8386 3.1651C42.6916 4.8171 42.6426 7.9961 42.6426 10.1411V12.0151H42.6916C43.6026 10.6101 44.8606 9.7951 46.6356 9.7951C48.4586 9.7951 50.5796 10.6841 50.5796 14.0851C50.5796 15.4901 50.4806 16.9681 50.4806 18.6451C50.4806 19.7291 50.4806 20.7641 50.5286 21.8251C50.1596 21.7501 49.8386 21.7021 49.4946 21.7021C49.1496 21.7021 48.8276 21.7501 48.4836 21.8251C48.5336 20.0261 48.6566 18.2271 48.6566 16.3281V14.8241C48.6566 12.4091 47.5966 11.0771 45.9696 11.0771C43.6786 11.0771 42.6426 12.5561 42.6426 15.1201C42.6426 16.9941 42.6916 20.1741 42.8386 21.8251C42.4696 21.7501 42.1006 21.7021 41.7306 21.7021C41.3596 21.7021 40.9906 21.7501 40.6206 21.8251C40.7686 20.1741 40.8176 16.9941 40.8176 14.7261V10.2651Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M55.5579 14.8496C56.5689 14.8736 57.7269 14.9236 58.7609 14.9236C59.8459 14.9236 61.0049 14.8736 62.0399 14.8496C62.0399 13.0986 61.5719 10.5856 59.0099 10.5856C56.5929 10.5856 55.6819 13.0746 55.5579 14.8496ZM58.9599 9.79559C62.4109 9.79559 64.0619 12.0886 64.0619 14.8246C64.0619 15.1446 64.0369 15.4656 64.0129 15.7866C62.2369 15.7626 60.4869 15.7126 58.7369 15.7126C57.6519 15.7126 56.5929 15.7626 55.5079 15.7866C55.4849 16.0316 55.4849 16.2556 55.4849 16.4756C55.4849 19.0406 57.0119 21.0356 59.7469 21.0356C61.0549 21.0356 62.5809 20.2726 63.4459 19.2866L63.5689 19.3616L63.4209 20.5676C62.4339 21.3576 60.8329 22.0716 59.3049 22.0716C55.7559 22.0716 53.3149 19.5586 53.3149 16.2796C53.3149 12.2856 55.3349 9.79559 58.9599 9.79559Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M86.3684 11.2016C86.3684 9.0816 86.2704 6.9376 86.1714 4.8176C86.5924 4.8906 86.9854 4.9396 87.3794 4.9396C87.7744 4.9396 88.1684 4.8906 88.5874 4.8176C88.4894 6.9376 88.3904 9.0816 88.3904 11.2016V15.4416C88.3904 17.5606 88.4894 19.7056 88.5874 21.8256C88.1684 21.7506 87.7744 21.7026 87.3794 21.7026C86.9854 21.7026 86.5924 21.7506 86.1714 21.8256C86.2704 19.7056 86.3684 17.5606 86.3684 15.4416V13.2236C84.6444 13.1976 82.9424 13.1736 81.2184 13.1736C79.4924 13.1736 77.7914 13.1976 76.0664 13.2236V15.4416C76.0664 17.5606 76.1644 19.7056 76.2634 21.8256C75.8454 21.7506 75.4494 21.7026 75.0554 21.7026C74.6624 21.7026 74.2664 21.7506 73.8474 21.8256C73.9454 19.7056 74.0444 17.5606 74.0444 15.4416V11.2016C74.0444 9.0816 73.9454 6.9376 73.8474 4.8176C74.2664 4.8906 74.6624 4.9396 75.0554 4.9396C75.4494 4.9396 75.8454 4.8906 76.2634 4.8176C76.1644 6.9376 76.0664 9.0816 76.0664 11.2016V12.0636C77.7914 12.0886 79.4924 12.1386 81.2184 12.1386C82.9424 12.1386 84.6444 12.0886 86.3684 12.0636V11.2016Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M99.0129 15.6132C97.3119 16.1802 93.8619 16.0072 93.8619 18.6952C93.8619 20.2482 94.9219 21.0352 96.0069 21.0352C97.2639 21.0352 98.3479 20.2242 98.9149 19.3112L99.0129 15.6132ZM92.9249 11.2252C94.4049 10.1172 95.5879 9.7952 96.8939 9.7952C99.2599 9.7952 100.887 11.2502 100.887 13.4442C100.887 15.2932 100.789 17.1172 100.789 19.1882C100.789 20.0002 100.789 21.0122 101.749 21.0122C101.9 21.0122 102.095 21.0122 102.266 20.9132V21.4542C101.922 21.6032 101.33 21.8002 100.69 21.8002C99.6299 21.8002 99.0879 21.1102 98.9899 20.2722C97.8059 21.4542 96.7949 22.0722 95.1189 22.0722C93.4679 22.0722 91.8409 20.9132 91.8409 19.0402C91.8409 17.0672 93.1719 16.0072 95.3179 15.6632C98.8909 15.0962 99.0129 14.8992 99.0129 13.9372C99.0129 12.2852 98.2749 10.8312 96.3019 10.8312C94.9949 10.8312 93.7629 11.4482 93.1979 12.5082H92.9249V11.2252Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M110.451 9.7959C112.251 9.7959 113.804 10.3139 114.421 10.8809C114.198 11.3729 114 11.9159 113.877 12.5079H113.68C113.212 11.6699 112.078 10.5859 110.526 10.5859C107.543 10.5859 106.335 12.8779 106.335 15.9099C106.335 19.2859 107.863 21.0359 110.597 21.0359C111.906 21.0359 113.432 20.2719 114.297 19.2859L114.421 19.3609C114.346 19.7539 114.297 20.1749 114.272 20.5679C113.286 21.3579 111.681 22.0719 110.155 22.0719C107.296 22.0719 104.164 20.3469 104.164 15.9339C104.164 11.6699 107.296 9.7959 110.451 9.7959Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M117.082 10.2651C117.082 7.9961 117.034 4.8171 116.883 3.1651C117.255 3.2391 117.625 3.2891 117.994 3.2891C118.364 3.2891 118.735 3.2391 119.104 3.1651C118.954 4.8171 118.907 7.9961 118.907 10.2651V14.7511C118.907 15.0471 119.004 15.2191 119.203 15.2191C119.448 15.2191 119.77 14.9481 120.163 14.6511C120.753 14.2081 123.17 11.7931 124.697 10.0431C124.97 10.1171 125.289 10.1661 125.635 10.1661C125.979 10.1661 126.3 10.1171 126.869 10.0431C124.821 11.6941 122.898 13.3461 121.198 14.9971C123.073 17.2651 125.118 19.5581 127.14 21.8251C126.573 21.7501 126.154 21.7021 125.734 21.7021C125.314 21.7021 124.896 21.7501 124.477 21.8251C123.047 19.9521 120.683 17.1901 119.523 15.9581C119.424 15.8351 119.275 15.7131 119.152 15.7131C119.004 15.7131 118.907 15.8111 118.907 16.0071V17.4861C118.907 18.9411 118.954 20.3711 119.104 21.8251C118.735 21.7501 118.364 21.7021 117.994 21.7021C117.625 21.7021 117.255 21.7501 116.883 21.8251C117.034 20.1741 117.082 16.9941 117.082 14.7261V10.2651Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M130.441 14.8496C131.453 14.8736 132.612 14.9236 133.648 14.9236C134.731 14.9236 135.891 14.8736 136.926 14.8496C136.926 13.0986 136.456 10.5856 133.895 10.5856C131.478 10.5856 130.566 13.0746 130.441 14.8496ZM133.845 9.79559C137.293 9.79559 138.946 12.0886 138.946 14.8246C138.946 15.1446 138.921 15.4656 138.897 15.7866C137.123 15.7626 135.374 15.7126 133.624 15.7126C132.538 15.7126 131.478 15.7626 130.392 15.7866C130.369 16.0316 130.369 16.2556 130.369 16.4756C130.369 19.0406 131.898 21.0356 134.634 21.0356C135.94 21.0356 137.466 20.2726 138.33 19.2866L138.455 19.3616L138.304 20.5676C137.32 21.3576 135.716 22.0716 134.189 22.0716C130.639 22.0716 128.2 19.5586 128.2 16.2796C128.2 12.2856 130.22 9.79559 133.845 9.79559Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M143.654 6.7392H143.779C143.679 7.9732 143.629 9.1802 143.582 10.3882C143.925 10.3882 145.059 10.3632 146.194 10.3132C146.169 10.4862 146.169 10.6592 146.169 10.8322C146.169 11.0042 146.169 11.1772 146.194 11.3492C145.33 11.3012 144.173 11.3012 143.582 11.3012C143.531 11.5462 143.409 15.4162 143.409 17.5602C143.409 19.4092 143.458 21.2822 145.405 21.2822C145.675 21.2822 146.194 21.2092 146.512 21.1112V21.7022C145.948 21.8992 145.233 22.0722 144.618 22.0722C142.57 22.0722 141.584 20.9132 141.584 18.9902C141.584 17.1902 141.733 14.9732 141.757 11.3012C141.263 11.3012 140.72 11.3012 140.082 11.3492C140.105 11.1522 140.13 10.9792 140.13 10.7832C140.13 10.6102 140.105 10.4622 140.082 10.2892C140.822 10.3392 141.363 10.3632 141.705 10.3632C141.681 9.7222 141.659 8.6622 141.61 7.6032L143.654 6.7392Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M150.507 6.7392H150.63C150.53 7.9732 150.483 9.1802 150.432 10.3882C150.778 10.3882 151.91 10.3632 153.046 10.3132C153.021 10.4862 153.021 10.6592 153.021 10.8322C153.021 11.0042 153.021 11.1772 153.046 11.3492C152.182 11.3012 151.024 11.3012 150.432 11.3012C150.383 11.5462 150.26 15.4162 150.26 17.5602C150.26 19.4092 150.309 21.2822 152.258 21.2822C152.528 21.2822 153.046 21.2092 153.364 21.1112V21.7022C152.798 21.8992 152.083 22.0722 151.468 22.0722C149.421 22.0722 148.437 20.9132 148.437 18.9902C148.437 17.1902 148.584 14.9732 148.608 11.3012C148.114 11.3012 147.573 11.3012 146.933 11.3492C146.957 11.1522 146.982 10.9792 146.982 10.7832C146.982 10.6102 146.957 10.4622 146.933 10.2892C147.672 10.3392 148.214 10.3632 148.56 10.3632C148.534 9.7222 148.51 8.6622 148.46 7.6032L150.507 6.7392Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M176.757 7.8242C175.747 6.6172 173.824 5.4082 171.334 5.4082C167.243 5.4082 164.111 7.8492 164.111 13.3212C164.111 18.1522 166.824 21.1112 171.458 21.1112C172.863 21.1112 174.564 20.8392 175.402 20.3222C175.427 19.3362 175.45 18.3502 175.45 17.3402C175.45 16.1802 175.377 14.9972 175.327 13.9612C175.649 14.0362 176.116 14.0852 176.511 14.0852C176.88 14.0852 177.249 14.0612 177.57 13.9612C177.522 14.7022 177.473 16.3042 177.473 18.9662C177.473 19.6062 177.497 20.2962 177.497 20.9612C176.09 21.4542 173.134 22.1452 171.212 22.1452C165.346 22.1452 161.697 19.0892 161.697 13.3212C161.697 7.7262 165.493 4.4982 171.334 4.4982C174.661 4.4982 176.461 5.3102 177.619 5.9252C177.373 6.3702 177.126 7.2092 177.054 7.8242H176.757Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M186.913 12.0629C186.739 11.8659 186.197 11.6699 185.704 11.6699C184.128 11.6699 183.189 13.1739 183.189 15.0959C183.189 19.3839 183.189 20.6919 183.287 21.8249C182.97 21.7499 182.623 21.7019 182.304 21.7019C181.958 21.7019 181.638 21.7499 181.267 21.8249C181.366 20.6159 181.366 18.6949 181.366 15.9329V15.1439C181.366 13.8639 181.366 12.1629 181.267 10.0429C181.638 10.1169 181.958 10.1659 182.304 10.1659C182.623 10.1659 182.97 10.1169 183.287 10.0429C183.166 11.2249 183.166 11.8189 183.166 12.4329L183.215 12.4579C184.152 10.6839 185.335 9.7959 186.469 9.7959C186.765 9.7959 186.936 9.8209 187.259 9.9439C187.087 10.3389 187.087 11.2759 187.087 11.9399L186.913 12.0629Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M194.454 21.2817C197.363 21.2817 198.275 18.6947 198.275 15.9337C198.275 13.1737 197.363 10.5857 194.454 10.5857C191.546 10.5857 190.634 13.1737 190.634 15.9337C190.634 18.6947 191.546 21.2817 194.454 21.2817ZM194.454 9.7957C197.313 9.7957 200.444 11.4487 200.444 15.9337C200.444 20.4207 197.313 22.0717 194.454 22.0717C191.596 22.0717 188.465 20.4207 188.465 15.9337C188.465 11.4487 191.596 9.7957 194.454 9.7957Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M203.255 13.9614C203.255 12.8024 203.231 11.4224 203.205 10.0434C203.55 10.1164 203.922 10.1664 204.241 10.1664C204.561 10.1664 204.905 10.1164 205.251 10.0434C205.104 11.9634 205.007 14.4794 205.007 16.8954C205.007 18.5954 205.349 19.4094 205.77 19.8774C206.236 20.3944 206.927 20.7894 207.888 20.7894C209.27 20.7894 210.205 20.0994 210.625 19.2114C211.119 18.1514 211.142 17.9554 211.142 14.0854C211.142 12.7544 211.142 11.2254 211.095 10.0434C211.438 10.1164 211.76 10.1664 212.129 10.1664C212.498 10.1664 212.818 10.1164 213.139 10.0434C212.991 12.6054 212.966 14.9234 212.966 17.5354C212.966 18.9904 212.991 20.4434 213.065 21.8254C212.746 21.7504 212.424 21.7024 212.106 21.7024C211.785 21.7024 211.463 21.7504 211.142 21.8254C211.19 21.1104 211.19 20.3944 211.19 19.7054H211.142C210.305 21.2334 208.849 22.0714 207.296 22.0714C204.734 22.0714 203.182 20.5934 203.182 18.0284C203.182 16.3044 203.255 15.1694 203.255 13.9614Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M222.111 10.831C219.449 10.831 218.44 13.198 218.44 16.032C218.44 19.409 219.694 21.161 222.039 21.161C224.403 21.161 225.513 18.818 225.513 15.835C225.513 11.891 223.712 10.831 222.111 10.831ZM216.614 17.215C216.614 14.948 216.565 11.769 216.417 10.043C216.788 10.117 217.157 10.166 217.527 10.166C217.897 10.166 218.267 10.117 218.636 10.043C218.511 10.904 218.44 11.67 218.44 12.458H218.488C218.983 11.423 220.164 9.79601 222.654 9.79601C225.169 9.79601 227.682 11.62 227.682 15.86C227.682 20.05 224.946 22.072 222.358 22.072C220.533 22.072 219.251 21.209 218.488 19.655H218.44V21.209C218.44 23.476 218.488 26.656 218.636 28.307C218.267 28.233 217.897 28.186 217.527 28.186C217.157 28.186 216.788 28.233 216.417 28.307C216.565 26.656 216.614 23.476 216.614 21.209V17.215Z\",\n fill: \"#002A5B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.413 6.62C228.413 6.928 228.469 7.21967 228.581 7.495C228.698 7.76567 228.854 8.00367 229.05 8.209C229.251 8.40967 229.486 8.57067 229.757 8.692C230.028 8.80867 230.317 8.867 230.625 8.867C230.933 8.867 231.222 8.80867 231.493 8.692C231.764 8.57067 231.997 8.40967 232.193 8.209C232.394 8.00367 232.55 7.76567 232.662 7.495C232.779 7.21967 232.837 6.928 232.837 6.62C232.837 6.312 232.779 6.02267 232.662 5.752C232.55 5.47667 232.394 5.23867 232.193 5.038C231.997 4.83267 231.764 4.67166 231.493 4.555C231.222 4.43366 230.933 4.373 230.625 4.373C230.317 4.373 230.028 4.43366 229.757 4.555C229.486 4.67166 229.251 4.83267 229.05 5.038C228.854 5.23867 228.698 5.47667 228.581 5.752C228.469 6.02267 228.413 6.312 228.413 6.62ZM228.119 6.62C228.119 6.27466 228.184 5.95033 228.315 5.647C228.446 5.339 228.623 5.073 228.847 4.849C229.076 4.62033 229.342 4.44067 229.645 4.31C229.953 4.17933 230.28 4.114 230.625 4.114C230.97 4.114 231.295 4.17933 231.598 4.31C231.906 4.44067 232.172 4.62033 232.396 4.849C232.625 5.073 232.804 5.339 232.935 5.647C233.066 5.95033 233.131 6.27466 233.131 6.62C233.131 6.97 233.066 7.29667 232.935 7.6C232.804 7.90333 232.625 8.167 232.396 8.391C232.172 8.615 231.906 8.79 231.598 8.916C231.295 9.042 230.97 9.105 230.625 9.105C230.28 9.105 229.953 9.042 229.645 8.916C229.342 8.79 229.076 8.615 228.847 8.391C228.623 8.167 228.446 7.90333 228.315 7.6C228.184 7.29667 228.119 6.97 228.119 6.62ZM230.058 6.445C230.081 6.45433 230.119 6.46133 230.17 6.466C230.226 6.47067 230.287 6.473 230.352 6.473C230.473 6.473 230.585 6.46133 230.688 6.438C230.795 6.41 230.889 6.368 230.968 6.312C231.052 6.256 231.117 6.18366 231.164 6.095C231.211 6.00166 231.234 5.892 231.234 5.766C231.234 5.584 231.173 5.44167 231.052 5.339C230.935 5.23633 230.779 5.185 230.583 5.185C230.494 5.185 230.408 5.18966 230.324 5.199C230.245 5.20366 230.17 5.21066 230.1 5.22C230.091 5.32733 230.081 5.437 230.072 5.549C230.063 5.661 230.058 5.77067 230.058 5.878V6.445ZM229.694 5.962C229.694 5.80333 229.689 5.64 229.68 5.472C229.671 5.29933 229.659 5.14767 229.645 5.017C229.738 5.02633 229.832 5.03567 229.925 5.045C230.023 5.04967 230.121 5.052 230.219 5.052C230.312 5.052 230.406 5.04733 230.499 5.038C230.597 5.024 230.693 5.017 230.786 5.017C230.907 5.017 231.022 5.031 231.129 5.059C231.236 5.087 231.33 5.13133 231.409 5.192C231.488 5.248 231.551 5.32033 231.598 5.409C231.645 5.493 231.668 5.59567 231.668 5.717C231.668 5.857 231.633 5.98067 231.563 6.088C231.498 6.19533 231.416 6.28633 231.318 6.361C231.22 6.431 231.115 6.48467 231.003 6.522C230.896 6.55933 230.798 6.58033 230.709 6.585C230.802 6.697 230.905 6.82767 231.017 6.977C231.129 7.12633 231.243 7.27567 231.36 7.425C231.477 7.56966 231.586 7.705 231.689 7.831C231.792 7.95233 231.878 8.04333 231.948 8.104V8.139C231.897 8.12967 231.848 8.12267 231.801 8.118C231.759 8.10867 231.719 8.104 231.682 8.104C231.617 8.104 231.526 8.11567 231.409 8.139C231.236 7.887 231.057 7.63733 230.87 7.39C230.688 7.14267 230.492 6.893 230.282 6.641H230.058V7.131C230.058 7.467 230.072 7.803 230.1 8.139C230.007 8.11567 229.932 8.104 229.876 8.104C229.815 8.104 229.738 8.11567 229.645 8.139C229.654 7.97567 229.664 7.81233 229.673 7.649C229.687 7.48567 229.694 7.32233 229.694 7.159V5.962Z\",\n fill: \"#002F5F\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1109_221\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 234,\n height: 29,\n fill: \"white\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoHackettR);\nexport default __webpack_public_path__ + \"static/media/logo-hackett-r.ae12c48a.svg\";\nexport { ForwardRef as ReactComponent };","import Cookies from 'js-cookie';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { Container, Row, Col, Form, Card, Modal, Button } from 'react-bootstrap';\nimport { Auth, Hub } from 'aws-amplify';\nimport { HubCapsule } from '@aws-amplify/core';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport config from '@/lib/config';\nimport { AccountInviteModel, COOKIES } from '@/lib/models';\nimport { publicService } from '@/lib/services';\nimport { useAlert, useAutoSignInContext, useHandleError, useQuery, useRedirectUser } from '@/hooks';\nimport { AsyncPage, LoadingButton } from '@/components';\nimport { getEncryptedToken } from '@/lib/utils';\n\nconst emailObfuscationRegex = /(\\w)(.+?)(@)(\\w)(.+?)(.\\w+$)/gm;\nconst emailObfuscationSubstring = '$1***$3$4***$6';\n\nexport const AcceptInvite = () => {\n\tconst redirectUser = useRedirectUser();\n\tconst { setAutoSignInUser, setEmailAddress, setPassword } = useAutoSignInContext();\n\tconst history = useHistory();\n\tconst { inviteId } = useParams<{ inviteId: string }>();\n\tconst query = useQuery();\n\tconst sessionExpired = useMemo(() => query.get('sessionExpired') === 'true', [query]);\n\n\tconst handleError = useHandleError();\n\tconst { showAlert } = useAlert();\n\n\tconst [user, setUser] = useState();\n\tconst [userEmail, setUserEmail] = useState('N/A');\n\tconst [showAlreadyAuthenticatedModal, setShowAlreadyAuthenticatedModal] = useState(false);\n\tconst [invite, setInvite] = useState();\n\tconst [passwordInputValue, setPasswordInputValue] = useState('');\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tconst [showCodeModal, setShowCodeModal] = useState(false);\n\tconst [codeInputValue, setCodeInputValue] = useState('');\n\n\t// Display message after page reload (like from session expire).\n\tuseEffect(() => {\n\t\tif (!sessionExpired) {\n\t\t\treturn;\n\t\t}\n\n\t\tshowAlert({\n\t\t\tvariant: 'danger',\n\t\t\tchildren: () => {\n\t\t\t\treturn

Session expired.

;\n\t\t\t},\n\t\t});\n\t}, [sessionExpired, showAlert]);\n\n\tconst fetchData = useCallback(async () => {\n\t\tif (config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true') {\n\t\t\ttry {\n\t\t\t\tconst currentUser: CognitoUser = await Auth.currentAuthenticatedUser();\n\t\t\t\tconst userAttributes = await Auth.userAttributes(currentUser);\n\t\t\t\tconst emailAttributeValue =\n\t\t\t\t\tuserAttributes.find((cognitoUserAttribute) => {\n\t\t\t\t\t\treturn cognitoUserAttribute.Name === 'email';\n\t\t\t\t\t})?.Value ?? 'N/A';\n\n\t\t\t\tsetUser(currentUser);\n\t\t\t\tsetUserEmail(emailAttributeValue);\n\t\t\t\tsetShowAlreadyAuthenticatedModal(true);\n\t\t\t} catch (error) {\n\t\t\t\t// Fail silently, and fetch the invite.\n\t\t\t\tconst response = await publicService.getInvite(inviteId).fetch();\n\t\t\t\tsetInvite(response);\n\t\t\t}\n\t\t} else {\n\t\t\tconst response = await publicService.getInvite(inviteId).fetch();\n\t\t\tsetInvite(response);\n\t\t}\n\t}, [inviteId]);\n\n\tasync function handlePasswordFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tif (!invite) {\n\t\t\t\tthrow new Error('invite is required.');\n\t\t\t}\n\n\t\t\tsetIsLoading(true);\n\t\t\tconst platformJson = JSON.stringify(invite.platforms.map((it) => it.platformId));\n\t\t\tif (config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true') {\n\t\t\t\tawait Auth.signUp({\n\t\t\t\t\tusername: invite.emailAddress,\n\t\t\t\t\tpassword: passwordInputValue,\n\t\t\t\t\tattributes: { 'custom:platform': platformJson },\n\t\t\t\t\tautoSignIn: {\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetShowCodeModal(true);\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\tasync function handleSendANewCodeButtonClick() {\n\t\ttry {\n\t\t\tif (!invite) {\n\t\t\t\tthrow new Error('invite is required.');\n\t\t\t}\n\n\t\t\tsetIsLoading(true);\n\n\t\t\tif (config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true') {\n\t\t\t\tawait Auth.resendSignUp(invite.emailAddress);\n\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'success',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn

A new code has been sent.

;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'warning',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn

Environment not configured to support this feature.

;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\tasync function handleCodeFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\t\tsetIsLoading(true);\n\n\t\tif (config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true') {\n\t\t\ttry {\n\t\t\t\tif (!invite) {\n\t\t\t\t\tthrow new Error('invite is required.');\n\t\t\t\t}\n\n\t\t\t\tawait Auth.confirmSignUp(invite.emailAddress, codeInputValue.replace(/\\s/g, ''));\n\n\t\t\t\t// If confirmSignUp is successful, this will send an 'autoSignIn' event to the Auth Hub.\n\t\t\t\t// The Hub is responsible for directing the user at this point.\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as any).name === 'UserNotFoundException') {\n\t\t\t\t\twindow.location.replace(`${window.location.href}?sessionExpired=true`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ((error as any).name === 'NotAuthorizedException') {\n\t\t\t\t\t(error as any).message = 'This invite has already been accepted.';\n\t\t\t\t}\n\n\t\t\t\thandleError(error);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tif (!invite) {\n\t\t\t\t\tthrow new Error('invite is required.');\n\t\t\t\t}\n\n\t\t\t\tconst { signOnUrl } = (await publicService.accountInvite(invite.inviteId).fetch()).platforms[0];\n\t\t\t\tCookies.set(COOKIES.REDIRECT_URL, signOnUrl);\n\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'success',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn

Account confirmed.

;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t// AWS Amplify Hub handles listening to 'auth' events.\n\t// https://docs.amplify.aws/lib/auth/auth-events/q/platform/js/\n\tuseEffect(() => {\n\t\tconst handleHubAuthEvent = async ({ payload }: HubCapsule) => {\n\t\t\tconst { event } = payload;\n\n\t\t\t// If a 'autoSignIn' event is detected, set the auto sign in user to the payload and direct the user to the sign-in page.\n\t\t\t// Thats where all the challange logic is for passwords / MFA / etc.\n\t\t\tif (event === 'autoSignIn') {\n\t\t\t\tif (!invite) {\n\t\t\t\t\tthrow new Error('invite is required.');\n\t\t\t\t}\n\n\t\t\t\tconst acceptedInvite = (await publicService.accountInvite(invite.inviteId).fetch()).platforms[0];\n\t\t\t\tCookies.set(COOKIES.REDIRECT_URL, acceptedInvite.signOnUrl);\n\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'success',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn

Account confirmed.

;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tsetAutoSignInUser(payload.data);\n\t\t\t\tsetEmailAddress(invite?.emailAddress ?? '');\n\t\t\t\tsetPassword(passwordInputValue);\n\n\t\t\t\thistory.push('/sign-in');\n\t\t\t} else if (event === 'autoSignIn_failure') {\n\t\t\t\tif (!invite) {\n\t\t\t\t\tthrow new Error('invite is required.');\n\t\t\t\t}\n\n\t\t\t\tconst acceptedInvite = (await publicService.accountInvite(invite.inviteId).fetch()).platforms[0];\n\t\t\t\tCookies.set(COOKIES.REDIRECT_URL, acceptedInvite.signOnUrl);\n\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'success',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn

Account confirmed.

;\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\thistory.push('/sign-in');\n\t\t\t}\n\t\t};\n\n\t\tHub.listen('auth', handleHubAuthEvent);\n\t\treturn () => {\n\t\t\tHub.remove('auth', handleHubAuthEvent);\n\t\t};\n\t}, [history, invite, passwordInputValue, setAutoSignInUser, setEmailAddress, setPassword, showAlert]);\n\n\tconst handleContinueButtonClick = useCallback(async () => {\n\t\ttry {\n\t\t\tconst encryptedToken = await getEncryptedToken(user);\n\t\t\tredirectUser(encryptedToken);\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t}\n\t}, [handleError, redirectUser, user]);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\treturn;\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tAlready Authenticated\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\tYou are already signed in as {userEmail}, do you want to continue?\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tawait Auth.signOut();\n\t\t\t\t\t\t\t\tconst response = await publicService.getInvite(inviteId).fetch();\n\t\t\t\t\t\t\t\tsetInvite(response);\n\t\t\t\t\t\t\t\tsetShowAlreadyAuthenticatedModal(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSign Out and Accept Invite\n\t\t\t\t\t\t\n\t\t\t\t\t\t{user && }\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\n\t\t\t {\n\t\t\t\t\treturn;\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tConfirm Your Account\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tWe have sent a code by email to{' '}\n\t\t\t\t\t\t\t{invite?.emailAddress.replace(emailObfuscationRegex, emailObfuscationSubstring)}. Enter it\n\t\t\t\t\t\t\tbelow to confirm your account.\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tVerification Code\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCodeInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tConfirm Account\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

Accept Invite

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAccount Setup\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tEmail Address\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tPassword\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tsetPasswordInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • One lowercase letter
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • One uppercase letter
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • One number
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • One special character
  • \n\t\t\t\t\t\t\t\t\t\t\t
  • Eight characters minimum
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","export default __webpack_public_path__ + \"static/media/ai-bg.dff8da0a.png\";","export default __webpack_public_path__ + \"static/media/ai-xplr-bg.75a18c1c.png\";","export default __webpack_public_path__ + \"static/media/ai-xplr-process.16383b99.png\";","import Cookies from 'js-cookie';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Col, Container, Form, Row } from 'react-bootstrap';\nimport { Auth, Hub } from 'aws-amplify';\nimport { HubCapsule } from '@aws-amplify/core';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport { getEncryptedToken, handleDangerousHtmlClick } from '@/lib/utils';\nimport config from '@/lib/config';\nimport { CHALLENGE_NAMES, COOKIES } from '@/lib/models';\nimport { publicService } from '@/lib/services';\nimport {\n\tcreateUseThemedStyles,\n\tuseAutoSignInContext,\n\tuseHandleError,\n\tusePlatformsContext,\n\tuseRedirectUser,\n} from '@/hooks';\nimport {\n\tLoadingButton,\n\tMfaCodeEntryModal,\n\tNewPasswordRequiredModal,\n\tMfaFlowModals,\n\tExpandingCarousel,\n\tPlatformSelectionModal,\n\tUpdateCredentialsModal,\n} from '@/components';\nimport { mediaQueries } from '@/jss';\n\nimport { ReactComponent as HackettLogo } from '@/assets/logos/logo-hackett-r.svg';\n\nimport aiBg from '@/assets/images/ai-bg.png';\nimport aiXplrBg from '@/assets/images/ai-xplr-bg.png';\nimport aiXplrSlide from '@/assets/images/ai-xplr-process.png';\n\nconst useStyles = createUseThemedStyles((theme) => ({\n\thackettConnectLogo: {\n\t\twidth: '75%',\n\t\theight: 'auto',\n\t},\n\tlogInFormOuter: {\n\t\twidth: '90%',\n\t\tmargin: '0 auto',\n\t\t[mediaQueries.md]: {\n\t\t\twidth: '60%',\n\t\t\tmaxWidth: 540,\n\t\t},\n\t\t[mediaQueries.xl]: {\n\t\t\twidth: '75%',\n\t\t},\n\t},\n\tcarouselOuter: {\n\t\tdisplay: 'none',\n\t\t[mediaQueries.xl]: {\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tminHeight: 750,\n\t\t\tdisplay: 'block',\n\t\t},\n\t},\n\tlogInForm: {\n\t\tpadding: 25,\n\t\tmarginBottom: 10,\n\t\tbackgroundColor: theme.colors.gray100,\n\t\tborder: `1px solid ${theme.colors.gray300}`,\n\t},\n\thackettGroupLogo: {\n\t\twidth: '75%',\n\t},\n\t'@global': {\n\t\tbody: {\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t},\n\t},\n}));\n\nexport const SignIn = () => {\n\tconst redirectUser = useRedirectUser();\n\tconst classes = useStyles();\n\tconst handleError = useHandleError();\n\tconst { autoSignInUser, setAutoSignInUser, setEmailAddress, setPassword } = useAutoSignInContext();\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [emailInputValue, setEmailInputValue] = useState('');\n\tconst [passwordInputValue, setPasswordInputValue] = useState('');\n\tconst [user, setUser] = useState();\n\n\tconst [isFirstTimeSetup, setIsFirstTimeSetup] = useState(false);\n\tconst [showMfaFlow, setShowMfaFlow] = useState(false);\n\tconst [showNewPasswordRequiredModal, setShowNewPasswordRequiredModal] = useState(false);\n\tconst [showMfaCodeEntryModal, setShowMfaCodeEntryModal] = useState(false);\n\tconst [showUpdateCredentialsModal, setShowUpdateCredentialsModal] = useState(false);\n\n\tconst [platformSelectionUser, setPlatformSelectionUser] = useState();\n\tconst [showPlatformSelectionModal, setShowPlatformSelectionModal] = useState(false);\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\tuseEffect(() => {\n\t\tif (Cookies.get(COOKIES.UPDATE_CREDENTIALS_LINK_CLICKED)) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetShowUpdateCredentialsModal(true);\n\t}, []);\n\n\tasync function handleSignInFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tif (config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true') {\n\t\t\t\tconst cognitoUser: CognitoUser = await Auth.signIn(\n\t\t\t\t\temailInputValue.replace(' ', '').trim(),\n\t\t\t\t\tpasswordInputValue\n\t\t\t\t);\n\t\t\t\tconst challengesCleared = cognitoUserHasClearedChallenges(cognitoUser);\n\n\t\t\t\t// If challengesCleared is true, the Hub will handle the signIn redirect.\n\t\t\t\t// If not, we still need to set the user state to pass to the modals as a prop.\n\t\t\t\tif (!challengesCleared) {\n\t\t\t\t\tsetUser(cognitoUser);\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst { token } = await publicService.authenticate({ emailAddress: emailInputValue }).fetch();\n\t\t\t\tredirectUser(token);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetIsLoading(false);\n\n\t\t\tif (\n\t\t\t\t((error as any).code === 'NotAuthorizedException' ||\n\t\t\t\t\t(error as any).name === 'NotAuthorizedException') &&\n\t\t\t\t(error as any).message === 'Password attempts exceeded'\n\t\t\t) {\n\t\t\t\tsetShowUpdateCredentialsModal(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandleError(error);\n\t\t}\n\t}\n\n\t// Check user challenges and open appropriate modals.\n\tconst cognitoUserHasClearedChallenges = useCallback((cognitoUser: CognitoUser) => {\n\t\tsetIsFirstTimeSetup(false);\n\n\t\tif (!cognitoUser.challengeName) {\n\t\t\treturn true;\n\t\t}\n\n\t\tswitch (cognitoUser.challengeName) {\n\t\t\tcase CHALLENGE_NAMES.SELECT_MFA_TYPE:\n\t\t\tcase CHALLENGE_NAMES.MFA_SETUP:\n\t\t\t\tsetIsFirstTimeSetup(true);\n\t\t\t\tsetShowMfaFlow(true);\n\t\t\t\treturn false;\n\t\t\tcase CHALLENGE_NAMES.SMS_MFA:\n\t\t\tcase CHALLENGE_NAMES.SOFTWARE_TOKEN_MFA:\n\t\t\t\tsetShowMfaCodeEntryModal(true);\n\t\t\t\treturn false;\n\t\t\tcase CHALLENGE_NAMES.NEW_PASSWORD_REQUIRED:\n\t\t\t\tsetShowNewPasswordRequiredModal(true);\n\t\t\t\treturn false;\n\t\t\tcase CHALLENGE_NAMES.CUSTOM_CHALLENGE:\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t}, []);\n\n\t// If we have an automatically signed in user from the accept-invite.tsx page,\n\t// check if their challenges have been cleared, and assign data accordingly.\n\tuseEffect(() => {\n\t\tif (!autoSignInUser) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst challengesCleared = cognitoUserHasClearedChallenges(autoSignInUser);\n\n\t\t// If challengesCleared is true, the Hub will handle the signIn redirect.\n\t\t// If not, we still need to set the user state to pass to the modals as a prop.\n\t\tif (!challengesCleared) {\n\t\t\tsetUser(autoSignInUser);\n\t\t\tsetAutoSignInUser(undefined);\n\t\t}\n\t}, [autoSignInUser, cognitoUserHasClearedChallenges, setAutoSignInUser]);\n\n\t// AWS Amplify Hub handles listening to 'auth' events.\n\t// https://docs.amplify.aws/lib/auth/auth-events/q/platform/js/\n\tuseEffect(() => {\n\t\tconst handleHubAuthEvent = async ({ payload }: HubCapsule) => {\n\t\t\tconst { event, data } = payload;\n\n\t\t\tswitch (event) {\n\t\t\t\t// If a 'signIn' event is detected, either from sign in, code entry, or MFA clearance,\n\t\t\t\t// extract the token from the payload and redirect the user to their destination.\n\t\t\t\t// Also clear out all context data just in case.\n\t\t\t\tcase 'signIn':\n\t\t\t\t\tsetAutoSignInUser(undefined);\n\t\t\t\t\tsetEmailAddress('');\n\t\t\t\t\tsetPassword('');\n\t\t\t\t\tsetEmailInputValue('');\n\t\t\t\t\tsetPasswordInputValue('');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst encryptedToken = await getEncryptedToken(data);\n\t\t\t\t\t\tredirectUser(encryptedToken);\n\t\t\t\t\t} catch (_error) {\n\t\t\t\t\t\tsetPlatformSelectionUser(data);\n\t\t\t\t\t\tsetShowPlatformSelectionModal(true);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\t\tHub.listen('auth', handleHubAuthEvent);\n\t\treturn () => {\n\t\t\tHub.remove('auth', handleHubAuthEvent);\n\t\t};\n\t}, [platform, redirectUser, setAutoSignInUser, setEmailAddress, setPassword]);\n\n\treturn (\n\t\t<>\n\t\t\t{user && (\n\t\t\t\t<>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowMfaFlow(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonComplete={() => {\n\t\t\t\t\t\t\tsetShowMfaFlow(false);\n\t\t\t\t\t\t\t// Auth Hub will handle successful sign in\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowNewPasswordRequiredModal(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSuccess={(loggedUser) => {\n\t\t\t\t\t\t\tsetShowNewPasswordRequiredModal(false);\n\t\t\t\t\t\t\tsetPassword('');\n\t\t\t\t\t\t\tsetPasswordInputValue('');\n\t\t\t\t\t\t\t// Auth Hub will handle successful sign in\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowMfaCodeEntryModal(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSuccess={() => {\n\t\t\t\t\t\t\tsetShowMfaCodeEntryModal(false);\n\t\t\t\t\t\t\t// Auth Hub will handle successful sign in\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{platformSelectionUser && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowPlatformSelectionModal(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{platform?.ctaHtmlBottom && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowUpdateCredentialsModal(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{platform?.headerIconUrl && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Log in

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tEmail\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetEmailAddress(currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t\tsetEmailInputValue(currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tPassword\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetPassword(currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t\tsetPasswordInputValue(currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired={config.HACKETT_USER_AUTH_USE_REAL_AUTH === 'true'}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\tForgot password?\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tLog In\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tAI Designed for Real Impact\n\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\t\t\t\t\tvariant: 'dark',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Schedule Demo!',\n\t\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\t\twindow.open(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://go.poweredbyhackett.com/conusaixplr2402hc',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'_blank',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'noopener'\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\timageUrl: aiBg,\n\t\t\t\t\t\t\t\t\t\thtmlContent: `\n\t\t\t\t\t\t\t\t\t\t\t

ZBrain Integration Powers Complete AI Solutions

\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\tThe acquisition of LeewayHertz and its ZBrain platform integration delivers end-to-end AI solutions, from strategic ideation to seamless implementation.\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\t\t\t\t\tvariant: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Learn More',\n\t\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\t\twindow.open(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.thehackettgroup.com/the-hackett-group-announces-strategic-acquisition-of-leading-gen-ai-development-firm-leewayhertz/',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'_blank',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'noopener'\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tslideContentStyle: { transform: 'translateY(20px)' },\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport {\n\tAcceptInvite,\n\tChangeMfaMethod,\n\tChangePassword,\n\tForgotPassword,\n\tForgotPasswordSubmit,\n\tNoMatch,\n\tSignIn,\n\tVersion,\n} from '@/pages';\n\nimport { HeaderNoAuth } from '@/components';\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: () => null,\n\t\tmain: () => ,\n\t},\n\t{\n\t\tpath: '/sign-in',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: () => null,\n\t\tmain: SignIn,\n\t},\n\t{\n\t\tpath: '/forgot-password',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: HeaderNoAuth,\n\t\tmain: ForgotPassword,\n\t},\n\t{\n\t\tpath: '/forgot-password-submit',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: HeaderNoAuth,\n\t\tmain: ForgotPasswordSubmit,\n\t},\n\t{\n\t\tpath: '/change-mfa-method',\n\t\texact: true,\n\t\tprivate: true,\n\t\theader: HeaderNoAuth,\n\t\tmain: ChangeMfaMethod,\n\t},\n\t{\n\t\tpath: '/accept-invite/:inviteId',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: HeaderNoAuth,\n\t\tmain: AcceptInvite,\n\t},\n\t{\n\t\tpath: '/change-password',\n\t\texact: true,\n\t\tprivate: true,\n\t\theader: HeaderNoAuth,\n\t\tmain: ChangePassword,\n\t},\n\t{\n\t\tpath: '/version',\n\t\texact: true,\n\t\tprivate: false,\n\t\theader: HeaderNoAuth,\n\t\tmain: Version,\n\t},\n\t{\n\t\tpath: '*',\n\t\texact: false,\n\t\tprivate: false,\n\t\theader: HeaderNoAuth,\n\t\tmain: NoMatch,\n\t},\n];\n","import React, { useMemo, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Container, Row, Col, Form, Card, Button } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\n\nimport { handleDangerousHtmlClick } from '@/lib/utils';\nimport { useHandleError, usePlatformsContext } from '@/hooks';\nimport { LoadingButton } from '@/components';\n\nexport const ForgotPassword = () => {\n\tconst history = useHistory();\n\tconst handleError = useHandleError();\n\tconst { platforms } = usePlatformsContext();\n\tconst platform = useMemo(() => platforms[0], [platforms]);\n\n\tconst [emailAddressInputValue, setEmailAddressInputValue] = useState('');\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tawait Auth.forgotPassword(emailAddressInputValue);\n\n\t\t\thistory.push('/forgot-password-submit', { emailAddress: emailAddressInputValue });\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

Forgot Password

\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tStep 1: Request Reset Code\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tEmail Address\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetEmailAddressInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\thistory.goBack();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tSend Reset Code\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Container, Row, Col, Form, Card, Button } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\n\nimport { useAlert, useHandleError } from '@/hooks';\nimport { LoadingButton } from '@/components';\n\nexport const ForgotPasswordSubmit = () => {\n\tconst history = useHistory<{ emailAddress?: string }>();\n\tconst handleError = useHandleError();\n\tconst { showAlert } = useAlert();\n\n\tconst [emailAddressInputValue, setEmailAddressInputValue] = useState('');\n\tconst [codeInputValue, setCodeInputValue] = useState('');\n\tconst [newPasswordInputValue, setNewPasswordCodeInputValue] = useState('');\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!history.location.state?.emailAddress) {\n\t\t\treturn history.replace('/forgot-password');\n\t\t}\n\n\t\tsetEmailAddressInputValue(history.location.state.emailAddress);\n\t}, [history]);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tawait Auth.forgotPasswordSubmit(\n\t\t\t\temailAddressInputValue,\n\t\t\t\tcodeInputValue.replace(/\\s/g, ''),\n\t\t\t\tnewPasswordInputValue\n\t\t\t);\n\n\t\t\tshowAlert({\n\t\t\t\tvariant: 'success',\n\t\t\t\tchildren: () => {\n\t\t\t\t\treturn

Password changed successfully.

;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thistory.push('/sign-in');\n\t\t} catch (error) {\n\t\t\thandleError(error);\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

Forgot Password

\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tStep 2: Reset Password\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tEmail Address\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetEmailAddressInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\tIf you did not recieve an email containing a password reset code, please\n\t\t\t\t\t\t\t\t\t\tdouble-check you have entered the correct email address.\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tCode\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetCodeInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tNew Password\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetNewPasswordCodeInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
  • One lowercase letter
  • \n\t\t\t\t\t\t\t\t\t\t
  • One uppercase letter
  • \n\t\t\t\t\t\t\t\t\t\t
  • One number
  • \n\t\t\t\t\t\t\t\t\t\t
  • One special character
  • \n\t\t\t\t\t\t\t\t\t\t
  • Eight characters minimum
  • \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\thistory.goBack();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tGo Back\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tReset Password\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Container, Row, Col, Card, Button } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport { useAlert, useRedirectUser } from '@/hooks';\nimport { PREFERRED_MFA_TYPES } from '@/lib/models';\nimport { AsyncPage, MfaFlowModals } from '@/components';\n\nexport const ChangeMfaMethod = () => {\n\tconst redirectUser = useRedirectUser();\n\tconst { showAlert } = useAlert();\n\tconst [user, setUser] = useState();\n\tconst [preferredMfaType, setPreferredMfaType] = useState();\n\tconst [userPhoneNumber, setUserPhoneNumber] = useState('N/A');\n\n\tconst [showMfaFlowModals, setShowMfaFlowModals] = useState(false);\n\n\tconst fetchData = useCallback(async () => {\n\t\tconst userResponse: CognitoUser = await Auth.currentAuthenticatedUser();\n\t\tconst mfaResponse = await Auth.getPreferredMFA(userResponse, { bypassCache: true });\n\t\tconst userAttributes = await Auth.userAttributes(userResponse);\n\t\tconst phoneNumberAttributeValue = userAttributes.find((cognitoUserAttribute) => {\n\t\t\treturn cognitoUserAttribute.Name === 'phone_number';\n\t\t})?.Value;\n\n\t\tif (phoneNumberAttributeValue) {\n\t\t\tsetUserPhoneNumber(phoneNumberAttributeValue);\n\t\t}\n\n\t\tsetUser(userResponse);\n\t\tsetPreferredMfaType(mfaResponse as PREFERRED_MFA_TYPES);\n\t}, []);\n\n\tconst handleChangeMfaMethodButtonClick = () => {\n\t\tsetShowMfaFlowModals(true);\n\t};\n\n\tconst handleMfaFlowComplete = async () => {\n\t\tawait fetchData();\n\n\t\tsetShowMfaFlowModals(false);\n\t\tshowAlert({\n\t\t\tvariant: 'success',\n\t\t\tchildren: () => {\n\t\t\t\treturn

MFA setup complete.

;\n\t\t\t},\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{user && (\n\t\t\t\t<>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowMfaFlowModals(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonComplete={() => {\n\t\t\t\t\t\t\thandleMfaFlowComplete();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tChoose Your Multi-Factor Authentication (MFA) Method\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{preferredMfaType === PREFERRED_MFA_TYPES.NOMFA && (\n\t\t\t\t\t\t\t\t\t\t\t

You do not have a MFA method.

\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{preferredMfaType === PREFERRED_MFA_TYPES.SMS_MFA && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\tYour current MFA method is set to SMS: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t{userPhoneNumber}).\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\tThis requires you to authenticate authenticate using a code sent via\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext message to your phone.\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{preferredMfaType === PREFERRED_MFA_TYPES.SOFTWARE_TOKEN_MFA && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\tYour current MFA method is to use an{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuthenticator App.\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\tThis requires you to authenticate using a code generated by an app\n\t\t\t\t\t\t\t\t\t\t\t\t\tinstalled on your mobile device or computer.\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tChange MFA Method\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tredirectUser();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tDone\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\nimport { Container, Row, Col, Form, Card, Button } from 'react-bootstrap';\nimport { Auth } from 'aws-amplify';\n\nimport { useAlert, useHandleError, useRedirectUser } from '@/hooks';\nimport { LoadingButton } from '@/components';\n\nexport const ChangePassword = () => {\n\tconst redirectUser = useRedirectUser();\n\tconst handleError = useHandleError();\n\tconst { showAlert } = useAlert();\n\n\tconst [oldPasswordInputValue, setOldPasswordInputValue] = useState('');\n\tconst [newPasswordInputValue, setNewPasswordInputValue] = useState('');\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tasync function handleFormSubmit(event: React.FormEvent) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tconst user = await Auth.currentAuthenticatedUser();\n\t\t\tawait Auth.changePassword(user, oldPasswordInputValue, newPasswordInputValue);\n\n\t\t\tshowAlert({\n\t\t\t\tvariant: 'success',\n\t\t\t\tchildren: () => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tPassword changed successfully. Redirecting back to your application...\n\t\t\t\t\t\t

\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tredirectUser();\n\t\t} catch (error) {\n if(error.code === 'NotAuthorizedException'){\n\t\t\t\tshowAlert({\n\t\t\t\t\tvariant: 'danger',\n\t\t\t\t\tchildren: () => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tError: Incorrect password.\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\telse{\n\t\t\thandleError(error);\n\t\t\t}\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

Change Password

\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tEnter A New Password\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tOld Password\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetOldPasswordInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tNew password\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetNewPasswordInputValue(event.currentTarget.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
  • One lowercase letter
  • \n\t\t\t\t\t\t\t\t\t\t
  • One uppercase letter
  • \n\t\t\t\t\t\t\t\t\t\t
  • One number
  • \n\t\t\t\t\t\t\t\t\t\t
  • One special character
  • \n\t\t\t\t\t\t\t\t\t\t
  • Eight characters minimum
  • \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tredirectUser();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tChange Password\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import React, { useCallback, useState } from 'react';\nimport { Button, Card, Col, Container, Form, Row } from 'react-bootstrap';\n\nimport { publicService } from '@/lib/services';\nimport { AsyncPage } from '@/components';\nimport { useHandleError } from '@/hooks';\n\nexport const Version = () => {\n\tconst handleError = useHandleError();\n\n\tconst [date, setDate] = useState('');\n\tconst [status, setStatus] = useState('');\n\tconst [version, setVersion] = useState('');\n\n\tconst fetchData = useCallback(async () => {\n\t\tconst response = await publicService.getSystemStatus().fetch();\n\n\t\tsetDate(response.date);\n\t\tsetStatus(response.status);\n\t\tsetVersion(response.version);\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tUI Status\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tVersion\n\t\t\t\t\t\t\t\t\t

{__VERSION__}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {throw new Error('Test Error');}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tThrow Test Error\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSystem Status\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tDate\n\t\t\t\t\t\t\t\t\t

{date}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\t\t

{status}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tVersion\n\t\t\t\t\t\t\t\t\t

{version}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\t\t\t\t\t\tawait publicService.getError().fetch();\n\t\t\t\t\t\t\t\t\t\t\t} catch (error){\n\t\t\t\t\t\t\t\t\t\t\t\thandleError(error);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tThrow Test Error\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n","import React from 'react';\nimport { Container, Row, Col } from 'react-bootstrap';\n\nexport const NoMatch = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

404: Page Not Found

\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import Cookies from 'js-cookie';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { BrowserRouter as Router, Route, Switch, useLocation } from 'react-router-dom';\nimport { ThemeProvider as BootstrapThemeProvider } from 'react-bootstrap';\nimport { Amplify, Auth } from 'aws-amplify';\nimport { CognitoUser } from '@aws-amplify/auth';\nimport * as Sentry from '@sentry/react';\nimport { createBrowserHistory } from 'history';\nimport { getEncryptedToken, refreshCognitoUserSession } from '@/lib/utils';\nimport config from '@/lib/config';\nimport { COOKIES } from '@/lib/models';\nimport { publicService } from '@/lib/services';\nimport { usePlatformsContext, useQuery, useRedirectUser } from '@/hooks';\nimport {\n\tAlertProvider,\n\tAutoSignInProvider,\n\tThemeProvider as MasterClientThemeProvider,\n\tPlatformsProvider,\n} from '@/contexts';\nimport { Alert, Footer, Loader, PrivateRoute } from '@/components';\nimport { prefixes } from '@/jss/bootstrap';\nimport { useGlobalStyles } from '@/jss/hooks/use-global-styles';\nimport { useThemedBootstrapStyles } from '@/jss/hooks/use-themed-bootstrap-styles';\nimport 'react-phone-number-input/style.css';\n\nimport { routes } from '@/routes';\n\nAmplify.configure({\n\tregion: config.HACKETT_USER_AUTH_AMPLIFY_REGION,\n\tuserPoolId: config.HACKETT_USER_AUTH_AMPLIFY_USER_POOL_ID,\n\tuserPoolWebClientId: config.HACKETT_USER_AUTH_AMPLIFY_USER_POOL_WEB_CLIENT_ID,\n});\n\n// Wrapped by , allows use of 'react-router-dom' hooks\nconst RoutedApp = () => {\n\tconst { pathname } = useLocation();\n\tconst { setPlatforms } = usePlatformsContext();\n\tconst redirectUser = useRedirectUser();\n\n\tconst query = useQuery();\n\tconst redirectUrl = decodeURIComponent(query.get('redirectUrl') || '');\n\tconst platform = useMemo(() => query.get('platform') ?? '', [query]);\n\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst appIsLoaded = useRef(false);\n\n\t// When the application mounts, save the URL that user came from into a cookie.\n\t// That way we can navigate them back to their destination after they authenticate.\n\tuseEffect(() => {\n\t\tif (redirectUrl) {\n\t\t\tCookies.set(COOKIES.REDIRECT_URL, redirectUrl);\n\t\t}\n\t}, [redirectUrl]);\n\n\t// Scroll to top of page on pathname change\n\tuseEffect(() => {\n\t\twindow.scrollTo(0, 0);\n\t}, [pathname]);\n\n\tconst checkAuthentication = useCallback(async () => {\n\t\ttry {\n\t\t\tconst currentUser: CognitoUser = await Auth.currentAuthenticatedUser();\n\t\t\tawait refreshCognitoUserSession(currentUser);\n\t\t\tconst encryptedToken = await getEncryptedToken(currentUser);\n\n\t\t\tredirectUser(encryptedToken);\n\t\t} catch (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [redirectUser]);\n\n\tconst fetchPlatform = useCallback(async () => {\n\t\tif (!platform) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = await publicService.getPlatforms({ platform: [platform] }).fetch();\n\t\t\tsetPlatforms(response.platforms);\n\t\t} catch (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [platform, setPlatforms]);\n\n\tconst initApp = useCallback(async () => {\n\t\tif (appIsLoaded.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst changeAuthRoutes = ['/change-password', '/change-mfa-method'];\n\t\tconst isChangeAuthRoute = changeAuthRoutes.some((route) => window.location.pathname.includes(route));\n\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\n\t\t\tif (isChangeAuthRoute) {\n\t\t\t\t// Auto reject to force platform fetch and load app\n\t\t\t\t// without checking cognito user, refresh, or redirect\n\t\t\t\tawait Promise.reject();\n\t\t\t} else {\n\t\t\t\tawait checkAuthentication();\n\t\t\t}\n\t\t} catch (_authError) {\n\t\t\ttry {\n\t\t\t\tawait fetchPlatform();\n\t\t\t} catch (_platformError) {\n\t\t\t\t// Do not handle, let fail silently\n\t\t\t} finally {\n\t\t\t\tappIsLoaded.current = true;\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\t}, [checkAuthentication, fetchPlatform]);\n\n\tuseEffect(() => {\n\t\tinitApp();\n\t}, [initApp]);\n\n\treturn (\n\t\t<>\n\t\t\t{isLoading ? (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{routes.map((route, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{routes.map((route, index) => {\n\t\t\t\t\t\t\treturn React.createElement(route.private ? PrivateRoute : Route, {\n\t\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\t\tpath: route.path,\n\t\t\t\t\t\t\t\texact: route.exact,\n\t\t\t\t\t\t\t\tchildren: ,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\t