{"version":3,"sources":["_platform/src/containers/App/constants.js","_platform/src/utils/getLoginPath.js","containers/WebApp/saga.js","_platform/src/utils/PrivateRoute.js","containers/WebApp/Routes.js","_platform/src/utils/core/reducers.js","_platform/src/containers/App/reducer.js","_platform/src/utils/toast.js","_platform/src/utils/request.js","_platform/src/utils/simpleSlugify.js","containers/WebApp/actions.js","_platform/src/theme/globalStyles.js","theme/globalStylesApp.js","_platform/src/utils/core/reducerInjectors.js","_platform/src/utils/injectReducer.js","_platform/src/components/Loading/LoadingAnimation.js","_platform/src/components/SvgIcon/SvgIcon.js","_platform/src/containers/App/actions.js","theme/svg-sprites.svg","containers/WebApp/selectors.js","_platform/src/components/Loading/Loading.js","_platform/src/utils/LoadAsync.js","_platform/src/utils/history.js","_platform/src/containers/App/selectors.js","containers lazy /^/.//.*$/ groupOptions: {} namespace object","_platform/src/theme/settingsDefault.js","theme/settingsApp.js","theme/themeApp.js","_platform/src/containers/App/saga.js","_platform/src/containers/App/App.js","serviceWorker.js","index.js","_platform/src/utils/core/checkStore.js","containers/WebApp/SettingsContext.js","_platform/src/utils/utilities.js","containers/WebApp/constants.js","_platform/src/utils/tokenUtils.js","containers/WebApp/reducer.js","components/CustomComponents/CustomFooter/Footer.js","_platform/src/components/LoriFooter/LoriFooter.js","_platform/src/components/ScrollToTop/ScrollToTop.js","containers/WebApp/WebApp.js","_platform/src/utils/store.js","_platform/src/utils/core/configureStore.js","_platform/src/utils/core/constants.js","_platform/src/utils/core/sagaInjectors.js","_platform/src/utils/injectSaga.js"],"names":["__webpack_require__","d","__webpack_exports__","COUNTRIES_REQUEST","COUNTRIES_SUCCESS","COUNTRIES_ERROR","SET_USER","USER_LOGOUT_REQUEST","USER_PROFILE_REQUEST","USER_PROFILE_SUCCESS","USER_PROFILE_ERROR","USER_TOKEN_REQUEST","USER_TOKEN_SUCCESS","USER_TOKEN_ERROR","getLoginPath","settingsApp","_history$location","history","location","pathname","search","loginPagePath","logoutPagePath","queryString","qs","parse","replace","ignoreQueryPrefix","returnUrl","concat","stringify","Object","keys","length","returnQueryString","queryStringUpdated","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","requestCardBalance","requestCart","requestCustomerReps","requestMenu","requestSettings","requestWishlist","requestWishlistAddRemove","userLogoutListener","rootSaga","response","error","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default","a","wrap","_context","prev","next","put","showLoading","call","api","get","description","sent","cardBalanceSuccess","data","Math","floor","Date","now","t0","apiErrorHandler","status","cardBalanceError","hideLoading","finish","stop","_marked","_response","_error","_context2","cartSuccess","cartRewards","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","map","reward","slug","slugify","rewardCode","rewardId","cartError","_marked2","_response2","_error2","_context3","customerRepsSuccess","customerRepsError","_marked3","_response3","routes","_error3","_context4","menuSuccess","flattenDeepArrayOfObjects","menuUpdateRoutes","localStorage","setItem","JSON","removeItem","menuError","_marked4","_ref","_ref2","claimingPeriods","program","unitsOfMeasure","_error4","_context5","all","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","settingsSuccess","item","dateStartsUser","dateStartsUtc","dateEndsUser","dateEndsUtc","settingsError","toast","_marked5","_response4","_error5","_context6","wishlistSuccess","wishlistError","_marked6","values","payload","action","_context7","toLowerCase","post","delete","wishlistId","undefined","wishlistRequest","t1","process","_marked7","_context8","delay","userLogoutClearUserData","menuRequest","_marked8","_context9","takeLatest","CARD_BALANCE_REQUEST","CART_REQUEST","CUSTOMER_REPS_REQUEST","MENU_REQUEST","SETTINGS_REQUEST","WISHLIST_REQUEST","WISHLIST_ADDREMOVE_REQUEST","_marked9","PrivateRoute","_this","this","_this$props","props","Component","component","user","tempAuthAllowed","rest","objectWithoutProperties","_this$props2","currentUser","currentUserTemp","userObject","token","react_default","createElement","react_router","assign","render","menuId","push","to","theme","defaultProps","mapStateToProps","createStructuredSelector","selectCurrentUser","selectCurrentUserTemp","withConnect","connect","compose","withTheme","Routes","exact","path","LoadAsync","e","then","bind","passwordResetEnabled","passwordResetPagePath","utils_PrivateRoute","mobileAppSSOEnabled","mobileAppSSOPagePath","route","key","routeExact","createReducer","injectedReducers","combineReducers","loadingBar","loadingBarReducer","global","globalReducer","initialState","countries","retrieveToken","isFetchingToken","profileDetails","statusDetails","userOptions","appReducer","state","arguments","type","lastUpdated","options","isProfileValid","forcePasswordChange","details","message","toastType","toastOptions","autoClose","toastify","apiSetAuthorizationToken","axios__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_0___default","n","_store__WEBPACK_IMPORTED_MODULE_1__","_containers_App_actions__WEBPACK_IMPORTED_MODULE_2__","axios","defaults","headers","create","baseURL","title","config","statusText","messageDetails","request","interceptors","use","requestData","url","indexOf","store","dispatch","userLogoutRequest","skipRemote","Promise","reject","simpleSlugify","text","toString","trim","r","cardBalanceRequest","cartRequest","customerRepsRequest","settingsRequest","wishlistAddRemoveRequest","_constants__WEBPACK_IMPORTED_MODULE_0__","refresh","CARD_BALANCE_SUCCESS","CARD_BALANCE_ERROR","CART_SUCCESS","CART_ERROR","CUSTOMER_REPS_SUCCESS","CUSTOMER_REPS_ERROR","MENU_SUCCESS","MENU_ERROR","MENU_UPDATE_ROUTES","SETTINGS_SUCCESS","SETTINGS_ERROR","USER_LOGOUT_REQUEST_CLEANUP","WISHLIST_SUCCESS","WISHLIST_ERROR","globalStyles","css","_templateObject","thd","GlobalStylesApp","createGlobalStyle","globalStylesApp_templateObject","loriGlobalStyles","StylesApp","Fragment","smooth_ui_core_sc_es","injectReducerFactory","isValid","reducer","checkStore","invariant","isString","isEmpty","isFunction","Reflect","has","replaceReducer","getInjectors","injectReducer","WrappedComponent","ReducerInjector","_React$Component","context","classCallCheck","possibleConstructorReturn","getPrototypeOf","inherits","createClass","value","React","contextType","ReactReduxContext","displayName","name","hoistNonReactStatics","SpinLoader","styled","span","thickness","sColor","pColor","height","width","LoadingAnimation","className","style","_ref$theme","react__WEBPACK_IMPORTED_MODULE_1___default","loadingSpinnerPrimary","loadingSpinnerSecondary","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","theme_svg_sprites_svg__WEBPACK_IMPORTED_MODULE_1__","theme_svg_sprites_svg__WEBPACK_IMPORTED_MODULE_1___default","SvgIcon","icon","scaleWidth","scaleHeight","fill","color","viewBox","xlinkHref","svgSprites","countriesRequest","countriesSuccess","countriesError","setUser","userProfileRequest","userProfileSuccess","userProfileError","userTokenRequest","userTokenSuccess","userTokenError","module","exports","p","selectState","selectCardBalance","selectCart","selectCustomerReps","selectMenu","selectRoutes","selectSettings","selectSettingsNextClaimingPeriod","selectSettingsPointsUOM","selectSettingsProgram","selectSettingsSalesUOMs","selectWishlist","reselect__WEBPACK_IMPORTED_MODULE_0__","_reducer__WEBPACK_IMPORTED_MODULE_1__","webApp","createSelector","cardBalance","cart","customerReps","menu","settings","find","pointsMeasure","filter","wishlist","Loading","code","timedOut","onClick","retry","pastDelay","loadFn","opts","Loadable","loader","loading","timeout","history__WEBPACK_IMPORTED_MODULE_0__","createBrowserHistory","selectCountries","selectIsFetchingToken","selectStatus","selectUserOptions","selectUserProfile","selectGlobalState","./AboutPage/AboutAwardsNight","./AboutPage/AboutAwardsNight.js","./AboutPage/AboutPage","./AboutPage/AboutPage.js","./AboutPage/images/HP-products-banner-@1x.jpg","./AboutPage/images/HP-products-banner-@2x.jpg","./AboutPage/images/HP-products-banner-mobile-@1x.jpg","./AboutPage/images/HP-products-banner-mobile-@2x.jpg","./AboutPage/images/HP-products-banner-tablet-@1x.jpg","./AboutPage/images/HP-products-banner-tablet-@2x.jpg","./AboutPage/images/banner-about-@1x.jpg","./AboutPage/images/banner-about-@2x.jpg","./AboutPage/images/banner-about-man_using_keyboard-@2x.jpg","./AboutPage/images/banner-about-mobile-@1x.jpg","./AboutPage/images/banner-about-mobile-@2x.jpg","./AboutPage/images/banner-about-tablet-@1x.jpg","./AboutPage/images/banner-about-tablet-@2x.jpg","./AboutPage/images/bg-about-awards_night_banner-@2x.jpg","./AboutPage/images/icon-handgraph.svg","./AboutPage/images/icon-lightbulb.svg","./AboutPage/images/icon-shield.svg","./AboutPage/images/icon-stopwatch.svg","./AboutPage/images/image-about-1-@2x.jpg","./AboutPage/images/image-about-2-@2x.jpg","./AboutPage/images/image-about-digital_giftcards-@2x.jpg","./AboutPage/images/image-about-rewards_collage-@2x.jpg","./AboutPage/images/image-about-travel_collage-@2x.jpg","./AllocatorPage/AllocateForm","./AllocatorPage/AllocateForm.js","./AllocatorPage/AllocatorPage","./AllocatorPage/AllocatorPage.js","./AllocatorPage/Participants","./AllocatorPage/Participants.js","./AllocatorPage/actions","./AllocatorPage/actions.js","./AllocatorPage/constants","./AllocatorPage/constants.js","./AllocatorPage/images/HP-tracker-banner-@1x.jpg","./AllocatorPage/images/HP-tracker-banner-@2x.jpg","./AllocatorPage/images/HP-tracker-banner-mobile-@1x.jpg","./AllocatorPage/images/HP-tracker-banner-mobile-@2x.jpg","./AllocatorPage/images/HP-tracker-banner-tablet-@1x.jpg","./AllocatorPage/images/HP-tracker-banner-tablet-@2x.jpg","./AllocatorPage/reducer","./AllocatorPage/reducer.js","./AllocatorPage/saga","./AllocatorPage/saga.js","./AllocatorPage/selectors","./AllocatorPage/selectors.js","./BehaviourProvider/BehaviourProvider","./BehaviourProvider/BehaviourProvider.js","./BehaviourProvider/actions","./BehaviourProvider/actions.js","./BehaviourProvider/constants","./BehaviourProvider/constants.js","./BehaviourProvider/reducer","./BehaviourProvider/reducer.js","./BehaviourProvider/saga","./BehaviourProvider/saga.js","./BehaviourProvider/selectors","./BehaviourProvider/selectors.js","./CartPage/CartPage","./CartPage/CartPage.js","./CartProvider/CartProvider","./CartProvider/CartProvider.js","./CartProvider/actions","./CartProvider/actions.js","./CartProvider/constants","./CartProvider/constants.js","./CartProvider/reducer","./CartProvider/reducer.js","./CartProvider/saga","./CartProvider/saga.js","./CartProvider/selectors","./CartProvider/selectors.js","./ClaimHistoryPage/ClaimHistoryPage","./ClaimHistoryPage/ClaimHistoryPage.js","./ClaimHistoryProvider/ClaimHistoryProvider","./ClaimHistoryProvider/ClaimHistoryProvider.js","./ClaimHistoryProvider/actions","./ClaimHistoryProvider/actions.js","./ClaimHistoryProvider/constants","./ClaimHistoryProvider/constants.js","./ClaimHistoryProvider/reducer","./ClaimHistoryProvider/reducer.js","./ClaimHistoryProvider/saga","./ClaimHistoryProvider/saga.js","./ClaimHistoryProvider/selectors","./ClaimHistoryProvider/selectors.js","./CodesProvider/CodesList","./CodesProvider/CodesList.js","./CodesProvider/CodesProvider","./CodesProvider/CodesProvider.js","./CodesProvider/CodesRedeemForm","./CodesProvider/CodesRedeemForm.js","./CodesProvider/actions","./CodesProvider/actions.js","./CodesProvider/constants","./CodesProvider/constants.js","./CodesProvider/reducer","./CodesProvider/reducer.js","./CodesProvider/saga","./CodesProvider/saga.js","./CodesProvider/selectors","./CodesProvider/selectors.js","./ContactPage/ContactPage","./ContactPage/ContactPage.js","./ContactPage/images/HP-contact-banner-@1x.jpg","./ContactPage/images/HP-contact-banner-@2x.jpg","./ContactPage/images/HP-contact-banner-mobile-@1x.jpg","./ContactPage/images/HP-contact-banner-mobile-@2x.jpg","./ContactPage/images/HP-contact-banner-tablet-@1x.jpg","./ContactPage/images/HP-contact-banner-tablet-@2x.jpg","./ContactPage/images/banner-contact-@1x.jpg","./ContactPage/images/banner-contact-@2x.jpg","./ContactPage/images/banner-contact-mobile-@1x.jpg","./ContactPage/images/banner-contact-mobile-@2x.jpg","./ContactPage/images/banner-contact-tablet-@1x.jpg","./ContactPage/images/banner-contact-tablet-@2x.jpg","./FaqPage/FaqPage","./FaqPage/FaqPage.js","./HomePage/HomePage","./HomePage/HomePage.js","./HomePage/images/hp-home-banner-@1x.jpg","./HomePage/images/hp-home-banner-@2x.jpg","./HomePage/images/hp-home-banner-mobile-@1x.jpg","./HomePage/images/hp-home-banner-mobile-@2x.jpg","./HomePage/images/hp-home-banner-tablet-@1x.jpg","./HomePage/images/hp-home-banner-tablet-@2x.jpg","./InvoicePage/InvoiceForm","./InvoicePage/InvoiceForm.js","./InvoicePage/InvoiceList","./InvoicePage/InvoiceList.js","./InvoicePage/InvoicePage","./InvoicePage/InvoicePage.js","./InvoiceProvider/InvoiceProvider","./InvoiceProvider/InvoiceProvider.js","./InvoiceProvider/actions","./InvoiceProvider/actions.js","./InvoiceProvider/constants","./InvoiceProvider/constants.js","./InvoiceProvider/reducer","./InvoiceProvider/reducer.js","./InvoiceProvider/saga","./InvoiceProvider/saga.js","./InvoiceProvider/selectors","./InvoiceProvider/selectors.js","./LeaderboardPage/LeaderboardPage","./LeaderboardPage/LeaderboardPage.js","./LeaderboardProvider/LeaderboardProvider","./LeaderboardProvider/LeaderboardProvider.js","./LeaderboardProvider/actions","./LeaderboardProvider/actions.js","./LeaderboardProvider/constants","./LeaderboardProvider/constants.js","./LeaderboardProvider/reducer","./LeaderboardProvider/reducer.js","./LeaderboardProvider/saga","./LeaderboardProvider/saga.js","./LeaderboardProvider/selectors","./LeaderboardProvider/selectors.js","./LoginPage/LoginPage","./LoginPage/LoginPage.js","./LoginPage/images/hp-login-banner-@1x.jpg","./LoginPage/images/hp-login-banner-@2x.jpg","./LoginPage/images/hp-login-banner-mobile-@1x.jpg","./LoginPage/images/hp-login-banner-mobile-@2x.jpg","./LoginPage/images/hp-login-banner-tablet-@1x.jpg","./LoginPage/images/hp-login-banner-tablet-@2x.jpg","./LoginPage/images/image-login_page-background-@1x.jpg","./LoginPage/images/image-login_page-background-@2x.jpg","./LogoutPage/LogoutPage","./LogoutPage/LogoutPage.js","./MastercardPage/MastercardPage","./MastercardPage/MastercardPage.js","./MastercardPage/images/HP-statement-banner-@1x.jpg","./MastercardPage/images/HP-statement-banner-@2x.jpg","./MastercardPage/images/HP-statement-banner-mobile-@1x.jpg","./MastercardPage/images/HP-statement-banner-mobile-@2x.jpg","./MastercardPage/images/HP-statement-banner-tablet-@1x.jpg","./MastercardPage/images/HP-statement-banner-tablet-@2x.jpg","./MastercardProvider/MastercardProvider","./MastercardProvider/MastercardProvider.js","./MastercardProvider/actions","./MastercardProvider/actions.js","./MastercardProvider/constants","./MastercardProvider/constants.js","./MastercardProvider/reducer","./MastercardProvider/reducer.js","./MastercardProvider/saga","./MastercardProvider/saga.js","./MastercardProvider/selectors","./MastercardProvider/selectors.js","./MobileAppSSOPage/MobileAppSSOPage","./MobileAppSSOPage/MobileAppSSOPage.js","./NotFoundPage/NotFoundPage","./NotFoundPage/NotFoundPage.js","./PasswordResetPage/PasswordResetPage","./PasswordResetPage/PasswordResetPage.js","./PrivacyPage/PrivacyPage","./PrivacyPage/PrivacyPage.js","./ProductsPage/ProductsPage","./ProductsPage/ProductsPage.js","./ProfilePage/ProfilePage","./ProfilePage/ProfilePage.js","./ProfilePage/images/HP-profile-banner-@1x.jpg","./ProfilePage/images/HP-profile-banner-@2x.jpg","./ProfilePage/images/HP-profile-banner-mobile-@1x.jpg","./ProfilePage/images/HP-profile-banner-mobile-@2x.jpg","./ProfilePage/images/HP-profile-banner-tablet-@1x.jpg","./ProfilePage/images/HP-profile-banner-tablet-@2x.jpg","./ProfilePage/images/banner-profile-@1x.jpg","./ProfilePage/images/banner-profile-@2x.jpg","./ProfilePage/images/banner-profile-mobile-@1x.jpg","./ProfilePage/images/banner-profile-mobile-@2x.jpg","./ProfilePage/images/banner-profile-tablet-@1x.jpg","./ProfilePage/images/banner-profile-tablet-@2x.jpg","./ProfileProvider/ProfileProvider","./ProfileProvider/ProfileProvider.js","./ProfileProvider/actions","./ProfileProvider/actions.js","./ProfileProvider/constants","./ProfileProvider/constants.js","./ProfileProvider/reducer","./ProfileProvider/reducer.js","./ProfileProvider/saga","./ProfileProvider/saga.js","./ProfileProvider/selectors","./ProfileProvider/selectors.js","./PromotionsPage/PromotionsPage","./PromotionsPage/PromotionsPage.js","./PromotionsPage/images/HP-promos-banner-@1x.jpg","./PromotionsPage/images/HP-promos-banner-@2x.jpg","./PromotionsPage/images/HP-promos-banner-mobile-@1x.jpg","./PromotionsPage/images/HP-promos-banner-mobile-@2x.jpg","./PromotionsPage/images/HP-promos-banner-tablet-@1x.jpg","./PromotionsPage/images/HP-promos-banner-tablet-@2x.jpg","./PromotionsPage/images/IntelCore-700x217-@2x.png","./PromotionsPage/images/Logos-430x488-@2x.jpg","./PromotionsPage/images/Logos-430x488-@2x.png","./PromotionsPage/images/banner-incentive-@1x.jpg","./PromotionsPage/images/banner-incentive-@2x.jpg","./PromotionsPage/images/banner-incentive-mobile-@1x.jpg","./PromotionsPage/images/banner-incentive-mobile-@2x.jpg","./PromotionsPage/images/banner-incentive-tablet-@1x.jpg","./PromotionsPage/images/banner-incentive-tablet-@2x.jpg","./PromotionsPage/images/banner-laserjet-@1x.jpg","./PromotionsPage/images/banner-laserjet-@2x.jpg","./PromotionsPage/images/banner-laserjet-mobile-@1x.jpg","./PromotionsPage/images/banner-laserjet-mobile-@2x.jpg","./PromotionsPage/images/banner-laserjet-tablet-@1x.jpg","./PromotionsPage/images/banner-laserjet-tablet-@2x.jpg","./RedeemCode/RedeemCode","./RedeemCode/RedeemCode.js","./RedirectToFirstAvailableSubMenu/RedirectToFirstAvailableSubMenu","./RedirectToFirstAvailableSubMenu/RedirectToFirstAvailableSubMenu.js","./RegisterPage/RegisterHPDataProvider","./RegisterPage/RegisterHPDataProvider.js","./RegisterPage/RegisterPage","./RegisterPage/RegisterPage.js","./RegisterPage/actions","./RegisterPage/actions.js","./RegisterPage/constants","./RegisterPage/constants.js","./RegisterPage/reducer","./RegisterPage/reducer.js","./RegisterPage/saga","./RegisterPage/saga.js","./RegisterPage/selectors","./RegisterPage/selectors.js","./RewardsPage/RewardsConciergeBlock","./RewardsPage/RewardsConciergeBlock.js","./RewardsPage/RewardsPage","./RewardsPage/RewardsPage.js","./RewardsPage/images/banner-rewards-@1x.jpg","./RewardsPage/images/banner-rewards-@2x.jpg","./RewardsPage/images/banner-rewards-mobile-@1x.jpg","./RewardsPage/images/banner-rewards-mobile-@2x.jpg","./RewardsPage/images/banner-rewards-tablet-@1x.jpg","./RewardsPage/images/banner-rewards-tablet-@2x.jpg","./RewardsPage/images/bg-rewards-concierge-@2x.jpg","./RewardsProvider/RewardsProvider","./RewardsProvider/RewardsProvider.js","./RewardsProvider/actions","./RewardsProvider/actions.js","./RewardsProvider/constants","./RewardsProvider/constants.js","./RewardsProvider/reducer","./RewardsProvider/reducer.js","./RewardsProvider/rewardsUtils","./RewardsProvider/rewardsUtils.js","./RewardsProvider/saga","./RewardsProvider/saga.js","./RewardsProvider/selectors","./RewardsProvider/selectors.js","./SitemapPage/SitemapPage","./SitemapPage/SitemapPage.js","./StatementIncentivePage/StatementIncentivePage","./StatementIncentivePage/StatementIncentivePage.js","./StatementIncentivePage/images/banner-statement-@1x.jpg","./StatementIncentivePage/images/banner-statement-@2x.jpg","./StatementIncentivePage/images/banner-statement-mobile-@1x.jpg","./StatementIncentivePage/images/banner-statement-mobile-@2x.jpg","./StatementIncentivePage/images/banner-statement-tablet-@1x.jpg","./StatementIncentivePage/images/banner-statement-tablet-@2x.jpg","./StatementPage/StatementPage","./StatementPage/StatementPage.js","./StatementPage/StatementTabs","./StatementPage/StatementTabs.js","./StatementPage/images/HP-tracker-banner-@1x.jpg","./StatementPage/images/HP-tracker-banner-@2x.jpg","./StatementPage/images/HP-tracker-banner-mobile-@1x.jpg","./StatementPage/images/HP-tracker-banner-mobile-@2x.jpg","./StatementPage/images/HP-tracker-banner-tablet-@1x.jpg","./StatementPage/images/HP-tracker-banner-tablet-@2x.jpg","./StatementPage/images/banner-statement-@1x.jpg","./StatementPage/images/banner-statement-@2x.jpg","./StatementPage/images/banner-statement-mobile-@1x.jpg","./StatementPage/images/banner-statement-mobile-@2x.jpg","./StatementPage/images/banner-statement-tablet-@1x.jpg","./StatementPage/images/banner-statement-tablet-@2x.jpg","./StatementProvider/StatementProvider","./StatementProvider/StatementProvider.js","./StatementProvider/actions","./StatementProvider/actions.js","./StatementProvider/constants","./StatementProvider/constants.js","./StatementProvider/reducer","./StatementProvider/reducer.js","./StatementProvider/saga","./StatementProvider/saga.js","./StatementProvider/selectors","./StatementProvider/selectors.js","./TermsPage/TermsPage","./TermsPage/TermsPage.js","./TrainingPage/TrainingPage","./TrainingPage/TrainingPage.js","./WebApp/Routes","./WebApp/Routes.js","./WebApp/SettingsContext","./WebApp/SettingsContext.js","./WebApp/WebApp","./WebApp/WebApp.js","./WebApp/actions","./WebApp/actions.js","./WebApp/constants","./WebApp/constants.js","./WebApp/reducer","./WebApp/reducer.js","./WebApp/saga","./WebApp/saga.js","./WebApp/selectors","./WebApp/selectors.js","./Welcome/Welcome","./Welcome/Welcome.js","./WishlistPage/WishlistPage","./WishlistPage/WishlistPage.js","./WishlistProvider/WishlistProvider","./WishlistProvider/WishlistProvider.js","webpackAsyncContext","req","o","resolve","Error","ids","id","slice","t","settingsDefault","authTokenRefreshBeforeExpiry","dateFormat","dateLongFormat","dateTimeFormat","dateTimeLongFormat","formPreferOptionalIndicator","formIndicatorOptionalText","formIndicatorRequiredText","loginRememberMeEnabled","loginUseSessionStorage","redirectOnIncompleteProfile","loginPasswordResetLabel","loginPasswordResetShow","profilePagePath","rewardsCategorySkip","minimumPasswordLength","passwordRequirementMessage","defaultPageSize","dataCacheTime","dataCacheTimeLong","orderStatusLabels","Received","Ordered","Packing","Dispatched","BackOrder","objectSpread","siteName","cloudinaryCloudName","cartPage","privacyPage","rewardsPage","deliveryMethodClientLabel","cartDisabled","quickviewDisabled","wishlistDisabled","themeApp","borderRadius","gridMaxWidths","sm","md","lg","xl","primary","secondary","grey","bluegrey","green","borderColor","containerWidth","defaultFontColor","gray800","inputBtnMinWidth","customInputHintColor","gray600","customInputHintFontSize","customInlineInputInvalidColor","red","customCheckboxDisabledBackground","customHeaderBackground","customHeaderColor","customMenuBackground","customMenuColor","customMenuHighlight","customMenuHighlightColor","customMenuFocus","customSubMenuBackground","customMobileMenuOverlayBackground","loadingBarColor","welcomeBackground","welcomeColor","welcomeHighlight","breadcrumbsColor","breadcrumbsContainerWidth","breadcrumbsLinkColor","breadcrumbsLinkHoverColor","breadcrumbsCurrentLinkColor","breadcrumbsFontSize","cartBadgeBackground","cartBadgeColor","cartPointsBalanceBackground","transparentize","cartRemainingNegativeColor","rewardCategoriesListContainerWidth","rewardCategoriesFilterContainerWidth","rewardListContainerWidth","rewardDetailContainerWidth","rewardDescription1ContainerWidth","rewardDescription2ContainerWidth","wishlistBadgeBackground","wishlistBadgeColor","wishlistContainerWidth","rewardsHighlightBackground","rewardsHighlightContainerWidth","statementHighlightColor","statementStatus","achieved","onTrack","close","behind","inProgress","timeElapsed","statementDoughnutBorder","statementDoughnutRemainingTrack","tooltipBackground","tooltipBorderColor","tooltipColor","pagerActiveBackground","pagerActiveColor","pagerBackgroundHover","requestCountries","requestUserLogout","requestUserToken","requestUserProfile","appSaga","regenerator_default","loginPath","removeToken","userData","pageQueryString","cleanQueryString","trimmedQueryString","redirectQS","formatToken","removeProperty","storeToken","App","tokenRefresh","listen","force","tokenData","tokenLifeTime","tokenExpiry","generatedLocal","refreshPeriod","triggerFetchTime","setMinutes","getMinutes","_this2","children","Children","childElement","cloneElement","onLogout","withSaga","injectSaga","saga","withRouter","Boolean","window","hostname","match","rootElement","document","getElementById","hasChildNodes","hydrate","es","styled_components_browser_esm","containers_App_App","WebApp","navigator","serviceWorker","ready","registration","unregister","lodash_conformsTo__WEBPACK_IMPORTED_MODULE_0__","lodash_conformsTo__WEBPACK_IMPORTED_MODULE_0___default","lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__","lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default","lodash_isObject__WEBPACK_IMPORTED_MODULE_2__","lodash_isObject__WEBPACK_IMPORTED_MODULE_2___default","invariant__WEBPACK_IMPORTED_MODULE_3__","invariant__WEBPACK_IMPORTED_MODULE_3___default","shape","subscribe","getState","runSaga","isObject","injectedSagas","conformsTo","SettingsContext","createContext","SettingsProvider","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","Provider","withSettings","Consumer","isUrlAbsolute","RegExp","test","obj","property","reduce","acc","_codebuild_output_src1899017553_src_HP_Com_Club_Lori_FED_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__","arr","childrenProp","Array","isArray","untrailingSlashIt","str","trailingSlashIt","lowercaseFirstLetter","string","charAt","timestamp","getTime","timeDiff","generated","decodedToken","base64","split","atob","decodeToken","permissions","generatedServer","expiryServer","expiry","timeDifference","roles","userId","nameid","disableClaiming","DisableClaiming","sessionStorage","auth","webAppReducer","isLoading","FooterWrapper","footer","FooterContainer","div","_templateObject2","up","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","Footer","react_router_dom","getFullYear","justifyContent","xs","StyledLoriFooter","LoriFooter_templateObject","LoriFooter","href","target","rel","ScrollToTop","prevProps","hash","scrollTo","Header","HeaderNav","Welcome","AppWrapper","WebApp_templateObject","PageWrapper","WebApp_templateObject2","ToastifyTransition","cssTransition","enter","exit","duration","onMenuRequest","onSettingsRequest","onCartRequest","onWishlistRequest","onCardBalanceRequest","build_default","left","backgroundColor","position","updateTime","Helmet_default","titleTemplate","defaultTitle","react_toastify","newestOnTop","transition","nextClaimingPeriod","settingsNextClaimingPeriod","pointsUOM","settingsPointsUOM","settingsProgram","salesUOMs","settingsSalesUOMs","lib","cloudName","display","flex","minHeight","components_ScrollToTop_ScrollToTop","showLogoutInMenu","showLoginInMenu","CustomFooter_Footer","components_LoriFooter_LoriFooter","globalStylesApp","withReducer","composeEnhancers","sagaMiddleware","createSagaMiddleware","middlewares","enhancers","applyMiddleware","apply","createStore","run","configureStore","DAEMON","ONCE_TILL_UNMOUNT","allowedModes","checkKey","checkDescriptor","descriptor","mode","includes","injectSagaFactory","args","newDescriptor","hasSaga","task","ejectSagaFactory","cancel","ejectSaga","InjectSaga","injectors"],"mappings":"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ACA,EACA,KAEAC,0CAAA,CACA,IACA,EACA,KAEAC,6DAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,wCAAA,CACA,IACA,EACA,KAEAC,wCAAA,CACA,IACA,EACA,KAEAC,qCAAA,CACA,IACA,EACA,KAEAC,wCAAA,CACA,IACA,EACA,KAEAC,2CAAA,CACA,IACA,EACA,KAEAC,2CAAA,CACA,IACA,EACA,KAEAC,2DAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,EACA,EACA,EACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,EACA,EACA,EACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,EACA,EACA,EACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,EACA,EACA,EACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,EACA,IAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,uBAAA,CACA,IACA,EACA,IAEAC,0BAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,wCAAA,CACA,IACA,EACA,GAEAC,2CAAA,CACA,IACA,EACA,GAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,KAEAC,mCAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,sBAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,GAEAC,iCAAA,CACA,IACA,EACA,GAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,KAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,sBAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,sCAAA,CACA,IACA,EACA,IAEAC,yCAAA,CACA,IACA,EACA,IAEAC,8CAAA,CACA,IACA,EACA,GAEAC,iDAAA,CACA,IACA,EACA,GAEAC,iCAAA,CACA,IACA,EACA,IAEAC,oCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,KAEAC,sCAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,IAEAC,oCAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,sCAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,EACA,EACA,IAEAC,qCAAA,CACA,IACA,EACA,EACA,EACA,IAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,uBAAA,CACA,IACA,EACA,IAEAC,0BAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,iDAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,8CAAA,CACA,IACA,EACA,KAEAC,8CAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,oBAAA,CACA,IACA,EACA,KAEAC,uBAAA,CACA,IACA,EACA,KAEAC,sBAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,2CAAA,CACA,IACA,EACA,KAEAC,2CAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,EACA,EACA,EACA,GACA,IAEAC,+BAAA,CACA,IACA,EACA,EACA,EACA,EACA,GACA,IAEAC,4BAAA,CACA,IACA,EACA,EACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,EACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,oCAAA,CACA,IACA,EACA,EACA,IAEAC,uCAAA,CACA,IACA,EACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,oCAAA,CACA,IACA,EACA,IAEAC,uCAAA,CACA,IACA,EACA,IAEAC,4CAAA,CACA,IACA,EACA,IAEAC,+CAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,KAEAC,qCAAA,CACA,IACA,EACA,KAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,IAEAC,qCAAA,CACA,IACA,EACA,IAEAC,wBAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,IAEAC,6CAAA,CACA,IACA,EACA,KAEAC,6CAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,IAEAC,qCAAA,CACA,IACA,EACA,IAEAC,sDAAA,CACA,IACA,EACA,KAEAC,sDAAA,CACA,IACA,EACA,KAEAC,6DAAA,CACA,IACA,EACA,KAEAC,6DAAA,CACA,IACA,EACA,KAEAC,6DAAA,CACA,IACA,EACA,KAEAC,6DAAA,CACA,IACA,EACA,KAEAC,0CAAA,CACA,IACA,EACA,GAEAC,6CAAA,CACA,IACA,EACA,GAEAC,+BAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,KAEAC,oCAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,oCAAA,CACA,IACA,EACA,IAEAC,sCAAA,CACA,IACA,EACA,IAEAC,yCAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,wCAAA,CACA,IACA,EACA,IAEAC,2CAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,iDAAA,CACA,IACA,EACA,KAEAC,iDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,wDAAA,CACA,IACA,EACA,KAEAC,8CAAA,CACA,IACA,EACA,KAEAC,8CAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,oCAAA,CACA,IACA,EACA,IAEAC,uCAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,kCAAA,CACA,IACA,EACA,IAEAC,qCAAA,CACA,IACA,EACA,IAEAC,mDAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,gDAAA,CACA,IACA,EACA,KAEAC,gDAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,0BAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,EACA,IAEAC,oEAAA,CACA,IACA,EACA,KAEAC,uEAAA,CACA,IACA,EACA,KAEAC,wCAAA,CACA,IACA,EACA,IAEAC,2CAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,EACA,EACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,EACA,EACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,KAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,sBAAA,CACA,IACA,EACA,IAEAC,yBAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,sCAAA,CACA,IACA,EACA,KAEAC,yCAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,EACA,EACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,EACA,EACA,EACA,IAEAC,8CAAA,CACA,IACA,EACA,KAEAC,8CAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,qDAAA,CACA,IACA,EACA,KAEAC,oDAAA,CACA,IACA,EACA,KAEAC,oCAAA,CACA,IACA,EACA,GACA,IAEAC,uCAAA,CACA,IACA,EACA,GACA,IAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,4BAAA,CACA,IACA,EACA,KAEAC,+BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,oCAAA,CACA,IACA,EACA,KAEAC,yBAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,4BAAA,CACA,IACA,EACA,IAEAC,+BAAA,CACA,IACA,EACA,IAEAC,kDAAA,CACA,IACA,EACA,IAEAC,qDAAA,CACA,IACA,EACA,IAEAC,2DAAA,CACA,IACA,EACA,KAEAC,2DAAA,CACA,IACA,EACA,KAEAC,kEAAA,CACA,IACA,EACA,KAEAC,kEAAA,CACA,IACA,EACA,KAEAC,kEAAA,CACA,IACA,EACA,KAEAC,kEAAA,CACA,IACA,EACA,KAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,mDAAA,CACA,IACA,EACA,KAEAC,mDAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,0DAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,kDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,yDAAA,CACA,IACA,EACA,KAEAC,wCAAA,CACA,IACA,EACA,IAEAC,2CAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,gCAAA,CACA,IACA,EACA,KAEAC,mCAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,KAEAC,iCAAA,CACA,IACA,EACA,KAEAC,2BAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,gCAAA,CACA,IACA,EACA,IAEAC,mCAAA,CACA,IACA,EACA,IAEAC,wBAAA,CACA,IACA,EACA,KAEAC,2BAAA,CACA,IACA,EACA,KAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,kBAAA,CACA,IACA,GAEAC,qBAAA,CACA,IACA,GAEAC,2BAAA,CACA,GACA,GAEAC,8BAAA,CACA,GACA,GAEAC,kBAAA,CACA,GACA,GAEAC,qBAAA,CACA,GACA,GAEAC,mBAAA,CACA,GACA,GAEAC,sBAAA,CACA,GACA,GAEAC,qBAAA,CACA,EACA,GAEAC,wBAAA,CACA,EACA,GAEAC,mBAAA,CACA,GACA,GAEAC,sBAAA,CACA,GACA,GAEAC,gBAAA,CACA,IACA,GAEAC,mBAAA,CACA,IACA,GAEAC,qBAAA,CACA,GACA,GAEAC,wBAAA,CACA,GACA,GAEAC,oBAAA,CACA,IACA,EACA,IAEAC,uBAAA,CACA,IACA,EACA,IAEAC,8BAAA,CACA,IACA,EACA,IAEAC,iCAAA,CACA,IACA,EACA,IAEAC,sCAAA,CACA,IACA,EACA,IAEAC,yCAAA,CACA,IACA,EACA,KAGA,SAAAC,EAAA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","file":"static/js/main.4e32c59a.chunk.js","sourcesContent":["/**\n * Redux action types\n *\n * Prefix with the Boilerplate/Project and component names to avoid collisions.\n * Eg:\n * export const COUNTRIES_REQUEST = 'platform/App/COUNTRIES_REQUEST';\n */\n\nexport const COUNTRIES_REQUEST = 'platform/App/COUNTRIES_REQUEST';\nexport const COUNTRIES_SUCCESS = 'platform/App/COUNTRIES_SUCCESS';\nexport const COUNTRIES_ERROR = 'platform/App/COUNTRIES_ERROR';\nexport const SET_USER = 'platform/App/SET_USER';\nexport const USER_LOGOUT_REQUEST = 'platform/App/USER_LOGOUT_REQUEST';\nexport const USER_PROFILE_REQUEST = 'platform/App/USER_PROFILE_REQUEST';\nexport const USER_PROFILE_SUCCESS = 'platform/App/USER_PROFILE_SUCCESS';\nexport const USER_PROFILE_ERROR = 'platform/App/USER_PROFILE_ERROR';\nexport const USER_TOKEN_REQUEST = 'platform/App/USER_TOKEN_REQUEST';\nexport const USER_TOKEN_SUCCESS = 'platform/App/USER_TOKEN_SUCCESS';\nexport const USER_TOKEN_ERROR = 'platform/App/USER_TOKEN_ERROR';\n","import qs from 'qs';\nimport history from './history'; // _platform\n\n/**\n * getLoginPath\n *\n * Generate the path and query string (returnUrl) for the login page, in order\n * to return the user to the page from which they came.\n *\n * Important: Always return an object, as quick re-renders cause string-based\n * history.push calls to have the entire path stored in history.location.pathname\n * which leaves history.location.search blank.\n *\n * @returns object (https://reacttraining.com/react-router/web/api/Redirect/to-object)\n */\nexport default function getLoginPath(settingsApp) {\n const { pathname, search } = history.location;\n const { loginPagePath, logoutPagePath } = settingsApp;\n\n const queryString = qs.parse(search.replace(/returnUrl/gi, 'returnUrl'), {\n ignoreQueryPrefix: true,\n });\n\n // If settingsApp values are unavailable and the returnUrl value already exists, keep it\n if (!loginPagePath && !logoutPagePath && queryString.returnUrl) {\n return undefined;\n }\n\n if (\n pathname === '/' ||\n pathname === loginPagePath ||\n pathname === logoutPagePath ||\n pathname === `${logoutPagePath}/`\n ) {\n // Check if qs exists, pass it along.\n const returnQueryString =\n search !== '' ? `?${qs.stringify(queryString)}` : '';\n\n return { pathname: loginPagePath, search: returnQueryString };\n }\n\n if (\n search === '' ||\n (queryString.returnUrl &&\n queryString.returnUrl !== pathname &&\n Object.keys(queryString).length === 1)\n ) {\n // No query string or the path is not loginPagePath\n const returnQueryString = qs.stringify({ returnUrl: pathname });\n\n return { pathname: loginPagePath, search: `?${returnQueryString}` };\n }\n\n // search is not empty, update it with the returnUrl\n const queryStringUpdated = qs.stringify({\n ...queryString,\n returnUrl: pathname,\n });\n\n return {\n pathname: loginPagePath,\n search: `?${queryStringUpdated}`,\n };\n}\n","/**\n * WebApp saga\n */\n\nimport { all, call, delay, put, takeLatest } from 'redux-saga/effects';\nimport { showLoading, hideLoading } from 'react-redux-loading-bar';\nimport slugify from '_platform/src/utils/simpleSlugify';\nimport toast from '_platform/src/utils/toast';\nimport { api, apiErrorHandler } from '_platform/src/utils/request';\nimport { flattenDeepArrayOfObjects } from '_platform/src/utils/utilities';\nimport { USER_LOGOUT_REQUEST } from '_platform/src/containers/App/constants';\nimport {\n CARD_BALANCE_REQUEST,\n CART_REQUEST,\n CUSTOMER_REPS_REQUEST,\n MENU_REQUEST,\n SETTINGS_REQUEST,\n WISHLIST_REQUEST,\n WISHLIST_ADDREMOVE_REQUEST,\n} from './constants';\nimport {\n cardBalanceSuccess,\n cardBalanceError,\n cartSuccess,\n cartError,\n customerRepsSuccess,\n customerRepsError,\n menuSuccess,\n menuError,\n menuUpdateRoutes,\n menuRequest,\n settingsSuccess,\n settingsError,\n userLogoutClearUserData,\n wishlistRequest,\n wishlistSuccess,\n wishlistError,\n} from './actions';\n\n/**\n * Request CardBalance\n */\nexport function* requestCardBalance() {\n try {\n yield put(showLoading());\n\n const response = yield call(() =>\n api.get('/MerchantAccount/v1/CardBalance', {\n description: 'Card Balance',\n })\n );\n\n yield put(cardBalanceSuccess(response.data, Math.floor(Date.now() / 1000)));\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(cardBalanceError(error));\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request Cart\n */\nexport function* requestCart() {\n try {\n yield put(showLoading());\n\n const response = yield call(() =>\n api.get('/Cart/v1', {\n description: 'Cart',\n })\n );\n\n yield put(\n cartSuccess(\n (response.data &&\n response.data.cartRewards &&\n response.data.cartRewards.length > 0 && {\n ...response.data,\n cartRewards: response.data.cartRewards.map(reward => ({\n ...reward,\n // Must match RewardsProvider `requestRewards` saga\n slug: slugify(`${reward.rewardCode}-${reward.rewardId}`),\n })),\n }) ||\n response.data\n )\n );\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(cartError(error));\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request Customer Reps\n */\nexport function* requestCustomerReps() {\n try {\n yield put(showLoading());\n\n const response = yield call(() =>\n api.get('/Customer/v1/Representatives', {\n description: 'Customer Representatives',\n })\n );\n\n yield put(\n customerRepsSuccess(response.data, Math.floor(Date.now() / 1000))\n );\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(customerRepsError(error));\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request Menu\n */\nexport function* requestMenu() {\n try {\n yield put(showLoading());\n\n const response = yield call(() =>\n api.get('/Menu/v1', {\n description: 'Menu',\n })\n );\n\n yield put(menuSuccess(response.data));\n\n // Routes\n const routes =\n response.data && response.data.length > 0\n ? flattenDeepArrayOfObjects(response.data, 'children')\n : null;\n\n yield put(menuUpdateRoutes(routes));\n\n if (routes) {\n localStorage.setItem('routes', JSON.stringify(routes));\n } else {\n localStorage.removeItem('routes');\n }\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(menuError(error));\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request Settings\n */\nexport function* requestSettings() {\n try {\n yield put(showLoading());\n\n const [claimingPeriods, program, unitsOfMeasure] = yield all([\n call(() =>\n api.get('/ClaimingPeriod/v1', {\n description: 'Claiming Period',\n })\n ),\n call(() =>\n api.get('/Program/v1', {\n description: 'Program Settings',\n })\n ),\n call(() =>\n api.get('/UnitOfMeasure/v1', {\n description: 'Units of measure',\n })\n ),\n ]);\n\n yield put(\n settingsSuccess(\n {\n claimingPeriods: claimingPeriods.data.map(item => ({\n ...item,\n dateStartsUser: new Date(item.dateStartsUtc),\n dateEndsUser: new Date(item.dateEndsUtc),\n })),\n program: program.data,\n unitsOfMeasure: unitsOfMeasure.data,\n },\n Math.floor(Date.now() / 1000)\n )\n );\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(settingsError(error));\n } else {\n yield call(\n toast,\n 'error',\n 'There was a problem retrieving site settings'\n );\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request Wishlist\n */\nexport function* requestWishlist() {\n try {\n yield put(showLoading());\n\n const response = yield call(() =>\n api.get('/Wishlist/v1', {\n description: 'Wishlist',\n })\n );\n\n yield put(\n wishlistSuccess(\n response.data && response.data.length > 0\n ? response.data.map(reward => ({\n ...reward,\n // Must match RewardsProvider `requestRewards` saga\n slug: slugify(`${reward.rewardCode}-${reward.rewardId}`),\n }))\n : response.data\n )\n );\n } catch (err) {\n const error = apiErrorHandler(err);\n\n if (error.status === 401) {\n yield put(wishlistError(error));\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request wishlist add/remove\n *\n * @param {object} values The action (add/remove) and reward properties\n */\nexport function* requestWishlistAddRemove(values) {\n const payload = values.values;\n\n try {\n yield put(showLoading());\n\n // eslint-disable-next-line no-unused-vars\n const response =\n values.action.toLowerCase() === 'add'\n ? yield call(() =>\n api.post('/Wishlist/v1/Add', payload, {\n description: 'Add reward to wishlist',\n })\n )\n : yield call(() =>\n api.delete(\n `/Wishlist/v1/Remove/${values.values.wishlistId}`,\n undefined,\n { description: 'Remove reward from wishlist' }\n )\n );\n\n // Refresh the wishlist\n yield put(wishlistRequest());\n } catch (err) {\n const action =\n values.action.toLowerCase() === 'add' ? 'Adding' : 'Removing';\n\n yield call(\n toast,\n 'error',\n `There was a problem ${action.toLowerCase()} the reward ${\n action === 'Adding' ? 'to' : 'from'\n } wishlist`\n );\n\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n `Dev: ${action} reward to wishlist '${apiErrorHandler(err).message}'`\n );\n }\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * User Logout Listener\n */\nexport function* userLogoutListener() {\n try {\n yield localStorage.removeItem('routes');\n\n yield delay(200);\n yield put(userLogoutClearUserData());\n yield put(menuRequest(true));\n } catch (err) {\n // console.warn('Error:', err);\n }\n}\n\n/**\n * Default saga managers the watcher lifecycle\n */\nexport default function* rootSaga() {\n // Specify the constant to watch and the saga generator function to call when one is triggered\n // It returns a task descriptor (just like a fork) so we can continue execution, and will be\n // automatically cancelled on unmount (unless the mode is set to DAEMON)\n // Specify as many yields (watchers) here as necessary\n yield takeLatest(CARD_BALANCE_REQUEST, requestCardBalance);\n yield takeLatest(CART_REQUEST, requestCart);\n yield takeLatest(CUSTOMER_REPS_REQUEST, requestCustomerReps);\n yield takeLatest(MENU_REQUEST, requestMenu);\n yield takeLatest(SETTINGS_REQUEST, requestSettings);\n yield takeLatest(WISHLIST_REQUEST, requestWishlist);\n yield takeLatest(WISHLIST_ADDREMOVE_REQUEST, requestWishlistAddRemove);\n yield takeLatest(USER_LOGOUT_REQUEST, userLogoutListener);\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Redirect } from 'react-router-dom';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\n\n// Style, SEO and settings\nimport { withTheme } from '@smooth-ui/core-sc';\n\nimport getLoginPath from './getLoginPath'; // _platform\nimport {\n selectCurrentUser,\n selectCurrentUserTemp,\n} from '../containers/App/selectors'; // _platform\n\n/**\n * Private Route - HoC for react-router Route component\n *\n * TODO: Extend this component to handle granular permissions\n * TODO: Extend with prop to supply function to determine permission `verifyFn` similar to LoadAsync\n *\n * @param {object} { component, user, tempAuthAllowed, ...rest }\n * user prop can be either currentUser or currentUserTemp, depending on what the parent component determines is applicable\n */\nclass PrivateRoute extends Component {\n render() {\n // Spread the rest this.props in order to avoid passing both `component` and `render` to Route component\n const { component: Component, user, tempAuthAllowed, ...rest } = this.props;\n const { currentUser, currentUserTemp } = this.props;\n\n // Determine which user object to use\n // 1. Use `user` prop if supplied\n // 2. If `tempAuthAllowed` prop:\n // 1. Is true: use `currentUserTemp` if available, if not use currentUser\n // 3. Is false: use currentUser\n //\n // Check for user.token and currentUserTemp.token to ensure they're not the\n // default empty objects. Cleaner than using Object.keys\n let userObject = {};\n if (user && user.token) {\n userObject = user;\n } else if (tempAuthAllowed && currentUserTemp && currentUserTemp.token) {\n userObject = currentUserTemp;\n } else {\n userObject = currentUser;\n }\n\n return (\n \n !!userObject.token ? (\n \n ) : (\n \n )\n }\n />\n );\n }\n}\n\nPrivateRoute.propTypes = {\n component: PropTypes.func.isRequired,\n currentUser: PropTypes.object.isRequired,\n currentUserTemp: PropTypes.object.isRequired,\n tempAuthAllowed: PropTypes.bool,\n theme: PropTypes.object,\n user: PropTypes.object,\n};\n\nPrivateRoute.defaultProps = {\n user: {},\n tempAuthAllowed: false,\n theme: { settingsApp: {} },\n};\n\nconst mapStateToProps = createStructuredSelector({\n currentUser: selectCurrentUser(),\n currentUserTemp: selectCurrentUserTemp(),\n});\n\nconst withConnect = connect(\n mapStateToProps,\n null\n);\n\nexport default compose(\n withTheme,\n withConnect\n)(PrivateRoute);\n","/**\n * WebApp - Routes\n */\n\n// Core imports\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Switch, Redirect, Route } from 'react-router-dom';\n\n// Routes\nimport LoadAsync from '_platform/src/utils/LoadAsync';\nimport PrivateRoute from '_platform/src/utils/PrivateRoute';\n\nconst Routes = ({ routes, theme }) => {\n return (\n \n \n import(\n /* webpackChunkName: \"homepage\" */ 'containers/HomePage/HomePage'\n )\n )}\n />\n \n import(\n /* webpackChunkName: \"loginPage\" */ 'containers/LoginPage/LoginPage'\n )\n )}\n />\n {theme.settingsApp.passwordResetEnabled && (\n \n import(\n /* webpackChunkName: \"passwordResetPage\" */ 'containers/PasswordResetPage/PasswordResetPage'\n )\n )}\n />\n )}\n \n import(\n /* webpackChunkName: \"logout\" */ 'containers/LogoutPage/LogoutPage'\n )\n )}\n />\n {theme.settingsApp.mobileAppSSOEnabled ? (\n \n import(\n /* webpackChunkName: \"mobileAppSSOPage\" */ 'containers/MobileAppSSOPage/MobileAppSSOPage'\n )\n )}\n />\n ) : (\n \n \n \n )}\n {routes &&\n routes.map(\n route =>\n // Map the route if it has a component\n // The user has access to any routes specified, so no need to use\n // PrivateRoute as that would restrict access to anonymous routes.\n // Protect content within the container with PrivateComponent\n // On logout, we request the menu/routes to be updated.\n !!route.component && (\n \n import(`containers/${route.component}`)\n )}\n />\n )\n )}\n \n import(\n /* webpackChunkName: \"notNound\" */ 'containers/NotFoundPage/NotFoundPage'\n )\n )}\n />\n \n );\n};\n\nRoutes.propTypes = {\n routes: PropTypes.array,\n theme: PropTypes.object,\n};\n\nRoutes.defaultProps = {\n routes: undefined,\n theme: { settingsApp: {} },\n};\n\nexport default Routes;\n","/**\n * Combine all reducers and export the combined reducers\n */\n\nimport { combineReducers } from 'redux';\nimport { loadingBarReducer } from 'react-redux-loading-bar';\nimport globalReducer from '../../containers/App/reducer'; // _platform\n\nexport default function createReducer(injectedReducers) {\n return combineReducers({\n // router: routeReducer,\n loadingBar: loadingBarReducer,\n global: globalReducer,\n ...injectedReducers,\n });\n}\n","/**\n * AppReducer\n *\n * This is the global app reducer\n */\n\nimport {\n COUNTRIES_REQUEST,\n COUNTRIES_SUCCESS,\n COUNTRIES_ERROR,\n SET_USER,\n USER_LOGOUT_REQUEST,\n USER_PROFILE_REQUEST,\n USER_PROFILE_SUCCESS,\n USER_PROFILE_ERROR,\n USER_TOKEN_REQUEST,\n USER_TOKEN_SUCCESS,\n USER_TOKEN_ERROR,\n} from './constants';\n\nimport { retrieveToken } from '../../utils/tokenUtils'; // _platform\n\nexport const initialState = {\n countries: undefined,\n currentUser: retrieveToken() || {},\n currentUserTemp: {}, // Used for incomplete profiles\n isFetchingToken: false,\n profileDetails: undefined,\n status: undefined,\n statusDetails: {},\n userOptions: {},\n};\n\nfunction appReducer(state = initialState, action) {\n switch (action.type) {\n case COUNTRIES_REQUEST:\n return {\n ...state,\n countries: {},\n status: 'loading',\n statusDetails: {},\n };\n case COUNTRIES_SUCCESS:\n return {\n ...state,\n countries: {\n data: action.response,\n lastUpdated: action.lastUpdated,\n },\n status: null,\n };\n case COUNTRIES_ERROR:\n case USER_PROFILE_ERROR:\n return {\n ...state,\n status: 'error',\n statusDetails: action.error,\n };\n case SET_USER: {\n if (\n !action.options ||\n (action.options.isProfileValid === true &&\n action.options.forcePasswordChange === false)\n ) {\n return {\n ...state,\n currentUser: action.details,\n currentUserTemp: initialState.currentUserTemp, // Return the temp value to initial state\n status: null,\n statusDetails: {},\n userOptions: {},\n };\n }\n\n // For incomplete profiles: set the temporary currentUser value to ensure we don't\n // accidentally give full access to the user. Only certain modules should be checking\n // this value - eg, Login and Profile - to display forms/submit profile update info\n return {\n ...state,\n currentUserTemp: action.details,\n status: null,\n statusDetails: {},\n userOptions: action.options || {},\n };\n }\n case USER_LOGOUT_REQUEST:\n // Clear all state, reuturn to initialState and make sure the currentUser is reset\n return {\n ...initialState,\n currentUser: {},\n };\n case USER_PROFILE_REQUEST:\n if (state.profileDetails) {\n // If we already have profile details, refresh. Do not destructure to save a re-render\n return state;\n }\n\n return {\n ...state,\n profileDetails: {},\n status: 'loading',\n statusDetails: {},\n };\n case USER_PROFILE_SUCCESS:\n return {\n ...state,\n profileDetails: {\n data: action.response,\n lastUpdated: action.lastUpdated,\n },\n status: null,\n };\n case USER_TOKEN_REQUEST: {\n return {\n ...state,\n isFetchingToken: true,\n userOptions: {},\n };\n }\n case USER_TOKEN_SUCCESS:\n case USER_TOKEN_ERROR:\n return {\n ...state,\n isFetchingToken: false,\n };\n default:\n return state;\n }\n}\n\nexport default appReducer;\n","/**\n * Wrapper for react-toastify\n */\nimport { toast as toastify } from 'react-toastify';\n\nconst toast = (type, message, options = {}) => {\n if (!message) return false;\n const toastType = !type || type === '' ? 'default' : type;\n const toastOptions = {\n ...options,\n type: toastType,\n autoClose: type === 'error' ? 6000 : options.autoClose,\n };\n\n return toastify(message, toastOptions);\n};\n\nexport default toast;\n","/**\n * API Requests\n */\nimport axios from 'axios';\nimport store from './store'; // _platform\n\nimport { userLogoutRequest } from '../containers/App/actions'; // _platform\n\n// Take the API Host value from environment variables\nconst apiHost = process.env.REACT_APP_API_HOST || '';\n\n// Set axios defaults\naxios.defaults.headers.post['Content-Type'] = 'application/json';\n\n// Create a custom axios instance\nexport const api = axios.create({\n baseURL: `${apiHost}/api`,\n // timeout: 2000,\n});\n\n/**\n * Interceptors\n *\n * If the server returns 401, it's too late - cannot refresh the token.\n * Log the user out, and remove the token from storage.\n */\n\n// Response interceptor\napi.interceptors.response.use(\n response => response,\n error => {\n if (error.response && error.response.status === 401) {\n // userLogoutRequest - skip remote API call to /Logout as the authentication has already failed (status 401)\n const requestData =\n error.response.config.url.indexOf('RefreshToken') !== -1\n ? JSON.parse(error.response.config.data)\n : {};\n\n store.dispatch(\n userLogoutRequest({\n skipRemote: true,\n settingsApp: requestData.settingsApp,\n })\n );\n }\n return Promise.reject(error);\n }\n);\n\n/**\n * Set Authorization Token on the axios instance to be used on every call\n * if the user is logged in.\n *\n * Note: do not use api.defaults.headers.common... as that will impact all instances.\n *\n * @param {string} token User's token\n */\nexport function apiSetAuthorizationToken(token) {\n if (token) {\n api.defaults.headers['Authorization'] = `Bearer ${token}`;\n } else {\n delete api.defaults.headers['Authorization'];\n }\n}\n\n/**\n * apiErrorHandler - Format errors to be stored in state\n *\n * @param {Error} error\n * @returns {object}\n */\nexport function apiErrorHandler(error) {\n if (error.response) {\n // Server responded with a status code not in 2xx range\n return {\n title: error.config.description,\n message:\n (error.response.data && error.response.data.message) ||\n (error.response.data && error.response.data.title) ||\n error.response.statusText ||\n (typeof error.response.data === 'string' && error.response.data) || // If data is blank, it returns a falsy value\n (error.response.data === '' &&\n `Could not access ${error.config.description}`),\n messageDetails: error.message,\n status: error.response.status,\n // apiHeaders: error.response.headers,\n };\n }\n\n if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest\n return {\n title: error.config.description,\n message: 'There was a problem retrieving data',\n messageDetails: error.message,\n };\n }\n\n // All other errors\n return {\n title: error.title || (error.config && error.config.description) || null,\n message: error.message,\n };\n}\n","/**\n * Simple Slugify\n *\n * Replacing `@sindresorhus/slugify` with this method as we only need a simple slug solution (we control the slug input)\n * Reason to move away from slugify is that it requires `String#normalize` which is no longer included in `core-js`\n * and the alternative `unorm` is 34KB gzipped\n * https://github.com/zloirock/core-js/blob/16dc3b2adac4e6419d7d69bf6e5020808ec94864/README.md#missing-polyfills\n *\n * Inspiration: https://gist.github.com/mathewbyrne/1280286\n *\n * @param {string} text The string to be slugified\n * @returns {string} Slugified text\n */\nexport default function simpleSlugify(text) {\n return text\n .toString()\n .toLowerCase()\n .trim()\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/[^\\w\\s-]/g, '') // remove non-word [a-z0-9_], non-whitespace, non-hyphen characters\n .replace(/[\\s_-]+/g, '-') // swap any length of whitespace, underscore, hyphen characters with a single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\n","/**\n * Web App actions\n */\n\nimport {\n CARD_BALANCE_REQUEST,\n CARD_BALANCE_SUCCESS,\n CARD_BALANCE_ERROR,\n CART_REQUEST,\n CART_SUCCESS,\n CART_ERROR,\n CUSTOMER_REPS_REQUEST,\n CUSTOMER_REPS_SUCCESS,\n CUSTOMER_REPS_ERROR,\n MENU_REQUEST,\n MENU_SUCCESS,\n MENU_ERROR,\n MENU_UPDATE_ROUTES,\n SETTINGS_REQUEST,\n SETTINGS_SUCCESS,\n SETTINGS_ERROR,\n USER_LOGOUT_REQUEST_CLEANUP,\n WISHLIST_REQUEST,\n WISHLIST_SUCCESS,\n WISHLIST_ERROR,\n WISHLIST_ADDREMOVE_REQUEST,\n} from './constants';\n\n/**\n * CardBalance request - cardBalance the request saga\n *\n * @returns {object} An action object with a type of CARD_BALANCE_REQUEST\n */\nexport function cardBalanceRequest(refresh) {\n return {\n type: CARD_BALANCE_REQUEST,\n refresh,\n };\n}\n\n/**\n * Dispatched when cardBalanceRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of CARD_BALANCE_SUCCESS and the response\n */\nexport function cardBalanceSuccess(response, lastUpdated) {\n return {\n type: CARD_BALANCE_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when cardBalanceRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of CARD_BALANCE_ERROR and the error\n */\nexport function cardBalanceError(error) {\n return {\n type: CARD_BALANCE_ERROR,\n error,\n };\n}\n\n/**\n * Cart request - start the request saga\n * The reason this is here is because it needs to be called from CartProvider\n * as well as RewardsProvider saga (after adding item to cart)\n *\n * @returns {object} An action object with a type of CART_REQUEST\n */\nexport function cartRequest(refresh) {\n return {\n type: CART_REQUEST,\n refresh,\n };\n}\n\n/**\n * Dispatched when cartRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of CART_SUCCESS and the response\n */\nexport function cartSuccess(response, lastUpdated) {\n return {\n type: CART_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when cartRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of CART_ERROR and the error\n */\nexport function cartError(error) {\n return {\n type: CART_ERROR,\n error,\n };\n}\n\n/**\n * CustomerReps request - start the request saga\n *\n * @returns {object} An action object with a type of CUSTOMER_REPS_REQUEST\n */\nexport function customerRepsRequest() {\n return {\n type: CUSTOMER_REPS_REQUEST,\n };\n}\n\n/**\n * Dispatched when customerRepsRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of CUSTOMER_REPS_SUCCESS and the response\n */\nexport function customerRepsSuccess(response, lastUpdated) {\n return {\n type: CUSTOMER_REPS_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when customerRepsRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of CUSTOMER_REPS_ERROR and the error\n */\nexport function customerRepsError(error) {\n return {\n type: CUSTOMER_REPS_ERROR,\n error,\n };\n}\n\n/**\n * Menu request - start the request saga\n *\n * @returns {object} An action object with a type of MENU_REQUEST\n */\nexport function menuRequest(refresh) {\n return {\n type: MENU_REQUEST,\n refresh,\n };\n}\n\n/**\n * Dispatched when menuRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @returns {object} An action object with a type of MENU_SUCCESS and the response\n */\nexport function menuSuccess(response) {\n return {\n type: MENU_SUCCESS,\n response,\n };\n}\n\n/**\n * Dispatched when menuRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of MENU_ERROR and the error\n */\nexport function menuError(error) {\n return {\n type: MENU_ERROR,\n error,\n };\n}\n\n/**\n * Dispatched in combination with menuSuccess in order to set up routes\n *\n * @param {object} response The response data\n * @returns {object} An action object with a type of MENU_UPDATE_ROUTES and the response\n */\nexport function menuUpdateRoutes(response) {\n return {\n type: MENU_UPDATE_ROUTES,\n response,\n };\n}\n\n/**\n * Settings request - start the request saga\n *\n * @returns {object} An action object with a type of SETTINGS_REQUEST\n */\nexport function settingsRequest(refresh) {\n return {\n type: SETTINGS_REQUEST,\n refresh,\n };\n}\n\n/**\n * Dispatched when settingsRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of SETTINGS_SUCCESS and the response\n */\nexport function settingsSuccess(response, lastUpdated) {\n return {\n type: SETTINGS_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when settingsRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of SETTINGS_ERROR and the error\n */\nexport function settingsError(error) {\n return {\n type: SETTINGS_ERROR,\n error,\n };\n}\n\n/**\n * Dispatched from the userLogoutListener saga\n * Not hooking directly into `USER_LOGOUT_REQUEST` because it would refresh all\n * the values before the user is logged out\n *\n * @returns {object} An action object with a type of USER_LOGOUT_REQUEST_CLEANUP\n */\nexport function userLogoutClearUserData() {\n return { type: USER_LOGOUT_REQUEST_CLEANUP };\n}\n\n/**\n * Wishlist request - start the request saga\n * The reason this is here is because it needs to be called from WishlistProvider\n * as well as RewardsProvider saga (after adding item to wishlist)\n *\n * @returns {object} An action object with a type of WISHLIST_REQUEST\n */\nexport function wishlistRequest(refresh) {\n return {\n type: WISHLIST_REQUEST,\n refresh,\n };\n}\n\n/**\n * Dispatched when wishlistRequest succeeds by the request saga\n *\n * @param {object} response The response data\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of WISHLIST_SUCCESS and the response\n */\nexport function wishlistSuccess(response, lastUpdated) {\n return {\n type: WISHLIST_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when wishlistRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of WISHLIST_ERROR and the error\n */\nexport function wishlistError(error) {\n return {\n type: WISHLIST_ERROR,\n error,\n };\n}\n\n/**\n * Wishlist add/remove request - start the request saga\n *\n * @param {string} action Either 'add' or 'remove' - Remove being the default\n * @param {object} values Reward properties\n * @returns {object} An action object with a type of WISHLIST_ADDREMOVE_REQUEST\n */\nexport function wishlistAddRemoveRequest(action, values) {\n return {\n type: WISHLIST_ADDREMOVE_REQUEST,\n action,\n values,\n };\n}\n","import { css, thd } from '@smooth-ui/core-sc';\n\nconst globalStyles = css`\n * {\n box-sizing: border-box;\n }\n\n html {\n height: 100%;\n overflow-x: hidden;\n }\n\n body {\n color: ${thd('defaultFontColor', '#333')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto',\n 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n height: 100%;\n line-height: 1.25;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n #root {\n display: flex;\n flex-direction: column;\n min-height: 100%;\n min-width: 100%;\n overflow-x: hidden;\n }\n\n code {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n }\n\n img {\n max-width: 100%;\n }\n\n hr {\n border: 0;\n border-top: 1px solid ${thd('gray300', '#dee2e6')};\n margin-bottom: 1.5rem;\n margin-top: 1.5rem;\n }\n\n [disabled] {\n background-color: #ededed;\n }\n\n ::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54;\n }\n\n :focus {\n outline: none;\n box-shadow: 0 0 0 0.2rem rgba(51, 102, 153, 0.25) inset; /* #369 */\n }\n\n /* react-day-picker resets */\n .DayPickerInput.DayPickerInput {\n display: block;\n }\n\n /* video embeds */\n .embed-responsive {\n display: block;\n overflow: hidden;\n padding-top: 56.25%;\n position: relative;\n width: 100%;\n\n > iframe {\n border: 0;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n }\n`;\n\nexport default globalStyles;\n","/**\n * Global Styles - App\n *\n * Any global styles overrides or additional styles can be included in this file\n */\nimport React from 'react';\nimport { createGlobalStyle, Normalize, thd } from '@smooth-ui/core-sc';\nimport loriGlobalStyles from '_platform/src/theme/globalStyles';\n\nexport const GlobalStylesApp = createGlobalStyle`\n ${loriGlobalStyles}\n\n @font-face{\n font-family:HPSimplifiedRegular;\n font-weight:400;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.woff') format('woff'), url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplifiedBold;\n font-weight:700;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedBold.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedBold.woff') format('woff'), url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedBold.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplifiedLight;\n font-weight:300;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.woff') format('woff'),url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplifiedLightItalic;\n font-style:italic;font-weight:300;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedLightItalic.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedLightItalic.woff') format('woff'),url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedLightItalic.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplified;\n font-weight:400;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.woff') format('woff'),url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplified-Regular;\n font-weight:400;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.woff') format('woff'),url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HPSimplifiedRegular.ttf') format('truetype')\n }\n\n @font-face{\n font-family:HPSimplified-Light;\n font-weight:300;\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.eot');\n src:url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.woff') format('woff'),url('https://www8.hp.com/etc.clientlibs/HPIT-AEM-GLOBALNAV/clientlibs-globalnav/clientlibs-fonts/clientlib-hf-fontface-core/resources/fonts/HpSimplifiedLight.ttf') format('truetype')\n }\n\n @import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;700&display=swap');\n\n body {\n font-family: HPSimplifiedRegular, 'Public Sans', Tahoma, sans-serif;\n line-height: 1.6;\n }\n\n /* Custom CSS here */\n h1 {\n font-size: 48px;\n font-weight: 400;\n font-variation-settings: 'wght' 400;\n line-height: 1.25;\n margin-bottom: .25em;\n }\n\n h2 {\n font-weight: normal;\n font-size: 40px;\n line-height: 1.25;\n }\n\n a {\n color: #2B415A;\n\n &:hover {\n color: #88A0A8;\n }\n\n &:visited {\n color: #88A0A8;\n }\n }\n\n /* Don't wrap emails, phones or other non-wrapping strings */\n .nowrap,\n .date,\n .email,\n .phone {\n white-space: nowrap;\n }\n\n /* Color text */\n .text--red {\n color: ${thd('danger', '#dc3545')};\n }\n\n .text--white {\n color: #fff;\n }\n\n .text--primary {\n color: ${thd('primary', '#867455')};\n }\n\n /* Align text */\n .text-center,\n .text-centre,\n .text--center,\n .text--centre {\n text-align: center;\n }\n .text-right,\n .text--right {\n text-align: right;\n }\n .text-left,\n .text--left {\n text-align: left;\n }\n\n .text-small,\n .text--small {\n font-size: 80%;\n }\n\n .banner-text-small,\n .banner--text--small {\n font-size: 20px;\n font-weight: normal;\n text-align: left;\n }\n\n .text-large,\n .text--large {\n font-size: 120%;\n }\n\n .text-larger,\n .text--larger {\n font-size: 200%;\n }\n\n .text-normal,\n .text--normal {\n font-weight: normal;\n }\n .text-uppercase,\n .text--uppercase {\n text-transform: uppercase;\n }\n\n .text--tight {\n margin-bottom: 0;\n margin-top: 0;\n padding-bottom: 0;\n padding-top: 0;\n }\n\n /* Handy spacing classes */\n :root {\n --spacer: 2rem;\n }\n\n .spacer {\n padding-bottom: 40px;\n padding-top: 40px;\n padding-bottom: var(--spacer);\n padding-top: var(--spacer);\n }\n .spacer--small {\n padding-bottom: 20px;\n padding-top: 20px;\n padding-bottom: calc(var(--spacer) / 2);\n padding-top: calc(var(--spacer) / 2);\n }\n .spacer--large {\n padding-bottom: 80px;\n padding-top: 80px;\n padding-bottom: calc(var(--spacer) * 2);\n padding-top: calc(var(--spacer) * 2);\n }\n .spacer--around {\n padding: 40px;\n padding: var(--spacer);\n }\n .spacer--around--small {\n padding: 20px;\n padding: calc(var(--spacer) / 2);\n }\n .spacer--around--large {\n padding: 80px;\n padding: calc(var(--spacer) * 2);\n }\n .spacer--top {\n padding-top: 40px;\n padding-top: var(--spacer);\n }\n .spacer--bottom {\n padding-bottom: 40px;\n padding-bottom: var(--spacer);\n }\n .spacer--top--small,\n .spacer--small--top {\n padding-top: 20px;\n padding-top: calc(var(--spacer) / 2);\n }\n .spacer--bottom--small,\n .spacer--small--bottom {\n padding-bottom: 20px;\n padding-bottom: calc(var(--spacer) / 2);\n }\n .spacer--top--large,\n .spacer--large--top {\n padding-top: 80px;\n padding-top: calc(var(--spacer) * 2);\n }\n .spacer--bottom--large,\n .spacer--large--bottom {\n padding-bottom: 80px;\n padding-bottom: calc(var(--spacer) * 2);\n }\n\n .Toastify .Toastify__toast--success {\n background: #07bc0c;\n }\n\n .DayPickerInput-Overlay {\n color: #343a40;\n }\n`;\n\nconst StylesApp = () => (\n \n \n \n \n);\n\nexport default StylesApp;\n","import invariant from 'invariant';\nimport isEmpty from 'lodash/isEmpty';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\n\nimport checkStore from './checkStore';\nimport createReducer from './reducers';\n\nexport function injectReducerFactory(store, isValid) {\n return function injectReducer(key, reducer) {\n if (!isValid) checkStore(store);\n\n invariant(\n isString(key) && !isEmpty(key) && isFunction(reducer),\n '(platform/utils...) injectReducer: Expected `reducer` to be a reducer function'\n );\n\n // Check `store.injectedReducers[key] === reducer` for hot reloading when a key is the same but a reducer is different\n if (\n Reflect.has(store.injectedReducers, key) &&\n store.injectedReducers[key] === reducer\n )\n return;\n\n store.injectedReducers[key] = reducer; // eslint-disable-line no-param-reassign\n store.replaceReducer(createReducer(store.injectedReducers));\n };\n}\n\nexport default function getInjectors(store) {\n checkStore(store);\n\n return {\n injectReducer: injectReducerFactory(store, true),\n };\n}\n","import React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { ReactReduxContext } from 'react-redux';\n\nimport getInjectors from './core/reducerInjectors';\n\n/**\n * Dynamically injects a reducer\n *\n * @param {string} key A key of the reducer\n * @param {function} reducer A reducer that will be injected\n *\n */\nexport default ({ key, reducer }) => WrappedComponent => {\n class ReducerInjector extends React.Component {\n static WrappedComponent = WrappedComponent;\n static contextType = ReactReduxContext;\n static displayName = `withReducer(${WrappedComponent.displayName ||\n WrappedComponent.name ||\n 'Component'})`;\n\n constructor(props, context) {\n super(props, context);\n\n getInjectors(context.store).injectReducer(key, reducer);\n }\n\n render() {\n return ;\n }\n }\n\n return hoistNonReactStatics(ReducerInjector, WrappedComponent);\n};\n\nconst useInjectReducer = ({ key, reducer }) => {\n const context = React.useContext(ReactReduxContext);\n React.useEffect(() => {\n getInjectors(context.store).injectReducer(key, reducer);\n }, [context.store, key, reducer]);\n};\n\nexport { useInjectReducer };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled, withTheme } from '@smooth-ui/core-sc';\n\nconst SpinLoader = styled.span`\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n display: flex;\n border-radius: 50%;\n border: ${props => `${props.thickness}px solid ${props.sColor}`};\n border-top: ${props => `${props.thickness}px solid ${props.pColor}`};\n height: ${props => (props.height ? `${props.height}px` : '50px')};\n width: ${props => (props.width ? `${props.width}px` : '50px')};\n animation: spin 1s linear infinite;\n`;\n\nconst LoadingAnimation = ({ className, style, theme = {} }) => (\n \n);\n\nLoadingAnimation.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n theme: PropTypes.object,\n};\n\nLoadingAnimation.defaultProps = {\n className: undefined,\n style: undefined,\n theme: {},\n};\n\nexport const LoadingAnimationCentered = props => (\n \n);\n\n// export default LoadingAnimation;\nexport default withTheme(LoadingAnimation);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport svgSprites from 'theme/svg-sprites.svg';\n\nconst SvgIcon = ({\n icon,\n scaleWidth,\n scaleHeight,\n width,\n height,\n fill,\n color,\n title,\n}) => (\n \n {title || icon || 'Icon'}\n \n \n);\n\nSvgIcon.propTypes = {\n color: PropTypes.string,\n fill: PropTypes.string,\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n icon: PropTypes.string.isRequired, // Select icon from sprite\n scaleHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n scaleWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n title: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nSvgIcon.defaultProps = {\n color: undefined,\n fill: undefined,\n title: undefined,\n};\n\nexport default SvgIcon;\n","/**\n * App Actions\n */\n\nimport {\n COUNTRIES_REQUEST,\n COUNTRIES_SUCCESS,\n COUNTRIES_ERROR,\n SET_USER,\n USER_LOGOUT_REQUEST,\n USER_TOKEN_REQUEST,\n USER_TOKEN_SUCCESS,\n USER_TOKEN_ERROR,\n USER_PROFILE_REQUEST,\n USER_PROFILE_SUCCESS,\n USER_PROFILE_ERROR,\n} from './constants';\n\n/**\n * Countries request - start the request saga\n *\n * @returns {object} An action object with a type of COUNTRIES_REQUEST\n */\nexport function countriesRequest() {\n return {\n type: COUNTRIES_REQUEST,\n };\n}\n\n/**\n * Dispatched when countriesRequest succeeds by the request saga\n *\n * @param {object} response The response\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with a type of COUNTRIES_SUCCESS and the response\n */\nexport function countriesSuccess(response, lastUpdated) {\n return {\n type: COUNTRIES_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when countriesRequests fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of COUNTRIES_ERROR and the error\n */\nexport function countriesError(error) {\n return {\n type: COUNTRIES_ERROR,\n error,\n };\n}\n\n/**\n * Dispatched upon successful user authentication and ensuring they have a valid profile\n *\n * @param {object} details User authentication details\n * @param {string} optons Object containing additional options such as isProfileValid and/or forcePasswordChange\n * @return {object} An action object with a type of SET_USER and the user's auth details\n */\nexport function setUser(details, options) {\n return {\n type: SET_USER,\n details,\n options,\n };\n}\n\n/**\n * User logout request - start the request saga\n *\n * @param {object} options Modifier options such as skipRemote (bool) to avoid sending an API request\n * @returns {object} An action object with a type of USER_LOGOUT_REQUEST\n */\nexport function userLogoutRequest(options) {\n return {\n type: USER_LOGOUT_REQUEST,\n options,\n };\n}\n\n/**\n * User profile request - start the request saga\n *\n * @returns {object} An action object with a type of USER_PROFILE_REQUEST\n */\nexport function userProfileRequest() {\n return {\n type: USER_PROFILE_REQUEST,\n };\n}\n\n/**\n * User Profile Success - Dispatched when requestProfile succeeds by the request saga\n *\n * @param {object} response Data from the response\n * @param {number} lastUpdated Unix timestamp\n * @returns {object} An action object with the type of PROFILE_DETAILS and the response data\n */\nexport function userProfileSuccess(response, lastUpdated) {\n return {\n type: USER_PROFILE_SUCCESS,\n response,\n lastUpdated,\n };\n}\n\n/**\n * Dispatched when userProfileRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of USER_PROFILE_ERROR and the error\n */\nexport function userProfileError(error) {\n return {\n type: USER_PROFILE_ERROR,\n error,\n };\n}\n\n/**\n * User token request - start the request saga\n *\n * @returns {object} An action object with a type of USER_TOKEN_REQUEST\n */\nexport function userTokenRequest(settingsApp) {\n return {\n type: USER_TOKEN_REQUEST,\n settingsApp,\n };\n}\n\n/**\n * Dispatched when userTokenRequest succeeds by the request saga\n *\n * @param {object} response The response\n * @returns {object} An action object with a type of USER_TOKEN_SUCCESS and the response\n */\nexport function userTokenSuccess(response) {\n return {\n type: USER_TOKEN_SUCCESS,\n response,\n };\n}\n\n/**\n * Dispatched when userTokenRequest fails\n *\n * @param {object} error The error as received from the API\n * @returns {object} An action object with a type of USER_TOKEN_ERROR and the error\n */\nexport function userTokenError(error) {\n return {\n type: USER_TOKEN_ERROR,\n error,\n };\n}\n","module.exports = __webpack_public_path__ + \"static/media/svg-sprites.01767e26.svg\";","/**\n * WebApp selectors\n */\nimport { createSelector } from 'reselect';\nimport { initialState } from './reducer';\n\n/**\n * Container state\n */\nconst selectState = state => state.webApp || initialState;\n\n/**\n * Card Balance\n */\nconst selectCardBalance = () =>\n createSelector(\n selectState,\n state => state.cardBalance\n );\n\n/**\n * Cart\n */\nconst selectCart = () =>\n createSelector(\n selectState,\n state => state.cart\n );\n\n/**\n * CustomerReps\n */\nconst selectCustomerReps = () =>\n createSelector(\n selectState,\n state => state.customerReps\n );\n\n/**\n * Menu definitions\n */\nconst selectMenu = () =>\n createSelector(\n selectState,\n state => state.menu\n );\n\nconst selectRoutes = () =>\n createSelector(\n selectState,\n state => state.routes\n );\n\n/**\n * Site settings\n */\nconst selectSettings = () =>\n createSelector(\n selectState,\n state => state.settings\n );\n\n// Next Claiming Period (single)\nconst selectSettingsNextClaimingPeriod = () =>\n createSelector(\n selectSettings(),\n state =>\n state &&\n state.claimingPeriods &&\n state.claimingPeriods.find(item => item.dateEndsUser > new Date())\n );\n\n// Points UOM\nconst selectSettingsPointsUOM = () =>\n createSelector(\n selectSettings(),\n state =>\n state &&\n state.unitsOfMeasure &&\n state.unitsOfMeasure.find(item => !!item.pointsMeasure)\n );\n\n// Sales UOMs\nconst selectSettingsSalesUOMs = () =>\n createSelector(\n selectSettings(),\n state =>\n state &&\n state.unitsOfMeasure &&\n state.unitsOfMeasure.filter(item => !item.pointsMeasure)\n );\n\n// Program Settings\nconst selectSettingsProgram = () =>\n createSelector(\n selectSettings(),\n state => state && state.program\n );\n\n/**\n * Wishlist\n */\nconst selectWishlist = () =>\n createSelector(\n selectState,\n state => state.wishlist\n );\n\nexport {\n selectState,\n selectCardBalance,\n selectCart,\n selectCustomerReps,\n selectMenu,\n selectRoutes,\n selectSettings,\n selectSettingsNextClaimingPeriod,\n selectSettingsPointsUOM,\n selectSettingsProgram,\n selectSettingsSalesUOMs,\n selectWishlist,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LoadingAnimation from './LoadingAnimation';\n\nconst Loading = props => {\n if (props.error) {\n if (process.env.NODE_ENV === 'development' && props.error.message) {\n console.warn(props.error.message);\n }\n return (\n
\n

\n Error\n {props.error.code === 'MODULE_NOT_FOUND' && (\n Module not found!\n )}\n

\n\n {process.env.NODE_ENV === 'development' && (\n
\n \n
\n )}\n
\n );\n }\n if (props.timedOut) {\n return (\n
\n Taking too long to load... \n
\n );\n }\n if (props.pastDelay) {\n return ;\n }\n return null;\n};\n\nLoading.propTypes = {\n error: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n timedOut: PropTypes.bool,\n pastDelay: PropTypes.bool,\n retry: PropTypes.func,\n};\n\nLoading.defaultProps = {\n error: false,\n timedOut: false,\n pastDelay: false,\n retry: null,\n};\n\nexport default Loading;\n","/**\n * Helper for Loadable to dynamically load components and split into webpack chunks\n */\n\nimport Loadable from 'react-loadable';\nimport Loading from '../components/Loading/Loading'; // _platform\n\nconst LoadAsync = (loadFn, opts) =>\n Loadable({\n loader: loadFn,\n loading: Loading,\n delay: opts && opts.delay ? opts.delay : 200, // Delay displaying the loader in milliseconds\n timeout: opts && opts.timeout ? opts.timeout : null, // Show timeout message in milliseconds\n });\n\nexport default LoadAsync;\n","/**\n * Custom History object to be used as a singleton throughout\n * the project to navigate between pages\n */\nimport { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\nexport default history;\n","/**\n * App selectors\n */\nimport { createSelector } from 'reselect';\nimport { initialState } from './reducer';\n\n/**\n * Container state\n */\nconst selectGlobalState = state => state.global || initialState;\n\n/**\n * Fetch state\n */\nconst selectStatus = () =>\n createSelector(\n selectGlobalState,\n state => ({\n status: state.status,\n statusDetails: state.statusDetails,\n })\n );\n\n/**\n * Countries\n */\nconst selectCountries = () =>\n createSelector(\n selectGlobalState,\n state => state.countries\n );\n\n/**\n * Current user\n */\nconst selectCurrentUser = () =>\n createSelector(\n selectGlobalState,\n state => state.currentUser\n );\n\nconst selectCurrentUserTemp = () =>\n createSelector(\n selectGlobalState,\n state => state.currentUserTemp\n );\n\nconst selectIsFetchingToken = () =>\n createSelector(\n selectGlobalState,\n state => state.isFetchingToken\n );\n\nconst selectUserOptions = () =>\n createSelector(\n selectGlobalState,\n state => state.userOptions\n );\n\n/**\n * Profile details\n */\nconst selectUserProfile = () =>\n createSelector(\n selectGlobalState,\n state => state.profileDetails\n );\n\nexport {\n selectGlobalState,\n selectCountries,\n selectCurrentUser,\n selectCurrentUserTemp,\n selectIsFetchingToken,\n selectStatus,\n selectUserOptions,\n selectUserProfile,\n};\n","var map = {\n\t\"./AboutPage/AboutAwardsNight\": [\n\t\t381,\n\t\t9,\n\t\t79\n\t],\n\t\"./AboutPage/AboutAwardsNight.js\": [\n\t\t381,\n\t\t9,\n\t\t79\n\t],\n\t\"./AboutPage/AboutPage\": [\n\t\t382,\n\t\t9,\n\t\t35\n\t],\n\t\"./AboutPage/AboutPage.js\": [\n\t\t382,\n\t\t9,\n\t\t35\n\t],\n\t\"./AboutPage/images/HP-products-banner-@1x.jpg\": [\n\t\t700,\n\t\t7,\n\t\t185\n\t],\n\t\"./AboutPage/images/HP-products-banner-@2x.jpg\": [\n\t\t701,\n\t\t7,\n\t\t186\n\t],\n\t\"./AboutPage/images/HP-products-banner-mobile-@1x.jpg\": [\n\t\t696,\n\t\t7,\n\t\t187\n\t],\n\t\"./AboutPage/images/HP-products-banner-mobile-@2x.jpg\": [\n\t\t697,\n\t\t7,\n\t\t188\n\t],\n\t\"./AboutPage/images/HP-products-banner-tablet-@1x.jpg\": [\n\t\t698,\n\t\t7,\n\t\t189\n\t],\n\t\"./AboutPage/images/HP-products-banner-tablet-@2x.jpg\": [\n\t\t699,\n\t\t7,\n\t\t190\n\t],\n\t\"./AboutPage/images/banner-about-@1x.jpg\": [\n\t\t756,\n\t\t7,\n\t\t191\n\t],\n\t\"./AboutPage/images/banner-about-@2x.jpg\": [\n\t\t757,\n\t\t7,\n\t\t192\n\t],\n\t\"./AboutPage/images/banner-about-man_using_keyboard-@2x.jpg\": [\n\t\t758,\n\t\t7,\n\t\t193\n\t],\n\t\"./AboutPage/images/banner-about-mobile-@1x.jpg\": [\n\t\t759,\n\t\t7,\n\t\t194\n\t],\n\t\"./AboutPage/images/banner-about-mobile-@2x.jpg\": [\n\t\t760,\n\t\t7,\n\t\t195\n\t],\n\t\"./AboutPage/images/banner-about-tablet-@1x.jpg\": [\n\t\t761,\n\t\t7,\n\t\t196\n\t],\n\t\"./AboutPage/images/banner-about-tablet-@2x.jpg\": [\n\t\t762,\n\t\t7,\n\t\t197\n\t],\n\t\"./AboutPage/images/bg-about-awards_night_banner-@2x.jpg\": [\n\t\t695,\n\t\t7,\n\t\t198\n\t],\n\t\"./AboutPage/images/icon-handgraph.svg\": [\n\t\t763,\n\t\t7,\n\t\t181\n\t],\n\t\"./AboutPage/images/icon-lightbulb.svg\": [\n\t\t764,\n\t\t7,\n\t\t182\n\t],\n\t\"./AboutPage/images/icon-shield.svg\": [\n\t\t765,\n\t\t7,\n\t\t183\n\t],\n\t\"./AboutPage/images/icon-stopwatch.svg\": [\n\t\t766,\n\t\t7,\n\t\t184\n\t],\n\t\"./AboutPage/images/image-about-1-@2x.jpg\": [\n\t\t767,\n\t\t7,\n\t\t199\n\t],\n\t\"./AboutPage/images/image-about-2-@2x.jpg\": [\n\t\t768,\n\t\t7,\n\t\t200\n\t],\n\t\"./AboutPage/images/image-about-digital_giftcards-@2x.jpg\": [\n\t\t769,\n\t\t7,\n\t\t201\n\t],\n\t\"./AboutPage/images/image-about-rewards_collage-@2x.jpg\": [\n\t\t770,\n\t\t7,\n\t\t202\n\t],\n\t\"./AboutPage/images/image-about-travel_collage-@2x.jpg\": [\n\t\t771,\n\t\t7,\n\t\t203\n\t],\n\t\"./AllocatorPage/AllocateForm\": [\n\t\t328,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t31\n\t],\n\t\"./AllocatorPage/AllocateForm.js\": [\n\t\t328,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t31\n\t],\n\t\"./AllocatorPage/AllocatorPage\": [\n\t\t383,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t29\n\t],\n\t\"./AllocatorPage/AllocatorPage.js\": [\n\t\t383,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t29\n\t],\n\t\"./AllocatorPage/Participants\": [\n\t\t331,\n\t\t9,\n\t\t4,\n\t\t52\n\t],\n\t\"./AllocatorPage/Participants.js\": [\n\t\t331,\n\t\t9,\n\t\t4,\n\t\t52\n\t],\n\t\"./AllocatorPage/actions\": [\n\t\t304,\n\t\t9,\n\t\t80\n\t],\n\t\"./AllocatorPage/actions.js\": [\n\t\t304,\n\t\t9,\n\t\t80\n\t],\n\t\"./AllocatorPage/constants\": [\n\t\t289,\n\t\t9,\n\t\t106\n\t],\n\t\"./AllocatorPage/constants.js\": [\n\t\t289,\n\t\t9,\n\t\t106\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-@1x.jpg\": [\n\t\t706,\n\t\t7,\n\t\t204\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-@2x.jpg\": [\n\t\t707,\n\t\t7,\n\t\t205\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-mobile-@1x.jpg\": [\n\t\t702,\n\t\t7,\n\t\t206\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-mobile-@2x.jpg\": [\n\t\t703,\n\t\t7,\n\t\t207\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-tablet-@1x.jpg\": [\n\t\t704,\n\t\t7,\n\t\t208\n\t],\n\t\"./AllocatorPage/images/HP-tracker-banner-tablet-@2x.jpg\": [\n\t\t705,\n\t\t7,\n\t\t209\n\t],\n\t\"./AllocatorPage/reducer\": [\n\t\t305,\n\t\t9,\n\t\t81\n\t],\n\t\"./AllocatorPage/reducer.js\": [\n\t\t305,\n\t\t9,\n\t\t81\n\t],\n\t\"./AllocatorPage/saga\": [\n\t\t329,\n\t\t9,\n\t\t54\n\t],\n\t\"./AllocatorPage/saga.js\": [\n\t\t329,\n\t\t9,\n\t\t54\n\t],\n\t\"./AllocatorPage/selectors\": [\n\t\t330,\n\t\t9,\n\t\t55\n\t],\n\t\"./AllocatorPage/selectors.js\": [\n\t\t330,\n\t\t9,\n\t\t55\n\t],\n\t\"./BehaviourProvider/BehaviourProvider\": [\n\t\t359,\n\t\t9,\n\t\t7\n\t],\n\t\"./BehaviourProvider/BehaviourProvider.js\": [\n\t\t359,\n\t\t9,\n\t\t7\n\t],\n\t\"./BehaviourProvider/actions\": [\n\t\t306,\n\t\t9,\n\t\t82\n\t],\n\t\"./BehaviourProvider/actions.js\": [\n\t\t306,\n\t\t9,\n\t\t82\n\t],\n\t\"./BehaviourProvider/constants\": [\n\t\t290,\n\t\t9,\n\t\t107\n\t],\n\t\"./BehaviourProvider/constants.js\": [\n\t\t290,\n\t\t9,\n\t\t107\n\t],\n\t\"./BehaviourProvider/reducer\": [\n\t\t307,\n\t\t9,\n\t\t83\n\t],\n\t\"./BehaviourProvider/reducer.js\": [\n\t\t307,\n\t\t9,\n\t\t83\n\t],\n\t\"./BehaviourProvider/saga\": [\n\t\t332,\n\t\t9,\n\t\t56\n\t],\n\t\"./BehaviourProvider/saga.js\": [\n\t\t332,\n\t\t9,\n\t\t56\n\t],\n\t\"./BehaviourProvider/selectors\": [\n\t\t333,\n\t\t9,\n\t\t57\n\t],\n\t\"./BehaviourProvider/selectors.js\": [\n\t\t333,\n\t\t9,\n\t\t57\n\t],\n\t\"./CartPage/CartPage\": [\n\t\t384,\n\t\t9,\n\t\t46\n\t],\n\t\"./CartPage/CartPage.js\": [\n\t\t384,\n\t\t9,\n\t\t46\n\t],\n\t\"./CartProvider/CartProvider\": [\n\t\t360,\n\t\t9,\n\t\t8\n\t],\n\t\"./CartProvider/CartProvider.js\": [\n\t\t360,\n\t\t9,\n\t\t8\n\t],\n\t\"./CartProvider/actions\": [\n\t\t308,\n\t\t9,\n\t\t84\n\t],\n\t\"./CartProvider/actions.js\": [\n\t\t308,\n\t\t9,\n\t\t84\n\t],\n\t\"./CartProvider/constants\": [\n\t\t291,\n\t\t9,\n\t\t108\n\t],\n\t\"./CartProvider/constants.js\": [\n\t\t291,\n\t\t9,\n\t\t108\n\t],\n\t\"./CartProvider/reducer\": [\n\t\t309,\n\t\t9,\n\t\t85\n\t],\n\t\"./CartProvider/reducer.js\": [\n\t\t309,\n\t\t9,\n\t\t85\n\t],\n\t\"./CartProvider/saga\": [\n\t\t334,\n\t\t9,\n\t\t58\n\t],\n\t\"./CartProvider/saga.js\": [\n\t\t334,\n\t\t9,\n\t\t58\n\t],\n\t\"./CartProvider/selectors\": [\n\t\t335,\n\t\t9,\n\t\t59\n\t],\n\t\"./CartProvider/selectors.js\": [\n\t\t335,\n\t\t9,\n\t\t59\n\t],\n\t\"./ClaimHistoryPage/ClaimHistoryPage\": [\n\t\t405,\n\t\t9,\n\t\t34\n\t],\n\t\"./ClaimHistoryPage/ClaimHistoryPage.js\": [\n\t\t405,\n\t\t9,\n\t\t34\n\t],\n\t\"./ClaimHistoryProvider/ClaimHistoryProvider\": [\n\t\t385,\n\t\t9,\n\t\t9\n\t],\n\t\"./ClaimHistoryProvider/ClaimHistoryProvider.js\": [\n\t\t385,\n\t\t9,\n\t\t9\n\t],\n\t\"./ClaimHistoryProvider/actions\": [\n\t\t310,\n\t\t9,\n\t\t86\n\t],\n\t\"./ClaimHistoryProvider/actions.js\": [\n\t\t310,\n\t\t9,\n\t\t86\n\t],\n\t\"./ClaimHistoryProvider/constants\": [\n\t\t292,\n\t\t9,\n\t\t109\n\t],\n\t\"./ClaimHistoryProvider/constants.js\": [\n\t\t292,\n\t\t9,\n\t\t109\n\t],\n\t\"./ClaimHistoryProvider/reducer\": [\n\t\t311,\n\t\t9,\n\t\t87\n\t],\n\t\"./ClaimHistoryProvider/reducer.js\": [\n\t\t311,\n\t\t9,\n\t\t87\n\t],\n\t\"./ClaimHistoryProvider/saga\": [\n\t\t337,\n\t\t9,\n\t\t60\n\t],\n\t\"./ClaimHistoryProvider/saga.js\": [\n\t\t337,\n\t\t9,\n\t\t60\n\t],\n\t\"./ClaimHistoryProvider/selectors\": [\n\t\t338,\n\t\t9,\n\t\t61\n\t],\n\t\"./ClaimHistoryProvider/selectors.js\": [\n\t\t338,\n\t\t9,\n\t\t61\n\t],\n\t\"./CodesProvider/CodesList\": [\n\t\t339,\n\t\t9,\n\t\t50\n\t],\n\t\"./CodesProvider/CodesList.js\": [\n\t\t339,\n\t\t9,\n\t\t50\n\t],\n\t\"./CodesProvider/CodesProvider\": [\n\t\t361,\n\t\t9,\n\t\t10\n\t],\n\t\"./CodesProvider/CodesProvider.js\": [\n\t\t361,\n\t\t9,\n\t\t10\n\t],\n\t\"./CodesProvider/CodesRedeemForm\": [\n\t\t342,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t33\n\t],\n\t\"./CodesProvider/CodesRedeemForm.js\": [\n\t\t342,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t33\n\t],\n\t\"./CodesProvider/actions\": [\n\t\t312,\n\t\t9,\n\t\t88\n\t],\n\t\"./CodesProvider/actions.js\": [\n\t\t312,\n\t\t9,\n\t\t88\n\t],\n\t\"./CodesProvider/constants\": [\n\t\t293,\n\t\t9,\n\t\t110\n\t],\n\t\"./CodesProvider/constants.js\": [\n\t\t293,\n\t\t9,\n\t\t110\n\t],\n\t\"./CodesProvider/reducer\": [\n\t\t313,\n\t\t9,\n\t\t89\n\t],\n\t\"./CodesProvider/reducer.js\": [\n\t\t313,\n\t\t9,\n\t\t89\n\t],\n\t\"./CodesProvider/saga\": [\n\t\t340,\n\t\t9,\n\t\t62\n\t],\n\t\"./CodesProvider/saga.js\": [\n\t\t340,\n\t\t9,\n\t\t62\n\t],\n\t\"./CodesProvider/selectors\": [\n\t\t341,\n\t\t9,\n\t\t63\n\t],\n\t\"./CodesProvider/selectors.js\": [\n\t\t341,\n\t\t9,\n\t\t63\n\t],\n\t\"./ContactPage/ContactPage\": [\n\t\t386,\n\t\t9,\n\t\t43\n\t],\n\t\"./ContactPage/ContactPage.js\": [\n\t\t386,\n\t\t9,\n\t\t43\n\t],\n\t\"./ContactPage/images/HP-contact-banner-@1x.jpg\": [\n\t\t718,\n\t\t7,\n\t\t210\n\t],\n\t\"./ContactPage/images/HP-contact-banner-@2x.jpg\": [\n\t\t719,\n\t\t7,\n\t\t211\n\t],\n\t\"./ContactPage/images/HP-contact-banner-mobile-@1x.jpg\": [\n\t\t714,\n\t\t7,\n\t\t212\n\t],\n\t\"./ContactPage/images/HP-contact-banner-mobile-@2x.jpg\": [\n\t\t715,\n\t\t7,\n\t\t213\n\t],\n\t\"./ContactPage/images/HP-contact-banner-tablet-@1x.jpg\": [\n\t\t716,\n\t\t7,\n\t\t214\n\t],\n\t\"./ContactPage/images/HP-contact-banner-tablet-@2x.jpg\": [\n\t\t717,\n\t\t7,\n\t\t215\n\t],\n\t\"./ContactPage/images/banner-contact-@1x.jpg\": [\n\t\t772,\n\t\t7,\n\t\t216\n\t],\n\t\"./ContactPage/images/banner-contact-@2x.jpg\": [\n\t\t773,\n\t\t7,\n\t\t217\n\t],\n\t\"./ContactPage/images/banner-contact-mobile-@1x.jpg\": [\n\t\t774,\n\t\t7,\n\t\t218\n\t],\n\t\"./ContactPage/images/banner-contact-mobile-@2x.jpg\": [\n\t\t775,\n\t\t7,\n\t\t219\n\t],\n\t\"./ContactPage/images/banner-contact-tablet-@1x.jpg\": [\n\t\t776,\n\t\t7,\n\t\t220\n\t],\n\t\"./ContactPage/images/banner-contact-tablet-@2x.jpg\": [\n\t\t777,\n\t\t7,\n\t\t221\n\t],\n\t\"./FaqPage/FaqPage\": [\n\t\t387,\n\t\t9,\n\t\t111\n\t],\n\t\"./FaqPage/FaqPage.js\": [\n\t\t387,\n\t\t9,\n\t\t111\n\t],\n\t\"./HomePage/HomePage\": [\n\t\t403,\n\t\t9,\n\t\t11\n\t],\n\t\"./HomePage/HomePage.js\": [\n\t\t403,\n\t\t9,\n\t\t11\n\t],\n\t\"./HomePage/images/hp-home-banner-@1x.jpg\": [\n\t\t687,\n\t\t7,\n\t\t222\n\t],\n\t\"./HomePage/images/hp-home-banner-@2x.jpg\": [\n\t\t688,\n\t\t7,\n\t\t223\n\t],\n\t\"./HomePage/images/hp-home-banner-mobile-@1x.jpg\": [\n\t\t683,\n\t\t7,\n\t\t224\n\t],\n\t\"./HomePage/images/hp-home-banner-mobile-@2x.jpg\": [\n\t\t684,\n\t\t7,\n\t\t225\n\t],\n\t\"./HomePage/images/hp-home-banner-tablet-@1x.jpg\": [\n\t\t685,\n\t\t7,\n\t\t226\n\t],\n\t\"./HomePage/images/hp-home-banner-tablet-@2x.jpg\": [\n\t\t686,\n\t\t7,\n\t\t227\n\t],\n\t\"./InvoicePage/InvoiceForm\": [\n\t\t369,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t26,\n\t\t12\n\t],\n\t\"./InvoicePage/InvoiceForm.js\": [\n\t\t369,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t26,\n\t\t12\n\t],\n\t\"./InvoicePage/InvoiceList\": [\n\t\t362,\n\t\t9,\n\t\t3,\n\t\t4,\n\t\t13\n\t],\n\t\"./InvoicePage/InvoiceList.js\": [\n\t\t362,\n\t\t9,\n\t\t3,\n\t\t4,\n\t\t13\n\t],\n\t\"./InvoicePage/InvoicePage\": [\n\t\t388,\n\t\t9,\n\t\t112\n\t],\n\t\"./InvoicePage/InvoicePage.js\": [\n\t\t388,\n\t\t9,\n\t\t112\n\t],\n\t\"./InvoiceProvider/InvoiceProvider\": [\n\t\t363,\n\t\t9,\n\t\t3,\n\t\t14\n\t],\n\t\"./InvoiceProvider/InvoiceProvider.js\": [\n\t\t363,\n\t\t9,\n\t\t3,\n\t\t14\n\t],\n\t\"./InvoiceProvider/actions\": [\n\t\t314,\n\t\t9,\n\t\t90\n\t],\n\t\"./InvoiceProvider/actions.js\": [\n\t\t314,\n\t\t9,\n\t\t90\n\t],\n\t\"./InvoiceProvider/constants\": [\n\t\t294,\n\t\t9,\n\t\t113\n\t],\n\t\"./InvoiceProvider/constants.js\": [\n\t\t294,\n\t\t9,\n\t\t113\n\t],\n\t\"./InvoiceProvider/reducer\": [\n\t\t315,\n\t\t9,\n\t\t91\n\t],\n\t\"./InvoiceProvider/reducer.js\": [\n\t\t315,\n\t\t9,\n\t\t91\n\t],\n\t\"./InvoiceProvider/saga\": [\n\t\t343,\n\t\t9,\n\t\t3,\n\t\t51\n\t],\n\t\"./InvoiceProvider/saga.js\": [\n\t\t343,\n\t\t9,\n\t\t3,\n\t\t51\n\t],\n\t\"./InvoiceProvider/selectors\": [\n\t\t344,\n\t\t9,\n\t\t64\n\t],\n\t\"./InvoiceProvider/selectors.js\": [\n\t\t344,\n\t\t9,\n\t\t64\n\t],\n\t\"./LeaderboardPage/LeaderboardPage\": [\n\t\t389,\n\t\t9,\n\t\t42\n\t],\n\t\"./LeaderboardPage/LeaderboardPage.js\": [\n\t\t389,\n\t\t9,\n\t\t42\n\t],\n\t\"./LeaderboardProvider/LeaderboardProvider\": [\n\t\t345,\n\t\t9,\n\t\t44\n\t],\n\t\"./LeaderboardProvider/LeaderboardProvider.js\": [\n\t\t345,\n\t\t9,\n\t\t44\n\t],\n\t\"./LeaderboardProvider/actions\": [\n\t\t299,\n\t\t9,\n\t\t92\n\t],\n\t\"./LeaderboardProvider/actions.js\": [\n\t\t299,\n\t\t9,\n\t\t92\n\t],\n\t\"./LeaderboardProvider/constants\": [\n\t\t287,\n\t\t9,\n\t\t114\n\t],\n\t\"./LeaderboardProvider/constants.js\": [\n\t\t287,\n\t\t9,\n\t\t114\n\t],\n\t\"./LeaderboardProvider/reducer\": [\n\t\t300,\n\t\t9,\n\t\t93\n\t],\n\t\"./LeaderboardProvider/reducer.js\": [\n\t\t300,\n\t\t9,\n\t\t93\n\t],\n\t\"./LeaderboardProvider/saga\": [\n\t\t324,\n\t\t9,\n\t\t65\n\t],\n\t\"./LeaderboardProvider/saga.js\": [\n\t\t324,\n\t\t9,\n\t\t65\n\t],\n\t\"./LeaderboardProvider/selectors\": [\n\t\t325,\n\t\t9,\n\t\t66\n\t],\n\t\"./LeaderboardProvider/selectors.js\": [\n\t\t325,\n\t\t9,\n\t\t66\n\t],\n\t\"./LoginPage/LoginPage\": [\n\t\t404,\n\t\t9,\n\t\t15\n\t],\n\t\"./LoginPage/LoginPage.js\": [\n\t\t404,\n\t\t9,\n\t\t15\n\t],\n\t\"./LoginPage/images/hp-login-banner-@1x.jpg\": [\n\t\t689,\n\t\t7,\n\t\t228\n\t],\n\t\"./LoginPage/images/hp-login-banner-@2x.jpg\": [\n\t\t690,\n\t\t7,\n\t\t229\n\t],\n\t\"./LoginPage/images/hp-login-banner-mobile-@1x.jpg\": [\n\t\t691,\n\t\t7,\n\t\t230\n\t],\n\t\"./LoginPage/images/hp-login-banner-mobile-@2x.jpg\": [\n\t\t692,\n\t\t7,\n\t\t231\n\t],\n\t\"./LoginPage/images/hp-login-banner-tablet-@1x.jpg\": [\n\t\t693,\n\t\t7,\n\t\t232\n\t],\n\t\"./LoginPage/images/hp-login-banner-tablet-@2x.jpg\": [\n\t\t694,\n\t\t7,\n\t\t233\n\t],\n\t\"./LoginPage/images/image-login_page-background-@1x.jpg\": [\n\t\t778,\n\t\t7,\n\t\t234\n\t],\n\t\"./LoginPage/images/image-login_page-background-@2x.jpg\": [\n\t\t779,\n\t\t7,\n\t\t235\n\t],\n\t\"./LogoutPage/LogoutPage\": [\n\t\t379,\n\t\t9,\n\t\t16\n\t],\n\t\"./LogoutPage/LogoutPage.js\": [\n\t\t379,\n\t\t9,\n\t\t16\n\t],\n\t\"./MastercardPage/MastercardPage\": [\n\t\t390,\n\t\t9,\n\t\t37\n\t],\n\t\"./MastercardPage/MastercardPage.js\": [\n\t\t390,\n\t\t9,\n\t\t37\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-@1x.jpg\": [\n\t\t724,\n\t\t7,\n\t\t236\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-@2x.jpg\": [\n\t\t725,\n\t\t7,\n\t\t237\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-mobile-@1x.jpg\": [\n\t\t720,\n\t\t7,\n\t\t238\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-mobile-@2x.jpg\": [\n\t\t721,\n\t\t7,\n\t\t239\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-tablet-@1x.jpg\": [\n\t\t722,\n\t\t7,\n\t\t240\n\t],\n\t\"./MastercardPage/images/HP-statement-banner-tablet-@2x.jpg\": [\n\t\t723,\n\t\t7,\n\t\t241\n\t],\n\t\"./MastercardProvider/MastercardProvider\": [\n\t\t364,\n\t\t9,\n\t\t6\n\t],\n\t\"./MastercardProvider/MastercardProvider.js\": [\n\t\t364,\n\t\t9,\n\t\t6\n\t],\n\t\"./MastercardProvider/actions\": [\n\t\t316,\n\t\t9,\n\t\t94\n\t],\n\t\"./MastercardProvider/actions.js\": [\n\t\t316,\n\t\t9,\n\t\t94\n\t],\n\t\"./MastercardProvider/constants\": [\n\t\t295,\n\t\t9,\n\t\t115\n\t],\n\t\"./MastercardProvider/constants.js\": [\n\t\t295,\n\t\t9,\n\t\t115\n\t],\n\t\"./MastercardProvider/reducer\": [\n\t\t317,\n\t\t9,\n\t\t95\n\t],\n\t\"./MastercardProvider/reducer.js\": [\n\t\t317,\n\t\t9,\n\t\t95\n\t],\n\t\"./MastercardProvider/saga\": [\n\t\t346,\n\t\t9,\n\t\t67\n\t],\n\t\"./MastercardProvider/saga.js\": [\n\t\t346,\n\t\t9,\n\t\t67\n\t],\n\t\"./MastercardProvider/selectors\": [\n\t\t347,\n\t\t9,\n\t\t68\n\t],\n\t\"./MastercardProvider/selectors.js\": [\n\t\t347,\n\t\t9,\n\t\t68\n\t],\n\t\"./MobileAppSSOPage/MobileAppSSOPage\": [\n\t\t380,\n\t\t9,\n\t\t17\n\t],\n\t\"./MobileAppSSOPage/MobileAppSSOPage.js\": [\n\t\t380,\n\t\t9,\n\t\t17\n\t],\n\t\"./NotFoundPage/NotFoundPage\": [\n\t\t358,\n\t\t9,\n\t\t18\n\t],\n\t\"./NotFoundPage/NotFoundPage.js\": [\n\t\t358,\n\t\t9,\n\t\t18\n\t],\n\t\"./PasswordResetPage/PasswordResetPage\": [\n\t\t378,\n\t\t9,\n\t\t19\n\t],\n\t\"./PasswordResetPage/PasswordResetPage.js\": [\n\t\t378,\n\t\t9,\n\t\t19\n\t],\n\t\"./PrivacyPage/PrivacyPage\": [\n\t\t391,\n\t\t9,\n\t\t116\n\t],\n\t\"./PrivacyPage/PrivacyPage.js\": [\n\t\t391,\n\t\t9,\n\t\t116\n\t],\n\t\"./ProductsPage/ProductsPage\": [\n\t\t392,\n\t\t9,\n\t\t117\n\t],\n\t\"./ProductsPage/ProductsPage.js\": [\n\t\t392,\n\t\t9,\n\t\t117\n\t],\n\t\"./ProfilePage/ProfilePage\": [\n\t\t406,\n\t\t9,\n\t\t38\n\t],\n\t\"./ProfilePage/ProfilePage.js\": [\n\t\t406,\n\t\t9,\n\t\t38\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-@1x.jpg\": [\n\t\t730,\n\t\t7,\n\t\t242\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-@2x.jpg\": [\n\t\t731,\n\t\t7,\n\t\t243\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-mobile-@1x.jpg\": [\n\t\t726,\n\t\t7,\n\t\t244\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-mobile-@2x.jpg\": [\n\t\t727,\n\t\t7,\n\t\t245\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-tablet-@1x.jpg\": [\n\t\t728,\n\t\t7,\n\t\t246\n\t],\n\t\"./ProfilePage/images/HP-profile-banner-tablet-@2x.jpg\": [\n\t\t729,\n\t\t7,\n\t\t247\n\t],\n\t\"./ProfilePage/images/banner-profile-@1x.jpg\": [\n\t\t780,\n\t\t7,\n\t\t248\n\t],\n\t\"./ProfilePage/images/banner-profile-@2x.jpg\": [\n\t\t781,\n\t\t7,\n\t\t249\n\t],\n\t\"./ProfilePage/images/banner-profile-mobile-@1x.jpg\": [\n\t\t782,\n\t\t7,\n\t\t250\n\t],\n\t\"./ProfilePage/images/banner-profile-mobile-@2x.jpg\": [\n\t\t783,\n\t\t7,\n\t\t251\n\t],\n\t\"./ProfilePage/images/banner-profile-tablet-@1x.jpg\": [\n\t\t784,\n\t\t7,\n\t\t252\n\t],\n\t\"./ProfilePage/images/banner-profile-tablet-@2x.jpg\": [\n\t\t785,\n\t\t7,\n\t\t253\n\t],\n\t\"./ProfileProvider/ProfileProvider\": [\n\t\t365,\n\t\t9,\n\t\t45\n\t],\n\t\"./ProfileProvider/ProfileProvider.js\": [\n\t\t365,\n\t\t9,\n\t\t45\n\t],\n\t\"./ProfileProvider/actions\": [\n\t\t301,\n\t\t9,\n\t\t96\n\t],\n\t\"./ProfileProvider/actions.js\": [\n\t\t301,\n\t\t9,\n\t\t96\n\t],\n\t\"./ProfileProvider/constants\": [\n\t\t288,\n\t\t9,\n\t\t118\n\t],\n\t\"./ProfileProvider/constants.js\": [\n\t\t288,\n\t\t9,\n\t\t118\n\t],\n\t\"./ProfileProvider/reducer\": [\n\t\t302,\n\t\t9,\n\t\t97\n\t],\n\t\"./ProfileProvider/reducer.js\": [\n\t\t302,\n\t\t9,\n\t\t97\n\t],\n\t\"./ProfileProvider/saga\": [\n\t\t326,\n\t\t9,\n\t\t69\n\t],\n\t\"./ProfileProvider/saga.js\": [\n\t\t326,\n\t\t9,\n\t\t69\n\t],\n\t\"./ProfileProvider/selectors\": [\n\t\t327,\n\t\t9,\n\t\t70\n\t],\n\t\"./ProfileProvider/selectors.js\": [\n\t\t327,\n\t\t9,\n\t\t70\n\t],\n\t\"./PromotionsPage/PromotionsPage\": [\n\t\t393,\n\t\t9,\n\t\t36\n\t],\n\t\"./PromotionsPage/PromotionsPage.js\": [\n\t\t393,\n\t\t9,\n\t\t36\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-@1x.jpg\": [\n\t\t736,\n\t\t7,\n\t\t254\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-@2x.jpg\": [\n\t\t737,\n\t\t7,\n\t\t255\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-mobile-@1x.jpg\": [\n\t\t732,\n\t\t7,\n\t\t256\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-mobile-@2x.jpg\": [\n\t\t733,\n\t\t7,\n\t\t257\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-tablet-@1x.jpg\": [\n\t\t734,\n\t\t7,\n\t\t258\n\t],\n\t\"./PromotionsPage/images/HP-promos-banner-tablet-@2x.jpg\": [\n\t\t735,\n\t\t7,\n\t\t259\n\t],\n\t\"./PromotionsPage/images/IntelCore-700x217-@2x.png\": [\n\t\t786,\n\t\t7,\n\t\t260\n\t],\n\t\"./PromotionsPage/images/Logos-430x488-@2x.jpg\": [\n\t\t787,\n\t\t7,\n\t\t261\n\t],\n\t\"./PromotionsPage/images/Logos-430x488-@2x.png\": [\n\t\t788,\n\t\t7,\n\t\t262\n\t],\n\t\"./PromotionsPage/images/banner-incentive-@1x.jpg\": [\n\t\t789,\n\t\t7,\n\t\t263\n\t],\n\t\"./PromotionsPage/images/banner-incentive-@2x.jpg\": [\n\t\t790,\n\t\t7,\n\t\t264\n\t],\n\t\"./PromotionsPage/images/banner-incentive-mobile-@1x.jpg\": [\n\t\t791,\n\t\t7,\n\t\t265\n\t],\n\t\"./PromotionsPage/images/banner-incentive-mobile-@2x.jpg\": [\n\t\t792,\n\t\t7,\n\t\t266\n\t],\n\t\"./PromotionsPage/images/banner-incentive-tablet-@1x.jpg\": [\n\t\t793,\n\t\t7,\n\t\t267\n\t],\n\t\"./PromotionsPage/images/banner-incentive-tablet-@2x.jpg\": [\n\t\t794,\n\t\t7,\n\t\t268\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-@1x.jpg\": [\n\t\t795,\n\t\t7,\n\t\t269\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-@2x.jpg\": [\n\t\t796,\n\t\t7,\n\t\t270\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-mobile-@1x.jpg\": [\n\t\t797,\n\t\t7,\n\t\t271\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-mobile-@2x.jpg\": [\n\t\t798,\n\t\t7,\n\t\t272\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-tablet-@1x.jpg\": [\n\t\t799,\n\t\t7,\n\t\t273\n\t],\n\t\"./PromotionsPage/images/banner-laserjet-tablet-@2x.jpg\": [\n\t\t800,\n\t\t7,\n\t\t274\n\t],\n\t\"./RedeemCode/RedeemCode\": [\n\t\t394,\n\t\t9,\n\t\t47\n\t],\n\t\"./RedeemCode/RedeemCode.js\": [\n\t\t394,\n\t\t9,\n\t\t47\n\t],\n\t\"./RedirectToFirstAvailableSubMenu/RedirectToFirstAvailableSubMenu\": [\n\t\t395,\n\t\t9,\n\t\t119\n\t],\n\t\"./RedirectToFirstAvailableSubMenu/RedirectToFirstAvailableSubMenu.js\": [\n\t\t395,\n\t\t9,\n\t\t119\n\t],\n\t\"./RegisterPage/RegisterHPDataProvider\": [\n\t\t366,\n\t\t9,\n\t\t20\n\t],\n\t\"./RegisterPage/RegisterHPDataProvider.js\": [\n\t\t366,\n\t\t9,\n\t\t20\n\t],\n\t\"./RegisterPage/RegisterPage\": [\n\t\t396,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t32\n\t],\n\t\"./RegisterPage/RegisterPage.js\": [\n\t\t396,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t32\n\t],\n\t\"./RegisterPage/actions\": [\n\t\t318,\n\t\t9,\n\t\t98\n\t],\n\t\"./RegisterPage/actions.js\": [\n\t\t318,\n\t\t9,\n\t\t98\n\t],\n\t\"./RegisterPage/constants\": [\n\t\t296,\n\t\t9,\n\t\t120\n\t],\n\t\"./RegisterPage/constants.js\": [\n\t\t296,\n\t\t9,\n\t\t120\n\t],\n\t\"./RegisterPage/reducer\": [\n\t\t319,\n\t\t9,\n\t\t99\n\t],\n\t\"./RegisterPage/reducer.js\": [\n\t\t319,\n\t\t9,\n\t\t99\n\t],\n\t\"./RegisterPage/saga\": [\n\t\t348,\n\t\t9,\n\t\t71\n\t],\n\t\"./RegisterPage/saga.js\": [\n\t\t348,\n\t\t9,\n\t\t71\n\t],\n\t\"./RegisterPage/selectors\": [\n\t\t349,\n\t\t9,\n\t\t72\n\t],\n\t\"./RegisterPage/selectors.js\": [\n\t\t349,\n\t\t9,\n\t\t72\n\t],\n\t\"./RewardsPage/RewardsConciergeBlock\": [\n\t\t355,\n\t\t9,\n\t\t100\n\t],\n\t\"./RewardsPage/RewardsConciergeBlock.js\": [\n\t\t355,\n\t\t9,\n\t\t100\n\t],\n\t\"./RewardsPage/RewardsPage\": [\n\t\t397,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t30\n\t],\n\t\"./RewardsPage/RewardsPage.js\": [\n\t\t397,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t30\n\t],\n\t\"./RewardsPage/images/banner-rewards-@1x.jpg\": [\n\t\t742,\n\t\t7,\n\t\t275\n\t],\n\t\"./RewardsPage/images/banner-rewards-@2x.jpg\": [\n\t\t743,\n\t\t7,\n\t\t276\n\t],\n\t\"./RewardsPage/images/banner-rewards-mobile-@1x.jpg\": [\n\t\t738,\n\t\t7,\n\t\t277\n\t],\n\t\"./RewardsPage/images/banner-rewards-mobile-@2x.jpg\": [\n\t\t739,\n\t\t7,\n\t\t278\n\t],\n\t\"./RewardsPage/images/banner-rewards-tablet-@1x.jpg\": [\n\t\t740,\n\t\t7,\n\t\t279\n\t],\n\t\"./RewardsPage/images/banner-rewards-tablet-@2x.jpg\": [\n\t\t741,\n\t\t7,\n\t\t280\n\t],\n\t\"./RewardsPage/images/bg-rewards-concierge-@2x.jpg\": [\n\t\t682,\n\t\t7,\n\t\t281\n\t],\n\t\"./RewardsProvider/RewardsProvider\": [\n\t\t367,\n\t\t9,\n\t\t21,\n\t\t53\n\t],\n\t\"./RewardsProvider/RewardsProvider.js\": [\n\t\t367,\n\t\t9,\n\t\t21,\n\t\t53\n\t],\n\t\"./RewardsProvider/actions\": [\n\t\t320,\n\t\t9,\n\t\t101\n\t],\n\t\"./RewardsProvider/actions.js\": [\n\t\t320,\n\t\t9,\n\t\t101\n\t],\n\t\"./RewardsProvider/constants\": [\n\t\t297,\n\t\t9,\n\t\t121\n\t],\n\t\"./RewardsProvider/constants.js\": [\n\t\t297,\n\t\t9,\n\t\t121\n\t],\n\t\"./RewardsProvider/reducer\": [\n\t\t321,\n\t\t9,\n\t\t102\n\t],\n\t\"./RewardsProvider/reducer.js\": [\n\t\t321,\n\t\t9,\n\t\t102\n\t],\n\t\"./RewardsProvider/rewardsUtils\": [\n\t\t303,\n\t\t9,\n\t\t103\n\t],\n\t\"./RewardsProvider/rewardsUtils.js\": [\n\t\t303,\n\t\t9,\n\t\t103\n\t],\n\t\"./RewardsProvider/saga\": [\n\t\t350,\n\t\t9,\n\t\t73\n\t],\n\t\"./RewardsProvider/saga.js\": [\n\t\t350,\n\t\t9,\n\t\t73\n\t],\n\t\"./RewardsProvider/selectors\": [\n\t\t351,\n\t\t9,\n\t\t74\n\t],\n\t\"./RewardsProvider/selectors.js\": [\n\t\t351,\n\t\t9,\n\t\t74\n\t],\n\t\"./SitemapPage/SitemapPage\": [\n\t\t407,\n\t\t9,\n\t\t77\n\t],\n\t\"./SitemapPage/SitemapPage.js\": [\n\t\t407,\n\t\t9,\n\t\t77\n\t],\n\t\"./StatementIncentivePage/StatementIncentivePage\": [\n\t\t398,\n\t\t9,\n\t\t39\n\t],\n\t\"./StatementIncentivePage/StatementIncentivePage.js\": [\n\t\t398,\n\t\t9,\n\t\t39\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-@1x.jpg\": [\n\t\t748,\n\t\t7,\n\t\t282\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-@2x.jpg\": [\n\t\t749,\n\t\t7,\n\t\t283\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-mobile-@1x.jpg\": [\n\t\t744,\n\t\t7,\n\t\t284\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-mobile-@2x.jpg\": [\n\t\t745,\n\t\t7,\n\t\t285\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-tablet-@1x.jpg\": [\n\t\t746,\n\t\t7,\n\t\t286\n\t],\n\t\"./StatementIncentivePage/images/banner-statement-tablet-@2x.jpg\": [\n\t\t747,\n\t\t7,\n\t\t287\n\t],\n\t\"./StatementPage/StatementPage\": [\n\t\t399,\n\t\t9,\n\t\t40\n\t],\n\t\"./StatementPage/StatementPage.js\": [\n\t\t399,\n\t\t9,\n\t\t40\n\t],\n\t\"./StatementPage/StatementTabs\": [\n\t\t336,\n\t\t9,\n\t\t78\n\t],\n\t\"./StatementPage/StatementTabs.js\": [\n\t\t336,\n\t\t9,\n\t\t78\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-@1x.jpg\": [\n\t\t754,\n\t\t7,\n\t\t288\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-@2x.jpg\": [\n\t\t755,\n\t\t7,\n\t\t289\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-mobile-@1x.jpg\": [\n\t\t750,\n\t\t7,\n\t\t290\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-mobile-@2x.jpg\": [\n\t\t751,\n\t\t7,\n\t\t291\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-tablet-@1x.jpg\": [\n\t\t752,\n\t\t7,\n\t\t292\n\t],\n\t\"./StatementPage/images/HP-tracker-banner-tablet-@2x.jpg\": [\n\t\t753,\n\t\t7,\n\t\t293\n\t],\n\t\"./StatementPage/images/banner-statement-@1x.jpg\": [\n\t\t712,\n\t\t7,\n\t\t294\n\t],\n\t\"./StatementPage/images/banner-statement-@2x.jpg\": [\n\t\t713,\n\t\t7,\n\t\t295\n\t],\n\t\"./StatementPage/images/banner-statement-mobile-@1x.jpg\": [\n\t\t708,\n\t\t7,\n\t\t296\n\t],\n\t\"./StatementPage/images/banner-statement-mobile-@2x.jpg\": [\n\t\t709,\n\t\t7,\n\t\t297\n\t],\n\t\"./StatementPage/images/banner-statement-tablet-@1x.jpg\": [\n\t\t710,\n\t\t7,\n\t\t298\n\t],\n\t\"./StatementPage/images/banner-statement-tablet-@2x.jpg\": [\n\t\t711,\n\t\t7,\n\t\t299\n\t],\n\t\"./StatementProvider/StatementProvider\": [\n\t\t352,\n\t\t9,\n\t\t22\n\t],\n\t\"./StatementProvider/StatementProvider.js\": [\n\t\t352,\n\t\t9,\n\t\t22\n\t],\n\t\"./StatementProvider/actions\": [\n\t\t322,\n\t\t9,\n\t\t104\n\t],\n\t\"./StatementProvider/actions.js\": [\n\t\t322,\n\t\t9,\n\t\t104\n\t],\n\t\"./StatementProvider/constants\": [\n\t\t298,\n\t\t9,\n\t\t122\n\t],\n\t\"./StatementProvider/constants.js\": [\n\t\t298,\n\t\t9,\n\t\t122\n\t],\n\t\"./StatementProvider/reducer\": [\n\t\t323,\n\t\t9,\n\t\t105\n\t],\n\t\"./StatementProvider/reducer.js\": [\n\t\t323,\n\t\t9,\n\t\t105\n\t],\n\t\"./StatementProvider/saga\": [\n\t\t353,\n\t\t9,\n\t\t75\n\t],\n\t\"./StatementProvider/saga.js\": [\n\t\t353,\n\t\t9,\n\t\t75\n\t],\n\t\"./StatementProvider/selectors\": [\n\t\t354,\n\t\t9,\n\t\t76\n\t],\n\t\"./StatementProvider/selectors.js\": [\n\t\t354,\n\t\t9,\n\t\t76\n\t],\n\t\"./TermsPage/TermsPage\": [\n\t\t400,\n\t\t9,\n\t\t123\n\t],\n\t\"./TermsPage/TermsPage.js\": [\n\t\t400,\n\t\t9,\n\t\t123\n\t],\n\t\"./TrainingPage/TrainingPage\": [\n\t\t401,\n\t\t9,\n\t\t48\n\t],\n\t\"./TrainingPage/TrainingPage.js\": [\n\t\t401,\n\t\t9,\n\t\t48\n\t],\n\t\"./WebApp/Routes\": [\n\t\t132,\n\t\t9\n\t],\n\t\"./WebApp/Routes.js\": [\n\t\t132,\n\t\t9\n\t],\n\t\"./WebApp/SettingsContext\": [\n\t\t76,\n\t\t9\n\t],\n\t\"./WebApp/SettingsContext.js\": [\n\t\t76,\n\t\t9\n\t],\n\t\"./WebApp/WebApp\": [\n\t\t94,\n\t\t9\n\t],\n\t\"./WebApp/WebApp.js\": [\n\t\t94,\n\t\t9\n\t],\n\t\"./WebApp/actions\": [\n\t\t18,\n\t\t9\n\t],\n\t\"./WebApp/actions.js\": [\n\t\t18,\n\t\t9\n\t],\n\t\"./WebApp/constants\": [\n\t\t8,\n\t\t9\n\t],\n\t\"./WebApp/constants.js\": [\n\t\t8,\n\t\t9\n\t],\n\t\"./WebApp/reducer\": [\n\t\t81,\n\t\t9\n\t],\n\t\"./WebApp/reducer.js\": [\n\t\t81,\n\t\t9\n\t],\n\t\"./WebApp/saga\": [\n\t\t131,\n\t\t9\n\t],\n\t\"./WebApp/saga.js\": [\n\t\t131,\n\t\t9\n\t],\n\t\"./WebApp/selectors\": [\n\t\t34,\n\t\t9\n\t],\n\t\"./WebApp/selectors.js\": [\n\t\t34,\n\t\t9\n\t],\n\t\"./Welcome/Welcome\": [\n\t\t377,\n\t\t9,\n\t\t23\n\t],\n\t\"./Welcome/Welcome.js\": [\n\t\t377,\n\t\t9,\n\t\t23\n\t],\n\t\"./WishlistPage/WishlistPage\": [\n\t\t402,\n\t\t9,\n\t\t49\n\t],\n\t\"./WishlistPage/WishlistPage.js\": [\n\t\t402,\n\t\t9,\n\t\t49\n\t],\n\t\"./WishlistProvider/WishlistProvider\": [\n\t\t368,\n\t\t9,\n\t\t24\n\t],\n\t\"./WishlistProvider/WishlistProvider.js\": [\n\t\t368,\n\t\t9,\n\t\t24\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1])\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 680;\nmodule.exports = webpackAsyncContext;","/**\n *\n * Settings defaults - do not edit this file in individual projects, as it provides fallbacks.\n *\n * You can override specific values in the project src/theme/settingsApp.js file.\n *\n */\n\nconst settingsDefault = {\n // How long before the token expiry should the token be refreshed (in minutes)\n authTokenRefreshBeforeExpiry: 10,\n\n // Input date format\n dateFormat: 'dd/MM/yyyy',\n dateLongFormat: 'LLL dd, yyyy',\n dateTimeFormat: 'dd/MM/yyyy HH:mm',\n dateTimeLongFormat: 'E, LLL dd, yyyy HH:mm',\n\n // Form prefer optional indicator over required\n formPreferOptionalIndicator: false,\n formIndicatorOptionalText: '(optional)',\n formIndicatorRequiredText: ' *',\n\n // Path to the login page.\n loginPagePath: '/login/',\n\n // Toggle Remember Me option for login\n loginRememberMeEnabled: true,\n\n // Setting this option to true stores the token information in SessionStorage,\n // meaning it's only available to the current tab, and only until the tab is closed.\n // Setting this to true will disable Remember Me.\n loginUseSessionStorage: false,\n\n // Redirect users with incomplete profiles after signing in.\n // If the path is not specified (or false), the user will stay on the same\n // page where the login form is.\n // The user will be added to currentUserTemp, and any profile update module\n // will need to be supplied that object in order for display content and update\n // the back-end.\n // Important!: If the user is being redirected, ensure that the PrivateRoute\n // component has the `tempAuthAllowed` prop set, otherwise the user will not\n // be able to see/update their profile\n // Relative path with the leading slash. Eg: '/profile/'. Default: false\n redirectOnIncompleteProfile: false,\n\n // Password reset / Forgot password\n loginPasswordResetLabel: 'Reset Password',\n loginPasswordResetShow: true,\n passwordResetEnabled: true,\n passwordResetPagePath: '/password-reset/',\n\n // Path to the logout page - without trailing slash as it's not an exact path\n logoutPagePath: '/logout',\n\n // Path to the profile page\n profilePagePath: '/profile/',\n\n // Mobile App SSO\n mobileAppSSOEnabled: false,\n mobileAppSSOPagePath: '/sso/',\n\n // Rewards page - disable category listing and display rewards on the main page\n rewardsCategorySkip: false,\n\n // Minimum password character length\n minimumPasswordLength: 7,\n passwordRequirementMessage:\n 'Passwords must be at least 7 characters long and must contain at least 1 digit and 1 lowercase letter.',\n\n // Default page size for lists\n defaultPageSize: 100,\n\n // Maximum state data cache time (seconds) - used by shouldFetchData utility\n // Default 5 minutes for regular data, or 10 minutes for infrequent data (eg, contact form definitions)\n dataCacheTime: 300,\n dataCacheTimeLong: 600,\n\n // Order status labels\n orderStatusLabels: {\n Received: 'Claim Received',\n Ordered: 'Reward Ordered',\n Packing: 'Reward being Packed',\n Dispatched: 'Reward Dispatched',\n BackOrder: 'Reward has been placed on Back Order',\n },\n};\n\nexport default settingsDefault;\n","/**\n *\n * Project settings - override any values from platform settingsDefaults here\n *\n */\n\nimport settingsDefault from '_platform/src/theme/settingsDefault';\n\nconst settings = {\n // -- Base Settings --\n siteName: 'HP Commercial Club ',\n\n // -- Cloudinary Settings --\n // Cloudinary cloud name\n cloudinaryCloudName: 'incremental',\n\n // -- Rewards --\n // Hide reward category images (main rewards page)\n // rewardsCategoryHideImage: true,\n\n // Pages - must have trailing slash\n cartPage: '/cart/',\n privacyPage: '/privacy/',\n rewardsPage: '/rewards/',\n\n // Delivery method \"Client\" label (usually Branch or Rep)\n deliveryMethodClientLabel: 'Rep',\n\n // Master override settings\n cartDisabled: true,\n quickviewDisabled: true,\n wishlistDisabled: true,\n\n // -- Default Overrides --\n\n // Important!: If the user is being redirected, ensure that the PrivateRoute\n // component has the `tempAuthAllowed` prop set, otherwise the user will not\n // be able to see/update their profile.\n // For futher documentation, see _platform/src/theme/settingsDefault.js\n // redirectOnIncompleteProfile: '/profile/',\n\n // Rewards page - disable category listing and display rewards on the main page\n // rewardsCategorySkip: true,\n};\n\n// Note: If you are altering the breakpoints, make sure you loop over the\n// values and create the media prop. See settingsDefault.js for implementation.\n\n// Deep merge with default values\nconst settingsApp = { ...settingsDefault, ...settings };\n\nexport default settingsApp;\n","/**\n * Application theme\n *\n * Override and extend smooth-ui theme values\n * https://github.com/smooth-code/smooth-ui/blob/master/packages/shared/core/theme.js\n * https://smooth-ui.smooth-code.com/\n */\n\nimport { transparentize } from 'polished';\nimport { thd, theme } from '@smooth-ui/core-sc';\nimport settingsApp from 'theme/settingsApp';\n\n/*\nIf overwriting the default Smooth-UI theme properties, and you're planning on\nre-using them throughout the default export below, make sure to define them in\nthe outer scope, otherwise components attempting to use the value with throw errors\n*/\nconst primary = '#0C1E33';\nconst secondary = '#F4BD19';\nconst grey = '#54707C';\nconst bluegrey = '#87B1C3';\nconst green = '#2B415A';\nconst text = '#2B415A';\n\nexport default {\n // Mandatory\n ...theme,\n settingsApp, // Bring in the merged app settings\n\n // Resets\n borderRadius: 0,\n error: thd('danger', '#dc3545'),\n gridMaxWidths: { sm: '100%', md: '100%', lg: '100%', xl: '1200px' },\n primary: primary,\n secondary: secondary,\n text: text,\n grey: grey,\n bluegrey: bluegrey,\n green: green,\n\n // Layout\n borderColor: thd('gray300', '#ddd'),\n containerWidth: '1200px',\n\n // Colours\n defaultFontColor: theme.gray800,\n // pointsValueColor: '#f90',\n\n // Input + Buttons\n inputBtnMinWidth: '120px',\n customInputHintColor: theme.gray600,\n customInputHintFontSize: '.875em',\n customInlineInputInvalidColor: theme.red,\n customCheckboxDisabledBackground: '#ced4da',\n\n // Header + Menu\n customHeaderBackground: '#151d29',\n customHeaderColor: '#fff',\n customMenuBackground: '#151d29',\n customMenuColor: '#fff',\n customMenuHighlight: '#151d29',\n customMenuHighlightColor: '#fff',\n customMenuFocus: '#fff',\n customSubMenuBackground: '#2B415A',\n customMobileMenuOverlayBackground: 'rgba(0, 0, 0, 0.5)',\n\n // Loading animations\n loadingBarColor: primary || '#f4bd19',\n loadingSpinnerPrimary: '#555',\n loadingSpinnerSecondary: '#eee',\n\n // Welcome component\n welcomeBackground: '#0C1E33',\n welcomeColor: '#fff',\n welcomeHighlight: '#f4bd19',\n\n // Breadcrumbs\n // breadcrumbsBackground: thd('gray200', '#fff'),\n breadcrumbsColor: thd('gray600', '#555'),\n breadcrumbsContainerWidth: thd('containerWidth', '100%'),\n breadcrumbsLinkColor: thd('gray600', '#555'),\n breadcrumbsLinkHoverColor: thd('gray800', '#333'),\n breadcrumbsCurrentLinkColor: thd('gray800', '#333'),\n breadcrumbsFontSize: '0.75rem',\n\n // Cart\n // miniCartBackground: '#fff',\n cartBadgeBackground: '#f4be00',\n cartBadgeColor: '#fff',\n cartPointsBalanceBackground: transparentize(0.75, '#369'),\n cartRemainingNegativeColor: thd('danger', '#dc3545'),\n\n // Rewards\n rewardCategoriesListContainerWidth: thd('containerWidth', '100%'),\n rewardCategoriesFilterContainerWidth: thd('containerWidth', '100%'),\n rewardListContainerWidth: thd('containerWidth', '100%'),\n rewardDetailContainerWidth: thd('containerWidth', '100%'),\n rewardDescription1ContainerWidth: thd('containerWidth', '100%'),\n rewardDescription2ContainerWidth: thd('containerWidth', '100%'),\n\n // Rewards - Quickview\n // quickviewBackground: '#333',\n // quickviewColor: '#fff',\n\n // Rewards - Wishlist\n // miniWishlistBackground: '#fff',\n wishlistBadgeBackground: '#f4be00',\n wishlistBadgeColor: '#fff',\n wishlistContainerWidth: '500px',\n // wishlistIconActive: '#f4bd19',\n // wishlistIconInactive: theme.gray500,\n\n // Rewards - Highlight (featured/related rewards)\n rewardsHighlightBackground: '#fff',\n rewardsHighlightContainerWidth: thd('containerWidth', '100%'),\n\n // Statement\n statementHighlightColor: '#f4bd19',\n statementStatus: {\n achieved: '#1e967a',\n onTrack: '#1e967a',\n close: '#ea7c22',\n behind: '#dc402a',\n inProgress: '#ea7c22',\n timeElapsed: '#32343b',\n },\n statementDoughnutBorder: '#eaeaeb',\n statementDoughnutRemainingTrack: '#fff',\n\n // Tooltips\n tooltipBackground: '#fff',\n tooltipBorderColor: '#fff',\n tooltipColor: thd('defaultFontColor', theme.gray800),\n\n // Pagination\n pagerActiveBackground: 'rgba(0,0,0,0.125)',\n pagerActiveColor: '#fff',\n // pagerColor: thd('gray800', 'inherit'),\n pagerBackgroundHover: 'rgba(0,0,0,0.125)',\n};\n","/**\n * Gets the app and user configuration\n */\n\nimport { call, put, takeLatest } from 'redux-saga/effects';\nimport { showLoading, hideLoading } from 'react-redux-loading-bar';\nimport qs from 'qs';\nimport history from '../../utils/history'; // _platform\nimport {\n api,\n apiErrorHandler,\n apiSetAuthorizationToken,\n} from '../../utils/request'; // _platform\nimport { formatToken, storeToken, removeToken } from '../../utils/tokenUtils'; // _platform\nimport { removeProperty } from '../../utils/utilities'; // _platform\nimport getLoginPath from '../../utils/getLoginPath'; // _platform\n\nimport {\n COUNTRIES_REQUEST,\n USER_LOGOUT_REQUEST,\n USER_PROFILE_REQUEST,\n USER_TOKEN_REQUEST,\n} from './constants';\nimport {\n countriesSuccess,\n countriesError,\n setUser,\n userLogoutRequest,\n userProfileSuccess,\n userProfileError,\n userTokenSuccess,\n userTokenError,\n} from './actions';\n\n/**\n * Request App Settings\n */\nexport function* requestCountries() {\n try {\n yield put(showLoading());\n const response = yield call(() =>\n api.get('/Country/v1/true', {\n description: 'Countries', // Description is used as title for any errors (optional)\n })\n );\n yield put(countriesSuccess(response.data, Math.floor(Date.now() / 1000)));\n } catch (err) {\n yield put(countriesError(apiErrorHandler(err)));\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request User Logout\n *\n * 1. Remove currentUser from state (done in reducer)\n * 2. Send logout API request, unless options.options.skipRemote is true\n * 3. Remove token from localStorage and sessionStorage\n * 4. Redirect user to login page (with querystring)\n */\nexport function* requestUserLogout(options) {\n try {\n if (!options.options || options.options.skipRemote !== true) {\n yield call(() =>\n api.post('/Authentication/v1/Logout', {\n description: 'User logout',\n })\n );\n }\n\n removeToken();\n apiSetAuthorizationToken(null);\n } catch (err) {\n // errors\n } finally {\n // redirect with Querystring if necessary\n const loginPath = getLoginPath(\n (options.options && options.options.settingsApp) || {} // Blank object if coming from request.js\n );\n\n if (loginPath) {\n yield call(history.push, loginPath);\n }\n }\n}\n\n/**\n * Request User Token (refresh)\n */\nexport function* requestUserToken(options) {\n try {\n yield put(showLoading());\n\n // On logout page, don't try to refresh the token - return error in order to log the user out\n if (history.location.pathname === options.settingsApp.logoutPagePath) {\n yield put(userTokenError());\n } else {\n const response = yield call(() =>\n api.post('/Authentication/v1/RefreshToken', {\n settingsApp: {\n loginPagePath:\n options &&\n options.settingsApp &&\n options.settingsApp.loginPagePath,\n },\n })\n );\n\n // Format user's token data\n const userData = formatToken(response.data);\n\n // Get the query string\n // Use lowercaseKeys to make the object keys predictable\n const pageQueryString = qs.parse(\n history.location.search.replace(/returnUrl/gi, 'returnUrl'),\n {\n ignoreQueryPrefix: true,\n }\n );\n\n // Original queryString but sanitised\n const cleanQueryString = qs.stringify(pageQueryString);\n\n // Remove returnUrl from querystring and keep the remainder\n const trimmedQueryString = qs.stringify(\n removeProperty(pageQueryString, 'returnUrl')\n );\n\n // Set API Authorization token to be used on subsequent calls\n apiSetAuthorizationToken(userData.token);\n\n // Check if the user has a valid profile\n if (\n response.data.isProfileValid === true &&\n response.data.forcePasswordChange === false\n ) {\n // Store the authentication info\n storeToken(userData, options.settingsApp.loginUseSessionStorage);\n\n // Put authentication info into App state\n yield put(setUser(userData));\n yield put(userTokenSuccess()); // After setUser() in order to avoid infinite loops\n } else {\n // Put authentication info into App state as currentUserTemp until the profile is complete\n // yield put(setUser(userData, 'incompleteProfile'));\n yield put(\n setUser(userData, {\n forcePasswordChange: response.data.forcePasswordChange,\n isProfileValid: response.data.isProfileValid,\n })\n );\n yield put(userTokenSuccess()); // After setUser() in order to avoid infinite loops\n\n const { redirectOnIncompleteProfile } = options.settingsApp;\n\n // Check if we should redirect to another page if the profile is incomplete\n // Include any query strings that may be present\n if (\n redirectOnIncompleteProfile &&\n response.data.forcePasswordChange === false\n ) {\n // Remove returnUrl if it matches redirectOnIncompleteProfile path\n const redirectQS =\n pageQueryString.returnUrl === redirectOnIncompleteProfile\n ? trimmedQueryString\n : cleanQueryString;\n\n yield call(history.push, {\n pathname: redirectOnIncompleteProfile,\n search: redirectQS && `?${redirectQS}`,\n });\n }\n }\n }\n } catch (err) {\n yield put(userTokenError(apiErrorHandler(err)));\n\n yield put(\n userLogoutRequest({\n skipRemote: true,\n })\n );\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Request profile\n */\nexport function* requestUserProfile() {\n try {\n yield put(showLoading());\n const response = yield call(() =>\n api.get('/User/v1/Profile', {\n description: 'Profile details',\n })\n );\n\n yield put(userProfileSuccess(response.data, Math.floor(Date.now() / 1000)));\n } catch (err) {\n yield put(userProfileError(apiErrorHandler(err)));\n } finally {\n yield put(hideLoading());\n }\n}\n\n/**\n * Default saga managers the watcher lifecycle\n */\nexport default function* appSaga() {\n // Specify the constant to watch and the saga generator function to call when one is triggered\n // It returns a task descriptor (just like a fork) so we can continue execution, and will be\n // automatically cancelled on unmount (unless the mode is set to DAEMON)\n // Specify as many yields (watchers) here as necessary\n yield takeLatest(COUNTRIES_REQUEST, requestCountries);\n yield takeLatest(USER_LOGOUT_REQUEST, requestUserLogout);\n yield takeLatest(USER_PROFILE_REQUEST, requestUserProfile);\n yield takeLatest(USER_TOKEN_REQUEST, requestUserToken);\n}\n","/**\n * App\n *\n * This is the main container that gets loaded and is a wrapper around all other components.\n * It should contain containers/components and state available to all other pages.\n *\n * See below for order of import statements\n */\n\n// Core imports\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\n\n// Style, SEO and settings\nimport { withTheme } from '@smooth-ui/core-sc';\n\n// Component features\nimport { apiSetAuthorizationToken } from '../../utils/request'; // _platform\nimport injectSaga from '../../utils/injectSaga'; // _platform\nimport { userLogoutRequest, userTokenRequest } from './actions';\nimport {\n selectCurrentUser,\n selectIsFetchingToken,\n selectStatus,\n} from './selectors';\nimport saga from './saga';\n\nclass App extends Component {\n componentDidMount() {\n // Set API Authorization token if one is stored\n apiSetAuthorizationToken(this.props.currentUser.token);\n\n // Refresh user's token if necessary\n this.tokenRefresh(true); // Action this even if the user has a token, even if it's not close to expiry. To ensure that the token is still valid after a refresh\n\n // Set up a page change listener\n this.props.history.listen(location => {\n // If the current page is not /login/, refresh the token if necessary\n if (location.pathname !== this.props.theme.settingsApp.loginPagePath)\n this.tokenRefresh();\n });\n }\n\n /**\n * refreshToken\n *\n * Determine if the user's authentication token needs to be refreshed\n * in order to keep them logged in safely for as long as possible\n *\n * @param {force} bool If token is present refresh it, bypassing token expiry check\n */\n tokenRefresh(force) {\n const { currentUser, isFetchingToken } = this.props;\n\n if (currentUser.token && currentUser.tokenData && !isFetchingToken) {\n const { authTokenRefreshBeforeExpiry } = this.props.theme.settingsApp;\n\n // Determine the lifespan of a token\n const tokenLifeTime =\n (currentUser.tokenData.tokenExpiry -\n currentUser.tokenData.generatedLocal) /\n 60;\n\n // Check if the authTokenRefreshBeforeExpiry is longer than the max life of token\n // If so, refresh token after 5 mins of token generation\n const refreshPeriod =\n authTokenRefreshBeforeExpiry < tokenLifeTime\n ? authTokenRefreshBeforeExpiry // If the setting is less than token max life\n : tokenLifeTime - 5; // After 5 minutes\n\n const triggerFetchTime = new Date(\n currentUser.tokenData.tokenExpiry * 1000\n );\n triggerFetchTime.setMinutes(\n triggerFetchTime.getMinutes() - refreshPeriod\n );\n\n if (force || new Date() > triggerFetchTime) {\n // Check token expiry time? If so, and the token has expired, it may leave\n // the user feeling as though they are logged in when they are not.\n // If we don't check, then the fetch will run, return a 401 and push to logout.\n this.props.dispatch(userTokenRequest(this.props.theme.settingsApp));\n }\n }\n }\n\n render() {\n if (this.props.children) {\n return React.Children.map(this.props.children, childElement =>\n React.cloneElement(childElement, this.props)\n );\n }\n\n return null;\n }\n}\n\nApp.propTypes = {\n children: PropTypes.node.isRequired,\n currentUser: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n isFetchingToken: PropTypes.bool.isRequired,\n onLogout: PropTypes.func.isRequired,\n status: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n};\n\nfunction mapDispatchToProps(dispatch, props) {\n const settingsApp = (props.theme && props.theme.settingsApp) || {};\n\n return {\n onLogout: () => dispatch(userLogoutRequest({ settingsApp })),\n dispatch,\n };\n}\n\nconst mapStateToProps = createStructuredSelector({\n currentUser: selectCurrentUser(),\n isFetchingToken: selectIsFetchingToken(),\n status: selectStatus(),\n});\n\nconst withConnect = connect(\n mapStateToProps,\n mapDispatchToProps\n);\n\nconst withSaga = injectSaga({ key: 'app', saga });\n\nexport default compose(\n withTheme,\n withSaga,\n withRouter,\n withConnect\n)(App);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n\n // Execute callback\n if (config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","// Polyfills required for IE\nimport 'react-app-polyfill/ie11'; // CRA package for IE 11 support\n// https://github.com/facebook/create-react-app/tree/master/packages/react-app-polyfill\nimport 'core-js/features/array/includes';\nimport 'core-js/features/reflect/apply';\nimport 'core-js/features/reflect/construct';\nimport 'core-js/features/reflect/has';\n// Required by us\nimport 'core-js/features/array/find';\nimport 'core-js/features/array/virtual/find-index'; // styled-components\nimport 'core-js/features/number';\nimport 'core-js/features/object/values'; // Statements/chartjs\n// End Polyfills\n\nimport React from 'react';\nimport { hydrate, render } from 'react-dom';\nimport { Router } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport history from '_platform/src/utils/history';\nimport store from '_platform/src/utils/store';\nimport 'theme/globalStylesApp';\nimport { ThemeProvider } from '@smooth-ui/core-sc';\nimport themeApp from 'theme/themeApp'; // Settings and Theme\nimport App from '_platform/src/containers/App/App';\nimport WebApp from 'containers/WebApp/WebApp';\nimport * as serviceWorker from './serviceWorker';\n\nconst rootElement =\n document.getElementById('root') || document.createElement('div');\n\nif (rootElement.hasChildNodes()) {\n hydrate(\n \n \n \n \n \n \n \n \n ,\n rootElement\n );\n} else {\n render(\n \n \n \n \n \n \n \n \n ,\n rootElement\n );\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","/**\n * Check the shape of the redux store\n */\n\nimport conformsTo from 'lodash/conformsTo';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport invariant from 'invariant';\n\nexport default function checkStore(store) {\n const shape = {\n dispatch: isFunction,\n subscribe: isFunction,\n getState: isFunction,\n replaceReducer: isFunction,\n runSaga: isFunction,\n injectedReducers: isObject,\n injectedSagas: isObject,\n };\n\n invariant(\n conformsTo(store, shape),\n '(src/utils...) injectors: Expected a valid redux store'\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SettingsContext = React.createContext();\n\nexport const SettingsProvider = ({ settings, ...props }) => (\n \n {props.children}\n \n);\n\nSettingsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n settings: PropTypes.object.isRequired,\n};\n\nexport function withSettings(Component) {\n return function contextComponent(props) {\n return (\n \n {context => }\n \n );\n };\n}\n\nexport default withSettings;\n","/**\n * Check if the URL is absolute or relative\n *\n * @param {string} url URL path\n */\nexport function isUrlAbsolute(url) {\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\n return r.test(url);\n}\n\n/**\n * removeProperty - Immutably removes a property from an object\n * Use as an immutable replacement to the `delete` keyword\n *\n * @param {object} obj Object from which the property should be removed\n * @param {string} property Name of the property\n */\nexport const removeProperty = (obj, property) =>\n Object.keys(obj).reduce((acc, key) => {\n return key !== property ? { ...acc, [key]: obj[key] } : acc;\n }, {});\n\n/**\n * flattenDeepArrayOfObjects - Flatten a deep array of objects\n *\n * Example:\n * const routesOriginal = [\n * {\n * route: '/users',\n * component: 'UsersPage/UsersPage',\n * subRoutes: [\n * { route: '/users/:id/profile', component: 'UsersProfile/UsersProfile' },\n * ],\n * }\n * ]\n * const routes = flattenDeepArrayOfObjects(routesOriginal, 'subRoutes');\n *\n * Result:\n * [\n * {\n * route: '/users',\n * component: 'UsersPage/UsersPage',\n * },\n * {\n * route: '/users/:id/profile',\n * component: 'UsersProfile/UsersProfile',\n * },\n * ]\n *\n * @param {array} arr The array of objects\n * @param {string} childrenProp The property that contains the children\n */\nexport const flattenDeepArrayOfObjects = function(\n arr,\n childrenProp = 'children'\n) {\n const array = Array.isArray(arr) ? arr : [arr];\n return array.reduce(function(acc, item) {\n acc.push(item);\n if (item[childrenProp]) {\n acc = acc.concat(flattenDeepArrayOfObjects(item[childrenProp]));\n // delete item[childrenProp];\n }\n return acc;\n }, []);\n};\n\n/**\n * untrailingSlashIt - Remove trailing slash from a path if there is one\n *\n * @param {string} str The URL or path\n */\nexport const untrailingSlashIt = str => str.replace(/\\/$/, '');\n\n/**\n * trailingSlashIt - Add a trailing slash to a path if it doesn't have one\n *\n * @param {string} str The URL or path\n */\nexport const trailingSlashIt = str => `${untrailingSlashIt(str)}/`;\n\n/**\n * lowercaseFirstLetter - Convert the first character in a string to lower case\n * Used in normalising endpoint response data objects\n *\n * @param {string} string The string\n */\nexport const lowercaseFirstLetter = string =>\n string.charAt(0).toLowerCase() + string.slice(1);\n","/**\n * WebApp constants\n */\n\nexport const CARD_BALANCE_REQUEST = 'local/WebApp/CARD_BALANCE_REQUEST';\nexport const CARD_BALANCE_SUCCESS = 'local/WebApp/CARD_BALANCE_SUCCESS';\nexport const CARD_BALANCE_ERROR = 'local/WebApp/CARD_BALANCE_ERROR';\nexport const CART_REQUEST = 'local/WebApp/CART_REQUEST';\nexport const CART_SUCCESS = 'local/WebApp/CART_SUCCESS';\nexport const CART_ERROR = 'local/WebApp/CART_ERROR';\nexport const CUSTOMER_REPS_REQUEST = 'local/WebApp/CUSTOMER_REPS_REQUEST';\nexport const CUSTOMER_REPS_SUCCESS = 'local/WebApp/CUSTOMER_REPS_SUCCESS';\nexport const CUSTOMER_REPS_ERROR = 'local/WebApp/CUSTOMER_REPS_ERROR';\nexport const MENU_REQUEST = 'local/WebApp/MENU_REQUEST';\nexport const MENU_SUCCESS = 'local/WebApp/MENU_SUCCESS';\nexport const MENU_ERROR = 'local/WebApp/MENU_ERROR';\nexport const MENU_UPDATE_ROUTES = 'local/WebApp/MENU_UPDATE_ROUTES';\nexport const SETTINGS_REQUEST = 'local/WebApp/SETTINGS_REQUEST';\nexport const SETTINGS_SUCCESS = 'local/WebApp/SETTINGS_SUCCESS';\nexport const SETTINGS_ERROR = 'local/WebApp/SETTINGS_ERROR';\nexport const USER_LOGOUT_REQUEST_CLEANUP =\n 'local/WebApp/USER_LOGOUT_REQUEST_CLEANUP';\nexport const WISHLIST_REQUEST = 'local/WebApp/WISHLIST_REQUEST';\nexport const WISHLIST_SUCCESS = 'local/WebApp/WISHLIST_SUCCESS';\nexport const WISHLIST_ERROR = 'local/WebApp/WISHLIST_ERROR';\nexport const WISHLIST_ADDREMOVE_REQUEST =\n 'local/WebApp/WISHLIST_ADDREMOVE_REQUEST';\n","/**\n * Format the token for storage in state\n *\n * @param {object} data Response data from the login and refresh token endpoints\n * @returns currentUser object\n */\nexport function formatToken(data) {\n const timestamp = Math.floor(new Date().getTime() / 1000);\n const timeDiff = timestamp - data.generated;\n const decodedToken = decodeToken(data.token);\n const permissions = decodedToken\n ? decodedToken['INCREMENTAL.LORI/PERMISSION']\n : null;\n\n return {\n token: data.token,\n tokenData: {\n generatedServer: data.generated,\n expiryServer: data.expiry,\n generatedLocal: timestamp,\n timeDifference: timeDiff,\n tokenExpiry: data.expiry + timeDiff,\n },\n permissions,\n roles: data.roles,\n userId: decodedToken.nameid,\n disableClaiming: !(\n !decodedToken.DisableClaiming || decodedToken.DisableClaiming === 'False'\n ),\n };\n}\n\n/**\n * Store authentication token\n *\n * @param {object} userData User data object as outputted by utils/formatToken\n * @param {boolean} [useSessionStorage=false] Use session or local storage\n */\nexport function storeToken(userData, useSessionStorage = false) {\n if (!!useSessionStorage) {\n sessionStorage.setItem(\n 'auth',\n JSON.stringify({ token: userData.token, tokenData: userData.tokenData })\n );\n localStorage.removeItem('auth');\n } else {\n localStorage.setItem(\n 'auth',\n JSON.stringify({ token: userData.token, tokenData: userData.tokenData })\n );\n sessionStorage.removeItem('auth');\n }\n}\n\n/**\n * Retrieve authentication token\n *\n * @returns {object OR null} Parsed value from session or local storage, or null\n */\nexport function retrieveToken() {\n return (\n (sessionStorage.auth && JSON.parse(sessionStorage.auth)) ||\n (localStorage.auth && JSON.parse(localStorage.auth)) ||\n null\n );\n}\n\n/**\n * Remove authentication token\n */\nexport function removeToken() {\n localStorage.removeItem('auth');\n sessionStorage.removeItem('auth');\n}\n\n/**\n * Decode token\n */\nexport function decodeToken(token) {\n if (!token) return false;\n\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n return JSON.parse(window.atob(base64));\n}\n","/**\n * WebApp reducer\n */\n\nimport {\n CARD_BALANCE_REQUEST,\n CARD_BALANCE_SUCCESS,\n CARD_BALANCE_ERROR,\n CART_REQUEST,\n CART_SUCCESS,\n CART_ERROR,\n CUSTOMER_REPS_REQUEST,\n CUSTOMER_REPS_SUCCESS,\n CUSTOMER_REPS_ERROR,\n MENU_REQUEST,\n MENU_SUCCESS,\n MENU_ERROR,\n MENU_UPDATE_ROUTES,\n SETTINGS_REQUEST,\n SETTINGS_SUCCESS,\n SETTINGS_ERROR,\n USER_LOGOUT_REQUEST_CLEANUP,\n WISHLIST_REQUEST,\n WISHLIST_SUCCESS,\n WISHLIST_ERROR,\n} from './constants';\n\nexport const initialState = {\n cardBalance: undefined,\n cart: undefined,\n customerReps: undefined,\n menu: null,\n routes: (localStorage.routes && JSON.parse(localStorage.routes)) || undefined,\n settings: {},\n wishlist: undefined,\n};\n\nfunction webAppReducer(state = initialState, action) {\n switch (action.type) {\n case CARD_BALANCE_REQUEST:\n if (action.refresh) {\n return state;\n }\n\n return {\n ...state,\n cardBalance: state.cardBalance || 0,\n };\n case CARD_BALANCE_SUCCESS:\n return {\n ...state,\n cardBalance: action.response,\n };\n case CARD_BALANCE_ERROR:\n return {\n ...state,\n cardBalance: initialState.cardBalance,\n };\n case CART_REQUEST:\n if (action.refresh) {\n return state;\n }\n\n return {\n ...state,\n cart: { ...state.cart, isLoading: true } || { isLoading: true },\n };\n case CART_SUCCESS:\n return {\n ...state,\n cart: action.response,\n };\n case CART_ERROR:\n return {\n ...state,\n cart: initialState.cart,\n };\n case CUSTOMER_REPS_REQUEST:\n return {\n ...state,\n customerReps: state.customerReps || {},\n };\n case CUSTOMER_REPS_SUCCESS:\n return {\n ...state,\n customerReps: {\n data: action.response,\n lastUpdated: action.lastUpdated,\n },\n };\n case CUSTOMER_REPS_ERROR:\n return {\n ...state,\n customerReps: initialState.customerReps,\n };\n case MENU_ERROR:\n return {\n ...state,\n menu: initialState.menu,\n };\n case MENU_REQUEST:\n if (action.refresh) {\n return state;\n }\n\n return {\n ...state,\n menu: [],\n };\n case MENU_SUCCESS:\n return {\n ...state,\n menu: action.response,\n };\n case MENU_UPDATE_ROUTES:\n return {\n ...state,\n routes: action.response,\n };\n case SETTINGS_ERROR:\n return {\n ...state,\n settings: initialState.settings,\n };\n case SETTINGS_REQUEST:\n if (action.refresh) {\n return state;\n }\n\n return {\n ...state,\n settings: {\n lastUpdated: null,\n },\n };\n case SETTINGS_SUCCESS:\n return {\n ...state,\n settings: {\n ...state.settings,\n ...action.response,\n lastUpdated: action.lastUpdated,\n },\n };\n case USER_LOGOUT_REQUEST_CLEANUP:\n return {\n ...state,\n cardBalance: initialState.cardBalance,\n cart: initialState.cart,\n customerReps: initialState.customerReps,\n wishlist: initialState.wishlist,\n };\n case WISHLIST_REQUEST:\n if (state.wishlist) {\n return state; // Perf\n }\n\n return {\n ...state,\n wishlist: [],\n };\n case WISHLIST_SUCCESS:\n return {\n ...state,\n wishlist: action.response,\n };\n case WISHLIST_ERROR:\n return {\n ...state,\n wishlist: initialState.wishlist,\n };\n default:\n return state;\n }\n}\n\nexport default webAppReducer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// Style and SEO\nimport { css, up, styled, Grid, Row, Col } from '@smooth-ui/core-sc';\nimport { Link } from 'react-router-dom';\n\nimport { withSettings } from 'containers/WebApp/SettingsContext';\nimport SvgIcon from '_platform/src/components/SvgIcon/SvgIcon';\n\nconst FooterWrapper = styled.footer`\n background-image: linear-gradient(to right, #0c1e33, #2b415a);\n color: #fff;\n font-size: 16px;\n`;\n\nconst FooterContainer = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n padding: 2rem 0 1rem 0;\n ${up(\n 'md',\n css`\n flex-direction: row;\n justify-content: space-between;\n `\n )};\n\n .logo-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: center;\n }\n\n ul {\n padding-left: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n justify-content: center;\n ${up(\n 'md',\n css`\n flex-direction: row;\n `\n )};\n }\n li {\n font-size: 16px;\n color: #fff;\n text-align: center;\n padding: 5px 0;\n ${up(\n 'md',\n css`\n border-right: 1px solid #fff;\n height: 25px;\n padding: inherit;\n text-align: left;\n &:nth-last-child(1) {\n border-right: none;\n }\n `\n )};\n a {\n color: #fff;\n font-weight: normal;\n text-decoration: none;\n padding: 0.1rem 1rem;\n &:hover {\n text-decoration: underline;\n }\n\n ${up(\n 'md',\n css`\n padding: 0.1rem 0.65rem;\n `\n )};\n\n ${up(\n 'lg',\n css`\n padding: 0.1rem 1rem;\n `\n )};\n }\n }\n`;\n\nconst Footer = ({ siteName }) => (\n \n \n
\n \n
\n\n
    \n
  • \n Terms & Conditions\n
  • \n
  • \n Privacy Policy\n
  • \n
  • \n Contact Us\n
  • \n
  • \n FAQs\n
  • \n
  • \n Sitemap\n
  • \n
\n

\n © HP Commercial Club {new Date().getFullYear()}\n

\n
\n \n \n \n Must be a sales person at an invited managed business partner to\n participate.\n
\n The HP Mastercard® is issued by EML Payment Solutions Limited ABN\n 30 131 436 532 AFSL 404131 pursuant to license by Mastercard\n Asia/Pacific Pte. Ltd\n \n
\n
\n
\n);\n\nFooter.propTypes = {\n siteName: PropTypes.string,\n};\n\nFooter.defaultProps = {\n siteName: 'Lori Program Default',\n};\n\nexport default withSettings(Footer);\n","/**\n * Lori Footer\n */\n\nimport React from 'react';\nimport { styled } from '@smooth-ui/core-sc';\n\nconst StyledLoriFooter = styled.div`\n background-color: #141f2d;\n color: #fff;\n flex-shrink: 0;\n font-size: 14px;\n padding: 0.5em;\n text-align: center;\n width: 100%;\n\n a {\n color: #f4bd19;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst LoriFooter = () => (\n \n Powered by Lori from{' '}\n \n Incremental\n \n \n);\n\nexport default LoriFooter;\n","/**\n * Scroll to top on route change\n *\n * Based on: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n *\n * Modified to exclude routes with hashes, as those should scroll to the anchor,\n * even though those are most likely to come from external links.\n */\n\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nclass ScrollToTop extends Component {\n componentDidUpdate(prevProps) {\n if (\n this.props.location !== prevProps.location &&\n this.props.location.hash === ''\n ) {\n window.scrollTo(0, 0);\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nScrollToTop.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object.isRequired,\n};\n\nScrollToTop.defaultProps = {\n children: undefined,\n};\n\nexport default withRouter(ScrollToTop);\n","/**\n * WebApp\n *\n * This is the main container for the project.\n */\n\n// Core imports\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\nimport LoadingBar from 'react-redux-loading-bar';\nimport { cssTransition, ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.min.css';\nimport { CloudinaryContext } from 'cloudinary-react';\n\n// Style, SEO and settings\nimport Helmet from 'react-helmet';\nimport { styled, withTheme } from '@smooth-ui/core-sc';\nimport GlobalStylesApp from 'theme/globalStylesApp';\n\n// Data\nimport injectReducer from '_platform/src/utils/injectReducer';\nimport injectSaga from '_platform/src/utils/injectSaga';\nimport {\n cardBalanceRequest,\n cartRequest,\n menuRequest,\n settingsRequest,\n wishlistRequest,\n} from './actions';\nimport reducer from './reducer';\nimport saga from './saga';\nimport {\n selectCardBalance,\n selectCart,\n selectMenu,\n selectRoutes,\n selectSettings,\n selectSettingsNextClaimingPeriod,\n selectSettingsPointsUOM,\n selectSettingsProgram,\n selectSettingsSalesUOMs,\n selectWishlist,\n} from './selectors';\nimport { SettingsProvider } from './SettingsContext';\n\n// Additional Components/Containers\nimport { trailingSlashIt } from '_platform/src/utils/utilities';\nimport LoadAsync from '_platform/src/utils/LoadAsync';\nimport Routes from './Routes';\nimport Footer from '../../components/CustomComponents/CustomFooter/Footer';\nimport LoriFooter from '_platform/src/components/LoriFooter/LoriFooter';\nimport ScrollToTop from '_platform/src/components/ScrollToTop/ScrollToTop';\n\nconst Header = LoadAsync(() =>\n import(\n /* webpackChunkName: \"header\" */ 'components/CustomComponents/CustomHeader/Header'\n )\n);\nconst HeaderNav = LoadAsync(() =>\n import(\n /* webpackChunkName: \"headerNav\" */ 'components/CustomComponents/CustomHeaderNav/HeaderNav'\n )\n);\nconst Welcome = LoadAsync(() =>\n import(/* webpackChunkName: \"welcome\" */ 'containers/Welcome/Welcome')\n);\n\nconst AppWrapper = styled.div`\n /* for child elements */\n display: flex;\n flex-direction: column;\n\n /* sticky footer */\n flex: 1 0 auto;\n`;\n\nconst PageWrapper = styled.div`\n /* for child elements */\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n`;\n\nconst ToastifyTransition = cssTransition({\n enter: 'Toastify__slide-enter--top-right',\n exit: 'Toastify__slide-exit--top-right',\n duration: [300, 600],\n});\n\n/*const initChatbot = () => {\n if (typeof window.setXclamtionBotConfig === 'function') {\n window.setXclamtionBotConfig({\n agent_title: 'HP Commercial Club Agent',\n agent_id: '5d2e96ac-855e-420a-aeda-4bc2498eecca',\n session_ttl: 3600,\n auto_open_chat: true,\n auto_open_delay: 2000,\n });\n }\n};*/\n\nclass WebApp extends Component {\n componentDidMount() {\n // If the menu is not present, and the user does not have a stored token,\n // refresh the menu.\n // If the user has a token, the menu will be updated in cDU below via token refresh.\n // Prevents unnecessary initial request\n if (!this.props.menu && !this.props.currentUser.token) {\n this.props.onMenuRequest();\n }\n }\n\n componentDidUpdate(prevProps) {\n // On change of permissions, request the menu (login, token refresh)\n // Won't run if the user has just logged out (as the permissions prop is missing),\n // so we handle that in the logout saga\n if (\n (this.props.currentUser.permissions &&\n this.props.currentUser.permissions !==\n prevProps.currentUser.permissions) ||\n this.props.currentUser.userId !== prevProps.currentUser.userId\n ) {\n this.props.onMenuRequest(true);\n\n // Request the application settings\n // Need to be authenticated to access the endpoints\n // Should this change, need to copy to cDM as well, and remove the\n // undefined condition from this one.\n if (this.props.settings.lastUpdated === undefined) {\n this.props.onSettingsRequest();\n }\n\n // Fetch the Cart\n // Do not skip fetch using `settingsApp.cartDisabled` as the cart details\n // are used for the welcome module\n if (\n this.props.cart === undefined ||\n this.props.cart.lastUpdated === undefined\n ) {\n this.props.onCartRequest();\n }\n\n // Fetch the Wishlist\n // Can skip fetching via settingsApp.wishlistDisabled\n // We're not checking the settings from API as the request would take too long to fetch, causing needless re-renders.\n // The wishlist button / functionality will be disabled/hidden with either of the settings though.\n if (\n !this.props.theme.settingsApp.wishlistDisabled &&\n (this.props.wishlist === undefined ||\n this.props.wishlist.lastUpdated === undefined)\n ) {\n this.props.onWishlistRequest();\n }\n\n // Fetch the Card\n // Do not skip fetch using `settingsApp.cartDisabled` as the cart details\n // are used for the welcome module\n if (this.props.cardBalance === undefined) {\n this.props.onCardBalanceRequest();\n }\n\n /* chatbot\n const script = document.createElement('script');\n script.src =\n 'https://storage.googleapis.com/xclamation-assets-public/vertex-chat-ui/releases/v2.0/bot.js';\n script.type = 'module';\n document.body.appendChild(script);*/\n }\n }\n\n render() {\n const { theme } = this.props;\n\n return (\n \n \n \n \n \n \n \n \n
\n {trailingSlashIt(this.props.location.pathname) !==\n '/login/' && (\n \n )}\n
\n {/*\n Prevent unnecessary re-renders of the Welcome container, and ensure the user is logged in\n Cart is fetched for every logged in user via componentDidUpdate above\n */}\n {this.props.cart && !this.props.cart.isLoading && (\n \n )}\n\n \n \n \n
\n