UNPKG

@financial-times/n-conversion-forms

Version:

Containing jsx components and styles for forms included on Accounts and Acquisition apps (next-signup, next-profile, next-retention, etc).

107 lines (99 loc) 2.27 kB
const { flattenObj } = require('./utilities'); const { printRegions } = require('./constants'); const countriesMasterList = { cemeaV1: { AUT: 'Austria', ARE: 'United Arab Emirates', BEL: 'Belgium', BGR: 'Bulgaria', HRV: 'Croatia', CZE: 'Czechia', DNK: 'Denmark', EST: 'Estonia', FIN: 'Finland', DEU: 'Germany', GRC: 'Greece', HUN: 'Hungary', ISL: 'Iceland', ISR: 'Isarel', ITA: 'Italy', LIE: 'Liechtenstein', LTU: 'Lithuania', LVA: 'Latvia', MLT: 'Malta', MNE: 'Montenegro', NLD: 'Netherlands', NOR: 'Norway', POL: 'Poland', PRT: 'Portugal', QAT: 'Qatar', ROU: 'Romania', RUS: 'Russian Federation', SVK: 'Slovakia', SVN: 'Slovenia', TTO: 'Trinidad and Tobago', ZAF: 'South Africa', ESP: 'Spain', SWE: 'Sweden', CHE: 'Switzerland', SRB: 'Serbia', BIH: 'Bosnia and Herzegovina', }, cemeaV2: { FRA: 'France', LUX: 'Luxembourg', MCO: 'Monaco', }, apac: { AUS: 'Australia', CHN: 'China', HKG: 'Hong Kong', IND: 'India', IDN: 'Indonesia', JPN: 'Japan', KOR: 'Korea, Republic of', MYS: 'Malaysia', NZL: 'New Zealand', PHL: 'Philippines', SGP: 'Singapore', TWN: 'Taiwan, Province of China', THA: 'Thailand', }, other: { GBR: 'United Kingdom', USA: 'United States', CAN: 'Canada', }, }; const cemeaV1ISO = Object.keys(countriesMasterList.cemeaV1); const cemeaV2ISO = Object.keys(countriesMasterList.cemeaV2); const apacISO = Object.keys(countriesMasterList.apac); const singleCountries = Object.keys(countriesMasterList.other); const countriesSupported = flattenObj(countriesMasterList); const countriesSupportedISO = Object.keys(countriesSupported); const postcodeExemptCountryCodes = ['HKG', 'QAT', 'ARE']; const identifyShippingZone = (country) => { if (cemeaV1ISO.includes(country)) { return printRegions.cemeaV1; } if (cemeaV2ISO.includes(country)) { return printRegions.cemeaV2; } if (apacISO.includes(country)) { return printRegions.apac; } if (singleCountries.includes(country)) { return country; } // if no match, then return a default shipping zone return 'DEFAULT'; }; module.exports = { cemeaV1ISO, cemeaV2ISO, apacISO, countriesSupported, countriesSupportedISO, postcodeExemptCountryCodes, identifyShippingZone, };