@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.
@@ -11,7 +11,10 @@ const DEFAULT_RESOLVED_ADDRESS_FORM = {
11
11
  requiredFields: [],
12
12
  postalCodeRegex: null,
13
13
  verifyAfterAutocomplete: false,
14
- wrapAddress1ToAddress2: false
14
+ wrapAddress1ToAddress2: false,
15
+ entryMode: 'both',
16
+ validationMode: 'required',
17
+ minimumAcceptedLevel: 'verified'
15
18
  };
16
19
  const OPTIONAL_FIELDS = new Set(['address2', 'email']);
17
20
  const isBlank = value => {
@@ -68,7 +71,13 @@ const shouldVerifyAutocompleteSelection = ({
68
71
  if (resolvedAddressForm.verifyAfterAutocomplete) {
69
72
  return true;
70
73
  }
71
- return getMissingRequiredFields(resolvedAddressForm, formData).length > 0;
74
+ if (getMissingRequiredFields(resolvedAddressForm, formData).length > 0) {
75
+ return true;
76
+ }
77
+ const postalCodeField = resolvedAddressForm.addressElements.find(field => field.field === 'postalCode');
78
+ const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);
79
+ const postalCode = getPostalCodeStatus(formData, requiredFields, resolvedAddressForm);
80
+ return Boolean((postalCodeField === null || postalCodeField === void 0 ? void 0 : postalCodeField.trustVerifiedFormat) && postalCode.isValid === false);
72
81
  };
73
82
  exports.shouldVerifyAutocompleteSelection = shouldVerifyAutocompleteSelection;
74
83
  const getPostalCodeStatus = (formData, requiredFields, addressForm = null) => {
@@ -136,8 +145,7 @@ const buildAddressStatus = ({
136
145
  addressForm = null,
137
146
  formData,
138
147
  verificationStatus,
139
- mode,
140
- requireValidation = true
148
+ mode
141
149
  }) => {
142
150
  var _formData$verificatio;
143
151
  const resolvedAddressForm = resolveAddressForm(addressForm);
@@ -148,20 +156,46 @@ const buildAddressStatus = ({
148
156
  const email = getEmailStatus(formData, requiredFields, resolvedAddressForm);
149
157
  const hasInvalidPostalCode = postalCode.applicable && postalCode.value !== '' && postalCode.isValid === false;
150
158
  const hasInvalidEmail = (email === null || email === void 0 ? void 0 : email.applicable) && email.value !== '' && email.isValid === false;
151
- const isComplete = formAvailable && missingFields.length === 0 && !hasInvalidPostalCode && !hasInvalidEmail;
159
+ const validationMode = resolvedAddressForm.validationMode;
160
+ const minimumAcceptedLevel = resolvedAddressForm.minimumAcceptedLevel;
161
+ const hasAcceptedVerification = verificationStatus === 'verified' || minimumAcceptedLevel === 'partial' && verificationStatus === 'partial';
162
+ const allowedMissingFields = hasAcceptedVerification ? missingFields.filter(field => {
163
+ var _resolvedAddressForm$2;
164
+ return (_resolvedAddressForm$2 = resolvedAddressForm.addressElements.find(element => element.field === field)) === null || _resolvedAddressForm$2 === void 0 ? void 0 : _resolvedAddressForm$2.allowMissingAfterVerification;
165
+ }) : [];
166
+ const blockingMissingFields = missingFields.filter(field => !allowedMissingFields.includes(field));
167
+ const postalCodeField = resolvedAddressForm.addressElements.find(field => field.field === 'postalCode');
168
+ const trustsVerifiedPostalCodeFormat = hasAcceptedVerification && (postalCodeField === null || postalCodeField === void 0 ? void 0 : postalCodeField.trustVerifiedFormat) === true && hasInvalidPostalCode;
169
+ const meetsVerificationRequirement = validationMode !== 'required' || hasAcceptedVerification;
170
+ const isComplete = formAvailable && blockingMissingFields.length === 0 && (!hasInvalidPostalCode || trustsVerifiedPostalCodeFormat) && !hasInvalidEmail;
171
+ const canProceed = isComplete && (mode === 'autocomplete' ? verificationStatus === 'autocomplete' || hasAcceptedVerification : meetsVerificationRequirement);
152
172
  const completeness = isComplete ? 'complete' : 'incomplete';
153
173
  return {
154
174
  formAvailable,
155
175
  verification: verificationStatus,
176
+ validationMode,
177
+ minimumAcceptedLevel,
178
+ meetsVerificationRequirement,
179
+ canProceed,
180
+ ...(allowedMissingFields.length > 0 || trustsVerifiedPostalCodeFormat ? {
181
+ verificationExceptions: {
182
+ ...(allowedMissingFields.length > 0 ? {
183
+ missingFields: allowedMissingFields
184
+ } : {}),
185
+ ...(trustsVerifiedPostalCodeFormat ? {
186
+ trustedFormatFields: ['postalCode']
187
+ } : {})
188
+ }
189
+ } : {}),
156
190
  ...(formData !== null && formData !== void 0 && (_formData$verificatio = formData.verification) !== null && _formData$verificatio !== void 0 && _formData$verificatio.manuallyEdited ? {
157
191
  manualChanges: {
158
192
  manuallyEdited: true,
159
193
  editedFields: formData.verification.editedFields || []
160
194
  }
161
195
  } : {}),
162
- needsValidation: Boolean(requireValidation && mode === 'manual' && verificationStatus !== 'verified'),
196
+ needsValidation: Boolean(mode === 'manual' && !meetsVerificationRequirement),
163
197
  completeness,
164
- missingFields,
198
+ missingFields: blockingMissingFields,
165
199
  mode,
166
200
  postalCode,
167
201
  ...(email ? {
@@ -1 +1 @@
1
- {"version":3,"file":"addressStatus.js","names":["_validators","require","DEFAULT_RESOLVED_ADDRESS_FORM","addressElements","lookupField","requiredFields","postalCodeRegex","verifyAfterAutocomplete","wrapAddress1ToAddress2","OPTIONAL_FIELDS","Set","isBlank","value","undefined","String","trim","resolveAddressForm","addressForm","Array","isArray","getRequiredFieldsFromAddressForm","_resolvedAddressForm$","resolvedAddressForm","configRequired","formFields","map","field","formFieldSet","normalizeRequired","fields","seen","filter","has","add","length","exports","getMissingRequiredFields","formData","shouldVerifyAutocompleteSelection","requireValidation","getPostalCodeStatus","hasPostalField","some","applicable","required","isValid","postalCode","normalizePostalCodeValue","includes","regex","test","getEmailStatus","hasEmailField","email","isValidEmail","buildAddressStatus","verificationStatus","mode","_formData$verificatio","formAvailable","missingFields","hasInvalidPostalCode","hasInvalidEmail","isComplete","completeness","verification","manuallyEdited","manualChanges","editedFields","needsValidation","Boolean"],"sources":["../../../src/addressLookup/utils/addressStatus.js"],"sourcesContent":["import { isValidEmail, normalizePostalCodeValue } from './validators';\n\nconst DEFAULT_RESOLVED_ADDRESS_FORM = {\n addressElements: [],\n lookupField: 'address1',\n requiredFields: [],\n postalCodeRegex: null,\n verifyAfterAutocomplete: false,\n wrapAddress1ToAddress2: false\n};\n\nconst OPTIONAL_FIELDS = new Set(['address2', 'email']);\n\nconst isBlank = (value) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n return String(value).trim() === '';\n};\n\nconst resolveAddressForm = (addressForm = null) => {\n if (addressForm && Array.isArray(addressForm.addressElements)) {\n return {\n ...DEFAULT_RESOLVED_ADDRESS_FORM,\n ...addressForm\n };\n }\n\n return DEFAULT_RESOLVED_ADDRESS_FORM;\n};\n\nexport const getRequiredFieldsFromAddressForm = (addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const configRequired = resolvedAddressForm?.requiredFields;\n const formFields = resolvedAddressForm?.addressElements?.map((field) => field.field) || [];\n const formFieldSet = new Set(formFields);\n const normalizeRequired = (fields) => {\n const seen = new Set();\n return fields.filter((field) => {\n if (!formFieldSet.has(field) || seen.has(field)) {\n return false;\n }\n seen.add(field);\n return true;\n });\n };\n\n if (Array.isArray(configRequired) && configRequired.length > 0) {\n return normalizeRequired(configRequired);\n }\n\n return normalizeRequired(formFields.filter((field) => !OPTIONAL_FIELDS.has(field)));\n};\n\nexport const getMissingRequiredFields = (addressForm = null, formData = {}) => {\n const requiredFields = getRequiredFieldsFromAddressForm(addressForm);\n return requiredFields.filter((field) => isBlank(formData?.[field]));\n};\n\nexport const shouldVerifyAutocompleteSelection = ({\n addressForm = null,\n formData = {},\n requireValidation = true\n}) => {\n if (!requireValidation) {\n return false;\n }\n\n const resolvedAddressForm = resolveAddressForm(addressForm);\n\n if (resolvedAddressForm.verifyAfterAutocomplete) {\n return true;\n }\n\n return getMissingRequiredFields(resolvedAddressForm, formData).length > 0;\n};\n\nconst getPostalCodeStatus = (formData, requiredFields, addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const hasPostalField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'postalCode');\n\n if (!hasPostalField) {\n return {\n applicable: false,\n required: false,\n value: '',\n isValid: null\n };\n }\n\n const postalCode = formData?.postalCode || '';\n const value = normalizePostalCodeValue(postalCode);\n const required = requiredFields.includes('postalCode');\n const regex = resolvedAddressForm?.postalCodeRegex;\n\n if (value === '') {\n return {\n applicable: true,\n required,\n value,\n isValid: required ? false : null\n };\n }\n\n if (!regex) {\n return {\n applicable: true,\n required,\n value,\n isValid: null\n };\n }\n\n return {\n applicable: true,\n required,\n value,\n isValid: regex.test(value)\n };\n};\n\nconst getEmailStatus = (formData, requiredFields, addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const hasEmailField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'email');\n\n if (!hasEmailField) {\n return null;\n }\n\n const value = String(formData?.email || '').trim();\n const required = requiredFields.includes('email');\n\n if (value === '') {\n return {\n applicable: true,\n required,\n value,\n isValid: required ? false : null\n };\n }\n\n return {\n applicable: true,\n required,\n value,\n isValid: isValidEmail(value)\n };\n};\n\nexport const buildAddressStatus = ({\n addressForm = null,\n formData,\n verificationStatus,\n mode,\n requireValidation = true\n}) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const formAvailable = resolvedAddressForm.addressElements.length > 0;\n const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);\n const missingFields = getMissingRequiredFields(resolvedAddressForm, formData);\n const postalCode = getPostalCodeStatus(formData, requiredFields, resolvedAddressForm);\n const email = getEmailStatus(formData, requiredFields, resolvedAddressForm);\n\n const hasInvalidPostalCode = postalCode.applicable && postalCode.value !== '' && postalCode.isValid === false;\n const hasInvalidEmail = email?.applicable && email.value !== '' && email.isValid === false;\n const isComplete = formAvailable &&\n missingFields.length === 0 &&\n !hasInvalidPostalCode &&\n !hasInvalidEmail;\n const completeness = isComplete ? 'complete' : 'incomplete';\n\n return {\n formAvailable,\n verification: verificationStatus,\n ...(formData?.verification?.manuallyEdited ? {\n manualChanges: {\n manuallyEdited: true,\n editedFields: formData.verification.editedFields || []\n }\n } : {}),\n needsValidation: Boolean(requireValidation && mode === 'manual' && verificationStatus !== 'verified'),\n completeness,\n missingFields,\n mode,\n postalCode,\n ...(email ? { email } : {})\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addressStatus.js","names":["_validators","require","DEFAULT_RESOLVED_ADDRESS_FORM","addressElements","lookupField","requiredFields","postalCodeRegex","verifyAfterAutocomplete","wrapAddress1ToAddress2","entryMode","validationMode","minimumAcceptedLevel","OPTIONAL_FIELDS","Set","isBlank","value","undefined","String","trim","resolveAddressForm","addressForm","Array","isArray","getRequiredFieldsFromAddressForm","_resolvedAddressForm$","resolvedAddressForm","configRequired","formFields","map","field","formFieldSet","normalizeRequired","fields","seen","filter","has","add","length","exports","getMissingRequiredFields","formData","shouldVerifyAutocompleteSelection","requireValidation","postalCodeField","find","postalCode","getPostalCodeStatus","Boolean","trustVerifiedFormat","isValid","hasPostalField","some","applicable","required","normalizePostalCodeValue","includes","regex","test","getEmailStatus","hasEmailField","email","isValidEmail","buildAddressStatus","verificationStatus","mode","_formData$verificatio","formAvailable","missingFields","hasInvalidPostalCode","hasInvalidEmail","hasAcceptedVerification","allowedMissingFields","_resolvedAddressForm$2","element","allowMissingAfterVerification","blockingMissingFields","trustsVerifiedPostalCodeFormat","meetsVerificationRequirement","isComplete","canProceed","completeness","verification","verificationExceptions","trustedFormatFields","manuallyEdited","manualChanges","editedFields","needsValidation"],"sources":["../../../src/addressLookup/utils/addressStatus.js"],"sourcesContent":["import { isValidEmail, normalizePostalCodeValue } from './validators';\n\nconst DEFAULT_RESOLVED_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 OPTIONAL_FIELDS = new Set(['address2', 'email']);\n\nconst isBlank = (value) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n return String(value).trim() === '';\n};\n\nconst resolveAddressForm = (addressForm = null) => {\n if (addressForm && Array.isArray(addressForm.addressElements)) {\n return {\n ...DEFAULT_RESOLVED_ADDRESS_FORM,\n ...addressForm\n };\n }\n\n return DEFAULT_RESOLVED_ADDRESS_FORM;\n};\n\nexport const getRequiredFieldsFromAddressForm = (addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const configRequired = resolvedAddressForm?.requiredFields;\n const formFields = resolvedAddressForm?.addressElements?.map((field) => field.field) || [];\n const formFieldSet = new Set(formFields);\n const normalizeRequired = (fields) => {\n const seen = new Set();\n return fields.filter((field) => {\n if (!formFieldSet.has(field) || seen.has(field)) {\n return false;\n }\n seen.add(field);\n return true;\n });\n };\n\n if (Array.isArray(configRequired) && configRequired.length > 0) {\n return normalizeRequired(configRequired);\n }\n\n return normalizeRequired(formFields.filter((field) => !OPTIONAL_FIELDS.has(field)));\n};\n\nexport const getMissingRequiredFields = (addressForm = null, formData = {}) => {\n const requiredFields = getRequiredFieldsFromAddressForm(addressForm);\n return requiredFields.filter((field) => isBlank(formData?.[field]));\n};\n\nexport const shouldVerifyAutocompleteSelection = ({\n addressForm = null,\n formData = {},\n requireValidation = true\n}) => {\n if (!requireValidation) {\n return false;\n }\n\n const resolvedAddressForm = resolveAddressForm(addressForm);\n\n if (resolvedAddressForm.verifyAfterAutocomplete) {\n return true;\n }\n\n if (getMissingRequiredFields(resolvedAddressForm, formData).length > 0) {\n return true;\n }\n\n const postalCodeField = resolvedAddressForm.addressElements.find((field) => field.field === 'postalCode');\n const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);\n const postalCode = getPostalCodeStatus(formData, requiredFields, resolvedAddressForm);\n\n return Boolean(postalCodeField?.trustVerifiedFormat && postalCode.isValid === false);\n};\n\nconst getPostalCodeStatus = (formData, requiredFields, addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const hasPostalField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'postalCode');\n\n if (!hasPostalField) {\n return {\n applicable: false,\n required: false,\n value: '',\n isValid: null\n };\n }\n\n const postalCode = formData?.postalCode || '';\n const value = normalizePostalCodeValue(postalCode);\n const required = requiredFields.includes('postalCode');\n const regex = resolvedAddressForm?.postalCodeRegex;\n\n if (value === '') {\n return {\n applicable: true,\n required,\n value,\n isValid: required ? false : null\n };\n }\n\n if (!regex) {\n return {\n applicable: true,\n required,\n value,\n isValid: null\n };\n }\n\n return {\n applicable: true,\n required,\n value,\n isValid: regex.test(value)\n };\n};\n\nconst getEmailStatus = (formData, requiredFields, addressForm = null) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const hasEmailField = (resolvedAddressForm?.addressElements || []).some((field) => field.field === 'email');\n\n if (!hasEmailField) {\n return null;\n }\n\n const value = String(formData?.email || '').trim();\n const required = requiredFields.includes('email');\n\n if (value === '') {\n return {\n applicable: true,\n required,\n value,\n isValid: required ? false : null\n };\n }\n\n return {\n applicable: true,\n required,\n value,\n isValid: isValidEmail(value)\n };\n};\n\nexport const buildAddressStatus = ({\n addressForm = null,\n formData,\n verificationStatus,\n mode\n}) => {\n const resolvedAddressForm = resolveAddressForm(addressForm);\n const formAvailable = resolvedAddressForm.addressElements.length > 0;\n const requiredFields = getRequiredFieldsFromAddressForm(resolvedAddressForm);\n const missingFields = getMissingRequiredFields(resolvedAddressForm, formData);\n const postalCode = getPostalCodeStatus(formData, requiredFields, resolvedAddressForm);\n const email = getEmailStatus(formData, requiredFields, resolvedAddressForm);\n\n const hasInvalidPostalCode = postalCode.applicable && postalCode.value !== '' && postalCode.isValid === false;\n const hasInvalidEmail = email?.applicable && email.value !== '' && email.isValid === false;\n const validationMode = resolvedAddressForm.validationMode;\n const minimumAcceptedLevel = resolvedAddressForm.minimumAcceptedLevel;\n const hasAcceptedVerification = verificationStatus === 'verified' ||\n (minimumAcceptedLevel === 'partial' && verificationStatus === 'partial');\n const allowedMissingFields = hasAcceptedVerification ? missingFields.filter((field) => (\n resolvedAddressForm.addressElements.find((element) => element.field === field)?.allowMissingAfterVerification\n )) : [];\n const blockingMissingFields = missingFields.filter((field) => !allowedMissingFields.includes(field));\n const postalCodeField = resolvedAddressForm.addressElements.find((field) => field.field === 'postalCode');\n const trustsVerifiedPostalCodeFormat = hasAcceptedVerification &&\n postalCodeField?.trustVerifiedFormat === true &&\n hasInvalidPostalCode;\n const meetsVerificationRequirement = validationMode !== 'required' || hasAcceptedVerification;\n const isComplete = formAvailable &&\n blockingMissingFields.length === 0 &&\n (!hasInvalidPostalCode || trustsVerifiedPostalCodeFormat) &&\n !hasInvalidEmail;\n const canProceed = isComplete && (mode === 'autocomplete' ?\n (verificationStatus === 'autocomplete' || hasAcceptedVerification) :\n meetsVerificationRequirement);\n const completeness = isComplete ? 'complete' : 'incomplete';\n\n return {\n formAvailable,\n verification: verificationStatus,\n validationMode,\n minimumAcceptedLevel,\n meetsVerificationRequirement,\n canProceed,\n ...((allowedMissingFields.length > 0 || trustsVerifiedPostalCodeFormat) ? {\n verificationExceptions: {\n ...(allowedMissingFields.length > 0 ? { missingFields: allowedMissingFields } : {}),\n ...(trustsVerifiedPostalCodeFormat ? { trustedFormatFields: ['postalCode'] } : {})\n }\n } : {}),\n ...(formData?.verification?.manuallyEdited ? {\n manualChanges: {\n manuallyEdited: true,\n editedFields: formData.verification.editedFields || []\n }\n } : {}),\n needsValidation: Boolean(mode === 'manual' && !meetsVerificationRequirement),\n completeness,\n missingFields: blockingMissingFields,\n mode,\n postalCode,\n ...(email ? { email } : {})\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.withManualAddressVerificationEdit = exports.withAddressVerification = exports.isMajorManualEditField = exports.getManualEditVerificationStatus = exports.getIncomingVerificationStatus = exports.buildAddressVerification = void 0;
7
- const VALID_VERIFICATION_STATUSES = new Set(['verified', 'autocomplete', 'unverified']);
7
+ const VALID_VERIFICATION_STATUSES = new Set(['verified', 'autocomplete', 'partial', 'unverified']);
8
8
  const CONDITIONALLY_MAJOR_FIELDS = new Set(['address1', 'city', 'region', 'postalCode']);
9
9
  const getIncomingVerificationStatus = (address = null) => {
10
10
  var _address$verification;
@@ -14,7 +14,7 @@ const getIncomingVerificationStatus = (address = null) => {
14
14
  exports.getIncomingVerificationStatus = getIncomingVerificationStatus;
15
15
  const buildAddressVerification = (status = 'unverified', source = null, options = {}) => {
16
16
  const {
17
- verifiedAt = status === 'unverified' ? null : new Date().toISOString(),
17
+ verifiedAt = ['verified', 'autocomplete'].includes(status) ? new Date().toISOString() : null,
18
18
  manuallyEdited = false,
19
19
  editedFields = []
20
20
  } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"addressVerification.js","names":["VALID_VERIFICATION_STATUSES","Set","CONDITIONALLY_MAJOR_FIELDS","getIncomingVerificationStatus","address","_address$verification","status","verification","has","exports","buildAddressVerification","source","options","verifiedAt","Date","toISOString","manuallyEdited","editedFields","length","withAddressVerification","isMajorManualEditField","field","lookupField","requiredFields","includes","getManualEditVerificationStatus","currentStatus","withManualAddressVerificationEdit","nextStatus","existingVerification"],"sources":["../../../src/addressLookup/utils/addressVerification.js"],"sourcesContent":["const VALID_VERIFICATION_STATUSES = new Set(['verified', 'autocomplete', 'unverified']);\nconst CONDITIONALLY_MAJOR_FIELDS = new Set(['address1', 'city', 'region', 'postalCode']);\n\nexport const getIncomingVerificationStatus = (address = null) => {\n const status = address?.verification?.status;\n return VALID_VERIFICATION_STATUSES.has(status) ? status : 'unverified';\n};\n\nexport const buildAddressVerification = (status = 'unverified', source = null, options = {}) => {\n const {\n verifiedAt = (status === 'unverified' ? null : new Date().toISOString()),\n manuallyEdited = false,\n editedFields = []\n } = options;\n\n const verification = {\n status,\n ...(source ? { source } : {}),\n ...(verifiedAt ? { verifiedAt } : {}),\n ...(manuallyEdited ? { manuallyEdited: true } : {}),\n ...(editedFields.length ? { editedFields: [...new Set(editedFields)] } : {})\n };\n\n return verification;\n};\n\nexport const withAddressVerification = (address = {}, status = 'unverified', source = null, options = {}) => ({\n ...address,\n verification: buildAddressVerification(status, source, options)\n});\n\nexport const isMajorManualEditField = (field, lookupField = 'address1', requiredFields = []) => (\n field === lookupField ||\n (CONDITIONALLY_MAJOR_FIELDS.has(field) && requiredFields.includes(field))\n);\n\nexport const getManualEditVerificationStatus = (\n currentStatus = 'unverified',\n field,\n lookupField = 'address1',\n requiredFields = []\n) => {\n if (currentStatus === 'unverified') {\n return 'unverified';\n }\n\n return isMajorManualEditField(field, lookupField, requiredFields) ?\n 'unverified' :\n currentStatus;\n};\n\nexport const withManualAddressVerificationEdit = (\n address = {},\n field,\n nextStatus = 'unverified'\n) => {\n const existingVerification = address?.verification || {};\n const editedFields = [...(existingVerification.editedFields || []), field];\n\n return {\n ...address,\n verification: buildAddressVerification(\n nextStatus,\n existingVerification.source || null,\n {\n verifiedAt: existingVerification.verifiedAt || null,\n manuallyEdited: true,\n editedFields\n }\n )\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addressVerification.js","names":["VALID_VERIFICATION_STATUSES","Set","CONDITIONALLY_MAJOR_FIELDS","getIncomingVerificationStatus","address","_address$verification","status","verification","has","exports","buildAddressVerification","source","options","verifiedAt","includes","Date","toISOString","manuallyEdited","editedFields","length","withAddressVerification","isMajorManualEditField","field","lookupField","requiredFields","getManualEditVerificationStatus","currentStatus","withManualAddressVerificationEdit","nextStatus","existingVerification"],"sources":["../../../src/addressLookup/utils/addressVerification.js"],"sourcesContent":["const VALID_VERIFICATION_STATUSES = new Set(['verified', 'autocomplete', 'partial', 'unverified']);\nconst CONDITIONALLY_MAJOR_FIELDS = new Set(['address1', 'city', 'region', 'postalCode']);\n\nexport const getIncomingVerificationStatus = (address = null) => {\n const status = address?.verification?.status;\n return VALID_VERIFICATION_STATUSES.has(status) ? status : 'unverified';\n};\n\nexport const buildAddressVerification = (status = 'unverified', source = null, options = {}) => {\n const {\n verifiedAt = (['verified', 'autocomplete'].includes(status) ? new Date().toISOString() : null),\n manuallyEdited = false,\n editedFields = []\n } = options;\n\n const verification = {\n status,\n ...(source ? { source } : {}),\n ...(verifiedAt ? { verifiedAt } : {}),\n ...(manuallyEdited ? { manuallyEdited: true } : {}),\n ...(editedFields.length ? { editedFields: [...new Set(editedFields)] } : {})\n };\n\n return verification;\n};\n\nexport const withAddressVerification = (address = {}, status = 'unverified', source = null, options = {}) => ({\n ...address,\n verification: buildAddressVerification(status, source, options)\n});\n\nexport const isMajorManualEditField = (field, lookupField = 'address1', requiredFields = []) => (\n field === lookupField ||\n (CONDITIONALLY_MAJOR_FIELDS.has(field) && requiredFields.includes(field))\n);\n\nexport const getManualEditVerificationStatus = (\n currentStatus = 'unverified',\n field,\n lookupField = 'address1',\n requiredFields = []\n) => {\n if (currentStatus === 'unverified') {\n return 'unverified';\n }\n\n return isMajorManualEditField(field, lookupField, requiredFields) ?\n 'unverified' :\n currentStatus;\n};\n\nexport const withManualAddressVerificationEdit = (\n address = {},\n field,\n nextStatus = 'unverified'\n) => {\n const existingVerification = address?.verification || {};\n const editedFields = [...(existingVerification.editedFields || []), field];\n\n return {\n ...address,\n verification: buildAddressVerification(\n nextStatus,\n existingVerification.source || null,\n {\n verifiedAt: existingVerification.verifiedAt || null,\n manuallyEdited: true,\n editedFields\n }\n )\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ const addressPropType = exports.addressPropType = _propTypes.default.shape({
17
17
  latitude: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
18
18
  longitude: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
19
19
  verification: _propTypes.default.shape({
20
- status: _propTypes.default.oneOf(['verified', 'autocomplete', 'unverified']),
20
+ status: _propTypes.default.oneOf(['verified', 'autocomplete', 'partial', 'unverified']),
21
21
  source: _propTypes.default.string,
22
22
  verifiedAt: _propTypes.default.string,
23
23
  manuallyEdited: _propTypes.default.bool,
@@ -30,13 +30,18 @@ const formDefinitionPropType = exports.formDefinitionPropType = _propTypes.defau
30
30
  width: _propTypes.default.oneOf(['full', 'half', 'third']),
31
31
  editable: _propTypes.default.bool,
32
32
  maxLength: _propTypes.default.number,
33
- required: _propTypes.default.bool
33
+ required: _propTypes.default.bool,
34
+ allowMissingAfterVerification: _propTypes.default.bool,
35
+ trustVerifiedFormat: _propTypes.default.bool
34
36
  })),
35
37
  lookupField: _propTypes.default.string,
36
38
  requiredFields: _propTypes.default.arrayOf(_propTypes.default.string),
37
39
  postalCodeRegex: _propTypes.default.instanceOf(RegExp),
38
40
  verifyAfterAutocomplete: _propTypes.default.bool,
39
- wrapAddress1ToAddress2: _propTypes.default.bool
41
+ wrapAddress1ToAddress2: _propTypes.default.bool,
42
+ entryMode: _propTypes.default.oneOf(['both', 'autocomplete', 'manual']),
43
+ validationMode: _propTypes.default.oneOf(['required', 'optional', 'disabled']),
44
+ minimumAcceptedLevel: _propTypes.default.oneOf(['verified', 'partial'])
40
45
  });
41
46
  const labelStringsPropType = exports.labelStringsPropType = _propTypes.default.shape({
42
47
  address1Label: _propTypes.default.string,
@@ -1 +1 @@
1
- {"version":3,"file":"componentPropTypes.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","default","addressPropType","exports","PropTypes","shape","address1","string","address2","city","district","region","postalCode","email","latitude","oneOfType","number","longitude","verification","status","oneOf","source","verifiedAt","manuallyEdited","bool","editedFields","arrayOf","formDefinitionPropType","addressElements","field","width","editable","maxLength","required","lookupField","requiredFields","postalCodeRegex","instanceOf","RegExp","verifyAfterAutocomplete","wrapAddress1ToAddress2","labelStringsPropType","address1Label","address2Label","cityLabel","districtLabel","regionLabel","postalCodeLabel","invalidEmail","invalidPostalCode","fieldRequired","illegalCharacters","rateLimited","lookupError","validationError","loadingAddressForm","switchToAutocomplete","switchToManualEntry","switchToManuelEntry","addressLocation","openInMaps","usVerified","usVerifiedMessage","usMissingSecondaryTitle","usMissingSecondaryMessage","usInvalidSecondaryRequiredTitle","usInvalidSecondaryRequiredMessage","usInvalidSecondaryOptionalTitle","usInvalidSecondaryOptionalMessage","usVacantTitle","usVacantMessage","usNoStatTitle","usNoStatMessage","usNotConfirmedTitle","usNotConfirmedMessage","usNoResults","intlVerifiedTitle","intlVerifiedMessage","intlVerifiedSubBuildingChangedTitle","intlVerifiedSubBuildingChangedMessage","intlPartialTitle","intlPartialMessage","intlAmbiguousTitle","intlAmbiguousMessage","intlNotVerifiedTitle","intlNotVerifiedMessage","intlNoResults","smartyUsValidationStrings","smartyIntlValidationStrings"],"sources":["../../../src/addressLookup/utils/componentPropTypes.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nexport const addressPropType = PropTypes.shape({\n address1: PropTypes.string,\n address2: PropTypes.string,\n city: PropTypes.string,\n district: PropTypes.string,\n region: PropTypes.string,\n postalCode: PropTypes.string,\n email: PropTypes.string,\n latitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n longitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n verification: PropTypes.shape({\n status: PropTypes.oneOf(['verified', 'autocomplete', 'unverified']),\n source: PropTypes.string,\n verifiedAt: PropTypes.string,\n manuallyEdited: PropTypes.bool,\n editedFields: PropTypes.arrayOf(PropTypes.string)\n })\n});\n\nexport const formDefinitionPropType = PropTypes.shape({\n addressElements: PropTypes.arrayOf(PropTypes.shape({\n field: PropTypes.string,\n width: PropTypes.oneOf(['full', 'half', 'third']),\n editable: PropTypes.bool,\n maxLength: PropTypes.number,\n required: PropTypes.bool\n })),\n lookupField: PropTypes.string,\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n postalCodeRegex: PropTypes.instanceOf(RegExp),\n verifyAfterAutocomplete: PropTypes.bool,\n wrapAddress1ToAddress2: PropTypes.bool\n});\n\nexport const labelStringsPropType = PropTypes.shape({\n address1Label: PropTypes.string,\n address2Label: PropTypes.string,\n cityLabel: PropTypes.string,\n districtLabel: PropTypes.string,\n regionLabel: PropTypes.string,\n postalCodeLabel: PropTypes.string,\n invalidEmail: PropTypes.string,\n invalidPostalCode: PropTypes.string,\n fieldRequired: PropTypes.string,\n illegalCharacters: PropTypes.string,\n rateLimited: PropTypes.string,\n lookupError: PropTypes.string,\n validationError: PropTypes.string,\n loadingAddressForm: PropTypes.string,\n switchToAutocomplete: PropTypes.string,\n switchToManualEntry: PropTypes.string,\n switchToManuelEntry: PropTypes.string,\n addressLocation: PropTypes.string,\n openInMaps: PropTypes.string,\n usVerified: PropTypes.string,\n usVerifiedMessage: PropTypes.string,\n usMissingSecondaryTitle: PropTypes.string,\n usMissingSecondaryMessage: PropTypes.string,\n usInvalidSecondaryRequiredTitle: PropTypes.string,\n usInvalidSecondaryRequiredMessage: PropTypes.string,\n usInvalidSecondaryOptionalTitle: PropTypes.string,\n usInvalidSecondaryOptionalMessage: PropTypes.string,\n usVacantTitle: PropTypes.string,\n usVacantMessage: PropTypes.string,\n usNoStatTitle: PropTypes.string,\n usNoStatMessage: PropTypes.string,\n usNotConfirmedTitle: PropTypes.string,\n usNotConfirmedMessage: PropTypes.string,\n usNoResults: PropTypes.string,\n intlVerifiedTitle: PropTypes.string,\n intlVerifiedMessage: PropTypes.string,\n intlVerifiedSubBuildingChangedTitle: PropTypes.string,\n intlVerifiedSubBuildingChangedMessage: PropTypes.string,\n intlPartialTitle: PropTypes.string,\n intlPartialMessage: PropTypes.string,\n intlAmbiguousTitle: PropTypes.string,\n intlAmbiguousMessage: PropTypes.string,\n intlNotVerifiedTitle: PropTypes.string,\n intlNotVerifiedMessage: PropTypes.string,\n intlNoResults: PropTypes.string,\n smartyUsValidationStrings: PropTypes.shape({\n usInvalidSecondaryOptionalMessage: PropTypes.string,\n usInvalidSecondaryOptionalTitle: PropTypes.string,\n usInvalidSecondaryRequiredMessage: PropTypes.string,\n usInvalidSecondaryRequiredTitle: PropTypes.string,\n usMissingSecondaryMessage: PropTypes.string,\n usMissingSecondaryTitle: PropTypes.string,\n usNoResults: PropTypes.string,\n usNoStatMessage: PropTypes.string,\n usNoStatTitle: PropTypes.string,\n usNotConfirmedMessage: PropTypes.string,\n usNotConfirmedTitle: PropTypes.string,\n usVacantMessage: PropTypes.string,\n usVacantTitle: PropTypes.string,\n usVerified: PropTypes.string,\n usVerifiedMessage: PropTypes.string\n }),\n smartyIntlValidationStrings: PropTypes.shape({\n intlVerifiedTitle: PropTypes.string,\n intlVerifiedMessage: PropTypes.string,\n intlVerifiedSubBuildingChangedTitle: PropTypes.string,\n intlVerifiedSubBuildingChangedMessage: PropTypes.string,\n intlPartialTitle: PropTypes.string,\n intlPartialMessage: PropTypes.string,\n intlAmbiguousTitle: PropTypes.string,\n intlAmbiguousMessage: PropTypes.string,\n intlNotVerifiedTitle: PropTypes.string,\n intlNotVerifiedMessage: PropTypes.string,\n intlNoResults: PropTypes.string\n })\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"componentPropTypes.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","default","addressPropType","exports","PropTypes","shape","address1","string","address2","city","district","region","postalCode","email","latitude","oneOfType","number","longitude","verification","status","oneOf","source","verifiedAt","manuallyEdited","bool","editedFields","arrayOf","formDefinitionPropType","addressElements","field","width","editable","maxLength","required","allowMissingAfterVerification","trustVerifiedFormat","lookupField","requiredFields","postalCodeRegex","instanceOf","RegExp","verifyAfterAutocomplete","wrapAddress1ToAddress2","entryMode","validationMode","minimumAcceptedLevel","labelStringsPropType","address1Label","address2Label","cityLabel","districtLabel","regionLabel","postalCodeLabel","invalidEmail","invalidPostalCode","fieldRequired","illegalCharacters","rateLimited","lookupError","validationError","loadingAddressForm","switchToAutocomplete","switchToManualEntry","switchToManuelEntry","addressLocation","openInMaps","usVerified","usVerifiedMessage","usMissingSecondaryTitle","usMissingSecondaryMessage","usInvalidSecondaryRequiredTitle","usInvalidSecondaryRequiredMessage","usInvalidSecondaryOptionalTitle","usInvalidSecondaryOptionalMessage","usVacantTitle","usVacantMessage","usNoStatTitle","usNoStatMessage","usNotConfirmedTitle","usNotConfirmedMessage","usNoResults","intlVerifiedTitle","intlVerifiedMessage","intlVerifiedSubBuildingChangedTitle","intlVerifiedSubBuildingChangedMessage","intlPartialTitle","intlPartialMessage","intlAmbiguousTitle","intlAmbiguousMessage","intlNotVerifiedTitle","intlNotVerifiedMessage","intlNoResults","smartyUsValidationStrings","smartyIntlValidationStrings"],"sources":["../../../src/addressLookup/utils/componentPropTypes.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nexport const addressPropType = PropTypes.shape({\n address1: PropTypes.string,\n address2: PropTypes.string,\n city: PropTypes.string,\n district: PropTypes.string,\n region: PropTypes.string,\n postalCode: PropTypes.string,\n email: PropTypes.string,\n latitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n longitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n verification: PropTypes.shape({\n status: PropTypes.oneOf(['verified', 'autocomplete', 'partial', 'unverified']),\n source: PropTypes.string,\n verifiedAt: PropTypes.string,\n manuallyEdited: PropTypes.bool,\n editedFields: PropTypes.arrayOf(PropTypes.string)\n })\n});\n\nexport const formDefinitionPropType = PropTypes.shape({\n addressElements: PropTypes.arrayOf(PropTypes.shape({\n field: PropTypes.string,\n width: PropTypes.oneOf(['full', 'half', 'third']),\n editable: PropTypes.bool,\n maxLength: PropTypes.number,\n required: PropTypes.bool,\n allowMissingAfterVerification: PropTypes.bool,\n trustVerifiedFormat: PropTypes.bool\n })),\n lookupField: PropTypes.string,\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n postalCodeRegex: PropTypes.instanceOf(RegExp),\n verifyAfterAutocomplete: PropTypes.bool,\n wrapAddress1ToAddress2: PropTypes.bool,\n entryMode: PropTypes.oneOf(['both', 'autocomplete', 'manual']),\n validationMode: PropTypes.oneOf(['required', 'optional', 'disabled']),\n minimumAcceptedLevel: PropTypes.oneOf(['verified', 'partial'])\n});\n\nexport const labelStringsPropType = PropTypes.shape({\n address1Label: PropTypes.string,\n address2Label: PropTypes.string,\n cityLabel: PropTypes.string,\n districtLabel: PropTypes.string,\n regionLabel: PropTypes.string,\n postalCodeLabel: PropTypes.string,\n invalidEmail: PropTypes.string,\n invalidPostalCode: PropTypes.string,\n fieldRequired: PropTypes.string,\n illegalCharacters: PropTypes.string,\n rateLimited: PropTypes.string,\n lookupError: PropTypes.string,\n validationError: PropTypes.string,\n loadingAddressForm: PropTypes.string,\n switchToAutocomplete: PropTypes.string,\n switchToManualEntry: PropTypes.string,\n switchToManuelEntry: PropTypes.string,\n addressLocation: PropTypes.string,\n openInMaps: PropTypes.string,\n usVerified: PropTypes.string,\n usVerifiedMessage: PropTypes.string,\n usMissingSecondaryTitle: PropTypes.string,\n usMissingSecondaryMessage: PropTypes.string,\n usInvalidSecondaryRequiredTitle: PropTypes.string,\n usInvalidSecondaryRequiredMessage: PropTypes.string,\n usInvalidSecondaryOptionalTitle: PropTypes.string,\n usInvalidSecondaryOptionalMessage: PropTypes.string,\n usVacantTitle: PropTypes.string,\n usVacantMessage: PropTypes.string,\n usNoStatTitle: PropTypes.string,\n usNoStatMessage: PropTypes.string,\n usNotConfirmedTitle: PropTypes.string,\n usNotConfirmedMessage: PropTypes.string,\n usNoResults: PropTypes.string,\n intlVerifiedTitle: PropTypes.string,\n intlVerifiedMessage: PropTypes.string,\n intlVerifiedSubBuildingChangedTitle: PropTypes.string,\n intlVerifiedSubBuildingChangedMessage: PropTypes.string,\n intlPartialTitle: PropTypes.string,\n intlPartialMessage: PropTypes.string,\n intlAmbiguousTitle: PropTypes.string,\n intlAmbiguousMessage: PropTypes.string,\n intlNotVerifiedTitle: PropTypes.string,\n intlNotVerifiedMessage: PropTypes.string,\n intlNoResults: PropTypes.string,\n smartyUsValidationStrings: PropTypes.shape({\n usInvalidSecondaryOptionalMessage: PropTypes.string,\n usInvalidSecondaryOptionalTitle: PropTypes.string,\n usInvalidSecondaryRequiredMessage: PropTypes.string,\n usInvalidSecondaryRequiredTitle: PropTypes.string,\n usMissingSecondaryMessage: PropTypes.string,\n usMissingSecondaryTitle: PropTypes.string,\n usNoResults: PropTypes.string,\n usNoStatMessage: PropTypes.string,\n usNoStatTitle: PropTypes.string,\n usNotConfirmedMessage: PropTypes.string,\n usNotConfirmedTitle: PropTypes.string,\n usVacantMessage: PropTypes.string,\n usVacantTitle: PropTypes.string,\n usVerified: PropTypes.string,\n usVerifiedMessage: PropTypes.string\n }),\n smartyIntlValidationStrings: PropTypes.shape({\n intlVerifiedTitle: PropTypes.string,\n intlVerifiedMessage: PropTypes.string,\n intlVerifiedSubBuildingChangedTitle: PropTypes.string,\n intlVerifiedSubBuildingChangedMessage: PropTypes.string,\n intlPartialTitle: PropTypes.string,\n intlPartialMessage: PropTypes.string,\n intlAmbiguousTitle: PropTypes.string,\n intlAmbiguousMessage: PropTypes.string,\n intlNotVerifiedTitle: PropTypes.string,\n intlNotVerifiedMessage: PropTypes.string,\n intlNoResults: PropTypes.string\n })\n});\n"],"mappings":"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","ignoreList":[]}
@@ -50,9 +50,6 @@ const ShippingAddressForm = ({
50
50
  showDefaultCheckbox = true,
51
51
  showCancelButton = true,
52
52
  showContinueButton = false,
53
- entryMode = 'both',
54
- requireValidation = true,
55
- showManualValidateButton = true,
56
53
  readOnlyView = false,
57
54
  type = 'shipping'
58
55
  }) => {
@@ -154,14 +151,18 @@ const ShippingAddressForm = ({
154
151
  if (readOnlyView) {
155
152
  return;
156
153
  }
154
+ if (['lookup-error', 'validation-error'].includes(data === null || data === void 0 ? void 0 : data.type)) {
155
+ onAction === null || onAction === void 0 || onAction(data);
156
+ return;
157
+ }
157
158
  if (!isSavePending || (data === null || data === void 0 ? void 0 : data.type) !== 'validation-request') {
158
159
  return;
159
160
  }
160
161
  setIsSavePending(false);
161
162
  const shippingValidationErrors = getValidationErrors();
162
- const isAddressLookupComplete = (data === null || data === void 0 || (_data$status = data.status) === null || _data$status === void 0 ? void 0 : _data$status.completeness) === 'complete';
163
+ const canProceedWithAddress = (data === null || data === void 0 || (_data$status = data.status) === null || _data$status === void 0 ? void 0 : _data$status.canProceed) === true;
163
164
  const isShippingComplete = shippingValidationErrors.length === 0;
164
- if (!isAddressLookupComplete || !isShippingComplete) {
165
+ if (!canProceedWithAddress || !isShippingComplete) {
165
166
  return;
166
167
  }
167
168
  const emailValue = typeof values.email === 'string' ? values.email.trim() : '';
@@ -248,9 +249,6 @@ const ShippingAddressForm = ({
248
249
  validationRequestId: validationRequestId,
249
250
  onAddressSelect: handleAddressSelect,
250
251
  address: address,
251
- entryMode: entryMode,
252
- requireValidation: requireValidation,
253
- showManualValidateButton: showManualValidateButton,
254
252
  readOnlyView: readOnlyView
255
253
  })
256
254
  }, `addressLookup-${index}`);
@@ -385,9 +383,6 @@ ShippingAddressForm.propTypes = {
385
383
  showDefaultCheckbox: _propTypes.default.bool,
386
384
  showCancelButton: _propTypes.default.bool,
387
385
  showContinueButton: _propTypes.default.bool,
388
- entryMode: _propTypes.default.oneOf(['both', 'autocomplete', 'manual']),
389
- requireValidation: _propTypes.default.bool,
390
- showManualValidateButton: _propTypes.default.bool,
391
386
  readOnlyView: _propTypes.default.bool,
392
387
  address: _propTypes.default.shape({
393
388
  mobilePhoneCountry: _propTypes.default.string,
@@ -1 +1 @@
1
- {"version":3,"file":"ShippingAddressForm.js","names":["_propTypes","_interopRequireDefault","require","_react","_addressLookup","_interopRequireWildcard","_foundationUiComponents","_useAddressFieldLabels","_useShippingAddressForm","_useShippingFormState","_ShippingField","_shippingStrings","_emailVerify","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getDefaultFieldLabel","fieldName","replace","character","toUpperCase","trim","getFieldLabel","labels","phoneLabelOverride","_labels$formStrings","mobilePhoneLabel","formStrings","CONTROL_TEST_IDS","country","saveToAccount","saveAsDefault","submit","cancel","CONTROL_IDS","ShippingAddressForm","language","onAction","address","showSaveCheckbox","showDefaultCheckbox","showCancelButton","showContinueButton","entryMode","requireValidation","showManualValidateButton","readOnlyView","type","selectedCountry","setSelectedCountry","useState","useAddressFieldLabels","shippingAddressForm","useShippingAddressForm","shippingFields","useMemo","preAddressFields","postAddressFields","addressFormDefinition","addressForm","isSavePending","setIsSavePending","validationRequestId","setValidationRequestId","phoneCountry","setPhoneCountry","mobilePhoneCountry","hasUserSelectedPhoneCountry","setHasUserSelectedPhoneCountry","setMobilePhoneLabel","emailValidationError","setEmailValidationError","values","setFieldValue","touchField","markAllTouched","resetValidationState","getFieldError","getValidationErrors","getPhoneValidationStatus","useShippingFormState","defaultPhoneCountry","showCheckboxSection","showActions","useEffect","availableCountries","countries","length","hasLoggedInCountry","some","countryOption","code","nextSelectedCountry","currentValue","isMounted","getShippingLabels","then","resolvedLabels","validateEmailValue","email","trimmedEmail","isEmailSyntaxValid","_labels$formStrings2","invalidEmail","emailInfo","getEmailInfo","hasInvalidEmail","isFormatValid","isDomainValid","_labels$formStrings3","handleAddressSelect","data","_data$status","shippingValidationErrors","isAddressLookupComplete","status","completeness","isShippingComplete","emailValue","isEmailValid","phoneValidationStatus","reduce","acc","fieldConfig","field","validationStatus","phone","handlePhoneCountryChange","nextCountry","resolvedCountry","handleSaveAddress","handleCancel","handleFieldBlur","renderLayoutItem","layoutItem","index","component","jsx","className","children","strings","formDefinition","deferFormLookup","Boolean","onAddressSelect","jsxs","htmlFor","countryLabel","id","value","onChange","event","target","disabled","map","name","find","label","error","SUPPORTED_COUNTRIES","nextValue","onBlur","onPhoneCountryChange","layout","filter","Fragment","checked","agreeToSaveAddressLabel","setDefaultLabel","NsButton","variant","color","onClick","continueLabel","saveAddressButtonLabel","cancelLabel","propTypes","PropTypes","string","func","bool","oneOf","shape","_default","exports"],"sources":["../../src/shippingAddressForm/ShippingAddressForm.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useEffect, useMemo, useState } from 'react';\nimport AddressLookup, { SUPPORTED_COUNTRIES } from '../addressLookup'\nimport { NsButton } from '@nuskin/foundation-ui-components';\nimport 'react-phone-number-input/style.css'\nimport './styles/shippingAddressForm.css'\nimport useAddressFieldLabels from './hooks/useAddressFieldLabels';\nimport useShippingAddressForm from './hooks/useShippingAddressForm';\nimport useShippingFormState from './hooks/useShippingFormState';\nimport ShippingField from './components/ShippingField';\nimport { getShippingLabels } from './utils/shippingStrings.js';\nimport { getEmailInfo, isEmailSyntaxValid } from './utils/emailVerify';\n\nconst getDefaultFieldLabel = (fieldName = '') =>\n fieldName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (character) => character.toUpperCase())\n .trim();\n\nconst getFieldLabel = (fieldName, labels, phoneLabelOverride) => {\n if (fieldName === 'mobilePhone') {\n return phoneLabelOverride || labels.mobilePhoneLabel;\n }\n\n return labels[`${fieldName}Label`] || labels.formStrings?.[fieldName] || getDefaultFieldLabel(fieldName);\n};\n\nconst CONTROL_TEST_IDS = {\n country: 'qa-address-country',\n saveToAccount: 'qa-address-save-to-account',\n saveAsDefault: 'qa-address-save-as-default',\n submit: 'qa-address-submit',\n cancel: 'qa-address-cancel'\n};\n\nconst CONTROL_IDS = {\n country: 'address-country',\n saveToAccount: 'address-save-to-account',\n saveAsDefault: 'address-save-as-default',\n submit: 'address-submit',\n cancel: 'address-cancel'\n};\n\nconst ShippingAddressForm = ({\n country = 'US',\n language,\n onAction,\n address = null,\n showSaveCheckbox = true,\n showDefaultCheckbox = true,\n showCancelButton = true,\n showContinueButton = false,\n entryMode = 'both',\n requireValidation = true,\n showManualValidateButton = true,\n readOnlyView = false,\n type = 'shipping'\n}) => {\n const [selectedCountry, setSelectedCountry] = useState(country)\n const labels = useAddressFieldLabels(selectedCountry, language)\n const { shippingAddressForm } = useShippingAddressForm(country, true, type)\n const shippingFields = useMemo(\n () => [\n ...(shippingAddressForm.preAddressFields || []),\n ...(shippingAddressForm.postAddressFields || [])\n ],\n [shippingAddressForm.postAddressFields, shippingAddressForm.preAddressFields]\n )\n const addressFormDefinition = selectedCountry === country ? shippingAddressForm.addressForm : null\n const [isSavePending, setIsSavePending] = useState(false)\n const [validationRequestId, setValidationRequestId] = useState(0)\n const [phoneCountry, setPhoneCountry] = useState(address?.mobilePhoneCountry || country)\n const [hasUserSelectedPhoneCountry, setHasUserSelectedPhoneCountry] = useState(false)\n const [mobilePhoneLabel, setMobilePhoneLabel] = useState('')\n const [emailValidationError, setEmailValidationError] = useState('')\n const {\n values,\n setFieldValue,\n touchField,\n markAllTouched,\n resetValidationState,\n getFieldError,\n getValidationErrors,\n getPhoneValidationStatus\n } = useShippingFormState({\n address,\n shippingFields,\n labels,\n defaultPhoneCountry: address?.mobilePhoneCountry || selectedCountry || country\n });\n const showCheckboxSection = showSaveCheckbox || showDefaultCheckbox;\n const showActions = !readOnlyView;\n\n useEffect(() => {\n setSelectedCountry(country)\n setHasUserSelectedPhoneCountry(false)\n }, [country])\n\n useEffect(() => {\n const availableCountries = shippingAddressForm.countries || [];\n\n if (availableCountries.length === 0) {\n setSelectedCountry(country);\n return;\n }\n\n const hasLoggedInCountry = availableCountries.some((countryOption) => countryOption.code === country);\n const nextSelectedCountry = hasLoggedInCountry ? country : availableCountries[0].code;\n\n setSelectedCountry((currentValue) => (\n availableCountries.some(\n (countryOption) => countryOption.code === currentValue\n ) ? currentValue : nextSelectedCountry\n ));\n }, [country, shippingAddressForm.countries])\n\n useEffect(() => {\n if (address?.mobilePhoneCountry) {\n setPhoneCountry(address.mobilePhoneCountry);\n return;\n }\n\n if (!hasUserSelectedPhoneCountry) {\n setPhoneCountry(selectedCountry || country);\n }\n }, [address?.mobilePhoneCountry, country, hasUserSelectedPhoneCountry, selectedCountry])\n\n useEffect(() => {\n let isMounted = true;\n\n getShippingLabels({ country: phoneCountry || country, language }).then((resolvedLabels) => {\n if (isMounted) {\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, language, phoneCountry])\n\n useEffect(() => {\n if (!readOnlyView && !values.saveToAccount && values.saveAsDefault) {\n setFieldValue('saveAsDefault', false);\n }\n }, [readOnlyView, setFieldValue, values.saveAsDefault, values.saveToAccount])\n\n const validateEmailValue = async (email) => {\n const trimmedEmail = typeof email === 'string' ? email.trim() : '';\n\n if (!trimmedEmail) {\n setEmailValidationError('');\n return true;\n }\n\n if (!isEmailSyntaxValid(trimmedEmail)) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n const emailInfo = await getEmailInfo(trimmedEmail);\n const hasInvalidEmail =\n emailInfo &&\n (!emailInfo.isFormatValid || !emailInfo.isDomainValid);\n\n if (hasInvalidEmail) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n setEmailValidationError('');\n return true;\n };\n\n const handleAddressSelect = async (data) => {\n if (readOnlyView) {\n return;\n }\n\n if (!isSavePending || data?.type !== 'validation-request') {\n return;\n }\n\n setIsSavePending(false);\n\n const shippingValidationErrors = getValidationErrors();\n const isAddressLookupComplete = data?.status?.completeness === 'complete';\n const isShippingComplete = shippingValidationErrors.length === 0;\n\n if (!isAddressLookupComplete || !isShippingComplete) {\n return;\n }\n\n const emailValue = typeof values.email === 'string' ? values.email.trim() : '';\n\n if (emailValue) {\n const isEmailValid = await validateEmailValue(emailValue);\n\n if (!isEmailValid) {\n return;\n }\n }\n\n const phoneValidationStatus = getPhoneValidationStatus();\n\n onAction?.({\n type: 'save',\n data: {\n ...data.address,\n ...shippingFields.reduce((acc, fieldConfig) => {\n acc[fieldConfig.field] = values[fieldConfig.field];\n return acc;\n }, {}),\n mobilePhoneCountry: phoneCountry,\n country: selectedCountry,\n saveToAccount: values.saveToAccount,\n saveAsDefault: values.saveAsDefault\n },\n validationStatus: {\n ...data.status,\n ...(phoneValidationStatus ? { phone: phoneValidationStatus } : {})\n }\n });\n }\n\n const handlePhoneCountryChange = async (nextCountry) => {\n if (readOnlyView) {\n return;\n }\n\n const resolvedCountry = nextCountry || selectedCountry || country;\n\n setHasUserSelectedPhoneCountry(true);\n setPhoneCountry(resolvedCountry);\n\n const resolvedLabels = await getShippingLabels({\n country: resolvedCountry,\n language\n });\n\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n };\n\n const handleSaveAddress = () => {\n if (readOnlyView) {\n return;\n }\n\n setEmailValidationError('');\n markAllTouched();\n setIsSavePending(true);\n setValidationRequestId((currentValue) => currentValue + 1);\n };\n\n const handleCancel = () => {\n if (readOnlyView) {\n return;\n }\n\n setIsSavePending(false);\n setEmailValidationError('');\n resetValidationState();\n onAction?.({ type: 'cancel' });\n };\n\n const handleFieldBlur = async (fieldName) => {\n if (readOnlyView) {\n return;\n }\n\n touchField(fieldName);\n\n if (fieldName === 'email') {\n await validateEmailValue(values.email);\n }\n };\n\n const renderLayoutItem = (layoutItem, index) => {\n if (layoutItem.type === 'component' && layoutItem.component === 'addressLookup') {\n return (\n <div\n className='ns-shipping-address-form__component ns-shipping-address-form__component--full'\n key={`addressLookup-${index}`}\n >\n <AddressLookup\n country={selectedCountry}\n language={language}\n strings={labels.formStrings}\n formDefinition={addressFormDefinition}\n deferFormLookup={Boolean(addressFormDefinition)}\n validationRequestId={validationRequestId}\n onAddressSelect={handleAddressSelect}\n address={address}\n entryMode={entryMode}\n requireValidation={requireValidation}\n showManualValidateButton={showManualValidateButton}\n readOnlyView={readOnlyView}\n />\n </div>\n );\n }\n\n if (layoutItem.type === 'component' && layoutItem.component === 'countrySelector') {\n return (\n <div\n className='ns-shipping-address-form__field ns-shipping-address-form__field--country-selector'\n key='country-selector'\n >\n <label\n htmlFor={CONTROL_IDS.country}\n className='ns-shipping-address-form__label'\n >\n {labels.countryLabel}\n </label>\n <select\n id={CONTROL_IDS.country}\n data-testid={CONTROL_TEST_IDS.country}\n value={selectedCountry}\n onChange={(event) => {\n if (!readOnlyView) {\n setSelectedCountry(event.target.value);\n }\n }}\n className='ns-shipping-address-form__input'\n disabled={readOnlyView}\n >\n {shippingAddressForm.countries.map((countryOption) => (\n <option key={countryOption.code} value={countryOption.code}>\n {countryOption.name}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n if (layoutItem.type === 'field') {\n const fieldConfig = shippingFields.find((field) => field.field === layoutItem.field);\n\n if (!fieldConfig) {\n return null;\n }\n\n return (\n <ShippingField\n key={fieldConfig.field}\n fieldConfig={fieldConfig}\n label={getFieldLabel(fieldConfig.field, labels, mobilePhoneLabel)}\n value={values[fieldConfig.field]}\n error={fieldConfig.field === 'email' ? (emailValidationError || getFieldError(fieldConfig)) : getFieldError(fieldConfig)}\n country={phoneCountry}\n countries={SUPPORTED_COUNTRIES}\n onChange={(nextValue) => {\n if (readOnlyView) {\n return;\n }\n\n if (fieldConfig.field === 'email' && emailValidationError) {\n setEmailValidationError('');\n }\n\n setFieldValue(fieldConfig.field, nextValue);\n }}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onPhoneCountryChange={handlePhoneCountryChange}\n readOnlyView={readOnlyView}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className='ns-shipping-address-form'>\n {shippingAddressForm.layout.some(\n (layoutItem) => layoutItem.type === 'component' && layoutItem.component === 'countrySelector'\n ) && renderLayoutItem({ type: 'component', component: 'countrySelector' }, 'country-selector')}\n <div className='ns-shipping-address-form__layout'>\n {shippingAddressForm.layout\n .filter((layoutItem) => !(layoutItem.type === 'component' && layoutItem.component === 'countrySelector'))\n .map(renderLayoutItem)}\n </div>\n {showCheckboxSection && (\n <>\n <hr className='ns-shipping-address-form__separator' />\n {showSaveCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label ns-shipping-address-form__checkbox-label--spaced'>\n <input\n id={CONTROL_IDS.saveToAccount}\n data-testid={CONTROL_TEST_IDS.saveToAccount}\n type=\"checkbox\"\n checked={values.saveToAccount}\n onChange={(e) => {\n if (!readOnlyView) {\n setFieldValue('saveToAccount', e.target.checked);\n }\n }}\n className='ns-shipping-address-form__checkbox'\n disabled={readOnlyView}\n />\n {labels.agreeToSaveAddressLabel}\n </label>\n </div>\n )}\n {showDefaultCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label'>\n <input\n id={CONTROL_IDS.saveAsDefault}\n data-testid={CONTROL_TEST_IDS.saveAsDefault}\n type=\"checkbox\"\n checked={values.saveAsDefault}\n onChange={(e) => {\n if (!readOnlyView) {\n setFieldValue('saveAsDefault', e.target.checked);\n }\n }}\n className='ns-shipping-address-form__checkbox'\n disabled={readOnlyView || !values.saveToAccount}\n />\n {labels.setDefaultLabel}\n </label>\n </div>\n )}\n <hr className='ns-shipping-address-form__separator' />\n </>\n )}\n {showActions && (\n <div className='ns-shipping-address-form__actions'>\n <NsButton\n id={CONTROL_IDS.submit}\n data-testid={CONTROL_TEST_IDS.submit}\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSaveAddress}\n >\n {showContinueButton ? labels.continueLabel : labels.saveAddressButtonLabel}\n </NsButton>\n {showCancelButton && (\n <NsButton\n id={CONTROL_IDS.cancel}\n data-testid={CONTROL_TEST_IDS.cancel}\n variant=\"outlined\"\n color=\"primary\"\n onClick={handleCancel}\n >\n {labels.cancelLabel}\n </NsButton>\n )}\n </div>\n )}\n </div>\n );\n};\n\nShippingAddressForm.propTypes = {\n country: PropTypes.string,\n language: PropTypes.string,\n type: PropTypes.string,\n onAction: PropTypes.func,\n showSaveCheckbox: PropTypes.bool,\n showDefaultCheckbox: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n showContinueButton: PropTypes.bool,\n entryMode: PropTypes.oneOf(['both', 'autocomplete', 'manual']),\n requireValidation: PropTypes.bool,\n showManualValidateButton: PropTypes.bool,\n readOnlyView: PropTypes.bool,\n address: PropTypes.shape({\n mobilePhoneCountry: PropTypes.string,\n saveToAccount: PropTypes.bool,\n saveAsDefault: PropTypes.bool\n })\n};\n\nexport default ShippingAddressForm;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShippingAddressForm.js","names":["_propTypes","_interopRequireDefault","require","_react","_addressLookup","_interopRequireWildcard","_foundationUiComponents","_useAddressFieldLabels","_useShippingAddressForm","_useShippingFormState","_ShippingField","_shippingStrings","_emailVerify","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getDefaultFieldLabel","fieldName","replace","character","toUpperCase","trim","getFieldLabel","labels","phoneLabelOverride","_labels$formStrings","mobilePhoneLabel","formStrings","CONTROL_TEST_IDS","country","saveToAccount","saveAsDefault","submit","cancel","CONTROL_IDS","ShippingAddressForm","language","onAction","address","showSaveCheckbox","showDefaultCheckbox","showCancelButton","showContinueButton","readOnlyView","type","selectedCountry","setSelectedCountry","useState","useAddressFieldLabels","shippingAddressForm","useShippingAddressForm","shippingFields","useMemo","preAddressFields","postAddressFields","addressFormDefinition","addressForm","isSavePending","setIsSavePending","validationRequestId","setValidationRequestId","phoneCountry","setPhoneCountry","mobilePhoneCountry","hasUserSelectedPhoneCountry","setHasUserSelectedPhoneCountry","setMobilePhoneLabel","emailValidationError","setEmailValidationError","values","setFieldValue","touchField","markAllTouched","resetValidationState","getFieldError","getValidationErrors","getPhoneValidationStatus","useShippingFormState","defaultPhoneCountry","showCheckboxSection","showActions","useEffect","availableCountries","countries","length","hasLoggedInCountry","some","countryOption","code","nextSelectedCountry","currentValue","isMounted","getShippingLabels","then","resolvedLabels","validateEmailValue","email","trimmedEmail","isEmailSyntaxValid","_labels$formStrings2","invalidEmail","emailInfo","getEmailInfo","hasInvalidEmail","isFormatValid","isDomainValid","_labels$formStrings3","handleAddressSelect","data","_data$status","includes","shippingValidationErrors","canProceedWithAddress","status","canProceed","isShippingComplete","emailValue","isEmailValid","phoneValidationStatus","reduce","acc","fieldConfig","field","validationStatus","phone","handlePhoneCountryChange","nextCountry","resolvedCountry","handleSaveAddress","handleCancel","handleFieldBlur","renderLayoutItem","layoutItem","index","component","jsx","className","children","strings","formDefinition","deferFormLookup","Boolean","onAddressSelect","jsxs","htmlFor","countryLabel","id","value","onChange","event","target","disabled","map","name","find","label","error","SUPPORTED_COUNTRIES","nextValue","onBlur","onPhoneCountryChange","layout","filter","Fragment","checked","agreeToSaveAddressLabel","setDefaultLabel","NsButton","variant","color","onClick","continueLabel","saveAddressButtonLabel","cancelLabel","propTypes","PropTypes","string","func","bool","shape","_default","exports"],"sources":["../../src/shippingAddressForm/ShippingAddressForm.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useEffect, useMemo, useState } from 'react';\nimport AddressLookup, { SUPPORTED_COUNTRIES } from '../addressLookup'\nimport { NsButton } from '@nuskin/foundation-ui-components';\nimport 'react-phone-number-input/style.css'\nimport './styles/shippingAddressForm.css'\nimport useAddressFieldLabels from './hooks/useAddressFieldLabels';\nimport useShippingAddressForm from './hooks/useShippingAddressForm';\nimport useShippingFormState from './hooks/useShippingFormState';\nimport ShippingField from './components/ShippingField';\nimport { getShippingLabels } from './utils/shippingStrings.js';\nimport { getEmailInfo, isEmailSyntaxValid } from './utils/emailVerify';\n\nconst getDefaultFieldLabel = (fieldName = '') =>\n fieldName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (character) => character.toUpperCase())\n .trim();\n\nconst getFieldLabel = (fieldName, labels, phoneLabelOverride) => {\n if (fieldName === 'mobilePhone') {\n return phoneLabelOverride || labels.mobilePhoneLabel;\n }\n\n return labels[`${fieldName}Label`] || labels.formStrings?.[fieldName] || getDefaultFieldLabel(fieldName);\n};\n\nconst CONTROL_TEST_IDS = {\n country: 'qa-address-country',\n saveToAccount: 'qa-address-save-to-account',\n saveAsDefault: 'qa-address-save-as-default',\n submit: 'qa-address-submit',\n cancel: 'qa-address-cancel'\n};\n\nconst CONTROL_IDS = {\n country: 'address-country',\n saveToAccount: 'address-save-to-account',\n saveAsDefault: 'address-save-as-default',\n submit: 'address-submit',\n cancel: 'address-cancel'\n};\n\nconst ShippingAddressForm = ({\n country = 'US',\n language,\n onAction,\n address = null,\n showSaveCheckbox = true,\n showDefaultCheckbox = true,\n showCancelButton = true,\n showContinueButton = false,\n readOnlyView = false,\n type = 'shipping'\n}) => {\n const [selectedCountry, setSelectedCountry] = useState(country)\n const labels = useAddressFieldLabels(selectedCountry, language)\n const { shippingAddressForm } = useShippingAddressForm(country, true, type)\n const shippingFields = useMemo(\n () => [\n ...(shippingAddressForm.preAddressFields || []),\n ...(shippingAddressForm.postAddressFields || [])\n ],\n [shippingAddressForm.postAddressFields, shippingAddressForm.preAddressFields]\n )\n const addressFormDefinition = selectedCountry === country ? shippingAddressForm.addressForm : null\n const [isSavePending, setIsSavePending] = useState(false)\n const [validationRequestId, setValidationRequestId] = useState(0)\n const [phoneCountry, setPhoneCountry] = useState(address?.mobilePhoneCountry || country)\n const [hasUserSelectedPhoneCountry, setHasUserSelectedPhoneCountry] = useState(false)\n const [mobilePhoneLabel, setMobilePhoneLabel] = useState('')\n const [emailValidationError, setEmailValidationError] = useState('')\n const {\n values,\n setFieldValue,\n touchField,\n markAllTouched,\n resetValidationState,\n getFieldError,\n getValidationErrors,\n getPhoneValidationStatus\n } = useShippingFormState({\n address,\n shippingFields,\n labels,\n defaultPhoneCountry: address?.mobilePhoneCountry || selectedCountry || country\n });\n const showCheckboxSection = showSaveCheckbox || showDefaultCheckbox;\n const showActions = !readOnlyView;\n\n useEffect(() => {\n setSelectedCountry(country)\n setHasUserSelectedPhoneCountry(false)\n }, [country])\n\n useEffect(() => {\n const availableCountries = shippingAddressForm.countries || [];\n\n if (availableCountries.length === 0) {\n setSelectedCountry(country);\n return;\n }\n\n const hasLoggedInCountry = availableCountries.some((countryOption) => countryOption.code === country);\n const nextSelectedCountry = hasLoggedInCountry ? country : availableCountries[0].code;\n\n setSelectedCountry((currentValue) => (\n availableCountries.some(\n (countryOption) => countryOption.code === currentValue\n ) ? currentValue : nextSelectedCountry\n ));\n }, [country, shippingAddressForm.countries])\n\n useEffect(() => {\n if (address?.mobilePhoneCountry) {\n setPhoneCountry(address.mobilePhoneCountry);\n return;\n }\n\n if (!hasUserSelectedPhoneCountry) {\n setPhoneCountry(selectedCountry || country);\n }\n }, [address?.mobilePhoneCountry, country, hasUserSelectedPhoneCountry, selectedCountry])\n\n useEffect(() => {\n let isMounted = true;\n\n getShippingLabels({ country: phoneCountry || country, language }).then((resolvedLabels) => {\n if (isMounted) {\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, language, phoneCountry])\n\n useEffect(() => {\n if (!readOnlyView && !values.saveToAccount && values.saveAsDefault) {\n setFieldValue('saveAsDefault', false);\n }\n }, [readOnlyView, setFieldValue, values.saveAsDefault, values.saveToAccount])\n\n const validateEmailValue = async (email) => {\n const trimmedEmail = typeof email === 'string' ? email.trim() : '';\n\n if (!trimmedEmail) {\n setEmailValidationError('');\n return true;\n }\n\n if (!isEmailSyntaxValid(trimmedEmail)) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n const emailInfo = await getEmailInfo(trimmedEmail);\n const hasInvalidEmail =\n emailInfo &&\n (!emailInfo.isFormatValid || !emailInfo.isDomainValid);\n\n if (hasInvalidEmail) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n setEmailValidationError('');\n return true;\n };\n\n const handleAddressSelect = async (data) => {\n if (readOnlyView) {\n return;\n }\n\n if (['lookup-error', 'validation-error'].includes(data?.type)) {\n onAction?.(data);\n return;\n }\n\n if (!isSavePending || data?.type !== 'validation-request') {\n return;\n }\n\n setIsSavePending(false);\n\n const shippingValidationErrors = getValidationErrors();\n const canProceedWithAddress = data?.status?.canProceed === true;\n const isShippingComplete = shippingValidationErrors.length === 0;\n\n if (!canProceedWithAddress || !isShippingComplete) {\n return;\n }\n\n const emailValue = typeof values.email === 'string' ? values.email.trim() : '';\n\n if (emailValue) {\n const isEmailValid = await validateEmailValue(emailValue);\n\n if (!isEmailValid) {\n return;\n }\n }\n\n const phoneValidationStatus = getPhoneValidationStatus();\n\n onAction?.({\n type: 'save',\n data: {\n ...data.address,\n ...shippingFields.reduce((acc, fieldConfig) => {\n acc[fieldConfig.field] = values[fieldConfig.field];\n return acc;\n }, {}),\n mobilePhoneCountry: phoneCountry,\n country: selectedCountry,\n saveToAccount: values.saveToAccount,\n saveAsDefault: values.saveAsDefault\n },\n validationStatus: {\n ...data.status,\n ...(phoneValidationStatus ? { phone: phoneValidationStatus } : {})\n }\n });\n }\n\n const handlePhoneCountryChange = async (nextCountry) => {\n if (readOnlyView) {\n return;\n }\n\n const resolvedCountry = nextCountry || selectedCountry || country;\n\n setHasUserSelectedPhoneCountry(true);\n setPhoneCountry(resolvedCountry);\n\n const resolvedLabels = await getShippingLabels({\n country: resolvedCountry,\n language\n });\n\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n };\n\n const handleSaveAddress = () => {\n if (readOnlyView) {\n return;\n }\n\n setEmailValidationError('');\n markAllTouched();\n setIsSavePending(true);\n setValidationRequestId((currentValue) => currentValue + 1);\n };\n\n const handleCancel = () => {\n if (readOnlyView) {\n return;\n }\n\n setIsSavePending(false);\n setEmailValidationError('');\n resetValidationState();\n onAction?.({ type: 'cancel' });\n };\n\n const handleFieldBlur = async (fieldName) => {\n if (readOnlyView) {\n return;\n }\n\n touchField(fieldName);\n\n if (fieldName === 'email') {\n await validateEmailValue(values.email);\n }\n };\n\n const renderLayoutItem = (layoutItem, index) => {\n if (layoutItem.type === 'component' && layoutItem.component === 'addressLookup') {\n return (\n <div\n className='ns-shipping-address-form__component ns-shipping-address-form__component--full'\n key={`addressLookup-${index}`}\n >\n <AddressLookup\n country={selectedCountry}\n language={language}\n strings={labels.formStrings}\n formDefinition={addressFormDefinition}\n deferFormLookup={Boolean(addressFormDefinition)}\n validationRequestId={validationRequestId}\n onAddressSelect={handleAddressSelect}\n address={address}\n readOnlyView={readOnlyView}\n />\n </div>\n );\n }\n\n if (layoutItem.type === 'component' && layoutItem.component === 'countrySelector') {\n return (\n <div\n className='ns-shipping-address-form__field ns-shipping-address-form__field--country-selector'\n key='country-selector'\n >\n <label\n htmlFor={CONTROL_IDS.country}\n className='ns-shipping-address-form__label'\n >\n {labels.countryLabel}\n </label>\n <select\n id={CONTROL_IDS.country}\n data-testid={CONTROL_TEST_IDS.country}\n value={selectedCountry}\n onChange={(event) => {\n if (!readOnlyView) {\n setSelectedCountry(event.target.value);\n }\n }}\n className='ns-shipping-address-form__input'\n disabled={readOnlyView}\n >\n {shippingAddressForm.countries.map((countryOption) => (\n <option key={countryOption.code} value={countryOption.code}>\n {countryOption.name}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n if (layoutItem.type === 'field') {\n const fieldConfig = shippingFields.find((field) => field.field === layoutItem.field);\n\n if (!fieldConfig) {\n return null;\n }\n\n return (\n <ShippingField\n key={fieldConfig.field}\n fieldConfig={fieldConfig}\n label={getFieldLabel(fieldConfig.field, labels, mobilePhoneLabel)}\n value={values[fieldConfig.field]}\n error={fieldConfig.field === 'email' ? (emailValidationError || getFieldError(fieldConfig)) : getFieldError(fieldConfig)}\n country={phoneCountry}\n countries={SUPPORTED_COUNTRIES}\n onChange={(nextValue) => {\n if (readOnlyView) {\n return;\n }\n\n if (fieldConfig.field === 'email' && emailValidationError) {\n setEmailValidationError('');\n }\n\n setFieldValue(fieldConfig.field, nextValue);\n }}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onPhoneCountryChange={handlePhoneCountryChange}\n readOnlyView={readOnlyView}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className='ns-shipping-address-form'>\n {shippingAddressForm.layout.some(\n (layoutItem) => layoutItem.type === 'component' && layoutItem.component === 'countrySelector'\n ) && renderLayoutItem({ type: 'component', component: 'countrySelector' }, 'country-selector')}\n <div className='ns-shipping-address-form__layout'>\n {shippingAddressForm.layout\n .filter((layoutItem) => !(layoutItem.type === 'component' && layoutItem.component === 'countrySelector'))\n .map(renderLayoutItem)}\n </div>\n {showCheckboxSection && (\n <>\n <hr className='ns-shipping-address-form__separator' />\n {showSaveCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label ns-shipping-address-form__checkbox-label--spaced'>\n <input\n id={CONTROL_IDS.saveToAccount}\n data-testid={CONTROL_TEST_IDS.saveToAccount}\n type=\"checkbox\"\n checked={values.saveToAccount}\n onChange={(e) => {\n if (!readOnlyView) {\n setFieldValue('saveToAccount', e.target.checked);\n }\n }}\n className='ns-shipping-address-form__checkbox'\n disabled={readOnlyView}\n />\n {labels.agreeToSaveAddressLabel}\n </label>\n </div>\n )}\n {showDefaultCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label'>\n <input\n id={CONTROL_IDS.saveAsDefault}\n data-testid={CONTROL_TEST_IDS.saveAsDefault}\n type=\"checkbox\"\n checked={values.saveAsDefault}\n onChange={(e) => {\n if (!readOnlyView) {\n setFieldValue('saveAsDefault', e.target.checked);\n }\n }}\n className='ns-shipping-address-form__checkbox'\n disabled={readOnlyView || !values.saveToAccount}\n />\n {labels.setDefaultLabel}\n </label>\n </div>\n )}\n <hr className='ns-shipping-address-form__separator' />\n </>\n )}\n {showActions && (\n <div className='ns-shipping-address-form__actions'>\n <NsButton\n id={CONTROL_IDS.submit}\n data-testid={CONTROL_TEST_IDS.submit}\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSaveAddress}\n >\n {showContinueButton ? labels.continueLabel : labels.saveAddressButtonLabel}\n </NsButton>\n {showCancelButton && (\n <NsButton\n id={CONTROL_IDS.cancel}\n data-testid={CONTROL_TEST_IDS.cancel}\n variant=\"outlined\"\n color=\"primary\"\n onClick={handleCancel}\n >\n {labels.cancelLabel}\n </NsButton>\n )}\n </div>\n )}\n </div>\n );\n};\n\nShippingAddressForm.propTypes = {\n country: PropTypes.string,\n language: PropTypes.string,\n type: PropTypes.string,\n onAction: PropTypes.func,\n showSaveCheckbox: PropTypes.bool,\n showDefaultCheckbox: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n showContinueButton: PropTypes.bool,\n readOnlyView: PropTypes.bool,\n address: PropTypes.shape({\n mobilePhoneCountry: PropTypes.string,\n saveToAccount: PropTypes.bool,\n saveAsDefault: PropTypes.bool\n })\n};\n\nexport default ShippingAddressForm;\n"],"mappings":"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","ignoreList":[]}
@@ -10,22 +10,29 @@ var _reactPhoneNumberInput = _interopRequireDefault(require("react-phone-number-
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  const FIELD_TEST_IDS = {
13
- givenName: 'qa-address-given-name',
14
- surname: 'qa-address-surname',
15
- email: 'qa-address-email',
16
- mobilePhone: 'qa-address-mobile-phone',
13
+ givenName: 'qa-first-name',
14
+ surname: 'qa-last-name',
15
+ email: 'qa-email',
16
+ mobilePhone: 'qa-mobile-phone',
17
17
  instructions: 'qa-address-instructions'
18
18
  };
19
+ const FIELD_NAMES = {
20
+ givenName: 'firstName',
21
+ surname: 'lastName',
22
+ email: 'email',
23
+ mobilePhone: 'mobilePhoneNumber'
24
+ };
19
25
  const FIELD_IDS = {
20
- givenName: 'address-given-name',
21
- surname: 'address-surname',
22
- email: 'address-email',
23
- mobilePhone: 'address-mobile-phone',
26
+ givenName: 'firstName',
27
+ surname: 'lastName',
28
+ email: 'email',
29
+ mobilePhone: 'mobilePhoneNumber',
24
30
  instructions: 'address-instructions'
25
31
  };
26
32
  const toKebabCase = (value = '') => value.replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/[\s_]+/g, '-').toLowerCase();
27
33
  const getFieldTestId = (fieldName = '') => FIELD_TEST_IDS[fieldName] || `qa-address-${toKebabCase(fieldName)}`;
28
34
  const getFieldId = (fieldName = '') => FIELD_IDS[fieldName] || `address-${toKebabCase(fieldName)}`;
35
+ const getFieldName = (fieldName = '') => FIELD_NAMES[fieldName] || fieldName;
29
36
  const ShippingField = ({
30
37
  fieldConfig,
31
38
  label,
@@ -47,6 +54,7 @@ const ShippingField = ({
47
54
  const labelClassName = ['ns-shipping-address-form__label', 'MuiFormLabel-root', 'MuiFormLabel-colorPrimary', 'css-1ef1ceb-MuiFormLabel-root'].join(' ');
48
55
  const fieldId = getFieldId(fieldConfig.field);
49
56
  const fieldTestId = getFieldTestId(fieldConfig.field);
57
+ const fieldName = getFieldName(fieldConfig.field);
50
58
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
51
59
  className: fieldClassName,
52
60
  children: fieldConfig.inputType === 'phone' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -74,6 +82,7 @@ const ShippingField = ({
74
82
  },
75
83
  numberInputProps: {
76
84
  id: fieldId,
85
+ name: fieldName,
77
86
  readOnly: isReadOnly,
78
87
  required: fieldConfig.required,
79
88
  maxLength: fieldConfig.maxLength,
@@ -109,11 +118,9 @@ const ShippingField = ({
109
118
  readOnly: isReadOnly
110
119
  },
111
120
  inputProps: {
121
+ name: fieldName,
112
122
  'data-testid': fieldTestId
113
123
  },
114
- additionalProps: {
115
- testid: fieldTestId
116
- },
117
124
  className: inputClassName
118
125
  })]
119
126
  })