@nuskin/shipping-address-form 1.7.1 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"SmartyUSResults.js","names":["_propTypes","_interopRequireDefault","require","_react","_useSmartyUSLookup","_useUSAddressValidation","_useAddressFieldLabels","_useAddressForm","_useInitialAddressVerification","_useAddressMapModal","_addressMapping","_addressWrapper","_addressStatus","_addressVerification","_validators","_componentPropTypes","_LocationPinIcon","_foundationUiComponents","_jsxRuntime","e","__esModule","default","stripGeocode","address","nextAddress","latitude","longitude","FIELD_TEST_IDS","address1","address2","district","region","city","postalCode","FIELD_IDS","getFieldTestId","field","getFieldId","LOOKUP_LIST_BUTTON_SELECTOR","SmartyUSResults","onSelect","initialAddress","entryMode","requireValidation","readOnlyView","showManualValidateButton","validationRequestId","language","strings","formDefinition","deferFormLookup","_formDefinition$addre","mode","setMode","useState","query","setQuery","selectedAddress","setSelectedAddress","selectedUSAddress","setSelectedUSAddress","formData","setFormData","verificationStatus","setVerificationStatus","getIncomingVerificationStatus","validationTrigger","setValidationTrigger","validationTriggerSource","setValidationTriggerSource","showValidationSuggestions","setShowValidationSuggestions","mapAddressLines","setMapAddressLines","hasPendingLookupDraft","setHasPendingLookupDraft","touchedFields","setTouchedFields","showAllRequiredErrors","setShowAllRequiredErrors","lookupServiceError","setLookupServiceError","validationServiceError","setValidationServiceError","shouldSearchRef","useRef","fieldTimerRef","componentRef","suggestionsListRef","lastCommittedAddressRef","lookupDraftOriginalRef","appliedSelectionKeyRef","mapValidationStartedRef","autoApplyValidationStartedRef","hasInitializedAddressRef","useEffect","current","clearTimeout","isAutocompleteMode","labels","fieldLabels","isLoading","areLabelsLoading","useAddressFieldLabels","shouldLoadAddressForm","addressForm","loadedAddressForm","isFormLoading","useAddressForm","providedAddressForm","addressElements","length","resolvedAddressForm","allowValidation","lookupField","requiredFields","getRequiredFieldsFromAddressForm","hasEmailField","some","hasMapCoordinates","undefined","hasLookupValue","Boolean","String","trim","canAttemptMap","includes","showMapAction","mapInfoLines","filter","join","mapContainerRef","pendingMapOpen","setPendingMapOpen","setShowMapModal","showMapModal","useAddressMapModal","infoLines","openInMapsLabel","openInMaps","shouldPrepareMap","suggestions","loading","error","rateLimited","useSmartyUSLookup","validationSuggestions","validationLoading","validationError","validationRateLimited","useUSAddressValidation","lookupValue","lookupErrorMessage","lookupError","validationErrorMessage","type","status","buildAddressStatus","countryCode","rawMessage","kind","source","message","clearServiceErrors","lookup","validation","stripUnusedEmail","email","buildTrackedAddress","withAddressVerification","isAcceptableInitialValidationResult","validatedAddress","isDeliverable","getBestInitialValidationResult","find","useInitialAddressVerification","_suggestionButtons$","shouldShowValidationResults","suggestionButtons","getVisibleSuggestionButtons","document","activeElement","focus","_getLookupInputElemen","shouldRefocusLookupField","getLookupInputElement","handleDocumentMouseDown","event","component","contains","target","suggestionsList","addEventListener","removeEventListener","handleDocumentPointerDown","_componentRef$current","selectionKey","street_line","secondary","zipcode","JSON","stringify","config","mapped","state","wrapAddress1ToAddress2","address1Field","f","maxLength","wrapped","updatedFormData","normalizedFormData","currentVerificationStatus","handleInputChange","value","normalizeAddressFieldValue","updatedLookupData","isFieldRequired","isFieldBlank","hasInvalidPostalCodeFormat","postalCodeRegex","test","normalizePostalCodeValue","hasInvalidEmailFormat","isValidEmail","shouldShowFieldError","shouldShowValidation","requiredError","handleFieldBlur","prev","getFieldErrorMessage","fieldRequired","invalidPostalCode","invalidEmail","hasVisibleFieldError","handleEditableFieldChange","normalizedValue","requiredFieldsForVerification","nextVerificationStatus","getManualEditVerificationStatus","withManualAddressVerificationEdit","setTimeout","payload","handleSelect","entries","baseAddress","handleValidationSelect","_validatedAddress$met","_validatedAddress$met2","verifiedMapped","nextMapAddressLines","buildUSVerifiedAddressMapping","metadata","verification","analysis","handleValidate","handleOpenMap","getFieldKey","fieldConfig","getSuggestionKey","suggestion","getValidationSuggestionKey","delivery_line_1","delivery_line_2","last_line","dpvMatchCode","getValidationSummaryTitle","_suggestion$validatio","_suggestion$validatio2","_suggestion$validatio3","_suggestion$validatio4","_suggestion$validatio5","_suggestion$validatio6","_suggestion$validatio7","_suggestion$validatio8","_suggestion$validatio9","code","validationSummary","usVerified","title","usMissingSecondaryTitle","usInvalidSecondaryRequiredTitle","usInvalidSecondaryOptionalTitle","usVacantTitle","usNoStatTitle","usNotConfirmedTitle","getValidationSummaryMessage","_suggestion$validatio0","_suggestion$validatio1","_suggestion$validatio10","_suggestion$validatio11","_suggestion$validatio12","_suggestion$validatio13","_suggestion$validatio14","_suggestion$validatio15","_suggestion$validatio16","usMissingSecondaryMessage","usInvalidSecondaryRequiredMessage","usInvalidSecondaryOptionalMessage","usVacantMessage","usNoStatMessage","usNotConfirmedMessage","usVerifiedMessage","renderLookupActions","jsxs","className","children","jsx","onClick","NsButton","disabled","variant","color","size","switchToManualEntry","switchToAutocomplete","getElementById","_componentRef$current2","Array","from","querySelectorAll","handleLookupInputKeyDown","key","preventDefault","targetButton","handleSuggestionButtonKeyDown","index","_suggestionButtons","_getLookupInputElemen2","_suggestionButtons2","_getLookupInputElemen3","_getLookupInputElemen4","renderLookupLists","isLookupField","shouldShowNoResults","ref","map","onKeyDown","displayText","_suggestion$validatio17","usNoResults","bestSuggestion","renderField","fieldId","fieldLabel","label","fieldError","isInvalid","isReadOnly","editable","fieldWidth","width","inputClassName","labelRowClassName","style","htmlFor","required","NsInputField","id","fieldState","helperText","onBlur","onChange","filtered","filterAllowedCharacters","allowedCharacters","InputProps","readOnly","inputProps","renderAddressForm","loadingAddressForm","Fragment","role","addressLocation","stopPropagation","propTypes","PropTypes","func","addressPropType","oneOf","bool","number","string","labelStringsPropType","formDefinitionPropType","_default","exports"],"sources":["../../../src/addressLookup/components/SmartyUSResults.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useState, useEffect, useRef } from 'react';\nimport useSmartyUSLookup from '../hooks/useSmartyUSLookup';\nimport useUSAddressValidation from '../hooks/useUSAddressValidation';\nimport useAddressFieldLabels from '../hooks/useAddressFieldLabels';\nimport useAddressForm from '../hooks/useAddressForm';\nimport useInitialAddressVerification from '../hooks/useInitialAddressVerification';\nimport useAddressMapModal from '../hooks/useAddressMapModal';\nimport { buildUSVerifiedAddressMapping } from '../utils/addressMapping';\nimport { wrapAddress1ToAddress2 } from '../utils/addressWrapper';\nimport { buildAddressStatus, getRequiredFieldsFromAddressForm } from '../utils/addressStatus';\nimport {\n getIncomingVerificationStatus,\n getManualEditVerificationStatus,\n withAddressVerification,\n withManualAddressVerificationEdit\n} from '../utils/addressVerification';\nimport { isValidEmail, normalizeAddressFieldValue, normalizePostalCodeValue, filterAllowedCharacters } from '../utils/validators';\nimport { addressPropType, formDefinitionPropType, labelStringsPropType } from '../utils/componentPropTypes';\nimport LocationPinIcon from './LocationPinIcon';\nimport { NsButton, NsInputField } from '@nuskin/foundation-ui-components';\n\nconst stripGeocode = (address = {}) => {\n const nextAddress = { ...address };\n delete nextAddress.latitude;\n delete nextAddress.longitude;\n return nextAddress;\n};\n\nconst FIELD_TEST_IDS = {\n address1: 'qa-address-1',\n address2: 'qa-address-2',\n district: 'qa-address-district',\n region: 'qa-address-region',\n city: 'qa-address-city',\n postalCode: 'qa-address-postal-code'\n};\n\nconst FIELD_IDS = {\n address1: 'address-line-1',\n address2: 'address-line-2',\n district: 'address-district',\n region: 'address-region',\n city: 'address-city',\n postalCode: 'address-postal-code'\n};\n\nconst getFieldTestId = (field) => FIELD_TEST_IDS[field] || `qa-address-${field}`;\nconst getFieldId = (field) => FIELD_IDS[field] || `address-${field}`;\nconst LOOKUP_LIST_BUTTON_SELECTOR = '.ns-address-lookup__list-button';\n\nconst SmartyUSResults = ({\n onSelect,\n initialAddress = null,\n entryMode = 'both',\n requireValidation = true,\n readOnlyView = false,\n showManualValidateButton = false,\n validationRequestId = 0,\n language = 'en',\n strings = null,\n formDefinition = null,\n deferFormLookup = false\n}) => {\n const [mode, setMode] = useState(entryMode === 'manual' ? 'manual' : 'autocomplete');\n const [query, setQuery] = useState('');\n const [selectedAddress, setSelectedAddress] = useState(null);\n const [selectedUSAddress, setSelectedUSAddress] = useState(null);\n const [formData, setFormData] = useState(initialAddress || {});\n const [verificationStatus, setVerificationStatus] = useState(getIncomingVerificationStatus(initialAddress));\n const [validationTrigger, setValidationTrigger] = useState(0);\n const [validationTriggerSource, setValidationTriggerSource] = useState(null);\n const [showValidationSuggestions, setShowValidationSuggestions] = useState(false);\n const [mapAddressLines, setMapAddressLines] = useState([]);\n const [hasPendingLookupDraft, setHasPendingLookupDraft] = useState(false);\n const [touchedFields, setTouchedFields] = useState({});\n const [showAllRequiredErrors, setShowAllRequiredErrors] = useState(false);\n const [lookupServiceError, setLookupServiceError] = useState(null);\n const [validationServiceError, setValidationServiceError] = useState(null);\n const shouldSearchRef = useRef(true);\n const fieldTimerRef = useRef(null);\n const componentRef = useRef(null);\n const suggestionsListRef = useRef(null);\n const lastCommittedAddressRef = useRef(initialAddress || {});\n const lookupDraftOriginalRef = useRef(initialAddress || {});\n const appliedSelectionKeyRef = useRef(null);\n const mapValidationStartedRef = useRef(false);\n const autoApplyValidationStartedRef = useRef(false);\n const hasInitializedAddressRef = useRef(false);\n\n useEffect(() => {\n if (!initialAddress || hasInitializedAddressRef.current) {\n return;\n }\n\n hasInitializedAddressRef.current = true;\n setFormData(initialAddress);\n setVerificationStatus(getIncomingVerificationStatus(initialAddress));\n shouldSearchRef.current = false;\n lastCommittedAddressRef.current = initialAddress;\n lookupDraftOriginalRef.current = initialAddress;\n setTouchedFields({});\n setShowAllRequiredErrors(false);\n setLookupServiceError(null);\n setValidationServiceError(null);\n setMapAddressLines([]);\n }, [initialAddress]);\n\n useEffect(() => {\n return () => {\n if (fieldTimerRef.current) {\n clearTimeout(fieldTimerRef.current);\n }\n };\n }, []);\n\n const isAutocompleteMode = mode === 'autocomplete';\n const { labels: fieldLabels, isLoading: areLabelsLoading } = useAddressFieldLabels('US', language, strings);\n const shouldLoadAddressForm = !formDefinition && !deferFormLookup;\n const { addressForm: loadedAddressForm, isLoading: isFormLoading } = useAddressForm('US', shouldLoadAddressForm);\n const providedAddressForm = formDefinition?.addressElements?.length ? formDefinition : null;\n const resolvedAddressForm = providedAddressForm || loadedAddressForm;\n const allowValidation = requireValidation && !readOnlyView;\n const lookupField = resolvedAddressForm?.lookupField || 'address1';\n const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);\n const hasEmailField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'email');\n const hasMapCoordinates = (\n formData?.latitude !== undefined && formData?.longitude !== undefined\n );\n const hasLookupValue = Boolean(String(formData?.[lookupField] || '').trim());\n const canAttemptMap = Boolean(\n (!isAutocompleteMode && hasLookupValue) ||\n (isAutocompleteMode && ['autocomplete', 'verified'].includes(verificationStatus) && hasLookupValue)\n );\n const showMapAction = !readOnlyView && (hasMapCoordinates || canAttemptMap);\n const mapInfoLines = (mapAddressLines.length ? mapAddressLines : [\n formData.address1,\n formData.address2,\n [formData.city, formData.region, formData.postalCode].filter(Boolean).join(' ')\n ]).filter(Boolean);\n const {\n mapContainerRef,\n pendingMapOpen,\n setPendingMapOpen,\n setShowMapModal,\n showMapModal\n } = useAddressMapModal({\n formData,\n infoLines: mapInfoLines,\n hasMapCoordinates,\n openInMapsLabel: fieldLabels?.openInMaps,\n shouldPrepareMap: showMapAction\n });\n\n const { suggestions, loading, error, rateLimited } = useSmartyUSLookup(\n !readOnlyView && shouldSearchRef.current && isAutocompleteMode ? query : '',\n selectedUSAddress,\n 500\n );\n const {\n suggestions: validationSuggestions,\n loading: validationLoading,\n error: validationError,\n rateLimited: validationRateLimited\n } = useUSAddressValidation(formData, allowValidation ? validationTrigger : 0);\n const lookupValue = formData[lookupField];\n const lookupErrorMessage = lookupServiceError?.rateLimited ?\n (fieldLabels?.rateLimited || 'Too many requests. Please wait a moment and try again.') :\n (fieldLabels?.lookupError || 'We could not look up that address right now.');\n const validationErrorMessage = validationServiceError?.rateLimited ?\n (fieldLabels?.rateLimited || 'Too many requests. Please wait a moment and try again.') :\n (fieldLabels?.validationError || 'We could not validate that address right now.');\n\n useEffect(() => {\n if (!validationRequestId) {\n return;\n }\n\n setShowAllRequiredErrors(true);\n onSelect?.({\n type: 'validation-request',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n }, [allowValidation, validationRequestId]);\n\n useEffect(() => {\n if (!error) {\n setLookupServiceError(null);\n return;\n }\n\n setLookupServiceError({\n rateLimited,\n rawMessage: error\n });\n }, [error, rateLimited]);\n\n useEffect(() => {\n if (!validationError) {\n setValidationServiceError(null);\n return;\n }\n\n setValidationServiceError({\n rateLimited: validationRateLimited,\n rawMessage: validationError\n });\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n }, [validationError, validationRateLimited]);\n\n useEffect(() => {\n if (!lookupServiceError) {\n return;\n }\n\n onSelect?.({\n type: 'lookup-error',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n }),\n error: {\n kind: lookupServiceError.rateLimited ? 'rate-limited' : 'api',\n source: 'autocomplete',\n message: lookupErrorMessage\n }\n });\n }, [lookupServiceError]);\n\n useEffect(() => {\n if (!validationServiceError) {\n return;\n }\n\n onSelect?.({\n type: 'validation-error',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n }),\n error: {\n kind: validationServiceError.rateLimited ? 'rate-limited' : 'api',\n source: 'validation',\n message: validationErrorMessage\n }\n });\n }, [validationServiceError]);\n\n const clearServiceErrors = ({ lookup = true, validation = true } = {}) => {\n if (lookup) {\n setLookupServiceError(null);\n }\n if (validation) {\n setValidationServiceError(null);\n }\n };\n\n const stripUnusedEmail = (address = {}) => {\n if (hasEmailField) {\n return address;\n }\n\n const nextAddress = { ...address };\n delete nextAddress.email;\n return nextAddress;\n };\n\n const buildTrackedAddress = (address = {}, status = 'unverified', source = null) => (\n stripUnusedEmail(withAddressVerification(address, status, source))\n );\n\n const isAcceptableInitialValidationResult = (validatedAddress) => (\n Boolean(validatedAddress?.isDeliverable)\n );\n\n const getBestInitialValidationResult = (suggestions = []) => (\n suggestions.find(isAcceptableInitialValidationResult) || null\n );\n\n useInitialAddressVerification({\n initialAddress,\n countryCode: 'US',\n lookupField,\n requireValidation: allowValidation,\n resolvedAddressForm,\n setValidationServiceError,\n setShowValidationSuggestions,\n setValidationTriggerSource,\n setValidationTrigger\n });\n\n useEffect(() => {\n if (validationTrigger > 0 && ['autocomplete', 'map', 'initial'].includes(validationTriggerSource)) {\n autoApplyValidationStartedRef.current = false;\n }\n }, [validationTrigger, validationTriggerSource]);\n\n useEffect(() => {\n if (validationLoading && validationTriggerSource === 'map') {\n mapValidationStartedRef.current = true;\n }\n if (validationLoading && ['autocomplete', 'map', 'initial'].includes(validationTriggerSource)) {\n autoApplyValidationStartedRef.current = true;\n }\n }, [validationLoading, validationTriggerSource]);\n\n useEffect(() => {\n if (\n validationTriggerSource === 'map' &&\n showValidationSuggestions &&\n !validationLoading &&\n validationSuggestions.length === 0 &&\n !validationServiceError &&\n mapValidationStartedRef.current\n ) {\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n }\n }, [validationLoading, validationSuggestions, validationTriggerSource, showValidationSuggestions, validationServiceError]);\n\n useEffect(() => {\n if (lookupValue !== undefined && shouldSearchRef.current && !selectedAddress) {\n setQuery(lookupValue);\n }\n }, [lookupValue, selectedAddress]);\n\n useEffect(() => {\n const shouldShowValidationResults =\n allowValidation &&\n showValidationSuggestions &&\n validationSuggestions.length > 0 &&\n !validationLoading &&\n (!isAutocompleteMode || validationTriggerSource === 'map');\n\n if (!shouldShowValidationResults) {\n return;\n }\n\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0 || suggestionButtons.includes(document.activeElement)) {\n return;\n }\n\n suggestionButtons[0]?.focus();\n }, [\n isAutocompleteMode,\n allowValidation,\n showValidationSuggestions,\n validationLoading,\n validationSuggestions,\n validationTriggerSource\n ]);\n\n useEffect(() => {\n const shouldRefocusLookupField =\n isAutocompleteMode &&\n selectedUSAddress &&\n suggestions.length > 0 &&\n !selectedAddress &&\n !loading;\n\n if (!shouldRefocusLookupField) {\n return;\n }\n\n getLookupInputElement()?.focus();\n }, [isAutocompleteMode, selectedUSAddress, suggestions, selectedAddress, loading]);\n\n useEffect(() => {\n if (!hasPendingLookupDraft || suggestions.length === 0) {\n return undefined;\n }\n\n const handleDocumentMouseDown = (event) => {\n const component = componentRef.current;\n if (component?.contains(event.target)) {\n return;\n }\n\n const suggestionsList = suggestionsListRef.current;\n if (suggestionsList?.contains(event.target) === false) {\n shouldSearchRef.current = false;\n setQuery('');\n setSelectedAddress(null);\n setSelectedUSAddress(null);\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n clearServiceErrors();\n setFormData(lookupDraftOriginalRef.current);\n setMapAddressLines([]);\n setHasPendingLookupDraft(false);\n }\n };\n\n document.addEventListener('pointerdown', handleDocumentMouseDown);\n return () => {\n document.removeEventListener('pointerdown', handleDocumentMouseDown);\n };\n }, [hasPendingLookupDraft, suggestions]);\n\n useEffect(() => {\n if (isAutocompleteMode || !showValidationSuggestions || validationLoading || validationSuggestions.length === 0) {\n return undefined;\n }\n\n const handleDocumentPointerDown = (event) => {\n if (componentRef.current?.contains(event.target)) {\n return;\n }\n\n setShowValidationSuggestions(false);\n };\n\n document.addEventListener('pointerdown', handleDocumentPointerDown);\n return () => {\n document.removeEventListener('pointerdown', handleDocumentPointerDown);\n };\n }, [isAutocompleteMode, showValidationSuggestions, validationLoading, validationSuggestions]);\n\n useEffect(() => {\n if (selectedAddress) {\n const selectionKey = selectedAddress.street_line ?\n `${selectedAddress.street_line}|${selectedAddress.secondary || ''}|${selectedAddress.zipcode || ''}` :\n JSON.stringify(selectedAddress);\n if (appliedSelectionKeyRef.current === selectionKey) {\n return;\n }\n appliedSelectionKeyRef.current = selectionKey;\n\n const config = resolvedAddressForm.addressElements || [];\n\n let mapped = {\n address1: selectedAddress.street_line,\n address2: selectedAddress.secondary || '',\n city: selectedAddress.city,\n region: selectedAddress.state,\n postalCode: selectedAddress.zipcode\n };\n\n // Apply address wrapping if enabled\n if (resolvedAddressForm.wrapAddress1ToAddress2) {\n const address1Field = config.find(f => f.field === 'address1');\n if (address1Field?.maxLength) {\n const wrapped = wrapAddress1ToAddress2(mapped.address1, mapped.address2, address1Field.maxLength);\n mapped.address1 = wrapped.address1;\n mapped.address2 = wrapped.address2;\n }\n }\n\n const updatedFormData = {\n ...stripGeocode(formData),\n ...mapped,\n email: formData.email\n };\n const normalizedFormData = buildTrackedAddress(updatedFormData, 'autocomplete', 'smarty-us');\n setFormData(normalizedFormData);\n setMapAddressLines([]);\n lastCommittedAddressRef.current = normalizedFormData;\n lookupDraftOriginalRef.current = normalizedFormData;\n setHasPendingLookupDraft(false);\n clearServiceErrors();\n const currentVerificationStatus = 'autocomplete';\n setVerificationStatus(currentVerificationStatus);\n onSelect?.({\n type: 'autocomplete',\n address: normalizedFormData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: normalizedFormData,\n verificationStatus: currentVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n }\n }, [selectedAddress]);\n\n const handleInputChange = (e) => {\n const value = normalizeAddressFieldValue(lookupField, e.target.value);\n shouldSearchRef.current = true;\n appliedSelectionKeyRef.current = null;\n setSelectedAddress(null);\n setSelectedUSAddress(null);\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setMapAddressLines([]);\n setValidationTriggerSource(null);\n clearServiceErrors();\n if (!hasPendingLookupDraft) {\n lookupDraftOriginalRef.current = formData;\n setHasPendingLookupDraft(true);\n }\n const updatedLookupData = stripUnusedEmail({ ...stripGeocode(formData), [lookupField]: value });\n setFormData(buildTrackedAddress(updatedLookupData, 'unverified'));\n setVerificationStatus('unverified');\n };\n\n const isFieldRequired = (field) => requiredFields.includes(field);\n const isFieldBlank = (field) => String(formData[field] || '').trim() === '';\n const hasInvalidPostalCodeFormat = (field) => {\n if (field !== 'postalCode') {\n return false;\n }\n const value = String(formData.postalCode || '').trim();\n if (!value || !resolvedAddressForm.postalCodeRegex) {\n return false;\n }\n return !resolvedAddressForm.postalCodeRegex.test(normalizePostalCodeValue(value));\n };\n const hasInvalidEmailFormat = (field) => {\n if (field !== 'email') {\n return false;\n }\n const value = String(formData.email || '').trim();\n if (!value) {\n return false;\n }\n return !isValidEmail(value);\n };\n const shouldShowFieldError = (field) => {\n const shouldShowValidation = Boolean(showAllRequiredErrors || touchedFields[field]);\n if (!shouldShowValidation) {\n return false;\n }\n const requiredError = isFieldRequired(field) && isFieldBlank(field);\n return requiredError || hasInvalidPostalCodeFormat(field) || hasInvalidEmailFormat(field);\n };\n\n const handleFieldBlur = (field) => {\n if (!isFieldRequired(field) && field !== 'email' && field !== 'postalCode') {\n return;\n }\n setTouchedFields((prev) => ({ ...prev, [field]: true }));\n };\n\n const getFieldErrorMessage = (field) => {\n if (!shouldShowFieldError(field)) {\n return '';\n }\n if (isFieldRequired(field) && isFieldBlank(field)) {\n return areLabelsLoading ? '' : fieldLabels?.fieldRequired;\n }\n if (hasInvalidPostalCodeFormat(field)) {\n return areLabelsLoading ? '' : fieldLabels?.invalidPostalCode;\n }\n if (hasInvalidEmailFormat(field)) {\n return areLabelsLoading ? '' : fieldLabels?.invalidEmail;\n }\n return '';\n };\n\n const hasVisibleFieldError = (field) => shouldShowFieldError(field);\n\n const handleEditableFieldChange = (field, value) => {\n const normalizedValue = normalizeAddressFieldValue(field, value);\n if (field === lookupField) {\n setShowValidationSuggestions(false);\n }\n clearServiceErrors();\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setMapAddressLines([]);\n\n const requiredFieldsForVerification = resolvedAddressForm?.requiredFields || requiredFields;\n const nextVerificationStatus = getManualEditVerificationStatus(\n verificationStatus,\n field,\n lookupField,\n requiredFieldsForVerification\n );\n const updatedFormData = withManualAddressVerificationEdit(\n stripUnusedEmail({ ...stripGeocode(formData), [field]: normalizedValue }),\n field,\n nextVerificationStatus\n );\n setFormData(updatedFormData);\n setVerificationStatus(nextVerificationStatus);\n\n if (fieldTimerRef.current) {\n clearTimeout(fieldTimerRef.current);\n }\n\n fieldTimerRef.current = setTimeout(() => {\n const payload = {\n type: 'field-change',\n field,\n value: normalizedValue,\n address: updatedFormData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: updatedFormData,\n verificationStatus: nextVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n };\n\n if (hasEmailField && field === 'email' && value) {\n payload.isValidEmail = isValidEmail(normalizedValue);\n }\n\n onSelect?.(payload);\n }, 500);\n };\n\n const handleSelect = (address) => {\n clearServiceErrors({ lookup: true, validation: false });\n if (address.entries > 1) {\n shouldSearchRef.current = true;\n appliedSelectionKeyRef.current = null;\n setSelectedUSAddress(address);\n const baseAddress = `${address.street_line} ${address.secondary}`.trim();\n setQuery(baseAddress);\n } else {\n shouldSearchRef.current = false;\n appliedSelectionKeyRef.current = null;\n setSelectedUSAddress(null);\n setSelectedAddress(address);\n setQuery('');\n }\n };\n\n const handleValidationSelect = (validatedAddress) => {\n clearServiceErrors({ lookup: false, validation: true });\n const config = resolvedAddressForm.addressElements || [];\n const {\n mapped: verifiedMapped,\n mapAddressLines: nextMapAddressLines\n } = buildUSVerifiedAddressMapping(validatedAddress);\n\n let mapped = { ...verifiedMapped };\n\n if (resolvedAddressForm.wrapAddress1ToAddress2) {\n const address1Field = config.find(f => f.field === 'address1');\n if (address1Field?.maxLength) {\n const wrapped = wrapAddress1ToAddress2(mapped.address1, mapped.address2, address1Field.maxLength);\n mapped.address1 = wrapped.address1;\n mapped.address2 = wrapped.address2;\n }\n }\n\n const updatedFormData = {\n ...stripGeocode(formData),\n ...mapped,\n email: formData.email,\n latitude: validatedAddress.metadata?.latitude,\n longitude: validatedAddress.metadata?.longitude\n };\n const currentVerificationStatus = validatedAddress.isDeliverable ? 'verified' : 'unverified';\n const normalizedFormData = buildTrackedAddress(updatedFormData, currentVerificationStatus, 'smarty-us');\n setShowValidationSuggestions(false);\n setValidationTriggerSource(null);\n setMapAddressLines(nextMapAddressLines);\n setFormData(normalizedFormData);\n lastCommittedAddressRef.current = normalizedFormData;\n lookupDraftOriginalRef.current = normalizedFormData;\n setHasPendingLookupDraft(false);\n setVerificationStatus(currentVerificationStatus);\n autoApplyValidationStartedRef.current = false;\n\n if (pendingMapOpen) {\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setShowMapModal(true);\n }\n\n onSelect?.({\n type: 'validation',\n address: normalizedFormData,\n verification: validatedAddress.analysis,\n isDeliverable: validatedAddress.isDeliverable,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: normalizedFormData,\n verificationStatus: currentVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n };\n\n const handleValidate = () => {\n if (!allowValidation) {\n return;\n }\n clearServiceErrors({ lookup: false, validation: true });\n setShowValidationSuggestions(true);\n setValidationTriggerSource('manual');\n setValidationTrigger(prev => prev + 1);\n };\n\n const handleOpenMap = () => {\n if (hasMapCoordinates) {\n setShowMapModal(true);\n return;\n }\n\n if (!canAttemptMap || validationLoading) {\n return;\n }\n\n clearServiceErrors({ lookup: false, validation: true });\n mapValidationStartedRef.current = false;\n setPendingMapOpen(true);\n setShowValidationSuggestions(true);\n setValidationTriggerSource('map');\n setValidationTrigger((prev) => prev + 1);\n };\n\n const getFieldKey = (fieldConfig) => fieldConfig.field;\n\n const getSuggestionKey = (suggestion) => [\n suggestion.street_line,\n suggestion.secondary,\n suggestion.city,\n suggestion.state,\n suggestion.zipcode,\n suggestion.entries\n ].filter((value) => value !== undefined && value !== null).join('|');\n\n const getValidationSuggestionKey = (suggestion) => [\n suggestion.delivery_line_1,\n suggestion.delivery_line_2,\n suggestion.last_line,\n suggestion.dpvMatchCode\n ].filter((value) => value !== undefined && value !== null).join('|');\n\n const getValidationSummaryTitle = (suggestion) => {\n const code = suggestion.validationSummary?.code;\n\n switch (code) {\n case 'verified':\n return fieldLabels?.usVerified || suggestion.validationSummary?.title || 'Verified';\n case 'missing-secondary':\n return fieldLabels?.usMissingSecondaryTitle || suggestion.validationSummary?.title || 'Apartment or suite needed';\n case 'invalid-secondary-required':\n return fieldLabels?.usInvalidSecondaryRequiredTitle || suggestion.validationSummary?.title || 'Apartment or suite not recognized';\n case 'invalid-secondary-optional':\n return fieldLabels?.usInvalidSecondaryOptionalTitle || suggestion.validationSummary?.title || 'Unit not recognized';\n case 'vacant':\n return fieldLabels?.usVacantTitle || suggestion.validationSummary?.title || 'Verified, but marked vacant';\n case 'no-stat':\n return fieldLabels?.usNoStatTitle || suggestion.validationSummary?.title || 'Verified with caution';\n case 'not-confirmed':\n return fieldLabels?.usNotConfirmedTitle || suggestion.validationSummary?.title || 'Not verified';\n default:\n return suggestion.validationSummary?.title || 'Candidate';\n }\n };\n\n const getValidationSummaryMessage = (suggestion) => {\n const code = suggestion.validationSummary?.code;\n\n switch (code) {\n case 'missing-secondary':\n return fieldLabels?.usMissingSecondaryMessage || suggestion.validationSummary?.message || '';\n case 'invalid-secondary-required':\n return fieldLabels?.usInvalidSecondaryRequiredMessage || suggestion.validationSummary?.message || '';\n case 'invalid-secondary-optional':\n return fieldLabels?.usInvalidSecondaryOptionalMessage || suggestion.validationSummary?.message || '';\n case 'vacant':\n return fieldLabels?.usVacantMessage || suggestion.validationSummary?.message || '';\n case 'no-stat':\n return fieldLabels?.usNoStatMessage || suggestion.validationSummary?.message || '';\n case 'not-confirmed':\n return fieldLabels?.usNotConfirmedMessage || suggestion.validationSummary?.message || '';\n case 'verified':\n return fieldLabels?.usVerifiedMessage || suggestion.validationSummary?.message || '';\n default:\n return suggestion.validationSummary?.message || '';\n }\n };\n\n const renderLookupActions = () => (\n <div className=\"ns-address-lookup__actions\">\n {showMapAction && (\n <button\n type=\"button\"\n onClick={handleOpenMap}\n className=\"ns-address-lookup__toggle ns-address-lookup__toggle--icon\"\n title={fieldLabels?.openInMaps}\n aria-label={fieldLabels?.openInMaps}\n >\n <LocationPinIcon className=\"ns-address-lookup__icon\" />\n </button>\n )}\n {!isAutocompleteMode && allowValidation && showManualValidateButton && (\n <NsButton\n type=\"button\"\n onClick={handleValidate}\n disabled={validationLoading || !String(formData[lookupField] || '').trim()}\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n >\n {validationLoading ? 'Validating...' : 'Validate Address'}\n </NsButton>\n )}\n {entryMode === 'both' && (\n <button\n type=\"button\"\n onClick={() => {\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setValidationTriggerSource(null);\n clearServiceErrors();\n setMode(mode === 'autocomplete' ? 'manual' : 'autocomplete');\n }}\n className=\"ns-address-lookup__toggle\"\n >\n {mode === 'autocomplete' ?\n fieldLabels?.switchToManualEntry :\n fieldLabels?.switchToAutocomplete}\n </button>\n )}\n </div>\n );\n\n const getLookupInputElement = () => (\n typeof document !== 'undefined' ? document.getElementById(getFieldId(lookupField)) : null\n );\n\n const getVisibleSuggestionButtons = () => (\n Array.from(componentRef.current?.querySelectorAll(LOOKUP_LIST_BUTTON_SELECTOR) || [])\n );\n\n const handleLookupInputKeyDown = (event) => {\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n const targetButton = event.key === 'ArrowUp' ?\n suggestionButtons[suggestionButtons.length - 1] :\n suggestionButtons[0];\n\n targetButton?.focus();\n };\n\n const handleSuggestionButtonKeyDown = (event, index) => {\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (index === suggestionButtons.length - 1) {\n getLookupInputElement()?.focus();\n return;\n }\n\n suggestionButtons[index + 1]?.focus();\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (index === 0) {\n getLookupInputElement()?.focus();\n return;\n }\n\n suggestionButtons[index - 1]?.focus();\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n getLookupInputElement()?.focus();\n }\n };\n\n const renderLookupLists = (isLookupField) => {\n if (readOnlyView) {\n return null;\n }\n\n const shouldShowValidationResults =\n allowValidation &&\n showValidationSuggestions &&\n (!isAutocompleteMode || validationTriggerSource === 'map');\n const shouldShowNoResults =\n shouldShowValidationResults &&\n !validationLoading &&\n validationSuggestions.length === 0 &&\n !validationServiceError &&\n (validationTriggerSource !== 'map' || mapValidationStartedRef.current);\n\n if (!isLookupField) {\n return null;\n }\n\n if (loading && isAutocompleteMode) {\n return <div className=\"ns-address-lookup__spinner\" />;\n }\n\n if (suggestions.length > 0 && !selectedAddress && isAutocompleteMode) {\n return (\n <ul\n ref={suggestionsListRef}\n className=\"ns-address-lookup__list ns-address-lookup__list--suggestions\">\n {suggestions.map((suggestion, index) => (\n <li\n key={getSuggestionKey(suggestion)}\n className={[\n 'ns-address-lookup__list-item',\n index < suggestions.length - 1 ? 'ns-address-lookup__list-item--divided' : ''\n ].filter(Boolean).join(' ')}\n >\n <button\n type=\"button\"\n onClick={() => handleSelect(suggestion)}\n onKeyDown={(event) => handleSuggestionButtonKeyDown(event, index)}\n className=\"ns-address-lookup__list-button\"\n >\n {suggestion.displayText}\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n if (shouldShowValidationResults && validationSuggestions.length > 0) {\n return (\n <ul className=\"ns-address-lookup__list ns-address-lookup__list--validation-inline\">\n {validationSuggestions.map((suggestion, index) => (\n <li\n key={getValidationSuggestionKey(suggestion)}\n className={[\n 'ns-address-lookup__list-item',\n suggestion.validationSummary?.code === 'not-confirmed' ?\n 'ns-address-lookup__list-item--not-verified' : '',\n index < validationSuggestions.length - 1 ? 'ns-address-lookup__list-item--divided' : ''\n ].filter(Boolean).join(' ')}\n >\n <button\n type=\"button\"\n onClick={() => handleValidationSelect(suggestion)}\n onKeyDown={(event) => handleSuggestionButtonKeyDown(event, index)}\n className=\"ns-address-lookup__list-button\"\n >\n <div className=\"ns-address-lookup__list-title\">\n {getValidationSummaryTitle(suggestion)}\n </div>\n <div className=\"ns-address-lookup__list-subtitle\">\n {suggestion.displayText}\n </div>\n <div className=\"ns-address-lookup__list-subtitle\">\n {getValidationSummaryMessage(suggestion)}\n </div>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n if (shouldShowNoResults) {\n return (\n <div className=\"ns-address-lookup__message\">\n {fieldLabels?.usNoResults}\n </div>\n );\n }\n\n return null;\n };\n\n useEffect(() => {\n if (\n ['autocomplete', 'map'].includes(validationTriggerSource) &&\n validationSuggestions.length === 1 &&\n autoApplyValidationStartedRef.current\n ) {\n handleValidationSelect(validationSuggestions[0]);\n }\n\n if (\n validationTriggerSource === 'initial' &&\n autoApplyValidationStartedRef.current &&\n !validationLoading\n ) {\n const bestSuggestion = getBestInitialValidationResult(validationSuggestions);\n\n if (bestSuggestion) {\n handleValidationSelect(bestSuggestion);\n return;\n }\n\n autoApplyValidationStartedRef.current = false;\n setShowValidationSuggestions(false);\n setValidationTriggerSource(null);\n }\n }, [validationLoading, validationSuggestions, validationTriggerSource]);\n\n const renderField = (fieldConfig) => {\n const isLookupField = fieldConfig.field === lookupField;\n const fieldId = getFieldId(fieldConfig.field);\n const fieldLabel = areLabelsLoading ? '' : (fieldLabels?.[fieldConfig.field] || fieldConfig.label);\n const fieldError = getFieldErrorMessage(fieldConfig.field);\n const isInvalid = hasVisibleFieldError(fieldConfig.field);\n const isReadOnly = readOnlyView || ((!fieldConfig.editable && !isLookupField) && isAutocompleteMode);\n const fieldWidth = fieldConfig.width === 'full' ?\n '100%' :\n (fieldConfig.width === 'third' ? '33.333333%' : '50%');\n const inputClassName = [\n 'ns-address-lookup__input',\n isReadOnly ? 'ns-address-lookup__input--readonly' : '',\n isLookupField && loading ? 'ns-address-lookup__input--loading' : ''\n ].filter(Boolean).join(' ');\n const labelRowClassName = [\n 'ns-address-lookup__label-row',\n isLookupField ? '' : 'ns-address-lookup__label-row--field'\n ].filter(Boolean).join(' ');\n\n return (\n <div\n key={getFieldKey(fieldConfig)}\n className=\"ns-address-lookup__field\"\n style={{ width: fieldWidth }}\n >\n <div className={labelRowClassName}>\n <label\n htmlFor={fieldId}\n className=\"MuiFormLabel-root MuiFormLabel-colorPrimary css-1ef1ceb-MuiFormLabel-root\"\n >\n {fieldLabel}\n {fieldConfig.required && !areLabelsLoading && (\n <span\n aria-hidden=\"true\"\n className=\"MuiFormLabel-asterisk\"\n >\n {' *'}\n </span>\n )}\n </label>\n {isLookupField && !readOnlyView && renderLookupActions()}\n </div>\n <NsInputField\n id={fieldId}\n type=\"text\"\n value={formData[fieldConfig.field] || ''}\n aria-invalid={shouldShowFieldError(fieldConfig.field) ? 'true' : undefined}\n fieldState={isInvalid ? 'error' : undefined}\n helperText={fieldError || undefined}\n required={fieldConfig.required}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onKeyDown={isLookupField && !readOnlyView ? handleLookupInputKeyDown : undefined}\n onChange={(e) => {\n const filtered = filterAllowedCharacters(e.target.value, fieldConfig.allowedCharacters);\n if (readOnlyView) {\n return;\n }\n if (isLookupField && isAutocompleteMode) {\n handleInputChange({ ...e, target: { ...e.target, value: filtered } });\n } else {\n handleEditableFieldChange(fieldConfig.field, filtered);\n }\n }}\n InputProps={{\n readOnly: isReadOnly\n }}\n inputProps={{\n maxLength: fieldConfig.maxLength,\n 'data-testid': getFieldTestId(fieldConfig.field)\n }}\n className={inputClassName}\n />\n {renderLookupLists(isLookupField)}\n </div>\n );\n };\n\n const renderAddressForm = () => {\n const config = resolvedAddressForm?.addressElements;\n\n if (!config?.length) {\n if (isFormLoading) {\n return <div>{fieldLabels?.loadingAddressForm}</div>;\n }\n\n return <div>No form available for this country: US</div>;\n }\n\n return (\n <>\n {config.map(renderField)}\n </>\n );\n };\n\n return (\n <div ref={componentRef} className=\"ns-address-lookup__panel\">\n {lookupServiceError && (\n <div className=\"ns-address-lookup__message\">{lookupErrorMessage}</div>\n )}\n {allowValidation && validationServiceError && (\n <div className=\"ns-address-lookup__message\">\n {validationErrorMessage}\n </div>\n )}\n <div className=\"ns-address-lookup__form\">\n {renderAddressForm()}\n </div>\n {showMapModal && (\n <div\n className=\"ns-address-lookup__modal-backdrop\"\n onClick={() => setShowMapModal(false)}\n >\n <div\n className=\"ns-address-lookup__modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={fieldLabels?.addressLocation}\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"ns-address-lookup__modal-header\">\n <div className=\"ns-address-lookup__modal-title\">\n {fieldLabels?.addressLocation}\n </div>\n <button\n type=\"button\"\n className=\"ns-address-lookup__toggle\"\n aria-label=\"Close\"\n onClick={() => setShowMapModal(false)}\n >\n X\n </button>\n </div>\n <div ref={mapContainerRef} className=\"ns-address-lookup__map\" />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nSmartyUSResults.propTypes = {\n onSelect: PropTypes.func,\n initialAddress: addressPropType,\n entryMode: PropTypes.oneOf(['both', 'autocomplete', 'manual']),\n requireValidation: PropTypes.bool,\n readOnlyView: PropTypes.bool,\n showManualValidateButton: PropTypes.bool,\n validationRequestId: PropTypes.number,\n language: PropTypes.string,\n strings: labelStringsPropType,\n formDefinition: formDefinitionPropType,\n deferFormLookup: PropTypes.bool\n};\n\nexport default SmartyUSResults;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SmartyUSResults.js","names":["_propTypes","_interopRequireDefault","require","_react","_useSmartyUSLookup","_useUSAddressValidation","_useAddressFieldLabels","_useAddressForm","_useInitialAddressVerification","_useAddressMapModal","_addressMapping","_addressWrapper","_addressStatus","_addressVerification","_validators","_componentPropTypes","_LocationPinIcon","_foundationUiComponents","_jsxRuntime","e","__esModule","default","stripGeocode","address","nextAddress","latitude","longitude","FIELD_TEST_IDS","address1","address2","district","region","city","postalCode","FIELD_IDS","getFieldTestId","field","getFieldId","LOOKUP_LIST_BUTTON_SELECTOR","SmartyUSResults","onSelect","initialAddress","readOnlyView","validationRequestId","language","strings","formDefinition","deferFormLookup","_formDefinition$addre","mode","setMode","useState","query","setQuery","selectedAddress","setSelectedAddress","selectedUSAddress","setSelectedUSAddress","formData","setFormData","verificationStatus","setVerificationStatus","getIncomingVerificationStatus","validationTrigger","setValidationTrigger","validationTriggerSource","setValidationTriggerSource","showValidationSuggestions","setShowValidationSuggestions","mapAddressLines","setMapAddressLines","hasPendingLookupDraft","setHasPendingLookupDraft","touchedFields","setTouchedFields","showAllRequiredErrors","setShowAllRequiredErrors","lookupServiceError","setLookupServiceError","validationServiceError","setValidationServiceError","shouldSearchRef","useRef","fieldTimerRef","componentRef","suggestionsListRef","lastCommittedAddressRef","lookupDraftOriginalRef","appliedSelectionKeyRef","mapValidationStartedRef","autoApplyValidationStartedRef","hasInitializedAddressRef","useEffect","current","clearTimeout","isAutocompleteMode","labels","fieldLabels","isLoading","areLabelsLoading","useAddressFieldLabels","shouldLoadAddressForm","addressForm","loadedAddressForm","isFormLoading","useAddressForm","providedAddressForm","addressElements","length","resolvedAddressForm","entryMode","allowValidation","validationMode","lookupField","requiredFields","getRequiredFieldsFromAddressForm","hasEmailField","some","hasMapCoordinates","undefined","hasLookupValue","Boolean","String","trim","canAttemptMap","includes","showMapAction","mapInfoLines","filter","join","mapContainerRef","pendingMapOpen","setPendingMapOpen","setShowMapModal","showMapModal","useAddressMapModal","infoLines","openInMapsLabel","openInMaps","shouldPrepareMap","suggestions","loading","error","rateLimited","useSmartyUSLookup","validationSuggestions","validationLoading","validationError","validationRateLimited","useUSAddressValidation","lookupValue","lookupErrorMessage","lookupError","validationErrorMessage","type","status","buildAddressStatus","countryCode","requireValidation","rawMessage","kind","source","message","clearServiceErrors","lookup","validation","stripUnusedEmail","email","buildTrackedAddress","withAddressVerification","isAcceptableInitialValidationResult","validatedAddress","isDeliverable","getBestInitialValidationResult","find","useInitialAddressVerification","_suggestionButtons$","shouldShowValidationResults","suggestionButtons","getVisibleSuggestionButtons","document","activeElement","focus","_getLookupInputElemen","shouldRefocusLookupField","getLookupInputElement","handleDocumentMouseDown","event","component","contains","target","suggestionsList","addEventListener","removeEventListener","handleDocumentPointerDown","_componentRef$current","selectionKey","street_line","secondary","zipcode","JSON","stringify","config","mapped","state","wrapAddress1ToAddress2","address1Field","f","maxLength","wrapped","updatedFormData","normalizedFormData","currentVerificationStatus","handleInputChange","value","normalizeAddressFieldValue","updatedLookupData","isFieldRequired","isFieldBlank","hasInvalidPostalCodeFormat","postalCodeRegex","test","normalizePostalCodeValue","hasInvalidEmailFormat","isValidEmail","shouldShowFieldError","shouldShowValidation","requiredError","handleFieldBlur","prev","getFieldErrorMessage","fieldRequired","invalidPostalCode","invalidEmail","hasVisibleFieldError","handleEditableFieldChange","normalizedValue","requiredFieldsForVerification","nextVerificationStatus","getManualEditVerificationStatus","withManualAddressVerificationEdit","setTimeout","payload","handleSelect","entries","baseAddress","handleValidationSelect","_validatedAddress$met","_validatedAddress$met2","verifiedMapped","nextMapAddressLines","buildUSVerifiedAddressMapping","metadata","verification","analysis","handleValidate","handleOpenMap","getFieldKey","fieldConfig","getSuggestionKey","suggestion","getValidationSuggestionKey","delivery_line_1","delivery_line_2","last_line","dpvMatchCode","getValidationSummaryTitle","_suggestion$validatio","_suggestion$validatio2","_suggestion$validatio3","_suggestion$validatio4","_suggestion$validatio5","_suggestion$validatio6","_suggestion$validatio7","_suggestion$validatio8","_suggestion$validatio9","code","validationSummary","usVerified","title","usMissingSecondaryTitle","usInvalidSecondaryRequiredTitle","usInvalidSecondaryOptionalTitle","usVacantTitle","usNoStatTitle","usNotConfirmedTitle","getValidationSummaryMessage","_suggestion$validatio0","_suggestion$validatio1","_suggestion$validatio10","_suggestion$validatio11","_suggestion$validatio12","_suggestion$validatio13","_suggestion$validatio14","_suggestion$validatio15","_suggestion$validatio16","usMissingSecondaryMessage","usInvalidSecondaryRequiredMessage","usInvalidSecondaryOptionalMessage","usVacantMessage","usNoStatMessage","usNotConfirmedMessage","usVerifiedMessage","renderLookupActions","jsxs","className","children","jsx","onClick","NsButton","disabled","variant","color","size","switchToManualEntry","switchToAutocomplete","getElementById","_componentRef$current2","Array","from","querySelectorAll","handleLookupInputKeyDown","key","preventDefault","targetButton","handleSuggestionButtonKeyDown","index","_suggestionButtons","_getLookupInputElemen2","_suggestionButtons2","_getLookupInputElemen3","_getLookupInputElemen4","renderLookupLists","isLookupField","shouldShowNoResults","ref","map","onKeyDown","displayText","_suggestion$validatio17","usNoResults","bestSuggestion","renderField","fieldId","fieldLabel","label","fieldError","isInvalid","isReadOnly","editable","fieldWidth","width","inputClassName","labelRowClassName","style","htmlFor","required","NsInputField","id","fieldState","helperText","onBlur","onChange","filtered","filterAllowedCharacters","allowedCharacters","InputProps","readOnly","inputProps","renderAddressForm","loadingAddressForm","Fragment","role","addressLocation","stopPropagation","propTypes","PropTypes","func","addressPropType","bool","number","string","labelStringsPropType","formDefinitionPropType","_default","exports"],"sources":["../../../src/addressLookup/components/SmartyUSResults.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useState, useEffect, useRef } from 'react';\nimport useSmartyUSLookup from '../hooks/useSmartyUSLookup';\nimport useUSAddressValidation from '../hooks/useUSAddressValidation';\nimport useAddressFieldLabels from '../hooks/useAddressFieldLabels';\nimport useAddressForm from '../hooks/useAddressForm';\nimport useInitialAddressVerification from '../hooks/useInitialAddressVerification';\nimport useAddressMapModal from '../hooks/useAddressMapModal';\nimport { buildUSVerifiedAddressMapping } from '../utils/addressMapping';\nimport { wrapAddress1ToAddress2 } from '../utils/addressWrapper';\nimport { buildAddressStatus, getRequiredFieldsFromAddressForm } from '../utils/addressStatus';\nimport {\n getIncomingVerificationStatus,\n getManualEditVerificationStatus,\n withAddressVerification,\n withManualAddressVerificationEdit\n} from '../utils/addressVerification';\nimport { isValidEmail, normalizeAddressFieldValue, normalizePostalCodeValue, filterAllowedCharacters } from '../utils/validators';\nimport { addressPropType, formDefinitionPropType, labelStringsPropType } from '../utils/componentPropTypes';\nimport LocationPinIcon from './LocationPinIcon';\nimport { NsButton, NsInputField } from '@nuskin/foundation-ui-components';\n\nconst stripGeocode = (address = {}) => {\n const nextAddress = { ...address };\n delete nextAddress.latitude;\n delete nextAddress.longitude;\n return nextAddress;\n};\n\nconst FIELD_TEST_IDS = {\n address1: 'qa-address1',\n address2: 'qa-address2',\n district: 'qa-address-county',\n region: 'qa-address-region',\n city: 'qa-address-city',\n postalCode: 'qa-address-zip'\n};\n\nconst FIELD_IDS = {\n address1: 'qa-address1',\n address2: 'qa-address2',\n district: 'qa-address-county',\n region: 'address-region',\n city: 'address-city',\n postalCode: 'qa-address-zip'\n};\n\nconst getFieldTestId = (field) => FIELD_TEST_IDS[field] || `qa-address-${field}`;\nconst getFieldId = (field) => FIELD_IDS[field] || `address-${field}`;\nconst LOOKUP_LIST_BUTTON_SELECTOR = '.ns-address-lookup__list-button';\n\nconst SmartyUSResults = ({\n onSelect,\n initialAddress = null,\n readOnlyView = false,\n validationRequestId = 0,\n language = 'en',\n strings = null,\n formDefinition = null,\n deferFormLookup = false\n}) => {\n const [mode, setMode] = useState('autocomplete');\n const [query, setQuery] = useState('');\n const [selectedAddress, setSelectedAddress] = useState(null);\n const [selectedUSAddress, setSelectedUSAddress] = useState(null);\n const [formData, setFormData] = useState(initialAddress || {});\n const [verificationStatus, setVerificationStatus] = useState(getIncomingVerificationStatus(initialAddress));\n const [validationTrigger, setValidationTrigger] = useState(0);\n const [validationTriggerSource, setValidationTriggerSource] = useState(null);\n const [showValidationSuggestions, setShowValidationSuggestions] = useState(false);\n const [mapAddressLines, setMapAddressLines] = useState([]);\n const [hasPendingLookupDraft, setHasPendingLookupDraft] = useState(false);\n const [touchedFields, setTouchedFields] = useState({});\n const [showAllRequiredErrors, setShowAllRequiredErrors] = useState(false);\n const [lookupServiceError, setLookupServiceError] = useState(null);\n const [validationServiceError, setValidationServiceError] = useState(null);\n const shouldSearchRef = useRef(true);\n const fieldTimerRef = useRef(null);\n const componentRef = useRef(null);\n const suggestionsListRef = useRef(null);\n const lastCommittedAddressRef = useRef(initialAddress || {});\n const lookupDraftOriginalRef = useRef(initialAddress || {});\n const appliedSelectionKeyRef = useRef(null);\n const mapValidationStartedRef = useRef(false);\n const autoApplyValidationStartedRef = useRef(false);\n const hasInitializedAddressRef = useRef(false);\n\n useEffect(() => {\n if (!initialAddress || hasInitializedAddressRef.current) {\n return;\n }\n\n hasInitializedAddressRef.current = true;\n setFormData(initialAddress);\n setVerificationStatus(getIncomingVerificationStatus(initialAddress));\n shouldSearchRef.current = false;\n lastCommittedAddressRef.current = initialAddress;\n lookupDraftOriginalRef.current = initialAddress;\n setTouchedFields({});\n setShowAllRequiredErrors(false);\n setLookupServiceError(null);\n setValidationServiceError(null);\n setMapAddressLines([]);\n }, [initialAddress]);\n\n useEffect(() => {\n return () => {\n if (fieldTimerRef.current) {\n clearTimeout(fieldTimerRef.current);\n }\n };\n }, []);\n\n const isAutocompleteMode = mode === 'autocomplete';\n const { labels: fieldLabels, isLoading: areLabelsLoading } = useAddressFieldLabels('US', language, strings);\n const shouldLoadAddressForm = !formDefinition && !deferFormLookup;\n const { addressForm: loadedAddressForm, isLoading: isFormLoading } = useAddressForm('US', shouldLoadAddressForm);\n const providedAddressForm = formDefinition?.addressElements?.length ? formDefinition : null;\n const resolvedAddressForm = providedAddressForm || loadedAddressForm;\n const entryMode = resolvedAddressForm?.entryMode || 'both';\n const allowValidation = resolvedAddressForm?.validationMode !== 'disabled' && !readOnlyView;\n const lookupField = resolvedAddressForm?.lookupField || 'address1';\n\n useEffect(() => {\n setMode(entryMode === 'manual' ? 'manual' : 'autocomplete');\n }, [entryMode]);\n const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);\n const hasEmailField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'email');\n const hasMapCoordinates = (\n formData?.latitude !== undefined && formData?.longitude !== undefined\n );\n const hasLookupValue = Boolean(String(formData?.[lookupField] || '').trim());\n const canAttemptMap = Boolean(\n (!isAutocompleteMode && hasLookupValue) ||\n (isAutocompleteMode && ['autocomplete', 'verified'].includes(verificationStatus) && hasLookupValue)\n );\n const showMapAction = !readOnlyView && (hasMapCoordinates || (allowValidation && canAttemptMap));\n const mapInfoLines = (mapAddressLines.length ? mapAddressLines : [\n formData.address1,\n formData.address2,\n [formData.city, formData.region, formData.postalCode].filter(Boolean).join(' ')\n ]).filter(Boolean);\n const {\n mapContainerRef,\n pendingMapOpen,\n setPendingMapOpen,\n setShowMapModal,\n showMapModal\n } = useAddressMapModal({\n formData,\n infoLines: mapInfoLines,\n hasMapCoordinates,\n openInMapsLabel: fieldLabels?.openInMaps,\n shouldPrepareMap: showMapAction\n });\n\n const { suggestions, loading, error, rateLimited } = useSmartyUSLookup(\n !readOnlyView && shouldSearchRef.current && isAutocompleteMode ? query : '',\n selectedUSAddress,\n 500\n );\n const {\n suggestions: validationSuggestions,\n loading: validationLoading,\n error: validationError,\n rateLimited: validationRateLimited\n } = useUSAddressValidation(formData, allowValidation ? validationTrigger : 0);\n const lookupValue = formData[lookupField];\n const lookupErrorMessage = lookupServiceError?.rateLimited ?\n (fieldLabels?.rateLimited || 'Too many requests. Please wait a moment and try again.') :\n (fieldLabels?.lookupError || 'We could not look up that address right now.');\n const validationErrorMessage = validationServiceError?.rateLimited ?\n (fieldLabels?.rateLimited || 'Too many requests. Please wait a moment and try again.') :\n (fieldLabels?.validationError || 'We could not validate that address right now.');\n\n useEffect(() => {\n if (!validationRequestId) {\n return;\n }\n\n setShowAllRequiredErrors(true);\n onSelect?.({\n type: 'validation-request',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n }, [allowValidation, validationRequestId]);\n\n useEffect(() => {\n if (!error) {\n setLookupServiceError(null);\n return;\n }\n\n setLookupServiceError({\n rateLimited,\n rawMessage: error\n });\n }, [error, rateLimited]);\n\n useEffect(() => {\n if (!validationError) {\n setValidationServiceError(null);\n return;\n }\n\n setValidationServiceError({\n rateLimited: validationRateLimited,\n rawMessage: validationError\n });\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n }, [validationError, validationRateLimited]);\n\n useEffect(() => {\n if (!lookupServiceError) {\n return;\n }\n\n onSelect?.({\n type: 'lookup-error',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n }),\n error: {\n kind: lookupServiceError.rateLimited ? 'rate-limited' : 'api',\n source: 'autocomplete',\n message: lookupErrorMessage\n }\n });\n }, [lookupServiceError]);\n\n useEffect(() => {\n if (!validationServiceError) {\n return;\n }\n\n onSelect?.({\n type: 'validation-error',\n address: formData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData,\n verificationStatus,\n mode,\n requireValidation: allowValidation\n }),\n error: {\n kind: validationServiceError.rateLimited ? 'rate-limited' : 'api',\n source: 'validation',\n message: validationErrorMessage\n }\n });\n }, [validationServiceError]);\n\n const clearServiceErrors = ({ lookup = true, validation = true } = {}) => {\n if (lookup) {\n setLookupServiceError(null);\n }\n if (validation) {\n setValidationServiceError(null);\n }\n };\n\n const stripUnusedEmail = (address = {}) => {\n if (hasEmailField) {\n return address;\n }\n\n const nextAddress = { ...address };\n delete nextAddress.email;\n return nextAddress;\n };\n\n const buildTrackedAddress = (address = {}, status = 'unverified', source = null) => (\n stripUnusedEmail(withAddressVerification(address, status, source))\n );\n\n const isAcceptableInitialValidationResult = (validatedAddress) => (\n Boolean(validatedAddress?.isDeliverable)\n );\n\n const getBestInitialValidationResult = (suggestions = []) => (\n suggestions.find(isAcceptableInitialValidationResult) || null\n );\n\n useInitialAddressVerification({\n initialAddress,\n countryCode: 'US',\n lookupField,\n requireValidation: allowValidation,\n resolvedAddressForm,\n setValidationServiceError,\n setShowValidationSuggestions,\n setValidationTriggerSource,\n setValidationTrigger\n });\n\n useEffect(() => {\n if (validationTrigger > 0 && ['autocomplete', 'map', 'initial'].includes(validationTriggerSource)) {\n autoApplyValidationStartedRef.current = false;\n }\n }, [validationTrigger, validationTriggerSource]);\n\n useEffect(() => {\n if (validationLoading && validationTriggerSource === 'map') {\n mapValidationStartedRef.current = true;\n }\n if (validationLoading && ['autocomplete', 'map', 'initial'].includes(validationTriggerSource)) {\n autoApplyValidationStartedRef.current = true;\n }\n }, [validationLoading, validationTriggerSource]);\n\n useEffect(() => {\n if (\n validationTriggerSource === 'map' &&\n showValidationSuggestions &&\n !validationLoading &&\n validationSuggestions.length === 0 &&\n !validationServiceError &&\n mapValidationStartedRef.current\n ) {\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n }\n }, [validationLoading, validationSuggestions, validationTriggerSource, showValidationSuggestions, validationServiceError]);\n\n useEffect(() => {\n if (lookupValue !== undefined && shouldSearchRef.current && !selectedAddress) {\n setQuery(lookupValue);\n }\n }, [lookupValue, selectedAddress]);\n\n useEffect(() => {\n const shouldShowValidationResults =\n allowValidation &&\n showValidationSuggestions &&\n validationSuggestions.length > 0 &&\n !validationLoading &&\n (!isAutocompleteMode || validationTriggerSource === 'map');\n\n if (!shouldShowValidationResults) {\n return;\n }\n\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0 || suggestionButtons.includes(document.activeElement)) {\n return;\n }\n\n suggestionButtons[0]?.focus();\n }, [\n isAutocompleteMode,\n allowValidation,\n showValidationSuggestions,\n validationLoading,\n validationSuggestions,\n validationTriggerSource\n ]);\n\n useEffect(() => {\n const shouldRefocusLookupField =\n isAutocompleteMode &&\n selectedUSAddress &&\n suggestions.length > 0 &&\n !selectedAddress &&\n !loading;\n\n if (!shouldRefocusLookupField) {\n return;\n }\n\n getLookupInputElement()?.focus();\n }, [isAutocompleteMode, selectedUSAddress, suggestions, selectedAddress, loading]);\n\n useEffect(() => {\n if (!hasPendingLookupDraft || suggestions.length === 0) {\n return undefined;\n }\n\n const handleDocumentMouseDown = (event) => {\n const component = componentRef.current;\n if (component?.contains(event.target)) {\n return;\n }\n\n const suggestionsList = suggestionsListRef.current;\n if (suggestionsList?.contains(event.target) === false) {\n shouldSearchRef.current = false;\n setQuery('');\n setSelectedAddress(null);\n setSelectedUSAddress(null);\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n clearServiceErrors();\n setFormData(lookupDraftOriginalRef.current);\n setMapAddressLines([]);\n setHasPendingLookupDraft(false);\n }\n };\n\n document.addEventListener('pointerdown', handleDocumentMouseDown);\n return () => {\n document.removeEventListener('pointerdown', handleDocumentMouseDown);\n };\n }, [hasPendingLookupDraft, suggestions]);\n\n useEffect(() => {\n if (isAutocompleteMode || !showValidationSuggestions || validationLoading || validationSuggestions.length === 0) {\n return undefined;\n }\n\n const handleDocumentPointerDown = (event) => {\n if (componentRef.current?.contains(event.target)) {\n return;\n }\n\n setShowValidationSuggestions(false);\n };\n\n document.addEventListener('pointerdown', handleDocumentPointerDown);\n return () => {\n document.removeEventListener('pointerdown', handleDocumentPointerDown);\n };\n }, [isAutocompleteMode, showValidationSuggestions, validationLoading, validationSuggestions]);\n\n useEffect(() => {\n if (selectedAddress) {\n const selectionKey = selectedAddress.street_line ?\n `${selectedAddress.street_line}|${selectedAddress.secondary || ''}|${selectedAddress.zipcode || ''}` :\n JSON.stringify(selectedAddress);\n if (appliedSelectionKeyRef.current === selectionKey) {\n return;\n }\n appliedSelectionKeyRef.current = selectionKey;\n\n const config = resolvedAddressForm.addressElements || [];\n\n let mapped = {\n address1: selectedAddress.street_line,\n address2: selectedAddress.secondary || '',\n city: selectedAddress.city,\n region: selectedAddress.state,\n postalCode: selectedAddress.zipcode\n };\n\n // Apply address wrapping if enabled\n if (resolvedAddressForm.wrapAddress1ToAddress2) {\n const address1Field = config.find(f => f.field === 'address1');\n if (address1Field?.maxLength) {\n const wrapped = wrapAddress1ToAddress2(mapped.address1, mapped.address2, address1Field.maxLength);\n mapped.address1 = wrapped.address1;\n mapped.address2 = wrapped.address2;\n }\n }\n\n const updatedFormData = {\n ...stripGeocode(formData),\n ...mapped,\n email: formData.email\n };\n const normalizedFormData = buildTrackedAddress(updatedFormData, 'autocomplete', 'smarty-us');\n setFormData(normalizedFormData);\n setMapAddressLines([]);\n lastCommittedAddressRef.current = normalizedFormData;\n lookupDraftOriginalRef.current = normalizedFormData;\n setHasPendingLookupDraft(false);\n clearServiceErrors();\n const currentVerificationStatus = 'autocomplete';\n setVerificationStatus(currentVerificationStatus);\n onSelect?.({\n type: 'autocomplete',\n address: normalizedFormData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: normalizedFormData,\n verificationStatus: currentVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n }\n }, [selectedAddress]);\n\n const handleInputChange = (e) => {\n const value = normalizeAddressFieldValue(lookupField, e.target.value);\n shouldSearchRef.current = true;\n appliedSelectionKeyRef.current = null;\n setSelectedAddress(null);\n setSelectedUSAddress(null);\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setMapAddressLines([]);\n setValidationTriggerSource(null);\n clearServiceErrors();\n if (!hasPendingLookupDraft) {\n lookupDraftOriginalRef.current = formData;\n setHasPendingLookupDraft(true);\n }\n const updatedLookupData = stripUnusedEmail({ ...stripGeocode(formData), [lookupField]: value });\n setFormData(buildTrackedAddress(updatedLookupData, 'unverified'));\n setVerificationStatus('unverified');\n };\n\n const isFieldRequired = (field) => requiredFields.includes(field);\n const isFieldBlank = (field) => String(formData[field] || '').trim() === '';\n const hasInvalidPostalCodeFormat = (field) => {\n if (field !== 'postalCode') {\n return false;\n }\n const value = String(formData.postalCode || '').trim();\n if (!value || !resolvedAddressForm.postalCodeRegex) {\n return false;\n }\n return !resolvedAddressForm.postalCodeRegex.test(normalizePostalCodeValue(value));\n };\n const hasInvalidEmailFormat = (field) => {\n if (field !== 'email') {\n return false;\n }\n const value = String(formData.email || '').trim();\n if (!value) {\n return false;\n }\n return !isValidEmail(value);\n };\n const shouldShowFieldError = (field) => {\n const shouldShowValidation = Boolean(showAllRequiredErrors || touchedFields[field]);\n if (!shouldShowValidation) {\n return false;\n }\n const requiredError = isFieldRequired(field) && isFieldBlank(field);\n return requiredError || hasInvalidPostalCodeFormat(field) || hasInvalidEmailFormat(field);\n };\n\n const handleFieldBlur = (field) => {\n if (!isFieldRequired(field) && field !== 'email' && field !== 'postalCode') {\n return;\n }\n setTouchedFields((prev) => ({ ...prev, [field]: true }));\n };\n\n const getFieldErrorMessage = (field) => {\n if (!shouldShowFieldError(field)) {\n return '';\n }\n if (isFieldRequired(field) && isFieldBlank(field)) {\n return areLabelsLoading ? '' : fieldLabels?.fieldRequired;\n }\n if (hasInvalidPostalCodeFormat(field)) {\n return areLabelsLoading ? '' : fieldLabels?.invalidPostalCode;\n }\n if (hasInvalidEmailFormat(field)) {\n return areLabelsLoading ? '' : fieldLabels?.invalidEmail;\n }\n return '';\n };\n\n const hasVisibleFieldError = (field) => shouldShowFieldError(field);\n\n const handleEditableFieldChange = (field, value) => {\n const normalizedValue = normalizeAddressFieldValue(field, value);\n if (field === lookupField) {\n setShowValidationSuggestions(false);\n }\n clearServiceErrors();\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setMapAddressLines([]);\n\n const requiredFieldsForVerification = resolvedAddressForm?.requiredFields || requiredFields;\n const nextVerificationStatus = getManualEditVerificationStatus(\n verificationStatus,\n field,\n lookupField,\n requiredFieldsForVerification\n );\n const updatedFormData = withManualAddressVerificationEdit(\n stripUnusedEmail({ ...stripGeocode(formData), [field]: normalizedValue }),\n field,\n nextVerificationStatus\n );\n setFormData(updatedFormData);\n setVerificationStatus(nextVerificationStatus);\n\n if (fieldTimerRef.current) {\n clearTimeout(fieldTimerRef.current);\n }\n\n fieldTimerRef.current = setTimeout(() => {\n const payload = {\n type: 'field-change',\n field,\n value: normalizedValue,\n address: updatedFormData,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: updatedFormData,\n verificationStatus: nextVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n };\n\n if (hasEmailField && field === 'email' && value) {\n payload.isValidEmail = isValidEmail(normalizedValue);\n }\n\n onSelect?.(payload);\n }, 500);\n };\n\n const handleSelect = (address) => {\n clearServiceErrors({ lookup: true, validation: false });\n if (address.entries > 1) {\n shouldSearchRef.current = true;\n appliedSelectionKeyRef.current = null;\n setSelectedUSAddress(address);\n const baseAddress = `${address.street_line} ${address.secondary}`.trim();\n setQuery(baseAddress);\n } else {\n shouldSearchRef.current = false;\n appliedSelectionKeyRef.current = null;\n setSelectedUSAddress(null);\n setSelectedAddress(address);\n setQuery('');\n }\n };\n\n const handleValidationSelect = (validatedAddress) => {\n clearServiceErrors({ lookup: false, validation: true });\n const config = resolvedAddressForm.addressElements || [];\n const {\n mapped: verifiedMapped,\n mapAddressLines: nextMapAddressLines\n } = buildUSVerifiedAddressMapping(validatedAddress);\n\n let mapped = { ...verifiedMapped };\n\n if (resolvedAddressForm.wrapAddress1ToAddress2) {\n const address1Field = config.find(f => f.field === 'address1');\n if (address1Field?.maxLength) {\n const wrapped = wrapAddress1ToAddress2(mapped.address1, mapped.address2, address1Field.maxLength);\n mapped.address1 = wrapped.address1;\n mapped.address2 = wrapped.address2;\n }\n }\n\n const updatedFormData = {\n ...stripGeocode(formData),\n ...mapped,\n email: formData.email,\n latitude: validatedAddress.metadata?.latitude,\n longitude: validatedAddress.metadata?.longitude\n };\n const currentVerificationStatus = validatedAddress.isDeliverable ? 'verified' : 'unverified';\n const normalizedFormData = buildTrackedAddress(updatedFormData, currentVerificationStatus, 'smarty-us');\n setShowValidationSuggestions(false);\n setValidationTriggerSource(null);\n setMapAddressLines(nextMapAddressLines);\n setFormData(normalizedFormData);\n lastCommittedAddressRef.current = normalizedFormData;\n lookupDraftOriginalRef.current = normalizedFormData;\n setHasPendingLookupDraft(false);\n setVerificationStatus(currentVerificationStatus);\n autoApplyValidationStartedRef.current = false;\n\n if (pendingMapOpen) {\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setShowMapModal(true);\n }\n\n onSelect?.({\n type: 'validation',\n address: normalizedFormData,\n verification: validatedAddress.analysis,\n isDeliverable: validatedAddress.isDeliverable,\n status: buildAddressStatus({\n countryCode: 'US',\n addressForm: resolvedAddressForm,\n formData: normalizedFormData,\n verificationStatus: currentVerificationStatus,\n mode,\n requireValidation: allowValidation\n })\n });\n };\n\n const handleValidate = () => {\n if (!allowValidation) {\n return;\n }\n clearServiceErrors({ lookup: false, validation: true });\n setShowValidationSuggestions(true);\n setValidationTriggerSource('manual');\n setValidationTrigger(prev => prev + 1);\n };\n\n const handleOpenMap = () => {\n if (hasMapCoordinates) {\n setShowMapModal(true);\n return;\n }\n\n if (!allowValidation || !canAttemptMap || validationLoading) {\n return;\n }\n\n clearServiceErrors({ lookup: false, validation: true });\n mapValidationStartedRef.current = false;\n setPendingMapOpen(true);\n setShowValidationSuggestions(true);\n setValidationTriggerSource('map');\n setValidationTrigger((prev) => prev + 1);\n };\n\n const getFieldKey = (fieldConfig) => fieldConfig.field;\n\n const getSuggestionKey = (suggestion) => [\n suggestion.street_line,\n suggestion.secondary,\n suggestion.city,\n suggestion.state,\n suggestion.zipcode,\n suggestion.entries\n ].filter((value) => value !== undefined && value !== null).join('|');\n\n const getValidationSuggestionKey = (suggestion) => [\n suggestion.delivery_line_1,\n suggestion.delivery_line_2,\n suggestion.last_line,\n suggestion.dpvMatchCode\n ].filter((value) => value !== undefined && value !== null).join('|');\n\n const getValidationSummaryTitle = (suggestion) => {\n const code = suggestion.validationSummary?.code;\n\n switch (code) {\n case 'verified':\n return fieldLabels?.usVerified || suggestion.validationSummary?.title || 'Verified';\n case 'missing-secondary':\n return fieldLabels?.usMissingSecondaryTitle || suggestion.validationSummary?.title || 'Apartment or suite needed';\n case 'invalid-secondary-required':\n return fieldLabels?.usInvalidSecondaryRequiredTitle || suggestion.validationSummary?.title || 'Apartment or suite not recognized';\n case 'invalid-secondary-optional':\n return fieldLabels?.usInvalidSecondaryOptionalTitle || suggestion.validationSummary?.title || 'Unit not recognized';\n case 'vacant':\n return fieldLabels?.usVacantTitle || suggestion.validationSummary?.title || 'Verified, but marked vacant';\n case 'no-stat':\n return fieldLabels?.usNoStatTitle || suggestion.validationSummary?.title || 'Verified with caution';\n case 'not-confirmed':\n return fieldLabels?.usNotConfirmedTitle || suggestion.validationSummary?.title || 'Not verified';\n default:\n return suggestion.validationSummary?.title || 'Candidate';\n }\n };\n\n const getValidationSummaryMessage = (suggestion) => {\n const code = suggestion.validationSummary?.code;\n\n switch (code) {\n case 'missing-secondary':\n return fieldLabels?.usMissingSecondaryMessage || suggestion.validationSummary?.message || '';\n case 'invalid-secondary-required':\n return fieldLabels?.usInvalidSecondaryRequiredMessage || suggestion.validationSummary?.message || '';\n case 'invalid-secondary-optional':\n return fieldLabels?.usInvalidSecondaryOptionalMessage || suggestion.validationSummary?.message || '';\n case 'vacant':\n return fieldLabels?.usVacantMessage || suggestion.validationSummary?.message || '';\n case 'no-stat':\n return fieldLabels?.usNoStatMessage || suggestion.validationSummary?.message || '';\n case 'not-confirmed':\n return fieldLabels?.usNotConfirmedMessage || suggestion.validationSummary?.message || '';\n case 'verified':\n return fieldLabels?.usVerifiedMessage || suggestion.validationSummary?.message || '';\n default:\n return suggestion.validationSummary?.message || '';\n }\n };\n\n const renderLookupActions = () => (\n <div className=\"ns-address-lookup__actions\">\n {showMapAction && (\n <button\n type=\"button\"\n onClick={handleOpenMap}\n className=\"ns-address-lookup__toggle ns-address-lookup__toggle--icon\"\n title={fieldLabels?.openInMaps}\n aria-label={fieldLabels?.openInMaps}\n >\n <LocationPinIcon className=\"ns-address-lookup__icon\" />\n </button>\n )}\n {!isAutocompleteMode && allowValidation && (\n <NsButton\n type=\"button\"\n onClick={handleValidate}\n disabled={validationLoading || !String(formData[lookupField] || '').trim()}\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n >\n {validationLoading ? 'Validating...' : 'Validate Address'}\n </NsButton>\n )}\n {entryMode === 'both' && (\n <button\n type=\"button\"\n onClick={() => {\n setShowValidationSuggestions(false);\n setShowMapModal(false);\n setPendingMapOpen(false);\n mapValidationStartedRef.current = false;\n setValidationTriggerSource(null);\n clearServiceErrors();\n setMode(mode === 'autocomplete' ? 'manual' : 'autocomplete');\n }}\n className=\"ns-address-lookup__toggle\"\n >\n {mode === 'autocomplete' ?\n fieldLabels?.switchToManualEntry :\n fieldLabels?.switchToAutocomplete}\n </button>\n )}\n </div>\n );\n\n const getLookupInputElement = () => (\n typeof document !== 'undefined' ? document.getElementById(getFieldId(lookupField)) : null\n );\n\n const getVisibleSuggestionButtons = () => (\n Array.from(componentRef.current?.querySelectorAll(LOOKUP_LIST_BUTTON_SELECTOR) || [])\n );\n\n const handleLookupInputKeyDown = (event) => {\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n const targetButton = event.key === 'ArrowUp' ?\n suggestionButtons[suggestionButtons.length - 1] :\n suggestionButtons[0];\n\n targetButton?.focus();\n };\n\n const handleSuggestionButtonKeyDown = (event, index) => {\n const suggestionButtons = getVisibleSuggestionButtons();\n\n if (suggestionButtons.length === 0) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (index === suggestionButtons.length - 1) {\n getLookupInputElement()?.focus();\n return;\n }\n\n suggestionButtons[index + 1]?.focus();\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (index === 0) {\n getLookupInputElement()?.focus();\n return;\n }\n\n suggestionButtons[index - 1]?.focus();\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n getLookupInputElement()?.focus();\n }\n };\n\n const renderLookupLists = (isLookupField) => {\n if (readOnlyView) {\n return null;\n }\n\n const shouldShowValidationResults =\n allowValidation &&\n showValidationSuggestions &&\n (!isAutocompleteMode || validationTriggerSource === 'map');\n const shouldShowNoResults =\n shouldShowValidationResults &&\n !validationLoading &&\n validationSuggestions.length === 0 &&\n !validationServiceError &&\n (validationTriggerSource !== 'map' || mapValidationStartedRef.current);\n\n if (!isLookupField) {\n return null;\n }\n\n if (loading && isAutocompleteMode) {\n return <div className=\"ns-address-lookup__spinner\" />;\n }\n\n if (suggestions.length > 0 && !selectedAddress && isAutocompleteMode) {\n return (\n <ul\n ref={suggestionsListRef}\n className=\"ns-address-lookup__list ns-address-lookup__list--suggestions\">\n {suggestions.map((suggestion, index) => (\n <li\n key={getSuggestionKey(suggestion)}\n className={[\n 'ns-address-lookup__list-item',\n index < suggestions.length - 1 ? 'ns-address-lookup__list-item--divided' : ''\n ].filter(Boolean).join(' ')}\n >\n <button\n type=\"button\"\n onClick={() => handleSelect(suggestion)}\n onKeyDown={(event) => handleSuggestionButtonKeyDown(event, index)}\n className=\"ns-address-lookup__list-button\"\n >\n {suggestion.displayText}\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n if (shouldShowValidationResults && validationSuggestions.length > 0) {\n return (\n <ul className=\"ns-address-lookup__list ns-address-lookup__list--validation-inline\">\n {validationSuggestions.map((suggestion, index) => (\n <li\n key={getValidationSuggestionKey(suggestion)}\n className={[\n 'ns-address-lookup__list-item',\n suggestion.validationSummary?.code === 'not-confirmed' ?\n 'ns-address-lookup__list-item--not-verified' : '',\n index < validationSuggestions.length - 1 ? 'ns-address-lookup__list-item--divided' : ''\n ].filter(Boolean).join(' ')}\n >\n <button\n type=\"button\"\n onClick={() => handleValidationSelect(suggestion)}\n onKeyDown={(event) => handleSuggestionButtonKeyDown(event, index)}\n className=\"ns-address-lookup__list-button\"\n >\n <div className=\"ns-address-lookup__list-title\">\n {getValidationSummaryTitle(suggestion)}\n </div>\n <div className=\"ns-address-lookup__list-subtitle\">\n {suggestion.displayText}\n </div>\n <div className=\"ns-address-lookup__list-subtitle\">\n {getValidationSummaryMessage(suggestion)}\n </div>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n if (shouldShowNoResults) {\n return (\n <div className=\"ns-address-lookup__message\">\n {fieldLabels?.usNoResults}\n </div>\n );\n }\n\n return null;\n };\n\n useEffect(() => {\n if (\n ['autocomplete', 'map'].includes(validationTriggerSource) &&\n validationSuggestions.length === 1 &&\n autoApplyValidationStartedRef.current\n ) {\n handleValidationSelect(validationSuggestions[0]);\n }\n\n if (\n validationTriggerSource === 'initial' &&\n autoApplyValidationStartedRef.current &&\n !validationLoading\n ) {\n const bestSuggestion = getBestInitialValidationResult(validationSuggestions);\n\n if (bestSuggestion) {\n handleValidationSelect(bestSuggestion);\n return;\n }\n\n autoApplyValidationStartedRef.current = false;\n setShowValidationSuggestions(false);\n setValidationTriggerSource(null);\n }\n }, [validationLoading, validationSuggestions, validationTriggerSource]);\n\n const renderField = (fieldConfig) => {\n const isLookupField = fieldConfig.field === lookupField;\n const fieldId = getFieldId(fieldConfig.field);\n const fieldLabel = areLabelsLoading ? '' : (fieldLabels?.[fieldConfig.field] || fieldConfig.label);\n const fieldError = getFieldErrorMessage(fieldConfig.field);\n const isInvalid = hasVisibleFieldError(fieldConfig.field);\n const isReadOnly = readOnlyView || ((!fieldConfig.editable && !isLookupField) && isAutocompleteMode);\n const fieldWidth = fieldConfig.width === 'full' ?\n '100%' :\n (fieldConfig.width === 'third' ? '33.333333%' : '50%');\n const inputClassName = [\n 'ns-address-lookup__input',\n isReadOnly ? 'ns-address-lookup__input--readonly' : '',\n isLookupField && loading ? 'ns-address-lookup__input--loading' : ''\n ].filter(Boolean).join(' ');\n const labelRowClassName = [\n 'ns-address-lookup__label-row',\n isLookupField ? '' : 'ns-address-lookup__label-row--field'\n ].filter(Boolean).join(' ');\n\n return (\n <div\n key={getFieldKey(fieldConfig)}\n className=\"ns-address-lookup__field\"\n style={{ width: fieldWidth }}\n >\n <div className={labelRowClassName}>\n <label\n htmlFor={fieldId}\n className=\"MuiFormLabel-root MuiFormLabel-colorPrimary css-1ef1ceb-MuiFormLabel-root\"\n >\n {fieldLabel}\n {fieldConfig.required && !areLabelsLoading && (\n <span\n aria-hidden=\"true\"\n className=\"MuiFormLabel-asterisk\"\n >\n {' *'}\n </span>\n )}\n </label>\n {isLookupField && !readOnlyView && renderLookupActions()}\n </div>\n <NsInputField\n id={fieldId}\n type=\"text\"\n value={formData[fieldConfig.field] || ''}\n aria-invalid={shouldShowFieldError(fieldConfig.field) ? 'true' : undefined}\n fieldState={isInvalid ? 'error' : undefined}\n helperText={fieldError || undefined}\n required={fieldConfig.required}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onKeyDown={isLookupField && !readOnlyView ? handleLookupInputKeyDown : undefined}\n onChange={(e) => {\n const filtered = filterAllowedCharacters(e.target.value, fieldConfig.allowedCharacters);\n if (readOnlyView) {\n return;\n }\n if (isLookupField && isAutocompleteMode) {\n handleInputChange({ ...e, target: { ...e.target, value: filtered } });\n } else {\n handleEditableFieldChange(fieldConfig.field, filtered);\n }\n }}\n InputProps={{\n readOnly: isReadOnly\n }}\n inputProps={{\n maxLength: fieldConfig.maxLength,\n 'data-testid': getFieldTestId(fieldConfig.field)\n }}\n className={inputClassName}\n />\n {renderLookupLists(isLookupField)}\n </div>\n );\n };\n\n const renderAddressForm = () => {\n const config = resolvedAddressForm?.addressElements;\n\n if (!config?.length) {\n if (isFormLoading) {\n return <div>{fieldLabels?.loadingAddressForm}</div>;\n }\n\n return <div>No form available for this country: US</div>;\n }\n\n return (\n <>\n {config.map(renderField)}\n </>\n );\n };\n\n return (\n <div ref={componentRef} className=\"ns-address-lookup__panel\">\n {lookupServiceError && (\n <div className=\"ns-address-lookup__message\">{lookupErrorMessage}</div>\n )}\n {allowValidation && validationServiceError && (\n <div className=\"ns-address-lookup__message\">\n {validationErrorMessage}\n </div>\n )}\n <div className=\"ns-address-lookup__form\">\n {renderAddressForm()}\n </div>\n {showMapModal && (\n <div\n className=\"ns-address-lookup__modal-backdrop\"\n onClick={() => setShowMapModal(false)}\n >\n <div\n className=\"ns-address-lookup__modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={fieldLabels?.addressLocation}\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"ns-address-lookup__modal-header\">\n <div className=\"ns-address-lookup__modal-title\">\n {fieldLabels?.addressLocation}\n </div>\n <button\n type=\"button\"\n className=\"ns-address-lookup__toggle\"\n aria-label=\"Close\"\n onClick={() => setShowMapModal(false)}\n >\n X\n </button>\n </div>\n <div ref={mapContainerRef} className=\"ns-address-lookup__map\" />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nSmartyUSResults.propTypes = {\n onSelect: PropTypes.func,\n initialAddress: addressPropType,\n readOnlyView: PropTypes.bool,\n validationRequestId: PropTypes.number,\n language: PropTypes.string,\n strings: labelStringsPropType,\n formDefinition: formDefinitionPropType,\n deferFormLookup: PropTypes.bool\n};\n\nexport default SmartyUSResults;\n"],"mappings":"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","ignoreList":[]}
@@ -28,7 +28,7 @@ const useInitialAddressVerification = ({
28
28
  if (!(resolvedAddressForm !== null && resolvedAddressForm !== void 0 && (_resolvedAddressForm$ = resolvedAddressForm.addressElements) !== null && _resolvedAddressForm$ !== void 0 && _resolvedAddressForm$.length) || !requireValidation) {
29
29
  return;
30
30
  }
31
- if ((0, _addressVerification.getIncomingVerificationStatus)(initialAddress) !== 'unverified') {
31
+ if (!['unverified', 'partial'].includes((0, _addressVerification.getIncomingVerificationStatus)(initialAddress))) {
32
32
  return;
33
33
  }
34
34
  const lookupValueForValidation = String((initialAddress === null || initialAddress === void 0 ? void 0 : initialAddress[lookupField]) || (initialAddress === null || initialAddress === void 0 ? void 0 : initialAddress.address1) || '').trim();
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialAddressVerification.js","names":["_react","require","_addressVerification","useInitialAddressVerification","initialAddress","countryCode","lookupField","requireValidation","resolvedAddressForm","setValidationServiceError","setCustomError","setShowValidationSuggestions","setValidationTriggerSource","setValidationTrigger","initialVerificationAttemptedRef","useRef","useEffect","_resolvedAddressForm$","current","addressElements","length","getIncomingVerificationStatus","lookupValueForValidation","String","address1","trim","attemptKey","JSON","stringify","previousValue","_default","exports","default"],"sources":["../../../src/addressLookup/hooks/useInitialAddressVerification.jsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { getIncomingVerificationStatus } from '../utils/addressVerification';\n\nconst useInitialAddressVerification = ({\n initialAddress,\n countryCode,\n lookupField,\n requireValidation,\n resolvedAddressForm,\n setValidationServiceError,\n setCustomError = null,\n setShowValidationSuggestions,\n setValidationTriggerSource,\n setValidationTrigger\n}) => {\n const initialVerificationAttemptedRef = useRef(null);\n\n useEffect(() => {\n if (!initialAddress) {\n initialVerificationAttemptedRef.current = null;\n return;\n }\n\n if (!resolvedAddressForm?.addressElements?.length || !requireValidation) {\n return;\n }\n\n if (getIncomingVerificationStatus(initialAddress) !== 'unverified') {\n return;\n }\n\n const lookupValueForValidation = String(\n initialAddress?.[lookupField] || initialAddress?.address1 || ''\n ).trim();\n\n if (!lookupValueForValidation) {\n return;\n }\n\n const attemptKey = JSON.stringify({\n countryCode,\n lookupField,\n initialAddress\n });\n\n if (initialVerificationAttemptedRef.current === attemptKey) {\n return;\n }\n\n initialVerificationAttemptedRef.current = attemptKey;\n setValidationServiceError(null);\n if (setCustomError) {\n setCustomError(null);\n }\n setShowValidationSuggestions(false);\n setValidationTriggerSource('initial');\n setValidationTrigger((previousValue) => previousValue + 1);\n }, [\n countryCode,\n initialAddress,\n lookupField,\n requireValidation,\n resolvedAddressForm,\n setCustomError,\n setShowValidationSuggestions,\n setValidationServiceError,\n setValidationTrigger,\n setValidationTriggerSource\n ]);\n};\n\nexport default useInitialAddressVerification;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,MAAME,6BAA6B,GAAGA,CAAC;EACrCC,cAAc;EACdC,WAAW;EACXC,WAAW;EACXC,iBAAiB;EACjBC,mBAAmB;EACnBC,yBAAyB;EACzBC,cAAc,GAAG,IAAI;EACrBC,4BAA4B;EAC5BC,0BAA0B;EAC1BC;AACF,CAAC,KAAK;EACJ,MAAMC,+BAA+B,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAEpD,IAAAC,gBAAS,EAAC,MAAM;IAAA,IAAAC,qBAAA;IACd,IAAI,CAACb,cAAc,EAAE;MACnBU,+BAA+B,CAACI,OAAO,GAAG,IAAI;MAC9C;IACF;IAEA,IAAI,EAACV,mBAAmB,aAAnBA,mBAAmB,gBAAAS,qBAAA,GAAnBT,mBAAmB,CAAEW,eAAe,cAAAF,qBAAA,eAApCA,qBAAA,CAAsCG,MAAM,KAAI,CAACb,iBAAiB,EAAE;MACvE;IACF;IAEA,IAAI,IAAAc,kDAA6B,EAACjB,cAAc,CAAC,KAAK,YAAY,EAAE;MAClE;IACF;IAEA,MAAMkB,wBAAwB,GAAGC,MAAM,CACrC,CAAAnB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGE,WAAW,CAAC,MAAIF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEoB,QAAQ,KAAI,EAC/D,CAAC,CAACC,IAAI,CAAC,CAAC;IAER,IAAI,CAACH,wBAAwB,EAAE;MAC7B;IACF;IAEA,MAAMI,UAAU,GAAGC,IAAI,CAACC,SAAS,CAAC;MAChCvB,WAAW;MACXC,WAAW;MACXF;IACF,CAAC,CAAC;IAEF,IAAIU,+BAA+B,CAACI,OAAO,KAAKQ,UAAU,EAAE;MAC1D;IACF;IAEAZ,+BAA+B,CAACI,OAAO,GAAGQ,UAAU;IACpDjB,yBAAyB,CAAC,IAAI,CAAC;IAC/B,IAAIC,cAAc,EAAE;MAClBA,cAAc,CAAC,IAAI,CAAC;IACtB;IACAC,4BAA4B,CAAC,KAAK,CAAC;IACnCC,0BAA0B,CAAC,SAAS,CAAC;IACrCC,oBAAoB,CAAEgB,aAAa,IAAKA,aAAa,GAAG,CAAC,CAAC;EAC5D,CAAC,EAAE,CACDxB,WAAW,EACXD,cAAc,EACdE,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBE,cAAc,EACdC,4BAA4B,EAC5BF,yBAAyB,EACzBI,oBAAoB,EACpBD,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAAC,IAAAkB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa7B,6BAA6B","ignoreList":[]}
1
+ {"version":3,"file":"useInitialAddressVerification.js","names":["_react","require","_addressVerification","useInitialAddressVerification","initialAddress","countryCode","lookupField","requireValidation","resolvedAddressForm","setValidationServiceError","setCustomError","setShowValidationSuggestions","setValidationTriggerSource","setValidationTrigger","initialVerificationAttemptedRef","useRef","useEffect","_resolvedAddressForm$","current","addressElements","length","includes","getIncomingVerificationStatus","lookupValueForValidation","String","address1","trim","attemptKey","JSON","stringify","previousValue","_default","exports","default"],"sources":["../../../src/addressLookup/hooks/useInitialAddressVerification.jsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { getIncomingVerificationStatus } from '../utils/addressVerification';\n\nconst useInitialAddressVerification = ({\n initialAddress,\n countryCode,\n lookupField,\n requireValidation,\n resolvedAddressForm,\n setValidationServiceError,\n setCustomError = null,\n setShowValidationSuggestions,\n setValidationTriggerSource,\n setValidationTrigger\n}) => {\n const initialVerificationAttemptedRef = useRef(null);\n\n useEffect(() => {\n if (!initialAddress) {\n initialVerificationAttemptedRef.current = null;\n return;\n }\n\n if (!resolvedAddressForm?.addressElements?.length || !requireValidation) {\n return;\n }\n\n if (!['unverified', 'partial'].includes(getIncomingVerificationStatus(initialAddress))) {\n return;\n }\n\n const lookupValueForValidation = String(\n initialAddress?.[lookupField] || initialAddress?.address1 || ''\n ).trim();\n\n if (!lookupValueForValidation) {\n return;\n }\n\n const attemptKey = JSON.stringify({\n countryCode,\n lookupField,\n initialAddress\n });\n\n if (initialVerificationAttemptedRef.current === attemptKey) {\n return;\n }\n\n initialVerificationAttemptedRef.current = attemptKey;\n setValidationServiceError(null);\n if (setCustomError) {\n setCustomError(null);\n }\n setShowValidationSuggestions(false);\n setValidationTriggerSource('initial');\n setValidationTrigger((previousValue) => previousValue + 1);\n }, [\n countryCode,\n initialAddress,\n lookupField,\n requireValidation,\n resolvedAddressForm,\n setCustomError,\n setShowValidationSuggestions,\n setValidationServiceError,\n setValidationTrigger,\n setValidationTriggerSource\n ]);\n};\n\nexport default useInitialAddressVerification;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,MAAME,6BAA6B,GAAGA,CAAC;EACrCC,cAAc;EACdC,WAAW;EACXC,WAAW;EACXC,iBAAiB;EACjBC,mBAAmB;EACnBC,yBAAyB;EACzBC,cAAc,GAAG,IAAI;EACrBC,4BAA4B;EAC5BC,0BAA0B;EAC1BC;AACF,CAAC,KAAK;EACJ,MAAMC,+BAA+B,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAEpD,IAAAC,gBAAS,EAAC,MAAM;IAAA,IAAAC,qBAAA;IACd,IAAI,CAACb,cAAc,EAAE;MACnBU,+BAA+B,CAACI,OAAO,GAAG,IAAI;MAC9C;IACF;IAEA,IAAI,EAACV,mBAAmB,aAAnBA,mBAAmB,gBAAAS,qBAAA,GAAnBT,mBAAmB,CAAEW,eAAe,cAAAF,qBAAA,eAApCA,qBAAA,CAAsCG,MAAM,KAAI,CAACb,iBAAiB,EAAE;MACvE;IACF;IAEA,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAACc,QAAQ,CAAC,IAAAC,kDAA6B,EAAClB,cAAc,CAAC,CAAC,EAAE;MACtF;IACF;IAEA,MAAMmB,wBAAwB,GAAGC,MAAM,CACrC,CAAApB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGE,WAAW,CAAC,MAAIF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEqB,QAAQ,KAAI,EAC/D,CAAC,CAACC,IAAI,CAAC,CAAC;IAER,IAAI,CAACH,wBAAwB,EAAE;MAC7B;IACF;IAEA,MAAMI,UAAU,GAAGC,IAAI,CAACC,SAAS,CAAC;MAChCxB,WAAW;MACXC,WAAW;MACXF;IACF,CAAC,CAAC;IAEF,IAAIU,+BAA+B,CAACI,OAAO,KAAKS,UAAU,EAAE;MAC1D;IACF;IAEAb,+BAA+B,CAACI,OAAO,GAAGS,UAAU;IACpDlB,yBAAyB,CAAC,IAAI,CAAC;IAC/B,IAAIC,cAAc,EAAE;MAClBA,cAAc,CAAC,IAAI,CAAC;IACtB;IACAC,4BAA4B,CAAC,KAAK,CAAC;IACnCC,0BAA0B,CAAC,SAAS,CAAC;IACrCC,oBAAoB,CAAEiB,aAAa,IAAKA,aAAa,GAAG,CAAC,CAAC;EAC5D,CAAC,EAAE,CACDzB,WAAW,EACXD,cAAc,EACdE,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBE,cAAc,EACdC,4BAA4B,EAC5BF,yBAAyB,EACzBI,oBAAoB,EACpBD,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa9B,6BAA6B","ignoreList":[]}
@@ -12,7 +12,10 @@ const DEFAULT_ADDRESS_FORM = exports.DEFAULT_ADDRESS_FORM = {
12
12
  requiredFields: [],
13
13
  postalCodeRegex: null,
14
14
  verifyAfterAutocomplete: false,
15
- wrapAddress1ToAddress2: false
15
+ wrapAddress1ToAddress2: false,
16
+ entryMode: 'both',
17
+ validationMode: 'required',
18
+ minimumAcceptedLevel: 'verified'
16
19
  };
17
20
  const coerceAddressElement = (element = {}) => {
18
21
  const nextElement = {
@@ -77,6 +80,8 @@ const normalizeAddressElement = (element = {}) => ({
77
80
  editable: Boolean(element.editable),
78
81
  maxLength: normalizeMaxLength(element),
79
82
  required: Boolean(element.required),
83
+ allowMissingAfterVerification: Boolean(element.allow_missing_after_verification || element.allowMissingAfterVerification),
84
+ trustVerifiedFormat: Boolean(element.trust_verified_format || element.trustVerifiedFormat),
80
85
  allowedCharacters: normalizeAllowedCharacters(element.allowedCharacters || element.allowed_characters),
81
86
  apiMappings: normalizeApiMappings(element.api_mappings || element.apiMappings)
82
87
  });
@@ -106,9 +111,13 @@ const normalizePostalCodeRegex = postalCodeRegex => {
106
111
  return null;
107
112
  }
108
113
  };
114
+ const normalizeEntryMode = entryMode => ['both', 'autocomplete', 'manual'].includes(entryMode) ? entryMode : DEFAULT_ADDRESS_FORM.entryMode;
115
+ const normalizeValidationMode = validationMode => ['required', 'optional', 'disabled'].includes(validationMode) ? validationMode : DEFAULT_ADDRESS_FORM.validationMode;
116
+ const normalizeMinimumAcceptedLevel = minimumAcceptedLevel => ['verified', 'partial'].includes(minimumAcceptedLevel) ? minimumAcceptedLevel : DEFAULT_ADDRESS_FORM.minimumAcceptedLevel;
109
117
  const normalizeAddressForm = (result = {}) => {
110
118
  var _addressElements$;
111
119
  const addressElementsSource = result.address_elements || result.addressElements;
120
+ const addressEntry = result.address_entry || result.addressEntry || result;
112
121
  const addressElements = Array.isArray(addressElementsSource) ? addressElementsSource.map(normalizeAddressElement).filter(element => element.field) : [];
113
122
  return {
114
123
  addressElements,
@@ -116,7 +125,10 @@ const normalizeAddressForm = (result = {}) => {
116
125
  requiredFields: normalizeRequiredFields(addressElements),
117
126
  postalCodeRegex: normalizePostalCodeRegex(result.postal_code_regex || result.postalCodeRegex),
118
127
  verifyAfterAutocomplete: Boolean(result.verify_after_autocomplete || result.verifyAfterAutocomplete),
119
- wrapAddress1ToAddress2: Boolean(result.wrap_address1_to_address2 || result.wrapAddress1ToAddress2)
128
+ wrapAddress1ToAddress2: Boolean(result.wrap_address1_to_address2 || result.wrapAddress1ToAddress2),
129
+ entryMode: normalizeEntryMode(addressEntry.entry_mode || addressEntry.entryMode),
130
+ validationMode: normalizeValidationMode(addressEntry.validation_mode || addressEntry.validationMode),
131
+ minimumAcceptedLevel: normalizeMinimumAcceptedLevel(addressEntry.minimum_accepted_level || addressEntry.minimumAcceptedLevel)
120
132
  };
121
133
  };
122
134
  exports.normalizeAddressForm = normalizeAddressForm;
@@ -1 +1 @@
1
- {"version":3,"file":"addressForm.js","names":["_contentstackLib","require","cache","DEFAULT_ADDRESS_FORM","exports","addressElements","lookupField","requiredFields","postalCodeRegex","verifyAfterAutocomplete","wrapAddress1ToAddress2","coerceAddressElement","element","nextElement","max_length","undefined","Number","extractAddressForm","addressForm","address_elements","Array","isArray","map","normalizeApiMappings","apiMappings","autocomplete","verification","normalizeAllowedCharacters","allowedCharacters","RegExp","err","normalizeMaxLength","maxLength","normalizeWidth","width","normalizeAddressElement","field","editable","Boolean","required","allowed_characters","api_mappings","normalizeRequiredFields","seen","Set","filter","has","add","normalizePostalCodeRegex","normalizeAddressForm","result","_addressElements$","addressElementsSource","postal_code_regex","verify_after_autocomplete","wrap_address1_to_address2","getAddressForm","country","countryCode","cacheKey","stack","getStack","results","getMultiEntries","form","fallback","clearAddressFormCache","Object","keys","forEach"],"sources":["../../../src/addressLookup/utils/addressForm.js"],"sourcesContent":["import { getStack } from '@nuskin/contentstack-lib';\n\nconst cache = {};\nconst DEFAULT_ADDRESS_FORM = {\n addressElements: [],\n lookupField: 'address1',\n requiredFields: [],\n postalCodeRegex: null,\n verifyAfterAutocomplete: false,\n wrapAddress1ToAddress2: false\n};\n\nconst coerceAddressElement = (element = {}) => {\n const nextElement = { ...element };\n\n if (nextElement.max_length !== undefined && nextElement.max_length !== null) {\n nextElement.max_length = Number(nextElement.max_length);\n }\n\n return nextElement;\n};\n\nconst extractAddressForm = (addressForm = null) => {\n if (!addressForm || typeof addressForm !== 'object') {\n return addressForm;\n }\n\n return {\n ...addressForm,\n address_elements: Array.isArray(addressForm.address_elements) ?\n addressForm.address_elements.map(coerceAddressElement) :\n []\n };\n};\n\nconst normalizeApiMappings = (apiMappings = null) => {\n if (!apiMappings || typeof apiMappings !== 'object') {\n return null;\n }\n\n const autocomplete = typeof apiMappings.autocomplete === 'string' ? apiMappings.autocomplete : '';\n const verification = typeof apiMappings.verification === 'string' ? apiMappings.verification : '';\n\n if (!autocomplete && !verification) {\n return null;\n }\n\n return {\n autocomplete: autocomplete || null,\n verification: verification || null\n };\n};\n\nconst normalizeAllowedCharacters = (allowedCharacters) => {\n if (!allowedCharacters || typeof allowedCharacters !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(allowedCharacters);\n } catch (err) {\n return null;\n }\n};\n\nconst normalizeMaxLength = (element = {}) => {\n if (typeof element.maxLength === 'number') {\n return element.maxLength;\n }\n\n if (typeof element.max_length === 'number') {\n return element.max_length;\n }\n\n return null;\n};\n\nconst normalizeWidth = (width) => {\n if (width === 'half' || width === 'third') {\n return width;\n }\n\n return 'full';\n};\n\nconst normalizeAddressElement = (element = {}) => ({\n field: element.field || '',\n width: normalizeWidth(element.width),\n editable: Boolean(element.editable),\n maxLength: normalizeMaxLength(element),\n required: Boolean(element.required),\n allowedCharacters: normalizeAllowedCharacters(element.allowedCharacters || element.allowed_characters),\n apiMappings: normalizeApiMappings(element.api_mappings || element.apiMappings)\n});\n\nconst normalizeRequiredFields = (addressElements = []) => {\n const seen = new Set();\n\n return addressElements\n .filter((element) => element.required && element.field)\n .map((element) => element.field)\n .filter((field) => {\n if (seen.has(field)) {\n return false;\n }\n seen.add(field);\n return true;\n });\n};\n\nconst normalizePostalCodeRegex = (postalCodeRegex) => {\n if (!postalCodeRegex) {\n return null;\n }\n\n if (postalCodeRegex instanceof RegExp) {\n return postalCodeRegex;\n }\n\n if (typeof postalCodeRegex !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(postalCodeRegex);\n } catch (err) {\n return null;\n }\n};\n\nexport const normalizeAddressForm = (result = {}) => {\n const addressElementsSource = result.address_elements || result.addressElements;\n\n const addressElements = Array.isArray(addressElementsSource) ?\n addressElementsSource.map(normalizeAddressElement).filter((element) => element.field) :\n [];\n\n return {\n addressElements,\n lookupField: addressElements[0]?.field || DEFAULT_ADDRESS_FORM.lookupField,\n requiredFields: normalizeRequiredFields(addressElements),\n postalCodeRegex: normalizePostalCodeRegex(result.postal_code_regex || result.postalCodeRegex),\n verifyAfterAutocomplete: Boolean(result.verify_after_autocomplete || result.verifyAfterAutocomplete),\n wrapAddress1ToAddress2: Boolean(result.wrap_address1_to_address2 || result.wrapAddress1ToAddress2)\n };\n};\n\nexport const getAddressForm = async (country) => {\n const countryCode = country || 'US';\n const cacheKey = `${countryCode}`;\n\n if (cache[cacheKey]) {\n return cache[cacheKey];\n }\n\n try {\n const stack = getStack();\n const results = await stack.getMultiEntries('address_form', true, [countryCode]);\n const form = normalizeAddressForm(extractAddressForm(results?.[0]));\n cache[cacheKey] = form;\n return form;\n } catch (err) {\n const fallback = { ...DEFAULT_ADDRESS_FORM };\n cache[cacheKey] = fallback;\n return fallback;\n }\n};\n\nexport const clearAddressFormCache = () => {\n Object.keys(cache).forEach((cacheKey) => {\n delete cache[cacheKey];\n });\n};\n\nexport { DEFAULT_ADDRESS_FORM };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addressForm.js","names":["_contentstackLib","require","cache","DEFAULT_ADDRESS_FORM","exports","addressElements","lookupField","requiredFields","postalCodeRegex","verifyAfterAutocomplete","wrapAddress1ToAddress2","entryMode","validationMode","minimumAcceptedLevel","coerceAddressElement","element","nextElement","max_length","undefined","Number","extractAddressForm","addressForm","address_elements","Array","isArray","map","normalizeApiMappings","apiMappings","autocomplete","verification","normalizeAllowedCharacters","allowedCharacters","RegExp","err","normalizeMaxLength","maxLength","normalizeWidth","width","normalizeAddressElement","field","editable","Boolean","required","allowMissingAfterVerification","allow_missing_after_verification","trustVerifiedFormat","trust_verified_format","allowed_characters","api_mappings","normalizeRequiredFields","seen","Set","filter","has","add","normalizePostalCodeRegex","normalizeEntryMode","includes","normalizeValidationMode","normalizeMinimumAcceptedLevel","normalizeAddressForm","result","_addressElements$","addressElementsSource","addressEntry","address_entry","postal_code_regex","verify_after_autocomplete","wrap_address1_to_address2","entry_mode","validation_mode","minimum_accepted_level","getAddressForm","country","countryCode","cacheKey","stack","getStack","results","getMultiEntries","form","fallback","clearAddressFormCache","Object","keys","forEach"],"sources":["../../../src/addressLookup/utils/addressForm.js"],"sourcesContent":["import { getStack } from '@nuskin/contentstack-lib';\n\nconst cache = {};\nconst DEFAULT_ADDRESS_FORM = {\n addressElements: [],\n lookupField: 'address1',\n requiredFields: [],\n postalCodeRegex: null,\n verifyAfterAutocomplete: false,\n wrapAddress1ToAddress2: false,\n entryMode: 'both',\n validationMode: 'required',\n minimumAcceptedLevel: 'verified'\n};\n\nconst coerceAddressElement = (element = {}) => {\n const nextElement = { ...element };\n\n if (nextElement.max_length !== undefined && nextElement.max_length !== null) {\n nextElement.max_length = Number(nextElement.max_length);\n }\n\n return nextElement;\n};\n\nconst extractAddressForm = (addressForm = null) => {\n if (!addressForm || typeof addressForm !== 'object') {\n return addressForm;\n }\n\n return {\n ...addressForm,\n address_elements: Array.isArray(addressForm.address_elements) ?\n addressForm.address_elements.map(coerceAddressElement) :\n []\n };\n};\n\nconst normalizeApiMappings = (apiMappings = null) => {\n if (!apiMappings || typeof apiMappings !== 'object') {\n return null;\n }\n\n const autocomplete = typeof apiMappings.autocomplete === 'string' ? apiMappings.autocomplete : '';\n const verification = typeof apiMappings.verification === 'string' ? apiMappings.verification : '';\n\n if (!autocomplete && !verification) {\n return null;\n }\n\n return {\n autocomplete: autocomplete || null,\n verification: verification || null\n };\n};\n\nconst normalizeAllowedCharacters = (allowedCharacters) => {\n if (!allowedCharacters || typeof allowedCharacters !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(allowedCharacters);\n } catch (err) {\n return null;\n }\n};\n\nconst normalizeMaxLength = (element = {}) => {\n if (typeof element.maxLength === 'number') {\n return element.maxLength;\n }\n\n if (typeof element.max_length === 'number') {\n return element.max_length;\n }\n\n return null;\n};\n\nconst normalizeWidth = (width) => {\n if (width === 'half' || width === 'third') {\n return width;\n }\n\n return 'full';\n};\n\nconst normalizeAddressElement = (element = {}) => ({\n field: element.field || '',\n width: normalizeWidth(element.width),\n editable: Boolean(element.editable),\n maxLength: normalizeMaxLength(element),\n required: Boolean(element.required),\n allowMissingAfterVerification: Boolean(\n element.allow_missing_after_verification || element.allowMissingAfterVerification\n ),\n trustVerifiedFormat: Boolean(element.trust_verified_format || element.trustVerifiedFormat),\n allowedCharacters: normalizeAllowedCharacters(element.allowedCharacters || element.allowed_characters),\n apiMappings: normalizeApiMappings(element.api_mappings || element.apiMappings)\n});\n\nconst normalizeRequiredFields = (addressElements = []) => {\n const seen = new Set();\n\n return addressElements\n .filter((element) => element.required && element.field)\n .map((element) => element.field)\n .filter((field) => {\n if (seen.has(field)) {\n return false;\n }\n seen.add(field);\n return true;\n });\n};\n\nconst normalizePostalCodeRegex = (postalCodeRegex) => {\n if (!postalCodeRegex) {\n return null;\n }\n\n if (postalCodeRegex instanceof RegExp) {\n return postalCodeRegex;\n }\n\n if (typeof postalCodeRegex !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(postalCodeRegex);\n } catch (err) {\n return null;\n }\n};\n\nconst normalizeEntryMode = (entryMode) => (\n ['both', 'autocomplete', 'manual'].includes(entryMode) ? entryMode : DEFAULT_ADDRESS_FORM.entryMode\n);\n\nconst normalizeValidationMode = (validationMode) => (\n ['required', 'optional', 'disabled'].includes(validationMode) ?\n validationMode :\n DEFAULT_ADDRESS_FORM.validationMode\n);\n\nconst normalizeMinimumAcceptedLevel = (minimumAcceptedLevel) => (\n ['verified', 'partial'].includes(minimumAcceptedLevel) ?\n minimumAcceptedLevel :\n DEFAULT_ADDRESS_FORM.minimumAcceptedLevel\n);\n\nexport const normalizeAddressForm = (result = {}) => {\n const addressElementsSource = result.address_elements || result.addressElements;\n const addressEntry = result.address_entry || result.addressEntry || result;\n\n const addressElements = Array.isArray(addressElementsSource) ?\n addressElementsSource.map(normalizeAddressElement).filter((element) => element.field) :\n [];\n\n return {\n addressElements,\n lookupField: addressElements[0]?.field || DEFAULT_ADDRESS_FORM.lookupField,\n requiredFields: normalizeRequiredFields(addressElements),\n postalCodeRegex: normalizePostalCodeRegex(result.postal_code_regex || result.postalCodeRegex),\n verifyAfterAutocomplete: Boolean(result.verify_after_autocomplete || result.verifyAfterAutocomplete),\n wrapAddress1ToAddress2: Boolean(result.wrap_address1_to_address2 || result.wrapAddress1ToAddress2),\n entryMode: normalizeEntryMode(addressEntry.entry_mode || addressEntry.entryMode),\n validationMode: normalizeValidationMode(addressEntry.validation_mode || addressEntry.validationMode),\n minimumAcceptedLevel: normalizeMinimumAcceptedLevel(\n addressEntry.minimum_accepted_level || addressEntry.minimumAcceptedLevel\n )\n };\n};\n\nexport const getAddressForm = async (country) => {\n const countryCode = country || 'US';\n const cacheKey = `${countryCode}`;\n\n if (cache[cacheKey]) {\n return cache[cacheKey];\n }\n\n try {\n const stack = getStack();\n const results = await stack.getMultiEntries('address_form', true, [countryCode]);\n const form = normalizeAddressForm(extractAddressForm(results?.[0]));\n cache[cacheKey] = form;\n return form;\n } catch (err) {\n const fallback = { ...DEFAULT_ADDRESS_FORM };\n cache[cacheKey] = fallback;\n return fallback;\n }\n};\n\nexport const clearAddressFormCache = () => {\n Object.keys(cache).forEach((cacheKey) => {\n delete cache[cacheKey];\n });\n};\n\nexport { DEFAULT_ADDRESS_FORM };\n"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,MAAMC,KAAK,GAAG,CAAC,CAAC;AAChB,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAC3BE,eAAe,EAAE,EAAE;EACnBC,WAAW,EAAE,UAAU;EACvBC,cAAc,EAAE,EAAE;EAClBC,eAAe,EAAE,IAAI;EACrBC,uBAAuB,EAAE,KAAK;EAC9BC,sBAAsB,EAAE,KAAK;EAC7BC,SAAS,EAAE,MAAM;EACjBC,cAAc,EAAE,UAAU;EAC1BC,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,oBAAoB,GAAGA,CAACC,OAAO,GAAG,CAAC,CAAC,KAAK;EAC7C,MAAMC,WAAW,GAAG;IAAE,GAAGD;EAAQ,CAAC;EAElC,IAAIC,WAAW,CAACC,UAAU,KAAKC,SAAS,IAAIF,WAAW,CAACC,UAAU,KAAK,IAAI,EAAE;IAC3ED,WAAW,CAACC,UAAU,GAAGE,MAAM,CAACH,WAAW,CAACC,UAAU,CAAC;EACzD;EAEA,OAAOD,WAAW;AACpB,CAAC;AAED,MAAMI,kBAAkB,GAAGA,CAACC,WAAW,GAAG,IAAI,KAAK;EACjD,IAAI,CAACA,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAE;IACnD,OAAOA,WAAW;EACpB;EAEA,OAAO;IACL,GAAGA,WAAW;IACdC,gBAAgB,EAAEC,KAAK,CAACC,OAAO,CAACH,WAAW,CAACC,gBAAgB,CAAC,GAC3DD,WAAW,CAACC,gBAAgB,CAACG,GAAG,CAACX,oBAAoB,CAAC,GACtD;EACJ,CAAC;AACH,CAAC;AAED,MAAMY,oBAAoB,GAAGA,CAACC,WAAW,GAAG,IAAI,KAAK;EACnD,IAAI,CAACA,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAE;IACnD,OAAO,IAAI;EACb;EAEA,MAAMC,YAAY,GAAG,OAAOD,WAAW,CAACC,YAAY,KAAK,QAAQ,GAAGD,WAAW,CAACC,YAAY,GAAG,EAAE;EACjG,MAAMC,YAAY,GAAG,OAAOF,WAAW,CAACE,YAAY,KAAK,QAAQ,GAAGF,WAAW,CAACE,YAAY,GAAG,EAAE;EAEjG,IAAI,CAACD,YAAY,IAAI,CAACC,YAAY,EAAE;IAClC,OAAO,IAAI;EACb;EAEA,OAAO;IACLD,YAAY,EAAEA,YAAY,IAAI,IAAI;IAClCC,YAAY,EAAEA,YAAY,IAAI;EAChC,CAAC;AACH,CAAC;AAED,MAAMC,0BAA0B,GAAIC,iBAAiB,IAAK;EACxD,IAAI,CAACA,iBAAiB,IAAI,OAAOA,iBAAiB,KAAK,QAAQ,EAAE;IAC/D,OAAO,IAAI;EACb;EAEA,IAAI;IACF,OAAO,IAAIC,MAAM,CAACD,iBAAiB,CAAC;EACtC,CAAC,CAAC,OAAOE,GAAG,EAAE;IACZ,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMC,kBAAkB,GAAGA,CAACnB,OAAO,GAAG,CAAC,CAAC,KAAK;EAC3C,IAAI,OAAOA,OAAO,CAACoB,SAAS,KAAK,QAAQ,EAAE;IACzC,OAAOpB,OAAO,CAACoB,SAAS;EAC1B;EAEA,IAAI,OAAOpB,OAAO,CAACE,UAAU,KAAK,QAAQ,EAAE;IAC1C,OAAOF,OAAO,CAACE,UAAU;EAC3B;EAEA,OAAO,IAAI;AACb,CAAC;AAED,MAAMmB,cAAc,GAAIC,KAAK,IAAK;EAChC,IAAIA,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,OAAO,EAAE;IACzC,OAAOA,KAAK;EACd;EAEA,OAAO,MAAM;AACf,CAAC;AAED,MAAMC,uBAAuB,GAAGA,CAACvB,OAAO,GAAG,CAAC,CAAC,MAAM;EACjDwB,KAAK,EAAExB,OAAO,CAACwB,KAAK,IAAI,EAAE;EAC1BF,KAAK,EAAED,cAAc,CAACrB,OAAO,CAACsB,KAAK,CAAC;EACpCG,QAAQ,EAAEC,OAAO,CAAC1B,OAAO,CAACyB,QAAQ,CAAC;EACnCL,SAAS,EAAED,kBAAkB,CAACnB,OAAO,CAAC;EACtC2B,QAAQ,EAAED,OAAO,CAAC1B,OAAO,CAAC2B,QAAQ,CAAC;EACnCC,6BAA6B,EAAEF,OAAO,CACpC1B,OAAO,CAAC6B,gCAAgC,IAAI7B,OAAO,CAAC4B,6BACtD,CAAC;EACDE,mBAAmB,EAAEJ,OAAO,CAAC1B,OAAO,CAAC+B,qBAAqB,IAAI/B,OAAO,CAAC8B,mBAAmB,CAAC;EAC1Fd,iBAAiB,EAAED,0BAA0B,CAACf,OAAO,CAACgB,iBAAiB,IAAIhB,OAAO,CAACgC,kBAAkB,CAAC;EACtGpB,WAAW,EAAED,oBAAoB,CAACX,OAAO,CAACiC,YAAY,IAAIjC,OAAO,CAACY,WAAW;AAC/E,CAAC,CAAC;AAEF,MAAMsB,uBAAuB,GAAGA,CAAC5C,eAAe,GAAG,EAAE,KAAK;EACxD,MAAM6C,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;EAEtB,OAAO9C,eAAe,CACnB+C,MAAM,CAAErC,OAAO,IAAKA,OAAO,CAAC2B,QAAQ,IAAI3B,OAAO,CAACwB,KAAK,CAAC,CACtDd,GAAG,CAAEV,OAAO,IAAKA,OAAO,CAACwB,KAAK,CAAC,CAC/Ba,MAAM,CAAEb,KAAK,IAAK;IACjB,IAAIW,IAAI,CAACG,GAAG,CAACd,KAAK,CAAC,EAAE;MACnB,OAAO,KAAK;IACd;IACAW,IAAI,CAACI,GAAG,CAACf,KAAK,CAAC;IACf,OAAO,IAAI;EACb,CAAC,CAAC;AACN,CAAC;AAED,MAAMgB,wBAAwB,GAAI/C,eAAe,IAAK;EACpD,IAAI,CAACA,eAAe,EAAE;IACpB,OAAO,IAAI;EACb;EAEA,IAAIA,eAAe,YAAYwB,MAAM,EAAE;IACrC,OAAOxB,eAAe;EACxB;EAEA,IAAI,OAAOA,eAAe,KAAK,QAAQ,EAAE;IACvC,OAAO,IAAI;EACb;EAEA,IAAI;IACF,OAAO,IAAIwB,MAAM,CAACxB,eAAe,CAAC;EACpC,CAAC,CAAC,OAAOyB,GAAG,EAAE;IACZ,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMuB,kBAAkB,GAAI7C,SAAS,IACnC,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC8C,QAAQ,CAAC9C,SAAS,CAAC,GAAGA,SAAS,GAAGR,oBAAoB,CAACQ,SAC3F;AAED,MAAM+C,uBAAuB,GAAI9C,cAAc,IAC7C,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC6C,QAAQ,CAAC7C,cAAc,CAAC,GAC3DA,cAAc,GACdT,oBAAoB,CAACS,cACxB;AAED,MAAM+C,6BAA6B,GAAI9C,oBAAoB,IACzD,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC4C,QAAQ,CAAC5C,oBAAoB,CAAC,GACpDA,oBAAoB,GACpBV,oBAAoB,CAACU,oBACxB;AAEM,MAAM+C,oBAAoB,GAAGA,CAACC,MAAM,GAAG,CAAC,CAAC,KAAK;EAAA,IAAAC,iBAAA;EACnD,MAAMC,qBAAqB,GAAGF,MAAM,CAACvC,gBAAgB,IAAIuC,MAAM,CAACxD,eAAe;EAC/E,MAAM2D,YAAY,GAAGH,MAAM,CAACI,aAAa,IAAIJ,MAAM,CAACG,YAAY,IAAIH,MAAM;EAE1E,MAAMxD,eAAe,GAAGkB,KAAK,CAACC,OAAO,CAACuC,qBAAqB,CAAC,GAC1DA,qBAAqB,CAACtC,GAAG,CAACa,uBAAuB,CAAC,CAACc,MAAM,CAAErC,OAAO,IAAKA,OAAO,CAACwB,KAAK,CAAC,GACrF,EAAE;EAEJ,OAAO;IACLlC,eAAe;IACfC,WAAW,EAAE,EAAAwD,iBAAA,GAAAzD,eAAe,CAAC,CAAC,CAAC,cAAAyD,iBAAA,uBAAlBA,iBAAA,CAAoBvB,KAAK,KAAIpC,oBAAoB,CAACG,WAAW;IAC1EC,cAAc,EAAE0C,uBAAuB,CAAC5C,eAAe,CAAC;IACxDG,eAAe,EAAE+C,wBAAwB,CAACM,MAAM,CAACK,iBAAiB,IAAIL,MAAM,CAACrD,eAAe,CAAC;IAC7FC,uBAAuB,EAAEgC,OAAO,CAACoB,MAAM,CAACM,yBAAyB,IAAIN,MAAM,CAACpD,uBAAuB,CAAC;IACpGC,sBAAsB,EAAE+B,OAAO,CAACoB,MAAM,CAACO,yBAAyB,IAAIP,MAAM,CAACnD,sBAAsB,CAAC;IAClGC,SAAS,EAAE6C,kBAAkB,CAACQ,YAAY,CAACK,UAAU,IAAIL,YAAY,CAACrD,SAAS,CAAC;IAChFC,cAAc,EAAE8C,uBAAuB,CAACM,YAAY,CAACM,eAAe,IAAIN,YAAY,CAACpD,cAAc,CAAC;IACpGC,oBAAoB,EAAE8C,6BAA6B,CACjDK,YAAY,CAACO,sBAAsB,IAAIP,YAAY,CAACnD,oBACtD;EACF,CAAC;AACH,CAAC;AAACT,OAAA,CAAAwD,oBAAA,GAAAA,oBAAA;AAEK,MAAMY,cAAc,GAAG,MAAOC,OAAO,IAAK;EAC/C,MAAMC,WAAW,GAAGD,OAAO,IAAI,IAAI;EACnC,MAAME,QAAQ,GAAG,GAAGD,WAAW,EAAE;EAEjC,IAAIxE,KAAK,CAACyE,QAAQ,CAAC,EAAE;IACnB,OAAOzE,KAAK,CAACyE,QAAQ,CAAC;EACxB;EAEA,IAAI;IACF,MAAMC,KAAK,GAAG,IAAAC,yBAAQ,EAAC,CAAC;IACxB,MAAMC,OAAO,GAAG,MAAMF,KAAK,CAACG,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,CAACL,WAAW,CAAC,CAAC;IAChF,MAAMM,IAAI,GAAGpB,oBAAoB,CAACxC,kBAAkB,CAAC0D,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAG,CAAC,CAAC,CAAC,CAAC;IACnE5E,KAAK,CAACyE,QAAQ,CAAC,GAAGK,IAAI;IACtB,OAAOA,IAAI;EACb,CAAC,CAAC,OAAO/C,GAAG,EAAE;IACZ,MAAMgD,QAAQ,GAAG;MAAE,GAAG9E;IAAqB,CAAC;IAC5CD,KAAK,CAACyE,QAAQ,CAAC,GAAGM,QAAQ;IAC1B,OAAOA,QAAQ;EACjB;AACF,CAAC;AAAC7E,OAAA,CAAAoE,cAAA,GAAAA,cAAA;AAEK,MAAMU,qBAAqB,GAAGA,CAAA,KAAM;EACzCC,MAAM,CAACC,IAAI,CAAClF,KAAK,CAAC,CAACmF,OAAO,CAAEV,QAAQ,IAAK;IACvC,OAAOzE,KAAK,CAACyE,QAAQ,CAAC;EACxB,CAAC,CAAC;AACJ,CAAC;AAACvE,OAAA,CAAA8E,qBAAA,GAAAA,qBAAA","ignoreList":[]}