{"version":3,"sources":["webpack:///./src/components/Address/handlers.js","webpack:///./src/components/Address/Components.tsx","webpack:///./src/components/Address/AddressForm.tsx","webpack:///./src/components/Address/hooks/useShippingAddress.ts","webpack:///./src/components/Address/Address.tsx"],"names":["getShippingCountryChangeHandler","props","onShippingCallback","arguments","length","undefined","noop","_len","args","Array","_key","e","country","disabled","preventDefault","fetchAddressMetadata","then","payload","_objectSpread","getBaseAddressFields","autoCompleteType","value","AUTO_COMPLETE_TYPE","MANUAL","isManipulated","logger","info","appStore","getActions","form","updateAddressField","addressType","isBatchUpdate","changeHandler","conditionallyCalculateShippingAndTaxes","shipToBillingChangeHandler","_shippingAddress$coun","api","apiState","formState","getState","merchantCountry","cartDetails","merchant","isNonDomesticTransaction","getLocale","isShippingRestricted","features","isActive","hasShippingAddressQualityExperiment","shipToBilling","target","checked","CI","start","Event","SAME_AS_SHIPPING_ADDRESS_RENDER","billingAddress","firstName","lastName","shippingAddress","formActions","_Object$keys","billingFields","shippingPayload","Object","entries","reduce","accum","_ref","fieldName","fieldState","displayError","error","errorCode","isDirty","isValid","keys","meta","_ref2","updateShipToBilling","debounceDispatches","debounce","BROWSER","debounceShippingAddress","debounceBillingAddress","getAddressFieldsChangeHandler","_ref3","setShowAutoCompleteSingleLine","setSuggestedAddressList","suppressBrowserAutofill","oldValue","namespace","field","getFieldData","inputLengthToTriggerApi","charCount","fieldType","type","hasAddressAutoCompleteSingleLine","throttledGetAddressAutocomplete","input","concat","fpti","TRACK_ADDRESS_INPUT_PAYLOAD","clearApiAddressValidationError","browserAutocompleteCallback","getAddressSelectionHandler","_ref4","suggestedAddressList","_ref5","placeId","state_name","transition_name","suggestion_used","addressIndex","findIndex","addr","getFieldPayload","_ref6","Boolean","getDefaultInputState","getAddressFromAutocompletePlaceId","result","city","line1","postalCode","state","toUpperCase","addressMeta","griffinMetadata","address","getAddressMetaKey","validatedPayload","validateAddressFields","shouldUpdateValue","updateAllAddressFieldsUsingGoogleAutocomplete","updateShippingOnAddressSelection","isStateAndPostalCodeValidForShipping","warn","line2Element","document","getElementById","focus","getResetHandler","_ref8","element","id","resetHandler","_ref7","name","dispatchFormAction","device","isMobile","getGlobals","Country","_props$selectOptions","selectOptions","React","createElement","FloatingLabelSelect","_extends","floatingLabelContainerStyleOverrides","isChangeBlocked","countryContainerStyleOverrides","isRequired","label","getContent","LoadingElement","BlockNonDomesticShipping","hasBlockNonDomesticShippingRestriction","isShipping","PaypalThemedProvider","Alert","CountryAndName","showFullName","billingFirstName","useStoreState","billingLastName","countriesList","locale","territories","merchantInfo","Fragment","getAdditionalCountryProps","FullName","blurHandler","focusHandler","labels","firstNameId","firstNameInputName","generateChangeHandlerMeta","lastNameId","lastNameInputName","AddressFields","showTitle","_objectWithoutProperties","_excluded","useEndCiWith","Status","Ok","isBilling","typeOfAddress","_useStoreState","addressFirstName","houseNumber","addressLastName","streetName","_excluded2","isBrowserAutofillSuppressed","addressMetadata","isFormSubmitting","_ref9","ui","hasShipToBillingCheckbox","canPayerShipToBilling","shippingCountry","addressMetaKey","useState","showAutoCompleteSingleLine","hideSingleLine","hideAddressSuggestionSingleLine","enableAddressAutocomplete","shouldShowSplitLineOne","isSntSupported","isShippingCallbacksEligible","someActive","additionalProps","addressSelectionHandler","contentObject","addressSharedDisclaimer","line1Instruction","privacyLink","slice","privacyLinkText","_e$target","_shippingAddress$fiel","_shippingAddress$fiel2","getShippingAddress","fieldNameWithPrefix","fieldNameWithoutPrefix","replace","fieldNameCamelCase","toLowerCase","includes","SHIPPING_AND_CALLBACK_ADDRESS_FIELDS","has","isShippingCallbackRequiredAddressValid","getSncAddressFieldsBlurHandler","getSntAddressFieldsBlurHandler","SplitAddressLine1WithAddressType","useMemo","SplitAddressLine1","componentsMapOverrides","AddressAutoPopulationPostalCode","line1Content","localeAddressMetadata","updateAddressMetadataForSingleLine","getAddressMetadata","AddressComponent","disableAll","enableAddressAutocompleteSingleLine","enableDontSeeMyAddressSuggestion","fieldsPrefix","legend","loadingRenderProp","LoadingFields","overrideAddressSuggestionStyle","renderBefore","styleOverrides","fieldset","getFieldsetStyles","addressHeaderStyles","AddressForm","showCheckboxes","showShipToBilling","isForcedGuest","useShippingAddress","isReduxStoreHydrated","onShippingAddressCallback","useShippingAddressCallbacks","useEffect","ParentContainer","margin","Checkbox","logBlurOrFocusEvent","required","OnboardTerms","Address","useMountLogging"],"mappings":"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","file":"9.3b8522f3b2b4dc346a0a.js","sourcesContent":["// External libraries\nimport debounce from 'lodash.debounce';\n\n// Internal modules\nimport {\n appStore,\n dispatchFormAction,\n getBaseAddressFields,\n getDefaultInputState,\n} from '@/store';\nimport {\n browserAutocompleteCallback,\n CI,\n features,\n getAddressMetaKey,\n getLocale,\n logger,\n noop,\n} from '@/lib';\nimport { getShippingAddress } from '@/lib/utils/shipping';\n\nimport {\n fetchAddressMetadata,\n getAddressFromAutocompletePlaceId,\n throttledGetAddressAutocomplete,\n} from './api';\nimport { getFieldData } from '../Form/utils';\nimport { AUTO_COMPLETE_TYPE } from '@/store';\nimport { TRACK_ADDRESS_INPUT_PAYLOAD } from './fpti';\nimport {\n clearApiAddressValidationError,\n isShippingCallbackRequiredAddressValid,\n isStateAndPostalCodeValidForShipping,\n validateAddressFields,\n} from './utils';\nimport { conditionallyCalculateShippingAndTaxes } from '../Shipping/utils';\nimport { SHIPPING_AND_CALLBACK_ADDRESS_FIELDS } from './constants';\n\nconst getShippingCountryChangeHandler =\n (props, onShippingCallback = noop) =>\n (...args) => {\n const [e, country] = args;\n if (props.disabled) {\n return e?.preventDefault();\n }\n\n fetchAddressMetadata(country).then(() => {\n const payload = {\n // reset the address fields\n ...getBaseAddressFields(),\n // set account quality meta data\n autoCompleteType: {\n value: AUTO_COMPLETE_TYPE.MANUAL,\n },\n isManipulated: {\n value: true,\n },\n };\n\n logger.info('shipping_country_changed_and_fields_cleared');\n appStore.getActions().form.updateAddressField({\n addressType: 'shippingAddress',\n isBatchUpdate: true,\n payload,\n });\n });\n\n props?.changeHandler(...args);\n conditionallyCalculateShippingAndTaxes();\n onShippingCallback();\n };\n\n/**\n *\n * @param {Event} e onBlur\n * @param {Function} onShippingCallback - represents any of the shipping\n * and callbacks(V1 & V2).\n * @NOTE `Snc` stands for `Shipping and callback`\n *\n * @returns {undefined}\n */\nconst getSncAddressFieldsBlurHandler = (e, onShippingCallback = noop) => {\n const { form: formState } = appStore.getState();\n const shippingAddress = getShippingAddress();\n\n const { shipToBilling } = formState;\n const fieldNameWithPrefix = e?.target?.name || '';\n const fieldNameWithoutPrefix = fieldNameWithPrefix.replace(\n /billing|shipping/g,\n '',\n );\n // Convert field name to camel case\n const fieldNameCamelCase =\n fieldNameWithoutPrefix[0].toLowerCase() + fieldNameWithoutPrefix.slice(1);\n\n // Do not invoke shipping callback if billing address is changed and\n // shipToBilling is unchecked.\n if (!shipToBilling.value && fieldNameWithPrefix.includes('billing')) {\n return;\n }\n\n // Do not invoke callback if:\n // 1. field isn't part of the shipping callback address fields. I.e `line1`\n // 2. OR field is empty.\n if (\n !SHIPPING_AND_CALLBACK_ADDRESS_FIELDS.has(\n fieldNameWithoutPrefix.toLowerCase(),\n ) ||\n !shippingAddress[fieldNameCamelCase]?.value?.length\n ) {\n return;\n }\n\n // The shipping callback should be invoked only when user has already filled\n // all of the shipping callback required fields.\n if (!isShippingCallbackRequiredAddressValid(shippingAddress)) {\n return;\n }\n\n onShippingCallback();\n};\n\nconst getSntAddressFieldsBlurHandler = e => {\n const { form: formState } = appStore.getState();\n const { shipToBilling } = formState;\n const fieldName = e.target.name.toLowerCase();\n // Do not trigger API if billing address is changed and shipToBilling is\n // unchecked\n if (!shipToBilling.value && fieldName.includes('billing')) {\n return;\n }\n\n if (fieldName.includes('state') || fieldName.includes('postalcode')) {\n if (!isStateAndPostalCodeValidForShipping()) {\n logger.warn('calculate_shipping_and_taxes_invalid_fields');\n return;\n }\n conditionallyCalculateShippingAndTaxes();\n }\n};\n\nconst shipToBillingChangeHandler = e => {\n // Ensure the value can't be updated if shipping country is restricted\n const { api: apiState, form: formState } = appStore.getState();\n const { country: merchantCountry } = apiState.cartDetails.merchant;\n const isNonDomesticTransaction = getLocale().country !== merchantCountry;\n const isShippingRestricted = features.isActive('blockNonDomesticShipping');\n const hasShippingAddressQualityExperiment = features.isActive(\n 'hasShippingAddressQualityExperiment',\n );\n\n if (isShippingRestricted && isNonDomesticTransaction) {\n return;\n }\n\n const shipToBilling = e.target.checked;\n if (!shipToBilling) {\n CI.start(CI.Event.SAME_AS_SHIPPING_ADDRESS_RENDER);\n }\n\n const { billingAddress, firstName, lastName, shippingAddress } = formState;\n const { form: formActions } = appStore.getActions();\n\n // If the shipping and billing country are the same, copy over billing\n // field values to shipping values state that are currently empty\n const { country } = getLocale();\n if (!shipToBilling && shippingAddress.country.value === country) {\n const billingFields = {\n ...billingAddress,\n firstName,\n lastName,\n };\n\n const shippingPayload = Object.entries(billingFields).reduce(\n (accum, [fieldName, fieldState]) => {\n if (!shippingAddress[fieldName].value && fieldState.value) {\n const { displayError, error, errorCode, isDirty, isValid, value } =\n fieldState;\n\n // We are passing error related keys so that if a user unchecks\n // the checkbox after seeing a validation error on billing address,\n // then we would want these errors to show up on shipping as well\n // Eg: Address_validation_error -> submit the page and then uncheck\n // the shipToBilling checkbox\n accum[fieldName] = {\n displayError,\n error,\n errorCode,\n isDirty,\n isValid,\n value,\n };\n }\n\n return accum;\n },\n {},\n );\n\n if (\n Object.keys(shippingPayload)?.length &&\n !hasShippingAddressQualityExperiment\n ) {\n // meta has hasValidationError set which needs to be copied as well\n // If we dont then validation error will not be cleared if we edit\n // one of the invalid fields after address_validation_error from backend\n shippingPayload.meta = billingFields.meta || {};\n formActions.updateAddressField({\n addressType: 'shippingAddress',\n isBatchUpdate: true,\n payload: shippingPayload,\n });\n } else if (hasShippingAddressQualityExperiment) {\n // when address quality experiment is on\n // clear the shipping fields and prefill only\n // first and last name\n const shippingFields = Object.entries(billingFields).reduce(\n (accum, [fieldName]) => {\n if (fieldName !== 'firstName' && fieldName !== 'lastName') {\n accum[fieldName] = {\n displayError: false,\n error: '',\n errorCode: '',\n isDirty: false,\n isValid: false,\n value: '',\n };\n }\n return accum;\n },\n {},\n );\n const shippingPayload = {\n firstName,\n lastName,\n ...shippingFields,\n };\n formActions.updateAddressField({\n addressType: 'shippingAddress',\n isBatchUpdate: true,\n payload: shippingPayload,\n });\n }\n }\n\n if (\n shippingAddress?.country?.value &&\n shippingAddress.country.value !== getLocale().country\n ) {\n fetchAddressMetadata(shippingAddress.country.value);\n }\n\n formActions.updateShipToBilling(shipToBilling);\n conditionallyCalculateShippingAndTaxes();\n};\n\nconst debounceDispatches = addressType => {\n return debounce(() => {\n const { form: formActions } = appStore.getActions();\n const payload = {\n autoCompleteType: {\n value: AUTO_COMPLETE_TYPE.BROWSER,\n },\n isManipulated: {\n value: false,\n },\n };\n\n formActions.updateAddressField({\n addressType,\n isBatchUpdate: true,\n payload,\n });\n }, 100);\n};\n\nconst debounceShippingAddress = debounceDispatches('shippingAddress');\nconst debounceBillingAddress = debounceDispatches('billingAddress');\n\nconst getAddressFieldsChangeHandler =\n ({\n country,\n props,\n setShowAutoCompleteSingleLine,\n setSuggestedAddressList,\n suppressBrowserAutofill,\n }) =>\n (e, value, oldValue, meta) => {\n const { addressType: namespace, field } = getFieldData(e.target, meta);\n const { addressType } = meta;\n const inputLengthToTriggerApi = suppressBrowserAutofill ? 2 : 4;\n const charCount = value?.length;\n const fieldType = e.target.type;\n const hasAddressAutoCompleteSingleLine = features.isActive(\n 'hasAddressAutoCompleteSingleLine',\n );\n\n if (\n field === 'line1' &&\n oldValue.length < inputLengthToTriggerApi &&\n charCount > inputLengthToTriggerApi &&\n hasAddressAutoCompleteSingleLine\n ) {\n // If user entered address thru browser autofill\n // show the rest of the address fields\n setShowAutoCompleteSingleLine(false);\n setSuggestedAddressList([]);\n } else if (field === 'line1' && charCount >= inputLengthToTriggerApi) {\n // If user clicks on browser autofill then do not trigger the API\n if (charCount <= oldValue.length + 1) {\n throttledGetAddressAutocomplete(\n { addressType, country, input: value },\n setSuggestedAddressList,\n );\n } else {\n logger.info(`${addressType}_line1_multiple_char_change_no_api_call`);\n setSuggestedAddressList([]);\n }\n } else if (field === 'line1' && charCount < inputLengthToTriggerApi) {\n setSuggestedAddressList([]);\n }\n\n // If user enters a character into line2 field then log the same\n // or log change in value which is more than one character entered\n // which basically means browser autofill, or copy paste or a plugin entry\n if (\n (field === 'line2' && charCount <= 1) ||\n charCount > oldValue.length + 1\n ) {\n logger.fpti(\n `${field}_value_change`,\n TRACK_ADDRESS_INPUT_PAYLOAD({\n addressType,\n charCount,\n fieldName: field,\n fieldType,\n }),\n );\n }\n\n /**\n * The address validation error is an error that is returned from the API\n * when there is a mismatch between the city, state, and postal code. Since\n * we don't know which field is incorrect, when the user changes one of\n * those fields we clear out the error on the other two fields.\n */\n clearApiAddressValidationError({ addressType: namespace, field });\n\n props.changeHandler(e, value, oldValue, meta);\n\n browserAutocompleteCallback(e, () => {\n if (addressType === 'shipping') {\n debounceShippingAddress();\n } else {\n debounceBillingAddress();\n }\n });\n };\n\nconst updateShippingOnAddressSelection = (addressType, onShippingCallback) => {\n const { form: formState } = appStore.getState();\n const { shipToBilling } = formState;\n if (\n addressType === 'shipping' ||\n (addressType === 'billing' && shipToBilling.value)\n ) {\n if (!isStateAndPostalCodeValidForShipping()) {\n logger.warn('calculate_shipping_and_taxes_invalid_fields');\n return;\n }\n logger.info('calculate_shipping_and_taxes_on_address_selection');\n conditionallyCalculateShippingAndTaxes();\n onShippingCallback();\n }\n};\n\nconst getAddressSelectionHandler =\n ({\n onShippingCallback = noop,\n setShowAutoCompleteSingleLine,\n setSuggestedAddressList,\n suggestedAddressList,\n }) =>\n (e, { addressType, placeId }) => {\n const hasAddressAutoCompleteSingleLine = features.isActive(\n 'hasAddressAutoCompleteSingleLine',\n );\n\n if (placeId === 'IDONTSEEIT' && hasAddressAutoCompleteSingleLine) {\n setShowAutoCompleteSingleLine(false);\n\n return;\n }\n if (!placeId) {\n logger.fpti('google_address_select_place_id_missing', {\n state_name: 'billing_page_google_address_autocomplete',\n transition_name: 'process_google_address_selection_place_id_missing',\n });\n setShowAutoCompleteSingleLine(false);\n\n return;\n }\n\n logger.fpti('google_address_select_attempt', {\n state_name: 'billing_page_google_address_autocomplete',\n suggestion_used: placeId,\n transition_name: 'process_google_address_selection',\n });\n e.preventDefault();\n const addressIndex = suggestedAddressList.findIndex(\n addr => addr.placeId === placeId,\n );\n\n setSuggestedAddressList([suggestedAddressList[addressIndex]]);\n\n const getFieldPayload = ({ value }) => {\n const isValid = Boolean(value);\n const payload = {\n ...getDefaultInputState(),\n isValid,\n value: value || '', // Handle null as value\n };\n\n return payload;\n };\n\n getAddressFromAutocompletePlaceId({\n addressIndex,\n addressType,\n placeId,\n }).then(result => {\n if (Object.keys(result || {}).length > 0) {\n const { form: formActions } = appStore.getActions();\n const { city, country, line1, postalCode, state } = result;\n const payload = {\n city: getFieldPayload({ field: 'city', value: city }),\n line1: getFieldPayload({ field: 'line1', value: line1 }),\n postalCode: getFieldPayload({\n field: 'postalCode',\n value: postalCode,\n }),\n state: getFieldPayload({\n field: 'state',\n value: state?.toUpperCase(),\n }),\n };\n\n // Validate address fields and then update the state so that\n // state maintains right validation values\n const { api: apiState } = appStore.getState();\n const addressMeta =\n apiState.griffinMetadata.address[getAddressMetaKey(country)];\n const validatedPayload = validateAddressFields({\n address: payload,\n addressMeta,\n shouldUpdateValue: true,\n });\n\n formActions.updateAllAddressFieldsUsingGoogleAutocomplete({\n addressType: `${addressType}Address`,\n isBatchUpdate: true,\n payload: validatedPayload,\n });\n\n // calculate shipping and taxes when the address is\n // populated with auto complete and only when there is\n // a change in shipping address\n updateShippingOnAddressSelection(addressType, onShippingCallback);\n setShowAutoCompleteSingleLine(false);\n\n // Focus line2 to make sure user verifies the address and enters\n // missing apartment number if needed\n const line2Element = document.getElementById(`${addressType}Line2`);\n\n line2Element?.focus();\n }\n });\n };\n\n// Generic reset handler that can reset any field to default value\nconst resetHandler = (e, { addressType: type, id, name }) => {\n e.preventDefault();\n\n // type value is billing or shipping\n // addressType value is billingAddress or shippingAddress\n const { addressType, field } = getFieldData(\n { id, name },\n { addressType: type },\n );\n const payload = getDefaultInputState();\n\n dispatchFormAction({ addressType, field, payload });\n};\n\n// We are setting the UI element focus to line1 and then\n// Reset address line1 input state to default state\nconst getResetHandler =\n ({ setSuggestedAddressList }) =>\n (e, meta) => {\n const element = document.getElementById(meta.id);\n\n // Focus on the input element which has reset button\n element?.focus();\n // Clear the suggested address list when reset\n // button is clicked by user\n setSuggestedAddressList([]);\n // Call default resetHandler to update field state\n resetHandler(e, meta);\n };\n\nconst shareAddressWithDonateeChangeHandler = e => {\n const shareAddressWithDonatee = e.target.checked;\n const { form: formActions } = appStore.getActions();\n\n formActions.updateShareAddressWithDonatee(shareAddressWithDonatee);\n\n logger.fpti('weasley_share_address_with_donatee_consent', {\n is_checked: shareAddressWithDonatee ? 1 : 0,\n state_name: 'billing',\n transition_name: 'process_doner_consent',\n });\n};\n\nexport {\n getAddressFieldsChangeHandler,\n getAddressSelectionHandler,\n getResetHandler,\n getShippingCountryChangeHandler,\n getSncAddressFieldsBlurHandler,\n getSntAddressFieldsBlurHandler,\n shareAddressWithDonateeChangeHandler,\n shipToBillingChangeHandler,\n};\n","// External libraries\nimport React, { useMemo, useState } from 'react';\nimport { Alert } from '@paypalcorp/pp-react-alert-weasley-v7';\nimport {\n Address as AddressComponent,\n FloatingLabelSelect,\n FullName,\n // @ts-expect-error untyped-import\n} from '@checkout/react-components';\n\n// Internal modules\nimport { useStoreState } from '@/store';\nimport { PaypalThemedProvider } from '@/styles';\nimport {\n CI,\n features,\n getAddressMetaKey,\n getContent,\n getGlobals,\n getLocale,\n useEndCiWith,\n} from '@/lib';\nimport { LoadingElement, LoadingFields } from '@/components/Common';\nimport {\n getAddressFieldsChangeHandler,\n getAddressSelectionHandler,\n getResetHandler,\n getShippingCountryChangeHandler,\n getSncAddressFieldsBlurHandler,\n getSntAddressFieldsBlurHandler,\n // @ts-expect-error untyped-import\n} from './handlers';\nimport {\n canPayerShipToBilling,\n generateChangeHandlerMeta,\n getAdditionalCountryProps,\n hideAddressSuggestionSingleLine,\n updateAddressMetadataForSingleLine,\n // @ts-expect-error untyped-import\n} from './utils';\nimport { getAddressMetadata } from '@/lib/utils';\nimport {\n addressHeaderStyles,\n countryContainerStyleOverrides,\n getFieldsetStyles,\n} from './styles';\nimport { SplitAddressLine1 } from './SplitAddressLine1';\n// @ts-expect-error untyped-import\nimport { AddressAutoPopulationPostalCode } from './AddressAutoPopulationPostalCode';\nimport type {\n GenericObjectType,\n InputOnBlurChange,\n InputOnChange,\n InputOnFocus,\n} from '@/types';\nimport type { FormState } from '@/store/models/form/types';\nimport type { AddressType } from '@/types';\n\nconst {\n device: { isMobile },\n} = getGlobals();\n\ntype CountryProps = {\n blurHandler?: InputOnBlurChange;\n changeHandler: InputOnChange;\n country?: {\n displayError?: boolean;\n error?: string;\n errorCode?: string;\n value?: string;\n };\n focusHandler?: InputOnFocus;\n isChangeBlocked?: boolean;\n selectOptions?: GenericObjectType[];\n};\n\nconst Country = (props: CountryProps): JSX.Element => {\n if (!props.selectOptions?.length) {\n return ;\n }\n\n return (\n \n );\n};\n\ntype BlockNonDomesticShippingProps = {\n hasBlockNonDomesticShippingRestriction: boolean;\n isShipping: boolean;\n merchantCountry: boolean | string;\n};\n\nconst BlockNonDomesticShipping: React.FC = ({\n hasBlockNonDomesticShippingRestriction,\n isShipping,\n merchantCountry,\n}) => {\n if (\n !isShipping ||\n !hasBlockNonDomesticShippingRestriction ||\n !merchantCountry\n ) {\n return null;\n }\n\n return (\n \n \n {getContent('messages.blockNonDomesticShipping', {\n merchantCountry,\n })}\n \n \n );\n};\n\ntype CountryAndNameProps = {\n blurHandler?: InputOnBlurChange;\n changeHandler: InputOnChange;\n // @ts-expect-error - Add country typing to FormState\n country?: FormState['country'];\n disabled?: boolean;\n firstName?: FormState['firstName'];\n focusHandler?: InputOnFocus;\n lastName?: FormState['lastName'];\n onShippingCallback: () => void;\n showFullName?: boolean;\n addressType: AddressType;\n};\n\nconst CountryAndName = (props: CountryAndNameProps): JSX.Element => {\n const { showFullName = true, onShippingCallback } = props;\n const billingFirstName = useStoreState(({ form }) => form.firstName);\n const billingLastName = useStoreState(({ form }) => form.lastName);\n const countriesList = useStoreState(({ api }) => {\n const { locale } = getLocale();\n return api.griffinMetadata.territories[locale];\n });\n const merchantInfo = useStoreState(({ api }) => api.cartDetails.merchant);\n const isShipping = props.addressType === 'shipping';\n const hasBlockNonDomesticShippingRestriction = features.isActive(\n 'blockNonDomesticShipping',\n );\n const merchantCountry =\n merchantInfo?.country &&\n hasBlockNonDomesticShippingRestriction &&\n getContent(`country.${merchantInfo.country}`);\n\n return (\n <>\n \n\n {isShipping && (\n \n )}\n\n {showFullName &&\n !features.isActive('shouldDisplayJpKanaAndKanjiNames') && (\n \n )}\n >\n );\n};\n\ntype AddressFieldsProps = {\n blurHandler?: InputOnBlurChange;\n changeHandler: InputOnChange;\n focusHandler?: InputOnFocus;\n onShippingCallback: () => void;\n showTitle?: boolean;\n addressType: AddressType;\n};\n\nconst AddressFields = ({\n showTitle = true,\n onShippingCallback,\n ...props\n}: AddressFieldsProps): JSX.Element => {\n useEndCiWith(CI.Event.SAME_AS_SHIPPING_ADDRESS_RENDER, CI.Status.Ok);\n\n const { addressType } = props;\n const isBilling = addressType === 'billing';\n const typeOfAddress = !isBilling ? 'shippingAddress' : 'billingAddress';\n const {\n autoCompleteType,\n // @ts-expect-error firstName is not defined in store on billingAddress\n firstName: addressFirstName,\n houseNumber,\n isManipulated,\n // @ts-expect-error lastName is not defined in store on billingAddress\n lastName: addressLastName,\n streetName,\n ...address\n } = useStoreState(({ form }) => form[typeOfAddress]);\n\n // checking for new shipping address quality single line experiment\n const hasShippingAddressQualityExperiment = features.isActive(\n 'hasShippingAddressQualityExperiment',\n );\n const hasAddressAutoCompleteSingleLine = features.isActive(\n 'hasAddressAutoCompleteSingleLine',\n );\n const isBrowserAutofillSuppressed = features.isActive(\n 'hasAddressAutocompleteWithNoBrowserAutofill',\n );\n const addressMetadata = useStoreState(\n ({ api }) => api.griffinMetadata.address,\n );\n const isFormSubmitting = useStoreState(({ ui }) => ui.isFormSubmitting);\n const hasShipToBillingCheckbox =\n canPayerShipToBilling() && features.isActive('isAllowChangeShipping');\n const { country, locale } = getLocale();\n // @ts-expect-error country is not always defined in store\n const { value: shippingCountry } = address.country || {};\n const addressMetaKey = getAddressMetaKey(shippingCountry || country);\n const [suggestedAddressList, setSuggestedAddressList] = useState([]);\n const [showAutoCompleteSingleLine, setShowAutoCompleteSingleLine] = useState(\n hasAddressAutoCompleteSingleLine,\n );\n // hide single line if single line treatment is on and also\n // cart has prefilled address\n const hideSingleLine =\n showAutoCompleteSingleLine && hideAddressSuggestionSingleLine(address);\n const enableAddressAutocomplete = features.isActive('hasAddressAutocomplete');\n const shouldShowSplitLineOne = features.isActive('shouldShowSplitLineOne');\n const isSntSupported = features.isActive('isSntSupported');\n const isShippingCallbacksEligible = features.someActive(\n 'isShippingCallbacksV2Eligible',\n 'isShippingCallbackV1Eligible',\n );\n let additionalProps = {};\n if (enableAddressAutocomplete) {\n // additionalProps overrides changeHandler on props\n additionalProps = {\n addressSelectionHandler: getAddressSelectionHandler({\n onShippingCallback,\n setShowAutoCompleteSingleLine,\n setSuggestedAddressList,\n suggestedAddressList,\n }),\n changeHandler: getAddressFieldsChangeHandler({\n country: shippingCountry || country,\n props,\n setShowAutoCompleteSingleLine,\n setSuggestedAddressList,\n suppressBrowserAutofill: isBrowserAutofillSuppressed,\n }),\n contentObject: {\n addressSharedDisclaimer:\n features.isActive('hasAddressAutocompleteDisclaimer') &&\n getContent('terms.addressSharedWithGoogle'),\n line1Instruction: getContent('messages.startTypingAddressLine1'),\n privacyLink:\n features.isActive('hasAddressAutocompletePrivacyLink') &&\n `https://policies.google.com/privacy?hl=${locale?.slice(0, 2)}`,\n privacyLinkText:\n features.isActive('hasAddressAutocompletePrivacyLink') &&\n getContent('compliance.googlePrivacyPolicyLinkText'),\n },\n enableAddressAutocomplete,\n isMobile,\n line1: {\n ...address?.line1,\n suppressBrowserAutofill: isBrowserAutofillSuppressed,\n },\n resetHandler: getResetHandler({\n setSuggestedAddressList,\n }),\n suggestedAddressList,\n };\n }\n\n additionalProps = {\n changeHandler: props.changeHandler,\n focusHandler: props.focusHandler,\n ...additionalProps,\n blurHandler: (e: React.FocusEvent) => {\n if (isShippingCallbacksEligible) {\n getSncAddressFieldsBlurHandler(e, onShippingCallback);\n }\n if (isSntSupported) {\n getSntAddressFieldsBlurHandler(e);\n }\n },\n };\n\n /* addressType isn't recognized by the Address component, so we need to include it here */\n const SplitAddressLine1WithAddressType = useMemo(\n () =>\n (props: any): JSX.Element => {\n return ;\n },\n [addressType],\n );\n\n const componentsMapOverrides = {\n ...(shouldShowSplitLineOne && {\n line1: SplitAddressLine1WithAddressType,\n postalCode: AddressAutoPopulationPostalCode,\n }),\n };\n\n const line1Content = getContent(`billing.${addressType}Address`);\n // if singleline treatment on and true\n // show line1 label as billing or shipping address\n // else show as-is from griffin\n const localeAddressMetadata =\n enableAddressAutocomplete && hideSingleLine\n ? updateAddressMetadataForSingleLine(\n getAddressMetadata(addressMetadata, addressMetaKey),\n line1Content,\n )\n : getAddressMetadata(addressMetadata, addressMetaKey);\n\n return (\n }\n overrideAddressSuggestionStyle={hasShippingAddressQualityExperiment}\n renderBefore={() => (\n \n )}\n styleOverrides={{\n fieldset: getFieldsetStyles({\n hasShipToBillingCheckbox,\n isBilling,\n }),\n legend: addressHeaderStyles,\n }}\n {...address}\n {...additionalProps}\n />\n );\n};\n\nexport { AddressFields, Country, CountryAndName };\n","// External libraries\nimport React, { useEffect } from 'react';\n\n// Internal modules\nimport {\n canPayerShipToBilling,\n isShippingCallbackRequiredAddressValid,\n // @ts-expect-error untyped imports\n} from './utils';\nimport { useStoreState } from '@/store';\nimport { features, getContent } from '@/lib';\nimport { useShippingAddress } from './hooks';\nimport { logBlurOrFocusEvent } from '../Form/utils';\n// @ts-expect-error untyped imports\nimport { shipToBillingChangeHandler } from './handlers';\nimport { Checkbox, ParentContainer } from '@/components/Common';\nimport { useShippingAddressCallbacks } from '@/hooks/shippingCallbacks';\nimport type { InputOnBlurChange, InputOnChange, InputOnFocus } from '@/types';\nimport { AddressFields } from './Components';\nimport { OnboardTerms } from '../OnboardTerms';\n// @ts-expect-error\nimport { changeHandler } from '../Form/handlers';\n\ntype AddressFormProps = {\n blurHandler?: InputOnBlurChange;\n changeHandler: InputOnChange;\n focusHandler?: InputOnFocus;\n showCheckboxes: boolean;\n showShipToBilling: boolean;\n};\n\nexport const AddressForm = ({\n showCheckboxes,\n showShipToBilling,\n ...props\n}: AddressFormProps): JSX.Element => {\n const isForcedGuest = features.isActive('shouldDisableSignup');\n const shipToBilling = useStoreState(({ form }) => form.shipToBilling);\n const shippingAddress = useShippingAddress();\n const isReduxStoreHydrated = useStoreState(\n ({ ui }) => ui.isReduxStoreHydrated,\n );\n // Since we potentially have two different states for\n // shipping address, billing form w/ ship to billing checked and shipping\n // form w/o ship to billing checked, we need to ensure theres only one\n // instance of this hook where it can use the store to get the correct\n // shipping address state. Therefore, it must exist at the Address\n // level and not the AddressFields level. Keeping it at the Address comp\n // ensures there will only ever be one instance of the hook\n const onShippingAddressCallback = useShippingAddressCallbacks();\n\n useEffect(() => {\n // Invoke callback on page load and after the redux store is hydrated,\n // and whenever the `Shipping same as billing address` checkbox is updated.\n //\n // @NOTE: We need to fire the callback on page load in case the merchant\n // passes a shipping address to prefill.\n if (\n isReduxStoreHydrated &&\n isShippingCallbackRequiredAddressValid(shippingAddress)\n ) {\n onShippingAddressCallback();\n }\n }, [isReduxStoreHydrated, shipToBilling.value]);\n\n return (\n <>\n \n\n {showCheckboxes && (\n <>\n {showShipToBilling && (\n <>\n {canPayerShipToBilling() && (\n \n \n \n )}\n\n {!shipToBilling.value && (\n \n )}\n >\n )}\n\n {isForcedGuest && (\n \n )}\n >\n )}\n >\n );\n};\n","// Internal\nimport type { BaseAddressFieldResults } from '@/store';\nimport { useStoreState } from '@/store';\n\nconst useShippingAddress = (): BaseAddressFieldResults => {\n const shipToBilling = useStoreState(({ form }) => form.shipToBilling);\n const billingAddress = useStoreState(({ form }) => form.billingAddress);\n const shippingAddress = useStoreState(({ form }) => form.shippingAddress);\n\n return shipToBilling.value ? billingAddress : shippingAddress;\n};\n\nexport { useShippingAddress };\n","// External libraries\nimport React from 'react';\n\n// Internal modules\nimport { features } from '@/lib';\nimport { useMountLogging } from '@/lib/reactHooks';\nimport { AddressForm } from './AddressForm';\nimport type { InputOnBlurChange, InputOnChange, InputOnFocus } from '@/types';\n\ntype AddressProps = {\n blurHandler?: InputOnBlurChange;\n changeHandler: InputOnChange;\n focusHandler?: InputOnFocus;\n showCheckboxes: boolean;\n};\n\nconst Address = ({ showCheckboxes, ...props }: AddressProps): JSX.Element => {\n useMountLogging('Address');\n\n /**\n * Here before we render the shipToBilling checkbox we want to make sure\n * 1. change shipping address is allowed\n */\n const showShipToBilling = features.isActive('isAllowChangeShipping');\n\n return (\n \n );\n};\n\nexport { Address };\n"],"sourceRoot":""}