{"version":3,"sources":["components/CustomComponents/Banners/HomeBanner.js","containers/HomePage/HomePage.js","containers/HomePage/images/Icon1@2x.png","containers/HomePage/images/Icon2@2x.png","containers/HomePage/images/Icon3@2x.png","containers/HomePage/images/Icon4@2x.png","containers/HomePage/images/Icon5@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/Banners/images/HomeHeader-bg-mobile-@1x.png","components/CustomComponents/Banners/images/HomeHeader-bg-mobile-@2x.png","components/CustomComponents/Banners/images/Header-bg-tablet-@1x.png","components/CustomComponents/Banners/images/Header-bg-tablet-@2x.png","components/CustomComponents/Banners/images/Header-BG@1x.jpg","components/CustomComponents/Banners/images/Header-BG@2x.jpg"],"names":["BannerWrapper","styled","div","_templateObject","BannerContainer","_templateObject2","bannerMobile","thd","bannerMobile2x","up","css","_templateObject3","bannerTablet","bannerTablet2x","_templateObject4","bannerDesktop","bannerDesktop2x","HomeBanner","props","react_default","a","createElement","className","smooth_ui_core_sc_es","justifyContent","alignItems","xs","pageTitle","StatementProvider","LoadAsync","__webpack_require__","e","then","bind","GatewayGraph","Promise","all","StatementStyles","HomePage_templateObject","fetchStatements","endpoint","section","HomePage","_ref","settings","userProfile","Helmet_default","PrivateComponent","redirectOnError","pathname","settingsApp","loginPagePath","Banners_HomeBanner","Fragment","data","firstName","md","displayError","fetch","render","_ref2","statement","incentive","gatewayTarget","LoadingAnimation","lg","src","Icon1","alt","width","Icon2","Icon3","Icon4","Icon5","defaultProps","undefined","mapStateToProps","createStructuredSelector","selectUserProfile","withConnect","connect","dispatch","onUserProfileRequest","userProfileRequest","compose","withSettings","module","exports","p","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","_ref$variant","variant","react__WEBPACK_IMPORTED_MODULE_1___default","checkPermissions","currentUser","requiredPermissions","Array","isArray","permissions","some","item","indexOf","propTypes","PropTypes","object","isRequired","array","checkPermissionsMemoized","memoizeOne","checkRoles","requiredRoles","roles","checkRolesMemoized","_this$props","deniedPermissions","deniedRoles","errorMessage","publicOnly","tempAuthAllowed","user","_this$props2","currentUserTemp","UnauthorisedComponent","RedirectOnErrorComponent","react_router","push","to","userObject","token","userId","Component","selectCurrentUser","selectCurrentUserTemp"],"mappings":"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","file":"static/js/homepage.513d5752.chunk.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Grid, Row, Col, css, styled, thd, up } from '@smooth-ui/core-sc';\n\nimport bannerMobile from './images/HomeHeader-bg-mobile-@1x.png';\nimport bannerMobile2x from './images/HomeHeader-bg-mobile-@2x.png';\nimport bannerTablet from './images/Header-bg-tablet-@1x.png';\nimport bannerTablet2x from './images/Header-bg-tablet-@2x.png';\nimport bannerDesktop from './images/Header-BG@1x.jpg';\nimport bannerDesktop2x from './images/Header-BG@2x.jpg';\n\nconst BannerWrapper = styled.div`\n position: relative;\n z-index: -1;\n`;\n\nconst BannerContainer = styled.div`\n background-image: url(${bannerMobile});\n align-items: center;\n background-color: ${thd('secondary', '#00A7AD')};\n background-position: center bottom;\n background-repeat: no-repeat;\n background-size: cover;\n display: flex;\n min-height: 435px;\n justify-content: flex-start;\n\n @media only screen and (min-device-pixel-ratio: 1.5),\n only screen and (min-resolution: 144dpi),\n only screen and (min-resolution: 1.5dppx) {\n background-image: url(${bannerMobile2x});\n }\n\n .banner__title {\n color: #fff;\n margin: 0;\n padding: 0;\n position: relative;\n text-align: center;\n }\n .banner {\n min-height: 400px;\n }\n ${up(\n 'sm',\n css`\n background-image: url(${bannerTablet});\n background-position: left center;\n\n @media only screen and (min-device-pixel-ratio: 1.5),\n only screen and (min-resolution: 144dpi),\n only screen and (min-resolution: 1.5dppx) {\n background-image: url(${bannerTablet2x});\n }\n `\n )}\n ${up(\n 'lg',\n css`\n background-image: url(${bannerDesktop});\n background-position: center center;\n\n @media only screen and (min-device-pixel-ratio: 1.5),\n only screen and (min-resolution: 144dpi),\n only screen and (min-resolution: 1.5dppx) {\n background-image: url(${bannerDesktop2x});\n }\n `\n )}\n`;\n\nconst HomeBanner = props => (\n \n \n \n \n \n
{props.pageTitle}
\n \n
\n
\n
\n
\n);\n\nHomeBanner.propTypes = {\n pageTitle: PropTypes.object.isRequired,\n};\n\nexport default HomeBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// Style and SEO\nimport { Col, Grid, Row, styled, thd } from '@smooth-ui/core-sc';\nimport Helmet from 'react-helmet';\nimport { userProfileRequest } from '_platform/src/containers/App/actions';\nimport { selectUserProfile } from '_platform/src/containers/App/selectors';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\nimport LoadingAnimation from '_platform/src/components/Loading/LoadingAnimation';\n\nimport { withSettings } from '../../containers/WebApp/SettingsContext';\nimport PrivateComponent from '_platform/src/utils/PrivateComponent';\nimport HomeBanner from 'components/CustomComponents/Banners/HomeBanner';\n\nimport Icon1 from './images/Icon1@2x.png';\nimport Icon2 from './images/Icon2@2x.png';\nimport Icon3 from './images/Icon3@2x.png';\nimport Icon4 from './images/Icon4@2x.png';\nimport Icon5 from './images/Icon5@2x.png';\nimport LoadAsync from '_platform/src/utils/LoadAsync';\nconst StatementProvider = LoadAsync(() =>\n import(\n /* webpackChunkName: \"statementProvider\" */ '../StatementProvider/StatementProvider'\n )\n);\nconst GatewayGraph = LoadAsync(() =>\n import(\n /* webpackChunkName: \"gatewayGraph\" */ '../../components/StatementGateway/GatewayGraph'\n )\n);\n\nconst StatementStyles = styled.div`\n text-align: center;\n\n section:not(:last-of-type) {\n border-bottom: 1px solid ${thd('statementHighlightColor', '#f4bd19')};\n padding-bottom: 1.25rem;\n }\n\n .incentive-tiers {\n border: 2px solid ${thd('primary', '#000')};\n margin-top: 1em;\n padding: 0.5em;\n }\n\n .incentive-tiers-targets {\n display: flex;\n justify-content: space-around;\n }\n\n .statement-legend {\n margin-bottom: 2em;\n }\n\n .client-target-container {\n margin: 1em 0;\n }\n\n .client-buying-period {\n background-color: ${thd('primary', '#000')};\n color: #fff;\n margin: 0.5em 0;\n padding: 0.5em 0.25em;\n }\n\n .client-target-selection {\n margin: 0 auto;\n max-width: 420px;\n }\n`;\n\nconst fetchStatements = [\n {\n endpoint: '/Statement/v1/Loyalty/Pending',\n section: 'loyalty',\n },\n {\n endpoint: '/Statement/v1/Epson/Gateway/',\n section: 'incentive',\n },\n];\n\nconst HomePage = ({ settings, userProfile }) => {\n return (\n
\n \n {/* */}\n \n\n \n \n

\n Welcome{' '}\n {userProfile && userProfile.data && userProfile.data.firstName}{' '}\n to\n
\n Epson Premium Partner Rewards\n

\n \n }\n />\n\n \n \n \n

\n Here at Epson, we value your contribution to our business and\n have created Premium Partner Rewards to ensure that you are\n rewarded for your loyalty and on-going commitment!\n

\n
\n \n
\n \n \n \n \n {\n return !statement ||\n !statement.data ||\n !statement.data.incentive ? (\n // Loader instead of `null`?\n ) : (\n \n );\n }}\n />\n \n \n \n \n \n \n
\n

How it works

\n

\n The more you sell the quicker you will reach your target to\n unlock your rewards!\n

\n

\n Simply sell any eligible Epson product, submit your sale via the\n “Claims” page, and hit your “Gateway Target”, to unlock points\n that you can redeem in our rewards catalogue.\n

\n

\n Claims are approved once your sale has been validated. Every\n eligible Epson product sold earns points. So, start selling and\n watch your points accumulate towards your Gateway Target today!\n

\n \n
\n \n \n \"SALES\"\n

SALES

\n

\n Sell eligible\n
\n Epson products\n

\n \n \n \"CLAIM\"\n

CLAIM

\n

\n Submit your\n
\n sales claim\n

\n \n \n \"EARN\"\n

EARN

\n

\n Watch your\n
\n points Add up\n

\n \n \n \"Gateway\"\n

Gateway

\n

\n Hit your\n
\n Gateway Target\n

\n \n \n \"REDEEM\"\n

REDEEM

\n

\n Redeem your\n
\n points for rewards!\n

\n \n
\n
\n \n
\n );\n};\n\nHomePage.propTypes = {\n onUserProfileRequest: PropTypes.func.isRequired,\n settings: PropTypes.object.isRequired,\n userProfile: PropTypes.object,\n};\n\nHomePage.defaultProps = {\n userProfile: undefined,\n};\n\nconst mapStateToProps = createStructuredSelector({\n userProfile: selectUserProfile(),\n});\n\nfunction mapDispatchToProps(dispatch) {\n return {\n dispatch,\n onUserProfileRequest: () => dispatch(userProfileRequest()),\n };\n}\n\nconst withConnect = connect(mapStateToProps, mapDispatchToProps);\n\nexport default compose(withSettings, withConnect)(HomePage);\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOwAAADsCAYAAAB300oUAAAQjElEQVR4nO3de9BdVX3G8W9YXCSBkApaBEFFaBAhtAZEkYtGUGDGlZZbqQws1JaBWgXkZrlTZECoI5cgUhGzKBSKA4WFtVTEYgwgGgnKxRsDyDVcnYRwScJK+sc+J4bwvu9Z+5x9zt7rvM9n5h1O3vPbZ/+GyZO9z95rrzWBDBnr1wf2BfYBdgDeDaxRZ0/SaK8DDwM/B24GborBvVZvS92ZUHcDZRjr1wVOAI4BNqi5HcnXc8BXgQtjcK/X3UwZ2QTWWL898F1gq7p7kaFxD7B/DO6RuhtJlUVgjfUzgBuB9evuRYbO88CMGNx9dTeSovGBNdZvB8wFJtfdiwytZ4HpMbgn6m6kk0YH1li/DjAfeF/dvcjQmwvsFoNbUXcjY2n6ldWjUFhlMHYBDqm7iU4aG1hj/drA8XX3IePKSXU30MmadTcwht2BjUrUL+xXI5K1CaRf/5hqrN+uyRegmhzYjybWXQGcEoN7uo+9SMaM9e8Bvg7MTCjfCWhsYBt7SgxMTai5IQb3OYVVxtK6z7ofcEdC+dZ9bqcnTQ7sxgk1s/rehQyFGFwELkkoLfM1bOCaHNiUW06P9rsJGSopZ2IT+95FD5oc2BSNvmcmUrXcAysyriiwIhlRYEUyosCKZESBFcmIAiuSEQVWJCMKrEhGFFiRjCiwIhlRYEUyosCKZESBFcmIAiuSEQVWJCMKrEhGFFiRjCiwIhlRYEUyosCKZESBFcmIAiuSEQVWJCMKrEhGFFiRjOQeWM38L2UsS6h5ve9d9KDJgX2yw/uvAQsG0YgMjUcSap7oexc9aHJgr+/w/rUxuCUD6USGQgzuKeAHHcrCIHrpVpMDe13rZyQPAMcOsBcZHocDj43y3oUxuLmDbKaslCUda2OsnwAcAhwMvBt4geJfwFkxuMU1tiYZM9ZvBBwFfAKYAvwe+HYM7r9qbUxERERERERERERERERERERERERERERERERERERG0tPzsMb6LYDdgOnAlsCmwCRgrd5bE8naEuBliilnfgfMA34cg+s09dGYSgfWWD8F+CzggGm97FxkHLobmA34GNyrZTdODqyxfl3geOBLwAZldyQib/AMcB5wUQwueabGpMAa62cAlwPv6a43ERnFA4CLwf0ipXjMwLbmVDoVOJ1mT9gmkrOlwNExuEs7FY4aWGO9Ab4FfKbCxkRkdOcCJ8XgRp0gf82Rftk6sl4OHNafvkRkBF9u/fefRysY7TT3DBRWkTp82Vh/5GhvvumU2Fj/CeCWkd4TkYFYCuwUg7t39TfeEEpj/STgN8A7S3z4MuB7rZ/5FGviLO26VZHh8BaKHO0AWOCTlLtw+ytg+uq3fFb/DnsK6WFdQXFR6owY3NMlGhEZLxZQjHD6prF+S+Bs4MDEbacBRwIXr/rLlUfY1vIFj1IMLezkj8BBMbhOCwuJyCqM9QcBVwDrJpQvALZYdUTUqofoz5MW1heB3RVWkfJicNdSnB6nDEvcmGJdqZXWgDcsOtXJcmC/GNx9JfsUkZYY3E8oxuOneMM4iPYR9gPAexM2vjgGd3t6ayIyktaRdrTlVFe1s7F+4/Yf2oH9WMKGLwNf6aI3ERnZyRRnrZ3s3n7RDuzOCRv9Zwzu+W66EpE3i8E9ROcV4aF43hz4U2D/ImGjm7tpSkTGdFNCzdT2i3ZgN0vYaF5X7YjIWH6eULNp+0U7sJM7bRGDe6LbjkRkVCm5Wq/9YsSndUawsLteRJrBWL8GsD3F98GtgY0oZk55BVgM/B54ELgjBjfIv+9LEmomtl+kBlYkS8b6nSnuZe4H/FnCJsuN9XOBq4BrYnCL+9lfWQqsDCVj/a4UY3d3LbnpGhQzge4GnGOsPx+4IAaXciTsO037IkPFWL++sX42MIfyYV3dhhSzQNxvrN+l196qoMDK0DDWvx+4h2IK3iptCdxurD+u4s8tTYGVoWCs3wn4CUW4+rIL4Hxj/YWtsfe1UGAle8b6aRQjhlIuKvXqixSnybVQYCVrxvq3Usx20nEsQYVOMNYfNsD9raTASu6uIG2kXtUuMdZP7VxWLd3WkWwZ6/8GmFlysyUUV5B/CTxLMYrovRRPxJSZy2wiMAvYs+T+e6LASpZaI5fOL7HJIuAc4NKRRjK1LiR9HDgL+FDiZ+5hrN8rBndLiT56osBKrg4gbdIFgLuA/WNwT41W0Jpt/4fG+tuAEyjCnXI1+GSKaYEHQt9hJVd/n1g3B9hjrLCuKga3Igb3VdKncNnFWJ/yeGolFFjJjrH+7RSnr50soJiD7JWy+4jBzQYuSiz/u7Kf3y0FVnI0g7TT1RN6nCXlJIrQd7JHD/soRYGVHKVcFHoSuKaXncTgXgYuSSjdsbXaY98psJKjlPufN5ZZ2XwM1yfUrAO8q4J9daTASo7ekVDzsyp2FIP7NfBSQummnUt6p8BKjqYk1DxZ4f5Svseu17mkdwqs5Cgm1FT5nTLls1J66pkCKzlalFBTyXfK1sWklNPdgUwlo8BKjh5LqPlIRfuaTnFRqZOUnnqmwEqOfp1QM9NYn7KkYycHJdQsHtQ0wAqs5GhuQs0U4J962Ymx/s+BwxNK7+hlP2UosJKjOcDShLrTjfVbdbOD1tM7l5G2ZvL/drOPbiiwkp0Y3CIgJJROAr5vrN+ki92cS9qztsuBa7v4/K4osJKryxLrtgTuNNZ/OKXYWD/ZWH8lxSN2KUIM7unE2p4psJKlGNwPgbsTy98F3GGsn22s32GkAmP9W431R1Nc0DqkRCtnlajtmR5gl5wdDdxJ2pM7EyjmK3bG+qf40xQx61KMTd6O8gewf4/B3VNym57oCCvZisH9lGJepbI2AfamCPCBFItklc3CM8CxXey7Jwqs5O544BcD3udy4OAY3HMD3q8CK3lrLVL1KeCRAe72H2Jwtw1wfyspsJK91lXaGRRrvPbTcuDwGNwVfd7PqBRYGQoxuEeBnYFb+7SLPwIzY3Df6tPnJ1FgZWi05m/aCziOYmX1qtwC/GUM7nsVfmZXFFgZKjG45TG4r1HcqrkMWNbDx82jOKruHYMbyNM4neg+rAyl1tMzRxjrTwM+DexHMXlbp7/zfwD+B7gyBndXf7ssT4GVoRaDexa4ALjAWL8eMI3i6LshxbQuy4CFwMPA/U05ko5GgZVxIwa3mGJk1J1199ItfYcVyYgCK5IRBVYkIwqsSEYUWJGMKLAiGVFgRTKiwIpkRIEVyYgCK5IRBVYkI9mOJW7NzP4BYFdga4rB3GvV2pQ00RLgeeBB4P9icA/W3E9PsgussX5tivVOjqKYJFokmbH+fuBrFFOUDmRN1ypldUpsrP8g8CvgYhRW6c62wHeAu431W9fdTFnZBNZYfxDFqmVT6+5FhsJ0YJ6x/pN1N1JGFoE11u8HXI2+o0q1JgE3Get3r7uRVI0PrLF+KuDJoFfJ0jrAd431G9fdSIocQpC6RqdIt95GMY1M4zU6sMb6PYFsTlcka39rrH9/3U100ujAkrZcvUhVjqi7gU4aex+2db91n8TyG4CbgEX960gytSFwAJByNdgCX+hvO71pbGAp7pdNTKg7JgaXxfcPqc23jfXnAid2qNvcWL9JDO6pQTTVjSafEm+RUPMAcGG/G5GhcBrFmq6dpPy9q02TA7teQs2dMbgVfe9EsheDWwqkrJa+Qb976UWTA5uiygWPZPgtTahp9OCc3AMrMq4osCIZUWBFMqLAimREgRXJiAIrkhEFViQjCqxIRhRYkYwosCIZUWBFMqLAimREgRXJiAIrkhEFViQjCqxIRhRYkYwosCIZUWBFMqLAimREgRXJiAIrkpEmz/yfpdaq3vsCb6+7lxo9Dlwfg3u07kaGjQJbIWP9WcDJwIS6e2mAc4z1x8XgLqq7kWGiU+KKGOs/C5yCwtq2FnChsX7vuhsZJgpsdY6ru4GGOrbuBoaJAludretuoKG2qbuBYaLAVuf5uhtoqGfrbmCYpAa20St6NcQ1dTfQUPr/Mra3JNSsXPStHdiFnbYw1m/WbUfjxKnAvXU30TC3AV+vu4mGe2dCzUvtF+3bOo/T+Sg6vVUnI4jBLTLW7wx8ieI+7OY0fOnCPlkCPAr8B/CNGNyyettpvA8l1DzRftEO7G+BbTts9NfAjV02NS7E4F4Fzm79iKT4VELN79ov2qfEP03YaH9j/UZdtSQib2Ks3wrYM6F0XvtFO7C3JWw0CTizi75EZGTnkjbQZk77xRoAMbj5wEMJGx5prN+ju95EpM1YfwjFtY5O5sTgnmn/YdXbOt9J2HgCcL2xfvuS/YlIi7F+BvBvieV+1T+sGthvAi8nfMBkYI7GiIqU1zqy/jdp91+fAq5a9RcrAxuDe5H0e2aTge8b672xfvPEbUTGLWP9Nsb6G4ErSQsrwNkxuKWr/mL1x+vOAQ6luIeY4lDg08b6HwA3A/OBBSQMxEgwsYLPEClrkrF+SgWfM4ViUMQOFLduPka5J7nuBS5b/ZdvCGwM7hVj/WeAW0kftrgmsE/rRyR3V3Uu6bvXgENjcHH1N94Uyhjcj4DTB9GViIzoH2Nw9430xohH0RjcV4DL+9qSiIzkzBjcqHdsxjrtPYLiyrGIDMaZMbgzxioYNbAxuBiDOxI4EXjTubSIVOY14HOdwgoJF5ZicOcBH2WVAcgiUpn5wAdjcFekFCddCY7BzQWmURxtX+i+NxFpeQr4PLDjaBeYRpI8zWkMbglwnrH+G8BhFPdgdyzZpMh4NweYDVy9+qCIFKXnJY7BLQZmAbNas1B8nOLm8PuAdwDrt356tTawbgWfI1LGK0AVD90vBBZTPHz+G+Au4PYY3IJePrSnicRjcI9T/Gsxu5fPGYmx/jDSHkgQqdLBMbjGTtSgmf8rZqyfCswENqm7l5qsAP5AsVSHphSqmAJbIWP9GcBpaPZ/KK53HBODu6TuRoaJ5iWuiLHeUQzpVFgLa1Fc59ir7kaGiQJbnRPrbqChtIRJhRTY6mipjpFpqY4KKbDV0VIdI3uu7gaGiQJbnWvrbqChrqu7gWGiwFbnVOCXdTfRMD8C/rXuJoaJbutUJAa30Fj/EYr1UPcFNgNMvV3VYhnFfdirKJbqKD38TkanwFYoBvcy8C+tH5HK6ZRYJCMKrEhGFFiRjCiwIhlRYEUyosCKZESBFcmIAiuSEQVWJCMKrEhGFFiRjCiwIhlRYEUyosCKZESBFcmIAiuSEQVWJCMKrEhGFFiRjCiwIhnJPbAT625AsrJ2Qk0Va8P2TZMD+0JCzYf73oUMBWP92sBfJZQu7HcvvWhyYJ9IqNnWWH9U3zuRYXAusHFC3cP9bqQXjV0a0VhvgBeByQnlNwA3AYv62pTk6G3AAcCeCbWPx+A273M/PWlsYAGM9ddR/M8WGYRZMbgv1N3EWJp8Sgyg1btlUFYAl9bdRCeNDmwM7sfAbXX3IePCtTG4B+tuopNGB7blCOCVupuQofYskMXFy8YHNgb3EHAIsLzuXmQovQocGIPLYuHpxgcWIAZ3A3AoDb+pLdl5CZjZ+uqVhSwCCxCDuxrYBfht3b3IUJgH7BiDu7XuRsrIJrAAMbifAdOAL9LwG9zSWPOBw4CdYnDZ/ePf6PuwYzHWTwC2ALahWO18PcbniucytmUUA2oeAx6IwT1ecz8iMl78PxSVe+UKWMO+AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Icon3@2x.5ebb403d.png\";","module.exports = __webpack_public_path__ + \"static/media/Icon4@2x.23d449a6.png\";","module.exports = __webpack_public_path__ + \"static/media/Icon5@2x.d8736b77.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","module.exports = __webpack_public_path__ + \"static/media/HomeHeader-bg-mobile-@1x.fcdb455f.png\";","module.exports = __webpack_public_path__ + \"static/media/HomeHeader-bg-mobile-@2x.c274d563.png\";","module.exports = __webpack_public_path__ + \"static/media/Header-bg-tablet-@1x.94a1e208.png\";","module.exports = __webpack_public_path__ + \"static/media/Header-bg-tablet-@2x.443e8a68.png\";","module.exports = __webpack_public_path__ + \"static/media/Header-BG@1x.b6416825.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Header-BG@2x.bd591820.jpg\";"],"sourceRoot":""}