{"version":3,"file":"52.bundle.js","mappings":"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","sources":["webpack:///./components/textInput/index.tsx","webpack:///./components/layout/row.tsx","webpack:///./components/layout/spacer.tsx","webpack:///./components/layout/addressRow.tsx","webpack:///./components/layout/index.ts","webpack:///./components/dropdown/shared/chevron.tsx","webpack:///./components/dropdown/shared/index.tsx","webpack:///./components/dropdown/mobile/index.tsx","webpack:///./components/dropdown/index.tsx","webpack:///./validation/helpers.ts","webpack:///./validation/types.ts","webpack:///./validation/index.ts","webpack:///./components/name/index.tsx","webpack:///./components/email/index.tsx","webpack:///./components/taxId/index.tsx","webpack:///./components/maskedTextInput/index.tsx","webpack:///./paymentSources/base/types.ts","webpack:///./components/index.ts","webpack:///./components/addressFields/addressLine/index.tsx","webpack:///./components/addressFields/city/index.tsx","webpack:///./components/addressFields/postalCode/index.tsx","webpack:///./components/addressFields/index.ts","webpack:///./paymentSources/base/reducer.ts","webpack:///./paymentSources/base/helpers.ts","webpack:///./analytics/fpti.ts","webpack:///./paymentSources/base/index.tsx"],"sourcesContent":["import React, {\n HTMLAttributes,\n ReactElement,\n ReactNode,\n forwardRef,\n} from 'react'\nimport './styles.css'\n\nimport classNames from 'classnames'\n\nexport interface FormMessageProps {\n classPrefix: string\n messageId: string\n helperText?: string | string[] | ReactNode\n errorText?: string | ReactElement\n name: string\n}\n\nexport type withClassName = {\n className?: string\n}\n\nexport type TextInputProps = {\n setFocus?: boolean | undefined\n disabled?: boolean | undefined\n error?: boolean | undefined\n name: string\n errorText: string | ReactElement\n id: string | undefined\n label: any\n placeholder: string\n type: 'email' | 'number' | 'password' | 'tel' | 'text' | 'url'\n multiline: boolean | undefined\n value: string\n onChange: (event: React.ChangeEvent) => void\n leftIcon: ReactElement | null\n rightIcon: ReactElement | null\n} & HTMLAttributes\n\nconst FormMessage = ({ messageId, errorText, name }: FormMessageProps) => {\n if (errorText) {\n return (\n \n {errorText}\n \n )\n }\n return null\n}\n\nconst textClass = 'ppvx_text-input'\n\nconst TextInput = forwardRef(\n function TextInput(\n {\n setFocus,\n className,\n errorText,\n error = !!errorText, // passing errorText implies error === true\n value,\n name,\n id = `text-input-${name}`,\n label,\n multiline = false,\n placeholder = ' ',\n leftIcon = null,\n rightIcon = null,\n onChange,\n type,\n ...rest\n }: TextInputProps,\n ref,\n ) {\n const [focused, setFocused] = React.useState(false)\n\n const msgId = `message_${id}`\n\n const valueProps = onChange\n ? {\n onChange,\n value,\n }\n : {\n defaultValue: value,\n }\n\n const ariaDescribedByProp = errorText\n ? {\n 'aria-describedby': msgId,\n }\n : {}\n\n return (\n
\n setFocused(true)}\n onBlur={() => setFocused(false)}\n className={classNames('Input', { 'Input--invalid': error })}\n name={name}\n id={id}\n aria-invalid={error}\n ref={ref}\n {...ariaDescribedByProp}\n placeholder={placeholder}\n {...valueProps}\n {...rest}\n />\n \n {label}\n \n \n
\n )\n },\n)\n\nexport default TextInput\n","import React from 'react'\nimport './row.css'\n\nconst Row: React.FunctionComponent<{}> = ({ children }) => {\n return
{children}
\n}\n\nexport default Row\n","import React from 'react'\nimport './spacer.css'\n\nconst Spacer: React.FunctionComponent<{}> = () => {\n return
\n}\n\nexport default Spacer\n","import React from 'react'\nimport './AddressRow.css'\n\nconst AddressRow: React.FunctionComponent<{}> = ({ children }) => {\n return
{children}
\n}\n\nexport default AddressRow\n","export { default as Row } from './row'\nexport { default as Spacer } from './spacer'\nexport { default as AddressRow} from './addressRow'\n","import React from 'react'\nimport classNames from 'classnames'\n\nimport './chevron.css'\n\ninterface Props {\n menuIsOpen: boolean\n}\n\nexport default function Chevron({ menuIsOpen }: Props) {\n return (\n \n \n \n \n \n )\n}\n","export { default as Chevron } from './chevron'\n","import React from 'react'\n\nimport classNames from 'classnames'\n\nimport { Props } from '../index'\nimport { Chevron } from '../shared'\n\nimport { DropdownItem } from '../../../interfaces'\nimport { Spacer } from '../..'\n\nimport './styles.css'\n\nexport default function NativeSelect({\n defaultValue = '',\n name,\n data,\n onChange,\n placeholder,\n showValidation,\n hideImg,\n}: Props) {\n const [value, setValue] = React.useState(defaultValue)\n\n const selected = React.useMemo(() => {\n return data.find((item) => item.value === value)\n }, [value, data])\n\n return (\n
\n
\n {(selected?.src && !hideImg) && (\n \n )}\n\n {\n setValue((e.target as HTMLSelectElement).value)\n onChange((e.target as HTMLSelectElement).value)\n }}\n data-testid={`${name}-mobile-dropdown`}\n className={classNames('Input DropDownSelect', {\n 'Input--active DropDownSelect--active': selected && !hideImg,\n 'Input--active DropDownSelect--active--no-img': selected && hideImg,\n 'Input--invalid': !value && showValidation,\n })}\n >\n \n\n {data.map((item) => {\n return (\n \n {item.label}\n \n )\n })}\n \n\n \n
\n \n
\n )\n}\n","/* eslint import/no-unresolved: 0 */\nimport React from 'react'\nimport * as CSS from 'csstype'\n\nimport { DropdownItem } from '../../interfaces'\n\nimport MobileDropdown from './mobile'\n\nexport interface Props {\n defaultValue: string\n name: string\n data: DropdownItem[]\n onChange: (value: string) => void\n placeholder: JSX.Element\n showValidation: boolean\n iconStyles?: CSS.Properties\n hideImg?: boolean\n}\n\nexport function Dropdown(props: Props) {\n return \n}\n","interface TaxInfoTypes {\n TAX_ID_CPF_LENGTH: number\n TAX_ID_CNPJ_LENGTH: number\n }\n\nconst C2 = 2,\nC3 = 3,\nC4 = 4,\nC5 = 5,\nC6 = 6,\nC7 = 7,\nC8 = 8,\nC9 = 9,\nC10 = 10,\nC11 = 11,\nC12 = 12,\nC13 = 13\n\nconst TaxInfoConstants : TaxInfoTypes = {\n TAX_ID_CPF_LENGTH: 11,\n TAX_ID_CNPJ_LENGTH: 14,\n}\n\n/**\n * This validator validates if the tax id for CPF and CNPJ is valid or not\n * It is based on the validation done in checkoutbuyerplatserv\n * It follows the pattern recommended by PPRO:\n * https://docs.latam.ppro.com/compliance/customer-id-number#brazil\n * \n * @param taxId\n * @return boolean\n */\nexport function isBrazilTaxIdValid(taxId: string): boolean {\n if (taxId !== null && /\\d/g.test(taxId)) {\n if (taxId.length === TaxInfoConstants.TAX_ID_CPF_LENGTH) {\n return validateCPF(taxId);\n } else if (taxId.length === TaxInfoConstants.TAX_ID_CNPJ_LENGTH) {\n return validateCNPJ(taxId);\n }\n }\n return false;\n}\n\n/**\n * Validates tax id type is a CPF and returns true if it is otherwise returns false.\n * \n * @param cpf\n * @return boolean\n */\nfunction validateCPF(cpf: string): boolean {\n let validArr = new Array(2);\n validArr[0] = C10 * (parseInt(cpf[0], 10)) + C9 * (parseInt(cpf[1], 10)) + C8 * (parseInt(cpf[C2], 10)) + C7 * (parseInt(cpf[C3], 10))\n + C6 * (parseInt(cpf[C4], 10))\n + C5 * (parseInt(cpf[C5], 10)) + C4 * (parseInt(cpf[C6], 10))\n + C3 * (parseInt(cpf[C7], 10)) + C2 * (parseInt(cpf[C8], 10));\n validArr[0] = C11 - (validArr[0] % C11);\n if (validArr[0] >= C10) {\n validArr[0] = 0;\n }\n validArr[1] = C11 * (parseInt(cpf[0], 10)) + C10 * (parseInt(cpf[1], 10)) + C9 * (parseInt(cpf[C2], 10)) + C8 * (parseInt(cpf[C3], 10))\n + C7 * (parseInt(cpf[C4], 10))\n + C6 * (parseInt(cpf[C5], 10)) + C5 * (parseInt(cpf[C6], 10))\n + C4 * (parseInt(cpf[C7], 10)) + C3 * (parseInt(cpf[C8], 10));\n validArr[1] = validArr[1] + (C2 * validArr[0]);\n validArr[1] = C11 - (validArr[1] % C11);\n if (validArr[1] >= C10) {\n validArr[1] = 0;\n }\n return validArr[0] === parseInt(cpf[C9], 10) && validArr[1] === parseInt(cpf[C10], 10);\n}\n\n/**\n * Validates tax id type is a CNPJ and returns true if it is otherwise returns false.\n * \n * @param cnpj\n * @return boolean\n */\nfunction validateCNPJ(cnpj: string): boolean {\n let validArr = new Array(2);\n validArr[0] = C5 * (parseInt(cnpj[0], 10)) + C4 * (parseInt(cnpj[1], 10)) + C3 * (parseInt(cnpj[C2], 10)) + C2 * (parseInt(cnpj[C3], 10))\n + C9 * (parseInt(cnpj[C4], 10)) + C8 * (parseInt(cnpj[C5], 10))\n + C7 * (parseInt(cnpj[C6], 10)) + C6 * (parseInt(cnpj[C7], 10)) + C5 * (parseInt(cnpj[C8], 10)) + C4 * (parseInt(cnpj[C9], 10))\n + C3 * (parseInt(cnpj[C10], 10)) + C2 * (parseInt(cnpj[C11], 10));\n validArr[0] = C11 - (validArr[0] % C11);\n if (validArr[0] >= C10) {\n validArr[0] = 0;\n }\n validArr[1] = C6 * (parseInt(cnpj[0], 10)) + C5 * (parseInt(cnpj[1], 10)) + C4 * (parseInt(cnpj[C2], 10)) + C3 * (parseInt(cnpj[C3], 10))\n + C2 * (parseInt(cnpj[C4], 10)) + C9 * (parseInt(cnpj[C5], 10))\n + C8 * (parseInt(cnpj[C6], 10)) + C7 * (parseInt(cnpj[C7], 10)) + C6 * (parseInt(cnpj[C8], 10)) + C5 * (parseInt(cnpj[C9], 10))\n + C4 * (parseInt(cnpj[C10], 10)) + C3 * (parseInt(cnpj[C11], 10));\n validArr[1] = validArr[1] + C2 * validArr[0];\n validArr[1] = C11 - (validArr[1] % C11);\n if (validArr[1] >= C10) {\n validArr[1] = 0;\n }\n return validArr[0] === parseInt(cnpj[C12], 10) && validArr[1] === parseInt(cnpj[C13], 10);\n}","export enum ValidatorFieldType {\n All = 'all',\n AddressLine1 = 'addressLine1',\n AdminArea1 = 'adminArea1',\n AdminArea2 = 'adminArea2',\n PostalCode = 'postalCode',\n}\n","/* eslint complexity: 0 */\nimport { WorldReady, AddressFormat } from '@paypalcorp/worldready'\nimport serverData from '../utils/server-data'\nimport { State } from '../paymentSources/base/types'\nimport { PaymentSource } from '../interfaces'\nimport { isBrazilTaxIdValid } from './helpers'\nimport { ValidatorFieldType } from './types'\n\nexport function isTaxIdValid(taxId: string) {\n taxId = taxId.replace(/\\D/g, '')\n return isBrazilTaxIdValid(taxId)\n}\n\nexport function isEmailValid(email: string) {\n return email.includes('@') && email.includes('.')\n}\n\nexport function isNameValid(fullName: string) {\n const [firstName, ...lastName] = fullName.trim().split(' ')\n const trimmedLastName = lastName.filter((name) => name !== '');\n const lastNameLength = trimmedLastName.reduce((a, b) => a + b.length, 0)\n\n const specialChars = /[`!@#$%^&*()_+=\\[\\]{};':\"\\\\|,.<>\\/?~]/\n const lastNameNoSpecialChars = trimmedLastName.every(name => !specialChars.test(name));\n\n return firstName.length >= 2 && lastNameLength >= 2 && !specialChars.test(firstName) && lastNameNoSpecialChars;\n}\n\n/* Uses WorldReady AddressFormat.prototype.validate(addressObj). Requirements are based on locale and country.\nFor more information see https://github.paypal.com/pages/Globalization-R/worldready-js/docs/address-api.html#addressformatprototypevalidateaddressobj\n*/\nexport function isBillingAddressValid({\n fieldType,\n billingAddress,\n}: {\n fieldType: ValidatorFieldType\n billingAddress: { [key: string]: string }\n}): boolean {\n const addressFormatter = billingAddress.countryCode\n ? new AddressFormat(new WorldReady(serverData.locality.locale), {\n addressRegion: billingAddress.countryCode,\n })\n : null\n /*\n * The validator returns an empty array if all fields are valid\n * An invalid address object will return an array with one object for every field (element) with an error\n * validatorHasNoErrors checks all fields or a single field based on fieldType ('all', 'adminArea1', 'postalCode', etc.)\n */\n const validator = addressFormatter?.validate(billingAddress)\n const validatorHasNoErrors =\n fieldType === 'all'\n ? validator.length === 0\n : validator?.every(\n (el: { [key: string]: string }) => el.element !== fieldType,\n )\n return !!validator && validatorHasNoErrors\n}\n\nexport function hasValue(value: string) {\n return !!value\n}\n\nexport function trustlyValidations(state: State) {\n return (\n isNameValid(state.name.value) &&\n hasValue(state.country.value) &&\n (serverData.appConfig.addEmailField ? isEmailValid(state.email.value) : true)\n )\n}\n\nexport function isPayloadValid(source: PaymentSource, state: State) {\n switch (source) {\n case PaymentSource.Ideal:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.P24:\n case PaymentSource.Blik:\n case PaymentSource.Payu:\n case PaymentSource.Oxxo: \n return (\n isNameValid(state.name.value) &&\n hasValue(state.country.value) &&\n isEmailValid(state.email.value)\n )\n case PaymentSource.Trustly:\n return trustlyValidations(state)\n case PaymentSource.Eps:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Mybank:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Giropay:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Bancontact:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Verkkopankki:\n return (\n isNameValid(state.name.value) &&\n hasValue(state.country.value) &&\n isEmailValid(state.email.value) &&\n hasValue(state.bankId.value)\n )\n\n case PaymentSource.Boleto:\n return (\n isNameValid(state.name.value) &&\n hasValue(state.country.value) &&\n isEmailValid(state.email.value) &&\n isTaxIdValid(state.taxId.value) &&\n isBillingAddressValid({\n fieldType: ValidatorFieldType.All,\n billingAddress: {\n addressLine1: state.addressLine1.value,\n adminArea1: state.state.value,\n adminArea2: state.city.value,\n postalCode: state.postalCode.value,\n countryCode: state.country.value,\n },\n })\n )\n\n case PaymentSource.Multibanco:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Alipay:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Wechatpay:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Satispay:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n case PaymentSource.Paidy:\n return isNameValid(state.name.value) && hasValue(state.country.value)\n\n default:\n throw new Error('not implemented')\n }\n}\n\nexport function getErrorDetail(state: State) {\n if (!hasValue(state.country.value)) return 'country_missing'\n if (!isNameValid(state.name.value)) return 'name_missing'\n if (!isEmailValid(state.email.value)) return 'email_invalid'\n if (!hasValue(state.bankId.value)) return 'bank_missing'\n if (!isTaxIdValid(state.taxId.value)) return 'tax_id_invalid'\n if (\n !isBillingAddressValid({\n fieldType: ValidatorFieldType.All,\n billingAddress: {\n addressLine1: state.addressLine1.value,\n adminArea1: state.state.value,\n adminArea2: state.city.value,\n postalCode: state.postalCode.value,\n countryCode: state.country.value,\n },\n })\n )\n return 'address_invalid'\n if (!hasValue(state.bankId.value)) return 'bank_missing'\n return 'default_validation_error'\n}\n","import React from 'react'\n\nimport { TextInput, Row } from '..'\nimport { isNameValid } from '../../validation'\ninterface Props {\n value: string\n nameLabel: JSX.Element\n showValidation: boolean\n errorTextName: JSX.Element | undefined\n onNameChange: (fullName: string) => void\n}\n\nexport default function Name({\n value,\n nameLabel,\n showValidation,\n errorTextName,\n onNameChange,\n}: Props) {\n const handleOnChange = (e: React.ChangeEvent) => {\n onNameChange(`${e.target.value}`)\n }\n\n return (\n \n \n \n )\n}\n","import React from 'react'\n\nimport { TextInput, Row } from '..'\nimport { isEmailValid } from '../../validation'\n\ninterface Props {\n value: string\n emailLabel: JSX.Element\n showValidation: boolean\n errorTextEmail: JSX.Element | undefined\n onChange: (email: string) => void\n}\n\nexport default function Email({\n emailLabel,\n showValidation,\n errorTextEmail,\n value,\n onChange,\n}: Props) {\n const handleEmailChange = (e: React.ChangeEvent) => {\n onChange(e.target.value)\n }\n\n return (\n \n \n \n )\n}\n","import React, { useRef } from 'react'\nimport { MaskedTextInput, Row } from '..'\nimport { isTaxIdValid } from '../../validation'\n\ninterface Props {\n value: string\n taxIdLabel: JSX.Element\n showValidation: boolean\n errorTextTaxId: JSX.Element | undefined\n onChange: (taxId: string) => void\n}\n\nexport default function TaxId({\n taxIdLabel,\n showValidation,\n errorTextTaxId,\n value,\n onChange,\n}: Props) {\n let inputRef = useRef(null)\n\n let maskOptions = {\n mask: [\n {\n mask: '000.000.000-00',\n lazy: true,\n },\n {\n mask: '00.000.000/0000-00',\n lazy: true,\n },\n ],\n }\n\n const handleOnAccept = (\n inputValue: string,\n unmaskedValue: string,\n typedValue: string,\n ) => {\n onChange(inputValue)\n }\n\n const handleOnComplete = (\n inputValue: string,\n unmaskedValue: string,\n typedValue: string,\n ) => {\n onChange(unmaskedValue)\n }\n\n return (\n \n \n \n )\n}\n","import React, {\n useEffect,\n useRef,\n forwardRef,\n Ref,\n MutableRefObject,\n} from 'react'\nimport IMask from 'imask/esm/imask'\nimport 'imask/esm/masked/dynamic'\nimport 'imask/esm/masked/number'\nimport 'imask/esm/masked/pattern'\nimport 'imask/esm/masked/range'\n\nimport { TextInput } from '..'\n\nexport type MaskedTextInputProps = {\n name: string\n maskOptions?: any\n value: string\n label: JSX.Element\n errorText: JSX.Element\n // 'accept' event fired on input when mask value has changed\n onAccept?: (value: string, unmaskedValue?: string, typedValue?: any) => void\n // 'complete' event fired when the value is completely filled\n // Note: this makes sense only for Pattern-based masks\n onComplete?: (value: string, unmaskedValue?: string, typedValue?: any) => void\n ref?: Ref // This is needed otherwise TS shows error for ref in components that are using MaskedTextInput under the hood\n}\n\nconst MaskType = {\n Range: IMask.MaskedRange,\n}\n\nconst MaskedTextInput = forwardRef(\n function MaskedTextInput(\n {\n name,\n maskOptions = { mask: Number },\n onAccept,\n onComplete,\n value,\n ...rest\n },\n ref: MutableRefObject,\n ) {\n const internalRef = useRef()\n const inputRef = ref || internalRef\n const maskedRef = useRef(null)\n\n useEffect(() => {\n const masked = maskedRef.current\n /* istanbul ignore else */\n if (masked) {\n masked.updateOptions(maskOptions)\n }\n }, [maskOptions])\n\n useEffect(() => {\n const masked = maskedRef.current\n /* istanbul ignore else */\n if (masked) {\n masked.unmaskedValue = value\n }\n }, [value])\n\n useEffect(() => {\n const elm = inputRef.current\n /* istanbul ignore else */\n if (elm && !maskedRef.current) {\n // eslint-disable-next-line\n maskedRef.current = IMask(elm, maskOptions)\n const masked = maskedRef.current\n\n masked.on('accept', () => {\n /* istanbul ignore else */\n if (onAccept) {\n onAccept(masked.value, masked.unmaskedValue, masked.typedValue)\n }\n })\n masked.on('complete', () => {\n /* istanbul ignore else */\n if (onComplete) {\n onComplete(masked.value, masked.unmaskedValue, masked.typedValue)\n }\n })\n }\n\n return () => {\n /* istanbul ignore else */\n if (maskedRef.current) {\n const masked = maskedRef.current\n\n masked.off('accept')\n masked.off('complete')\n masked.destroy()\n maskedRef.current = null\n }\n }\n }, [])\n\n return \n },\n)\n\nexport { MaskedTextInput as default, MaskType }\n","interface FieldName {\n value: string\n valid: boolean\n}\n\ninterface FieldCountry {\n value: string | null\n valid: boolean\n}\n\ninterface FieldBicCode {\n value: string | null\n valid: boolean\n}\ninterface FieldBankId {\n value: string | null\n valid: boolean\n}\n\ninterface FieldEmail {\n value: string\n valid: boolean\n}\n\ninterface FieldTaxId {\n value: string\n valid: boolean\n}\n\ninterface FieldAddressLine1 {\n value: string\n valid: boolean\n}\n\ninterface FieldCity {\n value: string\n valid: boolean\n}\n\ninterface FieldState {\n value: string\n valid: boolean\n}\n\ninterface FieldPostalCode {\n value: string\n valid: boolean\n}\nexport interface State {\n name: FieldName\n country: FieldCountry\n bicCode: FieldBicCode\n bankId: FieldBankId\n email: FieldEmail\n taxId: FieldTaxId\n addressLine1: FieldAddressLine1\n city: FieldCity\n state: FieldState\n postalCode: FieldPostalCode\n}\n\nexport enum ActionType {\n loadFromStorage,\n nameChange,\n countryChange,\n bicCodeChange,\n bankIdChange,\n emailChange,\n taxIdChange,\n addressLine1Change,\n cityChange,\n stateChange,\n postalCodeChange,\n}\n\nexport type Action =\n | {\n type: ActionType.loadFromStorage\n name: string\n email: string\n taxId: string\n country: string\n bic: string\n bankId: string\n addressLine1: string\n city: string\n state: string\n postalCode: string\n }\n | {\n type: ActionType.nameChange\n value: string\n }\n | {\n type: ActionType.countryChange\n value: string\n }\n | {\n type: ActionType.bicCodeChange\n value: string\n }\n | {\n type: ActionType.bankIdChange\n value: string\n }\n | {\n type: ActionType.emailChange\n value: string\n }\n | {\n type: ActionType.taxIdChange\n value: string\n }\n | {\n type: ActionType.addressLine1Change\n value: string\n addressRegion: string\n }\n | {\n type: ActionType.cityChange\n value: string\n addressRegion: string\n }\n | {\n type: ActionType.stateChange\n value: string\n addressRegion: string\n }\n | {\n type: ActionType.postalCodeChange\n value: string\n addressRegion: string\n }\nexport interface ConfirmPayload {\n payment_source: {\n [key: string]: ConfirmPayloadValues\n }\n}\n\nexport interface ConfirmPayloadValues {\n country_code: string | null\n name: string | null\n email: string | null\n taxId: string | null\n bic: string | null\n bank_id: string | null\n address_line1: string | null\n city: string | null\n state: string | null\n postal_code: string | null\n}\n","export { default as TextInput, TextInputProps } from './textInput'\nexport { Spacer, Row } from './layout'\nexport { Dropdown } from './dropdown'\nexport { default as Name } from './name'\nexport { default as Email } from './email'\nexport { default as TaxId } from './taxId'\nexport { default as MaskedTextInput } from './maskedTextInput'\n","import React from 'react'\n\nimport TextInput from '../../textInput'\nimport { Row } from '../../layout'\nimport { isBillingAddressValid } from '../../../validation'\nimport { ValidatorFieldType } from '../../../validation/types'\n\ninterface Props {\n value: string\n countryCode: string\n addressLineLabel: JSX.Element\n showValidation: boolean\n errorTextAddressLine: JSX.Element | undefined\n onChange: (address: string) => void\n}\n\nexport default function AddressLine({\n addressLineLabel,\n showValidation,\n errorTextAddressLine,\n value,\n countryCode,\n onChange,\n}: Props) {\n const handleAddressChange = (e: React.ChangeEvent) => {\n onChange(e.target.value)\n }\n\n return (\n \n \n \n )\n}\n","import React from 'react'\n\nimport { Row } from '../../layout'\nimport TextInput from '../../textInput'\nimport { isBillingAddressValid } from '../../../validation'\nimport { ValidatorFieldType } from '../../../validation/types'\n\ninterface Props {\n value: string\n countryCode: string\n cityLabel: JSX.Element\n showValidation: boolean\n errorTextCity: JSX.Element | undefined\n onChange: (address: string) => void\n}\n\nexport default function City({\n cityLabel,\n showValidation,\n errorTextCity,\n value,\n countryCode,\n onChange,\n}: Props) {\n const handleCityChange = (e: React.ChangeEvent) => {\n onChange(e.target.value)\n }\n\n return (\n \n \n \n )\n}\n","import React from 'react'\n\nimport { Row } from '../../layout'\nimport TextInput from '../../textInput'\nimport { isBillingAddressValid } from '../../../validation'\nimport { ValidatorFieldType } from '../../../validation/types'\n\ninterface Props {\n value: string\n countryCode: string\n postalCodeLabel: JSX.Element\n showValidation: boolean\n errorTextPostalCode: JSX.Element | undefined\n onChange: (address: string) => void\n}\n\nexport default function PostalCode({\n postalCodeLabel,\n showValidation,\n errorTextPostalCode,\n value,\n countryCode,\n onChange,\n}: Props) {\n const handlePostalCodeChange = (e: React.ChangeEvent) => {\n onChange(e.target.value)\n }\n\n return (\n \n \n \n )\n}\n","export { default as AddressLine } from './addressLine'\nexport { default as City } from './city'\nexport { default as PostalCode } from './postalCode'","/* eslint-disable complexity */\nimport get from 'lodash.get'\n\nimport { Action, State, ActionType } from './types'\n\nimport {\n isTaxIdValid,\n isNameValid,\n isEmailValid,\n isBillingAddressValid,\n hasValue,\n} from '../../validation'\nimport { ValidatorFieldType } from '../../validation/types'\n\nconst prefilledName = get(window, 'xprops.fields.name.value', '')\nconst prefilledEmail = get(window, 'xprops.fields.email.value', '')\nconst prefilledTaxId = get(window, 'xprops.fields.taxId.value', '')\nconst prefilledAddressLine1 = get(\n window,\n 'xprops.fields.addressLine1.value',\n '',\n)\nconst prefilledAddressCity = get(window, 'xprops.fields.city.value', '')\nconst prefilledAddressState = get(window, 'xprops.fields.state.value', '')\nconst prefilledAddressPostalCode = get(\n window,\n 'xprops.fields.postalCode.value',\n '',\n)\n\nexport const initialState = {\n name: {\n value: prefilledName,\n valid: isNameValid(prefilledName),\n },\n email: {\n value: prefilledEmail,\n valid: isEmailValid(prefilledEmail),\n },\n taxId: {\n value: prefilledTaxId,\n valid: isTaxIdValid(prefilledTaxId),\n },\n country: {\n value: null,\n valid: false,\n },\n bicCode: {\n value: null,\n valid: false,\n },\n bankId: {\n value: null,\n valid: false,\n },\n addressLine1: {\n value: prefilledAddressLine1,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AddressLine1,\n billingAddress: {\n addressLine1: prefilledAddressLine1,\n countryCode: null,\n },\n }),\n },\n city: {\n value: prefilledAddressCity,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AdminArea2,\n billingAddress: {\n adminArea2: prefilledAddressCity,\n countryCode: null,\n },\n }),\n },\n state: {\n value: prefilledAddressState,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AdminArea1,\n billingAddress: {\n adminArea1: prefilledAddressState,\n countryCode: null,\n },\n }),\n },\n postalCode: {\n value: prefilledAddressPostalCode,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.PostalCode,\n billingAddress: {\n postalCode: prefilledAddressPostalCode,\n countryCode: null,\n },\n }),\n },\n} as State\n\nexport function reducer(state: State, action: Action) {\n switch (action.type) {\n case ActionType.loadFromStorage:\n return {\n ...state,\n name: {\n value: action.name || prefilledName,\n valid: true,\n },\n email: {\n value: action.email || prefilledEmail,\n valid: true,\n },\n taxId: {\n value: action.taxId || prefilledTaxId,\n valid: true,\n },\n country: {\n value: action.country,\n valid: true,\n },\n bicCode: {\n value: action.bic,\n valid: true,\n },\n bankId: {\n value: action.bankId,\n valid: true,\n },\n addressLine1: {\n value: action.addressLine1 || prefilledAddressLine1,\n valid: true,\n },\n city: {\n value: action.city || prefilledAddressCity,\n valid: true,\n },\n state: {\n value: action.state || prefilledAddressState,\n valid: true,\n },\n postalCode: {\n value: action.postalCode || prefilledAddressPostalCode,\n valid: true,\n },\n }\n case ActionType.nameChange:\n return {\n ...state,\n name: {\n value: action.value,\n valid: isNameValid(action.value),\n },\n }\n case ActionType.countryChange:\n return {\n ...state,\n country: {\n value: action.value,\n valid: hasValue(action.value),\n },\n }\n case ActionType.bicCodeChange:\n return {\n ...state,\n bicCode: {\n value: action.value,\n valid: hasValue(action.value),\n },\n }\n case ActionType.bankIdChange:\n return {\n ...state,\n bankId: {\n value: action.value,\n valid: hasValue(action.value),\n },\n }\n case ActionType.emailChange:\n return {\n ...state,\n email: {\n value: action.value,\n valid: isEmailValid(action.value),\n },\n }\n case ActionType.taxIdChange:\n return {\n ...state,\n taxId: {\n value: action.value,\n valid: isTaxIdValid(action.value),\n },\n }\n case ActionType.addressLine1Change:\n return {\n ...state,\n addressLine1: {\n value: action.value,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AddressLine1,\n billingAddress: {\n addressLine1: action.value,\n countryCode: action.addressRegion,\n },\n }),\n },\n }\n case ActionType.cityChange:\n return {\n ...state,\n city: {\n value: action.value,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AdminArea2,\n billingAddress: {\n adminArea2: action.value,\n countryCode: action.addressRegion,\n },\n }),\n },\n }\n case ActionType.stateChange:\n return {\n ...state,\n state: {\n value: action.value,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.AdminArea1,\n billingAddress: {\n adminArea1: action.value,\n countryCode: action.addressRegion,\n },\n }),\n },\n }\n case ActionType.postalCodeChange:\n return {\n ...state,\n postalCode: {\n value: action.value,\n valid: isBillingAddressValid({\n fieldType: ValidatorFieldType.PostalCode,\n billingAddress: {\n postalCode: action.value,\n countryCode: action.addressRegion,\n },\n }),\n },\n }\n default:\n return state\n }\n}\n","import { DisplayNames } from '@paypalcorp/worldready'\nimport { FptiData } from '../../analytics/fpti.types'\nimport 'whatwg-fetch'\n\nexport function getStateOptions(worldReady: any, addressRegion: string) {\n let states: { value: string; label: string }[] = []\n\n const translations = new DisplayNames(worldReady, {\n type: 'portableAddressValues',\n addressRegion,\n element: 'adminArea1',\n })\n\n const statesObj = translations.cldrData\n\n for (let stateKey in statesObj) {\n states.push({ value: stateKey, label: statesObj[stateKey] })\n }\n return states\n}\n\nexport function fptiLogger(payload: FptiData) {\n fetch(`/altpayfields/api/fpti`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }).catch((error) => {\n // no action for logging\n })\n}\n","import serverData from '../utils/server-data'\nimport { FptiData } from './fpti.types';\n\nconst { isProd, isSandBox } = serverData\n\n// Number of times to attempt analytics setup\nlet setupAttempts = 3\n// Amount of time to wait before retrying setup (in ms)\nconst setupAttemptInterval = 200\n\n// We're already loading pa.js in our HTML, as it's not an NPM module.\n// This utility will use the global library if it exists, and be a no-op if it\n// fails to load for any reason.\nconst globalExists = () => !!(window.PAYPAL && window.PAYPAL.analytics)\n\n// Proxy object for PAYPAL.analytics\nexport const analytics = {\n setup(...rest: any[]) {\n if (globalExists()) {\n window.PAYPAL.analytics.setup(...rest)\n } else if (setupAttempts > 0) {\n setupAttempts -= 1\n\n setTimeout(() => {\n analytics.setup(...rest)\n }, setupAttemptInterval)\n } else {\n console.warn('Failed to initialize FPTI')\n }\n },\n\n recordClick(data: { data: FptiData }) {\n if (globalExists()) {\n window.PAYPAL.analytics.instance.recordClick(data)\n }\n },\n\n recordImpression(data: { data: FptiData }) {\n if (globalExists()) {\n window.PAYPAL.analytics.instance.recordImpression(data)\n }\n },\n}\n\nconst defaultFptiData = {\n page: 'main:altpay:select_payment_method',\n pgrp: 'main:altpay:select_payment_method',\n comp: 'altpayfieldsnodeweb',\n experience: 'unbranded',\n}\n\nconst fpti = {\n recordClick(data: FptiData) {\n if (!data || !(data instanceof Object)) return\n\n analytics.recordClick({ data: { ...data, ...defaultFptiData } })\n },\n\n recordImpression(data: FptiData) {\n if (!data || !(data instanceof Object)) return\n // eslint-disable-next-line no-param-reassign\n data.feed_name = defaultFptiData.comp;\n analytics.recordImpression({ data: { ...data, ...defaultFptiData } })\n },\n}\n\nif (isProd || isSandBox) {\n window.fptiserverurl = '//t.paypal.com/ts'\n} else {\n window.fptiserverurl = '//www.msmaster.qa.paypal.com/webapps/tracking/ts'\n}\n// Initialize the library\nanalytics.setup({ url: window.fptiserverurl })\n\nexport default fpti\n","/* eslint-disable complexity */\nimport React, { useContext } from 'react'\nimport get from 'lodash.get'\nimport { Message, Context } from '@paypalcorp/worldready-react'\nimport { MessageFormat } from '@paypalcorp/worldready'\n\nimport { Dropdown, Name, Email, TaxId } from '../../components'\nimport { AddressRow } from '../../components/layout'\nimport { AddressLine, City, PostalCode } from '../../components/addressFields'\nimport serverData from '../../utils/server-data';\nimport './styles.css'\n\nimport {\n PaymentSource,\n Country,\n DropdownItem,\n WindowExports,\n Currency\n} from '../../interfaces'\n\nimport { ActionType } from './types'\nimport { isPayloadValid, getErrorDetail } from '../../validation'\nimport { reducer, initialState } from './reducer'\nimport { getStateOptions } from './helpers'\nimport { FptiData } from '../../analytics/fpti.types'\nimport fpti from '../../analytics/fpti'\nimport { useQuery, useSessionState } from '../../hooks'\n\nimport logger from '../../logger'\n\ndeclare global {\n interface Window {\n exports: WindowExports\n }\n}\n\ninterface Props {\n source: PaymentSource\n countries: DropdownItem[]\n bicCodes?: DropdownItem[]\n bankIds?: DropdownItem[]\n collectEmail: boolean\n collectTaxId?: boolean\n collectAddress?: boolean\n processingInstruction?: string\n}\n\ninterface Countries {\n src: string;\n label: string;\n value: string;\n supportedCurrencies: Currency[];\n}\nexport function getFilteredCountries(countries: Countries[], currency: string) {\n let filteredCountries: Countries[] = []\n let foundMatches = true\n if(countries.length > 0 && currency !== '') {\n // Filter the countries which match the currency\n filteredCountries = countries.filter((country) => country.supportedCurrencies.includes(currency))\n }\n // if there are no matching countries for the currency passed in, return all countries\n if(filteredCountries.length !== 0) {\n return [filteredCountries, foundMatches]\n }\n foundMatches = false\n return [countries, foundMatches]\n}\n\nexport default function BaseSource({\n source,\n countries,\n bicCodes,\n bankIds,\n collectEmail,\n collectTaxId,\n collectAddress,\n processingInstruction,\n}: Props) {\n const query = useQuery()\n const clientID = query.get('clientID') as string\n const sessionID = query.get('sessionID') as string\n const fieldsSessionID = query.get('fieldsSessionID') as string\n const showActionButtons = query.get('showActionButtons') as string\n\n const worldReady = useContext(Context)\n const [showValidationFields, setShowValidationFields] = React.useState(false)\n\n const [state, dispatch] = React.useReducer(reducer, initialState)\n\n const stateDropdownOptions =\n collectAddress && state.country.value\n ? (getStateOptions(worldReady, state.country.value) as DropdownItem[])\n : []\n const sessionState = useSessionState()\n const onClose = () => window.xprops.onFieldsClose()\n const apm_experience = get(window, 'xprops.onInit')\n ? 'multi_page'\n : 'single_page'\n const linkName =\n apm_experience === 'multi_page' ? 'next' : `pay_with_${source}`\n const partnerAttributionID = get(window, 'xprops.partnerAttributionID')\n const numericValue = (string: string) => string.replace(/\\D/g, '')\n const fptiData = {\n context_id: sessionID,\n selected_payment_method: source,\n page_session_id: sessionID,\n fields_session_id: fieldsSessionID,\n link: linkName,\n apm_experience,\n bn_code: partnerAttributionID,\n currency_code: serverData.merchantCurrency,\n ccd: state.country.value,\n } as FptiData\n const [filteredCountries, foundMatches] = getFilteredCountries(countries, serverData.merchantCurrency, fptiData)\n if (showActionButtons) logger.info('render_inline_payment_fields', { source })\n\n const isValid = () => {\n setShowValidationFields(true)\n\n const defaultLogData = {\n sessionID,\n fieldsSessionID,\n clientID,\n source,\n }\n\n // log fields submit\n logger.info('fields_submit', defaultLogData)\n fpti.recordImpression({\n ...fptiData,\n transition_name: apm_experience === 'multi_page' ? 'process_multi_page_checkout_next' : 'process_single_page_checkout_pay',\n })\n\n const valid = isPayloadValid(source, state)\n\n if (!valid) {\n const errorDetail = getErrorDetail(state)\n // log submit/validation error\n logger.info('fields_validation_error', defaultLogData)\n fpti.recordImpression({\n ...fptiData,\n transition_name: apm_experience === 'multi_page' ? 'process_multi_page_checkout_next' : 'process_single_page_checkout_pay',\n eccd: errorDetail,\n erpg: 'form invalid',\n })\n }\n\n return valid\n }\n\n const onContinue = () => {\n const data = {\n payment_source: {\n [source]: {\n country_code: state.country.value,\n name: state.name.value,\n },\n },\n }\n logger.info('oncontinue_button_clicked', data.payment_source[source])\n window.xprops.onContinue(data)\n }\n\n React.useEffect(() => {\n const onInit = get(window, 'xprops.onInit')\n\n if (onInit) {\n onInit(\n {},\n {\n validate: () => window.exports.isValid(),\n },\n )\n }\n }, [])\n\n // Analytics etc.\n React.useEffect(() => {\n const defaultLogData = {\n sessionID,\n fieldsSessionID,\n clientID,\n source,\n ...(!foundMatches ? {countryFilterInfo: 'no_country_match_for_currency'} : {})\n }\n\n logger.info('fields_mounted', defaultLogData)\n\n fpti.recordImpression({\n ...fptiData,\n event_name: 'fields_mounted',\n ...(!foundMatches ? {eccd: 'no_country_match_for_currency'} : {}),\n transition_name: apm_experience === 'multi_page' ? 'render_multi_page_checkout_page_one' : 'render_single_page_checkout',\n })\n }, [])\n\n /*\n * Hydrate the state from xprops.sessionState (session storage)\n */\n React.useEffect(() => {\n if (!sessionState.hasLoaded) {\n // TODO: delete handle confirm-payment-source naming if handling this in smart-payment-buttons\n // let payloadSource = source === PaymentSource.Boleto ? 'boletobancario' : source\n // TODO: create taxInfo interface (will appear for each APM, but may not affect confirm-payment-source calls)\n sessionState\n .load(source)\n .then(\n ({ country, name, email, taxInfo, bic, billingAddress, bankId }) => {\n const taxId = taxInfo?.tax_id\n const {\n address_line_1,\n admin_area_2,\n admin_area_1,\n postal_code,\n } = billingAddress ? billingAddress : {}\n dispatch({\n type: ActionType.loadFromStorage,\n country,\n name,\n email,\n taxId,\n bic,\n bankId,\n addressLine1: address_line_1,\n city: admin_area_2,\n state: admin_area_1,\n postalCode: postal_code,\n })\n\n // If there in only one country, use this\n // and hide the countries dropdown\n if (filteredCountries.length === 1) {\n dispatch({\n type: ActionType.countryChange,\n value: filteredCountries[0].value,\n })\n }\n return\n },\n )\n .catch((err) => {\n logger.error('session_storage_load', {\n err: err.message,\n })\n })\n }\n })\n\n /*\n * Save the state to xprops.sessionState (session strorage)\n */\n React.useEffect(() => {\n // exported method to parent page\n\n if (sessionState.hasLoaded) {\n // Determine tax id type if present and valid\n let unmaskedTaxId = numericValue(state.taxId.value)\n let taxIdLength = unmaskedTaxId.length\n let taxIdType\n if (taxIdLength === 11) {\n taxIdType = 'BR_CPF'\n } else if (taxIdLength === 14) {\n taxIdType = 'BR_CNPJ'\n }\n\n // Save - confirm order request payload to localstorage onupdate\n // TODO : remove if not used to re-name for sdk confirm call:\n // let payloadSource = source === PaymentSource.Boleto ? 'boletobancario' : source\n sessionState\n .save(source, {\n countryCode: state.country.value,\n name: state.name.value,\n email: state.email.value,\n taxInfo: state.taxId.value\n ? {\n tax_id: state.taxId.value,\n tax_id_type: taxIdType,\n }\n : null,\n bic: state.bicCode.value,\n bankId: state.bankId.value,\n processingInstruction,\n metadata: {\n fieldsSessionID,\n },\n addressLine1: state.addressLine1.value,\n city: state.city.value,\n state: state.state.value,\n postalCode: state.postalCode.value,\n })\n .then(() => {\n // Export isValid check and properties for parent window after saving to sessionStorage\n window.exports = {\n name: 'smart-fields',\n fundingSource: source,\n isValid,\n } as WindowExports\n return\n })\n .catch((err) => {\n logger.error('session_storage_save', {\n err: err.message,\n })\n })\n } else {\n // Export properties when there is no session storage\n window.exports = {\n name: 'smart-fields',\n fundingSource: source,\n isValid,\n } as WindowExports\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n state.bicCode.value,\n state.bankId.value,\n state.name.value,\n state.email.value,\n state.taxId.value,\n state.addressLine1.value,\n state.city.value,\n state.state.value,\n state.postalCode.value,\n state.country.value,\n sessionID,\n fieldsSessionID,\n ])\n\n return (\n
\n

\n \n

\n {showActionButtons && (\n
\n \n \n \n
\n )}\n {/** \n Country Code\n */}\n {filteredCountries.length > 1 && (\n {\n dispatch({\n type: ActionType.countryChange,\n value,\n })\n }}\n showValidation={showValidationFields}\n />\n )}\n\n {/** \n Ideal Bic Codes\n */}\n {bicCodes && !!bicCodes.length && (\n {\n dispatch({\n type: ActionType.bicCodeChange,\n value,\n })\n }}\n showValidation={false}\n />\n )}\n\n {/** \n Verkkopankki BankIds\n */}\n {bankIds && !!bankIds.length && (\n {\n dispatch({\n type: ActionType.bankIdChange,\n value,\n })\n }}\n showValidation={showValidationFields && !state.bankId.valid}\n />\n )}\n\n {/** \n Name\n */}\n {\n dispatch({\n type: ActionType.nameChange,\n value: fullName,\n })\n }}\n errorTextName={\n \n }\n nameLabel={}\n />\n\n {/** \n Email\n */}\n {collectEmail && (\n {\n dispatch({\n type: ActionType.emailChange,\n value: email,\n })\n }}\n value={state.email.value}\n errorTextEmail={}\n emailLabel={}\n />\n )}\n\n {/** \n Address Line 1\n */}\n {collectAddress && (\n {\n dispatch({\n type: ActionType.addressLine1Change,\n value: addressLine,\n addressRegion: state.country.value,\n })\n }}\n countryCode={state.country.value}\n value={state.addressLine1.value}\n errorTextAddressLine={\n \n }\n addressLineLabel={\n \n }\n />\n )}\n\n {collectAddress && (\n \n {/** \n City\n */}\n {\n dispatch({\n type: ActionType.cityChange,\n value: city,\n addressRegion: state.country.value,\n })\n }}\n countryCode={state.country.value}\n value={state.city.value}\n errorTextCity={\n \n }\n cityLabel={}\n />\n\n {/** \n State\n */}\n {!!stateDropdownOptions.length && (\n
\n {\n dispatch({\n type: ActionType.stateChange,\n value,\n addressRegion: state.country.value,\n })\n }}\n showValidation={showValidationFields}\n hideImg={true}\n />\n
\n )}\n\n {/** \n Postal Code\n */}\n {\n dispatch({\n type: ActionType.postalCodeChange,\n value: postalCode,\n addressRegion: state.country.value,\n })\n }}\n countryCode={state.country.value}\n value={state.postalCode.value}\n errorTextPostalCode={\n \n }\n postalCodeLabel={\n \n }\n />\n
\n )}\n\n {/** \n TaxID\n */}\n {collectTaxId && (\n {\n dispatch({\n type: ActionType.taxIdChange,\n value: taxId,\n })\n }}\n value={state.taxId.value}\n errorTextTaxId={}\n taxIdLabel={}\n />\n )}\n {showActionButtons && (\n
\n \n Continue\n \n
\n )}\n
\n )\n}\n"],"names":["FormMessage","messageId","errorText","name","className","id","textClass","forwardRef","ref","setFocus","error","value","label","multiline","placeholder","onChange","leftIcon","rightIcon","type","rest","React","focused","setFocused","msgId","valueProps","defaultValue","ariaDescribedByProp","onFocus","s","onBlur","classNames","htmlFor","length","classPrefix","children","Chevron","menuIsOpen","viewBox","d","NativeSelect","data","showValidation","hideImg","setValue","selected","find","item","src","role","alt","e","target","map","key","Dropdown","props","ValidatorFieldType","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13","TaxInfoConstants","TAX_ID_CPF_LENGTH","TAX_ID_CNPJ_LENGTH","isTaxIdValid","taxId","replace","test","cpf","validArr","Array","parseInt","validateCPF","cnpj","validateCNPJ","isBrazilTaxIdValid","isEmailValid","email","includes","isNameValid","fullName","trim","split","firstName","lastName","trimmedLastName","filter","lastNameLength","reduce","a","b","specialChars","lastNameNoSpecialChars","every","isBillingAddressValid","fieldType","billingAddress","addressFormatter","countryCode","AddressFormat","WorldReady","serverData","addressRegion","validator","validate","validatorHasNoErrors","el","element","hasValue","Name","nameLabel","errorTextName","onNameChange","Email","emailLabel","errorTextEmail","TaxId","taxIdLabel","errorTextTaxId","inputRef","useRef","maskOptions","mask","lazy","MaskedTextInput","onAccept","inputValue","onComplete","unmaskedValue","IMask","ActionType","Number","internalRef","maskedRef","useEffect","masked","current","updateOptions","elm","on","typedValue","off","destroy","AddressLine","addressLineLabel","errorTextAddressLine","AddressLine1","addressLine1","City","cityLabel","errorTextCity","AdminArea2","adminArea2","PostalCode","postalCodeLabel","errorTextPostalCode","postalCode","prefilledName","get","window","prefilledEmail","prefilledTaxId","prefilledAddressLine1","prefilledAddressCity","prefilledAddressState","prefilledAddressPostalCode","initialState","valid","country","bicCode","bankId","city","state","AdminArea1","adminArea1","reducer","action","loadFromStorage","bic","nameChange","countryChange","bicCodeChange","bankIdChange","emailChange","taxIdChange","addressLine1Change","cityChange","stateChange","postalCodeChange","isProd","isSandBox","setupAttempts","setupAttemptInterval","globalExists","PAYPAL","analytics","setup","setTimeout","console","warn","recordClick","instance","recordImpression","defaultFptiData","page","pgrp","comp","experience","fpti","Object","feed_name","fptiserverurl","url","BaseSource","source","countries","bicCodes","bankIds","collectEmail","collectTaxId","collectAddress","processingInstruction","query","useQuery","clientID","sessionID","fieldsSessionID","showActionButtons","worldReady","useContext","Context","showValidationFields","setShowValidationFields","dispatch","stateDropdownOptions","states","translations","DisplayNames","statesObj","cldrData","stateKey","push","getStateOptions","sessionState","useSessionState","apm_experience","linkName","partnerAttributionID","fptiData","context_id","selected_payment_method","page_session_id","fields_session_id","link","bn_code","currency_code","ccd","currency","filteredCountries","foundMatches","supportedCurrencies","getFilteredCountries","logger","isValid","defaultLogData","transition_name","PaymentSource","trustlyValidations","All","Error","isPayloadValid","errorDetail","getErrorDetail","eccd","erpg","onInit","exports","countryFilterInfo","event_name","hasLoaded","load","then","taxInfo","tax_id","address_line_1","admin_area_2","admin_area_1","postal_code","catch","err","message","taxIdType","unmaskedTaxId","string","taxIdLength","save","tax_id_type","metadata","fundingSource","onClick","xprops","onFieldsClose","iconStyles","width","marginRight","MessageFormat","format","addressLine","payment_source","country_code","onContinue"],"sourceRoot":""}