@frankieone/one-sdk 1.9.39 → 1.9.40-rc
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.
- package/dist/commit.txt +1 -1
- package/dist/esm/modules/common/shared/data/subdivisions/gha.json +66 -0
- package/dist/esm/modules/common/shared/data/subdivisions/index.d.ts +0 -4
- package/dist/esm/modules/common/shared/data/subdivisions/index.d.ts.map +1 -1
- package/dist/esm/modules/common/shared/data/subdivisions/index.js +101 -0
- package/dist/esm/modules/common/shared/data/subdivisions/index.js.map +1 -1
- package/dist/esm/modules/common/shared/data/subdivisions/ken.json +190 -0
- package/dist/esm/modules/common/shared/data/subdivisions/mys.json +18 -0
- package/dist/esm/modules/common/shared/data/subdivisions/nga.json +150 -0
- package/dist/esm/modules/common/shared/data/subdivisions/zaf.json +38 -0
- package/dist/esm/modules/form/vendors/react/constants/form.const.d.ts +4 -0
- package/dist/esm/modules/form/vendors/react/constants/form.const.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/constants/form.const.js +13 -0
- package/dist/esm/modules/form/vendors/react/constants/form.const.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/gha.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/gha.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/gha.js +63 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/gha.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/ken.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/ken.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/ken.js +55 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/ken.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/mys.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/mys.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/mys.js +115 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/mys.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/nga.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/nga.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/nga.js +104 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/nga.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/phl.js +2 -2
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/phl.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/sgp.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/sgp.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/sgp.js +87 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/sgp.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/zaf.d.ts +3 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/zaf.d.ts.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/zaf.js +56 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/countries/zaf.js.map +1 -0
- package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.d.ts +42 -8
- package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.js +53 -9
- package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/index.d.ts +7 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/index.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/index.js +13 -1
- package/dist/esm/modules/form/vendors/react/features/Review/config/index.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/fields/national-id.config.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/Review/fields/national-id.config.js +255 -0
- package/dist/esm/modules/form/vendors/react/features/Review/fields/national-id.config.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.d.ts +25 -0
- package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.js +71 -5
- package/dist/esm/modules/form/vendors/react/hooks/useReviewUpdateFactory.hook.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/model/review.model.d.ts +7 -0
- package/dist/esm/modules/form/vendors/react/model/review.model.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/model/review.model.js +184 -50
- package/dist/esm/modules/form/vendors/react/model/review.model.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/utils/object.util.d.ts +1 -1
- package/dist/esm/modules/form/vendors/react/utils/object.util.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/utils/object.util.js +20 -0
- package/dist/esm/modules/form/vendors/react/utils/object.util.js.map +1 -1
- package/dist/esm/modules/individual/F2/actions/search.d.ts.map +1 -1
- package/dist/esm/modules/individual/F2/actions/search.js +1 -1
- package/dist/esm/modules/individual/F2/actions/search.js.map +1 -1
- package/dist/esm/modules/individual/actions/search.d.ts.map +1 -1
- package/dist/esm/modules/individual/actions/search.js +1 -1
- package/dist/esm/modules/individual/actions/search.js.map +1 -1
- package/dist/esm/modules/meta.json +1 -1
- package/dist/release.txt +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ValidationRulesForForm } from '../../../../constants/form.const.js';
|
|
2
|
+
import { addressBlock, countrySubfield, localiseFieldMessages, optionalStreetNumberSubfield, postalCodeSubfield, stateSubfield, streetAddressSubfield, streetNameSubfield, townSubfield, unitNumberSubfield, } from '../fields/addressField.js';
|
|
3
|
+
import { basePersonalFields } from '../fields/personalFields.js';
|
|
4
|
+
/**
|
|
5
|
+
* South Africa (ZAF) — FDEL-52697.
|
|
6
|
+
*
|
|
7
|
+
* English-speaking and Gregorian, so none of the bilingual-label or calendar
|
|
8
|
+
* rules that HKG/THA/TWN needed apply; `basePersonalFields` is used as-is.
|
|
9
|
+
* English is an official language of South Africa and the smart ID card is
|
|
10
|
+
* printed in English. Three things are South Africa-specific, and each traces
|
|
11
|
+
* to `connectors` config rather than to a guess:
|
|
12
|
+
*
|
|
13
|
+
* 1. **No house number required.** `con_gdc.json` soft_validation_rules sets
|
|
14
|
+
* `"requires_house_number": false` for ZA, against a `_default` of true.
|
|
15
|
+
* Township and estate addresses frequently print no house number, so
|
|
16
|
+
* inheriting the helper's hardcoded `required` would hard-block a valid
|
|
17
|
+
* applicant. ZA's `address_required_fields` are street_name, town and
|
|
18
|
+
* postal_code — those three keep their required rule.
|
|
19
|
+
* 2. **Province is a real subdivision, and one of the nine breaks the shared
|
|
20
|
+
* select pattern.** `subdivisions/zaf.json` registers the nine provinces
|
|
21
|
+
* with code === name (a South African smart ID card prints no address, so
|
|
22
|
+
* there is no OCR value to abbreviate against). KwaZulu-Natal carries a
|
|
23
|
+
* hyphen, which the shared `alphaNumericSpaceInWords` rule rejects — and a
|
|
24
|
+
* select's rules do reach react-hook-form (SharedSelect/Select.tsx passes
|
|
25
|
+
* `rules` to `Controller`), so it would be un-submittable. Widened here, on
|
|
26
|
+
* ZAF's own copy, never on the shared helper. Same fix KEN needed.
|
|
27
|
+
* 3. **A 4-digit postal code**, per ZA's `postal_code_pattern` `^\d{4}$` —
|
|
28
|
+
* Johannesburg is 2000, not 02000.
|
|
29
|
+
*
|
|
30
|
+
* The ID number itself lives in `national-id.config.ts` (ZAF): 13 digits, which
|
|
31
|
+
* is what GDC matches on. GDC requires Name, Address, DOB and National ID for
|
|
32
|
+
* ZA (doc/gdc-country-guide.md), so every field here feeds a required match.
|
|
33
|
+
*/
|
|
34
|
+
const ZAF_ADDRESS_MESSAGES = {
|
|
35
|
+
'address.state': { required: 'Please select your province' },
|
|
36
|
+
};
|
|
37
|
+
export const zafReviewFieldConfig = [
|
|
38
|
+
...basePersonalFields,
|
|
39
|
+
addressBlock(localiseFieldMessages([
|
|
40
|
+
countrySubfield(),
|
|
41
|
+
unitNumberSubfield('Apartment / Unit (optional)'),
|
|
42
|
+
optionalStreetNumberSubfield('House / Building Number (optional)'),
|
|
43
|
+
streetNameSubfield('Street Name'),
|
|
44
|
+
streetAddressSubfield('Street Address'),
|
|
45
|
+
townSubfield(),
|
|
46
|
+
stateSubfield('Province', 'Select your province', Object.assign({}, ValidationRulesForForm.alphaNumericSpaceAccented)),
|
|
47
|
+
postalCodeSubfield({
|
|
48
|
+
label: 'Postal Code',
|
|
49
|
+
digits: 4,
|
|
50
|
+
pattern: Object.assign({}, ValidationRulesForForm.onlyNumbers),
|
|
51
|
+
minMessage: 'Postal code must be 4 digits',
|
|
52
|
+
maxMessage: 'Postal code must be 4 digits',
|
|
53
|
+
}),
|
|
54
|
+
], ZAF_ADDRESS_MESSAGES)),
|
|
55
|
+
];
|
|
56
|
+
//# sourceMappingURL=zaf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zaf.js","sourceRoot":"","sources":["../../../../../../../../../../modules/form/vendors/react/features/Review/config/countries/zaf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,oBAAoB,GAGtB;IACF,eAAe,EAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,GAAG,kBAAkB;IACrB,YAAY,CACV,qBAAqB,CACnB;QACE,eAAe,EAAE;QACjB,kBAAkB,CAAC,6BAA6B,CAAC;QACjD,4BAA4B,CAAC,oCAAoC,CAAC;QAClE,kBAAkB,CAAC,aAAa,CAAC;QACjC,qBAAqB,CAAC,gBAAgB,CAAC;QACvC,YAAY,EAAE;QACd,aAAa,CAAC,UAAU,EAAE,sBAAsB,oBAK3C,sBAAsB,CAAC,yBAAyB,EACnD;QACF,kBAAkB,CAAC;YACjB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,CAAC;YACT,OAAO,oBAAO,sBAAsB,CAAC,WAAW,CAAE;YAClD,UAAU,EAAE,8BAA8B;YAC1C,UAAU,EAAE,8BAA8B;SAC3C,CAAC;KACH,EACD,oBAAoB,CACrB,CACF;CACF,CAAC"}
|
|
@@ -8,6 +8,22 @@ export declare function streetNumberSubfield(label?: string, pattern?: {
|
|
|
8
8
|
value: string;
|
|
9
9
|
message: string;
|
|
10
10
|
}): FormField;
|
|
11
|
+
/**
|
|
12
|
+
* `streetNumberSubfield` minus the helper's hardcoded `required`, for the
|
|
13
|
+
* countries GDC explicitly tells us not to require a house number for:
|
|
14
|
+
* `con_gdc.json` soft_validation_rules sets `"requires_house_number": false`
|
|
15
|
+
* for KE and ZA, against a `_default` of true. Kenyan estate/P.O.-Box and South
|
|
16
|
+
* African township addresses frequently print no house number, so inheriting
|
|
17
|
+
* the required rule hard-blocks a valid applicant.
|
|
18
|
+
*
|
|
19
|
+
* Shared rather than copied once the second country needed it (FDEL-52697); the
|
|
20
|
+
* required rule is dropped here rather than by widening `streetNumberSubfield`'s
|
|
21
|
+
* signature, so every other country's field is untouched.
|
|
22
|
+
*/
|
|
23
|
+
export declare function optionalStreetNumberSubfield(label: string, pattern?: {
|
|
24
|
+
value: string;
|
|
25
|
+
message: string;
|
|
26
|
+
}): FormField;
|
|
11
27
|
export declare function streetNameSubfield(label?: string, pattern?: {
|
|
12
28
|
value: string;
|
|
13
29
|
message: string;
|
|
@@ -20,7 +36,20 @@ export declare function townSubfield(label?: string, pattern?: {
|
|
|
20
36
|
value: string;
|
|
21
37
|
message: string;
|
|
22
38
|
}): FormField;
|
|
23
|
-
|
|
39
|
+
/**
|
|
40
|
+
* `pattern` is optional and additive — every existing caller keeps
|
|
41
|
+
* `alphaNumericSpaceInWords` unchanged. It exists because a select's rules are
|
|
42
|
+
* handed straight to react-hook-form's `Controller`
|
|
43
|
+
* (components/base/SharedSelect/Select.tsx), so this pattern really is
|
|
44
|
+
* evaluated against the option value the field submits. A country whose
|
|
45
|
+
* subdivision codes are not plain alphanumerics — KEN's Murang'a and
|
|
46
|
+
* Elgeyo-Marakwet — must widen it or those options cannot be submitted.
|
|
47
|
+
* (FDEL-52699)
|
|
48
|
+
*/
|
|
49
|
+
export declare function stateSubfield(label?: string, placeholder?: string, pattern?: {
|
|
50
|
+
value: string;
|
|
51
|
+
message: string;
|
|
52
|
+
}): FormField;
|
|
24
53
|
type PostalCodeOpts = {
|
|
25
54
|
label?: string;
|
|
26
55
|
digits?: number;
|
|
@@ -30,19 +59,24 @@ type PostalCodeOpts = {
|
|
|
30
59
|
};
|
|
31
60
|
export declare function postalCodeSubfield(opts?: PostalCodeOpts): FormField;
|
|
32
61
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
62
|
+
* The neighbourhood-level line some countries print between the street and the
|
|
63
|
+
* city — a Philippine Barangay, a Malaysian Taman.
|
|
35
64
|
*
|
|
36
65
|
* Writes `address.suburb`, which the DataZoo connector maps to
|
|
37
66
|
* `addressElement2` for PHL (and IND) — see connectors PR #2427,
|
|
38
67
|
* `applyCountryAddressMapping`. Without this field the barangay never reaches
|
|
39
|
-
* the Philippines Credit Bureau address match.
|
|
68
|
+
* the Philippines Credit Bureau address match. Note there is no MY branch in
|
|
69
|
+
* that switch today, so for Malaysia the value reaches the entity but no
|
|
70
|
+
* further; reported as a connector hand-off on FDEL-52695.
|
|
71
|
+
*
|
|
72
|
+
* Optional everywhere it is used: `address_required_fields` for both PH and MY
|
|
73
|
+
* in con_gdc.json is street_name/town/postal_code only, and the Eightcap
|
|
74
|
+
* dev-test entity matched on GDC with no suburb at all. (FDEL-52331)
|
|
40
75
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* on GDC with no suburb at all. (FDEL-52331)
|
|
76
|
+
* Renamed from `barangaySubfield` when Malaysia became the second caller
|
|
77
|
+
* (FDEL-52695) — the field was never Philippine, only its first label was.
|
|
44
78
|
*/
|
|
45
|
-
export declare function
|
|
79
|
+
export declare function suburbSubfield(label?: string): FormField;
|
|
46
80
|
export declare function coloniaSubfield(): FormField;
|
|
47
81
|
/**
|
|
48
82
|
* Rewrites the applicant-visible validation messages on manual address
|
package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressField.d.ts","sourceRoot":"","sources":["../../../../../../../../../../modules/form/vendors/react/features/Review/config/fields/addressField.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,eAAe,CAAC,KAAK,SAAY,GAAG,SAAS,CAqB5D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,SAA2B,EAChC,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAiBX;AAED,wBAAgB,oBAAoB,CAClC,KAAK,SAAkB,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,kBAAkB,CAChC,KAAK,SAAgB,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,qBAAqB,CACnC,KAAK,SAAmB,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,YAAY,CAC1B,KAAK,SAAkB,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,aAAa,CAC3B,KAAK,SAAU,EACf,WAAW,SAAsB,
|
|
1
|
+
{"version":3,"file":"addressField.d.ts","sourceRoot":"","sources":["../../../../../../../../../../modules/form/vendors/react/features/Review/config/fields/addressField.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,eAAe,CAAC,KAAK,SAAY,GAAG,SAAS,CAqB5D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,SAA2B,EAChC,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAiBX;AAED,wBAAgB,oBAAoB,CAClC,KAAK,SAAkB,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAMX;AAED,wBAAgB,kBAAkB,CAChC,KAAK,SAAgB,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,qBAAqB,CACnC,KAAK,SAAmB,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED,wBAAgB,YAAY,CAC1B,KAAK,SAAkB,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAoBX;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,SAAU,EACf,WAAW,SAAsB,EACjC,OAAO,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,SAAS,CAwBX;AAED,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,cAAmB,GAAG,SAAS,CAiEvE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,KAAK,SAAW,GAAG,SAAS,CAc1D;AAED,wBAAgB,eAAe,IAAI,SAAS,CAgB3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EAAE,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAChE,SAAS,EAAE,CAYb;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,SAAS,CAkBjE"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
1
12
|
import { ValidationRulesForForm } from '../../../../constants/form.const.js';
|
|
2
13
|
import { getAllCountries, getSubdivisions, } from '../../../../utils/object.util.js';
|
|
3
14
|
export function countrySubfield(label = 'Country') {
|
|
@@ -57,6 +68,23 @@ export function streetNumberSubfield(label = 'Street Number', pattern) {
|
|
|
57
68
|
},
|
|
58
69
|
};
|
|
59
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* `streetNumberSubfield` minus the helper's hardcoded `required`, for the
|
|
73
|
+
* countries GDC explicitly tells us not to require a house number for:
|
|
74
|
+
* `con_gdc.json` soft_validation_rules sets `"requires_house_number": false`
|
|
75
|
+
* for KE and ZA, against a `_default` of true. Kenyan estate/P.O.-Box and South
|
|
76
|
+
* African township addresses frequently print no house number, so inheriting
|
|
77
|
+
* the required rule hard-blocks a valid applicant.
|
|
78
|
+
*
|
|
79
|
+
* Shared rather than copied once the second country needed it (FDEL-52697); the
|
|
80
|
+
* required rule is dropped here rather than by widening `streetNumberSubfield`'s
|
|
81
|
+
* signature, so every other country's field is untouched.
|
|
82
|
+
*/
|
|
83
|
+
export function optionalStreetNumberSubfield(label, pattern) {
|
|
84
|
+
const field = streetNumberSubfield(label, pattern);
|
|
85
|
+
const _a = field.rules, { required: _unused } = _a, rules = __rest(_a, ["required"]);
|
|
86
|
+
return Object.assign(Object.assign({}, field), { rules });
|
|
87
|
+
}
|
|
60
88
|
export function streetNameSubfield(label = 'Street Name', pattern) {
|
|
61
89
|
return {
|
|
62
90
|
fieldType: 'input',
|
|
@@ -117,7 +145,17 @@ export function townSubfield(label = 'Suburb / Town', pattern) {
|
|
|
117
145
|
},
|
|
118
146
|
};
|
|
119
147
|
}
|
|
120
|
-
|
|
148
|
+
/**
|
|
149
|
+
* `pattern` is optional and additive — every existing caller keeps
|
|
150
|
+
* `alphaNumericSpaceInWords` unchanged. It exists because a select's rules are
|
|
151
|
+
* handed straight to react-hook-form's `Controller`
|
|
152
|
+
* (components/base/SharedSelect/Select.tsx), so this pattern really is
|
|
153
|
+
* evaluated against the option value the field submits. A country whose
|
|
154
|
+
* subdivision codes are not plain alphanumerics — KEN's Murang'a and
|
|
155
|
+
* Elgeyo-Marakwet — must widen it or those options cannot be submitted.
|
|
156
|
+
* (FDEL-52699)
|
|
157
|
+
*/
|
|
158
|
+
export function stateSubfield(label = 'State', placeholder = 'Select Your State', pattern) {
|
|
121
159
|
return {
|
|
122
160
|
fieldType: 'select',
|
|
123
161
|
dataType: 'text',
|
|
@@ -133,7 +171,8 @@ export function stateSubfield(label = 'State', placeholder = 'Select Your State'
|
|
|
133
171
|
value: true,
|
|
134
172
|
message: 'Please select your state',
|
|
135
173
|
},
|
|
136
|
-
pattern:
|
|
174
|
+
pattern: pattern
|
|
175
|
+
? Object.assign({}, pattern) : Object.assign({}, ValidationRulesForForm.alphaNumericSpaceInWords),
|
|
137
176
|
},
|
|
138
177
|
testid: {
|
|
139
178
|
input: 'state-input',
|
|
@@ -201,19 +240,24 @@ export function postalCodeSubfield(opts = {}) {
|
|
|
201
240
|
};
|
|
202
241
|
}
|
|
203
242
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
243
|
+
* The neighbourhood-level line some countries print between the street and the
|
|
244
|
+
* city — a Philippine Barangay, a Malaysian Taman.
|
|
206
245
|
*
|
|
207
246
|
* Writes `address.suburb`, which the DataZoo connector maps to
|
|
208
247
|
* `addressElement2` for PHL (and IND) — see connectors PR #2427,
|
|
209
248
|
* `applyCountryAddressMapping`. Without this field the barangay never reaches
|
|
210
|
-
* the Philippines Credit Bureau address match.
|
|
249
|
+
* the Philippines Credit Bureau address match. Note there is no MY branch in
|
|
250
|
+
* that switch today, so for Malaysia the value reaches the entity but no
|
|
251
|
+
* further; reported as a connector hand-off on FDEL-52695.
|
|
252
|
+
*
|
|
253
|
+
* Optional everywhere it is used: `address_required_fields` for both PH and MY
|
|
254
|
+
* in con_gdc.json is street_name/town/postal_code only, and the Eightcap
|
|
255
|
+
* dev-test entity matched on GDC with no suburb at all. (FDEL-52331)
|
|
211
256
|
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
* on GDC with no suburb at all. (FDEL-52331)
|
|
257
|
+
* Renamed from `barangaySubfield` when Malaysia became the second caller
|
|
258
|
+
* (FDEL-52695) — the field was never Philippine, only its first label was.
|
|
215
259
|
*/
|
|
216
|
-
export function
|
|
260
|
+
export function suburbSubfield(label = 'Suburb') {
|
|
217
261
|
return {
|
|
218
262
|
fieldType: 'input',
|
|
219
263
|
dataType: 'text',
|
package/dist/esm/modules/form/vendors/react/features/Review/config/fields/addressField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressField.js","sourceRoot":"","sources":["../../../../../../../../../../modules/form/vendors/react/features/Review/config/fields/addressField.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"addressField.js","sourceRoot":"","sources":["../../../../../../../../../../modules/form/vendors/react/features/Review/config/fields/addressField.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,19 @@ import { colReviewFieldConfig } from './countries/col';
|
|
|
4
4
|
import { defaultReviewFieldConfig } from './countries/default';
|
|
5
5
|
import { espReviewFieldConfig } from './countries/esp';
|
|
6
6
|
import { gbrReviewFieldConfig } from './countries/gbr';
|
|
7
|
+
import { ghaReviewFieldConfig } from './countries/gha';
|
|
7
8
|
import { hkgReviewFieldConfig } from './countries/hkg';
|
|
8
9
|
import { indReviewFieldConfig } from './countries/ind';
|
|
10
|
+
import { kenReviewFieldConfig } from './countries/ken';
|
|
9
11
|
import { mexReviewFieldConfig } from './countries/mex';
|
|
12
|
+
import { mysReviewFieldConfig } from './countries/mys';
|
|
13
|
+
import { ngaReviewFieldConfig } from './countries/nga';
|
|
10
14
|
import { phlReviewFieldConfig } from './countries/phl';
|
|
15
|
+
import { sgpReviewFieldConfig } from './countries/sgp';
|
|
11
16
|
import { thaReviewFieldConfig } from './countries/tha';
|
|
12
17
|
import { twnReviewFieldConfig } from './countries/twn';
|
|
18
|
+
import { zafReviewFieldConfig } from './countries/zaf';
|
|
13
19
|
import type { FormField } from '../../../appConfig.type';
|
|
14
|
-
export { ausReviewFieldConfig, canReviewFieldConfig, colReviewFieldConfig, defaultReviewFieldConfig, espReviewFieldConfig, gbrReviewFieldConfig, hkgReviewFieldConfig, indReviewFieldConfig, mexReviewFieldConfig, phlReviewFieldConfig, thaReviewFieldConfig, twnReviewFieldConfig, };
|
|
20
|
+
export { ausReviewFieldConfig, canReviewFieldConfig, colReviewFieldConfig, defaultReviewFieldConfig, espReviewFieldConfig, gbrReviewFieldConfig, ghaReviewFieldConfig, hkgReviewFieldConfig, indReviewFieldConfig, kenReviewFieldConfig, mexReviewFieldConfig, mysReviewFieldConfig, ngaReviewFieldConfig, phlReviewFieldConfig, sgpReviewFieldConfig, thaReviewFieldConfig, twnReviewFieldConfig, zafReviewFieldConfig, };
|
|
15
21
|
export declare const reviewFieldConfigByCountry: Record<string, FormField[]>;
|
|
16
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAmBlE,CAAC"}
|
|
@@ -4,13 +4,19 @@ import { colReviewFieldConfig } from './countries/col.js';
|
|
|
4
4
|
import { defaultReviewFieldConfig } from './countries/default.js';
|
|
5
5
|
import { espReviewFieldConfig } from './countries/esp.js';
|
|
6
6
|
import { gbrReviewFieldConfig } from './countries/gbr.js';
|
|
7
|
+
import { ghaReviewFieldConfig } from './countries/gha.js';
|
|
7
8
|
import { hkgReviewFieldConfig } from './countries/hkg.js';
|
|
8
9
|
import { indReviewFieldConfig } from './countries/ind.js';
|
|
10
|
+
import { kenReviewFieldConfig } from './countries/ken.js';
|
|
9
11
|
import { mexReviewFieldConfig } from './countries/mex.js';
|
|
12
|
+
import { mysReviewFieldConfig } from './countries/mys.js';
|
|
13
|
+
import { ngaReviewFieldConfig } from './countries/nga.js';
|
|
10
14
|
import { phlReviewFieldConfig } from './countries/phl.js';
|
|
15
|
+
import { sgpReviewFieldConfig } from './countries/sgp.js';
|
|
11
16
|
import { thaReviewFieldConfig } from './countries/tha.js';
|
|
12
17
|
import { twnReviewFieldConfig } from './countries/twn.js';
|
|
13
|
-
|
|
18
|
+
import { zafReviewFieldConfig } from './countries/zaf.js';
|
|
19
|
+
export { ausReviewFieldConfig, canReviewFieldConfig, colReviewFieldConfig, defaultReviewFieldConfig, espReviewFieldConfig, gbrReviewFieldConfig, ghaReviewFieldConfig, hkgReviewFieldConfig, indReviewFieldConfig, kenReviewFieldConfig, mexReviewFieldConfig, mysReviewFieldConfig, ngaReviewFieldConfig, phlReviewFieldConfig, sgpReviewFieldConfig, thaReviewFieldConfig, twnReviewFieldConfig, zafReviewFieldConfig, };
|
|
14
20
|
export const reviewFieldConfigByCountry = {
|
|
15
21
|
default: defaultReviewFieldConfig,
|
|
16
22
|
AUS: ausReviewFieldConfig,
|
|
@@ -18,11 +24,17 @@ export const reviewFieldConfigByCountry = {
|
|
|
18
24
|
COL: colReviewFieldConfig,
|
|
19
25
|
ESP: espReviewFieldConfig,
|
|
20
26
|
GBR: gbrReviewFieldConfig,
|
|
27
|
+
GHA: ghaReviewFieldConfig,
|
|
21
28
|
HKG: hkgReviewFieldConfig,
|
|
22
29
|
IND: indReviewFieldConfig,
|
|
30
|
+
KEN: kenReviewFieldConfig,
|
|
23
31
|
MEX: mexReviewFieldConfig,
|
|
32
|
+
MYS: mysReviewFieldConfig,
|
|
33
|
+
NGA: ngaReviewFieldConfig,
|
|
24
34
|
PHL: phlReviewFieldConfig,
|
|
35
|
+
SGP: sgpReviewFieldConfig,
|
|
25
36
|
THA: thaReviewFieldConfig,
|
|
26
37
|
TWN: twnReviewFieldConfig,
|
|
38
|
+
ZAF: zafReviewFieldConfig,
|
|
27
39
|
};
|
|
28
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgC;IACrE,OAAO,EAAE,wBAAwB;IACjC,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;CAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgC;IACrE,OAAO,EAAE,wBAAwB;IACjC,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;CAC1B,CAAC"}
|
package/dist/esm/modules/form/vendors/react/features/Review/fields/national-id.config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"national-id.config.d.ts","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/fields/national-id.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC,eAAe,EAAE,MAAM,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"national-id.config.d.ts","sourceRoot":"","sources":["../../../../../../../../../modules/form/vendors/react/features/Review/fields/national-id.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC,eAAe,EAAE,MAAM,cAAc,CAAC,CAAC;CAujBlE,CAAC"}
|
|
@@ -104,6 +104,218 @@ export const NATIONAL_ID_FIELDS_CONFIG = {
|
|
|
104
104
|
],
|
|
105
105
|
},
|
|
106
106
|
},
|
|
107
|
+
KEN: {
|
|
108
|
+
default: {
|
|
109
|
+
fields: [
|
|
110
|
+
getCountryField(true, 'Document Issuing Country'),
|
|
111
|
+
{
|
|
112
|
+
fieldType: 'input',
|
|
113
|
+
hide: false,
|
|
114
|
+
// text, not number: a 7-digit Kenyan ID number can lead with a
|
|
115
|
+
// zero, which a numeric input would strip.
|
|
116
|
+
dataType: 'text',
|
|
117
|
+
label: 'National ID Number',
|
|
118
|
+
name: 'idNumber',
|
|
119
|
+
rules: {
|
|
120
|
+
required: {
|
|
121
|
+
value: true,
|
|
122
|
+
message: `Please enter your National ID number`,
|
|
123
|
+
},
|
|
124
|
+
// A Kenyan ID card carries TWO numbers: the 7-8 digit national ID
|
|
125
|
+
// number and a 9-digit card serial. GDC matches on the former —
|
|
126
|
+
// `\d{7,8}` in con_gdc.json / doc/gdc-country-guide.md (KE) — and
|
|
127
|
+
// ke-nationalid is the only Kenyan KYC check FrankieOne has.
|
|
128
|
+
//
|
|
129
|
+
// No Incode sample scan for Kenya exists yet, so which OCR key
|
|
130
|
+
// pre-fills this field is unconfirmed and deliberately NOT mapped
|
|
131
|
+
// here (FDEL-52699). If the pre-fill hands it the 9-digit serial,
|
|
132
|
+
// GDC rejects it silently at the connector — exactly the failure
|
|
133
|
+
// Thailand hit when ocr_scanned_document_number held the card
|
|
134
|
+
// serial instead of the citizen ID (FDEL-52332). Failing here
|
|
135
|
+
// instead tells the applicant what to fix.
|
|
136
|
+
pattern: {
|
|
137
|
+
value: '^[0-9]{7,8}$',
|
|
138
|
+
message: `National ID number must be 7 or 8 digits`,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
ZAF: {
|
|
146
|
+
default: {
|
|
147
|
+
fields: [
|
|
148
|
+
getCountryField(true, 'Document Issuing Country'),
|
|
149
|
+
{
|
|
150
|
+
fieldType: 'input',
|
|
151
|
+
hide: false,
|
|
152
|
+
// text, not number: the first six digits of an SA ID number are the
|
|
153
|
+
// date of birth, so every birth from January to September leads with
|
|
154
|
+
// a zero that a numeric input would strip.
|
|
155
|
+
dataType: 'text',
|
|
156
|
+
label: 'South African ID Number',
|
|
157
|
+
name: 'idNumber',
|
|
158
|
+
rules: {
|
|
159
|
+
required: {
|
|
160
|
+
value: true,
|
|
161
|
+
message: `Please enter your South African ID number`,
|
|
162
|
+
},
|
|
163
|
+
// GDC's own rule for ZA is \\d{13} (doc/gdc-country-guide.md, ZA
|
|
164
|
+
// section), and National ID is a *required* match for ZA — Name,
|
|
165
|
+
// Address, DOB and National ID all are.
|
|
166
|
+
//
|
|
167
|
+
// A smart ID card is laser-engraved on the BACK with a card number
|
|
168
|
+
// that is not the identity number. No ZAF Incode sample scan exists
|
|
169
|
+
// yet, so which of the two the OCR pre-fill supplies is unconfirmed
|
|
170
|
+
// and deliberately NOT mapped here (FDEL-52697). If it hands over
|
|
171
|
+
// the card number, GDC rejects it silently at the connector —
|
|
172
|
+
// exactly the failure Thailand hit when ocr_scanned_document_number
|
|
173
|
+
// held the card serial instead of the citizen ID (FDEL-52332).
|
|
174
|
+
// Failing here instead tells the applicant what to fix.
|
|
175
|
+
pattern: {
|
|
176
|
+
value: '^[0-9]{13}$',
|
|
177
|
+
message: `South African ID number must be 13 digits`,
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
GHA: {
|
|
185
|
+
default: {
|
|
186
|
+
fields: [
|
|
187
|
+
getCountryField(true, 'Document Issuing Country'),
|
|
188
|
+
{
|
|
189
|
+
fieldType: 'input',
|
|
190
|
+
hide: false,
|
|
191
|
+
// text, NOT number: the Ghana Card PIN carries a literal "GHA-"
|
|
192
|
+
// prefix and two hyphens, so a numeric input would strip most of it.
|
|
193
|
+
dataType: 'text',
|
|
194
|
+
label: 'Ghana Card Number',
|
|
195
|
+
name: 'idNumber',
|
|
196
|
+
rules: {
|
|
197
|
+
required: {
|
|
198
|
+
value: true,
|
|
199
|
+
message: `Please enter your Ghana Card number`,
|
|
200
|
+
},
|
|
201
|
+
// GDC's own rule for GH is GHA-\d{9}-\d, length 14
|
|
202
|
+
// (doc/gdc-country-guide.md, GH section).
|
|
203
|
+
//
|
|
204
|
+
// Unlike NG, National ID is an OPTIONAL match for GH — GDC
|
|
205
|
+
// requires only Name, Address and DOB — so this number is a bonus
|
|
206
|
+
// match rather than a required one. The pattern is still enforced
|
|
207
|
+
// because a malformed PIN helps nobody: it fails the match
|
|
208
|
+
// silently downstream instead of loudly on the screen.
|
|
209
|
+
//
|
|
210
|
+
// No OCR key is mapped to this field. No Ghanaian Incode sample
|
|
211
|
+
// scan exists, and a Ghana Card prints BOTH this GHA-#########-#
|
|
212
|
+
// personal ID number AND a separate card serial — the same
|
|
213
|
+
// two-number trap a Kenyan card has. Guessing which
|
|
214
|
+
// ocr_scanned_* key carries which is exactly how Thailand shipped
|
|
215
|
+
// a card serial into a check that wanted the citizen ID
|
|
216
|
+
// (FDEL-52332). Same call KEN, ZAF, NGA and MYS made.
|
|
217
|
+
// (FDEL-52700)
|
|
218
|
+
pattern: {
|
|
219
|
+
value: '^GHA-\\d{9}-\\d$',
|
|
220
|
+
message: `Ghana Card number must look like GHA-123456789-0`,
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
NGA: {
|
|
228
|
+
default: {
|
|
229
|
+
fields: [
|
|
230
|
+
getCountryField(true, 'Document Issuing Country'),
|
|
231
|
+
{
|
|
232
|
+
fieldType: 'input',
|
|
233
|
+
hide: false,
|
|
234
|
+
// text, NOT number: a NIN is an 11-digit string and nothing
|
|
235
|
+
// guarantees it does not lead with a zero, which a numeric input
|
|
236
|
+
// would strip.
|
|
237
|
+
dataType: 'text',
|
|
238
|
+
label: 'National Identification Number (NIN)',
|
|
239
|
+
name: 'idNumber',
|
|
240
|
+
rules: {
|
|
241
|
+
required: {
|
|
242
|
+
value: true,
|
|
243
|
+
message: `Please enter your National Identification Number`,
|
|
244
|
+
},
|
|
245
|
+
// GDC's own rule for NG is \d{11} (doc/gdc-country-guide.md, NG
|
|
246
|
+
// section), and National ID is a *required* match for NG — Name,
|
|
247
|
+
// Address, DOB and National ID all are.
|
|
248
|
+
//
|
|
249
|
+
// A BVN is also 11 digits and GDC lists it as an alternative
|
|
250
|
+
// identity document, so this pattern serves either; the label is
|
|
251
|
+
// what steers the applicant to the NIN printed on their card.
|
|
252
|
+
//
|
|
253
|
+
// No OCR key is mapped to this field. No Nigerian Incode sample
|
|
254
|
+
// scan exists, so which ocr_scanned_* key carries the NIN is
|
|
255
|
+
// unconfirmed — and guessing wrong is exactly how Thailand shipped
|
|
256
|
+
// a card serial into a check that wanted the citizen ID
|
|
257
|
+
// (FDEL-52332). Same call KEN, ZAF and MYS made. Rejecting a
|
|
258
|
+
// non-11-digit value here tells the applicant what to fix rather
|
|
259
|
+
// than letting GDC reject it silently at the connector.
|
|
260
|
+
// Spaces are tolerated because a NIN is routinely pasted grouped
|
|
261
|
+
// ("1234 5678 901"); the submit path strips whitespace, so what
|
|
262
|
+
// is persisted and sent to GDC is still bare digits. Length is
|
|
263
|
+
// therefore enforced on the digits, not on the raw string.
|
|
264
|
+
// Hyphens stay rejected — that is not a NIN separator, and
|
|
265
|
+
// accepting one would mask a number from the wrong document.
|
|
266
|
+
pattern: {
|
|
267
|
+
value: '^ *[0-9](?: *[0-9]){10} *$',
|
|
268
|
+
message: `National Identification Number must be 11 digits`,
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
MYS: {
|
|
276
|
+
default: {
|
|
277
|
+
fields: [
|
|
278
|
+
getCountryField(true, 'Negara Pengeluar / Document Issuing Country'),
|
|
279
|
+
{
|
|
280
|
+
fieldType: 'input',
|
|
281
|
+
hide: false,
|
|
282
|
+
// text, NOT number: the first six digits of a MyKad number are the
|
|
283
|
+
// date of birth (YYMMDD), so every applicant born in 2000-2009 leads
|
|
284
|
+
// with a zero that a numeric input would strip.
|
|
285
|
+
dataType: 'text',
|
|
286
|
+
label: 'No. Kad Pengenalan / MyKad Number',
|
|
287
|
+
name: 'idNumber',
|
|
288
|
+
rules: {
|
|
289
|
+
required: {
|
|
290
|
+
value: true,
|
|
291
|
+
message: `Sila masukkan no. Kad Pengenalan anda / Please enter your MyKad number`,
|
|
292
|
+
},
|
|
293
|
+
// Digits only, by the product call on FDEL-52695. The card prints
|
|
294
|
+
// the number grouped 000000-00-0000 and GDC's own MY rule is
|
|
295
|
+
// \d{6}-\d{2}-\d{4}, so a dashed paste is the likely input —
|
|
296
|
+
// rejecting it here tells the applicant what to fix rather than
|
|
297
|
+
// letting a separator reach the check.
|
|
298
|
+
//
|
|
299
|
+
// Confirmed against a real Incode MyKad response (FDEL-52695):
|
|
300
|
+
// ocr_scanned_document_number holds the 12-digit IC, all digits,
|
|
301
|
+
// no separators, and the response carries NO
|
|
302
|
+
// ocr_scanned_personal_number key at all. So Malaysia is not
|
|
303
|
+
// Thailand — document_number IS the identity number here, and the
|
|
304
|
+
// digits-only rule below matches what the scan returns rather than
|
|
305
|
+
// gating on an unverified guess.
|
|
306
|
+
//
|
|
307
|
+
// Which value reaches this field is still the connector's to
|
|
308
|
+
// decide: the model prefills idNumber from the document's own
|
|
309
|
+
// idNumber, not from the OCR key directly. Flagged for QE.
|
|
310
|
+
pattern: {
|
|
311
|
+
value: '^[0-9]{12}$',
|
|
312
|
+
message: `No. Kad Pengenalan mesti 12 digit tanpa sengkang / MyKad number must be 12 digits, no dashes`,
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
},
|
|
318
|
+
},
|
|
107
319
|
HKG: {
|
|
108
320
|
default: {
|
|
109
321
|
fields: [
|
|
@@ -250,6 +462,49 @@ export const NATIONAL_ID_FIELDS_CONFIG = {
|
|
|
250
462
|
],
|
|
251
463
|
},
|
|
252
464
|
},
|
|
465
|
+
SGP: {
|
|
466
|
+
default: {
|
|
467
|
+
fields: [
|
|
468
|
+
getCountryField(true, 'Document Issuing Country'),
|
|
469
|
+
{
|
|
470
|
+
fieldType: 'input',
|
|
471
|
+
hide: false,
|
|
472
|
+
// text, not number: an NRIC is a letter prefix + 7 digits + a
|
|
473
|
+
// check letter (S1234567D), which a numeric input would mangle.
|
|
474
|
+
dataType: 'text',
|
|
475
|
+
// FIN cards carry the F/G/M prefixes of the same format and are
|
|
476
|
+
// issued to the pass holders Eightcap onboards, so the label names
|
|
477
|
+
// both rather than only the citizen/PR document. (FDEL-52696)
|
|
478
|
+
label: 'NRIC / FIN Number',
|
|
479
|
+
name: 'idNumber',
|
|
480
|
+
rules: {
|
|
481
|
+
required: {
|
|
482
|
+
value: true,
|
|
483
|
+
message: `Please enter your NRIC or FIN number`,
|
|
484
|
+
},
|
|
485
|
+
// GDC's own rule for SG is ^[STFGM]\\d{7}[A-Z]$ — con_gdc.json
|
|
486
|
+
// soft_validation_rules.SG, doc/gdc-country-guide.md (SG) — and
|
|
487
|
+
// National ID is a *required* match for SG: Name, Address, DOB
|
|
488
|
+
// and National ID all are.
|
|
489
|
+
//
|
|
490
|
+
// No SGP Incode sample scan exists yet, so which OCR key pre-fills
|
|
491
|
+
// this field is unconfirmed and deliberately NOT mapped here. An
|
|
492
|
+
// NRIC prints only one number (unlike a Thai card, which prints a
|
|
493
|
+
// 14-digit serial alongside the 13-digit citizen ID), so
|
|
494
|
+
// ocr_scanned_document_number is the likely carrier — but that is
|
|
495
|
+
// inference, not evidence. If the pre-fill hands over something
|
|
496
|
+
// else, GDC rejects it silently at the connector, exactly the
|
|
497
|
+
// failure Thailand hit (FDEL-52332). Failing here instead tells
|
|
498
|
+
// the applicant what to fix.
|
|
499
|
+
pattern: {
|
|
500
|
+
value: '^[STFGM][0-9]{7}[A-Z]$',
|
|
501
|
+
message: `NRIC / FIN must look like S1234567D`,
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
},
|
|
505
|
+
],
|
|
506
|
+
},
|
|
507
|
+
},
|
|
253
508
|
PHL: {
|
|
254
509
|
default: {
|
|
255
510
|
fields: [
|