@nuskin/shipping-address-form 1.7.7 → 1.7.8-3258-comuna.1
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.
|
@@ -95,6 +95,31 @@ const normalizeRequiredFields = (addressElements = []) => {
|
|
|
95
95
|
return true;
|
|
96
96
|
});
|
|
97
97
|
};
|
|
98
|
+
const addChileDistrictField = (countryCode = '', addressElements = []) => {
|
|
99
|
+
var _addressElements$regi;
|
|
100
|
+
if (String(countryCode).toUpperCase() !== 'CL' || addressElements.some(element => element.field === 'district')) {
|
|
101
|
+
return addressElements;
|
|
102
|
+
}
|
|
103
|
+
const cityIndex = addressElements.findIndex(element => element.field === 'city');
|
|
104
|
+
const regionIndex = addressElements.findIndex(element => element.field === 'region');
|
|
105
|
+
if (cityIndex === -1 || regionIndex === -1) {
|
|
106
|
+
return addressElements;
|
|
107
|
+
}
|
|
108
|
+
const districtField = {
|
|
109
|
+
field: 'district',
|
|
110
|
+
width: ((_addressElements$regi = addressElements[regionIndex]) === null || _addressElements$regi === void 0 ? void 0 : _addressElements$regi.width) || 'full',
|
|
111
|
+
editable: true,
|
|
112
|
+
maxLength: null,
|
|
113
|
+
required: true,
|
|
114
|
+
allowMissingAfterVerification: false,
|
|
115
|
+
trustVerifiedFormat: false,
|
|
116
|
+
allowedCharacters: null,
|
|
117
|
+
apiMappings: null
|
|
118
|
+
};
|
|
119
|
+
const nextAddressElements = [...addressElements];
|
|
120
|
+
nextAddressElements.splice(regionIndex, 0, districtField);
|
|
121
|
+
return nextAddressElements;
|
|
122
|
+
};
|
|
98
123
|
const normalizePostalCodeRegex = postalCodeRegex => {
|
|
99
124
|
if (!postalCodeRegex) {
|
|
100
125
|
return null;
|
|
@@ -114,11 +139,12 @@ const normalizePostalCodeRegex = postalCodeRegex => {
|
|
|
114
139
|
const normalizeEntryMode = entryMode => ['both', 'autocomplete', 'manual'].includes(entryMode) ? entryMode : DEFAULT_ADDRESS_FORM.entryMode;
|
|
115
140
|
const normalizeValidationMode = validationMode => ['required', 'optional', 'disabled'].includes(validationMode) ? validationMode : DEFAULT_ADDRESS_FORM.validationMode;
|
|
116
141
|
const normalizeMinimumAcceptedLevel = minimumAcceptedLevel => ['verified', 'partial'].includes(minimumAcceptedLevel) ? minimumAcceptedLevel : DEFAULT_ADDRESS_FORM.minimumAcceptedLevel;
|
|
117
|
-
const normalizeAddressForm = (result = {}) => {
|
|
142
|
+
const normalizeAddressForm = (result = {}, countryCode = '') => {
|
|
118
143
|
var _addressElements$;
|
|
119
144
|
const addressElementsSource = result.address_elements || result.addressElements;
|
|
120
145
|
const addressEntry = result.address_entry || result.addressEntry || result;
|
|
121
|
-
const
|
|
146
|
+
const normalizedAddressElements = Array.isArray(addressElementsSource) ? addressElementsSource.map(normalizeAddressElement).filter(element => element.field) : [];
|
|
147
|
+
const addressElements = addChileDistrictField(countryCode, normalizedAddressElements);
|
|
122
148
|
return {
|
|
123
149
|
addressElements,
|
|
124
150
|
lookupField: ((_addressElements$ = addressElements[0]) === null || _addressElements$ === void 0 ? void 0 : _addressElements$.field) || DEFAULT_ADDRESS_FORM.lookupField,
|
|
@@ -141,7 +167,7 @@ const getAddressForm = async country => {
|
|
|
141
167
|
try {
|
|
142
168
|
const stack = (0, _contentstackLib.getStack)();
|
|
143
169
|
const results = await stack.getMultiEntries('address_form', true, [countryCode]);
|
|
144
|
-
const form = normalizeAddressForm(extractAddressForm(results === null || results === void 0 ? void 0 : results[0]));
|
|
170
|
+
const form = normalizeAddressForm(extractAddressForm(results === null || results === void 0 ? void 0 : results[0]), countryCode);
|
|
145
171
|
cache[cacheKey] = form;
|
|
146
172
|
return form;
|
|
147
173
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
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":"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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","addChileDistrictField","countryCode","_addressElements$regi","String","toUpperCase","some","cityIndex","findIndex","regionIndex","districtField","nextAddressElements","splice","normalizePostalCodeRegex","normalizeEntryMode","includes","normalizeValidationMode","normalizeMinimumAcceptedLevel","normalizeAddressForm","result","_addressElements$","addressElementsSource","addressEntry","address_entry","normalizedAddressElements","postal_code_regex","verify_after_autocomplete","wrap_address1_to_address2","entry_mode","validation_mode","minimum_accepted_level","getAddressForm","country","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 addChileDistrictField = (countryCode = '', addressElements = []) => {\n if (String(countryCode).toUpperCase() !== 'CL' || addressElements.some((element) => element.field === 'district')) {\n return addressElements;\n }\n\n const cityIndex = addressElements.findIndex((element) => element.field === 'city');\n const regionIndex = addressElements.findIndex((element) => element.field === 'region');\n\n if (cityIndex === -1 || regionIndex === -1) {\n return addressElements;\n }\n\n const districtField = {\n field: 'district',\n width: addressElements[regionIndex]?.width || 'full',\n editable: true,\n maxLength: null,\n required: true,\n allowMissingAfterVerification: false,\n trustVerifiedFormat: false,\n allowedCharacters: null,\n apiMappings: null\n };\n const nextAddressElements = [...addressElements];\n nextAddressElements.splice(regionIndex, 0, districtField);\n return nextAddressElements;\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 = {}, countryCode = '') => {\n const addressElementsSource = result.address_elements || result.addressElements;\n const addressEntry = result.address_entry || result.addressEntry || result;\n\n const normalizedAddressElements = Array.isArray(addressElementsSource) ?\n addressElementsSource.map(normalizeAddressElement).filter((element) => element.field) :\n [];\n const addressElements = addChileDistrictField(countryCode, normalizedAddressElements);\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]), countryCode);\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":[]}
|