{"version":3,"file":"js/signup-d356b9d1c04d4dce4ac9.js","mappings":"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","sources":["webpack://booqable/./webpack/signup/application.js","webpack://booqable/./webpack/signup/redux/reducers/signup.js","webpack://booqable/./webpack/signup/redux/reducers/index.js","webpack://booqable/./webpack/signup/redux/store.js","webpack://booqable/./webpack/signup/lib/axios.js","webpack://booqable/./webpack/signup/redux/actions/signup.js","webpack://booqable/./webpack/signup/utils/event_tracker.js","webpack://booqable/./webpack/signup/components/ReadOnlyModeBar.jsx","webpack://booqable/./webpack/signup/blocks/Logo/styles.js","webpack://booqable/./webpack/signup/blocks/Logo/index.js","webpack://booqable/./webpack/signup/components/Logo.jsx","webpack://booqable/./webpack/signup/components/SignIn.jsx","webpack://booqable/./webpack/signup/components/LocaleSwitcher.jsx","webpack://booqable/./webpack/shared/utils/reviews.js","webpack://booqable/./webpack/signup/components/Layout.jsx","webpack://booqable/./webpack/signup/utils/email_validation.js","webpack://booqable/./webpack/signup/react/Step1.jsx","webpack://booqable/./webpack/signup/components/Select.jsx","webpack://booqable/./webpack/shared/utils/selectOptions.js","webpack://booqable/./webpack/signup/react/Step2.jsx","webpack://booqable/./webpack/shared/utils/arrayToSelect.js","webpack://booqable/./webpack/signup/react/static/marketingData.jsx","webpack://booqable/./webpack/signup/react/Step3.jsx","webpack://booqable/./webpack/signup/react/Step4.jsx","webpack://booqable/./webpack/signup/react/completing.jsx","webpack://booqable/./webpack/signup/react/app.jsx","webpack://booqable/./webpack/ui/blocks/ActionGroup/styles.js","webpack://booqable/./webpack/ui/elements/Img.js"],"sourcesContent":["// Polyfills for older and crappy browsers\nimport 'core-js'\n\n// Intialize App\nrequire('./react/app')\n","import { Record } from 'immutable'\nimport pick from 'lodash/pick'\n\nconst SignupRecord = Record({\n id: undefined,\n created: undefined,\n identifier: undefined,\n company_available: undefined,\n ready: false,\n slug: undefined,\n authentication_token: undefined,\n is_eu: undefined,\n employee_id: undefined,\n company_id: undefined,\n tracking_data: undefined,\n read_only_mode: false,\n theme: undefined,\n\n // Marketing data\n source: undefined,\n medium: undefined,\n campaign: undefined,\n keyword: undefined,\n gclid: undefined,\n\n // Set by SignupSaver\n timezone: undefined,\n currency: undefined,\n\n // Step 1\n email: undefined,\n password: undefined,\n company_name: undefined,\n\n // Step 2\n firstname: undefined,\n lastname: undefined,\n country: undefined,\n phone: undefined,\n\n // Step 3\n market: undefined,\n products: undefined,\n extra_products: undefined,\n\n // Step 4\n year_business_start: undefined,\n revenue_last_year: undefined,\n team_size: undefined,\n\n data: {}\n})\n\nconst initialState = new SignupRecord()\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case 'SIGNUP_FETCH_COMPLETE':\n state.forEach((_, key) => {\n const newValue = action.payload[key]\n\n // Do not overwrite existing state\n if (newValue !== undefined && state.has(key)) {\n state = state.set(key, newValue)\n }\n })\n\n return state\n case 'SIGNUP_SET_INITIAL_VALUES_SUCCESS':\n case 'SIGNUP_FETCH_COMPANY_AVAILABILITY_SUCCESS':\n case 'SIGNUP_CREATE_SUCCESS':\n case 'SIGNUP_UPDATE_SUCCESS':\n case 'SIGNUP_COMPLETE_SUCCESS':\n case 'SIGNUP_READY_SUCCESS':\n case 'SIGNUP_FETCH_IS_EU_SUCCESS':\n return state.merge(pick(action.payload, state._keys))\n case 'SET_READ_ONLY_MODE':\n return state.set('read_only_mode', action.payload.read_only_mode)\n default:\n return state\n }\n}\n","import { combineReducers } from 'redux'\nimport uiConnect from 'shared/redux/interface'\nimport signupReducer from './signup'\n\nconst rootReducer = combineReducers({\n signup: signupReducer,\n interface: uiConnect.reducer\n})\n\nexport default rootReducer\n","// Import dependencies\nimport { createStore, applyMiddleware, compose } from 'redux'\nimport thunkMiddleware from 'redux-thunk'\nimport rootReducer from './reducers/index'\n\n// Define middlewares array\nconst middlewares = [\n thunkMiddleware\n]\n\n// Apply middleware\nlet middleware = applyMiddleware(...middlewares)\n\n// Optionally integrate Redux DevTools Extension\nif (window.__REDUX_DEVTOOLS_EXTENSION__) {\n middleware = compose(middleware, window.__REDUX_DEVTOOLS_EXTENSION__())\n}\n\n// Create store\nconst store = createStore(rootReducer, {}, middleware)\n\n// Export the store\nexport default store\n","import axios from 'axios'\nimport store from 'signup/redux/store'\nimport { Promise } from 'bluebird'\n\nconst instance = axios.create()\n\n// Bluebird config\nPromise.config({\n warnings: false\n})\n\nPromise.onPossiblyUnhandledRejection((error) => {\n if (error && error?.message !== 'requestError') {\n throw error\n }\n})\n\nconst handleResponse = (response) => {\n if (response.headers['x-read-only-mode'] === 'true') {\n store.dispatch({ type: 'SET_READ_ONLY_MODE', payload: { read_only_mode: true } })\n }\n}\n\nconst handleSuccess = (response) => {\n handleResponse(response)\n\n return response\n}\n\nconst handleError = (error) => {\n handleResponse(error.response)\n\n return Promise.reject(error)\n}\n\ninstance.interceptors.response.use(handleSuccess, handleError)\n\nexport default instance\n","import Cookies from 'js-cookie'\nimport axios from 'signup/lib/axios'\nimport store from '../store'\n\nconst SignupActions = {\n setInitialValues: (values) => (\n store.dispatch({\n type: 'SIGNUP_SET_INITIAL_VALUES_SUCCESS',\n payload: values\n })\n ),\n\n fetch: (id) => {\n return axios.get(`/signups/${id}`).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_FETCH_COMPLETE',\n payload: response.data\n })\n })\n },\n\n create: (values) => {\n window.created = true\n values.identifier = window.id\n\n return axios.post('/signups', { signup: values }).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_CREATE_SUCCESS',\n payload: values\n })\n })\n },\n\n autoSave: (id, values) => {\n return axios.patch(`/signups/${id}`, { signup: values })\n },\n\n update: (id, values) => {\n return axios.patch(`/signups/${id}`, { signup: values }).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_UPDATE_SUCCESS',\n payload: response.data\n })\n })\n },\n\n checkCompanyAvailability: (companyName) => {\n return axios.post('/signups/company_available', { company_name: companyName }).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_FETCH_COMPANY_AVAILABILITY_SUCCESS',\n payload: {\n company_available: response.data.available\n }\n })\n })\n },\n\n complete: (id, values) => {\n return axios.put(`/${window.locale}/signups/${id}/complete`, { signup: values }).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_COMPLETE_SUCCESS',\n payload: values\n })\n })\n },\n\n isReady: (id) => {\n return axios.get(`/signups/${id}/ready`).then((response) => {\n return store.dispatch({\n type: 'SIGNUP_COMPLETE_SUCCESS',\n payload: response.data\n })\n })\n },\n\n identify: () => {\n return axios.get(`${window.booqableProtocol}://identify.${window.booqableUrl}/location.json`).then((response) => {\n Cookies.set('identification.location', response.data.country_code, { expires: 1 })\n\n return store.dispatch({\n type: 'SIGNUP_FETCH_IS_EU_SUCCESS',\n payload: {\n is_eu: response.data.is_eu\n }\n })\n })\n }\n}\n\nexport default SignupActions\n","// Assuming lodash/merge is available as an ES module.\nimport merge from 'lodash/merge'\n\nclass EventTracker {\n // Simple EventTracker system that tracks events by posting to a specific URL.\n constructor () {\n this.globalData = {}\n }\n\n // Track event.\n //\n // @example\n // EventTracker.track('Signup', { company_name: 'Some name' }, callback)\n static track (name, data, callback) {\n data = merge({}, this.globalData, data)\n\n window.data = data\n\n if (window.environment === 'development') {\n console.log(`%c EventTracker track: ${name}, ${JSON.stringify(data)}`, 'color: #24ad4e')\n }\n\n this.__submit(name, data, callback)\n }\n\n static alias (anonymousId, callback) {\n window.analytics?.alias?.(anonymousId, callback) ?? callback?.()\n }\n\n static identify (id, data, callback) {\n window.analytics?.identify?.(id, data, callback) ?? callback?.()\n }\n\n static group (id, data, callback) {\n window.analytics?.group?.(id, data, callback) ?? callback?.()\n }\n\n static page () {\n window.analytics?.page?.()\n }\n\n // Private method for submitting data\n static __submit (name, data, callback) {\n window.analytics?.track?.(name, data, {}, callback) ?? callback?.()\n }\n}\n\nexport default EventTracker\n","// Libraries\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\nimport { withTranslation } from 'shared/utils/withTranslation'\n\n// Components\nimport NoticeBar from 'ui/components/NoticeBar'\nimport Link from 'ui/components/Link'\n\nexport class ReadOnlyModeBar extends Component {\n static displayName = 'ReadOnlyModeBar'\n\n static propTypes = {\n t: PropTypes.func.isRequired,\n readOnlyMode: PropTypes.bool.isRequired\n }\n\n render () {\n const { t } = this.props\n\n if (!this.props.readOnlyMode) return null\n\n return (\n \n {t('signup.maintenance.title')}\n {' '}\n \n {t('signup.maintenance.description')}\n \n \n )\n }\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n readOnlyMode: state.signup.read_only_mode\n }\n}\n\nconst DecoratedComponent = reduxPureConnect(mapStateToProps)(ReadOnlyModeBar)\n\nexport default withTranslation('signup')(DecoratedComponent)\n","import styled from 'styled-components'\n\nimport Div from 'ui/elements/Div'\nimport Img from 'ui/elements/Img'\nimport H1 from 'ui/elements/H1'\n\nexport const Logo = styled(Div)``\n\nexport const Title = styled(H1)`\n /* The title is hidden, but it's still there for SEO purposes */\n font-size: 0;\n line-height: 0;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n`\n\nexport const Image = styled(Img)`\n height: 35px;\n margin: 25px 0 0 75px;\n\n @media (max-width: 625px) {\n margin: 25px 0 0 25px;\n }\n\n @media (max-width: 800px) {\n margin-top: 30px;\n margin-bottom: 24px;\n width: 170px;\n height: auto;\n }\n`\n","import { Logo, Image, Title } from './styles'\n\nLogo.Image = Image\nLogo.Title = Title\nexport default Logo\n","// React & Co.\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// Components\nimport Div from 'ui/elements/Div'\nimport Link from 'ui/components/Link'\nimport BLogo from 'signup/blocks/Logo'\n\n// Assets\nimport logo from '@assets/images/logo.svg'\n\nfunction Logo ({ modifiers }) {\n let url = 'https://booqable.com'\n\n if (window.locale !== 'en') {\n url = `https://booqable.com/${window.locale}`\n }\n\n const nestedModifiers = typeof modifiers === 'object' ? modifiers : { self: modifiers }\n\n return (\n
\n \n \n Booqable\n \n
\n )\n}\n\nLogo.propTypes = {\n modifiers: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ])\n}\n\nexport default Logo\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\n\n// Components\nimport Div from 'ui/elements/Div'\nimport Link from 'ui/components/Link'\nimport Span from 'ui/elements/Span'\n\nclass SignIn extends React.Component {\n static displayName = 'SignIn'\n\n static propTypes = {\n modifiers: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n t: PropTypes.func.isRequired\n }\n\n trackLinkClick = () => {\n EventTracker.track('Signup: Clicked login link', {}, () => {\n window.location = `${window.booqableProtocol}://login.${window.booqableUrl}`\n })\n }\n\n render () {\n const { modifiers, t } = this.props\n\n const nestedModifiers = typeof modifiers === 'object' ? modifiers : { self: modifiers }\n\n return (\n
\n \n {t('signup.already_registered')}\n \n {' '}\n \n {t('signup.login')}\n \n
\n )\n }\n}\n\nexport default withTranslation('signup')(SignIn)\n","// React & Co.\nimport React, { Fragment } from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\nimport i18n from 'i18next'\n\n// Components\nimport Div from 'ui/elements/Div'\nimport Icon from 'ui/components/Icon'\nimport Select from 'ui/components/Select'\n\n// Shared\nimport locales from 'shared/constants/locales'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\nimport EventTracker from 'back_office/v2/utils/event_tracker'\n\nclass LocaleSwitcher extends React.Component {\n static displayName = 'LocaleSwitcher'\n\n static propTypes = {\n modifiers: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ])\n }\n\n state = {\n locale: {}\n }\n\n componentDidMount = () => {\n if (Object.keys(this.state.locale).length === 0) this.determineLocale(window.locale)\n }\n\n determineLocale = (locale) => {\n const fallbackLocale = locales.find((obj) => { return obj.value === 'en' })\n const selectedLocale = locales.find((obj) => {\n return obj.value === locale\n }) || fallbackLocale\n\n this.setState({\n locale: selectedLocale\n })\n }\n\n handleLocaleChange = (locale) => {\n i18n.changeLanguage(locale)\n window.locale = locale\n\n const pathWithLocale = location.pathname.split('/')\n\n // Change the locale in the current path\n // Example: /pt_BR/step-1 -> /fr/step-1\n pathWithLocale[1] = locale\n\n const path = pathWithLocale.join('/')\n\n RoutingUtils.navigate(path)\n\n EventTracker.track('Switched signup locale', { locale })\n }\n\n render () {\n const { value, short } = this.state.locale\n const { modifiers } = this.props\n\n const nestedModifiers = typeof modifiers === 'object' ? modifiers : { self: modifiers }\n\n return (\n
\n \n {short}\n \n )\n }}\n options={locales}\n isSearchable={false}\n onChange={this.handleLocaleChange}\n forceValue\n forceOnChange\n size=\"sm\"\n data-tid=\"Locale switcher\"\n />\n
\n )\n }\n}\n\nexport default LocaleSwitcher\n","import sample from 'lodash/sample'\n\nimport saskatoonPartyRentals from '@assets/images/reviews/saskatoon-party-rentals.png'\nimport bubbleHire from '@assets/images/reviews/bubble-hire.png'\nimport fomoRentals from '@assets/images/reviews/fomo-rentals.png'\nimport goldCoastAudio from '@assets/images/reviews/gold-coast-audio.png'\nimport hireLoveLogo from '@assets/images/reviews/hire-love.png'\nimport islandDogLogo from '@assets/images/reviews/island-dog.png'\nimport refinedRentals from '@assets/images/reviews/refined-rentals.png'\nimport sydneyPaHire from '@assets/images/reviews/sydney-pa-hire.png'\nimport treasuredVintage from '@assets/images/reviews/treasured-vintage.png'\nimport twoElements from '@assets/images/reviews/two-elements.png'\nimport equipmentCafe from '@assets/images/reviews/equipment-cafe.png'\nimport juistPirates from '@assets/images/reviews/juist-pirates.png'\nimport hookStudios from '@assets/images/reviews/hook-studios.png'\nimport mintSage from '@assets/images/reviews/mint-sage.png'\nimport rentForEvents from '@assets/images/reviews/rent-for-events.png'\nimport modernMusicianHire from '@assets/images/reviews/modern-musician-hire.png'\nimport laMelange from '@assets/images/reviews/la-melange.png'\nimport bikePacker from '@assets/images/reviews/bike-packer.png'\nimport deinKameraverleih from '@assets/images/reviews/dein-kameraverleih.png'\nimport tableTopPartyRentals from '@assets/images/reviews/table-top-party-rentals.png'\nimport theCottage from '@assets/images/reviews/the-cottage.png'\nimport eventEnvy from '@assets/images/reviews/event-envy.png'\nimport theJumpingPartyCo from '@assets/images/reviews/the-jumping-party-co.png'\nimport alpine from '@assets/images/reviews/alpine.png'\nimport ventureOut from '@assets/images/reviews/venture-out.png'\nimport johnFMcclellan from '@assets/images/reviews/john-f-mcclellan.png'\n\nconst REVIEWS = {\n general: [\n {\n key: 'treasured_vintage',\n name: 'Jane McPherson',\n company: 'Treasured Vintage Rentals',\n image: treasuredVintage,\n industry: 'Event / Party'\n },\n {\n key: 'sydney_pa_hire',\n name: 'Lee Wright',\n company: 'Sydney PA Hire',\n image: sydneyPaHire,\n industry: 'AV / Camera'\n },\n {\n key: 'refined_rentals',\n name: 'Hannah Davies',\n company: 'Refined Rentals LLC',\n image: refinedRentals,\n industry: 'Event / Party'\n },\n {\n key: 'two_elements',\n name: 'Chris Haysey',\n company: 'Two Elements',\n image: twoElements,\n industry: 'Bikes / Scooters'\n },\n {\n key: 'bubble_hire',\n name: 'Pete Fennell',\n company: 'Bubble Hire Essex',\n image: bubbleHire,\n industry: 'Event / Party'\n },\n {\n key: 'saskatoon_party_rentals',\n name: 'Lee Jones',\n company: 'Saskatoon Party Rentals',\n image: saskatoonPartyRentals,\n industry: 'Event / Party'\n },\n {\n key: 'gold_coast_audio',\n name: 'Thom Combe',\n company: 'Gold Coast Audio Hire',\n image: goldCoastAudio,\n industry: 'AV / Camera'\n },\n {\n key: 'island_dog',\n name: 'Julie Krontz',\n company: 'Island Dog Outdoors',\n image: islandDogLogo,\n industry: 'Sports / Activities'\n },\n {\n key: 'hire_love',\n name: 'David Baker',\n company: 'Hire Love UK',\n image: hireLoveLogo,\n industry: 'Event / Party'\n },\n {\n key: 'fomo_rentals',\n name: 'Jamie Bezencet',\n company: 'FOMO Rentals',\n image: fomoRentals,\n industry: 'AV / Camera'\n },\n {\n key: 'rent_for_events',\n name: 'Donella Yelavich',\n company: 'Rent for Events',\n image: rentForEvents,\n industry: 'Event / Party'\n },\n {\n key: 'modern_musician_hire',\n name: 'Nick Boron',\n company: 'Modern Musician Hire',\n image: modernMusicianHire,\n industry: 'Other'\n },\n {\n key: 'la_melange',\n name: 'Diana Safdie',\n company: 'La Melange',\n image: laMelange,\n industry: 'Event / Party'\n },\n {\n key: 'bike_packer',\n name: 'Olivia de Briey',\n company: 'Bike Packer',\n image: bikePacker,\n industry: 'Bikes / Scooters'\n },\n {\n key: 'dein_kameraverleih',\n name: 'Franz Lermer',\n company: 'Dein Kameraverleih',\n image: deinKameraverleih,\n industry: 'AV / Camera'\n },\n {\n key: 'table_top_party_rentals',\n name: 'Bernard Fraser',\n company: 'Table Top Party Rentals',\n image: tableTopPartyRentals,\n industry: 'Event / Party'\n },\n {\n key: 'the_cottage',\n name: 'Lisa Dowson',\n company: 'The Cottage Events',\n image: theCottage,\n industry: 'Event / Party'\n },\n {\n key: 'event_envy',\n name: 'Sheri Melanson',\n company: 'Event Envy',\n image: eventEnvy,\n industry: 'Event / Party'\n },\n {\n key: 'the_jumping_party_co',\n name: 'Abbey Kick',\n company: 'The Jumping Party Co',\n image: theJumpingPartyCo,\n industry: 'Event / Party'\n },\n {\n key: 'alpine',\n name: 'Zaineel Prasla',\n company: 'Alpine Rentals',\n image: alpine,\n industry: 'Event / Party'\n },\n {\n key: 'venture_out',\n name: 'Ashley MacLean',\n company: 'Venture Out Rentals',\n image: ventureOut,\n industry: 'Sports / Activities'\n },\n {\n key: 'john_f_mc_clellan',\n name: 'John F. McClellan',\n company: 'John F. McClellan Cinematographer',\n image: johnFMcclellan,\n industry: 'AV / Camera'\n }\n ],\n signup: [\n {\n key: 'gold_coast_audio',\n name: 'Thom Combe',\n company: 'Gold Coast Audio Hire',\n image: goldCoastAudio\n }\n ],\n barcodes: [\n {\n key: 'equipment_cafe',\n name: 'Jonathan Andel.',\n company: 'equipment.cafe',\n image: equipmentCafe\n }\n ],\n reports: [\n {\n key: 'hook_props',\n name: 'Zak M.',\n company: 'Hook Props',\n image: hookStudios\n },\n {\n key: 'juist_pirates_bikes',\n name: 'Carsten Peplow',\n company: 'Juist Pirates Bikes',\n image: juistPirates\n }\n ],\n coupons: [\n {\n key: 'mint_sage_events',\n name: 'Caitlin Taylor',\n company: 'Mint & Sage Events',\n image: mintSage\n }\n ]\n}\n\n/**\n * Return a random customer review\n * A context could be passed, to get a review for a specific context\n * Example: customerReview('barcodes')\n * General reviews can be filtered by industry\n * Example: customerReview('general', 'Event / Party')\n */\nexport default function customerReview (context = 'general', industry) {\n // Fallback to general reviews, if no specific context reviews are present\n if (!REVIEWS[context]) {\n context = 'general'\n }\n\n let pool = REVIEWS[context]\n\n if (context === 'general' && industry) {\n pool = pool.filter((review) => review.industry === industry)\n\n // Fallback when a industry has zero reviews, then we just take all general\n if (pool.length === 0) pool = REVIEWS[context]\n }\n\n const { key, name, company, image } = sample(pool)\n\n return {\n reviewKey: key,\n reviewName: name,\n reviewCompany: company,\n reviewImage: image\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\n\n// Libraries\nimport { withTranslation } from 'shared/utils/withTranslation'\n\n// Components\nimport { Row, Col } from 'ui/components/Grid'\nimport Div from 'ui/elements/Div'\nimport ReadyOnlyModeBar from './ReadOnlyModeBar'\nimport Logo from './Logo'\nimport SignIn from './SignIn'\nimport LocaleSwitcher from './LocaleSwitcher'\nimport Img from 'ui/elements/Img'\nimport H2 from 'ui/elements/H2'\nimport H3 from 'ui/elements/H3'\nimport H4 from 'ui/elements/H4'\nimport P from 'ui/elements/P'\nimport Strong from 'ui/elements/Strong'\nimport Badge from 'ui/components/Badge'\nimport B from 'ui/elements/B'\n\n// Shared\nimport customerReview from 'shared/utils/reviews'\n\n// Assets\nimport starFull from '@assets/images/signup/star-full.svg'\nimport starHalf from '@assets/images/signup/star-half.svg'\nimport logoCapterra from '@assets/images/signup/capterra-logo.svg'\nimport logoGetapp from '@assets/images/signup/getapp-logo.svg'\n\nclass SignupLayout extends React.Component {\n static displayName = 'SignupLayout'\n\n static propTypes = {\n step: PropTypes.number.isRequired,\n t: PropTypes.func.isRequired,\n Trans: PropTypes.func.isRequired,\n children: PropTypes.node,\n industry: PropTypes.string,\n subtitleBadge: PropTypes.bool,\n stepIndicator: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n values: PropTypes.object\n }\n\n state = {\n review: {}\n }\n\n componentDidMount = () => {\n // Sets the customer review based on the industry url parameter\n const industry = this.props.industry\n const context = industry ? 'general' : 'signup'\n\n this.setState({ review: customerReview(context, industry) })\n }\n\n render () {\n const { step, subtitleBadge, stepIndicator, t, Trans } = this.props\n const { reviewKey, reviewName, reviewCompany, reviewImage } = this.state.review\n\n return (\n
\n \n\n
\n
\n \n\n \n
\n \n\n \n\n \n\n
\n\n
\n {stepIndicator && (\n
\n {stepIndicator}\n
\n )}\n

\n {t(`signup.step_${step}.title`)}\n

\n {subtitleBadge && (\n \n }}\n />\n \n )}\n {!subtitleBadge && (\n

\n {t(`signup.step_${step}.subtitle`)}\n

\n )}\n
\n\n {this.props.children}\n
\n
\n \n\n \n
\n
\n

{t('common.social_proof.you_are_in_good_company')}

\n

\n “{t(`common.social_proof.reviews.${reviewKey}`)}“\n

\n\n
\n {reviewName}\n
\n {reviewName}\n
\n {reviewCompany}\n
\n
\n\n
\n
\n
\n \"Rating\n \"Rating\n \"Rating\n \"Rating\n \"Rating\n
\n
\n 4.8\n {' '}\n {t('signup.social_proof.overall_rating')}\n
\n {t('signup.social_proof.based_on_reviews')}\n
\n
\n
\n \"Capterra\"\n \"Getapp\"\n
\n
\n\n
\n
\n \n\n
\n
\n
\n
\n )\n }\n}\n\nconst mapStateToProps = (_state, props) => {\n return {\n industry: props.searchParams?.get('industry')\n }\n}\n\nconst decoratedComponent = reduxPureConnect(mapStateToProps, null)(SignupLayout)\n\nexport default withTranslation('signup')(decoratedComponent)\n","import MailChecker from 'mailchecker'\n\nconst emailValidation = (email) => MailChecker.isValid(email)\n\nexport default emailValidation\n","// React\nimport React, { Component, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\nimport { compose } from 'redux'\n\n// Libraries\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\nimport Yup from 'shared/utils/yup'\nimport _isEmpty from 'lodash/isEmpty'\nimport i18n from 'i18next'\n\n// Components\nimport Layout from 'signup/components/Layout'\nimport Checkbox from 'ui/components/Checkbox'\nimport Button from 'ui/components/Button'\nimport Link from 'ui/components/Link'\nimport BInputField from 'ui/blocks/InputField'\nimport Div from 'ui/elements/Div'\nimport Badge from 'ui/components/Badge'\nimport Hr from 'ui/elements/Hr'\n\n// Shared\nimport withForm, { Form, Field } from 'shared/form'\nimport SignupActions from 'signup/redux/actions/signup'\nimport emailValidation from 'signup/utils/email_validation'\nimport customerReview from 'shared/utils/reviews'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\nimport locales from 'shared/constants/locales'\n\nclass Step1 extends Component {\n static displayName = 'Step1'\n\n static propTypes = {\n t: PropTypes.func.isRequired,\n Trans: PropTypes.func.isRequired,\n // Data\n emailValid: PropTypes.bool,\n isEU: PropTypes.bool,\n values: PropTypes.shape({\n email: PropTypes.string,\n password: PropTypes.string,\n company_name: PropTypes.string\n }),\n fields: PropTypes.shape({\n agreement_accepted: PropTypes.bool,\n email_subscribed: PropTypes.bool\n }),\n industry: PropTypes.string,\n // Dispatch\n setInitialValues: PropTypes.func,\n setFieldValue: PropTypes.func,\n submitPromise: PropTypes.instanceOf(Promise),\n errors: PropTypes.object\n }\n\n state = {\n review: {}\n }\n\n componentDidMount = () => {\n this.checkLocale()\n this.props.setInitialValues()\n\n SignupActions.identify().then((response) => {\n if (!response.payload.is_eu) {\n this.props.setFieldValue('agreement_accepted', true)\n this.props.setFieldValue('email_subscribed', true)\n }\n })\n\n EventTracker.page()\n\n // Sets the customer review based on the industry url parameter\n const industry = this.props.industry\n const context = industry ? 'general' : 'signup'\n\n this.setState({ review: customerReview(context, industry) })\n }\n\n checkLocale = () => {\n // Make sure the requested locale is supported\n // Otherwise fallback to 'en'\n const supportedLocales = locales.map((o) => (o.value))\n\n if (!supportedLocales.includes(window.locale)) {\n window.locale = 'en'\n i18n.changeLanguage(window.locale).then(() => {\n RoutingUtils.navigate(`/${window.locale}`)\n })\n }\n }\n\n get termsOfServiceLink () {\n return (\n \n )\n }\n\n get privacyPolicyLink () {\n return (\n \n )\n }\n\n render = () => {\n const { submitPromise, errors, t, Trans } = this.props\n const showAgreementError = Object.keys(errors).length === 1 && errors.agreement_accepted\n\n return (\n \n
\n \n\n \n\n
\n\n \n\n {this.props.isEU && (\n \n
\n \n )}\n modifiers={{ label: showAgreementError ? 'text-Danger/Base' : '' }}\n />\n {showAgreementError && (\n \n {t('signup.fields.agreement.error')}\n \n )}\n
\n
\n \n
\n
\n )}\n\n {!this.props.isEU && (\n
\n \n
\n )}\n\n
\n \n {t('signup.start_trial')}\n \n\n
\n \n {t('signup.step_1.no_creditcard_required')}\n \n
\n
\n \n \n )\n }\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n isEU: typeof state.signup.is_eu !== typeof true || state.signup.is_eu,\n emailValid: Boolean(emailValidation(state.signup.email || props.searchParams.get('email'))),\n industry: props.searchParams.get('industry'),\n initialValues: {\n email: state.signup.email || '',\n password: state.signup.password || '',\n company_name: state.signup.company_name || '',\n agreement_accepted: false,\n email_subscribed: false\n },\n validateOnBlur: false,\n validateOnChange: false\n }\n}\n\nconst mapDispatchToProps = (_dispatch, props) => {\n const checkCompanyNameAvailability = async (value, resolve) => {\n const response = await SignupActions.checkCompanyAvailability(value)\n const available = Boolean(response?.payload?.company_available)\n\n resolve(available)\n }\n\n return {\n setInitialValues: (_signup) => {\n const values = {\n // A theme can be passed, which will be pre-installed on the account\n theme: props.searchParams.get('theme'),\n // Marketing\n source: props.searchParams.get('source') || props.searchParams.get('marketing_source') || props.searchParams.get('utm_source'),\n medium: props.searchParams.get('medium') || props.searchParams.get('marketing_medium') || props.searchParams.get('utm_medium'),\n campaign: props.searchParams.get('campaign') || props.searchParams.get('marketing_campaign') || props.searchParams.get('utm_campaign'),\n keyword: props.searchParams.get('keyword') || props.searchParams.get('marketing_keyword') || props.searchParams.get('utm_keyword') || props.searchParams.get('utm_term'),\n adgroup: props.searchParams.get('utm_adgroup'),\n ga_client_id: props.searchParams.get('ga_client_id'),\n gclid: props.searchParams.get('gclid')\n }\n\n // Save initial values if passed as url parameters\n if (\n values.theme ||\n values.source ||\n values.medium ||\n values.campaign ||\n values.keyword ||\n values.adgroup ||\n values.ga_client_id ||\n values.gclid\n ) {\n SignupActions.setInitialValues(values)\n\n // Navigate to remove the parameters from the url\n // We need to use setTimeout to be on the next render tick\n setTimeout(() => {\n RoutingUtils.navigate(`/${window.locale}`)\n }, 0)\n }\n\n if (!window.created) {\n SignupActions.create(values)\n\n EventTracker.track('Signup: Step 1', { industry: props.searchParams.get('industry') })\n } else {\n SignupActions.update(window.id, values)\n }\n },\n validationSchema: Yup.object().shape({\n email: Yup\n .string()\n .required()\n .email(),\n password: Yup\n .string()\n .required()\n .min(6),\n company_name: Yup\n .string()\n .required()\n .test(\n 'company_name',\n props.t('signup.company_name_is_taken'),\n (value) => {\n if (_isEmpty(value)) {\n return new Promise((resolve) => resolve())\n } else {\n return new Promise((resolve) => checkCompanyNameAvailability(value, resolve))\n }\n }\n ),\n agreement_accepted: Yup\n .boolean()\n .required()\n .oneOf([true])\n }),\n handleSubmit: (values) => {\n return SignupActions.update(window.id, values)\n },\n serverSuccess: () => {\n RoutingUtils.navigate(`${window.locale}/step-2`)\n }\n }\n}\n\nexport default compose(\n withTranslation('signup'),\n reduxPureConnect(mapStateToProps, mapDispatchToProps),\n withForm()\n)(Step1)\n","// React\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// Libraries\n\n// Components\nimport { Field } from 'shared/form'\n\n// Shared\nimport { withTranslation } from 'shared/utils/withTranslation'\n\nconst Select = (props) => {\n const {\n identifier,\n options,\n t,\n tReady,\n i18n\n } = props\n\n const description = tReady &&\n i18n.exists(`signup:signup.fields.${identifier}.description`) &&\n t(`signup.fields.${identifier}.description`)\n\n return (\n \n )\n}\n\nSelect.displayName = 'Select'\n\nSelect.propTypes = {\n identifier: PropTypes.string,\n options: PropTypes.any,\n t: PropTypes.func,\n tReady: PropTypes.any,\n i18n: PropTypes.object\n}\n\nexport default withTranslation('signup')(Select)\n","export function selectOptions (values) {\n const options = []\n\n for (const option in values) {\n if (Array.isArray(values)) {\n options.push({\n label: values[option],\n value: values[option]\n })\n } else {\n options.push({\n label: values[option],\n value: option\n })\n }\n }\n\n return options\n}\n","// React\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { compose } from 'redux'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\n\n// Libraries\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\nimport Yup from 'shared/utils/yup'\n\n// Components\nimport Layout from 'signup/components/Layout'\nimport Button from 'ui/components/Button'\nimport { Row, Col } from 'ui/components/Grid'\nimport Div from 'ui/elements/Div'\nimport Select from 'signup/components/Select'\n\n// Shared\nimport withForm, { Form, Field } from 'shared/form'\nimport SignupActions from 'signup/redux/actions/signup'\nimport countries from 'shared/constants/countries'\nimport { selectOptions } from 'shared/utils/selectOptions'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\n\nclass Step2 extends Component {\n static displayName = 'Step2'\n\n static propTypes = {\n // Data\n t: PropTypes.func.isRequired,\n values: PropTypes.shape({\n firstname: PropTypes.string,\n lastname: PropTypes.string,\n country: PropTypes.string,\n phone: PropTypes.string\n }),\n // Dispatch\n submitPromise: PropTypes.instanceOf(Promise)\n }\n\n componentDidMount = () => {\n EventTracker.page()\n EventTracker.track('Signup: Step 2')\n }\n\n render = () => {\n const { submitPromise, t } = this.props\n\n return (\n \n
\n \n \n \n \n\n \n \n \n \n\n \n\n \n\n
\n \n {t('signup.continue')}\n \n
\n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n initialValues: {\n firstname: state.signup.firstname || '',\n lastname: state.signup.lastname || '',\n country: state.signup.country || '',\n phone: state.signup.phone || ''\n },\n validateOnBlur: false,\n validateOnChange: false\n }\n}\n\nconst mapDispatchToProps = () => {\n return {\n validationSchema: Yup.object().shape({\n firstname: Yup\n .string()\n .required(),\n lastname: Yup\n .string()\n .required(),\n country: Yup\n .string()\n .required()\n .oneOf(countries),\n phone: Yup.string().when('phone', {\n is: (value) => value?.length > 0,\n then: Yup.string().phone(),\n otherwise: Yup.string()\n })\n }, [['phone', 'phone']]),\n handleSubmit: (values) => {\n return SignupActions.update(window.id, values)\n },\n serverSuccess: () => {\n RoutingUtils.navigate(`/${window.locale}/step-3`)\n }\n }\n}\n\nexport default compose(\n withTranslation('signup'),\n reduxPureConnect(mapStateToProps, mapDispatchToProps),\n withForm()\n)(Step2)\n","const arrayToSelect = (array) => {\n return array.map((value) => { return { value, label: value } })\n}\n\nexport default arrayToSelect\n","import i18n from 'i18next'\nimport arrayToSelect from 'shared/utils/arrayToSelect'\n\nconst arrayToSelectWithOriginal = (array, t) => {\n // Renders an arrayToSelect with the English translation as the value\n // So we only save the English value to our database\n const en = i18n.getFixedT('en', 'signup')\n\n return array.map((value) => { return { value: en(value), label: t(value) } })\n}\n\nexport const teamSizeData = () => {\n return arrayToSelect([\n '1',\n '2',\n '3-5',\n '6-10',\n '11-20',\n '20+'\n ])\n}\n\nexport const revenueLastYearData = () => {\n return arrayToSelect([\n '$0-$20,000',\n '$20,000-$50,000',\n '$50,000-$100,000',\n '$100,000-$250,000',\n '$250,000-$500,000',\n '$500,000-$1,250,000',\n '$1,250,000+'\n ])\n}\n\nexport const marketData = (t) => {\n return arrayToSelectWithOriginal([\n 'signup.markets.av_camera',\n 'signup.markets.event_party',\n 'signup.markets.bikes_scooters',\n 'signup.markets.sports_activities',\n 'signup.markets.boats_kayaks',\n 'signup.markets.tools_construction',\n 'signup.markets.motor_trailers',\n 'signup.markets.technology_it',\n 'signup.markets.house_storage',\n 'signup.markets.clothing',\n 'signup.markets.medical_healthcare',\n 'signup.markets.baby_child_care'\n ], t)\n}\n\nexport const productData = (t) => {\n const en = i18n.getFixedT('en', 'signup')\n const productData = {}\n\n productData[en('signup.markets.av_camera')] = arrayToSelectWithOriginal([\n 'signup.products.cameras_lenses',\n 'signup.products.sound_equipment',\n 'signup.products.lighting_gear',\n 'signup.products.dj_gear',\n 'signup.products.drones',\n 'signup.products.staging_equipment',\n 'signup.products.led_and_projectors',\n 'signup.products.studio'\n ], t)\n\n productData[en('signup.markets.event_party')] = arrayToSelectWithOriginal([\n 'signup.products.event_decor',\n 'signup.products.tents',\n 'signup.products.event_booths',\n 'signup.products.inflatables',\n 'signup.products.photo_booths',\n 'signup.products.neon_signs',\n 'signup.products.silent_disco',\n 'signup.products.catering_and_bb_qs',\n 'signup.products.hot_tubs',\n 'signup.products.portable_toilet_and_restroom_trailers',\n 'signup.products.lawn_signs',\n 'signup.products.venues'\n ], t)\n\n productData[en('signup.markets.bikes_scooters')] = arrayToSelectWithOriginal([\n 'signup.products.bikes',\n 'signup.products.e_bikes',\n 'signup.products.mountain_bikes',\n 'signup.products.road_bikes',\n 'signup.products.surrey_bikes',\n 'signup.products.mopeds_and_scooters',\n 'signup.products.mobility_scooters',\n 'signup.products.tours'\n ], t)\n\n productData[en('signup.markets.sports_activities')] = arrayToSelectWithOriginal([\n 'signup.products.sports_gear',\n 'signup.products.hiking_gear',\n 'signup.products.camping_equipment',\n 'signup.products.skis_and_snowboards',\n 'signup.products.surf_equipment',\n 'signup.products.diving_equipment',\n 'signup.products.sup_boards',\n 'signup.products.fishing_gear',\n 'signup.products.team_games',\n 'signup.products.fitness_equipment',\n 'signup.products.beach_equipment',\n 'signup.products.tours'\n ], t)\n\n productData[en('signup.markets.boats_kayaks')] = arrayToSelectWithOriginal([\n 'signup.products.row_and_cycle_boats',\n 'signup.products.small_motor_boats',\n 'signup.products.kayaks_and_canoes',\n 'signup.products.sail_boats',\n 'signup.products.speed_boats',\n 'signup.products.pontoons',\n 'signup.products.yachts',\n 'signup.products.submarines',\n 'signup.products.jet_skis',\n 'signup.products.tours'\n ], t)\n\n productData[en('signup.markets.tools_construction')] = arrayToSelectWithOriginal([\n 'signup.products.power_tools',\n 'signup.products.dumpsters_and_waste_disposal',\n 'signup.products.portable_toilet_and_restroom_trailers',\n 'signup.products.scaffolding_and_access_equipment',\n 'signup.products.generators_and_lighting',\n 'signup.products.earthmoving_equipment',\n 'signup.products.heavy_machinery',\n 'signup.products.garden_tools'\n ], t)\n\n productData[en('signup.markets.motor_trailers')] = arrayToSelectWithOriginal([\n 'signup.products.cars',\n 'signup.products.limousines',\n 'signup.products.camper_vans',\n 'signup.products.motorcycles',\n 'signup.products.at_vs',\n 'signup.products.trailers',\n 'signup.products.snowmobiles',\n 'signup.products.golf_carts'\n ], t)\n\n productData[en('signup.markets.technology_it')] = arrayToSelectWithOriginal([\n 'signup.products.computers',\n 'signup.products.laptops',\n 'signup.products.mobile_phones',\n 'signup.products.tablets',\n 'signup.products.gaming_equipment',\n 'signup.products.virtual_reality_equipment',\n 'signup.products.wifi_access_points',\n 'signup.products.servers'\n ], t)\n\n productData[en('signup.markets.house_storage')] = arrayToSelectWithOriginal([\n 'signup.products.furniture',\n 'signup.products.white_goods',\n 'signup.products.linen',\n 'signup.products.storage',\n 'signup.products.moving_equipment'\n ], t)\n\n productData[en('signup.markets.clothing')] = arrayToSelectWithOriginal([\n 'signup.products.wedding_suits_and_dresses',\n 'signup.products.tuxedos',\n 'signup.products.fashion_items',\n 'signup.products.party_costumes',\n 'signup.products.maternity_dresses'\n ], t)\n\n productData[en('signup.markets.medical_healthcare')] = arrayToSelectWithOriginal([\n 'signup.products.wheelchairs',\n 'signup.products.hospital_beds',\n 'signup.products.mobility_scooters',\n 'signup.products.knee_walkers',\n 'signup.products.stairlifts',\n 'signup.products.ramps',\n 'signup.products.over_bed_tables'\n ], t)\n\n productData[en('signup.markets.baby_child_care')] = arrayToSelectWithOriginal([\n 'signup.products.strollers',\n 'signup.products.car_seats',\n 'signup.products.cots',\n 'signup.products.breast_pumps',\n 'signup.products.toys',\n 'signup.products.bouncers',\n 'signup.products.monitoring_and_safety',\n 'signup.products.bath_tubs',\n 'signup.products.potties'\n ], t)\n\n return productData\n}\n\nexport const yearBusinessStartData = (t) => {\n const data = [\n {\n label: t('signup.fields.year_business_start.options.not_started'),\n value: 'not_started'\n }\n ]\n\n let year = new Date().getFullYear()\n const endYear = 1950\n\n while (year >= endYear) {\n data.push({\n label: `${year}`,\n value: `${year}`\n })\n\n year--\n }\n\n return data\n}\n","// React\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { compose } from 'redux'\n\n// Libraries\nimport _uniq from 'lodash/uniq'\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\nimport Yup from 'shared/utils/yup'\n\n// Components\nimport Layout from 'signup/components/Layout'\nimport Button from 'ui/components/Button'\nimport Div from 'ui/elements/Div'\nimport Link from 'ui/components/Link'\nimport Modal from 'ui/components/Modal'\n\n// Shared\nimport withForm, { Form, Field } from 'shared/form'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\nimport SignupActions from 'signup/redux/actions/signup'\nimport { marketData, productData } from './static/marketingData'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\n\nexport class Step3 extends React.Component {\n static displayName = 'Step3'\n\n static propTypes = {\n t: PropTypes.func.isRequired,\n tReady: PropTypes.bool,\n setFieldValue: PropTypes.func,\n values: PropTypes.shape({\n market: PropTypes.string,\n products: PropTypes.arrayOf(PropTypes.string),\n extra_product: PropTypes.string,\n extra_products: PropTypes.arrayOf(PropTypes.string)\n }),\n submitPromise: PropTypes.instanceOf(Promise)\n }\n\n componentDidMount = () => {\n EventTracker.page()\n EventTracker.track('Signup: Step 3')\n }\n\n state = {\n modalOpen: false\n }\n\n handleModalClose = () => {\n this.setState({ modalOpen: false })\n }\n\n handleModalOpen = () => {\n this.setState({ modalOpen: true })\n }\n\n clearProducts = () => {\n // Make sure the previous selected products are unselected when market changes\n this.props.setFieldValue('products', [])\n this.props.setFieldValue('extra_products', [])\n }\n\n addExtraProduct = () => {\n const { values } = this.props\n\n // When users add an product, which is already known in the marketProductData\n // we do not add it to the extra_products list\n // The product will get selected, because it's added to the products list\n const marketProductDataValues = Object.values(this.marketProductData()).map((key) => key.value)\n // Uniq, so you can't add an extra product twice\n let extraProducts = _uniq([...values.extra_products, values.extra_product])\n extraProducts = extraProducts.filter((product) => !marketProductDataValues.includes(product))\n\n this.props.setFieldValue('extra_products', extraProducts)\n this.props.setFieldValue('products', [...values.products, values.extra_product])\n\n EventTracker.track('Added other product', { name: values.extra_product })\n\n this.setState({ modalOpen: false })\n this.props.setFieldValue('extra_product', '')\n }\n\n handleCreateSubmit = (e) => {\n if (e.key !== 'Enter') return\n\n this.addExtraProduct()\n }\n\n marketProductData = () => {\n return productData(this.props.t)[this.props.values.market]\n }\n\n products = () => {\n const { values } = this.props\n\n let products = this.marketProductData()\n\n // Add each extra product, so it will get displayed in the list\n values.extra_products.forEach((extraProduct) => {\n products.push({ value: extraProduct, label: extraProduct })\n })\n\n return products\n }\n\n render () {\n const { values, submitPromise, t, tReady } = this.props\n\n return (\n \n
\n t('signup.add_value', { value })}\n renderNativeOnMobile={false}\n data-tid=\"industry\"\n afterChange={this.clearProducts}\n />\n\n {tReady && this.products() && (\n t('signup.fields.products.no_options')}\n description={t('signup.fields.products.description')}\n descriptionTop\n useOptions\n noInline\n disabled={!this.props.values.market}\n data-tid=\"products\"\n modifiers={{\n self: 'margin-bottom-sm',\n inputModifiers: {\n checkboxGroup: 'display-grid grid-2-columns gap-sm',\n checkbox: 'border-Misc/Divider border-radius-sm no-margin',\n checkboxLabel: 'padding-sm padding-left-xs width-90p',\n checkboxIcon: 'display-inline-block margin-sm no-margin-right'\n }\n }}\n />\n )}\n\n \n \n \n\n {values.market && (\n \n {t('signup.add_other_products')}\n \n )}\n\n
\n \n {t('signup.continue')}\n \n
\n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n const products = state.signup.products || []\n const normalizedProducts = Array.isArray(products) ? products : products.toArray()\n\n const extraProducts = state.signup.extra_products || []\n const normalizedExtraProducts = Array.isArray(extraProducts) ? extraProducts : extraProducts.toArray()\n\n return {\n initialValues: {\n market: state.signup.market || '',\n products: normalizedProducts,\n extra_products: normalizedExtraProducts\n }\n }\n}\n\nconst mapDispatchToProps = (_dispatch, props) => {\n return {\n handleSubmit: (values) => {\n return SignupActions.update(window.id, values)\n },\n validationSchema: Yup.object().shape({\n market: Yup\n .string()\n .required(),\n products: Yup\n .array()\n .required()\n // Prevent min validation message\n .min(1, props.t('common.errors.mixed.required'))\n .nullable()\n }),\n serverSuccess: () => {\n RoutingUtils.navigate(`/${window.locale}/step-4`)\n }\n }\n}\n\nexport default compose(\n withTranslation('signup'),\n reduxPureConnect(mapStateToProps, mapDispatchToProps),\n withForm()\n)(Step3)\n","// React\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { compose } from 'redux'\n\n// Libraries\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\nimport Yup from 'shared/utils/yup'\n\n// Components\nimport Layout from 'signup/components/Layout'\nimport Button from 'ui/components/Button'\nimport Div from 'ui/elements/Div'\nimport Select from 'signup/components/Select'\n\n// Shared\nimport withForm, { Form } from 'shared/form'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\nimport SignupActions from 'signup/redux/actions/signup'\nimport { yearBusinessStartData, revenueLastYearData, teamSizeData } from './static/marketingData'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\n\nexport class Step4 extends React.Component {\n static displayName = 'Step4'\n\n static propTypes = {\n t: PropTypes.func.isRequired,\n values: PropTypes.shape({\n year_business_start: PropTypes.string,\n revenue_last_year: PropTypes.string,\n team_size: PropTypes.string\n }),\n submitPromise: PropTypes.instanceOf(Promise)\n }\n\n componentDidMount = () => {\n EventTracker.page()\n EventTracker.track('Signup: Step 4')\n }\n\n render = () => {\n const { submitPromise, t } = this.props\n\n return (\n \n
\n\n \n\n \n\n \n\n
\n \n {t('signup.continue')}\n \n
\n \n
\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n initialValues: {\n year_business_start: state.signup.year_business_start || '',\n revenue_last_year: state.signup.revenue_last_year || '',\n team_size: state.signup.team_size || ''\n }\n }\n}\n\nconst mapDispatchToProps = () => {\n return {\n handleSubmit: (values) => {\n return SignupActions.complete(window.id, values)\n },\n validationSchema: Yup.object().shape({\n year_business_start: Yup\n .string()\n .required(),\n revenue_last_year: Yup\n .string()\n .required(),\n team_size: Yup\n .string()\n .required()\n }),\n serverSuccess: () => {\n RoutingUtils.navigate(`/${window.locale}/completing`)\n }\n }\n}\n\nexport default compose(\n withTranslation('signup'),\n reduxPureConnect(mapStateToProps, mapDispatchToProps),\n withForm()\n)(Step4)\n","import React, { Component, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport reduxPureConnect from 'shared/decorators/redux_pure_connect'\nimport Cookies from 'js-cookie'\nimport store from 'signup/redux/store'\n\nimport { withTranslation } from 'shared/utils/withTranslation'\nimport EventTracker from 'signup/utils/event_tracker'\n\nimport SignupActions from 'signup/redux/actions/signup'\nimport { Routing as RoutingUtils } from 'back_office/v2/utils/utils'\nimport Div from 'ui/elements/Div'\nimport Loader from 'back_office/modules/App/components/Loader'\nimport P from 'ui/elements/P'\nimport H1 from 'ui/elements/H1'\nimport Hr from 'ui/elements/Hr'\n\nconst mapStateToProps = (state) => {\n return {\n companyName: state.signup.company_name,\n ready: state.signup.ready,\n slug: state.signup.slug\n }\n}\n\nclass Completing extends Component {\n static displayName = 'Completing'\n\n static propTypes = {\n t: PropTypes.func.isRequired,\n // Dispatch\n checkIsReady: PropTypes.func\n }\n\n state = {\n step: 0,\n completed: false\n }\n\n componentDidMount = () => {\n if (!window.created) {\n return RoutingUtils.navigate('/')\n }\n\n EventTracker.track('Signup: Completing')\n EventTracker.page()\n\n // Track capterra\n const ct = document.createElement('script')\n const s = document.getElementsByTagName('script')[0]\n\n ct.type = 'text/javascript'\n ct.async = true\n ct.src = 'https://ct.capterra.com/capterra_tracker.js?vid=2098003&vkey=70f9285bef7ff22ef2e03196d2fe02f7'\n s.parentNode.insertBefore(ct, s)\n\n this.timer = () => {\n // Immediately check if sign up is ready\n if (this.state.step === 0) {\n this.props.checkIsReady(this.setReady)\n }\n\n if (this.state.step === 4) {\n // Do nothing\n } else {\n this.setState({ step: this.state.step + 1 })\n setTimeout(this.timer, window.testMode ? 1000 : 8000)\n }\n }\n this.timer()\n }\n\n setReady = () => {\n this.setState({ completed: true, step: 4 })\n }\n\n render = () => {\n const { t } = this.props\n\n return (\n
\n \n
\n

\n {t('signup.completing.just_a_sec')}\n

\n \n {this.state.step !== 4 && (\n \n

\n {t('signup.completing.setting_up')}\n

\n
\n

\n {t('signup.completing.creating')}\n

\n
\n )}\n {this.state.step === 4 && (\n \n

\n {t('signup.completing.ready')}\n

\n
\n

\n {t('signup.completing.redirected')}\n

\n
\n )}\n
\n
\n )\n }\n}\n\nconst mapDispatchToProps = () => {\n const checkIsReady = (setReady) => {\n SignupActions.isReady(window.id)\n\n const state = store.getState()\n const ready = state.signup.ready\n const slug = state.signup.slug\n const email = state.signup.email\n const token = state.signup.authentication_token\n const companyId = state.signup.company_id\n const employeeId = state.signup.employee_id\n const trackingData = state.signup.tracking_data\n // the pre-installed shop theme\n const theme = state.signup.theme\n const marketingSource = state.signup.source\n const marketingMedium = state.signup.medium\n const marketingCampaign = state.signup.campaign\n const marketingKeyword = state.signup.keyword\n const marketingAdgroup = state.signup.adgroup\n const gclid = state.signup.gclid\n\n const finishSignup = () => {\n setReady({ completed: true, step: 4 })\n Cookies.remove('signup.identifier')\n\n const data = store.getState().signup.data.toJS()\n const url = data.authenticated_url\n\n if (url) {\n // Signup came from oauth source\n data.company = slug\n data.email = email\n const params = Object.keys(data).map((key) => {\n return key + '=' + data[key]\n }).join('&')\n\n window.location = `${url}?${params}`\n } else {\n // Regular signup\n window.location = `${window.booqableProtocol}://${slug}.${window.booqableUrl}/setup?auth_token=${token}&signup=true`\n }\n }\n\n if (ready) {\n const response = EventTracker.alias(employeeId, () => {\n EventTracker.identify(employeeId, trackingData.get('identify_data').toJS(), () => {\n EventTracker.group(companyId, trackingData.get('group_data').toJS(), () => {\n // email and companyId are required for Google Enhanced Conversions\n const trackingData = {\n email,\n orderId: companyId,\n industry: state.signup.market,\n locale: window.locale,\n theme,\n marketingSource,\n marketingMedium,\n marketingCampaign,\n marketingKeyword,\n marketingAdgroup,\n gclid\n }\n\n EventTracker.track('Signup: Completed', trackingData, () => {\n finishSignup()\n })\n })\n })\n })\n\n if (response === window.analytics) {\n // Analytics not loaded and silently failed\n // rescue signup\n finishSignup()\n }\n } else {\n setTimeout(checkIsReady.bind(null, setReady), 1000)\n }\n }\n\n return {\n checkIsReady\n }\n}\n\nconst DecoratedComponent = reduxPureConnect(mapStateToProps, mapDispatchToProps)(Completing)\n\nexport default withTranslation('signup')(DecoratedComponent)\n","// React\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport store from 'signup/redux/store'\n\n// Libraries\nimport Cookies from 'js-cookie'\nimport cuid from 'cuid'\nimport { StyleSheetManager, ThemeProvider } from 'styled-components'\n\n// Actions\nimport SignupActions from 'signup/redux/actions/signup'\n\n// Components\nimport { Provider } from 'react-redux'\nimport { BrowserRouter, Routes, Route } from 'react-router-dom'\n\nimport Step1 from './Step1'\nimport Step2 from './Step2'\nimport Step3 from './Step3'\nimport Step4 from './Step4'\nimport Completing from './completing'\n\n// Other\nimport withRouter from 'shared/decorators/withRouter'\nimport theme from 'ui/themes/app'\nimport 'shared/utils/i18n'\nimport { RouteSetter } from 'shared/utils/Routing'\nimport { shouldForwardProp } from 'shared/utils/shouldForwardProp'\n\nclass App extends React.Component {\n static displayName = 'BooqableSignup'\n\n render () {\n const steps = [\n {\n path: '/:locale',\n component: Step1\n },\n {\n path: '/:locale/step-2',\n component: Step2\n },\n {\n path: '/:locale/step-3',\n component: Step3\n },\n {\n path: '/:locale/step-4',\n component: Step4\n },\n {\n path: '/:locale/completing',\n component: Completing\n }\n ]\n\n // opt-in to v7 behaviours to silence deprecation warnings\n const v7behaviours = {\n v7_relativeSplatPath: true,\n v7_startTransition: true\n }\n\n return (\n \n \n \n \n \n\n \n {steps.map((step) => (\n \n ))}\n \n \n \n \n \n )\n }\n}\n\nwindow.onload = () => {\n if (Cookies.get('signup.identifier')) {\n SignupActions.fetch(Cookies.get('signup.identifier')).then(() => {\n window.created = true\n })\n }\n window.id = Cookies.get('signup.identifier') || cuid()\n Cookies.set('signup.identifier', window.id)\n\n // Setup oauth data if present\n const container = document.getElementById('root')\n\n let data = container.getAttribute('data')\n const component = React.createElement(App, {})\n\n if (data) {\n data = JSON.parse(data)\n SignupActions.setInitialValues({ data })\n }\n\n const root = createRoot(container)\n\n root.render(component)\n}\n","import styled, { css } from 'styled-components'\nimport { size } from 'ui/themes/utils'\n\nimport Div from 'ui/elements/Div'\n\nexport const ActionGroup = styled(Div)`\n text-align: right;\n\n > *:not(:first-child) {\n margin-left: ${size('margin')};\n }\n\n * {\n display: inline-block;\n }\n\n ${(props) => props.float && css`\n float: right;\n `}\n\n ${(props) => props.left && css`\n text-align: left;\n `}\n\n ${({ flex }) => flex && css`\n display: flex;\n `}\n\n ${({ align }) => align && css`\n align-items: ${align};\n `}\n\n ${({ justify }) => justify && css`\n justify-content: ${justify};\n `}\n\n ${({ spacing }) => spacing && css`\n > *:not(:first-child) {\n margin-left: ${size('margin', spacing)};\n }\n `}\n`\n","import styled from 'styled-components'\nimport { injectModifiers } from 'ui/themes/utils'\nimport modifiers from 'ui/themes/modifiers'\n\nconst Img = styled.img`\n ${({ theme }) => injectModifiers(modifiers(theme))}\n`\n\nexport default Img\n"],"names":["require","initialState","Record","id","undefined","created","identifier","company_available","ready","slug","authentication_token","is_eu","employee_id","company_id","tracking_data","read_only_mode","theme","source","medium","campaign","keyword","gclid","timezone","currency","email","password","company_name","firstname","lastname","country","phone","market","products","extra_products","year_business_start","revenue_last_year","team_size","data","combineReducers","signup","state","action","type","forEach","_","key","newValue","payload","has","set","merge","pick","_keys","interface","uiConnect","middlewares","thunkMiddleware","middleware","applyMiddleware","window","__REDUX_DEVTOOLS_EXTENSION__","compose","createStore","rootReducer","instance","axios","Promise","config","warnings","onPossiblyUnhandledRejection","error","message","handleResponse","response","headers","store","dispatch","interceptors","use","reject","setInitialValues","values","fetch","get","then","create","post","autoSave","patch","update","checkCompanyAvailability","companyName","available","complete","put","locale","isReady","identify","booqableProtocol","booqableUrl","Cookies","country_code","expires","constructor","this","globalData","track","name","callback","environment","console","log","JSON","stringify","__submit","alias","anonymousId","analytics","group","page","ReadOnlyModeBar","Component","static","t","PropTypes","isRequired","readOnlyMode","render","props","React","NoticeBar","icon","color","border","disableScreen","Link","href","target","displayName","DecoratedComponent","reduxPureConnect","mapStateToProps","withTranslation","Logo","styled","Div","withConfig","Title","H1","Image","Img","modifiers","url","nestedModifiers","self","BLogo","alt","src","logo","image","propTypes","SignIn","trackLinkClick","EventTracker","location","Span","text","onClick","LocaleSwitcher","componentDidMount","Object","keys","length","determineLocale","fallbackLocale","locales","find","obj","value","selectedLocale","setState","handleLocaleChange","i18n","pathWithLocale","pathname","split","path","join","RoutingUtils","navigate","short","Select","field","label","Fragment","Icon","options","isSearchable","onChange","forceValue","forceOnChange","size","REVIEWS","general","company","treasuredVintage","industry","sydneyPaHire","refinedRentals","twoElements","bubbleHire","saskatoonPartyRentals","goldCoastAudio","islandDogLogo","hireLoveLogo","fomoRentals","barcodes","equipmentCafe","reports","hookStudios","juistPirates","coupons","mintSage","customerReview","context","pool","filter","review","sample","reviewKey","reviewName","reviewCompany","reviewImage","SignupLayout","step","Trans","children","subtitleBadge","stepIndicator","className","ReadyOnlyModeBar","Row","Col","lg","sm","H2","Badge","flatColor","multiLine","i18nKey","components","Bold","B","H3","H4","P","Strong","starFull","starHalf","logoCapterra","logoGetapp","decoratedComponent","_state","searchParams","MailChecker","Step1","emailValid","isEU","fields","agreement_accepted","email_subscribed","setFieldValue","submitPromise","errors","checkLocale","SignupActions","map","o","includes","termsOfServiceLink","noBlankIcon","title","privacyPolicyLink","showAgreementError","Layout","Form","noValidate","Field","placeholder","autoComplete","initialValid","autoFocus","showIfValid","fast","Hr","component","Checkbox","ns","TermsOfServiceLink","PrivacyPolicyLink","BInputField","Error","Button","promise","block","borderRadius","Boolean","emailValidation","initialValues","validateOnBlur","validateOnChange","mapDispatchToProps","_dispatch","_signup","adgroup","ga_client_id","setTimeout","validationSchema","Yup","object","shape","string","required","min","test","_isEmpty","resolve","async","checkCompanyNameAvailability","boolean","oneOf","handleSubmit","serverSuccess","withForm","tReady","description","exists","descriptionTop","searchable","clearable","renderNativeOnMobile","selectOptions","option","Array","isArray","push","Step2","xs","forceMargin","countries","when","is","otherwise","array","arrayToSelectWithOriginal","en","marketData","yearBusinessStartData","year","Date","getFullYear","Step3","extra_product","modalOpen","handleModalClose","handleModalOpen","clearProducts","addExtraProduct","marketProductDataValues","marketProductData","extraProducts","_uniq","product","handleCreateSubmit","e","productData","extraProduct","creatable","formatCreateLabel","afterChange","noOptionsMessage","useOptions","noInline","disabled","inputModifiers","checkboxGroup","checkbox","checkboxLabel","checkboxIcon","Modal","open","primaryAction","content","onAction","secondaryAction","maxWidth","onKeyPress","normalizedProducts","toArray","normalizedExtraProducts","nullable","Step4","arrayToSelect","Completing","checkIsReady","completed","ct","document","createElement","s","getElementsByTagName","parentNode","insertBefore","timer","setReady","testMode","height","width","style","display","Loader","getState","token","companyId","employeeId","trackingData","marketingSource","marketingMedium","marketingCampaign","marketingKeyword","marketingAdgroup","finishSignup","remove","toJS","authenticated_url","params","orderId","bind","App","steps","Provider","ThemeProvider","StyleSheetManager","shouldForwardProp","enableVendorPrefixes","BrowserRouter","future","v7_relativeSplatPath","v7_startTransition","RouteSetter","Routes","Route","element","withRouter","onload","cuid","container","getElementById","getAttribute","parse","createRoot","ActionGroup","float","css","left","flex","align","justify","spacing","img","injectModifiers"],"sourceRoot":""}