{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///delegated ./node_modules/react/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/@react-spring/web/dist/react-spring-web.esm.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/utils/Index.tsx","webpack:///delegated ./node_modules/reselect/es/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-redux/es/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/store/MainNavigation.ts","webpack:///./ClientApp/components/Animations/SpringProperties/SpringProperties.tsx","webpack:///delegated ./node_modules/classnames/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///external \"vendor_2eea9c464ebf2b2afd65\"","webpack:///./ClientApp/store/UserInterface.ts","webpack:///./ClientApp/store/InterfaceOverlay.ts","webpack:///delegated ./node_modules/react-router-dom/esm/react-router-dom.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/store/InPageNavigation.ts","webpack:///./ClientApp/store/PageScroll.ts","webpack:///./ClientApp/components/ScreenOverlays/LoadingScreen/Content/LogomarkSlide.tsx","webpack:///./ClientApp/components/ScreenOverlays/LoadingScreen/Content/Content.tsx","webpack:///./ClientApp/components/ScreenOverlays/LoadingScreen/Screen.tsx","webpack:///./ClientApp/components/ScreenOverlays/LoadingScreen/LoadingScreen.tsx","webpack:///./ClientApp/components/Header/NavMenu/NavMenu.tsx","webpack:///./ClientApp/components/Header/Header.tsx","webpack:///./ClientApp/components/ScreenOverlays/CookieModal/CookieModal.tsx","webpack:///./ClientApp/components/InterfaceOverlay/HeaderMenu/HeaderMenu.tsx","webpack:///./ClientApp/components/InterfaceOverlay/InterfaceTrigger/Trigger.tsx","webpack:///./ClientApp/components/InterfaceOverlay/InterfaceTrigger/BackToWorkTrigger/BackToWorkTrigger.tsx","webpack:///./ClientApp/components/InterfaceOverlay/InPageNavigation/Bar.tsx","webpack:///./ClientApp/components/InterfaceOverlay/InPageNavigation/InPageNavigation.tsx","webpack:///./ClientApp/views/Shared/Layout.tsx","webpack:///./ClientApp/hooks/useViewportDimensions.tsx","webpack:///./ClientApp/components/ErrorBoundary/ErrorBoundary.tsx","webpack:///./ClientApp/routes.tsx","webpack:///delegated ./node_modules/react-loadable/lib/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/store/middleware/signalR.ts","webpack:///./ClientApp/components/Links/BlockLink/BlockLink.tsx","webpack:///./ClientApp/hooks/useDisabledScrollWidth.tsx","webpack:///./ClientApp/utils/mapObject.tsx","webpack:///delegated ./node_modules/@microsoft/signalr/dist/esm/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/utils/index.tsx","webpack:///./ClientApp/hooks/useAnimateInTrail.tsx","webpack:///./ClientApp/components/Links/Index.tsx","webpack:///delegated ./node_modules/connected-react-router/esm/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/redux/es/redux.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/components/Logo/Logo.tsx","webpack:///delegated ./node_modules/react-ga/dist/react-ga.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/store/Viewport.ts","webpack:///./ClientApp/utils/fillArray.tsx","webpack:///./ClientApp/utils/usePrevious.tsx","webpack:///./ClientApp/utils/useLatest.tsx","webpack:///./ClientApp/utils/useInterval.tsx","webpack:///./ClientApp/utils/useTimeout.tsx","webpack:///./ClientApp/utils/dragUtils.tsx","webpack:///delegated ./node_modules/axios/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/body-scroll-lock/lib/bodyScrollLock.min.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/domain-task/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-scroll-parallax/cjs/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-use-gesture/dist/react-use-gesture.esm.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/components/Links/SimpleLink/SimpleLink.tsx","webpack:///./ClientApp/components/SEO/SEOHelmet.tsx","webpack:///./ClientApp/hooks/useInertialSpring.tsx","webpack:///./ClientApp/components/Links/TriggerLink/TriggerLink.tsx","webpack:///./ClientApp/hooks/useScrollTarget.tsx","webpack:///./ClientApp/store/Projects.ts","webpack:///./ClientApp/api/api.ts","webpack:///./ClientApp/components/Links/ButtonLink/ButtonLink.tsx","webpack:///delegated ./node_modules/react-use/esm/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/components/DisableScroll/DisableScroll.tsx","webpack:///./node_modules/react-dom/profiling.js","webpack:///delegated ./node_modules/react-hot-loader/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-helmet/lib/Helmet.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-waypoint/build/waypoint.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/history/esm/history.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-gtm-module/dist/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/redux-thunk/lib/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/@babel/polyfill/lib/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./node_modules/react-dom/cjs/react-dom.profiling.min.js","webpack:///delegated ./node_modules/object-assign/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/scheduler/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./node_modules/scheduler/tracing-profiling.js","webpack:///./node_modules/scheduler/cjs/scheduler-tracing.profiling.min.js","webpack:///delegated ./node_modules/intersection-observer/intersection-observer.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/store/WeatherForecasts.ts","webpack:///./ClientApp/store/index.ts","webpack:///./ClientApp/store/Counter.ts","webpack:///./ClientApp/configureStore.ts","webpack:///./ClientApp/boot-client.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","9","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","mapObject","usePrevious","useLatest","useInterval","useTimeout","dragUtils","generateUid","Date","now","toString","Math","random","substr","toUpperCase","hashCode","hash","charCodeAt","uuidv4","replace","getPixelRatio","context","backingStore","backingStorePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","devicePixelRatio","keys","actionCreators","setMainNavigationCurrentAreaAction","linkId","dispatch","SET_MAIN_NAVIGATION_CURRENT_AREA","handleMainNavClickAction","restorePageScroll","HIDE_NAV_MENU","UNPEEK_AT_NAV_MENU","preloadNavMenuAction","LOAD_NAV_MENU","markNavMenuLoadedAction","NAV_MENU_LOADED","peekAtNavMenuAction","PEEK_AT_NAV_MENU","unpeekAtNavMenuAction","showNavMenuAction","SHOW_NAV_MENU","disablePageScroll","hideNavMenuAction","enterNavMenuTriggerAction","ENTER_NAV_MENU_TRIGGER","leaveNavMenuTriggerAction","LEAVE_NAV_MENU_TRIGGER","showNavLogomarkAction","SHOW_NAV_LOGOMARK","hideNavLogomarkAction","HIDE_NAV_LOGOMARK","enterNavLogoAction","ENTER_NAV_LOGO","leaveNavLogoAction","LEAVE_NAV_LOGO","reducer","state","action","selectedArea","url","selectedAreaId","areasById","navigationItemId","navigationItem","navMenu","load","loaded","peek","open","triggerHovering","navLogo","markVisible","hovering","1","title","exact","2","3","4","5","mainNavigationSelector","mainNavigation","areasByIdSelector","getAreasById","getAreasAmount","getMainNavItems","navItems","navItem","navMenuSelector","getNavMenu","getNavMenuProps","getNavMenuOpen","getHomeUrl","getNavLogo","tileStaggerGap","draggableTileStaggerGap","animationTriggerThreshold","defaultSpringConfig","mass","tension","friction","clamp","precision","velocity","easing","animateInSpringConfig","initialOffset","x","offset","vendor_2eea9c464ebf2b2afd65","animatePageInTimer","animatePageContentInTimer","markAsInitialised","MARK_AS_INITIALISED","triggerNewLoadingScreen","id","recordPageScroll","NEW_LOADING_SCREEN","hideLoadingScreen","modifyScroll","newPage","HIDE_LOADING_SCREEN","enablePageScroll","removeLoadingScreen","REMOVE_LOADING_SCREEN","changeLoadingScreenLogomarkBackground","CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND","animateInPage","ANIMATE_PAGE_IN","ANIMATE_PAGE_CONTENT_IN","initialised","loadingScreens","visible","logomarkBackground","animatePageIn","animatePageContentIn","currentLoadingScreen","rest","userInterfaceSelector","userInterface","getInitialised","loadingScreensSelector","getLoadingScreens","getPageContentAnimatedIn","visibleScreens","map","currentLoadingScreenId","pageAnimatedIn","loadingScreenIds","screenAnimatedIn","makeGetLoadingScreen","_","screenId","enterContactTriggerAction","ENTER_CONTACT_TRIGGER","leaveContactTriggerAction","LEAVE_CONTACT_TRIGGER","openChatModalAction","OPEN_CHAT_MODAL","closeChatModalAction","CLOSE_CHAT_MODAL","setChatActiveState","isCaller","SET_CHAT_ACTIVE_STATE","markChatAsActive","setChatId","SET_CHAT_ID","startChat","markChatAsStarted","MARK_CHAT_AS_STARTED","loadChatMessages","messages","LOAD_CHAT_MESSAGES","addChatMessage","receiveChatMessage","RECEIVE_CHAT_MESSAGE","loadFormValues","formValues","LOAD_CHAT_FORM_VALUES","addFormValue","formValue","receiveFormValue","RECEIVE_FORM_VALUE","resetFormValues","receiveResetFormValues","RESET_FORM_VALUES","updateCurrentScriptStepId","receiveCurrentScriptStepId","UPDATE_CHAT_CURRENTSCRIPTSTEPID","updateNextScriptStepId","receiveNextScriptStepId","UPDATE_CHAT_NEXTSCRIPTSTEPID","updateCurrentUserInputId","receiveCurrentUserInputId","UPDATE_CHAT_CURRENTUSERINPUTID","updateUserInputVisibility","receiveUserInputVisibility","UPDATE_CHAT_USERINPUTVISIBILITY","addChatNotificationDot","ADD_CHAT_NOTIFICATION_DOT","removeChatNotificationDot","REMOVE_CHAT_NOTIFICATION_DOT","enterBackToWorkTriggerAction","ENTER_BACKTOWORK_TRIGGER","leaveBackToWorkTriggerAction","LEAVE_BACKTOWORK_TRIGGER","chatModal","triggerActive","windowOpen","chatId","chatStarted","active","some","el","currentScriptStepId","nextScriptStepId","currentUserInputId","userInputVisible","notificationDot","backToWorkTriggerActive","interfaceOverlaySelector","interfaceOverlay","chatModalSelector","getChatModalTrigger","getChatModalWindow","getChatModalId","getChatModalStarted","getChatModalMessages","getChatModalFormValues","getChatModalCurrentScriptStepId","getChatModalNextScriptStepId","getChatModalCurrentUserInputId","getChatModalUserInputVisible","getChatModalNotificationDot","getChatActive","getBackToWorkTrigger","hideSectionLabelTimeout","changeSectionHoverLabelTimeout","showNavAction","SHOW_NAV","hideNavAction","HIDE_NAV","showSectionLabelsAction","SHOW_SECTION_LABELS","hideSectionLabelsAction","HIDE_SECTION_LABELS","scrollToSectionNumberAction","section","SCROLL_TO_SECTION_NUMBER","number","updateHoveringSectionNumberAction","timeoutDelay","UPDATE_HOVERING_SECTION_NUMBER","updateTotalSectionsNumberAction","UPDATE_TOTAL_SECTIONS_NUMBER","updateNavigationArrayAction","navigationArray","UPDATE_NAVIGATION_ARRAY","setCurrentSectionNumberAction","SET_CURRENT_SECTION_NUMBER","showSectionLabels","scrollToSectionNumber","hoverOverSectionNumber","totalSectionsNumber","currentSectionNumber","DEFAULT_ACTION","inPageNavigationSelector","inPageNavigation","getVisibility","getScrollToSectionNumber","getShowSectionLabels","getCurrentSectionNumber","getHoverOverSectionNumber","getTotalSectionsNumber","getNavigationArray","RESTORE_PAGE_SCROLL","ENABLE_PAGE_SCROLL","scrollTop","scrollY","RECORD_PAGE_SCROLL_TOP_AND_DISABLE","DISABLE_PAGE_SCROLL","UPDATE_PAGE_SCROLL_TOP","top","enabled","wasEnabledBefore","DISABLE_RECORD_PAGE_SCROLL","pageScrollSelector","pageScroll","getTop","getEnabled","pageScrollEnabled","LogomarkSlide","animateOut","persist","backgroundImage","interfaceInitialised","markInterfaceAsInitialised","animate","setAnimate","setActive","latestPersist","commonSpringConfig","opacitySpringConfig","animateOutSpringConfig","animateInSpring","setAnimateInSpring","config","onChange","result","springOnChange","opacitySpring","setOpacitySpring","opacity","immediate","animateOutSpring","setAnimateOutSpring","backgroundOverlayStyles","backgroundColor","clipPath","to","y","willChange","backgroundImageStyles","transform","pos","scale","div","className","style","img","alt","finalBackgroundImage","endContentAnimation","props","logomarkSlides","setLogomarkSlides","transitionEnd","setTransitionEnd","animationDelay","slideInDelay","slideOutDelay","screenAnimateOutDelay","backgroundImages","setBackgroundImages","animateIn","setAnimateIn","newBackgroundImages","startContentAnimation","latestEndContentAnimation","latestLogomarkSlides","latestBackgroundImages","latestFinalBackgroundImage","triggerSlideInterval","setTriggerSlideInterval","current","triggerEndOfContentAnimation","triggerNextSlide","triggerSlideTimeout","setTriggerSlideTimeout","persistSlide","newLogomarkSlides","previousSlideIndex","newBackgroundImage","localBackgroundImages","filter","image","floor","generateUniqueSlideIndex","triggerHideLoadingScreenTimeout","setTriggerHideLoadingScreenTimeout","triggerSlideEndTimeout","setTriggerSlideEndTimeout","signalEndOfContentAnimation","endedContentAnimation","onRest","logomarkContainerStyles","height","imageStyles","bottom","backgroundPosition","logomarkSlidesComponents","logomarkSlide","index","pageId","latestLoadingScreens","animatedIn","setAnimatedIn","animateContent","setAnimateContent","setEndContentAnimation","animateSpring","setAnimateSpring","from","screenStyles","contentProps","contentWrapperStyles","display","location","latestNavMenuOpen","areasAmount","chatModalOpen","navMenuRef","canvasRef","navMenuWidth","setNavMenuWidth","navMenuHeight","setNavMenuHeight","latestNavMenuHeight","previousNavMenuHeight","updateMenuDimensions","navMenuProps","getBoundingClientRect","width","addEventListener","removeEventListener","oldRange","percentageXPosition","openMenuYPosition","setOpenMenuYPosition","animateCursorSpringConfig","cursorPosition","setCursorPosition","springConfig","useInertialSpring","isBeingDragged","setIsBeingDragged","bounds","gestureOptions","initial","rubberband","lockDirection","axis","left","right","onDrag","handleDrag","onMove","handleMove","drag","filterTaps","movement","mx","my","vxvy","vx","vy","first","last","cancel","canceled","commonConfig","inertia","openMenuSpringConfig","decay","xy","canvas","ctx","getContext","ratio","drawLine","degrees","save","beginPath","translate","finalAngle","rotate","PI","rect","fillStyle","fill","restore","boardWidth","margin","boardHeight","boardMaxDistance","sqrt","pow","abs","numberOfColumns","numberOfRows","cursorRange","firstColumnX","firstRowY","requestId","render","clearRect","isMobile","cursorX","cursorY","lineX","lineY","cursorXDistance","cursorYDistance","cursorLineDistance","lineAngle","atan2","relativeLineLength","cancelAnimationFrame","requestAnimationFrame","goal","peekMenuSpringConfig","peekMenuSpring","setPeekMenuSpring","contentOverlaySpringConfig","contentOverlaySpring","setContentOverlaySpring","sbw","useDisabledScrollWidth","navMenuPeekStyles","globalNavMenuStyles","canvasStyles","globalNavOverlayStyles","cursor","animateInTrail","triggerAnimateIn","useAnimateInTrail","notify","threshold","navLinkStyles","dragBarStyles","currentPath","setCurrentPath","matchedId","pathname","path","strict","ref","navMenuOpen","li","onClick","size","isActive","ButtonLink","arrow","animationReady","setAnimationReady","chatWindowOpen","previousNavMenuTriggerHovering","peekAtNavMenu","stopPeekingAtNavMenu","delay","triggerOpenMenuInterval","setTriggerOpenMenuInterval","triggerPeekMenuInterval","setTriggerPeekMenuInterval","latestNavMenuLoaded","openNavMenuSpring","setOpenNavMenuSpring","triggerPaneStyles","onEnter","onLeave","fireOnRapidScroll","topOffset","bottomOffset","onMouseEnter","onMouseLeave","CookieModal","animateContentIn","setIsActive","hideModal","setHideModal","cookieModalDismissed","updateCookieModalDismissed","cookieOptions","expires","secure","httpOnly","sameSite","modalDismissed","closeModal","latestIsActive","latestHideModal","modalWrapperStyles","anin","anout","closeButtonStyles","titleStyles","descriptionStyles","ctaStyles","h2","HeaderMenu","homeUrl","preloadNavMenuInterval","setPreloadNavMenuInterval","navMenuOpenSpring","setNavMenuOpenSpring","menuIconSpringConfig","menuIconSpring","setMenuIconSpring","navLogomarkSpring","setNavLogomarkSpring","logoStyles","mark","menuOpen","logomarkStyles","marginLeft","menuIconTopLineStyles","menuIconMiddleLineStyles","menuIconBottomLineStyles","headerStyles","marginRight","BlockLink","Logo","span","Trigger","align","setHovering","setDelay","setInitialised","triggerTimeout","setTriggerTimeout","hoveringSpring","setHoveringSpring","latestInitialised","handleTriggerMouseLeave","showTrigger","handleTriggerMouseEnter","navSpringConfig","navSpring","setNavSpring","wrapperStyles","triggerStyles","labelStyles","Button","interactive","border","alignLeft","alignRight","BackToWorkTrigger","Bar","sectionNumber","currentSection","expand","targetPosition","showLabel","label","updateHoveringSectionNumber","lbl","setBarProps","expandY","setExpand","barStyles","ac","enableShadow","activateLink","numberOfSections","previousScrollToSectionNumber","hoveringOverSectionNumber","latestShowSectionLabels","showNav","hideNav","animateScrollTo","useScrollTarget","handleScroll","newCurrentSectionNumber","show","navSection","currentNavProps","scrollProgress","finalScrollTop","z","hideLabelsTimeout","setHideLabelsTimeout","handleMouseEnter","scrollTo","expandBar","setExpandBar","unexpandTimeout","setUnexpandTimeout","barPercentages","setBarPercentages","bars","getBars","ChatModal","loader","loading","Layout","updateViewportWidthAction","updateViewportWidth","updateWindowDimensions","innerWidth","useViewportDimensions","workDetailsMatch","sensitive","SEOHelmet","schema","description","contentType","DisableScroll","children","errorInfo","this","setState","text","JSON","stringify","fields","href","short","navigator","userAgent","componentStack","whiteSpace","intersectionObserver","Home","routesArray","component","routes","preloadRouteComponent","urlPath","route","findRoute","baseRoute","routePath","childRoute","childKey","matchedPath","indexOf","preload","Routes","history","latestHistory","createRoute","newRoute","newPath","uniqueKey","RouteComponent","routeComponents","routeTransitions","item","enter","onStart","newPageEntry","newPageReady","default","leave","values","position","linkWithChatId","SIGNALR_LINK_CHATID","signalR","SIGNALR_START_CHAT","SIGNALR_ADD_CHAT_MESSAGE","SIGNALR_ADD_FORM_VALUE","SIGNALR_RESET_FORM_VALUES","SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID","SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID","SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID","SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY","chatHub","signalRMiddleware","getState","next","returnValue","withUrl","withAutomaticReconnect","configureLogging","Information","build","Disconnected","start","connection","then","info","catch","assert","Connected","log","on","onclose","signalRAction","invoke","handleSignalRActionsReducer","newWindow","clicked","setClicked","inputProps","rel","setWidth","callback","fillNotifyArray","amount","gap","animateInStatus","customSpringConfig","defaultt","latestNotify","started","latestTriggerStart","triggerStart","setTriggerStart","animateInTrailApi","ctrl","currentIndex","notifyProps","newTriggerStart","SimpleLink","color","svgProps","viewBox","points","updatePageHeight","UPDATE_PAGE_HEIGHT","updateViewportHeight","UPDATE_VIEWPORT_HEIGHT","offsetScale","UPDATE_VIEWPORT_WIDTH","entranceOffsetScale","pageHeight","viewportSelector","viewport","getWidth","getEntranceOffsetScale","len","arr","savedCallback","setInterval","clearInterval","range","end","percent","min","max","val","rangeMap","arr1","arr2","rubberBand","distance","dimension","constant","decelerationRates","fast","normal","clampedRangeMap","rubberband2","rubberBandIfOutOfBounds","delta","projection","initialVelocity","rateName","decelerationRate","findNearestNumberInArray","sortedArr","sort","a","b","prev","scheme","underlineStyles","LinkUnderline","LinkText","seoImages","seoURL","getMetaTags","published","updated","category","tags","twitter","metaTags","itemprop","content","file","htmlAttributes","lang","itemscope","itemtype","defaultTitle","titleTemplate","link","sizes","meta","initialProps","inertialSpringApi","setInertia","entries","forEach","v","vel","bound","stop","k","styles","backgroundShade","activeSpring","setActiveSpring","largeTriggerStyles","an","smallTriggerStyles","cancelAnimationOnManualScroll","onComplete","restValues","onStop","setTarget","targetSpringApi","scrollRest","reset","scroll","projects","podiumValuations","linkUrl","heroSection","pagePositionBarColor","properties","variation","images","heightRatio","projectOverview","titleColor","overview","role","year","projectChallenge","challenge","projectContent","contentSection","topPadding","bottomPadding","contentBlocks","titleSection","titleContent","subtitle","bulletPoints","bodySection","bodyContent","details","rows","tileWidth","dragHand","sectionContent","darkLogomark","lightLogo","brandColors","hexCode","shade","typography","rightOffset","topMargin","bottomMargin","list","icon","video","citiesOfTheFuture","startStage","endStage","lineColor","stageTextColor","listItems","overlayTileColor","angle","imageOffset","quotationMarkColor","personLineColor","quotation","nextProjectBackground","jlr","titleType","font","weights","exampleText","bodyType","leftImage","rightImage","projectName","logoDark","logoLight","home","detailsHeroBackground","detailsHeroFeaturedBackground","assign","SHOW_LOADING_SCREEN","SHOW_LOADINGG_SCREEN","projectDetails","projectsSelector","getProjects","projectsObject","getProjectDetails","makeGetProject","projectId","allProjects","getNextProjectDetails","nextProjects","nextBackgroundImage","logomarkBackgrounds","internalHeaders","common","Accept","post","xsrfToken","method","baseURL","headers","api","interceptors","use","xsrfTokenResponse","getXsrfToken","tokenName","token","websiteReport","disabled","backgroundWidth","setBackgroundWidth","textMargin","setTextMargin","newBackgroundWidth","newTextMargin","ctaArrow","backgroundSpringConfig","backgroundInitialisationSpring","setBackgroundInitialisation","hoveringSpringConfig","hoveringClickedSpring","setHoveringClickedSpring","backgroundStyles","backgroundInitialisation","backgroundStartRatio","LinkBody","enablePullToRefresh","allow","body","classList","remove","add","interfaceRef","options","reserveScrollBarGap","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","aa","ba","f","g","h","framesToPop","arguments","encodeURIComponent","ca","Array","apply","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","extractEvents","eventTypes","pa","phasedRegistrationNames","qa","registrationName","ra","sa","dependencies","ta","ua","va","wa","currentTarget","ka","xa","isArray","concat","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","constructor","release","Ba","injectEventPluginOrder","injectEventPluginsByName","Ca","stateNode","Da","Ea","Fa","Ga","Ha","parentNode","tag","Ia","Ja","Ka","Ma","return","Na","dispatchConfig","Oa","_targetInst","Pa","Qa","Ra","Sa","Ta","toLowerCase","Ua","animationend","animationiteration","animationstart","transitionend","Va","Wa","Xa","animation","transition","Ya","Za","$a","ab","bb","split","cb","db","eb","fb","textContent","hb","ib","nativeEvent","Interface","isDefaultPrevented","defaultPrevented","kb","eventPool","pop","lb","destructor","jb","getPooled","preventDefault","stopPropagation","cancelBubble","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","mb","nb","ob","pb","qb","documentMode","rb","sb","tb","String","fromCharCode","ub","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","vb","wb","keyCode","xb","detail","yb","Bb","locale","which","zb","ctrlKey","altKey","metaKey","char","Ab","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","date","datetime","email","month","password","search","tel","time","week","Pb","nodeName","Qb","srcElement","correspondingUseElement","nodeType","Rb","Sb","Ub","_valueTracker","getOwnPropertyDescriptor","set","configurable","getValue","setValue","stopTracking","Tb","Vb","checked","Wb","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","Xb","A","for","Yb","Zb","$b","bc","cc","dc","ec","fc","gc","hc","ic","jc","iterator","kc","lc","displayName","$$typeof","_status","_result","mc","_debugOwner","_debugSource","fileName","lineNumber","oc","pc","qc","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","C","uc","vc","wc","sc","isNaN","tc","test","rc","removeAttribute","setAttributeNS","xc","yc","defaultChecked","defaultValue","_wrapperState","initialChecked","zc","initialValue","controlled","Ac","Bc","Cc","Dc","ownerDocument","activeElement","Ec","change","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","detachEvent","Nc","Oc","attachEvent","Pc","Qc","Rc","Sc","_isInputEventSupported","Tc","view","Uc","Alt","Control","Meta","Shift","Vc","getModifierState","Wc","Xc","Yc","Zc","$c","ad","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","bd","pointerId","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","cd","mouseEnter","mouseLeave","pointerEnter","pointerLeave","dd","defaultView","parentWindow","alternate","ed","fd","gd","hd","effectTag","kd","child","sibling","jd","ld","animationName","elapsedTime","pseudoElement","md","clipboardData","nd","od","charCode","pd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qd","8","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rd","repeat","sd","dataTransfer","td","touches","targetTouches","changedTouches","ud","vd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wd","xd","yd","zd","isInteractive","Ad","isInteractiveTopLevelEventType","Bd","Cd","Dd","targetInst","ancestors","containerInfo","topLevelType","Ed","D","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","firstChild","Od","node","nextSibling","Qd","HTMLIFrameElement","contentWindow","Rd","contentEditable","Td","focusedElem","selectionRange","Pd","contains","compareDocumentPosition","documentElement","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","scrollLeft","focus","Ud","Vd","select","Wd","Xd","Yd","Zd","$d","ae","onSelect","ce","Children","be","de","selected","defaultSelected","ee","dangerouslySetInnerHTML","fe","ge","he","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","ie","je","ke","le","me","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","removeChild","ne","lastChild","nodeValue","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","pe","qe","trim","re","setProperty","charAt","substring","se","menuitem","area","base","br","col","embed","hr","input","keygen","param","source","track","wbr","te","ue","is","ve","blur","we","xe","ye","ze","autoFocus","Ae","__html","Be","Ce","De","unstable_scheduleCallback","Ee","unstable_cancelCallback","Ge","He","Set","Ie","Je","E","F","Ke","G","H","Le","Me","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","I","childContextTypes","Ne","Oe","Pe","Qe","getChildContext","Re","__reactInternalMemoizedMergedChildContext","Se","Te","Ue","Ve","We","Ye","elementType","pendingProps","contextDependencies","memoizedState","updateQueue","memoizedProps","lastEffect","firstEffect","nextEffect","childExpirationTime","expirationTime","treeBaseDuration","selfBaseDuration","actualStartTime","actualDuration","Number","NaN","J","Ze","isReactComponent","af","bf","cf","df","ef","ff","pendingChildren","implementation","gf","didError","earliestPendingTime","latestPendingTime","hf","lf","latestPingedTime","earliestSuspendedTime","latestSuspendedTime","mf","nextExpirationTimeToWorkOn","K","defaultProps","of","Component","refs","pf","baseState","yf","isMounted","_reactInternalFiber","enqueueSetState","qf","sf","rf","payload","tf","uf","vf","enqueueReplaceState","wf","enqueueForceUpdate","xf","zf","shouldComponentUpdate","isPureReactComponent","Af","contextType","L","updater","Bf","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Cf","Df","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ef","Ff","_owner","_stringRef","Gf","join","Hf","Map","w","U","Nb","q","u","delete","La","done","gb","If","Jf","Kf","M","Lf","Mf","Nf","Of","tagName","Pf","Qf","Rf","$f","ag","bg","N","O","cg","P","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","queue","baseUpdate","sg","tg","ug","lastRenderedReducer","vg","lastRenderedState","eagerReducer","eagerState","wg","destroy","deps","xg","yg","zg","Ag","Bg","readContext","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","Zf","Uf","Cg","Dg","Eg","unstable_now","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","ReactCurrentOwner","Q","Qg","Rg","Sg","Tg","compare","Ug","Vg","Wg","Xg","Yg","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","Zg","getDerivedStateFromError","$g","pendingContext","ah","timedOutAt","fallback","bh","ch","_ctor","nf","$e","hydrate","hidden","_context","_calculateChangedBits","observedBits","unstable_observedBits","dh","eh","fh","gh","_currentValue","hh","kh","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstCapturedEffect","lastCapturedEffect","lh","mh","nh","oh","ph","qh","rh","sh","stack","th","uh","wh","xh","onclick","yh","WeakSet","zh","Ah","Bh","Ch","Eh","componentWillUnmount","Fh","Gh","Hh","insertBefore","_reactRootContainer","Ih","wasMultiple","multiple","Fe","Dh","Jh","unstable_wrap","has","Kh","WeakMap","Lh","Mh","Nh","componentDidCatch","Oh","Ph","maxDuration","pingCache","Qh","Rh","Sh","Th","Uh","Vh","__interactionsRef","Wh","Xh","R","Yh","S","T","Zh","$h","ai","bi","ci","di","ei","__reactInternalSnapshotBeforeUpdate","fi","onRender","memoizedInteractions","gi","V","hi","W","ii","ji","pendingCommitExpirationTime","jf","Sd","unstable_runWithPriority","unstable_NormalPriority","finishedWork","ki","__subscriberRef","onWorkStopped","interactionThreadID","X","pendingInteractionMap","__count","onInteractionScheduledWorkCompleted","mi","createElementNS","createTextNode","ni","oi","onWorkStarted","pi","kf","qi","ri","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_LowPriority","unstable_IdlePriority","si","ti","onWorkScheduled","ui","vi","wi","xi","Y","yi","zi","Ai","Z","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","timeoutHandle","Ki","Li","Mi","nextScheduledRoot","Ni","Oi","unstable_shouldYield","_onComplete","Pi","firstBatch","_expirationTime","_defer","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","_root","_callbacks","_next","_hasChildren","_didComplete","_children","Yi","_didCommit","_onCommit","Zi","unstable_getThreadID","_internalRoot","$i","bj","legacy_renderSubtreeIntoContainer","hasAttribute","aj","cj","querySelectorAll","form","commit","unmount","createBatch","ej","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","flushSync","unstable_createRoot","unstable_flushControlled","Events","findFiberByHostInstance","bundleType","version","rendererPackageName","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Xe","overrideProps","currentDispatcherRef","findHostInstanceByFiber","fj","gj","onInteractionTraced","onWorkCanceled","unstable_clear","unstable_getCurrent","unstable_trace","timestamp","unstable_subscribe","unstable_unsubscribe","unloadedState","forecasts","isLoading","reducers","counter","count","weatherForecasts","incomingAction","startDateIndex","logger","baseUrl","getElementsByTagName","getAttribute","basename","initialReduxState","preloadedState","middleware","enhancers","__REDUX_DEVTOOLS_EXTENSION__","createStoreWithMiddleware","allReducers","router","createRootReducer","configureStore","hostname","tagManagerArgs","gtmId","initialize","listen","page","app","store","preloadReady","getElementById","renderApp"],"mappings":"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","file":"main-client.440fb6794a70440afb4c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t9: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"OurStory~Services~WorkDetails\",\"1\":\"ChatModal\",\"2\":\"Contact\",\"3\":\"Home\",\"4\":\"NotFound\",\"5\":\"OurStory\",\"6\":\"Services\",\"7\":\"Work\",\"8\":\"WorkDetails\"}[chunkId]||chunkId) + \".\" + {\"0\":\"fb41a7fc2f6722e94b4c\",\"1\":\"880587028d23e40d5c60\",\"2\":\"6f0388eb188c4bb07b25\",\"3\":\"ef5ea8c6b4539f22df84\",\"4\":\"2102ceb4d4dee4ad8465\",\"5\":\"7ca5e6bc4cf567cc5807\",\"6\":\"6c1da037c1c81e215577\",\"7\":\"823a293243e29ffa745b\",\"8\":\"3ad549a42e265da3c850\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 64);\n","module.exports = (__webpack_require__(8))(0);","module.exports = (__webpack_require__(8))(595);","import _mapObject from \"./mapObject\";\r\nexport const mapObject = _mapObject;\r\n\r\nimport _fillArray from \"./fillArray\";\r\nexport const fillArray = _fillArray;\r\n\r\nimport _usePrevious from \"./usePrevious\";\r\nexport const usePrevious = _usePrevious;\r\n\r\nimport _useLatest from \"./useLatest\";\r\nexport const useLatest = _useLatest;\r\n\r\nimport _useInterval from \"./useInterval\";\r\nexport const useInterval = _useInterval;\r\n\r\nimport _useTimeout from \"./useTimeout\";\r\nexport const useTimeout = _useTimeout;\r\n\r\nimport _dragUtils from \"./dragUtils\";\r\nexport const dragUtils = _dragUtils;\r\n\r\n//export const windowScrollTop = (typeof window !== 'undefined' ? window.scrollY : 0);\r\n\r\nexport const generateUid = () => ((Date.now().toString(36) + Math.random().toString(36).substr(2, 5)).toUpperCase());\r\n\r\nexport const hashCode = (value: string) => {\r\n let hash = 0;\r\n if (value.length === 0) {\r\n return hash;\r\n }\r\n for (let i = 0; i < value.length; i++) {\r\n const char = value.charCodeAt(i);\r\n // tslint:disable-next-line\r\n hash = ((hash << 5) - hash) + char;\r\n // tslint:disable-next-line\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return hash.toString();\r\n};\r\n\r\nexport const uuidv4 = () => {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n // tslint:disable-next-line\r\n const r = Math.random() * 16 | 0;\r\n // tslint:disable-next-line\r\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n};\r\n\r\nexport const getPixelRatio = context => {\r\n const backingStore =\r\n context.backingStorePixelRatio ||\r\n context.webkitBackingStorePixelRatio ||\r\n context.mozBackingStorePixelRatio ||\r\n context.msBackingStorePixelRatio ||\r\n context.oBackingStorePixelRatio ||\r\n context.backingStorePixelRatio ||\r\n 1;\r\n\r\n return (window.devicePixelRatio || 1) / backingStore;\r\n};\r\n","module.exports = (__webpack_require__(8))(823);","module.exports = (__webpack_require__(8))(144);","//import 'babel-polyfill';\r\nimport { Action, Reducer } from 'redux';\r\nimport { IApplicationState } from './index';\r\nimport * as fromPageScroll from './PageScroll';\r\nimport mapObject from 'utils/mapObject';\r\n\r\nimport { createSelector } from 'reselect';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface INavItem {\r\n title: string;\r\n url: string;\r\n}\r\n\r\nexport interface IAreaById extends INavItem {\r\n exact: boolean;\r\n}\r\n\r\nexport interface IAreasById {\r\n [key: number]: IAreaById;\r\n}\r\n\r\nexport interface INavMenuProps {\r\n open: boolean;\r\n peek: boolean;\r\n}\r\n\r\nexport interface INavMenu extends INavMenuProps {\r\n //light: boolean;\r\n load: boolean;\r\n loaded: boolean;\r\n triggerHovering: boolean;\r\n}\r\n\r\nexport interface INavLogo {\r\n markVisible: boolean;\r\n hovering: boolean;\r\n}\r\n\r\nexport interface IMainNavigationState {\r\n areasById: IAreasById;\r\n selectedArea: number;\r\n navMenu: INavMenu;\r\n navLogo: INavLogo;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n SET_MAIN_NAVIGATION_CURRENT_AREA = 'SET_MAIN_NAVIGATION_CURRENT_AREA',\r\n LOAD_NAV_MENU = 'LOAD_NAV_MENU',\r\n NAV_MENU_LOADED = 'NAV_MENU_LOADED',\r\n PEEK_AT_NAV_MENU = 'PEEK_AT_NAV_MENU',\r\n UNPEEK_AT_NAV_MENU = 'UNPEEK_AT_NAV_MENU',\r\n SHOW_NAV_MENU = 'SHOW_NAV_MENU',\r\n HIDE_NAV_MENU = 'HIDE_NAV_MENU',\r\n ENTER_NAV_MENU_TRIGGER = 'ENTER_NAV_MENU_TRIGGER',\r\n LEAVE_NAV_MENU_TRIGGER = 'LEAVE_NAV_MENU_TRIGGER',\r\n SHOW_NAV_LOGOMARK = 'SHOW_NAV_LOGOMARK',\r\n HIDE_NAV_LOGOMARK = 'HIDE_NAV_LOGOMARK',\r\n ENTER_NAV_LOGO = 'ENTER_NAV_LOGO',\r\n LEAVE_NAV_LOGO = 'LEAVE_NAV_LOGO',\r\n}\r\n\r\ninterface ISetMainNavigationCurrentAreaAction {\r\n type: keys.SET_MAIN_NAVIGATION_CURRENT_AREA;\r\n linkId?: number;\r\n url?: string;\r\n}\r\ninterface ILoadNavMenuAction {\r\n type: keys.LOAD_NAV_MENU;\r\n}\r\ninterface INavMenuLoadedAction {\r\n type: keys.NAV_MENU_LOADED;\r\n}\r\ninterface IPeekAtNavMenuAction {\r\n type: keys.PEEK_AT_NAV_MENU;\r\n}\r\ninterface IUnpeekAtNavMenuAction {\r\n type: keys.UNPEEK_AT_NAV_MENU;\r\n}\r\ninterface IShowNavMenuAction {\r\n type: keys.SHOW_NAV_MENU;\r\n}\r\ninterface IHideNavMenuAction {\r\n type: keys.HIDE_NAV_MENU;\r\n}\r\ninterface IEnterNavMenuTriggerAction {\r\n type: keys.ENTER_NAV_MENU_TRIGGER;\r\n}\r\ninterface ILeaveNavMenuTriggerAction {\r\n type: keys.LEAVE_NAV_MENU_TRIGGER;\r\n}\r\ninterface IShowNavLogomarkAction {\r\n type: keys.SHOW_NAV_LOGOMARK;\r\n}\r\ninterface IHideNavLogomarkAction {\r\n type: keys.HIDE_NAV_LOGOMARK;\r\n}\r\ninterface IEnterNavLogoAction {\r\n type: keys.ENTER_NAV_LOGO;\r\n}\r\ninterface ILeaveNavLogoAction {\r\n type: keys.LEAVE_NAV_LOGO;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n ISetMainNavigationCurrentAreaAction\r\n | ILoadNavMenuAction\r\n | INavMenuLoadedAction\r\n | IPeekAtNavMenuAction\r\n | IUnpeekAtNavMenuAction\r\n | IShowNavMenuAction\r\n | IHideNavMenuAction\r\n | IShowNavLogomarkAction\r\n | IHideNavLogomarkAction\r\n | IEnterNavLogoAction\r\n | ILeaveNavLogoAction\r\n | IEnterNavMenuTriggerAction\r\n | ILeaveNavMenuTriggerAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const actionCreators = {\r\n setMainNavigationCurrentAreaAction: (linkId: number) => dispatch => {\r\n dispatch({\r\n type: keys.SET_MAIN_NAVIGATION_CURRENT_AREA,\r\n linkId,\r\n });\r\n },\r\n handleMainNavClickAction: (linkId: number) => dispatch => {\r\n dispatch({\r\n type: keys.SET_MAIN_NAVIGATION_CURRENT_AREA,\r\n linkId,\r\n });\r\n setTimeout(() => {\r\n dispatch(fromPageScroll.actionCreators.restorePageScroll());\r\n setTimeout(() => {\r\n dispatch({ type: keys.HIDE_NAV_MENU });\r\n dispatch({ type: keys.UNPEEK_AT_NAV_MENU });\r\n }, 500);\r\n }, 85);\r\n },\r\n preloadNavMenuAction: () => dispatch => {\r\n dispatch({ type: keys.LOAD_NAV_MENU });\r\n },\r\n markNavMenuLoadedAction: () => dispatch => {\r\n dispatch({ type: keys.NAV_MENU_LOADED });\r\n },\r\n peekAtNavMenuAction: () => dispatch => {\r\n dispatch({ type: keys.PEEK_AT_NAV_MENU });\r\n },\r\n unpeekAtNavMenuAction: () => dispatch => {\r\n dispatch({ type: keys.UNPEEK_AT_NAV_MENU });\r\n },\r\n showNavMenuAction: () => dispatch => {\r\n dispatch({ type: keys.SHOW_NAV_MENU });\r\n dispatch({ type: keys.UNPEEK_AT_NAV_MENU });\r\n dispatch(fromPageScroll.actionCreators.disablePageScroll());\r\n },\r\n hideNavMenuAction: () => dispatch => {\r\n dispatch(fromPageScroll.actionCreators.restorePageScroll());\r\n dispatch({ type: keys.HIDE_NAV_MENU });\r\n dispatch({ type: keys.UNPEEK_AT_NAV_MENU });\r\n },\r\n enterNavMenuTriggerAction: () => dispatch => {\r\n dispatch({ type: keys.ENTER_NAV_MENU_TRIGGER });\r\n },\r\n leaveNavMenuTriggerAction: () => dispatch => {\r\n dispatch({ type: keys.LEAVE_NAV_MENU_TRIGGER });\r\n },\r\n showNavLogomarkAction: () => dispatch => {\r\n dispatch({ type: keys.SHOW_NAV_LOGOMARK });\r\n },\r\n hideNavLogomarkAction: () => dispatch => {\r\n dispatch({ type: keys.HIDE_NAV_LOGOMARK });\r\n },\r\n enterNavLogoAction: () => dispatch => {\r\n dispatch({ type: keys.ENTER_NAV_LOGO });\r\n },\r\n leaveNavLogoAction: () => dispatch => {\r\n dispatch({ type: keys.LEAVE_NAV_LOGO });\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: IMainNavigationState, action: IKnownAction) => {\r\n switch (action.type) {\r\n case keys.SET_MAIN_NAVIGATION_CURRENT_AREA:\r\n if (action.linkId) {\r\n return {\r\n ...state,\r\n selectedArea: action.linkId,\r\n };\r\n }\r\n else if (action.url) {\r\n let selectedAreaId = 0;\r\n\r\n mapObject(state.areasById, (navigationItemId, navigationItem) => {\r\n if (navigationItem.url === action.url) {\r\n selectedAreaId = navigationItemId;\r\n }\r\n });\r\n\r\n return {\r\n ...state,\r\n selectedArea: selectedAreaId,\r\n };\r\n }\r\n case keys.LOAD_NAV_MENU:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n load: true,\r\n },\r\n };\r\n case keys.NAV_MENU_LOADED:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n loaded: true,\r\n },\r\n };\r\n case keys.PEEK_AT_NAV_MENU:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n peek: true,\r\n },\r\n };\r\n case keys.UNPEEK_AT_NAV_MENU:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n peek: false,\r\n },\r\n };\r\n case keys.SHOW_NAV_MENU:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n open: true,\r\n },\r\n };\r\n case keys.HIDE_NAV_MENU:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n open: false,\r\n },\r\n };\r\n case keys.ENTER_NAV_MENU_TRIGGER:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n triggerHovering: true,\r\n },\r\n };\r\n case keys.LEAVE_NAV_MENU_TRIGGER:\r\n return {\r\n ...state,\r\n navMenu: {\r\n ...state.navMenu,\r\n triggerHovering: false,\r\n },\r\n };\r\n case keys.SHOW_NAV_LOGOMARK:\r\n return {\r\n ...state,\r\n navLogo: {\r\n ...state.navLogo,\r\n markVisible: true,\r\n },\r\n };\r\n case keys.HIDE_NAV_LOGOMARK:\r\n return {\r\n ...state,\r\n navLogo: {\r\n ...state.navLogo,\r\n markVisible: false,\r\n },\r\n };\r\n case keys.ENTER_NAV_LOGO:\r\n return {\r\n ...state,\r\n navLogo: {\r\n ...state.navLogo,\r\n hovering: true,\r\n },\r\n };\r\n case keys.LEAVE_NAV_LOGO:\r\n return {\r\n ...state,\r\n navLogo: {\r\n ...state.navLogo,\r\n hovering: false,\r\n },\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return state || {\r\n areasById: {\r\n 1: {\r\n title: 'Home',\r\n exact: true,\r\n url: '/',\r\n },\r\n 2: {\r\n title: 'Work',\r\n exact: true,\r\n url: '/work',\r\n },\r\n 3: {\r\n title: 'Services',\r\n exact: true,\r\n url: '/services',\r\n },\r\n 4: {\r\n title: 'Our Story',\r\n exact: true,\r\n url: '/our-story',\r\n },\r\n 5: {\r\n title: 'Contact Us',\r\n exact: true,\r\n url: '/contact',\r\n },\r\n },\r\n selectedArea: 0,\r\n //navMenuLight: true,\r\n navMenu: {\r\n peek: false,\r\n open: false,\r\n load: false,\r\n loaded: false,\r\n triggerHovering: false,\r\n },\r\n navLogo: {\r\n markVisible: true,\r\n hovering: false,\r\n },\r\n };\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst mainNavigationSelector = (state: IApplicationState) => state.mainNavigation;\r\n\r\nconst areasByIdSelector = (state: IApplicationState) => mainNavigationSelector(state).areasById;\r\nexport const getAreasById = createSelector(\r\n [areasByIdSelector],\r\n areasById => {\r\n return areasById;\r\n },\r\n);\r\nexport const getAreasAmount = createSelector(\r\n [areasByIdSelector],\r\n areasById => {\r\n return Object.keys(areasById).length;\r\n },\r\n);\r\n\r\n// A good guide for memoization using reselect https://blog.isquaredsoftware.com/2017/12/idiomatic-redux-using-reselect-selectors/\r\n\r\nexport const getMainNavItems = createSelector(\r\n [areasByIdSelector],\r\n areasById => {\r\n const navItems: INavItem[] = [];\r\n mapObject(areasById, (navigationItemId, navigationItem: IAreaById) => {\r\n const navItem: INavItem = {\r\n title: navigationItem.title,\r\n url: navigationItem.url,\r\n };\r\n navItems.push(navItem);\r\n });\r\n\r\n return navItems;\r\n },\r\n);\r\n\r\nconst navMenuSelector = (state: IApplicationState) => mainNavigationSelector(state).navMenu;\r\nexport const getNavMenu = createSelector(\r\n [navMenuSelector],\r\n navMenu => {\r\n return navMenu;\r\n },\r\n);\r\n\r\nexport const getNavMenuProps = createSelector(\r\n [navMenuSelector],\r\n navMenu => {\r\n return {\r\n open: navMenu.open,\r\n peek: navMenu.peek,\r\n } as INavMenuProps;\r\n },\r\n);\r\n\r\nexport const getNavMenuOpen = createSelector(\r\n [navMenuSelector],\r\n navMenu => {\r\n return navMenu.open;\r\n },\r\n);\r\n\r\nexport const getHomeUrl = createSelector(\r\n [areasByIdSelector],\r\n areasById => {\r\n return areasById[1].url;\r\n },\r\n);\r\n\r\nconst navLogoSelector = (state: IApplicationState) => mainNavigationSelector(state).navLogo;\r\nexport const getNavLogo = createSelector(\r\n [navLogoSelector],\r\n navLogo => {\r\n return navLogo;\r\n },\r\n);\r\n","import { SpringConfig, SpringValue, SpringValues } from '@react-spring/web';\r\n\r\nexport interface ISpringProperties {\r\n stiffness: number;\r\n damping: number;\r\n}\r\n\r\nexport const animateComponentInStart: ISpringProperties = {\r\n stiffness: 100,\r\n damping: 25,\r\n};\r\n\r\nexport const animateComponentInEnd: ISpringProperties = {\r\n stiffness: 120,\r\n damping: 25,\r\n};\r\n\r\nexport const animateComponentImageInStart: ISpringProperties = {\r\n stiffness: 60,\r\n damping: 25,\r\n};\r\n\r\nexport const animateComponentImageInEnd: ISpringProperties = {\r\n stiffness: 60,\r\n damping: 25,\r\n};\r\n\r\nexport const tileStaggerGap: number = 4;\r\nexport const draggableTileStaggerGap: number = 3;\r\nexport const animationTriggerThreshold: number = 0.0000001;\r\n\r\nexport const defaultSpringConfig: SpringConfig = {\r\n mass: 1,\r\n tension: 170,\r\n friction: 36,\r\n clamp: true,\r\n precision: 0.01,\r\n velocity: 0,\r\n //duration: undefined,\r\n easing: t => t,\r\n};\r\n\r\nexport interface ISpring {\r\n [id: string]: SpringValue;\r\n}\r\n\r\nexport const animateInSpringConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n};\r\n\r\nexport const initialOffset = (x: number, offset: number = 30) => (`(${x} * -1 * ${offset}px) + ${offset}px`);\r\n\r\nexport type IBackgroundShade = 'light' | 'dark';\r\n\r\n// There is a good spring visualiser at https://react-spring-visualizer.com/#spring where you can design spring animations\r\n// Other useful visualisation and dev tools https://twitter.com/stefanjudis/status/1216788482972168193\r\n// To make even better css shadows https://brumm.af/shadows\r\n","module.exports = (__webpack_require__(8))(619);","module.exports = vendor_2eea9c464ebf2b2afd65;","//import 'babel-polyfill';\r\nimport { Action, Reducer } from 'redux';\r\nimport { IApplicationState } from './index';\r\nimport * as fromPageScroll from './PageScroll';\r\n\r\nimport { generateUid } from 'utils/Index';\r\n\r\nimport { createSelector } from 'reselect';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface ILoadingScreen {\r\n visible: boolean;\r\n logomarkBackground: string;\r\n animatePageIn: boolean;\r\n animatePageContentIn: boolean;\r\n}\r\n\r\nexport interface INewPage {\r\n //initialised: boolean;\r\n animateIn: boolean;\r\n animateContentIn: boolean;\r\n}\r\n\r\nexport interface ILoadingScreens {\r\n [id: string]: ILoadingScreen;\r\n}\r\n\r\nexport interface IUserInterfaceState {\r\n initialised: boolean;\r\n loadingScreens: ILoadingScreens;\r\n currentLoadingScreen: string;\r\n //newPage: INewPage;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n MARK_AS_INITIALISED = 'MARK_AS_INITIALISED',\r\n NEW_LOADING_SCREEN = 'NEW_LOADING_SCREEN',\r\n HIDE_LOADING_SCREEN = 'HIDE_LOADING_SCREEN',\r\n REMOVE_LOADING_SCREEN = 'REMOVE_LOADING_SCREEN',\r\n CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND = 'CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND',\r\n ANIMATE_PAGE_IN = 'ANIMATE_PAGE_IN',\r\n ANIMATE_PAGE_CONTENT_IN = 'ANIMATE_PAGE_CONTENT_IN',\r\n}\r\n\r\ninterface IMarkAsInitialised {\r\n type: keys.MARK_AS_INITIALISED;\r\n}\r\ninterface INewLoadingScreenAction {\r\n type: keys.NEW_LOADING_SCREEN;\r\n id: string;\r\n}\r\ninterface IHideLoadingScreenAction {\r\n type: keys.HIDE_LOADING_SCREEN;\r\n id: string;\r\n}\r\ninterface IRemoveLoadingScreenAction {\r\n type: keys.REMOVE_LOADING_SCREEN;\r\n id: string;\r\n}\r\ninterface IChangeLoadingScreenLogomarkBackground {\r\n type: keys.CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND;\r\n url: string;\r\n id: string;\r\n}\r\ninterface IAnimatePageInAction {\r\n type: keys.ANIMATE_PAGE_IN;\r\n id: string;\r\n}\r\ninterface IAnimatePageContentInAction {\r\n type: keys.ANIMATE_PAGE_CONTENT_IN;\r\n id: string;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n IMarkAsInitialised\r\n | INewLoadingScreenAction\r\n | IHideLoadingScreenAction\r\n | IRemoveLoadingScreenAction\r\n | IChangeLoadingScreenLogomarkBackground\r\n | IAnimatePageInAction\r\n | IAnimatePageContentInAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nlet animatePageInTimer;\r\nlet animatePageContentInTimer;\r\n\r\nexport const actionCreators = {\r\n markAsInitialised: () => dispatch => {\r\n dispatch({ type: keys.MARK_AS_INITIALISED });\r\n },\r\n triggerNewLoadingScreen: (id: string, recordPageScroll: boolean = true, action: string) => dispatch => {\r\n clearTimeout(animatePageInTimer);\r\n clearTimeout(animatePageContentInTimer);\r\n dispatch(fromPageScroll.actionCreators.disablePageScroll(recordPageScroll));\r\n dispatch({ type: keys.NEW_LOADING_SCREEN, id });\r\n },\r\n hideLoadingScreen: (id: string, modifyScroll: boolean = true, newPage: boolean = false) => dispatch => {\r\n dispatch({ type: keys.HIDE_LOADING_SCREEN, id });\r\n if (modifyScroll) {\r\n if (newPage) {\r\n dispatch(fromPageScroll.actionCreators.enablePageScroll());\r\n } else {\r\n dispatch(fromPageScroll.actionCreators.restorePageScroll());\r\n }\r\n }\r\n },\r\n removeLoadingScreen: (id: string) => dispatch => {\r\n dispatch({ type: keys.REMOVE_LOADING_SCREEN, id });\r\n },\r\n changeLoadingScreenLogomarkBackground: (id: string, url: string) => dispatch => {\r\n dispatch({\r\n type: keys.CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND,\r\n url,\r\n id,\r\n });\r\n },\r\n animateInPage: (id: string) => dispatch => {\r\n animatePageInTimer = setTimeout(() => {\r\n dispatch({ type: keys.ANIMATE_PAGE_IN, id });\r\n animatePageContentInTimer = setTimeout(() => {\r\n dispatch({ type: keys.ANIMATE_PAGE_CONTENT_IN, id });\r\n }, 200);\r\n }, 30);\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: IUserInterfaceState, action: IKnownAction) => {\r\n switch (action.type) {\r\n case keys.MARK_AS_INITIALISED:\r\n return {\r\n ...state,\r\n initialised: true,\r\n };\r\n case keys.NEW_LOADING_SCREEN:\r\n return {\r\n ...state,\r\n loadingScreens: {\r\n ...state.loadingScreens,\r\n [action.id]: {\r\n visible: true,\r\n logomarkBackground: null,\r\n animatePageIn: false,\r\n animatePageContentIn: false,\r\n },\r\n },\r\n currentLoadingScreen: action.id,\r\n };\r\n case keys.HIDE_LOADING_SCREEN:\r\n if (state.loadingScreens.hasOwnProperty(action.id))\r\n return {\r\n ...state,\r\n loadingScreens: {\r\n ...state.loadingScreens,\r\n [action.id]: {\r\n ...state.loadingScreens[action.id],\r\n visible: false,\r\n },\r\n },\r\n };\r\n else return state;\r\n case keys.REMOVE_LOADING_SCREEN:\r\n const { [action.id]: value, ...rest } = state.loadingScreens;\r\n return {\r\n ...state,\r\n loadingScreens: rest,\r\n };\r\n case keys.CHANGE_LOADING_SCREEN_LOGOMARK_BACKGROUND:\r\n return {\r\n ...state,\r\n loadingScreens: {\r\n ...state.loadingScreens,\r\n [action.id]: {\r\n ...state.loadingScreens[action.id],\r\n logomarkBackground: action.url,\r\n },\r\n },\r\n };\r\n case keys.ANIMATE_PAGE_IN:\r\n return {\r\n ...state,\r\n loadingScreens: {\r\n ...state.loadingScreens,\r\n [action.id]: {\r\n ...state.loadingScreens[action.id],\r\n animatePageIn: true,\r\n },\r\n },\r\n };\r\n case keys.ANIMATE_PAGE_CONTENT_IN:\r\n return {\r\n ...state,\r\n loadingScreens: {\r\n ...state.loadingScreens,\r\n [action.id]: {\r\n ...state.loadingScreens[action.id],\r\n animatePageContentIn: true,\r\n },\r\n },\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n const initialLoadingScreenId = generateUid();\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return state || {\r\n initialised: false,\r\n loadingScreens: {},\r\n currentLoadingScreen: null,\r\n };\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst userInterfaceSelector = (state: IApplicationState) => state.userInterface;\r\nexport const getUserInterface = createSelector(\r\n [userInterfaceSelector],\r\n userInterface => {\r\n //console.log(\"Output selector running: getUserInterface\");\r\n return userInterface;\r\n },\r\n);\r\n\r\nconst initiliasedSelector = (state: IApplicationState) => userInterfaceSelector(state).initialised;\r\nexport const getInitialised = createSelector(\r\n [initiliasedSelector],\r\n initialised => {\r\n //console.log(\"Output selector running: getLoadingScreen\");\r\n return initialised;\r\n },\r\n);\r\n\r\nconst loadingScreensSelector = (state: IApplicationState) => userInterfaceSelector(state).loadingScreens;\r\nconst currentLoadingScreenSelector = (state: IApplicationState) => userInterfaceSelector(state).currentLoadingScreen;\r\nexport const getLoadingScreens = createSelector(\r\n [loadingScreensSelector],\r\n loadingScreens => {\r\n //console.log(\"Output selector running: getLoadingScreen\");\r\n return loadingScreens;\r\n },\r\n);\r\n\r\nexport const getVisibleLoadingScreens = createSelector(\r\n [loadingScreensSelector],\r\n loadingScreens => {\r\n //console.log(\"Output selector running: getLoadingScreen\");\r\n const visibleScreens = [];\r\n Object.keys(loadingScreens).map(id => {\r\n if (loadingScreens[id].visible === true)\r\n visibleScreens.push(id);\r\n });\r\n return visibleScreens.length;\r\n },\r\n);\r\n\r\nexport const getPageContentAnimatedIn = createSelector(\r\n [currentLoadingScreenSelector, loadingScreensSelector],\r\n (currentLoadingScreenId, loadingScreens) => {\r\n //console.log(\"Output selector running: getPageAnimatedIn\");\r\n let pageAnimatedIn = false;\r\n const loadingScreenIds = Object.keys(loadingScreens);\r\n if (currentLoadingScreenId != null) {\r\n let screenAnimatedIn = true;\r\n loadingScreenIds.map(id => {\r\n if (loadingScreens[id].animatePageContentIn === false)\r\n screenAnimatedIn = false;\r\n });\r\n pageAnimatedIn = screenAnimatedIn;\r\n }\r\n return pageAnimatedIn;\r\n },\r\n);\r\n\r\nexport const makeGetLoadingScreen = () => createSelector(\r\n loadingScreensSelector,\r\n (_, screenId) => screenId,\r\n (loadingScreens, screenId) => {\r\n //console.log(\"Output selector running: getLoadingScreen\");\r\n // console.log('screenId', screenId);\r\n const emptyLoadingScreen: ILoadingScreen = {\r\n visible: false,\r\n logomarkBackground: null,\r\n animatePageIn: true,\r\n animatePageContentIn: true,\r\n };\r\n return loadingScreens.hasOwnProperty(screenId) ? loadingScreens[screenId] : emptyLoadingScreen;\r\n },\r\n);\r\n","//import 'babel-polyfill';\r\nimport { Reducer } from \"redux\";\r\nimport { IApplicationState } from \"./index\";\r\nimport * as fromPageScroll from \"./PageScroll\";\r\nimport * as fromSignalR from \"store/middleware/signalR\";\r\n\r\nimport { createSelector } from \"reselect\";\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport type IInputTypes =\r\n | \"inputShortText\"\r\n | \"inputLongText\"\r\n | \"radioButtons\"\r\n | \"checkboxes\";\r\n\r\nexport interface IFormValueShortTextProps {\r\n value: string;\r\n}\r\n\r\nexport interface IFormValueLongTextProps {\r\n value: string;\r\n}\r\n\r\nexport interface IFormValueRadioButtonsProps {\r\n value: string;\r\n}\r\n\r\nexport interface IFormValueCheckboxesProps {\r\n value: string[];\r\n}\r\n\r\nexport type IFormValueOptions =\r\n | IFormValueShortTextProps\r\n | IFormValueLongTextProps\r\n | IFormValueRadioButtonsProps\r\n | IFormValueCheckboxesProps;\r\n\r\nexport type IMessageFrom = \"qore\" | \"friend\";\r\n\r\nexport interface IFormValue {\r\n id: string;\r\n title: string;\r\n type: IInputTypes;\r\n props: IFormValueOptions;\r\n}\r\n\r\nexport interface IMessage {\r\n id: string;\r\n from: IMessageFrom;\r\n message: string;\r\n allowHtml: boolean;\r\n time: string;\r\n}\r\n\r\ninterface IChatModalState {\r\n triggerActive: boolean;\r\n windowOpen: boolean;\r\n chatId: string;\r\n chatStarted: boolean;\r\n notificationDot: boolean;\r\n messages: IMessage[];\r\n formValues: IFormValue[];\r\n currentScriptStepId: string;\r\n nextScriptStepId: string;\r\n currentUserInputId: string;\r\n userInputVisible: boolean;\r\n active: boolean; // This marks the active chat modal window as the one that controls script step interactions\r\n}\r\n\r\nexport interface IInterfaceOverlayState {\r\n chatModal: IChatModalState;\r\n backToWorkTriggerActive: boolean;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n ENTER_CONTACT_TRIGGER = \"ENTER_CONTACT_TRIGGER\",\r\n LEAVE_CONTACT_TRIGGER = \"LEAVE_CONTACT_TRIGGER\",\r\n OPEN_CHAT_MODAL = \"OPEN_CHAT_MODAL\",\r\n CLOSE_CHAT_MODAL = \"CLOSE_CHAT_MODAL\",\r\n SET_CHAT_ID = \"SET_CHAT_ID\",\r\n MARK_CHAT_AS_STARTED = \"MARK_CHAT_AS_STARTED\",\r\n LOAD_CHAT_MESSAGES = \"LOAD_CHAT_MESSAGES\",\r\n RECEIVE_CHAT_MESSAGE = \"RECEIVE_CHAT_MESSAGE\",\r\n LOAD_CHAT_FORM_VALUES = \"LOAD_CHAT_FORM_VALUES\",\r\n RECEIVE_FORM_VALUE = \"RECEIVE_FORM_VALUE\",\r\n RESET_FORM_VALUES = \"RESET_FORM_VALUES\",\r\n UPDATE_CHAT_CURRENTSCRIPTSTEPID = \"UPDATE_CHAT_CURRENTSCRIPTSTEPID\",\r\n UPDATE_CHAT_NEXTSCRIPTSTEPID = \"UPDATE_CHAT_NEXTSCRIPTSTEPID\",\r\n UPDATE_CHAT_CURRENTUSERINPUTID = \"UPDATE_CHAT_CURRENTUSERINPUTID\",\r\n UPDATE_CHAT_USERINPUTVISIBILITY = \"UPDATE_CHAT_USERINPUTVISIBILITY\",\r\n ADD_CHAT_NOTIFICATION_DOT = \"ADD_CHAT_NOTIFICATION_DOT\",\r\n REMOVE_CHAT_NOTIFICATION_DOT = \"REMOVE_CHAT_NOTIFICATION_DOT\",\r\n SET_CHAT_ACTIVE_STATE = \"SET_CHAT_ACTIVE_STATE\",\r\n ENTER_BACKTOWORK_TRIGGER = \"ENTER_BACKTOWORK_TRIGGER\",\r\n LEAVE_BACKTOWORK_TRIGGER = \"LEAVE_BACKTOWORK_TRIGGER\",\r\n}\r\n\r\ninterface IEnterContactTriggerAction {\r\n type: keys.ENTER_CONTACT_TRIGGER;\r\n}\r\ninterface ILeaveContactTriggerAction {\r\n type: keys.LEAVE_CONTACT_TRIGGER;\r\n}\r\ninterface IOpenChatModalAction {\r\n type: keys.OPEN_CHAT_MODAL;\r\n}\r\ninterface ICloseChatModalAction {\r\n type: keys.CLOSE_CHAT_MODAL;\r\n}\r\ninterface ISetChatIdAction {\r\n type: keys.SET_CHAT_ID;\r\n id: string;\r\n}\r\ninterface IMarkChatAsStartedAction {\r\n type: keys.MARK_CHAT_AS_STARTED;\r\n isCaller: boolean;\r\n}\r\ninterface ILoadChatMessagesAction {\r\n type: keys.LOAD_CHAT_MESSAGES;\r\n messages: IMessage[];\r\n}\r\ninterface IReceiveChatMessageAction {\r\n type: keys.RECEIVE_CHAT_MESSAGE;\r\n message: IMessage;\r\n isCaller: boolean;\r\n}\r\ninterface ILoadFormValuesAction {\r\n type: keys.LOAD_CHAT_FORM_VALUES;\r\n formValues: IFormValue[];\r\n}\r\ninterface IReceiveFormValueAction {\r\n type: keys.RECEIVE_FORM_VALUE;\r\n formValue: IFormValue;\r\n isCaller: boolean;\r\n}\r\ninterface IResetFormValuesAction {\r\n type: keys.RESET_FORM_VALUES;\r\n isCaller: boolean;\r\n}\r\ninterface IUpdateChatCurrentScriptStepIdAction {\r\n type: keys.UPDATE_CHAT_CURRENTSCRIPTSTEPID;\r\n id: string;\r\n isCaller: boolean;\r\n}\r\ninterface IUpdateChatNextScriptStepIdAction {\r\n type: keys.UPDATE_CHAT_NEXTSCRIPTSTEPID;\r\n id: string;\r\n isCaller: boolean;\r\n}\r\ninterface IUpdateChatCurrentUserInputIdAction {\r\n type: keys.UPDATE_CHAT_CURRENTUSERINPUTID;\r\n id: string;\r\n isCaller: boolean;\r\n}\r\ninterface IUpdateChatUserInputVisibilityAction {\r\n type: keys.UPDATE_CHAT_USERINPUTVISIBILITY;\r\n visible: boolean;\r\n isCaller: boolean;\r\n}\r\ninterface IAddChatNotificationDotAction {\r\n type: keys.ADD_CHAT_NOTIFICATION_DOT;\r\n}\r\ninterface IRemoveChatNotificationDotAction {\r\n type: keys.REMOVE_CHAT_NOTIFICATION_DOT;\r\n}\r\ninterface ISetChatActiveStateAction {\r\n type: keys.SET_CHAT_ACTIVE_STATE;\r\n isCaller: boolean;\r\n}\r\ninterface IEnterBackToWorkTriggerAction {\r\n type: keys.ENTER_BACKTOWORK_TRIGGER;\r\n}\r\ninterface ILeaveBackToWorkTriggerAction {\r\n type: keys.LEAVE_BACKTOWORK_TRIGGER;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n | IEnterContactTriggerAction\r\n | ILeaveContactTriggerAction\r\n | IOpenChatModalAction\r\n | ICloseChatModalAction\r\n | ISetChatIdAction\r\n | IMarkChatAsStartedAction\r\n | ILoadChatMessagesAction\r\n | IReceiveChatMessageAction\r\n | ILoadFormValuesAction\r\n | IReceiveFormValueAction\r\n | IResetFormValuesAction\r\n | IUpdateChatCurrentScriptStepIdAction\r\n | IUpdateChatNextScriptStepIdAction\r\n | IUpdateChatCurrentUserInputIdAction\r\n | IUpdateChatUserInputVisibilityAction\r\n | IAddChatNotificationDotAction\r\n | IRemoveChatNotificationDotAction\r\n | ISetChatActiveStateAction\r\n | IEnterBackToWorkTriggerAction\r\n | ILeaveBackToWorkTriggerAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const actionCreators = {\r\n enterContactTriggerAction: () => (dispatch) => {\r\n dispatch({ type: keys.ENTER_CONTACT_TRIGGER });\r\n },\r\n leaveContactTriggerAction: () => (dispatch) => {\r\n dispatch({ type: keys.LEAVE_CONTACT_TRIGGER });\r\n },\r\n openChatModalAction: () => (dispatch) => {\r\n dispatch(fromPageScroll.actionCreators.disablePageScroll());\r\n dispatch({ type: keys.OPEN_CHAT_MODAL });\r\n },\r\n closeChatModalAction: () => (dispatch) => {\r\n dispatch(fromPageScroll.actionCreators.restorePageScroll());\r\n dispatch({ type: keys.CLOSE_CHAT_MODAL });\r\n },\r\n setChatActiveState:\r\n (isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({ type: keys.SET_CHAT_ACTIVE_STATE, isCaller });\r\n },\r\n markChatAsActive: () => (dispatch) => {\r\n dispatch({ type: keys.SET_CHAT_ACTIVE_STATE, isCaller: true });\r\n },\r\n setChatId: (id: string) => (dispatch) => {\r\n dispatch({ type: keys.SET_CHAT_ID, id });\r\n },\r\n startChat: () => (dispatch) => {\r\n dispatch(actionCreators.markChatAsStarted());\r\n dispatch(fromSignalR.actionCreators.startChat());\r\n },\r\n markChatAsStarted:\r\n (isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({ type: keys.MARK_CHAT_AS_STARTED, isCaller });\r\n },\r\n loadChatMessages: (messages: IMessage[]) => (dispatch) => {\r\n dispatch({\r\n type: keys.LOAD_CHAT_MESSAGES,\r\n messages,\r\n });\r\n },\r\n addChatMessage: (message: IMessage) => (dispatch) => {\r\n dispatch(actionCreators.receiveChatMessage(message));\r\n dispatch(fromSignalR.actionCreators.addChatMessage(message));\r\n },\r\n receiveChatMessage:\r\n (message: IMessage, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.RECEIVE_CHAT_MESSAGE,\r\n message,\r\n isCaller,\r\n });\r\n },\r\n loadFormValues: (formValues: IFormValue[]) => (dispatch) => {\r\n dispatch({\r\n type: keys.LOAD_CHAT_FORM_VALUES,\r\n formValues,\r\n });\r\n },\r\n addFormValue: (formValue: IFormValue) => (dispatch) => {\r\n dispatch(actionCreators.receiveFormValue(formValue));\r\n dispatch(fromSignalR.actionCreators.addFormValue(formValue));\r\n },\r\n receiveFormValue:\r\n (formValue: IFormValue, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.RECEIVE_FORM_VALUE,\r\n formValue,\r\n isCaller,\r\n });\r\n },\r\n resetFormValues: () => (dispatch) => {\r\n dispatch(actionCreators.receiveResetFormValues());\r\n dispatch(fromSignalR.actionCreators.resetFormValues());\r\n },\r\n receiveResetFormValues:\r\n (isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({ type: keys.RESET_FORM_VALUES, isCaller });\r\n },\r\n updateCurrentScriptStepId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch(actionCreators.receiveCurrentScriptStepId(id, isCaller));\r\n dispatch(fromSignalR.actionCreators.updateCurrentScriptStepId(id));\r\n },\r\n receiveCurrentScriptStepId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.UPDATE_CHAT_CURRENTSCRIPTSTEPID,\r\n id,\r\n isCaller,\r\n });\r\n },\r\n updateNextScriptStepId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch(actionCreators.receiveNextScriptStepId(id, isCaller));\r\n dispatch(fromSignalR.actionCreators.updateNextScriptStepId(id));\r\n },\r\n receiveNextScriptStepId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.UPDATE_CHAT_NEXTSCRIPTSTEPID,\r\n id,\r\n isCaller,\r\n });\r\n },\r\n updateCurrentUserInputId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch(actionCreators.receiveCurrentUserInputId(id, isCaller));\r\n dispatch(fromSignalR.actionCreators.updateCurrentUserInputId(id));\r\n },\r\n receiveCurrentUserInputId:\r\n (id: string, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.UPDATE_CHAT_CURRENTUSERINPUTID,\r\n id,\r\n isCaller,\r\n });\r\n },\r\n updateUserInputVisibility: (visible: boolean) => (dispatch) => {\r\n dispatch(actionCreators.receiveUserInputVisibility(visible));\r\n dispatch(fromSignalR.actionCreators.updateUserInputVisibility(visible));\r\n },\r\n receiveUserInputVisibility:\r\n (visible: boolean, isCaller: boolean = true) =>\r\n (dispatch) => {\r\n dispatch({\r\n type: keys.UPDATE_CHAT_USERINPUTVISIBILITY,\r\n visible,\r\n isCaller,\r\n });\r\n },\r\n addChatNotificationDot: () => (dispatch) => {\r\n dispatch({ type: keys.ADD_CHAT_NOTIFICATION_DOT });\r\n },\r\n removeChatNotificationDot: () => (dispatch) => {\r\n dispatch({ type: keys.REMOVE_CHAT_NOTIFICATION_DOT });\r\n },\r\n enterBackToWorkTriggerAction: () => (dispatch) => {\r\n dispatch({ type: keys.ENTER_BACKTOWORK_TRIGGER });\r\n },\r\n leaveBackToWorkTriggerAction: () => (dispatch) => {\r\n dispatch({ type: keys.LEAVE_BACKTOWORK_TRIGGER });\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (\r\n state: IInterfaceOverlayState,\r\n action: IKnownAction\r\n) => {\r\n switch (action.type) {\r\n case keys.ENTER_CONTACT_TRIGGER:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n triggerActive: true,\r\n },\r\n };\r\n case keys.LEAVE_CONTACT_TRIGGER:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n triggerActive: false,\r\n },\r\n };\r\n case keys.OPEN_CHAT_MODAL:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n triggerActive: false,\r\n windowOpen: true,\r\n },\r\n };\r\n case keys.CLOSE_CHAT_MODAL:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n triggerActive: false,\r\n windowOpen: false,\r\n },\r\n };\r\n case keys.SET_CHAT_ID:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n chatId: action.id,\r\n },\r\n };\r\n case keys.MARK_CHAT_AS_STARTED:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n chatStarted: true,\r\n active: true,\r\n },\r\n };\r\n case keys.LOAD_CHAT_MESSAGES:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n messages: action.messages,\r\n active: false,\r\n },\r\n };\r\n case keys.RECEIVE_CHAT_MESSAGE:\r\n const existingMessage = state.chatModal.messages.some(\r\n (el) => el.id === action.message.id\r\n );\r\n if (!existingMessage)\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n messages: [...state.chatModal.messages, action.message],\r\n active: action.isCaller,\r\n },\r\n };\r\n else return { ...state };\r\n case keys.LOAD_CHAT_FORM_VALUES:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n formValues: action.formValues,\r\n active: false,\r\n },\r\n };\r\n case keys.RECEIVE_FORM_VALUE:\r\n const existingFormValue = state.chatModal.formValues.some(\r\n (el) => el.id === action.formValue.id\r\n );\r\n if (!existingFormValue)\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n formValues: [...state.chatModal.formValues, action.formValue],\r\n active: action.isCaller,\r\n },\r\n };\r\n else return { ...state };\r\n case keys.RESET_FORM_VALUES:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n formValues: [],\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.UPDATE_CHAT_CURRENTSCRIPTSTEPID:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n currentScriptStepId: action.id,\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.UPDATE_CHAT_NEXTSCRIPTSTEPID:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n nextScriptStepId: action.id,\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.UPDATE_CHAT_CURRENTUSERINPUTID:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n currentUserInputId: action.id,\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.UPDATE_CHAT_USERINPUTVISIBILITY:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n userInputVisible: action.visible,\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.ADD_CHAT_NOTIFICATION_DOT:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n notificationDot: true,\r\n },\r\n };\r\n case keys.REMOVE_CHAT_NOTIFICATION_DOT:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n notificationDot: false,\r\n },\r\n };\r\n case keys.SET_CHAT_ACTIVE_STATE:\r\n return {\r\n ...state,\r\n chatModal: {\r\n ...state.chatModal,\r\n active: action.isCaller,\r\n },\r\n };\r\n case keys.ENTER_BACKTOWORK_TRIGGER:\r\n return {\r\n ...state,\r\n backToWorkTriggerActive: true,\r\n };\r\n case keys.LEAVE_BACKTOWORK_TRIGGER:\r\n return {\r\n ...state,\r\n backToWorkTriggerActive: false,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return (\r\n state || {\r\n chatModal: {\r\n triggerActive: false,\r\n windowOpen: false,\r\n chatId: null,\r\n chatStarted: false,\r\n notificationDot: false,\r\n messages: [],\r\n formValues: [],\r\n currentScriptStepId: null,\r\n nextScriptStepId: null,\r\n currentUserInputId: null,\r\n userInputVisible: true,\r\n active: true,\r\n },\r\n backToWorkTriggerActive: false,\r\n }\r\n );\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst interfaceOverlaySelector = (state: IApplicationState) =>\r\n state.interfaceOverlay;\r\n\r\nconst chatModalSelector = (state: IApplicationState) =>\r\n interfaceOverlaySelector(state).chatModal;\r\nexport const getChatModalTrigger = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.triggerActive;\r\n }\r\n);\r\nexport const getChatModalWindow = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.windowOpen;\r\n }\r\n);\r\nexport const getChatModalId = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.chatId;\r\n }\r\n);\r\nexport const getChatModalStarted = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.chatStarted;\r\n }\r\n);\r\nexport const getChatModalMessages = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.messages;\r\n }\r\n);\r\nexport const getChatModalFormValues = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.formValues;\r\n }\r\n);\r\nexport const getChatModalCurrentScriptStepId = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.currentScriptStepId;\r\n }\r\n);\r\nexport const getChatModalNextScriptStepId = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.nextScriptStepId;\r\n }\r\n);\r\nexport const getChatModalCurrentUserInputId = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.currentUserInputId;\r\n }\r\n);\r\nexport const getChatModalUserInputVisible = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.userInputVisible;\r\n }\r\n);\r\nexport const getChatModalNotificationDot = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.notificationDot;\r\n }\r\n);\r\nexport const getChatActive = createSelector(\r\n [chatModalSelector],\r\n (chatModal) => {\r\n //console.log(\"Output selector running: getContactTrigger\");\r\n return chatModal.active;\r\n }\r\n);\r\n\r\nconst backToWorkTriggerActiveSelector = (state: IApplicationState) =>\r\n interfaceOverlaySelector(state).backToWorkTriggerActive;\r\nexport const getBackToWorkTrigger = createSelector(\r\n [backToWorkTriggerActiveSelector],\r\n (backToWorkTriggerActive) => {\r\n //console.log(\"Output selector running: getBackToWorkTrigger\");\r\n return backToWorkTriggerActive;\r\n }\r\n);\r\n","module.exports = (__webpack_require__(8))(783);","//import 'babel-polyfill';\r\nimport { Reducer } from 'redux';\r\nimport { IApplicationState } from './index';\r\n\r\nimport * as fromPageScroll from 'store/PageScroll';\r\n\r\nimport { createSelector } from 'reselect';\r\nimport InPageNavigation from '../components/InterfaceOverlay/InPageNavigation/InPageNavigation';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface INavigation {\r\n title: string;\r\n scrollTop: number;\r\n height: number;\r\n}\r\n\r\nexport interface IInPageNavigationState {\r\n scrollToSectionNumber: number;\r\n showSectionLabels: boolean;\r\n currentSectionNumber: number;\r\n hoverOverSectionNumber: number;\r\n totalSectionsNumber: number;\r\n navigationArray: INavigation[];\r\n visible: boolean;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n SHOW_NAV = 'SHOW_NAV',\r\n HIDE_NAV = 'HIDE_NAV',\r\n SHOW_SECTION_LABELS = 'SHOW_SECTION_LABELS',\r\n HIDE_SECTION_LABELS = 'HIDE_SECTION_LABELS',\r\n SCROLL_TO_SECTION_NUMBER = 'SCROLL_TO_SECTION_NUMBER',\r\n UPDATE_HOVERING_SECTION_NUMBER = 'UPDATE_HOVERING_SECTION_NUMBER',\r\n UPDATE_TOTAL_SECTIONS_NUMBER = 'UPDATE_TOTAL_SECTIONS_NUMBER',\r\n UPDATE_NAVIGATION_ARRAY = 'UPDATE_NAVIGATION_ARRAY',\r\n UPDATE_NAVIGATION_BAR_ARRAY = 'UPDATE_NAVIGATION_BAR_ARRAY',\r\n SET_CURRENT_SECTION_NUMBER = 'SET_CURRENT_SECTION_NUMBER',\r\n DEFAULT_ACTION = 'DEFAULT_ACTION', // This is needed otherwise the reducer has a problem for some reason\r\n}\r\n\r\ninterface IShowNav { type: keys.SHOW_NAV; }\r\ninterface IHideNav { type: keys.HIDE_NAV; }\r\ninterface IShowSectionsLabels { type: keys.SHOW_SECTION_LABELS; }\r\ninterface IHideSectionsLabels { type: keys.HIDE_SECTION_LABELS; }\r\ninterface IScrollToSectionNumberAction {\r\n type: keys.SCROLL_TO_SECTION_NUMBER;\r\n number: number;\r\n}\r\ninterface IUpdateHoveringSectionNumberAction {\r\n type: keys.UPDATE_HOVERING_SECTION_NUMBER;\r\n number: number;\r\n}\r\ninterface IUpdateTotalSectionsNumberAction {\r\n type: keys.UPDATE_TOTAL_SECTIONS_NUMBER;\r\n number: number;\r\n}\r\ninterface IUpdateNavigationArrayAction {\r\n type: keys.UPDATE_NAVIGATION_ARRAY;\r\n navigationArray: INavigation[];\r\n}\r\ninterface ISetCurrentSectionNumberAction {\r\n type: keys.SET_CURRENT_SECTION_NUMBER;\r\n number: number;\r\n}\r\ninterface IDefaultAction { type: keys.DEFAULT_ACTION; }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n IScrollToSectionNumberAction\r\n | IShowNav\r\n | IHideNav\r\n | IShowSectionsLabels\r\n | IHideSectionsLabels\r\n | IUpdateHoveringSectionNumberAction\r\n | IUpdateTotalSectionsNumberAction\r\n | IUpdateNavigationArrayAction\r\n | ISetCurrentSectionNumberAction\r\n | IDefaultAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nlet hideSectionLabelTimeout;\r\nlet changeSectionHoverLabelTimeout;\r\n\r\nexport const actionCreators = {\r\n showNavAction: () => dispatch => dispatch({ type: keys.SHOW_NAV }),\r\n hideNavAction: () => dispatch => dispatch({ type: keys.HIDE_NAV }),\r\n showSectionLabelsAction: () => dispatch => {\r\n clearTimeout(hideSectionLabelTimeout);\r\n dispatch({ type: keys.SHOW_SECTION_LABELS });\r\n },\r\n hideSectionLabelsAction: () => dispatch => {\r\n hideSectionLabelTimeout = setTimeout(() => {\r\n dispatch({ type: keys.HIDE_SECTION_LABELS });\r\n }, 500);\r\n },\r\n scrollToSectionNumberAction: (section: number) => dispatch => {\r\n dispatch({\r\n type: keys.SCROLL_TO_SECTION_NUMBER,\r\n number: section,\r\n });\r\n },\r\n updateHoveringSectionNumberAction: (section: number) => dispatch => {\r\n clearTimeout(changeSectionHoverLabelTimeout);\r\n\r\n let timeoutDelay = 0;\r\n if (section === 0)\r\n timeoutDelay = 500;\r\n\r\n changeSectionHoverLabelTimeout = setTimeout(() => {\r\n dispatch({\r\n type: keys.UPDATE_HOVERING_SECTION_NUMBER,\r\n number: section,\r\n });\r\n }, timeoutDelay);\r\n },\r\n updateTotalSectionsNumberAction: (section: number) => dispatch => {\r\n dispatch({\r\n type: keys.UPDATE_TOTAL_SECTIONS_NUMBER,\r\n number: section,\r\n });\r\n },\r\n updateNavigationArrayAction: (navigationArray: INavigation[]) => dispatch => {\r\n dispatch({\r\n type: keys.UPDATE_NAVIGATION_ARRAY,\r\n navigationArray,\r\n });\r\n },\r\n setCurrentSectionNumberAction: (section: number) => dispatch => {\r\n dispatch({\r\n type: keys.SET_CURRENT_SECTION_NUMBER,\r\n number: section,\r\n });\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: IInPageNavigationState, action: IKnownAction) => {\r\n switch (action.type) {\r\n case keys.SHOW_NAV:\r\n return {\r\n ...state,\r\n visible: true,\r\n };\r\n case keys.HIDE_NAV:\r\n return {\r\n ...state,\r\n visible: false,\r\n };\r\n case keys.SHOW_SECTION_LABELS:\r\n return {\r\n ...state,\r\n showSectionLabels: true,\r\n };\r\n case keys.HIDE_SECTION_LABELS:\r\n return {\r\n ...state,\r\n showSectionLabels: false,\r\n };\r\n case keys.SCROLL_TO_SECTION_NUMBER:\r\n return {\r\n ...state,\r\n scrollToSectionNumber: action.number,\r\n };\r\n case keys.UPDATE_HOVERING_SECTION_NUMBER:\r\n return {\r\n ...state,\r\n hoverOverSectionNumber: action.number,\r\n };\r\n case keys.UPDATE_TOTAL_SECTIONS_NUMBER:\r\n return {\r\n ...state,\r\n totalSectionsNumber: action.number,\r\n };\r\n case keys.UPDATE_NAVIGATION_ARRAY:\r\n return {\r\n ...state,\r\n navigationArray: action.navigationArray,\r\n };\r\n case keys.SET_CURRENT_SECTION_NUMBER:\r\n return {\r\n ...state,\r\n currentSectionNumber: action.number,\r\n };\r\n case keys.DEFAULT_ACTION:\r\n return {\r\n ...state,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return state || {\r\n scrollToSectionNumber: -1,\r\n showSectionLabels: false,\r\n currentSectionNumber: 0,\r\n hoverOverSectionNumber: 0,\r\n totalSectionsNumber: 0,\r\n navigationArray: [],\r\n visible: false,\r\n };\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst inPageNavigationSelector = (state: IApplicationState) => state.inPageNavigation;\r\n\r\nconst visibleSelector = (state: IApplicationState) => inPageNavigationSelector(state).visible;\r\nexport const getVisibility = createSelector( [visibleSelector], visible => visible );\r\n\r\nconst scrollToSectionNumberSelector = (state: IApplicationState) => inPageNavigationSelector(state).scrollToSectionNumber;\r\nexport const getScrollToSectionNumber = createSelector(\r\n [scrollToSectionNumberSelector],\r\n scrollToSectionNumber => {\r\n //console.log(\"Output selector running: getScrollToSectionNumber\");\r\n return scrollToSectionNumber;\r\n },\r\n);\r\n\r\nconst showSectionLabelsSelector = (state: IApplicationState) => inPageNavigationSelector(state).showSectionLabels;\r\nexport const getShowSectionLabels = createSelector(\r\n [showSectionLabelsSelector],\r\n showSectionLabels => {\r\n //console.log(\"Output selector running: getShowSectionLabels\");\r\n return showSectionLabels;\r\n },\r\n);\r\n\r\nconst currentSectionNumberSelector = (state: IApplicationState) => inPageNavigationSelector(state).currentSectionNumber;\r\nexport const getCurrentSectionNumber = createSelector(\r\n [currentSectionNumberSelector],\r\n currentSectionNumber => {\r\n //console.log(\"Output selector running: getCurrentSectionNumber\");\r\n return currentSectionNumber;\r\n },\r\n);\r\n\r\nconst hoverOverSectionNumberSelector = (state: IApplicationState) => inPageNavigationSelector(state).hoverOverSectionNumber;\r\nexport const getHoverOverSectionNumber = createSelector(\r\n [hoverOverSectionNumberSelector],\r\n hoverOverSectionNumber => {\r\n //console.log(\"Output selector running: getHoverOverSectionNumber\");\r\n return hoverOverSectionNumber;\r\n },\r\n);\r\n\r\nconst totalSectionsNumberSelector = (state: IApplicationState) => inPageNavigationSelector(state).totalSectionsNumber;\r\nexport const getTotalSectionsNumber = createSelector(\r\n [totalSectionsNumberSelector],\r\n totalSectionsNumber => {\r\n //console.log(\"Output selector running: getTotalSectionsNumber\");\r\n return totalSectionsNumber;\r\n },\r\n);\r\n\r\nconst navigationArraySelector = (state: IApplicationState) => inPageNavigationSelector(state).navigationArray;\r\nexport const getNavigationArray = createSelector(\r\n [navigationArraySelector],\r\n navigationArray => {\r\n //console.log(\"Output selector running: getNavigationArray\");\r\n return navigationArray;\r\n },\r\n);\r\n","import { Reducer } from \"redux\";\r\nimport { IApplicationState } from \"./index\";\r\n\r\nimport { createSelector } from \"reselect\";\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface IPageScrollState {\r\n top: number;\r\n enabled: boolean;\r\n wasEnabledBefore: boolean;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n UPDATE_PAGE_SCROLL_TOP = \"UPDATE_PAGE_SCROLL_TOP\",\r\n RECORD_PAGE_SCROLL_TOP_AND_DISABLE = \"RECORD_PAGE_SCROLL_TOP_AND_DISABLE\",\r\n ENABLE_PAGE_SCROLL = \"ENABLE_PAGE_SCROLL\",\r\n RESTORE_PAGE_SCROLL = \"RESTORE_PAGE_SCROLL\",\r\n DISABLE_PAGE_SCROLL = \"DISABLE_PAGE_SCROLL\",\r\n DISABLE_RECORD_PAGE_SCROLL = \"DISABLE_RECORD_PAGE_SCROLL\",\r\n}\r\n\r\ninterface IUpdatePageScrollTopAction {\r\n type: keys.UPDATE_PAGE_SCROLL_TOP;\r\n scrollTop: number;\r\n}\r\ninterface IRecordPageScrollTopAndDisableAction {\r\n type: keys.RECORD_PAGE_SCROLL_TOP_AND_DISABLE;\r\n scrollTop: number;\r\n}\r\ninterface IEnablePageScrollAction {\r\n type: keys.ENABLE_PAGE_SCROLL;\r\n}\r\ninterface IRestorePageScrollAction {\r\n type: keys.RESTORE_PAGE_SCROLL;\r\n}\r\ninterface IDisablePageScrollAction {\r\n type: keys.DISABLE_PAGE_SCROLL;\r\n}\r\ninterface IDisableRecordPageScrollAction {\r\n type: keys.DISABLE_RECORD_PAGE_SCROLL;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n | IUpdatePageScrollTopAction\r\n | IRecordPageScrollTopAndDisableAction\r\n | IEnablePageScrollAction\r\n | IRestorePageScrollAction\r\n | IDisableRecordPageScrollAction\r\n | IDisablePageScrollAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const actionCreators = {\r\n restorePageScroll: () => (dispatch) => {\r\n dispatch({ type: keys.RESTORE_PAGE_SCROLL });\r\n },\r\n enablePageScroll: () => (dispatch) => {\r\n dispatch({ type: keys.ENABLE_PAGE_SCROLL });\r\n },\r\n disablePageScroll:\r\n (recordPageScroll: boolean = true) =>\r\n (dispatch) => {\r\n if (recordPageScroll) {\r\n const scrollTop = typeof window !== \"undefined\" ? window.scrollY : 0;\r\n dispatch({ type: keys.RECORD_PAGE_SCROLL_TOP_AND_DISABLE, scrollTop });\r\n //dispatch({ type: keys.UPDATE_PAGE_SCROLL_TOP, scrollTop });\r\n //dispatch({ type: keys.DISABLE_RECORD_PAGE_SCROLL });\r\n } else dispatch({ type: keys.DISABLE_PAGE_SCROLL });\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (\r\n state: IPageScrollState,\r\n action: IKnownAction\r\n) => {\r\n switch (action.type) {\r\n case keys.UPDATE_PAGE_SCROLL_TOP:\r\n return {\r\n ...state,\r\n top: action.scrollTop,\r\n };\r\n case keys.RECORD_PAGE_SCROLL_TOP_AND_DISABLE:\r\n return {\r\n ...state,\r\n top: action.scrollTop,\r\n enabled: false,\r\n wasEnabledBefore: state.enabled,\r\n };\r\n case keys.ENABLE_PAGE_SCROLL:\r\n return {\r\n ...state,\r\n enabled: true,\r\n };\r\n case keys.RESTORE_PAGE_SCROLL:\r\n return {\r\n ...state,\r\n enabled: state.wasEnabledBefore,\r\n };\r\n case keys.DISABLE_RECORD_PAGE_SCROLL:\r\n return {\r\n ...state,\r\n enabled: false,\r\n wasEnabledBefore: state.enabled,\r\n };\r\n case keys.DISABLE_PAGE_SCROLL:\r\n return {\r\n ...state,\r\n enabled: false,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return (\r\n state || {\r\n top: null,\r\n enabled: true,\r\n wasEnabledBefore: true,\r\n }\r\n );\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst pageScrollSelector = (state: IApplicationState) => state.pageScroll;\r\n\r\nexport const getPageScroll = createSelector(\r\n [pageScrollSelector],\r\n (pageScroll) => {\r\n //console.log(\"Output selector running: getPageScroll\");\r\n return pageScroll;\r\n }\r\n);\r\n\r\nconst pageScrollTopSelector = (state: IApplicationState) =>\r\n pageScrollSelector(state).top;\r\nexport const getTop = createSelector([pageScrollTopSelector], (top) => {\r\n //console.log(\"Output selector running: getTop\");\r\n return top;\r\n});\r\n\r\nconst pageScrollEnabledSelector = (state: IApplicationState) =>\r\n pageScrollSelector(state).enabled;\r\nexport const getEnabled = createSelector(\r\n [pageScrollEnabledSelector],\r\n (pageScrollEnabled) => {\r\n //console.log(\"Output selector running: getEnabled\");\r\n return pageScrollEnabled;\r\n }\r\n);\r\n\r\nconst wasEnabledBeforeSelector = (state: IApplicationState) =>\r\n pageScrollSelector(state).wasEnabledBefore;\r\nexport const getWasEnabledBefore = createSelector(\r\n [wasEnabledBeforeSelector],\r\n (wasEnabledBefore) => {\r\n //console.log(\"Output selector running: getWasEnabledBefore\");\r\n return wasEnabledBefore;\r\n }\r\n);\r\n\r\nexport const getPageOffset = createSelector(\r\n [getEnabled, getTop],\r\n (enabled, top) => {\r\n //console.log(\"Output selector running: getPageOffset\");\r\n return !enabled ? top : 0;\r\n }\r\n);\r\n","import React, { useState, useCallback, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport { useSpring, a, SpringConfig, to, SpringValue } from '@react-spring/web';\r\nimport { defaultSpringConfig } from 'components/Animations/SpringProperties/SpringProperties';\r\n\r\nimport * as fromUserInterface from 'store/UserInterface';\r\n\r\nimport { useLatest } from 'utils/Index';\r\nimport classNames from 'classnames';\r\n\r\ninterface IProps {\r\n backgroundImage: string;\r\n persist: boolean;\r\n animateOut: boolean;\r\n}\r\n\r\nconst LogomarkSlideComponent: React.FC = ({ animateOut, persist, backgroundImage, ...props }) => {\r\n const interfaceInitialised = useSelector(fromUserInterface.getInitialised);\r\n const dispatch = useDispatch();\r\n const markInterfaceAsInitialised = useCallback(() => dispatch(fromUserInterface.actionCreators.markAsInitialised()), [dispatch]);\r\n\r\n const [animate, setAnimate] = useState(false);\r\n const [active, setActive] = useState(true);\r\n\r\n useEffect(() => {\r\n setAnimate(true);\r\n }, []);\r\n\r\n const latestPersist = useLatest(persist);\r\n\r\n const removeSlide = () => {\r\n if (!interfaceInitialised) markInterfaceAsInitialised();\r\n if (!latestPersist) {\r\n //console.log('no persist');\r\n setActive(false);\r\n } else {\r\n //console.log('persist');\r\n }\r\n };\r\n\r\n const commonSpringConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 170,\r\n friction: 27,\r\n };\r\n\r\n const opacitySpringConfig: SpringConfig = {\r\n ...commonSpringConfig,\r\n tension: 200,\r\n friction: 36,\r\n };\r\n\r\n const animateInSpringConfig: SpringConfig = {\r\n ...commonSpringConfig,\r\n tension: 120,\r\n friction: 36,\r\n };\r\n\r\n const animateOutSpringConfig: SpringConfig = {\r\n ...commonSpringConfig,\r\n tension: 170,\r\n friction: 28,\r\n };\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({\r\n active: 100,\r\n config: animateInSpringConfig,\r\n onChange: {\r\n active: result => springOnChange(result),\r\n },\r\n }));\r\n const [opacitySpring, setOpacitySpring] = useSpring(() => ({\r\n opacity: 0,\r\n config: opacitySpringConfig,\r\n }));\r\n\r\n const springOnChange = (result: any) => result === 0 ? removeSlide() : null;\r\n\r\n useEffect(() => {\r\n setAnimateInSpring({ active: animate ? 0 : 100, immediate: !interfaceInitialised });\r\n setOpacitySpring({ opacity: 1, immediate: interfaceInitialised });\r\n }, [animate, interfaceInitialised]);\r\n\r\n const [animateOutSpring, setAnimateOutSpring] = useSpring(() => ({\r\n active: 1,\r\n config: animateOutSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setAnimateOutSpring({ active: animateOut && (animateInSpring.active.get() < 10) ? 0.85 : 1 });\r\n }, [animateOut, animateInSpring]);\r\n\r\n const backgroundOverlayStyles = {\r\n opacity: opacitySpring.opacity,\r\n backgroundColor: (backgroundImage == null ? '#fff' : null),\r\n clipPath: animateInSpring.active.to(y => `polygon(100% ${y}%, 100% 100%, 0% 100%, 0% ${y}%)`),\r\n willChange: `clip-path`,\r\n };\r\n\r\n const backgroundImageStyles = {\r\n transform: to(\r\n [animateInSpring.active, animateOutSpring.active],\r\n (pos, scale) => `translateY(${((pos / 100) * 6) - 3}%) scale(${scale}, ${scale})`,\r\n ),\r\n //willChange: `transform`,\r\n };\r\n\r\n if (active)\r\n return (\r\n \r\n \r\n \r\n );\r\n else\r\n return null;\r\n};\r\n\r\nexport const LogomarkSlide = LogomarkSlideComponent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport { useSpring, a, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport { LogomarkSlide } from \"./LogomarkSlide\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\n\r\nimport { useTimeout, useInterval, useLatest } from \"utils/Index\";\r\n\r\ninterface IOwnSpecificProps {\r\n finalBackgroundImage: string;\r\n endContentAnimation: boolean;\r\n endedContentAnimation(): any;\r\n hideLoadingScreen(): any;\r\n}\r\n\r\ntype IProps = IOwnSpecificProps;\r\n\r\ninterface ILogomarkSlide {\r\n backgroundImage: string;\r\n persist: boolean;\r\n animateOut: boolean;\r\n}\r\n\r\nconst Content: React.FC = ({\r\n finalBackgroundImage,\r\n endContentAnimation,\r\n ...props\r\n}) => {\r\n const interfaceInitialised = useSelector(fromUserInterface.getInitialised);\r\n\r\n const [logomarkSlides, setLogomarkSlides] = useState([]);\r\n const [transitionEnd, setTransitionEnd] = useState(false);\r\n const [animationDelay] = useState(250);\r\n const [slideInDelay] = useState(250);\r\n const [slideOutDelay] = useState(0);\r\n const [screenAnimateOutDelay] = useState(500);\r\n const [backgroundImages, setBackgroundImages] = useState([]);\r\n const [animateIn, setAnimateIn] = useState(false);\r\n\r\n useEffect(() => {\r\n if (backgroundImages.length === 0) {\r\n const newBackgroundImages: string[] = [];\r\n //console.log(this.props.projectContentBackgrounds);\r\n newBackgroundImages.push(\"/assets/images/logomarkBackground.jpg\");\r\n setBackgroundImages(newBackgroundImages);\r\n }\r\n }, [backgroundImages]);\r\n\r\n useEffect(() => {\r\n startContentAnimation();\r\n }, []);\r\n\r\n const latestEndContentAnimation = useLatest(endContentAnimation);\r\n const latestLogomarkSlides = useLatest(logomarkSlides);\r\n const latestBackgroundImages = useLatest(backgroundImages);\r\n const latestFinalBackgroundImage = useLatest(finalBackgroundImage);\r\n\r\n const [triggerSlideInterval, setTriggerSlideInterval] = useState(false);\r\n useInterval(\r\n () => {\r\n if (latestEndContentAnimation.current) {\r\n triggerEndOfContentAnimation();\r\n } else {\r\n triggerNextSlide();\r\n }\r\n },\r\n triggerSlideInterval ? animationDelay : null\r\n );\r\n\r\n const [triggerSlideTimeout, setTriggerSlideTimeout] = useState(false);\r\n useTimeout(\r\n () => {\r\n setTriggerSlideTimeout(false);\r\n triggerNextSlide();\r\n setTriggerSlideInterval(true);\r\n },\r\n triggerSlideTimeout ? slideInDelay : null\r\n );\r\n\r\n const startContentAnimation = () => {\r\n setTransitionEnd(false);\r\n triggerNextSlide();\r\n setTriggerSlideTimeout(true);\r\n };\r\n\r\n const generateUniqueSlideIndex = () => {\r\n const localBackgroundImages: string[] =\r\n latestBackgroundImages.current.filter(\r\n (image) =>\r\n image !==\r\n latestLogomarkSlides.current[latestLogomarkSlides.current.length - 1]\r\n .backgroundImage\r\n );\r\n\r\n const newSlideIndex: number = Math.floor(\r\n Math.random() * localBackgroundImages.length\r\n );\r\n const newBackgroundImage = localBackgroundImages[newSlideIndex];\r\n return newBackgroundImage;\r\n };\r\n\r\n const triggerNextSlide = (\r\n backgroundImage: string = null,\r\n persistSlide: boolean = false\r\n ) => {\r\n const newLogomarkSlides = [...latestLogomarkSlides.current];\r\n\r\n const previousSlideIndex = newLogomarkSlides.length - 1;\r\n\r\n if (previousSlideIndex > -1)\r\n newLogomarkSlides[previousSlideIndex].animateOut = true;\r\n\r\n let newBackgroundImage: string = \"\";\r\n\r\n if (backgroundImage === \"start\") newBackgroundImage = null;\r\n else {\r\n if (backgroundImage != null) {\r\n newBackgroundImage = \"/assets/images/\" + backgroundImage;\r\n } else newBackgroundImage = generateUniqueSlideIndex();\r\n }\r\n\r\n newLogomarkSlides.push({\r\n backgroundImage: newBackgroundImage,\r\n persist: persistSlide,\r\n animateOut: false,\r\n });\r\n\r\n setLogomarkSlides(newLogomarkSlides);\r\n setAnimateIn(true);\r\n };\r\n\r\n const [triggerHideLoadingScreenTimeout, setTriggerHideLoadingScreenTimeout] =\r\n useState(false);\r\n useTimeout(\r\n () => {\r\n setTriggerHideLoadingScreenTimeout(false);\r\n props.hideLoadingScreen();\r\n },\r\n triggerHideLoadingScreenTimeout ? screenAnimateOutDelay : null\r\n );\r\n\r\n const [triggerSlideEndTimeout, setTriggerSlideEndTimeout] = useState(false);\r\n useTimeout(\r\n () => {\r\n setTriggerSlideEndTimeout(false);\r\n setTransitionEnd(true);\r\n setTriggerHideLoadingScreenTimeout(true);\r\n },\r\n triggerSlideEndTimeout ? slideOutDelay : null\r\n );\r\n\r\n const triggerEndOfContentAnimation = () => {\r\n setTriggerSlideInterval(false);\r\n triggerNextSlide(latestFinalBackgroundImage.current, true);\r\n setTriggerSlideEndTimeout(true);\r\n };\r\n\r\n const signalEndOfContentAnimation = () => {\r\n props.endedContentAnimation();\r\n setAnimateIn(false);\r\n };\r\n\r\n const animateInSpringConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 340,\r\n friction: 57,\r\n };\r\n\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({\r\n y: 0,\r\n immediate: false,\r\n config: animateInSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setAnimateInSpring({\r\n y: animateIn ? 100 : 0,\r\n immediate: !interfaceInitialised ? true : animateIn ? false : true,\r\n });\r\n }, [animateIn]);\r\n\r\n const animateOutSpringConfig: SpringConfig = {\r\n ...animateInSpringConfig,\r\n tension: 250,\r\n };\r\n\r\n const [animateOutSpring, setAnimateOutSpring] = useSpring(() => ({\r\n y: 100,\r\n config: animateOutSpringConfig,\r\n // onChange: {\r\n // y: value => onChange(value),\r\n // },\r\n onRest: {\r\n y: (value) => onRest(value),\r\n },\r\n }));\r\n\r\n const onChange = (value) => {\r\n if (value >= 0 && value < 0.000001) signalEndOfContentAnimation();\r\n };\r\n\r\n const onRest = (value) => {\r\n if (value === 0) signalEndOfContentAnimation();\r\n };\r\n\r\n useEffect(() => {\r\n setAnimateOutSpring({ y: transitionEnd ? 0 : 100 });\r\n setOpacitySpring({ opacity: transitionEnd ? 0 : 1 });\r\n }, [transitionEnd]);\r\n\r\n const [opacitySpring, setOpacitySpring] = useSpring(() => ({\r\n opacity: 1,\r\n config: animateOutSpringConfig,\r\n }));\r\n\r\n const logomarkContainerStyles = {\r\n opacity: opacitySpring.opacity,\r\n height: animateOutSpring.y.to((y) => `${y}%`),\r\n willChange: `height`,\r\n };\r\n\r\n const imageStyles = {\r\n height: animateInSpring.y.to((y) => `${y}%`),\r\n top: transitionEnd ? 0 : \"auto\",\r\n bottom: transitionEnd ? \"auto\" : 0,\r\n backgroundPosition: transitionEnd ? \"top center\" : \"bottom center\",\r\n willChange: `height`,\r\n };\r\n\r\n const logomarkSlidesComponents = logomarkSlides.map(\r\n (logomarkSlide, index) => {\r\n return (\r\n \r\n );\r\n }\r\n );\r\n\r\n return (\r\n \r\n
\r\n {logomarkSlidesComponents}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Content;\r\n","import React, { useState, useCallback, useEffect, useRef, useLayoutEffect, Fragment } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport * as fromUserInterface from 'store/UserInterface';\r\n\r\nimport { useSpring, a, SpringConfig } from '@react-spring/web';\r\n\r\nimport Content from './Content/Content';\r\n\r\nimport { useLatest, getPixelRatio } from 'utils/Index';\r\n\r\ninterface IOwnProps {\r\n id: string;\r\n}\r\n\r\ntype IProps = IOwnProps & fromUserInterface.ILoadingScreen;\r\n\r\nconst Screen: React.FC = ({ id, visible, logomarkBackground, ...props }) => {\r\n const interfaceInitialised = useSelector(fromUserInterface.getInitialised);\r\n const loadingScreens = useSelector(fromUserInterface.getLoadingScreens);\r\n const dispatch = useDispatch();\r\n const removeLoadingScreen = useCallback((screenId: string) => dispatch(fromUserInterface.actionCreators.removeLoadingScreen(screenId)), [dispatch]);\r\n const animateInPage = useCallback((pageId: string) => dispatch(fromUserInterface.actionCreators.animateInPage(pageId)), [dispatch]);\r\n\r\n const latestLoadingScreens = useLatest(loadingScreens);\r\n\r\n const [animatedIn, setAnimatedIn] = useState(false);\r\n const [animateContent, setAnimateContent] = useState(true);\r\n const [endContentAnimation, setEndContentAnimation] = useState(false);\r\n\r\n // 1. Animate in the loading screen on component mount\r\n const [animateSpring, setAnimateSpring] = useSpring(() => ({\r\n y: 0,\r\n from: { y: 1 },\r\n onChange: {\r\n y: value => onChange(value),\r\n },\r\n immediate: !interfaceInitialised, // If the interface hasn't been initialised it means its a new hard load from the server, so we want to show the loading screen immediately\r\n }));\r\n\r\n // 2. This triggers the content to animate out which will then trigger the screen to animate out once it's finished\r\n useEffect(() => {\r\n if (animatedIn && !visible) {\r\n setEndContentAnimation(true);\r\n }\r\n }, [animatedIn, visible]);\r\n\r\n // 3. Trigger the loading screen to animate out from the content itself\r\n const hideLoadingScreenFromContent = () => {\r\n setAnimateSpring({ y: -1, immediate: false });\r\n\r\n // This will prevent animating pages in before last loading screen has animated out\r\n if (Object.keys(latestLoadingScreens.current).length === 1)\r\n animateInPage(Object.keys(latestLoadingScreens.current)[0]);\r\n };\r\n\r\n // If the screen has been animated in mark it as animated in, if the loading screen has been animated out then remove this loading screen from the store completely\r\n const onChange = value => {\r\n if (value >= 0 && value < 0.000001)\r\n setAnimatedIn(true);\r\n else if (value >= -1 && value < -0.999999)\r\n removeLoadingScreen(id);\r\n };\r\n\r\n // This will run once the content has completely animated out and remove the component from the interface\r\n const endedContentAnimation = () => {\r\n setAnimateContent(false);\r\n setEndContentAnimation(false);\r\n };\r\n\r\n const screenStyles = {\r\n transform: animateSpring.y.to(y => `translateY(${100 * y}vh)`),\r\n };\r\n\r\n const contentProps = {\r\n finalBackgroundImage: logomarkBackground,\r\n endContentAnimation,\r\n endedContentAnimation,\r\n hideLoadingScreen: hideLoadingScreenFromContent,\r\n };\r\n\r\n const contentWrapperStyles = {\r\n display: animateContent ? 'block' : 'none',\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n {(animateContent ? : null)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Screen;\r\n","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport * as fromUserInterface from 'store/UserInterface';\r\n\r\nimport Screen from './Screen';\r\n\r\nconst LoadingScreen: React.FC<{}> = () => {\r\n const loadingScreens = useSelector(fromUserInterface.getLoadingScreens);\r\n\r\n return (\r\n
\r\n {Object.keys(loadingScreens).map(id => {\r\n return ;\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default LoadingScreen;\r\n","import React, {\r\n useState,\r\n useEffect,\r\n useCallback,\r\n useLayoutEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { useLocation, matchPath } from \"react-router-dom\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { useSpring, a, SpringConfig, to } from \"@react-spring/web\";\r\nimport { useInertialSpring } from \"hooks/useInertialSpring\";\r\nimport { useGesture } from \"react-use-gesture\";\r\nimport { DragConfig, FullGestureState } from \"react-use-gesture/dist/types\";\r\nimport { IDraggableBounds } from \"hooks/useDraggable\";\r\nimport { useDisabledScrollWidth } from \"hooks/useDisabledScrollWidth\";\r\n\r\nimport * as fromMainNavigation from \"store/MainNavigation\";\r\nimport * as fromInterfaceOverlay from \"store/InterfaceOverlay\";\r\n\r\nimport { SimpleLink } from \"components/Links/Index\";\r\nimport { ButtonLink } from \"components/Links/Index\";\r\n\r\nimport { useAnimateInTrail } from \"hooks/useAnimateInTrail\";\r\nimport {\r\n initialOffset,\r\n defaultSpringConfig,\r\n animationTriggerThreshold,\r\n} from \"components/Animations/SpringProperties/SpringProperties\";\r\nimport { mapObject, getPixelRatio, useLatest, usePrevious } from \"utils/Index\";\r\n\r\nexport interface INavAnimationOpacity {\r\n opacity: number;\r\n variance: number;\r\n topBoundaryDistance: number;\r\n bottomBoundaryDistance: number;\r\n animationFrameSpeed: number;\r\n animationStartFrame: number;\r\n targetOpacity: number;\r\n totalOpacity: number;\r\n}\r\n\r\nexport interface INavAnimationItem {\r\n type: string;\r\n x: number;\r\n y: number;\r\n changeX: number;\r\n changeY: number;\r\n angle: number;\r\n section: INavAnimationOpacity[];\r\n totalOpacity: number;\r\n}\r\n\r\nconst NavMenu: React.FC<{}> = (props) => {\r\n const location = useLocation();\r\n\r\n const [animateIn, setAnimateIn] = useState(false);\r\n\r\n const navMenu = useSelector(fromMainNavigation.getNavMenuProps);\r\n const latestNavMenuOpen = useLatest(navMenu.open);\r\n const areasById = useSelector(fromMainNavigation.getAreasById);\r\n const areasAmount = useSelector(fromMainNavigation.getAreasAmount);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const markNavMenuLoadedAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.markNavMenuLoadedAction()),\r\n [dispatch]\r\n );\r\n\r\n const hideNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.hideNavMenuAction()),\r\n [dispatch]\r\n );\r\n\r\n const showNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.showNavMenuAction()),\r\n [dispatch]\r\n );\r\n\r\n const handleMainNavClickAction = useCallback(\r\n (linkId: number) =>\r\n dispatch(\r\n fromMainNavigation.actionCreators.handleMainNavClickAction(linkId)\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const openChatModalAction = useCallback(\r\n () => dispatch(fromInterfaceOverlay.actionCreators.openChatModalAction()),\r\n [dispatch]\r\n );\r\n const chatModalOpen = useSelector(fromInterfaceOverlay.getChatModalWindow);\r\n\r\n const handleTriggerMouseClick = () => {\r\n if (!chatModalOpen) {\r\n hideNavMenuAction();\r\n openChatModalAction();\r\n }\r\n };\r\n\r\n const navMenuRef = useRef(null);\r\n const canvasRef = useRef(null);\r\n\r\n const [navMenuWidth, setNavMenuWidth] = useState(400);\r\n const [navMenuHeight, setNavMenuHeight] = useState(0);\r\n const latestNavMenuHeight = useLatest(navMenuHeight);\r\n const previousNavMenuHeight = usePrevious(navMenuHeight);\r\n\r\n const updateMenuDimensions = () => {\r\n const navMenuProps = navMenuRef.current.getBoundingClientRect();\r\n setNavMenuHeight(navMenuProps.height);\r\n setNavMenuWidth(navMenuProps.width);\r\n };\r\n\r\n useLayoutEffect(() => {\r\n markNavMenuLoadedAction();\r\n updateMenuDimensions();\r\n\r\n // Setup event listeners on initial mount to keep the dimensions of the menu updated\r\n window.addEventListener(\"resize\", updateMenuDimensions);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", updateMenuDimensions);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (previousNavMenuHeight !== undefined) {\r\n const oldRange =\r\n previousNavMenuHeight !== undefined ? previousNavMenuHeight : 100;\r\n if (\r\n navMenuHeight !== previousNavMenuHeight &&\r\n navMenuHeight !== 0 &&\r\n previousNavMenuHeight !== 0\r\n ) {\r\n const currentXPosition = openMenuYPosition.get();\r\n const percentageXPosition = currentXPosition / oldRange;\r\n setOpenMenuYPosition({\r\n y: percentageXPosition * navMenuHeight,\r\n from: {\r\n x: percentageXPosition * oldRange * (oldRange / navMenuHeight),\r\n },\r\n immediate: false,\r\n config: { ...defaultSpringConfig },\r\n });\r\n }\r\n }\r\n }, [previousNavMenuHeight, navMenuHeight]);\r\n\r\n const animateCursorSpringConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 170,\r\n };\r\n const [cursorPosition, setCursorPosition] = useSpring(() => ({\r\n x: 0,\r\n y: 0,\r\n springConfig: animateCursorSpringConfig,\r\n }));\r\n const [{ y: openMenuYPosition }, setOpenMenuYPosition] = useInertialSpring({\r\n x: 0,\r\n y: 0,\r\n });\r\n const [isBeingDragged, setIsBeingDragged] = useState(false);\r\n // const [menuIsOpen, setMenuIsOpen] = useState(false);\r\n\r\n const bounds: IDraggableBounds = {\r\n y: [0, latestNavMenuHeight.current],\r\n x: [0, 0],\r\n };\r\n\r\n const gestureOptions: DragConfig = {\r\n initial: () => [0, openMenuYPosition.get()],\r\n rubberband: true,\r\n lockDirection: true,\r\n axis: \"y\",\r\n bounds: {\r\n top: bounds.y[0],\r\n bottom: bounds.y[1],\r\n left: bounds.x[0],\r\n right: bounds.x[1],\r\n },\r\n };\r\n const bind = useGesture(\r\n {\r\n onDrag: (state) => handleDrag(state),\r\n onMove: (state) => handleMove(state),\r\n },\r\n { drag: { ...gestureOptions, filterTaps: true } }\r\n );\r\n\r\n const handleDrag = (state: FullGestureState<\"drag\">) => {\r\n const {\r\n movement: [mx, my],\r\n vxvy: [vx, vy],\r\n first,\r\n last,\r\n cancel,\r\n canceled,\r\n } = state;\r\n\r\n if (!latestNavMenuOpen.current) {\r\n showNavMenuAction();\r\n }\r\n\r\n if (first) setIsBeingDragged(true);\r\n else if (last) setIsBeingDragged(false);\r\n\r\n // if the user drags the menu down past a threshold, then we cancel\r\n // the drag so that the menu resets to its fully open position\r\n if (my > latestNavMenuHeight.current + 70) cancel();\r\n\r\n const commonConfig = { bounds, velocity: { x: vx, y: vy } };\r\n\r\n // when the user releases the sheet, we check whether it passed\r\n // the threshold for it to close, or if we reset it to its open position\r\n if (last) {\r\n if (my < latestNavMenuHeight.current * 0.75 || vy < -0.5) {\r\n // the user has either released the menu with less than 75% of it showing or they have\r\n // released it with a vertical velocity of -0.5 so we assume they want to close the menu\r\n setOpenMenuYPosition({\r\n x: mx,\r\n y: 0,\r\n // onRest: () => console.log('draggable rest'),\r\n config: { ...defaultSpringConfig, ...commonConfig },\r\n });\r\n hideNavMenuAction();\r\n } else {\r\n // the user still has the menu more than 75% open and there is not a negative velocity of\r\n // greater than the threshold of 0.5\r\n if (vy > 0.5) {\r\n // if out vertical velocity is above 0.5 then we have flicked it down, so lets use the\r\n // natural velocity with a little rebound\r\n setOpenMenuYPosition({\r\n x: mx,\r\n y: my,\r\n config: { inertia: true, ...commonConfig },\r\n });\r\n } else {\r\n // otherwise we just animate to the fully open menu state\r\n setOpenMenuYPosition({\r\n x: mx,\r\n y: latestNavMenuHeight.current,\r\n config: { ...openMenuSpringConfig, ...commonConfig },\r\n });\r\n }\r\n }\r\n } else {\r\n // when the user keeps dragging, we just move the sheet according to\r\n // the cursor position\r\n setOpenMenuYPosition({\r\n x: mx,\r\n y: my,\r\n immediate: true,\r\n config: { decay: false },\r\n });\r\n }\r\n };\r\n\r\n const handleMove = (state: FullGestureState<\"move\">) => {\r\n const {\r\n xy: [x, y],\r\n } = state;\r\n setCursorPosition({ x, y, springConfig: animateCursorSpringConfig });\r\n };\r\n\r\n useLayoutEffect(() => {\r\n const canvas = canvasRef.current;\r\n const ctx = canvas.getContext(\"2d\");\r\n const ratio = getPixelRatio(ctx);\r\n\r\n canvas.width = navMenuWidth * ratio;\r\n canvas.height = navMenuHeight * ratio;\r\n canvas.style.width = `${navMenuWidth}px`;\r\n canvas.style.height = `${navMenuHeight}px`;\r\n\r\n function drawLine(x, y, width, height, degrees, opacity) {\r\n // first save the untranslated/unrotated context\r\n ctx.save();\r\n\r\n ctx.beginPath();\r\n // move the rotation point to the center of the rect\r\n ctx.translate(Math.floor(x), Math.floor(y));\r\n //ctx.translate(x + width / 2, y + height / 2);\r\n // rotate the rect\r\n const finalAngle = degrees + 90;\r\n ctx.rotate((finalAngle * Math.PI) / 180);\r\n\r\n // draw the rect on the transformed context\r\n // Note: after transforming [0,0] is visually [x,y]\r\n // so the rect needs to be offset accordingly when drawn\r\n ctx.rect(-width / 2, -height / 2, width, height);\r\n\r\n // opacity = 1;\r\n ctx.fillStyle = `rgba(225,225,225,${opacity})`;\r\n ctx.fill();\r\n\r\n // restore the context to its untranslated/unrotated state\r\n ctx.restore();\r\n }\r\n\r\n const convertRadToDeg = (rad) => (rad * 180) / Math.PI;\r\n const margin = 10;\r\n\r\n const lineGap = 80;\r\n const lineLength = 30;\r\n const lineWidth = 2;\r\n\r\n const boardWidth = canvas.width - margin * 2;\r\n const boardHeight = canvas.height - margin * 2;\r\n const boardMaxDistance = Math.sqrt(\r\n Math.pow(Math.abs(boardWidth), 2) + Math.pow(Math.abs(boardHeight), 2)\r\n );\r\n\r\n const numberOfColumns = Math.floor(boardWidth / lineGap);\r\n const numberOfRows = Math.floor(boardHeight / lineGap);\r\n\r\n const cursorRange = boardWidth;\r\n\r\n const gridWidth = (numberOfColumns - 1) * lineGap;\r\n const gridHeight = (numberOfRows - 1) * lineGap;\r\n\r\n const firstColumnX = margin + (boardWidth - gridWidth) / 2;\r\n const firstRowY = margin + (boardHeight - gridHeight) / 2;\r\n\r\n let requestId;\r\n const render = () => {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const isMobile = navMenuWidth < 768;\r\n const cursorX = cursorPosition.x.get() * ratio;\r\n const cursorY = cursorPosition.y.get() * ratio;\r\n\r\n for (let r = 0; r < numberOfRows; r++) {\r\n for (let c = 0; c < numberOfColumns; c++) {\r\n const lineX = firstColumnX + c * lineGap;\r\n const lineY = firstRowY + r * lineGap;\r\n\r\n const cursorXDistance = cursorX - lineX;\r\n const cursorYDistance = cursorY - lineY;\r\n const cursorLineDistance = Math.sqrt(\r\n Math.pow(Math.abs(cursorXDistance), 2) +\r\n Math.pow(Math.abs(cursorYDistance), 2)\r\n );\r\n\r\n const lineAngle =\r\n convertRadToDeg(Math.atan2(cursorYDistance, cursorXDistance)) +\r\n (!isMobile\r\n ? ((Math.random() * cursorLineDistance) / boardMaxDistance) * 30\r\n : 0);\r\n\r\n const scaledOpacity =\r\n cursorLineDistance < cursorRange\r\n ? cursorLineDistance / cursorRange\r\n : 1;\r\n const lineOpacity = 0.2 * scaledOpacity + 0.08;\r\n\r\n const scaledLineLength =\r\n cursorLineDistance < cursorRange\r\n ? cursorLineDistance / (cursorRange / 2)\r\n : 1;\r\n let relativeLineLength = lineLength * scaledLineLength;\r\n relativeLineLength =\r\n relativeLineLength > lineLength ? lineLength : relativeLineLength;\r\n\r\n drawLine(\r\n lineX,\r\n lineY,\r\n relativeLineLength,\r\n lineWidth,\r\n lineAngle,\r\n lineOpacity\r\n );\r\n }\r\n }\r\n\r\n if (isMobile) cancelAnimationFrame(requestId);\r\n else requestId = requestAnimationFrame(render);\r\n };\r\n\r\n if (animateIn) {\r\n render();\r\n\r\n return () => {\r\n cancelAnimationFrame(requestId);\r\n };\r\n }\r\n }, [animateIn, navMenuWidth]);\r\n\r\n useEffect(() => {\r\n if (navMenu.open && !animateIn) {\r\n updateMenuDimensions();\r\n setAnimateIn(true);\r\n } else if (!navMenu.open && animateIn) {\r\n setAnimateIn(false);\r\n }\r\n }, [navMenu.open, animateIn]);\r\n\r\n const openMenuSpringConfig: SpringConfig = {\r\n // mass: 1,\r\n tension: 250,\r\n friction: 36,\r\n clamp: true,\r\n // precision: 0.01,\r\n decay: false,\r\n velocity: 0,\r\n //duration: undefined,\r\n // easing: t => t,\r\n };\r\n\r\n useEffect(() => {\r\n if (navMenu.open && !isBeingDragged) {\r\n // setMenuIsOpen(true);\r\n setOpenMenuYPosition({\r\n y: navMenuHeight,\r\n immediate: false,\r\n config: openMenuSpringConfig,\r\n });\r\n } else if (openMenuYPosition.goal !== 0) {\r\n setOpenMenuYPosition({\r\n y: 0,\r\n immediate: false,\r\n config: openMenuSpringConfig,\r\n });\r\n }\r\n }, [navMenu.open, navMenuHeight]);\r\n\r\n const peekMenuSpringConfig: SpringConfig = {\r\n ...openMenuSpringConfig,\r\n tension: 500,\r\n };\r\n const [peekMenuSpring, setPeekMenuSpring] = useSpring(() => ({\r\n x: 0,\r\n config: peekMenuSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setPeekMenuSpring({ x: navMenu.peek ? 1 : 0 });\r\n }, [navMenu.peek]);\r\n\r\n const contentOverlaySpringConfig: SpringConfig = peekMenuSpringConfig;\r\n\r\n const [contentOverlaySpring, setContentOverlaySpring] = useSpring(() => ({\r\n x: 0,\r\n config: contentOverlaySpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setContentOverlaySpring({ x: navMenu.peek ? 1 : 0 });\r\n }, [navMenu.peek]);\r\n\r\n const sbw = useDisabledScrollWidth();\r\n\r\n const navMenuPeekStyles = {\r\n transform: peekMenuSpring.x.to(\r\n (x) => `translateY(calc((-100%) + (${x} * 100%)))`\r\n ),\r\n // right: sbw,\r\n right: sbw.width.to((x) => x),\r\n };\r\n\r\n const globalNavMenuStyles = {\r\n opacity: 1,\r\n transform: openMenuYPosition.to((y) => `translateY(calc(-100% + ${y}px))`),\r\n // right: sbw,\r\n right: sbw.width.to((x) => x),\r\n };\r\n\r\n const canvasStyles = {\r\n opacity: openMenuYPosition.to((y) => y / navMenuHeight),\r\n };\r\n\r\n const globalNavOverlayStyles = {\r\n opacity: to(\r\n [contentOverlaySpring.x, openMenuYPosition],\r\n (o: number, y: number) => (0.7 * y) / navMenuHeight + 0.55 * o\r\n ),\r\n display: to(\r\n [contentOverlaySpring.x, openMenuYPosition],\r\n (o: number, y: number) => (o === 0 && y === 0 ? \"none\" : \"block\")\r\n ),\r\n cursor: openMenuYPosition.to((y) => (y === 0 ? \"default\" : \"pointer\")),\r\n };\r\n\r\n const [animateInTrail, triggerAnimateIn] = useAnimateInTrail(\r\n animateIn,\r\n areasAmount + 7,\r\n // This should really only have like 8 but it doesnt work with that for some reason\r\n {\r\n notify: [\r\n {\r\n index: areasAmount + 1,\r\n threshold: animationTriggerThreshold,\r\n },\r\n ],\r\n }\r\n );\r\n\r\n const navLinkStyles = (i: number) => ({\r\n opacity: animateInTrail[i].active,\r\n transform: animateInTrail[i].active.to(\r\n (x) => `translateY(calc(${initialOffset(x, 20)}))`\r\n ),\r\n });\r\n\r\n const dragBarStyles = {\r\n opacity: animateInTrail[areasAmount + 3].active,\r\n transform: animateInTrail[areasAmount + 3].active.to(\r\n (x) => `translateY(calc(${initialOffset(x, 5)} - 50%)) translateX(-50%)`\r\n ),\r\n };\r\n\r\n const [currentPath, setCurrentPath] = useState(null);\r\n\r\n useEffect(() => {\r\n let matchedId = null;\r\n mapObject(areasById, (navigationItemId, navigationItem) => {\r\n const match = matchPath(location.pathname, {\r\n path: navigationItem.url,\r\n exact: true,\r\n strict: false,\r\n });\r\n if (match != null) matchedId = navigationItemId;\r\n });\r\n setCurrentPath(matchedId);\r\n }, [location, areasById]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default NavMenu;\r\n","import React, { useState, useEffect, useCallback, Fragment } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nimport Loadable from \"react-loadable\";\r\n\r\nimport { useSpring, a, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport * as Waypoint from \"react-waypoint\";\r\n\r\nimport * as fromMainNavigation from \"store/MainNavigation\";\r\nimport * as fromInterfaceOverlay from \"store/InterfaceOverlay\";\r\n\r\nimport { useInterval, useLatest, usePrevious } from \"utils/Index\";\r\nimport { useDisabledScrollWidth } from \"hooks/useDisabledScrollWidth\";\r\n\r\nimport NavMenu from \"./NavMenu/NavMenu\";\r\n\r\n//const NavMenu = Loadable({\r\n// loader: () => import(/* webpackChunkName: \"NavMenu\" */ './NavMenu/NavMenu'),\r\n// loading: () =>
,\r\n// delay: 200,\r\n// //serverSideRequirePath: path.join(__dirname, 'components/Menus/NavMenu/NavMenu'),\r\n// // modules: ['./NavMenu/NavMenu'],\r\n// // webpack: () => [require.resolveWeak('./NavMenu/NavMenu')],\r\n//});\r\n\r\nconst Header: React.FC<{}> = () => {\r\n const [animationReady, setAnimationReady] = useState(false);\r\n\r\n const navMenu = useSelector(fromMainNavigation.getNavMenu);\r\n const chatWindowOpen = useSelector(fromInterfaceOverlay.getChatModalWindow);\r\n const dispatch = useDispatch();\r\n const enterNavMenuTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromMainNavigation.actionCreators.enterNavMenuTriggerAction()),\r\n [dispatch]\r\n );\r\n const leaveNavMenuTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromMainNavigation.actionCreators.leaveNavMenuTriggerAction()),\r\n [dispatch]\r\n );\r\n const showNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.showNavMenuAction()),\r\n [dispatch]\r\n );\r\n const peekAtNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.peekAtNavMenuAction()),\r\n [dispatch]\r\n );\r\n const unpeekAtNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.unpeekAtNavMenuAction()),\r\n [dispatch]\r\n );\r\n const hideNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.hideNavMenuAction()),\r\n [dispatch]\r\n );\r\n const preloadNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.preloadNavMenuAction()),\r\n [dispatch]\r\n );\r\n const hideNavLogomarkAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.hideNavLogomarkAction()),\r\n [dispatch]\r\n );\r\n const showNavLogomarkAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.showNavLogomarkAction()),\r\n [dispatch]\r\n );\r\n\r\n useEffect(() => {\r\n setAnimationReady(true);\r\n }, []);\r\n\r\n const previousNavMenuTriggerHovering = usePrevious(navMenu.triggerHovering);\r\n\r\n useEffect(() => {\r\n //if (!navMenu.loaded && navMenu.load)\r\n // preloadNavMenu();\r\n\r\n if (!previousNavMenuTriggerHovering && navMenu.triggerHovering)\r\n peekAtNavMenu();\r\n else if (previousNavMenuTriggerHovering && !navMenu.triggerHovering)\r\n stopPeekingAtNavMenu();\r\n }, [navMenu.loaded, navMenu.load, navMenu.triggerHovering]);\r\n\r\n //const preloadNavMenu = () => {\r\n // NavMenu.preload();\r\n //};\r\n\r\n const handleNavMenuTriggerMouseEnter = () => {\r\n enterNavMenuTriggerAction();\r\n };\r\n\r\n const handleNavMenuTriggerMouseLeave = () => {\r\n leaveNavMenuTriggerAction();\r\n };\r\n\r\n const [delay] = useState(10);\r\n const [triggerOpenMenuInterval, setTriggerOpenMenuInterval] = useState(false);\r\n const [triggerPeekMenuInterval, setTriggerPeekMenuInterval] = useState(false);\r\n\r\n const latestNavMenuLoaded = useLatest(navMenu.loaded);\r\n\r\n useInterval(\r\n () => {\r\n if (latestNavMenuLoaded.current) {\r\n setTriggerOpenMenuInterval(false);\r\n showNavMenuAction();\r\n }\r\n },\r\n triggerOpenMenuInterval ? delay : null\r\n );\r\n\r\n useInterval(\r\n () => {\r\n if (latestNavMenuLoaded.current) {\r\n setTriggerPeekMenuInterval(false);\r\n peekAtNavMenuAction();\r\n }\r\n },\r\n triggerPeekMenuInterval ? delay : null\r\n );\r\n\r\n const triggerNavMenu = () => {\r\n if (navMenu.open) hideNavMenuAction();\r\n else if (navMenu.loaded) {\r\n showNavMenuAction();\r\n } else {\r\n preloadNavMenuAction();\r\n setTriggerOpenMenuInterval(true);\r\n }\r\n };\r\n\r\n const peekAtNavMenu = () => {\r\n if (!navMenu.open) {\r\n if (navMenu.loaded) {\r\n peekAtNavMenuAction();\r\n } else {\r\n preloadNavMenuAction();\r\n setTriggerPeekMenuInterval(true);\r\n }\r\n }\r\n };\r\n\r\n const stopPeekingAtNavMenu = () => {\r\n setTriggerPeekMenuInterval(false);\r\n setTriggerOpenMenuInterval(false);\r\n if (navMenu.peek && !navMenu.open) unpeekAtNavMenuAction();\r\n };\r\n\r\n const handleLogomarkWaypointEnter = () => {\r\n hideNavLogomarkAction();\r\n };\r\n\r\n const handleLogomarkWaypointLeave = () => {\r\n showNavLogomarkAction();\r\n };\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 250,\r\n };\r\n const [openNavMenuSpring, setOpenNavMenuSpring] = useSpring(() => ({\r\n open: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setOpenNavMenuSpring({\r\n open: (navMenu.open && animationReady) || chatWindowOpen ? 1 : 0,\r\n });\r\n }, [navMenu.open, animationReady, chatWindowOpen]);\r\n\r\n const sbw = useDisabledScrollWidth();\r\n\r\n const triggerPaneStyles = {\r\n transform: openNavMenuSpring.open.to(\r\n (x) => `translateY(calc(${x} * -40px))`\r\n ),\r\n // right: sbw,\r\n right: sbw.width.to((x) => x),\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Header;\r\n\r\n//{ (navMenu.loaded ? : null) }\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\n\r\nimport { useSpring, a, to } from \"@react-spring/web\";\r\n\r\nimport { useLatest } from \"utils/Index\";\r\n\r\nimport { useAnimateInTrail } from \"hooks/useAnimateInTrail\";\r\nimport {\r\n initialOffset,\r\n animateInSpringConfig,\r\n animationTriggerThreshold,\r\n} from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport { ButtonLink } from \"components/Links/Index\";\r\nimport { useCookie } from \"react-use\";\r\n\r\nconst CookieModalComponent: React.FC<{}> = (props) => {\r\n const animateContentIn = useSelector(\r\n fromUserInterface.getPageContentAnimatedIn\r\n );\r\n\r\n const [isActive, setIsActive] = useState(false);\r\n const [hideModal, setHideModal] = useState(false);\r\n const [animationReady, setAnimationReady] = useState(false);\r\n const [animateIn, setAnimateIn] = useState(false);\r\n const [cookieModalDismissed, updateCookieModalDismissed] = useCookie(\r\n \"cookieModalDismissed\"\r\n );\r\n const [cookieOptions] = useState({\r\n path: \"/\",\r\n expires: 365.25,\r\n secure: false,\r\n httpOnly: false,\r\n sameSite: \"strict\",\r\n } as Cookies.CookieAttributes);\r\n\r\n useEffect(() => {\r\n if (animateContentIn && !animateIn) setAnimateIn(true);\r\n }, [animateContentIn, animateIn]);\r\n\r\n useEffect(() => {\r\n const modalDismissed: boolean =\r\n cookieModalDismissed === \"true\" ? true : false;\r\n updateCookieModalDismissed(modalDismissed.toString(), cookieOptions);\r\n\r\n setIsActive(!modalDismissed);\r\n setHideModal(modalDismissed);\r\n setAnimationReady(modalDismissed ? false : true);\r\n }, [cookieOptions]);\r\n\r\n const closeModal = () => {\r\n updateCookieModalDismissed(\"true\", cookieOptions);\r\n if (isActive) setHideModal(true);\r\n };\r\n\r\n const latestIsActive = useLatest(isActive);\r\n const latestHideModal = useLatest(hideModal);\r\n\r\n const disableCookieModal = () =>\r\n latestIsActive && latestHideModal ? setIsActive(false) : null;\r\n\r\n const [animateInTrail, triggerAnimateIn] = useAnimateInTrail(\r\n animationReady && animateIn,\r\n 4,\r\n {\r\n notify: [\r\n {\r\n index: 3,\r\n threshold: animationTriggerThreshold,\r\n },\r\n ],\r\n }\r\n );\r\n const [animateOutSpring, setAnimateOutSpring] = useSpring(() => ({\r\n x: 1,\r\n config: animateInSpringConfig,\r\n onRest: () => disableCookieModal(),\r\n }));\r\n\r\n useEffect(() => {\r\n setAnimateOutSpring({ x: hideModal ? 0 : 1 });\r\n }, [hideModal]);\r\n\r\n const modalWrapperStyles = {\r\n opacity: to(\r\n [animateInTrail[0].active, animateOutSpring.x],\r\n (anin, anout) => anin * anout * (isActive ? 1 : 0)\r\n ),\r\n transform: animateInTrail[0].active.to(\r\n (x) => `translateY(calc(${initialOffset(x)}))`\r\n ),\r\n };\r\n\r\n const closeButtonStyles = {\r\n opacity: animateInTrail[1].active,\r\n };\r\n\r\n const titleStyles = closeButtonStyles;\r\n\r\n const descriptionStyles = {\r\n opacity: animateInTrail[2].active,\r\n };\r\n\r\n const ctaStyles = {\r\n opacity: animateInTrail[3].active,\r\n };\r\n\r\n if (animationReady)\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n Who doesn't like cookies?\r\n \r\n We use cookies to enhance your browsing experience as well as to help\r\n personalise our content and site for you . We'll just assume you're\r\n fine with that whilst you continue using our site. Sweet.\r\n \r\n \r\n \r\n Sounds good\r\n \r\n \r\n \r\n );\r\n else return null;\r\n};\r\n\r\nexport default CookieModalComponent;\r\n","import React, { useState, useCallback, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport BlockLink from \"components/Links/BlockLink/BlockLink\";\r\n\r\nimport { useSpring, a, to, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\nimport { useDisabledScrollWidth } from \"hooks/useDisabledScrollWidth\";\r\n\r\nimport { Logo } from \"components/Logo/Logo\";\r\n\r\n//import { Stage, Layer, Rect, Text, Image } from 'react-konva';\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\nimport * as fromMainNavigation from \"store/MainNavigation\";\r\n\r\nimport { useInterval, useLatest } from \"utils/Index\";\r\n\r\nconst HeaderMenuComponent: React.FC<{}> = () => {\r\n const [animationReady, setAnimationReady] = useState(false);\r\n\r\n const animateContentIn = useSelector(\r\n fromUserInterface.getPageContentAnimatedIn\r\n );\r\n\r\n const navMenu = useSelector(fromMainNavigation.getNavMenu);\r\n const navLogo = useSelector(fromMainNavigation.getNavLogo);\r\n const homeUrl = useSelector(fromMainNavigation.getHomeUrl);\r\n const dispatch = useDispatch();\r\n const enterNavMenuTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromMainNavigation.actionCreators.enterNavMenuTriggerAction()),\r\n [dispatch]\r\n );\r\n const leaveNavMenuTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromMainNavigation.actionCreators.leaveNavMenuTriggerAction()),\r\n [dispatch]\r\n );\r\n const showNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.showNavMenuAction()),\r\n [dispatch]\r\n );\r\n const hideNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.hideNavMenuAction()),\r\n [dispatch]\r\n );\r\n const preloadNavMenuAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.preloadNavMenuAction()),\r\n [dispatch]\r\n );\r\n const handleMainNavClickAction = useCallback(\r\n (linkId: number) =>\r\n dispatch(\r\n fromMainNavigation.actionCreators.handleMainNavClickAction(linkId)\r\n ),\r\n [dispatch]\r\n );\r\n const enterNavLogoAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.enterNavLogoAction()),\r\n [dispatch]\r\n );\r\n const leaveNavLogoAction = useCallback(\r\n () => dispatch(fromMainNavigation.actionCreators.leaveNavLogoAction()),\r\n [dispatch]\r\n );\r\n\r\n useEffect(() => {\r\n if (animateContentIn) setAnimationReady(true);\r\n }, [animateContentIn]);\r\n\r\n const handleNavMenuTriggerMouseEnter = () => enterNavMenuTriggerAction();\r\n\r\n const handleNavMenuTriggerMouseLeave = () => leaveNavMenuTriggerAction();\r\n\r\n const [preloadNavMenuInterval, setPreloadNavMenuInterval] = useState(false);\r\n const latestNavMenuLoaded = useLatest(navMenu.loaded);\r\n useInterval(\r\n () => {\r\n if (latestNavMenuLoaded.current) {\r\n setPreloadNavMenuInterval(false);\r\n showNavMenuAction();\r\n }\r\n },\r\n preloadNavMenuInterval ? 10 : null\r\n );\r\n\r\n const triggerNavMenu = () => {\r\n if (navMenu.open) hideNavMenuAction();\r\n else if (navMenu.loaded) {\r\n showNavMenuAction();\r\n } else {\r\n preloadNavMenuAction();\r\n setPreloadNavMenuInterval(true);\r\n }\r\n };\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 250,\r\n };\r\n\r\n const [navMenuOpenSpring, setNavMenuOpenSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setNavMenuOpenSpring({ x: navMenu.open && animationReady ? 1 : 0 });\r\n }, [navMenu.open, animationReady]);\r\n\r\n const menuIconSpringConfig: SpringConfig = {\r\n ...springConfig,\r\n tension: 340,\r\n friction: 25,\r\n };\r\n\r\n const [menuIconSpring, setMenuIconSpring] = useSpring(() => ({\r\n x: 0,\r\n config: menuIconSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setMenuIconSpring({\r\n x: (navMenu.open || navMenu.triggerHovering) && animationReady ? 1 : 0,\r\n immediate:\r\n (navMenu.open || navMenu.triggerHovering) && animationReady\r\n ? true\r\n : false,\r\n });\r\n }, [navMenu.open, animationReady, navMenu.triggerHovering]);\r\n\r\n const [navLogomarkSpring, setNavLogomarkSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setNavLogomarkSpring({ x: navLogo.markVisible && !navMenu.open ? 1 : 0 });\r\n }, [navLogo.markVisible, navMenu.open]);\r\n\r\n const logoStyles = {\r\n width: navLogomarkSpring.x.to((x) => `calc((1 - ${x}) * 82px)`),\r\n opacity: to([navLogomarkSpring.x, navMenuOpenSpring.x], (mark, menuOpen) =>\r\n navMenu.triggerHovering\r\n ? 1\r\n : navMenu.open\r\n ? 1\r\n : menuOpen !== 0\r\n ? menuOpen\r\n : (navMenu.open || navMenu.triggerHovering) && animationReady\r\n ? 0\r\n : 1 - mark\r\n ),\r\n };\r\n\r\n const logomarkStyles = {\r\n //transform: `translateX(calc((1 - ${navLogomark}) * (82px - 20px)))`,\r\n marginLeft: navLogomarkSpring.x.to(\r\n (x) => `calc((1 - ${x}) * (82px - 20px) - 3px)`\r\n ),\r\n //opacity: navLogomarkSpring.x,\r\n opacity: to([navLogomarkSpring.x, navMenuOpenSpring.x], (mark, menuOpen) =>\r\n navMenu.open\r\n ? (1 - menuOpen) * mark\r\n : menuOpen !== 0\r\n ? menuOpen * mark\r\n : navMenu.triggerHovering\r\n ? 1\r\n : (navMenu.open || navMenu.triggerHovering) && animationReady\r\n ? 0\r\n : mark\r\n ),\r\n display: to([navLogomarkSpring.x, navMenuOpenSpring.x], (mark, menuOpen) =>\r\n mark === 0 ? \"none\" : \"block\"\r\n ),\r\n };\r\n\r\n const menuIconTopLineStyles = {\r\n transform: navMenuOpenSpring.x.to((x) => `rotate(calc(${x} * 135deg))`),\r\n top: navMenuOpenSpring.x.to((x) => `calc(4px + (${x} * 7px))`),\r\n };\r\n\r\n const menuIconMiddleLineStyles = {\r\n transform: navMenuOpenSpring.x.to((x) => `rotate(calc(${x} * 90deg))`),\r\n opacity: navMenuOpenSpring.x.to((x) => 1 - x),\r\n };\r\n\r\n const menuIconBottomLineStyles = {\r\n transform: navMenuOpenSpring.x.to((x) => `rotate(calc(${x} * 45deg))`),\r\n top: navMenuOpenSpring.x.to((x) => `calc(18px - (${x} * 7px))`),\r\n };\r\n\r\n const sbw = useDisabledScrollWidth();\r\n\r\n const headerStyles = {\r\n // marginRight: sbw,\r\n marginRight: sbw.width.to((x) => x),\r\n };\r\n\r\n return (\r\n \r\n (x > 0 ? 1 : 0)) ||\r\n navMenu.triggerHovering ||\r\n (navMenu.open && animationReady),\r\n })}\r\n >\r\n handleMainNavClickAction(1)}\r\n onMouseEnter={preloadNavMenuAction}\r\n title=\"Home\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const HeaderMenu = HeaderMenuComponent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { useSpring, a, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport BlockLink from \"components/Links/BlockLink/BlockLink\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\nimport * as fromMainNavigation from \"store/MainNavigation\";\r\n\r\nimport { useTimeout, useLatest } from \"utils/Index\";\r\n\r\nexport type IAlign = \"left\" | \"right\";\r\n\r\ninterface IOwnProps {\r\n active: boolean;\r\n title: string;\r\n url: string;\r\n align: IAlign;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n}\r\n\r\ntype IProps = IOwnProps;\r\n\r\nconst InterfaceTriggerComponent: React.FC = ({\r\n active,\r\n title,\r\n url,\r\n align,\r\n ...props\r\n}) => {\r\n const animateContentIn = useSelector(\r\n fromUserInterface.getPageContentAnimatedIn\r\n );\r\n\r\n const navMenuOpen = useSelector(fromMainNavigation.getNavMenuOpen);\r\n\r\n const [animateIn, setAnimateIn] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n\r\n const [delay, setDelay] = useState(2000);\r\n const [initialised, setInitialised] = useState(false);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 400,\r\n };\r\n const [hoveringSpring, setHoveringSpring] = useSpring(() => ({\r\n active: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setHoveringSpring({ active: active ? 1 : 0 });\r\n }, [active]);\r\n\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({\r\n active: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setAnimateInSpring({ active: animateIn ? 1 : 0 });\r\n }, [animateIn]);\r\n\r\n const latestInitialised = useLatest(initialised);\r\n\r\n useTimeout(\r\n () => {\r\n if (!latestInitialised.current) {\r\n handleTriggerMouseLeave();\r\n setInitialised(true);\r\n }\r\n setTriggerTimeout(false);\r\n },\r\n triggerTimeout ? delay : null\r\n );\r\n\r\n useEffect(() => {\r\n if (animateContentIn && !animateIn) {\r\n setAnimateIn(true);\r\n if (!initialised) {\r\n showTrigger();\r\n setTriggerTimeout(true);\r\n }\r\n } else if (!animateContentIn && animateIn && initialised) {\r\n // If we have already animated the trigger in, if we navigate to a new page, reset and animate in again\r\n setAnimateIn(false);\r\n setInitialised(false);\r\n }\r\n }, [animateContentIn, animateIn, initialised, hovering]);\r\n\r\n const showTrigger = () => {\r\n if (props.onMouseEnter) props.onMouseEnter();\r\n if (!hovering) setHovering(true);\r\n };\r\n\r\n const handleTriggerMouseEnter = () => {\r\n showTrigger();\r\n if (!initialised) {\r\n setInitialised(true);\r\n }\r\n };\r\n\r\n const handleTriggerMouseLeave = () => {\r\n if (props.onMouseLeave) props.onMouseLeave();\r\n if (hovering) setHovering(false);\r\n };\r\n\r\n const navSpringConfig: SpringConfig = {\r\n ...springConfig,\r\n tension: 170,\r\n friction: 36,\r\n clamp: false,\r\n };\r\n const [navSpring, setNavSpring] = useSpring(() => ({\r\n x: 0,\r\n config: navSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setNavSpring({ x: navMenuOpen ? 1 : 0 });\r\n }, [navMenuOpen]);\r\n\r\n const wrapperStyles = {\r\n opacity: animateInSpring.active,\r\n transform: navSpring.x.to((x) => `translateY(${x * 100}px)`),\r\n };\r\n\r\n const triggerStyles = {\r\n width: hoveringSpring.active.to(\r\n (x) => `calc((${x} * (100% - 14px - 2px)) + 14px)`\r\n ),\r\n height: hoveringSpring.active.to(\r\n (x) => `calc((${x} * (100% - 14px - 2px)) + 14px)`\r\n ),\r\n };\r\n\r\n const labelStyles = {\r\n opacity: hoveringSpring.active,\r\n };\r\n\r\n const Button = (interactive: boolean = false) => (\r\n \r\n
{title}
\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {interactive &&
}\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n {Button()}\r\n {Button(true)}\r\n \r\n );\r\n};\r\n\r\nexport const Trigger = InterfaceTriggerComponent;\r\n","import React, { useCallback } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport { Trigger } from \"components/InterfaceOverlay/InterfaceTrigger/Trigger\";\r\n\r\nimport { IApplicationState } from \"store/index\";\r\nimport * as fromInterfaceOverlay from \"store/InterfaceOverlay\";\r\n\r\nconst BackToWorkTriggerComponent: React.FC<{}> = (props) => {\r\n const active = useSelector(fromInterfaceOverlay.getBackToWorkTrigger);\r\n const dispatch = useDispatch();\r\n const enterBackToWorkTriggerAction = useCallback(\r\n () =>\r\n dispatch(\r\n fromInterfaceOverlay.actionCreators.enterBackToWorkTriggerAction()\r\n ),\r\n [dispatch]\r\n );\r\n const leaveBackToWorkTriggerAction = useCallback(\r\n () =>\r\n dispatch(\r\n fromInterfaceOverlay.actionCreators.leaveBackToWorkTriggerAction()\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const handleMouseEnter = () => !active && enterBackToWorkTriggerAction();\r\n\r\n const handleMouseLeave = () => active && leaveBackToWorkTriggerAction();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const BackToWorkTrigger = BackToWorkTriggerComponent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSpring, a, to, SpringValue } from \"@react-spring/web\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\ninterface IProps {\r\n sectionNumber: number;\r\n currentSection: boolean;\r\n expand: boolean;\r\n hovering: boolean;\r\n targetPosition: SpringValue;\r\n showLabel: boolean;\r\n label: string;\r\n updateHoveringSectionNumber(section: number): void;\r\n onClick(): void;\r\n}\r\n\r\nexport const Bar: React.FC = ({\r\n sectionNumber,\r\n currentSection,\r\n expand = false,\r\n hovering = false,\r\n targetPosition,\r\n showLabel = false,\r\n label,\r\n updateHoveringSectionNumber,\r\n onClick,\r\n ...props\r\n}) => {\r\n const [initialised, setInitialised] = useState(false);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Interaction functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const handleMouseEnter = () => {\r\n updateHoveringSectionNumber(sectionNumber);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n updateHoveringSectionNumber(0);\r\n };\r\n\r\n const handleMouseClick = () => onClick();\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Set bar state functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [{ lbl, active }, setBarProps] = useSpring(() => ({\r\n lbl: 0,\r\n active: 0,\r\n }));\r\n\r\n useEffect(() => {\r\n setBarProps({\r\n lbl: showLabel ? 0.7 : 0,\r\n active: showLabel && (hovering || currentSection) ? 0.3 : 0,\r\n immediate: !initialised,\r\n });\r\n if (!initialised) setInitialised(true);\r\n }, [initialised, showLabel, hovering, currentSection]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Expand functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [{ y: expandY }, setExpand] = useSpring(() => ({ y: 0 }));\r\n\r\n useEffect(() => {\r\n setExpand({\r\n y: (showLabel && currentSection) || expand ? 1 : 0,\r\n immediate: !initialised,\r\n });\r\n }, [initialised, showLabel, expand]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Styles\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const wrapperStyles = {\r\n height: expandY.to((y) => `calc(30px + (${y} * 270px))`),\r\n };\r\n\r\n const barStyles = {\r\n transform: targetPosition.to(\r\n (p) => `translateY(calc( (-100%) + (${p} * 100%) ))`\r\n ),\r\n };\r\n\r\n const labelStyles = {\r\n opacity: to([lbl, active], (l, ac) => l + ac),\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n 0,\r\n })}\r\n style={barStyles}\r\n />\r\n
\r\n \r\n
{label}
\r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect, useCallback, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nimport { useTimeout, useLatest } from \"utils/Index\";\r\nimport { useDisabledScrollWidth } from \"hooks/useDisabledScrollWidth\";\r\nimport { useSpring, useSprings, a } from \"@react-spring/web\";\r\n\r\nimport { useScrollTarget } from \"hooks/useScrollTarget\";\r\nimport { usePrevious } from \"utils/Index\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { Bar } from \"./Bar\";\r\n\r\nimport * as fromInPageNavigation from \"store/InPageNavigation\";\r\n\r\nconst InPageNavigation: React.FC<{}> = (props) => {\r\n const [initialised, setInitialised] = useState(false);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Redux functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const visible = useSelector(fromInPageNavigation.getVisibility);\r\n const currentSectionNumber = useSelector(\r\n fromInPageNavigation.getCurrentSectionNumber\r\n );\r\n const numberOfSections = useSelector(\r\n fromInPageNavigation.getTotalSectionsNumber\r\n );\r\n const navigationArray = useSelector(fromInPageNavigation.getNavigationArray);\r\n const scrollToSectionNumber = useSelector(\r\n fromInPageNavigation.getScrollToSectionNumber\r\n );\r\n const previousScrollToSectionNumber = usePrevious(scrollToSectionNumber);\r\n const hoveringOverSectionNumber = useSelector(\r\n fromInPageNavigation.getHoverOverSectionNumber\r\n );\r\n const showSectionLabels = useSelector(\r\n fromInPageNavigation.getShowSectionLabels\r\n );\r\n const latestShowSectionLabels = useLatest(showSectionLabels);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const updateHoveringSectionNumberAction = useCallback(\r\n (section: number) =>\r\n dispatch(\r\n fromInPageNavigation.actionCreators.updateHoveringSectionNumberAction(\r\n section\r\n )\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const showSectionLabelsAction = useCallback(\r\n () =>\r\n dispatch(fromInPageNavigation.actionCreators.showSectionLabelsAction()),\r\n [dispatch]\r\n );\r\n\r\n const hideSectionLabelsAction = useCallback(\r\n () =>\r\n dispatch(fromInPageNavigation.actionCreators.hideSectionLabelsAction()),\r\n [dispatch]\r\n );\r\n\r\n const scrollToSectionNumberAction = useCallback(\r\n (section: number) =>\r\n dispatch(\r\n fromInPageNavigation.actionCreators.scrollToSectionNumberAction(section)\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const setCurrentSectionNumberAction = useCallback(\r\n (section: number) =>\r\n dispatch(\r\n fromInPageNavigation.actionCreators.setCurrentSectionNumberAction(\r\n section\r\n )\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const showNav = useCallback(\r\n () => dispatch(fromInPageNavigation.actionCreators.showNavAction()),\r\n [dispatch]\r\n );\r\n\r\n const hideNav = useCallback(\r\n () => dispatch(fromInPageNavigation.actionCreators.hideNavAction()),\r\n [dispatch]\r\n );\r\n\r\n const animateScrollTo = useScrollTarget(true, null, () =>\r\n scrollToSectionNumberAction(-1)\r\n );\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Track window scroll position functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n const y = window.scrollY;\r\n\r\n if (numberOfSections > 0) {\r\n if (navigationArray.length > 0) {\r\n let newCurrentSectionNumber: number = 1;\r\n\r\n let show = false;\r\n if (navigationArray.length > 0) {\r\n if (\r\n 200 + y > navigationArray[0].scrollTop &&\r\n 200 + y <\r\n navigationArray[navigationArray.length - 1].scrollTop +\r\n navigationArray[navigationArray.length - 1].height\r\n )\r\n show = true;\r\n }\r\n\r\n if (show && !visible) showNav();\r\n else if (!show && visible) hideNav();\r\n\r\n navigationArray.map((navSection, i) => {\r\n const currentNavProps = navSection;\r\n const scrollProgress =\r\n (y - currentNavProps.scrollTop) / currentNavProps.height;\r\n\r\n const currentSection = scrollProgress >= 0 && scrollProgress < 1;\r\n\r\n if (\r\n currentSection ||\r\n (i + 1 === numberOfSections && scrollProgress > 0)\r\n )\r\n newCurrentSectionNumber = i + 1;\r\n });\r\n if (newCurrentSectionNumber !== currentSectionNumber)\r\n setCurrentSectionNumberAction(newCurrentSectionNumber);\r\n }\r\n }\r\n };\r\n\r\n window.addEventListener(\"scroll\", handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [numberOfSections, navigationArray, currentSectionNumber, visible]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Animate to section functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n useEffect(() => {\r\n if (\r\n scrollToSectionNumber !== previousScrollToSectionNumber &&\r\n scrollToSectionNumber !== -1\r\n ) {\r\n const finalScrollTop =\r\n navigationArray[scrollToSectionNumber - 1].scrollTop + 5;\r\n animateScrollTo(finalScrollTop);\r\n }\r\n }, [scrollToSectionNumber, navigationArray]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Animate the nav bar in functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({ z: 0 }));\r\n useEffect(() => {\r\n setAnimateInSpring({ z: visible ? 1 : 0, immediate: !initialised });\r\n }, [visible, initialised]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Show or hide nav labels functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [hideLabelsTimeout, setHideLabelsTimeout] = useState(false);\r\n useTimeout(\r\n () => {\r\n setHideLabelsTimeout(false);\r\n if (latestShowSectionLabels.current) hideSectionLabelsAction();\r\n },\r\n hideLabelsTimeout ? 2000 : null\r\n );\r\n\r\n const handleMouseEnter = () => {\r\n setHideLabelsTimeout(false);\r\n if (!showSectionLabels) showSectionLabelsAction();\r\n };\r\n\r\n const handleMouseLeave = () => setHideLabelsTimeout(true);\r\n\r\n const updateHoveringSectionNumber = (section: number) => {\r\n if (hoveringOverSectionNumber !== section) {\r\n updateHoveringSectionNumberAction(section);\r\n handleMouseEnter();\r\n }\r\n };\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Scroll to section functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const scrollTo = (sectionNumber) => {\r\n if (sectionNumber > 0 && sectionNumber < navigationArray.length + 1)\r\n scrollToSectionNumberAction(sectionNumber);\r\n };\r\n\r\n const scrollToPreviousSection = () => {\r\n scrollTo(currentSectionNumber - 1);\r\n };\r\n const scrollToNextSection = () => {\r\n scrollTo(currentSectionNumber + 1);\r\n };\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Expand the current bar if scrolling function\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [expandBar, setExpandBar] = useState(false);\r\n const [unexpandTimeout, setUnexpandTimeout] = useState(false);\r\n useTimeout(\r\n () => {\r\n setUnexpandTimeout(false);\r\n setExpandBar(false);\r\n },\r\n unexpandTimeout ? 3000 : null\r\n );\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Track scroll position and pass in y value to bar\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const [barPercentages, setBarPercentages] = useSprings(\r\n navigationArray.length,\r\n (i) => ({ y: 0 })\r\n );\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n const y = window.scrollY;\r\n\r\n setExpandBar(true);\r\n setUnexpandTimeout(true);\r\n\r\n setBarPercentages((i) => {\r\n const currentNavProps = navigationArray[i];\r\n let scrollProgress =\r\n (y - currentNavProps.scrollTop) / currentNavProps.height;\r\n\r\n if (scrollProgress < 0) scrollProgress = 0;\r\n else if (scrollProgress > 1) scrollProgress = 1;\r\n\r\n return {\r\n y: scrollProgress,\r\n immediate:\r\n (currentSectionNumber !== i + 1 && scrollProgress === 1) ||\r\n !initialised\r\n ? true\r\n : false,\r\n };\r\n });\r\n };\r\n handleScroll();\r\n window.addEventListener(\"scroll\", handleScroll);\r\n if (!initialised) setInitialised(true);\r\n\r\n return () => {\r\n window.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [navigationArray, currentSectionNumber]);\r\n\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n // -------------------------------------------------------------- Generate bars for page position functions\r\n // ------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n const getBars = () => {\r\n const bars = [];\r\n if (navigationArray.length > 0) {\r\n navigationArray.map((navSection, i) => {\r\n const sectionNumber = i + 1;\r\n bars.push(\r\n scrollTo(sectionNumber)}\r\n />\r\n );\r\n });\r\n }\r\n\r\n return bars;\r\n };\r\n\r\n const sbw = useDisabledScrollWidth();\r\n\r\n const wrapperStyles = {\r\n opacity: animateInSpring.z,\r\n marginRight: sbw.width.to((x) => x),\r\n };\r\n\r\n return (\r\n \r\n
\r\n
0{currentSectionNumber}
\r\n
\r\n
0{numberOfSections}
\r\n
\r\n \r\n {getBars()}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default InPageNavigation;\r\n","import React from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\n\r\nimport Loadable from \"react-loadable\";\r\n\r\nimport { SEOHelmet } from \"components/SEO/SEOHelmet\";\r\n\r\nimport LoadingScreen from \"components/ScreenOverlays/LoadingScreen/LoadingScreen\";\r\nimport InterfaceOverlay from \"components/InterfaceOverlay/InterfaceOverlay\";\r\n//import PagePositionBar from 'components/InterfaceOverlay/PagePositionBar/PagePositionBar';\r\n// import GridGuides from 'components/ScreenOverlays/GridGuides/GridGuides';\r\nimport Header from \"components/Header/Header\";\r\nimport CookieModal from \"components/ScreenOverlays/CookieModal/CookieModal\";\r\nimport { DisableScroll } from \"components/DisableScroll/DisableScroll\";\r\nimport { useViewportDimensions } from \"hooks/useViewportDimensions\";\r\n\r\nimport { HeaderMenu } from \"components/InterfaceOverlay/HeaderMenu/HeaderMenu\";\r\nimport { BackToWorkTrigger } from \"components/InterfaceOverlay/InterfaceTrigger/Index\";\r\nimport InPageNavigation from \"components/InterfaceOverlay/InPageNavigation/InPageNavigation\";\r\n\r\nconst ChatModal = Loadable({\r\n loader: () =>\r\n import(\r\n /* webpackChunkName: \"ChatModal\" */ \"components/InterfaceOverlay/ContactChatModal/ChatModal\"\r\n ),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'components/InterfaceOverlay/ContactChatModal/ChatModal'),\r\n // modules: [\"components/InterfaceOverlay/ContactChatModal/ChatModal\"],\r\n // webpack: () => [\r\n // require.resolveWeak(\r\n // \"components/InterfaceOverlay/ContactChatModal/ChatModal\"\r\n // ),\r\n // ],\r\n});\r\n\r\nexport const Layout: React.FC<{}> = (props) => {\r\n useViewportDimensions();\r\n const workDetailsMatch = useRouteMatch({\r\n path: \"/work/:projectName\",\r\n strict: true,\r\n sensitive: true,\r\n });\r\n\r\n return (\r\n
\r\n \r\n {/**/}\r\n {/**/}\r\n \r\n
\r\n \r\n {workDetailsMatch && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {props.children}\r\n
\r\n );\r\n};\r\n","import React, { useLayoutEffect, useCallback } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport * as fromViewport from 'store/Viewport';\r\n\r\nexport const useViewportDimensions = () => {\r\n const dispatch = useDispatch();\r\n\r\n const updateViewportWidthAction = useCallback(\r\n (width: number) => dispatch(fromViewport.actionCreators.updateViewportWidth(width))\r\n , [dispatch]);\r\n\r\n useLayoutEffect(() => {\r\n\r\n const updateWindowDimensions = () => {\r\n const { innerWidth: width } = window;\r\n updateViewportWidthAction(width);\r\n };\r\n\r\n updateWindowDimensions();\r\n\r\n // Setup event listeners on initial mount to keep the dimensions of the slider updated\r\n window.addEventListener(\"resize\", updateWindowDimensions);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", updateWindowDimensions);\r\n };\r\n }, []);\r\n};\r\n","import * as React from 'react';\r\n//import { slackErrorBot } from 'integrations/slack';\r\n\r\nimport { websiteReport } from 'api/api';\r\n\r\ninterface IState {\r\n error: string;\r\n errorInfo: string;\r\n}\r\n\r\nexport class ErrorBoundary extends React.Component<{}, IState> {\r\n public state = {\r\n error: null,\r\n errorInfo: null,\r\n };\r\n\r\n public componentDidCatch(error, errorInfo) {\r\n // Catch errors in any components below and re-render with error message\r\n this.setState({\r\n error,\r\n errorInfo,\r\n });\r\n\r\n websiteReport({\r\n text: JSON.stringify(errorInfo),\r\n fields: [\r\n {\r\n title: \"url\",\r\n value: window.location.href,\r\n short: false,\r\n },\r\n {\r\n title: \"agent\",\r\n value: window.navigator.userAgent,\r\n short: false,\r\n },\r\n {\r\n title: \"error\",\r\n value: error.toString(),\r\n short: false,\r\n },\r\n {\r\n title: \"error info\",\r\n value: JSON.stringify(errorInfo),\r\n short: false,\r\n },\r\n {\r\n title: \"component stack\",\r\n value: errorInfo.componentStack,\r\n short: false,\r\n },\r\n ],\r\n });\r\n // You can also log error messages to an error reporting service here\r\n }\r\n\r\n public render() {\r\n if (this.state.errorInfo) {\r\n // Error path\r\n return (\r\n
\r\n

Something went wrong.

\r\n
\r\n {this.state.error && this.state.error.toString()}\r\n
\r\n {this.state.errorInfo.componentStack}\r\n
\r\n
\r\n );\r\n }\r\n // Normally, just render children\r\n return this.props.children;\r\n }\r\n}\r\n","import React, { Children, useCallback, useState, ComponentType } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { Route, Switch, useHistory, useLocation } from \"react-router-dom\";\r\n\r\nlet intersectionObserver;\r\nif (typeof window !== \"undefined\") {\r\n // tslint:disable-next-line\r\n intersectionObserver = require(\"intersection-observer\");\r\n}\r\n\r\nimport { useTransition, a } from \"@react-spring/web\";\r\n\r\n// @ts-ignore\r\n//import { useMediaQuery } from 'react-responsive';\r\n\r\n//import { LgScreenHidden } from 'react-responsive-redux';\r\n\r\n// @ts-ignore\r\n//import { useMediaQuery } from 'react-responsive';\r\n\r\nimport Loadable from \"react-loadable\";\r\n\r\n//import MediaQuery from 'react-responsive';\r\n//import { MediaQuery, Context as ResponsiveContext } from 'react-responsive';\r\nimport { ParallaxProvider } from \"react-scroll-parallax\";\r\n\r\nimport { Layout } from \"views/Shared/Layout\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\n\r\nimport { ErrorBoundary } from \"components/ErrorBoundary/ErrorBoundary\";\r\n\r\nimport { useLatest, hashCode } from \"utils/Index\";\r\n//import { IProps } from './components/InterfaceOverlay/ContactChatModal/ModalMessage';\r\n\r\n// import Home from \"views/Home/Home\";\r\n\r\nconst Home = Loadable({\r\n loader: () => import(/* webpackChunkName: \"Home\" */ \"views/Home/Home\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Home/Home'),\r\n // modules: [\"views/Home/Home\"],\r\n // webpack: () => [require.resolveWeak(\"views/Home/Home\")],\r\n});\r\n\r\nconst Work = Loadable({\r\n loader: () => import(/* webpackChunkName: \"Work\" */ \"views/Work/Work\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Work/Work'),\r\n // modules: [\"views/Work/Work\"],\r\n // webpack: () => [require.resolveWeak(\"views/Work/Work\")],\r\n});\r\n\r\nconst WorkDetails = Loadable({\r\n loader: () =>\r\n import(/* webpackChunkName: \"WorkDetails\" */ \"views/Work/WorkDetails\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Work/WorkDetails'),\r\n // modules: [\"views/Work/WorkDetails\"],\r\n // webpack: () => [require.resolveWeak(\"views/Work/WorkDetails\")],\r\n});\r\n\r\nconst OurStory = Loadable({\r\n loader: () =>\r\n import(/* webpackChunkName: \"OurStory\" */ \"views/OurStory/OurStory\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/OurStory/OurStory'),\r\n // modules: [\"views/OurStory/OurStory\"],\r\n // webpack: () => [require.resolveWeak(\"views/OurStory/OurStory\")],\r\n});\r\n\r\nconst Services = Loadable({\r\n loader: () =>\r\n import(/* webpackChunkName: \"Services\" */ \"views/Services/Services\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Services/Services'),\r\n // modules: [\"views/Services/Services\"],\r\n // webpack: () => [require.resolveWeak(\"views/Services/Services\")],\r\n});\r\n\r\nconst Contact = Loadable({\r\n loader: () =>\r\n import(/* webpackChunkName: \"Contact\" */ \"views/Contact/Contact\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Contact/Contact'),\r\n // modules: [\"views/Contact/Contact\"],\r\n // webpack: () => [require.resolveWeak(\"views/Contact/Contact\")],\r\n});\r\n\r\nconst NotFound = Loadable({\r\n loader: () =>\r\n import(/* webpackChunkName: \"NotFound\" */ \"views/Error/NotFound\"),\r\n loading: () =>
,\r\n delay: 200,\r\n //serverSideRequirePath: path.join(__dirname, 'views/Error/NotFound'),\r\n // modules: [\"views/Error/NotFound\"],\r\n // webpack: () => [require.resolveWeak(\"views/Error/NotFound\")],\r\n});\r\n\r\nconst firstChild = (props) => {\r\n const childrenArray = Children.toArray(props.children);\r\n return childrenArray[0] || null;\r\n};\r\n\r\nconst routesArray = [\r\n {\r\n exact: true,\r\n path: \"/work\",\r\n component: Work,\r\n routes: [\r\n {\r\n exact: true,\r\n path: \"/:projectName\",\r\n component: WorkDetails,\r\n },\r\n ],\r\n },\r\n {\r\n exact: true,\r\n path: \"/our-story\",\r\n component: OurStory,\r\n },\r\n {\r\n exact: true,\r\n path: \"/services\",\r\n component: Services,\r\n },\r\n {\r\n exact: true,\r\n path: \"/contact\",\r\n component: Contact,\r\n },\r\n {\r\n exact: true,\r\n path: \"/\",\r\n component: Home,\r\n },\r\n {\r\n exact: false,\r\n path: \"/home\",\r\n component: Home,\r\n },\r\n {\r\n exact: false,\r\n path: null,\r\n component: NotFound,\r\n },\r\n] as IRoute[];\r\n\r\nexport const preloadRouteComponent = (urlPath: string) => {\r\n routesArray.map((route, key) => {\r\n findRoute(null, route, urlPath);\r\n });\r\n};\r\n\r\n//const ShowDesktopSite = ({ children }) => {\r\n// const isMobile = useMediaQuery({ maxWidth: 1200 });\r\n// return isMobile ? children : null;\r\n//};\r\n\r\nconst findRoute = (baseRoute: string, route, urlPath: string) => {\r\n let routePath: string = route.path;\r\n if (baseRoute != null) routePath = baseRoute + routePath;\r\n\r\n if (route.routes != null)\r\n route.routes.map((childRoute: IRoute, childKey) => {\r\n findRoute(routePath, childRoute, urlPath);\r\n });\r\n\r\n let matchedPath: boolean = false;\r\n\r\n if (routePath === urlPath) {\r\n matchedPath = true;\r\n } else if (routePath && route.path) {\r\n if (\r\n urlPath.indexOf(\"/work/\") > -1 &&\r\n routePath.indexOf(\"/work\") > -1 &&\r\n route.path.indexOf(\":\") > -1\r\n ) {\r\n matchedPath = true;\r\n }\r\n }\r\n\r\n if (matchedPath) route.component.preload();\r\n};\r\n\r\ninterface IRoute {\r\n exact: boolean;\r\n path: string;\r\n component: ComponentType;\r\n routes?: IRoute[];\r\n}\r\n\r\nexport const RoutesComponent: React.FC<{}> = () => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const latestHistory = useLatest(history);\r\n const loadingScreens = useSelector(fromUserInterface.getLoadingScreens);\r\n const dispatch = useDispatch();\r\n const triggerNewLoadingScreen = useCallback(\r\n (id: string, recordPageScroll: boolean, action: string) =>\r\n dispatch(\r\n fromUserInterface.actionCreators.triggerNewLoadingScreen(\r\n id,\r\n recordPageScroll,\r\n action\r\n )\r\n ),\r\n [dispatch]\r\n );\r\n const hideLoadingScreen = useCallback(\r\n (id: string, modifyScroll: boolean) =>\r\n dispatch(\r\n fromUserInterface.actionCreators.hideLoadingScreen(\r\n id,\r\n modifyScroll,\r\n true\r\n )\r\n ),\r\n [dispatch]\r\n );\r\n\r\n const createRoute = (baseRoute: string = \"\", route: IRoute, key) => {\r\n let newRoute = null;\r\n\r\n let newPath = route.path;\r\n if (baseRoute != null) newPath = baseRoute + newPath;\r\n\r\n const uniqueKey = hashCode(\r\n newPath != null\r\n ? newPath\r\n : \"nefiunwklfnvesdlknvcuoenwvoneswinvoiewnlkndvkas\"\r\n );\r\n\r\n if (route.hasOwnProperty(\"routes\")) {\r\n newRoute = route.routes.map((childRoute: IRoute, childKey) => {\r\n return createRoute(route.path, childRoute, uniqueKey);\r\n });\r\n }\r\n\r\n const RouteComponent = route.component;\r\n\r\n newRoute = [\r\n \r\n \r\n ,\r\n newRoute,\r\n ];\r\n return newRoute;\r\n };\r\n\r\n const breakpoints = {\r\n //desktop: '(min-width: 1025px)',\r\n //tablet: '(min-width: 768px) and(max - width: 1024px)',\r\n //phone: '(max-width: 767px)',\r\n desktop: \"(min-width: 1280px)\",\r\n mobile: \"(max-width: 1279px)\",\r\n };\r\n\r\n const [routeComponents] = useState(\r\n routesArray.map((route: IRoute, key) => createRoute(null, route, key))\r\n );\r\n\r\n const latestLoadingScreens = useLatest(loadingScreens);\r\n\r\n const newPageEntry = (item) => {\r\n const screenId = hashCode(item.pathname).toString();\r\n\r\n let recordPageScroll = true;\r\n if (Object.keys(latestLoadingScreens.current).length !== 0)\r\n recordPageScroll = false;\r\n\r\n triggerNewLoadingScreen(\r\n screenId,\r\n recordPageScroll,\r\n latestHistory.current.action\r\n );\r\n };\r\n\r\n const newPageReady = (item) => {\r\n let modifyScroll = true;\r\n const screenId = hashCode(item.pathname).toString();\r\n\r\n const visibleScreens = [];\r\n Object.keys(latestLoadingScreens.current).map((id) => {\r\n if (latestLoadingScreens.current[id].visible === true)\r\n visibleScreens.push(id);\r\n });\r\n if (visibleScreens.length > 1) modifyScroll = false;\r\n\r\n hideLoadingScreen(screenId, modifyScroll);\r\n };\r\n\r\n const routeTransitions = useTransition(location, {\r\n key: (item) => item.pathname,\r\n from: { opacity: 0 },\r\n enter: (item) => ({\r\n opacity: 1,\r\n // onStart: () => console.log(item),\r\n onStart: {\r\n // values is available\r\n opacity: () => newPageEntry(item),\r\n },\r\n onRest: () => newPageReady(item),\r\n default: true,\r\n }),\r\n leave: (item) => ({\r\n opacity: 0,\r\n onStart: () => null,\r\n onRest: () => null,\r\n default: true,\r\n }),\r\n });\r\n\r\n const routeTransitionStyles = (style) => ({\r\n opacity: style.opacity.to((x) => (x === 0 ? 0 : x === 1 ? 1 : null)),\r\n position: \"absolute\" as \"absolute\",\r\n top: 0,\r\n width: \"100%\",\r\n willChange: `opacity`,\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n {routeTransitions((values, item) => {\r\n return (\r\n \r\n {routeComponents}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const Routes = RoutesComponent;\r\n","module.exports = (__webpack_require__(8))(693);","import * as fromInterfaceOverlay from 'store/InterfaceOverlay';\r\nimport * as signalR from \"@microsoft/signalr\";\r\n\r\nexport enum keys {\r\n SIGNALR_LINK_CHATID = 'SIGNALR_LINK_CHATID',\r\n SIGNALR_START_CHAT = 'SIGNALR_START_CHAT',\r\n SIGNALR_ADD_CHAT_MESSAGE = 'SIGNALR_ADD_CHAT_MESSAGE',\r\n SIGNALR_ADD_FORM_VALUE = 'SIGNALR_ADD_FORM_VALUE',\r\n SIGNALR_RESET_FORM_VALUES = 'SIGNALR_RESET_FORM_VALUES',\r\n SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID = 'SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID',\r\n SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID = 'SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID',\r\n SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID = 'SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID',\r\n SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY = 'SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY',\r\n}\r\n\r\ninterface ISignalRAction { signalR: boolean; }\r\ninterface ILinkChatIdAction extends ISignalRAction { type: keys.SIGNALR_LINK_CHATID; id: string; }\r\ninterface IStartChatAction extends ISignalRAction { type: keys.SIGNALR_START_CHAT; }\r\ninterface IAddChatMessageAction extends ISignalRAction { type: keys.SIGNALR_ADD_CHAT_MESSAGE; message: fromInterfaceOverlay.IMessage; }\r\ninterface IAddFormValueAction extends ISignalRAction { type: keys.SIGNALR_ADD_FORM_VALUE; formValue: fromInterfaceOverlay.IFormValue; }\r\ninterface IResetFormValuesAction extends ISignalRAction { type: keys.SIGNALR_RESET_FORM_VALUES; }\r\ninterface IUpdateChatCurrentScriptStepIdAction extends ISignalRAction { type: keys.SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID; id: string; }\r\ninterface IUpdateChatNextScriptStepIdAction extends ISignalRAction { type: keys.SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID; id: string; }\r\ninterface IUpdateChatCurrentUserInputIdAction extends ISignalRAction { type: keys.SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID; id: string; }\r\ninterface IUpdateChatUserInputVisibilityAction extends ISignalRAction { type: keys.SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY; visible: boolean; }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype KnownAction =\r\n ILinkChatIdAction\r\n | IStartChatAction\r\n | IAddChatMessageAction\r\n | IAddFormValueAction\r\n | IResetFormValuesAction\r\n | IUpdateChatCurrentScriptStepIdAction\r\n | IUpdateChatNextScriptStepIdAction\r\n | IUpdateChatCurrentUserInputIdAction\r\n | IUpdateChatUserInputVisibilityAction;\r\n\r\nexport const actionCreators = {\r\n linkWithChatId: (id: string) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_LINK_CHATID,\r\n id,\r\n signalR: true,\r\n });\r\n },\r\n startChat: () => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_START_CHAT,\r\n signalR: true,\r\n });\r\n },\r\n addChatMessage: (message: fromInterfaceOverlay.IMessage) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_ADD_CHAT_MESSAGE,\r\n message,\r\n signalR: true,\r\n });\r\n },\r\n addFormValue: (formValue: fromInterfaceOverlay.IFormValue) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_ADD_FORM_VALUE,\r\n formValue,\r\n signalR: true,\r\n });\r\n },\r\n resetFormValues: () => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_RESET_FORM_VALUES,\r\n signalR: true,\r\n });\r\n },\r\n updateCurrentScriptStepId: (id: string) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID,\r\n id,\r\n signalR: true,\r\n });\r\n },\r\n updateNextScriptStepId: (id: string) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID,\r\n id,\r\n signalR: true,\r\n });\r\n },\r\n updateCurrentUserInputId: (id: string) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID,\r\n id,\r\n signalR: true,\r\n });\r\n },\r\n updateUserInputVisibility: (visible: boolean) => dispatch => {\r\n dispatch({\r\n type: keys.SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY,\r\n visible,\r\n signalR: true,\r\n });\r\n },\r\n};\r\n\r\nlet chatHub = null;\r\n\r\nexport const signalRMiddleware = ({ dispatch, getState }) => {\r\n return next => async action => {\r\n // Call the next dispatch method in the middleware chain.\r\n const returnValue = next(action);\r\n\r\n //------------------------------------------------------------------------------ Create SignalR hub connection\r\n\r\n if (typeof window !== 'undefined' && chatHub == null) {\r\n // Declare a reference to the hub.\r\n chatHub = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/chatHub\")\r\n .withAutomaticReconnect()\r\n //.AddNewtonsoftJsonProtocol()\r\n .configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n\r\n //console.log('signalr connection state', chatHub.state, signalR.HubConnectionState.Connected, signalR.HubConnectionState.Disconnected);\r\n\r\n if (chatHub.state === signalR.HubConnectionState.Disconnected) {\r\n\r\n // -------------------------------------------------------------------- Chat Hub Functions\r\n\r\n chatHub.on(\"startChat\", () => {\r\n dispatch(fromInterfaceOverlay.actionCreators.markChatAsStarted(false));\r\n });\r\n\r\n chatHub.on(\"receiveMessage\", (message: fromInterfaceOverlay.IMessage) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveChatMessage(message, false));\r\n });\r\n\r\n chatHub.on(\"receiveFormValue\", (formValue: fromInterfaceOverlay.IFormValue) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveFormValue(formValue, false));\r\n });\r\n\r\n chatHub.on(\"resetFormValues\", () => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveResetFormValues(false));\r\n });\r\n\r\n chatHub.on(\"receiveCurrentScriptStepId\", (id: string) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveCurrentScriptStepId(id, false));\r\n });\r\n\r\n chatHub.on(\"receiveNextScriptStepId\", (id: string) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveNextScriptStepId(id, false));\r\n });\r\n\r\n chatHub.on(\"receiveCurrentUserInputId\", (id: string) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveCurrentUserInputId(id, false));\r\n });\r\n\r\n chatHub.on(\"receiveUserInputVisibility\", (visible: boolean) => {\r\n dispatch(fromInterfaceOverlay.actionCreators.receiveUserInputVisibility(visible, false));\r\n });\r\n\r\n // -------------------------------------------------------------------- General Hub Functions\r\n\r\n async function start(connection) {\r\n try {\r\n await connection.start()\r\n .then(() => {\r\n const chatId = fromInterfaceOverlay.getChatModalId(getState());\r\n dispatch(actionCreators.linkWithChatId(chatId));\r\n console.info('SignalR Connected');\r\n })\r\n .catch(err => console.error('SignalR Connection Error: ', err));\r\n console.assert(connection.state === signalR.HubConnectionState.Connected);\r\n } catch (err) {\r\n console.assert(connection.state === signalR.HubConnectionState.Disconnected);\r\n console.log(err);\r\n setTimeout(() => start(connection), 5000);\r\n }\r\n }\r\n\r\n chatHub.onclose(async () => {\r\n await start(chatHub);\r\n });\r\n\r\n start(chatHub);\r\n }\r\n\r\n //------------------------------------------------------------------------------ End SignalR Code\r\n }\r\n\r\n if (action.signalR && chatHub != null) {\r\n if (chatHub.state === signalR.HubConnectionState.Connected\r\n //|| chatHub.state === signalR.HubConnectionState.Connecting\r\n //|| chatHub.state === signalR.HubConnectionState.Reconnecting\r\n ) {\r\n\r\n const chatId = fromInterfaceOverlay.getChatModalId(getState());\r\n\r\n const handleSignalRActionsReducer = (signalRAction: KnownAction) => {\r\n switch (signalRAction.type) {\r\n case keys.SIGNALR_LINK_CHATID:\r\n chatHub.invoke(\"LinkWithChatId\", signalRAction.id);\r\n break;\r\n case keys.SIGNALR_START_CHAT:\r\n chatHub.invoke(\"StartChat\", chatId);\r\n break;\r\n case keys.SIGNALR_ADD_CHAT_MESSAGE:\r\n chatHub.invoke(\"NewMessage\", chatId, signalRAction.message);\r\n break;\r\n case keys.SIGNALR_ADD_FORM_VALUE:\r\n chatHub.invoke(\"NewFormValue\", chatId, signalRAction.formValue);\r\n break;\r\n case keys.SIGNALR_RESET_FORM_VALUES:\r\n chatHub.invoke(\"ResetFormValues\", chatId);\r\n break;\r\n case keys.SIGNALR_UPDATE_CHAT_CURRENTSCRIPTSTEPID:\r\n chatHub.invoke(\"UpdateCurrentScriptStepId\", chatId, signalRAction.id);\r\n break;\r\n case keys.SIGNALR_UPDATE_CHAT_NEXTSCRIPTSTEPID:\r\n chatHub.invoke(\"UpdateNextScriptStepId\", chatId, signalRAction.id);\r\n break;\r\n case keys.SIGNALR_UPDATE_CHAT_CURRENTUSERINPUTID:\r\n chatHub.invoke(\"UpdateCurrentUserInputId\", chatId, signalRAction.id);\r\n break;\r\n case keys.SIGNALR_UPDATE_CHAT_USERINPUTVISIBILITY:\r\n chatHub.invoke(\"UpdateUserInputVisibility\", chatId, signalRAction.visible);\r\n //.then(() => console.log('signalr chat user input visibility successfully updated'));\r\n break;\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = signalRAction;\r\n }\r\n };\r\n\r\n handleSignalRActionsReducer(action);\r\n }\r\n }\r\n\r\n // This will likely be the action itself, unless\r\n // a middleware further in chain changed it.\r\n return returnValue;\r\n };\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { useTimeout } from 'utils/Index';\r\n\r\nimport { preloadRouteComponent } from 'app/routes';\r\n\r\nexport interface IOwnSpecificProps {\r\n to?: string;\r\n type?: string;\r\n id?: string;\r\n isActive?: boolean;\r\n onClick?: (e?: any) => void;\r\n onMouseEnter?: (e?: any) => void;\r\n onMouseLeave?: (e?: any) => void;\r\n newWindow?: boolean;\r\n title: string;\r\n}\r\n\r\ntype IOwnProps = IOwnSpecificProps;\r\n\r\ntype IProps = IOwnProps;\r\n\r\nconst BlockLink: React.FC = ({\r\n to = null,\r\n type = '',\r\n id = '',\r\n isActive = false,\r\n newWindow = false,\r\n title = '',\r\n ...props\r\n}) => {\r\n const [clicked, setClicked] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n\r\n const [delay, setDelay] = useState(500);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n useTimeout(() => {\r\n setClicked(false);\r\n }, triggerTimeout ? delay : null);\r\n\r\n const handleClick = () => {\r\n if (props.onClick)\r\n props.onClick();\r\n setTriggerTimeout(false);\r\n setClicked(true);\r\n setTriggerTimeout(true);\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!hovering)\r\n setHovering(true);\r\n if (to != null)\r\n preloadRouteComponent(to);\r\n if (props.onMouseEnter)\r\n props.onMouseEnter();\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (hovering || clicked) {\r\n setHovering(false);\r\n setClicked(false);\r\n }\r\n if (props.onMouseLeave)\r\n props.onMouseLeave();\r\n };\r\n\r\n const inputProps: { [k: string]: any } = {\r\n id,\r\n onClick: handleClick,\r\n onMouseEnter: handleMouseEnter,\r\n onMouseLeave: handleMouseLeave,\r\n target: (newWindow ? '_blank' : null),\r\n rel: (newWindow ? 'noopener' : null),\r\n title,\r\n };\r\n\r\n if (to == null)\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n else if (type === 'classic')\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n else\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n\r\n};\r\n\r\nexport default BlockLink;\r\n","import { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useSpring } from '@react-spring/web';\r\n\r\nimport * as fromPageScroll from 'store/PageScroll';\r\nimport { scrollbarWidth } from '@xobotyi/scrollbar-width';\r\n\r\nexport function useDisabledScrollWidth() {\r\n // const pageScrollEnabled = useSelector(fromPageScroll.getEnabled);\r\n\r\n const [width, setWidth] = useSpring(() => ({ width: 0, immediate: true }));\r\n // // const [width, setWidth] = useState(0);\r\n // useEffect(() => {\r\n // // setWidth(pageScrollEnabled ? 0 : scrollbarWidth());\r\n // setWidth({ width: pageScrollEnabled ? 0 : scrollbarWidth(), immediate: true });\r\n // }, [pageScrollEnabled]);\r\n\r\n return width;\r\n}\r\n","const mapObject = (object, callback) => {\r\n return Object.keys(object).map(key => {\r\n return callback(key, object[key]);\r\n });\r\n};\r\n\r\nexport default mapObject;\r\n","module.exports = (__webpack_require__(8))(591);","import _mapObject from \"./mapObject\";\r\nexport const mapObject = _mapObject;\r\n\r\nimport _fillArray from \"./fillArray\";\r\nexport const fillArray = _fillArray;\r\n\r\nimport _usePrevious from \"./usePrevious\";\r\nexport const usePrevious = _usePrevious;\r\n\r\nimport _useLatest from \"./useLatest\";\r\nexport const useLatest = _useLatest;\r\n\r\nimport _useInterval from \"./useInterval\";\r\nexport const useInterval = _useInterval;\r\n\r\nimport _useTimeout from \"./useTimeout\";\r\nexport const useTimeout = _useTimeout;\r\n\r\nimport _dragUtils from \"./dragUtils\";\r\nexport const dragUtils = _dragUtils;\r\n\r\n//export const windowScrollTop = (typeof window !== 'undefined' ? window.scrollY : 0);\r\n\r\nexport const generateUid = () => ((Date.now().toString(36) + Math.random().toString(36).substr(2, 5)).toUpperCase());\r\n\r\nexport const hashCode = (value: string) => {\r\n let hash = 0;\r\n if (value.length === 0) {\r\n return hash;\r\n }\r\n for (let i = 0; i < value.length; i++) {\r\n const char = value.charCodeAt(i);\r\n // tslint:disable-next-line\r\n hash = ((hash << 5) - hash) + char;\r\n // tslint:disable-next-line\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return hash.toString();\r\n};\r\n\r\nexport const uuidv4 = () => {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n // tslint:disable-next-line\r\n const r = Math.random() * 16 | 0;\r\n // tslint:disable-next-line\r\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n};\r\n\r\nexport const getPixelRatio = context => {\r\n const backingStore =\r\n context.backingStorePixelRatio ||\r\n context.webkitBackingStorePixelRatio ||\r\n context.mozBackingStorePixelRatio ||\r\n context.msBackingStorePixelRatio ||\r\n context.oBackingStorePixelRatio ||\r\n context.backingStorePixelRatio ||\r\n 1;\r\n\r\n return (window.devicePixelRatio || 1) / backingStore;\r\n};\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\n// import { useTrail, SpringConfig, Controller, UseTrailProps, Valid, PickAnimated, SpringValues, SpringRef } from '@react-spring/web';\r\nimport { useTrail, SpringConfig } from \"@react-spring/web\";\r\nimport { animateInSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\nimport { useLatest } from \"utils/index\";\r\n\r\nexport interface IAnimateInProps {\r\n animationReady: boolean;\r\n}\r\n\r\nexport interface INotify {\r\n index: number;\r\n threshold?: number;\r\n}\r\n\r\nexport const fillNotifyArray = (\r\n amount: number = 1,\r\n initial: number = 0,\r\n gap: number = 1,\r\n threshold: number = 0\r\n) => {\r\n const notify: INotify[] = [];\r\n for (let i = 0; i < amount; i++) {\r\n notify.push({\r\n index: initial + i * gap,\r\n threshold,\r\n });\r\n }\r\n return notify;\r\n};\r\n\r\ninterface ITrailConfig {\r\n notify?: INotify[];\r\n immediate?: boolean;\r\n default?: boolean;\r\n customSpringConfig?: SpringConfig;\r\n}\r\n\r\nexport const useAnimateInTrail = (\r\n animateInStatus: boolean = false,\r\n amount: number = 1,\r\n config: ITrailConfig = {\r\n notify: [],\r\n immediate: false,\r\n default: false,\r\n customSpringConfig: {},\r\n }\r\n) => {\r\n const { notify, customSpringConfig, immediate, default: defaultt } = config;\r\n const latestNotify = useLatest(notify);\r\n\r\n const springConfig: SpringConfig = {\r\n ...(customSpringConfig !== {} ? customSpringConfig : animateInSpringConfig),\r\n mass: 1,\r\n clamp: true,\r\n };\r\n\r\n const started = useRef([]);\r\n const latestTriggerStart = useRef([]);\r\n const [triggerStart, setTriggerStart] = useState([]);\r\n\r\n const [animateInTrail, animateInTrailApi] = useTrail(amount, () => ({\r\n active: 1,\r\n from: { active: 0 },\r\n immediate,\r\n default: defaultt,\r\n config: springConfig,\r\n onChange: {\r\n active: (result: number, ctrl) => {\r\n if (started.current.indexOf(ctrl.id) == -1)\r\n started.current.push(ctrl.id);\r\n const currentIndex = started.current.indexOf(ctrl.id);\r\n const notifyProps =\r\n latestNotify.current !== undefined\r\n ? latestNotify.current.filter(\r\n (item) => item.index === currentIndex\r\n )[0]\r\n : undefined;\r\n if (notifyProps != undefined) {\r\n // Means we are looking to track this index\r\n const threshold =\r\n notifyProps.threshold > 0 ? notifyProps.threshold : 0;\r\n if (\r\n result > threshold &&\r\n latestTriggerStart.current.indexOf(currentIndex) === -1\r\n ) {\r\n const newTriggerStart = [\r\n ...latestTriggerStart.current,\r\n currentIndex,\r\n ];\r\n latestTriggerStart.current = newTriggerStart;\r\n // flushSync(() => { // WRAP IN flushSync FOR NEWER VERSIONS OF REACT TO ESCAPE STATE BATCHING INSTEAD OF SETTIMEOUT\r\n setTimeout(() => setTriggerStart(newTriggerStart), 1);\r\n // });\r\n }\r\n }\r\n },\r\n },\r\n }));\r\n\r\n const hasStarted = (index: number) => triggerStart.indexOf(index) > -1;\r\n\r\n useEffect(() => {\r\n // @ts-ignore\r\n animateInTrailApi.start({\r\n active: animateInStatus ? 1 : 0,\r\n });\r\n }, [animateInStatus]);\r\n\r\n type IReturnValues = [any, (index: number) => boolean, any];\r\n\r\n const returnValues: IReturnValues = [\r\n animateInTrail,\r\n hasStarted,\r\n animateInTrailApi,\r\n ];\r\n\r\n return returnValues;\r\n};\r\n","import _BlockLink from './BlockLink/BlockLink';\r\nexport const BlockLink = _BlockLink;\r\n\r\nexport { ButtonLink, IOwnSpecificProps as IButtonLinkProps} from './ButtonLink/ButtonLink';\r\n\r\nimport _SimpleLink from './SimpleLink/SimpleLink';\r\nexport const SimpleLink = _SimpleLink;\r\n\r\nimport _TriggerLink from './TriggerLink/TriggerLink';\r\nexport const TriggerLink = _TriggerLink;\r\n","module.exports = (__webpack_require__(8))(620);","module.exports = (__webpack_require__(8))(198);","import React from \"react\";\r\n\r\nexport type IIconTypes = \"logotext\" | \"logomark\";\r\n\r\ninterface IOwnSpecificProps {\r\n type: IIconTypes;\r\n color?: string;\r\n}\r\n\r\ntype IOwnProps = IOwnSpecificProps;\r\n\r\ntype IProps = IOwnProps;\r\n\r\nexport const Logo: React.FC = ({ type, color, ...props }) => {\r\n const svgProps = {\r\n className: \"logoSvg\",\r\n style: {\r\n fill: color,\r\n },\r\n };\r\n\r\n switch (type) {\r\n case \"logotext\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n case \"logomark\":\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = type;\r\n }\r\n};\r\n","module.exports = (__webpack_require__(8))(661);","import { Reducer } from \"redux\";\r\nimport { IApplicationState } from \"./index\";\r\n\r\nimport { createSelector } from \"reselect\";\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface IViewportState {\r\n pageHeight: number;\r\n height: number;\r\n width: number;\r\n entranceOffsetScale: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n UPDATE_PAGE_HEIGHT = \"UPDATE_PAGE_HEIGHT\",\r\n UPDATE_VIEWPORT_HEIGHT = \"UPDATE_VIEWPORT_HEIGHT\",\r\n UPDATE_VIEWPORT_WIDTH = \"UPDATE_VIEWPORT_WIDTH\",\r\n DEFAULT_ACTION = \"DEFAULT_ACTION\", // This is needed otherwise the reducer has a problem for some reason\r\n}\r\n\r\ninterface IUpdatePageHeightAction {\r\n type: keys.UPDATE_PAGE_HEIGHT;\r\n height: number;\r\n}\r\ninterface IUpdateViewportHeightAction {\r\n type: keys.UPDATE_VIEWPORT_HEIGHT;\r\n height: number;\r\n}\r\ninterface IUpdateViewportWidthAction {\r\n type: keys.UPDATE_VIEWPORT_WIDTH;\r\n width: number;\r\n offsetScale: number;\r\n}\r\ninterface IDefaultAction {\r\n type: keys.DEFAULT_ACTION;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction =\r\n | IUpdatePageHeightAction\r\n | IUpdateViewportHeightAction\r\n | IUpdateViewportWidthAction\r\n | IDefaultAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const actionCreators = {\r\n updatePageHeight: (height: number) => (dispatch) => {\r\n dispatch({ type: keys.UPDATE_PAGE_HEIGHT, height });\r\n },\r\n updateViewportHeight: (height: number) => (dispatch) => {\r\n dispatch({ type: keys.UPDATE_VIEWPORT_HEIGHT, height });\r\n },\r\n updateViewportWidth: (width: number) => (dispatch) => {\r\n let offsetScale: number;\r\n if (width >= 2560) offsetScale = 150 / 150;\r\n else if (width >= 1920) offsetScale = 130 / 150;\r\n else if (width >= 1280) offsetScale = 110 / 150;\r\n else if (width >= 1024) offsetScale = 100 / 150;\r\n else if (width >= 768) offsetScale = 80 / 150;\r\n else offsetScale = 40 / 150;\r\n\r\n dispatch({ type: keys.UPDATE_VIEWPORT_WIDTH, width, offsetScale });\r\n },\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (\r\n state: IViewportState,\r\n action: IKnownAction\r\n) => {\r\n switch (action.type) {\r\n case keys.UPDATE_VIEWPORT_HEIGHT:\r\n return {\r\n ...state,\r\n height: action.height,\r\n };\r\n case keys.UPDATE_VIEWPORT_WIDTH:\r\n return {\r\n ...state,\r\n width: action.width,\r\n entranceOffsetScale: action.offsetScale,\r\n };\r\n case keys.UPDATE_PAGE_HEIGHT:\r\n return {\r\n ...state,\r\n pageHeight: action.height,\r\n };\r\n case keys.DEFAULT_ACTION:\r\n return {\r\n ...state,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return (\r\n state || {\r\n pageHeight: null,\r\n height: null,\r\n width: null,\r\n entranceOffsetScale: 1,\r\n }\r\n );\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst viewportSelector = (state: IApplicationState) => state.viewport;\r\n\r\nexport const getViewport = createSelector([viewportSelector], (viewport) => {\r\n //console.log(\"Output selector running: getViewport\");\r\n return viewport;\r\n});\r\n\r\nconst pageHeightSelector = (state: IApplicationState) =>\r\n viewportSelector(state).pageHeight;\r\nexport const getPageHeight = createSelector(\r\n [pageHeightSelector],\r\n (pageHeight) => {\r\n //console.log(\"Output selector running: getPageHeight\");\r\n return pageHeight;\r\n }\r\n);\r\n\r\nconst heightSelector = (state: IApplicationState) =>\r\n viewportSelector(state).height;\r\nexport const getHeight = createSelector([heightSelector], (height) => {\r\n //console.log(\"Output selector running: getHeight\");\r\n return height;\r\n});\r\n\r\nconst widthSelector = (state: IApplicationState) =>\r\n viewportSelector(state).width;\r\nexport const getWidth = createSelector([widthSelector], (width) => {\r\n //console.log(\"Output selector running: getWidth\");\r\n return width;\r\n});\r\n\r\nconst entranceOffsetScaleSelector = (state: IApplicationState) =>\r\n viewportSelector(state).entranceOffsetScale;\r\nexport const getEntranceOffsetScale = createSelector(\r\n [entranceOffsetScaleSelector],\r\n (entranceOffsetScale) => {\r\n console.log(\"Output selector running: getEntranceOffsetScale\");\r\n return entranceOffsetScale;\r\n }\r\n);\r\n","const fillArray = (value: any, len: number) => {\r\n const arr = [];\r\n for (let i = 0; i < len; i++) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n};\r\n\r\nexport default fillArray;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst usePrevious = value => {\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref.current;\r\n};\r\n\r\nexport default usePrevious;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst useLatest = value => {\r\n const ref = useRef(value);\r\n\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n\r\n return ref;\r\n};\r\n\r\nexport default useLatest;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst useInterval = (callback, delay) => {\r\n const savedCallback = useRef(null);\r\n\r\n // Remember the latest callback.\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // Set up the interval.\r\n useEffect(() => {\r\n function tick() {\r\n savedCallback.current();\r\n }\r\n if (delay !== null) {\r\n const id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [delay]);\r\n};\r\n\r\nexport default useInterval;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst useTimeout = (callback, delay) => {\r\n const savedCallback = useRef(null);\r\n\r\n // Remember the latest callback.\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // Set up the timeout.\r\n useEffect(() => {\r\n function tick() {\r\n savedCallback.current();\r\n }\r\n if (delay !== null) {\r\n const id = setTimeout(tick, delay);\r\n return () => clearTimeout(id);\r\n }\r\n }, [delay]);\r\n};\r\n\r\nexport default useTimeout;\r\n","// Most of these are taken from https://github.com/react-spring/react-use-gesture/issues/109\r\n\r\n// percent should be between 0 and 1\r\nexport const range = (start, end, percent) => (end - start) * percent + start;\r\n\r\nexport const clamp = (min, max, val) => Math.max(Math.min(val, max), min);\r\n\r\n// take a number (\"val\") in between the two numbers in arr1, and map it to a number in between the two numbers in arr2\r\nexport const rangeMap = (arr1, arr2, val) => {\r\n const percent = (val - arr1[0]) / (arr1[1] - arr1[0]);\r\n return range(arr2[0], arr2[1], percent);\r\n};\r\n\r\n// rangeMap with a guarantee that the returned number will be inside the bounds of arr2\r\nexport const clampedRangeMap = (arr1, arr2, val) => {\r\n const min = arr2[0] < arr2[1] ? arr2[0] : arr2[1];\r\n const max = min === arr2[0] ? arr2[1] : arr2[0];\r\n return clamp(min, max, rangeMap(arr1, arr2, val));\r\n};\r\n\r\n// https://twitter.com/chpwn/status/285540192096497664\r\n// iOS constant = 0.55\r\nexport const rubberBand = (distance, dimension, constant = 0.15) => {\r\n return (distance * dimension * constant) / (dimension + constant * distance);\r\n};\r\n\r\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\r\nexport const rubberband2 = (offset, constant = 0.7) => Math.pow(offset, constant);\r\n\r\nexport const rubberBandIfOutOfBounds = (min, max, delta, constant) => {\r\n if (delta < min) {\r\n return -rubberBand(min - delta, max - min, constant) + min;\r\n }\r\n if (delta > max) {\r\n return rubberBand(delta - max, max - min, constant) + max;\r\n }\r\n return delta;\r\n};\r\n\r\nexport const decelerationRates = {\r\n fast: 0.99,\r\n normal: 0.998,\r\n};\r\n\r\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\r\n// note: velocity in UIkit is points per second, but react use gesture gives px per millisecond,\r\n// so we can simplify somewhat\r\nexport const projection = (initialVelocity, rateName = \"normal\") => {\r\n const decelerationRate = decelerationRates[rateName] || rateName;\r\n return (initialVelocity * decelerationRate) / (1 - decelerationRate);\r\n};\r\n\r\nexport const findNearestNumberInArray = (n, arr) => {\r\n const sortedArr = [...arr].sort((a, b) => a - b);\r\n if (n <= sortedArr[0]) return sortedArr[0];\r\n if (n >= sortedArr[arr.length - 1]) return sortedArr[arr.length - 1];\r\n\r\n for (let i = 1; i < sortedArr.length; i++) {\r\n const prev = sortedArr[i - 1];\r\n const current = sortedArr[i];\r\n if (current === n) return current;\r\n if (current > n && prev < n) {\r\n return current - n < n - prev ? current : prev;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport default {\r\n range,\r\n clamp,\r\n rangeMap,\r\n clampedRangeMap,\r\n rubberBand,\r\n rubberband2,\r\n rubberBandIfOutOfBounds,\r\n decelerationRates,\r\n projection,\r\n findNearestNumberInArray,\r\n};\r\n","module.exports = (__webpack_require__(8))(601);","module.exports = (__webpack_require__(8))(618);","module.exports = (__webpack_require__(8))(627);","module.exports = (__webpack_require__(8))(784);","module.exports = (__webpack_require__(8))(806);","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { useTimeout } from 'utils/Index';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { useSpring, a, SpringConfig } from '@react-spring/web';\r\nimport { defaultSpringConfig } from 'components/Animations/SpringProperties/SpringProperties';\r\n\r\nimport { preloadRouteComponent } from 'app/routes';\r\n\r\ninterface IProps {\r\n to?: string;\r\n size?: string;\r\n type?: string;\r\n scheme?: string;\r\n id?: string;\r\n isActive?: boolean;\r\n onClick?: () => void;\r\n newWindow?: boolean;\r\n title: string;\r\n}\r\n\r\nconst SimpleLink: React.FC = ({\r\n to = null,\r\n type = '',\r\n size = 'normal',\r\n scheme,\r\n id = '',\r\n isActive = false,\r\n newWindow = false,\r\n title = '',\r\n ...props\r\n}) => {\r\n const [clicked, setClicked] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n\r\n const [delay, setDelay] = useState(500);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n useTimeout(() => {\r\n setClicked(false);\r\n }, triggerTimeout ? delay : null);\r\n\r\n const handleClick = () => {\r\n if (props.onClick)\r\n props.onClick();\r\n setTriggerTimeout(false);\r\n setClicked(true);\r\n setTriggerTimeout(true);\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!hovering)\r\n setHovering(true);\r\n if (to != null)\r\n preloadRouteComponent(to);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (hovering || clicked) {\r\n setHovering(false);\r\n setClicked(false);\r\n }\r\n };\r\n\r\n const inputProps: { [k: string]: any } = {\r\n className: classNames(\r\n 'simple-link',\r\n size,\r\n { scheme: scheme != null },\r\n { active: isActive },\r\n ),\r\n id,\r\n onClick: handleClick,\r\n onMouseEnter: handleMouseEnter,\r\n onMouseLeave: handleMouseLeave,\r\n target: (newWindow ? '_blank' : null),\r\n rel: (newWindow ? 'noopener' : null),\r\n title,\r\n };\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 340,\r\n friction: 36,\r\n };\r\n\r\n const [hoveringSpring, setHoveringSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setHoveringSpring({\r\n x: hovering ? 100 : 0,\r\n });\r\n }, [hovering]);\r\n\r\n const underlineStyles = {\r\n width: hoveringSpring.x.to(x => `calc(${x} * 1%)`),\r\n };\r\n\r\n const LinkUnderline = ;\r\n\r\n const LinkText = {props.children};\r\n\r\n if (to == null)\r\n return (\r\n
\r\n {LinkUnderline}\r\n {LinkText}\r\n
\r\n );\r\n else if (type === 'classic')\r\n return (\r\n \r\n {LinkUnderline}\r\n {LinkText}\r\n \r\n );\r\n else\r\n return (\r\n \r\n {LinkUnderline}\r\n {LinkText}\r\n \r\n );\r\n\r\n};\r\n\r\nexport default SimpleLink;\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n//const seoImages = {\r\n// openGraph: [\r\n// 'open-graph-blue.png',\r\n// 'open-graph-green.png',\r\n// 'open-graph-red.png',\r\n// 'open-graph-yellow.png',\r\n// ],\r\n// twitter: [\r\n// 'twitter-card-blue.png',\r\n// 'twitter-card-green.png',\r\n// 'twitter-card-red.png',\r\n// 'twitter-card-yellow.png',\r\n// ],\r\n// google: [\r\n// 'google-blue.png',\r\n// 'google-green.png',\r\n// 'google-red.png',\r\n// 'google-yellow.png',\r\n// ],\r\n//};\r\n\r\nconst seoImages = {\r\n openGraph: 'open-graph-blue.png',\r\n twitter: 'twitter-card-blue.png',\r\n google: 'google-blue.png',\r\n};\r\n\r\nconst siteName = 'Qore';\r\n\r\nconst seoImageURL = file => `https://s3.amazonaws.com/tmc-site-assets/graphics/${file}`;\r\n//const seoURL = path => Meteor.absoluteUrl(path);\r\nconst seoURL = path => 'https://www.qorestudio.com' + path;\r\n\r\nconst getMetaTags = ({\r\n title, description, url, contentType, published, updated, category, tags, twitter,\r\n}) => {\r\n const metaTags = [\r\n { charset: 'utf-8' },\r\n\r\n { itemprop: 'name', content: title },\r\n { itemprop: 'description', content: description },\r\n //{ itemprop: 'image', content: seoImageURL(_.sample(seoImages.google)) },\r\n { itemprop: 'image', content: seoImageURL(seoImages.google) },\r\n\r\n { name: 'viewport', content: 'width=device-width, initial-scale=1.0' },\r\n { name: 'application-name', content: siteName },\r\n { name: 'author', content: siteName },\r\n { name: 'theme-color', content: '#161616' },\r\n { name: 'msapplication-TileColor', content: '#161616' },\r\n { name: 'msapplication-TileImage', content: '/ms-icon-144x144.png' },\r\n { name: 'description', content: description },\r\n { name: 'google-site-verification', content: 'FaWrracvvD6ReRwmq_KBjq3RMnd42fRaVn5s3nd2cGI'},\r\n\r\n //{ name: 'twitter:card', content: 'summary_large_image' },\r\n //{ name: 'twitter:site', content: '@themeteorchef' },\r\n //{ name: 'twitter:title', content: `${title} | ${siteName}` },\r\n //{ name: 'twitter:description', content: description },\r\n //{ name: 'twitter:creator', content: twitter || '@themeteorchef' },\r\n ////{ name: 'twitter:image:src', content: seoImageURL(_.sample(seoImages.twitter)) },\r\n //{ name: 'twitter:image:src', content: seoImageURL(seoImages.twitter) },\r\n\r\n //{ name: 'og:title', content: `${title} | ${siteName}` },\r\n //{ name: 'og:type', content: contentType },\r\n //{ name: 'og:url', content: url },\r\n ////{ name: 'og:image', content: seoImageURL(_.sample(seoImages.openGraph)) },\r\n //{ name: 'og:image', content: seoImageURL(seoImages.openGraph) },\r\n //{ name: 'og:description', content: description },\r\n //{ name: 'og:site_name', content: siteName },\r\n\r\n //{ name: 'fb:app_id', content: '' },\r\n ];\r\n\r\n if (published) metaTags.push({ name: 'article:published_time', content: published });\r\n if (updated) metaTags.push({ name: 'article:modified_time', content: updated });\r\n if (category) metaTags.push({ name: 'article:section', content: category });\r\n if (tags) {\r\n metaTags.push({ name: 'article:tag', content: tags });\r\n metaTags.push({ name: 'keywords', content: tags });\r\n }\r\n\r\n return metaTags;\r\n};\r\n\r\nexport interface ITags {\r\n imageName: string;\r\n}\r\n\r\ninterface ISpecificProps {\r\n schema?: string;\r\n title?: string;\r\n description?: string;\r\n contentType?: string;\r\n published?: string;\r\n updated?: string;\r\n category?: string;\r\n tags?: string[];\r\n twitter?: string;\r\n}\r\n\r\ntype IProps = ISpecificProps;\r\n\r\nconst SEOHelmetComponent: React.FC = ({ schema, title, description, contentType, published, updated, category, tags, twitter, ...props }) => {\r\n const location = useLocation();\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const SEOHelmet = SEOHelmetComponent;\r\n","import { useCallback } from 'react';\r\nimport { useSpring } from '@react-spring/web';\r\n\r\nexport const useInertialSpring = (initialProps): [any, ({ config, ...to }: any) => void] => {\r\n const [props, inertialSpringApi] = useSpring(() => initialProps);\r\n\r\n const setInertia = useCallback(\r\n ({\r\n config = { inertia: false },\r\n ...to\r\n }) => {\r\n const { inertia, bounds, velocity, ...rest } = config;\r\n if (inertia) {\r\n inertialSpringApi.start({\r\n ...to,\r\n onChange: values => {\r\n Object.entries(values.value).forEach(([key, v]) => {\r\n const vel = props[key].velocity;\r\n const bound =\r\n v >= bounds[key][1]\r\n ? bounds[key][1]\r\n : v <= bounds[key][0]\r\n ? bounds[key][0]\r\n : undefined;\r\n if (bound !== undefined) {\r\n props[key].stop();\r\n inertialSpringApi.start({ [key]: bound, config: { decay: false, velocity: vel } });\r\n }\r\n });\r\n },\r\n config: k => ({ decay: true, velocity: velocity[k] }),\r\n });\r\n }\r\n else {\r\n inertialSpringApi.start({ ...to, config: rest });\r\n }\r\n },\r\n [props, inertialSpringApi],\r\n );\r\n\r\n return [props, setInertia];\r\n};\r\n","import React, {\r\n useState,\r\n forwardRef,\r\n useRef,\r\n useImperativeHandle,\r\n useEffect,\r\n} from \"react\";\r\n\r\nimport {\r\n useSpring,\r\n a,\r\n to as springTo,\r\n SpringConfig,\r\n SpringValue,\r\n} from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport { useAnimateInTrail } from \"hooks/useAnimateInTrail\";\r\n\r\nimport BlockLink from \"components/Links/BlockLink/BlockLink\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { useTimeout } from \"utils/Index\";\r\n\r\nimport { preloadRouteComponent } from \"app/routes\";\r\n\r\nexport type IBackgroundShade = \"light\" | \"dark\";\r\nexport type IAlign = \"left\" | \"right\";\r\n\r\ninterface IOwnSpecificProps {\r\n to?: string;\r\n backgroundShade?: \"light\" | \"dark\";\r\n animateIn?: boolean;\r\n animationReady?: boolean;\r\n onClick?: () => void;\r\n onMouseEnter?(): void;\r\n onMouseLeave?(): void;\r\n title: string;\r\n styles?: object;\r\n}\r\n\r\ntype IOwnProps = IOwnSpecificProps;\r\n\r\ntype IProps = IOwnProps;\r\n\r\nconst TriggerLink: React.FC = ({\r\n animationReady,\r\n animateIn,\r\n styles,\r\n backgroundShade,\r\n title,\r\n to,\r\n ...props\r\n}) => {\r\n const [clicked, setClicked] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n\r\n const [delay, setDelay] = useState(500);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n useTimeout(\r\n () => {\r\n setClicked(false);\r\n },\r\n triggerTimeout ? delay : null\r\n );\r\n\r\n const handleClick = () => {\r\n if (props.onClick) props.onClick();\r\n setTriggerTimeout(false);\r\n setClicked(true);\r\n setTriggerTimeout(true);\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!hovering) setHovering(true);\r\n preloadRouteComponent(to);\r\n if (props.onMouseEnter) props.onMouseEnter();\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (hovering || clicked) {\r\n setHovering(false);\r\n setClicked(false);\r\n }\r\n if (props.onMouseLeave) props.onMouseLeave();\r\n };\r\n\r\n const [animateInTrail] = useAnimateInTrail(animateIn && animationReady, 2);\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 340,\r\n friction: 36,\r\n };\r\n\r\n const [activeSpring, setActiveSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setActiveSpring({ x: hovering ? 1 : 0 });\r\n }, [hovering]);\r\n\r\n const largeTriggerStyles = {\r\n width: springTo(\r\n [animateInTrail[1].active, activeSpring.x],\r\n (an, x) => `calc((${x} * (100% - 50px)) + 46px + (${an} * 10px))`\r\n ),\r\n height: springTo(\r\n [animateInTrail[1].active, activeSpring.x],\r\n (an, x) => `calc((${x} * (100% - 50px)) + 46px + (${an} * 10px))`\r\n ),\r\n opacity: animateInTrail[1].active,\r\n };\r\n\r\n const smallTriggerStyles = {\r\n width: springTo(\r\n [animateInTrail[0].active, activeSpring.x],\r\n (an, x) => `calc((${x} * (100% - 8px)) + 4px + (${an} * 4px))`\r\n ),\r\n height: springTo(\r\n [animateInTrail[0].active, activeSpring.x],\r\n (an, x) => `calc((${x} * (100% - 8px)) + 4px + (${an} * 4px))`\r\n ),\r\n opacity: animateInTrail[0].active,\r\n };\r\n\r\n const labelStyles = {\r\n opacity: activeSpring.x,\r\n };\r\n\r\n return (\r\n
\r\n \r\n
{title}
\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TriggerLink;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSpring, SpringConfig } from \"@react-spring/web\";\r\n\r\nexport const useScrollTarget = (\r\n cancelAnimationOnManualScroll = true,\r\n onComplete: (restValues: object) => void = (restValues) => null,\r\n onStop: () => void = () => null\r\n) => {\r\n const [target, setTarget] = useState(null);\r\n\r\n const springConfig: SpringConfig = {\r\n mass: 1,\r\n tension: 270,\r\n friction: 36,\r\n clamp: true,\r\n precision: 0.01,\r\n velocity: 0,\r\n //duration: undefined,\r\n easing: (t) => t,\r\n };\r\n\r\n const scrollRest = (restValues: object) => {\r\n if (onComplete != null) onComplete(restValues);\r\n };\r\n\r\n const [, targetSpringApi] = useSpring(() => ({\r\n y: -200,\r\n config: springConfig,\r\n onRest: (restValues) => scrollRest(restValues),\r\n default: true,\r\n }));\r\n\r\n useEffect(() => {\r\n if (target == null) {\r\n // targetSpringApi.stop(); // TODO: THIS NEEDS TO BE LOOKED AT AND FIXED TO WORK WITH REACT-SPRING 9.1.2\r\n if (onStop != null) onStop();\r\n } else\r\n targetSpringApi({\r\n y: target,\r\n reset: true,\r\n from: { y: window.scrollY },\r\n onChange: (result) => window.scroll(0, result.value.y as any),\r\n });\r\n }, [target]);\r\n\r\n useEffect(() => {\r\n if (cancelAnimationOnManualScroll) {\r\n // Setup event listeners on initial mount for cancelling scroll animations if the user is still scrolling\r\n const handleScroll = (event) => {\r\n setTarget(null);\r\n };\r\n\r\n window.addEventListener(\"wheel\", handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"wheel\", handleScroll);\r\n };\r\n }\r\n }, []);\r\n\r\n return setTarget;\r\n};\r\n","//import 'babel-polyfill';\r\nimport { Reducer } from 'redux';\r\nimport { IApplicationState } from './index';\r\n\r\nimport { IIconTypes } from 'components/Icon/Icon';\r\n\r\nimport { createSelector } from 'reselect';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport type IBackgroundShade = 'light' | 'dark';\r\n\r\nexport interface IProjectImages {\r\n logoDark?: string;\r\n logoLight?: string;\r\n home?: string;\r\n logomarkBackground?: string;\r\n nextProjectBackground?: string;\r\n detailsHeroBackground?: string;\r\n detailsHeroFeaturedBackground?: string;\r\n}\r\n\r\nexport interface IProjectOverview {\r\n backgroundShade: IBackgroundShade;\r\n titleColor: string;\r\n overview: string;\r\n role: string[];\r\n year: string;\r\n}\r\n\r\nexport interface IProjectChallenge {\r\n backgroundShade: IBackgroundShade;\r\n backgroundColor: string;\r\n challenge: string;\r\n}\r\n\r\nexport interface IBulletpoint {\r\n icon: IIconTypes;\r\n label: string;\r\n}\r\n\r\nexport type IContentPaddingLevels = 'large' | 'medium' | 'small' | 'none';\r\n\r\nexport interface IBulletPoints {\r\n color: string;\r\n list: IBulletpoint[];\r\n}\r\n\r\n// ------------------------------------------------------------- Image Properties\r\n\r\nexport interface IImage {\r\n url: string;\r\n alt: string;\r\n heightRatio?: number;\r\n}\r\n\r\n// ------------------------------------------------------------- Video Properties\r\n\r\nexport interface IVideo {\r\n url: string;\r\n heightRatio?: number;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Image Board\r\n\r\nexport interface IContentImageBoardContent {\r\n type: 'image' | 'video';\r\n details: IImage | IVideo;\r\n}\r\n\r\nexport type IContentImageBoardVariations =\r\n 'threeScattered'\r\n | 'citiesOfTheFutureClips'\r\n | 'twoOnOne';\r\n\r\nexport interface IContentImageBoardSection {\r\n variation: IContentImageBoardVariations;\r\n content: IContentImageBoardContent[];\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Image Slider\r\n\r\nexport interface IContentImageSliderDefaultItem extends IImage {\r\n //tileHeight: 'xs' | 's' | 'm' | 'l' | 'xl';\r\n tileWidth: 'xs' | 's' | 'm' | 'l' | 'xl';\r\n backgroundColor?: string;\r\n content?: JSX.Element;\r\n}\r\n\r\nexport interface IContentImageSliderDefaultRow {\r\n images: IContentImageSliderDefaultItem[];\r\n}\r\n\r\nexport interface IContentImageSliderDefault {\r\n rows: IContentImageSliderDefaultRow[];\r\n}\r\n\r\nexport type IContentImageSliderVariations =\r\n 'default';\r\n\r\nexport type IContentImageSliderVariationContent = IContentImageSliderDefault;\r\n\r\nexport interface IContentImageSliderSection {\r\n variation: IContentImageSliderVariations;\r\n content: IContentImageSliderVariationContent;\r\n dragHand: boolean;\r\n backgroundColor: string;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Image Reveal Slider\r\n\r\nexport interface IContentImageRevealSliderSectionImage {\r\n title: string;\r\n image: IImage;\r\n}\r\n\r\nexport interface IContentImageRevealSliderSection {\r\n variation: 'default';\r\n leftImage: IContentImageRevealSliderSectionImage;\r\n rightImage: IContentImageRevealSliderSectionImage;\r\n backgroundColor: string;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Massive Scrolling Image Layout\r\n\r\nexport interface IContentMassiveScrollingImage extends IImage {\r\n width: string;\r\n imageOffset: string;\r\n}\r\n\r\nexport interface IContentMassiveScrollingImages {\r\n angle: number;\r\n images: IContentMassiveScrollingImage[];\r\n}\r\n\r\nexport type IContentMassiveScrollingImageVariations =\r\n 'angledHorizontal';\r\n\r\nexport interface IContentMassiveScrollingImageSection {\r\n variation: IContentMassiveScrollingImageVariations;\r\n content: IContentMassiveScrollingImages;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Stepped Layout\r\n\r\nexport interface IContentSteppedLayoutParallaxTile {\r\n text: string;\r\n image: IImage;\r\n overlayTileColor: string;\r\n}\r\n\r\nexport interface IContentSteppedLayoutSingleImage extends IImage {\r\n imageOffset: string;\r\n}\r\n\r\nexport type IContentSteppedLayoutVariations =\r\n 'singleImage'\r\n | 'parallaxTile';\r\n\r\nexport type IContentSteppedLayoutVariationListItem =\r\n IContentSteppedLayoutSingleImage\r\n | IContentSteppedLayoutParallaxTile;\r\n\r\nexport interface IContentSteppedLayoutSection {\r\n variation: IContentSteppedLayoutVariations;\r\n listItems: IContentSteppedLayoutVariationListItem[];\r\n backgroundImage: IImage;\r\n backgroundColor: string;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Timeline\r\n\r\nexport interface IContentTimelineBar {\r\n text: string;\r\n startStage: number;\r\n endStage: number;\r\n backgroundColor: string;\r\n}\r\n\r\nexport interface IContentTimeline {\r\n bars: IContentTimelineBar[];\r\n lineColor: string;\r\n stageTextColor: string;\r\n backgroundColor: string;\r\n}\r\n\r\nexport type IContentTimelineVariations =\r\n 'default';\r\n\r\nexport interface IContentTimelineSection {\r\n variation: IContentTimelineVariations;\r\n content: IContentTimeline;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Brand Board\r\n\r\nexport interface IContentBrandBoardImages {\r\n darkLogomark: IImage;\r\n lightLogo: IImage;\r\n}\r\n\r\nexport type IContentBrandBoardTypography = 'chapazaRegular' | 'latoRegular' | 'latoLight';\r\nexport type IContentBrandBoardFont = 'chapaza' | 'lato';\r\nexport type IContentBrandBoardWeight = 'regular' | 'bold' | 'italic' | 'boldItalic';\r\n\r\nexport interface IContentBrandBoardBrandColor {\r\n hexCode: string;\r\n shade: 'light' | 'dark';\r\n}\r\n\r\nexport interface IContentBrandBoardJLRTitle {\r\n font: IContentBrandBoardFont;\r\n weights: IContentBrandBoardWeight[];\r\n exampleText: string;\r\n}\r\n\r\nexport interface IContentBrandBoardJLRBody {\r\n font: IContentBrandBoardFont;\r\n exampleText: string;\r\n}\r\n\r\nexport interface IContentBrandBoardJLR {\r\n brandColors: IContentBrandBoardBrandColor[];\r\n titleType: IContentBrandBoardJLRTitle;\r\n bodyType: IContentBrandBoardJLRBody;\r\n}\r\n\r\nexport interface IContentBrandBoardPodiumValuations {\r\n images: IContentBrandBoardImages;\r\n brandColors: IContentBrandBoardBrandColor[];\r\n typography: IContentBrandBoardTypography[];\r\n}\r\n\r\nexport type IContentBrandBoardVariations =\r\n 'podiumValuations'\r\n | 'jlr';\r\n\r\nexport interface IContentBrandBoardSection {\r\n variation: IContentBrandBoardVariations;\r\n sectionContent:\r\n IContentBrandBoardJLR\r\n | IContentBrandBoardPodiumValuations;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Quotation\r\n\r\nexport interface IContentQuotationFullBleedImage extends IContentQuotationCommon {\r\n image: IImage;\r\n align: 'left' | 'right';\r\n}\r\n\r\nexport type IContentQuotationDefault = IContentQuotationCommon;\r\n\r\nexport interface IContentQuotationCommon {\r\n quotationMarkColor: string;\r\n personLineColor: string;\r\n name: string;\r\n title: string;\r\n quotation: string;\r\n}\r\n\r\nexport type IContentQuotationVariations =\r\n 'default'\r\n | 'fullBleedImage';\r\n\r\nexport type IContentQuotationContent =\r\n IContentQuotationDefault\r\n | IContentQuotationFullBleedImage;\r\n\r\nexport interface IContentQuotationSection {\r\n variation: IContentQuotationVariations;\r\n content: IContentQuotationContent;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Single Large Image\r\n\r\nexport interface IContentSingleLargeImageSection {\r\n variation: 'default';\r\n image: IImage;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Overlapping Image Board\r\n\r\nexport interface IContentOverlappingImageBoardImageSpecific {\r\n rightOffset: string;\r\n}\r\n\r\nexport interface IContentOverlappingImageBoardImage extends IImage, IContentOverlappingImageBoardImageSpecific { }\r\n\r\nexport interface IContentOverlappingImageBoardSection {\r\n variation: 'decreasingInSize';\r\n images: IContentOverlappingImageBoardImage[];\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Full Bleed Image\r\n\r\nexport type IContentFullBleedImageVariations =\r\n 'behind'\r\n | 'inline'\r\n | 'parallax';\r\n\r\nexport interface IContentFullBleedImageSection {\r\n variation: IContentFullBleedImageVariations;\r\n image: IImage;\r\n topMargin: string;\r\n bottomMargin: string;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Overlapping Images\r\n\r\nexport interface IContentOverlappingImagesSection {\r\n variation: 'default';\r\n image: IImage[];\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Sticky Scrolling Image\r\n\r\nexport interface IContentStickyScrollingImageSection {\r\n variation: 'default';\r\n image: IImage;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section - Single Large Video\r\n\r\nexport interface IContentSingleLargeVideoSection {\r\n variation: 'default';\r\n video: IVideo;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Body Section\r\n\r\nexport type IContentBodySectionTypes =\r\n 'imageBoard'\r\n | 'imageSlider'\r\n | 'imageRevealSlider'\r\n | 'steppedLayout'\r\n | 'brandBoard'\r\n | 'quotation'\r\n | 'singleLargeImage'\r\n | 'massiveScrollingImage'\r\n | 'overlappingImageBoard'\r\n | 'overlappingImages'\r\n | 'stickyScrollingImage'\r\n | 'singleLargeVideo'\r\n | 'fullBleedImage'\r\n | 'timeline';\r\n\r\nexport interface IContentBodySection {\r\n type: IContentBodySectionTypes;\r\n position: 'inline' | 'side' | 'sideScroll';\r\n bodyContent: IContentImageBoardSection\r\n | IContentImageSliderSection\r\n | IContentImageRevealSliderSection\r\n | IContentSteppedLayoutSection\r\n | IContentBrandBoardSection\r\n | IContentQuotationSection\r\n | IContentSingleLargeImageSection\r\n | IContentMassiveScrollingImageSection\r\n | IContentOverlappingImageBoardSection\r\n | IContentOverlappingImagesSection\r\n | IContentStickyScrollingImageSection\r\n | IContentSingleLargeVideoSection\r\n | IContentFullBleedImageSection\r\n | IContentTimelineSection;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Title Section - Three Columns\r\n\r\nexport type IContentTitleThreeColumnVariations =\r\n 'default'\r\n | 'inlineTitle';\r\n\r\nexport interface IContentTitleThreeColumnSection extends IContentTitleCommonSection {\r\n variation: IContentTitleThreeColumnVariations;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Title Section - Default\r\n\r\nexport interface IContentTitleDefaultSection extends IContentTitleCommonSection {\r\n variation: 'default';\r\n bulletPoints: IBulletPoints;\r\n align: 'left' | 'right';\r\n}\r\n\r\n// ------------------------------------------------------------- Content Title Section - Common\r\n\r\nexport interface IContentTitleCommonSection {\r\n title: string;\r\n subtitle: string;\r\n description: string;\r\n topPadding: IContentPaddingLevels;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Title Section\r\n\r\nexport type IContentTitleSectionTypes =\r\n 'default'\r\n | 'threeColumn';\r\n\r\nexport interface IContentTitleSection {\r\n type: IContentTitleSectionTypes;\r\n position: 'inline' | 'side' | 'sideScroll';\r\n titleContent: IContentTitleDefaultSection\r\n | IContentTitleThreeColumnSection;\r\n}\r\n\r\n// ------------------------------------------------------------- Content Title Section\r\n\r\nexport interface IContentBlock {\r\n titleSection: IContentTitleSection;\r\n bodySection: IContentBodySection[];\r\n}\r\n\r\n// ------------------------------------------------------------- Content Section\r\n\r\nexport type IBackgroundShadeTypes =\r\n 'light'\r\n | 'dark';\r\n\r\nexport interface IContentSection {\r\n backgroundColor: string;\r\n backgroundImage: string;\r\n backgroundShade: IBackgroundShadeTypes;\r\n topPadding: IContentPaddingLevels;\r\n bottomPadding: IContentPaddingLevels;\r\n contentBlocks: IContentBlock[];\r\n}\r\n\r\n// ------------------------------------------------------------- Nav Section\r\n\r\nexport interface INavSection {\r\n title: string;\r\n contentSection: IContentSection[];\r\n}\r\n\r\n// ------------------------------------------------------------- Project Hero Section - Three Floating Screenshots\r\n\r\nexport interface IProjectHeroSectionThreeFloatingScreenshots {\r\n variation: 'default';\r\n images: IImage[];\r\n}\r\n\r\n// ------------------------------------------------------------- Project Hero Section - Fanned Document\r\n\r\nexport interface IProjectHeroSectionFannedDocument {\r\n variation: 'default';\r\n images: IImage[];\r\n}\r\n\r\n// ------------------------------------------------------------- Project Hero Section - Depth Parallax Image\r\n\r\nexport interface IProjectHeroSectionDepthParallaxImage {\r\n variation: 'default';\r\n images: IImage[];\r\n}\r\n\r\n// ------------------------------------------------------------- Project Hero Section\r\n\r\nexport type IProjectHeroSectionTypes =\r\n 'depthParallaxImage'\r\n | 'threeFloatingScreenshots'\r\n | 'fannedDocument';\r\n\r\nexport type IProjectHeroSectionProperties =\r\n IProjectHeroSectionDepthParallaxImage\r\n | IProjectHeroSectionThreeFloatingScreenshots\r\n | IProjectHeroSectionFannedDocument;\r\n\r\nexport interface IProjectHeroSection {\r\n type: IProjectHeroSectionTypes;\r\n backgroundColor: string;\r\n backgroundShade: IBackgroundShade;\r\n pagePositionBarColor: string;\r\n properties: IProjectHeroSectionProperties;\r\n}\r\n\r\n// ------------------------------------------------------------- Project\r\n\r\nexport interface IProject {\r\n title: string;\r\n name: string;\r\n description: string;\r\n linkUrl: string;\r\n heroSection: IProjectHeroSection;\r\n projectOverview: IProjectOverview;\r\n projectChallenge: IProjectChallenge;\r\n projectContent: INavSection[];\r\n images: IProjectImages;\r\n}\r\n\r\nexport interface IProjects {\r\n [name: string]: IProject;\r\n}\r\n\r\nexport interface IProjectsState {\r\n projectDetails: IProjects;\r\n}\r\n\r\nexport const projects: IProjects = {\r\n podiumValuations: {\r\n title: 'Redefining and bringing auction valuations into the modern era',\r\n name: 'Podium Valuations',\r\n description: 'We helped develop a fully fledged platform to allow people to get valuations from official auction houses from the comfort of their own homes.',\r\n linkUrl: 'podiumValuations',\r\n heroSection: {\r\n type: 'threeFloatingScreenshots',\r\n backgroundColor: '#1f0c29',\r\n backgroundShade: 'dark',\r\n pagePositionBarColor: '#622e7e',\r\n properties: {\r\n variation: 'default',\r\n images: [\r\n {\r\n url: 'podiumValuations/workDetailsHeroLeftScreenshot.png',\r\n alt: 'Item Details',\r\n heightRatio: 600 / 1140,\r\n },\r\n {\r\n url: 'podiumValuations/workDetailsHeroCentralScreenshot.png',\r\n alt: 'Auction Valuations',\r\n heightRatio: 800 / 1520,\r\n },\r\n {\r\n url: 'podiumValuations/workDetailsHeroRightScreenshot.png',\r\n alt: 'Service Pricing',\r\n heightRatio: 600 / 1140,\r\n },\r\n ],\r\n },\r\n },\r\n projectOverview: {\r\n backgroundShade: 'dark',\r\n titleColor: '#805f92',\r\n overview: 'Traditional auction houses haven’t adapted to the increasingly digital and mobile world that we now live in. With traditional auction houses, the need to transport large family heirlooms or furniture to the houses themselves was a risk for people, not to mention expensive, and put them off of getting their items valued out of curiosity. Podium Valuations was formed in an effort to solve this and drag auction valuations firmly into the present through an intuitive and seamless online platform. This would enable users to get professional valuations on whichever device they had to hand, be it their mobile on their way to work, or a laptop on their couch at home, as efficiently and as easily as possible.',\r\n role: [\r\n 'Branding',\r\n 'UX strategy',\r\n 'UI design',\r\n 'Visual exploration',\r\n 'System development',\r\n ],\r\n year: '2014',\r\n },\r\n projectChallenge: {\r\n backgroundShade: 'light',\r\n backgroundColor: null,\r\n challenge: 'Podium Valuations came to us with a very simple idea; they wanted to make professional auction valuations available to the mass market. They desired a refined brand and an immersive valuation platform, that was easy to use for the consumer, yet sophisticated enough to give valuers the information they needed to return accurate valuations.',\r\n },\r\n projectContent: [\r\n {\r\n title: 'Our approach',\r\n contentSection: [\r\n {\r\n backgroundColor: '#fbfbfb',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Our approach to the project',\r\n subtitle: 'Begin with the brand and everything else will follow',\r\n description: 'We worked closely with the Podium Valuations team to better understand their target market and the vision that they wished to communicate across through their brand and online platform. Following this, we carried out a lot of research into the market and their potential users, and decided that the best way to progress would be to initially get a brand direction before working on the valuations platform. \\n\\n Because the brand and the web platform were both so intrinsically linked to one another and the success of the proposition, we decided that we would work on both in tandem, to allow them to influence each other once we had an initial indication of the brand direction.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'threeScattered',\r\n content: [\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'podiumValuations/workDetailsApproachAuctionHouse.jpg',\r\n alt: 'An auction House',\r\n heightRatio: 700 / 730,\r\n },\r\n },\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'podiumValuations/workDetailsApproachCamera.jpg',\r\n alt: 'Camera to be auctioned',\r\n heightRatio: 800 / 730,\r\n },\r\n },\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'podiumValuations/workDetailsApproachShip.jpg',\r\n alt: 'A model ship to be auctioned',\r\n heightRatio: 1200 / 730,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: 'The brand',\r\n contentSection: [\r\n {\r\n backgroundColor: '#ffffff',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Our initial exploration',\r\n subtitle: 'Building the brands vision',\r\n description: 'We started off by generating a large number of possible options and with the help of the client slowly narrowed these down to the directions we felt best communicated the vision of the brand and service. Always keeping in the back of our minds the findings from our research and visual moodboards.',\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageSlider',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n content: {\r\n rows: [\r\n {\r\n images: [\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#5C337A',\r\n url: 'podiumValuations/workDetailsExplorationLogoSketches.jpg',\r\n alt: 'Logo exploration with old-school pen and paper',\r\n heightRatio: 680 / 1050,\r\n },\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#5C337A',\r\n url: 'podiumValuations/workDetailsExplorationColours.jpg',\r\n alt: 'Having a look at possible colour combinations for the brand',\r\n heightRatio: 680 / 1050,\r\n },\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#5C337A',\r\n url: 'podiumValuations/workDetailsExplorationDigitalLogos.jpg',\r\n alt: 'Digitised versions of slightly more developed logo concepts',\r\n heightRatio: 680 / 1050,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n dragHand: false,\r\n backgroundColor: '#fbfbfb',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Simple but striking',\r\n subtitle: 'The logo, colours and typefaces',\r\n description: 'We arrived at a sans-serif logomark paired with a refined logotype for the main brand to keep the focus on the site content. This was paired with a deep purple to emphasise the level of reliability and quality of the valuation platform as well as adding a complementing yellow for areas that needed to catch the eye.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'brandBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'podiumValuations',\r\n sectionContent: {\r\n images: {\r\n darkLogomark: {\r\n url: 'podiumValuations/brandBoardDarkLogomark.png',\r\n alt: 'The final brand logo',\r\n heightRatio: 200 / 150,\r\n },\r\n lightLogo: {\r\n url: 'podiumValuations/brandBoardLightLogo.png',\r\n alt: 'The final brand logo',\r\n heightRatio: 440 / 200,\r\n },\r\n },\r\n brandColors: [\r\n {\r\n hexCode: '#7b5397',\r\n shade: 'dark',\r\n },\r\n {\r\n hexCode: '#462155',\r\n shade: 'dark',\r\n },\r\n {\r\n hexCode: '#2f133b',\r\n shade: 'dark',\r\n },\r\n {\r\n hexCode: '#f8f8f8',\r\n shade: 'light',\r\n },\r\n {\r\n hexCode: '#f2f2f2',\r\n shade: 'light',\r\n },\r\n {\r\n hexCode: '#feb300',\r\n shade: 'dark',\r\n },\r\n ],\r\n typography: [\r\n 'chapazaRegular',\r\n 'latoRegular',\r\n 'latoLight',\r\n ],\r\n },\r\n },\r\n },\r\n //{\r\n // type: 'quotation',\r\n // position: 'inline',\r\n // bodyContent: {\r\n // variation: 'default',\r\n // content: {\r\n // quotationMarkColor: '#944FC6',\r\n // personLineColor: '#3E2551',\r\n // name: 'Fahad Rathore',\r\n // title: 'Previous Client',\r\n // quotation: 'QQore is a full-service digital studio with a small but talented team that create delightful digital products, brands and experiences. With a unique approach guided by thoughtful design, we deliver identities and systems that thrill users and generate business results.',\r\n // },\r\n // },\r\n //},\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: 'The design',\r\n contentSection: [\r\n {\r\n backgroundColor: '#161616',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Laying the foundations',\r\n subtitle: 'Setting out the site structure and starting off with sketches',\r\n description: \"We start off with sketches on most projects. This one was no different. We started by quickly getting any ideas we had down on paper, be it abstract ideas or more detailed layouts for the main stages of the valuations procedure. Doing this on paper meant we weren't worrying about using the right tools, just pencil and paper.\",\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsOverviewOfWireframes.png',\r\n alt: 'Initial sketches of various screens of the system',\r\n heightRatio: 1000 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Focusing on what’s important',\r\n subtitle: 'Getting it right with iterative wireframing and prototyping',\r\n description: \"We built out the sketches into high fidelity wireframes and prototyped them in Invision. We tested each of the screens within the context of the application as a whole in the clickable prototype, and gained useful feedback and insights that normally would not be noticed from simple screen printouts.\",\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'overlappingImageBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'decreasingInSize',\r\n images: [\r\n {\r\n url: 'podiumValuations/workDetailsPrototypeSmall.png',\r\n alt: 'Sketch of user interface',\r\n heightRatio: 926 / 758,\r\n rightOffset: '0',\r\n },\r\n {\r\n url: 'podiumValuations/workDetailsPrototypeMedium.jpg',\r\n alt: 'Low fidelity version of the user interface',\r\n heightRatio: 1136 / 948,\r\n rightOffset: '20vw',\r\n },\r\n {\r\n url: 'podiumValuations/workDetailsPrototypeLarge.jpg',\r\n alt: 'Accurate grayscale website design',\r\n heightRatio: 1395 / 1138,\r\n rightOffset: null,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: 'podiumValuations/workDetailsDesignBackground.jpg',\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'A splash of colour',\r\n subtitle: 'Bringing the platform together with clever design flourishes',\r\n description: \"Focusing on the structure and layout of the interface in the earlier stages, iterating through and optimising the user experience, meant that adding colour only enhanced the design. This is where developing both the brand and the site concurrently really paid dividends, we were able to chop and change as we wanted whilst keeping the brand identity consistent throughout.\",\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'side',\r\n bodyContent: {\r\n variation: 'behind',\r\n image: {\r\n url: 'podiumValuations/workDetailsDesignImage.png',\r\n alt: 'A large board of images showing off the website designs with an injection of colour',\r\n heightRatio: 2920 / 2560,\r\n },\r\n topMargin: null,\r\n bottomMargin: null,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: 'End user experience',\r\n contentSection: [\r\n {\r\n backgroundColor: '#1F0C29',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Bringing everything to life',\r\n subtitle: 'A better portal from which to value loved possessions',\r\n description: \"The aim behind Podium Valuations was to make auction valuations as simple and as easy as possible. The homepage for the site would be the main entrypoint for potential customers into the valuations process. What we ended up settling on was a design that focused on the benefits users would get with a clear call to action in the footer.\",\r\n bulletPoints: {\r\n color: '#cb83ef',\r\n list: [\r\n {\r\n icon: 'heroSection',\r\n label: 'Clean hero explaining the concept',\r\n },\r\n {\r\n icon: 'processIntro',\r\n label: 'Simple intro to the process',\r\n },\r\n {\r\n icon: 'stickyNavigation',\r\n label: 'Sticky navigation throughout',\r\n },\r\n {\r\n icon: 'valuation',\r\n label: 'Emphasis on the valuations interface',\r\n },\r\n {\r\n icon: 'feature',\r\n label: 'Extra features grid',\r\n },\r\n {\r\n icon: 'cta',\r\n label: 'Multiple CTA touchpoints',\r\n },\r\n ],\r\n },\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'stickyScrollingImage',\r\n position: 'sideScroll',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsScreenshotHomepage.jpg',\r\n alt: 'The homepage for the Podium Valuations website',\r\n heightRatio: 2660 / 960,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#2D0E3D',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'A bird’s eye view',\r\n subtitle: 'An attractive but informative overview of all your items',\r\n description: \"It was important that the items dashboard from the average person's perspective was simple and showed all the items that had been submitted for valuations as well as their status within the valuation process in a clean manner. Our focus was to minimise the information being shown whilst keeping the experience informative and intuitive.\",\r\n bulletPoints: {\r\n color: '#cb83ef',\r\n list: [\r\n {\r\n icon: 'itemGrid',\r\n label: 'Grid of items submitted',\r\n },\r\n {\r\n icon: 'sorting',\r\n label: 'Filtering and sorting',\r\n },\r\n {\r\n icon: 'itemCheckbox',\r\n label: 'Multiple item management options',\r\n },\r\n {\r\n icon: 'itemStatus',\r\n label: 'Immediately visible item statuses',\r\n },\r\n {\r\n icon: 'imagery',\r\n label: 'A focus on imagery',\r\n },\r\n {\r\n icon: 'account',\r\n label: 'Account management and navigation',\r\n },\r\n ],\r\n },\r\n align: 'right',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'stickyScrollingImage',\r\n position: 'sideScroll',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsScreenshotUserValuations.jpg',\r\n alt: 'The user dashboard showing all their items and their statuses within the valuations process',\r\n heightRatio: 1176 / 960,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Straightforward and simple',\r\n subtitle: \"Putting in your item’s details are surprisingly easy\",\r\n description: \"We made sure that the listing procedure for items into the system was attractive in and of itself, we'd had enough of forms being a necessary chore for users. This aim drove everything in the pages design, from the way the input elements behaved, to the way that images were uploaded and inserted into the form, everything was custom developed to reinforce the personalised high end feel you would expect from an auction house.\",\r\n bulletPoints: {\r\n color: '#cb83ef',\r\n list: [\r\n {\r\n icon: 'inPageNavigation',\r\n label: 'Seamless in-page navigation',\r\n },\r\n {\r\n icon: 'formElement',\r\n label: 'Custom designed form elements',\r\n },\r\n {\r\n icon: 'uploadImage',\r\n label: 'Instant image uploads',\r\n },\r\n {\r\n icon: 'optimise',\r\n label: 'Automatic image optimisation',\r\n },\r\n {\r\n icon: 'paymentProvider',\r\n label: 'Payment providers integration',\r\n },\r\n {\r\n icon: 'notification',\r\n label: 'Live notifications shade',\r\n },\r\n ],\r\n },\r\n align: 'right',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'stickyScrollingImage',\r\n position: 'sideScroll',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsScreenshotUserNewValuation.jpg',\r\n alt: 'The user interface for inputting a new item into the system for a potential customer',\r\n heightRatio: 1375 / 960,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Auction house's dashboard\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#1F0C29',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'A single page that does it all',\r\n subtitle: 'Giving auction houses all of the details that they need',\r\n description: \"Whether auction houses had queries about the item before submitting a valuation, or if they needed to communicate with the owner to make arrangements after winning their business, the long scrolling page gives them these capabilities and more. We designed the whole experience to be concise from the business side whilst still being graceful and a pleasure to use.\",\r\n bulletPoints: {\r\n color: '#cb83ef',\r\n list: [\r\n {\r\n icon: 'question',\r\n label: 'Instantly ask queries',\r\n },\r\n {\r\n icon: 'inlineValuation',\r\n label: 'Adaptive inline valuations',\r\n },\r\n {\r\n icon: 'multipleImages',\r\n label: 'Emphasis on the images',\r\n },\r\n {\r\n icon: 'animation',\r\n label: 'Delightful guiding animations',\r\n },\r\n {\r\n icon: 'chat',\r\n label: 'Real-time chat',\r\n },\r\n {\r\n icon: 'transactionVerification',\r\n label: 'Transaction outcome verification',\r\n },\r\n ],\r\n },\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'stickyScrollingImage',\r\n position: 'sideScroll',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsScreenshotAuctionValueItem.jpg',\r\n alt: \"The auction houses detailed view of an item where they can manage their interactions and submit valuations all from one central location\",\r\n heightRatio: 2348 / 960,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Aware and in control',\r\n subtitle: 'Browse and monitor items that need to be acted upon',\r\n description: \"The hub for the auction houses was designed to show more detail about each item whilst separating them out into groupings to make it clear which items were a priority and where they stood for the auction house. This includes sections within each items tile for their notifications, valuations as well as unique ids that could be quoted internally to instantly identify items rather than having to use more vague titles.\",\r\n bulletPoints: {\r\n color: '#cb83ef',\r\n list: [\r\n {\r\n icon: 'feed',\r\n label: 'Live feed of items',\r\n },\r\n {\r\n icon: 'denseLayout',\r\n label: 'A clean but dense layout',\r\n },\r\n {\r\n icon: 'highlights',\r\n label: 'Easily glanceable highlights',\r\n },\r\n {\r\n icon: 'prioritisation',\r\n label: 'Prioritisation of acted on items',\r\n },\r\n {\r\n icon: 'contextNotification',\r\n label: 'Context-aware notifications',\r\n },\r\n ],\r\n },\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'stickyScrollingImage',\r\n position: 'sideScroll',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'podiumValuations/workDetailsScreenshotAuctionValuations.jpg',\r\n alt: \"The auction houses dashboard showing the statuses of all their items and the new ones for them to deal with\",\r\n heightRatio: 1762 / 960,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"A sneak peek\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#2D0E3D',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'A delightful user experience',\r\n subtitle: 'From start to finish',\r\n description: \"The new Podium Valuations website brings together quite a complex user flow and a traditional industry into a refined and cohesive system to make auction valuations as easy as listing items on eBay.\",\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeVideo',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n video: {\r\n url: 'podiumValuations/overviewUserExperienceVideo.mp4',\r\n heightRatio: 1080 / 1900,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n images: null,\r\n },\r\n citiesOfTheFuture: {\r\n title: 'Crafting the vision for a city pitched to the King of Dubai',\r\n name: 'Cities of the Future',\r\n description: 'We were drafted in to create a number of pitch materials for the team, including the company brand, brochure, accompanying presentation and visionary video.',\r\n linkUrl: 'citiesOfTheFuture',\r\n heroSection: {\r\n type: 'depthParallaxImage',\r\n backgroundColor: '#040E1A',\r\n backgroundShade: 'dark',\r\n pagePositionBarColor: '#0f315d',\r\n properties: {\r\n variation: 'default',\r\n images: [\r\n {\r\n url: 'citiesOfTheFuture/workDetailsHeroFeaturedBackground.jpg',\r\n alt: 'Dubai sky',\r\n heightRatio: 1400 / 2860,\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsHeroCityLayer.png',\r\n alt: 'Dubai city',\r\n heightRatio: 1400 / 2860,\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsHeroCityFrontLayer.png',\r\n alt: 'Dubai city foreground',\r\n heightRatio: 1400 / 2860,\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsHeroCloudsLayer.png',\r\n alt: 'Dubai clouds/mist',\r\n heightRatio: 1400 / 2860,\r\n },\r\n ],\r\n },\r\n },\r\n projectOverview: {\r\n backgroundShade: 'dark',\r\n titleColor: '#BFA890',\r\n overview: 'Cities previously designed to a particular size have generationally doubled and tripled as urbanization stepped up in gears, leaving services bursting at the seams, unable to cope with surges in demand. As a species, we face the tremendous challenges of climate change, environmental degradation, water and food security, and the need to balance sustainability against the need for commerce and economic activity. It is through striving to innovate solutions to a number of these problems, that the Cities of the Future team approached us with their dream for a new city. Their passion and confidence in their dream inspired us, and we loved jumping on board to help them with our design chops and worked to communicate their proposition across a multitude of brand touchpoints.',\r\n role: [\r\n 'Branding',\r\n 'Creative direction',\r\n 'Visual exploration',\r\n 'Digital presentation',\r\n 'Brochure design',\r\n 'Video production',\r\n ],\r\n year: '2013',\r\n },\r\n projectChallenge: {\r\n backgroundShade: 'dark',\r\n backgroundColor: '#02080f',\r\n challenge: 'We agreed to partner up with the Cities of the Future team and use our expertise to convey their vision to their audience in a manner that made even the most technical details easy to understand, through a variety of sensory experiences as well as inspiring visuals. This involved the creation of several brand materials, including the logo, pitch, brochure and a visionary video to create a deeper human connection.',\r\n },\r\n projectContent: [\r\n {\r\n title: \"A tight timeline\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#040c17',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'threeColumn',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'inlineTitle',\r\n title: 'A tight timeline',\r\n subtitle: 'Putting our cards on the table from day one',\r\n description: 'We knew that the best way to finish this project in the constrained timeline we were given would be to sit down with the Cities of the Future team from the very beginning of the project and invest some time laying out the major stages and milestones for the project. This helped us to define an internal timeline and highlight the critical path of failure for the project, or in layman’s terms, the tasks we could not afford to overrun on in order to meet our hard deadline. This meant we could effectively allocate resources and responsibilities, amongst the combined team, according to the priorities of the tasks and whether or not they had some flexibility. The time spent doing this paid massive dividends in the end, and meant we were able to deliver everything on time without compromising on our high standards for the work throughout the entirety of the project.',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'timeline',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n content: {\r\n bars: [\r\n {\r\n text: 'Branding',\r\n startStage: 1,\r\n endStage: 2,\r\n backgroundColor: '#a13434',\r\n },\r\n {\r\n text: 'Brochure content compilation',\r\n startStage: 2,\r\n endStage: 3,\r\n backgroundColor: '#9334a1',\r\n },\r\n {\r\n text: 'Brochure creation',\r\n startStage: 3,\r\n endStage: 7,\r\n backgroundColor: '#871b97',\r\n },\r\n {\r\n text: 'Video research',\r\n startStage: 2,\r\n endStage: 3,\r\n backgroundColor: '#3460a1',\r\n },\r\n {\r\n text: 'Video storyboarding and scripting',\r\n startStage: 3,\r\n endStage: 5,\r\n backgroundColor: '#255397',\r\n },\r\n {\r\n text: 'Professional voiceover',\r\n startStage: 5,\r\n endStage: 6,\r\n backgroundColor: '#2a4b87',\r\n },\r\n {\r\n text: 'Initial video timeline',\r\n startStage: 5,\r\n endStage: 7,\r\n backgroundColor: '#1a4592',\r\n },\r\n {\r\n text: 'Video production and finalisation',\r\n startStage: 8,\r\n endStage: 10,\r\n backgroundColor: '#0f377f',\r\n },\r\n ],\r\n lineColor: '#060e18',\r\n stageTextColor: '#081b32',\r\n backgroundColor: '#02080f',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"The brand\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#02080f',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Communicating the vision',\r\n subtitle: 'Building it right into the brand',\r\n description: 'Our first priority was to do some research and explore the proposition of the new city further so that any decisions we made on the direction for our designs were guided by the ethos and main tenets of the project. We wanted to ensure that the city constantly informed our choices with regards to the final deliverables, and through collaboration with the wider team we were able to design a visual identity that we all agreed fit the ultimate vision for the new city.',\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageSlider',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n content: {\r\n rows: [\r\n {\r\n images: [\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#325379',\r\n url: 'citiesOfTheFuture/workDetailsExplorationBrand.jpg',\r\n alt: 'asgsagsagas',\r\n heightRatio: 680 / 1050,\r\n },\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#325379',\r\n url: 'citiesOfTheFuture/workDetailsLogoIteration.jpg',\r\n alt: 'asgsagsagas',\r\n heightRatio: 680 / 1050,\r\n },\r\n {\r\n tileWidth: 'xl',\r\n backgroundColor: '#325379',\r\n url: 'citiesOfTheFuture/workDetailsLogoVectors.jpg',\r\n alt: null,\r\n heightRatio: 680 / 1050,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n dragHand: false,\r\n backgroundColor: '#05111f',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'none',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: null,\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'parallax',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsTheFinalLogo.jpg',\r\n alt: 'The final brand logo that we decided upon',\r\n heightRatio: 1800 / 2560,\r\n },\r\n topMargin: null,\r\n bottomMargin: null,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"The brochure\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#fff',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'A brochure worthy of it all',\r\n subtitle: 'Designed to do so much more than just convey information',\r\n description: 'We were asked to create a brochure that would accompany the teams pitch for the new city. And as it would serve as a lingering reminder of the proposition after the pitch itself, it quickly became apparent that this had the potential to massively influence the decision on whether the project would be funded. \\n\\n ## Iterating on the content and making it work \\n\\n We began, as always, by working on making sure that the brochure’s content was the right tone for the proposition, and that it all, once collated and ordered, told a single cohesive story. We went through multiple revision with the Cities of the Future team and slowly but surely made progress until we reached a point we were happy we could work from.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsContentExploration.jpg',\r\n alt: null,\r\n heightRatio: 940 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## Pairing images with the right colours for them \\n\\n The guidelines we were given for the purpose of the brochure was to focus on ensuring it conveyed a feeling for the vision of the project rather than a document that passed across technical details as important as they are. That’s why we decided to pair poignant images with more muted colours throughout the brochure to tell the story together with the literary contents.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'steppedLayout',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'parallaxTile',\r\n listItems: [\r\n {\r\n text: '### We started by collecting all the images we thought would work well together \\n\\n Our aim was to get the attention of the readers with large images that fit the theme of the proposition whilst still reinforcing the overall message of the brochure. We pulled together a shortlist of images and paired them with the section of content we felt was most appropriate for them. The ideas behind our choices was to create a human connection between the content and the people reading whilst still retaining the feel of the modern metropolis that was being proposed in the background.',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsPairedImagesDubaiStreetline.jpg',\r\n alt: 'The Dubai streetline',\r\n heightRatio: 1,\r\n },\r\n overlayTileColor: '#0d515a',\r\n },\r\n {\r\n text: '### We pulled out the dominant colours from the images \\n\\n Doing so allowed us to build multiple thematic elements for various spread designs that fit in cohesively with the associated image. This meant the context of the image was felt throughout the spread and outside the bounds of the image itself, whilst having the added benefit of retaining the focus on the content of the brochure. ',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsPairedImagesHongKongSkyline.jpg',\r\n alt: 'The Hong Kong skyline',\r\n heightRatio: 1,\r\n },\r\n overlayTileColor: '#5b2f5b',\r\n },\r\n {\r\n text: '### And then mellowed some of the more vibrant tones \\n\\n Some of the images’ most dominant colours were incredibly bright, and when paired with any form of content, removed all focus from the message of the spread to the images themselves. For these we toned down the colours and normalised them across the brochure to make them fit better together as a single consistent scheme. We made a conscious decision to maintain an eclectic mix of colour throughout the brochure as we felt it served as a fitting reminder of the vibrant makeup of most cities.',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsPairedImagesDubaiSkyline.jpg',\r\n alt: 'The Dubai skyline',\r\n heightRatio: 1,\r\n },\r\n overlayTileColor: '#143d70',\r\n },\r\n ],\r\n backgroundImage: {\r\n url: null,\r\n alt: null,\r\n heightRatio: 2333 / 2560,\r\n },\r\n backgroundColor: '#fbfbfb',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## Letting the pages take shape as organically as possible \\n\\n We quickly decided that we wanted to infuse the brochure with a subtle aura of sophistication to give readers confidence in the team, as well as to make readers want to turn the pages through to the end. Our priority was to ensure that readers would flick through to get a sense for the project and the ultimate vision, whilst still taking away the most important information about the project with them.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsBuildingPageLayouts.jpg',\r\n alt: null,\r\n heightRatio: 940 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## What could be better than images? Enormous images. \\n\\n Because the project’s vision was to create a new city, one which built on top of existing technology segregated across various cities all over the world, the only way we could convey the vision was to try to balance the content alongside large images so that the content would become associated by proximity and stick that little bit longer in the mind. And if we’re using images, why not go all out?',\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'massiveScrollingImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'angledHorizontal',\r\n content: {\r\n angle: 15.86,\r\n images: [\r\n {\r\n url: 'citiesOfTheFuture/workDetailsMassiveCitySpread.jpg',\r\n alt: 'A spread showing the different cities that had been analysed',\r\n heightRatio: 1394 / 3897,\r\n width: '3897px',\r\n imageOffset: '0',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsMassiveRoadSpread.jpg',\r\n alt: 'A view of the road at night from the streetside',\r\n heightRatio: 1394 / 3897,\r\n width: '3897px',\r\n imageOffset: '-0.5',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsMassiveSkylineSpread.jpg',\r\n alt: 'The skyline of Abu Dhabi spread',\r\n heightRatio: 1394 / 3897,\r\n width: '3897px',\r\n //imageOffset: '-100%',\r\n imageOffset: '-1',\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## And a few more of the spreads that we came up with \\n\\n Our aim was to balance the projects content across various spreads to consciously control the rate at which readers would be required to absorb information. This would allow use to subtly influence how much of the projects message would be retained whilst still ending up on final design for the brochure which was extremely consistent yet beautiful.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageSlider',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n content: {\r\n rows: [\r\n {\r\n images: [\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadTransport.jpg',\r\n alt: 'A spread showing the various transport plans for the new city',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadLevels.jpg',\r\n alt: 'The different service levels throughout the city',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n ],\r\n },\r\n {\r\n images: [\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadFrontCover.jpg',\r\n alt: 'The brochures front cover',\r\n heightRatio: 1394 / 1949,\r\n tileWidth: 'xs',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadEducation.jpg',\r\n alt: 'Education options for the city as well as implementations',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadSecurity.jpg',\r\n alt: 'How the city fits together with food and water security',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n ],\r\n },\r\n {\r\n images: [\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadSolutions.jpg',\r\n alt: 'How everything comes together',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n {\r\n url: 'citiesOfTheFuture/workDetailsSpreadEnergy.jpg',\r\n alt: 'How the city will generate its own energy',\r\n heightRatio: 1394 / 3897,\r\n tileWidth: 'm',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n dragHand: false,\r\n backgroundColor: '#fbfbfb',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'none',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: null,\r\n bodySection: [\r\n {\r\n type: 'quotation',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'fullBleedImage',\r\n content: {\r\n quotationMarkColor: '#b7ceed',\r\n personLineColor: '#9eb1cd',\r\n name: 'Atif Siddiqui',\r\n title: 'Project Lead',\r\n quotation: 'We went into this project with very rough ideas and thoughts on how best to convey the vision for the project and were incredibly surprised by what Qore turned them into. The end results far exceeded our expectations, and the little details in the design work across the branding, brochure and video were impeccable. I would happily recommend and work with them again for any of my future projects.',\r\n // quotation: 'QQore is a full-service digital studio with a small but talented team that create delightful digital products, brands and experiences. With a unique approach guided by thoughtful design, we deliver identities and systems that thrill users and generate business results.',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsTheKualaLampurSkyline.jpg',\r\n alt: 'The Kuala Lamput skyline in Malaysia',\r\n heightRatio: 1800 / 2560,\r\n },\r\n align: 'right',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"The video\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#161616',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Worth a million words?',\r\n subtitle: 'Channelling the excitement for the project through the video',\r\n description: 'The final piece of the puzzle for this project was getting the video right. It needed to present some of the technical innovations of the new city whilst selling the idea behind the project as well. \\n\\n ## Starting out by nailing down the style we wanted \\n\\n We decided the best way to build a meaningful journey for the viewer was for the video to prioritise an inspiring core message alongside several accompanying clips that would reinforce it. We then laid out our initial storyboard and developed it with the team through multiple iterations; until we arrived on the one we felt fulfilled all our opening criteria as well as working well with the other associated brand materials.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'citiesOfTheFutureClips',\r\n content: [\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'citiesOfTheFuture/workDetailsTheKualaLampurSkyline.jpg',\r\n alt: null,\r\n heightRatio: 800 / 1160,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Sunset.mp4',\r\n heightRatio: 1,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Scuba.mp4',\r\n heightRatio: 600 / 910,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Road.mp4',\r\n heightRatio: 500 / 900,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Lab.mp4',\r\n heightRatio: 450 / 700,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Cactus.mp4',\r\n heightRatio: 650 / 550,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/MotherDaughter.mp4',\r\n heightRatio: 700 / 1150,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/Timeline.mp4',\r\n heightRatio: 500 / 1200,\r\n },\r\n },\r\n {\r\n type: 'video',\r\n details: {\r\n url: 'citiesOfTheFuture/NightCity.mp4',\r\n heightRatio: 650 / 850,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## Laying out the story that we wanted to tell \\n\\n We wanted to make the video as memorable as possible and decided the best way to do this would be to create emotional links between the visionary concept of the city and the story of a family going about their daily lives. And because we developed the script alongside the storyboard, naturally, as time progressed, we found it grew organically and told the teams story in a much more human way.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'medium',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'inline',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsVideoTrack.png',\r\n alt: 'The planned audio track for the Cities Of The Future video',\r\n heightRatio: 2237 / 2560,\r\n },\r\n topMargin: '-34.765625vw',\r\n bottomMargin: '-32vw',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: 'transparent',\r\n backgroundImage: 'citiesOfTheFuture/workDetailsVideoTrackBackground.png',\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## Making sure the words are felt as they come off of the paper \\n\\n Pulling the entire video together was the final voiceover. We knew how important it was to do justice to the script by ensuring that the voiceover had the gravitas it needed to correctly convey the vision for the city and the entire project itself. There’s always the balance that needs to be found between fitting in more informational content and making the video digestible, but we got there in the end. \\n\\n The end result, and the way in which it emphasises the visuals and the videos story, really justifies the amount of time that was spent getting it just right.',\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#02060d',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: null,\r\n subtitle: null,\r\n description: '## The final visionary video \\n\\n The final video really worked well with the full portfolio of brand elements and completed the encompassing experience that we were asked to help the team with. It was delivered right on schedule and married the initial vision to a more tangible product. Together with the final brochure, it really left a strong impression long after the presentation for the new venture was delivered.',\r\n // description: '## A taste of the final visionary video \\n\\n The final video really worked well with the full portfolio of brand elements and completed the encompassing experience that we were asked to help the team with. It was delivered right on schedule and married the initial vision to a more tangible product. Together with the final brochure, it really left a strong impression long after the presentation for the new venture was delivered.',\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'citiesOfTheFuture/workDetailsVideoTaste.jpg',\r\n alt: 'A taste of the final video',\r\n heightRatio: 940 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n images: {\r\n nextProjectBackground: 'citiesOfTheFuture/workDetailsTheKualaLampurSkyline.jpg',\r\n },\r\n },\r\n jlr: {\r\n title: 'Designing a luxury brochure to disrupt the Pakistani market',\r\n name: 'JLR Pakistan',\r\n description: 'We designed a high-end brochure for a group of talented individuals that were pitching to bring Jaguar Land Rover to Pakistan.',\r\n linkUrl: 'jlr',\r\n heroSection: {\r\n type: 'fannedDocument',\r\n backgroundColor: '#0d0d0d',\r\n backgroundShade: 'light',\r\n pagePositionBarColor: '#c6b894',\r\n properties: {\r\n variation: 'default',\r\n images: [\r\n {\r\n url: 'jlr/workDetailsHeroEndQuotation.jpg',\r\n alt: 'Closing Statements',\r\n heightRatio: 297 / 210,\r\n },\r\n {\r\n url: 'jlr/workDetailsHeroPakistanMap.jpg',\r\n alt: 'Pakistan Map',\r\n heightRatio: 297 / 210,\r\n },\r\n {\r\n url: 'jlr/workDetailsHeroFlagshipLocation.jpg',\r\n alt: 'Flagship Location',\r\n heightRatio: 297 / 210,\r\n },\r\n {\r\n url: 'jlr/workDetailsHeroContentsPage.jpg',\r\n alt: 'Jaguar F-Type',\r\n heightRatio: 297 / 210,\r\n },\r\n {\r\n url: 'jlr/workDetailsHeroFrontCover.jpg',\r\n alt: 'Front Cover',\r\n heightRatio: 297 / 210,\r\n },\r\n ],\r\n },\r\n },\r\n projectOverview: {\r\n backgroundShade: 'dark',\r\n titleColor: '#c6b894',\r\n overview: 'The Pakistan luxury vehicle market has grown exponentially over the past decade and there aren’t any signs of it stopping anytime soon. JLR Pakistan wanted to pitch this opportunity to Jaguar Land Rover as they felt they were missing out especially due to the recent successes of BMW, Mercedes and Audi. The team already had a strong presence and a wealth of experience in the wider market and had been refining their proposal over the years. Seeing JLR’s competitors move decisively into the rapidly emerging market, they felt it was time for JLR to also introduce their luxury brand and international presence into Pakistan.',\r\n role: [\r\n 'Branding',\r\n 'Creative direction',\r\n 'Brochure design',\r\n ],\r\n year: '2017',\r\n },\r\n projectChallenge: {\r\n backgroundShade: 'light',\r\n backgroundColor: null,\r\n challenge: 'JLR Pakistan already had the structure and the resources in place to launch the business, as well as the basic content for their pitch, but needed a brand identity and brochure that clearly conveyed the lofty ambitions of their proposition. We worked with them over a period of a few months to refine their vision and to translate it into a unique visual presence to be used across their business.',\r\n },\r\n projectContent: [\r\n {\r\n title: \"First impressions\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#fbfbfb',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Catching feelings',\r\n subtitle: 'First impressions of the client and their brand',\r\n description: 'Since JLR Pakistan were pitching to Jaguar Land Rover, we felt the most important thing we could do was to get a feel for the luxury brand, their values and the colours they gravitated towards. Because the team had already done their research into the market and nailed down their business proposition, we mainly focused on finding a visual identity for the proposition as well as a creative direction for the project. \\n\\n We did this by looking at a multitude of the brand touchpoints that potential customers have with Jaguar Land Rover across a variety of mediums, including digital experiences, marketing brochures as well as the physical cars themselves.',\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'twoOnOne',\r\n content: [\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'jlr/workDetailsResearchCarOutside.jpg',\r\n alt: 'The outside of a Jaguar',\r\n heightRatio: 700 / 1260,\r\n },\r\n },\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'jlr/workDetailsResearchCarInside.jpg',\r\n alt: 'The inside of a Jaguar',\r\n heightRatio: 500 / 1040,\r\n },\r\n },\r\n {\r\n type: 'image',\r\n details: {\r\n url: 'jlr/workDetailsResearchDocument.jpg',\r\n alt: 'Page layout from a JLR marketing brochure',\r\n heightRatio: 600 / 950,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"The basics\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#ffffff',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'threeColumn',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Isn’t it luxurious',\r\n subtitle: 'Focusing on the type hierarchies over everything else',\r\n description: \"The brochure would be the lingering reminder to Jaguar Land Rover of the team’s business opportunity after the pitch itself, so getting the layout and the typefaces working correctly was of utmost importance. We arrived on a refined serif typeface, Chapaza, for the main headings and points of interest, to bring through that element of luxury within the business proposition, and paired it with a sans-serif typeface, Lato, for the main body of the content. This gave us a good balance between making the large amount of information, that made up the majority of the brochure, very readable, whilst still linking the brand with that of Jaguar Land Rover. \\n\\n We arrived on a generally neutral colour scheme for the brochure to reflect the vision for the business. There was a lovely gold we’d noticed that was quite prevalent in the interiors of the cars, and we decided that this shade would work wonderfully if used sparingly throughout the brochure to draw the readers’ eyes to the areas we wished to highlight.\",\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'brandBoard',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'jlr',\r\n sectionContent: {\r\n brandColors: [\r\n {\r\n hexCode: '#181719',\r\n shade: 'dark',\r\n },\r\n {\r\n hexCode: '#645c54',\r\n shade: 'dark',\r\n },\r\n {\r\n hexCode: '#cec4b3',\r\n shade: 'light',\r\n },\r\n ],\r\n titleType: {\r\n font: 'chapaza',\r\n weights: [\r\n 'regular',\r\n 'bold',\r\n 'italic',\r\n 'boldItalic',\r\n ],\r\n exampleText: \"Pakistan's stock market has risen faster than any other in Asia over the past 12 months, by a heady 50%.\",\r\n },\r\n bodyType: {\r\n font: 'lato',\r\n exampleText: \"Over the past decade the Pakistan motor vehicle market has grown exponentially, and it continues to grow. Following the recent success of BMW, Mercedes, and Audi we have identified a significant demand from luxury car buyers in Pakistan. Our proposal, our ambition, our desire is very simple. We want to properly bring Jaguar Land Rover to the market and for it to beome the number one luxury vehicle brand in Pakistan.\",\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#fbfbfb',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'medium',\r\n bottomPadding: 'small',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Adapting the pitch',\r\n subtitle: 'Ducking and diving through a wealth of information',\r\n description: \"The main priorities for the brochure was to pass on all the detailed information about the business opportunity to readers in a way that invited them to want to know more. We started by immersing ourselves within the intricacies of the provided content so that we would have a solid foundation from which to progress, so we could produce a truly representative end-product.\",\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'inline',\r\n image: {\r\n url: 'jlr/workDetailsProvidedContentSlides.png',\r\n alt: 'The content we were given to work with at the start of the project',\r\n heightRatio: 1884 / 2560,\r\n },\r\n topMargin: null,\r\n bottomMargin: null,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'none',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: null,\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'parallax',\r\n image: {\r\n url: 'jlr/workDetailsTheViewOfAJaguar.jpg',\r\n alt: 'A view from inside a Jaguar XJ 50 to set the scene for the project',\r\n heightRatio: 1800 / 2560,\r\n },\r\n topMargin: null,\r\n bottomMargin: null,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Our system\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#161616',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'threeColumn',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'The key is consistency',\r\n subtitle: 'Laying out a flexible content system for the brochure',\r\n description: \"Surprisingly for a project like this, we felt that the best way to convey all our ideas on the relationships between the typefaces and the content spacings for the brochure would be to start by designing the front cover of the brochure. We had quite a strong idea for the route we wanted to go down, and it didn’t take much tweaking to agree on a single cohesive layout that we wanted to form the basis for the entire document. The final guidelines we developed allowed enough flexibility for each page to best represent their own content without compromising on the integrity of the document as a single entity.\",\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'jlr/workDetailsFlexibleContentSystem.jpg',\r\n alt: 'The brochure guidelines laid out for the entire document to be used to build out the designs',\r\n heightRatio: 940 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Bringing it all together',\r\n subtitle: \"Building a story and fitting it into the brochure's design\",\r\n description: \"The best way to pitch the opportunity was to build a clear narrative that told the story of the project from beginning to end. We did this by going through the content provided and laid out areas that we felt were related and those that worked well together onto general page layouts. \\n\\n We then integrated these into a greyscale wireframed brochure to ensure we focused on getting the correct balance between the brochure’s content and its typography and whitespace.\",\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'overlappingImages',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: [\r\n {\r\n url: 'jlr/workDetailsWireframedBrochureSpread.jpg',\r\n alt: 'The wireframe for the Pakistan location and stats page spread',\r\n heightRatio: 297 / 420,\r\n },\r\n {\r\n url: 'jlr/workDetailsIntroductionSlide.jpg',\r\n alt: 'The introduction slide provided by the client for the project',\r\n heightRatio: 214 / 380,\r\n },\r\n {\r\n url: 'jlr/workDetailsMarketDealerSlide.jpg',\r\n alt: 'The market/dealer overview slide provided by the client',\r\n heightRatio: 214 / 380,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Brochure design\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#161616',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'An injection of class',\r\n subtitle: 'Making sure the brands personality comes across',\r\n description: \"The results speak for themselves. We feel that the emphasis we placed on the content and how it worked on the page really paid dividends in the end. The introduction of colour only served to enhance the messages behind each page and helped naturally progress the brochure into its final form.\",\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'imageRevealSlider',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n leftImage: {\r\n title: 'Wireframed Layouts',\r\n image: {\r\n url: 'jlr/workDetailsRevealSliderPreviousImage.jpg',\r\n alt: 'Some of the wireframed layouts that we worked on from our initial sketches',\r\n heightRatio: 1200 / 2360,\r\n },\r\n },\r\n rightImage: {\r\n title: 'Final Deliverables',\r\n image: {\r\n url: 'jlr/workDetailsRevealSliderFinalDeliverables.jpg',\r\n alt: 'Our final designed layouts from our wireframed spreads',\r\n heightRatio: 1200 / 2360,\r\n },\r\n },\r\n backgroundColor: '#1c1c1c',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#fbfbfb',\r\n backgroundImage: null,\r\n backgroundShade: 'light',\r\n topPadding: 'none',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: null,\r\n bodySection: [\r\n {\r\n type: 'fullBleedImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'parallax',\r\n image: {\r\n url: 'jlr/workDetailsOurDocumentDesignSpread.jpg',\r\n alt: 'Our document design spreads and how they progressed from a few of our initial sketches',\r\n heightRatio: 1800 / 2560,\r\n },\r\n topMargin: null,\r\n bottomMargin: null,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n backgroundColor: '#101010',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'none',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Getting pulses racing',\r\n subtitle: \"We know what you're here for\",\r\n description: \"Each spread tells its own story, and the unique components and figures interspaced throughout the brochure help to break up the layouts to make themmore interesting for the reader. We used muted colours where needed to fit the aesthetic of the brochure. It's ok to stare.\",\r\n bulletPoints: null,\r\n align: 'right',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'steppedLayout',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'singleImage',\r\n listItems: [\r\n {\r\n url: 'jlr/workDetailsPakistanCompetitionMapSpread.png',\r\n alt: 'The Pakistan competition location map',\r\n heightRatio: 816 / 1060,\r\n imageOffset: '-3.773584905%',\r\n },\r\n {\r\n url: 'jlr/workDetailsCompetitorLocationInformationSpread.png',\r\n alt: \"The local market competitor's information spread\",\r\n heightRatio: 816 / 1060,\r\n imageOffset: '3.773584905%',\r\n },\r\n {\r\n url: 'jlr/workDetailsAutomotiveOverviewSpread.png',\r\n alt: 'The automotive overview spread',\r\n heightRatio: 816 / 1060,\r\n imageOffset: '5%',\r\n },\r\n ],\r\n backgroundImage: {\r\n url: 'jlr/workDetailsMapOutlineBack.png',\r\n alt: 'The outline of Pakistan as seen from above',\r\n heightRatio: 2333 / 2560,\r\n },\r\n backgroundColor: '#191919',\r\n },\r\n },\r\n {\r\n type: 'quotation',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n content: {\r\n quotationMarkColor: '#eddcb7',\r\n personLineColor: '#cdbe9e',\r\n name: 'Sahal Quazi',\r\n title: 'JLR Pakistan',\r\n quotation: 'From start to finish working with Qore was an absolute pleasure, they have a great eye for design and managed to meet my expectations. The end result was a very professional, well designed, premium product, that my team and I felt conveyed the vision we had for the project. We were very happy with the results and believe they really elevated our proposition to the next level.',\r\n // quotation: 'I came with a normal Word document of the information that I wanted to present with my team to Jaguar Land Rover. What I left with, was a very professional and high end designed brochure, that I felt really conveyed the kind of vision I had for the proposal, and really elevated my proposition to the next level.',\r\n // quotation: 'QQore is a full-service digital studio with a small but talented team that create delightful digital products, brands and experiences. With a unique approach guided by thoughtful design, we deliver identities and systems that thrill users and generate business results.',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Final article\",\r\n contentSection: [\r\n {\r\n backgroundColor: '#161616',\r\n backgroundImage: null,\r\n backgroundShade: 'dark',\r\n topPadding: 'medium',\r\n bottomPadding: 'medium',\r\n contentBlocks: [\r\n {\r\n titleSection: {\r\n type: 'default',\r\n position: 'inline',\r\n titleContent: {\r\n variation: 'default',\r\n title: 'Worth a thousand words',\r\n subtitle: 'Need we say more?',\r\n description: \"We were really happy with how the brochure turned out, and the JLR Pakistan team were delighted with how the final brochure really reinforced the messages they wanted to communicate within their pitch.\",\r\n bulletPoints: null,\r\n align: 'left',\r\n topPadding: 'none',\r\n },\r\n },\r\n bodySection: [\r\n {\r\n type: 'singleLargeImage',\r\n position: 'inline',\r\n bodyContent: {\r\n variation: 'default',\r\n image: {\r\n url: 'jlr/workDetailsFinalBrochure.jpg',\r\n alt: 'The final brochure',\r\n heightRatio: 1200 / 2360,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n images: null,\r\n },\r\n};\r\n\r\nObject.keys(projects).map((projectName, index) => {\r\n const images = {\r\n logoDark: projectName + '/serviceLogoDark.png',\r\n logoLight: projectName + '/serviceLogoLight.png',\r\n home: projectName + '/serviceImage.png',\r\n logomarkBackground: projectName + '/logomarkBackground.jpg',\r\n nextProjectBackground: projectName + '/nextProjectBackground.jpg',\r\n detailsHeroBackground: projectName + '/workDetailsHeroBackground.png',\r\n detailsHeroFeaturedBackground: projectName + '/workDetailsHeroFeaturedBackground.jpg',\r\n } as IProjectImages;\r\n\r\n projects[projectName].images = Object.assign(images, projects[projectName].images);\r\n});\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport enum keys {\r\n SHOW_LOADING_SCREEN = 'SHOW_LOADING_SCREEN',\r\n SHOW_LOADINGG_SCREEN = 'SHOW_LOADINGG_SCREEN',\r\n}\r\n\r\ninterface IDefaultAction {\r\n type: keys.SHOW_LOADING_SCREEN;\r\n}\r\n\r\ninterface IAnotherDefaultAction {\r\n type: keys.SHOW_LOADINGG_SCREEN;\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction = IDefaultAction | IAnotherDefaultAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const actionCreators = {\r\n //intialiseNewPage: () => (dispatch) => {\r\n // dispatch({ type: 'INITIALISE_PAGE_COMPONENTS' });\r\n //},\r\n};\r\n\r\n// ----------------\r\n// SAGA WATCHERS - Register all saga watchers here that will intercept all dispatched calls and delegate appropriately\r\n\r\n// ----------------\r\n// SAGA WORKERS - These are saga worker functions that are called when receiving saga dispatches. The saga watchers\r\n// intercept dispatched calls and call the relevant saga functions when appropriate\r\n\r\n// ----------------\r\n// ROOT SAGA - Register all saga watchers into one root saga to be initialised in configureStore\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: IProjectsState, action: IKnownAction) => {\r\n switch (action.type) {\r\n case keys.SHOW_LOADING_SCREEN:\r\n return {\r\n ...state,\r\n };\r\n case keys.SHOW_LOADINGG_SCREEN:\r\n return {\r\n ...state,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return state || {\r\n projectDetails: projects,\r\n };\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nconst projectsSelector = (state: IApplicationState) => state.projects;\r\nexport const getProjects = createSelector(\r\n [projectsSelector],\r\n projectsObject => {\r\n //console.log(\"Output selector running: getProjects\");\r\n return projectsObject;\r\n },\r\n);\r\n\r\nexport const getProjectDetails = createSelector(\r\n [getProjects],\r\n projectsObject => {\r\n //console.log(\"Output selector running: getProjectDetails\");\r\n return projectsObject.projectDetails;\r\n },\r\n);\r\n\r\nexport const makeGetProject = () => createSelector(\r\n projectsSelector,\r\n (_, projectId) => projectId,\r\n (allProjects, projectId) => {\r\n //console.log(\"Output selector running: makeGetProject\");\r\n return allProjects.projectDetails.hasOwnProperty(projectId) ? allProjects.projectDetails[projectId] : null;\r\n },\r\n);\r\n\r\nexport interface INextProjectDetail {\r\n title: string;\r\n nextBackgroundImage: string;\r\n linkUrl: string;\r\n}\r\n\r\nexport interface INextProjectDetails {\r\n [id: string]: INextProjectDetail;\r\n}\r\n\r\nexport const getNextProjectDetails = createSelector(\r\n [getProjectDetails],\r\n projectDetails => {\r\n const nextProjects: INextProjectDetails = {};\r\n Object.keys(projectDetails).map((projectName, index) => {\r\n nextProjects[projectName] = {\r\n title: projectDetails[projectName].title,\r\n nextBackgroundImage: projectDetails[projectName].images.nextProjectBackground,\r\n linkUrl: projectDetails[projectName].linkUrl,\r\n };\r\n });\r\n\r\n return nextProjects;\r\n },\r\n);\r\n\r\nexport const getProjectLogomarkBackgrounds = createSelector(\r\n [getProjectDetails],\r\n projectDetails => {\r\n //console.log(\"Output selector running: getProjectLogomarkBackgrounds\");\r\n\r\n const logomarkBackgrounds: string[] = [];\r\n Object.keys(projectDetails).map((projectName, index) => {\r\n logomarkBackgrounds.push(projectDetails[projectName].images.logomarkBackground);\r\n });\r\n\r\n return logomarkBackgrounds;\r\n },\r\n);\r\n","import * as axios from 'axios';\r\n\r\nconst internalHeaders = {\r\n common: {\r\n Accept: 'application/json',\r\n },\r\n post: {\r\n 'Content-Type': 'application/json',\r\n },\r\n};\r\n\r\nconst xsrfToken = axios.default.create({\r\n method: 'get', // default\r\n baseURL: '/api/xsrfToken/',\r\n headers: internalHeaders,\r\n});\r\n\r\nexport const api = axios.default.create({\r\n url: '',\r\n method: 'get', // default\r\n baseURL: '/api/',\r\n headers: internalHeaders,\r\n\r\n // // `transformRequest` allows changes to the request data before it is sent to the server\r\n // // This is only applicable for request methods 'PUT', 'POST', and 'PATCH'\r\n // // The last function in the array must return a string, an ArrayBuffer, FormData, or a Stream\r\n // transformRequest: [function (data) {\r\n // // Do whatever you want to transform the data\r\n\r\n // return data;\r\n // }],\r\n\r\n // // `transformResponse` allows changes to the response data to be made before\r\n // // it is passed to then/catch\r\n // transformResponse: [function (data) {\r\n // // Do whatever you want to transform the data\r\n\r\n // return data;\r\n // }],\r\n\r\n // // `headers` are custom headers to be sent\r\n // headers: { 'X-Requested-With': 'XMLHttpRequest' },\r\n\r\n // // `params` are the URL parameters to be sent with the request\r\n // // Must be a plain object or a URLSearchParams object\r\n // params: {\r\n // ID: 12345\r\n // },\r\n\r\n // // `paramsSerializer` is an optional function in charge of serializing `params`\r\n // // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)\r\n // paramsSerializer: function (params) {\r\n // return Qs.stringify(params, { arrayFormat: 'brackets' })\r\n // },\r\n\r\n // // `data` is the data to be sent as the request body\r\n // // Only applicable for request methods 'PUT', 'POST', and 'PATCH'\r\n // // When no `transformRequest` is set, must be of one of the following types:\r\n // // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams\r\n // // - Browser only: FormData, File, Blob\r\n // // - Node only: Stream\r\n // data: {\r\n // firstName: 'Fred'\r\n // },\r\n\r\n // // `timeout` specifies the number of milliseconds before the request times out.\r\n // // If the request takes longer than `timeout`, the request will be aborted.\r\n // timeout: 1000,\r\n\r\n // // `withCredentials` indicates whether or not cross-site Access-Control requests\r\n // // should be made using credentials\r\n // withCredentials: false, // default\r\n\r\n // // `adapter` allows custom handling of requests which makes testing easier.\r\n // // Return a promise and supply a valid response (see lib/adapters/README.md).\r\n // adapter: function (config) {\r\n // /* ... */\r\n // },\r\n\r\n // // `auth` indicates that HTTP Basic auth should be used, and supplies credentials.\r\n // // This will set an `Authorization` header, overwriting any existing\r\n // // `Authorization` custom headers you have set using `headers`.\r\n // auth: {\r\n // username: 'janedoe',\r\n // password: 's00pers3cret'\r\n // },\r\n\r\n // // `responseType` indicates the type of data that the server will respond with\r\n // // options are 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'\r\n // responseType: 'json', // default\r\n\r\n // // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token\r\n // xsrfCookieName: 'XSRF-TOKEN', // default\r\n\r\n // // `xsrfHeaderName` is the name of the http header that carries the xsrf token value\r\n // xsrfHeaderName: 'X-XSRF-TOKEN', // default\r\n\r\n // // `onUploadProgress` allows handling of progress events for uploads\r\n // onUploadProgress: function (progressEvent) {\r\n // // Do whatever you want with the native progress event\r\n // },\r\n\r\n // // `onDownloadProgress` allows handling of progress events for downloads\r\n // onDownloadProgress: function (progressEvent) {\r\n // // Do whatever you want with the native progress event\r\n // },\r\n\r\n // // `maxContentLength` defines the max size of the http response content allowed\r\n // maxContentLength: 2000,\r\n\r\n // // `validateStatus` defines whether to resolve or reject the promise for a given\r\n // // HTTP response status code. If `validateStatus` returns `true` (or is set to `null`\r\n // // or `undefined`), the promise will be resolved; otherwise, the promise will be\r\n // // rejected.\r\n // validateStatus: function (status) {\r\n // return status >= 200 && status < 300; // default\r\n // },\r\n\r\n // // `maxRedirects` defines the maximum number of redirects to follow in node.js.\r\n // // If set to 0, no redirects will be followed.\r\n // maxRedirects: 5, // default\r\n\r\n // // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http\r\n // // and https requests, respectively, in node.js. This allows to configure options like\r\n // // `keepAlive` that are not enabled by default.\r\n // httpAgent: new http.Agent({ keepAlive: true }),\r\n // httpsAgent: new https.Agent({ keepAlive: true }),\r\n\r\n // // 'proxy' defines the hostname and port of the proxy server\r\n // // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and supplies credentials.\r\n // // This will set an `Proxy-Authorization` header, overwriting any existing `Proxy-Authorization` custom headers you have set using `headers`.\r\n // proxy: {\r\n // host: '127.0.0.1',\r\n // port: 9000,\r\n // auth: : {\r\n // username: 'mikeymike',\r\n // password: 'rapunz3l'\r\n // }\r\n // },\r\n\r\n // // `cancelToken` specifies a cancel token that can be used to cancel the request\r\n // // (see Cancellation section below for details)\r\n // cancelToken: new CancelToken(function (cancel) {\r\n // })\r\n});\r\n\r\n// A request interceptor that runs each time a call to the api is made\r\napi.interceptors.request.use(async (config: any) => {\r\n // Do something before request is sent\r\n const xsrfTokenResponse = await getXsrfToken() as any;\r\n config.headers.common[xsrfTokenResponse.data.tokenName] = xsrfTokenResponse.data.token; // Setting current request xsrf headers to newly received tokens\r\n return config;\r\n}, error => {\r\n return Promise.reject(error);\r\n});\r\n\r\nconst getXsrfToken = () => {\r\n return new Promise((resolve, reject) => {\r\n xsrfToken.get('')\r\n .then(result => {\r\n //console.log('xsrfToken success:', result);\r\n resolve(result);\r\n })\r\n .catch(error => {\r\n console.log('xsrfToken error:', error);\r\n reject(error);\r\n });\r\n });\r\n};\r\n\r\n//const XSRF_TOKEN_KEY = \"xsrfToken\";\r\n//const XSRF_TOKEN_NAME_KEY = \"xsrfTokenName\";\r\n\r\n//function setXsrfToken(config, {token, tokenName}: { token: string, tokenName: string }) {\r\n// window.sessionStorage.setItem(XSRF_TOKEN_KEY, token);\r\n// window.sessionStorage.setItem(XSRF_TOKEN_NAME_KEY, tokenName);\r\n// config.headers.common[tokenName] = token; // Setting current request xsrf headers to newly received tokens\r\n// api.defaults.headers.common[tokenName] = token; // Setting xsrf token as default on api calls just for reference, they are never used more than once\r\n//}\r\n\r\nexport const fetchUser = userId => {\r\n // `axios` function returns promise, you can use any ajax lib, which can\r\n // return promise, or wrap in promise ajax call\r\n api.get('Notes', {\r\n })\r\n .then(result => {\r\n console.log('success:', result);\r\n return result;\r\n })\r\n .catch(error => {\r\n console.log('error:', error);\r\n return error;\r\n });\r\n};\r\n\r\nexport const websiteReport = data => {\r\n // `axios` function returns promise, you can use any ajax lib, which can\r\n // return promise, or wrap in promise ajax call\r\n api.post('WebsiteError', data)\r\n .then(result => {\r\n console.log('success:', result);\r\n return result;\r\n })\r\n .catch(error => {\r\n console.log('error:', error);\r\n return error;\r\n });\r\n};\r\n\r\n// export interface IApiResponse {\r\n// status: number;\r\n// statusDetails: string;\r\n// message: string;\r\n// data: string;\r\n// }\r\nconst stripeUrl = 'stripe';\r\n\r\nexport interface IStripeForm {\r\n name: string;\r\n phone: string;\r\n email: string;\r\n}\r\n\r\nexport const createCustomerAndSetupIntent = (form: IStripeForm) => {\r\n // `axios` function returns promise, you can use any ajax lib, which can\r\n // return promise, or wrap in promise ajax call\r\n return api.post(stripeUrl + \"/createCustomerAndSetupIntent\", form, {})\r\n .then((result: axios.AxiosResponse) => {\r\n console.log('success from stripe:', result);\r\n return result;\r\n })\r\n .catch((error: axios.AxiosResponse) => {\r\n console.log('error from api:', error);\r\n throw error;\r\n });\r\n};\r\n","import React, {\r\n useState,\r\n forwardRef,\r\n useRef,\r\n useImperativeHandle,\r\n useEffect,\r\n} from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { useSpring, a, to as springTo, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { preloadRouteComponent } from \"app/routes\";\r\n\r\nimport { useTimeout } from \"utils/Index\";\r\n\r\nexport interface IOwnSpecificProps {\r\n to?: string;\r\n disabled?: boolean;\r\n type: \"extraSmall\" | \"small\" | \"medium\" | \"large\";\r\n scheme?: string;\r\n backgroundShade?: \"light\" | \"dark\";\r\n backgroundColor?: string;\r\n arrow?: boolean;\r\n id?: string;\r\n isActive?: boolean;\r\n animateIn?: boolean;\r\n animationReady?: boolean;\r\n onClick?: () => void;\r\n title: string;\r\n}\r\n\r\ntype IOwnProps = IOwnSpecificProps;\r\n\r\ntype IProps = IOwnProps;\r\n\r\nconst ButtonLinkComponent: React.FC = ({\r\n animateIn,\r\n animationReady,\r\n to = null,\r\n disabled = false,\r\n type,\r\n scheme,\r\n id,\r\n isActive,\r\n backgroundShade,\r\n backgroundColor,\r\n title,\r\n arrow,\r\n onClick = () => null,\r\n ...props\r\n}) => {\r\n const [clicked, setClicked] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n const [backgroundWidth, setBackgroundWidth] = useState(0);\r\n const [textMargin, setTextMargin] = useState(0);\r\n\r\n const [delay, setDelay] = useState(500);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n useTimeout(\r\n () => {\r\n setClicked(false);\r\n },\r\n triggerTimeout ? delay : null\r\n );\r\n\r\n useEffect(() => {\r\n let newBackgroundWidth;\r\n let newTextMargin;\r\n\r\n if (type === \"large\") {\r\n newBackgroundWidth = 60;\r\n newTextMargin = 20;\r\n } else if (type === \"medium\" || type === \"small\" || type === \"extraSmall\") {\r\n newBackgroundWidth = 30;\r\n newTextMargin = 10;\r\n }\r\n if (newBackgroundWidth !== backgroundWidth)\r\n setBackgroundWidth(newBackgroundWidth);\r\n if (newTextMargin !== textMargin) setTextMargin(newTextMargin);\r\n }, [backgroundWidth, textMargin, type]);\r\n\r\n const handleClick = () => {\r\n if (!disabled) {\r\n onClick();\r\n setTriggerTimeout(false);\r\n setClicked(true);\r\n setTriggerTimeout(true);\r\n }\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (!disabled) {\r\n if (!hovering) setHovering(true);\r\n if (to != null) preloadRouteComponent(to);\r\n }\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (!disabled) {\r\n if (hovering || clicked) {\r\n setHovering(false);\r\n setClicked(false);\r\n }\r\n }\r\n };\r\n\r\n const ctaArrow = () => {\r\n if (arrow) return ;\r\n else return null;\r\n };\r\n\r\n const backgroundStartRatio = 8;\r\n\r\n const inputProps: { [k: string]: any } = {\r\n className: classNames(\r\n \"button-link\",\r\n type,\r\n { [scheme]: scheme != null },\r\n { [\"background-\" + backgroundShade]: backgroundShade != null },\r\n { disabled }\r\n ),\r\n id,\r\n onClick: handleClick,\r\n onMouseEnter: handleMouseEnter,\r\n onMouseLeave: handleMouseLeave,\r\n title,\r\n };\r\n\r\n const backgroundSpringConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 50,\r\n friction: 36,\r\n };\r\n\r\n const [backgroundInitialisationSpring, setBackgroundInitialisation] =\r\n useSpring(() => ({\r\n x: 0,\r\n config: backgroundSpringConfig,\r\n }));\r\n\r\n const animateInSpringConfig: SpringConfig = {\r\n ...backgroundInitialisationSpring,\r\n tension: 35,\r\n };\r\n\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({\r\n x: 0,\r\n config: animateInSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setBackgroundInitialisation({ x: animationReady && animateIn ? 1 : 0 });\r\n setAnimateInSpring({ x: animationReady && animateIn ? 1 : 0 });\r\n }, [animationReady, animateIn]);\r\n\r\n const hoveringSpringConfig: SpringConfig = {\r\n ...backgroundInitialisationSpring,\r\n tension: 340,\r\n };\r\n\r\n const [hoveringSpring, setHoveringSpring] = useSpring(() => ({\r\n x: 0,\r\n config: hoveringSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setHoveringSpring({ x: hovering ? 1 : 0 });\r\n }, [hovering]);\r\n\r\n const [hoveringClickedSpring, setHoveringClickedSpring] = useSpring(() => ({\r\n x: 0,\r\n config: hoveringSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setHoveringClickedSpring({ x: hovering ? (clicked ? 10 : 7) : 0 });\r\n }, [hovering, clicked]);\r\n\r\n const backgroundStyles = {\r\n backgroundColor: backgroundColor != null ? backgroundColor : null,\r\n transform: springTo(\r\n [\r\n backgroundInitialisationSpring.x,\r\n hoveringSpring.x,\r\n hoveringClickedSpring.x,\r\n ],\r\n (backgroundInitialisation, y, z) =>\r\n `translateX(calc( ((${\r\n backgroundInitialisation <= backgroundStartRatio / 10 ? 1 : 0\r\n } * -200%) + (${\r\n backgroundInitialisation <= backgroundStartRatio / 10\r\n ? backgroundInitialisation * (10 / backgroundStartRatio)\r\n : 0\r\n } * 300%)) + ((${\r\n backgroundInitialisation > backgroundStartRatio / 10 ? 1 : 0\r\n } * -100%) + (${\r\n backgroundInitialisation > backgroundStartRatio / 10\r\n ? (backgroundInitialisation - backgroundStartRatio / 10) *\r\n (10 / (10 - backgroundStartRatio))\r\n : 0\r\n } * ${backgroundWidth}px)) + (${y} * -${backgroundWidth}px) + (${z} * 10%) ))`\r\n ),\r\n };\r\n\r\n const labelStyles = {\r\n transform: animateInSpring.x.to(\r\n (x) => `translateX(calc((${x} * ${textMargin}px) - ${textMargin}px))`\r\n ),\r\n };\r\n\r\n const LinkBody = (\r\n
\r\n \r\n \r\n {props.children} {ctaArrow()}\r\n \r\n
\r\n );\r\n\r\n const LinkText = (\r\n \r\n {props.children} {ctaArrow()}\r\n \r\n );\r\n\r\n if (to == null)\r\n return (\r\n
\r\n {LinkBody}\r\n {LinkText}\r\n
\r\n );\r\n else\r\n return (\r\n \r\n {LinkBody}\r\n {LinkText}\r\n \r\n );\r\n};\r\n\r\nexport const ButtonLink = ButtonLinkComponent;\r\n","module.exports = (__webpack_require__(8))(802);","import React, { useEffect, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n disableBodyScroll,\r\n enableBodyScroll,\r\n clearAllBodyScrollLocks,\r\n BodyScrollOptions,\r\n} from \"body-scroll-lock\";\r\n\r\nimport * as fromPageScroll from \"store/PageScroll\";\r\n\r\nexport const enablePullToRefresh = (allow = true, constant = false) => {\r\n const className = constant\r\n ? \"disablePullToRefresh\"\r\n : \"disablePullToRefreshTemp\";\r\n if (!allow) document.body.classList.add(className);\r\n else document.body.classList.remove(className);\r\n};\r\n\r\nexport const DisableScroll: React.FC<{}> = () => {\r\n const pageScrollEnabled = useSelector(fromPageScroll.getEnabled);\r\n\r\n const interfaceRef = useRef(null);\r\n\r\n const options: BodyScrollOptions = {\r\n reserveScrollBarGap: true,\r\n };\r\n\r\n useEffect(() => {\r\n if (pageScrollEnabled) {\r\n enablePullToRefresh();\r\n enableBodyScroll(interfaceRef.current);\r\n } else {\r\n enablePullToRefresh(false);\r\n disableBodyScroll(interfaceRef.current, options);\r\n }\r\n }, [pageScrollEnabled]);\r\n\r\n return
;\r\n};\r\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.profiling.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","module.exports = (__webpack_require__(8))(684);","module.exports = (__webpack_require__(8))(666);","module.exports = (__webpack_require__(8))(807);","module.exports = (__webpack_require__(8))(36);","module.exports = (__webpack_require__(8))(662);","module.exports = (__webpack_require__(8))(822);","module.exports = (__webpack_require__(8))(405);","/** @license React v16.8.6\n * react-dom.profiling.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\"),v=require(\"scheduler/tracing\");function ba(a,b,c,d,e,f,g,h){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var k=[c,d,e,f,g,h],l=0;a=Error(b.replace(/%s/g,function(){return k[l++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction x(a){for(var b=arguments.length-1,c=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,d=0;dthis.eventPool.length&&this.eventPool.push(a)}\nfunction jb(a){a.eventPool=[];a.getPooled=kb;a.release=lb}var mb=y.extend({data:null}),nb=y.extend({data:null}),ob=[9,13,27,32],pb=Sa&&\"CompositionEvent\"in window,qb=null;Sa&&\"documentMode\"in document&&(qb=document.documentMode);\nvar rb=Sa&&\"TextEvent\"in window&&!qb,sb=Sa&&(!pb||qb&&8=qb),tb=String.fromCharCode(32),ub={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},vb=!1;\nfunction wb(a,b){switch(a){case \"keyup\":return-1!==ob.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function xb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var yb=!1;function zb(a,b){switch(a){case \"compositionend\":return xb(b);case \"keypress\":if(32!==b.which)return null;vb=!0;return tb;case \"textInput\":return a=b.data,a===tb&&vb?null:a;default:return null}}\nfunction Ab(a,b){if(yb)return\"compositionend\"===a||!pb&&wb(a,b)?(a=fb(),eb=db=cb=null,yb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function B(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new B(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new B(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new B(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new B(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new B(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new B(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){C[a]=new B(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new B(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new B(a,5,!1,a.toLowerCase(),null)});var uc=/[\\-:]([a-z])/g;function vc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(uc,\nvc);C[b]=new B(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(uc,vc);C[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(uc,vc);C[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new B(a,1,!1,a.toLowerCase(),null)});\nfunction wc(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2Cd.length&&Cd.push(a)}}}var Id={},Jd=0,Kd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Ld(a){Object.prototype.hasOwnProperty.call(a,Kd)||(a[Kd]=Jd++,Id[a[Kd]]={});return Id[a[Kd]]}function Md(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Nd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Od(a,b){var c=Nd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Nd(c)}}function Pd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Pd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Qd(){for(var a=window,b=Md();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Md(a.document)}return b}function Rd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Sd(){var a=Qd();if(Rd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{b=(b=a.ownerDocument)&&b.defaultView||window;var c=b.getSelection&&b.getSelection();if(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(U){b=null;break a}var f=0,g=-1,h=-1,k=0,l=0,m=a,p=null;b:for(;;){for(var w;;){m!==b||0!==d&&3!==m.nodeType||(g=f+d);m!==e||0!==c&&3!==m.nodeType||(h=f+c);3===m.nodeType&&(f+=m.nodeValue.length);\nif(null===(w=m.firstChild))break;p=m;m=w}for(;;){if(m===a)break b;p===b&&++k===d&&(g=f);p===e&&++l===c&&(h=f);if(null!==(w=m.nextSibling))break;m=p;p=m.parentNode}m=w}b=-1===g||-1===h?null:{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;return{focusedElem:a,selectionRange:b}}\nfunction Td(a){var b=Qd(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Pd(c.ownerDocument.documentElement,c)){if(null!==d&&Rd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Od(c,f);var g=Od(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Vd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Wd=null,Xd=null,Yd=null,Zd=!1;\nfunction $d(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(Zd||null==Wd||Wd!==Md(c))return null;c=Wd;\"selectionStart\"in c&&Rd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Yd&&gd(Yd,c)?null:(Yd=c,a=y.getPooled(Vd.select,Xd,a,b),a.type=\"select\",a.target=Wd,Ra(a),a)}\nvar ae={eventTypes:Vd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Ld(e);f=sa.onSelect;for(var g=0;g=b.length?void 0:x(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:xc(c)}}\nfunction ge(a,b){var c=xc(b.value),d=xc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function he(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var ie={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction je(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function ke(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?je(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar le=void 0,me=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==ie.svg||\"innerHTML\"in a)a.innerHTML=b;else{le=le||document.createElement(\"div\");le.innerHTML=\"\"+b+\"\";for(b=le.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ne(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar oe={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pe=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(oe).forEach(function(a){pe.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);oe[b]=oe[a]})});function qe(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||oe.hasOwnProperty(a)&&oe[a]?(\"\"+b).trim():b+\"px\"}\nfunction re(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=qe(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var se=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction te(a,b){b&&(se[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?x(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?x(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:x(\"61\")),null!=b.style&&\"object\"!==typeof b.style?x(\"62\",\"\"):void 0)}\nfunction ue(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction ve(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Ld(a);b=sa[b];for(var d=0;dJe||(a.current=Ie[Je],Ie[Je]=null,Je--)}function F(a,b){Je++;Ie[Je]=a.current;a.current=b}var Ke={},G={current:Ke},H={current:!1},Le=Ke;\nfunction Me(a,b){var c=a.type.contextTypes;if(!c)return Ke;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function I(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ne(a){E(H,a);E(G,a)}function Oe(a){E(H,a);E(G,a)}\nfunction Pe(a,b,c){G.current!==Ke?x(\"168\"):void 0;F(G,b,a);F(H,c,a)}function Qe(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:x(\"108\",lc(b)||\"Unknown\",e);return n({},c,d)}function Re(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Ke;Le=G.current;F(G,b,a);F(H,H.current,a);return!0}\nfunction Se(a,b,c){var d=a.stateNode;d?void 0:x(\"169\");c?(b=Qe(a,b,Le),d.__reactInternalMemoizedMergedChildContext=b,E(H,a),E(G,a),F(G,b,a)):E(H,a);F(H,c,a)}var Te=null,Ue=null;function Ve(a){return function(b){try{return a(b)}catch(c){}}}var We=\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__;\nfunction Xe(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Te=Ve(function(a){return b.onCommitFiberRoot(c,a)});Ue=Ve(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Ye(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null;this.treeBaseDuration=this.selfBaseDuration=this.actualStartTime=this.actualDuration=Number.NaN;\nthis.actualDuration=0;this.actualStartTime=-1;this.treeBaseDuration=this.selfBaseDuration=0}function J(a,b,c,d){return new Ye(a,b,c,d)}function Ze(a){a=a.prototype;return!(!a||!a.isReactComponent)}function $e(a){if(\"function\"===typeof a)return Ze(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===fc)return 11;if(a===hc)return 14}return 2}\nfunction af(a,b){var c=a.alternate;null===c?(c=J(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null,c.actualDuration=0,c.actualStartTime=-1);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.contextDependencies=\na.contextDependencies;c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;c.selfBaseDuration=a.selfBaseDuration;c.treeBaseDuration=a.treeBaseDuration;return c}\nfunction bf(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ze(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case $b:return cf(c.children,e,f,b);case ec:return df(c,e|3,f,b);case ac:return df(c,e|2,f,b);case bc:return a=J(12,c,b,e|4),a.elementType=bc,a.type=bc,a.expirationTime=f,a;case gc:return a=J(13,c,b,e),a.elementType=gc,a.type=gc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case cc:g=10;break a;case dc:g=9;break a;case fc:g=11;break a;case hc:g=\n14;break a;case ic:g=16;d=null;break a}x(\"130\",null==a?a:typeof a,\"\")}b=J(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function cf(a,b,c,d){a=J(7,a,d,b);a.expirationTime=c;return a}function df(a,b,c,d){a=J(8,a,d,b);b=0===(b&1)?ac:ec;a.elementType=b;a.type=b;a.expirationTime=c;return a}function ef(a,b,c){a=J(6,a,null,b);a.expirationTime=c;return a}\nfunction ff(a,b,c){b=J(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function gf(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);hf(b,a)}\nfunction jf(a,b){a.didError=!1;if(0===b)a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0;else{bb?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>b&&(a.earliestPendingTime=a.latestPendingTime));c=a.earliestSuspendedTime;0===c?gf(a,b):bc&&gf(a,b)}hf(0,a)}function kf(a,b){var c=a.latestPendingTime,d=a.latestSuspendedTime;a=a.latestPingedTime;return 0!==c&&c=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);hf(b,a)}function mf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}\nfunction hf(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}function K(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}\nfunction nf(a){var b=a._result;switch(a._status){case 1:return b;case 2:throw b;case 0:throw b;default:a._status=0;b=a._ctor;b=b();b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)});switch(a._status){case 1:return a._result;case 2:throw a._result;}a._result=b;throw b;}}var of=(new aa.Component).refs;\nfunction pf(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}\nvar yf={isMounted:function(a){return(a=a._reactInternalFiber)?2===hd(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=qf();d=rf(d,a);var e=sf(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);tf();uf(a,e);vf(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=qf();d=rf(d,a);var e=sf(d);e.tag=wf;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);tf();uf(a,e);vf(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=qf();c=rf(c,a);var d=sf(c);d.tag=\nxf;void 0!==b&&null!==b&&(d.callback=b);tf();uf(a,d);vf(a,c)}};function zf(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!gd(c,d)||!gd(e,f):!0}\nfunction Af(a,b,c){var d=!1,e=Ke;var f=b.contextType;\"object\"===typeof f&&null!==f?f=L(f):(e=I(b)?Le:G.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Me(a,e):Ke);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=yf;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Bf(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&yf.enqueueReplaceState(b,b.state,null)}\nfunction Cf(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=of;var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=L(f):(f=I(b)?Le:G.current,e.context=Me(a,f));f=a.updateQueue;null!==f&&(Df(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;\"function\"===typeof f&&(pf(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==\ntypeof e.componentWillMount||(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&yf.enqueueReplaceState(e,e.state,null),f=a.updateQueue,null!==f&&(Df(a,f,c,e,d),e.state=a.memoizedState));\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Ef=Array.isArray;\nfunction Ff(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag?x(\"309\"):void 0,d=c.stateNode);d?void 0:x(\"147\",a);var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===of&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}\"string\"!==typeof a?x(\"284\"):void 0;c._owner?void 0:x(\"290\",a)}return a}\nfunction Gf(a,b){\"textarea\"!==a.type&&x(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction Hf(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=af(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,du?(z=q,q=null):z=q.sibling;var t=w(e,q,h[u],k);if(null===t){null===q&&(q=z);break}a&&\nq&&null===t.alternate&&b(e,q);g=f(t,g,u);null===m?l=t:m.sibling=t;m=t;q=z}if(u===h.length)return c(e,q),l;if(null===q){for(;uu?(z=q,q=null):z=q.sibling;var gb=w(e,q,t.value,k);if(null===gb){q||(q=z);break}a&&q&&null===gb.alternate&&b(e,q);g=f(gb,g,u);null===m?l=gb:m.sibling=gb;m=gb;q=z}if(t.done)return c(e,q),l;if(null===q){for(;!t.done;u++,t=h.next())t=p(e,t.value,k),null!==t&&(g=f(t,g,u),null===m?l=t:m.sibling=t,m=t);return l}for(q=d(e,q);!t.done;u++,t=h.next())t=U(q,e,u,t.value,k),null!==t&&(a&&null!==t.alternate&&q.delete(null===\nt.key?u:t.key),g=f(t,g,u),null===m?l=t:m.sibling=t,m=t);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===$b&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Yb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===$b:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===$b?f.props.children:f.props,h);d.ref=Ff(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,\nk);k=k.sibling}f.type===$b?(d=cf(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=bf(f.type,f.key,f.props,null,a.mode,h),h.ref=Ff(a,d,f),h.return=a,a=h)}return g(a);case Zb:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ff(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===\ntypeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=ef(f,a.mode,h),d.return=a,a=d),g(a);if(Ef(f))return Nb(a,d,f,h);if(kc(f))return La(a,d,f,h);l&&Gf(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,x(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var If=Hf(!0),Jf=Hf(!1),Kf={},M={current:Kf},Lf={current:Kf},Mf={current:Kf};function Nf(a){a===Kf?x(\"174\"):void 0;return a}\nfunction Of(a,b){F(Mf,b,a);F(Lf,a,a);F(M,Kf,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ke(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=ke(b,c)}E(M,a);F(M,b,a)}function Pf(a){E(M,a);E(Lf,a);E(Mf,a)}function Qf(a){Nf(Mf.current);var b=Nf(M.current);var c=ke(b,a.type);b!==c&&(F(Lf,a,a),F(M,c,a))}function Rf(a){Lf.current===a&&(E(M,a),E(Lf,a))}\nvar Sf=0,Tf=2,Uf=4,Vf=8,Wf=16,Xf=32,Yf=64,Zf=128,$f=Wb.ReactCurrentDispatcher,ag=0,bg=null,N=null,O=null,cg=null,P=null,dg=null,eg=0,fg=null,gg=0,hg=!1,ig=null,jg=0;function kg(){x(\"321\")}function lg(a,b){if(null===b)return!1;for(var c=0;ceg&&(eg=m)):f=k.eagerReducer===a?k.eagerState:a(f,k.action);g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);ed(f,b.memoizedState)||(vg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction wg(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===fg?(fg={lastEffect:null},fg.lastEffect=a.next=a):(b=fg.lastEffect,null===b?fg.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,fg.lastEffect=a));return a}function xg(a,b,c,d){var e=rg();gg|=a;e.memoizedState=wg(b,c,void 0,void 0===d?null:d)}\nfunction yg(a,b,c,d){var e=sg();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&lg(d,g.deps)){wg(Sf,c,f,d);return}}gg|=a;e.memoizedState=wg(b,c,f,d)}function zg(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ag(){}\nfunction Bg(a,b,c){25>jg?void 0:x(\"301\");var d=a.alternate;if(a===bg||null!==d&&d===bg)if(hg=!0,a={expirationTime:ag,action:c,eagerReducer:null,eagerState:null,next:null},null===ig&&(ig=new Map),c=ig.get(b),void 0===c)ig.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{tf();var e=qf();e=rf(e,a);var f={expirationTime:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===\nd||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(ed(l,k))return}catch(m){}finally{}vf(a,e)}}\nvar pg={readContext:L,useCallback:kg,useContext:kg,useEffect:kg,useImperativeHandle:kg,useLayoutEffect:kg,useMemo:kg,useReducer:kg,useRef:kg,useState:kg,useDebugValue:kg},ng={readContext:L,useCallback:function(a,b){rg().memoizedState=[a,void 0===b?null:b];return a},useContext:L,useEffect:function(a,b){return xg(516,Zf|Yf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return xg(4,Uf|Xf,zg.bind(null,b,a),c)},useLayoutEffect:function(a,b){return xg(4,Uf|Xf,a,b)},\nuseMemo:function(a,b){var c=rg();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=rg();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Bg.bind(null,bg,a);return[d.memoizedState,a]},useRef:function(a){var b=rg();a={current:a};return b.memoizedState=a},useState:function(a){var b=rg();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,\nlastRenderedReducer:tg,lastRenderedState:a};a=a.dispatch=Bg.bind(null,bg,a);return[b.memoizedState,a]},useDebugValue:Ag},og={readContext:L,useCallback:function(a,b){var c=sg();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&lg(b,d[1]))return d[0];c.memoizedState=[a,b];return a},useContext:L,useEffect:function(a,b){return yg(516,Zf|Yf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return yg(4,Uf|Xf,zg.bind(null,b,a),c)},useLayoutEffect:function(a,\nb){return yg(4,Uf|Xf,a,b)},useMemo:function(a,b){var c=sg();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&lg(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:ug,useRef:function(){return sg().memoizedState},useState:function(a){return ug(tg,a)},useDebugValue:Ag},Cg=0,Dg=-1;function Eg(a){Dg=r.unstable_now();0>a.actualStartTime&&(a.actualStartTime=r.unstable_now())}\nfunction Fg(a,b){if(0<=Dg){var c=r.unstable_now()-Dg;a.actualDuration+=c;b&&(a.selfBaseDuration=c);Dg=-1}}var Gg=null,Hg=null,Ig=!1;function Jg(a,b){var c=J(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Kg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function Lg(a){if(Ig){var b=Hg;if(b){var c=b;if(!Kg(a,b)){b=Ge(c);if(!b||!Kg(a,b)){a.effectTag|=2;Ig=!1;Gg=a;return}Jg(Gg,c)}Gg=a;Hg=He(b)}else a.effectTag|=2,Ig=!1,Gg=a}}\nfunction Mg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&18!==a.tag;)a=a.return;Gg=a}function Ng(a){if(a!==Gg)return!1;if(!Ig)return Mg(a),Ig=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ae(b,a.memoizedProps))for(b=Hg;b;)Jg(a,b),b=Ge(b);Mg(a);Hg=Gg?Ge(a.stateNode):null;return!0}function Og(){Hg=Gg=null;Ig=!1}var Pg=Wb.ReactCurrentOwner,vg=!1;function Q(a,b,c,d){b.child=null===a?Jf(b,null,c,d):If(b,a.child,c,d)}\nfunction Qg(a,b,c,d,e){c=c.render;var f=b.ref;Rg(b,e);d=mg(a,b,c,d,f,e);if(null!==a&&!vg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),Sg(a,b,e);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction Tg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ze(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ug(a,b,g,d,e,f);a=bf(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return ah(a,b,c);b=Sg(a,b,c);return null!==b?b.sibling:null}}return Sg(a,b,c)}}else vg=!1;b.expirationTime=\n0;switch(b.tag){case 2:d=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Me(b,G.current);Rg(b,c);e=mg(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;qg();if(I(d)){var f=!0;Re(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&pf(b,d,g,a);e.updater=yf;b.stateNode=e;e._reactInternalFiber=b;Cf(b,\nd,a,c);b=Zg(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=nf(e);b.type=a;e=b.tag=$e(a);f=K(a,f);g=void 0;switch(e){case 0:g=Vg(null,b,a,f,c);break;case 1:g=Xg(null,b,a,f,c);break;case 11:g=Qg(null,b,a,f,c);break;case 14:g=Tg(null,b,a,K(a.type,f),d,c);break;default:x(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:K(d,e),Vg(a,b,d,e,c);case 1:return d=\nb.type,e=b.pendingProps,e=b.elementType===d?e:K(d,e),Xg(a,b,d,e,c);case 3:$g(b);d=b.updateQueue;null===d?x(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;Df(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)Og(),b=Sg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)Hg=He(b.stateNode.containerInfo),Gg=b,e=Ig=!0;e?(b.effectTag|=2,b.child=Jf(b,null,d,c)):(Q(a,b,d,c),Og());b=b.child}return b;case 5:return Qf(b),null===a&&Lg(b),d=b.type,e=b.pendingProps,f=null!==\na?a.memoizedProps:null,g=e.children,Ae(d,e)?g=null:null!==f&&Ae(d,f)&&(b.effectTag|=16),Wg(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&Lg(b),null;case 13:return ah(a,b,c);case 4:return Of(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=If(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:K(d,e),Qg(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;\ncase 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return b.effectTag|=4,Q(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;ch(b,f);if(null!==g){var h=g.value;f=ed(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!H.current){b=Sg(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.contextDependencies;if(null!==k){g=\nh.child;for(var l=k.first;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=sf(c),l.tag=xf,uf(h,l));h.expirationTime=b&&(vg=!0);a.contextDependencies=null}function L(a,b){if(gh!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)gh=a,b=1073741823;b={context:a,observedBits:b,next:null};null===fh?(null===eh?x(\"308\"):void 0,fh=b,eh.contextDependencies={first:b,expirationTime:0}):fh=fh.next=b}return a._currentValue}var ih=0,wf=1,xf=2,jh=3,Yg=!1;\nfunction kh(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function lh(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction sf(a){return{expirationTime:a,tag:ih,payload:null,callback:null,next:null,nextEffect:null}}function mh(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction uf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=kh(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=kh(a.memoizedState),e=c.updateQueue=kh(c.memoizedState)):d=a.updateQueue=lh(e):null===e&&(e=c.updateQueue=lh(d));null===e||d===e?mh(d,b):null===d.lastUpdate||null===e.lastUpdate?(mh(d,b),mh(e,b)):(mh(d,b),e.lastUpdate=b)}\nfunction nh(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=kh(a.memoizedState):oh(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function oh(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=lh(b));return b}\nfunction ph(a,b,c,d,e,f){switch(c.tag){case wf:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case jh:a.effectTag=a.effectTag&-2049|64;case ih:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case xf:Yg=!0}return d}\nfunction Df(a,b,c,d,e){Yg=!1;b=oh(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;m=k)g=0;else if(-1===g||k component higher in the tree to provide a loading indicator or placeholder to display.\"+mc(c))}Sh=!0;d=sh(d,c);a=b;do{switch(a.tag){case 3:a.effectTag|=2048;a.expirationTime=e;e=Lh(a,d,e);nh(a,e);return;case 1:if(g=d,h=a.type,c=a.stateNode,0===(a.effectTag&64)&&(\"function\"===typeof h.getDerivedStateFromError||\nnull!==c&&\"function\"===typeof c.componentDidCatch&&(null===Oh||!Oh.has(c)))){a.effectTag|=2048;a.expirationTime=e;e=Nh(a,g,e);nh(a,e);return}}a=a.return}while(null!==a)}\nfunction Th(a){switch(a.tag){case 1:I(a.type)&&Ne(a);var b=a.effectTag;return b&2048?(a.effectTag=b&-2049|64,a):null;case 3:return Pf(a),Oe(a),b=a.effectTag,0!==(b&64)?x(\"285\"):void 0,a.effectTag=b&-2049|64,a;case 5:return Rf(a),null;case 13:return b=a.effectTag,b&2048?(a.effectTag=b&-2049|64,a):null;case 18:return null;case 4:return Pf(a),null;case 10:return hh(a),null;default:return null}}var Uh=Wb.ReactCurrentDispatcher,Vh=Wb.ReactCurrentOwner;\nnull==v.__interactionsRef||null==v.__interactionsRef.current?x(\"302\"):void 0;var Wh=1073741822,Xh=!1,R=null,Yh=null,S=0,Rh=-1,Sh=!1,T=null,Zh=!1,$h=null,ai=null,bi=null,Oh=null;function ci(){if(null!==R)for(var a=R.return;null!==a;){var b=a;switch(b.tag){case 1:var c=b.type.childContextTypes;null!==c&&void 0!==c&&Ne(b);break;case 3:Pf(b);Oe(b);break;case 5:Rf(b);break;case 4:Pf(b);break;case 10:hh(b)}a=a.return}Yh=null;S=0;Rh=-1;Sh=!1;R=null}\nfunction di(){for(;null!==T;){var a=T.effectTag;a&16&&ne(T.stateNode,\"\");if(a&128){var b=T.alternate;null!==b&&(b=b.ref,null!==b&&(\"function\"===typeof b?b(null):b.current=null))}switch(a&14){case 2:Hh(T);T.effectTag&=-3;break;case 6:Hh(T);T.effectTag&=-3;Ih(T.alternate,T);break;case 4:Ih(T.alternate,T);break;case 8:a=T,Fh(a),a.return=null,a.child=null,a.memoizedState=null,a.updateQueue=null,a=a.alternate,null!==a&&(a.return=null,a.child=null,a.memoizedState=null,a.updateQueue=null)}T=T.nextEffect}}\nfunction ei(){for(;null!==T;){if(T.effectTag&256)a:{var a=T.alternate,b=T;switch(b.tag){case 0:case 11:case 15:Ch(Tf,Sf,b);break a;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:K(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}break a;case 3:case 5:case 6:case 4:case 17:break a;default:x(\"163\")}}T=T.nextEffect}}\nfunction fi(a,b){for(;null!==T;){var c=T.effectTag;if(c&36){var d=a,e=T.alternate,f=T,g=b;switch(f.tag){case 0:case 11:case 15:Ch(Wf,Xf,f);break;case 1:d=f.stateNode;if(f.effectTag&4)if(null===e)d.componentDidMount();else{var h=f.elementType===f.type?e.memoizedProps:K(f.type,e.memoizedProps);d.componentDidUpdate(h,e.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}e=f.updateQueue;null!==e&&qh(f,e,d,g);break;case 3:e=f.updateQueue;if(null!==e){d=null;if(null!==f.child)switch(f.child.tag){case 5:d=\nf.child.stateNode;break;case 1:d=f.child.stateNode}qh(f,e,d,g)}break;case 5:g=f.stateNode;null===e&&f.effectTag&4&&ze(f.type,f.memoizedProps)&&g.focus();break;case 6:break;case 4:break;case 12:g=f.memoizedProps.onRender;g(f.memoizedProps.id,null===e?\"mount\":\"update\",f.actualDuration,f.treeBaseDuration,f.actualStartTime,Cg,d.memoizedInteractions);break;case 13:break;case 17:break;default:x(\"163\")}}c&128&&(f=T.ref,null!==f&&(g=T.stateNode,\"function\"===typeof f?f(g):f.current=g));c&512&&($h=a);T=T.nextEffect}}\nfunction gi(a,b){bi=ai=$h=null;var c=V;V=!0;do{if(b.effectTag&512){var d=!1,e=void 0;try{var f=b;Ch(Zf,Sf,f);Ch(Sf,Yf,f)}catch(g){d=!0,e=g}d&&Bh(b,e)}b=b.nextEffect}while(null!==b);V=c;c=a.expirationTime;0!==c&&hi(a,c);W||V||ii(1073741823,!1)}function tf(){null!==ai&&Ee(ai);null!==bi&&bi()}\nfunction ji(a,b){Zh=Xh=!0;a.current===b?x(\"177\"):void 0;var c=a.pendingCommitExpirationTime;0===c?x(\"261\"):void 0;a.pendingCommitExpirationTime=0;var d=b.expirationTime,e=b.childExpirationTime;jf(a,e>d?e:d);d=null;d=v.__interactionsRef.current;v.__interactionsRef.current=a.memoizedInteractions;Vh.current=null;e=void 0;1e?b:e;0===k&&(Oh=null);ki(a,k);v.__interactionsRef.current=d;var l=void 0;try{if(l=v.__subscriberRef.current,null!==l&&0k&&(m.delete(b),a.forEach(function(a){a.__count--;if(null!==l&&0===\na.__count)try{l.onInteractionScheduledWorkCompleted(a)}catch(Nb){X||(X=!0,li=Nb)}}))})}}\nfunction mi(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0===(a.effectTag&1024)){R=a;a.mode&4&&Eg(a);a:{var e=b;b=a;var f=S;var g=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:I(b.type)&&Ne(b);break;case 3:Pf(b);Oe(b);g=b.stateNode;g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null);if(null===e||null===e.child)Ng(b),b.effectTag&=-3;vh(b);break;case 5:Rf(b);var h=Nf(Mf.current);f=b.type;if(null!==e&&null!=b.stateNode)wh(e,b,f,g,h),e.ref!==\nb.ref&&(b.effectTag|=128);else if(g){var k=Nf(M.current);if(Ng(b)){g=b;e=g.stateNode;var l=g.type,m=g.memoizedProps,p=h;e[Fa]=g;e[Ga]=m;f=void 0;h=l;switch(h){case \"iframe\":case \"object\":D(\"load\",e);break;case \"video\":case \"audio\":for(l=0;l\\x3c/script>\",l=e.removeChild(e.firstChild)):\"string\"===typeof e.is?l=l.createElement(p,{is:e.is}):(l=l.createElement(p),\"select\"===p&&(p=l,e.multiple?p.multiple=!0:e.size&&(p.size=e.size))):l=l.createElementNS(k,p);e=l;e[Fa]=m;e[Ga]=g;uh(e,b,!1,!1);p=e;\nl=f;m=g;var w=h,U=ue(l,m);switch(l){case \"iframe\":case \"object\":D(\"load\",p);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=p),l>g&&(g=l),h&&(f+=m.actualDuration),e+=m.treeBaseDuration,m=m.sibling;b.actualDuration=f;b.treeBaseDuration=e}else for(f=b.child;null!==f;)e=f.expirationTime,h=f.childExpirationTime,e>g&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==R)return R;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=\na.firstEffect),c.lastEffect=a.lastEffect),1=d&&a.forEach(function(a){return e.add(a)})});a.memoizedInteractions=e;if(0b?0:b)):ri(a,c,d)}}\nfunction Bh(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Oh||!Oh.has(d))){a=sh(b,a);a=Nh(c,a,1073741823);uf(c,a);vf(c,1073741823);return}break;case 3:a=sh(b,a);a=Lh(c,a,1073741823);uf(c,a);vf(c,1073741823);return}c=c.return}3===a.tag&&(c=sh(b,a),c=Lh(a,c,1073741823),uf(a,c),vf(a,1073741823))}\nfunction rf(a,b){var c=r.unstable_getCurrentPriorityLevel(),d=void 0;if(0===(b.mode&1))d=1073741823;else if(Xh&&!Zh)d=S;else{switch(c){case r.unstable_ImmediatePriority:d=1073741823;break;case r.unstable_UserBlockingPriority:d=1073741822-10*(((1073741822-a+15)/10|0)+1);break;case r.unstable_NormalPriority:d=1073741822-25*(((1073741822-a+500)/25|0)+1);break;case r.unstable_LowPriority:case r.unstable_IdlePriority:d=1;break;default:x(\"313\")}null!==Yh&&d===S&&--d}c===r.unstable_UserBlockingPriority&&\n(0===si||d=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;hf(c,a);c=a.expirationTime;0!==c&&hi(a,c)}}function Jh(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=qf();b=rf(b,a);a=ti(a,b);null!==a&&(gf(a,b),b=a.expirationTime,0!==b&&hi(a,b))}\nfunction ti(a,b){a.expirationTimeS&&ci(),gf(a,b),Xh&&!Zh&&Yh===a||hi(a,a.expirationTime),ui>vi&&(ui=0,x(\"185\")))}function wi(a,b,c,d,e){return r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){return a(b,c,d,e)})}\nvar xi=null,Y=null,yi=0,zi=void 0,V=!1,Ai=null,Z=0,si=0,X=!1,li=null,W=!1,Bi=!1,Ci=null,Di=r.unstable_now(),Ei=1073741822-(Di/10|0),Fi=Ei,vi=50,ui=0,Gi=null;function Hi(){Ei=1073741822-((r.unstable_now()-Di)/10|0)}function Ii(a,b){if(0!==yi){if(ba.expirationTime&&(a.expirationTime=b);V||(W?Bi&&(Ai=a,Z=1073741823,Ni(a,1073741823,!1)):1073741823===b?ii(1073741823,!1):Ii(a,b))}\nfunction Mi(){var a=0,b=null;if(null!==Y)for(var c=Y,d=xi;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===Y?x(\"244\"):void 0;if(d===d.nextScheduledRoot){xi=Y=d.nextScheduledRoot=null;break}else if(d===xi)xi=e=d.nextScheduledRoot,Y.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===Y){Y=c;Y.nextScheduledRoot=xi;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===Y)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}Ai=b;Z=a}var Oi=!1;function pi(){return Oi?!0:r.unstable_shouldYield()?Oi=!0:!1}function Ji(){try{if(!pi()&&null!==xi){Hi();var a=xi;do{var b=a.expirationTime;0!==b&&Ei<=b&&(a.nextExpirationTimeToWorkOn=Ei);a=a.nextScheduledRoot}while(a!==xi)}ii(0,!0)}finally{Oi=!1}}\nfunction ii(a,b){Mi();if(b)for(Hi(),Fi=Ei;null!==Ai&&0!==Z&&a<=Z&&!(Oi&&Ei>Z);)Ni(Ai,Z,Ei>Z),Mi(),Hi(),Fi=Ei;else for(;null!==Ai&&0!==Z&&a<=Z;)Ni(Ai,Z,!1),Mi();b&&(yi=0,zi=null);0!==Z&&Ii(Ai,Z);ui=0;Gi=null;if(null!==Ci)for(a=Ci,Ci=null,b=0;b=c&&(null===Ci?Ci=[d]:Ci.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Gi?ui++:(Gi=a,ui=0);r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){ji(a,b)})}function Mh(a){null===Ai?x(\"246\"):void 0;Ai.expirationTime=0;X||(X=!0,li=a)}function Qi(a,b){var c=W;W=!0;try{return a(b)}finally{(W=c)||V||ii(1073741823,!1)}}\nfunction Ri(a,b){if(W&&!Bi){Bi=!0;try{return a(b)}finally{Bi=!1}}return a(b)}function Si(a,b,c){W||V||0===si||(ii(si,!1),si=0);var d=W;W=!0;try{return r.unstable_runWithPriority(r.unstable_UserBlockingPriority,function(){return a(b,c)})}finally{(W=d)||V||ii(1073741823,!1)}}\nfunction Ti(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===hd(c)&&1===c.tag?void 0:x(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(I(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);x(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(I(h)){c=Qe(c,h,g);break a}}c=g}else c=Ke;null===b.context?b.context=c:b.pendingContext=c;b=e;e=sf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\ntf();uf(f,e);vf(f,d);return d}function Ui(a,b,c,d){var e=b.current,f=qf();e=rf(f,e);return Ti(a,b,c,e,d)}function Vi(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Wi(a,b,c){var d=3=Wh&&(b=Wh-1);this._expirationTime=Wh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}Xi.prototype.render=function(a){this._defer?void 0:x(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new Yi;Ti(a,b,null,c,d._onCommit);return d};\nXi.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nXi.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:x(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?x(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Li(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};Xi.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};\nfunction $i(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Ib=Qi;Jb=Si;Kb=function(){V||0===si||(ii(si,!1),si=0)};function aj(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new Zi(a,!1,b)}\nfunction bj(a,b,c,d,e){var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Vi(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=aj(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Vi(f._internalRoot);h.call(a)}}Ri(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Vi(f._internalRoot)}\nfunction cj(a,b){var c=2 => (dispatch, getState) => {\r\n // Only load data if it's something we don't already have (and are not already loading)\r\n if (startDateIndex !== getState().weatherForecasts.startDateIndex) {\r\n const fetchTask = fetch(`/api/SampleData/WeatherForecasts?startDateIndex=${startDateIndex}`)\r\n .then(response => response.json() as Promise)\r\n .then(data => {\r\n dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex, forecasts: data });\r\n });\r\n\r\n addTask(fetchTask); // Ensure server-side prerendering waits for this to complete\r\n dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex });\r\n }\r\n },\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nconst unloadedState: IWeatherForecastsState = { forecasts: [], isLoading: false };\r\n\r\nexport const reducer: Reducer = (state: IWeatherForecastsState, incomingAction: Action) => {\r\n const action = incomingAction as IKnownAction;\r\n switch (action.type) {\r\n case 'REQUEST_WEATHER_FORECASTS':\r\n return {\r\n ...state,\r\n startDateIndex: action.startDateIndex,\r\n forecasts: state.forecasts,\r\n isLoading: true,\r\n };\r\n case 'RECEIVE_WEATHER_FORECASTS':\r\n // Only accept the incoming data if it matches the most recent request. This ensures we correctly\r\n // handle out-of-order responses.\r\n if (action.startDateIndex === state.startDateIndex) {\r\n return {\r\n ...state,\r\n startDateIndex: action.startDateIndex,\r\n forecasts: action.forecasts,\r\n isLoading: false,\r\n };\r\n }\r\n break;\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n return state || unloadedState;\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nexport const getWeatherForecast = state => state.weatherForecasts;\r\n","//import 'babel-polyfill';\r\nimport { combineReducers, ReducersMapObject } from \"redux\";\r\nimport { History } from \"history\";\r\nimport { RouterState, connectRouter } from \"connected-react-router\";\r\nimport * as fromWeatherForecasts from \"./WeatherForecasts\";\r\nimport * as fromCounter from \"./Counter\";\r\nimport * as fromInterfaceOverlay from \"./InterfaceOverlay\";\r\nimport * as fromUserInterface from \"./UserInterface\";\r\nimport * as fromViewport from \"./Viewport\";\r\nimport * as fromPageScroll from \"./PageScroll\";\r\nimport * as fromMainNavigation from \"./MainNavigation\";\r\nimport * as fromInPageNavigation from \"./InPageNavigation\";\r\nimport * as fromProjects from \"./Projects\";\r\n\r\n//import { reducer as responsiveReducer } from 'react-responsive-redux';\r\n\r\n// The top-level state object\r\nexport interface IApplicationState {\r\n interfaceOverlay: fromInterfaceOverlay.IInterfaceOverlayState;\r\n userInterface: fromUserInterface.IUserInterfaceState;\r\n viewport: fromViewport.IViewportState;\r\n mainNavigation: fromMainNavigation.IMainNavigationState;\r\n inPageNavigation: fromInPageNavigation.IInPageNavigationState;\r\n pageScroll: fromPageScroll.IPageScrollState;\r\n counter: fromCounter.ICounterState;\r\n weatherForecasts: fromWeatherForecasts.IWeatherForecastsState;\r\n projects: fromProjects.IProjectsState;\r\n //responsive: any;\r\n router: RouterState;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n interfaceOverlay: fromInterfaceOverlay.reducer,\r\n userInterface: fromUserInterface.reducer,\r\n viewport: fromViewport.reducer,\r\n mainNavigation: fromMainNavigation.reducer,\r\n inPageNavigation: fromInPageNavigation.reducer,\r\n pageScroll: fromPageScroll.reducer,\r\n counter: fromCounter.reducer,\r\n weatherForecasts: fromWeatherForecasts.reducer,\r\n projects: fromProjects.reducer,\r\n //responsive: responsiveReducer,\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport type IAppThunkAction = (\r\n dispatch: (action: TAction) => void,\r\n getState: () => IApplicationState\r\n) => void;\r\n\r\nexport function createRootReducer(\r\n history: History,\r\n allReducers: ReducersMapObject\r\n) {\r\n //function createRootReducer(history: History, allReducers: ReducersMapObject) {\r\n return combineReducers({\r\n //return combineReducers({\r\n ...reducers,\r\n router: connectRouter(history),\r\n ...allReducers,\r\n });\r\n}\r\n","//import 'babel-polyfill';\r\nimport { Action, Reducer } from \"redux\";\r\nimport { IAppThunkAction } from \"./\";\r\nimport * as api from \"api/api\";\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface ICounterState {\r\n count: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\ninterface IIncrementCountAction {\r\n type: \"INCREMENT_COUNT\";\r\n}\r\ninterface IDecrementCountAction {\r\n type: \"DECREMENT_COUNT\";\r\n}\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\ntype IKnownAction = IIncrementCountAction | IDecrementCountAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n// We are using them to fire off our events that will be handled by the root sagas and delegated consequently\r\n\r\nexport const moreActionCreators = {\r\n hello: () => ({ type: \"DECREMENT_COUNT\" } as IDecrementCountAction),\r\n};\r\n\r\nexport const actionCreators = {\r\n fetchServerDetails: () => (dispatch) => {\r\n dispatch({ type: \"FETCH_SERVER_DETAILS\" });\r\n },\r\n increment: () => ({ type: \"INCREMENT_COUNT\" } as IIncrementCountAction),\r\n decrement: () => ({ type: \"DECREMENT_COUNT\" } as IDecrementCountAction),\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (\r\n state: ICounterState,\r\n action: IKnownAction\r\n) => {\r\n switch (action.type) {\r\n case \"INCREMENT_COUNT\":\r\n return {\r\n ...state,\r\n count: state.count + 100,\r\n };\r\n case \"DECREMENT_COUNT\":\r\n return {\r\n ...state,\r\n count: state.count - 50,\r\n };\r\n default:\r\n // The following line guarantees that every action in the KnownAction union has been covered by a case above\r\n const exhaustiveCheck: never = action;\r\n }\r\n\r\n // For unrecognized actions (or in cases where actions have no effect), must return the existing state\r\n // (or default initial state if none was supplied)\r\n return state || { count: 0 };\r\n};\r\n\r\n// ----------------\r\n// SELECTORS - These are functions exposed to UI components that will give them access to the associated store components.\r\n// They only return the reference to the required state in the store, they don't change it.\r\n\r\nexport const getCounter = (state) => state.counter;\r\n","//import 'babel-polyfill';\r\nimport {\r\n createStore,\r\n applyMiddleware,\r\n compose,\r\n combineReducers,\r\n Store,\r\n StoreEnhancerStoreCreator,\r\n ReducersMapObject,\r\n} from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport { routerMiddleware } from \"connected-react-router\";\r\nimport * as StoreModule from \"./store\";\r\nimport { IApplicationState, createRootReducer, reducers } from \"./store\";\r\nimport { History } from \"history\";\r\n\r\nimport { signalRMiddleware } from \"store/middleware/signalR\";\r\n\r\nfunction logger({ getState }) {\r\n return (next) => (action) => {\r\n //console.log('will dispatch', action)\r\n\r\n // Call the next dispatch method in the middleware chain.\r\n const returnValue = next(action);\r\n\r\n //console.log('state after dispatch', getState())\r\n\r\n // This will likely be the action itself, unless\r\n // a middleware further in chain changed it.\r\n return returnValue;\r\n };\r\n}\r\n\r\nexport default function configureStore(\r\n history: History,\r\n preloadedState?: IApplicationState,\r\n context = {}\r\n) {\r\n const middleware = [\r\n thunk,\r\n logger,\r\n routerMiddleware(history),\r\n signalRMiddleware,\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = true;\r\n if (\r\n isDevelopment &&\r\n typeof window !== \"undefined\" &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ) {\r\n enhancers.push((window as any).__REDUX_DEVTOOLS_EXTENSION__());\r\n //enhancers.push((window as any).devToolsExtension());\r\n }\r\n\r\n const createStoreWithMiddleware = compose(\r\n applyMiddleware(...middleware),\r\n ...enhancers\r\n )(createStore);\r\n\r\n // Combine all reducers and instantiate the app-wide store instance\r\n //const allReducers = createRootReducer(history);\r\n const allReducers = createRootReducer(history, reducers);\r\n const store = createStoreWithMiddleware(\r\n allReducers,\r\n preloadedState\r\n ) as Store;\r\n\r\n // Enable Webpack hot module replacement for reducers\r\n if (module.hot) {\r\n module.hot.accept(\"./store\", () => {\r\n const nextRootReducer = require(\"./store\");\r\n //store.replaceReducer(createRootReducer(history));\r\n store.replaceReducer(\r\n createRootReducer(history, nextRootReducer.reducers)\r\n );\r\n });\r\n }\r\n\r\n return store;\r\n}\r\n","import \"app/wdyr\"; // <--- first import\r\n\r\nimport \"@babel/polyfill\";\r\n\r\nimport React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n//import { Helmet, HelmetProvider } from 'react-helmet-async';\r\n\r\nimport { AppContainer } from \"react-hot-loader\";\r\nimport { Provider } from \"react-redux\";\r\n//import { ConnectedRouter } from 'react-router-redux';\r\nimport { ConnectedRouter } from \"connected-react-router\";\r\nimport configureStore from \"./configureStore\";\r\nimport { IApplicationState } from \"./store\";\r\nimport * as RoutesModule from \"./routes\";\r\nlet routes = RoutesModule.Routes;\r\nimport { Routes } from \"./routes\";\r\nimport { createBrowserHistory, Location } from \"history\";\r\n\r\nimport Loadable from \"react-loadable\";\r\n\r\nimport { SEOHelmet } from \"components/SEO/SEOHelmet\";\r\n\r\n// Import Google Analytics and Tag Manager so that we can track how users use the website\r\nimport * as ReactGA from \"react-ga\";\r\nimport TagManager from \"react-gtm-module\";\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName(\"base\")[0].getAttribute(\"href\")!;\r\nexport const history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst preloadedState = (window as any).initialReduxState as IApplicationState;\r\nconst store = configureStore(history, preloadedState);\r\n\r\n// Get host of the website so we can differentiate between the live, test and development sites for analytics and so on\r\nconst hostname = window && window.location && window.location.hostname;\r\n\r\nif (hostname === \"www.qorestudio.com\" || hostname === \"qorestudio.com\") {\r\n //console.log('------------------------------------------------------------------------------------ LIVE SITE')\r\n\r\n // ---------------------------------------------------------------------- Google Analytics Setup\r\n ReactGA.initialize(\"UA-58133466-1\");\r\n ReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\n // ---------------------------------------------------------------------- Google Tag Manager Setup\r\n\r\n const tagManagerArgs = {\r\n gtmId: \"GTM-PN7FTKW\",\r\n };\r\n\r\n TagManager.initialize(tagManagerArgs);\r\n\r\n // ---------------------------------------------------------------------- Update Google Analytics location when react router changes location\r\n\r\n history.listen((location, action) => {\r\n ReactGA.set({ page: location.pathname });\r\n ReactGA.pageview(location.pathname);\r\n });\r\n} else if (hostname === \"test.qorestudio.com\") {\r\n //console.log('------------------------------------------------------------------------------------ TEST SITE')\r\n} else {\r\n //console.log('------------------------------------------------------------------------------------ DEV SITE');\r\n //console.log('------------------------------------------------------------------------------------ React Version: ' + React.version);\r\n}\r\n\r\nconst isDevBuild = process.env.NODE_ENV === \"development\";\r\nif (isDevBuild) {\r\n console.log(\"Looks like we are in development mode!\");\r\n}\r\n\r\nfunction renderApp() {\r\n const app = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n // This code sets up the lazy loading of react modules and code split components ready for rehydration from SSR\r\n Loadable.preloadReady().then(() => {\r\n // This code starts up the React app when it runs in a browser. It sets up the routing configuration\r\n // and injects the app into a DOM element.\r\n ReactDOM.hydrate(app, document.getElementById(\"react-app\"));\r\n });\r\n}\r\n\r\nrenderApp();\r\n\r\n// Allow Hot Module Replacement\r\nif (module.hot) {\r\n module.hot.accept(\"./routes\", () => {\r\n routes = require(\"./routes\").RoutesComponent;\r\n //routes = require('./routes').RoutesComponent;\r\n renderApp();\r\n });\r\n}\r\n"],"sourceRoot":""}