547 lines
9.7 KiB
JavaScript
547 lines
9.7 KiB
JavaScript
/** @typedef { import('@woocommerce/type-defs/address-fields').CountryAddressFields } CountryAddressFields */
|
|
/** @typedef { import('@woocommerce/type-defs/address-fields').AddressFieldKey } AddressFieldKey */
|
|
/** @typedef { import('@woocommerce/type-defs/address-fields').AddressField } AddressField */
|
|
|
|
/**
|
|
* External dependencies
|
|
*/
|
|
import { __ } from '@wordpress/i18n';
|
|
|
|
/**
|
|
* Used to render postcode before the city field.
|
|
*
|
|
* @type {Object <AddressFieldKey, AddressField>}
|
|
*/
|
|
const postcodeBeforeCity = {
|
|
city: {
|
|
index: 9,
|
|
},
|
|
postcode: {
|
|
index: 7,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Used to make the state field optional.
|
|
*
|
|
* @type {Object <AddressFieldKey, AddressField>}
|
|
*/
|
|
const optionalState = {
|
|
state: {
|
|
required: false,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Used to hide the state field.
|
|
*
|
|
* @type {Object <AddressFieldKey, AddressField>}
|
|
*/
|
|
const hiddenState = {
|
|
state: {
|
|
required: false,
|
|
hidden: true,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Used to hide the postcode field.
|
|
*
|
|
* @type {Object <AddressFieldKey, AddressField>}
|
|
*/
|
|
const hiddenPostcode = {
|
|
postcode: {
|
|
required: false,
|
|
hidden: true,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Country specific address field properties.
|
|
*
|
|
* @type {CountryAddressFields}
|
|
*/
|
|
const countryAddressFields = {
|
|
AE: {
|
|
...hiddenPostcode,
|
|
...optionalState,
|
|
},
|
|
AF: hiddenState,
|
|
AO: {
|
|
...hiddenPostcode,
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
AT: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
AU: {
|
|
city: {
|
|
label: __( 'Suburb', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Suburb (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
postcode: {
|
|
label: __( 'Postcode', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Postcode (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'State', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'State (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
AX: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
BD: {
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
state: {
|
|
label: __( 'District', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'District (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
BE: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
BH: {
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
...hiddenState,
|
|
},
|
|
BI: hiddenState,
|
|
BO: hiddenPostcode,
|
|
BS: hiddenPostcode,
|
|
CA: {
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
CH: {
|
|
...postcodeBeforeCity,
|
|
state: {
|
|
label: __( 'Canton', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Canton (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
required: false,
|
|
},
|
|
},
|
|
CL: {
|
|
city: {
|
|
require: true,
|
|
},
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
state: {
|
|
label: __( 'Region', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Region (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
CN: {
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
CO: {
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
},
|
|
CZ: hiddenState,
|
|
DE: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
DK: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
EE: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
ES: {
|
|
...postcodeBeforeCity,
|
|
state: {
|
|
label: __( 'State', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'State (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
FI: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
FR: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
GB: {
|
|
postcode: {
|
|
label: __( 'Postcode', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Postcode (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'County', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'County (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
GP: hiddenState,
|
|
GF: hiddenState,
|
|
GR: optionalState,
|
|
HK: {
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
city: {
|
|
label: __( 'Town/District', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Town/District (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'Region', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Region (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
HU: {
|
|
state: {
|
|
label: __( 'County', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'County (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
ID: {
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
IE: {
|
|
postcode: {
|
|
label: __( 'Eircode', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Eircode (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
required: false,
|
|
},
|
|
state: {
|
|
label: __( 'County', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'County (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
IS: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
IL: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
IM: hiddenState,
|
|
IT: {
|
|
...postcodeBeforeCity,
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
JP: {
|
|
first_name: {
|
|
index: 2,
|
|
},
|
|
last_name: {
|
|
index: 1,
|
|
},
|
|
address_1: {
|
|
index: 7,
|
|
},
|
|
address_2: {
|
|
index: 8,
|
|
},
|
|
postcode: {
|
|
index: 4,
|
|
},
|
|
city: {
|
|
index: 6,
|
|
},
|
|
state: {
|
|
label: __( 'Prefecture', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Prefecture (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
index: 5,
|
|
},
|
|
},
|
|
KR: hiddenState,
|
|
KW: hiddenState,
|
|
LB: hiddenState,
|
|
LI: {
|
|
...postcodeBeforeCity,
|
|
state: {
|
|
label: __( 'Municipality', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Municipality (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
required: false,
|
|
},
|
|
},
|
|
LK: hiddenState,
|
|
LU: hiddenState,
|
|
LV: {
|
|
state: {
|
|
label: __( 'Municipality', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Municipality (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
required: false,
|
|
},
|
|
},
|
|
MQ: hiddenState,
|
|
MT: hiddenState,
|
|
MZ: {
|
|
...hiddenPostcode,
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
NL: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
NG: {
|
|
...hiddenPostcode,
|
|
state: {
|
|
label: __( 'State', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'State (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
NO: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
NP: {
|
|
postcode: {
|
|
required: false,
|
|
},
|
|
state: {
|
|
label: __( 'State', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'State (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
NZ: {
|
|
postcode: {
|
|
label: __( 'Postcode', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Postcode (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'Region', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Region (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
PL: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
PT: hiddenState,
|
|
RE: hiddenState,
|
|
RO: {
|
|
state: {
|
|
label: __( 'County', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'County (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
RS: hiddenState,
|
|
SE: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
SG: {
|
|
city: {
|
|
required: false,
|
|
},
|
|
...hiddenState,
|
|
},
|
|
SK: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
SI: {
|
|
...postcodeBeforeCity,
|
|
...hiddenState,
|
|
},
|
|
SR: {
|
|
...hiddenPostcode,
|
|
},
|
|
ST: {
|
|
...hiddenPostcode,
|
|
state: {
|
|
label: __( 'District', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'District (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
MD: {
|
|
state: {
|
|
label: __(
|
|
'Municipality/District',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
optionalLabel: __(
|
|
'Municipality/District (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
TR: {
|
|
...postcodeBeforeCity,
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
UG: {
|
|
...hiddenPostcode,
|
|
city: {
|
|
label: __( 'Town/Village', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Town/Village (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'District', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'District (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
US: {
|
|
postcode: {
|
|
label: __( 'ZIP', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'ZIP (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
state: {
|
|
label: __( 'State', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'State (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
VN: {
|
|
city: {
|
|
index: 8,
|
|
},
|
|
postcode: {
|
|
index: 7,
|
|
required: false,
|
|
},
|
|
...hiddenState,
|
|
},
|
|
WS: hiddenPostcode,
|
|
YT: hiddenState,
|
|
ZA: {
|
|
state: {
|
|
label: __( 'Province', 'woo-gutenberg-products-block' ),
|
|
optionalLabel: __(
|
|
'Province (optional)',
|
|
'woo-gutenberg-products-block'
|
|
),
|
|
},
|
|
},
|
|
ZW: hiddenPostcode,
|
|
};
|
|
|
|
export default countryAddressFields;
|