taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 3df4239d7c533f08e77573766bdd22197a0e6358
parent c06e48ba01fa5d37e76dc7e3e1dadbbba6aba974
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed,  8 Jan 2025 15:04:56 -0300

remove duplicated code, some ui tweaks

Diffstat:
Dpackages/aml-backoffice-ui/src/forms/ganaForms.ts | 240-------------------------------------------------------------------------------
Mpackages/aml-backoffice-ui/src/forms/index.ts | 13++++++-------
Dpackages/aml-backoffice-ui/src/forms/taler_aml_attributes.json | 1293-------------------------------------------------------------------------------
Dpackages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts | 1057-------------------------------------------------------------------------------
Mpackages/aml-backoffice-ui/src/pages/CaseDetails.tsx | 110+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mpackages/aml-backoffice-ui/src/pages/MeasuresTable.tsx | 2+-
Mpackages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx | 2+-
7 files changed, 65 insertions(+), 2652 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/forms/ganaForms.ts b/packages/aml-backoffice-ui/src/forms/ganaForms.ts @@ -1,240 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022-2024 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ -import { - DoubleColumnForm, - InternationalizationAPI, - UIFormElementConfig, - UIHandlerId, -} from "@gnu-taler/web-util/browser"; - -import ganaForms from "./taler_aml_attributes.json"; - -type GanaField = { - required: boolean; - section: string; - type: string; - order?: number; - enumeration: string[]; -}; - -type GanaForm = { [fieldName: string]: GanaField | string }; - -type FieldsBySection = { - [section: string]: (UIFormElementConfig & { order?: number })[]; -}; - -export function VQF_902_1(i18n: InternationalizationAPI): DoubleColumnForm { - const fieldsBySections = convertGanaJsonToDoubleColumnFormSection( - ganaForms.VQF_902_1, - converGanaField, - ); - - return { - type: "double-column", - design: [ - { - title: i18n.str`Header`, - fields: fieldsBySections["header"].map((f) => { - if ("disabled" in f) { - f.disabled = true; - } - return f; - }), - }, - { - title: i18n.str`Information`, - description: i18n.str`The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the member act as director of a domiciliary company, this domiciliary company is the customer.`, - fields: fieldsBySections["1"], - }, - { - title: i18n.str`Information on the natural persons who establish the business relationship for legal entities and partnerships`, - description: i18n.str`For legal entities and partnerships the identity of the natural persons who establish the business relationship must be verified.`, - fields: fieldsBySections["2"], - }, - { - title: i18n.str`Acceptance of business relationship`, - fields: fieldsBySections["3"], - }, - { - title: i18n.str`Information on the beneficial owner of the assets and/or controlling person`, - description: i18n.str`Establishment of the beneficial owner of the assets and/or controlling person`, - fields: fieldsBySections["4"], - }, - { - title: i18n.str`Evaluation with regard to embargo procedures/terrorism lists on establishing the business relationship`, - description: i18n.str`Verification whether the customer, beneficial owners of the assets, controlling persons, authorized representatives or other involved persons are listed on an embargo/terrorism list (date of verification/result)`, - fields: fieldsBySections["5"], - }, - ], - }; -} - -function isArrayType(type: string): keyof typeof ganaForms | undefined { - if (!type.endsWith("[]")) return undefined; - return type.substring(0, type.length - 2) as keyof typeof ganaForms; -} - -function isFormType(type: string): keyof typeof ganaForms | undefined { - const start = type.indexOf("<"); - const end = type.indexOf(">"); - - if (start === -1 || end === -1) return undefined; - return type.substring(start + 1, end) as keyof typeof ganaForms; -} - -function converGanaField( - fieldName: string, - fieldInfo: GanaField, -): UIFormElementConfig { - const arrayType = isArrayType(fieldInfo.type); - if (arrayType) { - const ft = isFormType(arrayType); - const containedType = !ft ? arrayType : ft; - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "array", - fields: mergeAllSections( - convertGanaJsonToDoubleColumnFormSection( - ganaForms[containedType], - converGanaField, - ), - ), - labelFieldId: "asd" as UIHandlerId, - }; - } - const formType = isFormType(fieldInfo.type); - if (formType) { - return { - label: fieldName, - type: "group", - fields: mergeAllSections( - convertGanaJsonToDoubleColumnFormSection( - ganaForms[formType] as GanaForm, - converGanaField, - ), - ), - }; - } - - switch (fieldInfo.type) { - case "Boolean": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "toggle", - required: fieldInfo.required, - threeState: false, - }; - } - case "File": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "file", - required: fieldInfo.required, - }; - } - case "String": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "text", - required: fieldInfo.required, - }; - } - case "ResidentialAddress": { - return { - id: fieldName as UIHandlerId, - label: fieldName + "!!!", - type: "text", - required: fieldInfo.required, - }; - } - case "BusinessAddress": { - return { - id: fieldName as UIHandlerId, - label: fieldName + "!!!", - type: "text", - required: fieldInfo.required, - }; - } - case "CountryCode": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "selectOne", - choices: [ - { label: "AR", value: "AR" }, - { label: "DE", value: "DE" }, - ], - required: fieldInfo.required, - }; - } - case "AbsoluteTime": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "absoluteTimeText", - required: fieldInfo.required, - pattern: "dd/MM/yyyy", - }; - } - case "Amount": { - return { - id: fieldName as UIHandlerId, - label: fieldName, - type: "amount", - currency: "asd", - required: fieldInfo.required, - }; - } - default: { - return { - type: "caption", - label: `unkown field type ${fieldInfo.type} for id ${fieldName}`, - }; - } - } -} - -function convertGanaJsonToDoubleColumnFormSection( - form: GanaForm, - convert: (name: string, info: GanaField) => UIFormElementConfig, -): FieldsBySection { - const list = Object.entries(form); - const sections = list.reduce((prev, [key, value]) => { - if (typeof value === "string") { - return prev; - } - if (!prev[value.section]) { - prev[value.section] = []; - } - const d: UIFormElementConfig & { order?: number } = convert(key, value); - d.order = value.order; - prev[value.section].push(d); - return prev; - }, {} as FieldsBySection); - - Object.values(sections).forEach((sec) => { - sec.sort((a, b) => (a.order ?? 0) - (b.order ?? 0)); - }); - return sections; -} - -function mergeAllSections(fields: FieldsBySection): UIFormElementConfig[] { - return Object.values(fields).flatMap((d) => d); -} diff --git a/packages/aml-backoffice-ui/src/forms/index.ts b/packages/aml-backoffice-ui/src/forms/index.ts @@ -18,7 +18,6 @@ import type { InternationalizationAPI, } from "@gnu-taler/web-util/browser"; import { v1 as simplest } from "./simplest.js"; -import { VQF_902_1 } from "./ganaForms.js"; const languages = (i18n: InternationalizationAPI) => [ { @@ -139,12 +138,12 @@ export const preloadedForms: ( id: "__simple_comment", version: 1, config: simplest(i18n), - }, - { - label: i18n.str`Identification form`, - id: "vqf-902-1", - version: 1, - config: VQF_902_1(i18n), + // }, + // { + // label: i18n.str`Identification form`, + // id: "vqf-902-1", + // version: 1, + // config: VQF_902_1(i18n), // }, { // label: i18n.str`Operational legal entity or partnership`, // id: "902.11e", diff --git a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json @@ -1,1292 +0,0 @@ -{ - "VQF_902_1": { - "ACCEPTANCE_ADDITIONAL_INFO": { - "required": false, - "type": "String", - "order": 5, - "enumeration": [], - "section": "3" - }, - "ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE": { - "required": false, - "type": "String", - "order": 3, - "enumeration": [], - "section": "3" - }, - "ACCEPTANCE_DATE": { - "required": false, - "type": "AbsoluteTime", - "order": 1, - "enumeration": [], - "section": "3" - }, - "ACCEPTANCE_LANGUAGE": { - "required": false, - "type": "String", - "order": 4, - "enumeration": [], - "section": "3" - }, - "ACCEPTANCE_METHOD": { - "required": false, - "type": "String", - "order": 2, - "enumeration": [], - "section": "3" - }, - "CUSTOMER_ENTITY_ADDRESS": { - "required": true, - "type": "BusinessAddress", - "order": 14, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_COMPANY_NAME": { - "required": true, - "type": "String", - "order": 13, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_CONTACT_PERSON_NAME": { - "required": false, - "type": "String", - "order": 15, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_EMAIL": { - "required": false, - "type": "String", - "order": 18, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_ID": { - "required": true, - "type": "String", - "order": 19, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_ID_COPY": { - "required": true, - "type": "File", - "order": 20, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ENTITY_PHONE": { - "required": false, - "type": "String", - "order": 17, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "CUSTOMER_NATURAL_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "order": 5, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_COMPANY_ID": { - "required": false, - "type": "String", - "order": 11, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_COMPANY_ID_COPY": { - "required": false, - "type": "File", - "order": 12, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_COMPANY_NAME": { - "required": false, - "type": "String", - "order": 9, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_EMAIL": { - "required": false, - "type": "String", - "order": 4, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_NATIONALITY": { - "required": true, - "type": "CountryCode", - "order": 6, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_NATIONAL_ID": { - "required": true, - "type": "String", - "order": 7, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_NATIONAL_ID_COPY": { - "required": true, - "type": "File", - "order": 8, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_PHONE": { - "required": false, - "type": "String", - "order": 3, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_REGISTERED_OFFICE": { - "required": false, - "type": "String", - "order": 10, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_NATURAL_RESIDENTIAL": { - "required": true, - "type": "ResidentialAddress", - "order": 2, - "enumeration": [], - "section": "1" - }, - "CUSTOMER_TYPE": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "4" - }, - "EMBARGO_TERRORISM_INFO": { - "required": false, - "type": "String", - "order": 2, - "enumeration": [], - "section": "5" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "FOUNDER_LIST": { - "required": true, - "type": "Form<VQF_902_1_founder>[]", - "order": 1, - "enumeration": [], - "section": "2" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "RELATIONSHIP_PURPOSE": { - "required": false, - "type": "String", - "order": 3, - "enumeration": [], - "section": "6" - }, - "RELATIONSHIP_TYPE": { - "required": false, - "type": "String", - "order": 1, - "enumeration": ["MONEY_EXCHANGE","MONEY_ASSET_TRANSFER","OTHER"], - "section": "6" - }, - "RELATIONSHIP_TYPE_OTHER": { - "required": false, - "type": "String", - "order": 2, - "enumeration": [], - "section": "6" - }, -"":""}, - "VQF_902_11": { - "CONTROLLING_ENTITY_CONTRACTING_PARTNER": { - "required": true, - "type": "String", - "enumeration": [], - "section": "1" - }, - "CONTROLLING_ENTITY_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "3" - }, - "CONTROLLING_ENTITY_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "3" - }, - "CONTROLLING_ENTITY_LEVEL": { - "required": true, - "type": "String", - "enumeration": ["25_MORE_RIGHTS","OTHER_WAY","DIRECTOR"], - "section": "2" - }, - "CONTROLLING_ENTITY_THIRD_PERSON": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "4" - }, - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "SIGNATURE": { - "required": true, - "type": "String", - "order": 2, - "enumeration": [], - "section": "footer" - }, - "SIGN_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 1, - "enumeration": [], - "section": "footer" - }, -"":""}, - "VQF_902_12": { - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "FOUNDATION_BENEFICIARY_LIST": { - "required": true, - "type": "Form<VQF_902_12_beneficiary>[]", - "enumeration": [], - "section": "4" - }, - "FOUNDATION_CONTRACTING_PARTNER": { - "required": true, - "type": "String", - "enumeration": [], - "section": "0" - }, - "FOUNDATION_DISCRETIONARY": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "FOUNDATION_FOUNDER_LIST": { - "required": true, - "type": "Form<VQF_902_12_founder>[]", - "enumeration": [], - "section": "2" - }, - "FOUNDATION_KNOWN_AS": { - "required": true, - "type": "String", - "enumeration": [], - "section": "0" - }, - "FOUNDATION_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "1" - }, - "FOUNDATION_PRE_LIST": { - "required": true, - "type": "Form<VQF_902_12_pre>[]", - "enumeration": [], - "section": "3" - }, - "FOUNDATION_REPRESENTATIVE_LIST": { - "required": true, - "type": "Form<VQF_902_12_representative>[]", - "enumeration": [], - "section": "5" - }, - "FOUNDATION_REVOCABLE": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "SIGNATURE": { - "required": true, - "type": "String", - "order": 2, - "enumeration": [], - "section": "footer" - }, - "SIGN_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 1, - "enumeration": [], - "section": "footer" - }, -"":""}, - "VQF_902_12_beneficiary": { - "FOUNDATION_BENEFICIARY_ADDITION": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_BIRTHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_COUNTRY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_DOMICILE": { - "required": false, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_NATIONALITY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM": { - "required": false, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_12_founder": { - "FOUNDATION_FOUNDER_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_FOUNDER_DEATHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_FOUNDER_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "FOUNDATION_FOUNDER_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "" - }, - "FOUNDATION_FOUNDER_NATIONALITY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_FOUNDER_RIGHT_TO_REVOKE": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_12_pre": { - "FOUNDATION_PRE_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_PRE_COUNTRY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_PRE_DEATHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_PRE_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "FOUNDATION_PRE_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "" - }, - "FOUNDATION_PRE_NATIONALITY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_12_representative": { - "FOUNDATION_REPRESENTATIVE_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "FOUNDATION_REPRESENTATIVE_COUNTRY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_REPRESENTATIVE_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "FOUNDATION_REPRESENTATIVE_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "" - }, - "FOUNDATION_REPRESENTATIVE_NATIONALITY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_13": { - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "SIGNATURE": { - "required": true, - "type": "String", - "order": 2, - "enumeration": [], - "section": "footer" - }, - "SIGN_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 1, - "enumeration": [], - "section": "footer" - }, - "TRUST_BENEFICIARY_LIST": { - "required": true, - "type": "Form<VQF_902_13_beneficiary>[]", - "enumeration": [], - "section": "4" - }, - "TRUST_CONTRACTING_PARTNER": { - "required": true, - "type": "String", - "enumeration": [], - "section": "0" - }, - "TRUST_DISCRETIONARY": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "TRUST_KNOWN_AS": { - "required": true, - "type": "String", - "enumeration": [], - "section": "0" - }, - "TRUST_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "1" - }, - "TRUST_PRE_LIST": { - "required": true, - "type": "Form<VQF_902_13_pre>[]", - "enumeration": [], - "section": "3" - }, - "TRUST_PROTECTOR_LIST": { - "required": true, - "type": "Form<VQF_902_13_protector>[]", - "enumeration": [], - "section": "5" - }, - "TRUST_REVOCABLE": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "TRUST_SETTLOR_LIST": { - "required": true, - "type": "Form<VQF_902_13_settlor>[]", - "enumeration": [], - "section": "2" - }, -"":""}, - "VQF_902_13_beneficiary": { - "TRUST_BENEFICIARY_ADDITION": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_BIRTHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_COUNTRY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_DOMICILE": { - "required": false, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_NATIONALITY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_BENEFICIARY_RIGHT_TO_CLAIM": { - "required": false, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_13_further": { - "TRUST_FURTHER_BIRTHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_FURTHER_COUNTRY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_FURTHER_DOMICILE": { - "required": false, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "TRUST_FURTHER_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_FURTHER_LIST": { - "required": true, - "type": "Form<VQF_902_13_further>[]", - "enumeration": [], - "section": "5" - }, - "TRUST_FURTHER_NATIONALITY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_FURTHER_RIGHT_TO_REVOKE": { - "required": false, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_13_pre": { - "TRUST_PRE_BIRTHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_PRE_COUNTRY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_PRE_DEATHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_PRE_DOMICILE": { - "required": false, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "TRUST_PRE_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_PRE_NATIONALITY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_13_protector": { - "TRUST_PROTECTOR_BIRTHDATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_PROTECTOR_COUNTRY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_PROTECTOR_DOMICILE": { - "required": false, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "TRUST_PROTECTOR_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_PROTECTOR_NATIONALITY": { - "required": false, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_PROTECTOR_RIGHT_TO_REVOKE": { - "required": false, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_13_settlor": { - "TRUST_SETTLOR_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_SETTLOR_DEATHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "TRUST_SETTLOR_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "TRUST_SETTLOR_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "" - }, - "TRUST_SETTLOR_NATIONALITY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, - "TRUST_SETTLOR_RIGHT_TO_REVOKE": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_14": { - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "INCRISK_DOCUMENTS": { - "required": true, - "type": "File[]", - "enumeration": [], - "section": "3" - }, - "INCRISK_MEANS": { - "required": true, - "type": "String", - "enumeration": ["GATHERING","CONSULTATION","ENQUIRIES","OTHER"], - "section": "2" - }, - "INCRISK_MEANS_OTHER": { - "required": false, - "type": "String", - "enumeration": [], - "section": "2" - }, - "INCRISK_REASON": { - "required": true, - "type": "String", - "enumeration": [], - "section": "1" - }, - "INCRISK_RESULT": { - "required": true, - "type": "String", - "enumeration": ["NO_SUSPICION","REASONABLE_SUSPICION","SIMPLE_SUSPICION","OTHER"], - "section": "4" - }, - "INCRISK_RESULT_OTHER": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "INCRISK_SUMMARY": { - "required": true, - "type": "String", - "enumeration": [], - "section": "3" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, -"":""}, - "VQF_902_1_founder": { - "FOUNDER_AUTHORIZATION_TYPE": { - "required": true, - "type": "String", - "order": 4, - "enumeration": [], - "section": "2" - }, - "FOUNDER_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "" - }, - "FOUNDER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "" - }, - "FOUNDER_NATIONALITY": { - "required": true, - "type": "CountryCode", - "order": 3, - "enumeration": [], - "section": "" - }, - "FOUNDER_NATIONAL_ID": { - "required": true, - "type": "String", - "order": 5, - "enumeration": [], - "section": "" - }, - "FOUNDER_POWER_OF_ATTORNEY": { - "required": true, - "type": "String", - "order": 6, - "enumeration": ["CR","MANDATE","OTHER"], - "section": "" - }, - "FOUNDER_POWER_OF_ATTORNEY_OTHER": { - "required": false, - "type": "String", - "order": 7, - "enumeration": [], - "section": "" - }, - "FOUNDER_RESIDENTIAL_ADDRESS": { - "required": true, - "type": "ResidentialAddress", - "order": 1, - "enumeration": [], - "section": "" - }, -"":""}, - "VQF_902_4": { - "CONTACT_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["LOW","MEDIUM","HIGH"], - "section": "3" - }, - "COUNTRY_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["LOW","MEDIUM","HIGH"], - "section": "3" - }, - "COUNTRY_RISK_TYPE": { - "required": false, - "type": "String", - "enumeration": ["NATIONALITY_CUSTOMER","NATIONALITY_OWNER","DOMICILE_CUSTOMER","DOMICILE_OWNER","DOMICILE_CONTROLLING","BUSINESS_ACTIVITY","PAYMENTS"], - "section": "3" - }, - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "EXTRA_CRITERA_1_RISK_DEFINITION": { - "required": false, - "type": "String", - "enumeration": [], - "section": "3" - }, - "EXTRA_CRITERA_1_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["LOW","MEDIUM","HIGH"], - "section": "3" - }, - "EXTRA_CRITERA_2_RISK_DEFINITION": { - "required": false, - "type": "String", - "enumeration": [], - "section": "3" - }, - "EXTRA_CRITERA_2_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["LOW","MEDIUM","HIGH"], - "section": "3" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "HIGH_RISK_COUNTRY": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "2" - }, - "HIGH_RISK__ACCEPTANCE_DATE": { - "required": false, - "type": "String", - "enumeration": [], - "section": "2" - }, - "INDUSTRY_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["TRANSPARENT","HIGH_CASH_TRANSACTION","NOT_WELL_KNOWN","HIGH_RISK_TRADE","UNKNOWN_INDUSTRY"], - "section": "3" - }, - "INDUSTRY_RISK_TYPE": { - "required": false, - "type": "String", - "enumeration": ["CUSTOMER","OWNER"], - "section": "3" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "PEP_ACCEPTANCE_DATE": { - "required": false, - "type": "AbsoluteTime", - "enumeration": [], - "section": "1" - }, - "PEP_DOMESTIC": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "PEP_FOREIGN": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "PEP_INTERNATIONAL_ORGANIZATION": { - "required": true, - "type": "Boolean", - "enumeration": [], - "section": "1" - }, - "PRODUCT_RISK_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["EASY","SOPHISTICATED","OFFSHORE,","COMPLEX_STRUCTURE","LARGE_NUMBER_OF_ACCOUNTS","COMPLEX_SERVICE","FREQ_TRANS_WITH_HIGH_RISK"], - "section": "3" - }, - "RISK_CLASIFICATION_ACCEPTANCE_DATE": { - "required": false, - "type": "String", - "enumeration": [], - "section": "3" - }, - "RISK_CLASIFICATION_LEVEL": { - "required": false, - "type": "String", - "enumeration": ["WITH","WITHOUT"], - "section": "3" - }, -"":""}, - "VQF_902_5": { - "BIZREL_DEVELOPMENT": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS": { - "required": false, - "type": "BusinessAddress", - "enumeration": [], - "section": "4" - }, - "BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "BIZREL_FINANCIAL_VOLUME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "BIZREL_FURTHER_INFO": { - "required": false, - "type": "String", - "enumeration": [], - "section": "6" - }, - "BIZREL_INCOME": { - "required": false, - "type": "String", - "enumeration": [], - "section": "2" - }, - "BIZREL_ORIGIN_AMOUNT": { - "required": true, - "type": "Amount", - "enumeration": [], - "section": "3" - }, - "BIZREL_ORIGIN_CATEGORY": { - "required": true, - "type": "String", - "enumeration": ["SAVINGS","OWN_BUSINESS","INHERITANCE","OTHER"], - "section": "3" - }, - "BIZREL_ORIGIN_CATEGORY_OTHER": { - "required": false, - "type": "String", - "enumeration": [], - "section": "3" - }, - "BIZREL_ORIGIN_DETAIL": { - "required": false, - "type": "String", - "enumeration": [], - "section": "3" - }, - "BIZREL_PROFESSION": { - "required": false, - "type": "String", - "enumeration": [], - "section": "1" - }, - "BIZREL_PURPOSE": { - "required": false, - "type": "String", - "enumeration": [], - "section": "4" - }, - "BIZREL_THIRDPARTY_AMLA_FILES": { - "required": false, - "type": "String", - "enumeration": [], - "section": "5" - }, - "BIZREL_THIRDPARTY_REFERENCES": { - "required": false, - "type": "String", - "enumeration": [], - "section": "5" - }, - "BIZREL_THIRDPARTY_RELATIONSHIP": { - "required": false, - "type": "String", - "enumeration": [], - "section": "5" - }, - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, -"":""}, - "VQF_902_9": { - "CUSTOMER_ID": { - "required": true, - "type": "String", - "order": 3, - "enumeration": [], - "section": "header" - }, - "FORM_FILLING_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 2, - "enumeration": [], - "section": "header" - }, - "IDENTITY_CONTRACTING_PARTNER": { - "required": true, - "type": "String", - "enumeration": [], - "section": "1" - }, - "IDENTITY_LIST": { - "required": false, - "type": "Form<VQF_902_9_identity>[]", - "enumeration": [], - "section": "2" - }, - "OFFICER_FULL_NAME": { - "required": true, - "type": "String", - "order": 1, - "enumeration": [], - "section": "header" - }, - "SIGNATURE": { - "required": true, - "type": "String", - "order": 2, - "enumeration": [], - "section": "footer" - }, - "SIGN_DATE": { - "required": true, - "type": "AbsoluteTime", - "order": 1, - "enumeration": [], - "section": "footer" - }, -"":""}, - "VQF_902_9_identity": { - "IDENTITY_BIRTHDATE": { - "required": true, - "type": "AbsoluteTime", - "enumeration": [], - "section": "" - }, - "IDENTITY_DOMICILE": { - "required": true, - "type": "ResidentialAddress", - "enumeration": [], - "section": "" - }, - "IDENTITY_FULL_NAME": { - "required": true, - "type": "String", - "enumeration": [], - "section": "" - }, - "IDENTITY_NATIONALITY": { - "required": true, - "type": "CountryCode", - "enumeration": [], - "section": "" - }, -"":""}, -"":""} -\ No newline at end of file diff --git a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts @@ -1,1057 +0,0 @@ -/* - This file is part of GNU Taler - Copyright (C) 2012-2020 Taler Systems SA - - GNU Taler is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3 of the License, - or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - - SPDX-License-Identifier: LGPL3.0-or-later - - Note: the LGPL does not apply to all components of GNU Taler, - but it does apply to this file. - */ - -type AbsoluteTime = string; -type CountryCode = string; -type Amount = string; -type ResidentialAddress = string; -type BusinessAddress = string; -type Form<T> = T - -export namespace TalerAmlAttributes { - export interface VQF_902_1 { - /** - * - * Required: - */ - ACCEPTANCE_ADDITIONAL_INFO: String; - /** - * - * Required: - */ - ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE: String; - /** - * - * Required: - */ - ACCEPTANCE_DATE: AbsoluteTime; - /** - * - * Required: - */ - ACCEPTANCE_LANGUAGE: String; - /** - * - * Required: - */ - ACCEPTANCE_METHOD: String; - /** - * - * Required: true - */ - CUSTOMER_ENTITY_ADDRESS: BusinessAddress; - /** - * - * Required: true - */ - CUSTOMER_ENTITY_COMPANY_NAME: String; - /** - * - * Required: - */ - CUSTOMER_ENTITY_CONTACT_PERSON_NAME: String; - /** - * - * Required: - */ - CUSTOMER_ENTITY_EMAIL: String; - /** - * - * Required: true - */ - CUSTOMER_ENTITY_ID: String; - /** - * - * Required: true - */ - CUSTOMER_ENTITY_ID_COPY: File; - /** - * - * Required: - */ - CUSTOMER_ENTITY_PHONE: String; - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - CUSTOMER_NATURAL_COMPANY_ID: String; - /** - * - * Required: - */ - CUSTOMER_NATURAL_COMPANY_ID_COPY: File; - /** - * - * Required: - */ - CUSTOMER_NATURAL_COMPANY_NAME: String; - /** - * - * Required: - */ - CUSTOMER_NATURAL_EMAIL: String; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_FULL_NAME: String; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_NATIONALITY: CountryCode; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_NATIONAL_ID: String; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_NATIONAL_ID_COPY: File; - /** - * - * Required: - */ - CUSTOMER_NATURAL_PHONE: String; - /** - * - * Required: - */ - CUSTOMER_NATURAL_REGISTERED_OFFICE: String; - /** - * - * Required: true - */ - CUSTOMER_NATURAL_RESIDENTIAL: ResidentialAddress; - /** - * - * Required: true - */ - CUSTOMER_TYPE: String; - /** - * - * Required: - */ - EMBARGO_TERRORISM_INFO: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDER_LIST: Form<VQF_902_1_founder>[]; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: - */ - RELATIONSHIP_PURPOSE: String; - /** - * - * Required: - */ - RELATIONSHIP_TYPE: String; - /** - * - * Required: - */ - RELATIONSHIP_TYPE_OTHER: String; - } - export interface VQF_902_11 { - /** - * - * Required: true - */ - CONTROLLING_ENTITY_CONTRACTING_PARTNER: String; - /** - * - * Required: true - */ - CONTROLLING_ENTITY_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - CONTROLLING_ENTITY_FULL_NAME: String; - /** - * - * Required: true - */ - CONTROLLING_ENTITY_LEVEL: String; - /** - * - * Required: true - */ - CONTROLLING_ENTITY_THIRD_PERSON: Boolean; - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: true - */ - SIGNATURE: String; - /** - * - * Required: true - */ - SIGN_DATE: AbsoluteTime; - } - export interface VQF_902_12 { - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_BENEFICIARY_LIST: Form<VQF_902_12_beneficiary>[]; - /** - * - * Required: true - */ - FOUNDATION_CONTRACTING_PARTNER: String; - /** - * - * Required: true - */ - FOUNDATION_DISCRETIONARY: Boolean; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_LIST: Form<VQF_902_12_founder>[]; - /** - * - * Required: true - */ - FOUNDATION_KNOWN_AS: String; - /** - * - * Required: true - */ - FOUNDATION_NAME: String; - /** - * - * Required: true - */ - FOUNDATION_PRE_LIST: Form<VQF_902_12_pre>[]; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_LIST: Form<VQF_902_12_representative>[]; - /** - * - * Required: true - */ - FOUNDATION_REVOCABLE: Boolean; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: true - */ - SIGNATURE: String; - /** - * - * Required: true - */ - SIGN_DATE: AbsoluteTime; - } - export interface VQF_902_12_beneficiary { - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_ADDITION: String; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_COUNTRY: CountryCode; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_DOMICILE: ResidentialAddress; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_FULL_NAME: String; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_NATIONALITY: CountryCode; - /** - * - * Required: - */ - FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM: Boolean; - } - export interface VQF_902_12_founder { - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_DEATHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_FULL_NAME: String; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_NATIONALITY: CountryCode; - /** - * - * Required: true - */ - FOUNDATION_FOUNDER_RIGHT_TO_REVOKE: Boolean; - } - export interface VQF_902_12_pre { - /** - * - * Required: true - */ - FOUNDATION_PRE_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_PRE_COUNTRY: CountryCode; - /** - * - * Required: true - */ - FOUNDATION_PRE_DEATHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_PRE_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - FOUNDATION_PRE_FULL_NAME: String; - /** - * - * Required: true - */ - FOUNDATION_PRE_NATIONALITY: CountryCode; - } - export interface VQF_902_12_representative { - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_COUNTRY: CountryCode; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_FULL_NAME: String; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_NATIONALITY: CountryCode; - /** - * - * Required: true - */ - FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE: Boolean; - } - export interface VQF_902_13 { - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: true - */ - SIGNATURE: String; - /** - * - * Required: true - */ - SIGN_DATE: AbsoluteTime; - /** - * - * Required: true - */ - TRUST_BENEFICIARY_LIST: Form<VQF_902_13_beneficiary>[]; - /** - * - * Required: true - */ - TRUST_CONTRACTING_PARTNER: String; - /** - * - * Required: true - */ - TRUST_DISCRETIONARY: Boolean; - /** - * - * Required: true - */ - TRUST_KNOWN_AS: String; - /** - * - * Required: true - */ - TRUST_NAME: String; - /** - * - * Required: true - */ - TRUST_PRE_LIST: Form<VQF_902_13_pre>[]; - /** - * - * Required: true - */ - TRUST_PROTECTOR_LIST: Form<VQF_902_13_protector>[]; - /** - * - * Required: true - */ - TRUST_REVOCABLE: Boolean; - /** - * - * Required: true - */ - TRUST_SETTLOR_LIST: Form<VQF_902_13_settlor>[]; - } - export interface VQF_902_13_beneficiary { - /** - * - * Required: - */ - TRUST_BENEFICIARY_ADDITION: String; - /** - * - * Required: - */ - TRUST_BENEFICIARY_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - TRUST_BENEFICIARY_COUNTRY: CountryCode; - /** - * - * Required: - */ - TRUST_BENEFICIARY_DOMICILE: ResidentialAddress; - /** - * - * Required: - */ - TRUST_BENEFICIARY_FULL_NAME: String; - /** - * - * Required: - */ - TRUST_BENEFICIARY_NATIONALITY: CountryCode; - /** - * - * Required: - */ - TRUST_BENEFICIARY_RIGHT_TO_CLAIM: Boolean; - } - export interface VQF_902_13_further { - /** - * - * Required: - */ - TRUST_FURTHER_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - TRUST_FURTHER_COUNTRY: CountryCode; - /** - * - * Required: - */ - TRUST_FURTHER_DOMICILE: ResidentialAddress; - /** - * - * Required: - */ - TRUST_FURTHER_FULL_NAME: String; - /** - * - * Required: true - */ - TRUST_FURTHER_LIST: Form<VQF_902_13_further>[]; - /** - * - * Required: - */ - TRUST_FURTHER_NATIONALITY: CountryCode; - /** - * - * Required: - */ - TRUST_FURTHER_RIGHT_TO_REVOKE: Boolean; - } - export interface VQF_902_13_pre { - /** - * - * Required: - */ - TRUST_PRE_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - TRUST_PRE_COUNTRY: CountryCode; - /** - * - * Required: - */ - TRUST_PRE_DEATHDATE: AbsoluteTime; - /** - * - * Required: - */ - TRUST_PRE_DOMICILE: ResidentialAddress; - /** - * - * Required: - */ - TRUST_PRE_FULL_NAME: String; - /** - * - * Required: - */ - TRUST_PRE_NATIONALITY: CountryCode; - } - export interface VQF_902_13_protector { - /** - * - * Required: - */ - TRUST_PROTECTOR_BIRTHDATE: AbsoluteTime; - /** - * - * Required: - */ - TRUST_PROTECTOR_COUNTRY: CountryCode; - /** - * - * Required: - */ - TRUST_PROTECTOR_DOMICILE: ResidentialAddress; - /** - * - * Required: - */ - TRUST_PROTECTOR_FULL_NAME: String; - /** - * - * Required: - */ - TRUST_PROTECTOR_NATIONALITY: CountryCode; - /** - * - * Required: - */ - TRUST_PROTECTOR_RIGHT_TO_REVOKE: Boolean; - } - export interface VQF_902_13_settlor { - /** - * - * Required: true - */ - TRUST_SETTLOR_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - TRUST_SETTLOR_DEATHDATE: AbsoluteTime; - /** - * - * Required: true - */ - TRUST_SETTLOR_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - TRUST_SETTLOR_FULL_NAME: String; - /** - * - * Required: true - */ - TRUST_SETTLOR_NATIONALITY: CountryCode; - /** - * - * Required: true - */ - TRUST_SETTLOR_RIGHT_TO_REVOKE: Boolean; - } - export interface VQF_902_14 { - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - INCRISK_DOCUMENTS: File[]; - /** - * - * Required: true - */ - INCRISK_MEANS: String; - /** - * - * Required: - */ - INCRISK_MEANS_OTHER: String; - /** - * - * Required: true - */ - INCRISK_REASON: String; - /** - * - * Required: true - */ - INCRISK_RESULT: String; - /** - * - * Required: - */ - INCRISK_RESULT_OTHER: String; - /** - * - * Required: true - */ - INCRISK_SUMMARY: String; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - } - export interface VQF_902_1_founder { - /** - * - * Required: true - */ - FOUNDER_AUTHORIZATION_TYPE: String; - /** - * - * Required: true - */ - FOUNDER_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - FOUNDER_FULL_NAME: String; - /** - * - * Required: true - */ - FOUNDER_NATIONALITY: CountryCode; - /** - * - * Required: true - */ - FOUNDER_NATIONAL_ID: String; - /** - * - * Required: true - */ - FOUNDER_POWER_OF_ATTORNEY: String; - /** - * - * Required: - */ - FOUNDER_POWER_OF_ATTORNEY_OTHER: String; - /** - * - * Required: true - */ - FOUNDER_RESIDENTIAL_ADDRESS: ResidentialAddress; - } - export interface VQF_902_4 { - /** - * - * Required: - */ - CONTACT_RISK_LEVEL: String; - /** - * - * Required: - */ - COUNTRY_RISK_LEVEL: String; - /** - * - * Required: - */ - COUNTRY_RISK_TYPE: String; - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: - */ - EXTRA_CRITERA_1_RISK_DEFINITION: String; - /** - * - * Required: - */ - EXTRA_CRITERA_1_RISK_LEVEL: String; - /** - * - * Required: - */ - EXTRA_CRITERA_2_RISK_DEFINITION: String; - /** - * - * Required: - */ - EXTRA_CRITERA_2_RISK_LEVEL: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - HIGH_RISK_COUNTRY: Boolean; - /** - * - * Required: - */ - HIGH_RISK__ACCEPTANCE_DATE: String; - /** - * - * Required: - */ - INDUSTRY_RISK_LEVEL: String; - /** - * - * Required: - */ - INDUSTRY_RISK_TYPE: String; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: - */ - PEP_ACCEPTANCE_DATE: AbsoluteTime; - /** - * - * Required: true - */ - PEP_DOMESTIC: Boolean; - /** - * - * Required: true - */ - PEP_FOREIGN: Boolean; - /** - * - * Required: true - */ - PEP_INTERNATIONAL_ORGANIZATION: Boolean; - /** - * - * Required: - */ - PRODUCT_RISK_LEVEL: String; - /** - * - * Required: - */ - RISK_CLASIFICATION_ACCEPTANCE_DATE: String; - /** - * - * Required: - */ - RISK_CLASIFICATION_LEVEL: String; - } - export interface VQF_902_5 { - /** - * - * Required: - */ - BIZREL_DEVELOPMENT: String; - /** - * - * Required: - */ - BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS: BusinessAddress; - /** - * - * Required: - */ - BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT: String; - /** - * - * Required: - */ - BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME: String; - /** - * - * Required: - */ - BIZREL_FINANCIAL_VOLUME: String; - /** - * - * Required: - */ - BIZREL_FURTHER_INFO: String; - /** - * - * Required: - */ - BIZREL_INCOME: String; - /** - * - * Required: true - */ - BIZREL_ORIGIN_AMOUNT: Amount; - /** - * - * Required: true - */ - BIZREL_ORIGIN_CATEGORY: String; - /** - * - * Required: - */ - BIZREL_ORIGIN_CATEGORY_OTHER: String; - /** - * - * Required: - */ - BIZREL_ORIGIN_DETAIL: String; - /** - * - * Required: - */ - BIZREL_PROFESSION: String; - /** - * - * Required: - */ - BIZREL_PURPOSE: String; - /** - * - * Required: - */ - BIZREL_THIRDPARTY_AMLA_FILES: String; - /** - * - * Required: - */ - BIZREL_THIRDPARTY_REFERENCES: String; - /** - * - * Required: - */ - BIZREL_THIRDPARTY_RELATIONSHIP: String; - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - } - export interface VQF_902_9 { - /** - * - * Required: true - */ - CUSTOMER_ID: String; - /** - * - * Required: true - */ - FORM_FILLING_DATE: AbsoluteTime; - /** - * - * Required: true - */ - IDENTITY_CONTRACTING_PARTNER: String; - /** - * - * Required: - */ - IDENTITY_LIST: Form<VQF_902_9_identity>[]; - /** - * - * Required: true - */ - OFFICER_FULL_NAME: String; - /** - * - * Required: true - */ - SIGNATURE: String; - /** - * - * Required: true - */ - SIGN_DATE: AbsoluteTime; - } - export interface VQF_902_9_identity { - /** - * - * Required: true - */ - IDENTITY_BIRTHDATE: AbsoluteTime; - /** - * - * Required: true - */ - IDENTITY_DOMICILE: ResidentialAddress; - /** - * - * Required: true - */ - IDENTITY_FULL_NAME: String; - /** - * - * Required: true - */ - IDENTITY_NATIONALITY: CountryCode; - } - - -} diff --git a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx @@ -295,25 +295,8 @@ export function CaseDetails({ ); } - return ( - <div class="min-w-60"> - <header class="flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8"> - <h1 class="text-base font-semibold leading-7 text-black"> - <i18n.Translate>Case history for account: </i18n.Translate> - </h1> - <div>{account}</div> - <CopyButton class="" getContent={() => account} /> - </header> - - {!activeDecision || !activeDecision.to_investigate ? undefined : ( - <Attention title={i18n.str`Under investigation`} type="warning"> - <i18n.Translate> - This account requires a manual review and is waiting for a decision - to be made. - </i18n.Translate> - </Attention> - )} - + function ShortcutActionButtons(): VNode { + return ( <div> <button onClick={async () => { @@ -435,6 +418,51 @@ export function CaseDetails({ <i18n.Translate>Set predefined measure</i18n.Translate> </button> </div> + ); + } + + return ( + <div class="min-w-60"> + <header class="flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8"> + <h1 class="text-base font-semibold leading-7 text-black"> + <i18n.Translate>Case history for account: </i18n.Translate> + </h1> + <div>{account}</div> + <CopyButton class="" getContent={() => account} /> + </header> + + {!activeDecision || !activeDecision.to_investigate ? undefined : ( + <Attention title={i18n.str`Under investigation`} type="warning"> + <i18n.Translate> + This account requires a manual review and is waiting for a decision + to be made. + </i18n.Translate> + </Attention> + )} + + <ShortcutActionButtons /> + + {selected && <ShowConsolidated history={events} until={selected} />} + <div class="p-4"> + <h1 class="text-base font-semibold leading-6 text-black"> + <i18n.Translate>Collected information</i18n.Translate> + </h1> + <p class="mt-1 text-sm leading-6 text-gray-600"> + <i18n.Translate> + Every event when the user was asked information. + </i18n.Translate> + </p> + </div> + {events.length === 0 ? ( + <Attention title={i18n.str`The event list is empty`} type="warning" /> + ) : ( + <ShowTimeline + history={events} + onSelect={(time) => { + setSelected(time); + }} + /> + )} {!activeDecision ? ( <Attention title={i18n.str`No active rules found`} type="warning" /> @@ -456,28 +484,6 @@ export function CaseDetails({ /> </div> )} - <div class="px-4 sm:px-0"> - <h1 class="text-base font-semibold leading-6 text-black"> - <i18n.Translate>KYC collection events</i18n.Translate> - </h1> - <p class="mt-1 text-sm leading-6 text-gray-600"> - <i18n.Translate> - Every event when the user was asked information. - </i18n.Translate> - </p> - </div> - {events.length === 0 ? ( - <Attention title={i18n.str`The event list is empty`} type="warning" /> - ) : ( - <ShowTimeline - history={events} - onSelect={(time) => { - setSelected(time); - }} - /> - )} - {/* {selected && <ShowEventDetails event={selected} />} */} - {selected && <ShowConsolidated history={events} until={selected} />} {restDecisions.length > 0 ? ( <div class="my-4 grid gap-y-4"> <h1 class="text-base font-semibold leading-6 text-black"> @@ -706,10 +712,12 @@ function SubmitNewDecision({ <i18n.Translate>New rules to submit</i18n.Translate> </h1> - <ShowMesaureInfo - nextMeasures={separateMeasures(decision.request.new_measures)} - customMeasure={decision.request.new_rules.custom_measures} - /> + <div class="my-2"> + <ShowMesaureInfo + nextMeasures={separateMeasures(decision.request.new_measures)} + customMeasure={decision.request.new_rules.custom_measures} + /> + </div> <ShowDecisionLimitInfo fixed @@ -797,11 +805,7 @@ function ShowMesaureInfo({ const filteredMeasures = nextMeasures.filter((n) => !!n.length); if (!filteredMeasures.length) { - return ( - <div> - <i18n.Translate>no new measure</i18n.Translate> - </div> - ); + return <Fragment />; } if (filteredMeasures.length === 1) { const measurePath = filteredMeasures[0]; @@ -811,7 +815,7 @@ function ShowMesaureInfo({ return ( <div> <i18n.Translate> - the user needs to complete this measure + The customer needs to complete this measure </i18n.Translate> <CurrentMeasureTable list={[m]} /> </div> @@ -820,7 +824,7 @@ function ShowMesaureInfo({ return ( <div> <i18n.Translate> - the user needs to complete all of these measures + The customer needs to complete all of these measures </i18n.Translate> <CurrentMeasureTable list={measurePath.map((name) => map[name])} /> </div> @@ -830,7 +834,7 @@ function ShowMesaureInfo({ return ( <div> <i18n.Translate> - the user has more than one option with different measures to complete. + The user has more than one option with different measures to complete. For any options, if there is more than one measure then the user will need to complete all the measures. </i18n.Translate> diff --git a/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx b/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx @@ -35,7 +35,7 @@ export function CurrentMeasureTable({ }): VNode { const { i18n } = useTranslationContext(); return ( - <div class="mt-8 flow-root"> + <div class="mt-4 flow-root"> <div class="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8"> <div class="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8"> <div class="overflow-hidden shadow ring-1 ring-black/5 sm:rounded-lg"> diff --git a/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx b/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx @@ -72,7 +72,7 @@ export function ShowConsolidated({ Object.entries(fixed).length > 0 ? [ { - title: i18n.str`KYC collected info`, + title: i18n.str`Collected information`, description: until.t_ms === "never" ? undefined