{"version":3,"sources":["webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_nativeKeysIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/isSet.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_getPrototype.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_initCloneArray.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/startsWith.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseIsSet.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneTypedArray.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_initCloneByTag.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/forEach.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_copySymbols.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseClamp.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_copySymbolsIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneRegExp.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_castFunction.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneArrayBuffer.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneBuffer.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/react-focus-lock/dist/es2015/AutoFocusInside.js","webpack:///./utility/crsUtils.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_arrayEach.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_copyObject.js","webpack:///./components/guest-submit-button.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/isMap.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_copyArray.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseAssignIn.js","webpack:///./utility/localizer.js","webpack:///./components/lineDiv.js","webpack:///./components/ServerErrors.js","webpack:///./guest-payment-components/util/dateUtils.js","webpack:///./guest-payment-components/CountrySelection.js","webpack:///./guest-payment-components/Email.js","webpack:///./guest-payment-components/util/passwordValidator.js","webpack:///./guest-payment-components/util/localizer.js","webpack:///./guest-payment-components/NationalId.js","webpack:///./guest-payment-components/CreateAccountPre.js","webpack:///./components/address-entry-field.js","webpack:///./react-card-number/card-utils.js","webpack:///./react-card-number/index.js","webpack:///./react-expiry-date/date-utils.js","webpack:///./react-expiry-date/index.js","webpack:///./components/card-type.js","webpack:///./components/issue-number.js","webpack:///./components/start-date.js","webpack:///./components/date-of-birth.js","webpack:///./containers/payment-component.js","webpack:///./components/PhoneNumber.js","webpack:///./components/phone-type.js","webpack:///./components/phone-country-code.js","webpack:///./containers/phone-component.js","webpack:///./guest-payment-components/Name.js","webpack:///./containers/name-component.js","webpack:///./components/addressCheckbox.js","webpack:///./components/guestTerms.js","webpack:///./components/common/FormSectionHeading.js","webpack:///./pages/guest/createAccountTile.js","webpack:///./pages/guest/illus_createAccount.svg","webpack:///./pages/guest/RussiaGuestForm.js","webpack:///./pages/guest/guestForm.js","webpack:///./components/payCreditOrDebit.js","webpack:///./pages/common/FallbackSpinner.js","webpack:///./pages/guest/guest.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_getSymbolsIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneSymbol.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseIsMap.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/each.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseClone.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_cloneDataView.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseKeysIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_initCloneObject.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseAssign.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_baseCreate.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/_getAllKeysIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/keysIn.js","webpack:////donatenodeweb-ci-2793/workspace/donate-gro-release/node_modules/lodash/clone.js"],"names":["module","exports","object","result","key","Object","push","baseIsSet","baseUnary","nodeUtil","nodeIsSet","isSet","getPrototype","overArg","getPrototypeOf","hasOwnProperty","prototype","array","length","constructor","call","index","input","baseClamp","baseToString","toInteger","toString","string","target","position","slice","getTag","isObjectLike","value","cloneArrayBuffer","typedArray","isDeep","buffer","byteOffset","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","tag","Ctor","arrayEach","baseEach","castFunction","isArray","collection","iteratee","copyObject","getSymbols","source","number","lower","upper","undefined","getSymbolsIn","reFlags","regexp","exec","lastIndex","identity","Uint8Array","arrayBuffer","byteLength","set","freeExports","nodeType","freeModule","Buffer","root","allocUnsafe","copy","AutoFocusInside","_ref","disabled","children","className","propTypes","defaultProps","isCrsAborted","status","statusCode","AU_CRS","STATUS","ABORTED","ABORTED_STATUS_CODE","includes","isCrsSucceeded","SUCCESS","SUCCESS_STATUS_CODE","assignValue","baseAssignValue","props","customizer","isNew","newValue","GuestSubmitButton","donateLabel","passwordFieldsOpen","labels","donatenow","donatenowrec","agreeanddonate","agreeanddonatenowrec","createanddonate","country","useAgreeAndDonateLabel","isAgreeAndDonateLabel","isRecurring","replace","amount","id","this","onClick","handleClick","getDonateButtonLabel","React","Component","PropTypes","bool","func","baseIsMap","nodeIsMap","isMap","Array","keysIn","countryInfo","US","showDOB","showOccupation","showNationality","showLegalCheckBox","showLegalTextOnly","showPasswordHint","showConsentCheckBox","DOBPattern","occupations","showGuestTermsText","showGuestTermsCheckBox","showPhoneCountryCode","showGuestCPF","showHurricaneHarveyPromotion","termsAndConditionsWithFeeInformationDoc","CA","consentCheckBoxEnabled","label","GB","showDOBHelp","showDOBMust18","showGuestTermsWithoutCheckBox","AU","FR","IT","IL","ES","IE","NL","AT","CH","showNationalId","nationalIds","countriesWithAgreeAndDonateLabel","getCountryInfo","_includes","LineDiv","style","maxWidth","marginRight","marginLeft","ServerErrors","state","errorMessages","registerAppDispatcherMessages","dispatcherMessages","AppDispatcher","register","payload","_get","setState","scrollElementIntoView","unregister","_isEmpty","map","message","role","dangerouslySetInnerHTML","__html","dobSeparator","dateFormat","dobSeparators","getDOBSeparator","dobFormat","separator","forEach","ele","indexOf","validateDob","dob","dobPattern","dateObject","parseDob","isDateStringValid","year","month","day","date","Date","fullYear","getFullYear","dateMonth","getMonth","dateDay","getDate","now","parseInt","isDateValid","inputVal","sep","partsArr","split","first","sec","third","getDateFormat","dayLen","monLen","dateFormatComponents","dIdx","mIdx","formatComponentMap","DMY","MDY","YMD","CountrySelection","selectedIndex","supportedCountries","findIndex","c","countryCode","defaultValue","selectedCountry","changeCountry","countries","primaryText","countryName","type","options","onSelection","handleChangeCountry","selectedItemIndex","errorText","errorMessage","propName","componentName","Error","isRequired","Email","showIsRequiredError","email","mssg_error","handleCheckForValue","changeEmail","required","handleBlur","initialValue","margin","name","helperText","helpText","onChange","event","handleChangeEmail","onBlur","password","warningCodes","trim","match","toLowerCase","test","some","char","charCodeAt","BR","getFormattedDob","dateSeparator","dateDigitsOnly","formattedDate","lastCharIsSeparator","dd","mm","yy","dateUtils","validateDobIs18","birthDate","setHours","STYLES","StyleSheet","create","typeWrapper","transition","dropdown","padding","textIndent","boxSizing","appearance","arrow","right","top","cursor","pointerEvents","arrowError","marginTop","errorStyles","height","NationalId","nationalIdNumber","handleFocus","getNationalIds","item","nationalIdTypeIdx","nationalIdType","validNationalIdType","resetNationalId","validNationalIdNumber","defaultIdType","errorMessageType","errorMessageNumber","showErrorMessages","typeWrapperClassNames","classNames","css","numberWrapperClassNames","labelNationalIdType","aria-label","placeholder","handleChangeNationalIdType","getNationalIdOptions","labelNationalIdNumber","handleChangeNationalNumber","onFocus","styles","mainTitle","marginBottom","mainBlurb","itsFreeLine","shiftRight","hide","display","createAccountCheckboxWrapper","width","createAccountCheckbox","overflow","border","createAccountLine","passwordWarningWrapper","background","borderRadius","passwordHintWrapper","paddingLeft","fontSize","passwordWarningItem","paddingBottom","legalCheckboxWrapper","legalCheckbox","redBorder","legalBlurb","lineHeight","legalTextOnly","button","passwordWrapper","dobWrapper","dobHelpText","color","borderTop","noHelperText","CreateAccountPre","handleCreateAccountCheckbox","checked","optional","showCreateAccountFields","whichInput","hasPasswordHint","newState","passwordValidator","passwordErrors","isHint","acceptedLegal","consentCommunication","handleUpdatePasswords","password1","password2","dateOfBirth","getDobPattern","dobReqErrors","dobErrors","dobIs18Errors","showDateOfBirthHelp","occupationError","occupationIdx","nationalityError","nationalityIdx","doPasswordsMatch","classnames","passwordWarnings","_MISMATCH","code","warningMessage","prevProps","prevState","handleValidInfo","resetValidInfo","passwordValid","dobValid","occValid","legalValid","natValid","naIdTypeValid","naIdNoValid","userData","dateOfBirthPattern","occupation","nationality","handleAllValidInfo","resetAllValidInfo","showValidationErrors","isEmpty","FPT","join","mandatory","dateOfBirthHelp","legalCheckBoxErrorsExist","passwordErrorsExist","occupationErrorsExist","nationalityErrorsExist","dateOfBirthErrorsExist","dateOfBirthIs18ErrorsExist","nationalIdTypeErrorsExist","nationalIdNoErrorsExist","isCountryUS","createAccountCheckboxContent","incentive","isNNA","size","src","alt","createAccountHelp1","createAccountHelp2","label1","onMouseOut","hidePasswordHint","handleFocusOnPasswordOne","_HINT1","_HINT2","_HINT3","label2","labeldob","autoComplete","dobHelp","handleChangeDob","handleDobFocus","handleDobBlur","_HELP_DOB","paddingTop","handleChangeOccupation","labelocc","getOccupationOptions","handleChangeNationality","labelnationality","getNationalityOptions","handleNationalIdType","handleNationalIdNumber","renderPasswordErrors","_INVALID_DOB","_REQUIRED_DOB","_MUST_18_DOB","_OCCUPATION","_NATIONALITY","_NATIONAL_ID_TYPE","_NATIONAL_ID_NUMBER","_LEGAL_CHECKBOX","handleConsentCheckbox","consentBlurbHTML","handleLegalCheckbox","legalBlurbHTML","error","legalOnlyHTML","helpdob","shape","_IS_NULL","_TOO_SHORT","_TOO_LONG","_CONTAINS_REPEATED_CHARACTERS","_CONTAINS_NUMBER_SEQUENCE","_CONTAINS_LETTER_SEQUENCE","_CONTAINS_NUMBER_LETTER_SEQUENCE","_IS_BLACKLISTED","_CONTAINS_SPACES","_HAS_ILLEGAL_CHARACTERS","StateList","stateList","$id","handleChangeField","fieldName","_map","$elt","handleChangeOption","getStateOptions","stateListPropType","AddressEntryField","zipErrorMessage","RegExp","validationPattern","validationError","handlePostcodeHasError","maxLength","optionalLabel","attributes","pattern","defaultCardSpec","fields","ccNumber","maxlength","expirationDate","csc","minlength","getSpecificCardSpec","cardNumber","cardTypes","card","cardSpec","autodetect","logoWrapper","logo","WebkitTransition","MozTransition","msTransition","OTransition","CardNumber","cardSpecs","selectedCardSpec","handleChangeCardNumber","cardNumberSpecs","cardType","cardLogoClassNames","dir","left","cardSpecsPropType","cardSpecPropType","getValidMonthString","getValidYearString","currentYear","getFormattedExpirationDate","shouldRemoveTrailingSlash","Expiry","lastCharacterIsSlash","expiry","handleChangeDate","expirySpecs","WebkitAppearance","MozAppearance","errorStylesSelect","borderBottomLeftRadius","borderBottomRightRadius","CardType","keys","formatCardTypes","cardTypeIndex","changeCardType","cardTypeErrorMessage","SWITCH","handleChange","getCardTypeOptions","IssueNumber","issueNumber","issueNumberSpecs","textAlign","dropdownLeft","borderRight","dropdownRight","StartDate","startMonth","startYear","allMonths","getAllMonths","allYears","getEligibleYears","_","i","float","handleMonthChange","labelMonth","htmlFor","handleYearChange","labelYear","DateOfBirth","flatDate","j","validateDateOfBirth","showIsInvalidError","inValidDate","inValid","yyyy","PaymentComponent","cardnumber","expiration","errorMessageCardNumber","errorMessageExp","errMessageCSC","resetPayment","onRef","spec","errorMessageCardType","AppActions","resetPaymentInfo","setTimeout","handlePaymentInfo","resetAllCardFields","startDate","fieldsToReset","_each","securityCode","finalPropOut","changePaymentInfo","fieldInvalid","cscLen","cscMax","fieldRequired","newErrorState","validateInputValue","params","errorMessageExpiry","errorMessageCSC","errorMessageIssueNumber","errorMessageStartDate","errorMessageDateOfBirth","isValid","REQUIRED_CARD_TYPE","REQUIRED_CARD_NUMBER","REQUIRED_EXPIRY","REQUIRED_SECURITY_CODE","REQUIRED_DATE_OF_BIRTH","REQUIRED_START_DATE","REQUIRED_ISSUER_NUMBER","guestMessages","expirationHelp","help","guestLabel","guestPlaceholder","cardTypePlaceholder","startDatePlaceholder","dateOfBirthPlaceholder","issueNumberPlaceholder","cardTypeLabel","cardnumberLabel","cscLabel","cscplaceholder","expirationLabel","issueNumberLabel","startDateMonthLabel","startDateYearLabel","dateOfBirthLabel","handleChangeCardType","handleFieldBlur","handleChangeSecurityCode","handleChangeStartDate","handleChangeIssueNumber","handleDateOfBirth","PhoneNumber","phone","phoneCode","phoneNumber","formator","changePhone","getFormattedPhoneNumber","exampleNumber","handleChangePhone","PhoneType","selectedIdx","changePhoneType","guestLabels","phoneTypeMobile","phoneTypeHome","phoneTypeWork","phoneTypeErrorMessage","phoneType","getPhoneTypeOptions","PhoneCountryCode","selectedItemIdx","changeCountryCode","defaultNumber","countryCodeErrorMessage","PhoneComponent","context","generalPhoneNumber","examplePhoneNumbers","phoneCountryCode","REQUIRED_PHONE_NUMBER","errMessagePhoneNumber","validatePhone","INVALID_PHONE_NUMBER","handlePhoneInfo","errMessagePhoneType","examplePhoneNumber","getExamplePhoneNumber","errMessagePhoneCountryCode","phoneNumberCountryCode","REQUIRED_PHONE_COUNTRY_CODE","phoneNumberPatternDesc","senderDetails","NATIONAL","phone_number","showCountryCode","phoneLabel","countryCodeLabel","phoneTypeLabel","handlePhoneType","errMessageCountryCode","handleCountryCode","formatPhone","validator","handlePhoneBlur","handlePhoneNumber","initialData","Name","showFirstNameIsRequiredError","showLastNameIsRequiredError","firstName","handleCheckFirstNameValue","handleChangeFirstName","lastName","handleCheckLastNameValue","handleChangeLastName","handleBlurFirstName","handleBlurLastName","firstNameErrorMessage","lastNameErrorMessage","firstNameLabel","firstNameDefaultValue","lastNameLabel","lastNameDefaultValue","NameComponent","REQUIRED_FIRST_NAME","REQUIRED_LAST_NAME","changeNameInfo","user","firstname","lastname","toolWrapper","toolCheckboxWrapper","toolCheckbox","toolBlurb","fontFamily","toolTip","tipIcon","textDecoration","toolTipTxt","backgroundColor","AddressCheckBox","preventDefault","showToolTip","linkWithIcon","focus","ev","isChecked","chkBxStatus","checkbox","changeAddress","handleTipClick","href","aria-labelledby","ref","el","tabIndex","isDisabled","createLabel","handleChangeAddress","toolTipText","messages","localsMessages","GuestTerms","handleRequired","termsContent","getContent","useHTML","Fragment","isSignUp","hasError","pleaseConfirm","FormSectionHeading","heading","CreateAccountTile","window","location","protocol","hostname","createAccountTile","title","msg","data-testid","Header","Content","Footer","as","redirectToOnboarding","RussiaGuestForm","currentCountry","countryLabel","landingErrorMessages","getInitialDataInDom","pre_address","address","constants","DEFAULT_CARD_SPEC","FORM_ERROR_ELEMENT_SELECTOR","GuestForm","currency","AppStore","getDonationCode","formatedAmount","formatAmount","$","getAddressDefaultValue","newAddressKey","newAddress","field","showAddressErrors","billing_error_state","_keys","filter","_startsWith","errorCode","toUpperCase","postcode","consentShareAddress","errCodeEmail","emailRex","EMAIL_REX","cusEmail","TemplateData","donationEmail","errMessageEmail","updateUser","nationalId","isGuestTerms","termsCheckBoxError","childPaymentInfo","response","errorFileds","getErrFields","errObj","handleCardNumberError","handleScrollToError","handleSecurityCodeError","handleExpirationError","childNameInfo","handleFirstNameError","handleLastNameError","handleAddressErrors","childPhoneInfo","handlePhoneError","handleExistEmailError","handleInvalidBillingAddressError","VALIDATION_ERROR","fieldId","JSON","stringify","serverErrors","errFields","INVALID_BILLING_ADDRESS_CITY_STATE_ZIP","addressErrorMessage","element","document","querySelector","parentElement","startsWith","emailErr","MISSING_EMAIL_ID","billingAddress","addressEntryFormat","allErr","layout","REQUIRED_ADDRESS_LINE1","REQUIRED_BILLING_ADDRESS_CITY","REQUIRED_BILLING_ADDRESS_STATE","REQUIRED_BILLING_ADDRESS_ZIP","isCreateAcc","memberMandatory","getDonationRecurring","showCreateAccountPreErrors","createaccount","isCreateAccValid","CANNOT_PAY_SELF","validateDonationAmount","setGuestPaymentData","myData","getAllData","recurring","line1","city","postalCode","line2","expiryMonth","expiryYear","dobDateCard","patternsCard","dobYear","dobMonth","dobDay","giftAidItFlag","getGiftaidItFlagStatus","marketingOptin","dateObj","isNna","dataToSubmit","_clone","normalizeNumber","fpti","pgrp","page","handleRequiredValues","paymentStatus","handleRequiredFields","phoneStatus","emailStatus","handleEmailRequiredFields","addressStatus","handleAddressRequiredFields","termsCBStatus","validateGuestTermsCheckBox","nameStatus","isGuestFormValid","checkAnyFormErrors","submitGuestPayment","saveFormData","shareAddress","toggleSpinner","isExternalFlow","event_name","EVENT_NAME","DW_GIVING_GUEST_FORM_DONATE_PRESSED","fetcher","method","body","then","json","console","log","history","paymentError","url","fundingOpts","fundingOptions","PAYPAL","analytics","startCPLTracking","action","uicomp","uitype","data","confirmationData","handlePaymentSuccess","parseErrorResponse","formData","setFieldErrors","resetSensitiveFields","parseValErrResp","threeDSContainer","initializeThreeDS","catch","finally","confirmation","startCustomCPLTrackingForConfirmationPage","guestSignUp","experiment","treatment_name","xe","experiment_id","xt","treatment_id","handleConfirmation","isSignUpPanel","token","queryParams","objectOrArrayToQueryString","isOfacPending","createAccountPreProps","getGuestSignupContent","countryAndLocale","locale","language","brand","doFulfilment","legalCheckboxErrorMsg","createAccountRef","createRef","savedFormData","getFormData","hasSavedFormData","symbol","getDonationSymbol","getDonationAmount","formattedAmount","formValues","getFormValues","postcodeHasError","guestAllowed","recurringEnabled","validPassword","assignedCountries","countriesAllowed","addressLine1Error","addressCityError","addressStateError","addressZipError","donateNow","agreeAndDonate","errorMesages","errMessageCountry","errMessageCreditCard","errMessageExpiry","isOfferTermsOpen","senderCountryEligible","sendDonationNotAllowed","DW_GIVING_GUEST_FORM_SCREEN_SHOWN","current","handleResetPasswordFields","actionType","updateAmount","isCountryChange","clearFormValues","first_name","last_name","address1","address2","zip","iso_country","sender_email","countryOfResidence","allGuestMessages","guestLocalsMessages","signUpHeader","mainTitle2","personalizedMessages","getPersonalizedMessages","NNA_CONTENT_TOUCHPOINT","isHtml","showCreateAccount","showTermsCheckbox","recieveMailLabel","recieveMail","recieveMailToolTip","orgName","donationName","isNnaEnabled","setCountryAndLocaleInLinks","handleCountryChange","handleChangePaymentInfo","handleChangeNameInfo","billing","handleAddressDefaultValue","strings","handleChangeBillingField","handleAddressBlur","isShipping","handleShareAddress","contactinfo","handleEmailBlur","handleFocusOnCreateAccountPre","handleCreateAccountAddInfo","handleCreateAccountResetInfo","offer_end_date","tertiary","terms","handleGuestTermsRequired","donateDisabled","handleCreateGuest","ThreeDSContainer","onThreeDSStepUpAuthNotRequired","handleThreeDSStepUpAuthSuccess","onThreeDSStepUpAuthSuccess","onThreeDSStepUpAuthFailure","handleThreeDSFailure","onThreeDSFailure","isOpen","onClose","withRouter","withDonate","DebitOrCredit","payCreditOrDebit","FallbackSpinner","useEffect","showSpinnerOverlay","auCrsMessages","giftAidText","giftAidTextObj","giftAidIt","donateGiftPercentage","getGiftAidItExtraAmount","TeslaFormContainer","reactLazyPreload","Guest","logData","spinnerOverlay","getElementById","observeUntilEventObserved","observer","disconnect","isProgressive","referrer","performance","navigation","TYPE_RELOAD","onload","logCPLData","cpl","endCPLTracking","AppConstants","recurringStatus","extraCostText","extraAmount","getGiftAidExtraAmount","modalp1","modalp2","applyGiftAid","subHeaderLabel","extraCost","handleLogIn","amountUtils","showValidationError","validationErrorMessage","addShake","validationResult","DonateAppActions","hideValidationError","templateData","updateDonation","charityNoteEnabled","str","PPGF_DISCLAIMER_TOUCHPOINT","merge","getParameterByName","auTax","abortedBanner","showAuCrsBanner","auCrsBannerMsg","showErrorOnLoad","getFormattedAmount","hasLogo","charityName","donationId","guestRedirectUrl","showServiceErrors","accountCreationTriggered","recurringHelpText","recurringLabel","onboardingEnabled","isDonating","progressiveComponentLoaded","paymentProcessing","programNames","donateContext","program_names","hasDisclaimer","hasPersonalizedMessages","setShouldShowAuCrsBanner","fptPageName","offer_type","handleTokenReuse","endCustomCPLTracking","toFixed","formatCurrency","giftAidState","isGiftaiditEnabled","updateGiftAidComponent","bannerUrl","isMobileOrInContext","isInContext","ismobile","CloseButton","BackButton","DonateHeader","noValidate","conversionStatus","updateConversionStatus","handleAmountFocus","handleRecurringChange","hasRecurringHelp","showNote","DonateGiftAid","isAlreadyEnrolled","showAddress","addressData","handleGiftAidOption","contentMsg","shouldShowNote","secondary","fallback","displayValidationError","handlePaymentFailure","handleMemberFailure","Disclaimer","content","getPersonalizedContent","arrayPush","stubArray","getOwnPropertySymbols","Symbol","symbolProto","symbolValueOf","valueOf","Stack","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isBuffer","isObject","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isArr","isFunc","stacked","get","subValue","add","dataView","isPrototype","nativeKeysIn","isProto","baseCreate","objectCreate","proto","baseGetAllKeys","arrayLikeKeys","baseKeysIn","isArrayLike"],"mappings":"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","file":"GuestPage.97a5ff0368348c76abc2.bundle.js","sourcesContent":["/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var baseClamp = require('./_baseClamp'),\n baseToString = require('./_baseToString'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nmodule.exports = startsWith;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { inlineProp } from './util';\n\nvar AutoFocusInside = function AutoFocusInside(_ref) {\n var disabled = _ref.disabled,\n children = _ref.children,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inlineProp(constants.FOCUS_AUTO, !disabled), {\n className: className\n }), children);\n};\n\nAutoFocusInside.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired,\n disabled: PropTypes.bool,\n className: PropTypes.string\n} : {};\nAutoFocusInside.defaultProps = {\n disabled: false,\n className: undefined\n};\nexport default AutoFocusInside;","import { AU_CRS } from './constants';\n\nexport const isCrsAborted = (status, statusCode) =>\n status === AU_CRS.STATUS.ABORTED &&\n AU_CRS.ABORTED_STATUS_CODE.includes(statusCode);\nexport const isCrsFailure = (status, statusCode) =>\n status === AU_CRS.STATUS.FAILURE &&\n AU_CRS.FAILURE_STATUS_CODE.includes(statusCode);\nexport const isCrsSucceeded = (status, statusCode) =>\n status === AU_CRS.STATUS.SUCCESS &&\n AU_CRS.SUCCESS_STATUS_CODE.includes(statusCode);\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isAgreeAndDonateLabel } from '../utility/localizer.js';\nimport { Button } from '@paypalcorp/pp-react';\n\nclass GuestSubmitButton extends React.Component {\n getDonateButtonLabel = () => {\n let {\n passwordFieldsOpen = false,\n labels: {\n donatenow,\n donatenowrec,\n agreeanddonate,\n agreeanddonatenowrec,\n createanddonate,\n } = {},\n country,\n } = this.props;\n const useAgreeAndDonateLabel =\n passwordFieldsOpen || isAgreeAndDonateLabel(country);\n\n let donateLabel;\n if (this.props.isRecurring) {\n donateLabel = donatenowrec;\n\n if (useAgreeAndDonateLabel) {\n donateLabel = agreeanddonatenowrec;\n }\n donateLabel =\n donateLabel && donateLabel.replace('{amount}', this.props.amount);\n } else {\n donateLabel = donatenow;\n if (useAgreeAndDonateLabel) {\n donateLabel = country === 'AU' ? createanddonate : agreeanddonate;\n }\n }\n\n return donateLabel;\n };\n\n render() {\n return (\n
\n \n {this.getDonateButtonLabel()}\n \n
\n );\n }\n}\n\nGuestSubmitButton.propTypes = {\n labels: PropTypes.object,\n amount: PropTypes.string,\n country: PropTypes.string,\n disabled: PropTypes.bool,\n isRecurring: PropTypes.bool,\n handleClick: PropTypes.func,\n passwordFieldsOpen: PropTypes.bool,\n};\n\nexport default GuestSubmitButton;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","import _includes from 'lodash/includes';\n\n/**\n * Localization Utilities\n *\n * Helps to solve problems when working with different countries and locales.\n * Makes it easier when validating, formatting, getting date values.\n *\n */\n\n/**\n * The list of all supported localized countries and their settings.\n * showGuestTermsText: Used for showing terms in small letters(looks like subtext)\n * showGuestTermsCheckBox: Used for showing a checkbox and terms\n * showGuestTermsWithoutCheckBox: The content style looks like \"showGuestTermsCheckBox\" but the checkbox is not displayed\n */\nconst countryInfo = {\n US: {\n showDOB: false,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n DOBPattern: 'MM/DD/YYYY',\n occupations: [],\n showGuestTermsText: true,\n showGuestTermsCheckBox: false,\n showPhoneCountryCode: false,\n showGuestCPF: true,\n showHurricaneHarveyPromotion: true,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n CA: {\n showDOB: true,\n showOccupation: true,\n showNationality: false,\n showLegalCheckBox: false,\n showLegalTextOnly: true,\n showPasswordHint: true,\n showConsentCheckBox: true,\n consentCheckBoxEnabled: true,\n DOBPattern: 'MM/DD/YYYY',\n showGuestTermsText: true,\n showGuestTermsCheckBox: false,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n occupations: [\n { label: 'Accounting' },\n { label: 'Administration' },\n { label: 'Arts, Culture' },\n { label: 'Business' },\n { label: 'Communications' },\n { label: 'Customer Service' },\n { label: 'Education' },\n { label: 'Energy, Utilities' },\n { label: 'Engineering' },\n { label: 'Finance' },\n { label: 'Financial Services' },\n { label: 'Government' },\n { label: 'Health' },\n { label: 'Hospitality' },\n { label: 'Human Resources' },\n { label: 'Internet' },\n { label: 'Legal' },\n { label: 'Manufacturing' },\n { label: 'Marketing' },\n { label: 'Non-profit' },\n { label: 'Recreation' },\n { label: 'Religion' },\n { label: 'Research' },\n { label: 'Sales' },\n { label: 'Sports, Fitness' },\n { label: 'Student' },\n { label: 'Technology' },\n { label: 'Trade' },\n { label: 'Transportation' },\n { label: 'Travel' },\n ],\n },\n GB: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: true,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: true,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n AU: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: false,\n showLegalTextOnly: true,\n showPasswordHint: true,\n showConsentCheckBox: true,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n FR: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: true,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n IT: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n IL: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: true,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n ES: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: true,\n },\n IE: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: false,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n NL: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: true,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n AT: {\n showDOB: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n DOBPattern: 'DD.MM.YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: false,\n showGuestTermsWithoutCheckBox: true,\n showPhoneCountryCode: true,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n },\n CH: {\n showDOB: true,\n showDOBHelp: true,\n showDOBMust18: true,\n showOccupation: false,\n showNationality: false,\n showLegalCheckBox: true,\n showLegalTextOnly: false,\n showPasswordHint: false,\n showConsentCheckBox: false,\n consentCheckBoxEnabled: false,\n DOBPattern: 'DD/MM/YYYY',\n occupations: [],\n showGuestTermsText: false,\n showGuestTermsCheckBox: true,\n showPhoneCountryCode: true,\n showGuestCPF: false,\n showHurricaneHarveyPromotion: false,\n termsAndConditionsWithFeeInformationDoc: false,\n showNationalId: true,\n nationalIds: [\n { label: 'Identity card' },\n { label: 'Passport' },\n { label: 'Driving licence' },\n ],\n },\n};\n\n// AMLD4 requirements\n// https://rally1.rallydev.com/#/37239556130d/detail/userstory/253577875956\nconst countriesWithAgreeAndDonateLabel = [\n 'AT',\n 'BE',\n 'BG',\n 'HR',\n 'CY',\n 'CZ',\n 'DK',\n 'EE',\n 'FI',\n 'FR',\n 'GF',\n 'DE',\n 'GI',\n 'GP',\n 'GR',\n 'HU',\n 'IS',\n 'IE',\n 'IT',\n 'LV',\n 'LI',\n 'LT',\n 'LU',\n 'MT',\n 'MQ',\n 'YT',\n 'NO',\n 'PL',\n 'PT',\n 'RE',\n 'RO',\n 'SM',\n 'SK',\n 'SI',\n 'ES',\n 'SE',\n 'NL',\n 'GB',\n 'VA',\n];\n\n/**\n * Returns a valid settings for specific country.\n *\n * @param {string} country code.\n * @return {Object} country settings.\n */\nexport function getCountryInfo(country = 'US') {\n return countryInfo[country] ? countryInfo[country] : countryInfo.US;\n}\n\n/**\n * Returns a date of birth string depending on the country format.\n *\n * @param {string} date of birth\n * @param {string} country code\n * @return {string} birthDate\n */\nexport function getFormattedDob(dob, country = 'US') {\n let fitDate = '';\n let flatDate = dob.replace(/\\D+/g, '').slice(0, 8);\n const pattern = getCountryInfo(country).DOBPattern;\n\n let j = 0;\n for (let i = 0; i < flatDate.length; i++) {\n if (pattern[j] === '/') {\n fitDate += '/';\n j++;\n }\n\n fitDate += flatDate[i];\n j++;\n }\n\n return fitDate;\n}\n\n/**\n * Validates date of birth from DoB string.\n *\n * @param {string} date of birth\n * @return {boolean} is valid\n */\nexport function validateDob(dob, country = 'US') {\n let isValid = (dob && dob.length === 10) || false;\n\n if (isValid) {\n const dobDate = dob.split('/');\n const patterns = getCountryInfo(country).DOBPattern.split('/');\n const year = dobDate[patterns.indexOf('YYYY')];\n const month = dobDate[patterns.indexOf('MM')] - 1;\n const day = dobDate[patterns.indexOf('DD')];\n\n const checkDate = new Date(year, month, day);\n isValid = month === checkDate.getMonth();\n }\n\n return isValid;\n}\n\nexport function isAgreeAndDonateLabel(country) {\n return _includes(countriesWithAgreeAndDonateLabel, country);\n}\n","import React from 'react';\n\nclass LineDiv extends React.Component {\n render() {\n return (\n \n );\n }\n}\n\nexport default LineDiv;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport AppDispatcher from '../dispatcher/AppDispatcher';\nimport _isEmpty from 'lodash/isEmpty';\nimport _get from 'lodash/get';\nimport { scrollElementIntoView } from '../utility/domUtils';\n\nexport class ServerErrors extends Component {\n constructor(props) {\n super(props);\n this.state = {\n errorMessages: [],\n };\n }\n componentDidMount() {\n // Register for App Dispatcher Messages\n this.registerAppDispatcherMessages();\n }\n\n registerAppDispatcherMessages() {\n this.dispatcherMessages = AppDispatcher.register((payload) => {\n if (_get(payload, 'action.actionType') === 'UPDATE_SERVER_ERRORS') {\n let errorMessages = _get(payload, 'action.item.serverErrors', []);\n this.setState(\n {\n errorMessages,\n },\n () => {\n if (this.state.errorMessages.length > 0) {\n scrollElementIntoView('.service_error_holder');\n }\n }\n );\n }\n });\n }\n\n componentWillUnmount() {\n AppDispatcher.unregister(this.dispatcherMessages);\n }\n\n render() {\n const { errorMessages } = this.state;\n if (_isEmpty(errorMessages)) {\n return null;\n }\n\n return (\n
\n {errorMessages.map((message, index) => {\n return (\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nServerErrors.propTypes = {\n errorMessages: PropTypes.array,\n};\n\nexport default ServerErrors;\n","const dobSeparators = ['-', '.', '/'];\n// Cache values for current locale\n// Must be unset on init\nlet dobSeparator;\nlet dateFormat;\n\n/**\n * All supported date separators\n */\nexport function getDateSeparators() {\n return dobSeparators;\n}\n\n/**\n * Returns date separator for the specified format\n * Eg: Returns \"-\" for DD-MM-YYYY, \"/\" dor DD/MM/YYYY\n * @param {String} dobFormat Date format as specified by griffin\n * @return {String} Date separator\n */\nexport function getDOBSeparator(dobFormat) {\n // If we have cached the dobSeparator, return it\n if (dobSeparator) {\n\t return dobSeparator;\n }\n\n let separator = '';\n getDateSeparators().forEach(function (ele, iter) {\n if (dobFormat.indexOf(ele) !== -1) { // eslint-disable-line consumerweb/no-indexof\n separator = ele;\n }\n });\n if (separator) {\n dobSeparator = separator;\n }\n return separator;\n}\n\n/**\n * Formats the date based on the specified pattern\n * @param {String} dob DOB to format\n * @param {String} dobPattern Date Pattern as specified by griffin\n * @return {String} Formatted DOB\n */\nexport function getFormattedDob(dob, dobPattern) {\n let dobFormat = getDateFormat(dobPattern);\n let dateSeparator = getDOBSeparator(dobPattern);\n let dateDigitsOnly = dob.replace(/\\D+/g, '').slice(0, 8);\n let formattedDate = '';\n\n // Did user manually enter the separator?\n let lastCharIsSeparator = false;\n if (dob[dob.length - 1] === dateSeparator) {\n lastCharIsSeparator = true;\n }\n\n if (dobFormat === 'DMY' || dobFormat === 'MDY') {\n // If '/' is the dateSeparator,\n // Format as [2digits]/[2digits]/[4digits]\n // Eg: DD/MM/YYYY or MM/DD/YYYY\n\n let dd = dateDigitsOnly.slice(0, 2);\n let mm = dateDigitsOnly.slice(2, 4);\n let yy = dateDigitsOnly.slice(4);\n\n // Theres probably a better way to do this\n if (dd) {\n formattedDate = dd;\n if (dateDigitsOnly.length > 2 || (dateDigitsOnly.length === 2 && lastCharIsSeparator)) {\n formattedDate += dateSeparator;\n }\n }\n if (mm) {\n formattedDate += mm;\n if (dateDigitsOnly.length > 4 || (dateDigitsOnly.length === 4 && lastCharIsSeparator)) {\n formattedDate += dateSeparator;\n }\n }\n if (yy) {\n formattedDate += yy;\n }\n\n } else {\n // Format as YYYY/DD/MM\n let yy = dateDigitsOnly.slice(0, 4);\n let mm = dateDigitsOnly.slice(4, 6);\n let dd = dateDigitsOnly.slice(6);\n if (yy) {\n formattedDate = yy;\n if (dateDigitsOnly.length > 4 || (dateDigitsOnly.length === 4 && lastCharIsSeparator)) {\n formattedDate += dateSeparator;\n }\n }\n if (mm) {\n formattedDate += mm;\n if (dateDigitsOnly.length > 6 || (dateDigitsOnly.length === 6 && lastCharIsSeparator)) {\n formattedDate += dateSeparator;\n }\n }\n if (dd) {\n formattedDate += dd;\n }\n }\n\n return formattedDate;\n}\n\nexport function isOfLegalAge(dob, dobPattern) {\n let dateObject = parseDob(dob, dobPattern);\n if (isDateStringValid(dateObject)) {\n let { year, month, day } = dateObject;\n let birthDate = new Date(year, month - 1, day);\n // user should be of exact 18 years of age or older\n let tempDate = new Date(birthDate.getFullYear() + 18, birthDate.getMonth(), birthDate.getDate());\n\n return tempDate <= new Date().setHours(0, 0, 0, 0);\n }\n\n return false;\n}\n\n/**\n * Validates date of birth from DoB string.\n *\n * @param {string} date of birth\n * @return {boolean} is valid\n */\nexport function validateDob(dob, dobPattern) {\n let dateObject = parseDob(dob, dobPattern);\n if (isDateStringValid(dateObject)) {\n let { year, month, day } = dateObject;\n return isDateValid(year, month - 1, day);\n }\n\n return false;\n}\n\nfunction isDateValid(year, month, day) {\n // dates like 02/31 33/33 should return false\n let date = new Date(year, month, day);\n\n let fullYear = date.getFullYear();\n let dateMonth = date.getMonth();\n let dateDay = date.getDate();\n\n // If birth year is in the future or before 1900, dob is invalid\n let now = new Date();\n if (fullYear > now.getFullYear() || fullYear < 1900) {\n return false;\n }\n\n if (fullYear === parseInt(year, 10) && dateMonth === parseInt(month, 10) && dateDay === parseInt(day, 10)) {\n return true;\n }\n return false;\n}\n\n/**\n * Parses the date string to return an object in the following format\n * {\n * \tday,\n * \tmonth,\n * \tyear\n * }\n * Eg: If input is \"11/12/2017\", returns\n * {\n * \tday: 11,\n * \tmonth: 12,\n * \tyear: 2017\n * }\n */\nexport function parseDob(inputVal, dobPattern) {\n let day;\n let month;\n let year;\n let sep = getDOBSeparator(dobPattern);\n let partsArr = inputVal.split(sep);\n let first = partsArr[0];\n let sec = partsArr[1];\n let third = partsArr[2];\n\n if (getDateFormat(dobPattern) === 'DMY') {\n day = first;\n month = sec;\n year = third;\n } else if (getDateFormat(dobPattern) === 'YMD') {\n year = first;\n month = sec;\n day = third;\n } else {\n month = first;\n day = sec;\n year = third;\n }\n\n return {\n day,\n month,\n year\n };\n\n}\n\n/**\n * Checks whether the date string is a valid date\n */\nexport function isDateStringValid({ day, month, year }) {\n // Validate only on entering the last digit of the dob\n let dayLen = ('' + day).length;\n let monLen = ('' + month).length;\n let yrLen = ('' + year).length;\n let validDay = dayLen === 1 || dayLen === 2;\n let validMon = monLen === 1 || monLen === 2;\n let validYr = yrLen === 4;\n return validDay && validMon && validYr;\n\n}\n\n/**\n * Returns the date format as a 3 letter string\n * Returns\n * \t1. 'DMY' for DDMMYYYY format\n * \t2. 'MDY' for MMDDYYYY format\n * \t3. 'YMD' for YYYYMMDD format\n * @param {String} dobFormat Format of Date of Birth\n * @return {String} Date Format\n */\nexport function getDateFormat(dobFormat) {\n // cache date format value\n if (dateFormat) {\n return dateFormat;\n }\n\n let dateFormatComponents = dobFormat.split(getDOBSeparator(dobFormat));\n\n // Its can be 'D' or 'DD'\n let dIdx = dateFormatComponents.indexOf('D') !== -1 ? dateFormatComponents.indexOf('D') : dateFormatComponents.indexOf('DD'), // eslint-disable-line consumerweb/no-indexof\n mIdx = dateFormatComponents.indexOf('MM'); // eslint-disable-line consumerweb/no-indexof\n\n let formatComponentMap = getFormatComponentIdxMappings();\n if (formatComponentMap.DMY.day === dIdx && formatComponentMap.DMY.month === mIdx) {\n dateFormat = 'DMY';\n return dateFormat;\n } else if (formatComponentMap.MDY.day === dIdx && formatComponentMap.MDY.month === mIdx) {\n dateFormat = 'MDY';\n return dateFormat;\n }\n\n // Neither DMY nor MDY\n dateFormat = 'YMD';\n return dateFormat;\n}\n\nfunction getFormatComponentIdxMappings() {\n return {\n DMY: {\n day: 0,\n month: 1,\n year: 2\n },\n MDY: {\n day: 1,\n month: 0,\n year: 2\n },\n YMD: {\n day: 2,\n month: 1,\n year: 0\n }\n };\n}\n\nexport function isValidDate(year, month, day) {\n // dates like 02/31 33/33 should return false\n let date = new Date(year, month, day);\n\n let fullYear = date.getFullYear();\n let dateMonth = date.getMonth();\n let dateDay = date.getDate();\n\n // If birth year is in the future or before 1900, dob is invalid\n let now = new Date();\n if (fullYear > now.getFullYear() || fullYear < 1900) {\n return false;\n }\n\n if (fullYear === parseInt(year, 10) && dateMonth === parseInt(month, 10) && dateDay === parseInt(day, 10)) {\n return true;\n }\n return false;\n}\n\n/**\n * Resets the cached variables. Required mostly for unit tests\n */\nexport function reset() {\n dobSeparator = null;\n dateFormat = null;\n}\n","/**\n * Select Country of Nationality\n * - user's country used to determine add card and add address formats\n */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { DropdownMenu } from '@paypalcorp/pp-react';\n\nclass CountrySelection extends React.Component {\n static propTypes = {\n supportedCountries: (props, propName, componentName) => {\n const supportedCountries = props[propName];\n\n // if we don't get the array of states we're expecting from Griffin, return an error\n if (\n !Array.isArray(supportedCountries) ||\n (supportedCountries.length && !supportedCountries[0].countryCode)\n ) {\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Please supply the array you get back from griffin.metadata.allSupportedCountries(), but map each supported country to an object: \\`{ countryCode, countryName }.\\``\n );\n }\n return null;\n },\n defaultValue: PropTypes.string,\n label: PropTypes.string,\n changeCountry: PropTypes.func.isRequired,\n errorMessage: PropTypes.string,\n };\n\n static defaultProps = {\n supportedCountries: [],\n changeCountry: () => {},\n };\n\n /**\n * Set initial state to the first country in the list\n */\n state = {\n selectedIndex: this.props.supportedCountries.findIndex((c) => c.countryCode === (this.props.defaultValue || this.props.supportedCountries[0].countryCode)),\n };\n\n /**\n * Select the first country in the list\n */\n componentDidMount() {\n if(this.state.selectedIndex >= 0) {\n this.props.changeCountry(this.props.supportedCountries[this.state.selectedIndex].countryCode);\n }\n }\n\n /**\n * Handle changing the selected country\n * - set the state\n * - call parent's changeCountry() with the selected country\n */\n handleChangeCountry = (index) => {\n this.setState({ selectedIndex: index });\n let selectedCountry = this.props.supportedCountries[index].countryCode;\n this.props.changeCountry(selectedCountry);\n };\n\n render() {\n // don't render anything if we don't get the correctly formatted list of countries\n if (!this.props.supportedCountries[0].countryCode) {\n return null;\n }\n\n const countries = this.props.supportedCountries.map(\n country => ({\n primaryText: country.countryName\n })\n );\n\n return (\n \n );\n }\n}\n\nexport default CountrySelection;\n","/**\n * Email component used to get the user's email address\n * - used with account creation and can be a hidden input\n */\n\nimport PropTypes from 'prop-types';\n\nimport React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\n\nclass Email extends React.Component {\n static propTypes = {\n\t\ttype: PropTypes.string.isRequired,\n\t\tlabel: PropTypes.string,\n\t\thelpText: PropTypes.string,\n\t\trequired: PropTypes.bool,\n\t\tvalue: PropTypes.string,\n\t\terrorMessage: PropTypes.string,\n\t\tchangeEmail: PropTypes.func,\n\t\thandleBlur: PropTypes.func,\n\t};\n\n static defaultProps = {\n type: 'email',\n handleBlur: () => {},\n };\n\n state = { showIsRequiredError: false };\n\n /**\n\t * Handle changing the email\n\t * Calls parent's handler\n\t * @param {String} email - the user's email\n\t */\n handleChangeEmail = (email, mssg_error) => {\n\t\tthis.handleCheckForValue(email);\n\t\tthis.props.changeEmail(email, mssg_error);\n\t\treturn email;\n\t};\n\n /**\n\t * Check for an email value\n\t * If the field is required, we should show that this field needs a value\n\t * @param {String} email - user's email\n\t */\n handleCheckForValue = (email) => {\n\t\tthis.setState({ showIsRequiredError: this.props.required && !email });\n\t};\n\n /**\n\t * Check for an email value and call parent's handleBlur\n\t * @param {String} email - user's email\n\t */\n handleBlur = (email) => {\n\t\tthis.handleCheckForValue(email);\n\t\tthis.props.handleBlur(email);\n\t};\n\n render() {\n\t\tlet { value: initialValue } = this.props;\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t this.handleChangeEmail(event.target.value, 'errMessageEmail')}\n\t\t\t\t\tonBlur={(event) => this.handleBlur(event.target.value)}\n\t\t\t\t/>\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default Email;\n","/*\n\tThis validation was pulled from https://github.paypal.com/ConsumerWeb-R/consonbdnodeweb/blob/develop/lib/validator.js#L143\n\tand was converted from OOP to a more simplistic functional structure with ES6 flare.\n */\n\nexport default function(password) {\n\tlet warningCodes = [];\n\n\t// check empty\n\tif (!password || !password.trim()) {\n\t\twarningCodes.push('_IS_NULL');\n\t}\n\t// length check\n\tconst minLength = 8;\n\tif (password.length < minLength) {\n\t\twarningCodes.push('_TOO_SHORT');\n\t}\n\tconst maxLength = 20;\n\tif (password.length > maxLength) {\n\t\twarningCodes.push('_TOO_LONG');\n\t}\n\t// repeated sequence\n\tconst disallowedRepetition = /(.)\\1{3}/g;\n\tif (password.match(disallowedRepetition)) {\n\t\twarningCodes.push('_CONTAINS_REPEATED_CHARACTERS');\n\t}\n\t// consecutive Number\n\tconst disallowedNumberPatterns = /0123|1234|2345|3456|4567|5678|6789|7890|8901|9012/g;\n\tif (password.match(disallowedNumberPatterns)) {\n\t\twarningCodes.push('_CONTAINS_NUMBER_SEQUENCE');\n\t}\n\t// sequence Character\n\tconst disallowedSequences = /qwer|wert|erty|rtyu|tyui|yuio|uiop|asdf|sdfg|dfgh|fghj|ghjk|hjkl|zxcv|xcvb|cvbn|vbnm|QWER|WERT|ERTY|RTYU|TYUI|YUIO|UIOP|ASDF|SDFG|DFGH|FGHJ|GHJK|HJKL|ZXCV|XCVB|CVBN|VBNM/g;\n\tif (password.match(disallowedSequences)) {\n\t\twarningCodes.push('_CONTAINS_LETTER_SEQUENCE');\n\t}\n\t// sequence Special Characters\n\tconst disallowedCharacters = /\\`123|890-|90-=|iop[|op[]|p\\[\\]\\\\|jkl\\;|kl\\;'|bnm,|nm,.|m,.\\/|~!@\\#|!@\\#$|@#\\$%|#\\$%\\^|\\$%\\^&|\\%\\^&\\*|\\^&\\*\\(|&\\*\\(\\)|\\*\\(\\)\\_|\\(\\)\\_\\+|iop\\[|op\\[\\]|p\\[\\]\\\\|BNM<|NM<>|M<>\\?|IOP{}|OP{}|P{}\\|/g;\n\tif (password.match(disallowedCharacters)) {\n\t\twarningCodes.push('_CONTAINS_NUMBER_LETTER_SEQUENCE');\n\t}\n\t// blacklisted password\n\tconst blacklisted_passwords = ['password', 'access14', 'americanidol', 'baseball', 'baseball1', 'bigdaddy', 'blink182', 'butthead', 'cocacola', 'computer', 'corvette', 'cowboys', 'danielle', 'dolphins', 'einstein', 'firebird', 'football', 'football1', 'iloveyou', 'iloveyou1', 'internet', 'jennifer', 'jordan23', 'liverpool', 'liverpool1', 'marlboro', 'maverick', 'melanie', 'michelle', 'midnight', 'mistress', 'mountain', 'myspace1', 'password', 'password1', 'princess1', 'qwertyui', 'redwings', 'rush2112', 'samantha', 'scorpion', 'slipknot1', 'srinivas', 'startrek', 'starwars', 'sunshine', 'superman', 'superman1', 'swimming', 'trustno1', 'victoria', 'whatever', 'passwort', 'passwort1', 'frankfurt', 'fussball'];\n\tif (blacklisted_passwords.includes(password.toLowerCase())) {\n\t\twarningCodes.push('_IS_BLACKLISTED');\n\t}\n\t// contains spaces\n\tif ((/\\s/).test(password)) {\n\t\twarningCodes.push('_CONTAINS_SPACES');\n\t}\n\t// has illegal chars & allow only 7-bit printable chars\n\tif (password.split('').some(char => (char.charCodeAt(0) < 32 || char.charCodeAt(0) > 126))) {\n\t\twarningCodes.push('_HAS_ILLEGAL_CHARACTERS');\n\t}\n\n\treturn warningCodes;\n}\n","import * as dateUtils from './dateUtils';\n\n/**\n * Localization Utilities\n *\n * Helps to solve problems when working with different countries and locales.\n * Makes it easier when validating, formatting, getting date values.\n *\n */\n\n/**\n * The list of all supported localized countries and their settings.\n * DOBPattern, occupations and nationalIds can also be passed as props to component and props will take priority\n */\nconst countryInfo = {\n\tUS: {\n\t\tshowDOB: false,\n\t\tshowOccupation: false,\n\t\tshowNationality: false,\n\t\tshowLegalCheckBox: false,\n\t\tshowLegalTextOnly: true,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: false,\n\t\tconsentCheckBoxEnabled: false,\n\t\tDOBPattern: 'MM/DD/YYYY', // DOBPattern can also be passed as props to component\n\t\toccupations: [],\n\t\tshowGuestTermsText: true,\n\t\tshowGuestTermsCheckBox: false,\n\t\tshowGuestCPF: false,\n\t},\n\tCA: {\n\t\tshowDOB: true,\n\t\tshowOccupation: true,\n\t\tshowNationality: false,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: true,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'MM/DD/YYYY',\n\t\tshowGuestTermsText: true,\n\t\tshowGuestTermsCheckBox: false,\n\t\tshowPhoneCountryCode: false,\n\t\toccupations: [ // occupations can also be passed as props to component\n\t\t\t{ label: 'Accounting', value: 'Accounting' },\n\t\t\t{ label: 'Administration', value: 'Administration' },\n\t\t\t{ label: 'Arts, Culture', value: 'Arts, Culture' },\n\t\t\t{ label: 'Business', value: 'Business' },\n\t\t\t{ label: 'Communications', value: 'Communications' },\n\t\t\t{ label: 'Customer Service', value: 'Customer Service' },\n\t\t\t{ label: 'Education', value: 'Education' },\n\t\t\t{ label: 'Energy, Utilities', value: 'Energy, Utilities' },\n\t\t\t{ label: 'Engineering', value: 'Engineering' },\n\t\t\t{ label: 'Finance', value: 'Finance' },\n\t\t\t{ label: 'Financial Services', value: 'Financial Services' },\n\t\t\t{ label: 'Government', value: 'Government' },\n\t\t\t{ label: 'Health', value: 'Health' },\n\t\t\t{ label: 'Hospitality', value: 'Hospitality' },\n\t\t\t{ label: 'Human Resources', value: 'Human Resources' },\n\t\t\t{ label: 'Internet', value: 'Internet' },\n\t\t\t{ label: 'Legal', value: 'Legal' },\n\t\t\t{ label: 'Manufacturing', value: 'Manufacturing' },\n\t\t\t{ label: 'Marketing', value: 'Marketing' },\n\t\t\t{ label: 'Non-profit', value: 'Non-profit' },\n\t\t\t{ label: 'Recreation', value: 'Recreation' },\n\t\t\t{ label: 'Religion', value: 'Religion' },\n\t\t\t{ label: 'Research', value: 'Research' },\n\t\t\t{ label: 'Sales', value: 'Sales' },\n\t\t\t{ label: 'Sports, Fitness', value: 'Sports, Fitness' },\n\t\t\t{ label: 'Student', value: 'Student' },\n\t\t\t{ label: 'Technology', value: 'Technology' },\n\t\t\t{ label: 'Trade', value: 'Trade' },\n\t\t\t{ label: 'Transportation', value: 'Transportation' },\n\t\t\t{ label: 'Travel', value: 'Travel' },\n\t\t],\n\t\tshowGuestCPF: false\n\t},\n\tGB: {\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: true,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tAU: {\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: false,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: true,\n\t\tshowPasswordHint: true,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: false,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tFR: { // FRANCE\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tIT: { // ITALY\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tIL: { // ISRAEL\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: false,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: false,\n\t\tconsentCheckBoxEnabled: false,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowGuestCPF: false\n\t},\n\tES: { // SPAIN\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tIE: { // IRELAND\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: false,\n\t\tshowPhoneCountryCode: false,\n\t\tshowGuestCPF: false\n\t},\n\tNL: { // NETHERLANDS\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: true,\n\t\tshowGuestCPF: false\n\t},\n\tAT: { // AUSTRIA\n\t\tshowDOB: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD.MM.YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: true,\n\t\tshowGuestCPF: false\n\t},\n\tCH: { // SWITZERLAND\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: true,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: true,\n\t\tconsentCheckBoxEnabled: true,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: true,\n\t\tshowNationalId: true,\n\t\tnationalIds: [ // nationalIds can also be passed as props to component\n\t\t\t{ label: 'Identity card', value: 'NATIONAL_ID' },\n\t\t\t{ label: 'Passport', value: 'PASSPORT_NUMBER' },\n\t\t\t{ label: 'Driver licence', value: 'DRIVERS_LICENSE' }\n\t\t],\n\t\tshowGuestCPF: false\n\t},\n\tBR: { // BRAZIL\n\t\tshowDOB: true,\n\t\tshowDOBHelp: true,\n\t\tshowDOBMust18: true,\n\t\tshowOccupation: false,\n\t\tshowNationality: false,\n\t\tshowLegalCheckBox: true,\n\t\tshowLegalTextOnly: false,\n\t\tshowPasswordHint: false,\n\t\tshowConsentCheckBox: false,\n\t\tconsentCheckBoxEnabled: false,\n\t\tDOBPattern: 'DD/MM/YYYY',\n\t\toccupations: [],\n\t\tshowGuestTermsText: false,\n\t\tshowGuestTermsCheckBox: true,\n\t\tshowPhoneCountryCode: true,\n\t\tshowGuestCPF: true\n\t}\n};\n\n/**\n * Returns a valid settings for specific country.\n *\n * @param {string} country code.\n * @return {Object} country settings.\n */\nexport function getCountryInfo(country = 'US') {\n\treturn countryInfo[country] ? countryInfo[country] : countryInfo.US;\n}\n\n/**\n * Returns a date of birth string depending on the country format.\n *\n * @param {string} date of birth\n * @param {string} country code\n * @return {string} birthDate\n */\nexport function getFormattedDob(dob, DOBPattern) {\n\treturn dateUtils.getFormattedDob(dob, DOBPattern);\n}\n\n/**\n * Validates date of birth from DoB string.\n *\n * @param {string} date of birth\n * @return {boolean} is valid\n */\nexport function validateDob(dob, DOBPattern) {\n\treturn dateUtils.validateDob(dob, DOBPattern);\n}\n\n\n/**\n * Validates date of birth must be 18 Years from DoB string.\n *\n * @param {string} date of birth\n * @return {boolean} is valid\n */\nexport function validateDobIs18(dob, DOBPattern) {\n\treturn dateUtils.isOfLegalAge(dob, DOBPattern);\n}\n","/**\n * NationalId component used to get the user's national ID type and value\n * - used with account creation and can be a hidden input\n */\n\nimport PropTypes from 'prop-types';\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { TextInput, DropdownMenu } from '@paypalcorp/pp-react';\nimport { StyleSheet, css } from 'aphrodite';\nimport { getCountryInfo } from './util/localizer';\nimport _isEmpty from 'lodash/isEmpty';\n\nconst STYLES = StyleSheet.create({\n\ttypeWrapper: {\n\t\tmargin: '10px 0 0',\n\t\tposition: 'relative',\n\t},\n\terrorMessage: {\n\t\ttransition: 'all 0.25s ease-in-out'\n\t},\n\tdropdown: {\n\t\tpadding: 0,\n\t\ttextIndent: 12,\n\t\tboxSizing: 'content-box',\n\t\tappearance: 'none'\n\t},\n\tarrow: {\n\t\tposition: 'absolute',\n\t\tright: 10,\n\t\ttop: '50%',\n\t\tcursor: 'default',\n\t\tpointerEvents: 'none'\n\t},\n\tarrowError: {\n\t\tmarginTop: -17\n\t},\n\terrorStyles: {\n\t\theight: '100%'\n\t}\n});\n\nclass NationalId extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst nationalIds = !_isEmpty(this.props.nationalIds) ? this.props.nationalIds : getCountryInfo(this.props.country).nationalIds;\n\t\tthis.state = {\n\t\t\tnationalIdTypeIdx: nationalIds.findIndex(item => item.value === this.props.defaultIdType),\n\t\t};\n\t }\n static propTypes = {\n\t\tcountry: PropTypes.string,\n\t\tlabelNationalIdType: PropTypes.string,\n\t\tlabelNationalIdNumber: PropTypes.string,\n\t\thelpText: PropTypes.string,\n\t\tshowErrorMessages: PropTypes.bool,\n\t\tvalue: PropTypes.string,\n\t\terrorMessageType: PropTypes.string,\n\t\terrorMessageNumber: PropTypes.string,\n\t\tdefaultIdType: PropTypes.string,\n\t\tnationalIds: PropTypes.array,\n\t\tchangeEmail: PropTypes.func,\n\t\thandleFocus: PropTypes.func,\n\t\thandleBlur: PropTypes.func,\n\t\tresetNationalId: PropTypes.func,\n\t\tvalidNationalIdType: PropTypes.func,\n\t\tvalidNationalIdNumber: PropTypes.func,\n\t};\n\n static defaultProps = {\n showErrorMessages: true,\n handleFocus: () => {},\n handleBlur: () => {},\n resetNationalId: () => {},\n validNationalIdType: () => {},\n validNationalIdNumber: () => {},\n };\n\n /**\n\t * Call parent's handleFocus\n\t * @param {String} nationalIdNumber - national ID number\n\t */\n handleFocus = (nationalIdNumber) => {\n\t\tthis.props.handleFocus(nationalIdNumber);\n\t};\n\n /**\n\t * Call parent's handleBlur\n\t * @param {String} nationalIdNumber - national ID number\n\t */\n handleBlur = (nationalIdNumber) => {\n\t\tthis.props.handleBlur(nationalIdNumber);\n\t};\n\tgetNationalIds = () => {\n\t\tconst countryInfo = getCountryInfo(this.props.country);\n\t\t// Getting natiponal id's from props or from localizer\n\t\treturn !_isEmpty(this.props.nationalIds) ? this.props.nationalIds : countryInfo.nationalIds;\n\t}\n\tgetNationalIdOptions = () => {\n\t\tconst nationalIds = this.getNationalIds();\n\t\treturn nationalIds.map((item) => {\n\t\t\treturn {\n\t\t\t\tprimaryText: item.label,\n\t\t\t}\n\t\t})\n\t}\n\n /**\n\t * handleChangeNationalIdType\n\t * @param {Number} index - national ID type index\n\t */\n handleChangeNationalIdType = index => {\n\t\tthis.setState({ nationalIdTypeIdx: index });\n\t\tconst nationalIds = this.getNationalIds();\n\t\tlet nationalIdType = nationalIds[index].value;\n\n\t\tif (nationalIdType) {\n\t\t\tthis.props.validNationalIdType(nationalIdType);\n\t\t} else {\n\t\t\tthis.props.resetNationalId();\n\t\t}\n\t};\n\n /**\n\t * Call parent's handleFocus\n\t * @param {String} nationalIdNumber - national ID number\n\t */\n handleChangeNationalNumber = (nationalIdNumber) => {\n\t\tthis.setState({ nationalIdNumber });\n\t\tif (nationalIdNumber) {\n\t\t\tthis.props.validNationalIdNumber(nationalIdNumber);\n\t\t} else {\n\t\t\tthis.props.resetNationalId();\n\t\t}\n\t\treturn nationalIdNumber;\n\t};\n\n render() {\n\t\tconst countryInfo = getCountryInfo(this.props.country);\n\t\tconst { value: initialValue, errorMessageType, errorMessageNumber, showErrorMessages } = this.props;\n\n\t\tlet typeWrapperClassNames = classNames(css(STYLES.typeWrapper), {\n 'vx_has-error-with-message ppvx_field--error': errorMessageType,\n });\n\n\t\t// define the wrapper classNames, which handle showing error messages\n\t\tlet numberWrapperClassNames = classNames(css(STYLES.typeWrapper), {\n 'vx_has-error-with-message ppvx_field--error': errorMessageNumber\n });\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{countryInfo.showNationalId &&
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t this.handleChangeNationalNumber(event.target.value)}\n\t\t\t\t\t\t\tonFocus={(event) => this.handleFocus(event.target.value)}\n\t\t\t\t\t\t\tonBlur={(event) => this.handleBlur(event.target.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t}\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default NationalId;\n","/*\n* This component is awfully similar to CreateAccountPost, but with some interesting use case differences.\n*\n* Namely, this component is planned to be used amongst other fields (and won't have it's own submit button), AND these fields\n* don't have to be completed. As a result, it will look to this.props.showValidation to determine if errors should actually be shown (if the user clicks\n* some other submit with invalid details, for example). This component keeps track of what is wrong, the consumer of the component determines if it's a good time to show the errors.\n*\n* Also, because it's not (always ** read last paragraph **) necessary for the consumer to worry about this component's validation (if a user chooses not to create an account),\n* this component will call this.props.handleCreateAccountCheckbox with a boolean designating the user's intent to do so and that the consumer must now\n* wait for valid password info before proceeding.\n*\n* Lastly, this component will assess the validation of the content in its fields every time state or props are updated.\n* If all of the content is valid at any point it will fire this.props.handleValidInfo() which will allow the consumer to know\n* the chosen password — and implicitly — that this part of the form is completed. (We'll also call resetValidInfo() if this is ever made untrue again.)\n*\n* If this component is used with 'mandatory' prop set to 'true', the optional checkbox will be hidden, and the password inputs will be visible always.\n* Additionally, the this.props.handleCreateAccountCheckbox will not be called, because the consumer should assume that they should wait for\n* this.props.handleValidInfo() to show that the user successfully completed the, now mandatory, password selection.\n* */\n\nimport PropTypes from 'prop-types';\n\nimport React from 'react';\nimport { StyleSheet, css } from 'aphrodite';\nimport classnames from 'classnames';\nimport passwordValidator from './util/passwordValidator';\nimport { TextInput, Checkbox, HeadingText, CaptionText, DropdownMenu } from '@paypalcorp/pp-react';\nimport NationalId from './NationalId';\nimport { getCountryInfo, getFormattedDob, validateDob, validateDobIs18 } from './util/localizer';\nimport * as FPT from '../utility/fpt';\nimport isEmpty from 'lodash/isEmpty';\n\nconst styles = StyleSheet.create({\n\tmainTitle: {\n\t\tmarginBottom: '10px'\n\t},\n\tmainBlurb: {\n\t\tmarginBottom: '15px'\n\t},\n\titsFreeLine: {\n\t\tmargin: '30px 0 15px 0',\n\t},\n\tshiftRight: {\n\t\tmarginLeft: '40px',\n\t},\n\thide: {\n\t\tdisplay: 'none',\n\t},\n\tcreateAccountCheckboxWrapper: {\n\t\tposition: 'absolute',\n\t\twidth: 'inherit',\n\t\tdisplay: 'inline',\n\t},\n\tcreateAccountCheckbox: {\n\t\t':before': {\n\t\t\toverflow: 'hidden',\n\t\t\tborder: '1px solid #9b9b9b',\n\t\t}\n\t},\n\tcreateAccountLine: {\n\t\tmarginLeft: '40px'\n\t},\n\tpasswordWarningWrapper: {\n\t\tbackground: '#fff7f7',\n\t\tpadding: '10px 10px 5px',\n\t\tborderRadius: 5,\n\t\tborder: '1px solid #c72e2e',\n\t\tmarginTop: 15,\n\t},\n\tpasswordHintWrapper: {\n\t\tbackground: '#eef1f6',\n\t\tpadding: 5,\n\t\tpaddingLeft: 40,\n\t\tborderRadius: 5,\n\t\tmarginTop: 5,\n\t\tfontSize: 12,\n\t},\n\tpasswordWarningItem: {\n\t\tmargin: 0,\n\t\tpaddingBottom: 5,\n\t},\n\tlegalCheckboxWrapper: {\n\t\tposition: 'absolute',\n\t\twidth: 'inherit',\n\t\tdisplay: 'inline',\n\t},\n\tlegalCheckbox: {\n\t\t':before': {\n\t\t\toverflow: 'hidden',\n\t\t\tborder: '1px solid #9b9b9b',\n\t\t}\n\t},\n\tredBorder: {\n\t\t':before': {\n\t\t\tbackground: '#fff7f7',\n\t\t\tborder: '1px solid #c72e2e',\n\t\t}\n\t},\n\tlegalBlurb: {\n\t\tlineHeight: '18px',\n\t\tmarginLeft: '40px'\n\t},\n\tlegalTextOnly: {\n\t\tlineHeight: '18px'\n\t},\n\tbutton: {\n\t\tdisplay: 'block',\n\t\tmargin: '40px auto 0'\n\t},\n\tpasswordWrapper: {\n\t\tmarginBottom: '10px'\n\t},\n\tdobWrapper: {\n\t\tmarginBottom: '10px'\n\t},\n\tdobHelpText: {\n\t\tborder: 'solid 1px #0093e0',\n\t\tbackground: '#f2fafe',\n\t\tcolor: 'black',\n\t\tborderTop: 'none',\n\t},\n\tdropdown: {\n\t\tpadding: 0,\n\t\ttextIndent: 12,\n\t\tboxSizing: 'content-box',\n\t\tappearance: 'none'\n\t},\n\tnoHelperText: {\n\t\tmarginTop: '.9375rem'\n\t}\n});\n\nclass CreateAccountPre extends React.Component {\n\tstatic propTypes = {\n\t\tmainTitle: PropTypes.string.isRequired,\n\t\tmainBlurb: PropTypes.string.isRequired,\n\t\tlegalBlurbHTML: PropTypes.object.isRequired,\n\t\tcreateAccountCheckboxContent: PropTypes.string.isRequired,\n\t\thandleValidInfo: PropTypes.func.isRequired,\n\t\tresetValidInfo: PropTypes.func.isRequired,\n\n\t\thandleAllValidInfo: PropTypes.func,\n\t\tresetAllValidInfo: PropTypes.func,\n\n\t\tlegalOnlyHTML: PropTypes.object,\n\t\tlabelnationality: PropTypes.string,\n\t\tconsentBlurbHTML: PropTypes.object,\n\t\tsupportedCountries: PropTypes.array,\n\t\toccupations: PropTypes.array,\n\n\t\tshowValidationErrors: PropTypes.bool.isRequired,\n\t\titsFreeLine: PropTypes.string,\n\t\tcreateAccountHelp1: PropTypes.string,\n\t\tcreateAccountHelp2: PropTypes.string,\n\t\tlabeldob: PropTypes.string,\n\t\thelpdob: PropTypes.string,\n\t\tdobPattern: PropTypes.string,\n\t\tdobHelp: PropTypes.string,\n\t\toccupationError: PropTypes.bool,\n\t\tnationalityError: PropTypes.bool,\n\t\tdefaultIdType: PropTypes.string,\n\t\tisNNA: PropTypes.bool,\n\n\t\tlabel1: PropTypes.string,\n\t\thandleFocusOnPasswordOne: PropTypes.func,\n\t\tlabel2: PropTypes.string,\n\t\thandleCreateAccountCheckbox: PropTypes.func,\n\t\tshowCreateAccountFields: PropTypes.bool,\n\t\tmandatory: PropTypes.bool,\n\t\tcountry: PropTypes.string,\n\t\tlabelocc: PropTypes.string,\n\t\tpasswordWarnings: PropTypes.shape({\n\t\t\t_MISMATCH: PropTypes.string.isRequired,\n\t\t\t_IS_NULL: PropTypes.string.isRequired,\n\t\t\t_TOO_SHORT: PropTypes.string.isRequired,\n\t\t\t_TOO_LONG: PropTypes.string.isRequired,\n\t\t\t_CONTAINS_REPEATED_CHARACTERS: PropTypes.string.isRequired,\n\t\t\t_CONTAINS_NUMBER_SEQUENCE: PropTypes.string.isRequired,\n\t\t\t_CONTAINS_LETTER_SEQUENCE: PropTypes.string.isRequired,\n\t\t\t_CONTAINS_NUMBER_LETTER_SEQUENCE: PropTypes.string.isRequired,\n\t\t\t_IS_BLACKLISTED: PropTypes.string.isRequired,\n\t\t\t_CONTAINS_SPACES: PropTypes.string.isRequired,\n\t\t\t_HAS_ILLEGAL_CHARACTERS: PropTypes.string.isRequired,\n\t\t\t_LEGAL_CHECKBOX: PropTypes.string.isRequired,\n\t\t\t_INVALID_DOB: PropTypes.string,\n\t\t\t_REQUIRED_DOB: PropTypes.string,\n\t\t\t_HELP_DOB: PropTypes.string,\n\t\t\t_MUST_18_DOB: PropTypes.string,\n\t\t\t_OCCUPATION: PropTypes.string,\n\t\t\t_NATIONALITY: PropTypes.string,\n\t\t\t_NATIONAL_ID_TYPE: PropTypes.string,\n\t\t\t_NATIONAL_ID_NUMBER: PropTypes.string,\n\t\t\t_HINT1: PropTypes.string,\n\t\t\t_HINT2: PropTypes.string,\n\t\t\t_HINT3: PropTypes.string,\n\t\t}).isRequired,\n\t\tincentive: PropTypes.object,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst { country = 'US', defaultIdType } = props;\n\t\tconst countryInfo = getCountryInfo(country);\n\n\t\tthis.state = {\n\t\t\tshowCreateAccountFields: false,\n\t\t\tpassword1: '',\n\t\t\tpassword2: '',\n\t\t\tdateOfBirth: '', // For cross-border\n\t\t\toccupationIdx: -1, // For cross-border\n\t\t\tnationalityIdx: -1,\n\t\t\tnationalIdNumber: '',\n\t\t\tnationalIdType: defaultIdType || '',\n\t\t\tacceptedLegal: false, // For cross-border\n\t\t\tconsentCommunication: countryInfo.consentCheckBoxEnabled || false, // For cross-border\n\t\t\tshowPasswordHint: false, // For cross-border\n\t\t\tshowDateOfBirthHelp: false, // For Date of Birth\n\t\t\tpasswordErrors: [],\n\t\t\toptional: false\n\t\t};\n\t}\n\n\t// every time the component updates, should check for valid info to fire to parent\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\t// If someone where calling setState (or anything prompting rerender) within this.props.handleValidInfo or this.props.resetValidInfo\n\t\t// it would cause an infinite loop (component would rerender, passwords would still be valid, etc.).\n\t\t// This outer `if` statement checks that the password or checkbox has changed before calling the parent method.\n\t\tif (prevState.password1 !== this.state.password1 ||\n\t\t\tprevState.password2 !== this.state.password2 ||\n\t\t\tprevState.acceptedLegal !== this.state.acceptedLegal) {\n\t\t\tconst passwordErrors = passwordValidator(this.state.password1);\n\t\t\t// if the passwords match, have no error, and the user has accepted the legal agreement...\n\t\t\tif (this.doPasswordsMatch() && !passwordErrors.length && this.state.acceptedLegal) {\n\t\t\t\t// call the prop function that signifies to the parent that everything is ready to go!\n\t\t\t\tthis.props.handleValidInfo(this.state.password1);\n\t\t\t} else {\n\t\t\t\t// This covers the scenario where a user has valid information, but goes back and changes things to be invalid later\n\t\t\t\t// consumers need to know to clear the initial valid information from their stores.\n\t\t\t\tthis.props.resetValidInfo();\n\t\t\t}\n\t\t}\n\n\t\t// This outer `if` statement checks that the password or acceptedLegal or dateOfBirth or occupation or nationalityor checkbox has changed before calling the parent method.\n\t\tif (prevState.password1 !== this.state.password1 ||\n\t\t\tprevState.password2 !== this.state.password2 ||\n\t\t\tprevState.acceptedLegal !== this.state.acceptedLegal ||\n\t\t\tprevState.dateOfBirth !== this.state.dateOfBirth ||\n\t\t\tprevState.occupationIdx !== this.state.occupationIdx ||\n\t\t\tprevState.nationalityIdx !== this.state.nationalityIdx ||\n\t\t\tprevState.nationalIdType !== this.state.nationalIdType ||\n\t\t\tprevState.nationalIdNumber !== this.state.nationalIdNumber ||\n\t\t\tprevState.consentCommunication !== this.state.consentCommunication) {\n\n\t\t\tlet { passwordValid = true, dobValid = true, occValid = true, legalValid = true, natValid = true, naIdTypeValid = true, naIdNoValid = true, } = {};\n\n\t\t\tconst { country = 'US' } = this.props;\n\t\t\tconst { password1, acceptedLegal, dateOfBirth, occupationIdx, nationalityIdx, nationalIdType, nationalIdNumber, consentCommunication, } = this.state;\n\t\t\tconst passwordErrors = passwordValidator(password1);\n\t\t\tconst countryInfo = getCountryInfo(country);\n\n\t\t\tlet userData = { password: password1 };\n\t\t\tpasswordValid = this.doPasswordsMatch() && !passwordErrors.length;\n\n\t\t\tif (countryInfo.showLegalCheckBox) {\n\t\t\t\tuserData.legalValid = acceptedLegal;\n\t\t\t\tlegalValid = !!acceptedLegal;\n\t\t\t}\n\n\t\t\tif (countryInfo.showDOB) {\n\t\t\t\tuserData.dateOfBirth = dateOfBirth;\n\t\t\t\tuserData.dateOfBirthPattern = this.getDobPattern();\n\t\t\t\tdobValid = validateDob(dateOfBirth, userData.dateOfBirthPattern);\n\t\t\t}\n\n\t\t\tif (countryInfo.showOccupation) {\n\t\t\t\tconst occupations = this.props.occupations || countryInfo.occupations;\n\t\t\t\tlet occupation = occupationIdx === -1 ? '' : occupations[occupationIdx].value;\n\t\t\t\tuserData.occupation = occupation;\n\t\t\t\toccValid = !!occupation;\n\t\t\t}\n\n\t\t\tif (countryInfo.showNationality) {\n\t\t\t\tlet nationality = nationalityIdx !== -1 ? this.props.supportedCountries[nationalityIdx].countryCode : '';\n\t\t\t\tuserData.nationality = nationality;\n\t\t\t\tnatValid = !!nationality;\n\t\t\t}\n\n\t\t\tif (countryInfo.showNationalId) {\n\t\t\t\tuserData.nationalIdType = nationalIdType;\n\t\t\t\tnaIdTypeValid = !!nationalIdType;\n\t\t\t}\n\n\t\t\tif (countryInfo.showNationalId) {\n\t\t\t\tuserData.nationalIdNumber = nationalIdNumber;\n\t\t\t\tnaIdNoValid = !!nationalIdNumber;\n\t\t\t}\n\n\t\t\tif (countryInfo.showConsentCheckBox) {\n\t\t\t\tuserData.consentCommunication = consentCommunication;\n\t\t\t}\n\n\t\t\tif (passwordValid && legalValid && dobValid && occValid && natValid && naIdTypeValid && naIdNoValid) {\n\t\t\t\t// If passwords are identical, have no errors, and legal has\n\t\t\t\t// been accepted. Call the prop function that signifies to the\n\t\t\t\t// parent that everything is ready to go!\n\t\t\t\tif (this.props.handleAllValidInfo) {\n\t\t\t\t\tthis.props.handleAllValidInfo(userData);\n\t\t\t\t}\n\t\t\t} else if (this.props.resetAllValidInfo) {\n\t\t\t\t// This covers the scenario where a user has valid information,\n\t\t\t\t// but goes back and changes things to be invalid later\n\t\t\t\t// consumers need to know to clear the initial valid information\n\t\t\t\t// from their stores.\n\t\t\t\tthis.props.resetAllValidInfo(userData);\n\t\t\t}\n\t\t}\n\n\t\tif (prevProps.showValidationErrors !== this.props.showValidationErrors &&\n\t\t\tthis.props.showValidationErrors &&\n\t\t\t!isEmpty(this.state.passwordErrors)) {\n\t\t\tFPT.trackFieldError(\n\t\t\t\t'password',\n\t\t\t\t'PASSWORD_VALIDATION_ERROR',\n\t\t\t\tthis.state.passwordErrors.join(',')\n\t\t\t);\n\t\t}\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps) {\n\t\t// in the case that the user fills nothing out after ticking the create account box\n\t\t// we need to show password validation errors for empty password fields\n\t\tthis.setState({\n\t\t\tpasswordErrors: passwordValidator(this.state.password1)\n\t\t});\n\n\t\t// Set optional to false when its not mandatory\n\t\t// This is required for re-setting \"optional\" when it changes\n\t\t// to mandatory from optional\n\t\tif (this.props.mandatory) {\n\t\t\tthis.setState({\n\t\t\t\toptional: false\n\t\t\t});\n\t\t}\n\t}\n\n\thandleCreateAccountCheckbox = (event) => {\n\t\tthis.props.handleCreateAccountCheckbox(event.target.checked);\n\t\tthis.setState({\n\t\t\toptional: event.target.checked,\n\t\t\tshowCreateAccountFields: event.target.checked\n\t\t});\n\t};\n\n\thandleUpdatePasswords = (password, whichInput, hasPasswordHint) => {\n\n\t\tlet newState = {\n\t\t\t[whichInput]: password,\n\t\t\tshowPasswordHint: hasPasswordHint, // we only show password hint for password1 if is enabled\n\t\t\t// we only base the password validation on 'input1', otherwise things get really confusing\n\t\t\tpasswordErrors: (whichInput === 'password1') ? passwordValidator(password) : this.state.passwordErrors,\n\t\t};\n\t\tthis.setState(newState);\n\t\treturn password; // returning for TextInput https://github.paypal.com/react/react-text-input\n\t};\n\n\thidePasswordHint = (isHint) => {\n\t\tif (isHint) {\n\t\t\tthis.setState({ showPasswordHint: false });\n\t\t}\n\t};\n\n\thandleLegalCheckbox = (event) => {\n\t\tthis.setState({\n\t\t\tacceptedLegal: event.target.checked\n\t\t});\n\t};\n\n\thandleConsentCheckbox = (event) => {\n\t\tthis.setState({\n\t\t\tconsentCommunication: event.target.checked\n\t\t});\n\t};\n\n\thandleResetPasswordFields = () => {\n\t\tthis.setState({\n\t\t\toptional: false,\n\t\t\tacceptedLegal: false,\n\t\t\tshowCreateAccountFields: false,\n\t\t});\n\t\tthis.handleUpdatePasswords('', 'password1');\n\t\tthis.handleUpdatePasswords('', 'password2');\n\t}\n\n\t/**\n * check that the two passwords within state are matching\n * @return {boolean}\n */\n\tdoPasswordsMatch = () => {\n\t\treturn this.state.password1 === this.state.password2;\n\t};\n\n\t/**\n * Return dobPattern from specified props or get it from countryInfo\n */\n\tgetDobPattern = () => {\n\t\tif (this.props.dobPattern) {\n\t\t\treturn this.props.dobPattern;\n\t\t}\n\n\t\tconst { country = 'US' } = this.props;\n\t\tconst countryInfo = getCountryInfo(country);\n\n\t\treturn countryInfo.DOBPattern;\n\n\t};\n\n\t/**\n * check if date of birth is valid\n * @return {string}\n */\n\thandleChangeDob = (date) => {\n\t\tlet dateOfBirth = getFormattedDob(date, this.getDobPattern());\n\n\t\tthis.setState({\n\t\t\tdateOfBirth: dateOfBirth,\n\t\t\tdobReqErrors: date === '',\n\t\t\tdobErrors: date !== '' && !validateDob(dateOfBirth, this.getDobPattern())\n\t\t});\n\t\treturn dateOfBirth;\n\t};\n\n\tvalidateDobIs18 = (date) => {\n\t\tthis.setState({\n\t\t\tdobIs18Errors: !validateDobIs18(date, this.getDobPattern())\n\t\t});\n\t};\n\n\thandleDobBlur = (date) => {\n\t\tthis.setState({ dobReqErrors: date === '', showDateOfBirthHelp: false });\n\t\tthis.validateDobIs18(date);\n\t};\n\n\thandleDobFocus = (date) => {\n\t\tthis.setState({ dobReqErrors: false, showDateOfBirthHelp: true });\n\t};\n\n\thandleChangeOccupation = (index) => {\n\t\tthis.setState({ occupationError: index === -1, occupationIdx: index });\n\t};\n\n\thandleChangeNationality = (index) => {\n\t\tthis.setState({ nationalityError: index === -1, nationalityIdx: index });\n\t};\n\n\trenderPasswordErrors = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t{/* password mismatch content */}\n\t\t\t\t{!this.doPasswordsMatch() &&

{this.props.passwordWarnings._MISMATCH}

}\n\t\t\t\t{/* password formatting content */}\n\t\t\t\t{this.state.passwordErrors.map(code => {\n\t\t\t\t\tconst warningMessage = this.props.passwordWarnings[code];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t

{warningMessage}

\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t);\n\t};\n\n\thandleNationalIdType = (nationalIdType) => {\n\t\tthis.setState({ nationalIdType });\n\t};\n\n\thandleNationalIdNumber = (nationalIdNumber) => {\n\t\tthis.setState({ nationalIdNumber });\n\t};\n\n\tresetNationalId = () => {\n\t\tthis.setState({ nationalIdType: null, nationalIdNumber: null });\n\t};\n\n\tgetOccupationOptions = (occupations) => {\n\t\treturn occupations.map((item) => {\n\t\t\treturn {\n\t\t\t\tprimaryText: item.label,\n\t\t\t}\n\t\t})\n\t}\n\n\tgetNationalityOptions = (supportedCountries) => {\n\t\treturn supportedCountries.map((country) => {\n\t\t\treturn {\n\t\t\t\tprimaryText: country.countryName,\n\t\t\t}\n\t\t})\n\t}\n\n\trender() {\n\t\tconst { acceptedLegal, passwordErrors, dateOfBirth, occupationIdx, nationalityIdx, nationalIdType, nationalIdNumber, dobReqErrors, dobErrors, dobIs18Errors, occupationError, nationalityError, showPasswordHint, showDateOfBirthHelp } = this.state;\n\t\tconst { showValidationErrors, country = 'US', supportedCountries, defaultIdType = '' } = this.props;\n\t\tconst countryInfo = getCountryInfo(country);\n\t\tconst dateOfBirthHelp = showDateOfBirthHelp && countryInfo.showDOBHelp;\n\t\tconst legalCheckBoxErrorsExist = countryInfo.showLegalCheckBox && !acceptedLegal;\n\t\tconst passwordErrorsExist = !this.doPasswordsMatch() || !!passwordErrors.length;\n\t\tconst occupationErrorsExist = showValidationErrors && countryInfo.showOccupation && (occupationError || occupationIdx === -1);\n\t\tconst nationalityErrorsExist = showValidationErrors && countryInfo.showNationality && (nationalityError || nationalityIdx === -1);\n\t\tconst dateOfBirthErrorsExist = showValidationErrors && countryInfo.showDOB && !dateOfBirthHelp && (dobErrors || dobReqErrors || !dateOfBirth);\n\t\tconst dateOfBirthIs18ErrorsExist = showValidationErrors && countryInfo.showDOBMust18 && dobIs18Errors && !dateOfBirthHelp;\n\t\tconst nationalIdTypeErrorsExist = showValidationErrors && countryInfo.showNationalId && !nationalIdType;\n\t\tconst nationalIdNoErrorsExist = showValidationErrors && countryInfo.showNationalId && !nationalIdNumber;\n\t\tconst shouldShowErrorMessages = showValidationErrors && (passwordErrorsExist || legalCheckBoxErrorsExist || occupationErrorsExist || nationalityErrorsExist || dateOfBirthErrorsExist || dateOfBirthIs18ErrorsExist || nationalIdTypeErrorsExist || nationalIdNoErrorsExist);\n\t\tconst occupations = this.props.occupations || countryInfo.occupations;\n\t\tconst isCountryUS = country === 'US';\n\t\tconst createAccountCheckboxContent = isCountryUS ? this.props.incentive?.createAccountCheckboxContent : this.props.createAccountCheckboxContent;\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{this.props.isNNA ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.props.mainTitle}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{this.props.mainTitle}\n\t\t\t\t\t\t{this.props.mainBlurb}\n\t\t\t\t\t\n\t\t\t\t)}\n\n\n\t\t\t\t{!this.props.mandatory && // if the password is optional — show the optional checkbox\n\t\t\t\t\t\n\t\t\t\t\t\t{!this.props.isNNA ? (\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{this.props.itsFreeLine}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t}\n\n\t\t\t\t
\n\t\t\t\t\t{!this.props.mandatory && !this.props.isNNA && !isCountryUS &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{this.props.createAccountHelp1 &&

{this.props.createAccountHelp1}

}\n\t\t\t\t\t\t\t{this.props.createAccountHelp2 &&

{this.props.createAccountHelp2}

}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t\t\t this.hidePasswordHint(countryInfo.showPasswordHint)}\n\t\t\t\t\t\t\tonBlur={() => this.hidePasswordHint(countryInfo.showPasswordHint)}\n\t\t\t\t\t\t\tonChange={(event) => this.handleUpdatePasswords(event.target.value, 'password1', countryInfo.showPasswordHint)}\n\t\t\t\t\t\t\tonFocus={this.props.handleFocusOnPasswordOne}\n\t\t\t\t\t\t\tvalue={this.state.password1}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tshowPasswordHint && countryInfo.showPasswordHint &&\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{this.props.passwordWarnings._HINT1 &&
{this.props.passwordWarnings._HINT1}
}\n\t\t\t\t\t\t\t\t{this.props.passwordWarnings._HINT2 &&
{this.props.passwordWarnings._HINT2}
}\n\t\t\t\t\t\t\t\t{this.props.passwordWarnings._HINT3 &&
{this.props.passwordWarnings._HINT3}
}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t this.handleUpdatePasswords(event.target.value, 'password2')}\n\t\t\t\t\t\t\tvalue={this.state.password2}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tcountryInfo.showDOB &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t this.handleChangeDob(event.target.value)}\n\t\t\t\t\t\t\t\tonFocus={(event) => this.handleDobFocus(event.target.value)}\n\t\t\t\t\t\t\t\tonBlur={(event) => this.handleDobBlur(event.target.value)}\n\t\t\t\t\t\t\t\thelperText={dateOfBirthHelp && this.props.passwordWarnings._HELP_DOB}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tcountryInfo.showOccupation &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tcountryInfo.showNationality &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tcountryInfo.showNationalId &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tshouldShowErrorMessages &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{showValidationErrors && passwordErrorsExist && this.renderPasswordErrors()}\n\t\t\t\t\t\t\t{showValidationErrors && countryInfo.showDOB && dobErrors && !dateOfBirthHelp &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._INVALID_DOB}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{showValidationErrors && countryInfo.showDOB && (dobReqErrors || !dateOfBirth) && !dateOfBirthHelp &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._REQUIRED_DOB}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{dateOfBirthIs18ErrorsExist &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._MUST_18_DOB}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{occupationErrorsExist &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._OCCUPATION}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{nationalityErrorsExist &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._NATIONALITY}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{nationalIdTypeErrorsExist &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._NATIONAL_ID_TYPE}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{nationalIdNoErrorsExist &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._NATIONAL_ID_NUMBER}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t\t{showValidationErrors && countryInfo.showLegalCheckBox && !acceptedLegal &&\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{this.props.passwordWarnings._LEGAL_CHECKBOX}\n\t\t\t\t\t\t\t\t

}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\n\t\t\t\t\t{countryInfo.showConsentCheckBox &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\n\t\t\t\t\t{countryInfo.showLegalCheckBox &&
\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\n\t\t\t\t\t{countryInfo.showLegalTextOnly &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{this.props.legalOnlyHTML}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default CreateAccountPre;\n","/**\n * Generic address entry field used for adding a new address\n * Wrap all the address entry fields in a
when using the grid\n * - Address fields are generic because they vary based on the user's locale\n * - Shows a state list dropdown if it exists\n * - Validates the postcode (zipcode) and shows the error message (vx_form-control-message)\n * - If it's a US address, show the state and zipcode on the same line\n */\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { DropdownMenu, TextInput } from '@paypalcorp/pp-react';\nimport PropTypes from 'prop-types';\nimport { stateListPropType } from 'prop-validators';\nimport _map from 'lodash/map';\nimport * as FPT from '../utility/fpt';\n\n/**\n * State dropdown list\n */\nclass StateList extends React.Component {\n static propTypes = {\n id: PropTypes.string.isRequired,\n country: PropTypes.string.isRequired,\n fieldName: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n stateList: stateListPropType,\n required: PropTypes.bool,\n value: PropTypes.string, // default value\n errorMessage: PropTypes.string,\n handleChangeField: PropTypes.func.isRequired,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n };\n\n state = {\n selectedIndex: this.props.stateList.findIndex(\n (state) => state.$id === this.props.value\n ),\n };\n\n handleChangeOption = (index) => {\n this.setState({ selectedIndex: index });\n let value = this.props.stateList[index].$id;\n this.props.handleChangeField(this.props.fieldName, value);\n };\n\n getStateOptions = (stateList) => {\n return _map(stateList, (state) => {\n return {\n primaryText: state.$elt,\n };\n });\n };\n\n render() {\n let {\n id,\n fieldName,\n required,\n stateList = [],\n errorMessage,\n label,\n } = this.props;\n\n return (\n \n
\n \n
\n
\n );\n }\n}\n\n/**\n * A generic address entry field that handles different fields specified by griffin\n * Values will be stored in component state\n */\nclass AddressEntryField extends React.Component {\n static propTypes = {\n id: PropTypes.string.isRequired,\n country: PropTypes.string.isRequired,\n fieldName: PropTypes.string.isRequired,\n required: PropTypes.bool,\n maxLength: PropTypes.number,\n validationPattern: PropTypes.string,\n labels: PropTypes.object.isRequired, // addressEntryFormat.strings\n value: PropTypes.string, // default value\n errorMessage: PropTypes.string,\n handleChangeField: PropTypes.func.isRequired,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n handlePostcodeHasError: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n handleFocus: () => {},\n handleBlur: () => {},\n };\n\n state = {\n value: '',\n zipErrorMessage: '',\n };\n\n handleFocus = (value) => {\n this.props.handleFocus(this.props.fieldName, value);\n };\n\n /**\n * Validate postcode onBlur\n * - set the state with the error message from the labels object\n * - call parent's handlePostcodeHasError to disable submission of the form\n */\n handleBlur = (value) => {\n let shouldValidatePostcode =\n this.props.fieldName === 'postcode' && this.state.value;\n\n // if the postcode is invalid based on the validationPattern,\n // set zipErrorMessage = labels.validationError that we get from Griffin\n if (\n shouldValidatePostcode &&\n !new RegExp(`^${this.props.validationPattern}$`).test(this.state.value)\n ) {\n this.setState({ zipErrorMessage: this.props.labels.validationError });\n FPT.trackFieldError(\n 'postcode',\n 'INVALID_BILLING_ADDRESS_POSTCODE',\n this.props.labels.validationError\n );\n this.props.handlePostcodeHasError(true);\n } else {\n this.setState({ zipErrorMessage: '' });\n this.props.handlePostcodeHasError(false);\n }\n\n this.props.handleBlur(this.props.fieldName, value);\n };\n\n /**\n * Handle changing the input value\n * - call parent's handleChangeField to store the address value\n * - set the state so the component also keeps track of this value\n * @param {String} value - the input value\n */\n handleChangeField = (value) => {\n this.props.handleChangeField(this.props.fieldName, value);\n this.setState({ value });\n return value;\n };\n\n render() {\n let {\n id,\n country,\n fieldName,\n required,\n maxLength,\n validationPattern,\n labels,\n errorMessage,\n handleChangeField,\n } = this.props;\n let { optionalLabel, stateList } = labels;\n optionalLabel = required ? '' : ` ${optionalLabel || ''}`;\n let label = `${labels[`${fieldName}Label`]}${optionalLabel}`;\n let attributes = {\n required,\n maxLength: maxLength,\n pattern: validationPattern,\n };\n\n // if there is a stateList, let's render a dropdown\n if (this.props.fieldName === 'state' && stateList && stateList.length) {\n return (\n \n );\n }\n\n let { zipErrorMessage } = this.state;\n\n return (\n = 0 && fieldName === 'postcode',\n })}\n style={{ margin: '10px 0 0' }}\n >\n this.handleFocus(event.target.value)}\n onBlur={(event) => this.handleBlur(event.target.value)}\n onChange={(event) => this.handleChangeField(event.target.value)}\n errorText={errorMessage || zipErrorMessage}\n />\n \n );\n }\n}\n\nexport default AddressEntryField;\n","/**\n * Card Utilities\n * For use with linking a card\n *\n * - get card type [visa, mastercard, amex, discover, maestro, unionpay] based on the card number\n */\n\nexport const defaultCardSpec = {\n type: 'card',\n fields: {\n ccNumber: {\n required: true,\n pattern: '4[0-9]{12}(?:[0-9]{3})?',\n maxlength: 19,\n },\n expirationDate: {\n required: true,\n pattern: '(0[1-9]|1[012])[/]((20)[0-9]{2}|[0-9]{2})',\n maxlength: 7,\n },\n csc: {\n required: true,\n pattern: '[0-9]*',\n maxlength: 3,\n minlength: 3,\n },\n },\n};\n\n/**\n * Get the card type based on the card number\n * @param {Object} cardSpecs - the card specifications based on user's locale\n * @param {String} cardNumber - the valid card number (numbers only)\n * @return {Object} cardType - the card type specs for a specific card\n */\nexport function getSpecificCardSpec({ cardTypes }, cardNumber) {\n cardNumber = cardNumber.replace(/\\D+/g, '');\n\n for (let card in cardTypes) {\n let cardSpec = cardTypes[card];\n if (\n new RegExp(`^${cardSpec.fields.ccNumber.autodetect}$`).test(cardNumber)\n ) {\n return cardSpec;\n }\n }\n return defaultCardSpec;\n}\n","/**\n * Card number input used for adding a card\n *\n * Dependent on getCardSpecs() from https://github.paypal.com/ConsumerWeb-Modules/consumerweb-card/blob/master/lib/card-config.js,\n * but you could just supply an object of specifications similar to what getCardSpecs returns.\n */\nimport React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\nimport PropTypes from 'prop-types';\n\nimport { cardSpecsPropType, cardSpecPropType } from 'prop-validators';\nimport { defaultCardSpec, getSpecificCardSpec } from './card-utils';\n\nconst STYLES = {\n logoWrapper: {\n height: '100%',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n\n logo: {\n display: 'inline-block',\n marginTop: 12,\n marginRight: 2,\n },\n\n errorMessage: {\n WebkitTransition: 'all 0.25s ease-in-out',\n MozTransition: 'all 0.25s ease-in-out',\n msTransition: 'all 0.25s ease-in-out',\n OTransition: 'all 0.25s ease-in-out',\n transition: 'all 0.25s ease-in-out',\n },\n};\n\nclass CardNumber extends React.Component {\n static propTypes = {\n cardSpecs: cardSpecsPropType,\n selectedCardSpec: cardSpecPropType,\n label: PropTypes.string.isRequired,\n errorMessage: PropTypes.string,\n handleChangeCardNumber: PropTypes.func.isRequired,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n dir: PropTypes.string,\n };\n\n static defaultProps = {\n handleFocus: () => {},\n handleBlur: () => {},\n };\n\n state = {\n value: '',\n cardSpec: defaultCardSpec,\n showIsRequiredError: false,\n };\n\n /**\n * Handle changing card number\n * Get the specific card spec for the card based on the card number pattern\n * Call parent's handleChangeCardNumber, so it knows what the card spec is\n * @param {String} cardNumber - the card number\n * @return {String} cardNumber - the sanitized card number\n */\n handleChangeCardNumber = ({ target: { value: cardNumber } }) => {\n // the cardSpecs for all the cards from consumerweb-card's card-config\n // https://github.paypal.com/ConsumerWeb-Modules/consumerweb-card/blob/master/lib/card-config.js#L73\n let { cardSpecs } = this.props;\n cardNumber = cardNumber.replace(/\\D+/g, '');\n\n // get the specific cardSpec based on the cardNumber using the autodetect from cardSpecs\n let cardSpec =\n (cardSpecs.autodetect && getSpecificCardSpec(cardSpecs, cardNumber)) ||\n this.props.selectedCardSpec ||\n defaultCardSpec;\n this.setState({ cardSpec, value: cardNumber });\n this.handleCheckForValue(cardNumber);\n this.props.handleChangeCardNumber(cardNumber, cardSpec);\n return cardNumber;\n };\n\n /**\n * Check for a cardNumber value\n * If the field is required, we should show that this field needs a value\n * @param {String} cardNumber - the card number\n */\n handleCheckForValue = (cardNumber) => {\n const cardNumberSpecs = this.state.cardSpec.fields.ccNumber;\n const isRequired = cardNumberSpecs.required;\n this.setState({ showIsRequiredError: isRequired && !cardNumber });\n };\n\n /**\n * Call parent's handleFocus\n * @param {String} cardNumber - the card number\n */\n handleFocus = ({ target: { value: cardNumber } }) => {\n this.props.handleFocus(cardNumber);\n };\n\n /**\n * Check for a cardNumber value and call parent's handleBlur\n * @param {String} cardNumber - the card number\n */\n handleBlur = ({ target: { value: cardNumber } }) => {\n this.handleCheckForValue(cardNumber);\n this.props.handleBlur(cardNumber);\n };\n\n render() {\n const {\n errorMessage,\n cardSpecs: { autodetect = false },\n } = this.props;\n const cardNumberSpecs = this.state.cardSpec.fields.ccNumber;\n\n // the card type from config separates words with a '_',\n // but we don't want '_'s so we can use the font icons\n const cardType = autodetect\n ? this.state.cardSpec.type.replace('_', '')\n : this.props.selectedCardSpec.type.replace('_', '');\n const cardLogoClassNames = !(errorMessage || this.state.showIsRequiredError)\n ? `icon icon-medium icon-${cardType}-logo`\n : undefined;\n\n if (this.props.dir === 'rtl') {\n delete STYLES.logoWrapper.right;\n STYLES.logoWrapper = { ...STYLES.logoWrapper, left: 0 };\n\n delete STYLES.logo.marginRight;\n STYLES.logo = { ...STYLES.logo, marginLeft: 2 };\n }\n\n return (\n
\n \n\n \n \n \n
\n );\n }\n}\n\nexport { defaultCardSpec };\nexport default CardNumber;\n","/**\n * Date Utilities\n *\n * Helps to solve problems when working with dates.\n * Makes it easier when validating, formatting, getting date values.\n *\n * Uses:\n * - getting a valid month\n * - expiration date parsing and formatting\n */\n\n/**\n * Returns a valid month number 01-12\n *\n * @param {string} month\n * @return {string} month\n */\nexport function getValidMonthString(month) {\n // if the user typed an incorrect month of '00', autocorrect them\n if (month === '00') {\n return '01';\n }\n\n // make sure the month is valid: 01-12\n // convert the month to an integer and test it\n if (+month > 12) {\n return '12';\n }\n return month.toString();\n}\n\n/**\n * Return a valud year that's not less than the current year\n *\n * @example for a year value of '00', return the current year\n *\n * @param {string} year\n * @return {string} year\n */\nexport function getValidYearString(year) {\n let currentYear = new Date().getFullYear().toString().slice(-2);\n if (year.length === 2) {\n return +year < currentYear ? currentYear : year;\n }\n return year.toString();\n}\n\n/**\n * Returns the full year 20** if year.length > 1\n * - prepends '20' to the last 2 digits\n * - just return the year value if year.length < 2\n *\n * @example for a year value of '88', return '2088'\n * @example for a year value of '2000', return the current year\n *\n * @param {string} year\n * @return {string} a valid full year\n */\nexport function getFullYear(year) {\n if (year.length > 1) {\n return `20${getValidYearString(year.slice(-2))}`;\n }\n\n return year.toString();\n}\n\n/**\n * Returns a formatted expiration date\n *\n * - if the month is less than 10, we pad the month with a '0'\n * @example for a date value of '8', return '08'\n *\n * - the date is formatted with the '/' inserted\n * @example for a date value of '1216', return '12/16'\n *\n * @param {string} date\n * @return {string} expirationDate\n */\nexport function getFormattedExpirationDate(date, options = {}) {\n let expirationDate = date.replace(/\\D+/g, '');\n\n // if we just want to remove the trailing slash, just return the date\n // without padding or a trailing slash\n if (options.shouldRemoveTrailingSlash) {\n return expirationDate;\n }\n\n // pad the month with a '0' and append trailing slash only if the value is > 1;\n // otherwise, the user could want to enter '11' or '12'\n if (\n expirationDate.length === 1 &&\n expirationDate !== '0' &&\n expirationDate !== '1'\n ) {\n return `0${expirationDate}/`;\n }\n\n let month = expirationDate.slice(0, 2);\n let year = getValidYearString(expirationDate.slice(2));\n\n // get a valid full year\n if (year.length > 3) {\n year = getFullYear(year);\n }\n\n if (!year) {\n if (month.length > 1) {\n return `${getValidMonthString(month)}/`;\n }\n return getValidMonthString(month);\n }\n\n // format the expiration date with the '/'\n return `${getValidMonthString(month)}/${year}`;\n}\n","import React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\n\n/**\n * Expiry date used for adding a card\n */\n\nimport PropTypes from 'prop-types';\n\nimport { cardSpecPropType } from 'prop-validators';\nimport { getFormattedExpirationDate } from './date-utils';\n\nclass Expiry extends React.Component {\n static propTypes = {\n cardSpec: cardSpecPropType,\n label: PropTypes.string.isRequired,\n helpText: PropTypes.string,\n errorMessage: PropTypes.string,\n handleChangeDate: PropTypes.func.isRequired,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n dir: PropTypes.string,\n };\n\n static defaultProps = {\n handleFocus: () => {},\n handleBlur: () => {},\n };\n\n state = {\n value: '',\n showIsRequiredError: false,\n lastCharacterIsSlash: false,\n };\n\n /**\n * Handle changing expiry date\n * Use the getFormattedExpirationDate util to format the date\n * @param {String} date - expiry date\n * @return {String} expiry - the formatted date\n */\n handleChangeDate = ({ target: { value: date } }) => {\n // if the new date is two digits and the previous date ended in a slash, we\n // should not add a slash when we format the date\n const shouldRemoveTrailingSlash =\n date.length === 2 && this.state.lastCharacterIsSlash;\n\n let expiry = getFormattedExpirationDate(date, {\n shouldRemoveTrailingSlash,\n });\n this.handleCheckForValue(date);\n this.props.handleChangeDate(expiry);\n\n this.setState({\n lastCharacterIsSlash: expiry.slice(-1) === '/',\n value: expiry,\n });\n\n return expiry;\n };\n\n /**\n * Check for a date value\n * If the field is required, we should show that this field needs a value\n * @param {String} date - expiry date\n */\n handleCheckForValue = (date) => {\n const { required = false } = this.props.cardSpec.fields.expirationDate;\n this.setState({ showIsRequiredError: required && !date });\n };\n\n /**\n * Call parent's handleFocus\n * @param {String} date - expiry date\n */\n handleFocus = ({ target: { value: date } }) => {\n this.props.handleFocus(date);\n };\n\n /**\n * Check for a date value and call parent's handleBlur\n * @param {String} date - expiry date\n */\n handleBlur = ({ target: { value: date } }) => {\n this.handleCheckForValue(date);\n this.props.handleBlur(date);\n };\n\n render() {\n const expirySpecs = this.props.cardSpec.fields.expirationDate;\n let { errorMessage } = this.props;\n\n return (\n
\n \n
\n );\n }\n}\n\nexport default Expiry;\n","/**\n * Card number input used for adding a card\n *\n * Dependent on getCardSpecs() from https://github.paypal.com/ConsumerWeb-Modules/consumerweb-card/blob/master/lib/card-config.js,\n * but you could just supply an object of specifications similar to what getCardSpecs returns.\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { StyleSheet, css } from 'aphrodite';\nimport { DropdownMenu } from '@paypalcorp/pp-react';\n\nimport { cardSpecsPropType, cardSpecPropType } from 'prop-validators';\nimport { defaultCardSpec, getSpecificCardSpec } from '../utility/card-utils';\n\nconst STYLES = StyleSheet.create({\n logoWrapper: {\n height: '100%',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n dropdown: {\n padding: 0,\n textIndent: 12,\n boxSizing: 'content-box',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n appearance: 'none',\n '@-moz-document url-prefix()': {\n textIndent: 2.5,\n },\n '::-ms-expand': { display: 'none' },\n },\n arrow: {\n position: 'absolute',\n right: 10,\n top: 20,\n cursor: 'default',\n pointerEvents: 'none',\n },\n logo: {\n display: 'inline-block',\n marginTop: 12,\n marginRight: 2,\n },\n errorMessage: {\n WebkitTransition: 'all 0.25s ease-in-out',\n MozTransition: 'all 0.25s ease-in-out',\n msTransition: 'all 0.25s ease-in-out',\n OTransition: 'all 0.25s ease-in-out',\n transition: 'all 0.25s ease-in-out',\n marginRight: -2,\n color: 'rgb(0, 0, 0)',\n },\n errorStylesSelect: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n});\n\nclass CardType extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n cardTypeErrorMessage: '',\n showIsRequiredError: false,\n cardTypeIndex: Object.keys(this.props.cardSpecs.cardTypes)\n .map((type) => this.props.cardSpecs.cardTypes[type])\n .findIndex((card) => card.type === this.props.cardType),\n };\n }\n\n /*\n * Format card typepes into array\n */\n formatCardTypes = (cardTypes = {}) => {\n return Object.keys(cardTypes).map((cardType) => cardTypes[cardType]) || [];\n };\n\n /*\n * Handle card type change\n */\n handleChange = (index) => {\n const {\n cardSpecs: { cardTypes = {} },\n } = this.props;\n let cardType = this.formatCardTypes(cardTypes)[index];\n this.setState({ cardTypeIndex: index });\n this.props.changeCardType(cardType);\n };\n\n getCardTypeOptions = (cardTypes) => {\n return this.formatCardTypes(cardTypes).map((item) => {\n return {\n primaryText: item.name,\n };\n });\n };\n\n render() {\n const {\n country,\n cardSpecs: { cardTypes = {} },\n errorMessage,\n } = this.props;\n let { cardTypeErrorMessage } = this.state;\n let errorMessageClassNames = classNames(css(STYLES.errorMessage), {\n 'vx_form-control-message': errorMessage || cardTypeErrorMessage,\n });\n let errorStyles = {\n height: 0,\n padding: 0,\n };\n if (errorMessage || cardTypeErrorMessage) {\n errorStyles = { height: '100%' };\n }\n\n // Removing card type 'SWITCH' for GB\n if (country === 'GB') {\n delete cardTypes.SWITCH;\n }\n\n return (\n
\n
\n \n
\n
\n );\n }\n}\n\nCardType.propTypes = {\n changeCardType: PropTypes.func.isRequired,\n};\n\nexport { defaultCardSpec };\nexport default CardType;\n","/**\n * Card number input used for adding a card\n *\n * Dependent on getCardSpecs() from https://github.paypal.com/ConsumerWeb-Modules/consumerweb-card/blob/master/lib/card-config.js,\n * but you could just supply an object of specifications similar to what getCardSpecs returns.\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { StyleSheet, css } from 'aphrodite';\nimport { TextInput } from '@paypalcorp/pp-react';\n\nconst STYLES = {\n logoWrapper: {\n height: '100%',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n\n dropdown: {\n padding: 0,\n textIndent: 10,\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n appearance: 'none',\n },\n\n arrow: {\n position: 'absolute',\n right: 10,\n top: 20,\n cursor: 'default',\n },\n\n logo: {\n display: 'inline-block',\n marginTop: 12,\n marginRight: 2,\n },\n\n errorMessage: {\n WebkitTransition: 'all 0.25s ease-in-out',\n MozTransition: 'all 0.25s ease-in-out',\n msTransition: 'all 0.25s ease-in-out',\n OTransition: 'all 0.25s ease-in-out',\n transition: 'all 0.25s ease-in-out',\n },\n};\n\nclass IssueNumber extends React.Component {\n constructor() {\n super();\n this.state = {\n issueNumber: '',\n };\n }\n\n handleChange = (value) => {\n this.setState({ issueNumber: value });\n this.props.handleChange(value);\n return value;\n };\n\n handleFocus = () => {\n this.props.handleFocus();\n };\n\n /**\n * Check for a issue number value\n * If the field is required, we should show that this field needs a value\n * @param {String} issueNumber - the csc\n */\n handleCheckForValue(issueNumber) {\n const cscSpecs = this.props.cardSpec.fields.csc;\n const isRequired = cscSpecs.required;\n this.setState({ showIsRequiredError: isRequired && !issueNumber });\n }\n\n handleBlur = (issueNumber) => {\n this.handleCheckForValue(issueNumber);\n this.props.handleBlur(issueNumber);\n };\n\n render() {\n const issueNumberSpecs = this.props.cardSpec.fields.issueNumber;\n\n let { errorMessage } = this.props;\n let errorStyles = {\n height: 0,\n padding: 0,\n };\n if (errorMessage) {\n errorStyles = { height: '100%' };\n }\n\n return (\n
\n {\n // \n }\n \n this.handleChange(event.target.value)}\n onFocus={(event) => this.handleFocus(event.target.value)}\n onBlur={(event) => this.handleBlur(event.target.value)}\n errorText={errorMessage}\n />\n
\n \n );\n }\n}\n\nIssueNumber.propTypes = {\n handleChange: PropTypes.func.isRequired,\n};\n\nexport default IssueNumber;\n","/**\n * Start date used for adding a card\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { cardSpecPropType } from 'prop-validators';\nimport { getFormattedExpirationDate } from './date-utils';\n\nconst STYLES = {\n logoWrapper: {\n height: '100%',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n dropdown: {\n padding: 0,\n textIndent: 10,\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n appearance: 'none',\n height: 42,\n },\n dropdownLeft: {\n borderRadius: '5px 0px 0px 5px',\n borderRight: 0,\n },\n dropdownRight: {\n borderRadius: '0px 5px 5px 0px',\n },\n arrow: {\n position: 'absolute',\n right: 10,\n top: 20,\n cursor: 'default',\n },\n logo: {\n display: 'inline-block',\n marginTop: 12,\n marginRight: 2,\n },\n errorMessage: {\n WebkitTransition: 'all 0.25s ease-in-out',\n MozTransition: 'all 0.25s ease-in-out',\n msTransition: 'all 0.25s ease-in-out',\n OTransition: 'all 0.25s ease-in-out',\n transition: 'all 0.25s ease-in-out',\n width: '200%',\n },\n};\n\nclass StartDate extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showIsRequiredError: false,\n lastCharacterIsSlash: false,\n startMonth: '',\n startYear: '',\n allMonths: this.getAllMonths(),\n allYears: this.getEligibleYears(),\n // startMonth: this.props.startMonth,\n // startYear: this.props.startYear,\n };\n }\n\n getAllMonths() {\n return [...Array(12)].map((_, i) => {\n let month = (i + 1).toString();\n if (month.length === 1) {\n return '0' + month;\n }\n return month;\n });\n }\n\n getEligibleYears() {\n const currentYear = new Date().getFullYear();\n return [...Array(10)].map((_, i) => currentYear - i);\n }\n\n /**\n * Handle changing start month\n * @return {String} month - the formatted month\n */\n handleMonthChange = (event) => {\n const month = event.target.value;\n this.setState({ startMonth: month });\n this.props.handleChange({\n startMonth: month,\n startYear: this.state.startYear,\n });\n return month;\n };\n\n /**\n * Handle changing start year\n * Use the getFormattedExpirationDate util to format the date\n * @return {String} start - the formatted year\n */\n handleYearChange = (event) => {\n let year = event.target.value;\n this.setState({ startYear: year });\n this.props.handleChange({\n startMonth: this.state.startMonth,\n startYear: year,\n });\n return year;\n };\n\n render() {\n let { errorMessage } = this.props;\n let errorStyles = {\n height: 0,\n padding: 0,\n };\n if (errorMessage) {\n errorStyles = { height: '100%' };\n }\n return (\n
\n {\n // Starts\n }\n
\n \n
\n \n \n {this.state.allMonths.map((item) => (\n \n ))}\n \n \n \n {errorMessage}\n
\n
\n
\n \n
\n \n \n {this.state.allYears.map((item) => (\n \n ))}\n \n \n
\n \n \n \n );\n }\n}\n\nStartDate.propTypes = {\n cardSpec: cardSpecPropType,\n label: PropTypes.string,\n helpText: PropTypes.string,\n errorMessage: PropTypes.string,\n handleChange: PropTypes.func,\n dir: PropTypes.string,\n};\n\nexport default StartDate;\n","/**\n * Expiry date used for adding a card\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { TextInput } from '@paypalcorp/pp-react';\n\nimport { cardSpecPropType } from 'prop-validators';\nimport { getFormattedExpirationDate } from './date-utils';\nimport { getCountryInfo } from '../utility/localizer';\n\nconst STYLES = {\n errorMessage: {\n WebkitTransition: 'all 0.25s ease-in-out',\n MozTransition: 'all 0.25s ease-in-out',\n msTransition: 'all 0.25s ease-in-out',\n OTransition: 'all 0.25s ease-in-out',\n transition: 'all 0.25s ease-in-out',\n },\n dobWrapper: {\n margin: '10px 0 0',\n },\n};\nclass DateOfBirth extends React.Component {\n constructor() {\n super();\n this.state = {\n showIsRequiredError: false,\n showIsInvalidError: false,\n inValidDate: false,\n lastCharacterIsSlash: false,\n dateOfBirth: '',\n };\n }\n\n /**\n * Check for a date value\n * If the field is required, we should show that this field needs a value\n * @param {String} date - dateOfBirth\n */\n handleCheckForValue(date) {\n let inValid = this.state.inValidDate;\n this.setState({\n showIsRequiredError: !date,\n showIsInvalidError: date && inValid,\n });\n }\n\n /**\n * Handle changing dateofbirth\n * @param {String} date - dateOfBirth date\n * @return {String} date - the formatted date\n */\n handleChange = (dob) => {\n let dateOfBirth = '';\n let flatDate = dob.replace(/\\D+/g, '').slice(0, 8);\n const pattern = getCountryInfo(this.props.country).DOBPattern;\n\n let j = 0;\n for (let i = 0; i < flatDate.length; i++) {\n if (pattern[j] === '/') {\n dateOfBirth += '/';\n j++;\n }\n\n dateOfBirth += flatDate[i];\n j++;\n }\n\n this.setState({ dateOfBirth: dateOfBirth });\n this.validateDateOfBirth(dateOfBirth);\n\n return dateOfBirth;\n };\n\n validateDateOfBirth(dateOfBirth) {\n const DOBPattern = getCountryInfo(this.props.country).DOBPattern;\n const dobDateCard = dateOfBirth.split('/');\n const patternsCard = DOBPattern.split('/');\n const yyyy = dobDateCard[patternsCard.indexOf('YYYY')];\n const currentYear = new Date().getFullYear().toString();\n\n if (dateOfBirth.length === DOBPattern.length && currentYear > yyyy) {\n this.setState({ inValidDate: false });\n this.props.handleChange(dateOfBirth);\n } else {\n this.setState({ inValidDate: true });\n }\n }\n\n /**\n * Call parent's handleFocus\n * @param {String} date - expiry date\n */\n handleFocus = (date) => {\n this.props.handleFocus(date);\n };\n\n /**\n * Check for a date value and call parent's handleBlur\n * @param {String} date - dateOfBirth\n */\n handleBlur = (date) => {\n this.handleCheckForValue(date);\n this.props.handleBlur(date);\n };\n\n render() {\n const expirySpecs = this.props.cardSpec.fields.expirationDate;\n let { errorMessage, showValidationErrors } = this.props;\n let errorStyles = {\n height: 0,\n padding: 0,\n };\n if (errorMessage) {\n errorStyles = { height: '100%' };\n }\n return (\n \n {\n // \n }\n this.handleChange(event.target.value)}\n onFocus={(event) => this.handleFocus(event.target.value)}\n onBlur={(event) => this.handleBlur(event.target.value)}\n errorText={errorMessage}\n />\n \n );\n }\n}\n\nDateOfBirth.propTypes = {\n cardSpec: cardSpecPropType,\n label: PropTypes.string,\n placeholder: PropTypes.string,\n errorMessage: PropTypes.string,\n handleChange: PropTypes.func,\n handleFocus: PropTypes.func,\n handleBlur: PropTypes.func,\n dir: PropTypes.string,\n};\n\nDateOfBirth.defaultProps = {\n handleFocus: () => {},\n handleBlur: () => {},\n};\n\nexport default DateOfBirth;\n","/**\n * Guest Payment component\n * react-card-number\n * react-expiry-date'\n * react-card-security-code\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as FPT from '../utility/fpt';\nimport CardNumber from '../react-card-number';\nimport ExpiryCreditCard from '../react-expiry-date';\nimport CardSecurityCode from '../react-card-security-code';\nimport CardType from '../components/card-type';\nimport IssueNumber from '../components/issue-number';\nimport StartDate from '../components/start-date';\nimport DateOfBirth from '../components/date-of-birth';\n\nimport { defaultCardSpec } from '../utility/card-utils';\nimport _each from 'lodash/each';\nimport * as AppActions from '../actions/AppActions';\n\nclass PaymentComponent extends React.Component {\n constructor() {\n super();\n this.state = {\n cardSpec: defaultCardSpec,\n cardType: '',\n cardnumber: '',\n expiration: '',\n csc: '',\n\n errorMessageCardNumber: '',\n errorMessageExp: '',\n errMessageCSC: '',\n resetPayment: true,\n };\n }\n\n componentDidMount() {\n this.props.onRef(this);\n }\n\n componentWillUnmount() {\n this.props.onRef(undefined);\n }\n\n /*\n * Handle card type change\n */\n handleChangeCardType(spec, cardType) {\n this.setState({\n cardSpec: spec,\n type: spec.type,\n errorMessageCardType: '',\n });\n AppActions.changeCardSpec({ spec });\n this.resetPaymentInfo();\n // Waiting - so spec should be set properly\n setTimeout(() => this.handlePaymentInfo('type', spec.type), 100);\n }\n\n /*\n * Resetting payment info on card type change\n */\n resetPaymentInfo() {\n this.setState({ resetPayment: false });\n\n setTimeout(() => {\n this.setState({ resetPayment: true });\n this.resetAllCardFields();\n }, 1);\n }\n\n resetAllCardFields() {\n const { cardSpec = {} } = this.state;\n const { ccNumber, csc, expirationDate, startDate, issueNumber, dob } =\n cardSpec.fields || {};\n\n // Create an array of fields to reset\n const fieldsToReset = [];\n\n if (ccNumber) {\n fieldsToReset.push('number');\n }\n\n if (csc) {\n fieldsToReset.push('securityCode');\n }\n\n if (expirationDate) {\n fieldsToReset.push('expiration');\n }\n\n if (startDate) {\n fieldsToReset.push('startDate');\n }\n\n if (issueNumber) {\n fieldsToReset.push('issueNumbe');\n }\n\n if (dob) {\n fieldsToReset.push('dateOfBirth');\n }\n // Create an object with the field values set to ''(empty)\n const newState = {};\n _each(fieldsToReset, (key) => {\n newState[key] = '';\n });\n\n this.setState(newState, () => {\n this.handlePaymentInfo('', '');\n });\n }\n\n /*\n * Handle card number change\n */\n handleChangeCardNumber(cardnumber, cardSpec, fieldName) {\n let cardType = cardSpec.type === 'card' ? this.state.type : cardSpec.type;\n\n this.setState({\n number: cardnumber,\n cardSpec: cardSpec,\n type: cardType,\n [fieldName]: '',\n });\n AppActions.changeCardSpec({ cardSpec });\n this.handlePaymentInfo('number', cardnumber);\n }\n\n /*\n * Handle expiration date change\n */\n handleChangeDate(expiration, fieldName) {\n this.setState({ expiration: expiration, [fieldName]: '' });\n this.handlePaymentInfo('expiration', expiration);\n }\n\n /*\n * Handle security code change\n */\n handleChangeSecurityCode(securityCode, fieldName) {\n this.setState({ securityCode: securityCode, [fieldName]: '' });\n this.handlePaymentInfo('securityCode', securityCode);\n }\n\n /*\n * Handle issue number change\n */\n handleChangeIssueNumber(issueNumber, fieldName) {\n this.setState({ issueNumber: issueNumber, [fieldName]: '' });\n this.handlePaymentInfo('issueNumber', issueNumber);\n }\n\n /*\n * Handle start date change\n */\n handleChangeStartDate(startDate, fieldName) {\n this.setState({ startDate: startDate, [fieldName]: '' });\n this.handlePaymentInfo('startDate', startDate);\n }\n\n /*\n * Handle date of birth change\n */\n handleDateOfBirth(dateOfBirth, fieldName) {\n this.setState({ dateOfBirth: dateOfBirth, [fieldName]: '' });\n this.handlePaymentInfo('dateOfBirth', dateOfBirth);\n }\n\n /*\n * Handle payment information\n */\n handlePaymentInfo(name, value) {\n const {\n cardSpecs: { autodetect = false },\n } = this.props;\n let { cardSpec = {}, finalPropOut = {} } = this.state;\n let { ccNumber, csc, expirationDate, startDate, issueNumber, dob } =\n cardSpec.fields || {};\n\n if (!autodetect) {\n finalPropOut.type = this.state.type;\n }\n\n if (ccNumber) {\n finalPropOut.number = this.state.number;\n }\n\n if (csc) {\n finalPropOut.securityCode = this.state.securityCode;\n }\n\n if (expirationDate) {\n finalPropOut.expiration = this.state.expiration;\n }\n\n if (startDate) {\n finalPropOut.startDate = this.state.startDate;\n }\n\n if (issueNumber) {\n finalPropOut.issueNumber = this.state.issueNumber;\n }\n\n if (dob) {\n finalPropOut.dateOfBirth = this.state.dateOfBirth;\n }\n\n // overriding with new value\n if (name) {\n finalPropOut[name] = value;\n }\n\n this.props.changePaymentInfo(finalPropOut);\n }\n\n /*\n * Validate input\n */\n validateInputValue(value, fieldName, fieldInvalid) {\n let { errorMessages } = this.props;\n let {\n cardSpec: {\n fields: { ccNumber = {}, expirationDate = {}, csc = {} },\n },\n } = this.state;\n const errorMessage = errorMessages[fieldInvalid];\n\n if (fieldName === 'errorMessageCardNumber') {\n let rexCard = new RegExp(`^(${ccNumber.pattern})$`);\n\n if (!rexCard.test(value)) {\n FPT.trackFieldError(fieldName, fieldInvalid, errorMessage);\n return errorMessage;\n }\n }\n\n if (fieldName === 'errorMessageExpiry') {\n let rexExp = new RegExp(`^(${expirationDate.pattern})$`);\n if (!rexExp.test(value)) {\n FPT.trackFieldError(fieldName, fieldInvalid, errorMessage);\n return errorMessage;\n }\n }\n\n if (fieldName === 'errorMessageCSC') {\n let cscLen = value && value.length;\n let cscMax = csc.maxlength;\n let cscMin = csc.minlength || cscMax;\n\n if (!(cscLen >= cscMin && cscLen <= cscMax)) {\n FPT.trackFieldError(fieldName, fieldInvalid, errorMessage);\n return errorMessage;\n }\n }\n\n return '';\n }\n\n /*\n * Handle error message for selected field\n */\n handleFieldBlur(value, fieldName, fieldRequired, fieldInvalid) {\n let { errorMessages, newErrorState = {} } = this.props;\n\n if (value) {\n newErrorState = {\n [fieldName]: this.validateInputValue(value, fieldName, fieldInvalid),\n };\n } else {\n const errorMessage = errorMessages[fieldRequired];\n FPT.trackFieldError(fieldName, fieldInvalid, errorMessage);\n newErrorState = { [fieldName]: errorMessages[fieldRequired] };\n }\n\n this.setState(newErrorState);\n }\n\n /*\n * Handling required payment form fields\n */\n handleRequiredFields(params) {\n const {\n errorMessages,\n cardSpecs: { autodetect = false },\n } = this.props;\n const { cardSpec = {}, finalPropOut = {} } = this.state;\n const { ccNumber, csc, expirationDate, startDate, issueNumber, dob } =\n cardSpec.fields || {};\n\n let isValid = true;\n let errorMessageCardType,\n errorMessageCardNumber,\n errorMessageExpiry,\n errorMessageCSC,\n errorMessageIssueNumber,\n errorMessageStartDate,\n errorMessageDateOfBirth;\n let keysToValidate = Object.keys(params);\n\n keysToValidate.forEach((key) => {\n let value = params[key];\n\n switch (key) {\n case 'type':\n if (!value && !autodetect) {\n isValid = false;\n errorMessageCardType = errorMessages.REQUIRED_CARD_TYPE;\n FPT.trackFieldError(\n 'cardType',\n 'REQUIRED_CARD_TYPE',\n errorMessageCardType\n );\n }\n break;\n case 'number':\n if (!value && ccNumber) {\n isValid = false;\n errorMessageCardNumber = errorMessages.REQUIRED_CARD_NUMBER;\n FPT.trackFieldError(\n 'cardnumber',\n 'REQUIRED_CARD_NUMBER',\n errorMessageCardNumber\n );\n }\n break;\n case 'expiration':\n if (!value && expirationDate) {\n isValid = false;\n errorMessageExpiry = errorMessages.REQUIRED_EXPIRY;\n FPT.trackFieldError(\n 'expiration',\n 'REQUIRED_EXPIRY',\n errorMessageExpiry\n );\n }\n break;\n case 'securityCode':\n if (!value && csc) {\n isValid = false;\n errorMessageCSC = errorMessages.REQUIRED_SECURITY_CODE;\n FPT.trackFieldError(\n 'csc',\n 'REQUIRED_SECURITY_CODE',\n errorMessageCSC\n );\n }\n break;\n case 'dateOfBirth':\n if (!value && dob) {\n isValid = false;\n errorMessageDateOfBirth = errorMessages.REQUIRED_DATE_OF_BIRTH;\n FPT.trackFieldError(\n 'dateOfBirth',\n 'REQUIRED_DATE_OF_BIRTH',\n errorMessageDateOfBirth\n );\n }\n break;\n case 'startDate':\n if (!value && startDate) {\n isValid = false;\n errorMessageStartDate = errorMessages.REQUIRED_START_DATE;\n FPT.trackFieldError(\n 'startDate',\n 'REQUIRED_START_DATE',\n errorMessageStartDate\n );\n }\n break;\n case 'issueNumber':\n if (!value && issueNumber) {\n isValid = false;\n errorMessageIssueNumber = errorMessages.REQUIRED_ISSUER_NUMBER;\n FPT.trackFieldError(\n 'email',\n 'REQUIRED_ISSUER_NUMBER',\n errorMessageIssueNumber\n );\n }\n break;\n default:\n break;\n }\n });\n\n if (!isValid) {\n this.setState({\n errorMessageCardType: errorMessageCardType,\n errorMessageCardNumber: errorMessageCardNumber,\n errorMessageExpiry: errorMessageExpiry,\n errorMessageCSC: errorMessageCSC,\n errorMessageDateOfBirth: errorMessageDateOfBirth,\n errorMessageStartDate: errorMessageStartDate,\n errorMessageIssueNumber: errorMessageIssueNumber,\n });\n }\n return isValid;\n }\n\n handleCardNumberError(key) {\n const { errorMessages } = this.props;\n let errorMessageCardNumber = errorMessages[key];\n this.setState({ errorMessageCardNumber: errorMessageCardNumber });\n FPT.trackFieldError('cardNumber', key, errorMessageCardNumber);\n }\n\n /*\n * Handle security code error\n */\n handleSecurityCodeError(key) {\n const { errorMessages } = this.props;\n const errorMessageCSC = errorMessages[key];\n this.setState({ errorMessageCSC });\n FPT.trackFieldError('securityCode', key, errorMessageCSC);\n }\n\n /*\n * Handle expiration code error\n */\n handleExpirationError(key) {\n const { errorMessages } = this.props;\n const errorMessageExpiry = errorMessages[key];\n this.setState({ errorMessageExpiry });\n FPT.trackFieldError('expiration', key, errorMessageExpiry);\n }\n\n render() {\n const {\n guestMessages: {\n help: { expiration: expirationHelp },\n label: guestLabel,\n placeholder: guestPlaceholder,\n },\n cardSpecs: { autodetect = false },\n } = this.props;\n const {\n cardType: cardTypePlaceholder,\n startDate: startDatePlaceholder,\n dateOfBirth: dateOfBirthPlaceholder,\n issueNumber: issueNumberPlaceholder,\n } = guestPlaceholder || {};\n const {\n cardType: cardTypeLabel,\n cardnumber: cardnumberLabel,\n csc: cscLabel,\n cscplaceholder,\n expiration: expirationLabel,\n issueNumber: issueNumberLabel,\n startDate: startDateLabel,\n startDateMonthLabel,\n startDateYearLabel,\n dateOfBirth: dateOfBirthLabel,\n } = guestLabel || {};\n\n let {\n cardSpec: {\n fields: { ccNumber, csc, dob, expirationDate, issueNumber, startDate },\n },\n } = this.state;\n\n return (\n
\n
\n {!autodetect && (\n
\n this.handleChangeCardType(value)}\n />\n
\n )}\n\n
\n {this.state.resetPayment && (\n \n this.handleChangeCardNumber(\n value,\n spec,\n 'errorMessageCardNumber'\n )\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageCardNumber',\n 'REQUIRED_CARD_NUMBER',\n 'INVALID_CARD_NUMBER'\n )\n }\n selectedCardSpec={this.state.cardSpec}\n cardSpecs={this.props.cardSpecs}\n />\n )}\n
\n
\n\n {this.state.resetPayment && (\n
\n
\n {expirationDate && (\n
\n {\n \n this.handleChangeDate(value, 'errorMessageExpiry')\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageExpiry',\n 'REQUIRED_EXPIRY',\n 'INVALID_EXPIRY'\n )\n }\n cardSpec={this.state.cardSpec}\n />\n }\n
\n )}\n\n {csc && (\n
\n \n this.handleChangeSecurityCode(value, 'errorMessageCSC')\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageCSC',\n 'REQUIRED_SECURITY_CODE',\n 'INVALID_SECURITY_CODE'\n )\n }\n cardSpec={this.state.cardSpec}\n />\n
\n )}\n\n {startDate && (\n
\n \n this.handleChangeStartDate(value, 'errorMessageStartDate')\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageStartDate',\n 'REQUIRED_START_DATE',\n 'INVALID_START_DATE'\n )\n }\n cardSpec={this.state.cardSpec}\n />\n
\n )}\n\n {issueNumber && (\n
\n \n this.handleChangeIssueNumber(\n value,\n 'errorMessageIssueNumber'\n )\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageIssueNumber',\n 'REQUIRED_ISSUER_NUMBER',\n 'INVALID_ISSUER_NUMBER'\n )\n }\n cardSpec={this.state.cardSpec}\n />\n
\n )}\n
\n {dob && (\n
\n
\n \n this.handleDateOfBirth(value, 'errorMessageDateOfBirth')\n }\n handleBlur={(value) =>\n this.handleFieldBlur(\n value,\n 'errorMessageDateOfBirth',\n 'REQUIRED_DATE_OF_BIRTH',\n 'INVALID_DATE_OF_BIRTH'\n )\n }\n cardSpec={this.state.cardSpec}\n />\n
\n
\n )}\n
\n )}\n
\n );\n }\n}\n\nPaymentComponent.propTypes = {\n changePaymentInfo: PropTypes.func.isRequired,\n};\n\nexport default PaymentComponent;\n","/**\n * This component is a fork of react-phone-number.\n * `react-phone-number` uses a google library for formatting which has been removed from this fork.\n * This component uses a `formator` prop which does the formatting.\n *\n *\n * Phone component used to get the user's phone number\n * - utilizes Google's libphonenumber for phone formatting (https://github.com/seegno/google-libphonenumber)\n * - used with account creation and can be a hidden input\n */\n\nimport PropTypes from 'prop-types';\n\nimport React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\n\nclass PhoneNumber extends React.Component {\n static propTypes = {\n type: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n exampleNumber: PropTypes.string.isRequired,\n phoneCode: PropTypes.string,\n formator: PropTypes.func,\n country: PropTypes.string.isRequired,\n pattern: PropTypes.string,\n maxlength: PropTypes.number,\n required: PropTypes.bool,\n value: PropTypes.string,\n changePhone: PropTypes.func.isRequired,\n errorMessage: PropTypes.string,\n handleBlur: PropTypes.func,\n };\n\n static defaultProps = {\n type: 'tel',\n handleBlur: () => {},\n };\n\n state = {\n showIsRequiredError: false,\n };\n\n /**\n * Get the formatted phone number using Google's libphonenumber\n * libphonenumber throws an error if the number provided is only 1 character long\n * @param {String} phone - the phone number\n * @return {String} phone - the formatted phone number\n */\n getFormattedPhoneNumber = (phone = '') => {\n let { phoneCode } = this.props;\n\n let phoneNumber = phone;\n\n if (this.props.formator) {\n phoneNumber = this.props.formator(phoneCode, phoneNumber);\n }\n\n return phoneNumber;\n };\n\n /**\n * Check for a phoneNumber value\n * If the field is required, we should show that this field needs a value\n * @param {String} phoneNumber - the card number\n */\n handleCheckForValue = (phoneNumber) => {\n const isRequired = this.props.required;\n this.setState({ showIsRequiredError: isRequired && !phoneNumber });\n };\n\n /**\n * Handle changing the phone number\n * Remove non-digits from the phone and pass it to Griffin to format it\n * @param {String} phone - the phone number\n * @return {String} phone - the formatted phone number\n */\n handleChangePhone = (phone, mssg_error) => {\n phone = phone.replace(/\\D/g, ''); // remove non-digits for when the griffin formatting kicks in\n this.handleCheckForValue(phone);\n this.props.changePhone(phone, mssg_error);\n return this.getFormattedPhoneNumber(phone);\n };\n\n /**\n * Check for a security code value and call parent's handleBlur\n * @param {String} phoneNumber - the card number\n */\n handleBlur = (phoneNumber) => {\n phoneNumber = phoneNumber.replace(/\\D/g, '');\n this.handleCheckForValue(phoneNumber);\n this.props.handleBlur(phoneNumber, this.props.phoneCode);\n };\n\n render() {\n let initialValue = this.getFormattedPhoneNumber(this.props.value);\n let { errorMessage } = this.props;\n\n return (\n
\n {this.props.type !== 'hidden' && (\n this.handleBlur(event.target.value)}\n onChange={(event) =>\n this.handleChangePhone(\n event.target.value,\n 'errMessagePhoneNumber'\n )\n }\n errorText={errorMessage}\n />\n )}\n
\n );\n }\n}\n\nexport default PhoneNumber;\n","/**\n * Card number input used for adding a card\n *\n * Dependent on getCardSpecs() from https://github.paypal.com/ConsumerWeb-Modules/consumerweb-card/blob/master/lib/card-config.js,\n * but you could just supply an object of specifications similar to what getCardSpecs returns.\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { DropdownMenu } from '@paypalcorp/pp-react';\n\nclass PhoneType extends React.Component {\n constructor(props) {\n super();\n this.state = {\n selectedIdx: 0,\n phoneTypeErrorMessage: '',\n showIsRequiredError: false,\n };\n }\n\n handleChange = (index) => {\n this.setState({ selectedIdx: index });\n const phoneTypes = [\n { value: 'Mobile' },\n { value: 'Home' },\n { value: 'Work' },\n ];\n let value = phoneTypes[index].value;\n this.props.changePhoneType(value);\n };\n\n getPhoneTypeOptions = () => {\n return [\n { primaryText: this.props.guestLabels.phoneTypeMobile },\n { primaryText: this.props.guestLabels.phoneTypeHome },\n { primaryText: this.props.guestLabels.phoneTypeWork },\n ];\n };\n\n render() {\n const { errorMessage } = this.props;\n let { phoneTypeErrorMessage } = this.state;\n\n return (\n
\n \n
\n );\n }\n}\n\nPhoneType.propTypes = {\n changePhoneType: PropTypes.func.isRequired,\n errorMessage: PropTypes.string,\n guestLabels: PropTypes.object,\n};\n\nexport default PhoneType;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { DropdownMenu } from '@paypalcorp/pp-react';\n\nclass PhoneCountryCode extends React.Component {\n constructor(props) {\n super();\n const { defaultNumber: { countryCode } = {} } = props;\n this.state = {\n countryCode: countryCode,\n phoneTypeErrorMessage: '',\n showIsRequiredError: false,\n selectedItemIdx: -1,\n };\n }\n\n handleChange = (index) => {\n let value =\n index >= 0\n ? this.props.supportedCountries[index].phoneCode\n : this.state.countryCode;\n this.setState({ countryCode: value, selectedItemIdx: index });\n this.props.changeCountryCode(value);\n };\n\n render() {\n const { errorMessage, label, supportedCountries } = this.props;\n let { countryCodeErrorMessage } = this.state;\n\n return (\n \n
\n ({\n primaryText: `${item.phoneCode} (${item.countryCode})`,\n }))}\n onSelection={this.handleChange}\n errorText={errorMessage || countryCodeErrorMessage}\n selectedItemIndex={this.state.selectedItemIdx}\n />\n
\n \n );\n }\n}\n\nPhoneCountryCode.propTypes = {\n changeCountryCode: PropTypes.func.isRequired,\n errorMessage: PropTypes.string,\n guestLabels: PropTypes.object,\n label: PropTypes.string,\n supportedCountries: PropTypes.array,\n};\n\nexport default PhoneCountryCode;\n","/**\n * Guest Phone component\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as FPT from '../utility/fpt';\nimport { StyleSheet, css } from 'aphrodite';\nimport PhoneNumber from '../components/PhoneNumber';\nimport PhoneType from '../components/phone-type';\nimport PhoneCountryCode from '../components/phone-country-code';\nimport { getCountryInfo } from '../utility/localizer';\nimport { formatPhone, validatePhone } from '../utility/formator';\nimport _get from 'lodash/get';\n\nclass PhoneComponent extends React.Component {\n static propTypes = {\n handlePhoneInfo: PropTypes.func.isRequired,\n initialData: PropTypes.object,\n errorMessages: PropTypes.object,\n phoneNumberCountryCode: PropTypes.string,\n selectedCountry: PropTypes.string,\n isRequired: PropTypes.bool,\n examplePhoneNumbers: PropTypes.object,\n guestLabels: PropTypes.object,\n onRef: PropTypes.func,\n };\n\n constructor(props, context) {\n super(props, context);\n\n const {\n selectedCountry,\n phoneNumberCountryCode,\n phoneNumberPatternDesc = {},\n senderDetails = {},\n } = props;\n\n const { maxLength = 10 } = phoneNumberPatternDesc.NATIONAL || {};\n const { phone_number = '' } = senderDetails.phone || {};\n const showCountryCode =\n getCountryInfo(selectedCountry).showPhoneCountryCode;\n\n this.state = {\n phoneNumberCountryCode,\n maxlength: parseInt(maxLength, 10),\n examplePhoneNumber: this.getExamplePhoneNumber('Mobile'), // Default format is mobile\n errMessagePhoneNumber: '',\n errMessagePhoneType: '',\n errMessagePhoneCountryCode: '',\n phone: phone_number,\n showCountryCode,\n };\n }\n\n componentDidMount() {\n this.props.onRef(this);\n }\n\n componentWillUnmount() {\n this.props.onRef(undefined);\n }\n\n getExamplePhoneNumber = (phoneType) => {\n const generalPhoneNumber = _get(this.props.examplePhoneNumbers, 'GENERAL');\n switch (phoneType) {\n case 'Home':\n return _get(\n this.props.examplePhoneNumbers,\n 'FIXED_LINE',\n generalPhoneNumber\n );\n break;\n case 'Mobile':\n return _get(\n this.props.examplePhoneNumbers,\n 'MOBILE',\n generalPhoneNumber\n );\n break;\n case 'Work':\n return _get(\n this.props.examplePhoneNumbers,\n 'FIXED_LINE_OR_MOBILE',\n generalPhoneNumber\n );\n break;\n default:\n return generalPhoneNumber;\n }\n };\n\n /*\n * Handle phone number blur\n */\n handlePhoneBlur = (phone, phoneCountryCode) => {\n if (!phone) {\n const { REQUIRED_PHONE_NUMBER = '' } = this.props.errorMessages;\n this.setState({ errMessagePhoneNumber: REQUIRED_PHONE_NUMBER });\n FPT.trackFieldError(\n 'phonenumber',\n 'REQUIRED_PHONE_NUMBER',\n REQUIRED_PHONE_NUMBER\n );\n return;\n }\n\n const phoneDigits = phone;\n const isPhoneNumberValid = validatePhone(phoneCountryCode, phone);\n if (!isPhoneNumberValid) {\n const { INVALID_PHONE_NUMBER = '' } = this.props.errorMessages;\n this.setState({ errMessagePhoneNumber: INVALID_PHONE_NUMBER });\n FPT.trackFieldError(\n 'phonenumber',\n 'INVALID_PHONE_NUMBER',\n INVALID_PHONE_NUMBER\n );\n return;\n }\n };\n\n /*\n * Handle phone number change\n */\n handlePhoneNumber = (phoneNumber, mssg_error) => {\n this.setState({ phoneNumber: phoneNumber, [mssg_error]: '' });\n this.handlePhoneInfo(\n this.state.phoneType,\n phoneNumber,\n this.state.countryCode\n );\n };\n\n /*\n * Handle phone type change\n */\n handlePhoneType = (phoneType) => {\n this.setState({\n phoneType: phoneType,\n errMessagePhoneType: '',\n examplePhoneNumber: this.getExamplePhoneNumber(phoneType),\n });\n this.handlePhoneInfo(\n phoneType,\n this.state.phoneNumber,\n this.state.countryCode\n );\n };\n\n /*\n * Handle phone country code change\n */\n handleCountryCode = (countryCode) => {\n this.setState({ countryCode: countryCode, errMessagePhoneCountryCode: '' });\n this.handlePhoneInfo(\n this.state.phoneType,\n this.state.phoneNumber,\n countryCode\n );\n };\n\n /*\n * Handle phone information\n */\n handlePhoneInfo = (type = 'Mobile', number) => {\n const { phoneNumberCountryCode } = this.props;\n this.props.handlePhoneInfo({\n type: type,\n number: number,\n countryCode: phoneNumberCountryCode,\n });\n };\n\n /*\n * Handling required payment form fields\n */\n handleRequiredFields = (params) => {\n const { errorMessages } = this.props;\n let isValid = true;\n let errMessagePhoneType, errMessagePhoneNumber, errMessagePhoneCountryCode;\n let keysToValidate = Object.keys(params);\n\n keysToValidate.forEach((key) => {\n let value = params[key];\n\n switch (key) {\n case 'number':\n if (!value) {\n isValid = false;\n errMessagePhoneNumber = errorMessages.REQUIRED_PHONE_NUMBER;\n FPT.trackFieldError(\n 'phonenumber',\n 'REQUIRED_PHONE_NUMBER',\n errMessagePhoneNumber\n );\n }\n break;\n case 'countryCode':\n if (!value) {\n isValid = false;\n errMessagePhoneCountryCode =\n errorMessages.REQUIRED_PHONE_COUNTRY_CODE;\n FPT.trackFieldError(\n 'countryCode',\n 'REQUIRED_PHONE_COUNTRY_CODE',\n errMessagePhoneCountryCode\n );\n }\n break;\n default:\n break;\n }\n });\n\n if (!isValid) {\n this.setState({\n errMessagePhoneType,\n errMessagePhoneNumber,\n errMessagePhoneCountryCode,\n });\n }\n return isValid;\n };\n\n /*\n * Handle phone number error\n */\n handlePhoneError = (key) => {\n const { errorMessages } = this.props;\n let errMessagePhoneNumber = errorMessages[key];\n this.setState({ errMessagePhoneNumber: errMessagePhoneNumber });\n FPT.trackFieldError('phonenumber', key, errMessagePhoneNumber);\n };\n\n render() {\n const {\n guestLabels: {\n phone: phoneLabel,\n countryCode: countryCodeLabel,\n phoneType: phoneTypeLabel = '',\n } = {},\n defaultNumber = {},\n } = this.props || {};\n const { showCountryCode = false } = this.state;\n\n return (\n
\n \n \n
\n {showCountryCode && (\n
\n \n
\n )}\n \n \n \n \n );\n }\n}\n\nexport default PhoneComponent;\n","/**\n * Name component used to get the user's full name\n * - used with account creation\n * - depends on VX and the grid\n */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { TextInput } from '@paypalcorp/pp-react';\n\nclass Name extends React.Component {\n static propTypes = {\n\t\tfirstNameLabel: PropTypes.string.isRequired,\n\t\tlastNameLabel: PropTypes.string.isRequired,\n\t\trequired: PropTypes.bool,\n\t\tfirstNameDefaultValue: PropTypes.string,\n\t\tlastNameDefaultValue: PropTypes.string,\n\t\tfirstNameErrorMessage: PropTypes.string,\n\t\tlastNameErrorMessage: PropTypes.string,\n\t\thandleChangeFirstName: PropTypes.func.isRequired,\n\t\thandleChangeLastName: PropTypes.func.isRequired,\n\t\thandleBlurFirstName: PropTypes.func,\n\t\thandleBlurLastName: PropTypes.func,\n\t};\n\n static defaultProps = {\n handleBlurFirstName: () => {},\n handleBlurLastName: () => {},\n };\n\n state = {\n showFirstNameIsRequiredError: false,\n showLastNameIsRequiredError: false,\n };\n\n /**\n\t * Check for a first name value if it's required\n\t * @param {String} name - first name\n\t */\n handleCheckFirstNameValue = (name) => {\n\t\tthis.setState({ showFirstNameIsRequiredError: this.props.required && !name });\n\t};\n\n /**\n\t * Check for a last name value if it's required\n\t * @param {String} name - last name\n\t */\n handleCheckLastNameValue = (name) => {\n\t\tthis.setState({ showLastNameIsRequiredError: this.props.required && !name });\n\t};\n\n\thandleChangeFirstName = (firstName, mssg_error) => {\n\t\tthis.handleCheckFirstNameValue(firstName);\n\t\tthis.props.handleChangeFirstName(firstName, mssg_error);\n\t\treturn firstName;\n\t};\n\n handleChangeLastName = (lastName, mssg_error) => {\n\t\tthis.handleCheckLastNameValue(lastName);\n\t\tthis.props.handleChangeLastName(lastName, mssg_error);\n\t\treturn lastName;\n\t};\n\n handleBlurFirstName = (firstName) => {\n\t\tthis.handleCheckFirstNameValue(firstName);\n\t\tthis.props.handleBlurFirstName(firstName);\n\t};\n\n handleBlurLastName = (lastName) => {\n\t\tthis.handleCheckLastNameValue(lastName);\n\t\tthis.props.handleBlurLastName(lastName);\n\t};\n\n render() {\n\t\tlet { firstNameErrorMessage, lastNameErrorMessage } = this.props;\n\n\t\treturn (\n
\n\t\t\t\t
\n\t\t\t\t\t this.handleChangeFirstName(event.target.value, 'firstNameErrorMessage')}\n\t\t\t\t\t\tonBlur={(event) => this.handleBlurFirstName(event.target.value)}\n\t\t\t\t\t\terrorText={firstNameErrorMessage}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t this.handleChangeLastName(event.target.value, ('lastNameErrorMessage'))}\n\t\t\t\t\t\tonBlur={(event) => this.handleBlurLastName(event.target.value)}\n\t\t\t\t\t\terrorText={lastNameErrorMessage}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t
\n );\n\t}\n}\n\nexport default Name;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as FPT from '../utility/fpt';\nimport Name from '../guest-payment-components/Name';\n\nclass NameComponent extends React.Component {\n static propTypes = {\n changeNameInfo: PropTypes.func.isRequired,\n initialData: PropTypes.object,\n errorMessages: PropTypes.object,\n user: PropTypes.object,\n isRequired: PropTypes.bool,\n guestLabels: PropTypes.object,\n onRef: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n const { user: { firstName = '', lastName = '' } = {} } = props;\n this.state = { firstName: firstName, lastName: lastName };\n }\n\n componentDidMount() {\n this.props.onRef(this);\n }\n\n componentWillUnmount() {\n this.props.onRef(undefined);\n }\n\n /*\n * Handle firstname blur\n */\n handleBlurFirstName = (firstName) => {\n if (!firstName) {\n const { REQUIRED_FIRST_NAME = '' } = this.props.errorMessages;\n this.setState({ firstNameErrorMessage: REQUIRED_FIRST_NAME });\n FPT.trackFieldError(\n 'firstName',\n 'REQUIRED_FIRST_NAME',\n REQUIRED_FIRST_NAME\n );\n }\n };\n\n /*\n * Handle lastname blur\n */\n handleBlurLastName = (lastName) => {\n if (!lastName) {\n const { REQUIRED_LAST_NAME = '' } = this.props.errorMessages;\n this.setState({ lastNameErrorMessage: REQUIRED_LAST_NAME });\n FPT.trackFieldError('lastName', 'REQUIRED_LAST_NAME', REQUIRED_LAST_NAME);\n }\n };\n\n /*\n * Handle change first name\n */\n handleChangeFirstName = (firstName, mssg_error) => {\n this.setState({ firstName: firstName, [mssg_error]: '' });\n this.props.changeNameInfo(firstName, this.state.lastName);\n };\n\n /*\n * Handle change last name\n */\n handleChangeLastName = (lastName, mssg_error) => {\n this.setState({ lastName: lastName, [mssg_error]: '' });\n this.props.changeNameInfo(this.state.firstName, lastName);\n };\n\n /*\n * Handling required payment form fields\n */\n handleRequiredFields = (params) => {\n let isValid = true;\n const { errorMessages } = this.props;\n let firstNameErrorMessage, lastNameErrorMessage;\n let keysToValidate = Object.keys(params);\n\n keysToValidate.forEach((key) => {\n let value = params[key];\n switch (key) {\n case 'firstName':\n if (!value) {\n isValid = false;\n firstNameErrorMessage = errorMessages.REQUIRED_FIRST_NAME;\n FPT.trackFieldError(\n 'firstname',\n 'REQUIRED_FIRST_NAME',\n firstNameErrorMessage\n );\n }\n break;\n case 'lastName':\n if (!value) {\n isValid = false;\n lastNameErrorMessage = errorMessages.REQUIRED_LAST_NAME;\n FPT.trackFieldError(\n 'lastname',\n 'REQUIRED_LAST_NAME',\n lastNameErrorMessage\n );\n }\n break;\n default:\n break;\n }\n });\n this.setState({\n firstNameErrorMessage: firstNameErrorMessage,\n lastNameErrorMessage: lastNameErrorMessage,\n });\n return isValid;\n };\n\n /*\n * Handle first name error with any code\n */\n handleFirstNameError = (key) => {\n const { errorMessages } = this.props;\n this.setState({ firstNameErrorMessage: errorMessages[key] });\n FPT.trackFieldError('firstName', key, errorMessages[key]);\n };\n\n /*\n * Handle last name error with any code\n */\n handleLastNameError = (key) => {\n const { errorMessages } = this.props;\n this.setState({ lastNameErrorMessage: errorMessages[key] });\n FPT.trackFieldError('lastName', key, errorMessages[key]);\n };\n\n render() {\n return (\n
\n \n
\n );\n }\n}\n\nexport default NameComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { StyleSheet, css } from 'aphrodite';\nimport * as FPT from '../utility/fpt';\nimport { Checkbox, Icon, Link } from '@paypalcorp/pp-react';\n\nconst styles = StyleSheet.create({\n toolWrapper: {\n marginTop: '20px',\n position: 'relative',\n },\n toolCheckboxWrapper: {\n position: 'absolute',\n width: 'inherit',\n display: 'inline',\n },\n toolCheckbox: {\n ':before': {\n overflow: 'hidden',\n },\n },\n toolBlurb: {\n fontSize: '15px',\n lineHeight: '20px',\n marginLeft: '40px',\n fontFamily: 'pp-sans-small-regular',\n },\n toolTip: {\n position: 'relative',\n // display: 'none',\n maxWidth: '430px',\n margin: '7.5px auto 5px',\n },\n tipIcon: {\n color: '#005EA6',\n cursor: 'pointer',\n textDecoration: 'none',\n },\n toolTipTxt: {\n backgroundColor: '#e1e7eb',\n fontSize: '12px',\n lineHeight: '1.8',\n textAlign: 'left',\n borderRadius: '6px',\n padding: '5px 7px',\n display: 'block',\n },\n});\n\nclass AddressCheckBox extends React.Component {\n constructor() {\n super();\n this.state = {\n showToolTip: false,\n };\n }\n\n handleTipClick = (event) => {\n event.preventDefault();\n let { showToolTip } = this.state;\n this.setState({ showToolTip: (showToolTip = !showToolTip) });\n this.linkWithIcon.focus();\n };\n\n handleChangeAddress = (ev) => {\n let isChecked = ev.target.checked;\n let chkBxStatus = isChecked ? 'checked' : 'unchecked';\n FPT.trackLinkClickWithData('shareAddress', { checkbox: chkBxStatus });\n\n this.props.changeAddress(isChecked);\n };\n\n createLabel = (label) => {\n return (\n <>\n {label}\n \n (this.linkWithIcon = el)}\n tabIndex={this.props.isDisabled ? -1 : 0}\n >\n \n \n \n \n );\n };\n\n render() {\n return (\n
\n
\n
\n \n
\n {this.state.showToolTip && (\n
\n \n {this.props.toolTipText}\n \n
\n )}\n
\n
\n );\n }\n}\n\nAddressCheckBox.propTypes = {\n changeAddress: PropTypes.func.isRequired,\n toolTipText: PropTypes.string,\n label: PropTypes.string,\n isDisabled: PropTypes.bool,\n};\n\nexport default AddressCheckBox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { localsMessages } from '../utility/getTemplateData';\nimport { getCountryInfo } from '../utility/localizer';\nimport { Checkbox } from '@paypalcorp/pp-react-checkbox';\nimport getContent from 'pp-react-l10n';\n\nconst messages = localsMessages('common/guestTerms');\n\nclass GuestTerms extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n isChecked: !!this.props.isChecked,\n };\n }\n\n onChange = (event) => {\n const isChecked = event.target.checked;\n this.setState({ isChecked });\n this.props.handleRequired(isChecked);\n };\n\n render() {\n const countryInfo = getCountryInfo(this.props.country);\n const termsContent = getContent('locals')('common/guestTerms')(\n 'terms',\n null,\n { useHTML: true }\n );\n\n if (this.props.mandatory) {\n return null;\n }\n\n return (\n \n {countryInfo.showGuestTermsWithoutCheckBox && !this.props.isSignUp && (\n
\n
{GuestTerms}
\n
\n )}\n {countryInfo.showGuestTermsCheckBox && !this.props.isSignUp && (\n
\n
\n \n
\n
\n )}\n\n {countryInfo.showGuestTermsText && (\n
\n
\n {termsContent}\n
\n
\n )}\n
\n );\n }\n}\n\nGuestTerms.propTypes = {\n handleRequired: PropTypes.func,\n label: PropTypes.string,\n country: PropTypes.string,\n isSignUp: PropTypes.bool,\n mandatory: PropTypes.bool,\n isChecked: PropTypes.bool,\n hasError: PropTypes.bool,\n};\n\nexport default GuestTerms;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { HeadingText } from '@paypalcorp/pp-react';\n\nexport default function FormSectionHeading({ heading }) {\n return (\n \n {heading}\n \n );\n}\n\nFormSectionHeading.propTypes = {\n heading: PropTypes.string,\n};\n","import React from 'react';\nimport { localsMessages } from '../../utility/getTemplateData';\nimport { Button, Tile, BodyText } from '@paypalcorp/pp-react';\nimport createAccountIllustrationUrl from './illus_createAccount.svg';\n\nconst messages = localsMessages('guest/guestForm');\n\nclass CreateAccountTile extends React.Component {\n redirectToOnboarding() {\n const { protocol, hostname } = window.location;\n\n window.location.href = `${protocol}//${hostname}/ru/webapps/mpp/account-selection`;\n }\n\n render() {\n const { createAccountTile: { title = '', msg = '', button = '' } = {} } =\n messages || {};\n\n return (\n \n \n\n
\n {title}\n \n {msg}\n \n \n \n {button}\n \n \n
\n \n );\n }\n}\n\nexport default CreateAccountTile;\n","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgIllusCreateAccount(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"illus_createAccount_svg__Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 95.97 121.5\"\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".illus_createAccount_svg__cls-1{fill:#0070ba}.illus_createAccount_svg__cls-2{fill:#fff;fill-rule:evenodd}\"))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M64.76 106.65a.75.75 0 010-1.5l.89-.05a.75.75 0 11.11 1.49l-.92.06zm-4.53-.05h-.06l-.91-.08a.75.75 0 01-.68-.82.74.74 0 01.82-.67l.89.08a.75.75 0 01-.06 1.49zm9.91-.63a.75.75 0 01-.73-.6.76.76 0 01.58-.89l.87-.19a.75.75 0 01.9.57.76.76 0 01-.56.9l-.91.19zm-15.28-.16h-.16q-.45-.09-.9-.21a.75.75 0 01.36-1.46l.86.21a.75.75 0 01-.16 1.48zm20.51-1.32a.75.75 0 01-.26-1.45l.83-.32a.75.75 0 01.55 1.4l-.87.33a.73.73 0 01-.25.04zm4.95-2.23a.74.74 0 01-.66-.39.76.76 0 01.3-1c.26-.14.52-.28.77-.43a.75.75 0 11.75 1.3q-.39.24-.81.45a.73.73 0 01-.35.07zm-37.51-1.52a.75.75 0 01-.41-.12c-.26-.17-.52-.34-.77-.52a.75.75 0 11.85-1.23c.24.17.49.33.74.49a.75.75 0 01-.41 1.38zm42.07-1.41a.75.75 0 01-.45-1.33c.24-.17.47-.35.7-.53a.76.76 0 011.06.11.77.77 0 01-.12 1.06l-.74.56a.68.68 0 01-.45.13zM38.5 97.44a.73.73 0 01-.5-.19l-.68-.62a.75.75 0 111-1.09l.65.59a.76.76 0 01.07 1.06.75.75 0 01-.54.25zM89 95.77a.79.79 0 01-.53-.22.75.75 0 010-1.06c.2-.21.41-.42.61-.64a.75.75 0 011.06 0 .75.75 0 010 1.06c-.21.22-.42.45-.64.66a.75.75 0 01-.5.2zm-54.28-2.22a.72.72 0 01-.57-.27l-.59-.72a.75.75 0 01.12-1 .76.76 0 011.06.12c.18.23.37.46.56.68a.76.76 0 01-.1 1.06.74.74 0 01-.48.13zm57.76-1.91a.73.73 0 01-.44-.15.74.74 0 01-.16-1l.51-.73a.75.75 0 111.23.86l-.53.75a.77.77 0 01-.61.27zm-60.92-2.5a.75.75 0 01-.64-.36c-.16-.26-.32-.53-.47-.8a.74.74 0 01.27-1 .76.76 0 011 .27c.14.26.3.52.45.77A.75.75 0 0132 89a.79.79 0 01-.44.14zM95.34 87a.72.72 0 01-.34-.09.75.75 0 01-.32-1c.14-.26.27-.52.4-.79a.75.75 0 011.35.66l-.42.83a.76.76 0 01-.67.39zm-66.26-2.69a.75.75 0 01-.69-.46c-.12-.28-.24-.56-.35-.85a.76.76 0 01.42-1 .75.75 0 011 .43c.11.27.22.55.34.82a.75.75 0 01-.4 1 .72.72 0 01-.32.06zm68.41-2.26a1 1 0 01-.24 0 .76.76 0 01-.47-1c.1-.28.19-.56.28-.84a.76.76 0 01.94-.49.75.75 0 01.49.94c-.09.3-.19.59-.29.88a.76.76 0 01-.71.51zm-70.15-2.88a.75.75 0 01-.73-.56c-.08-.3-.15-.6-.22-.9a.75.75 0 01.56-.9.75.75 0 01.9.56l.21.86a.75.75 0 01-.54.92zm71.55-2.37h-.15a.75.75 0 01-.59-.88l.15-.92a.75.75 0 111.48.24c0 .3-.1.61-.16.91a.75.75 0 01-.73.65zm-72.52-3a.75.75 0 01-.74-.67l-.09-.92a.75.75 0 011.5-.12c0 .29.05.59.08.88a.77.77 0 01-.67.83zm73.13-2.39a.75.75 0 01-.72-.78v-.88a.74.74 0 01.76-.75.75.75 0 01.74.76v.93a.76.76 0 01-.78.72zm-73.29-3a.76.76 0 01-.72-.78l.06-.92a.75.75 0 111.49.1c0 .3 0 .59-.05.89a.75.75 0 01-.78.7zM99.3 66a.75.75 0 01-.74-.67c0-.3-.07-.59-.11-.88a.75.75 0 111.49-.21c0 .31.08.62.11.92a.75.75 0 01-.66.83zm-72.44-3h-.14a.75.75 0 01-.6-.88c.06-.3.13-.6.19-.9a.75.75 0 011.47.32q-.11.43-.18.87a.75.75 0 01-.74.59zm71.44-2.35a.74.74 0 01-.72-.56l-.24-.86a.75.75 0 01.51-.93.76.76 0 01.93.51c.09.3.17.6.25.9a.74.74 0 01-.53.91.69.69 0 01-.2.03zm-70-2.87a1.09 1.09 0 01-.25 0 .75.75 0 01-.46-1c.1-.29.21-.58.32-.87a.75.75 0 011.4.54c-.1.27-.21.55-.3.83a.75.75 0 01-.72.5zm68.24-2.26a.75.75 0 01-.69-.45l-.36-.81a.75.75 0 111.36-.63l.38.84a.76.76 0 01-.39 1 .8.8 0 01-.31.05zm-66.07-2.71a.75.75 0 01-.66-1.1c.14-.27.29-.54.44-.81a.75.75 0 011.31.73c-.15.26-.29.52-.43.78a.73.73 0 01-.66.4zM94 50.71a.75.75 0 01-.64-.36l-.48-.74a.75.75 0 01.22-1 .76.76 0 011 .21c.17.26.33.52.49.78a.76.76 0 01-.24 1 .79.79 0 01-.35.11zm-60.64-2.49a.73.73 0 01-.44-.15.74.74 0 01-.16-1l.56-.73a.75.75 0 111.18.92c-.18.24-.36.47-.53.71a.76.76 0 01-.61.25zm57.47-1.9a.74.74 0 01-.58-.27l-.58-.66a.76.76 0 01.06-1.06.75.75 0 011.06.06c.21.23.41.46.61.7a.75.75 0 01-.57 1.23zM36.9 44.11a.74.74 0 01-.53-.22.75.75 0 010-1.06l.66-.64a.75.75 0 011 1.09l-.64.61a.73.73 0 01-.49.22zM87 42.45a.73.73 0 01-.5-.19l-.67-.57a.75.75 0 01-.09-1.06.74.74 0 011-.09c.24.19.47.39.7.6a.74.74 0 01.07 1 .76.76 0 01-.51.31zm-46-1.88a.74.74 0 01-.6-.3.75.75 0 01.15-1.05l.75-.54a.75.75 0 011 .18.76.76 0 01-.18 1l-.72.52a.75.75 0 01-.4.19zm41.7-1.38a.78.78 0 01-.41-.12l-.75-.48a.75.75 0 01.78-1.28l.79.49a.77.77 0 01.22 1 .75.75 0 01-.63.39zm-37.1-1.52a.74.74 0 01-.66-.39.75.75 0 01.3-1l.82-.42a.75.75 0 11.68 1.34c-.27.13-.53.27-.79.41a.72.72 0 01-.35.06zm32.33-1.07a.7.7 0 01-.31-.07l-.81-.35a.75.75 0 01-.4-1 .74.74 0 011-.4l.85.36a.75.75 0 01-.31 1.44zm-27.37-1.12a.75.75 0 01-.25-1.48l.87-.3a.75.75 0 01.47 1.43l-.84.29a1.09 1.09 0 01-.25.06zm22.27-.73a.64.64 0 01-.2 0l-.86-.23a.76.76 0 01-.54-.92.75.75 0 01.91-.54l.89.24a.76.76 0 01.52.93.75.75 0 01-.72.52zm-17-.71a.75.75 0 01-.14-1.49l.91-.17a.75.75 0 01.86.62.74.74 0 01-.61.86l-.87.16zm11.73-.38h-.1l-.88-.1a.75.75 0 01.15-1.5l.92.11a.75.75 0 01-.09 1.5zm-6.34-.27a.75.75 0 010-1.5h.93a.76.76 0 01.76.74.75.75 0 01-.73.76h-.89z\",\n transform: \"translate(-20 -3.25)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-2\",\n d: \"M104 69.73l-.23 14.6c-6 .24-10.63 4.2-10.63 10.29v.46H60.59V69.73z\",\n transform: \"translate(-20 -3.25)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M95.79 88.89a.72.72 0 01-.48-.17l-6.4-5.37a.75.75 0 01-.1-1 .76.76 0 011.06-.1l6.4 5.37a.75.75 0 01-.48 1.32zM61.13 95.63a.72.72 0 01-.57-.27.75.75 0 01.09-1.06l14.58-12.1a.75.75 0 011 .1.74.74 0 01-.1 1L61.61 95.46a.72.72 0 01-.48.17zM104.25 84.48a.76.76 0 01-.75-.75v-13.8a.75.75 0 011.5 0v13.8a.76.76 0 01-.75.75zM103.79 98.86a.75.75 0 01-.58-.27l-3-3.68a.75.75 0 111.16-1l2.42 3 8-9.85a.75.75 0 011.17 1l-8.57 10.56a.74.74 0 01-.58.28z\",\n transform: \"translate(-20 -3.25)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M89 95.81H60.84a.76.76 0 01-.75-.75V69.93a.76.76 0 01.75-.75h43.3a.73.73 0 01.7.5.74.74 0 01-.22.83L87.22 85c-4.06 3.53-5.1 3.54-9.22.09L63.55 73.35a.76.76 0 01-.11-1.06.75.75 0 011-.11L79 83.89c3.54 3 3.81 3 7.3-.09l15.81-13.12H61.59v23.63H89a.75.75 0 010 1.5zM104.4 106.49a11.44 11.44 0 01-8.2-3.44 11.83 11.83 0 010-16.58 11.46 11.46 0 018.06-3.47.75.75 0 01.75.74.74.74 0 01-.74.76 10 10 0 00-7 3 10.33 10.33 0 000 14.47 10 10 0 0014.28 0 10.4 10.4 0 00.59-13.83.74.74 0 01.09-1 .75.75 0 011.06.09 11.9 11.9 0 01-.68 15.84 11.44 11.44 0 01-8.21 3.42z\",\n transform: \"translate(-20 -3.25)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-2\",\n d: \"M43.26 63.47a3.27 3.27 0 013.26 3.29v42.32a3.36 3.36 0 01-2.52 3.28h-.23l-1-9.54a2.33 2.33 0 00-2.22-2.13h-.15a2.31 2.31 0 00-2.24 2.24 67.66 67.66 0 01-.82 7.41c-.12.75-.27 1.54-.44 2.35H24a3.27 3.27 0 01-3.26-3.29V66.76A3.27 3.27 0 0124 63.47z\",\n transform: \"translate(-20 -3.25)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M36.17 113.48H24a4 4 0 01-4-4V66.76a4 4 0 014-4h19.26a4 4 0 014 4v42.32a4.08 4.08 0 01-3.16 4 .76.76 0 01-.9-.56.75.75 0 01.56-.9 2.6 2.6 0 002-2.55V66.75a2.53 2.53 0 00-2.51-2.54H24a2.53 2.53 0 00-2.51 2.54v42.68A2.53 2.53 0 0024 112h12.17a.75.75 0 010 1.5z\",\n transform: \"translate(-20 -3.25)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M33.47 109a2.42 2.42 0 112.41-2.41 2.41 2.41 0 01-2.41 2.41zm0-3.33a.92.92 0 10.91.92.91.91 0 00-.91-.96zM36.5 68.24h-5.29a.75.75 0 110-1.5h5.29a.75.75 0 010 1.5zM34 124.75a.75.75 0 01-.72-1 136.17 136.17 0 003.29-13.56 64 64 0 00.81-7.33 3.06 3.06 0 016.1-.15l1.2 11.65a.75.75 0 01-1.49.15L42 102.9a1.56 1.56 0 00-1.6-1.45 1.58 1.58 0 00-1.49 1.55 65 65 0 01-.82 7.5 138.79 138.79 0 01-3.33 13.74.75.75 0 01-.76.51zM49.87 124.75a.74.74 0 01-.45-.15.75.75 0 01-.15-1c0-.06 4.13-5.59 3.87-15-.19-7.13-7-13.27-7-13.33a.76.76 0 01-.06-1.06.75.75 0 011.06-.06c.3.27 7.31 6.64 7.52 14.41.27 9.92-4 15.65-4.17 15.89a.74.74 0 01-.62.3z\",\n transform: \"translate(-20 -3.25)\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-2\",\n d: \"M51.06 27.77l-2.64-1.54a1.36 1.36 0 01-.61-1.8l11.3-19.85A1.33 1.33 0 0161 4.22l32.47 19a1.36 1.36 0 01.62 1.8l-9.41 16.47\",\n transform: \"translate(-20 -3.25)\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M84.68 42.24a.74.74 0 01-.37-.1.75.75 0 01-.28-1l9.36-16.45a.62.62 0 00-.34-.79l-32.47-19a.78.78 0 00-.58-.13.39.39 0 00-.25.18L48.46 24.8a.63.63 0 00.34.78l2.64 1.55a.75.75 0 01-.76 1.29l-2.63-1.54a2.12 2.12 0 01-.89-2.83l11.3-19.84a1.87 1.87 0 011.16-.89 2.25 2.25 0 011.71.25l32.48 19a2.12 2.12 0 01.89 2.82l-9.37 16.47a.72.72 0 01-.65.38z\",\n transform: \"translate(-20 -3.25)\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-2\",\n d: \"M82.11 56.91H45.76a1.42 1.42 0 01-1.42-1.43V29.21a1.43 1.43 0 011.42-1.44h37.5a1.43 1.43 0 011.42 1.44v27.7z\",\n transform: \"translate(-20 -3.25)\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M84.68 57.66H45.76a2.18 2.18 0 01-2.17-2.18V29.21A2.18 2.18 0 0145.76 27h37.5a2.18 2.18 0 012.17 2.19v27.7a.74.74 0 01-.75.77zM45.76 28.52a.68.68 0 00-.67.69v26.27a.68.68 0 00.67.68h38.17V29.21a.68.68 0 00-.67-.69z\",\n transform: \"translate(-20 -3.25)\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M63.29 47.74a.74.74 0 01-.75-.75V32.24H48.76v14h11.66a.75.75 0 010 1.5H48a.74.74 0 01-.75-.75v-15.5a.75.75 0 01.75-.75h15.29a.76.76 0 01.75.75V47a.75.75 0 01-.75.74z\",\n transform: \"translate(-20 -3.25)\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M56 40.92a3.85 3.85 0 113.81-3.85A3.82 3.82 0 0156 40.92zm0-6.2a2.35 2.35 0 102.31 2.35A2.33 2.33 0 0056 34.72zM63.29 47.74a.74.74 0 01-.74-.63c-.35-2.23-2.36-4.33-4.15-4.33a.75.75 0 010-1.5c2.54 0 5.17 2.62 5.63 5.6a.75.75 0 01-.63.85z\",\n transform: \"translate(-20 -3.25)\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"illus_createAccount_svg__cls-1\",\n d: \"M49.84 45.88a.64.64 0 01-.2 0 .74.74 0 01-.52-.92 4.67 4.67 0 014.44-3.65h4.92a.75.75 0 11-.06 1.5h-4.81a3.19 3.19 0 00-3 2.56.74.74 0 01-.77.51zM48.62 53.94a.73.73 0 01-.57-.26.74.74 0 01.08-1l3.57-3.1a.75.75 0 01.75-.14.73.73 0 01.48.59 7.66 7.66 0 01.07 1.3l.65-.36a1 1 0 011.46.64s.15.2.81.25a31.76 31.76 0 003.65 0 .74.74 0 01.78.71.75.75 0 01-.72.79 32.5 32.5 0 01-3.82-.06 2.45 2.45 0 01-1.9-.81l-1.47.79a.73.73 0 01-.8-.06.75.75 0 01-.29-.76 7.76 7.76 0 00.13-.82l-2.39 2.07a.76.76 0 01-.47.23zM81 53.32h-5.5a.75.75 0 010-1.5H81a.75.75 0 010 1.5zM81 50.84h-5.5a.75.75 0 010-1.5H81a.75.75 0 110 1.5zM73.07 53.32h-5.5a.75.75 0 010-1.5h5.5a.75.75 0 010 1.5zM73.07 50.84h-5.5a.75.75 0 010-1.5h5.5a.75.75 0 010 1.5zM75.51 40.92h-7.94a.75.75 0 010-1.5h7.94a.75.75 0 010 1.5zM79.18 36.58H67.57a.75.75 0 010-1.5h11.61a.75.75 0 010 1.5zM74.29 32.86h-6.72a.75.75 0 010-1.5h6.72a.75.75 0 010 1.5zM88.06 27.84a.74.74 0 01-.37-.1L56.45 9.82a.75.75 0 11.74-1.3l31.25 17.92a.75.75 0 01.27 1 .73.73 0 01-.65.4z\",\n transform: \"translate(-20 -3.25)\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5NS45NyAxMjEuNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDcwYmE7fS5jbHMtMntmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5pbGx1c19jcmVhdGVBY2NvdW50PC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02NC43NiwxMDYuNjVhLjc1Ljc1LDAsMCwxLDAtMS41bC44OS0uMDVhLjc1Ljc1LDAsMSwxLC4xMSwxLjQ5bC0uOTIuMDZabS00LjUzLS4wNWgtLjA2bC0uOTEtLjA4YS43NS43NSwwLDAsMS0uNjgtLjgyLjc0Ljc0LDAsMCwxLC44Mi0uNjdsLjg5LjA4YS43NS43NSwwLDAsMS0uMDYsMS40OVptOS45MS0uNjNhLjc1Ljc1LDAsMCwxLS43My0uNi43Ni43NiwwLDAsMSwuNTgtLjg5bC44Ny0uMTlhLjc1Ljc1LDAsMCwxLC45LjU3Ljc2Ljc2LDAsMCwxLS41Ni45bC0uOTEuMTlabS0xNS4yOC0uMTYtLjE2LDBxLS40NS0uMDktLjktLjIxYS43NS43NSwwLDAsMSwuMzYtMS40NmwuODYuMjFhLjc1Ljc1LDAsMCwxLS4xNiwxLjQ4Wm0yMC41MS0xLjMyYS43NS43NSwwLDAsMS0uMjYtMS40NWwuODMtLjMyYS43NS43NSwwLDAsMSwuNTUsMS40bC0uODcuMzNBLjczLjczLDAsMCwxLDc1LjM3LDEwNC40OVptNC45NS0yLjIzYS43NC43NCwwLDAsMS0uNjYtLjM5Ljc2Ljc2LDAsMCwxLC4zLTFjLjI2LS4xNC41Mi0uMjguNzctLjQzYS43NS43NSwwLDEsMSwuNzUsMS4zcS0uMzkuMjQtLjgxLjQ1QS43My43MywwLDAsMSw4MC4zMiwxMDIuMjZabS0zNy41MS0xLjUyYS43NS43NSwwLDAsMS0uNDEtLjEyYy0uMjYtLjE3LS41Mi0uMzQtLjc3LS41MmEuNzUuNzUsMCwxLDEsLjg1LTEuMjNjLjI0LjE3LjQ5LjMzLjc0LjQ5YS43NS43NSwwLDAsMS0uNDEsMS4zOFptNDIuMDctMS40MUEuNzUuNzUsMCwwLDEsODQuNDMsOThjLjI0LS4xNy40Ny0uMzUuNy0uNTNhLjc2Ljc2LDAsMCwxLDEuMDYuMTEuNzcuNzcsMCwwLDEtLjEyLDEuMDZsLS43NC41NkEuNjguNjgsMCwwLDEsODQuODgsOTkuMzNaTTM4LjUsOTcuNDRhLjczLjczLDAsMCwxLS41LS4xOWwtLjY4LS42MmEuNzUuNzUsMCwxLDEsMS0xLjA5bC42NS41OWEuNzYuNzYsMCwwLDEsLjA3LDEuMDZBLjc1Ljc1LDAsMCwxLDM4LjUsOTcuNDRaTTg5LDk1Ljc3YS43OS43OSwwLDAsMS0uNTMtLjIyLjc1Ljc1LDAsMCwxLDAtMS4wNmMuMi0uMjEuNDEtLjQyLjYxLS42NGEuNzUuNzUsMCwwLDEsMS4wNiwwLC43NS43NSwwLDAsMSwwLDEuMDZjLS4yMS4yMi0uNDIuNDUtLjY0LjY2QS43NS43NSwwLDAsMSw4OSw5NS43N1pNMzQuNzIsOTMuNTVhLjcyLjcyLDAsMCwxLS41Ny0uMjdsLS41OS0uNzJhLjc1Ljc1LDAsMCwxLC4xMi0xLC43Ni43NiwwLDAsMSwxLjA2LjEyYy4xOC4yMy4zNy40Ni41Ni42OGEuNzYuNzYsMCwwLDEtLjEsMS4wNkEuNzQuNzQsMCwwLDEsMzQuNzIsOTMuNTVabTU3Ljc2LTEuOTFhLjczLjczLDAsMCwxLS40NC0uMTUuNzQuNzQsMCwwLDEtLjE2LTFsLjUxLS43M2EuNzUuNzUsMCwxLDEsMS4yMy44NmwtLjUzLjc1QS43Ny43NywwLDAsMSw5Mi40OCw5MS42NFptLTYwLjkyLTIuNWEuNzUuNzUsMCwwLDEtLjY0LS4zNmMtLjE2LS4yNi0uMzItLjUzLS40Ny0uOGEuNzQuNzQsMCwwLDEsLjI3LTEsLjc2Ljc2LDAsMCwxLDEsLjI3Yy4xNC4yNi4zLjUyLjQ1Ljc3QS43NS43NSwwLDAsMSwzMiw4OSwuNzkuNzksMCwwLDEsMzEuNTYsODkuMTRaTTk1LjM0LDg3YS43Mi43MiwwLDAsMS0uMzQtLjA5Ljc1Ljc1LDAsMCwxLS4zMi0xYy4xNC0uMjYuMjctLjUyLjQtLjc5YS43NS43NSwwLDAsMSwxLjM1LjY2bC0uNDIuODNBLjc2Ljc2LDAsMCwxLDk1LjM0LDg3Wk0yOS4wOCw4NC4zMWEuNzUuNzUsMCwwLDEtLjY5LS40NmMtLjEyLS4yOC0uMjQtLjU2LS4zNS0uODVhLjc2Ljc2LDAsMCwxLC40Mi0xLC43NS43NSwwLDAsMSwxLC40M2MuMTEuMjcuMjIuNTUuMzQuODJhLjc1Ljc1LDAsMCwxLS40LDFBLjcyLjcyLDAsMCwxLDI5LjA4LDg0LjMxWm02OC40MS0yLjI2YTEsMSwwLDAsMS0uMjQsMCwuNzYuNzYsMCwwLDEtLjQ3LTFjLjEtLjI4LjE5LS41Ni4yOC0uODRhLjc2Ljc2LDAsMCwxLC45NC0uNDkuNzUuNzUsMCwwLDEsLjQ5Ljk0Yy0uMDkuMy0uMTkuNTktLjI5Ljg4QS43Ni43NiwwLDAsMSw5Ny40OSw4Mi4wNVpNMjcuMzQsNzkuMTdhLjc1Ljc1LDAsMCwxLS43My0uNTZjLS4wOC0uMy0uMTUtLjYtLjIyLS45YS43NS43NSwwLDAsMSwuNTYtLjkuNzUuNzUsMCwwLDEsLjkuNTZsLjIxLjg2YS43NS43NSwwLDAsMS0uNTQuOTJaTTk4Ljg5LDc2LjhoLS4xNWEuNzUuNzUsMCwwLDEtLjU5LS44OEw5OC4zLDc1YS43NS43NSwwLDEsMSwxLjQ4LjI0YzAsLjMtLjEuNjEtLjE2LjkxQS43NS43NSwwLDAsMSw5OC44OSw3Ni44Wm0tNzIuNTItM2EuNzUuNzUsMCwwLDEtLjc0LS42N2wtLjA5LS45MmEuNzUuNzUsMCwwLDEsMS41LS4xMmMwLC4yOS4wNS41OS4wOC44OGEuNzcuNzcsMCwwLDEtLjY3LjgzWk05OS41LDcxLjQxaDBhLjc1Ljc1LDAsMCwxLS43Mi0uNzhjMC0uMjksMC0uNTksMC0uODhhLjc0Ljc0LDAsMCwxLC43Ni0uNzUuNzUuNzUsMCwwLDEsLjc0Ljc2YzAsLjMxLDAsLjYyLDAsLjkzQS43Ni43NiwwLDAsMSw5OS41LDcxLjQxWm0tNzMuMjktM2gwYS43Ni43NiwwLDAsMS0uNzItLjc4bC4wNi0uOTJhLjc1Ljc1LDAsMSwxLDEuNDkuMWMwLC4zLDAsLjU5LS4wNS44OUEuNzUuNzUsMCwwLDEsMjYuMjEsNjguNFpNOTkuMyw2NmEuNzUuNzUsMCwwLDEtLjc0LS42N2MwLS4zLS4wNy0uNTktLjExLS44OGEuNzUuNzUsMCwxLDEsMS40OS0uMjFjMCwuMzEuMDguNjIuMTEuOTJhLjc1Ljc1LDAsMCwxLS42Ni44M1pNMjYuODYsNjNoLS4xNGEuNzUuNzUsMCwwLDEtLjYtLjg4Yy4wNi0uMy4xMy0uNi4xOS0uOWEuNzUuNzUsMCwwLDEsMS40Ny4zMnEtLjExLjQzLS4xOC44N0EuNzUuNzUsMCwwLDEsMjYuODYsNjNaTTk4LjMsNjAuNjVhLjc0Ljc0LDAsMCwxLS43Mi0uNTZsLS4yNC0uODZhLjc1Ljc1LDAsMCwxLC41MS0uOTMuNzYuNzYsMCwwLDEsLjkzLjUxYy4wOS4zLjE3LjYuMjUuOWEuNzQuNzQsMCwwLDEtLjUzLjkxQS42OS42OSwwLDAsMSw5OC4zLDYwLjY1Wm0tNzAtMi44N2ExLjA5LDEuMDksMCwwLDEtLjI1LDAsLjc1Ljc1LDAsMCwxLS40Ni0xYy4xLS4yOS4yMS0uNTguMzItLjg3YS43NS43NSwwLDAsMSwxLjQuNTRjLS4xLjI3LS4yMS41NS0uMy44M0EuNzUuNzUsMCwwLDEsMjguMjksNTcuNzhabTY4LjI0LTIuMjZhLjc1Ljc1LDAsMCwxLS42OS0uNDVsLS4zNi0uODFhLjc1Ljc1LDAsMSwxLDEuMzYtLjYzbC4zOC44NGEuNzYuNzYsMCwwLDEtLjM5LDFBLjguOCwwLDAsMSw5Ni41Myw1NS41MlpNMzAuNDcsNTIuODFhLjc1Ljc1LDAsMCwxLS42Ni0xLjFjLjE0LS4yNy4yOS0uNTQuNDQtLjgxYS43NS43NSwwLDAsMSwxLjMxLjczYy0uMTUuMjYtLjI5LjUyLS40My43OEEuNzMuNzMsMCwwLDEsMzAuNDcsNTIuODFaTTk0LDUwLjcxYS43NS43NSwwLDAsMS0uNjQtLjM2bC0uNDgtLjc0YS43NS43NSwwLDAsMSwuMjItMSwuNzYuNzYsMCwwLDEsMSwuMjFjLjE3LjI2LjMzLjUyLjQ5Ljc4YS43Ni43NiwwLDAsMS0uMjQsMUEuNzkuNzksMCwwLDEsOTQsNTAuNzFaTTMzLjM2LDQ4LjIyYS43My43MywwLDAsMS0uNDQtLjE1Ljc0Ljc0LDAsMCwxLS4xNi0xbC41Ni0uNzNhLjc1Ljc1LDAsMSwxLDEuMTguOTJjLS4xOC4yNC0uMzYuNDctLjUzLjcxQS43Ni43NiwwLDAsMSwzMy4zNiw0OC4yMlptNTcuNDctMS45YS43NC43NCwwLDAsMS0uNTgtLjI3bC0uNTgtLjY2YS43Ni43NiwwLDAsMSwuMDYtMS4wNi43NS43NSwwLDAsMSwxLjA2LjA2Yy4yMS4yMy40MS40Ni42MS43YS43NS43NSwwLDAsMS0uNTcsMS4yM1pNMzYuOSw0NC4xMWEuNzQuNzQsMCwwLDEtLjUzLS4yMi43NS43NSwwLDAsMSwwLTEuMDZsLjY2LS42NGEuNzUuNzUsMCwwLDEsMSwxLjA5bC0uNjQuNjFBLjczLjczLDAsMCwxLDM2LjksNDQuMTFaTTg3LDQyLjQ1YS43My43MywwLDAsMS0uNS0uMTlsLS42Ny0uNTdhLjc1Ljc1LDAsMCwxLS4wOS0xLjA2Ljc0Ljc0LDAsMCwxLDEtLjA5Yy4yNC4xOS40Ny4zOS43LjZhLjc0Ljc0LDAsMCwxLC4wNywxQS43Ni43NiwwLDAsMSw4Nyw0Mi40NVpNNDEsNDAuNTdhLjc0Ljc0LDAsMCwxLS42LS4zLjc1Ljc1LDAsMCwxLC4xNS0xLjA1bC43NS0uNTRhLjc1Ljc1LDAsMCwxLDEsLjE4Ljc2Ljc2LDAsMCwxLS4xOCwxbC0uNzIuNTJBLjc1Ljc1LDAsMCwxLDQxLDQwLjU3Wk04Mi43LDM5LjE5YS43OC43OCwwLDAsMS0uNDEtLjEybC0uNzUtLjQ4YS43NS43NSwwLDAsMSwuNzgtMS4yOGwuNzkuNDlhLjc3Ljc3LDAsMCwxLC4yMiwxQS43NS43NSwwLDAsMSw4Mi43LDM5LjE5Wk00NS42LDM3LjY3YS43NC43NCwwLDAsMS0uNjYtLjM5Ljc1Ljc1LDAsMCwxLC4zLTFsLjgyLS40MmEuNzUuNzUsMCwxLDEsLjY4LDEuMzRjLS4yNy4xMy0uNTMuMjctLjc5LjQxQS43Mi43MiwwLDAsMSw0NS42LDM3LjY3Wk03Ny45MywzNi42YS43LjcsMCwwLDEtLjMxLS4wN2wtLjgxLS4zNWEuNzUuNzUsMCwwLDEtLjQtMSwuNzQuNzQsMCwwLDEsMS0uNGwuODUuMzZhLjc1Ljc1LDAsMCwxLS4zMSwxLjQ0Wk01MC41NiwzNS40OEEuNzUuNzUsMCwwLDEsNTAuMzEsMzRsLjg3LS4zYS43NS43NSwwLDAsMSwuNDcsMS40M2wtLjg0LjI5QTEuMDksMS4wOSwwLDAsMSw1MC41NiwzNS40OFptMjIuMjctLjczYS42NC42NCwwLDAsMS0uMiwwbC0uODYtLjIzYS43Ni43NiwwLDAsMS0uNTQtLjkyLjc1Ljc1LDAsMCwxLC45MS0uNTRsLjg5LjI0YS43Ni43NiwwLDAsMSwuNTIuOTNBLjc1Ljc1LDAsMCwxLDcyLjgzLDM0Ljc1Wm0tMTctLjcxYS43NS43NSwwLDAsMS0uMTQtMS40OWwuOTEtLjE3YS43NS43NSwwLDAsMSwuODYuNjIuNzQuNzQsMCwwLDEtLjYxLjg2bC0uODcuMTZabTExLjczLS4zOGgtLjFsLS44OC0uMWEuNzUuNzUsMCwwLDEsLjE1LTEuNWwuOTIuMTFhLjc1Ljc1LDAsMCwxLS4wOSwxLjVabS02LjM0LS4yN2EuNzUuNzUsMCwwLDEsMC0xLjVsLjkzLDBhLjc2Ljc2LDAsMCwxLC43Ni43NC43NS43NSwwLDAsMS0uNzMuNzZsLS44OSwwWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEwNCw2OS43M2wtLjIzLDE0LjZjLTYsLjI0LTEwLjYzLDQuMi0xMC42MywxMC4yOSwwLC4xNiwwLC4zMSwwLC40Nkg2MC41OVY2OS43M1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05NS43OSw4OC44OWEuNzIuNzIsMCwwLDEtLjQ4LS4xN2wtNi40LTUuMzdhLjc1Ljc1LDAsMCwxLS4xLTEsLjc2Ljc2LDAsMCwxLDEuMDYtLjFsNi40LDUuMzdhLjc1Ljc1LDAsMCwxLS40OCwxLjMyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTYxLjEzLDk1LjYzYS43Mi43MiwwLDAsMS0uNTctLjI3Ljc1Ljc1LDAsMCwxLC4wOS0xLjA2TDc1LjIzLDgyLjJhLjc1Ljc1LDAsMCwxLDEsLjEuNzQuNzQsMCwwLDEtLjEsMUw2MS42MSw5NS40NkEuNzIuNzIsMCwwLDEsNjEuMTMsOTUuNjNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTA0LjI1LDg0LjQ4YS43Ni43NiwwLDAsMS0uNzUtLjc1VjY5LjkzYS43NS43NSwwLDAsMSwxLjUsMHYxMy44QS43Ni43NiwwLDAsMSwxMDQuMjUsODQuNDhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjc5LDk4Ljg2YS43NS43NSwwLDAsMS0uNTgtLjI3bC0zLTMuNjhhLjc1Ljc1LDAsMSwxLDEuMTYtMWwyLjQyLDMsOC05Ljg1YS43NS43NSwwLDAsMSwxLjE3LDFsLTguNTcsMTAuNTZhLjc0Ljc0LDAsMCwxLS41OC4yOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OSw5NS44MUg2MC44NGEuNzYuNzYsMCwwLDEtLjc1LS43NVY2OS45M2EuNzYuNzYsMCwwLDEsLjc1LS43NWg0My4zYS43My43MywwLDAsMSwuNy41Ljc0Ljc0LDAsMCwxLS4yMi44M0w4Ny4yMiw4NWMtNC4wNiwzLjUzLTUuMSwzLjU0LTkuMjIuMDlMNjMuNTUsNzMuMzVhLjc2Ljc2LDAsMCwxLS4xMS0xLjA2Ljc1Ljc1LDAsMCwxLDEtLjExTDc5LDgzLjg5YzMuNTQsMywzLjgxLDMsNy4zLS4wOWwxNS44MS0xMy4xMkg2MS41OVY5NC4zMUg4OWEuNzUuNzUsMCwwLDEsMCwxLjVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTA0LjQsMTA2LjQ5YTExLjQ0LDExLjQ0LDAsMCwxLTguMi0zLjQ0LDExLjgzLDExLjgzLDAsMCwxLDAtMTYuNThBMTEuNDYsMTEuNDYsMCwwLDEsMTA0LjI2LDgzaDBhLjc1Ljc1LDAsMCwxLC43NS43NC43NC43NCwwLDAsMS0uNzQuNzYsMTAsMTAsMCwwLDAtNywzLDEwLjMzLDEwLjMzLDAsMCwwLDAsMTQuNDcsMTAsMTAsMCwwLDAsMTQuMjgsMCwxMC40LDEwLjQsMCwwLDAsLjU5LTEzLjgzLjc0Ljc0LDAsMCwxLC4wOS0xLC43NS43NSwwLDAsMSwxLjA2LjA5LDExLjksMTEuOSwwLDAsMS0uNjgsMTUuODRBMTEuNDQsMTEuNDQsMCwwLDEsMTA0LjQsMTA2LjQ5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQzLjI2LDYzLjQ3YTMuMjcsMy4yNywwLDAsMSwzLjI2LDMuMjlsMCw0Mi4zMkEzLjM2LDMuMzYsMCwwLDEsNDQsMTEyLjM2aC0uMjNsLTEtOS41NGEyLjMzLDIuMzMsMCwwLDAtMi4yMi0yLjEzaC0uMTVhMi4zMSwyLjMxLDAsMCwwLTIuMjQsMi4yNCw2Ny42Niw2Ny42NiwwLDAsMS0uODIsNy40MWMtLjEyLjc1LS4yNywxLjU0LS40NCwyLjM1bC0uNzQsMEgyNGEzLjI3LDMuMjcsMCwwLDEtMy4yNi0zLjI5VjY2Ljc2QTMuMjcsMy4yNywwLDAsMSwyNCw2My40N1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zNi4xNywxMTMuNDhIMjRhNCw0LDAsMCwxLTQtNFY2Ni43NmE0LDQsMCwwLDEsNC00SDQzLjI2YTQsNCwwLDAsMSw0LDRsMCw0Mi4zMmE0LjA4LDQuMDgsMCwwLDEtMy4xNiw0LC43Ni43NiwwLDAsMS0uOS0uNTYuNzUuNzUsMCwwLDEsLjU2LS45LDIuNiwyLjYsMCwwLDAsMi0yLjU1bDAtNDIuMzJhMi41MywyLjUzLDAsMCwwLTIuNTEtMi41NEgyNGEyLjUzLDIuNTMsMCwwLDAtMi41MSwyLjU0djQyLjY4QTIuNTMsMi41MywwLDAsMCwyNCwxMTJIMzYuMTdhLjc1Ljc1LDAsMCwxLDAsMS41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTMzLjQ3LDEwOWEyLjQyLDIuNDIsMCwxLDEsMi40MS0yLjQxQTIuNDEsMi40MSwwLDAsMSwzMy40NywxMDlabTAtMy4zM2EuOTIuOTIsMCwxLDAsLjkxLjkyQS45MS45MSwwLDAsMCwzMy40NywxMDUuNjNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzYuNSw2OC4yNEgzMS4yMWEuNzUuNzUsMCwxLDEsMC0xLjVIMzYuNWEuNzUuNzUsMCwwLDEsMCwxLjVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzQsMTI0Ljc1YS43NS43NSwwLDAsMS0uNzItMSwxMzYuMTcsMTM2LjE3LDAsMCwwLDMuMjktMTMuNTYsNjQsNjQsMCwwLDAsLjgxLTcuMzMsMy4wNiwzLjA2LDAsMCwxLDYuMS0uMTVsMS4yLDExLjY1YS43NS43NSwwLDAsMS0xLjQ5LjE1TDQyLDEwMi45YTEuNTYsMS41NiwwLDAsMC0xLjYtMS40NUExLjU4LDEuNTgsMCwwLDAsMzguOTEsMTAzYTY1LDY1LDAsMCwxLS44Miw3LjUsMTM4Ljc5LDEzOC43OSwwLDAsMS0zLjMzLDEzLjc0QS43NS43NSwwLDAsMSwzNCwxMjQuNzVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDkuODcsMTI0Ljc1YS43NC43NCwwLDAsMS0uNDUtLjE1Ljc1Ljc1LDAsMCwxLS4xNS0xYzAtLjA2LDQuMTMtNS41OSwzLjg3LTE1LS4xOS03LjEzLTctMTMuMjctNy0xMy4zM2EuNzYuNzYsMCwwLDEtLjA2LTEuMDYuNzUuNzUsMCwwLDEsMS4wNi0uMDZjLjMuMjcsNy4zMSw2LjY0LDcuNTIsMTQuNDEuMjcsOS45Mi00LDE1LjY1LTQuMTcsMTUuODlBLjc0Ljc0LDAsMCwxLDQ5Ljg3LDEyNC43NVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01MS4wNiwyNy43N2wtMi42NC0xLjU0YTEuMzYsMS4zNiwwLDAsMS0uNjEtMS44TDU5LjExLDQuNThBMS4zMywxLjMzLDAsMCwxLDYxLDQuMjJsMzIuNDcsMTlhMS4zNiwxLjM2LDAsMCwxLC42MiwxLjhMODQuNjgsNDEuNDkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04NC42OCw0Mi4yNGEuNzQuNzQsMCwwLDEtLjM3LS4xLjc1Ljc1LDAsMCwxLS4yOC0xbDkuMzYtMTYuNDVhLjYyLjYyLDAsMCwwLS4zNC0uNzlsLTMyLjQ3LTE5QS43OC43OCwwLDAsMCw2MCw0Ljc3YS4zOS4zOSwwLDAsMC0uMjUuMThMNDguNDYsMjQuOGEuNjMuNjMsMCwwLDAsLjM0Ljc4bDIuNjQsMS41NWEuNzUuNzUsMCwwLDEtLjc2LDEuMjlsLTIuNjMtMS41NGEyLjEyLDIuMTIsMCwwLDEtLjg5LTIuODNMNTguNDYsNC4yMWExLjg3LDEuODcsMCwwLDEsMS4xNi0uODksMi4yNSwyLjI1LDAsMCwxLDEuNzEuMjVsMzIuNDgsMTlhMi4xMiwyLjEyLDAsMCwxLC44OSwyLjgyTDg1LjMzLDQxLjg2QS43Mi43MiwwLDAsMSw4NC42OCw0Mi4yNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik04Mi4xMSw1Ni45MUg0NS43NmExLjQyLDEuNDIsMCwwLDEtMS40Mi0xLjQzVjI5LjIxYTEuNDMsMS40MywwLDAsMSwxLjQyLTEuNDRoMzcuNWExLjQzLDEuNDMsMCwwLDEsMS40MiwxLjQ0djI3LjdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODQuNjgsNTcuNjZINDUuNzZhMi4xOCwyLjE4LDAsMCwxLTIuMTctMi4xOFYyOS4yMUEyLjE4LDIuMTgsMCwwLDEsNDUuNzYsMjdoMzcuNWEyLjE4LDIuMTgsMCwwLDEsMi4xNywyLjE5djI3LjdBLjc0Ljc0LDAsMCwxLDg0LjY4LDU3LjY2Wk00NS43NiwyOC41MmEuNjguNjgsMCwwLDAtLjY3LjY5VjU1LjQ4YS42OC42OCwwLDAsMCwuNjcuNjhIODMuOTNWMjkuMjFhLjY4LjY4LDAsMCwwLS42Ny0uNjlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjMuMjksNDcuNzRhLjc0Ljc0LDAsMCwxLS43NS0uNzVWMzIuMjRINDguNzZ2MTRINjAuNDJhLjc1Ljc1LDAsMCwxLDAsMS41SDQ4YS43NC43NCwwLDAsMS0uNzUtLjc1VjMxLjQ5YS43NS43NSwwLDAsMSwuNzUtLjc1SDYzLjI5YS43Ni43NiwwLDAsMSwuNzUuNzVWNDdBLjc1Ljc1LDAsMCwxLDYzLjI5LDQ3Ljc0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTU2LDQwLjkyYTMuODUsMy44NSwwLDEsMSwzLjgxLTMuODVBMy44MiwzLjgyLDAsMCwxLDU2LDQwLjkyWm0wLTYuMmEyLjM1LDIuMzUsMCwxLDAsMi4zMSwyLjM1QTIuMzMsMi4zMywwLDAsMCw1NiwzNC43MloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02My4yOSw0Ny43NGEuNzQuNzQsMCwwLDEtLjc0LS42M2MtLjM1LTIuMjMtMi4zNi00LjMzLTQuMTUtNC4zM2EuNzUuNzUsMCwwLDEsMC0xLjVjMi41NCwwLDUuMTcsMi42Miw1LjYzLDUuNmEuNzUuNzUsMCwwLDEtLjYzLjg1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ5Ljg0LDQ1Ljg4YS42NC42NCwwLDAsMS0uMiwwLC43NC43NCwwLDAsMS0uNTItLjkyLDQuNjcsNC42NywwLDAsMSw0LjQ0LTMuNjVoLjkyYzEuNzQsMCwzLjQ4LDAsNCwwYS43NS43NSwwLDEsMS0uMDYsMS41Yy0uNDgsMC0yLjYxLDAtMy44OCwwaC0uOTNhMy4xOSwzLjE5LDAsMCwwLTMsMi41NkEuNzQuNzQsMCwwLDEsNDkuODQsNDUuODhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDguNjIsNTMuOTRhLjczLjczLDAsMCwxLS41Ny0uMjYuNzQuNzQsMCwwLDEsLjA4LTFsMy41Ny0zLjFhLjc1Ljc1LDAsMCwxLC43NS0uMTQuNzMuNzMsMCwwLDEsLjQ4LjU5QTcuNjYsNy42NiwwLDAsMSw1Myw1MS4zM2wuNjUtLjM2YTEsMSwwLDAsMSwxLjQ2LjY0cy4xNS4yLjgxLjI1YTMxLjc2LDMxLjc2LDAsMCwwLDMuNjUsMCwuNzQuNzQsMCwwLDEsLjc4LjcxLjc1Ljc1LDAsMCwxLS43Mi43OSwzMi41LDMyLjUsMCwwLDEtMy44Mi0uMDYsMi40NSwyLjQ1LDAsMCwxLTEuOS0uODFsLTEuNDcuNzlhLjczLjczLDAsMCwxLS44LS4wNi43NS43NSwwLDAsMS0uMjktLjc2LDcuNzYsNy43NiwwLDAsMCwuMTMtLjgybC0yLjM5LDIuMDdBLjc2Ljc2LDAsMCwxLDQ4LjYyLDUzLjk0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTgxLDUzLjMyaC01LjVhLjc1Ljc1LDAsMCwxLDAtMS41SDgxYS43NS43NSwwLDAsMSwwLDEuNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04MSw1MC44NGgtNS41YS43NS43NSwwLDAsMSwwLTEuNUg4MWEuNzUuNzUsMCwxLDEsMCwxLjVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAgLTMuMjUpIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNzMuMDcsNTMuMzJoLTUuNWEuNzUuNzUsMCwwLDEsMC0xLjVoNS41YS43NS43NSwwLDAsMSwwLDEuNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik03My4wNyw1MC44NGgtNS41YS43NS43NSwwLDAsMSwwLTEuNWg1LjVhLjc1Ljc1LDAsMCwxLDAsMS41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTc1LjUxLDQwLjkySDY3LjU3YS43NS43NSwwLDAsMSwwLTEuNWg3Ljk0YS43NS43NSwwLDAsMSwwLDEuNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik03OS4xOCwzNi41OEg2Ny41N2EuNzUuNzUsMCwwLDEsMC0xLjVINzkuMThhLjc1Ljc1LDAsMCwxLDAsMS41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwIC0zLjI1KSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTc0LjI5LDMyLjg2SDY3LjU3YS43NS43NSwwLDAsMSwwLTEuNWg2LjcyYS43NS43NSwwLDAsMSwwLDEuNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC4wNiwyNy44NGEuNzQuNzQsMCwwLDEtLjM3LS4xTDU2LjQ1LDkuODJhLjc1Ljc1LDAsMSwxLC43NC0xLjNMODguNDQsMjYuNDRhLjc1Ljc1LDAsMCwxLC4yNywxQS43My43MywwLDAsMSw4OC4wNiwyNy44NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMCAtMy4yNSkiLz48L3N2Zz4=\";\nexport { SvgIllusCreateAccount as ReactComponent };","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport CountrySelection from '../../guest-payment-components/CountrySelection';\nimport CreateAccountTile from './createAccountTile';\n\nclass RussiaGuestForm extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n
\n
\n \n
\n
\n\n \n
\n );\n }\n}\n\nRussiaGuestForm.propTypes = {\n supportedCountries: PropTypes.array,\n currentCountry: PropTypes.string,\n changeCountry: PropTypes.func,\n countryLabel: PropTypes.string,\n};\n\nexport default RussiaGuestForm;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { Alert, CaptionText, Dialog, Button } from '@paypalcorp/pp-react';\n\nimport * as dateUtils from '../../guest-payment-components/util/dateUtils';\nimport CountrySelection from '../../guest-payment-components/CountrySelection';\nimport Email from '../../guest-payment-components/Email';\nimport CreateAccountPre from '../../guest-payment-components/CreateAccountPre';\nimport AddressEntryField from '../../components/address-entry-field';\n\nimport PaymentComponent from '../../containers/payment-component';\nimport PhoneComponent from '../../containers/phone-component';\nimport NameComponent from '../../containers/name-component';\n\nimport AddressCheckbox from '../../components/addressCheckbox';\nimport GuestTerms from '../../components/guestTerms';\nimport GuestSubmitButton from '../../components/guest-submit-button';\n\nimport * as AppActions from '../../actions/AppActions';\nimport AppStore from '../../stores/AppStore';\nimport AppDispatcher from '../../dispatcher/AppDispatcher';\n\nimport {\n parseErrorResponse,\n parseValErrResp,\n getErrFields,\n getInitialDataInDom,\n} from '../../utility/helper';\nimport '../../utility/csrf';\n\nimport * as FPT from '../../utility/fpt';\nimport constants from '../../utility/constants';\nimport { getCountryInfo } from '../../utility/localizer';\nimport { fetcher, objectOrArrayToQueryString } from '../../utility/domUtils';\nimport TemplateData, {\n localsMessages,\n guestLocalsMessages,\n} from '../../utility/getTemplateData';\nimport {\n formatAmount,\n getDateFormat,\n normalizeNumber,\n} from '../../utility/formator';\n\nimport withDonate from '../../components/guest/WithDonate';\nimport ThreeDSContainer from '../../components/threeDS/ThreeDSContainer';\nimport FormSectionHeading from '../../components/common/FormSectionHeading';\n\nimport _get from 'lodash/get';\nimport _isEmpty from 'lodash/isEmpty';\nimport _keys from 'lodash/keys';\nimport _startsWith from 'lodash/startsWith';\nimport _clone from 'lodash/clone';\nimport RussiaGuestForm from './RussiaGuestForm';\nimport { startCustomCPLTrackingForConfirmationPage } from '../../utility/cpl';\nimport { scrollElementIntoView } from '../../utility/domUtils';\nimport getContent from 'pp-react-l10n';\nimport { isExternalFlow } from '../../utility/externalIntegrationUtils';\nimport { EVENT_NAME } from '../../utility/constants';\nimport { getPersonalizedMessages } from '../../utility/personalizedMessages';\nimport { NNA_CONTENT_TOUCHPOINT } from '../../utility/constants';\nimport isNna from '../../utility/nna';\n\nconst errorMessages = localsMessages('errors/service');\nconst landingErrorMessages = localsMessages('errors/landingerror');\nconst initialData = getInitialDataInDom();\nconst senderDetails = initialData.senderDetails || {};\nconst pre_address = senderDetails.address || {};\n\nconst defaultCardSpec = constants.DEFAULT_CARD_SPEC;\n\nconst FORM_ERROR_ELEMENT_SELECTOR = [\n `div[class*=\"ppvx_field--error\"]`,\n '.vx_has-error-with-message',\n '.service_error_holder',\n '.ppvx_field--error',\n '#message_billing_state',\n '#message_email',\n].join();\n\nclass GuestForm extends Component {\n static propTypes = {\n password: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n this.createAccountRef = React.createRef();\n\n const savedFormData =\n this.props.getFormData() || TemplateData.formData || {};\n const hasSavedFormData = !_isEmpty(savedFormData);\n\n AppActions.changeCountry({ country: initialData.selectedCountry });\n const symbol = AppStore.getDonationSymbol() || '';\n const currency = AppStore.getDonationCode() || '';\n const amount = AppStore.getDonationAmount();\n let formattedAmount = '';\n if (amount) {\n formattedAmount = formatAmount({ currency, value: amount });\n }\n\n const formValues = this.getFormValues(savedFormData);\n\n this.state = {\n formatedAmount: formattedAmount,\n symbol: symbol,\n isRequired: true,\n isGuestFormValid: true,\n isCreateAccValid: true,\n postcodeHasError: false,\n passwordFieldsOpen: false,\n isSignUpPanel: false,\n legalCheckbox: false,\n guestAllowed: TemplateData.guestAllowed,\n memberMandatory: TemplateData.memberMandatory || false,\n recurringEnabled: TemplateData.recurringEnabled,\n validPassword: null,\n showCreateAccountPreErrors: false,\n assignedCountries: initialData.assignedCountries,\n supportedCountries: initialData.supportedCountries,\n countriesAllowed: initialData.countriesAllowed,\n DOBPattern:\n getDateFormat() ||\n getCountryInfo(initialData.selectedCountry).DOBPattern,\n cardSpecs: initialData.cardSpecs,\n initialData: initialData,\n addressLine1Error: '',\n addressCityError: '',\n addressStateError: '',\n addressZipError: '',\n card: {\n type: '',\n number: '',\n securityCode: '',\n expiration: '',\n dateOfBirth: '',\n startDate: '',\n issueNumber: '',\n },\n cardSpec: defaultCardSpec,\n consentShareAddress: false,\n donateNow: '',\n agreeAndDonate: '',\n errorMessages: errorMessages,\n errorMesages: [],\n errMessageCountry: '',\n errMessageCreditCard: '',\n errMessageExpiry: '',\n errMessageCSC: '',\n errMessageEmail: '',\n errMessagePhoneNumber: '',\n legalCheckboxErrorMsg: '',\n termsCheckBoxError: false,\n hasSavedFormData,\n isOfferTermsOpen: false,\n ...formValues,\n };\n }\n\n componentDidMount() {\n // Register for App Dispatcher Messages\n this.registerAppDispatcherMessages();\n\n if (TemplateData.senderCountryEligible === false) {\n // eslint-disable-next-line\n this.setState({\n errMessageCountry: landingErrorMessages.error.sendDonationNotAllowed,\n });\n }\n\n if (isExternalFlow()) {\n FPT.trackEventName(EVENT_NAME.DW_GIVING_GUEST_FORM_SCREEN_SHOWN);\n }\n }\n\n componentWillUnmount() {\n AppDispatcher.unregister(this.dispatcherMessages);\n }\n\n componentDidUpdate() {\n /* \n Determines if there was a change in recurring status and updates\n New Account Information and Donate Button Text\n Used here as handleRecurring method in Guest component and password\n display in CreateAccountPre component cannot be directly connected\n */\n if (\n AppStore.getDonationRecurring() === 'checked' &&\n this.state.passwordFieldsOpen\n ) {\n this.handleCreateAccountCheckbox(false);\n this.createAccountRef.current.handleResetPasswordFields();\n }\n }\n\n registerAppDispatcherMessages() {\n this.dispatcherMessages = AppDispatcher.register((payload) => {\n if (payload.action && payload.action.actionType === 'CHANGE_AMOUNT') {\n const { action: { item: { amount } = {} } = {} } = payload;\n this.updateAmount(amount);\n }\n if (\n payload.action &&\n payload.action.actionType === 'UPDATE_SERVER_ERRORS'\n ) {\n const serverErrors = _get(payload, 'action.item.serverErrors');\n if (!_isEmpty(serverErrors)) {\n this.resetSensitiveFields();\n }\n }\n });\n }\n\n getFormValues(savedFormData) {\n let formValues;\n if (!_isEmpty(savedFormData)) {\n formValues = {\n country: savedFormData.country,\n // Auto fill form\n firstname: _get(savedFormData, 'user.firstName', ''),\n lastname: _get(savedFormData, 'user.lastName', ''),\n newAddress: {\n line1: _get(savedFormData, 'billingAddress.line1', ''),\n line2: _get(savedFormData, 'billingAddress.line2', ''),\n city: _get(savedFormData, 'billingAddress.city', ''),\n state: _get(savedFormData, 'billingAddress.state', ''),\n postcode: _get(savedFormData, 'billingAddress.postalCode', ''),\n country: _get(savedFormData, 'billingAddress.country', ''),\n },\n phone: {\n countryCode: _get(savedFormData, 'phone.countryCode', ''),\n number: _get(savedFormData, 'phone.number', ''),\n type: _get(savedFormData, 'phone.type', 'Mobile'),\n },\n user: {\n firstName: _get(savedFormData, 'user.firstName', ''),\n lastName: _get(savedFormData, 'user.lastName', ''),\n email: _get(savedFormData, 'user.email', ''),\n password: '',\n occupation: _get(savedFormData, 'user.occupation', ''),\n nationality: _get(savedFormData, 'user.nationality', ''),\n dateOfBirth: _get(savedFormData, 'user.dateOfBirth', ''),\n countryOfResidence: _get(\n savedFormData,\n 'user.countryOfResidence',\n ''\n ),\n },\n email: _get(savedFormData, 'user.email', ''),\n };\n } else if (!TemplateData.isCountryChange) {\n formValues = {\n country: initialData.selectedCountry,\n // Auto fill form\n firstname: senderDetails.first_name || '',\n lastname: senderDetails.last_name || '',\n newAddress: {\n line1: pre_address.address1 || '',\n line2: pre_address.address2 || '',\n city: pre_address.city || '',\n state: pre_address.state || '',\n postcode: pre_address.zip || '',\n country: pre_address.iso_country || '',\n },\n phone: {\n countryCode: initialData.phoneNumberCountryCode || '',\n number:\n (senderDetails.phone && senderDetails.phone.phone_number) || '',\n type: 'Mobile',\n },\n user: {\n firstName: senderDetails.first_name || '',\n lastName: senderDetails.last_name || '',\n email: senderDetails.sender_email || '',\n password: '',\n occupation: '',\n nationality: '',\n dateOfBirth: '',\n countryOfResidence: '',\n },\n email: senderDetails.sender_email || '',\n };\n } else {\n formValues = this.clearFormValues();\n }\n\n return formValues;\n }\n\n clearFormValues() {\n const formValues = {\n country: initialData.selectedCountry,\n // Auto fill form\n firstname: '',\n lastname: '',\n newAddress: {\n line1: '',\n line2: '',\n city: '',\n state: '',\n postcode: '',\n country: '',\n },\n phone: {\n countryCode: '',\n number: '',\n type: 'Mobile',\n },\n user: {\n firstName: '',\n lastName: '',\n email: '',\n password: '',\n occupation: '',\n nationality: '',\n dateOfBirth: '',\n countryOfResidence: '',\n },\n email: '',\n };\n\n return formValues;\n }\n\n updateAmount = (value) => {\n const currency = AppStore.getDonationCode() || '';\n this.setState({ formatedAmount: formatAmount({ currency, value }) });\n };\n\n /**********************\n PaymentComponent handlers\n **********************/\n // passed to component\n handleChangePaymentInfo = (card = {}) => {\n this.setState({ card: card });\n };\n\n /**********************\n NameComponent handlers\n **********************/\n // passed to component\n handleChangeNameInfo = (firstName, lastName) => {\n let { user = {} } = this.state;\n user.firstName = firstName;\n user.lastName = lastName;\n this.setState({ user: user });\n };\n\n /**********************\n AddressEntryField handlers\n **********************/\n // Handle any default value from server - Auto populate\n // passed to component\n handleAddressDefaultValue = (item) => {\n let keyName = item && item.$;\n\n switch (keyName) {\n case 'line1':\n return this.getAddressDefaultValue('line1', 'address1');\n case 'line2':\n return this.getAddressDefaultValue('line2', 'address2');\n case 'city':\n return this.getAddressDefaultValue('city', 'city');\n case 'state':\n return this.getAddressDefaultValue('state', 'state');\n case 'postcode':\n return this.getAddressDefaultValue('postcode', 'zip');\n default:\n return '';\n }\n };\n\n getAddressDefaultValue = (newAddressKey, prefillAddressKey) => {\n const newAddress = this.state.newAddress;\n return _get(newAddress, newAddressKey) || '';\n\n // if (isCountryChange) {\n // \treturn '';\n // }\n\n // if (this.state.hasSavedFormData) {\n // \treturn _get(newAddress, newAddressKey);\n // }\n\n // return _get(newAddress, newAddressKey) || '';\n };\n\n // passed to component - handle changes to billing address field\n handleChangeBillingField = (field, value) => {\n const newState = {};\n newState[`billing_error_${field}`] = '';\n this.setState(newState);\n\n let newAddress = { ...this.state.newAddress, [field]: value };\n this.setState({ newAddress: newAddress, showAddressErrors: false });\n\n // Only hiding in case for select\n if (field === 'state' && value) {\n this.setState({ billing_error_state: '' });\n }\n };\n\n /**\n * Gets all address fields which have errors\n * @return {Array} Array of address field names\n */\n getAddressFieldsWithErrors = () => {\n // fields will be an array of strings in the format `billing_error_{fieldName}`\n // Eg: [ 'billing_error_postcode', 'billing_error_city', 'billing_error_state' ]\n const fields = _keys(this.state).filter((key) => {\n return _startsWith(key, 'billing_error') && !_isEmpty(this.state[key]);\n });\n // Get field names without 'billing_error_'\n // Eg: [ 'postcode', 'city', 'state' ]\n const fieldNames = fields.map((field) => {\n return field.split('billing_error_')[1];\n });\n\n return fieldNames;\n };\n\n // passed to component - handle blur on billing address\n handleAddressBlur = (field, value) => {\n if (!value) {\n let newErrorState = {};\n const fieldName = `billing_error_${field}`,\n errorCode = `REQUIRED_BILLING_ADDRESS_${field.toUpperCase()}`,\n errorMessage = errorMessages[errorCode];\n newErrorState[fieldName] = errorMessage;\n this.setState(newErrorState);\n FPT.trackFieldError(fieldName, errorCode, errorMessage);\n }\n };\n\n // passed to component - handle postal code error\n handlePostcodeHasError = (postcode) => {\n this.setState({ postcode: postcode });\n };\n\n /**********************\n AddressCheckBox handlers\n **********************/\n // passed to component - handle share address checkbox state\n handleShareAddress = (isChecked) => {\n this.setState({ consentShareAddress: isChecked });\n AppActions.updateShareAddress(isChecked);\n };\n\n /**********************\n PhoneComponent handlers\n **********************/\n // passed to component - handling phone infomation\n handlePhoneInfo = (phone = {}) => {\n this.setState({ phone: phone });\n };\n\n /**********************\n Email handlers\n **********************/\n // passed to component - handles email blur\n handleEmailBlur = (email) => {\n let errCodeEmail = '';\n let emailRex = constants.EMAIL_REX;\n let cusEmail = TemplateData.donationEmail;\n if (emailRex.test(email)) {\n if (cusEmail.toUpperCase() === email.toUpperCase()) {\n errCodeEmail = 'CANNOT_PAY_SELF';\n }\n } else if (email === '') {\n errCodeEmail = 'MISSING_EMAIL_ID';\n } else {\n errCodeEmail = 'INVALID_EMAIL_ID';\n }\n\n let errMessageEmail = errorMessages[errCodeEmail];\n FPT.trackFieldError('email', errCodeEmail, errMessageEmail);\n this.setState({ errMessageEmail: errMessageEmail });\n };\n\n // passed to component - handle email change\n handleChangeEmail = (email, mssg_error) => {\n let { user = {} } = this.state;\n user.email = email;\n this.setState({ user: user, email: email, [mssg_error]: '' });\n };\n\n /**********************\n CreateAccountPre handlers\n **********************/\n // passed to component - handle create account checkbox state\n handleCreateAccountCheckbox = (checked) => {\n let chkBxStatus = checked ? 'checked' : 'unchecked';\n FPT.trackLinkClickWithData('createAccount', { checkbox: chkBxStatus });\n this.setState({ passwordFieldsOpen: checked });\n };\n\n // passed to component - When the account creation form has all the valid input then save it\n handleCreateAccountAddInfo = (updateUser) => {\n let { user = {} } = this.state;\n user.dateOfBirth = updateUser.dateOfBirth;\n user.nationality = updateUser.nationality;\n user.occupation = updateUser.occupation;\n user.password = updateUser.password;\n user.legalValid = updateUser.legalValid;\n user.nationalId = {\n type: updateUser.nationalIdType,\n value: updateUser.nationalIdNumber,\n };\n user.consentCommunication = updateUser.consentCommunication;\n this.setState({ user: user });\n };\n\n // passed to component - handle reset of all saved fields from account creation form\n handleCreateAccountResetInfo = () => {\n let { user = {} } = this.state;\n user.dateOfBirth = null;\n user.nationality = null;\n user.occupation = null;\n user.password = null;\n user.legalValid = null;\n user.consentCommunication = false;\n this.setState({ user: user });\n };\n\n /**********************\n GuestTerms handlers\n **********************/\n // passed to component - handles checkbox validation state\n handleGuestTermsRequired = (isValid) => {\n this.setState({ isGuestTerms: isValid, termsCheckBoxError: !isValid });\n };\n\n /**\n * Resets sensitive fields\n * Currently only resets credit card fields\n * TODO: Reset password fields\n */\n resetSensitiveFields = () => {\n this.childPaymentInfo.resetPaymentInfo();\n };\n\n /**********************\n Error handlers and helpers\n **********************/\n // handle field level errors once donate button is pressed,\n // triggered when 'VALIDATION_ERROR' response is received.\n setFieldErrors = (response) => {\n let errorFileds = getErrFields(response);\n\n let messages = [];\n\n for (let i in errorFileds) {\n let errObj = errorFileds[i];\n let key = errorFileds[i].type;\n\n switch (key) {\n case 'INVALID_CARD_NUMBER':\n this.childPaymentInfo.handleCardNumberError('INVALID_CARD_NUMBER');\n this.handleScrollToError();\n break;\n case 'REQUIRED_CARD_NUMBER':\n this.childPaymentInfo.handleCardNumberError('REQUIRED_CARD_NUMBER');\n this.handleScrollToError();\n break;\n case 'INVALID_SECURITY_CODE':\n this.childPaymentInfo.handleSecurityCodeError(\n 'INVALID_SECURITY_CODE'\n );\n this.handleScrollToError();\n break;\n case 'REQUIRED_SECURITY_CODE':\n this.childPaymentInfo.handleSecurityCodeError(\n 'REQUIRED_SECURITY_CODE'\n );\n this.handleScrollToError();\n break;\n case 'INVALID_EXPIRY':\n this.childPaymentInfo.handleExpirationError('INVALID_EXPIRY');\n this.handleScrollToError();\n break;\n case 'REQUIRED_EXPIRY':\n this.childPaymentInfo.handleExpirationError('REQUIRED_EXPIRY');\n this.handleScrollToError();\n break;\n case 'REQUIRED_FIRST_NAME':\n this.childNameInfo.handleFirstNameError('REQUIRED_FIRST_NAME');\n this.handleScrollToError();\n break;\n case 'INVALID_FIRST_NAME':\n this.childNameInfo.handleFirstNameError('INVALID_FIRST_NAME');\n this.handleScrollToError();\n break;\n case 'REQUIRED_LAST_NAME':\n this.childNameInfo.handleLastNameError('REQUIRED_LAST_NAME');\n this.handleScrollToError();\n break;\n case 'INVALID_LAST_NAME':\n this.childNameInfo.handleLastNameError('INVALID_LAST_NAME');\n this.handleScrollToError();\n break;\n case 'INVALID_BILLING_ADDRESS_CITY_STATE_ZIP':\n this.handleAddressErrors(errObj);\n break;\n case 'INVALID_PHONE_NUMBER':\n this.childPhoneInfo.handlePhoneError('INVALID_PHONE_NUMBER');\n break;\n case 'REQUIRED_PHONE_NUMBER':\n this.childPhoneInfo.handlePhoneError('REQUIRED_PHONE_NUMBER');\n break;\n case 'ACCOUNT_ALREADY_EXISTS':\n this.handleExistEmailError('ACCOUNT_ALREADY_EXISTS');\n break;\n case 'MISSING_EMAIL_ID':\n this.handleExistEmailError('MISSING_EMAIL_ID');\n break;\n case 'INVALID_BILLING_ADDRESS_CITY':\n this.handleInvalidBillingAddressError(\n 'city',\n 'INVALID_BILLING_ADDRESS_CITY'\n );\n break;\n case 'INVALID_BILLING_ADDRESS_STATE':\n this.handleInvalidBillingAddressError(\n 'state',\n 'INVALID_BILLING_ADDRESS_STATE'\n );\n break;\n case 'INVALID_BILLING_ADDRESS_ZIP':\n this.handleInvalidBillingAddressError(\n 'postcode',\n 'INVALID_BILLING_ADDRESS_ZIP'\n );\n break;\n default: {\n let message = errorMessages[key] || errorMessages.VALIDATION_ERROR;\n if (message) {\n messages.push({ key: i, value: message });\n }\n const fieldId = JSON.stringify(errObj && errObj.fields);\n FPT.trackFieldError(fieldId, key, message);\n }\n }\n }\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n };\n\n // handle email error - part of setFieldErrors()\n handleExistEmailError = (key) => {\n let errMessageEmail = errorMessages[key];\n this.setState({ errMessageEmail: errMessageEmail });\n FPT.trackFieldError('email', key, errMessageEmail);\n this.handleScrollToError();\n };\n\n // handle address errors - part of setFieldErrors()\n handleAddressErrors = (errObj) => {\n let errFields = JSON.stringify(errObj.fields);\n let errorMessage = errorMessages.INVALID_BILLING_ADDRESS_CITY_STATE_ZIP;\n\n this.setState({\n showAddressErrors: true,\n addressErrorMessage: errorMessage,\n });\n FPT.trackFieldError(\n errFields,\n 'INVALID_BILLING_ADDRESS_CITY_STATE_ZIP',\n errorMessage\n );\n this.handleScrollToError();\n };\n\n // handle city, state, or postal code errors - part of setFieldErrors()\n handleInvalidBillingAddressError = (fieldName, errorCode) => {\n const newErrorState = {};\n const fieldId = `billing_error_${fieldName}`,\n errorMessage = errorMessages[errorCode];\n newErrorState[fieldId] = errorMessage;\n this.setState(newErrorState);\n FPT.trackFieldError(fieldId, errorCode, errorMessage);\n };\n\n // handles scrolling screen to the error - part of setFieldErrors()\n handleScrollToError = () => {\n let element = document.querySelector(FORM_ERROR_ELEMENT_SELECTOR);\n\n if (!element) {\n return;\n }\n\n while (element.parentElement) {\n element = element.parentElement;\n\n const isErrorContainerElement =\n element &&\n (element.className.startsWith('ppvx_col') ||\n element.className.startsWith('col-md') ||\n element.className === 'email_holder');\n\n if (isErrorContainerElement) {\n scrollElementIntoView(element);\n return;\n }\n }\n };\n\n /**********************\n Validation helpers for Guest Submit and Guest Creation process\n **********************/\n // called in handleRequiredValues()\n handleEmailRequiredFields = (params) => {\n let isValid = true;\n let emailErr;\n let keysToValidate = Object.keys(params);\n\n keysToValidate.forEach((key) => {\n let value = params[key];\n switch (key) {\n case 'email':\n if (!value) {\n isValid = false;\n emailErr = errorMessages.MISSING_EMAIL_ID;\n FPT.trackFieldError('email', 'MISSING_EMAIL_ID', emailErr);\n }\n break;\n default:\n break;\n }\n });\n this.setState({ errMessageEmail: emailErr });\n return isValid;\n };\n\n // called in handleRequiredValues()\n handleAddressRequiredFields = (billingAddress) => {\n let {\n initialData: { addressEntryFormat = {} },\n } = this.state;\n let { allErr = [], isValid = true } = {};\n\n addressEntryFormat.layout.filter((field) => {\n if (field.required && field.$ && !billingAddress[field.$]) {\n isValid = false;\n let newErrorState = {};\n switch (field.$) {\n case 'line1':\n newErrorState[`billing_error_${field.$}`] =\n errorMessages.REQUIRED_ADDRESS_LINE1;\n this.setState(newErrorState);\n FPT.trackFieldError(\n `billing_error_${field.$}`,\n 'REQUIRED_ADDRESS_LINE1',\n errorMessages.REQUIRED_ADDRESS_LINE1\n );\n break;\n case 'city':\n newErrorState[`billing_error_${field.$}`] =\n errorMessages.REQUIRED_BILLING_ADDRESS_CITY;\n this.setState(newErrorState);\n FPT.trackFieldError(\n `billing_error_${field.$}`,\n 'REQUIRED_BILLING_ADDRESS_CITY',\n errorMessages.REQUIRED_BILLING_ADDRESS_CITY\n );\n break;\n case 'state':\n newErrorState[`billing_error_${field.$}`] =\n errorMessages.REQUIRED_BILLING_ADDRESS_STATE;\n this.setState(newErrorState);\n FPT.trackFieldError(\n `billing_error_${field.$}`,\n 'REQUIRED_BILLING_ADDRESS_STATE',\n errorMessages.REQUIRED_BILLING_ADDRESS_STATE\n );\n break;\n case 'postcode':\n newErrorState[`billing_error_${field.$}`] =\n errorMessages.REQUIRED_BILLING_ADDRESS_ZIP;\n this.setState(newErrorState);\n FPT.trackFieldError(\n `billing_error_${field.$}`,\n 'REQUIRED_BILLING_ADDRESS_ZIP',\n errorMessages.REQUIRED_BILLING_ADDRESS_ZIP\n );\n break;\n default:\n break;\n }\n }\n });\n AppActions.updateServerErrors({ serverErrors: allErr });\n return isValid;\n };\n\n // called in handleRequiredValues() - handling guest terms check box if required\n validateGuestTermsCheckBox = (isGuestTerms = false) => {\n const countryInfo = getCountryInfo(this.state.country);\n const isCreateAcc =\n this.state.passwordFieldsOpen ||\n TemplateData.memberMandatory ||\n AppStore.getDonationRecurring() === 'checked';\n let isValid = true;\n\n if (countryInfo.showGuestTermsCheckBox && !isCreateAcc) {\n this.setState({ termsCheckBoxError: !isGuestTerms });\n isValid = isGuestTerms;\n }\n\n if (!isValid) {\n FPT.trackFieldError('guestTerm', 'GUEST_TERMS_NOT_CHECKED');\n }\n\n return isValid;\n };\n\n /**********************\n Guest Submit Button & Guest Creation\n Flow:\n 1. handleCreateGuest - If no errors, setGuestPaymentData\n 2. setGuestPaymentData - Handles creation of 'myData' object that is passed as 'params' to handleRequiredValues\n 3. handleRequiredValues - Checks that all required fields are valid by calling several other handlers.\n If all return 'isValid', then the 'myData'/'params' obj is passed to checkAnyFormErrors\n 4. checkAnyFormErrors - Performs final check for errors. If no errors, passes 'myData'/'params' obj to submitGuestPayment\n 5. submitGuestPayment - Sends the post request, and performs logic operations over 'result' obj.\n In the third 'else if', if the 'request.data' and 'request.data.confirmationData' are present(true),\n then the 'confirmationData' is passed to handlePaymentSuccess. The other logic checks are for errors,\n and other circumstances, that will be redirected.\n 6. handlePaymentSuccess - The payment was a success! Here, the 'response' is checked to see if the guest wants to sign up,\n and if so, the '#guestCreateAccountdialog' model is shown. In addition, some FPT analytics stuff\n is tagged. After the logic blocks, the response is passed to handleConfirmation.\n 7. handleConfirmation - The response is checked for 'isOfacPending', which will redirect the user to the pending page,\n or the confirmation page.\n **********************/\n\n handleCreateGuest = (event) => {\n event.preventDefault();\n\n let { user } = this.state;\n let isRecurring = AppStore.getDonationRecurring() === 'checked';\n\n // If the user hits submit, show errors if present\n if (\n this.state.passwordFieldsOpen ||\n TemplateData.memberMandatory ||\n isRecurring\n ) {\n this.setState({\n showCreateAccountPreErrors: true,\n });\n }\n\n if (\n (this.state.passwordFieldsOpen ||\n TemplateData.memberMandatory ||\n isRecurring) &&\n !user.password\n ) {\n this.setState({ createaccount: true, isCreateAccValid: !!user.password });\n // if (!user.password) {\n // this.setState({ isCreateAccValid: !!user.password });\n // }\n } else {\n this.setState({ isCreateAccValid: true });\n }\n\n let cusEmail = TemplateData.donationEmail;\n if (cusEmail === this.state.email) {\n this.setState({ errMessageEmail: errorMessages.CANNOT_PAY_SELF });\n }\n if (!this.props.validateDonationAmount()) {\n return;\n }\n\n const errorMessageElement = document.querySelector(\n 'div[class*=\"ppvx_field--error\"]'\n );\n if (errorMessageElement) {\n this.handleScrollToError();\n return;\n }\n\n this.setGuestPaymentData();\n };\n\n setGuestPaymentData = () => {\n let myData = AppStore.getAllData() || {};\n\n const { memberMandatory } = TemplateData;\n const {\n user = {},\n card = {},\n phone = {},\n newAddress = {},\n consentShareAddress,\n passwordFieldsOpen,\n DOBPattern,\n isGuestTerms,\n } = this.state;\n const { startDate: { startMonth, startYear } = {} } = card;\n const isRecurring = myData.recurring === 'checked';\n let billingAddress = {\n line1: newAddress.line1,\n city: newAddress.city,\n postalCode: newAddress.postcode,\n postcode: newAddress.postcode, // Griffin has `postcode`\n country: myData.country,\n };\n if (newAddress.line2) {\n billingAddress.line2 = newAddress.line2;\n }\n\n if (newAddress.state) {\n billingAddress.state = newAddress.state;\n }\n\n if (card.expiration) {\n let [expiryMonth = '', expiryYear = ''] = card.expiration.split('/');\n card.expiryMonth = expiryMonth;\n card.expiryYear =\n expiryYear.length === 2 ? '20' + expiryYear : expiryYear;\n }\n\n if (card.dateOfBirth && DOBPattern) {\n let dobDateCard = card.dateOfBirth.split('/');\n let patternsCard = DOBPattern.split('/');\n\n card.dobYear = dobDateCard[patternsCard.indexOf('YYYY')];\n card.dobMonth = dobDateCard[patternsCard.indexOf('MM')];\n card.dobDay = dobDateCard[patternsCard.indexOf('DD')];\n }\n\n myData.isGuestTerms = isGuestTerms;\n myData.user = user;\n myData.card = card;\n myData.phone = phone;\n myData.consentShareAddress = consentShareAddress;\n myData.billingAddress = billingAddress;\n myData.giftAidItFlag = AppStore.getGiftaidItFlagStatus() || false;\n\n if (startMonth && startYear) {\n myData.startDate = `${startMonth}/${startYear}`;\n myData.card.startYear = startYear;\n myData.card.startMonth = startMonth;\n }\n\n if (passwordFieldsOpen || memberMandatory || isRecurring) {\n myData.marketingOptin = user.consentCommunication;\n myData.createaccount = true;\n } else {\n myData.user.password = '';\n myData.createaccount = false;\n }\n\n if (myData.user.dateOfBirth && DOBPattern) {\n var dateObj = dateUtils.parseDob(myData.user.dateOfBirth, DOBPattern);\n\n myData.user.dobYear = dateObj.year;\n myData.user.dobMonth = dateObj.month;\n myData.user.dobDay = dateObj.day;\n }\n\n this.setState({ showAddressErrors: false });\n\n // Updating app store with message = [], as attempt to clean all server errors.\n AppActions.updateServerErrors({ serverErrors: [] });\n AppActions.updateEmail({ email: this.state.email });\n AppActions.updateBillingAddress({ billingAddress: billingAddress });\n\n myData.isNna = isNna(myData.country) && myData.recurring !== 'checked';\n\n // Clone is required to prevent overriding the value of amount\n // Without this, amount will become equal to normalize(amount)\n // 1,23 will become equal to 1.23 causing UI validation error\n const dataToSubmit = _clone(myData);\n dataToSubmit.amount = normalizeNumber(myData.amount);\n\n FPT.addDonationAmount(\n dataToSubmit.amount,\n window.fpti.pgrp,\n window.fpti.page\n );\n\n this.handleRequiredValues(dataToSubmit);\n };\n\n handleRequiredValues = (params) => {\n let paymentStatus = this.childPaymentInfo.handleRequiredFields(params.card);\n let phoneStatus = this.childPhoneInfo.handleRequiredFields(params.phone);\n let emailStatus = this.handleEmailRequiredFields(params.user);\n let addressStatus = this.handleAddressRequiredFields(params.billingAddress);\n let termsCBStatus = this.validateGuestTermsCheckBox(params.isGuestTerms);\n let nameStatus = this.childNameInfo.handleRequiredFields(params.user);\n\n this.setState(\n {\n isGuestFormValid:\n paymentStatus &&\n phoneStatus &&\n emailStatus &&\n addressStatus &&\n termsCBStatus &&\n nameStatus,\n },\n () => {\n this.checkAnyFormErrors(params);\n }\n );\n };\n\n checkAnyFormErrors = (params) => {\n if (this.state.isGuestFormValid && this.state.isCreateAccValid) {\n this.submitGuestPayment(params);\n } else {\n this.handleScrollToError();\n }\n };\n\n isSignUp = () => {\n return (\n this.state.passwordFieldsOpen ||\n TemplateData.memberMandatory ||\n AppStore.getDonationRecurring() === 'checked'\n );\n };\n\n submitGuestPayment = (params) => {\n // Save form data\n // If user navigates back to this page from CrossBorder, then we prefill this info\n this.props.saveFormData({\n country: params.country,\n user: params.user,\n giftAidItFlag: params.giftAidItFlag,\n billingAddress: params.billingAddress,\n consentShareAddress: params.consentShareAddress,\n shareAddress: params.shareAddress,\n phone: params.phone,\n });\n\n this.props.toggleSpinner(true);\n if (this.state.consentShareAddress) {\n FPT.trackLinkClickWithData('consentShareAddress', {\n consentShareAddress: 'true',\n });\n }\n\n const isSignUp = this.isSignUp() ? 'Y' : 'N';\n FPT.trackSignupOption(isSignUp);\n FPT.trackDonationAmount();\n if (isNna(this.state.country)) {\n FPT.trackOfferType('nna');\n } else if (FPT.getOfferType() === 'nna') {\n FPT.trackOfferType(undefined);\n }\n if (isExternalFlow()) {\n FPT.trackLinkClickWithData('donate', {\n event_name: EVENT_NAME.DW_GIVING_GUEST_FORM_DONATE_PRESSED,\n });\n } else {\n FPT.trackLinkClick('donate');\n }\n\n fetcher('/donate/guest', {\n method: 'POST',\n body: JSON.stringify(params),\n })\n .then((response) => response.json())\n .then((result) => {\n console.log('Result :: ', result);\n\n // Adding special handling for WSM_PAYMENT_DENIED because the result\n // comes back with status: redirect which results in reloading of guest page\n // without any error message\n if (result.code === 'WSM_PAYMENT_DENIED') {\n this.props.history.push('/donate/error/payment');\n return;\n } else if (\n result.code === 'WSM_PAYER_LIMIT_EXCEEDED' ||\n _get(result, 'error.details[0].name') === 'WSM_PAYER_LIMIT_EXCEEDED'\n ) {\n AppActions.updatePaymentError({\n paymentError: 'WSM_PAYER_LIMIT_EXCEEDED',\n });\n this.props.history.push('/donate/error/payment');\n return;\n } else if (result.status === 'redirect') {\n window.location.href = result.url;\n return;\n } else if (result.code === 'CROSS_BORDER' && result.fundingOpts) {\n let fundingOpts = result.fundingOpts[0];\n // Updating store with funding options\n AppActions.updateFundingOptions({ fundingOptions: fundingOpts });\n // Redirect to crossborder handler page.\n this.props.history.push('/donate/guest/crossborder');\n window.PAYPAL.analytics.startCPLTracking({\n page: 'main:donate:wps:guest:crossBorder:web::',\n action: 'crossborder_page_loaded',\n uicomp: 'crossBorder',\n uitype: 'page',\n });\n } else if (result.data && result.data.confirmationData) {\n let confirmationData = result.data.confirmationData || {};\n this.handlePaymentSuccess(confirmationData);\n } else if (\n result.code === 'WSM_TRANSACTION_FAILED_DUE_TO_INVALID_CARD_DATA' ||\n _get(result, 'error.details[0].name') ===\n 'WSM_TRANSACTION_FAILED_DUE_TO_INVALID_CARD_DATA'\n ) {\n let messages = parseErrorResponse(result.data.error, errorMessages);\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n\n // mock fulfillment error\n // pre-populate saved form data\n const formData = result.formData;\n if (formData) {\n this.props.saveFormData({\n country: formData.country,\n user: formData.user,\n giftAidItFlag: formData.giftAidItFlag,\n billingAddress: formData.billingAddress,\n consentShareAddress: formData.consentShareAddress,\n shareAddress: formData.shareAddress,\n phone: formData.phone,\n });\n }\n } else if (result.code === 'VALIDATION_ERROR') {\n this.setFieldErrors(result);\n this.resetSensitiveFields();\n } else if (result.code === 'WSM_CANNOT_PAY_SELF') {\n let messages = parseValErrResp(\n result,\n errorMessages,\n 'WSM_CANNOT_PAY_SELF'\n );\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n } else if (result.message === 'CC_LINKED_TO_FULL_ACCOUNT') {\n let messages = parseValErrResp(\n result,\n errorMessages,\n 'CC_LINKED_TO_FULL_ACCOUNT'\n );\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n } else if (result.code === 'ADD_CARD_CONTINGENCY') {\n let messages = parseValErrResp(\n result,\n errorMessages,\n 'ISSUER_DECLINE_ERROR'\n );\n AppActions.updateServerErrors({ serverErrors: messages });\n } else if (result.message === 'ISSUER_DECLINE_ERROR') {\n let messages = parseValErrResp(\n result,\n errorMessages,\n 'ISSUER_DECLINE_ERROR'\n );\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n } else if (result.message === 'RISK_DISALLOWED') {\n let messages = parseValErrResp(\n result,\n errorMessages,\n 'RISK_DISALLOWED'\n );\n // Updating store with any error messages from server.\n AppActions.updateServerErrors({ serverErrors: messages });\n } else if (\n result.code === '3D_SECURE_DATA_COLLECTION_REQUIRED' &&\n result.fundingOpts\n ) {\n let fundingOpts = result.fundingOpts[0];\n // Updating store with funding options\n AppActions.updateFundingOptions({ fundingOptions: fundingOpts });\n\n FPT.addFi(\n fundingOpts,\n 'main:donate:wps:guest:3DS-challenge',\n 'main:donate:wps:guest:3DS-challenge:::'\n );\n FPT.add3DSInitData(\n fundingOpts,\n 'main:donate:wps:guest:3DS-challenge',\n 'main:donate:wps:guest:3DS-challenge:::'\n );\n\n this.threeDSContainer.initializeThreeDS();\n\n return;\n } else {\n // Control reaches here for contingency errors also - 'INVALID_CONTINGENCIES' and 'WSM_UNRESOLVED_CONTINGENCIES'\n // Updating store with payment error from server.\n AppActions.updatePaymentError({\n paymentError: result && result.code,\n });\n this.props.history.push('/donate/error/payment');\n }\n })\n .catch((e) => {\n // Handle any wierd errors from service\n this.props.history.push('/donate/error/payment');\n })\n .finally(() => {\n this.props.toggleSpinner(false);\n });\n };\n\n handlePaymentSuccess = (response) => {\n AppActions.updateConfirmation({ confirmation: response });\n startCustomCPLTrackingForConfirmationPage();\n\n if (\n response.guestSignUp &&\n response.experiment &&\n response.experiment.treatment_name ===\n 'US_cause_guest_donation_flow_treatment'\n ) {\n FPT.trackPageWithData(\n 'main:donate:wps:guest:upgrade',\n 'main:donate:wps:guest:upgrade:web::',\n {\n xe: response.experiment.experiment_id,\n xt: response.experiment.treatment_id,\n }\n );\n this.setState({ isSignUpPanel: true });\n } else if (\n response.guestSignUp &&\n response.experiment &&\n response.experiment.treatment_name ===\n 'US_cause_guest_donation_flow_control'\n ) {\n FPT.addPxpTags({\n xe: response.experiment.experiment_id,\n xt: response.experiment.treatment_id,\n });\n return this.handleConfirmation(response);\n } else {\n return this.handleConfirmation(response);\n }\n };\n\n handleConfirmation = (response) => {\n const { token } = TemplateData;\n const queryParams = objectOrArrayToQueryString({ token });\n if (response.isOfacPending) {\n this.props.history.push(`/donate/guest/pending?${queryParams}`);\n } else {\n this.props.history.push(`/donate/guest/confirmation?${queryParams}`);\n }\n };\n\n setCountryAndLocaleInLinks = (createAccountPreProps) => {\n const getGuestSignupContent = getContent('locals')('guest/guestForm');\n const countryAndLocale = {\n country: TemplateData.country,\n locale: `${TemplateData.language}_${TemplateData.country}`,\n };\n\n createAccountPreProps.legalBlurbHTML = getCountryInfo(this.state.country)\n .termsAndConditionsWithFeeInformationDoc\n ? getGuestSignupContent(\n 'guestsignup.legalBlurbWithFeeInformationDoc',\n countryAndLocale,\n { useHTML: true }\n )\n : getGuestSignupContent('guestsignup.legalBlurbHTML', countryAndLocale, {\n useHTML: true,\n });\n createAccountPreProps.consentBlurbHTML = getGuestSignupContent(\n 'guestsignup.consentBlurbHTML',\n {\n brand: TemplateData.brand,\n locale: `${TemplateData.language}_${TemplateData.country}`,\n },\n { useHTML: true }\n );\n createAccountPreProps.legalOnlyHTML = getGuestSignupContent(\n 'guestsignup.legalOnlyHTML',\n countryAndLocale,\n { useHTML: true }\n );\n };\n\n handleThreeDSStepUpAuthSuccess = () => {\n this.props.toggleSpinner(true);\n this.props.doFulfilment({\n securityCode: _get(this.state, 'card.securityCode'),\n });\n };\n handleThreeDSFailure = () => {\n // Unrecoverable error !!\n this.props.history.push('/donate/error/threeDS');\n };\n handleFocusOnCreateAccountPre = () => {\n this.setState({ legalCheckboxErrorMsg: '' }); // eslint-disable-line\n };\n\n render() {\n const allGuestMessages = guestLocalsMessages();\n const signUpHeader =\n allGuestMessages.createAccountPreProps &&\n allGuestMessages.createAccountPreProps.mainTitle2;\n const { guestLabels } = allGuestMessages;\n const personalizedMessages = getPersonalizedMessages(\n NNA_CONTENT_TOUCHPOINT,\n { isHtml: true }\n );\n\n let {\n recurringEnabled,\n initialData: { addressEntryFormat = {} },\n } = this.state;\n let isRecurring = AppStore.getDonationRecurring() === 'checked';\n let showCreateAccount =\n recurringEnabled && isRecurring ? true : this.state.memberMandatory;\n let showTermsCheckbox = this.state.passwordFieldsOpen || showCreateAccount;\n let recieveMailLabel = guestLabels.recieveMail;\n let recieveMailToolTip = guestLabels.recieveMailToolTip;\n let orgName = TemplateData.donationName;\n let isNnaEnabled = isNna(this.state.country);\n\n recieveMailLabel = recieveMailLabel.replace('{orgName}', orgName);\n recieveMailToolTip = recieveMailToolTip.replace('{orgName}', orgName);\n recieveMailToolTip = recieveMailToolTip.replace('{orgName}', orgName);\n\n allGuestMessages.createAccountPreProps.mainTitle =\n TemplateData.memberMandatory || (recurringEnabled && isRecurring)\n ? signUpHeader\n : '';\n\n if (TemplateData.memberMandatory || (recurringEnabled && isRecurring)) {\n allGuestMessages.createAccountPreProps.mainTitle = signUpHeader;\n } else if (isNnaEnabled) {\n allGuestMessages.createAccountPreProps.mainTitle =\n allGuestMessages.createAccountPreProps.incentive.title;\n allGuestMessages.createAccountPreProps.createAccountCheckboxContent =\n allGuestMessages.createAccountPreProps.incentive.createAccountCheckboxContent;\n } else {\n allGuestMessages.createAccountPreProps.mainTitle = '';\n }\n\n this.setCountryAndLocaleInLinks(allGuestMessages.createAccountPreProps);\n\n if (['RU'].indexOf(this.state.country) >= 0) {\n return (\n this.props.handleCountryChange(country)}\n />\n );\n }\n\n return (\n <>\n
\n
\n
\n \n this.props.handleCountryChange(country)\n }\n errorMessage={this.state.errMessageCountry}\n />\n
\n
\n
\n
\n (this.childPaymentInfo = ref)}\n changePaymentInfo={this.handleChangePaymentInfo}\n country={this.state.country}\n {...allGuestMessages}\n errorMessages={errorMessages}\n {...this.state.initialData}\n />\n
\n
\n
\n
\n (this.childNameInfo = ref)}\n {...allGuestMessages}\n errorMessages={errorMessages}\n isRequired={this.state.isRequired}\n {...this.state.initialData}\n guestLabels={guestLabels}\n changeNameInfo={this.handleChangeNameInfo}\n user={this.state.user}\n />\n
\n
\n\n {this.state.showAddressErrors && (\n \n {this.state.addressErrorMessage}\n \n )}\n\n \n
\n {addressEntryFormat.layout\n .filter((field) => field._ !== undefined)\n .map((field) => (\n \n ))}\n
\n\n {TemplateData.isShipping && (\n \n )}\n\n \n
\n
\n (this.childPhoneInfo = ref)}\n {...allGuestMessages}\n {...this.state.initialData}\n defaultNumber={this.state.phone}\n errorMessages={errorMessages}\n isRequired={this.state.isRequired}\n handlePhoneInfo={this.handlePhoneInfo}\n />\n
\n
\n
\n \n
\n
\n
\n {}}\n handleFocusOnPasswordOne={this.handleFocusOnCreateAccountPre}\n resetValidInfo={() => {}}\n handleAllValidInfo={this.handleCreateAccountAddInfo}\n resetAllValidInfo={this.handleCreateAccountResetInfo}\n showValidationErrors={this.state.showCreateAccountPreErrors}\n isNNA={isNnaEnabled ? true : false}\n ref={this.createAccountRef}\n />\n
\n {isNnaEnabled ? (\n \n {personalizedMessages.offer_end_date}{' '}\n this.setState({ isOfferTermsOpen: true })}\n >\n {allGuestMessages.createAccountPreProps.incentive.terms}\n \n \n ) : null}\n
\n\n \n\n \n\n (this.threeDSContainer = ref)}\n />\n
\n this.setState({ isOfferTermsOpen: false })}\n >\n {personalizedMessages.terms}\n \n \n );\n }\n}\n\nGuestForm.propTypes = {\n validateDonationAmount: PropTypes.func,\n history: PropTypes.object,\n toggleSpinner: PropTypes.func,\n handleCountryChange: PropTypes.func,\n donateDisabled: PropTypes.bool,\n getFormData: PropTypes.func,\n saveFormData: PropTypes.func,\n doFulfilment: PropTypes.func,\n};\n\nexport default withRouter(withDonate(GuestForm));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { localsMessages } from '../utility/getTemplateData';\nimport { HeadingText } from '@paypalcorp/pp-react-text';\n\nclass DebitOrCredit extends React.Component {\n render() {\n const guestMessages = localsMessages('guest/payCreditOrDebit') || {};\n const payCreditOrDebit =\n (guestMessages.label && guestMessages.label.payCreditOrDebit) || '';\n\n return (\n
\n
\n \n {payCreditOrDebit}\n \n
\n
\n );\n }\n}\n\nDebitOrCredit.propTypes = {\n label: PropTypes.string,\n};\n\nexport default DebitOrCredit;\n","// eslint-disable-next-line no-unused-vars\nimport React, { useEffect } from 'react';\nimport { showSpinnerOverlay } from '../../utility/helper';\n\nexport default function FallbackSpinner() {\n useEffect(() => {\n showSpinnerOverlay();\n }, []);\n\n return <>;\n}\n","// Overhead\nimport React, { Suspense } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport _get from 'lodash/get';\n\n// Components\nimport LinnerDiv from '../../components/lineDiv';\nimport Note from '../../components/note';\nimport ServerErrors from '../../components/ServerErrors';\nimport AmountWrapper from '../../components/amountWrapper';\nimport GuestForm from '../guest/guestForm';\nimport PayCreditOrDebit from '../../components/payCreditOrDebit';\nimport RecurringCheckBox from '../../components/recurring-checkbox/recurring-checkbox';\nimport DonateHeader from '../../components/common/DonateHeader';\nimport CloseButton from '../../components/CloseButton';\nimport { Divider } from '@paypalcorp/pp-react-divider';\nimport { Alert } from '@paypalcorp/pp-react-alert';\n\n// App Store/Flux\nimport AppStore from '../../stores/AppStore';\nimport AppDispatcher from '../../dispatcher/AppDispatcher';\nimport * as DonateAppActions from '../../actions/AppActions';\nimport * as AppConstants from '../../utility/constants';\n// Utility\nimport '../../utility/csrf';\nimport * as amountUtils from '../../components/amount/amountUtils';\nimport {\n handleLogIn,\n handleTokenReuse,\n addShake,\n updateDonation,\n observeUntilEventObserved,\n getInitialDataInDom,\n} from '../../utility/helper';\nimport * as FPT from '../../utility/fpt';\nimport templateData, { localsMessages } from '../../utility/getTemplateData';\nimport {\n formatAmount,\n normalizeNumber,\n formatCurrency,\n} from '../../utility/formator';\nimport DonateGiftAid from '../../guest-payment-components/DonateGiftAid';\nimport withDonate from '../../components/guest/WithDonate';\n// import TeslaFormContainer from './teslaFormContainer';\nimport * as cpl from '../../utility/cpl';\n\nimport CancelAndReturn from '../../components/cancelAndReturn';\nimport Disclaimer from '../../components/Disclaimer';\nimport { PPGF_DISCLAIMER_TOUCHPOINT } from '../../utility/constants';\nimport {\n getPersonalizedMessages,\n hasPersonalizedMessages,\n} from '../../utility/personalizedMessages';\nimport {\n scrollElementIntoView,\n objectOrArrayToQueryString,\n} from '../../utility/domUtils';\nimport getContent from 'pp-react-l10n';\nimport { isExternalFlow } from '../../utility/externalIntegrationUtils';\nimport {\n isInContext,\n isMobileOrInContext,\n} from '../../utility/inContextDonation';\nimport BackButton from '../../components/BackButton';\nimport isNna from '../../utility/nna';\nimport { reactLazyPreload } from '../../utility/lazyLoader';\nimport FallbackSpinner from '../common/FallbackSpinner';\nimport { getParameterByName } from '../../utility/queryStringHelper';\nimport { isCrsAborted } from '../../utility/crsUtils';\n\nconst messages = localsMessages('common/amount');\nconst auCrsMessages = localsMessages('guest/guestForm');\n\nlet initialData = getInitialDataInDom();\n\nlet giftAidText = localsMessages('common/giftAidIt');\nlet giftAidTextObj = (giftAidText && giftAidText.giftAidIt) || {};\nconst donateGiftPercentage = AppStore.getGiftAidItExtraAmount();\n\nconst TeslaFormContainer = reactLazyPreload(() =>\n import(/* webpackChunkName: \"TeslaFormContainer\" */ './teslaFormContainer')\n);\n\nclass Guest extends React.Component {\n constructor(props) {\n super(props);\n\n this.props.showErrorOnLoad();\n\n this.state = {\n formattedAmount: this.getFormattedAmount(),\n hasLogo: templateData.hasLogo,\n subHeaderLabel: templateData.donationName,\n orgName: templateData.charityName,\n donationId: templateData.donationId,\n guestRedirectUrl: templateData.guestRedirectUrl,\n donateDisabled: false,\n showServiceErrors: false,\n errorMessages: [],\n recurringEnabled: templateData.recurringEnabled,\n recurringStatus: false,\n country: initialData.selectedCountry,\n selectedCountry: initialData.selectedCountry,\n memberMandatory: templateData.memberMandatory || false,\n accountCreationTriggered: false,\n\n recurringHelpText: '',\n recurringLabel: 'Make this a monthly donation',\n isProgressive:\n (templateData.onboardingEnabled &&\n initialData.selectedCountry !== 'RU') ||\n false,\n isDonating: false,\n isShipping: templateData.isShipping || false,\n shareAddress: {},\n progressiveComponentLoaded: false,\n paymentProcessing: false,\n programNames: templateData.donateContext.program_names,\n hasDisclaimer: hasPersonalizedMessages(PPGF_DISCLAIMER_TOUCHPOINT),\n showAuCrsBanner: false,\n };\n }\n\n getFormattedAmount = () => {\n const currency = AppStore.getDonationCode() || '';\n const amount = AppStore.getDonationAmount();\n let formattedAmount = '';\n if (amount) {\n formattedAmount = formatAmount({ currency, value: amount });\n }\n return formattedAmount;\n };\n\n logCPLData = (logData) => {\n const spinnerOverlay = document.getElementById('spinnerOverlay');\n\n if (spinnerOverlay.style.display === 'none') {\n logData();\n } else {\n observeUntilEventObserved(\n spinnerOverlay,\n { attributes: true },\n (observer) => {\n logData();\n observer.disconnect();\n return;\n }\n );\n }\n };\n\n endCustomCPLTracking = () => {\n const page = this.state.isProgressive\n ? 'main:onbrd:signup:donate:guestFormComponent'\n : 'main:donate:wps:guest:guestform:guestFormComponent:web:',\n action = this.state.isProgressive\n ? 'tesla_form_loaded'\n : 'guest_form_loaded',\n uicomp = this.state.isProgressive ? 'teslaForm' : 'guestForm';\n\n if (\n document.referrer.includes('token=') ||\n performance.navigation.type === performance.navigation.TYPE_RELOAD\n ) {\n // on page refresh or country change\n window.onload = () => {\n setTimeout(() => {\n // Without these, loadEventStart and loadEventEnd would be 0\n // and thus tt would be a negative value\n // We need this because componentDidMount runs before\n // the page has completely loaded all content\n this.logCPLData(() => {\n cpl.logPerformance({\n page,\n action,\n uicomp,\n uitype: 'page',\n });\n });\n }, 0);\n };\n } else {\n this.logCPLData(() => {\n window.PAYPAL.analytics.endCPLTracking({\n page,\n action,\n uicomp,\n uitype: 'component',\n });\n });\n }\n };\n\n componentDidMount() {\n this.props.toggleSpinner(this.state.isProgressive, this.state.isDonating);\n this.setShouldShowAuCrsBanner();\n\n // Only adding page name, if \"fptPageName=landing\", in other cases track event will be triggered when template is loaded.\n if (templateData.fptPageName.toLowerCase().includes('landing')) {\n FPT.trackPageWithData(\n 'main:donate:wps:guest:guestform',\n 'main:donate:wps:guest:guestform:web::',\n {\n ...(isNna(this.state.country) ? { offer_type: 'nna' } : {}),\n }\n );\n }\n\n // Checking for recurring status\n if (AppStore.getDonationRecurring() === 'checked') {\n this.setState({ recurringStatus: true }); // eslint-disable-line\n }\n\n // Checking token status\n handleTokenReuse();\n\n // Register for App Dispatcher Messages\n this.registerAppDispatcherMessages();\n\n // Show language selector in the footer\n DonateAppActions.showLanguageSelector(true);\n\n // startCPLTracking is initiated in landing page\n this.endCustomCPLTracking();\n }\n\n registerAppDispatcherMessages = () => {\n this.dispatcherMessages = AppDispatcher.register((payload) => {\n const actionType = _get(payload, 'action.actionType');\n\n if (actionType === 'CHANGE_AMOUNT') {\n const amount = _get(payload, 'action.item.amount', 0);\n this.updateAmount(amount);\n }\n if (actionType === AppConstants.CHANGE_RECURRING) {\n const recurringStatus =\n _get(payload, 'action.item.recurring', '') === 'checked';\n this.setState({ recurringStatus: recurringStatus });\n }\n });\n };\n\n getGiftAidExtraAmount(amount) {\n const value = (donateGiftPercentage * normalizeNumber(amount)).toFixed(2);\n const currency = AppStore.getDonationCode();\n return formatCurrency({ value, currency });\n }\n\n updateGiftAidComponent = (state) => {\n const currency = AppStore.getDonationSymbol();\n const amount = AppStore.getDonationAmount() || 0;\n const extraCostText = getContent('locals')('common/giftAidIt')(\n 'giftAidIt.extraCost',\n {\n currency,\n amount,\n extraAmount: this.getGiftAidExtraAmount(amount),\n },\n {\n useHTML: true,\n }\n );\n\n let modalp1 = (giftAidTextObj && giftAidTextObj.modalp1) || '',\n modalp2 = (giftAidTextObj && giftAidTextObj.modalp2) || '',\n applyGiftAid = (giftAidTextObj && giftAidTextObj.applyGiftAid) || '';\n\n modalp1 = modalp1 && modalp1.replace('{orgName}', state.subHeaderLabel);\n modalp2 = modalp2 && modalp2.replace('{orgName}', state.subHeaderLabel);\n applyGiftAid =\n applyGiftAid && applyGiftAid.replace('{orgName}', state.subHeaderLabel);\n\n giftAidTextObj.extraCost = extraCostText;\n giftAidTextObj.modalp1 = modalp1;\n giftAidTextObj.modalp2 = modalp2;\n giftAidTextObj.applyGiftAid = applyGiftAid;\n };\n\n componentWillUnmount() {\n AppDispatcher.unregister(this.dispatcherMessages);\n }\n\n getFPTDATA = () => {\n return {\n amount: AppStore.getDonationAmount(),\n code: AppStore.getDonationCode(),\n symbol: AppStore.getDonationSymbol(),\n };\n };\n\n updateConversionStatus = (status = false) => {\n this.setState({ donateDisabled: status });\n };\n\n handleLogIn = (event) => {\n event.preventDefault();\n\n if (AppStore.getDonationAmount()) {\n FPT.trackLinkClickWithData('guestLogIn', {\n amount: AppStore.getDonationAmount(),\n code: AppStore.getDonationCode(),\n symbol: AppStore.getDonationSymbol(),\n });\n }\n\n // Proceed to Login only if the donation amount is valid\n if (this.validateDonationAmount()) {\n handleLogIn();\n }\n };\n\n /**\n * Display validation error\n */\n displayValidationError = () => {\n const errorMessage = amountUtils.getMinimumDonationErrorMessage(messages);\n this.setState({\n showValidationError: true,\n validationErrorMessage: errorMessage,\n });\n addShake();\n };\n\n hideValidationError = () => {\n this.setState({ showValidationError: false });\n };\n\n /**\n * Validates donation amount and displays the validation error if any\n */\n validateDonationAmount = () => {\n let validationResult = amountUtils.validateMinimumDonationAmount(messages);\n if (validationResult?.showValidationError) {\n this.setState(validationResult);\n addShake();\n scrollElementIntoView('.money_input');\n return false;\n }\n\n validationResult = amountUtils.validateMaximumDonationAmount();\n if (validationResult?.showValidationError) {\n this.setState(validationResult);\n addShake();\n scrollElementIntoView('.money_input');\n return false;\n }\n\n this.setState(validationResult);\n return true;\n };\n\n handleRecurringChange = (status = false) => {\n DonateAppActions.changeRecurring({\n recurring: status ? 'checked' : 'unchecked',\n });\n };\n\n /**\n * Clear the validation error onFocus\n */\n handleAmountFocus = () => {\n if (this.state.showValidationError) {\n this.hideValidationError();\n }\n };\n\n /*\n * handlePaymentSuccess\n */\n handlePaymentSuccess = (response) => {\n const { token } = templateData;\n const queryParams = objectOrArrayToQueryString({ token });\n if (response.isOfacPending) {\n return this.props.history.push(`/donate/guest/pending?${queryParams}`);\n }\n return this.props.history.push(`/donate/guest/confirmation?${queryParams}`);\n };\n\n /*\n * handlePaymentFailure\n */\n handlePaymentFailure = () => {\n this.props.toggleSpinner(false);\n return this.props.history.push('/donate/error/payment');\n };\n\n /*\n * handleMemberFailure\n * Redirect all member failure to donate/member\n * Known case\n * Case 1 :- WSM_PAYER_FUNDING_INSTRUMENTS_UNAVAILABLE\n * Case 2 :- WSM_VALIDATION_ERROR\n */\n handleMemberFailure = () => {\n updateDonation(`/donate/member?token=${templateData.token}`);\n };\n\n updateAmount(amount) {\n const currency = AppStore.getDonationCode() || '';\n this.setState({\n formattedAmount: formatAmount({ currency, value: amount }),\n });\n }\n\n handleGiftAidOption(giftAidState) {\n DonateAppActions.updateGiftaidItFlag({ giftAidItFlag: giftAidState });\n }\n\n /**\n * Should show note when charityNote is enabled and recurring is disabled for non-client flows\n * @return {Boolean} true to show note field\n */\n shouldShowNote = () => {\n return (\n templateData.charityNoteEnabled &&\n !this.state.recurringStatus &&\n !isExternalFlow()\n );\n };\n\n createMarkup = (str) => {\n return {\n __html: str,\n };\n };\n\n getPersonalizedContent = () => {\n return getPersonalizedMessages(PPGF_DISCLAIMER_TOUCHPOINT, { merge: true });\n };\n\n setShouldShowAuCrsBanner = () => {\n const status = getParameterByName('status'),\n statusCode = getParameterByName('statusCode');\n\n const { auTax: { abortedBanner = '' } = {} } = auCrsMessages;\n\n if (isCrsAborted(status, statusCode)) {\n this.setState({\n showAuCrsBanner: true,\n auCrsBannerMsg: abortedBanner,\n });\n FPT.trackAuCrs(status, statusCode);\n }\n };\n\n render() {\n const recurringStatus = AppStore.getDonationRecurring() === 'checked';\n\n if (templateData.isGiftaiditEnabled) {\n this.updateGiftAidComponent(this.state);\n }\n\n return (\n <>\n \n \n {isExternalFlow() && templateData.ismobile && }\n {(isInContext() || isExternalFlow()) && }\n {this.state.showAuCrsBanner && (\n \n {this.state.auCrsBannerMsg}\n \n )}\n \n
\n \n \n\n {this.state.recurringEnabled && (\n \n )}\n\n {templateData.isGiftaiditEnabled && (\n \n )}\n \n {this.shouldShowNote() ? : null}\n \n \n\n {!this.state.isProgressive && (\n
\n \n
\n )}\n \n {this.state.isProgressive && (\n }>\n \n \n )}\n {this.state.hasDisclaimer && (\n \n )}\n
\n \n \n \n );\n }\n}\n\nGuest.propTypes = {\n toggleSpinner: PropTypes.func,\n history: PropTypes.object,\n showErrorOnLoad: PropTypes.func,\n};\n\nexport default withRouter(withDonate(Guest));\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","module.exports = require('./forEach');\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n"],"sourceRoot":""}