{"version":3,"sources":["webpack:///./src/components/account/pages/AddDriversLicensePage.js","webpack:///./src/components/account/CreditCardIFrameField.js","webpack:///./src/components/account/pages/AddPaymentMethod.js","webpack:///./src/components/PriceLevel.js","webpack:///./src/components/account/pages/ChooseAccountLevelPage.js","webpack:///./src/components/account/pages/ConfirmDriversLicenseAndCreditCheckPage.js","webpack:///./src/components/account/NameField.js","webpack:///./src/components/account/pages/ContactInformation.js","webpack:///./src/components/account/pages/MobileNumberVerificationPage.js","webpack:///./src/components/account/pages/SuccessPage.js","webpack:///./src/components/account/Account.js","webpack:///./src/api/facebook/facebook.js","webpack:///./src/components/account/pages/AccountPages.scss","webpack:///./src/utils/slug.js","webpack:///./src/api/internal/client.js","webpack:///./src/utils/brickresolvers/usePageContextData.js","webpack:///./src/components/PriceLevel.scss","webpack:///./src/components/account/CreditCardIFrameField.scss","webpack:///./src/components/account/Account.scss"],"names":["bem","BEMHelper","useStyles","makeStyles","button","marginTop","AddDriversLicensePage","setNextStep","t","useTranslations","getSetting","useSetting","classes","useState","errorMessage","showErrorMessage","useConnect","doSetCustomerInfo","customerInfo","doRefreshCustomerInfo","foreignLink","customerId","notPrivate","useEffect","googleAnalytics","pushVirtualPageView","goToNext","sso","driverLicenseExpDate","a","transformDateStringRidecell","azureApiGatewayPost","personal_number","expiry_date","useToken","params","registration","REGISTRATION_STEPS","CONFIRM_DRIVERS_LICENSE_AND_CREDIT_CHECK","console","log","message","ErrorModal","onClose","initialValues","validationSchema","validator","validatorKey","required","props","values","touched","errors","handleChange","handleBlur","dirty","isValid","FormContainer","twoColumns","TextField","label","id","name","variant","value","onChange","onBlur","event","setFieldValue","transformSso","target","error","helperText","root","transformDateString","Button","aria-label","color","disabled","onClick","Link","to","CreditCardIFrameField","className","AddPaymentMethod","setError","doResetCustomerCreditCards","returnToBookingAfterRegistration","language","service","showBankModal","setShowBankModal","localLoading","setLocalLoading","addingCard","setAddingCard","hostedFieldsInstance","useRef","threeDSecure","numberValid","setNumberValid","expirationDateValid","setExpirationDateValid","cvvValid","setCvvValid","useScript","loadedUrl","loadUrlError","loadedUrl1","loadUrlError1","loadedUrl2","loadUrlError2","getClientToken","resp","window","braintree","client","create","authorization","data","initialization_token","braintreeClient","hostedFields","styles","body","input","transition","fields","number","selector","placeholder","cvv","expirationDate","current","on","isPotentiallyValid","version","next","payload","setupBankFrame","element","get","response","messages","iframe","bankModalWrapper","document","getElementById","innerHTML","appendChild","style","display","hideBankModal","addCard","tokenize","tokenizeErr","n","remoteLogError","nonce","verifyCard","bin","binData","amount","JSON","stringify","payment_card_token","in_use","card_tag","navigate","localizedUrl","SUCCESS_PAGE","CircularProgress","size","PriceLevel","selected","priceLevel","title","monthlyCost","description","priceLevels","ChooseAccountLevelPage","doSetChoosenAccountLevel","selectedPriceLevel","map","item","index","key","CONTACT_INFORMATION","onPriceLevelSelected","ConfirmDriversLicenseAndCreditCheckPage","setLoading","businessCustomer","pollTimeout","pollingTimedOutTimeout","clearTimeout","verifyCustomer","transaction","transaction_id","customerInformation","customer_type","SELECT_PAYMENT_METHOD","pollBankId","verification","setTimeout","initiateBank","onDevice","visible_sign_string","bankid_sign_timeout","location","href","autostart_token","NameField","useField","field","meta","errorText","adornment","fontSize","formLabel","marginRight","ContactInformation","state","setState","snippetValues","setSnippetValues","source","setSource","medium","setMedium","showBusinessField","setShowBusinessField","businessCodeValue","setBusinessCodeValue","allPolicyDocument","allSnippet","gtmId","url","undefined","google_tag_manager","dataLayer","URL","URLSearchParams","search","referrer","doLoginCustomer","userData","documentId","policy_document_agreements","edges","filter","node","push","policy_document","document_version","documentVersion","first_name","firstName","last_name","lastName","email","password","phone_number","phonenumber","consent_decisions","source_url","sessionStorage","getItem","external_membership_number","raf_source","businessCode","business_profile_activation_code","removeItem","VERIFY_MOBILE_NUMBER","status","includes","buttonLabel","redirectOnClose","join","acceptedPolicies","snippetIds","buildSnippetKey","snippetValuesResult","reduce","nodesWithSnippetThatMatches","editables","forEach","editable","snippetId","result","localSnippetValues","policyDocument","setupAcceptPolicyDocuments","enableReinitialize","secondEmail","nodeId","hasAcceptedAllDocuments","Phonenumber","FormControlLabel","control","Checkbox","checkbox","checked","checkPolicyDocument","Consent","header","linkText","content","fullWidth","createCustomer","MobileNumberVerificationPage","verificationCodeResent","setVerificationCodeResent","onResendCodeClicked","getMobileVerificationCode","azureGetMobileVerificationCode","azureGetMobileVerificationCodeNewPhonenumber","onConfirmMobilePhone","verificationcode","verification_code","DRIVERS_LICENSE","maxLength","SuccessPage","customPageContext","doSetSiteType","doSetMembership","SITE_TYPES","BUSINESS","pushSubscribe","azureData","token","loadToken","addMembership","validPaymentCard","requestOptions","method","headers","process","membership_id","kinto_product","fetch","BrickResolver","pageContext","usePageContextData","pageName","CHOOSE_ACCOUNT_LEVEL","ACCOUNT_TRANSLATIONS","businessTitle","businessDescription","Account","selectedPage","currentStep","setCurrentStep","loading","salesforceLink","isMissingInformation","isCustomerLoggedIn","pathname","replace","Container","Divider","Page","ChooseAccountLevel","renderCurrentRegistrationStep","eventName","Promise","resolve","reject","info","fbq","eventCallback","pushBooking","subscriptionValue","currency","predictedLtv","predicted_ltv","module","exports","Client","getPageContext","formattedPageName","startsWith","substr","endpoint","pageContextData","setPageContextData","loadPageContextData"],"mappings":"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","file":"1748daa5cf8db097e4e2744ffa683711302d4368-514966b9e143fa39271a.js","sourcesContent":["import './AccountPages.scss'\nimport React, { useEffect, useState } from 'react'\nimport BEMHelper from 'react-bem-helper'\nimport { Formik } from 'formik'\nimport { useConnect } from 'redux-bundler-hook'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Link from '@src/components/Link'\nimport useTranslations from '@src/hooks/useTranslations'\nimport validator from '@src/form/validations'\nimport {\n\ttransformDateString,\n\ttransformDateStringRidecell,\n\ttransformSso,\n} from '@src/form/transformation'\nimport FormContainer from '@src/components/FormContainer'\nimport { azureApiGatewayPost } from '@src/api/azureApiGateway/client'\nimport useSetting from '@src/hooks/useSetting'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport ErrorModal from '@src/components/ErrorModal'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\n\nconst bem = new BEMHelper('registration-page')\n\nconst useStyles = makeStyles({\n\tbutton: {\n\t\tmarginTop: '2.5rem',\n\t},\n})\n\nfunction AddDriversLicensePage({ setNextStep }) {\n\tconst t = useTranslations()\n\tconst getSetting = useSetting()\n\tconst classes = useStyles()\n\tconst [errorMessage, showErrorMessage] = useState(null)\n\n\tconst { doSetCustomerInfo, customerInfo, doRefreshCustomerInfo } = useConnect(\n\t\t'doSetCustomerInfo',\n\t\t'selectCustomerInfo',\n\t\t'doRefreshCustomerInfo',\n\t)\n\n\tconst foreignLink = `${getSetting('registration_foreign_link', '/')}?id=${\n\t\tcustomerInfo.customerId\n\t}`\n\tconst notPrivate = getSetting('registration_not_private')\n\n\tuseEffect(() => {\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/adddriverslicensepage/${customerInfo.customerId}`,\n\t\t\t`User with userid ${customerInfo.customerId} is adding drivers license`,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tconst goToNext = async (sso, driverLicenseExpDate) => {\n\t\tdriverLicenseExpDate = transformDateStringRidecell(driverLicenseExpDate)\n\t\tdoSetCustomerInfo({ sso, driverLicenseExpDate })\n\t\ttry {\n\t\t\tawait azureApiGatewayPost(\n\t\t\t\t`customer/${customerInfo.customerId}/drivers_license/track`,\n\t\t\t\t{\n\t\t\t\t\tpersonal_number: sso,\n\t\t\t\t\texpiry_date: driverLicenseExpDate,\n\t\t\t\t},\n\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t)\n\t\t\tawait doRefreshCustomerInfo()\n\t\t\tsetNextStep(REGISTRATION_STEPS.CONFIRM_DRIVERS_LICENSE_AND_CREDIT_CHECK)\n\t\t} catch (error) {\n\t\t\tconsole.log(error)\n\t\t\tshowErrorMessage(error.message)\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{errorMessage && (\n\t\t\t\t showErrorMessage(null)}>\n\t\t\t\t\t{errorMessage}\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t{(props) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tvalues,\n\t\t\t\t\t\ttouched,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\thandleChange,\n\t\t\t\t\t\thandleBlur,\n\t\t\t\t\t\tdirty,\n\t\t\t\t\t\tisValid,\n\t\t\t\t\t} = props\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (!errors.sso) {\n\t\t\t\t\t\t\t\t\t\t\tprops.setFieldValue(\n\t\t\t\t\t\t\t\t\t\t\t\t'sso',\n\t\t\t\t\t\t\t\t\t\t\t\ttransformSso(event.target.value),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thandleBlur(event)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terror={errors.sso && touched.sso}\n\t\t\t\t\t\t\t\t\thelperText={touched.sso && errors.sso}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (!errors.driverLicenseExpDate) {\n\t\t\t\t\t\t\t\t\t\t\tprops.setFieldValue(\n\t\t\t\t\t\t\t\t\t\t\t\t'driverLicenseExpDate',\n\t\t\t\t\t\t\t\t\t\t\t\ttransformDateString(event.target.value),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thandleBlur(event)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terror={\n\t\t\t\t\t\t\t\t\t\terrors.driverLicenseExpDate && touched.driverLicenseExpDate\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\ttouched.driverLicenseExpDate && errors.driverLicenseExpDate\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tgoToNext(values.sso, values.driverLicenseExpDate)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('kinto.general.next')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t('kinto.register.forign-drivers-license')}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{notPrivate !== '' &&\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{t('kinto.register.not-private-link')}
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}}\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default AddDriversLicensePage\n","import './CreditCardIFrameField.scss'\nimport React from 'react'\nimport BEMHelper from 'react-bem-helper'\n\nconst bem = new BEMHelper('creditcard-iframe')\n\nexport default function CreditCardIFrameField({ id }) {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t
\n\t)\n}\n","import './AccountPages.scss'\nimport React, { useEffect, useState, useRef } from 'react'\nimport { useScript } from 'use-hooks'\nimport { useConnect } from 'redux-bundler-hook'\nimport BEMHelper from 'react-bem-helper'\nimport { get } from 'lodash'\nimport { navigate } from 'gatsby'\nimport useTranslations from '@src/hooks/useTranslations'\nimport FormContainer from '@src/components/FormContainer'\nimport CreditCardIFrameField from '@src/components/account/CreditCardIFrameField'\nimport Button from '@material-ui/core/Button'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport {\n\tazureApiGatewayPost,\n\tremoteLogError,\n} from '@src/api/azureApiGateway/client'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\nimport { localizedUrl } from '@src/utils/navigate'\n\nconst bem = new BEMHelper('registration-page')\n\nfunction AddPaymentMethod({ setNextStep, setError }) {\n\tconst t = useTranslations()\n\tconst {\n\t\tcustomerInfo: { customerId = null },\n\t\tdoRefreshCustomerInfo,\n\t\tdoResetCustomerCreditCards,\n\t\treturnToBookingAfterRegistration,\n\t\tlanguage,\n\t\tservice,\n\t} = useConnect(\n\t\t'selectCustomerInfo',\n\t\t'doRefreshCustomerInfo',\n\t\t'doResetCustomerCreditCards',\n\t\t'selectReturnToBookingAfterRegistration',\n\t\t'selectLanguage',\n\t\t'selectService',\n\t)\n\tconst [showBankModal, setShowBankModal] = useState(false)\n\tconst [localLoading, setLocalLoading] = useState(true)\n\tconst [addingCard, setAddingCard] = useState(0)\n\n\tconst hostedFieldsInstance = useRef(null)\n\tconst threeDSecure = useRef(null)\n\n\tconst [numberValid, setNumberValid] = useState(false)\n\tconst [expirationDateValid, setExpirationDateValid] = useState(false)\n\tconst [cvvValid, setCvvValid] = useState(false)\n\n\tconst [loadedUrl, loadUrlError] = useScript(\n\t\t'https://js.braintreegateway.com/web/3.61.0/js/client.min.js',\n\t)\n\tconst [loadedUrl1, loadUrlError1] = useScript(\n\t\t'https://js.braintreegateway.com/web/3.61.0/js/hosted-fields.min.js',\n\t)\n\tconst [loadedUrl2, loadUrlError2] = useScript(\n\t\t'https://js.braintreegateway.com/web/3.61.0/js/three-d-secure.min.js',\n\t)\n\n\tconst getClientToken = async () => {\n\t\ttry {\n\t\t\tconst resp = await azureApiGatewayPost(\n\t\t\t\t`customer/${customerId}/card/initialization_token`,\n\t\t\t\tnull,\n\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t)\n\t\t\tconst braintreeClient = await window.braintree.client.create({\n\t\t\t\tauthorization: resp.data.initialization_token,\n\t\t\t})\n\n\t\t\thostedFieldsInstance.current = await window.braintree.hostedFields.create(\n\t\t\t\t{\n\t\t\t\t\tclient: braintreeClient,\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t'background-color': '#fff',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t'font-size': '1rem',\n\t\t\t\t\t\t\tcolor: '#3A3A3A',\n\t\t\t\t\t\t\ttransition: 'color 160ms linear',\n\t\t\t\t\t\t\t'-webkit-transition': 'color 160ms linear',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tnumber: {\n\t\t\t\t\t\t\tselector: '#hf-number',\n\t\t\t\t\t\t\tplaceholder: t('kinto.registration.cardnumber'),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcvv: {\n\t\t\t\t\t\t\tselector: '#hf-cvv',\n\t\t\t\t\t\t\tplaceholder: t('kinto.registration.cvc'),\n\t\t\t\t\t\t},\n\t\t\t\t\t\texpirationDate: {\n\t\t\t\t\t\t\tselector: '#hf-date',\n\t\t\t\t\t\t\tplaceholder: t('kinto.registration.card-expire'),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\thostedFieldsInstance.current.on('validityChange', (event) => {\n\t\t\t\tsetNumberValid(\n\t\t\t\t\tevent.fields['number'].isValid ||\n\t\t\t\t\t\tevent.fields['number'].isPotentiallyValid,\n\t\t\t\t)\n\t\t\t\tsetExpirationDateValid(event.fields['expirationDate'].isValid)\n\t\t\t\tsetCvvValid(event.fields['cvv'].isValid)\n\t\t\t})\n\n\t\t\tthreeDSecure.current = await window.braintree.threeDSecure.create({\n\t\t\t\tclient: braintreeClient,\n\t\t\t\tversion: '2-inline-iframe',\n\t\t\t})\n\n\t\t\tthreeDSecure.current.on('lookup-complete', (data, next) => {\n\t\t\t\tnext()\n\t\t\t})\n\t\t\tthreeDSecure.current.on(\n\t\t\t\t'authentication-iframe-available',\n\t\t\t\t(payload, next) => {\n\t\t\t\t\tsetupBankFrame(payload.element)\n\t\t\t\t\tnext()\n\t\t\t\t},\n\t\t\t)\n\t\t} catch (error) {\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.init-card',\n\t\t\t})\n\t\t}\n\t\tsetLocalLoading(false)\n\t}\n\n\tconst setupBankFrame = (iframe) => {\n\t\tvar bankModalWrapper = document.getElementById('bank-modal-wrapper')\n\t\tbankModalWrapper.innerHTML = ''\n\t\tbankModalWrapper.appendChild(iframe)\n\t\tbankModalWrapper.style.display = 'block'\n\t\tsetShowBankModal(true)\n\t}\n\n\tconst hideBankModal = () => {\n\t\tsetShowBankModal(false)\n\t\tvar bankModalWrapper = document.getElementById('bank-modal-wrapper')\n\t\tbankModalWrapper.innerHTML = ''\n\t\tbankModalWrapper.style.display = 'none'\n\t}\n\n\tuseEffect(() => {\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/addpaymentmethod/${customerId}`,\n\t\t\t`User with userid ${customerId} is adding payment method`,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tloadedUrl &&\n\t\t\tloadedUrl1 &&\n\t\t\tloadedUrl2 &&\n\t\t\t!loadUrlError &&\n\t\t\t!loadUrlError1 &&\n\t\t\t!loadUrlError2\n\t\t) {\n\t\t\tgetClientToken()\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [loadedUrl, loadedUrl1, loadedUrl2])\n\n\tconst addCard = async () => {\n\t\tsetLocalLoading(true)\n\t\thideBankModal()\n\t\ttry {\n\t\t\thostedFieldsInstance.current.tokenize(async (tokenizeErr, payload) => {\n\t\t\t\tif (tokenizeErr) {\n\t\t\t\t\tsetError({ message: 'kinto.error.card-not-valid' })\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (addingCard > 0) {\n\t\t\t\t\tconst n = addingCard + 1\n\t\t\t\t\tremoteLogError(\n\t\t\t\t\t\t`Adding card with nonce ${payload.nonce} for ${n}th time`,\n\t\t\t\t\t)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tsetAddingCard(addingCard + 1)\n\n\t\t\t\tlet data\n\t\t\t\ttry {\n\t\t\t\t\tdata = await threeDSecure.current.verifyCard({\n\t\t\t\t\t\tnonce: payload.nonce,\n\t\t\t\t\t\tbin: payload.binData,\n\t\t\t\t\t\tamount: '1.00',\n\t\t\t\t\t})\n\t\t\t\t\tremoteLogError(\n\t\t\t\t\t\t`Successfully added a credit card for customer with id ${customerId}`,\n\t\t\t\t\t\t'Info',\n\t\t\t\t\t)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsetLocalLoading(false)\n\t\t\t\t\tsetAddingCard(0)\n\t\t\t\t\thideBankModal()\n\t\t\t\t\tconst errorMessage = JSON.stringify(\n\t\t\t\t\t\tget(error, 'details.originalError'),\n\t\t\t\t\t)\n\t\t\t\t\tremoteLogError(\n\t\t\t\t\t\t`Failed to add a credit card for customer with id ${customerId}: ${errorMessage}`,\n\t\t\t\t\t\t'Error',\n\t\t\t\t\t)\n\t\t\t\t\tsetError({\n\t\t\t\t\t\tmessage: 'kinto.error.verify-card-failed',\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait azureApiGatewayPost(\n\t\t\t\t\t\t`customer/${customerId}/card`,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpayment_card_token: data.nonce,\n\t\t\t\t\t\t\tin_use: true,\n\t\t\t\t\t\t\tcard_tag: 'personal',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t\t\t)\n\t\t\t\t\tawait doRefreshCustomerInfo()\n\t\t\t\t\tsetLocalLoading(false)\n\t\t\t\t\tsetAddingCard(0)\n\t\t\t\t\tif (returnToBookingAfterRegistration === true) {\n\t\t\t\t\t\tnavigate(localizedUrl('/boka-bil', language, service))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetNextStep(REGISTRATION_STEPS.SUCCESS_PAGE)\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsetLocalLoading(false)\n\t\t\t\t\tsetAddingCard(0)\n\t\t\t\t\thideBankModal()\n\t\t\t\t\tsetError({\n\t\t\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t\t\t: 'kinto.error.send-card-nonce-failed',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t} catch (error) {\n\t\t\tsetLocalLoading(false)\n\t\t\tsetAddingCard(0)\n\t\t\thideBankModal()\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.init-send-card-nonce-failed',\n\t\t\t})\n\t\t}\n\t}\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('kinto.general.next')}\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tdoResetCustomerCreditCards()\n\t\t\t\t\t\tsetNextStep(REGISTRATION_STEPS.SUCCESS_PAGE)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{t('kinto.general.later')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{localLoading && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t)\n}\n\nexport default AddPaymentMethod\n","import './PriceLevel.scss'\nimport React from 'react'\nimport BEMHelper from 'react-bem-helper'\nimport useTranslations from '@src/hooks/useTranslations'\n\nimport Button from '@material-ui/core/Button'\n\nconst bem = new BEMHelper('price-level')\n\nfunction PriceLevel({ selected = false, priceLevel, onClick = () => {} }) {\n\tconst t = useTranslations()\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
{priceLevel.title}
\n\t\t\t\t
{`${priceLevel.monthlyCost} kr/mån`}
\n\t\t\t
\n\t\t\t
x kr/timme
\n\t\t\t
x kr/km
\n\t\t\t
{priceLevel.description}
\n\t\t\t{selected && (\n\t\t\t\t
\n\t\t\t\t\tThis is selected in state, should this be resetedf on navigation to\n\t\t\t\t\tthis page?\n\t\t\t\t
\n\t\t\t)}\n\t\t\t onClick(priceLevel)}\n\t\t\t>\n\t\t\t\t{t('kinto.select')}\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default PriceLevel\n","import './AccountPages.scss'\nimport React, { useEffect } from 'react'\nimport BEMHelper from 'react-bem-helper'\nimport { useConnect } from 'redux-bundler-hook'\nimport PriceLevel from '@src/components/PriceLevel'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\n\nconst bem = new BEMHelper('registration-page')\n\nconst priceLevels = [\n\t{\n\t\tid: 'OL8A-67UI',\n\t\ttitle: 'Free',\n\t\tmonthlyCost: 0,\n\t\tdescription: 'Passar dig som endast kör vid enstaka tillfällen.',\n\t},\n\t{\n\t\tid: 'PO00-09LK',\n\t\ttitle: 'Sliver',\n\t\tmonthlyCost: 99,\n\t\tdescription: 'Passar dig som endast kör vid enstaka tillfällen.',\n\t},\n\t{\n\t\tid: 'AKFA-JI87',\n\t\ttitle: 'Goold',\n\t\tmonthlyCost: 299,\n\t\tdescription: 'Passar dig som endast kör vid enstaka tillfällen.',\n\t},\n]\n\nfunction ChooseAccountLevelPage({ setNextStep }) {\n\tconst { doSetChoosenAccountLevel, selectedPriceLevel } = useConnect(\n\t\t'doSetChoosenAccountLevel',\n\t\t'selectSelectedPriceLevel',\n\t)\n\n\tconst onPriceLevelSelected = (priceLevel) => {\n\t\tdoSetChoosenAccountLevel(priceLevel.id)\n\t\tsetNextStep(REGISTRATION_STEPS.CONTACT_INFORMATION)\n\t}\n\n\tuseEffect(() => {\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/chooseaccountlevelpage`,\n\t\t\t`User is selecting account level`,\n\t\t)\n\t}, [])\n\n\treturn (\n\t\t
\n\t\t\t{priceLevels.map((item, index) => (\n\t\t\t\t onPriceLevelSelected(priceLevel)}\n\t\t\t\t/>\n\t\t\t))}\n\t\t
\n\t)\n}\n\nexport default ChooseAccountLevelPage\n","import './AccountPages.scss'\nimport React, { useEffect } from 'react'\nimport { useConnect } from 'redux-bundler-hook'\nimport { get } from 'lodash'\nimport Button from '@material-ui/core/Button'\nimport FormContainer from '@src/components/FormContainer'\nimport useTranslations from '@src/hooks/useTranslations'\nimport { azureApiGatewayPost } from '@src/api/azureApiGateway/client'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport BEMHelper from 'react-bem-helper'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\n\nconst bem = new BEMHelper('registration-page')\n\nfunction ConfirmDriversLicenseAndCreditCheckPage({\n\tsetNextStep,\n\tsetError,\n\tsetLoading,\n}) {\n\tconst t = useTranslations()\n\tconst { customerInfo, businessCustomer } = useConnect(\n\t\t'selectCustomerInfo',\n\t\t'selectBusinessCustomer',\n\t)\n\n\tlet pollTimeout = null\n\tlet pollingTimedOutTimeout = null\n\n\tuseEffect(() => {\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/confirmdriverslicenseandcreditcheckpage/${customerInfo.customerId}`,\n\t\t\t`User with userid ${customerInfo.customerId} is confirming drivers license with credit check`,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tclearTimeout(pollTimeout)\n\t\t\tclearTimeout(pollingTimedOutTimeout)\n\t\t}\n\t}, [pollTimeout, pollingTimedOutTimeout])\n\n\tconst verifyCustomer = async (transaction) => {\n\t\tconst { transaction_id } = transaction\n\t\tsetLoading(true)\n\t\ttry {\n\t\t\tlet customerInformation = {\n\t\t\t\ttransaction_id,\n\t\t\t\tpersonal_number: customerInfo.sso,\n\t\t\t\texpiry_date: customerInfo.driverLicenseExpDate,\n\t\t\t}\n\t\t\tif (businessCustomer) {\n\t\t\t\tcustomerInformation.customer_type = 'business'\n\t\t\t}\n\t\t\tawait azureApiGatewayPost(\n\t\t\t\t`customer/${customerInfo.customerId}/validation`,\n\t\t\t\tcustomerInformation,\n\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t)\n\t\t\tsetNextStep(REGISTRATION_STEPS.SELECT_PAYMENT_METHOD)\n\t\t} catch (error) {\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.failed-to-verify-customer',\n\t\t\t})\n\t\t}\n\t\tsetLoading(false)\n\t}\n\n\tconst pollBankId = async (transaction) => {\n\t\tif (pollTimeout) {\n\t\t\tclearTimeout(pollTimeout)\n\t\t\tpollTimeout = null\n\t\t}\n\t\tconst { transaction_id } = transaction\n\t\tconst resp = await azureApiGatewayPost(\n\t\t\t`customer/${customerInfo.customerId}/check_bankid`,\n\t\t\t{ transaction_id },\n\t\t\t{ useToken: true, params: { registration: true } },\n\t\t)\n\t\tif (resp.data && resp.data.verification) {\n\t\t\tif (resp.data.verification === 'failed') {\n\t\t\t\tsetLoading(false)\n\t\t\t\tsetError({ message: 'kinto.error.failed-to-verify-bankid' })\n\t\t\t\tclearTimeout(pollingTimedOutTimeout)\n\t\t\t} else if (resp.data.verification === 'complete') {\n\t\t\t\tclearTimeout(pollingTimedOutTimeout)\n\t\t\t\tsetLoading(false)\n\t\t\t\tverifyCustomer(transaction)\n\t\t\t} else {\n\t\t\t\tpollTimeout = setTimeout(() => pollBankId(transaction), 5000)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst startBankIdPoll = (transaction) => {\n\t\tconst { bankid_sign_timeout } = transaction\n\t\tsetLoading(true)\n\t\tpollBankId(transaction)\n\t\tpollingTimedOutTimeout = setTimeout(() => {\n\t\t\tclearTimeout(pollTimeout)\n\t\t\tsetLoading(false)\n\t\t\tsetError({ message: 'kinto.error.bankid-timedout' })\n\t\t}, bankid_sign_timeout * 1000)\n\t}\n\n\tconst initiateBank = async (onDevice = false) => {\n\t\tif (!customerInfo || !customerInfo.sso || customerInfo.sso === '') {\n\t\t\tsetError({ message: 'kinto.error.no-sso-available' })\n\t\t\treturn\n\t\t}\n\t\tsetLoading(true)\n\t\ttry {\n\t\t\tconst resp = await azureApiGatewayPost(\n\t\t\t\t`customer/${customerInfo.customerId}/initiate_bankid`,\n\t\t\t\t{\n\t\t\t\t\tpersonal_number: customerInfo.sso,\n\t\t\t\t\tvisible_sign_string: businessCustomer\n\t\t\t\t\t\t? t('kinto.bankid.signing-string.business')\n\t\t\t\t\t\t: t('kinto.bankid.signing-string'),\n\t\t\t\t},\n\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t)\n\t\t\tif (resp.data && resp.data.transaction) {\n\t\t\t\tstartBankIdPoll(resp.data.transaction)\n\t\t\t\tif (onDevice) {\n\t\t\t\t\twindow.location.href = `bankid:///?autostarttoken=${resp.data.transaction.autostart_token}&redirect=null`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetError({ message: 'kinto.error.something-went-wrong' })\n\t\t\t\tsetLoading(false)\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetLoading(false)\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.could-not-inti-bankid',\n\t\t\t})\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t initiateBank(true)}\n\t\t\t\t>\n\t\t\t\t\t{t('kinto.register.bank-id')}\n\t\t\t\t\n\n\t\t\t\t initiateBank(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('kinto.register.bank-id-device')}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default ConfirmDriversLicenseAndCreditCheckPage\n","import React from 'react'\nimport { TextField } from '@material-ui/core/'\nimport { useField } from 'formik'\n\nexport default function NameField({ label, ...props }) {\n\tconst [field, meta] = useField(props)\n\tconst errorText = meta.error && meta.touched ? meta.error : ''\n\n\treturn (\n\t\t\n\t)\n}\n","import React, { useState, useEffect } from 'react'\nimport { graphql, useStaticQuery } from 'gatsby'\nimport BEMHelper from 'react-bem-helper'\nimport { Formik, Form } from 'formik'\nimport { useConnect } from 'redux-bundler-hook'\nimport {\n\tButton,\n\tCheckbox,\n\tFormControlLabel,\n\tmakeStyles,\n} from '@material-ui/core/'\nimport { get } from 'lodash'\nimport { TextField } from '@material-ui/core/'\nimport useTranslations from '@src/hooks/useTranslations'\nimport validator from '@src/form/validations'\nimport FormContainer from '@src/components/FormContainer'\nimport Email from '@src/components/account/EmailField'\nimport Password from '@src/components/account/PasswordField'\nimport Phonenumber from '@src/components/account/Phonenumber'\nimport NameField from '@src/components/account/NameField'\nimport {\n\tazureApiGatewayPost,\n\tremoteLogError,\n} from '@src/api/azureApiGateway/client'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport Consent from '@src/components/Consent'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\nimport useSetting from '@src/hooks/useSetting'\n\nconst bem = new BEMHelper('registration-page')\n\nconst useStyles = makeStyles({\n\tadornment: {\n\t\t'& > p': {\n\t\t\tfontSize: '.75rem',\n\t\t},\n\t},\n\tformLabel: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: 9,\n\t},\n})\n\nconst query = graphql`\n\tquery getConsents {\n\t\tallPolicyDocument {\n\t\t\tedges {\n\t\t\t\tnode {\n\t\t\t\t\tid\n\t\t\t\t\ttitle\n\t\t\t\t\turl\n\t\t\t\t\tdocumentVersion\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tallSnippet {\n\t\t\tedges {\n\t\t\t\tnode {\n\t\t\t\t\teditables {\n\t\t\t\t\t\tname\n\t\t\t\t\t\ttype\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t\tname\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`\n\nfunction ContactInformation({ setNextStep, setLoading, setError }) {\n\tconst classes = useStyles()\n\tconst [state, setState] = useState({})\n\tconst [snippetValues, setSnippetValues] = useState(null)\n\tconst [source, setSource] = useState('')\n\tconst [medium, setMedium] = useState('')\n\tconst [showBusinessField, setShowBusinessField] = useState(false)\n\tconst [businessCodeValue, setBusinessCodeValue] = useState('')\n\tconst { allPolicyDocument, allSnippet } = useStaticQuery(query)\n\tconst getSetting = useSetting()\n\tconst gtmId = getSetting('GTM_ID')\n\n\tuseEffect(() => {\n\t\tconst url =\n\t\t\ttypeof window !== 'undefined' &&\n\t\t\twindow.google_tag_manager[gtmId] !== undefined &&\n\t\t\twindow.google_tag_manager[gtmId].dataLayer !== undefined &&\n\t\t\twindow.google_tag_manager[gtmId].dataLayer.get('originalLocation') !==\n\t\t\t\tundefined\n\t\t\t\t? new URL(\n\t\t\t\t\t\twindow.google_tag_manager[gtmId].dataLayer.get('originalLocation'),\n\t\t\t\t )\n\t\t\t\t: ''\n\n\t\tconst params = new URLSearchParams(url.search)\n\n\t\tsetMedium(params.get('utm_medium') !== null ? params.get('utm_medium') : '')\n\t\tsetSource(\n\t\t\tparams.get('utm_source') !== null\n\t\t\t\t? params.get('utm_source')\n\t\t\t\t: document.referrer,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tconst setupAcceptPolicyDocuments = () => {\n\t\tconst acceptedPolicies = {}\n\t\tconst snippetIds = allPolicyDocument.edges.map(({ node }) => {\n\t\t\tacceptedPolicies[node.id] = false\n\t\t\treturn buildSnippetKey(node)\n\t\t})\n\n\t\tsetState(acceptedPolicies)\n\n\t\tconst matchingNodes = allSnippet.edges.reduce(\n\t\t\t(nodesWithSnippetThatMatches, node) => {\n\t\t\t\tnode.node.editables.forEach((editable) => {\n\t\t\t\t\tfor (let snippetId in snippetIds) {\n\t\t\t\t\t\tif (editable.value === snippetIds[snippetId]) {\n\t\t\t\t\t\t\tnodesWithSnippetThatMatches.push(node.node)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn nodesWithSnippetThatMatches\n\t\t\t},\n\t\t\t[],\n\t\t)\n\n\t\tconst snippetValuesResult = matchingNodes.reduce((result, node) => {\n\t\t\tvar localSnippetValues = []\n\t\t\tnode.editables.forEach((editable) => {\n\t\t\t\tlocalSnippetValues[editable.name] = editable.value\n\t\t\t})\n\t\t\tresult[localSnippetValues.policyDocument] = localSnippetValues\n\t\t\treturn result\n\t\t}, [])\n\t\tsetSnippetValues(snippetValuesResult)\n\t}\n\n\tconst t = useTranslations()\n\tconst { doSetCustomerInfo, customerInfo, doLoginCustomer } = useConnect(\n\t\t'doSetCustomerInfo',\n\t\t'selectCustomerInfo',\n\t\t'doLoginCustomer',\n\t)\n\n\tuseEffect(() => {\n\t\tsetupAcceptPolicyDocuments()\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/contactinformation`,\n\t\t\t`User is typing in contact information`,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tsessionStorage.getItem('b2b-invite') !== null &&\n\t\t\tsessionStorage.getItem('b2b-invite') === 'showField'\n\t\t) {\n\t\t\tsetShowBusinessField(true)\n\t\t} else if (sessionStorage.getItem('b2b-invite') !== null) {\n\t\t\tsetBusinessCodeValue(sessionStorage.getItem('b2b-invite'))\n\t\t} else {\n\t\t\tsetBusinessCodeValue('notBusiness')\n\t\t}\n\t}, [])\n\n\tconst checkPolicyDocument = (nodeId, value) => {\n\t\tconst values = { ...state }\n\t\tvalues[nodeId] = value\n\t\tsetState(values)\n\t}\n\n\tconst hasAcceptedAllDocuments = () => {\n\t\tfor (let nodeId in state) {\n\t\t\tif (!state[nodeId]) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function createCustomer(userData) {\n\t\tconst policy_document_agreements = []\n\t\tfor (let documentId in state) {\n\t\t\tallPolicyDocument.edges.filter(({ node }) => {\n\t\t\t\tif (node.id === documentId) {\n\t\t\t\t\tpolicy_document_agreements.push({\n\t\t\t\t\t\tpolicy_document: documentId,\n\t\t\t\t\t\tdocument_version: node.documentVersion,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\ttry {\n\t\t\tsetLoading(true)\n\n\t\t\tlet customerInformation = {\n\t\t\t\tfirst_name: userData.firstName,\n\t\t\t\tlast_name: userData.lastName,\n\t\t\t\temail: userData.email,\n\t\t\t\tpassword: userData.password,\n\t\t\t\tphone_number: userData.phonenumber,\n\t\t\t\tpolicy_document_agreements,\n\t\t\t\tconsent_decisions: [],\n\t\t\t\tsource_url: source,\n\t\t\t\tmedium: medium,\n\t\t\t}\n\t\t\tif (typeof sessionStorage.getItem('id') === 'string') {\n\t\t\t\tcustomerInformation.external_membership_number = sessionStorage.getItem(\n\t\t\t\t\t'id',\n\t\t\t\t)\n\t\t\t\tif (typeof sessionStorage.getItem('linksource') === 'string') {\n\t\t\t\t\tcustomerInformation.raf_source = sessionStorage.getItem('linksource')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (userData.businessCode !== 'notBusiness') {\n\t\t\t\tcustomerInformation.business_profile_activation_code =\n\t\t\t\t\tuserData.businessCode\n\t\t\t}\n\n\t\t\tconst response = await azureApiGatewayPost(\n\t\t\t\t'customer',\n\t\t\t\tcustomerInformation,\n\t\t\t\t{\n\t\t\t\t\tparams: { registration: true },\n\t\t\t\t},\n\t\t\t)\n\t\t\tdoSetCustomerInfo({\n\t\t\t\tcustomerId: response.data.id,\n\t\t\t\tfirstName: userData.firstName,\n\t\t\t\tlastName: userData.lastName,\n\t\t\t\temail: userData.email,\n\t\t\t\tphonenumber: userData.phonenumber,\n\t\t\t})\n\t\t\tawait doLoginCustomer(userData.email, userData.password, true)\n\t\t\tsessionStorage.removeItem('b2b-invite')\n\t\t\tsetNextStep(REGISTRATION_STEPS.VERIFY_MOBILE_NUMBER)\n\t\t\tsetLoading(false)\n\t\t} catch (error) {\n\t\t\tsetLoading(false)\n\t\t\tif (get(error, 'response.status') && error.response.status === 400) {\n\t\t\t\tif (get(error, 'response.data.messages.length') > 0) {\n\t\t\t\t\tif (\n\t\t\t\t\t\terror.response.data.messages.includes(\n\t\t\t\t\t\t\t'apigw.error.create.customer.already.exists.correct.password',\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\terror.response.data.messages.includes(\n\t\t\t\t\t\t\t'apigw.error.create.customer.already.exists.wrong.password',\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetError({\n\t\t\t\t\t\t\tmessage: error.response.data.messages[0],\n\t\t\t\t\t\t\tbuttonLabel: t('kinto.registration.go-to-login'),\n\t\t\t\t\t\t\tredirectOnClose: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t} else if (\n\t\t\t\t\t\terror.response.data.messages.includes(\n\t\t\t\t\t\t\t'apigw.error.create.customer.no.message.available',\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetError({\n\t\t\t\t\t\t\tmessage: error.response.data.messages[0],\n\t\t\t\t\t\t\tbuttonLabel: t('kinto.general.close'),\n\t\t\t\t\t\t\tredirectOnClose: false,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetError({\n\t\t\t\t\t\t\tmessage: error.response.data.messages.join(', '),\n\t\t\t\t\t\t\tbuttonLabel: t('kinto.general.close'),\n\t\t\t\t\t\t\tredirectOnClose: false,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetError({\n\t\t\t\tmessage: 'apigw.error.create.customer.no.message.available',\n\t\t\t\tbuttonLabel: t('kinto.general.close'),\n\t\t\t\tredirectOnClose: false,\n\t\t\t})\n\t\t\tremoteLogError(error.message)\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{(props) => {\n\t\t\t\t\tconst { values, dirty, isValid } = props\n\t\t\t\t\tconst disabled = !(isValid && dirty && hasAcceptedAllDocuments())\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showBusinessField && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{allPolicyDocument.edges.map(({ node }, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tcheckPolicyDocument(node.id, event.target.checked)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tname='userPolicy'\n\t\t\t\t\t\t\t\t\t\t\t\tcolor='primary'\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t(`kinto.register.policydocument-${node.id}`, [\n\t\t\t\t\t\t\t\t\t\t\tsnippetValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t])}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tcreateCustomer(values)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('kinto.general.next')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t}}\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default ContactInformation\n\nfunction buildSnippetKey(node) {\n\treturn `id${node.id}version${node.documentVersion}`\n}\n","import './AccountPages.scss'\nimport React, { useState, useEffect } from 'react'\nimport useTranslations from '@src/hooks/useTranslations'\nimport BEMHelper from 'react-bem-helper'\nimport { Formik } from 'formik'\nimport validator from '@src/form/validations'\nimport Phonenumber from '../Phonenumber'\nimport { useConnect } from 'redux-bundler-hook'\nimport FormContainer from '@src/components/FormContainer'\nimport Button from '@material-ui/core/Button'\nimport TextField from '@material-ui/core/TextField'\nimport { get } from 'lodash'\nimport {\n\tazureGetMobileVerificationCodeNewPhonenumber,\n\tazureGetMobileVerificationCode,\n\tazureApiGatewayPost,\n} from '@src/api/azureApiGateway/client'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport { REGISTRATION_STEPS } from '@src/components/account/Account'\n\nconst bem = new BEMHelper('registration-page')\n\nfunction MobileNumberVerificationPage({ setNextStep, setError, setLoading }) {\n\tconst t = useTranslations()\n\tconst [verificationCodeResent, setVerificationCodeResent] = useState(false)\n\n\tconst { customerInfo, doRefreshCustomerInfo } = useConnect(\n\t\t'selectCustomerInfo',\n\t\t'doRefreshCustomerInfo',\n\t)\n\n\tconst onResendCodeClicked = (phonenumber) => {\n\t\tsetVerificationCodeResent(true)\n\t\tgetMobileVerificationCode(phonenumber)\n\t}\n\n\tasync function getMobileVerificationCode(phonenumber) {\n\t\tsetLoading(true)\n\t\ttry {\n\t\t\tconst response =\n\t\t\t\tcustomerInfo.phonenumber === phonenumber\n\t\t\t\t\t? await azureGetMobileVerificationCode(\n\t\t\t\t\t\t\tcustomerInfo.customerId,\n\t\t\t\t\t\t\tphonenumber ? phonenumber : customerInfo.phonenumber,\n\t\t\t\t\t )\n\t\t\t\t\t: await azureGetMobileVerificationCodeNewPhonenumber(\n\t\t\t\t\t\t\tcustomerInfo.customerId,\n\t\t\t\t\t\t\tphonenumber ? phonenumber : customerInfo.phonenumber,\n\t\t\t\t\t )\n\t\t\tsetLoading(false)\n\t\t\treturn response\n\t\t} catch (error) {\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.send-mobile-verification-code',\n\t\t\t})\n\t\t\tsetLoading(false)\n\t\t}\n\t}\n\n\tconst onConfirmMobilePhone = async (verificationcode) => {\n\t\ttry {\n\t\t\tsetLoading(true)\n\t\t\tawait azureApiGatewayPost(\n\t\t\t\t`customer/${customerInfo.customerId}/verify_phonenumber`,\n\t\t\t\t{ verification_code: verificationcode },\n\t\t\t\t{ useToken: true, params: { registration: true } },\n\t\t\t)\n\t\t\tdoRefreshCustomerInfo()\n\t\t\tsetNextStep(REGISTRATION_STEPS.DRIVERS_LICENSE)\n\t\t\tsetLoading(false)\n\t\t} catch (error) {\n\t\t\tsetLoading(false)\n\t\t\tsetError({\n\t\t\t\tmessage: get(error, 'response.data.messages')\n\t\t\t\t\t? error.response.data.messages\n\t\t\t\t\t: 'kinto.error.could-not-confirm-phonenumber',\n\t\t\t})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/mobilenumberverificationpage/${customerInfo.customerId}`,\n\t\t\t`User with userid ${customerInfo.customerId} is verifying phone number`,\n\t\t)\n\t}, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{(props) => {\n\t\t\t\t\t\tconst { values, touched, errors, handleChange, handleBlur } = props\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t onConfirmMobilePhone(values.verificationcode)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('kinto.general.next')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{verificationCodeResent\n\t\t\t\t\t\t\t\t\t\t\t\t? t('kinto.register.validation-code-resent')\n\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t onResendCodeClicked(values.phonenumber)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('kinto.register.resend-validation-code')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default MobileNumberVerificationPage\n","import './AccountPages.scss'\nimport React, { useEffect } from 'react'\nimport { BrickResolver } from '@src/utils/BrickResolver'\nimport usePageContextData from '@src/utils/brickresolvers/usePageContextData'\nimport { pushSubscribe } from '@src/api/facebook/facebook'\nimport { googleAnalytics } from '@src/api/googleanalytics/googleAnalytics'\nimport { useConnect } from 'redux-bundler-hook'\nimport { SITE_TYPES } from '@src/bundles/site'\nimport { localizedUrl } from '@src/utils/navigate'\nimport { loadToken } from '@src/utils/tokenUtils'\n\nfunction SuccessPage({ customPageContext }) {\n\tconst {\n\t\tcustomerInfo,\n\t\tdoSetSiteType,\n\t\tdoRefreshCustomerInfo,\n\t\tlanguage,\n\t\tbusinessCustomer,\n\t\tservice,\n\t\tdoSetMembership,\n\t} = useConnect(\n\t\t'selectCustomerInfo',\n\t\t'doSetSiteType',\n\t\t'doRefreshCustomerInfo',\n\t\t'selectLanguage',\n\t\t'selectBusinessCustomer',\n\t\t'selectService',\n\t\t'doSetMembership',\n\t)\n\n\tuseEffect(() => {\n\t\tdoRefreshCustomerInfo()\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (businessCustomer) {\n\t\t\tdoSetSiteType(SITE_TYPES.BUSINESS)\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tuseEffect(() => {\n\t\tpushSubscribe('0.00', 'USD', '0.00')\n\t\tgoogleAnalytics.pushVirtualPageView(\n\t\t\t`/virtual/account/successpage/${customerInfo.customerId}`,\n\t\t\t`User with userid ${customerInfo.customerId} have successfully become a member`,\n\t\t)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [])\n\n\tconst azureData = {\n\t\ttoken: loadToken(),\n\t}\n\n\tconst addMembership = async () => {\n\t\tif (\n\t\t\tsessionStorage.getItem('membership') !== null &&\n\t\t\tcustomerInfo.validPaymentCard === true\n\t\t) {\n\t\t\ttry {\n\t\t\t\tconst requestOptions = {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Ocp-Apim-Subscription-Key': process.env.GATSBY_MM_API_GATEWAY_KEY,\n\t\t\t\t\t\t'Telematics-AuthToken': azureData.token,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\t\tmembership_id: sessionStorage.getItem('membership'),\n\t\t\t\t\t\tkinto_product: service,\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t\tfetch(\n\t\t\t\t\t`${process.env.GATSBY_MM_API_GATEWAY_BASE_URL}/customer/membership/`,\n\t\t\t\t\trequestOptions,\n\t\t\t\t)\n\t\t\t} catch (error) {\n\t\t\t\t// No error handling for now\n\t\t\t}\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\taddMembership()\n\t\tdoSetMembership()\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [customerInfo.validPaymentCard])\n\n\treturn (\n\t\t\n\t)\n}\n\nexport default SuccessPage\n","import './Account.scss'\nimport React, { useState, useEffect } from 'react'\nimport { useConnect } from 'redux-bundler-hook'\nimport useTranslations from '@src/hooks/useTranslations'\nimport BEMHelper from 'react-bem-helper'\nimport { navigate } from 'gatsby'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport Container from '@material-ui/core/Container'\nimport Divider from '@material-ui/core/Divider'\nimport AddDriversLicensePage from '@src/components/account/pages/AddDriversLicensePage'\nimport AddPaymentMethod from '@src/components/account/pages/AddPaymentMethod'\nimport ChooseAccountLevel from '@src/components/account/pages/ChooseAccountLevelPage'\nimport ConfirmDriversLicenseAndCreditCheckPage from '@src/components/account/pages/ConfirmDriversLicenseAndCreditCheckPage'\nimport ContactInformation from '@src/components/account/pages/ContactInformation'\nimport MobileNumberVerificationPage from '@src/components/account/pages/MobileNumberVerificationPage'\nimport SuccessPage from '@src/components/account/pages/SuccessPage'\nimport ErrorModal from '@src/components/ErrorModal'\nimport useSetting from '@src/hooks/useSetting'\n\nconst bem = new BEMHelper('registration')\n\nexport const REGISTRATION_STEPS = {\n\tCHOOSE_ACCOUNT_LEVEL: 1,\n\tCONTACT_INFORMATION: 2,\n\tVERIFY_MOBILE_NUMBER: 3,\n\tDRIVERS_LICENSE: 4,\n\tCONFIRM_DRIVERS_LICENSE_AND_CREDIT_CHECK: 5,\n\tSELECT_PAYMENT_METHOD: 6,\n\tSUCCESS_PAGE: 7,\n}\n\nconst ACCOUNT_TRANSLATIONS = {\n\t'1': {\n\t\ttitle: 'Välj din prisnivå',\n\t\tdescription:\n\t\t\t'Vi kommer använda uppgifterna för att kunna kontakta dig, din e-postadress kommer att vara ditt användarnamn.',\n\t},\n\t'2': {\n\t\ttitle: 'kinto.register.contact-info-title',\n\t\tdescription: 'kinto.register.contact-info-description',\n\t},\n\t'3': {\n\t\ttitle: 'kinto.register.phone-verification-title',\n\t\tdescription: 'kinto.register.phone-verification-description',\n\t},\n\t'4': {\n\t\ttitle: 'kinto.register.drivers-license-title',\n\t\tdescription: 'kinto.register.drivers-license-description',\n\t},\n\t'5': {\n\t\ttitle: 'kinto.register.drivers-license-and-credit-check-title',\n\t\tdescription: 'kinto.register.drivers-license-and-credit-check-description',\n\t\tbusinessTitle:\n\t\t\t'kinto.register.drivers-license-and-credit-check-title.business',\n\t\tbusinessDescription:\n\t\t\t'kinto.register.drivers-license-and-credit-check-description.business',\n\t},\n\t'6': {\n\t\ttitle: 'kinto.register.payment-title',\n\t\tdescription: 'kinto.register.payment-description',\n\t\tbusinessDescription: 'kinto.register.payment-description.business',\n\t},\n\t'7': {\n\t\ttitle: 'kinto.register.welcome-title',\n\t\tdescription: 'kinto.register.welcome-description',\n\t},\n}\n\nconst Account = ({ selectedPage = 2, customPageContext, location }) => {\n\tconst t = useTranslations()\n\tconst [currentStep, setCurrentStep] = useState(selectedPage)\n\tconst [error, setError] = useState(null)\n\tconst [loading, setLoading] = useState(false)\n\tconst getSetting = useSetting()\n\tconst salesforceLink = getSetting('salesforce_mypages')\n\tconst {\n\t\tbusinessCustomer,\n\t\tisMissingInformation,\n\t\tisCustomerLoggedIn,\n\t} = useConnect(\n\t\t'selectBusinessCustomer',\n\t\t'selectIsMissingInformation',\n\t\t'selectIsCustomerLoggedIn',\n\t)\n\n\tuseEffect(() => {\n\t\tsetCurrentStep(selectedPage)\n\t}, [selectedPage])\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tisCustomerLoggedIn &&\n\t\t\tisMissingInformation === false &&\n\t\t\tcurrentStep !== 6 &&\n\t\t\tcurrentStep !== 7\n\t\t) {\n\t\t\tif (salesforceLink === '') {\n\t\t\t\tnavigate(location.pathname.replace('kom-igang', 'boka-bil'))\n\t\t\t} else {\n\t\t\t\twindow.location.replace(salesforceLink)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isCustomerLoggedIn, isMissingInformation, currentStep])\n\n\tconst renderCurrentRegistrationStep = () => {\n\t\tlet Page = ContactInformation\n\t\tlet props = {}\n\t\tswitch (currentStep) {\n\t\t\tcase REGISTRATION_STEPS.CONTACT_INFORMATION:\n\t\t\t\tPage = ContactInformation\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.CHOOSE_ACCOUNT_LEVEL:\n\t\t\t\tPage = ChooseAccountLevel\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.VERIFY_MOBILE_NUMBER:\n\t\t\t\tPage = MobileNumberVerificationPage\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.DRIVERS_LICENSE:\n\t\t\t\tPage = AddDriversLicensePage\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.CONFIRM_DRIVERS_LICENSE_AND_CREDIT_CHECK:\n\t\t\t\tPage = ConfirmDriversLicenseAndCreditCheckPage\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.SELECT_PAYMENT_METHOD:\n\t\t\t\tPage = AddPaymentMethod\n\t\t\t\tbreak\n\t\t\tcase REGISTRATION_STEPS.SUCCESS_PAGE:\n\t\t\t\tPage = SuccessPage\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tPage = ContactInformation\n\t\t\t\tbreak\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t)\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{currentStep === 5 && businessCustomer\n\t\t\t\t\t\t? t(ACCOUNT_TRANSLATIONS[currentStep].businessTitle)\n\t\t\t\t\t\t: t(ACCOUNT_TRANSLATIONS[currentStep].title || 'kinto.unkown')}\n\t\t\t\t

\n\t\t\t\t{ACCOUNT_TRANSLATIONS[currentStep].description && (\n\t\t\t\t\t

\n\t\t\t\t\t\t{(currentStep === 6 || currentStep === 5) && businessCustomer\n\t\t\t\t\t\t\t? t(ACCOUNT_TRANSLATIONS[currentStep].businessDescription)\n\t\t\t\t\t\t\t: t(ACCOUNT_TRANSLATIONS[currentStep].description)}\n\t\t\t\t\t

\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t
{renderCurrentRegistrationStep()}
\n\t\t\t
\n\t\t\t{loading && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{error && (\n\t\t\t\t {\n\t\t\t\t\t\tsetError()\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcurrentStep ===\n\t\t\t\t\t\t\tREGISTRATION_STEPS.CONFIRM_DRIVERS_LICENSE_AND_CREDIT_CHECK\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tsetCurrentStep(REGISTRATION_STEPS.DRIVERS_LICENSE)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (error.redirectOnClose) {\n\t\t\t\t\t\t\tnavigate('/redirect?showLoginModal=true')\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tbuttonLabel={error.buttonLabel}\n\t\t\t\t>\n\t\t\t\t\t{error.message}\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t)\n}\n\nexport default Account\n","const push = (eventName, data) =>\n\tnew Promise((resolve, reject) => {\n\t\tif (!eventName) {\n\t\t\treject('No eventName specified to Facebook')\n\t\t}\n\n\t\tif (window['fbq']) {\n\t\t\tif (process.env.GATSBY_GOOGLE_SERVICE_LOG === 'true') {\n\t\t\t\tconsole.info('Pushing to Facebook: ', data)\n\t\t\t}\n\t\t\tresolve(window.fbq('track', eventName, data))\n\t\t} else {\n\t\t\tif (data.eventCallback) {\n\t\t\t\tdata.eventCallback()\n\t\t\t}\n\t\t\treject('Facebook not installed')\n\t\t}\n\t})\n\nexport const pushBooking = async () => {\n\treturn push('Schedule', null)\n}\n\nexport const pushSubscribe = async (\n\tsubscriptionValue,\n\tcurrency,\n\tpredictedLtv,\n) => {\n\treturn push('Subscribe', {\n\t\tvalue: subscriptionValue,\n\t\tcurrency: currency,\n\t\tpredicted_ltv: predictedLtv,\n\t})\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breakpointXs\":\"576px\",\"breakpointSm\":\"768px\",\"breakpointMd\":\"1024px\",\"breakpointLg\":\"1366px\",\"breakpointXl\":\"1680px\",\"colorBlack\":\"#2c353b\",\"colorWhite\":\"#fff\",\"colorPrimary\":\"#00708d\",\"colorPrimaryLight\":\"#389fb5\",\"colorPrimaryXLight\":\"#baefed\",\"colorPrimaryDark\":\"#01647d\",\"colorPrimaryXDark\":\"#015165\",\"colorError\":\"#d83a13\",\"colorInfo\":\"#327ea4\",\"colorSuccess\":\"#05874c\",\"colorBorder\":\"#e3e9eb\",\"colorBackground\":\"#f7f9f9\",\"colorBackgroundDark\":\"#e3e9eb\",\"colorTextDisabled\":\"#a8b7ba\",\"textReset\":\"none\"};","const charMap = {\n\t'&': 'and',\n\t'@': 'at',\n\t'©': 'c',\n\t'®': 'r',\n\tÀ: 'a',\n\tÁ: 'a',\n\tÂ: 'a',\n\tÄ: 'a',\n\tÅ: 'a',\n\tÆ: 'ae',\n\tÇ: 'c',\n\tÈ: 'e',\n\tÉ: 'e',\n\tË: 'e',\n\tÌ: 'i',\n\tÍ: 'i',\n\tÎ: 'i',\n\tÏ: 'i',\n\tÒ: 'o',\n\tÓ: 'o',\n\tÔ: 'o',\n\tÕ: 'o',\n\tÖ: 'o',\n\tØ: 'o',\n\tÙ: 'u',\n\tÚ: 'u',\n\tÛ: 'u',\n\tÜ: 'u',\n\tÝ: 'y',\n\tß: 'ss',\n\tà: 'a',\n\tá: 'a',\n\tâ: 'a',\n\tä: 'a',\n\tå: 'a',\n\tæ: 'ae',\n\tç: 'c',\n\tè: 'e',\n\té: 'e',\n\tê: 'e',\n\të: 'e',\n\tì: 'i',\n\tí: 'i',\n\tî: 'i',\n\tï: 'i',\n\tò: 'o',\n\tó: 'o',\n\tô: 'o',\n\tõ: 'o',\n\tö: 'o',\n\tø: 'o',\n\tù: 'u',\n\tú: 'u',\n\tû: 'u',\n\tü: 'u',\n\tý: 'y',\n\tþ: 'p',\n\tÿ: 'y',\n\tĀ: 'a',\n\tā: 'a',\n\tĂ: 'a',\n\tă: 'a',\n\tĄ: 'a',\n\tą: 'a',\n\tĆ: 'c',\n\tć: 'c',\n\tĈ: 'c',\n\tĉ: 'c',\n\tĊ: 'c',\n\tċ: 'c',\n\tČ: 'c',\n\tč: 'c',\n\tĎ: 'd',\n\tď: 'd',\n\tĐ: 'd',\n\tđ: 'd',\n\tĒ: 'e',\n\tē: 'e',\n\tĔ: 'e',\n\tĕ: 'e',\n\tĖ: 'e',\n\tė: 'e',\n\tĘ: 'e',\n\tę: 'e',\n\tĚ: 'e',\n\tě: 'e',\n\tĜ: 'g',\n\tĝ: 'g',\n\tĞ: 'g',\n\tğ: 'g',\n\tĠ: 'g',\n\tġ: 'g',\n\tĢ: 'g',\n\tģ: 'g',\n\tĤ: 'h',\n\tĥ: 'h',\n\tĦ: 'h',\n\tħ: 'h',\n\tĨ: 'i',\n\tĩ: 'i',\n\tĪ: 'i',\n\tī: 'i',\n\tĬ: 'i',\n\tĭ: 'i',\n\tĮ: 'i',\n\tį: 'i',\n\tİ: 'i',\n\tı: 'i',\n\tIJ: 'ij',\n\tij: 'ij',\n\tĴ: 'j',\n\tĵ: 'j',\n\tĶ: 'k',\n\tķ: 'k',\n\tĸ: 'k',\n\tĹ: 'l',\n\tĺ: 'l',\n\tĻ: 'l',\n\tļ: 'l',\n\tĽ: 'l',\n\tľ: 'l',\n\tĿ: 'l',\n\tŀ: 'l',\n\tŁ: 'l',\n\tł: 'l',\n\tŃ: 'n',\n\tń: 'n',\n\tŅ: 'n',\n\tņ: 'n',\n\tŇ: 'n',\n\tň: 'n',\n\tʼn: 'n',\n\tŊ: 'n',\n\tŋ: 'n',\n\tŌ: 'o',\n\tō: 'o',\n\tŎ: 'o',\n\tŏ: 'o',\n\tŐ: 'o',\n\tő: 'o',\n\tŒ: 'oe',\n\tœ: 'oe',\n\tŔ: 'r',\n\tŕ: 'r',\n\tŖ: 'r',\n\tŗ: 'r',\n\tŘ: 'r',\n\tř: 'r',\n\tŚ: 's',\n\tś: 's',\n\tŜ: 's',\n\tŝ: 's',\n\tŞ: 's',\n\tş: 's',\n\tŠ: 's',\n\tš: 's',\n\tŢ: 't',\n\tţ: 't',\n\tŤ: 't',\n\tť: 't',\n\tŦ: 't',\n\tŧ: 't',\n\tŨ: 'u',\n\tũ: 'u',\n\tŪ: 'u',\n\tū: 'u',\n\tŬ: 'u',\n\tŭ: 'u',\n\tŮ: 'u',\n\tů: 'u',\n\tŰ: 'u',\n\tű: 'u',\n\tŲ: 'u',\n\tų: 'u',\n\tŴ: 'w',\n\tŵ: 'w',\n\tŶ: 'y',\n\tŷ: 'y',\n\tŸ: 'y',\n\tŹ: 'z',\n\tź: 'z',\n\tŻ: 'z',\n\tż: 'z',\n\tŽ: 'z',\n\tž: 'z',\n\tſ: 'z',\n\tƏ: 'e',\n\tƒ: 'f',\n\tƠ: 'o',\n\tơ: 'o',\n\tƯ: 'u',\n\tư: 'u',\n\tǍ: 'a',\n\tǎ: 'a',\n\tǏ: 'i',\n\tǐ: 'i',\n\tǑ: 'o',\n\tǒ: 'o',\n\tǓ: 'u',\n\tǔ: 'u',\n\tǕ: 'u',\n\tǖ: 'u',\n\tǗ: 'u',\n\tǘ: 'u',\n\tǙ: 'u',\n\tǚ: 'u',\n\tǛ: 'u',\n\tǜ: 'u',\n\tǺ: 'a',\n\tǻ: 'a',\n\tǼ: 'ae',\n\tǽ: 'ae',\n\tǾ: 'o',\n\tǿ: 'o',\n\tə: 'e',\n\tЁ: 'jo',\n\tЄ: 'e',\n\tІ: 'i',\n\tЇ: 'i',\n\tА: 'a',\n\tБ: 'b',\n\tВ: 'v',\n\tГ: 'g',\n\tД: 'd',\n\tЕ: 'e',\n\tЖ: 'zh',\n\tЗ: 'z',\n\tИ: 'i',\n\tЙ: 'j',\n\tК: 'k',\n\tЛ: 'l',\n\tМ: 'm',\n\tН: 'n',\n\tО: 'o',\n\tП: 'p',\n\tР: 'r',\n\tС: 's',\n\tТ: 't',\n\tУ: 'u',\n\tФ: 'f',\n\tХ: 'h',\n\tЦ: 'c',\n\tЧ: 'ch',\n\tШ: 'sh',\n\tЩ: 'sch',\n\tЪ: '-',\n\tЫ: 'y',\n\tЬ: '-',\n\tЭ: 'je',\n\tЮ: 'ju',\n\tЯ: 'ja',\n\tа: 'a',\n\tб: 'b',\n\tв: 'v',\n\tг: 'g',\n\tд: 'd',\n\tе: 'e',\n\tж: 'zh',\n\tз: 'z',\n\tи: 'i',\n\tй: 'j',\n\tк: 'k',\n\tл: 'l',\n\tм: 'm',\n\tн: 'n',\n\tо: 'o',\n\tп: 'p',\n\tр: 'r',\n\tс: 's',\n\tт: 't',\n\tу: 'u',\n\tф: 'f',\n\tх: 'h',\n\tц: 'c',\n\tч: 'ch',\n\tш: 'sh',\n\tщ: 'sch',\n\tъ: '-',\n\tы: 'y',\n\tь: '-',\n\tэ: 'je',\n\tю: 'ju',\n\tя: 'ja',\n\tё: 'jo',\n\tє: 'e',\n\tі: 'i',\n\tї: 'i',\n\tҐ: 'g',\n\tґ: 'g',\n\tא: 'a',\n\tב: 'b',\n\tג: 'g',\n\tד: 'd',\n\tה: 'h',\n\tו: 'v',\n\tז: 'z',\n\tח: 'h',\n\tט: 't',\n\tי: 'i',\n\tך: 'k',\n\tכ: 'k',\n\tל: 'l',\n\tם: 'm',\n\tמ: 'm',\n\tן: 'n',\n\tנ: 'n',\n\tס: 's',\n\tע: 'e',\n\tף: 'p',\n\tפ: 'p',\n\tץ: 'C',\n\tצ: 'c',\n\tק: 'q',\n\tר: 'r',\n\tש: 'w',\n\tת: 't',\n\t'™': 'tm',\n}\n\nexport const getProductSlug = ({ name, sku }) => {\n\tconst formattedName = [...name.split('')]\n\t\t.map((char) => (charMap[char] ? charMap[char] : char))\n\t\t.join('')\n\t\t.replace(/[^0-9a-z]+/gi, '-')\n\t\t.toLowerCase()\n\t\t.trim()\n\treturn `${formattedName}-p${sku}`\n}\n","import Client from '@src/api/abstract-rest-client'\nimport { getProductSlug } from '@src/utils/slug'\nimport { get } from 'lodash'\n\nconst client = new Client()\n\nexport async function getProductData({ name, sku }) {\n\tconst result = await client.get({\n\t\tendpoint: `/page-data/${getProductSlug({ name, sku })}/page-data.json`,\n\t})\n\treturn get(result, 'result.pageContext.product')\n}\n\nexport async function getPageContext({ pageName = '' }) {\n\tconst formattedPageName = pageName.startsWith('/')\n\t\t? pageName.substr(1)\n\t\t: pageName\n\n\tconst result = await client.get({\n\t\tendpoint: `/page-data/${formattedPageName}/page-data.json`,\n\t})\n\n\treturn get(result, 'result.pageContext')\n}\n","import { useState, useEffect } from 'react'\nimport { getPageContext } from '@src/api/internal/client'\n\nconst usePageContextData = ({ pageName }) => {\n\tconst [pageContextData, setPageContextData] = useState(null)\n\n\tuseEffect(() => {\n\t\tif (pageName) {\n\t\t\tconst loadPageContextData = async () => {\n\t\t\t\tconst pageContext = await getPageContext({ pageName })\n\n\t\t\t\tsetPageContextData(pageContext)\n\t\t\t}\n\n\t\t\tloadPageContextData()\n\t\t}\n\t}, [pageName])\n\n\treturn pageContextData\n}\n\nexport default usePageContextData\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breakpointXs\":\"576px\",\"breakpointSm\":\"768px\",\"breakpointMd\":\"1024px\",\"breakpointLg\":\"1366px\",\"breakpointXl\":\"1680px\",\"colorBlack\":\"#2c353b\",\"colorWhite\":\"#fff\",\"colorPrimary\":\"#00708d\",\"colorPrimaryLight\":\"#389fb5\",\"colorPrimaryXLight\":\"#baefed\",\"colorPrimaryDark\":\"#01647d\",\"colorPrimaryXDark\":\"#015165\",\"colorError\":\"#d83a13\",\"colorInfo\":\"#327ea4\",\"colorSuccess\":\"#05874c\",\"colorBorder\":\"#e3e9eb\",\"colorBackground\":\"#f7f9f9\",\"colorBackgroundDark\":\"#e3e9eb\",\"colorTextDisabled\":\"#a8b7ba\",\"textReset\":\"none\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breakpointXs\":\"576px\",\"breakpointSm\":\"768px\",\"breakpointMd\":\"1024px\",\"breakpointLg\":\"1366px\",\"breakpointXl\":\"1680px\",\"colorBlack\":\"#2c353b\",\"colorWhite\":\"#fff\",\"colorPrimary\":\"#00708d\",\"colorPrimaryLight\":\"#389fb5\",\"colorPrimaryXLight\":\"#baefed\",\"colorPrimaryDark\":\"#01647d\",\"colorPrimaryXDark\":\"#015165\",\"colorError\":\"#d83a13\",\"colorInfo\":\"#327ea4\",\"colorSuccess\":\"#05874c\",\"colorBorder\":\"#e3e9eb\",\"colorBackground\":\"#f7f9f9\",\"colorBackgroundDark\":\"#e3e9eb\",\"colorTextDisabled\":\"#a8b7ba\",\"textReset\":\"none\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breakpointXs\":\"576px\",\"breakpointSm\":\"768px\",\"breakpointMd\":\"1024px\",\"breakpointLg\":\"1366px\",\"breakpointXl\":\"1680px\",\"colorBlack\":\"#2c353b\",\"colorWhite\":\"#fff\",\"colorPrimary\":\"#00708d\",\"colorPrimaryLight\":\"#389fb5\",\"colorPrimaryXLight\":\"#baefed\",\"colorPrimaryDark\":\"#01647d\",\"colorPrimaryXDark\":\"#015165\",\"colorError\":\"#d83a13\",\"colorInfo\":\"#327ea4\",\"colorSuccess\":\"#05874c\",\"colorBorder\":\"#e3e9eb\",\"colorBackground\":\"#f7f9f9\",\"colorBackgroundDark\":\"#e3e9eb\",\"colorTextDisabled\":\"#a8b7ba\",\"textReset\":\"none\"};"],"sourceRoot":""}