{"version":3,"sources":["containers/HomePage/HomePage.js","containers/HomePage/images/Logo-HomePageHeader@2x.png","containers/HomePage/images/HomePage-CarImage@2x.png","containers/HomePage/images/HomePage-TravelImage@2x.png","containers/HomePage/images/RedIcon-Solo@2x.png","containers/HomePage/images/BronzeIcon-Solo@2x.png","containers/HomePage/images/SilverIcon-Solo@2x.png","containers/HomePage/images/GoldIcon-Solo@2x.png","containers/HomePage/images/PlatIcon-Solo@2x.png","../node_modules/memoize-one/dist/memoize-one.esm.js","_platform/src/components/MessageBox/MessageBox.js","_platform/src/utils/checkPermissions.js","_platform/src/utils/checkRoles.js","_platform/src/utils/PrivateComponent.js","components/CustomComponents/Backgrounds/BgImage.js","components/CustomComponents/Backgrounds/images/Header@2x.png","components/CustomComponents/Backgrounds/images/Header-Home.png","components/CustomComponents/Button/Button.js","components/CurrentTier/CurrentTier.js"],"names":["ReoRewardsImg","styled","img","_templateObject","down","css","_templateObject2","HomeH1","h1","_templateObject3","Underline","span","_templateObject4","AlternateContainer","div","_templateObject5","Tiers","_templateObject6","_templateObject7","Bonus","Col","_templateObject8","_templateObject9","_templateObject10","MoreDetailsText","p","_templateObject11","withSettings","_ref","settings","react__WEBPACK_IMPORTED_MODULE_1___default","a","createElement","react_helmet__WEBPACK_IMPORTED_MODULE_5___default","_platform_src_utils_PrivateComponent__WEBPACK_IMPORTED_MODULE_7__","redirectOnError","pathname","settingsApp","loginPagePath","_components_CustomComponents_Backgrounds_BgImage__WEBPACK_IMPORTED_MODULE_9__","homeBg","className","_smooth_ui_core_sc__WEBPACK_IMPORTED_MODULE_4__","justifyContent","md","src","ReoRewardsLogo","alt","_components_CurrentTier_CurrentTier__WEBPACK_IMPORTED_MODULE_18__","RedIcon","BronzeIcon","SilverIcon","GoldIcon","PlatinumIcon","xs","sm","travelImg","_components_CustomComponents_Button_Button__WEBPACK_IMPORTED_MODULE_17__","to","as","Link","carImg","react_router_dom__WEBPACK_IMPORTED_MODULE_2__","href","module","exports","__webpack_require__","safeIsNaN","Number","isNaN","value","areInputsEqual","newInputs","lastInputs","length","i","first","second","__webpack_exports__","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","_i","arguments","this","apply","StyledAlert","Alert","Title","Multiline","MessageBox","children","_ref$title","title","undefined","_ref$variant","variant","defaultProps","checkPermissions","currentUser","requiredPermissions","Array","isArray","permissions","some","item","indexOf","propTypes","PropTypes","object","isRequired","array","checkPermissionsMemoized","memoizeOne","checkRoles","requiredRoles","roles","checkRolesMemoized","PrivateComponent","_this$props","props","deniedPermissions","deniedRoles","displayError","errorMessage","publicOnly","tempAuthAllowed","user","_this$props2","currentUserTemp","UnauthorisedComponent","react_default","RedirectOnErrorComponent","react_router","push","userObject","token","userId","Component","mapStateToProps","createStructuredSelector","selectCurrentUser","selectCurrentUserTemp","connect","BgImage","thd","BgHeaderHome","BgHeader","bool","Box","theme","buttonBlockSpacerTop","buttonBlockSpacerBottom","buttonBlockHasSeparator","concat","buttonBlockSpacerInner","buttonSeparatorColor","StyledButton","Button","disabled","customInputBtnFontWeight","minWidth","inputBtnMinWidth","color","inputBtnColor","fontWeight","inputBtnFontWeight","borderColor","inputBtnBorderColor","borderRadius","inputBtnBorderRadius","bgColor","inputBtnBgColor","hoverBgColor","inputBtnHoverBgColor","hoverColor","controlFocus","th","string","CurrentTierContainer","withTheme","tierName","target","style","border","tierColors","toLowerCase"],"mappings":"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","file":"static/js/homepage.d604c1ec.chunk.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\n// Style and SEO\nimport { Col, Grid, Row, styled, down, css } from '@smooth-ui/core-sc';\nimport Helmet from 'react-helmet';\n\nimport { withSettings } from '../../containers/WebApp/SettingsContext';\nimport PrivateComponent from '_platform/src/utils/PrivateComponent';\n\nimport ReoRewardsLogo from './images/Logo-HomePageHeader@2x.png';\n\nimport BgImage from '../../components/CustomComponents/Backgrounds/BgImage';\n\nimport carImg from './images/HomePage-CarImage@2x.png';\nimport travelImg from './images/HomePage-TravelImage@2x.png';\n\nimport RedIcon from './images/RedIcon-Solo@2x.png';\nimport BronzeIcon from './images/BronzeIcon-Solo@2x.png';\nimport SilverIcon from './images/SilverIcon-Solo@2x.png';\nimport GoldIcon from './images/GoldIcon-Solo@2x.png';\nimport PlatinumIcon from './images/PlatIcon-Solo@2x.png';\n\nimport Button from '../../components/CustomComponents/Button/Button';\nimport CurrentTier from '../../components/CurrentTier/CurrentTier';\n\nconst ReoRewardsImg = styled.img`\n max-height: 150px;\n margin: 1em auto;\n padding: 0 1em;\n display: block;\n ${down(\n 'md',\n css`\n max-height: 100px;\n `\n )};\n`;\n\nconst HomeH1 = styled.h1`\n margin: 0.4em 0;\n font-size: 34px;\n`;\n\nconst Underline = styled.span`\n text-decoration: underline;\n`;\n\nconst AlternateContainer = styled.div`\n background-color: rgba(148, 156, 161, 0.2);\n padding: 2em 0;\n text-align: center;\n width: 100%;\n`;\n\nconst Tiers = styled.div`\n display: flex;\n width: 80%;\n margin: 0 auto;\n align-items: flex-end;\n justify-content: center;\n img {\n margin: 0 auto;\n }\n p {\n margin: 0;\n font-size: 1.3em;\n }\n ${down(\n 'md',\n css`\n flex-wrap: wrap;\n & > div {\n flex-basis: 50%;\n display: flex;\n flex-direction: column;\n }\n .red {\n width: 50%;\n }\n .bronze {\n width: 60%;\n }\n .silver {\n width: 70%;\n }\n .gold {\n width: 80%;\n }\n .platinum {\n width: 90%;\n }\n `\n )};\n`;\n\nconst Bonus = styled(Col)`\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n .bonus__image {\n display: block;\n img {\n display: block;\n }\n }\n .bonus__image--travel {\n width: 88%;\n margin: 0 auto;\n ${down(\n 'md',\n css`\n width: 80%;\n `\n )};\n }\n .bonus__image--car {\n ${down(\n 'md',\n css`\n margin-right: 11%;\n `\n )};\n }\n .bonus__text {\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: flex-start;\n }\n h3 {\n font-size: 18px;\n font-weight: 550;\n font-variation-settings: 'wght' 550;\n margin-bottom: 0;\n padding-left: 2.2rem;\n padding-right: 2.2rem;\n padding-top: 1.2rem;\n }\n p {\n padding-left: 1rem;\n padding-right: 1rem;\n &:nth-last-child(1) {\n flex: 1;\n }\n }\n`;\n\nconst MoreDetailsText = styled.p`\n font-size: 1.13em;\n`;\n\nconst HomePage = ({ settings }) => {\n return (\n
\n \n {/* */}\n \n\n \n \n \n \n \n \n \n Welcome to AUSREO's exclusive loyalty program, REOREWARDS!\n \n \n

\n We're delighted to have you join us on your personal journey\n as a REOREWARDS program member.\n

\n\n

\n This is all about giving you something back in return for your\n loyalty to AUSREO.\n

\n\n

\n To earn rewards you will need to achieve simple sales\n milestones, moving through tiers from Red through to Platinum.\n The more you spend, the quicker you move through the five\n program tiers. The higher the tier, the more rewards and\n benefits you receive in return for your spend. You need to\n reach Bronze tier, which is set at $10,001, to start earning\n reward value that you can exchange for an extensive range of\n products from the onlne rewards catalogue.\n

\n\n \n
\n \"Red\n

Red

\n
\n\n
\n \n

Bronze

\n
\n\n
\n \n

Silver

\n
\n\n
\n \"Gold\n

Gold

\n
\n\n
\n \n

Platinum

\n
\n
\n \n
\n
\n \n \n \n \n
\n \"\"\n
\n
\n

\n The opportunities don't stop there. The Top 10 performers\n with the highest eligible sales achieved across the\n Platinum tier will be given the opportunity of a lifetime\n with the REOREWARDS 'Ultimate Getaway'. More details will\n be released throughout the year.\n

\n \n
\n
\n \n
\n \"\"\n
\n
\n

\n That's not all! Silver, Gold and Platinum tier are\n eligible for the REOREWARDS 'Major Prize Draw'. One entry\n is earned with every $100k* of eligible sales. Entries are\n capped by tier. Yes, one of you will win a high spec Ford\n Ranger Raptor worth up to $97k incl gst. *Full Terms and\n Conditions apply.\n

\n \n
\n
\n
\n
\n
\n\n \n \n \n \n For more details about how the REOREWARDS program can benefit\n you, click on the About page and read\n more or visit the FAQs tab for all your\n unanswered questions.\n
\n
\n *Prize Draw will take place on 30 September 2025 at\n Incremental Marketing and the winner will be published on 15\n October 2025. Permit Numbers: NSW TP/03780; SA T24/1489; ACT\n TP24/1948 Full Terms & Conditions apply,{' '}\n click here\n
\n \n
\n
\n
\n \n
\n );\n};\n\nHomePage.propTypes = {\n settings: PropTypes.object.isRequired,\n};\n\nexport default withSettings(HomePage);\n","module.exports = __webpack_public_path__ + \"static/media/Logo-HomePageHeader@2x.4b5f03c6.png\";","module.exports = __webpack_public_path__ + \"static/media/HomePage-CarImage@2x.bb5b481b.png\";","module.exports = __webpack_public_path__ + \"static/media/HomePage-TravelImage@2x.05ec081f.png\";","module.exports = __webpack_public_path__ + \"static/media/RedIcon-Solo@2x.e003daf5.png\";","module.exports = __webpack_public_path__ + \"static/media/BronzeIcon-Solo@2x.a4f9bf64.png\";","module.exports = __webpack_public_path__ + \"static/media/SilverIcon-Solo@2x.e2ee8f74.png\";","module.exports = __webpack_public_path__ + \"static/media/GoldIcon-Solo@2x.060afcad.png\";","module.exports = __webpack_public_path__ + \"static/media/PlatIcon-Solo@2x.1e041593.png\";","var safeIsNaN = Number.isNaN || function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n};\n\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n\n return false;\n}\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\nexport default memoizeOne;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Alert, styled } from '@smooth-ui/core-sc';\n\nconst StyledAlert = styled(Alert)`\n margin-top: 1rem;\n`;\n\nexport const Title = styled.div`\n font-weight: bold;\n`;\n\nexport const Multiline = styled.div`\n white-space: pre-line;\n`;\n\nconst MessageBox = ({ children, title = undefined, variant = 'primary' }) => {\n return (\n \n {title ? {title} : null}\n {children}\n \n );\n};\n\nMessageBox.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string,\n variant: PropTypes.string,\n};\n\nMessageBox.defaultProps = {\n title: undefined,\n variant: 'primary',\n};\n\nexport default MessageBox;\n","/**\n * Check Permissions - Check if the user has ANY of the required permissions\n *\n * @param {object} currentUser The user object containing the permissions property\n * @param {array} requiredPermissions The array of required permissions\n *\n */\n\nimport memoizeOne from 'memoize-one';\nimport PropTypes from 'prop-types';\n\nconst checkPermissions = (currentUser, requiredPermissions) => {\n if (\n !requiredPermissions ||\n !Array.isArray(requiredPermissions) ||\n !currentUser ||\n !currentUser.permissions ||\n !Array.isArray(currentUser.permissions)\n )\n return false;\n\n return currentUser.permissions.some(\n item => requiredPermissions.indexOf(item) >= 0\n );\n};\n\ncheckPermissions.propTypes = {\n currentUser: PropTypes.object.isRequired,\n requiredPermissions: PropTypes.array.isRequired,\n};\n\nconst checkPermissionsMemoized = memoizeOne(checkPermissions);\n\nexport default checkPermissionsMemoized;\n","/**\n * Check Roles - Check if the user has ANY of the required roles\n *\n * @param {object} currentUser The user object containing the roles property\n * @param {array} requiredRoles The array of required roles\n *\n */\n\nimport memoizeOne from 'memoize-one';\nimport PropTypes from 'prop-types';\n\nconst checkRoles = (currentUser, requiredRoles) => {\n if (\n !requiredRoles ||\n !Array.isArray(requiredRoles) ||\n !currentUser ||\n !currentUser.roles ||\n !Array.isArray(currentUser.roles)\n )\n return false;\n\n return currentUser.roles.some(item => requiredRoles.indexOf(item) >= 0);\n};\n\ncheckRoles.propTypes = {\n currentUser: PropTypes.object.isRequired,\n requiredRoles: PropTypes.array.isRequired,\n};\n\nconst checkRolesMemoized = memoizeOne(checkRoles);\n\nexport default checkRolesMemoized;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\nimport { Redirect } from 'react-router-dom';\nimport {\n selectCurrentUser,\n selectCurrentUserTemp,\n} from '../containers/App/selectors'; // _platform\nimport checkPermissions from '../utils/checkPermissions'; // _platform\nimport checkRoles from '../utils/checkRoles'; // _platform\nimport MessageBox from '../components/MessageBox/MessageBox'; // _platform\n\n/**\n * Private Component - HoC to determine whether a component should be displayed\n * based on authentication, permissions and/or roles\n *\n * TODO: Extend with prop to supply function to determine permission `verifyFn` similar to LoadAsync\n *\n * The `user` prop can be either currentUser or currentUserTemp, depending on what the parent component determines is applicable.\n * If the `user` prop is not supplied, then this component will retrieve the user data via the App selectors.\n * The `tempAuthAllowed` prop determines whether currentUserTemp can be used\n *\n * `publicOnly` prop inverts the check so that the child component is only displayed to unauthenticated users (use `PublicComponent`)\n *\n * `deniedPermissions` and `deniedRoles` props take precedence over `requiredPermissions` and `requiredRoles`.\n * For example, if the props are `requiredRoles={['Administrator']} deniedRoles={['Administrator']}`,\n * users with the `Administrator` role will be denied access to the child component.\n *\n * If the checks determine that the access should be denied to the child component:\n * - By default the child component is skipped silently\n * - If the `redirectOnError` prop is supplied, the user will be redirected to the supplied local path\n * - Otherwise, if the `displayError` prop is supplied, the user will be shown an error\n * which can be customised via the `errorMessage` prop\n */\n\nclass PrivateComponent extends Component {\n render() {\n const {\n deniedPermissions,\n deniedRoles,\n displayError,\n errorMessage,\n publicOnly,\n redirectOnError,\n requiredPermissions,\n requiredRoles,\n tempAuthAllowed,\n user,\n } = this.props;\n const { currentUser, currentUserTemp } = this.props;\n\n const UnauthorisedComponent = displayError ? (\n \n {errorMessage || 'Unauthorised'}\n \n ) : null;\n\n const RedirectOnErrorComponent = redirectOnError ? (\n \n ) : null;\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 && user.userId) {\n userObject = user;\n } else if (tempAuthAllowed && currentUserTemp && currentUserTemp.token) {\n userObject = currentUserTemp;\n } else {\n userObject = currentUser;\n }\n\n // Invert the check if the publicOnly prop is supplied - used in PublicComponent\n if (publicOnly) {\n return !userObject.token\n ? this.props.children\n : RedirectOnErrorComponent || UnauthorisedComponent;\n }\n\n // Check granular permissions if supplied\n if (\n !!userObject.token &&\n ((deniedPermissions && checkPermissions(userObject, deniedPermissions)) ||\n (requiredPermissions &&\n !checkPermissions(userObject, requiredPermissions)))\n ) {\n return RedirectOnErrorComponent || UnauthorisedComponent;\n }\n\n // Check granular roles if supplied\n if (\n !!userObject.token &&\n ((deniedRoles && checkRoles(userObject, deniedRoles)) ||\n (requiredRoles && !checkRoles(userObject, requiredRoles)))\n ) {\n return RedirectOnErrorComponent || UnauthorisedComponent;\n }\n\n return !!userObject.token\n ? this.props.children\n : RedirectOnErrorComponent || UnauthorisedComponent;\n }\n}\n\nPrivateComponent.propTypes = {\n children: PropTypes.node.isRequired,\n currentUser: PropTypes.object.isRequired,\n currentUserTemp: PropTypes.object.isRequired,\n deniedPermissions: PropTypes.array,\n deniedRoles: PropTypes.array,\n displayError: PropTypes.bool,\n errorMessage: PropTypes.string,\n publicOnly: PropTypes.bool, // Inverts PrivateComponent - displays component to unauthenticated users only. Used by PublicComponent wrapper\n redirectOnError: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n requiredPermissions: PropTypes.array,\n requiredRoles: PropTypes.array,\n tempAuthAllowed: PropTypes.bool,\n user: PropTypes.object,\n};\n\nPrivateComponent.defaultProps = {\n deniedPermissions: undefined,\n deniedRoles: undefined,\n displayError: false,\n errorMessage: undefined,\n publicOnly: false,\n redirectOnError: undefined,\n requiredPermissions: undefined,\n requiredRoles: undefined,\n tempAuthAllowed: false,\n user: {},\n};\n\nconst mapStateToProps = createStructuredSelector({\n currentUser: selectCurrentUser(),\n currentUserTemp: selectCurrentUserTemp(),\n});\n\nexport default connect(\n mapStateToProps,\n null\n)(PrivateComponent);\n","import PropTypes from 'prop-types';\nimport { styled, thd } from '@smooth-ui/core-sc';\n\nimport BgHeader from './images/Header@2x.png';\nimport BgHeaderHome from './images/Header-Home.png';\n\nconst BgImage = styled.div`\n align-items: center;\n background-color: ${thd('primary', '#003E7E')};\n color: #fff;\n p a {\n color: #fff;\n font-weight: bold;\n &:hover,&:focus {\n text-decoration: none;\n }\n }\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0;\n width: 100%;\n background-image: url('${props => (props.homeBg ? BgHeaderHome : BgHeader)}');\n background-position: top center;\n background-size: contain;\n background-repeat: no-repeat;\n`;\n\nBgImage.propTypes = {\n homeBg: PropTypes.bool,\n};\n\nexport default BgImage;\n","module.exports = __webpack_public_path__ + \"static/media/Header@2x.a8ca1eab.png\";","module.exports = __webpack_public_path__ + \"static/media/Header-Home.802929a3.png\";","/**\n * Button\n */\nimport PropTypes from 'prop-types';\nimport { Box, Button, controlFocus, styled, th } from '@smooth-ui/core-sc';\n\n// Button Block\nexport const ButtonBlock = styled(Box)`\n margin-top: ${props => props.theme.buttonBlockSpacerTop || '2rem'};\n margin-bottom: ${props => props.theme.buttonBlockSpacerBottom || '1rem'};\n\n ${props =>\n !!props.theme.buttonBlockHasSeparator\n ? `\n padding-top: ${props.theme.buttonBlockSpacerInner || '1.5rem'};\n border-top: 1px solid ${props.theme.buttonSeparatorColor || '#dee2e6'};\n `\n : null};\n`;\n\nconst StyledButton = styled(Button)`\n ${props => props.disabled && `cursor: not-allowed;`}\n ${props =>\n props.theme.customInputBtnFontWeight &&\n `font-weight: ${props.theme.customInputBtnFontWeight};`}\n padding: .175rem 1.7rem;\n font-size: 20px;\n margin-top: 1px;\n min-width: ${props => props.minWidth || props.theme.inputBtnMinWidth};\n text-align: center;\n color: ${props => props.color || props.theme.inputBtnColor};\n font-weight: ${props => props.fontWeight || props.theme.inputBtnFontWeight};\n border-color: ${props =>\n props.borderColor || props.theme.inputBtnBorderColor};\n border-width: 1px;\n border-style: solid;\n margin: auto;\n margin-bottom: 2rem;\n border-radius: ${props =>\n props.borderRadius || props.theme.inputBtnBorderRadius};\n background-color: ${props => props.bgColor || props.theme.inputBtnBgColor};\n &:disabled {\n opacity: 0.5;\n }\n &:not(:disabled):focus,\n &:not(:disabled):hover {\n background-color: ${props =>\n props.hoverBgColor || props.theme.inputBtnHoverBgColor};\n color: ${props => props.hoverColor || props.theme.inputBtnColor};\n }\n &:focus {\n ${p => controlFocus(th(p.variant)(p))(p)}\n }\n`;\n\nStyledButton.propTypes = {\n disabled: PropTypes.bool,\n minWidth: PropTypes.string,\n color: PropTypes.string,\n fontWeight: PropTypes.string,\n borderRadius: PropTypes.string,\n bgColor: PropTypes.string,\n hoverBgColor: PropTypes.string,\n theme: PropTypes.object,\n};\nexport default StyledButton;\n","import React from 'react';\nimport { styled, down, css, withTheme } from '@smooth-ui/core-sc';\n\nimport { withSettings } from 'containers/WebApp/SettingsContext';\n\nconst CurrentTierContainer = styled.p`\n border: 5px white solid;\n border-radius: 2.5em;\n line-height: 1.2;\n text-transform: uppercase;\n font-size: 1.35em;\n padding: 0.8em 2em;\n display: inline-block;\n font-weight: bold;\n margin-top: 0;\n ${down(\n 'sm',\n css`\n padding: 0.8em;\n font-size: 1.2em;\n `\n )};\n`;\n\nconst CurrentTier = props => {\n const tierName =\n props.settings.target && props.settings.target.tierName\n ? props.settings.target.tierName\n : 'Red';\n\n return (\n \n You are{' '}\n \n {tierName}\n {' '}\n Tier Status\n
\n Spend, earn rewards and reap the benefits!\n \n );\n};\n\nexport default withTheme(withSettings(CurrentTier));\n"],"sourceRoot":""}