{"version":3,"file":"7602.js","mappings":"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","sources":["webpack:///./XeroSignup/actions/index.ts","webpack:///./XeroSignup/state.ts","webpack:///./XeroSignup/components/ErrorScreen/styled.ts","webpack:///./XeroSignup/components/ErrorScreen/ErrorScreen.tsx","webpack:///./XeroSignup/components/LoadingScreen/components/BulletList/styled.ts","webpack:///./XeroSignup/components/LoadingScreen/components/BulletList/BulletList.tsx","webpack:///./XeroSignup/components/LoadingScreen/components/RedirectCountdownBanner/styled.ts","webpack:///./XeroSignup/components/LoadingScreen/components/RedirectCountdownBanner/RedirectCountdownBanner.tsx","webpack:///./XeroSignup/components/LoadingScreen/styled.ts","webpack:///./XeroSignup/components/LoadingScreen/LoadingScreen.tsx","webpack:///./XeroSignup/components/OrganisationSelector/styled.ts","webpack:///./XeroSignup/components/OrganisationSelector/OrganisationSelector.tsx","webpack:///./XeroSignup/components/styled.ts","webpack:///./XeroSignup/components/TermsAndConditions/TermsAndConditions.tsx","webpack:///./XeroSignup/components/SignupForm/SignupForm.tsx","webpack:///./XeroSignup/components/XeroSignup.tsx","webpack:///./shared/validator.ts","webpack:///./XeroSignup/sagas/index.ts","webpack:///./XeroSignup/index.ts","webpack:///./XeroSignup/reducers/index.ts"],"sourcesContent":["import {XeroSignupState} from '../state';\nimport {KeyValue} from '../types/Types';\nimport {Action} from '@planday-corp/react-app';\n\nexport type XeroSignupAction =\n | Action<\n 'xeroSignup/INIT',\n {\n signupRequestId: string;\n source?: string;\n signupOrigin?: string;\n error?: string;\n }\n >\n | Action<\n 'xeroSignup/RECEIVE',\n {\n content: Partial>;\n }\n >\n | Action<'xeroSignup/UPDATE_FIELD', KeyValue>\n | Action<'xeroSignup/SAVE'>\n | Action<'xeroSignup/FETCH_FORM_DATA'>\n | Action<\n 'xeroSignup/SET_TENANT_ID',\n {\n tenantId: string;\n }\n >\n | Action<\n 'xeroSignup/PROCEED',\n {\n tenantId?: string;\n }\n >\n | Action<'xeroSignup/REDIRECT_TO_PORTAL'>;\n\nexport type ActionTypes = XeroSignupAction['type'];\n\nexport const actions = {\n init(\n signupRequestId: string,\n source?: string,\n signupOrigin?: string,\n error?: string\n ): XeroSignupAction {\n return {\n type: 'xeroSignup/INIT',\n payload: {signupRequestId, source, signupOrigin, error},\n };\n },\n receive(content: Partial>): XeroSignupAction {\n return {type: 'xeroSignup/RECEIVE', payload: {content}};\n },\n updateField(payload: KeyValue): XeroSignupAction {\n return {\n type: 'xeroSignup/UPDATE_FIELD',\n payload,\n };\n },\n save(): XeroSignupAction {\n return {type: 'xeroSignup/SAVE', payload: undefined};\n },\n fetchFormData(): XeroSignupAction {\n return {type: 'xeroSignup/FETCH_FORM_DATA', payload: undefined};\n },\n setTenantId(tenantId: string): XeroSignupAction {\n return {type: 'xeroSignup/SET_TENANT_ID', payload: {tenantId}};\n },\n proceed(tenantId?: string): XeroSignupAction {\n return {type: 'xeroSignup/PROCEED', payload: {tenantId}};\n },\n redirectToPortal(): XeroSignupAction {\n return {type: 'xeroSignup/REDIRECT_TO_PORTAL', payload: undefined};\n },\n};\n","import {KeyValue, SelectOption, Tenant, View} from './types/Types';\nimport {Value} from '@planday-corp/ui/types/Option';\n\nexport interface XeroSignupState {\n hasSaved: boolean;\n signupRequestId: string;\n isLoading: boolean;\n displayCountryAndTimeZone: boolean;\n formData: KeyValue;\n errors: {\n fields?: KeyValue;\n };\n apiErrors: {\n fields?: KeyValue;\n };\n validationRules: {\n item: KeyValue;\n };\n view: View;\n industryOptions: Array>;\n employeeOptions: Array>;\n phonePrefixOptions: Array>;\n countryOptions: Array>;\n signupUrl?: string;\n tenants?: Tenant[];\n tenantId?: string;\n source?: string;\n signupOrigin?: string;\n hasAcceptedTerms: boolean;\n isPortalCreationInProgress: boolean;\n portalUrl?: string;\n}\n\nexport const DEFAULT_STATE: XeroSignupState = {\n hasSaved: false,\n signupRequestId: '',\n isLoading: false,\n displayCountryAndTimeZone: false,\n formData: {\n firstName: '',\n lastName: '',\n password: '',\n confirmPassword: '',\n email: '',\n companyName: '',\n countryCode: '',\n phone: '',\n phoneCountryCodePrefix: '',\n industry: '',\n noOfEmployeesRange: '',\n requestOrigin: '',\n isEmailInUse: false,\n timeZone: '',\n },\n validationRules: {\n item: {\n firstName: {required: true},\n lastName: {required: true},\n phone: {required: true},\n phoneCountryCodePrefix: {required: true},\n companyName: {required: true, maxLength: 60},\n industry: {required: true},\n noOfEmployeesRange: {required: true},\n },\n },\n errors: {},\n apiErrors: {},\n view: 'emptyView',\n industryOptions: [],\n employeeOptions: [],\n phonePrefixOptions: [],\n countryOptions: [],\n hasAcceptedTerms: false,\n isPortalCreationInProgress: false,\n};\n","import Text from '@planday-corp/ui/text/Text';\nimport styled from 'styled-components';\n\nexport const StyledErrorContainer = styled.div`\n /* Respecting the logo margin */\n height: calc(100vh - 12.5rem);\n display: flex;\n justify-content: center;\n align-items: center;\n`;\nexport const StyledContent = styled.div`\n margin: 2rem;\n width: 30rem;\n`;\n\nexport const StyledIllustration = styled.img`\n @media (max-height: 568px), (max-width: 320px) {\n display: none;\n }\n margin-bottom: 2rem;\n`;\n\nexport const StyledTitleText = styled(Text)`\n margin-bottom: 0.25rem;\n`;\n\nexport const StyledBodyText = styled(Text)`\n margin-bottom: 1rem;\n`;\n\nexport const StyledButtonContainer = styled.div`\n margin-bottom: 1rem;\n`;\n","import {\n StyledBodyText,\n StyledErrorContainer,\n StyledIllustration,\n StyledTitleText,\n StyledButtonContainer,\n StyledContent,\n} from './styled';\nimport {TermDescriptor, useGlobalization} from '@planday-corp/globalization';\nimport ButtonLink from '@planday-corp/ui/actions/NavLinks/ButtonLink';\nimport Label from '@planday-corp/ui/types/Label';\nimport React from 'react';\n\nexport interface ErrorScreenProps {\n redirectPath?: string | undefined;\n illustrationSvg: string;\n title: Label;\n body: Label;\n buttonLabel: TermDescriptor;\n}\n\nexport default function ErrorScreen({\n redirectPath,\n illustrationSvg,\n title,\n body,\n buttonLabel,\n}: ErrorScreenProps) {\n const {i18n} = useGlobalization();\n return (\n \n \n \n \n \n\n {redirectPath && (\n \n \n {i18n.t(buttonLabel)}\n \n \n )}\n \n \n );\n}\n","import Icon from '@planday-corp/ui/icons/Icon';\nimport styled from 'styled-components';\n\nexport const StyledUl = styled.ul`\n list-style: none;\n padding: 0;\n margin-top: 1.5rem;\n`;\n\nexport const StyledLi = styled.li`\n display: flex;\n padding-bottom: 1rem;\n`;\n\nexport const StyledIcon = styled(Icon)`\n margin-right: 1rem;\n flex-shrink: 0;\n`;\n","import {StyledIcon, StyledUl, StyledLi} from './styled';\nimport Text from '@planday-corp/ui/text/Text';\nimport React from 'react';\n\ninterface BulletListProps {\n items: string[];\n}\n\nexport default function BulletList({items}: BulletListProps) {\n return (\n \n {items.map((item, index) => (\n \n \n \n \n ))}\n \n );\n}\n","import styled from 'styled-components';\n\nexport const NegativeMarginWrapper = styled.div`\n margin: -0.8rem -1rem 0.8rem;\n`;\n","import {LABELS} from '../../../../../shared/labels/Labels';\nimport {XeroSignupAction} from '../../../../actions';\nimport {NegativeMarginWrapper} from './styled';\nimport Banner from '@planday-corp/ui/indicators/Banner';\nimport Text from '@planday-corp/ui/text/Text';\nimport React, {useEffect, useState} from 'react';\n\ninterface RedirectCountdownBannerProps {\n handleRedirect: () => XeroSignupAction;\n}\n\nconst COUNTDOWN_TIME_SECONDS = 30;\n\nexport default function RedirectCountdownBanner({\n handleRedirect,\n}: RedirectCountdownBannerProps) {\n const [secondsToRedirect, setSecondsToRedirect] = useState(\n COUNTDOWN_TIME_SECONDS\n );\n\n useEffect(() => {\n if (secondsToRedirect === 0) {\n handleRedirect();\n return;\n }\n const intervalId = setInterval(() => {\n setSecondsToRedirect(secondsToRedirect - 1);\n }, 1000);\n\n return () => clearInterval(intervalId);\n }, [secondsToRedirect]);\n\n return (\n \n \n \n \n \n );\n}\n","import Background from '../../../shared/images/onboardingBackground.svg';\nimport Button from '@planday-corp/ui/actions/Button';\nimport Icon from '@planday-corp/ui/icons/Icon';\nimport InlineSpinner from '@planday-corp/ui/indicators/InlineSpinner';\nimport styled, {css} from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n position: fixed;\n width: 100%;\n height: 100vh;\n top: 0;\n @media (max-width: 768px) {\n flex-direction: column-reverse;\n height: auto;\n position: static;\n }\n`;\n\nconst COLUMN_STYLES = css`\n flex-basis: 50%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nexport const LeftColumn = styled.div`\n ${COLUMN_STYLES}\n`;\n\nexport const RightColumn = styled.div`\n ${COLUMN_STYLES}\n background-image: linear-gradient(\n rgba(120, 120, 120, 0.2),\n rgba(120, 120, 120, 0.2)\n ),\n url('${Background}');\n background-size: cover;\n background-position: center;\n`;\n\nexport const VacationImage = styled.img`\n width: 15rem;\n height: 15rem;\n`;\n\nexport const SectionContainer = styled.div`\n max-width: 25rem;\n margin: 1rem;\n`;\n\nexport const StyledTextWrapper = styled.div`\n padding: 4rem 1rem 1rem;\n @media (max-width: 768px) {\n padding: 1rem;\n }\n`;\n\nexport const SectionContentWrapper = styled.div`\n padding: 1rem 1rem 0;\n flex: 1;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const StyledSpinner = styled(InlineSpinner)`\n width: 2.5rem;\n height: 2.5rem;\n`;\n\nexport const StyledIcon = styled(Icon)`\n width: 3rem;\n height: 3rem;\n margin: -0.25rem;\n`;\n\nexport const StyledButton = styled(Button)`\n margin-top: 1.8rem;\n`;\n","import Vacation from '../../../shared/images/vacation.svg';\nimport {LABELS} from '../../../shared/labels/Labels';\nimport {XeroSignupAction} from '../../actions';\nimport BulletList from './components/BulletList/BulletList';\nimport RedirectCountdownBanner from './components/RedirectCountdownBanner/RedirectCountdownBanner';\nimport {\n Container,\n LeftColumn,\n RightColumn,\n SectionContainer,\n SectionContentWrapper,\n StyledIcon,\n StyledSpinner,\n StyledTextWrapper,\n VacationImage,\n} from './styled';\nimport {useGlobalization} from '@planday-corp/globalization';\nimport Section from '@planday-corp/ui/structure/Section';\nimport Text from '@planday-corp/ui/text/Text';\nimport React, {useEffect} from 'react';\n\nconst LIST_SEPARATOR = ';';\n\ninterface LoadingScreenProps {\n redirectToPortalAction: () => XeroSignupAction;\n isPortalCreationInProgress: boolean;\n}\n\nexport default function LoadingScreen({\n redirectToPortalAction,\n isPortalCreationInProgress,\n}: LoadingScreenProps) {\n const {i18n} = useGlobalization();\n\n useEffect(() => {\n if (!isPortalCreationInProgress) {\n redirectToPortalAction();\n }\n }, [isPortalCreationInProgress]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {!isPortalCreationInProgress && (\n \n )}\n\n \n {isPortalCreationInProgress ? (\n \n ) : (\n \n )}\n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\n\nexport const StyledBannerWrapper = styled.div`\n margin: -0.8rem -1rem 0rem;\n padding-bottom: 0.8rem;\n`;\n\nexport const StyledWrapper = styled.div`\n margin-top: 0.5rem;\n`;\n\nexport const StyledLinkWrapper = styled.div`\n @media (max-height: 568px), (max-width: 320px) {\n margin-top: 0.5rem;\n margin-bottom: 1rem;\n }\n\n margin-top: 0.5rem;\n`;\n\nexport const StyledButtonWrapper = styled.div`\n @media (max-height: 568px), (max-width: 320px) {\n display: flex;\n flex-direction: column;\n }\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-top: 0.5rem;\n`;\n","import {LABELS} from '../../../shared/labels/Labels';\nimport {XeroSignupAction} from '../../actions';\nimport {Tenant} from '../../types/Types';\nimport {\n StyledBannerWrapper,\n StyledButtonWrapper,\n StyledLinkWrapper,\n StyledWrapper,\n} from './styled';\nimport {useGlobalization} from '@planday-corp/globalization';\nimport Button from '@planday-corp/ui/actions/Button';\nimport Link from '@planday-corp/ui/actions/Link';\nimport SelectField from '@planday-corp/ui/forms/fields/SelectField';\nimport Banner from '@planday-corp/ui/indicators/Banner';\nimport EditModal from '@planday-corp/ui/overlays/modals/EditModal';\nimport I18n from '@planday-corp/ui/text/I18n';\nimport Text from '@planday-corp/ui/text/Text';\nimport React, {useEffect, useMemo, useState} from 'react';\n\nexport interface OrganisationSelectorProps {\n tenants: Tenant[] | undefined;\n tenantId: string | undefined;\n signupUrl: string | undefined;\n setTenantIdAction: (tenantId: string) => XeroSignupAction;\n proceedAction: (tenantId: string | undefined) => XeroSignupAction;\n fetchFormDataAction: () => XeroSignupAction;\n}\n\nexport default function OrganisationSelector({\n tenants,\n tenantId,\n signupUrl,\n setTenantIdAction,\n proceedAction,\n fetchFormDataAction,\n}: OrganisationSelectorProps) {\n const {i18n} = useGlobalization();\n\n const [showModal, setShowModal] = useState(false);\n\n const showOptions = useMemo(() => {\n return tenants!.length === 1 ? false : true;\n }, [tenants]);\n\n useEffect(() => {\n if (!showOptions && tenants) {\n setTenantIdAction(tenants[0].id);\n }\n }, [showOptions]);\n\n const tenant = useMemo(() => {\n if (tenantId !== undefined) {\n return tenants!.find(item => item.id === tenantId);\n }\n }, [tenantId]);\n\n const options = useMemo(() => {\n return tenants!.map(item => ({\n label: item.name,\n value: item.id,\n }));\n }, [tenants]);\n\n const handleClick = () => {\n setShowModal(true);\n };\n\n const modalDetails =\n tenant &&\n (tenant!.portalUrl\n ? {\n title: i18n.t(LABELS.loginModalTitle),\n primaryBtn: i18n.t(LABELS.loginBtn),\n body: i18n.t({\n term: 'SignUp.AuthorizationPage_LoginModal_Description',\n fallback:\n 'Are you sure you want to log in to your Planday portal for the Xero organisation {0}?',\n params: [tenant.name],\n }),\n }\n : {\n title: i18n.t(LABELS.signupModalTitle),\n primaryBtn: i18n.t(LABELS.signupBtn),\n body: i18n.t({\n term: 'SignUp.AuthorizationPage_SignupModal_Description',\n fallback:\n 'Are you sure you want to start a free Planday trial for your Xero organisation {0}?',\n params: [tenant.name],\n }),\n });\n\n return (\n <>\n {tenant?.portalUrl && (\n \n \n \n \n \n )}\n\n \n {LABELS.xeroOrganisations}\n \n {options &&\n (showOptions ? (\n \n setTenantIdAction(val as string)}\n />\n \n ) : (\n \n \n \n ))}\n\n {showModal && (\n setShowModal(false)}\n ariaLabel=\"confirmModal\"\n title={modalDetails!.title}\n backgroundColor=\"white\"\n isBlocked\n buttons={[\n setShowModal(false)}\n >\n \n ,\n \n tenant!.portalUrl\n ? proceedAction(tenantId)\n : fetchFormDataAction()\n }\n >\n {modalDetails!.primaryBtn}\n ,\n ]}\n >\n \n \n )}\n\n \n \n {i18n.t(LABELS.linkChooseAnotherOrg)}\n \n \n {i18n.t(LABELS.continue)}\n \n \n \n );\n}\n","import CheckboxField from '@planday-corp/ui/forms/fields/CheckboxField';\nimport Board from '@planday-corp/ui/structure/Board';\nimport {grey20} from '@planday-corp/ui/styles/colors';\nimport Text from '@planday-corp/ui/text/Text';\nimport styled from 'styled-components';\n\nexport const StyledContainer = styled.div`\n position: absolute;\n width: 100%;\n /* Respecting the logo margin */\n height: calc(100vh - 12.5rem);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 1rem;\n`;\n\nexport const BoardGroup = styled(Board)`\n width: 46rem;\n margin: auto;\n`;\n\nexport const StyledBoardHeading = styled.div`\n margin-bottom: 0.8rem;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: auto;\n\n &:after {\n content: '';\n width: calc(100% + 2rem);\n height: 1px;\n position: absolute;\n bottom: 0;\n left: -1rem;\n background: ${grey20};\n }\n`;\n\nexport const LegendText = styled(Text)`\n margin-bottom: 1rem;\n`;\n\nexport const InfoText = styled(Text)`\n margin-bottom: 1.5rem;\n`;\n\nexport const StyledButtonContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding-top: 0.5rem;\n`;\n\nexport const StyledLoadingContainer = styled.div`\n margin: 1rem 0;\n margin-bottom: 1.5rem;\n`;\n\nexport const StyledTermsAndConditionsTextWrapper = styled.div`\n margin-top: -0.5rem;\n`;\n\nexport const StyledCheckboxField = styled(CheckboxField)`\n margin-top: 1.25rem;\n`;\n","import {LABELS} from '../../../shared/labels/Labels';\nimport {SignupFormProps} from '../SignupForm/SignupForm';\nimport {\n StyledCheckboxField,\n StyledTermsAndConditionsTextWrapper,\n} from '../styled';\nimport {useGlobalization} from '@planday-corp/globalization';\nimport Link from '@planday-corp/ui/actions/Link';\nimport Text from '@planday-corp/ui/text/Text';\nimport React from 'react';\n\nexport interface TermsAndConditionsProps\n extends Pick<\n SignupFormProps,\n 'isLoading' | 'hasAcceptedTerms' | 'hasSaved' | 'actions'\n > {\n isCountryCodeAU: boolean;\n}\n\nfunction TermsAndConditions({\n isCountryCodeAU,\n isLoading,\n hasSaved,\n hasAcceptedTerms,\n actions,\n}: TermsAndConditionsProps) {\n const {i18n} = useGlobalization();\n\n return (\n <>\n \n actions.receive({hasAcceptedTerms: value})\n }\n error={\n hasSaved && !hasAcceptedTerms\n ? {\n term: 'CommonTerms.Generic_RequiredField',\n fallback: 'Required field',\n }\n : undefined\n }\n />\n\n \n \n {i18n.t(LABELS.seeAllDocuments)}{' '}\n \n {i18n.t(LABELS.here)}\n \n \n \n \n );\n}\n\nexport default TermsAndConditions;\n","import {getTimeZones} from '../../../shared/helpers/helpers';\nimport {LABELS} from '../../../shared/labels/Labels';\nimport {actions as actionCreators, XeroSignupAction} from '../../actions';\nimport {DEFAULT_STATE, XeroSignupState} from '../../state';\nimport TermsAndConditions from '../TermsAndConditions/TermsAndConditions';\nimport {InfoText, StyledButtonContainer} from '../styled';\nimport {useGlobalization} from '@planday-corp/globalization';\nimport Button from '@planday-corp/ui/actions/Button';\nimport Grid, {GridCell} from '@planday-corp/ui/forms/Grid';\nimport SelectField from '@planday-corp/ui/forms/fields/SelectField';\nimport TextField from '@planday-corp/ui/forms/fields/TextField';\nimport {useMemo} from 'react';\nimport {connect, ConnectedProps} from 'react-redux';\nimport {AnyAction, bindActionCreators, Dispatch} from 'redux';\nimport {styled} from 'styled-components';\n\nconst GRID_GAP = '1rem';\n\nconst CustomCell = styled.div<{$width: string}>`\n flex: 0 0 calc(${props => props.$width} - ${GRID_GAP});\n width: calc(${props => props.$width} - ${GRID_GAP});\n margin-right: ${GRID_GAP};\n`;\n\nexport interface SignupFormProps extends XeroSignupState {\n actions: Pick<\n typeof actionCreators,\n | 'init'\n | 'receive'\n | 'updateField'\n | 'save'\n | 'fetchFormData'\n | 'setTenantId'\n | 'proceed'\n >;\n}\n\nexport function SignupForm({\n actions,\n isLoading,\n displayCountryAndTimeZone,\n formData,\n errors,\n apiErrors,\n validationRules,\n phonePrefixOptions,\n industryOptions,\n employeeOptions,\n countryOptions,\n hasAcceptedTerms,\n hasSaved,\n}: PropsFromRedux) {\n const {i18n} = useGlobalization();\n\n const onFieldChange = (value: string | number | null, name: string) => {\n actions.updateField({[name]: value});\n };\n\n const timeZoneOptions = useMemo(\n () => getTimeZones(),\n [displayCountryAndTimeZone]\n );\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n {validationRules.item.password && (\n \n )}\n {validationRules.item.email && (\n \n )}\n\n {displayCountryAndTimeZone && (\n \n )}\n\n {displayCountryAndTimeZone &&\n timeZoneOptions.length > 0 &&\n formData.countryCode === 'AU' && (\n \n )}\n\n \n \n \n \n \n \n \n \n\n \n \n \n {!isLoading && (\n \n )}\n \n \n {i18n.t(LABELS.signup)}\n \n \n \n );\n}\n\nconst mapStateToProps = ({\n xeroSignup,\n}: {\n xeroSignup: XeroSignupState;\n}) => {\n const {\n isLoading,\n displayCountryAndTimeZone,\n formData,\n errors,\n apiErrors,\n validationRules,\n phonePrefixOptions,\n employeeOptions,\n industryOptions,\n countryOptions,\n hasAcceptedTerms,\n hasSaved,\n } = xeroSignup || DEFAULT_STATE;\n return {\n isLoading,\n displayCountryAndTimeZone,\n formData,\n errors,\n apiErrors,\n validationRules,\n phonePrefixOptions,\n employeeOptions,\n industryOptions,\n countryOptions,\n hasAcceptedTerms,\n hasSaved,\n };\n};\n\nexport const mapDispatchToProps = (dispatch: Dispatch) => ({\n actions: bindActionCreators(actionCreators, dispatch as Dispatch),\n});\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\ntype PropsFromRedux = ConnectedProps;\nexport default connector(SignupForm);\n","import accessDeniedIllustration from '../../shared/images/accessDenied.svg';\nimport {LABELS} from '../../shared/labels/Labels';\nimport {actions as actionCreators, XeroSignupAction} from '../actions';\nimport {DEFAULT_STATE, XeroSignupState} from '../state';\nimport ErrorScreen from './ErrorScreen/ErrorScreen';\nimport LoadingScreen from './LoadingScreen/LoadingScreen';\nimport OrganisationSelector from './OrganisationSelector/OrganisationSelector';\nimport SignupForm from './SignupForm/SignupForm';\nimport {\n BoardGroup,\n LegendText,\n StyledBoardHeading,\n StyledContainer,\n} from './styled';\nimport Text from '@planday-corp/ui/text/Text';\nimport React, {useEffect} from 'react';\nimport {connect, ConnectedProps} from 'react-redux';\nimport {AnyAction, bindActionCreators, Dispatch} from 'redux';\n\nexport interface XeroSignupProps extends XeroSignupState {\n actions: Pick<\n typeof actionCreators,\n | 'init'\n | 'receive'\n | 'updateField'\n | 'save'\n | 'fetchFormData'\n | 'setTenantId'\n | 'proceed'\n | 'redirectToPortal'\n >;\n}\n\nfunction XeroSignup({\n actions,\n tenants,\n tenantId,\n view,\n signupUrl,\n isPortalCreationInProgress,\n}: PropsFromRedux) {\n useEffect(() => {\n const url = new URL(window.location.href);\n const signupRequestId = url.searchParams.get('signupRequestId') ?? '';\n const signupOrigin = url.searchParams.get('SignupOrigin') ?? undefined;\n const source = url.searchParams.get('SignupSource') ?? undefined;\n const error = url.searchParams.get('Error') ?? undefined;\n\n actions.init(signupRequestId, source, signupOrigin, error);\n }, []);\n\n return (\n <>\n {view === 'emptyView' ? (\n <>\n ) : view === 'errorView' ? (\n \n ) : view === 'loadingView' ? (\n \n ) : (\n \n \n \n \n \n \n \n\n {view === 'organisationSelectionView' && (\n \n )}\n\n {view === 'signupFormView' && }\n \n \n )}\n \n );\n}\n\nconst mapStateToProps = ({\n xeroSignup,\n}: {\n xeroSignup: XeroSignupState;\n}) => {\n const {\n hasSaved,\n tenants,\n tenantId,\n view,\n signupUrl,\n isPortalCreationInProgress,\n } = xeroSignup || DEFAULT_STATE;\n return {\n hasSaved,\n tenants,\n tenantId,\n view,\n signupUrl,\n isPortalCreationInProgress,\n };\n};\n\nexport const mapDispatchToProps = (dispatch: Dispatch) => ({\n actions: bindActionCreators(actionCreators, dispatch as Dispatch),\n});\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\ntype PropsFromRedux = ConnectedProps;\n\nexport default connector(XeroSignup);\n","/* istanbul ignore file */\nimport find from 'lodash/find';\nimport isNaN from 'lodash/isNaN';\nimport isEmail from 'sane-email-validation';\n\nconst constraints = [\n {\n name: 'min',\n pattern: 'numeric',\n // @ts-ignore\n check(value, constraintValue) {\n return +value >= constraintValue;\n },\n // @ts-ignore\n message(_name, constraintValue) {\n return {\n term: 'CommonFormatting.NumericValidationMin',\n params: {numbermin: constraintValue},\n };\n },\n },\n {\n name: 'max',\n pattern: 'numeric',\n // @ts-ignore\n check(value, constraintValue) {\n return +value <= constraintValue;\n },\n // @ts-ignore\n message(_name, constraintValue) {\n return {\n term: 'CommonFormatting.NumericValidationMax',\n params: {numbermax: constraintValue},\n };\n },\n },\n {\n name: 'minLength',\n // @ts-ignore\n check(value, constraintValue) {\n return value.length >= constraintValue;\n },\n // @ts-ignore\n message(_name, constraintValue) {\n return {\n term: 'CommonFormatting.NumericValidationMin',\n params: {numbermin: constraintValue - 1},\n };\n },\n },\n {\n name: 'maxLength',\n // @ts-ignore\n check(value, constraintValue) {\n return value.length <= constraintValue;\n },\n // @ts-ignore\n message(_name, constraintValue) {\n return {\n term: 'CommonFormatting.CharactersValidationMax',\n params: {numbermax: constraintValue},\n };\n },\n },\n];\n\nconst constraintKeys = constraints.map(def => def.name);\n\nconst patterns = [\n {\n name: 'email',\n // @ts-ignore\n check(value) {\n return isEmail(value);\n },\n message() {\n return {term: 'NextPeople.EmailError_EmailNotValid'};\n },\n },\n {\n name: 'numeric',\n // @ts-ignore\n check(value) {\n return !isNaN(+value);\n },\n message() {\n return {term: 'CommonFormatting.NumericFormat'};\n },\n },\n {\n name: 'containsNonWhitespace',\n // @ts-ignore\n check(value) {\n const patt = new RegExp(/\\S+/);\n return patt.test(value);\n },\n message() {\n return {term: 'CommonFormatting.MustContainNonWhitespace'};\n },\n },\n {\n name: 'password',\n // @ts-ignore\n check(value) {\n const patt = new RegExp('.{8,}$');\n return patt.test(value);\n },\n message() {\n return {\n term: 'SignUp.PasswordNotValid_Error',\n fallback:\n 'Invalid password. Please enter a new password with a minimum of 8 characters.',\n };\n },\n },\n];\n// @ts-ignore\nfunction isEmpty(value) {\n // Hopefully only relations can be arrays\n if (Array.isArray(value)) {\n return !value.length;\n }\n return value === null || typeof value === 'undefined' || value === '';\n}\n\n// @ts-ignore\nfunction checkRequired(_name, value) {\n if (isEmpty(value)) {\n return {\n term: 'CommonTerms.Generic_RequiredField',\n fallback: 'Required field',\n };\n }\n}\n\n// @ts-ignore\nfunction checkPattern(name, value, patternName) {\n const pattern = find(patterns, {name: patternName});\n\n if (pattern) {\n if (!isEmpty(value)) {\n if (!pattern.check(value)) {\n // @ts-ignore\n return pattern.message(name);\n }\n }\n } else {\n throw Error(`\"${patternName}\" pattern is not defined!`);\n }\n}\n// @ts-ignore\nfunction checkConstraint(name, value, constraintName, constraintValue) {\n if (constraintValue !== undefined && constraintValue !== null) {\n const constraint = find(constraints, {name: constraintName});\n\n if (constraint) {\n let pattern;\n\n if (constraint.pattern) {\n pattern = find(patterns, {name: constraint.pattern});\n }\n\n if (!pattern || pattern.check(value)) {\n if (!isEmpty(value)) {\n if (!constraint.check(value, constraintValue)) {\n return constraint.message(name, constraintValue);\n }\n }\n }\n } else {\n throw Error(`\"${constraintName}\" constraint is not defined!`);\n }\n }\n}\n// @ts-ignore\nfunction checkCustom(model, value, firstPassErrors, check, message) {\n if (!check(model, value, firstPassErrors)) {\n return message;\n }\n}\n\nexport default {\n /**\n * @params {bool} options.ignoreRequired\n */\n // @ts-ignore\n validate(attrs, rules, options = {}) {\n const firstPassErrors = {};\n\n Object.keys(rules).forEach(key => {\n const rule = rules[key];\n const value = attrs[key];\n let error;\n // Required\n // @ts-ignore\n if (rule.required && !options.ignoreRequired) {\n error = checkRequired(key, value);\n }\n\n if (typeof value !== 'undefined') {\n // Patterns\n if (!isEmpty(value) && rule.pattern) {\n error = checkPattern(key, value, rule.pattern);\n }\n\n // Constraints\n if (!error) {\n Object.keys(rule).some(rkey => {\n if (constraintKeys.includes(rkey)) {\n const constraintValue = rule[rkey];\n error = checkConstraint(key, value, rkey, constraintValue);\n return error;\n }\n });\n }\n }\n\n if (error) {\n // @ts-ignore\n firstPassErrors[key] = error;\n }\n });\n\n // Second pass - performs any custom validation\n const secondPassErrors = {};\n Object.keys(rules).forEach(key => {\n const rule = rules[key];\n const value = attrs[key];\n let error;\n\n if (!isEmpty(value)) {\n if (rule.check && rule.message) {\n // the rule itself is a custom rule\n error = checkCustom(\n attrs,\n value,\n firstPassErrors,\n rule.check,\n rule.message\n );\n } else if (rule.custom) {\n // there is a nested custom rule\n error = checkCustom(\n attrs,\n value,\n firstPassErrors,\n rule.custom.check,\n rule.custom.message\n );\n }\n }\n\n if (error) {\n // @ts-ignore\n secondPassErrors[key] = error;\n }\n });\n\n const combinedErrors = {\n ...firstPassErrors,\n ...secondPassErrors,\n };\n\n if (Object.keys(combinedErrors).length) {\n return combinedErrors;\n } else {\n return null;\n }\n },\n};\n","import {\n formatCountries,\n formatPhonePrefixes,\n getEventChannel,\n setValidationRules,\n socketConnection,\n} from '../../shared/helpers/helpers';\nimport {actions, ActionTypes, XeroSignupAction} from '../actions';\nimport {XeroSignupState} from '../state';\nimport {\n Country,\n KeyValue,\n PhonePrefix,\n SelectOption,\n Tenant,\n} from '../types/Types';\nimport {ApiSettings} from '@planday-corp/core/services';\nimport {ApiError} from '@planday-corp/core/services/Api';\nimport Notifications from '@planday-corp/core/services/Notifications';\nimport {Action} from '@planday-corp/react-app';\nimport {Label} from '@planday-corp/ui/types';\nimport {isEmpty} from 'lodash';\nimport {Store} from 'redux';\nimport {SagaIterator} from 'redux-saga';\nimport {all, call, put, take} from 'redux-saga/effects';\n\nexport type AppStore = Store<{xeroSignup: XeroSignupState}>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ActionPayload = A extends Action ? {payload: P} : never;\nexport type Payload = ActionPayload>;\n\nconst AppContext = {};\n\nconst getErrorToast = (\n message: Label = {\n term: 'SignUp.General_Error',\n fallback: 'Something went wrong, please try again.',\n }\n) =>\n ({\n type: 'Toast',\n severity: 'Error',\n message,\n }) as const;\n\nexport interface Api {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get: (url: string, opts?: object) => Promise;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n put: (url: string, opts?: object) => Promise;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n post: (url: string, opts?: object) => Promise;\n settings: ApiSettings;\n}\n\nexport interface AppContext {\n signupApi: Api;\n notifications: Notifications;\n}\n\nexport function* init(context: AppContext): SagaIterator {\n const {signupApi, notifications} = context;\n\n while (true) {\n const action: ActionTypes = 'xeroSignup/INIT';\n const {\n payload: {signupRequestId, source, signupOrigin, error},\n }: Payload = yield take(action);\n\n if (source === 'Xero') {\n if (error) {\n yield put(\n actions.receive({\n view: 'errorView',\n signupUrl: `${signupApi.settings.serverUrl}/xeroSignup?source=${signupOrigin}`,\n })\n );\n } else {\n try {\n const tenants: Tenant[] = yield call(\n signupApi.get,\n 'XeroSignup/tenants',\n {\n headers: {\n 'X-SignupToken': signupRequestId,\n },\n }\n );\n if (\n tenants.length > 1 ||\n (tenants.length === 1 && tenants[0].portalUrl)\n ) {\n yield put(\n actions.receive({\n tenants,\n view: 'organisationSelectionView',\n isLoading: false,\n signupUrl: `${signupApi.settings.serverUrl}/xeroSignup?source=${signupOrigin}`,\n })\n );\n } else {\n yield put(\n actions.receive({\n tenantId: tenants[0].id,\n })\n );\n yield put(actions.fetchFormData());\n }\n } catch {\n yield put(\n actions.receive({\n view: 'errorView',\n })\n );\n\n yield call([notifications, notifications.add], getErrorToast());\n }\n }\n } else {\n yield put(actions.fetchFormData());\n }\n }\n}\n\nexport function* fetchFormData(\n store: AppStore,\n context: AppContext\n): SagaIterator {\n const {signupApi, notifications} = context;\n\n while (true) {\n const action: ActionTypes = 'xeroSignup/FETCH_FORM_DATA';\n yield take(action);\n\n const {signupRequestId, tenantId, source} = store.getState().xeroSignup;\n\n yield put(\n actions.receive({\n isLoading: true,\n view: 'signupFormView',\n })\n );\n\n try {\n const [\n employeeOptions,\n industryOptions,\n phonePrefixOptions,\n countryOptions,\n formData,\n ]: [\n SelectOption[],\n SelectOption[],\n PhonePrefix[],\n Country[],\n KeyValue,\n ] = yield all([\n yield call(signupApi.get, '/Common/employees'),\n yield call(signupApi.get, '/Common/industries'),\n yield call(signupApi.get, '/Common/phonePrefixes'),\n yield call(signupApi.get, '/Common/countries', {\n headers: {'Accept-Language': 'en-GB'},\n }),\n source === 'Xero'\n ? yield call(signupApi.get, `/XeroSignup/signupDetails/${tenantId}`, {\n headers: {\n 'X-SignupToken': signupRequestId,\n },\n })\n : yield call(signupApi.get, 'XeroSignup/signupDetails', {\n headers: {\n 'X-SignupToken': signupRequestId,\n },\n }),\n ]);\n\n const validationRules = store.getState().xeroSignup.validationRules;\n\n setValidationRules(formData, validationRules);\n\n yield put(\n actions.receive({\n employeeOptions,\n industryOptions,\n phonePrefixOptions: formatPhonePrefixes(phonePrefixOptions),\n countryOptions: formatCountries(countryOptions),\n formData,\n })\n );\n\n yield put(\n actions.receive({\n isLoading: false,\n })\n );\n } catch {\n yield call([notifications, notifications.add], getErrorToast());\n }\n }\n}\n\nexport function* persist(store: AppStore, context: AppContext): SagaIterator {\n const {signupApi, notifications} = context;\n\n while (true) {\n const action: ActionTypes = 'xeroSignup/SAVE';\n yield take(action);\n yield call([notifications, notifications.removeAll]);\n const signUpState = store.getState().xeroSignup;\n const {errors, formData, hasAcceptedTerms} = signUpState;\n\n const connection = yield call(socketConnection, context);\n const socketChannel = yield call(getEventChannel, store, connection);\n\n if (isEmpty(errors.fields) && hasAcceptedTerms) {\n try {\n const payload = {\n firstName: formData.firstName,\n lastName: formData.lastName,\n email: formData.email,\n password: formData.password,\n companyName: formData.companyName,\n countryCode:\n formData.countryCode !== undefined ? formData.countryCode : '',\n timezone:\n formData.countryCode === 'AU' ? formData.timeZone : undefined,\n source: formData.requestOrigin,\n phoneNumber: formData.phone,\n phoneCountryCodePrefix:\n formData.phoneCountryCodePrefix !== undefined\n ? formData.phoneCountryCodePrefix\n : '',\n industry: formData.industry !== undefined ? formData.industry : '',\n employees:\n formData.noOfEmployeesRange !== undefined\n ? formData.noOfEmployeesRange\n : '',\n };\n\n yield call(signupApi.post, 'Signup', {\n body: payload,\n headers: {\n 'X-SignupToken': signUpState.signupRequestId,\n },\n });\n\n yield put(\n actions.receive({\n view: 'loadingView',\n isPortalCreationInProgress: true,\n })\n );\n\n yield call([connection, connection.start]);\n\n const subscribe = () => {\n connection.send('Subscribe', signUpState.signupRequestId).then(() =>\n // tslint:disable-next-line\n console.log(\n 'Subscribed to Hubs. Please wait, listening to sockets...'\n )\n );\n };\n\n yield call(subscribe);\n\n const {status, portalUrl} = yield take(socketChannel);\n\n if (status === 'success' && portalUrl) {\n yield put(\n actions.receive({\n portalUrl,\n isPortalCreationInProgress: false,\n })\n );\n }\n\n if (status === 'failure') {\n // tslint:disable-next-line\n console.log('onFailure socket event is emited');\n socketChannel.close();\n yield call(\n [notifications, notifications.add],\n getErrorToast({\n term: 'CommonTerms.Libs_HelperUI_DefaultErrorTitle',\n fallback: 'An error occurred',\n })\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n yield put(actions.receive({view: 'signupFormView'}));\n if (error instanceof ApiError) {\n const validationErrors = error.getValidationErrors();\n\n const {fields} = error.getValidationErrorsAsObject();\n\n if (error.isClientError && validationErrors.length) {\n yield put(\n actions.receive({\n apiErrors: {fields},\n })\n );\n yield call(\n [notifications, notifications.add],\n getErrorToast({\n term: 'SignUp.GeneralValidation_ApiError',\n fallback:\n 'An error with the information you entered occurred. Please re-enter your information and try again.',\n })\n );\n } else {\n yield call([notifications, notifications.add], getErrorToast());\n }\n } else {\n yield call([notifications, notifications.add], getErrorToast());\n }\n }\n }\n }\n}\n\nexport function* proceed(store: AppStore, context: AppContext): SagaIterator {\n const {signupApi, notifications} = context;\n\n while (true) {\n const action: ActionTypes = 'xeroSignup/PROCEED';\n const {\n payload: {tenantId},\n }: Payload = yield take(action);\n\n const {signupRequestId} = store.getState().xeroSignup;\n try {\n const response = yield call(\n signupApi.get,\n `/XeroSignup/login/${tenantId}`,\n {\n headers: {\n 'X-SignupToken': signupRequestId,\n },\n }\n );\n\n window.location.replace(response.redirectUrl);\n } catch {\n yield put(\n actions.receive({\n view: 'errorView',\n })\n );\n yield call([notifications, notifications.add], getErrorToast());\n }\n }\n}\n\nexport function* redirectToPortal(store: AppStore): SagaIterator {\n while (true) {\n const action: ActionTypes = 'xeroSignup/REDIRECT_TO_PORTAL';\n\n yield take(action);\n\n const {portalUrl} = store.getState().xeroSignup;\n if (portalUrl) {\n location.href = portalUrl;\n }\n }\n}\n\nexport function* xeroSignupSaga(store: Store, context: AppContext) {\n yield all([\n init(context),\n fetchFormData(store, context),\n persist(store, context),\n proceed(store, context),\n redirectToPortal(store),\n ]);\n}\n","import {XeroSignup} from './components';\nimport {xeroSignupReducer} from './reducers';\nimport {xeroSignupSaga} from './sagas';\nimport {register} from '@planday-corp/react-app';\nimport {Reducer} from 'redux';\n\nexport default register({\n id: 'xeroSignup',\n reducer: xeroSignupReducer as Reducer,\n saga: xeroSignupSaga,\n})(XeroSignup);\n","import validator from '../../shared/validator';\nimport {XeroSignupAction} from '../actions';\nimport {DEFAULT_STATE, XeroSignupState} from '../state';\nimport {KeyValue} from '../types/Types';\nimport {isEmpty} from 'lodash';\n\nexport function xeroSignupReducer(\n state: XeroSignupState = DEFAULT_STATE,\n action: XeroSignupAction\n): XeroSignupState {\n switch (action.type) {\n case 'xeroSignup/INIT': {\n const {signupRequestId, source, signupOrigin} = action.payload;\n return {\n ...state,\n signupRequestId,\n source,\n signupOrigin,\n };\n }\n\n case 'xeroSignup/RECEIVE': {\n const {content} = action.payload;\n let displayCountryAndTimeZone = state.displayCountryAndTimeZone;\n if (content.formData && content.formData.countryCode === 'AU') {\n displayCountryAndTimeZone = true;\n }\n return {\n ...state,\n displayCountryAndTimeZone,\n ...content,\n };\n }\n\n case 'xeroSignup/UPDATE_FIELD': {\n const newField = {\n ...state.formData,\n ...action.payload,\n };\n\n const changeValidationRules =\n state.formData.phoneCountryCodePrefix ===\n newField.phoneCountryCodePrefix;\n\n let validationRules = state.validationRules;\n if (newField.phoneCountryCodePrefix === '+61') {\n validationRules = {\n ...validationRules,\n item: {\n ...validationRules.item,\n phone: {required: true, minLength: 9},\n },\n };\n } else {\n validationRules = {\n ...validationRules,\n item: {\n ...validationRules.item,\n phone: {required: true},\n },\n };\n }\n let errors: KeyValue | null = null;\n if (\n (state.hasSaved && changeValidationRules) ||\n !isEmpty(state.errors.fields)\n ) {\n errors = validator.validate(newField, validationRules.item);\n }\n\n return {\n ...state,\n validationRules: validationRules,\n errors: {\n ...state.errors,\n fields: errors ? errors : {},\n },\n apiErrors: {},\n formData: {\n ...newField,\n },\n };\n }\n\n case 'xeroSignup/SAVE': {\n const errors: KeyValue | null = validator.validate(\n state.formData,\n state.validationRules.item\n );\n\n return {\n ...state,\n errors: {\n ...state.errors,\n fields: errors || {},\n },\n hasSaved: true,\n };\n }\n\n case 'xeroSignup/SET_TENANT_ID': {\n const {tenantId} = action.payload;\n return {\n ...state,\n tenantId,\n };\n }\n\n default: {\n return state;\n }\n }\n}\n"],"names":["actions","init","signupRequestId","source","signupOrigin","error","type","payload","receive","content","updateField","save","undefined","fetchFormData","setTenantId","tenantId","proceed","redirectToPortal","DEFAULT_STATE","hasSaved","isLoading","displayCountryAndTimeZone","formData","firstName","lastName","password","confirmPassword","email","companyName","countryCode","phone","phoneCountryCodePrefix","industry","noOfEmployeesRange","requestOrigin","isEmailInUse","timeZone","validationRules","item","required","maxLength","errors","apiErrors","view","industryOptions","employeeOptions","phonePrefixOptions","countryOptions","hasAcceptedTerms","isPortalCreationInProgress","StyledErrorContainer","styled","div","withConfig","displayName","componentId","StyledContent","StyledIllustration","img","StyledTitleText","Text","StyledBodyText","StyledButtonContainer","ErrorScreen","_ref","redirectPath","illustrationSvg","title","body","buttonLabel","i18n","useGlobalization","_jsx","children","_jsxs","src","role","size","element","value","ButtonLink","href","t","StyledUl","ul","StyledLi","li","StyledIcon","Icon","BulletList","items","map","index","iconName","color","NegativeMarginWrapper","RedirectCountdownBanner","handleRedirect","secondsToRedirect","setSecondsToRedirect","useState","useEffect","intervalId","setInterval","clearInterval","Banner","isSticky","LABELS","onboardingAutoRedirectCountdown","params","Container","COLUMN_STYLES","css","LeftColumn","RightColumn","Background","VacationImage","SectionContainer","StyledTextWrapper","SectionContentWrapper","StyledSpinner","InlineSpinner","Button","LoadingScreen","redirectToPortalAction","Vacation","onboardingExampleStepsTitle","onboardingExampleStepsList","split","Section","onboardingStatusInProgress","onboardingStatusFinished","StyledBannerWrapper","StyledWrapper","StyledLinkWrapper","StyledButtonWrapper","OrganisationSelector","tenants","signupUrl","setTenantIdAction","proceedAction","fetchFormDataAction","showModal","setShowModal","showOptions","useMemo","length","id","tenant","find","options","label","name","modalDetails","portalUrl","loginModalTitle","primaryBtn","loginBtn","term","fallback","signupModalTitle","signupBtn","_Fragment","padding","xeroOrganisations","SelectField","onChange","val","EditModal","onClose","ariaLabel","backgroundColor","isBlocked","buttons","onClick","I18n","txtOrDescriptor","Link","linkChooseAnotherOrg","handleClick","isDisabled","continue","StyledContainer","BoardGroup","Board","StyledBoardHeading","grey20","LegendText","InfoText","StyledTermsAndConditionsTextWrapper","StyledCheckboxField","CheckboxField","isCountryCodeAU","wrap","checkboxLabel","termsAndConditionsCheckboxText","seeAllDocuments","target","termsAndConditionsAriaTitle","termsAndConditionsLink","here","GRID_GAP","CustomCell","props","$width","connect","_ref2","xeroSignup","dispatch","bindActionCreators","actionCreators","onFieldChange","timeZoneOptions","getTimeZones","theFormIsPrefilled","Grid","GridCell","TextField","isRequired","fields","FirstName","LastName","Password","userNameEmail","Email","isSearchable","country","CountryCode","PhoneCountryCodePrefix","phoneNumber","PhoneNumber","CompanyName","Industry","employees","Employees","TermsAndConditions","signup","url","URL","window","location","searchParams","get","accessDeniedIllustration","errorScreenTitle","errorScreenBody","errorScreenBtn","connectYourXeroOrganisation","signupToPlanday","SignupForm","constraints","pattern","check","constraintValue","message","_name","numbermin","numbermax","constraintKeys","def","patterns","isEmail","isNaN","RegExp","test","isEmpty","Array","isArray","checkCustom","model","firstPassErrors","validate","attrs","rules","arguments","Object","keys","forEach","key","rule","ignoreRequired","checkRequired","patternName","Error","checkPattern","some","rkey","includes","constraintName","constraint","checkConstraint","secondPassErrors","custom","combinedErrors","getErrorToast","severity","context","signupApi","notifications","action","take","put","settings","serverUrl","call","headers","add","store","getState","all","setValidationRules","formatPhonePrefixes","formatCountries","persist","removeAll","signUpState","connection","socketConnection","socketChannel","getEventChannel","timezone","post","start","subscribe","send","then","console","log","status","close","ApiError","validationErrors","getValidationErrors","getValidationErrorsAsObject","isClientError","response","replace","redirectUrl","register","reducer","state","newField","changeValidationRules","minLength","validator","saga","XeroSignup"],"sourceRoot":""}