taler-typescript-core

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

commit 3a2ac2ea4b14f7815ad29cfef3d5826766fbd5ad
parent bff90a241375a33c4450d10ee78de75a6a4dda82
Author: Florian Dold <florian@dold.me>
Date:   Sat, 22 Mar 2025 20:31:47 +0100

forms WIP

Diffstat:
Mpackages/aml-backoffice-ui/src/forms/index.ts | 7-------
Mpackages/aml-backoffice-ui/src/pages/decision/Information.tsx | 10+++-------
Mpackages/aml-backoffice-ui/src/pages/decision/Properties.tsx | 23+++++++++++------------
Mpackages/aml-backoffice-ui/src/pages/decision/aml-events.ts | 58+++++++++++++++-------------------------------------------
Mpackages/aml-backoffice-ui/src/pages/decision/aml-properties.ts | 50+++++++++++++-------------------------------------
Mpackages/kyc-ui/src/forms/index.ts | 8+-------
Mpackages/web-util/src/forms/forms-ui.tsx | 8+++++---
Mpackages/web-util/src/forms/gana/GLS_Onboarding.ts | 94++++++++++++++++++++++++++++++-------------------------------------------------
Mpackages/web-util/src/forms/gana/VQF_902_11.stories.tsx | 4++--
Mpackages/web-util/src/forms/gana/VQF_902_11.ts | 22+++++++++-------------
Dpackages/web-util/src/forms/gana/VQF_902_12.stories.tsx | 41-----------------------------------------
Dpackages/web-util/src/forms/gana/VQF_902_12.ts | 372-------------------------------------------------------------------------------
Mpackages/web-util/src/forms/gana/VQF_902_14.stories.tsx | 4++--
Mpackages/web-util/src/forms/gana/VQF_902_14.ts | 27++++++++++-----------------
Mpackages/web-util/src/forms/gana/VQF_902_1_customer.ts | 181+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Mpackages/web-util/src/forms/gana/VQF_902_1_officer.ts | 23++++++++++-------------
Mpackages/web-util/src/forms/gana/VQF_902_4.ts | 87++++++++++++++++++-------------------------------------------------------------
Mpackages/web-util/src/forms/gana/VQF_902_5.ts | 48++++++++++++++++++------------------------------
Mpackages/web-util/src/forms/gana/VQF_902_9.stories.tsx | 6+++---
Mpackages/web-util/src/forms/gana/VQF_902_9.ts | 22+++++++++-------------
Mpackages/web-util/src/forms/gana/index.stories.ts | 5++---
Apackages/web-util/src/forms/gana/taler_aml_properties.ts | 32++++++++++++++++++++++++++++++++
Mpackages/web-util/src/forms/gana/taler_form_attributes.ts | 2213+++++++++++++++++++++----------------------------------------------------------
Mpackages/web-util/src/forms/index.ts | 32++++++++++++++++----------------
Mpackages/web-util/src/hooks/useForm.ts | 2+-
25 files changed, 931 insertions(+), 2448 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/forms/index.ts b/packages/aml-backoffice-ui/src/forms/index.ts @@ -15,7 +15,6 @@ */ import { VQF_902_11, - VQF_902_12, VQF_902_14, VQF_902_1_customer, VQF_902_1_officer, @@ -188,12 +187,6 @@ export const preloadedForms: ( config: VQF_902_11(i18n), }, { - label: i18n.str`Foundations (as well as similar constructs) (S)`, - id: "vqf_902_12", - version: 1, - config: VQF_902_12(i18n), - }, - { label: i18n.str`Special Clarifications`, description: i18n.str`When a business relationship or transaction is associated with increased risk, appears unusual or evidence exists that the assets are the proceeds of a felony or a qualified tax offence, the member has to perform additional clarifications.`, id: "vqf_902_14", diff --git a/packages/aml-backoffice-ui/src/pages/decision/Information.tsx b/packages/aml-backoffice-ui/src/pages/decision/Information.tsx @@ -1,4 +1,3 @@ -import { AbsoluteTime, Duration } from "@gnu-taler/taler-util"; import { ErrorsSummary, FormDesign, @@ -68,11 +67,8 @@ function FillCustomerData({ theForm: FormMetadata; changeForm: () => void; }): VNode { - const [request, _, updateRequest] = useCurrentDecisionRequest(); - const [expiration, setExpiration] = useState( - request.attributes?.expiration, - ); + const [expiration, setExpiration] = useState(request.attributes?.expiration); const expirationHandler: UIFieldHandler<any> = { onChange: setExpiration, value: expiration, @@ -86,8 +82,8 @@ function FillCustomerData({ const data = { ...form.status.result, - [TalerFormAttributes.FormMetadata.FORM_ID.id]: theForm.id, - [TalerFormAttributes.FormMetadata.FORM_VERSION.id]: theForm.version, + [TalerFormAttributes.FORM_ID]: theForm.id, + [TalerFormAttributes.FORM_VERSION]: theForm.version, }; const errors = form.status.errors; diff --git a/packages/aml-backoffice-ui/src/pages/decision/Properties.tsx b/packages/aml-backoffice-ui/src/pages/decision/Properties.tsx @@ -12,6 +12,7 @@ import { FormUI, InternationalizationAPI, onComponentUnload, + TalerAmlProperties, TalerFormAttributes, UIFormElementConfig, UIHandlerId, @@ -170,57 +171,55 @@ export function propertiesByDialect( // if (!dialect) return []; return [ { - id: TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id, + id: TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT as UIHandlerId, label: i18n.str`Is account active for deposit and payments?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id, + id: TalerAmlProperties.AML_DOMESTIC_PEP as UIHandlerId, label: i18n.str`Does account belong to a domestic PEP?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_FOREIGN_PEP.id, + id: TalerAmlProperties.AML_FOREIGN_PEP as UIHandlerId, label: i18n.str`Does account belong to a foreign PEP?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_HIGH_RISK_BUSINESS.id, + id: TalerAmlProperties.AML_HIGH_RISK_BUSINESS as UIHandlerId, label: i18n.str`Does account belong to a high risk business?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_HIGH_RISK_COUNTRY.id, + id: TalerAmlProperties.AML_HIGH_RISK_COUNTRY as UIHandlerId, label: i18n.str`Does account belong to a person from a high risk country?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_INVESTIGATION_ART6_COMPLETED - .id, + id: TalerAmlProperties.AML_INVESTIGATION_ART6_COMPLETED as UIHandlerId, label: i18n.str`Was succesfully investigated under Art 6 Gwg?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_INVESTIGATION_ART6_FAILED - .id, + id: TalerAmlProperties.AML_INVESTIGATION_ART6_FAILED as UIHandlerId, label: i18n.str`Was investigated under Art 6 Gwg and failed?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_MROS_REPORTED_ART305.id, + id: TalerAmlProperties.AML_MROS_REPORTED_ART305 as UIHandlerId, label: i18n.str`Was reported to MROS by obligation?`, type: "toggle", threeState: true, }, { - id: TalerFormAttributes.AccountProperties.AML_MROS_REPORTED_ART9.id, + id: TalerAmlProperties.AML_MROS_REPORTED_ART9 as UIHandlerId, label: i18n.str`Was reported to MROS by right?`, type: "toggle", threeState: true, @@ -228,7 +227,7 @@ export function propertiesByDialect( ]; } -type PropName = keyof typeof TalerFormAttributes.AccountProperties; +type PropName = keyof typeof TalerAmlProperties; type PartialRecord<K extends keyof any, T> = { [P in K]?: T; diff --git a/packages/aml-backoffice-ui/src/pages/decision/aml-events.ts b/packages/aml-backoffice-ui/src/pages/decision/aml-events.ts @@ -1,5 +1,5 @@ import { AmlDecision, AmlSpaDialect } from "@gnu-taler/taler-util"; -import { TalerFormAttributes } from "@gnu-taler/web-util/browser"; +import { TalerAmlProperties } from "@gnu-taler/web-util/browser"; import { DecisionRequest } from "../../hooks/decision-request.js"; export enum AmlEventsName { @@ -44,126 +44,98 @@ export const AML_EVENTS_INFO: EventMapInfo = { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_CLOSED: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_OPENED_HIGH_RISK: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_CLOSED_HIGH_RISK: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_OPENED_DOMESTIC_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_CLOSED_DOMESTIC_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_OPENED_FOREIGN_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_CLOSED_FOREIGN_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_OPENED_HR_COUNTRY: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_CLOSED_HR_COUNTRY: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_MROS_REPORTED_ART305: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, ACCOUNT_MROS_REPORTED_ART9: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_INVESTIGATION_ART6_COMPLETED: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, ACCOUNT_INVESTIGATION_ART6_FAILED: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeTriggered(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, TEST_EVENT_KEY_1: { diff --git a/packages/aml-backoffice-ui/src/pages/decision/aml-properties.ts b/packages/aml-backoffice-ui/src/pages/decision/aml-properties.ts @@ -1,13 +1,9 @@ -import { - AccountProperties, - AmlDecision, - AmlSpaDialect, -} from "@gnu-taler/taler-util"; -import { TalerFormAttributes } from "@gnu-taler/web-util/browser"; +import { AmlDecision, AmlSpaDialect } from "@gnu-taler/taler-util"; +import { TalerAmlProperties } from "@gnu-taler/web-util/browser"; import { DecisionRequest } from "../../hooks/decision-request.js"; export type PropertiesMapInfo = { - [name in keyof typeof TalerFormAttributes.AccountProperties]: { + [name in keyof typeof TalerAmlProperties]: { // fieldLabel: TranslatedString; dialect: AmlSpaDialect[]; shouldBeOn: ( @@ -23,90 +19,70 @@ export const AML_PROPERTIES_INFO: PropertiesMapInfo = { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, AML_DOMESTIC_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, AML_FOREIGN_PEP: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, AML_HIGH_RISK_BUSINESS: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, AML_HIGH_RISK_COUNTRY: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, AML_INVESTIGATION_ART6_COMPLETED: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, AML_INVESTIGATION_ART6_FAILED: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, AML_MROS_REPORTED_ART305: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, AML_MROS_REPORTED_ART9: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id - ]; + return !!req.properties[TalerAmlProperties.AML_ACCOUNT_ACTIVE_DEPOSIT]; }, }, AML_NO_OPERATION_DURING_PERIOD: { dialect: [AmlSpaDialect.TOPS, AmlSpaDialect.TESTING], shouldBeOn(req, dialect) { if (!req.properties) return false; - return !!req.properties[ - TalerFormAttributes.AccountProperties.AML_DOMESTIC_PEP.id - ]; + return !!req.properties[TalerAmlProperties.AML_DOMESTIC_PEP]; }, }, }; diff --git a/packages/kyc-ui/src/forms/index.ts b/packages/kyc-ui/src/forms/index.ts @@ -13,12 +13,12 @@ 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 { FormMetadata, GLS_Onboarding, InternationalizationAPI, VQF_902_11, - VQF_902_12, VQF_902_14, VQF_902_1_customer, VQF_902_4, @@ -93,12 +93,6 @@ export const preloadedForms: ( config: VQF_902_11(i18n), }, { - label: i18n.str`Foundations (as well as similar constructs) (S)`, - id: "vqf_902_12", - version: 1, - config: VQF_902_12(i18n), - }, - { label: i18n.str`Special Clarifications`, description: i18n.str`When a business relationship or transaction is associated with increased risk, appears unusual or evidence exists that the assets are the proceeds of a felony or a qualified tax offence, the member has to perform additional clarifications.`, id: "vqf_902_14", diff --git a/packages/web-util/src/forms/forms-ui.tsx b/packages/web-util/src/forms/forms-ui.tsx @@ -31,10 +31,14 @@ export function DefaultForm<T>({ return ( <div> + <hr class="mt-3 mb-3"/> <FormUI design={design} handler={handler} /> + <hr class="mt-3 mb-3"/> + <p>Result JSON:</p> <pre class="break-all whitespace-pre-wrap"> {JSON.stringify(status.result ?? {}, undefined, 2)} </pre> + <hr class="mt-3 mb-3"/> {status.status !== "ok" ? ( <ErrorsSummary errors={status.errors} /> ) : undefined} @@ -46,8 +50,6 @@ export const DEFAULT_FORM_UI_NAME = "form-ui"; /** * FIXME: formDesign should be embedded in formHandler - * @param param0 - * @returns */ export function FormUI<T>({ name = DEFAULT_FORM_UI_NAME, @@ -229,7 +231,7 @@ export function ErrorsSummary<T>({ </div> <div class="flex shrink-0 items-center gap-x-4"> - <div class="flex rounded-md shadow-sm border-0 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600"></div> + <div class="flex rounded-md shadow-sm border-0 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-inset focus:ring-indigo-600"></div> {fixed ? ( <Fragment /> ) : ( diff --git a/packages/web-util/src/forms/gana/GLS_Onboarding.ts b/packages/web-util/src/forms/gana/GLS_Onboarding.ts @@ -20,20 +20,20 @@ export function GLS_Onboarding( // description: i18n.str``, fields: [ { - id: TalerFormAttributes.GLS_Onboarding.PERSON_FULL_NAME.id, + id: TalerFormAttributes.PERSON_FULL_NAME, label: i18n.str`First name(s)`, help: i18n.str`As on your ID document`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.PERSON_LAST_NAME.id, + id: TalerFormAttributes.PERSON_LAST_NAME, label: i18n.str`Last name`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.PERSON_DATE_OF_BIRTH.id, + id: TalerFormAttributes.PERSON_DATE_OF_BIRTH, label: i18n.str`Date of birth`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -41,7 +41,7 @@ export function GLS_Onboarding( required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.PERSON_NATIONALITY.id, + id: TalerFormAttributes.PERSON_NATIONALITY, label: i18n.str`Nationality`, type: "selectOne", choices: countryNationalityList(i18n), @@ -49,7 +49,7 @@ export function GLS_Onboarding( }, { type: "toggle", - id: TalerFormAttributes.GLS_Onboarding.ACCEPTED_TERMS_OF_SERVICE.id, + id: TalerFormAttributes.ACCEPTED_TERMS_OF_SERVICE, required: true, // threeState: true, label: i18n.str`Do you accept the terms of service?`, @@ -71,33 +71,31 @@ export function GLS_Onboarding( title: i18n.str`Business company information`, fields: [ { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_DISPLAY_NAME.id, + id: TalerFormAttributes.BUSINESS_DISPLAY_NAME, label: i18n.str`Name of the company`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_TYPE.id, + id: TalerFormAttributes.BUSINESS_TYPE, label: i18n.str`Business type`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_REGISTRATION_ID.id, + id: TalerFormAttributes.BUSINESS_REGISTRATION_ID, label: i18n.str`Registration ID`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_LEGAL_JURISDICTION - .id, + id: TalerFormAttributes.BUSINESS_LEGAL_JURISDICTION, label: i18n.str`Legal jurisdiction`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_REGISTRATION_DATE - .id, + id: TalerFormAttributes.BUSINESS_REGISTRATION_DATE, label: i18n.str`Registration date`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -105,43 +103,37 @@ export function GLS_Onboarding( required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_IS_NON_PROFIT.id, + id: TalerFormAttributes.BUSINESS_IS_NON_PROFIT, label: i18n.str`Is non profit?`, type: "toggle", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.BUSINESS_INDUSTRY.id, + id: TalerFormAttributes.BUSINESS_INDUSTRY, label: i18n.str`Industry`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding - .BUSINESS_LEGAL_REPRESENTATIVES.id, + id: TalerFormAttributes.BUSINESS_LEGAL_REPRESENTATIVES, label: i18n.str`Legal representatives`, type: "array", - labelFieldId: - TalerFormAttributes.GLS_BusinessRepresentative - .GLS_REPRESENTATIVE_FULL_NAME.id, + labelFieldId: TalerFormAttributes.GLS_REPRESENTATIVE_FULL_NAME, fields: [ { - id: TalerFormAttributes.GLS_BusinessRepresentative - .GLS_REPRESENTATIVE_FULL_NAME.id, + id: TalerFormAttributes.GLS_REPRESENTATIVE_FULL_NAME, label: i18n.str`Full name`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_BusinessRepresentative - .GLS_REPRESENTATIVE_LAST_NAME.id, + id: TalerFormAttributes.GLS_REPRESENTATIVE_LAST_NAME, label: i18n.str`Last name`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_BusinessRepresentative - .GLS_REPRESENTATIVE_DATE_OF_BIRTH.id, + id: TalerFormAttributes.GLS_REPRESENTATIVE_DATE_OF_BIRTH, label: i18n.str`Date of birth`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -149,24 +141,11 @@ export function GLS_Onboarding( required: true, }, { - id: TalerFormAttributes.GLS_BusinessRepresentative - .GLS_REPRESENTATIVE_NATIONALITY.id, + id: TalerFormAttributes.GLS_REPRESENTATIVE_NATIONALITY, label: i18n.str`Nationality`, type: "text", required: true, }, - // { - // id: TalerFormAttributes.GLS_BusinessRepresentative.GLS_REPRESENTATIVE_NATIONAL_ID.id, - // label: i18n.str`National ID number`, - // type: "text", - // required: true, - // }, - // { - // id: TalerFormAttributes.GLS_BusinessRepresentative.GLS_REPRESENTATIVE_NATIONAL_ID_SCAN.id, - // label: i18n.str`National ID photo`, - // type: "file", - // required: true, - // }, ], required: true, }, @@ -176,19 +155,19 @@ export function GLS_Onboarding( title: i18n.str`Contact information of company headquarters`, fields: [ { - id: TalerFormAttributes.GLS_Onboarding.CONTACT_WEB_DOMAIN.id, + id: TalerFormAttributes.CONTACT_WEB_DOMAIN, label: i18n.str`Web site`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.CONTACT_EMAIL.id, + id: TalerFormAttributes.CONTACT_EMAIL, label: i18n.str`Email`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.CONTACT_PHONE.id, + id: TalerFormAttributes.CONTACT_PHONE, label: i18n.str`Phone`, type: "text", required: true, @@ -199,63 +178,62 @@ export function GLS_Onboarding( title: i18n.str`Location information`, fields: [ { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_COUNTRY.id, + id: TalerFormAttributes.ADDRESS_COUNTRY, label: i18n.str`Country`, type: "selectOne", choices: countryNameList(i18n), required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_COUNTRY_SUBDIVISION - .id, + id: TalerFormAttributes.ADDRESS_COUNTRY_SUBDIVISION, label: i18n.str`Country subdivision`, type: "text", // required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_STREET_NAME.id, + id: TalerFormAttributes.ADDRESS_STREET_NAME, label: i18n.str`Street name`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_STREET_NUMBER.id, + id: TalerFormAttributes.ADDRESS_STREET_NUMBER, label: i18n.str`Street number`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_LINES.id, + id: TalerFormAttributes.ADDRESS_LINES, label: i18n.str`Street lines`, type: "textArea", // required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_BUILDING_NAME.id, + id: TalerFormAttributes.ADDRESS_BUILDING_NAME, label: i18n.str`Building name`, type: "text", // required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_BUILDING_NUMBER.id, + id: TalerFormAttributes.ADDRESS_BUILDING_NUMBER, label: i18n.str`Building number`, type: "text", // required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_ZIPCODE.id, + id: TalerFormAttributes.ADDRESS_ZIPCODE, label: i18n.str`Zipcode`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_TOWN_LOCATION.id, + id: TalerFormAttributes.ADDRESS_TOWN_LOCATION, label: i18n.str`Town location`, type: "text", // required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.ADDRESS_TOWN_DISTRICT.id, + id: TalerFormAttributes.ADDRESS_TOWN_DISTRICT, label: i18n.str`Town district`, type: "text", // required: true, @@ -266,34 +244,34 @@ export function GLS_Onboarding( title: i18n.str`Tax information`, fields: [ { - id: TalerFormAttributes.GLS_Onboarding.TAX_COUNTRY.id, + id: TalerFormAttributes.TAX_COUNTRY, label: i18n.str`Country`, type: "selectOne", choices: countryNameList(i18n), required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.TAX_ID.id, + id: TalerFormAttributes.TAX_ID, label: i18n.str`ID`, type: "text", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.TAX_IS_USA_LAW.id, + id: TalerFormAttributes.TAX_IS_USA_LAW, label: i18n.str`under USA law?`, // help: i18n.str`wurde die gesellschaft in den USA oder nach US-Recht gergrudent`, type: "toggle", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.TAX_IS_ACTIVE.id, + id: TalerFormAttributes.TAX_IS_ACTIVE, label: i18n.str`is economically active?`, // help: i18n.str`wirtschaftlich aktiv oder passiv`, type: "toggle", required: true, }, { - id: TalerFormAttributes.GLS_Onboarding.TAX_IS_DEDUCTED.id, + id: TalerFormAttributes.TAX_IS_DEDUCTED, label: i18n.str`entitled to deduct tax?`, // help: i18n.str`sind sie vorsteuerabzugsberechtigt`, type: "toggle", diff --git a/packages/web-util/src/forms/gana/VQF_902_11.stories.tsx b/packages/web-util/src/forms/gana/VQF_902_11.stories.tsx @@ -31,8 +31,8 @@ export default { setupI18n("en", {}); type TargetObject = {}; const initial: TargetObject = { - [TalerFormAttributes.VQF_902_9.SIGNATURE.id]: "The officer", - [TalerFormAttributes.VQF_902_9.SIGN_DATE.id]: AbsoluteTime.now(), + [TalerFormAttributes.SIGNATURE]: "The officer", + [TalerFormAttributes.SIGN_DATE]: AbsoluteTime.now(), }; export const EmptyForm = tests.createExample(TestedComponent, { diff --git a/packages/web-util/src/forms/gana/VQF_902_11.ts b/packages/web-util/src/forms/gana/VQF_902_11.ts @@ -15,8 +15,7 @@ export function VQF_902_11( description: i18n.str`(for operating legal entities and partnership that are contracting partner as well as analogously for operating legal entities and partnership that are beneficial owners)`, fields: [ { - id: TalerFormAttributes.VQF_902_11 - .CONTROLLING_ENTITY_CONTRACTING_PARTNER.id, + id: TalerFormAttributes.CONTROLLING_ENTITY_CONTRACTING_PARTNER, label: i18n.str`Contracting partner`, type: "textArea", required: true, @@ -27,7 +26,7 @@ export function VQF_902_11( title: i18n.str`The contracting partner hereby declares that:`, fields: [ { - id: TalerFormAttributes.VQF_902_11.CONTROLLING_ENTITY_LEVEL.id, + id: TalerFormAttributes.CONTROLLING_ENTITY_LEVEL, label: i18n.str`Level`, type: "choiceStacked", choices: [ @@ -50,7 +49,7 @@ export function VQF_902_11( required: true, }, { - id: TalerFormAttributes.VQF_902_9.IDENTITY_LIST.id, + id: TalerFormAttributes.IDENTITY_LIST, label: i18n.str`Persons`, type: "array", validator(persons) { @@ -60,19 +59,17 @@ export function VQF_902_11( return undefined; }, labelFieldId: - TalerFormAttributes.VQF_902_9_identity.IDENTITY_FULL_NAME.id, + TalerFormAttributes.IDENTITY_FULL_NAME, fields: [ { - id: TalerFormAttributes.VQF_902_11.CONTROLLING_ENTITY_FULL_NAME - .id, + id: TalerFormAttributes.CONTROLLING_ENTITY_FULL_NAME, label: i18n.str`Full name`, help: i18n.str`Surname(s) and first name(s)`, type: "text", required: true, }, { - id: TalerFormAttributes.VQF_902_11.CONTROLLING_ENTITY_DOMICILE - .id, + id: TalerFormAttributes.CONTROLLING_ENTITY_DOMICILE, label: i18n.str`Actual address of domicile`, type: "textArea", required: true, @@ -85,8 +82,7 @@ export function VQF_902_11( title: i18n.str`Fiduciary holding assets`, fields: [ { - id: TalerFormAttributes.VQF_902_11.CONTROLLING_ENTITY_THIRD_PERSON - .id, + id: TalerFormAttributes.CONTROLLING_ENTITY_THIRD_PERSON, label: i18n.str`Is a third person the beneficial owner of the assets held in the account/securities account?`, type: "toggle", required: true, @@ -101,14 +97,14 @@ export function VQF_902_11( label: i18n.str`The contracting partner hereby undertakes to inform automatically of any changes to the information contained herein.`, }, { - id: TalerFormAttributes.VQF_902_9.SIGNATURE.id, + id: TalerFormAttributes.SIGNATURE, label: i18n.str`Signature`, type: "text", required: true, disabled: true, }, { - id: TalerFormAttributes.VQF_902_9.SIGN_DATE.id, + id: TalerFormAttributes.SIGN_DATE, label: i18n.str`Date`, type: "absoluteTimeText", placeholder: "dd/MM/yyyy", diff --git a/packages/web-util/src/forms/gana/VQF_902_12.stories.tsx b/packages/web-util/src/forms/gana/VQF_902_12.stories.tsx @@ -1,41 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022 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/> - */ - -/** - * - * @author Sebastian Javier Marchano (sebasjm) - */ - -import { AbsoluteTime, i18n, setupI18n } from "@gnu-taler/taler-util"; -import * as tests from "../../tests/hook.js"; -import { DefaultForm as TestedComponent } from "../forms-ui.js"; -import { VQF_902_12 } from "./VQF_902_12.js"; -import { TalerFormAttributes } from "./taler_form_attributes.js"; -export default { - title: "VQF 902 12e", -}; - -setupI18n("en", {}); -type TargetObject = {}; -const initial: TargetObject = { - [TalerFormAttributes.VQF_902_9.SIGNATURE.id]: "The officer", - [TalerFormAttributes.VQF_902_9.SIGN_DATE.id]: AbsoluteTime.now(), -}; - -export const EmptyForm = tests.createExample(TestedComponent, { - initial, - design: VQF_902_12(i18n), -}); diff --git a/packages/web-util/src/forms/gana/VQF_902_12.ts b/packages/web-util/src/forms/gana/VQF_902_12.ts @@ -1,372 +0,0 @@ -import { - DoubleColumnFormDesign, - InternationalizationAPI, -} from "../../index.browser.js"; -import { - countryNameList, - countryNationalityList, -} from "../../utils/select-ui-lists.js"; -import { TalerFormAttributes } from "./taler_form_attributes.js"; - -export function VQF_902_12( - i18n: InternationalizationAPI, -): DoubleColumnFormDesign { - return { - type: "double-column", - sections: [ - { - title: i18n.str`Foundations (as well as similar constructs) (S)`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_CONTRACTING_PARTNER - .id, - label: i18n.str`Contracting partner`, - type: "textArea", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_KNOWN_AS.id, - label: i18n.str`The undersigned hereby declare(s) that as board member of the foundation, or of the highest supervisory body of an underlying company of a foundation, known as:`, - type: "text", - // help:"" - required: true, - }, - { - type: "caption", - label: i18n.str`and, such capacity, provide(s) to the best of his/her/their knowledge the following:`, - }, - ], - }, - { - title: i18n.str`Name and information pertaining to the foundation`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_NAME.id, - label: i18n.str`Name`, - type: "text", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_DISCRETIONARY.id, - label: i18n.str`Type of foundation`, - type: "choiceStacked", - choices: [ - { label: i18n.str`Discretionary foundation`, value: "true" }, - { label: i18n.str`Non-discretionary foundation`, value: "false" }, - ], - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_REVOCABLE.id, - label: i18n.str`Revocability`, - type: "choiceStacked", - choices: [ - { label: i18n.str`Revolcable foundation`, value: "true" }, - { label: i18n.str`Irrevocable foundation`, value: "false" }, - ], - required: true, - }, - ], - }, - { - title: i18n.str`Information pertaining to the (ultimate economic, not fiduciary) founder (individual(s) or entity/ies):`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_FOUNDER_LIST.id, - label: i18n.str`Persons`, - type: "array", - labelFieldId: - TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_FULL_NAME.id, - fields: [ - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_FULL_NAME.id, - label: i18n.str`Full name`, - help: i18n.str`Last name(s), first name(s)/entity`, - type: "text", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_DOMICILE.id, - label: i18n.str`Actual address of domicile/registered office`, - type: "textArea", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_COUNTRY.id, - label: i18n.str`Country`, - type: "selectOne", - choices: countryNameList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_BIRTHDATE.id, - label: i18n.str`Birthdate`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_NATIONALITY.id, - label: i18n.str`Nationality`, - type: "selectOne", - choices: countryNationalityList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_DEATHDATE.id, - label: i18n.str`Date of death`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - }, - { - id: TalerFormAttributes.VQF_902_12_founder - .FOUNDATION_FOUNDER_RIGHT_TO_REVOKE.id, - label: i18n.str`Right to revoke`, - help: i18n.str`In case of a revocable foundation: does the founder have the right to revoke the foundation?`, - type: "toggle", - required: false, - threeState: true, - }, - ], - required: true, - }, - ], - }, - { - title: i18n.str`Pre-existing foundation`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_PRE_LIST.id, - label: i18n.str`Persons`, - help: i18n.str`If the foundation results from the restructuring of pre-existing foundation (re-settlement) or the merger of pre-existing foundations, the following information pertaining to the (actual) founders of the pre-existing foundations has to be given`, - type: "array", - labelFieldId: - TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_FULL_NAME.id, - fields: [ - { - id: TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_FULL_NAME - .id, - label: i18n.str`Full name`, - help: i18n.str`Last name(s), first name(s)/entity`, - type: "text", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_DOMICILE - .id, - label: i18n.str`Actual address of domicile/registered office`, - type: "textArea", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_COUNTRY - .id, - label: i18n.str`Country`, - type: "selectOne", - choices: countryNameList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_BIRTHDATE - .id, - label: i18n.str`Birthdate`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_pre - .FOUNDATION_PRE_NATIONALITY.id, - label: i18n.str`Nationality`, - type: "selectOne", - choices: countryNationalityList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_pre.FOUNDATION_PRE_DEATHDATE - .id, - label: i18n.str`Date of death`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - }, - ], - required: true, - }, - ], - }, - { - title: i18n.str`Beneficiaries`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_BENEFICIARY_LIST.id, - label: i18n.str`Persons`, - help: i18n.str`Pertaining to the beneficiary/-ies at the time of the signing of this form:`, - type: "array", - labelFieldId: - TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_FULL_NAME.id, - fields: [ - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_FULL_NAME.id, - label: i18n.str`Full name`, - help: i18n.str`Last name(s), first name(s)/entity`, - type: "text", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_DOMICILE.id, - label: i18n.str`Actual address of domicile/registered office`, - type: "textArea", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_COUNTRY.id, - label: i18n.str`Country`, - type: "selectOne", - choices: countryNameList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_BIRTHDATE.id, - label: i18n.str`Full name`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_NATIONALITY.id, - label: i18n.str`Nationality`, - type: "selectOne", - choices: countryNationalityList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_beneficiary - .FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM.id, - label: i18n.str`Right to claim`, - help: i18n.str`Has/have the beneficiary/ies an actual right to claim distribution?`, - type: "toggle", - required: true, - }, - ], - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_BENEFICIARY_ADDITION - .id, - label: i18n.str`and in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form:`, - type: "textArea", - required: false, - }, - ], - }, - { - title: i18n.str`People with the right to determine or nominate representatives`, - fields: [ - { - id: TalerFormAttributes.VQF_902_12.FOUNDATION_REPRESENTATIVE_LIST - .id, - label: i18n.str`Persons`, - help: i18n.str`Information pertaining to (a) further person(s) having the right to determine or nominate representatives (e.g.) members of the foundation board), if these representatives may dispose over the assets or have the right to change the distribution of the assets or the nomination of beneficiaries`, - type: "array", - labelFieldId: - TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_FULL_NAME.id, - fields: [ - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_FULL_NAME.id, - label: i18n.str`Full name`, - help: i18n.str`Last name(s), first name(s)/entity`, - type: "text", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_DOMICILE.id, - label: i18n.str`Actual address of domicile/registered office`, - type: "textArea", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_COUNTRY.id, - label: i18n.str`Country`, - type: "selectOne", - choices: countryNameList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_BIRTHDATE.id, - label: i18n.str`Birthdate`, - type: "isoDateText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_NATIONALITY.id, - label: i18n.str`Naitonality`, - type: "selectOne", - choices: countryNationalityList(i18n), - required: true, - }, - { - id: TalerFormAttributes.VQF_902_12_representative - .FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE.id, - label: i18n.str`Right to revoke`, - help: i18n.str`In case of a revocable foundation: is the further person with the right to revoke the foundation?`, - type: "toggle", - }, - ], - required: true, - }, - ], - }, - { - title: i18n.str`It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, documents forgery)`, - fields: [ - { - type: "caption", - label: i18n.str`The contracting partner hereby undertakes to inform automatically of any changes to the information contained herein.`, - }, - { - id: TalerFormAttributes.VQF_902_9.SIGNATURE.id, - label: i18n.str`Signature`, - type: "text", - required: true, - disabled: true, - }, - { - id: TalerFormAttributes.VQF_902_9.SIGN_DATE.id, - label: i18n.str`Date`, - type: "absoluteTimeText", - placeholder: "dd/MM/yyyy", - pattern: "dd/MM/yyyy", - required: true, - disabled: true, - }, - ], - }, - ], - }; -} diff --git a/packages/web-util/src/forms/gana/VQF_902_14.stories.tsx b/packages/web-util/src/forms/gana/VQF_902_14.stories.tsx @@ -31,8 +31,8 @@ export default { setupI18n("en", {}); type TargetObject = {}; const initial: TargetObject = { - [TalerFormAttributes.VQF_902_9.SIGNATURE.id]: "The officer", - [TalerFormAttributes.VQF_902_9.SIGN_DATE.id]: AbsoluteTime.now(), + [TalerFormAttributes.SIGNATURE]: "The officer", + [TalerFormAttributes.SIGN_DATE]: AbsoluteTime.now(), }; export const EmptyForm = tests.createExample(TestedComponent, { initial, diff --git a/packages/web-util/src/forms/gana/VQF_902_14.ts b/packages/web-util/src/forms/gana/VQF_902_14.ts @@ -1,7 +1,6 @@ import { - InternationalizationAPI, DoubleColumnFormDesign, - UIHandlerId, + InternationalizationAPI, } from "../../index.browser.js"; import { TalerFormAttributes } from "./taler_form_attributes.js"; @@ -15,7 +14,7 @@ export function VQF_902_14( title: i18n.str`Reason for special clarifications`, fields: [ { - id: TalerFormAttributes.VQF_902_14.INCRISK_REASON.id, + id: TalerFormAttributes.INCRISK_REASON, label: i18n.str`Reason`, help: i18n.str`Description of the circumstances/transactions, which triggered the special clarifications`, type: "textArea", @@ -27,7 +26,7 @@ export function VQF_902_14( title: i18n.str`Used means of clarification`, fields: [ { - id: TalerFormAttributes.VQF_902_14.INCRISK_MEANS.id, + id: TalerFormAttributes.INCRISK_MEANS, label: i18n.str`Means`, type: "choiceStacked", choices: [ @@ -52,15 +51,12 @@ export function VQF_902_14( required: true, }, { - id: TalerFormAttributes.VQF_902_14.INCRISK_MEANS_OTHER.id, + id: TalerFormAttributes.INCRISK_MEANS_OTHER, type: "text", label: i18n.str`Means clarification`, required: true, hide(value, root) { - return ( - root[TalerFormAttributes.VQF_902_14.INCRISK_MEANS.id] !== - "OTHER" - ); + return root[TalerFormAttributes.INCRISK_MEANS] !== "OTHER"; }, }, ], @@ -70,13 +66,13 @@ export function VQF_902_14( description: i18n.str`The results of the clarifications have to be documented and their plausability has to be checked.`, fields: [ { - id: TalerFormAttributes.VQF_902_14.INCRISK_SUMMARY.id, + id: TalerFormAttributes.INCRISK_SUMMARY, label: i18n.str`Summary`, type: "textArea", required: true, }, { - id: TalerFormAttributes.VQF_902_14.INCRISK_DOCUMENTS.id, + id: TalerFormAttributes.INCRISK_DOCUMENTS, label: i18n.str`Gathered/Consulted documents`, type: "textArea", required: true, @@ -87,7 +83,7 @@ export function VQF_902_14( title: i18n.str`Result of the special clarification`, fields: [ { - id: TalerFormAttributes.VQF_902_14.INCRISK_RESULT.id, + id: TalerFormAttributes.INCRISK_RESULT, label: i18n.str`Result`, type: "choiceStacked", choices: [ @@ -114,15 +110,12 @@ export function VQF_902_14( required: true, }, { - id: TalerFormAttributes.VQF_902_14.INCRISK_RESULT_OTHER.id, + id: TalerFormAttributes.INCRISK_RESULT_OTHER, type: "text", label: i18n.str`Result clarification`, required: true, hide(value, root) { - return ( - root[TalerFormAttributes.VQF_902_14.INCRISK_RESULT.id] !== - "OTHER" - ); + return root[TalerFormAttributes.INCRISK_RESULT] !== "OTHER"; }, }, ], diff --git a/packages/web-util/src/forms/gana/VQF_902_1_customer.ts b/packages/web-util/src/forms/gana/VQF_902_1_customer.ts @@ -21,6 +21,13 @@ import { import { countryNationalityList } from "../../utils/select-ui-lists.js"; import { TalerFormAttributes } from "./taler_form_attributes.js"; +const Descr = { + CUSTOMER_INFO_TYPE: ( + i18n: InternationalizationAPI, + ) => 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.`, +} as const; + /** * Form vqf_902_1_customer. */ @@ -32,11 +39,10 @@ export function VQF_902_1_customer( sections: [ { title: i18n.str`Information on customer`, - 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.`, + description: Descr.CUSTOMER_INFO_TYPE(i18n), fields: [ { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_INFO_TYPE.id, + id: TalerFormAttributes.CUSTOMER_INFO_TYPE, label: i18n.str`Customer type`, type: "choiceStacked", choices: [ @@ -61,31 +67,31 @@ member act as director of a domiciliary company, this domiciliary company is the }, fields: [ { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_FULL_NAME.id, + id: TalerFormAttributes.FULL_NAME, label: i18n.str`Full name`, type: "text", required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_RESIDENTIAL.id, + id: TalerFormAttributes.DOMICILE_ADDRESS, label: i18n.str`Residential address`, type: "textArea", required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_PHONE.id, + id: TalerFormAttributes.CONTACT_PHONE, label: i18n.str`Telephone`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_EMAIL.id, + id: TalerFormAttributes.CONTACT_EMAIL, label: i18n.str`E-mail`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_BIRTHDATE.id, + id: TalerFormAttributes.DATE_OF_BIRTH, label: i18n.str`Date of birth`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -93,44 +99,51 @@ member act as director of a domiciliary company, this domiciliary company is the required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_NATIONALITY.id, + id: TalerFormAttributes.NATIONALITY, label: i18n.str`Nationality`, type: "selectOne", choices: countryNationalityList(i18n), required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_NATIONAL_ID.id, + id: TalerFormAttributes.PERSONAL_IDENTIFICATION_DOCUMENT_COPY, label: i18n.str`Identification document`, type: "file", accept: "application/pdf", required: true, }, + { + id: TalerFormAttributes.CUSTOMER_IS_SOLE_PROPRIETOR, + label: i18n.str`Sole proprietor`, + type: "toggle", + threeState: false, + }, ], }, { title: i18n.str`Information on customer (sole proprietor)`, description: i18n.str`The customer is a sole proprietor`, hide(root) { - return root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON"; + return ( + root[TalerFormAttributes.CUSTOMER_INFO_TYPE] !== "NATURAL_PERSON" || + !root[TalerFormAttributes.CUSTOMER_IS_SOLE_PROPRIETOR] + ); }, fields: [ { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_NAME.id, + id: TalerFormAttributes.COMPANY_NAME, label: i18n.str`Company name`, type: "text", - required: false, + required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_REGISTERED_OFFICE - .id, + id: TalerFormAttributes.REGISTERED_OFFICE_ADDRESS, label: i18n.str`Registered office`, type: "text", - required: false, + required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID_DOC - .id, + id: TalerFormAttributes.LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY, label: i18n.str`Company identification document`, type: "file", required: false, @@ -142,42 +155,43 @@ member act as director of a domiciliary company, this domiciliary company is the title: i18n.str`Information on customer`, description: i18n.str`The customer is a legal entity`, hide(root) { - return root["CUSTOMER_INFO_TYPE"] !== "LEGAL_ENTITY"; + return ( + root[TalerFormAttributes.CUSTOMER_INFO_TYPE] !== "LEGAL_ENTITY" + ); }, fields: [ { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_COMPANY_NAME.id, + id: TalerFormAttributes.CUSTOMER_ENTITY_COMPANY_NAME, label: i18n.str`Company name`, type: "text", required: true, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_ADDRESS.id, + id: TalerFormAttributes.CUSTOMER_ENTITY_ADDRESS, label: i18n.str`Domicile`, type: "textArea", required: true, }, { - id: TalerFormAttributes.VQF_902_1 - .CUSTOMER_ENTITY_CONTACT_PERSON_NAME.id, + id: TalerFormAttributes.CUSTOMER_ENTITY_CONTACT_PERSON_NAME, label: i18n.str`Contact person`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_PHONE.id, + id: TalerFormAttributes.CONTACT_PHONE, label: i18n.str`Telephone`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_EMAIL.id, + id: TalerFormAttributes.CONTACT_EMAIL, label: i18n.str`E-mail`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_ID_COPY.id, + id: TalerFormAttributes.PERSONAL_IDENTIFICATION_DOCUMENT_COPY, label: i18n.str`Copy of identification document`, type: "file", accept: "application/pdf", @@ -193,28 +207,26 @@ member act as director of a domiciliary company, this domiciliary company is the }, fields: [ { - id: TalerFormAttributes.VQF_902_1.FOUNDER_LIST.id, - label: i18n.str`Founders`, + id: TalerFormAttributes.ESTABLISHER_LIST, + label: i18n.str`Establishers of the legal relationship`, type: "array", - labelFieldId: - TalerFormAttributes.VQF_902_1_founder.FOUNDER_FULL_NAME.id, + labelFieldId: TalerFormAttributes.FULL_NAME, required: true, fields: [ { - id: TalerFormAttributes.VQF_902_1_founder.FOUNDER_FULL_NAME.id, + id: TalerFormAttributes.FULL_NAME, label: i18n.str`Full name`, type: "text", required: true, }, { - id: TalerFormAttributes.VQF_902_1_founder - .FOUNDER_RESIDENTIAL_ADDRESS.id, + id: TalerFormAttributes.DOMICILE_ADDRESS, label: i18n.str`Residential address`, type: "textArea", required: true, }, { - id: TalerFormAttributes.VQF_902_1_founder.FOUNDER_BIRTHDATE.id, + id: TalerFormAttributes.DATE_OF_BIRTH, label: i18n.str`Date of birth`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -222,33 +234,28 @@ member act as director of a domiciliary company, this domiciliary company is the required: true, }, { - id: TalerFormAttributes.VQF_902_1_founder.FOUNDER_NATIONALITY - .id, + id: TalerFormAttributes.NATIONALITY, label: i18n.str`Nationality`, type: "selectOne", choices: countryNationalityList(i18n), required: true, }, { - id: TalerFormAttributes.VQF_902_1_founder - .FOUNDER_AUTHORIZATION_TYPE.id, - label: i18n.str`Type of authorization`, - type: "text", - required: true, - }, - // FIXME: ID name is weird! - { - id: TalerFormAttributes.VQF_902_1_founder.FOUNDER_NATIONAL_COPY - .id, + id: TalerFormAttributes.PERSONAL_IDENTIFICATION_DOCUMENT_COPY, label: i18n.str`Copy of identification document`, type: "file", accept: "application/pdf", - required: true, }, { - id: TalerFormAttributes.VQF_902_1_founder - .FOUNDER_POWER_OF_ATTORNEY.id, + id: TalerFormAttributes.SIGNING_AUTHORITY, + label: i18n.str`Type of authorization`, + type: "text", + required: true, + }, + { + id: TalerFormAttributes.SIGNING_AUTHORITY_EVIDENCE, + required: true, label: i18n.str`Power of attorney arrangements`, type: "choiceStacked", choices: [ @@ -260,8 +267,84 @@ member act as director of a domiciliary company, this domiciliary company is the value: "MANDATE", label: i18n.str`Mandate`, }, + { + value: "OTHER", + label: i18n.str`Other`, + }, ], + }, + { + id: TalerFormAttributes.SIGNING_AUTHORITY_EVIDENCE_OTHER, required: true, + label: i18n.str`Other power of attorney arrangement`, + type: "text", + hide(value, root) { + return root["FOUNDER_POWER_OF_ATTORNEY"] !== "OTHER"; + }, + }, + ], + }, + ], + }, + // Version of the question for natural persons + { + title: i18n.str`Information on the beneficial owner of the assets and/or controlling personnformation 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.`, + hide(root) { + return root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON"; + }, + fields: [ + { + id: TalerFormAttributes.CUSTOMER_TYPE_VQF, + required: true, + label: i18n.str`The customer is:`, + type: "choiceStacked", + choices: [ + { + value: "NATURAL_PERSON", + label: i18n.str`A natural person and there are no doubts that this person is the sole beneficial owner of the assets`, + }, + { + value: "OTHER", + label: i18n.str`Other`, + }, + ], + }, + ], + }, + // Version for Businesses + { + title: i18n.str`Information on the beneficial owner of the assets and/or controlling personnformation 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.`, + hide(root) { + return root["CUSTOMER_INFO_TYPE"] !== "LEGAL_ENTITY"; + }, + fields: [ + { + id: TalerFormAttributes.CUSTOMER_TYPE_VQF, + required: true, + label: i18n.str`The customer is:`, + type: "choiceStacked", + choices: [ + { + value: "OPERATIONAL", + label: i18n.str`An operational legal entity or partnership`, + }, + { + value: "FOUNDATION", + label: i18n.str`A foundation (or a similar construct; incl. underlying companies)`, + }, + { + value: "TRUST", + label: i18n.str`A trust (incl. underlying companies)`, + }, + { + value: "LIFE_INSURANCE", + label: i18n.str`a life insurance policy with separately managed accounts / securities accounts (so-called insurance wrappers)`, + }, + { + value: "OTHER", + label: i18n.str`Other`, }, ], }, diff --git a/packages/web-util/src/forms/gana/VQF_902_1_officer.ts b/packages/web-util/src/forms/gana/VQF_902_1_officer.ts @@ -21,7 +21,7 @@ export function VQF_902_1_officer( title: i18n.str`Acceptance of business relationship`, fields: [ { - id: TalerFormAttributes.VQF_902_1.ACCEPTANCE_DATE.id, + id: TalerFormAttributes.ACCEPTANCE_DATE, label: i18n.str`Date (conclusion of contract)`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -29,7 +29,7 @@ export function VQF_902_1_officer( required: true, }, { - id: TalerFormAttributes.VQF_902_1.ACCEPTANCE_METHOD.id, + id: TalerFormAttributes.ACCEPTANCE_METHOD, label: i18n.str`Accepted by`, type: "choiceStacked", choices: [ @@ -49,8 +49,7 @@ export function VQF_902_1_officer( required: true, }, { - id: TalerFormAttributes.VQF_902_1 - .ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE.id, + id: TalerFormAttributes.ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE, label: i18n.str`Type of correspondence service`, type: "choiceStacked", choices: [ @@ -74,40 +73,38 @@ export function VQF_902_1_officer( required: true, }, { - id: TalerFormAttributes.VQF_902_1 - .ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME.id, + id: TalerFormAttributes.ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME, label: i18n.str`Third party full name`, type: "text", required: true, hide(value, root) { return ( root["ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE"] !== - "TO_A_THIRD_PARTY" + "TO_A_THIRD_PARTY" ); }, }, { - id: TalerFormAttributes.VQF_902_1 - .ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS.id, + id: TalerFormAttributes.ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS, label: i18n.str`Third party address`, type: "textArea", required: true, hide(value, root) { return ( root["ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE"] !== - "TO_A_THIRD_PARTY" + "TO_A_THIRD_PARTY" ); }, }, { - id: TalerFormAttributes.VQF_902_1.ACCEPTANCE_LANGUAGE.id, + id: TalerFormAttributes.ACCEPTANCE_LANGUAGE, label: i18n.str`Language`, type: "selectOne", choices: languageNameList(i18n), required: true, }, { - id: TalerFormAttributes.VQF_902_1.ACCEPTANCE_FURTHER_INFO.id, + id: TalerFormAttributes.ACCEPTANCE_FURTHER_INFO, label: i18n.str`Further information`, type: "textArea", required: false, @@ -119,7 +116,7 @@ export function VQF_902_1_officer( 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: [ { - id: TalerFormAttributes.VQF_902_1.EMBARGO_TERRORISM_INFO.id, + id: TalerFormAttributes.EMBARGO_TERRORISM_INFO, label: i18n.str`Embargo information`, type: "textArea", required: false, diff --git a/packages/web-util/src/forms/gana/VQF_902_4.ts b/packages/web-util/src/forms/gana/VQF_902_4.ts @@ -1,7 +1,6 @@ import { - InternationalizationAPI, DoubleColumnFormDesign, - UIHandlerId, + InternationalizationAPI, } from "../../index.browser.js"; import { TalerFormAttributes } from "./taler_form_attributes.js"; @@ -16,28 +15,28 @@ export function VQF_902_4( description: i18n.str`This evaluation has to be completed by all members for every business relationship.`, fields: [ { - id: TalerFormAttributes.VQF_902_4.PEP_FOREIGN.id, + id: TalerFormAttributes.PEP_FOREIGN, label: i18n.str`Foreign PEP`, help: i18n.str`Is the customer, the beneficial owner or the controlling person or authorised representative a foreign PEP or closely related to such a person?`, type: "toggle", required: true, }, { - id: TalerFormAttributes.VQF_902_4.PEP_DOMESTIC.id, + id: TalerFormAttributes.PEP_DOMESTIC, label: i18n.str`Domestic PEP`, help: i18n.str`Is the customer, the beneficial owner or the controlling person or authorised representative a domestic PEP or closely related to such a person?`, type: "toggle", required: true, }, { - id: TalerFormAttributes.VQF_902_4.PEP_INTERNATIONAL_ORGANIZATION.id, + id: TalerFormAttributes.PEP_INTERNATIONAL_ORGANIZATION, label: i18n.str`PEP of International Organisatons`, help: i18n.str`Is the customer, the beneficial owner or the controlling person or authorised representative a PEP in International Organizations or closely related to such a person?`, type: "toggle", required: true, }, { - id: TalerFormAttributes.VQF_902_4.PEP_ACCEPTANCE_DATE.id, + id: TalerFormAttributes.PEP_ACCEPTANCE_DATE, label: i18n.str`Acceptance date`, help: i18n.str`When the decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtain on.`, type: "isoDateText", @@ -52,14 +51,14 @@ export function VQF_902_4( description: i18n.str`This evaluation has to be completed by all members for every business relationship.`, fields: [ { - id: TalerFormAttributes.VQF_902_4.HIGH_RISK_COUNTRY.id, + id: TalerFormAttributes.HIGH_RISK_COUNTRY, label: i18n.str`High-risk or non-cooperative country`, help: i18n.str`Is the customer, the beneficial owner or the controlling person or authorised representative in a country considered by the FATF as high-risk or non-cooperative and for which FATF requires increased diligence?`, type: "toggle", required: true, }, { - id: TalerFormAttributes.VQF_902_4.HIGH_RISK_ACCEPTANCE_DATE.id, + id: TalerFormAttributes.HIGH_RISK_ACCEPTANCE_DATE, label: i18n.str`Acceptance date`, help: i18n.str`When the decision of the Senior executive body on the acceptance of such a business relationship was obtained on.`, type: "isoDateText", @@ -74,7 +73,7 @@ export function VQF_902_4( description: i18n.str`This evaluation has to be completed by all members who have in total more than 20 customers for every business relationship. At least two risk categories have to be chosen and assessed.`, fields: [ { - id: TalerFormAttributes.VQF_902_4.COUNTRY_RISK_NATIONALITY_TYPE.id, + id: TalerFormAttributes.COUNTRY_RISK_NATIONALITY_TYPE, label: i18n.str`Country risk type (nationality)`, choices: [ { @@ -102,9 +101,8 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.COUNTRY_RISK_NATIONALITY_LEVEL.id, + id: TalerFormAttributes.COUNTRY_RISK_NATIONALITY_LEVEL, label: i18n.str`Country risk level (nationality)`, - // "'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING' | 'BUSINESS_ACTIVITY' | 'PAYMENTS'", choices: [ { label: i18n.str`Low`, @@ -126,7 +124,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.COUNTRY_RISK_BUSINESS_TYPE.id, + id: TalerFormAttributes.COUNTRY_RISK_BUSINESS_TYPE, label: i18n.str`Country risk type (business activity)`, choices: [ { @@ -142,7 +140,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.COUNTRY_RISK_BUSINESS_LEVEL.id, + id: TalerFormAttributes.COUNTRY_RISK_BUSINESS_LEVEL, label: i18n.str`Country risk level (business activity)`, choices: [ { @@ -165,7 +163,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.COUNTRY_RISK_PAYMENTS_LEVEL.id, + id: TalerFormAttributes.COUNTRY_RISK_PAYMENTS_LEVEL, label: i18n.str`Country risk level (payments)`, help: i18n.str`Contry of origin ad destination of the frequent payments (if known)`, choices: [ @@ -189,7 +187,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.INDUSTRY_RISK_TYPE.id, + id: TalerFormAttributes.INDUSTRY_RISK_TYPE, label: i18n.str`Industry risk type`, help: i18n.str`Nature of customer's business activity`, type: "choiceStacked", @@ -203,7 +201,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.INDUSTRY_RISK_LEVEL.id, + id: TalerFormAttributes.INDUSTRY_RISK_LEVEL, label: i18n.str`Industry risk level`, type: "choiceStacked", choices: [ @@ -231,7 +229,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.CONTACT_RISK_LEVEL.id, + id: TalerFormAttributes.CONTACT_RISK_LEVEL, label: i18n.str`Contact risk level`, help: i18n.str`Type of contact to the customer/benefcial owner of the assets.`, choices: [ @@ -253,10 +251,9 @@ export function VQF_902_4( }, { - id: TalerFormAttributes.VQF_902_4.PRODUCT_RISK_LEVEL.id, + id: TalerFormAttributes.PRODUCT_RISK_LEVEL, label: i18n.str`Product risk level`, help: i18n.str`Nature of services and products requested by the customer.`, - // "'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 'FREQ_TRANS_WITH_HIGH_RISK'", type: "choiceStacked", choices: [ { @@ -290,55 +287,14 @@ export function VQF_902_4( ], required: false, }, - - { - id: TalerFormAttributes.VQF_902_4.EXTRA_CRITERA_1_RISK_DEFINITION - .id, - label: i18n.str`1. Extra criteria risk`, - help: i18n.str`Criteria defined by the member.`, - type: "textArea", - required: false, - }, - { - id: TalerFormAttributes.VQF_902_4.EXTRA_CRITERA_1_RISK_LEVEL.id, - label: i18n.str`1. Extra criteria level`, - choices: [ - { label: i18n.str`Low`, value: "LOW" }, - { label: i18n.str`Medium`, value: "MEDIUM" }, - { label: i18n.str`High`, value: "HIGH" }, - ], - type: "choiceHorizontal", - required: false, - }, - { - id: TalerFormAttributes.VQF_902_4.EXTRA_CRITERA_2_RISK_DEFINITION - .id, - label: i18n.str`2. Extra criteria risk`, - help: i18n.str`Criteria defined by the member.`, - type: "textArea", - required: false, - }, - { - id: TalerFormAttributes.VQF_902_4.EXTRA_CRITERA_2_RISK_LEVEL.id, - label: i18n.str`2. Extra criteria level`, - choices: [ - { label: i18n.str`Low`, value: "LOW" }, - { label: i18n.str`Medium`, value: "MEDIUM" }, - { label: i18n.str`High`, value: "HIGH" }, - ], - type: "choiceHorizontal", - required: false, - }, - { - id: TalerFormAttributes.VQF_902_4.RISK_JUSTIFICATION.id, + id: TalerFormAttributes.RISK_JUSTIFICATION, label: i18n.str`Justification for differing risk assessment`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_4.RISK_CLASIFICATION_ACCEPTANCE_DATE - .id, + id: TalerFormAttributes.RISK_CLASIFICATION_ACCEPTANCE_DATE, label: i18n.str`Acceptance date`, help: i18n.str`When the decision of the Senior executive body on the acceptance of a business relationship with increased risk was obtained on.`, type: "isoDateText", @@ -347,7 +303,7 @@ export function VQF_902_4( required: false, }, { - id: TalerFormAttributes.VQF_902_4.RISK_CLASIFICATION_LEVEL.id, + id: TalerFormAttributes.RISK_CLASIFICATION_LEVEL, label: i18n.str`Risk clasification`, help: i18n.str`Conclusion whether the business relationship is with or without increased risk.`, choices: [ @@ -359,11 +315,6 @@ export function VQF_902_4( }, ], }, - // This fields seeems to be related to legitimization rules. - // { - // title: i18n.str`Criteria for identification of increased risk transactions (transaction monitoring)`, - // fields: fieldsBySections["4"], - // }, ], }; } diff --git a/packages/web-util/src/forms/gana/VQF_902_5.ts b/packages/web-util/src/forms/gana/VQF_902_5.ts @@ -14,7 +14,7 @@ export function VQF_902_5( title: i18n.str`Business activity`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_PROFESSION.id, + id: TalerFormAttributes.BIZREL_PROFESSION, label: i18n.str`Profession, business activities, etc. (former, current, potentially planned)`, type: "text", required: false, @@ -25,7 +25,7 @@ export function VQF_902_5( title: i18n.str`Financial circumstances`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_INCOME.id, + id: TalerFormAttributes.BIZREL_INCOME, label: i18n.str`Income and assets, liabilities (estimated)`, type: "textArea", required: false, @@ -36,26 +36,19 @@ export function VQF_902_5( title: i18n.str`Origin of the deposited assets involved`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_NATURE.id, + id: TalerFormAttributes.BIZREL_ORIGIN_NATURE, label: i18n.str`Nature`, type: "text", required: true, }, - // { - // id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CURRENCY.id, - // label: i18n.str`Currency`, - // type: "selectOne", - // choices: currencyNameList(i18n), - // required: true, - // }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_AMOUNT.id, + id: TalerFormAttributes.BIZREL_ORIGIN_AMOUNT, label: i18n.str`Amount`, type: "integer", required: true, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CATEGORY.id, + id: TalerFormAttributes.BIZREL_ORIGIN_CATEGORY, label: i18n.str`Category`, type: "choiceStacked", choices: [ @@ -70,20 +63,18 @@ export function VQF_902_5( required: true, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CATEGORY_OTHER.id, + id: TalerFormAttributes.BIZREL_ORIGIN_CATEGORY_OTHER, type: "text", label: i18n.str`Category clarification`, required: true, hide(value, root) { return ( - root[ - TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CATEGORY.id - ] !== "OTHER" + root[TalerFormAttributes.BIZREL_ORIGIN_CATEGORY] !== "OTHER" ); }, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_DETAIL.id, + id: TalerFormAttributes.BIZREL_ORIGIN_DETAIL, label: i18n.str`Detail description of the origings/economical background of the assets involved in the business relationship`, type: "textArea", required: false, @@ -94,42 +85,39 @@ export function VQF_902_5( title: i18n.str`Nature and purpose of the business relationship`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_PURPOSE.id, + id: TalerFormAttributes.BIZREL_PURPOSE, label: i18n.str`Purpose of the business relationship`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_DEVELOPMENT.id, + id: TalerFormAttributes.BIZREL_DEVELOPMENT, label: i18n.str`Information on the planned development of the business relationship and the assets`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_FINANCIAL_VOLUME.id, + id: TalerFormAttributes.BIZREL_FINANCIAL_VOLUME, label: i18n.str`Detail on usual business volume`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_5 - .BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS.id, + id: TalerFormAttributes.BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS, label: i18n.str`Address`, help: i18n.str`Information of the beneficiary`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_5 - .BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT.id, + id: TalerFormAttributes.BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT, label: i18n.str`Bank account`, help: i18n.str`Information of the beneficiary`, type: "text", required: false, }, { - id: TalerFormAttributes.VQF_902_5 - .BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME.id, + id: TalerFormAttributes.BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME, label: i18n.str`Full name`, help: i18n.str`Information of the beneficiary`, type: "text", @@ -141,19 +129,19 @@ export function VQF_902_5( title: i18n.str`Relationship with third parties`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_THIRDPARTY_RELATIONSHIP.id, + id: TalerFormAttributes.BIZREL_THIRDPARTY_RELATIONSHIP, label: i18n.str`Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship`, type: "textArea", required: false, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_THIRDPARTY_AMLA_FILES.id, + id: TalerFormAttributes.BIZREL_THIRDPARTY_AMLA_FILES, label: i18n.str`Relation to other AMLA-Files`, type: "textArea", required: false, }, { - id: TalerFormAttributes.VQF_902_5.BIZREL_THIRDPARTY_REFERENCES.id, + id: TalerFormAttributes.BIZREL_THIRDPARTY_REFERENCES, label: i18n.str`Introducer / agents / references`, type: "textArea", required: false, @@ -164,7 +152,7 @@ export function VQF_902_5( title: i18n.str`Further information`, fields: [ { - id: TalerFormAttributes.VQF_902_5.BIZREL_FURTHER_INFO.id, + id: TalerFormAttributes.BIZREL_FURTHER_INFO, label: i18n.str`Other relevant information`, type: "textArea", required: false, diff --git a/packages/web-util/src/forms/gana/VQF_902_9.stories.tsx b/packages/web-util/src/forms/gana/VQF_902_9.stories.tsx @@ -1,6 +1,6 @@ /* This file is part of GNU Taler - (C) 2022 Taler Systems S.A. + (C) 2025 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 @@ -31,8 +31,8 @@ export default { setupI18n("en", {}); type TargetObject = {}; const initial: TargetObject = { - [TalerFormAttributes.VQF_902_9.SIGNATURE.id]: "The officer", - [TalerFormAttributes.VQF_902_9.SIGN_DATE.id]: AbsoluteTime.now(), + [TalerFormAttributes.SIGNATURE]: "The officer", + [TalerFormAttributes.SIGN_DATE]: AbsoluteTime.now(), }; export const EmptyForm = tests.createExample(TestedComponent, { diff --git a/packages/web-util/src/forms/gana/VQF_902_9.ts b/packages/web-util/src/forms/gana/VQF_902_9.ts @@ -15,7 +15,7 @@ export function VQF_902_9( title: i18n.str`Declaration of identity of the beneficial owner (A)`, fields: [ { - id: TalerFormAttributes.VQF_902_9.IDENTITY_CONTRACTING_PARTNER.id, + id: TalerFormAttributes.IDENTITY_CONTRACTING_PARTNER, label: i18n.str`Contracting partner`, type: "textArea", required: true, @@ -26,7 +26,7 @@ export function VQF_902_9( title: i18n.str`The contracting partner hereby declares that:`, fields: [ { - id: TalerFormAttributes.VQF_902_9.IDENTITY_LIST.id, + id: TalerFormAttributes.IDENTITY_LIST, label: i18n.str`Persons`, help: i18n.str`the person(s) listed below is/are the beneficial owner(s) of the assets involved in the business relationship. If the contracting partner is also the sole beneficial owner of the assets, the contracting partner's detail must be set out below`, type: "array", @@ -36,25 +36,22 @@ export function VQF_902_9( } return undefined; }, - labelFieldId: - TalerFormAttributes.VQF_902_9_identity.IDENTITY_FULL_NAME.id, + labelFieldId: TalerFormAttributes.IDENTITY_FULL_NAME, fields: [ { - id: TalerFormAttributes.VQF_902_9_identity.IDENTITY_FULL_NAME - .id, + id: TalerFormAttributes.IDENTITY_FULL_NAME, label: i18n.str`Full name`, type: "text", required: true, }, { - id: TalerFormAttributes.VQF_902_9_identity.IDENTITY_DOMICILE.id, + id: TalerFormAttributes.IDENTITY_DOMICILE, label: i18n.str`Domicile`, type: "textArea", required: true, }, { - id: TalerFormAttributes.VQF_902_9_identity.IDENTITY_BIRTHDATE - .id, + id: TalerFormAttributes.IDENTITY_BIRTHDATE, label: i18n.str`Birhtdate`, type: "isoDateText", placeholder: "dd/MM/yyyy", @@ -62,8 +59,7 @@ export function VQF_902_9( required: true, }, { - id: TalerFormAttributes.VQF_902_9_identity.IDENTITY_NATIONALITY - .id, + id: TalerFormAttributes.IDENTITY_NATIONALITY, label: i18n.str`Nationality`, type: "selectOne", choices: countryNationalityList(i18n), @@ -82,14 +78,14 @@ export function VQF_902_9( label: i18n.str`The contracting partner hereby undertakes to inform automatically of any changes to the information contained herein.`, }, { - id: TalerFormAttributes.VQF_902_9.SIGNATURE.id, + id: TalerFormAttributes.SIGNATURE, label: i18n.str`Signature`, type: "text", required: true, disabled: true, }, { - id: TalerFormAttributes.VQF_902_9.SIGN_DATE.id, + id: TalerFormAttributes.SIGN_DATE, label: i18n.str`Date`, type: "absoluteTimeText", placeholder: "dd/MM/yyyy", diff --git a/packages/web-util/src/forms/gana/index.stories.ts b/packages/web-util/src/forms/gana/index.stories.ts @@ -1,9 +1,8 @@ export * as a1 from "./GLS_Onboarding.stories.js"; +export * as a6 from "./VQF_902_11.stories.js"; +export * as a9 from "./VQF_902_14.stories.js"; export * as a22 from "./VQF_902_1_customer.stories.js"; export * as a23 from "./VQF_902_1_officer.stories.js"; export * as a3 from "./VQF_902_4.stories.js"; export * as a4 from "./VQF_902_5.stories.js"; export * as a5 from "./VQF_902_9.stories.js"; -export * as a6 from "./VQF_902_11.stories.js"; -export * as a7 from "./VQF_902_12.stories.js"; -export * as a9 from "./VQF_902_14.stories.js"; diff --git a/packages/web-util/src/forms/gana/taler_aml_properties.ts b/packages/web-util/src/forms/gana/taler_aml_properties.ts @@ -0,0 +1,32 @@ +/* + This file is part of GNU Taler + (C) 2022-2025 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/> + */ + +/** + * List of all known Taler AML properties, + * across dialects. + */ +export const TalerAmlProperties = { + AML_ACCOUNT_ACTIVE_DEPOSIT: "AML_ACCOUNT_ACTIVE_DEPOSIT", + AML_DOMESTIC_PEP: "AML_DOMESTIC_PEP", + AML_FOREIGN_PEP: "AML_FOREIGN_PEP", + AML_HIGH_RISK_BUSINESS: "AML_HIGH_RISK_BUSINESS", + AML_HIGH_RISK_COUNTRY: "AML_HIGH_RISK_COUNTRY", + AML_INVESTIGATION_ART6_COMPLETED: "AML_INVESTIGATION_ART6_COMPLETED", + AML_INVESTIGATION_ART6_FAILED: "AML_INVESTIGATION_ART6_FAILED", + AML_MROS_REPORTED_ART305: "AML_MROS_REPORTED_ART305", + AML_MROS_REPORTED_ART9: "AML_MROS_REPORTED_ART9", + AML_NO_OPERATION_DURING_PERIOD: "AML_NO_OPERATION_DURING_PERIOD", +}; diff --git a/packages/web-util/src/forms/gana/taler_form_attributes.ts b/packages/web-util/src/forms/gana/taler_form_attributes.ts @@ -20,2538 +20,1489 @@ Note: the LGPL does not apply to all components of GNU Taler, but it does apply to this file. */ -import { UIHandlerId } from "@gnu-taler/web-util/browser"; - -type FormFieldInfo = { - id: UIHandlerId; - description: String; -} +/** + * Imports. + */ +import { UIHandlerId } from "@gnu-taler/web-util/browser"; -export namespace TalerFormAttributes { - export const VQF_902_1 = { +export const TalerFormAttributes = { /** - * Description: + * Description: Suppress flagging this account when it creates a hit on a sanctions list, this is a false-positive. * - * GANA Type: BusinessAddress + * GANA Type: Boolean */ - ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS: { - id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS" as UIHandlerId, - description: "", - } as FormFieldInfo, + SANCTION_LIST_SUPPRESS: "SANCTION_LIST_SUPPRESS" as UIHandlerId, /** - * Description: + * Description: When the form was completed. * - * GANA Type: String + * GANA Type: AbsoluteDateTime */ - ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME: { - id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FORM_FILLING_DATE: "FORM_FILLING_DATE" as UIHandlerId, /** - * Description: + * Description: Customer system ID required to correlate different AML forms. * - * GANA Type: 'TO_THE_CUSTOMER' | 'HOLD_AT_BANK' | 'TO_THE_MEMBER' | 'TO_A_THIRD_PARTY' + * GANA Type: String */ - ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE: { - id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + CUSTOMER_ID: "CUSTOMER_ID" as UIHandlerId, /** - * Description: Conclusion of the conract + * Description: Contracing partner signature, * - * GANA Type: AbsoluteDate + * GANA Type: AbsoluteDateTime */ - ACCEPTANCE_DATE: { - id: "ACCEPTANCE_DATE" as UIHandlerId, - description: "Conclusion of the conract", - } as FormFieldInfo, + SIGN_DATE: "SIGN_DATE" as UIHandlerId, /** * Description: * * GANA Type: String */ - ACCEPTANCE_FURTHER_INFO: { - id: "ACCEPTANCE_FURTHER_INFO" as UIHandlerId, - description: "", - } as FormFieldInfo, + SIGNATURE: "SIGNATURE" as UIHandlerId, /** * Description: * - * GANA Type: LangCode + * GANA Type: 'NATURAL_PERSON' | 'LEGAL_ENTITY' */ - ACCEPTANCE_LANGUAGE: { - id: "ACCEPTANCE_LANGUAGE" as UIHandlerId, - description: "", - } as FormFieldInfo, + CUSTOMER_INFO_TYPE: "CUSTOMER_INFO_TYPE" as UIHandlerId, /** * Description: * - * GANA Type: 'FACE_TO_FACE' | 'AUTHENTICATED_COPY' | 'RESIDENTIAL_ADDRESS_VALIDATED' + * GANA Type: String */ - ACCEPTANCE_METHOD: { - id: "ACCEPTANCE_METHOD" as UIHandlerId, - description: "", - } as FormFieldInfo, + CUSTOMER_NATURAL_FULL_NAME: "CUSTOMER_NATURAL_FULL_NAME" as UIHandlerId, /** - * Description: If the customer is a legal entity. + * Description: If the customer is a natural person. * - * GANA Type: BusinessAddress + * GANA Type: Phone */ - CUSTOMER_ENTITY_ADDRESS: { - id: "CUSTOMER_ENTITY_ADDRESS" as UIHandlerId, - description: "If the customer is a legal entity.", - } as FormFieldInfo, + CUSTOMER_NATURAL_PHONE: "CUSTOMER_NATURAL_PHONE" as UIHandlerId, /** - * Description: If the customer is a legal entity. + * Description: If the customer is a natural person. * - * GANA Type: String + * GANA Type: ISO Date */ - CUSTOMER_ENTITY_COMPANY_NAME: { - id: "CUSTOMER_ENTITY_COMPANY_NAME" as UIHandlerId, - description: "If the customer is a legal entity.", - } as FormFieldInfo, + DATE_OF_BIRTH: "DATE_OF_BIRTH" as UIHandlerId, /** - * Description: If the customer is a legal entity. + * Description: If the customer is a natural person. * - * GANA Type: String + * GANA Type: File */ - CUSTOMER_ENTITY_CONTACT_PERSON_NAME: { - id: "CUSTOMER_ENTITY_CONTACT_PERSON_NAME" as UIHandlerId, - description: "If the customer is a legal entity.", - } as FormFieldInfo, + PERSONAL_IDENTIFICATION_DOCUMENT_COPY: "PERSONAL_IDENTIFICATION_DOCUMENT_COPY" as UIHandlerId, /** - * Description: If the customer is a legal entity. + * Description: Is the customer a sole proprietor? * - * GANA Type: Email + * GANA Type: Boolean */ - CUSTOMER_ENTITY_EMAIL: { - id: "CUSTOMER_ENTITY_EMAIL" as UIHandlerId, - description: "If the customer is a legal entity.", - } as FormFieldInfo, + CUSTOMER_IS_SOLE_PROPRIETOR: "CUSTOMER_IS_SOLE_PROPRIETOR" as UIHandlerId, /** - * Description: Not older than 12 month + * Description: If the customer is a natural person. * * GANA Type: String */ - CUSTOMER_ENTITY_ID: { - id: "CUSTOMER_ENTITY_ID" as UIHandlerId, - description: "Not older than 12 month", - } as FormFieldInfo, + COMPANY_NAME: "COMPANY_NAME" as UIHandlerId, /** * Description: * - * GANA Type: File + * GANA Type: String */ - CUSTOMER_ENTITY_ID_COPY: { - id: "CUSTOMER_ENTITY_ID_COPY" as UIHandlerId, - description: "", - } as FormFieldInfo, + REGISTERED_OFFICE_ADDRESS: "REGISTERED_OFFICE_ADDRESS" as UIHandlerId, /** - * Description: If the customer is a legal entity. + * Description: If the customer is a legal person. * - * GANA Type: Phone + * GANA Type: String */ - CUSTOMER_ENTITY_PHONE: { - id: "CUSTOMER_ENTITY_PHONE" as UIHandlerId, - description: "If the customer is a legal entity.", - } as FormFieldInfo, + LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY: "LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: If the customer is a legal entity. * * GANA Type: String */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + CUSTOMER_ENTITY_COMPANY_NAME: "CUSTOMER_ENTITY_COMPANY_NAME" as UIHandlerId, /** - * Description: + * Description: If the customer is a legal entity. * - * GANA Type: 'NATURAL_PERSON' | 'LEGAL_ENTITY' + * GANA Type: BusinessAddress */ - CUSTOMER_INFO_TYPE: { - id: "CUSTOMER_INFO_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + CUSTOMER_ENTITY_ADDRESS: "CUSTOMER_ENTITY_ADDRESS" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: If the customer is a legal entity. * - * GANA Type: AbsoluteDate + * GANA Type: String */ - CUSTOMER_NATURAL_BIRTHDATE: { - id: "CUSTOMER_NATURAL_BIRTHDATE" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + CUSTOMER_ENTITY_CONTACT_PERSON_NAME: "CUSTOMER_ENTITY_CONTACT_PERSON_NAME" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: If the customer is a legal entity. * - * GANA Type: String + * GANA Type: Phone */ - CUSTOMER_NATURAL_COMPANY_ID_DOC: { - id: "CUSTOMER_NATURAL_COMPANY_ID_DOC" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + CUSTOMER_ENTITY_PHONE: "CUSTOMER_ENTITY_PHONE" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: * * GANA Type: String */ - CUSTOMER_NATURAL_COMPANY_NAME: { - id: "CUSTOMER_NATURAL_COMPANY_NAME" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + BUSINESS_IDENTIFICATION_: "BUSINESS_IDENTIFICATION_" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: List of founder with the fields below. * - * GANA Type: Email + * GANA Type: Form<VQF_902_1_founder>[] */ - CUSTOMER_NATURAL_EMAIL: { - id: "CUSTOMER_NATURAL_EMAIL" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + ESTABLISHER_LIST: "ESTABLISHER_LIST" as UIHandlerId, /** - * Description: + * Description: Full name of a natural person. * * GANA Type: String */ - CUSTOMER_NATURAL_FULL_NAME: { - id: "CUSTOMER_NATURAL_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FULL_NAME: "FULL_NAME" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: Domicile address. A domicile is a place where you live, an address is just a place where you receive mail. A residential address is somewhere you live but not necessarily your primary place. * - * GANA Type: CountryCode + * GANA Type: ResidentialAddress */ - CUSTOMER_NATURAL_NATIONALITY: { - id: "CUSTOMER_NATURAL_NATIONALITY" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + DOMICILE_ADDRESS: "DOMICILE_ADDRESS" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: Nationality, expressed as a country code. * - * GANA Type: String + * GANA Type: CountryCode */ - CUSTOMER_NATURAL_NATIONAL_ID: { - id: "CUSTOMER_NATURAL_NATIONAL_ID" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + NATIONALITY: "NATIONALITY" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: Signatory of representation * - * GANA Type: File + * GANA Type: String */ - CUSTOMER_NATURAL_NATIONAL_ID_COPY: { - id: "CUSTOMER_NATURAL_NATIONAL_ID_COPY" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + SIGNING_AUTHORITY: "SIGNING_AUTHORITY" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: * - * GANA Type: Phone + * GANA Type: String */ - CUSTOMER_NATURAL_PHONE: { - id: "CUSTOMER_NATURAL_PHONE" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + FOUNDER_NATIONAL_ID: "FOUNDER_NATIONAL_ID" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: * - * GANA Type: String + * GANA Type: File */ - CUSTOMER_NATURAL_REGISTERED_OFFICE: { - id: "CUSTOMER_NATURAL_REGISTERED_OFFICE" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + FOUNDER_NATIONAL_COPY: "FOUNDER_NATIONAL_COPY" as UIHandlerId, /** - * Description: If the customer is a natural person. + * Description: * - * GANA Type: ResidentialAddress + * GANA Type: 'CR' | 'MANDATE' | 'OTHER' */ - CUSTOMER_NATURAL_RESIDENTIAL: { - id: "CUSTOMER_NATURAL_RESIDENTIAL" as UIHandlerId, - description: "If the customer is a natural person.", - } as FormFieldInfo, + SIGNING_AUTHORITY_EVIDENCE: "SIGNING_AUTHORITY_EVIDENCE" as UIHandlerId, /** - * Description: Establishment of the beneficial owner of the assets and/or contrilling person + * Description: * - * GANA Type: 'NATURAL' | 'OPERATIONAL' | 'FOUNDATION' | 'TRUST' | 'LIFE_INSURANCE' | 'OTHER' + * GANA Type: String */ - CUSTOMER_TYPE: { - id: "CUSTOMER_TYPE" as UIHandlerId, - description: "Establishment of the beneficial owner of the assets and/or contrilling person", - } as FormFieldInfo, + SIGNING_AUTHORITY_EVIDENCE_OTHER: "SIGNING_AUTHORITY_EVIDENCE_OTHER" as UIHandlerId, /** - * Description: Verification whether the customer, beneficial owners of the assets, controlling persons, authorised representatives or other involved persons are listed on an embargo-/terrorism list (date of verification/result) + * Description: Conclusion of the conract * - * GANA Type: Paragraph + * GANA Type: AbsoluteDate */ - EMBARGO_TERRORISM_INFO: { - id: "EMBARGO_TERRORISM_INFO" as UIHandlerId, - description: "Verification whether the customer, beneficial owners of the assets, controlling persons, authorised representatives or other involved persons are listed on an embargo-/terrorism list (date of verification/result)", - } as FormFieldInfo, + ACCEPTANCE_DATE: "ACCEPTANCE_DATE" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: 'FACE_TO_FACE' | 'AUTHENTICATED_COPY' | 'RESIDENTIAL_ADDRESS_VALIDATED' */ - ENCLOSURE_BENEFICIAL_OWNER: { - id: "ENCLOSURE_BENEFICIAL_OWNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTANCE_METHOD: "ACCEPTANCE_METHOD" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: 'TO_THE_CUSTOMER' | 'HOLD_AT_BANK' | 'TO_THE_MEMBER' | 'TO_A_THIRD_PARTY' */ - ENCLOSURE_CUSTOMER_DOCUMENTS: { - id: "ENCLOSURE_CUSTOMER_DOCUMENTS" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE: "ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: String */ - ENCLOSURE_CUSTOMER_PROFILE: { - id: "ENCLOSURE_CUSTOMER_PROFILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: BusinessAddress */ - ENCLOSURE_IDENTIFICATION_DOCUMENTS: { - id: "ENCLOSURE_IDENTIFICATION_DOCUMENTS" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: LangCode */ - ENCLOSURE_RISK_PROFILE: { - id: "ENCLOSURE_RISK_PROFILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTANCE_LANGUAGE: "ACCEPTANCE_LANGUAGE" as UIHandlerId, /** - * Description: When the form was completed. + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: String */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + ACCEPTANCE_FURTHER_INFO: "ACCEPTANCE_FURTHER_INFO" as UIHandlerId, /** - * Description: List of founder with the fields below. + * Description: Customer type under the VQF classification. Establishment of the beneficial owner of the assets and/or controlling person * - * GANA Type: Form<VQF_902_1_founder>[] + * GANA Type: 'NATURAL' | 'OPERATIONAL' | 'FOUNDATION' | 'TRUST' | 'LIFE_INSURANCE' | 'OTHER' */ - FOUNDER_LIST: { - id: "FOUNDER_LIST" as UIHandlerId, - description: "List of founder with the fields below.", - } as FormFieldInfo, + CUSTOMER_TYPE_VQF: "CUSTOMER_TYPE_VQF" as UIHandlerId, /** - * Description: Purpose of service requested + * Description: Verification whether the customer, beneficial owners of the assets, controlling persons, authorised representatives or other involved persons are listed on an embargo-/terrorism list (date of verification/result) * * GANA Type: Paragraph */ - RELATIONSHIP_PURPOSE: { - id: "RELATIONSHIP_PURPOSE" as UIHandlerId, - description: "Purpose of service requested", - } as FormFieldInfo, + EMBARGO_TERRORISM_INFO: "EMBARGO_TERRORISM_INFO" as UIHandlerId, /** * Description: * * GANA Type: 'MONEY_EXCHANGE' | 'MONEY_ASSET_TRANSFER' | 'OTHER' */ - RELATIONSHIP_TYPE: { - id: "RELATIONSHIP_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + RELATIONSHIP_TYPE: "RELATIONSHIP_TYPE" as UIHandlerId, /** * Description: * * GANA Type: String */ - RELATIONSHIP_TYPE_OTHER: { - id: "RELATIONSHIP_TYPE_OTHER" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_11 = { + RELATIONSHIP_TYPE_OTHER: "RELATIONSHIP_TYPE_OTHER" as UIHandlerId, /** - * Description: + * Description: Purpose of service requested * * GANA Type: Paragraph */ - CONTROLLING_ENTITY_CONTRACTING_PARTNER: { - id: "CONTROLLING_ENTITY_CONTRACTING_PARTNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + RELATIONSHIP_PURPOSE: "RELATIONSHIP_PURPOSE" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: Boolean */ - CONTROLLING_ENTITY_DOMICILE: { - id: "CONTROLLING_ENTITY_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + ENCLOSURE_CUSTOMER_DOCUMENTS: "ENCLOSURE_CUSTOMER_DOCUMENTS" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: Boolean */ - CONTROLLING_ENTITY_FULL_NAME: { - id: "CONTROLLING_ENTITY_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + ENCLOSURE_IDENTIFICATION_DOCUMENTS: "ENCLOSURE_IDENTIFICATION_DOCUMENTS" as UIHandlerId, /** * Description: * - * GANA Type: '25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR' + * GANA Type: Boolean */ - CONTROLLING_ENTITY_LEVEL: { - id: "CONTROLLING_ENTITY_LEVEL" as UIHandlerId, - description: "", - } as FormFieldInfo, + ENCLOSURE_BENEFICIAL_OWNER: "ENCLOSURE_BENEFICIAL_OWNER" as UIHandlerId, /** - * Description: Is a third person the beneficial owner of the assets? + * Description: * * GANA Type: Boolean */ - CONTROLLING_ENTITY_THIRD_PERSON: { - id: "CONTROLLING_ENTITY_THIRD_PERSON" as UIHandlerId, - description: "Is a third person the beneficial owner of the assets?", - } as FormFieldInfo, + ENCLOSURE_CUSTOMER_PROFILE: "ENCLOSURE_CUSTOMER_PROFILE" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: * - * GANA Type: String + * GANA Type: Boolean */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + ENCLOSURE_RISK_PROFILE: "ENCLOSURE_RISK_PROFILE" as UIHandlerId, /** - * Description: When the form was completed. + * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 1' * - * GANA Type: AbsoluteDateTime + * GANA Type: Boolean */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + PEP_FOREIGN: "PEP_FOREIGN" as UIHandlerId, /** - * Description: + * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 2' * - * GANA Type: String + * GANA Type: Boolean */ - SIGNATURE: { - id: "SIGNATURE" as UIHandlerId, - description: "", - } as FormFieldInfo, + PEP_DOMESTIC: "PEP_DOMESTIC" as UIHandlerId, /** - * Description: Contracing partner signature, + * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 3' + * + * GANA Type: Boolean + */ + PEP_INTERNATIONAL_ORGANIZATION: "PEP_INTERNATIONAL_ORGANIZATION" as UIHandlerId, + /** + * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ * * GANA Type: AbsoluteDateTime */ - SIGN_DATE: { - id: "SIGN_DATE" as UIHandlerId, - description: "Contracing partner signature,", - } as FormFieldInfo, - } as const; - export const VQF_902_12 = { + PEP_ACCEPTANCE_DATE: "PEP_ACCEPTANCE_DATE" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: True if the person is in a country for which FATF requires incresed dilegence. * - * GANA Type: String + * GANA Type: Boolean */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + HIGH_RISK_COUNTRY: "HIGH_RISK_COUNTRY" as UIHandlerId, /** - * Description: When the form was completed. + * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ * * GANA Type: AbsoluteDateTime */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + HIGH_RISK_ACCEPTANCE_DATE: "HIGH_RISK_ACCEPTANCE_DATE" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: 'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING' */ - FOUNDATION_BENEFICIARY_ADDITION: { - id: "FOUNDATION_BENEFICIARY_ADDITION" as UIHandlerId, - description: "", - } as FormFieldInfo, + COUNTRY_RISK_NATIONALITY_TYPE: "COUNTRY_RISK_NATIONALITY_TYPE" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: Form<VQF_902_12_beneficiary>[] + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - FOUNDATION_BENEFICIARY_LIST: { - id: "FOUNDATION_BENEFICIARY_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + COUNTRY_RISK_NATIONALITY_LEVEL: "COUNTRY_RISK_NATIONALITY_LEVEL" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: 'CUSTOMER' | 'OWNER' */ - FOUNDATION_CONTRACTING_PARTNER: { - id: "FOUNDATION_CONTRACTING_PARTNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + COUNTRY_RISK_BUSINESS_TYPE: "COUNTRY_RISK_BUSINESS_TYPE" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: Boolean + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - FOUNDATION_DISCRETIONARY: { - id: "FOUNDATION_DISCRETIONARY" as UIHandlerId, - description: "", - } as FormFieldInfo, + COUNTRY_RISK_BUSINESS_LEVEL: "COUNTRY_RISK_BUSINESS_LEVEL" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: Form<VQF_902_12_founder>[] + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - FOUNDATION_FOUNDER_LIST: { - id: "FOUNDATION_FOUNDER_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + COUNTRY_RISK_PAYMENTS_LEVEL: "COUNTRY_RISK_PAYMENTS_LEVEL" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: 'CUSTOMER' | 'OWNER' */ - FOUNDATION_KNOWN_AS: { - id: "FOUNDATION_KNOWN_AS" as UIHandlerId, - description: "", - } as FormFieldInfo, + INDUSTRY_RISK_TYPE: "INDUSTRY_RISK_TYPE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: 'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' | 'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY' */ - FOUNDATION_NAME: { - id: "FOUNDATION_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + INDUSTRY_RISK_LEVEL: "INDUSTRY_RISK_LEVEL" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: Form<VQF_902_12_pre>[] + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - FOUNDATION_PRE_LIST: { - id: "FOUNDATION_PRE_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + CONTACT_RISK_LEVEL: "CONTACT_RISK_LEVEL" as UIHandlerId, /** * Description: * - * GANA Type: Form<VQF_902_12_representative>[] + * GANA Type: 'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 'FREQ_TRANS_WITH_HIGH_RISK' */ - FOUNDATION_REPRESENTATIVE_LIST: { - id: "FOUNDATION_REPRESENTATIVE_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + PRODUCT_RISK_LEVEL: "PRODUCT_RISK_LEVEL" as UIHandlerId, /** - * Description: + * Description: Criteria description * - * GANA Type: Boolean + * GANA Type: String */ - FOUNDATION_REVOCABLE: { - id: "FOUNDATION_REVOCABLE" as UIHandlerId, - description: "", - } as FormFieldInfo, + EXTRA_CRITERA_1_RISK_DEFINITION: "EXTRA_CRITERA_1_RISK_DEFINITION" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: String + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - SIGNATURE: { - id: "SIGNATURE" as UIHandlerId, - description: "", - } as FormFieldInfo, + EXTRA_CRITERA_1_RISK_LEVEL: "EXTRA_CRITERA_1_RISK_LEVEL" as UIHandlerId, /** - * Description: Contracing partner signature, + * Description: Criteria description * - * GANA Type: AbsoluteDateTime + * GANA Type: String */ - SIGN_DATE: { - id: "SIGN_DATE" as UIHandlerId, - description: "Contracing partner signature,", - } as FormFieldInfo, - } as const; - export const VQF_902_12_beneficiary = { + EXTRA_CRITERA_2_RISK_DEFINITION: "EXTRA_CRITERA_2_RISK_DEFINITION" as UIHandlerId, /** - * Description: + * Description: Based on 902.4.1 country list * - * GANA Type: AbsoluteDate + * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' */ - FOUNDATION_BENEFICIARY_BIRTHDATE: { - id: "FOUNDATION_BENEFICIARY_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + EXTRA_CRITERA_2_RISK_LEVEL: "EXTRA_CRITERA_2_RISK_LEVEL" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: 'WITH' | 'WITHOUT' */ - FOUNDATION_BENEFICIARY_COUNTRY: { - id: "FOUNDATION_BENEFICIARY_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + RISK_CLASIFICATION_LEVEL: "RISK_CLASIFICATION_LEVEL" as UIHandlerId, /** - * Description: + * Description: Justification for differing risk assessment * - * GANA Type: ResidentialAddress + * GANA Type: Paragraph */ - FOUNDATION_BENEFICIARY_DOMICILE: { - id: "FOUNDATION_BENEFICIARY_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + RISK_JUSTIFICATION: "RISK_JUSTIFICATION" as UIHandlerId, /** - * Description: + * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ * - * GANA Type: String + * GANA Type: AbsoluteDateTime */ - FOUNDATION_BENEFICIARY_FULL_NAME: { - id: "FOUNDATION_BENEFICIARY_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + RISK_CLASIFICATION_ACCEPTANCE_DATE: "RISK_CLASIFICATION_ACCEPTANCE_DATE" as UIHandlerId, /** - * Description: + * Description: Profession, business activities, etc. (former, current, potentially planned) * - * GANA Type: CountryCode + * GANA Type: String */ - FOUNDATION_BENEFICIARY_NATIONALITY: { - id: "FOUNDATION_BENEFICIARY_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_PROFESSION: "BIZREL_PROFESSION" as UIHandlerId, /** - * Description: + * Description: Income and assets, liabilities (estimated) * - * GANA Type: Boolean + * GANA Type: String */ - FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM: { - id: "FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_12_founder = { + BIZREL_INCOME: "BIZREL_INCOME" as UIHandlerId, /** - * Description: + * Description: Nature of the involved assets. * - * GANA Type: AbsoluteDate + * GANA Type: String */ - FOUNDATION_FOUNDER_BIRTHDATE: { - id: "FOUNDATION_FOUNDER_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_NATURE: "BIZREL_ORIGIN_NATURE" as UIHandlerId, /** - * Description: + * Description: Currency of the involved assets. * - * GANA Type: CountryCode + * GANA Type: Amount */ - FOUNDATION_FOUNDER_COUNTRY: { - id: "FOUNDATION_FOUNDER_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_CURRENCY: "BIZREL_ORIGIN_CURRENCY" as UIHandlerId, /** - * Description: + * Description: Amount of the involved assets. * - * GANA Type: AbsoluteDate + * GANA Type: Amount */ - FOUNDATION_FOUNDER_DEATHDATE: { - id: "FOUNDATION_FOUNDER_DEATHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_AMOUNT: "BIZREL_ORIGIN_AMOUNT" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: 'SAVINGS' | 'OWN_BUSINESS' | 'INHERITANCE' | 'OTHER' */ - FOUNDATION_FOUNDER_DOMICILE: { - id: "FOUNDATION_FOUNDER_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_CATEGORY: "BIZREL_ORIGIN_CATEGORY" as UIHandlerId, /** * Description: * * GANA Type: String */ - FOUNDATION_FOUNDER_FULL_NAME: { - id: "FOUNDATION_FOUNDER_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_CATEGORY_OTHER: "BIZREL_ORIGIN_CATEGORY_OTHER" as UIHandlerId, /** - * Description: + * Description: Detail description of the origings * - * GANA Type: CountryCode + * GANA Type: Paragraph */ - FOUNDATION_FOUNDER_NATIONALITY: { - id: "FOUNDATION_FOUNDER_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_ORIGIN_DETAIL: "BIZREL_ORIGIN_DETAIL" as UIHandlerId, /** - * Description: + * Description: Purpose of the business relationship. * - * GANA Type: Boolean + * GANA Type: String */ - FOUNDATION_FOUNDER_RIGHT_TO_REVOKE: { - id: "FOUNDATION_FOUNDER_RIGHT_TO_REVOKE" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_12_pre = { + BIZREL_PURPOSE: "BIZREL_PURPOSE" as UIHandlerId, /** - * Description: + * Description: Information on the planned development of the business relationship and the assets. * - * GANA Type: AbsoluteDate + * GANA Type: String */ - FOUNDATION_PRE_BIRTHDATE: { - id: "FOUNDATION_PRE_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_DEVELOPMENT: "BIZREL_DEVELOPMENT" as UIHandlerId, /** - * Description: + * Description: In the case of cash or money and asset transfer transacction with regular customer * - * GANA Type: CountryCode + * GANA Type: String */ - FOUNDATION_PRE_COUNTRY: { - id: "FOUNDATION_PRE_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_FINANCIAL_VOLUME: "BIZREL_FINANCIAL_VOLUME" as UIHandlerId, /** - * Description: + * Description: In the case of cash or money and asset transfer transacction with regular customer * - * GANA Type: AbsoluteDate + * GANA Type: String */ - FOUNDATION_PRE_DEATHDATE: { - id: "FOUNDATION_PRE_DEATHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME: "BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME" as UIHandlerId, /** - * Description: + * Description: In the case of cash or money and asset transfer transacction with regular customer * - * GANA Type: ResidentialAddress + * GANA Type: BusinessAddress */ - FOUNDATION_PRE_DOMICILE: { - id: "FOUNDATION_PRE_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS: "BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS" as UIHandlerId, /** - * Description: + * Description: In the case of cash or money and asset transfer transacction with regular customer * * GANA Type: String */ - FOUNDATION_PRE_FULL_NAME: { - id: "FOUNDATION_PRE_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT: "BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT" as UIHandlerId, /** - * Description: + * Description: Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship. * - * GANA Type: CountryCode + * GANA Type: String */ - FOUNDATION_PRE_NATIONALITY: { - id: "FOUNDATION_PRE_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_12_representative = { + BIZREL_THIRDPARTY_RELATIONSHIP: "BIZREL_THIRDPARTY_RELATIONSHIP" as UIHandlerId, /** - * Description: + * Description: Relation to other AMLA-files. * - * GANA Type: AbsoluteDate + * GANA Type: String */ - FOUNDATION_REPRESENTATIVE_BIRTHDATE: { - id: "FOUNDATION_REPRESENTATIVE_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_THIRDPARTY_AMLA_FILES: "BIZREL_THIRDPARTY_AMLA_FILES" as UIHandlerId, /** - * Description: + * Description: Introducer / agents / references. * - * GANA Type: CountryCode + * GANA Type: String */ - FOUNDATION_REPRESENTATIVE_COUNTRY: { - id: "FOUNDATION_REPRESENTATIVE_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_THIRDPARTY_REFERENCES: "BIZREL_THIRDPARTY_REFERENCES" as UIHandlerId, /** - * Description: + * Description: Other relevant information. * - * GANA Type: ResidentialAddress + * GANA Type: String */ - FOUNDATION_REPRESENTATIVE_DOMICILE: { - id: "FOUNDATION_REPRESENTATIVE_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + BIZREL_FURTHER_INFO: "BIZREL_FURTHER_INFO" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: Paragraph */ - FOUNDATION_REPRESENTATIVE_FULL_NAME: { - id: "FOUNDATION_REPRESENTATIVE_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + IDENTITY_CONTRACTING_PARTNER: "IDENTITY_CONTRACTING_PARTNER" as UIHandlerId, /** - * Description: + * Description: The beneficial owners of the assets involved in the business relationship. * - * GANA Type: CountryCode + * GANA Type: Form<VQF_902_9_identity>[] */ - FOUNDATION_REPRESENTATIVE_NATIONALITY: { - id: "FOUNDATION_REPRESENTATIVE_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + IDENTITY_LIST: "IDENTITY_LIST" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: String */ - FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE: { - id: "FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13 = { + IDENTITY_FULL_NAME: "IDENTITY_FULL_NAME" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: * - * GANA Type: String + * GANA Type: AbsoluteDate */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + IDENTITY_BIRTHDATE: "IDENTITY_BIRTHDATE" as UIHandlerId, /** - * Description: When the form was completed. + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: CountryCode */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + IDENTITY_NATIONALITY: "IDENTITY_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: ResidentialAddress */ - SIGNATURE: { - id: "SIGNATURE" as UIHandlerId, - description: "", - } as FormFieldInfo, + IDENTITY_DOMICILE: "IDENTITY_DOMICILE" as UIHandlerId, /** - * Description: Contracing partner signature, + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: Paragraph */ - SIGN_DATE: { - id: "SIGN_DATE" as UIHandlerId, - description: "Contracing partner signature,", - } as FormFieldInfo, + CONTROLLING_ENTITY_CONTRACTING_PARTNER: "CONTROLLING_ENTITY_CONTRACTING_PARTNER" as UIHandlerId, /** * Description: * - * GANA Type: Form<VQF_902_13_beneficiary>[] + * GANA Type: '25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR' */ - TRUST_BENEFICIARY_LIST: { - id: "TRUST_BENEFICIARY_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + CONTROLLING_ENTITY_LEVEL: "CONTROLLING_ENTITY_LEVEL" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: String */ - TRUST_CONTRACTING_PARTNER: { - id: "TRUST_CONTRACTING_PARTNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + CONTROLLING_ENTITY_FULL_NAME: "CONTROLLING_ENTITY_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: ResidentialAddress */ - TRUST_DISCRETIONARY: { - id: "TRUST_DISCRETIONARY" as UIHandlerId, - description: "", - } as FormFieldInfo, + CONTROLLING_ENTITY_DOMICILE: "CONTROLLING_ENTITY_DOMICILE" as UIHandlerId, /** - * Description: + * Description: Is a third person the beneficial owner of the assets? * - * GANA Type: Form<VQF_902_13_further>[] + * GANA Type: Boolean */ - TRUST_FURTHER_LIST: { - id: "TRUST_FURTHER_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + CONTROLLING_ENTITY_THIRD_PERSON: "CONTROLLING_ENTITY_THIRD_PERSON" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: Paragraph */ - TRUST_KNOWN_AS: { - id: "TRUST_KNOWN_AS" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_CONTRACTING_PARTNER: "FOUNDATION_CONTRACTING_PARTNER" as UIHandlerId, /** * Description: * * GANA Type: String */ - TRUST_NAME: { - id: "TRUST_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_KNOWN_AS: "FOUNDATION_KNOWN_AS" as UIHandlerId, /** * Description: * - * GANA Type: Form<VQF_902_13_pre>[] + * GANA Type: String */ - TRUST_PRE_LIST: { - id: "TRUST_PRE_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_NAME: "FOUNDATION_NAME" as UIHandlerId, /** * Description: * - * GANA Type: Form<VQF_902_13_protector>[] + * GANA Type: Boolean */ - TRUST_PROTECTOR_LIST: { - id: "TRUST_PROTECTOR_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_DISCRETIONARY: "FOUNDATION_DISCRETIONARY" as UIHandlerId, /** * Description: * * GANA Type: Boolean */ - TRUST_REVOCABLE: { - id: "TRUST_REVOCABLE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REVOCABLE: "FOUNDATION_REVOCABLE" as UIHandlerId, /** * Description: * - * GANA Type: Form<VQF_902_13_settlor>[] + * GANA Type: Form<VQF_902_12_founder>[] */ - TRUST_SETTLOR_LIST: { - id: "TRUST_SETTLOR_LIST" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13_beneficiary = { + FOUNDATION_FOUNDER_LIST: "FOUNDATION_FOUNDER_LIST" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: String */ - TRUST_BENEFICIARY_ADDITION: { - id: "TRUST_BENEFICIARY_ADDITION" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_FULL_NAME: "FOUNDATION_FOUNDER_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: ResidentialAddress */ - TRUST_BENEFICIARY_BIRTHDATE: { - id: "TRUST_BENEFICIARY_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_DOMICILE: "FOUNDATION_FOUNDER_DOMICILE" as UIHandlerId, /** * Description: * * GANA Type: CountryCode */ - TRUST_BENEFICIARY_COUNTRY: { - id: "TRUST_BENEFICIARY_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_COUNTRY: "FOUNDATION_FOUNDER_COUNTRY" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: AbsoluteDate */ - TRUST_BENEFICIARY_DOMICILE: { - id: "TRUST_BENEFICIARY_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_BIRTHDATE: "FOUNDATION_FOUNDER_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - TRUST_BENEFICIARY_FULL_NAME: { - id: "TRUST_BENEFICIARY_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_NATIONALITY: "FOUNDATION_FOUNDER_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: AbsoluteDate */ - TRUST_BENEFICIARY_NATIONALITY: { - id: "TRUST_BENEFICIARY_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_FOUNDER_DEATHDATE: "FOUNDATION_FOUNDER_DEATHDATE" as UIHandlerId, /** * Description: * * GANA Type: Boolean */ - TRUST_BENEFICIARY_RIGHT_TO_CLAIM: { - id: "TRUST_BENEFICIARY_RIGHT_TO_CLAIM" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13_further = { + FOUNDATION_FOUNDER_RIGHT_TO_REVOKE: "FOUNDATION_FOUNDER_RIGHT_TO_REVOKE" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: Form<VQF_902_12_pre>[] */ - TRUST_FURTHER_BIRTHDATE: { - id: "TRUST_FURTHER_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_LIST: "FOUNDATION_PRE_LIST" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: String */ - TRUST_FURTHER_COUNTRY: { - id: "TRUST_FURTHER_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_FULL_NAME: "FOUNDATION_PRE_FULL_NAME" as UIHandlerId, /** * Description: * * GANA Type: ResidentialAddress */ - TRUST_FURTHER_DOMICILE: { - id: "TRUST_FURTHER_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_DOMICILE: "FOUNDATION_PRE_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - TRUST_FURTHER_FULL_NAME: { - id: "TRUST_FURTHER_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_COUNTRY: "FOUNDATION_PRE_COUNTRY" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: AbsoluteDate */ - TRUST_FURTHER_NATIONALITY: { - id: "TRUST_FURTHER_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_BIRTHDATE: "FOUNDATION_PRE_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: CountryCode */ - TRUST_FURTHER_RIGHT_TO_REVOKE: { - id: "TRUST_FURTHER_RIGHT_TO_REVOKE" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13_pre = { + FOUNDATION_PRE_NATIONALITY: "FOUNDATION_PRE_NATIONALITY" as UIHandlerId, /** * Description: * * GANA Type: AbsoluteDate */ - TRUST_PRE_BIRTHDATE: { - id: "TRUST_PRE_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_PRE_DEATHDATE: "FOUNDATION_PRE_DEATHDATE" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: Form<VQF_902_12_beneficiary>[] */ - TRUST_PRE_COUNTRY: { - id: "TRUST_PRE_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_LIST: "FOUNDATION_BENEFICIARY_LIST" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: String */ - TRUST_PRE_DEATHDATE: { - id: "TRUST_PRE_DEATHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_FULL_NAME: "FOUNDATION_BENEFICIARY_FULL_NAME" as UIHandlerId, /** * Description: * * GANA Type: ResidentialAddress */ - TRUST_PRE_DOMICILE: { - id: "TRUST_PRE_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_DOMICILE: "FOUNDATION_BENEFICIARY_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode + */ + FOUNDATION_BENEFICIARY_COUNTRY: "FOUNDATION_BENEFICIARY_COUNTRY" as UIHandlerId, + /** + * Description: + * + * GANA Type: AbsoluteDate */ - TRUST_PRE_FULL_NAME: { - id: "TRUST_PRE_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_BIRTHDATE: "FOUNDATION_BENEFICIARY_BIRTHDATE" as UIHandlerId, /** * Description: * * GANA Type: CountryCode */ - TRUST_PRE_NATIONALITY: { - id: "TRUST_PRE_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13_protector = { + FOUNDATION_BENEFICIARY_NATIONALITY: "FOUNDATION_BENEFICIARY_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: Boolean */ - TRUST_PROTECTOR_BIRTHDATE: { - id: "TRUST_PROTECTOR_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM: "FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: Paragraph */ - TRUST_PROTECTOR_COUNTRY: { - id: "TRUST_PROTECTOR_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_BENEFICIARY_ADDITION: "FOUNDATION_BENEFICIARY_ADDITION" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: Form<VQF_902_12_representative>[] */ - TRUST_PROTECTOR_DOMICILE: { - id: "TRUST_PROTECTOR_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_LIST: "FOUNDATION_REPRESENTATIVE_LIST" as UIHandlerId, /** * Description: * * GANA Type: String */ - TRUST_PROTECTOR_FULL_NAME: { - id: "TRUST_PROTECTOR_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_FULL_NAME: "FOUNDATION_REPRESENTATIVE_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: ResidentialAddress */ - TRUST_PROTECTOR_NATIONALITY: { - id: "TRUST_PROTECTOR_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_DOMICILE: "FOUNDATION_REPRESENTATIVE_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: Boolean + * GANA Type: CountryCode */ - TRUST_PROTECTOR_RIGHT_TO_REVOKE: { - id: "TRUST_PROTECTOR_RIGHT_TO_REVOKE" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_13_settlor = { + FOUNDATION_REPRESENTATIVE_COUNTRY: "FOUNDATION_REPRESENTATIVE_COUNTRY" as UIHandlerId, /** * Description: * * GANA Type: AbsoluteDate */ - TRUST_SETTLOR_BIRTHDATE: { - id: "TRUST_SETTLOR_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_BIRTHDATE: "FOUNDATION_REPRESENTATIVE_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: CountryCode */ - TRUST_SETTLOR_COUNTRY: { - id: "TRUST_SETTLOR_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_NATIONALITY: "FOUNDATION_REPRESENTATIVE_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: Boolean */ - TRUST_SETTLOR_DEATHDATE: { - id: "TRUST_SETTLOR_DEATHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE: "FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: Paragraph */ - TRUST_SETTLOR_DOMICILE: { - id: "TRUST_SETTLOR_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_CONTRACTING_PARTNER: "TRUST_CONTRACTING_PARTNER" as UIHandlerId, /** * Description: * * GANA Type: String */ - TRUST_SETTLOR_FULL_NAME: { - id: "TRUST_SETTLOR_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_KNOWN_AS: "TRUST_KNOWN_AS" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: String */ - TRUST_SETTLOR_NATIONALITY: { - id: "TRUST_SETTLOR_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_NAME: "TRUST_NAME" as UIHandlerId, /** * Description: * * GANA Type: Boolean */ - TRUST_SETTLOR_RIGHT_TO_REVOKE: { - id: "TRUST_SETTLOR_RIGHT_TO_REVOKE" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_14 = { + TRUST_DISCRETIONARY: "TRUST_DISCRETIONARY" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: * - * GANA Type: String + * GANA Type: Boolean */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + TRUST_REVOCABLE: "TRUST_REVOCABLE" as UIHandlerId, /** - * Description: When the form was completed. + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: Form<VQF_902_13_settlor>[] */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + TRUST_SETTLOR_LIST: "TRUST_SETTLOR_LIST" as UIHandlerId, /** - * Description: Gathered or consulted documents + * Description: * - * GANA Type: Paragraph + * GANA Type: String */ - INCRISK_DOCUMENTS: { - id: "INCRISK_DOCUMENTS" as UIHandlerId, - description: "Gathered or consulted documents", - } as FormFieldInfo, + TRUST_SETTLOR_FULL_NAME: "TRUST_SETTLOR_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | 'OTHER' + * GANA Type: ResidentialAddress */ - INCRISK_MEANS: { - id: "INCRISK_MEANS" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_SETTLOR_DOMICILE: "TRUST_SETTLOR_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - INCRISK_MEANS_OTHER: { - id: "INCRISK_MEANS_OTHER" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_SETTLOR_COUNTRY: "TRUST_SETTLOR_COUNTRY" as UIHandlerId, /** - * Description: Description of the circumstances/transactions, which triggered the special clarifications + * Description: * - * GANA Type: String + * GANA Type: AbsoluteDate */ - INCRISK_REASON: { - id: "INCRISK_REASON" as UIHandlerId, - description: "Description of the circumstances/transactions, which triggered the special clarifications", - } as FormFieldInfo, + TRUST_SETTLOR_BIRTHDATE: "TRUST_SETTLOR_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: 'NO_SUSPICION' | 'REASONABLE_SUSPICION' | 'SIMPLE_SUSPICION' | 'OTHER' + * GANA Type: CountryCode */ - INCRISK_RESULT: { - id: "INCRISK_RESULT" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_SETTLOR_NATIONALITY: "TRUST_SETTLOR_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: AbsoluteDate */ - INCRISK_RESULT_OTHER: { - id: "INCRISK_RESULT_OTHER" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_SETTLOR_DEATHDATE: "TRUST_SETTLOR_DEATHDATE" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: Boolean */ - INCRISK_SUMMARY: { - id: "INCRISK_SUMMARY" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_15 = { + TRUST_SETTLOR_RIGHT_TO_REVOKE: "TRUST_SETTLOR_RIGHT_TO_REVOKE" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: + * + * GANA Type: Form<VQF_902_13_pre>[] + */ + TRUST_PRE_LIST: "TRUST_PRE_LIST" as UIHandlerId, + /** + * Description: * * GANA Type: String */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + TRUST_PRE_FULL_NAME: "TRUST_PRE_FULL_NAME" as UIHandlerId, /** - * Description: When the form was completed. + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: ResidentialAddress */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + TRUST_PRE_DOMICILE: "TRUST_PRE_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: Paragraph + * GANA Type: CountryCode */ - INSURANCE_CONTRACTING_PARTNER: { - id: "INSURANCE_CONTRACTING_PARTNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PRE_COUNTRY: "TRUST_PRE_COUNTRY" as UIHandlerId, /** * Description: * * GANA Type: AbsoluteDate */ - INSURANCE_HOLDER_BIRTHDATE: { - id: "INSURANCE_HOLDER_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PRE_BIRTHDATE: "TRUST_PRE_BIRTHDATE" as UIHandlerId, /** * Description: * * GANA Type: CountryCode */ - INSURANCE_HOLDER_COUNTRY: { - id: "INSURANCE_HOLDER_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PRE_NATIONALITY: "TRUST_PRE_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: AbsoluteDate */ - INSURANCE_HOLDER_DOMICILE: { - id: "INSURANCE_HOLDER_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PRE_DEATHDATE: "TRUST_PRE_DEATHDATE" as UIHandlerId, /** - * Description: The beneficial owners of the assets involved in the business relationship. + * Description: * - * GANA Type: String + * GANA Type: Form<VQF_902_13_beneficiary>[] */ - INSURANCE_HOLDER_FULL_NAME: { - id: "INSURANCE_HOLDER_FULL_NAME" as UIHandlerId, - description: "The beneficial owners of the assets involved in the business relationship.", - } as FormFieldInfo, + TRUST_BENEFICIARY_LIST: "TRUST_BENEFICIARY_LIST" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: String */ - INSURANCE_HOLDER_NATIONALITY: { - id: "INSURANCE_HOLDER_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_BENEFICIARY_FULL_NAME: "TRUST_BENEFICIARY_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: AbsoluteDate + * GANA Type: ResidentialAddress */ - INSURANCE_PAYER_BIRTHDATE: { - id: "INSURANCE_PAYER_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_BENEFICIARY_DOMICILE: "TRUST_BENEFICIARY_DOMICILE" as UIHandlerId, /** * Description: * * GANA Type: CountryCode */ - INSURANCE_PAYER_COUNTRY: { - id: "INSURANCE_PAYER_COUNTRY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_BENEFICIARY_COUNTRY: "TRUST_BENEFICIARY_COUNTRY" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: AbsoluteDate */ - INSURANCE_PAYER_DOMICILE: { - id: "INSURANCE_PAYER_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_BENEFICIARY_BIRTHDATE: "TRUST_BENEFICIARY_BIRTHDATE" as UIHandlerId, /** - * Description: The beneficial owners of the assets involved in the business relationship. + * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - INSURANCE_PAYER_FULL_NAME: { - id: "INSURANCE_PAYER_FULL_NAME" as UIHandlerId, - description: "The beneficial owners of the assets involved in the business relationship.", - } as FormFieldInfo, + TRUST_BENEFICIARY_NATIONALITY: "TRUST_BENEFICIARY_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: Boolean */ - INSURANCE_PAYER_NATIONALITY: { - id: "INSURANCE_PAYER_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_BENEFICIARY_RIGHT_TO_CLAIM: "TRUST_BENEFICIARY_RIGHT_TO_CLAIM" as UIHandlerId, /** - * Description: Name or number of the contractual relationship between the contracting party and the financial intermediary + * Description: * - * GANA Type: String + * GANA Type: Paragraph */ - INSURANCE_RELATIONSHIP_NAME: { - id: "INSURANCE_RELATIONSHIP_NAME" as UIHandlerId, - description: "Name or number of the contractual relationship between the contracting party and the financial intermediary", - } as FormFieldInfo, + TRUST_BENEFICIARY_ADDITION: "TRUST_BENEFICIARY_ADDITION" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: Form<VQF_902_13_protector>[] */ - INSURANCE_RELATIONSHIP_POLICY: { - id: "INSURANCE_RELATIONSHIP_POLICY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PROTECTOR_LIST: "TRUST_PROTECTOR_LIST" as UIHandlerId, /** * Description: * * GANA Type: String */ - SIGNATURE: { - id: "SIGNATURE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PROTECTOR_FULL_NAME: "TRUST_PROTECTOR_FULL_NAME" as UIHandlerId, /** - * Description: Contracing partner signature, + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: ResidentialAddress */ - SIGN_DATE: { - id: "SIGN_DATE" as UIHandlerId, - description: "Contracing partner signature,", - } as FormFieldInfo, - } as const; - export const VQF_902_1_founder = { + TRUST_PROTECTOR_DOMICILE: "TRUST_PROTECTOR_DOMICILE" as UIHandlerId, /** - * Description: Signatory of representation + * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - FOUNDER_AUTHORIZATION_TYPE: { - id: "FOUNDER_AUTHORIZATION_TYPE" as UIHandlerId, - description: "Signatory of representation", - } as FormFieldInfo, + TRUST_PROTECTOR_COUNTRY: "TRUST_PROTECTOR_COUNTRY" as UIHandlerId, /** * Description: * * GANA Type: AbsoluteDate */ - FOUNDER_BIRTHDATE: { - id: "FOUNDER_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PROTECTOR_BIRTHDATE: "TRUST_PROTECTOR_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - FOUNDER_FULL_NAME: { - id: "FOUNDER_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PROTECTOR_NATIONALITY: "TRUST_PROTECTOR_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: CountryCode + * GANA Type: Boolean */ - FOUNDER_NATIONALITY: { - id: "FOUNDER_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_PROTECTOR_RIGHT_TO_REVOKE: "TRUST_PROTECTOR_RIGHT_TO_REVOKE" as UIHandlerId, /** * Description: * - * GANA Type: File + * GANA Type: Form<VQF_902_13_further>[] */ - FOUNDER_NATIONAL_COPY: { - id: "FOUNDER_NATIONAL_COPY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_FURTHER_LIST: "TRUST_FURTHER_LIST" as UIHandlerId, /** * Description: * * GANA Type: String */ - FOUNDER_NATIONAL_ID: { - id: "FOUNDER_NATIONAL_ID" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_FURTHER_FULL_NAME: "TRUST_FURTHER_FULL_NAME" as UIHandlerId, /** * Description: * - * GANA Type: 'CR' | 'MANDATE' | 'OTHER' + * GANA Type: ResidentialAddress */ - FOUNDER_POWER_OF_ATTORNEY: { - id: "FOUNDER_POWER_OF_ATTORNEY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_FURTHER_DOMICILE: "TRUST_FURTHER_DOMICILE" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - FOUNDER_POWER_OF_ATTORNEY_OTHER: { - id: "FOUNDER_POWER_OF_ATTORNEY_OTHER" as UIHandlerId, - description: "", - } as FormFieldInfo, + TRUST_FURTHER_COUNTRY: "TRUST_FURTHER_COUNTRY" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: AbsoluteDate */ - FOUNDER_RESIDENTIAL_ADDRESS: { - id: "FOUNDER_RESIDENTIAL_ADDRESS" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const VQF_902_4 = { + TRUST_FURTHER_BIRTHDATE: "TRUST_FURTHER_BIRTHDATE" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: CountryCode */ - CONTACT_RISK_LEVEL: { - id: "CONTACT_RISK_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + TRUST_FURTHER_NATIONALITY: "TRUST_FURTHER_NATIONALITY" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: Boolean */ - COUNTRY_RISK_BUSINESS_LEVEL: { - id: "COUNTRY_RISK_BUSINESS_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + TRUST_FURTHER_RIGHT_TO_REVOKE: "TRUST_FURTHER_RIGHT_TO_REVOKE" as UIHandlerId, /** - * Description: + * Description: Description of the circumstances/transactions, which triggered the special clarifications * - * GANA Type: 'CUSTOMER' | 'OWNER' + * GANA Type: String */ - COUNTRY_RISK_BUSINESS_TYPE: { - id: "COUNTRY_RISK_BUSINESS_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + INCRISK_REASON: "INCRISK_REASON" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | 'OTHER' */ - COUNTRY_RISK_NATIONALITY_LEVEL: { - id: "COUNTRY_RISK_NATIONALITY_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + INCRISK_MEANS: "INCRISK_MEANS" as UIHandlerId, /** * Description: * - * GANA Type: 'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING' + * GANA Type: String */ - COUNTRY_RISK_NATIONALITY_TYPE: { - id: "COUNTRY_RISK_NATIONALITY_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + INCRISK_MEANS_OTHER: "INCRISK_MEANS_OTHER" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: Paragraph */ - COUNTRY_RISK_PAYMENTS_LEVEL: { - id: "COUNTRY_RISK_PAYMENTS_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + INCRISK_SUMMARY: "INCRISK_SUMMARY" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: Gathered or consulted documents * - * GANA Type: String + * GANA Type: Paragraph */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + INCRISK_DOCUMENTS: "INCRISK_DOCUMENTS" as UIHandlerId, /** - * Description: Criteria description + * Description: * - * GANA Type: String + * GANA Type: 'NO_SUSPICION' | 'REASONABLE_SUSPICION' | 'SIMPLE_SUSPICION' | 'OTHER' */ - EXTRA_CRITERA_1_RISK_DEFINITION: { - id: "EXTRA_CRITERA_1_RISK_DEFINITION" as UIHandlerId, - description: "Criteria description", - } as FormFieldInfo, + INCRISK_RESULT: "INCRISK_RESULT" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: String */ - EXTRA_CRITERA_1_RISK_LEVEL: { - id: "EXTRA_CRITERA_1_RISK_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + INCRISK_RESULT_OTHER: "INCRISK_RESULT_OTHER" as UIHandlerId, /** - * Description: Criteria description + * Description: * - * GANA Type: String + * GANA Type: Paragraph */ - EXTRA_CRITERA_2_RISK_DEFINITION: { - id: "EXTRA_CRITERA_2_RISK_DEFINITION" as UIHandlerId, - description: "Criteria description", - } as FormFieldInfo, + INSURANCE_CONTRACTING_PARTNER: "INSURANCE_CONTRACTING_PARTNER" as UIHandlerId, /** - * Description: Based on 902.4.1 country list + * Description: Name or number of the contractual relationship between the contracting party and the financial intermediary * - * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH' + * GANA Type: String */ - EXTRA_CRITERA_2_RISK_LEVEL: { - id: "EXTRA_CRITERA_2_RISK_LEVEL" as UIHandlerId, - description: "Based on 902.4.1 country list", - } as FormFieldInfo, + INSURANCE_RELATIONSHIP_NAME: "INSURANCE_RELATIONSHIP_NAME" as UIHandlerId, /** - * Description: When the form was completed. + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: String */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, + INSURANCE_RELATIONSHIP_POLICY: "INSURANCE_RELATIONSHIP_POLICY" as UIHandlerId, /** - * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ + * Description: The beneficial owners of the assets involved in the business relationship. * - * GANA Type: AbsoluteDateTime + * GANA Type: String */ - HIGH_RISK_ACCEPTANCE_DATE: { - id: "HIGH_RISK_ACCEPTANCE_DATE" as UIHandlerId, - description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___", - } as FormFieldInfo, + INSURANCE_HOLDER_FULL_NAME: "INSURANCE_HOLDER_FULL_NAME" as UIHandlerId, /** - * Description: True if the person is in a country for which FATF requires incresed dilegence. + * Description: * - * GANA Type: Boolean + * GANA Type: AbsoluteDate */ - HIGH_RISK_COUNTRY: { - id: "HIGH_RISK_COUNTRY" as UIHandlerId, - description: "True if the person is in a country for which FATF requires incresed dilegence.", - } as FormFieldInfo, + INSURANCE_HOLDER_BIRTHDATE: "INSURANCE_HOLDER_BIRTHDATE" as UIHandlerId, /** * Description: * - * GANA Type: 'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' | 'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY' + * GANA Type: CountryCode */ - INDUSTRY_RISK_LEVEL: { - id: "INDUSTRY_RISK_LEVEL" as UIHandlerId, - description: "", - } as FormFieldInfo, + INSURANCE_HOLDER_NATIONALITY: "INSURANCE_HOLDER_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: 'CUSTOMER' | 'OWNER' + * GANA Type: ResidentialAddress */ - INDUSTRY_RISK_TYPE: { - id: "INDUSTRY_RISK_TYPE" as UIHandlerId, - description: "", - } as FormFieldInfo, + INSURANCE_HOLDER_DOMICILE: "INSURANCE_HOLDER_DOMICILE" as UIHandlerId, /** - * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ + * Description: * - * GANA Type: AbsoluteDateTime + * GANA Type: CountryCode */ - PEP_ACCEPTANCE_DATE: { - id: "PEP_ACCEPTANCE_DATE" as UIHandlerId, - description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___", - } as FormFieldInfo, + INSURANCE_HOLDER_COUNTRY: "INSURANCE_HOLDER_COUNTRY" as UIHandlerId, /** - * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 2' + * Description: The beneficial owners of the assets involved in the business relationship. * - * GANA Type: Boolean + * GANA Type: String */ - PEP_DOMESTIC: { - id: "PEP_DOMESTIC" as UIHandlerId, - description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 2'", - } as FormFieldInfo, + INSURANCE_PAYER_FULL_NAME: "INSURANCE_PAYER_FULL_NAME" as UIHandlerId, /** - * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 1' + * Description: * - * GANA Type: Boolean + * GANA Type: AbsoluteDate */ - PEP_FOREIGN: { - id: "PEP_FOREIGN" as UIHandlerId, - description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 1'", - } as FormFieldInfo, + INSURANCE_PAYER_BIRTHDATE: "INSURANCE_PAYER_BIRTHDATE" as UIHandlerId, /** - * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 3' + * Description: * - * GANA Type: Boolean + * GANA Type: CountryCode */ - PEP_INTERNATIONAL_ORGANIZATION: { - id: "PEP_INTERNATIONAL_ORGANIZATION" as UIHandlerId, - description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 3'", - } as FormFieldInfo, + INSURANCE_PAYER_NATIONALITY: "INSURANCE_PAYER_NATIONALITY" as UIHandlerId, /** * Description: * - * GANA Type: 'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 'FREQ_TRANS_WITH_HIGH_RISK' + * GANA Type: CountryCode */ - PRODUCT_RISK_LEVEL: { - id: "PRODUCT_RISK_LEVEL" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___ - * - * GANA Type: AbsoluteDateTime - */ - RISK_CLASIFICATION_ACCEPTANCE_DATE: { - id: "RISK_CLASIFICATION_ACCEPTANCE_DATE" as UIHandlerId, - description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___", - } as FormFieldInfo, + INSURANCE_PAYER_COUNTRY: "INSURANCE_PAYER_COUNTRY" as UIHandlerId, /** * Description: * - * GANA Type: 'WITH' | 'WITHOUT' - */ - RISK_CLASIFICATION_LEVEL: { - id: "RISK_CLASIFICATION_LEVEL" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: Justification for differing risk assessment - * - * GANA Type: Paragraph - */ - RISK_JUSTIFICATION: { - id: "RISK_JUSTIFICATION" as UIHandlerId, - description: "Justification for differing risk assessment", - } as FormFieldInfo, - } as const; - export const VQF_902_5 = { - /** - * Description: Information on the planned development of the business relationship and the assets. - * - * GANA Type: String - */ - BIZREL_DEVELOPMENT: { - id: "BIZREL_DEVELOPMENT" as UIHandlerId, - description: "Information on the planned development of the business relationship and the assets.", - } as FormFieldInfo, - /** - * Description: In the case of cash or money and asset transfer transacction with regular customer - * - * GANA Type: BusinessAddress - */ - BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS: { - id: "BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS" as UIHandlerId, - description: "In the case of cash or money and asset transfer transacction with regular customer", - } as FormFieldInfo, - /** - * Description: In the case of cash or money and asset transfer transacction with regular customer - * - * GANA Type: String - */ - BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT: { - id: "BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT" as UIHandlerId, - description: "In the case of cash or money and asset transfer transacction with regular customer", - } as FormFieldInfo, - /** - * Description: In the case of cash or money and asset transfer transacction with regular customer - * - * GANA Type: String - */ - BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME: { - id: "BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME" as UIHandlerId, - description: "In the case of cash or money and asset transfer transacction with regular customer", - } as FormFieldInfo, - /** - * Description: In the case of cash or money and asset transfer transacction with regular customer - * - * GANA Type: String + * GANA Type: ResidentialAddress */ - BIZREL_FINANCIAL_VOLUME: { - id: "BIZREL_FINANCIAL_VOLUME" as UIHandlerId, - description: "In the case of cash or money and asset transfer transacction with regular customer", - } as FormFieldInfo, + INSURANCE_PAYER_DOMICILE: "INSURANCE_PAYER_DOMICILE" as UIHandlerId, /** - * Description: Other relevant information. + * Description: Full legal name of an individual as in the national identity card. * * GANA Type: String */ - BIZREL_FURTHER_INFO: { - id: "BIZREL_FURTHER_INFO" as UIHandlerId, - description: "Other relevant information.", - } as FormFieldInfo, + PERSON_FULL_NAME: "PERSON_FULL_NAME" as UIHandlerId, /** - * Description: Income and assets, liabilities (estimated) + * Description: Last name of an individual as in the national identity card. * * GANA Type: String */ - BIZREL_INCOME: { - id: "BIZREL_INCOME" as UIHandlerId, - description: "Income and assets, liabilities (estimated)", - } as FormFieldInfo, - /** - * Description: Amount of the involved assets. - * - * GANA Type: Amount - */ - BIZREL_ORIGIN_AMOUNT: { - id: "BIZREL_ORIGIN_AMOUNT" as UIHandlerId, - description: "Amount of the involved assets.", - } as FormFieldInfo, + PERSON_LAST_NAME: "PERSON_LAST_NAME" as UIHandlerId, /** - * Description: - * - * GANA Type: 'SAVINGS' | 'OWN_BUSINESS' | 'INHERITANCE' | 'OTHER' - */ - BIZREL_ORIGIN_CATEGORY: { - id: "BIZREL_ORIGIN_CATEGORY" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: + * Description: Identification number or string of national identity card. * * GANA Type: String */ - BIZREL_ORIGIN_CATEGORY_OTHER: { - id: "BIZREL_ORIGIN_CATEGORY_OTHER" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: Currency of the involved assets. - * - * GANA Type: Amount - */ - BIZREL_ORIGIN_CURRENCY: { - id: "BIZREL_ORIGIN_CURRENCY" as UIHandlerId, - description: "Currency of the involved assets.", - } as FormFieldInfo, + PERSON_NATIONAL_ID: "PERSON_NATIONAL_ID" as UIHandlerId, /** - * Description: Detail description of the origings + * Description: Date of birth of an individual. Format is YYYY-MM-DD. * - * GANA Type: Paragraph + * GANA Type: AbsoluteDate */ - BIZREL_ORIGIN_DETAIL: { - id: "BIZREL_ORIGIN_DETAIL" as UIHandlerId, - description: "Detail description of the origings", - } as FormFieldInfo, + PERSON_DATE_OF_BIRTH: "PERSON_DATE_OF_BIRTH" as UIHandlerId, /** - * Description: Nature of the involved assets. + * Description: Scan of a recognized national identity card of an individual. * - * GANA Type: String + * GANA Type: File */ - BIZREL_ORIGIN_NATURE: { - id: "BIZREL_ORIGIN_NATURE" as UIHandlerId, - description: "Nature of the involved assets.", - } as FormFieldInfo, + PERSON_NATIONAL_ID_SCAN: "PERSON_NATIONAL_ID_SCAN" as UIHandlerId, /** - * Description: Profession, business activities, etc. (former, current, potentially planned) + * Description: Nationality of an individual. Format is 2-letter ISO country-code. * - * GANA Type: String + * GANA Type: CountryCode */ - BIZREL_PROFESSION: { - id: "BIZREL_PROFESSION" as UIHandlerId, - description: "Profession, business activities, etc. (former, current, potentially planned)", - } as FormFieldInfo, + PERSON_NATIONALITY: "PERSON_NATIONALITY" as UIHandlerId, /** - * Description: Purpose of the business relationship. + * Description: Name of the company or business. * * GANA Type: String */ - BIZREL_PURPOSE: { - id: "BIZREL_PURPOSE" as UIHandlerId, - description: "Purpose of the business relationship.", - } as FormFieldInfo, + BUSINESS_DISPLAY_NAME: "BUSINESS_DISPLAY_NAME" as UIHandlerId, /** - * Description: Relation to other AMLA-files. + * Description: Type of company form or business (limited liability company, general partnership, limited partnership, corporations, etc... ). * - * GANA Type: String + * GANA Type: String */ - BIZREL_THIRDPARTY_AMLA_FILES: { - id: "BIZREL_THIRDPARTY_AMLA_FILES" as UIHandlerId, - description: "Relation to other AMLA-files.", - } as FormFieldInfo, + BUSINESS_TYPE: "BUSINESS_TYPE" as UIHandlerId, /** - * Description: Introducer / agents / references. + * Description: Registration id on legal entity of the company or business. * * GANA Type: String */ - BIZREL_THIRDPARTY_REFERENCES: { - id: "BIZREL_THIRDPARTY_REFERENCES" as UIHandlerId, - description: "Introducer / agents / references.", - } as FormFieldInfo, + BUSINESS_REGISTRATION_ID: "BUSINESS_REGISTRATION_ID" as UIHandlerId, /** - * Description: Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship. + * Description: City or location where the company or business is registered. * * GANA Type: String */ - BIZREL_THIRDPARTY_RELATIONSHIP: { - id: "BIZREL_THIRDPARTY_RELATIONSHIP" as UIHandlerId, - description: "Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship.", - } as FormFieldInfo, + BUSINESS_LEGAL_JURISDICTION: "BUSINESS_LEGAL_JURISDICTION" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: Registration founding date of the company or business. * - * GANA Type: String + * GANA Type: AbsoluteDate */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, + BUSINESS_REGISTRATION_DATE: "BUSINESS_REGISTRATION_DATE" as UIHandlerId, /** - * Description: When the form was completed. + * Description: True if the company or business is a non-profit. * - * GANA Type: AbsoluteDateTime + * GANA Type: Boolean */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, - } as const; - export const VQF_902_9 = { + BUSINESS_IS_NON_PROFIT: "BUSINESS_IS_NON_PROFIT" as UIHandlerId, /** - * Description: Customer system ID required to correlate different AML forms. + * Description: Industry in which the company or business mainly operate. * * GANA Type: String */ - CUSTOMER_ID: { - id: "CUSTOMER_ID" as UIHandlerId, - description: "Customer system ID required to correlate different AML forms.", - } as FormFieldInfo, - /** - * Description: When the form was completed. - * - * GANA Type: AbsoluteDateTime - */ - FORM_FILLING_DATE: { - id: "FORM_FILLING_DATE" as UIHandlerId, - description: "When the form was completed.", - } as FormFieldInfo, - /** - * Description: - * - * GANA Type: Paragraph - */ - IDENTITY_CONTRACTING_PARTNER: { - id: "IDENTITY_CONTRACTING_PARTNER" as UIHandlerId, - description: "", - } as FormFieldInfo, + BUSINESS_INDUSTRY: "BUSINESS_INDUSTRY" as UIHandlerId, /** - * Description: The beneficial owners of the assets involved in the business relationship. + * Description: List of natural persons that are legal representatives or shareholders. * - * GANA Type: Form<VQF_902_9_identity>[] + * GANA Type: GLS_BusinessRepresentative[] */ - IDENTITY_LIST: { - id: "IDENTITY_LIST" as UIHandlerId, - description: "The beneficial owners of the assets involved in the business relationship.", - } as FormFieldInfo, + BUSINESS_LEGAL_REPRESENTATIVES: "BUSINESS_LEGAL_REPRESENTATIVES" as UIHandlerId, /** * Description: * * GANA Type: String */ - SIGNATURE: { - id: "SIGNATURE" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: Contracing partner signature, - * - * GANA Type: AbsoluteDateTime - */ - SIGN_DATE: { - id: "SIGN_DATE" as UIHandlerId, - description: "Contracing partner signature,", - } as FormFieldInfo, - } as const; - export const FormMetadata = { + GLS_REPRESENTATIVE_FULL_NAME: "GLS_REPRESENTATIVE_FULL_NAME" as UIHandlerId, /** - * Description: Name of the form completed by the user. + * Description: * * GANA Type: String */ - FORM_ID: { - id: "FORM_ID" as UIHandlerId, - description: "Name of the form completed by the user.", - } as FormFieldInfo, + GLS_REPRESENTATIVE_LAST_NAME: "GLS_REPRESENTATIVE_LAST_NAME" as UIHandlerId, /** - * Description: High entropy value used in forms where hash is going to be stored in plain text. + * Description: * * GANA Type: String */ - FORM_SALT: { - id: "FORM_SALT" as UIHandlerId, - description: "High entropy value used in forms where hash is going to be stored in plain text.", - } as FormFieldInfo, - /** - * Description: Version of the form completed by the user. - * - * GANA Type: Number - */ - FORM_VERSION: { - id: "FORM_VERSION" as UIHandlerId, - description: "Version of the form completed by the user.", - } as FormFieldInfo, - } as const; - export const VQF_902_9_identity = { + GLS_REPRESENTATIVE_NATIONAL_ID: "GLS_REPRESENTATIVE_NATIONAL_ID" as UIHandlerId, /** * Description: * * GANA Type: AbsoluteDate */ - IDENTITY_BIRTHDATE: { - id: "IDENTITY_BIRTHDATE" as UIHandlerId, - description: "", - } as FormFieldInfo, + GLS_REPRESENTATIVE_DATE_OF_BIRTH: "GLS_REPRESENTATIVE_DATE_OF_BIRTH" as UIHandlerId, /** * Description: * - * GANA Type: ResidentialAddress + * GANA Type: File */ - IDENTITY_DOMICILE: { - id: "IDENTITY_DOMICILE" as UIHandlerId, - description: "", - } as FormFieldInfo, + GLS_REPRESENTATIVE_NATIONAL_ID_SCAN: "GLS_REPRESENTATIVE_NATIONAL_ID_SCAN" as UIHandlerId, /** * Description: * - * GANA Type: String + * GANA Type: CountryCode */ - IDENTITY_FULL_NAME: { - id: "IDENTITY_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, + GLS_REPRESENTATIVE_NATIONALITY: "GLS_REPRESENTATIVE_NATIONALITY" as UIHandlerId, /** - * Description: + * Description: DNS domain name owned by the individual or business. * - * GANA Type: CountryCode + * GANA Type: Hostname */ - IDENTITY_NATIONALITY: { - id: "IDENTITY_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const GLS_Onboarding = { + CONTACT_DNS_DOMAIN: "CONTACT_DNS_DOMAIN" as UIHandlerId, /** - * Description: Name of the version of the terms of service accepted by the customer. + * Description: Web site owned by the individual or business. * - * GANA Type: Boolean + * GANA Type: HttpHostnamePath */ - ACCEPTED_TERMS_OF_SERVICE: { - id: "ACCEPTED_TERMS_OF_SERVICE" as UIHandlerId, - description: "Name of the version of the terms of service accepted by the customer.", - } as FormFieldInfo, + CONTACT_WEB_DOMAIN: "CONTACT_WEB_DOMAIN" as UIHandlerId, /** - * Description: Building name of the of the individual or business. + * Description: E-mail address to contact the individual or business. Can be validated via E-mail with TAN. * - * GANA Type: String + * GANA Type: Email */ - ADDRESS_BUILDING_NAME: { - id: "ADDRESS_BUILDING_NAME" as UIHandlerId, - description: "Building name of the of the individual or business.", - } as FormFieldInfo, + CONTACT_EMAIL: "CONTACT_EMAIL" as UIHandlerId, /** - * Description: Building number of the individual or business. + * Description: Phone number to contact the individual or business. Can be validated via SMS-TAN or phone call. * - * GANA Type: String + * GANA Type: Phone */ - ADDRESS_BUILDING_NUMBER: { - id: "ADDRESS_BUILDING_NUMBER" as UIHandlerId, - description: "Building number of the individual or business.", - } as FormFieldInfo, + CONTACT_PHONE: "CONTACT_PHONE" as UIHandlerId, /** * Description: Country where the individual or business resides. Format is 2-letter ISO country-code. * * GANA Type: CountryCode */ - ADDRESS_COUNTRY: { - id: "ADDRESS_COUNTRY" as UIHandlerId, - description: "Country where the individual or business resides. Format is 2-letter ISO country-code.", - } as FormFieldInfo, - /** - * Description: Country subdivision of the individual or business. - * - * GANA Type: String - */ - ADDRESS_COUNTRY_SUBDIVISION: { - id: "ADDRESS_COUNTRY_SUBDIVISION" as UIHandlerId, - description: "Country subdivision of the individual or business.", - } as FormFieldInfo, - /** - * Description: Additional address information of the individual or business. - * - * GANA Type: String - */ - ADDRESS_LINES: { - id: "ADDRESS_LINES" as UIHandlerId, - description: "Additional address information of the individual or business.", - } as FormFieldInfo, + ADDRESS_COUNTRY: "ADDRESS_COUNTRY" as UIHandlerId, /** * Description: Street address name of the individual or business. * * GANA Type: String */ - ADDRESS_STREET_NAME: { - id: "ADDRESS_STREET_NAME" as UIHandlerId, - description: "Street address name of the individual or business.", - } as FormFieldInfo, + ADDRESS_STREET_NAME: "ADDRESS_STREET_NAME" as UIHandlerId, /** * Description: Street address number of the individual or business. * * GANA Type: String */ - ADDRESS_STREET_NUMBER: { - id: "ADDRESS_STREET_NUMBER" as UIHandlerId, - description: "Street address number of the individual or business.", - } as FormFieldInfo, - /** - * Description: Town district of the individual or business. - * - * GANA Type: String - */ - ADDRESS_TOWN_DISTRICT: { - id: "ADDRESS_TOWN_DISTRICT" as UIHandlerId, - description: "Town district of the individual or business.", - } as FormFieldInfo, + ADDRESS_STREET_NUMBER: "ADDRESS_STREET_NUMBER" as UIHandlerId, /** - * Description: Town location of the individual or business. - * - * GANA Type: String - */ - ADDRESS_TOWN_LOCATION: { - id: "ADDRESS_TOWN_LOCATION" as UIHandlerId, - description: "Town location of the individual or business.", - } as FormFieldInfo, - /** - * Description: Postal code of the city where the individual or business resides. - * - * GANA Type: String - */ - ADDRESS_ZIPCODE: { - id: "ADDRESS_ZIPCODE" as UIHandlerId, - description: "Postal code of the city where the individual or business resides.", - } as FormFieldInfo, - /** - * Description: Name of the company or business. + * Description: Additional address information of the individual or business. * * GANA Type: String */ - BUSINESS_DISPLAY_NAME: { - id: "BUSINESS_DISPLAY_NAME" as UIHandlerId, - description: "Name of the company or business.", - } as FormFieldInfo, + ADDRESS_LINES: "ADDRESS_LINES" as UIHandlerId, /** - * Description: Industry in which the company or business mainly operate. + * Description: Building name of the of the individual or business. * * GANA Type: String */ - BUSINESS_INDUSTRY: { - id: "BUSINESS_INDUSTRY" as UIHandlerId, - description: "Industry in which the company or business mainly operate.", - } as FormFieldInfo, + ADDRESS_BUILDING_NAME: "ADDRESS_BUILDING_NAME" as UIHandlerId, /** - * Description: True if the company or business is a non-profit. - * - * GANA Type: Boolean - */ - BUSINESS_IS_NON_PROFIT: { - id: "BUSINESS_IS_NON_PROFIT" as UIHandlerId, - description: "True if the company or business is a non-profit.", - } as FormFieldInfo, - /** - * Description: City or location where the company or business is registered. + * Description: Building number of the individual or business. * * GANA Type: String */ - BUSINESS_LEGAL_JURISDICTION: { - id: "BUSINESS_LEGAL_JURISDICTION" as UIHandlerId, - description: "City or location where the company or business is registered.", - } as FormFieldInfo, + ADDRESS_BUILDING_NUMBER: "ADDRESS_BUILDING_NUMBER" as UIHandlerId, /** - * Description: List of natural persons that are legal representatives or shareholders. - * - * GANA Type: GLS_BusinessRepresentative[] - */ - BUSINESS_LEGAL_REPRESENTATIVES: { - id: "BUSINESS_LEGAL_REPRESENTATIVES" as UIHandlerId, - description: "List of natural persons that are legal representatives or shareholders.", - } as FormFieldInfo, - /** - * Description: Registration founding date of the company or business. - * - * GANA Type: AbsoluteDate - */ - BUSINESS_REGISTRATION_DATE: { - id: "BUSINESS_REGISTRATION_DATE" as UIHandlerId, - description: "Registration founding date of the company or business.", - } as FormFieldInfo, - /** - * Description: Registration id on legal entity of the company or business. + * Description: Postal code of the city where the individual or business resides. * * GANA Type: String */ - BUSINESS_REGISTRATION_ID: { - id: "BUSINESS_REGISTRATION_ID" as UIHandlerId, - description: "Registration id on legal entity of the company or business.", - } as FormFieldInfo, - /** - * Description: Type of company form or business (limited liability company, general partnership, limited partnership, corporations, etc... ). - * - * GANA Type: String - */ - BUSINESS_TYPE: { - id: "BUSINESS_TYPE" as UIHandlerId, - description: "Type of company form or business (limited liability company, general partnership, limited partnership, corporations, etc... ).", - } as FormFieldInfo, - /** - * Description: DNS domain name owned by the individual or business. - * - * GANA Type: Hostname - */ - CONTACT_DNS_DOMAIN: { - id: "CONTACT_DNS_DOMAIN" as UIHandlerId, - description: "DNS domain name owned by the individual or business.", - } as FormFieldInfo, - /** - * Description: E-mail address to contact the individual or business. Can be validated via E-mail with TAN. - * - * GANA Type: Email - */ - CONTACT_EMAIL: { - id: "CONTACT_EMAIL" as UIHandlerId, - description: "E-mail address to contact the individual or business. Can be validated via E-mail with TAN.", - } as FormFieldInfo, - /** - * Description: Phone number to contact the individual or business. Can be validated via SMS-TAN or phone call. - * - * GANA Type: Phone - */ - CONTACT_PHONE: { - id: "CONTACT_PHONE" as UIHandlerId, - description: "Phone number to contact the individual or business. Can be validated via SMS-TAN or phone call.", - } as FormFieldInfo, - /** - * Description: Web site owned by the individual or business. - * - * GANA Type: HttpHostnamePath - */ - CONTACT_WEB_DOMAIN: { - id: "CONTACT_WEB_DOMAIN" as UIHandlerId, - description: "Web site owned by the individual or business.", - } as FormFieldInfo, + ADDRESS_ZIPCODE: "ADDRESS_ZIPCODE" as UIHandlerId, /** - * Description: Date of birth of an individual. Format is YYYY-MM-DD. - * - * GANA Type: AbsoluteDate - */ - PERSON_DATE_OF_BIRTH: { - id: "PERSON_DATE_OF_BIRTH" as UIHandlerId, - description: "Date of birth of an individual. Format is YYYY-MM-DD.", - } as FormFieldInfo, - /** - * Description: Full legal name of an individual as in the national identity card. + * Description: Town location of the individual or business. * * GANA Type: String */ - PERSON_FULL_NAME: { - id: "PERSON_FULL_NAME" as UIHandlerId, - description: "Full legal name of an individual as in the national identity card.", - } as FormFieldInfo, + ADDRESS_TOWN_LOCATION: "ADDRESS_TOWN_LOCATION" as UIHandlerId, /** - * Description: Last name of an individual as in the national identity card. + * Description: Town district of the individual or business. * * GANA Type: String */ - PERSON_LAST_NAME: { - id: "PERSON_LAST_NAME" as UIHandlerId, - description: "Last name of an individual as in the national identity card.", - } as FormFieldInfo, + ADDRESS_TOWN_DISTRICT: "ADDRESS_TOWN_DISTRICT" as UIHandlerId, /** - * Description: Nationality of an individual. Format is 2-letter ISO country-code. - * - * GANA Type: CountryCode - */ - PERSON_NATIONALITY: { - id: "PERSON_NATIONALITY" as UIHandlerId, - description: "Nationality of an individual. Format is 2-letter ISO country-code.", - } as FormFieldInfo, - /** - * Description: Identification number or string of national identity card. + * Description: Country subdivision of the individual or business. * * GANA Type: String */ - PERSON_NATIONAL_ID: { - id: "PERSON_NATIONAL_ID" as UIHandlerId, - description: "Identification number or string of national identity card.", - } as FormFieldInfo, - /** - * Description: Scan of a recognized national identity card of an individual. - * - * GANA Type: File - */ - PERSON_NATIONAL_ID_SCAN: { - id: "PERSON_NATIONAL_ID_SCAN" as UIHandlerId, - description: "Scan of a recognized national identity card of an individual.", - } as FormFieldInfo, + ADDRESS_COUNTRY_SUBDIVISION: "ADDRESS_COUNTRY_SUBDIVISION" as UIHandlerId, /** * Description: Country name of of the individual or business. * * GANA Type: CountryCode */ - TAX_COUNTRY: { - id: "TAX_COUNTRY" as UIHandlerId, - description: "Country name of of the individual or business.", - } as FormFieldInfo, + TAX_COUNTRY: "TAX_COUNTRY" as UIHandlerId, /** * Description: Tax identifier of the individual or business. * * GANA Type: String */ - TAX_ID: { - id: "TAX_ID" as UIHandlerId, - description: "Tax identifier of the individual or business.", - } as FormFieldInfo, + TAX_ID: "TAX_ID" as UIHandlerId, /** - * Description: Is the individual or business economically active or passive. + * Description: Is business founded or under USA law. * * GANA Type: Boolean */ - TAX_IS_ACTIVE: { - id: "TAX_IS_ACTIVE" as UIHandlerId, - description: "Is the individual or business economically active or passive.", - } as FormFieldInfo, + TAX_IS_USA_LAW: "TAX_IS_USA_LAW" as UIHandlerId, /** - * Description: Is the business entitled to deduct input tax. + * Description: Is the individual or business economically active or passive. * * GANA Type: Boolean */ - TAX_IS_DEDUCTED: { - id: "TAX_IS_DEDUCTED" as UIHandlerId, - description: "Is the business entitled to deduct input tax.", - } as FormFieldInfo, + TAX_IS_ACTIVE: "TAX_IS_ACTIVE" as UIHandlerId, /** - * Description: Is business founded or under USA law. + * Description: Is the business entitled to deduct input tax. * * GANA Type: Boolean */ - TAX_IS_USA_LAW: { - id: "TAX_IS_USA_LAW" as UIHandlerId, - description: "Is business founded or under USA law.", - } as FormFieldInfo, - } as const; - export const GLS_BusinessRepresentative = { - /** - * Description: - * - * GANA Type: AbsoluteDate - */ - GLS_REPRESENTATIVE_DATE_OF_BIRTH: { - id: "GLS_REPRESENTATIVE_DATE_OF_BIRTH" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: - * - * GANA Type: String - */ - GLS_REPRESENTATIVE_FULL_NAME: { - id: "GLS_REPRESENTATIVE_FULL_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: - * - * GANA Type: String - */ - GLS_REPRESENTATIVE_LAST_NAME: { - id: "GLS_REPRESENTATIVE_LAST_NAME" as UIHandlerId, - description: "", - } as FormFieldInfo, - /** - * Description: - * - * GANA Type: CountryCode - */ - GLS_REPRESENTATIVE_NATIONALITY: { - id: "GLS_REPRESENTATIVE_NATIONALITY" as UIHandlerId, - description: "", - } as FormFieldInfo, + TAX_IS_DEDUCTED: "TAX_IS_DEDUCTED" as UIHandlerId, /** - * Description: + * Description: Name of the version of the terms of service accepted by the customer. * - * GANA Type: String + * GANA Type: Boolean */ - GLS_REPRESENTATIVE_NATIONAL_ID: { - id: "GLS_REPRESENTATIVE_NATIONAL_ID" as UIHandlerId, - description: "", - } as FormFieldInfo, + ACCEPTED_TERMS_OF_SERVICE: "ACCEPTED_TERMS_OF_SERVICE" as UIHandlerId, /** - * Description: + * Description: True if deposit limit changed from zero to greater than zero. * - * GANA Type: File + * GANA Type: Boolean */ - GLS_REPRESENTATIVE_NATIONAL_ID_SCAN: { - id: "GLS_REPRESENTATIVE_NATIONAL_ID_SCAN" as UIHandlerId, - description: "", - } as FormFieldInfo, - } as const; - export const AccountProperties = { + AML_ACCOUNT_ACTIVE_DEPOSIT: "AML_ACCOUNT_ACTIVE_DEPOSIT" as UIHandlerId, /** - * Description: True if deposit limit changed from zero to greater than zero. + * Description: True if the account made no operaton during a period of time. * * GANA Type: Boolean */ - AML_ACCOUNT_ACTIVE_DEPOSIT: { - id: "AML_ACCOUNT_ACTIVE_DEPOSIT" as UIHandlerId, - description: "True if deposit limit changed from zero to greater than zero.", - } as FormFieldInfo, + AML_NO_OPERATION_DURING_PERIOD: "AML_NO_OPERATION_DURING_PERIOD" as UIHandlerId, /** * Description: True if this is an account controlled by domestic PEP. * * GANA Type: Boolean */ - AML_DOMESTIC_PEP: { - id: "AML_DOMESTIC_PEP" as UIHandlerId, - description: "True if this is an account controlled by domestic PEP.", - } as FormFieldInfo, + AML_DOMESTIC_PEP: "AML_DOMESTIC_PEP" as UIHandlerId, /** * Description: True if this is an account controlled by foreign PEP. * * GANA Type: Boolean */ - AML_FOREIGN_PEP: { - id: "AML_FOREIGN_PEP" as UIHandlerId, - description: "True if this is an account controlled by foreign PEP.", - } as FormFieldInfo, + AML_FOREIGN_PEP: "AML_FOREIGN_PEP" as UIHandlerId, /** * Description: True if this is an account of a high-rish business. * * GANA Type: Boolean */ - AML_HIGH_RISK_BUSINESS: { - id: "AML_HIGH_RISK_BUSINESS" as UIHandlerId, - description: "True if this is an account of a high-rish business.", - } as FormFieldInfo, + AML_HIGH_RISK_BUSINESS: "AML_HIGH_RISK_BUSINESS" as UIHandlerId, /** * Description: True if this is an account controlled by person from high-risk country. * * GANA Type: String */ - AML_HIGH_RISK_COUNTRY: { - id: "AML_HIGH_RISK_COUNTRY" as UIHandlerId, - description: "True if this is an account controlled by person from high-risk country.", - } as FormFieldInfo, + AML_HIGH_RISK_COUNTRY: "AML_HIGH_RISK_COUNTRY" as UIHandlerId, /** - * Description: True if account is involved in proceedings for which Art 6 GwG, and completed. + * Description: True if this account is going to be reported by obligation to do so (based on Art 9 Abs. 1 GwG). * * GANA Type: Boolean */ - AML_INVESTIGATION_ART6_COMPLETED: { - id: "AML_INVESTIGATION_ART6_COMPLETED" as UIHandlerId, - description: "True if account is involved in proceedings for which Art 6 GwG, and completed.", - } as FormFieldInfo, + AML_MROS_REPORTED_ART9: "AML_MROS_REPORTED_ART9" as UIHandlerId, /** - * Description: True if account is involved in proceedings for which Art 6 GwG, but failed. + * Description: True if this account is going to be reported by right to do so (based on Art 305ter Abs. 2 StGB). * * GANA Type: Boolean */ - AML_INVESTIGATION_ART6_FAILED: { - id: "AML_INVESTIGATION_ART6_FAILED" as UIHandlerId, - description: "True if account is involved in proceedings for which Art 6 GwG, but failed.", - } as FormFieldInfo, + AML_MROS_REPORTED_ART305: "AML_MROS_REPORTED_ART305" as UIHandlerId, /** - * Description: True if this account is going to be reported by right to do so (based on Art 305ter Abs. 2 StGB). + * Description: True if account is involved in proceedings for which Art 6 GwG, and completed. * * GANA Type: Boolean */ - AML_MROS_REPORTED_ART305: { - id: "AML_MROS_REPORTED_ART305" as UIHandlerId, - description: "True if this account is going to be reported by right to do so (based on Art 305ter Abs. 2 StGB).", - } as FormFieldInfo, + AML_INVESTIGATION_ART6_COMPLETED: "AML_INVESTIGATION_ART6_COMPLETED" as UIHandlerId, /** - * Description: True if this account is going to be reported by obligation to do so (based on Art 9 Abs. 1 GwG). + * Description: True if account is involved in proceedings for which Art 6 GwG, but failed. * * GANA Type: Boolean */ - AML_MROS_REPORTED_ART9: { - id: "AML_MROS_REPORTED_ART9" as UIHandlerId, - description: "True if this account is going to be reported by obligation to do so (based on Art 9 Abs. 1 GwG).", - } as FormFieldInfo, + AML_INVESTIGATION_ART6_FAILED: "AML_INVESTIGATION_ART6_FAILED" as UIHandlerId, /** - * Description: True if the account made no operaton during a period of time. + * Description: Name of the form completed by the user. * - * GANA Type: Boolean + * GANA Type: String + */ + FORM_ID: "FORM_ID" as UIHandlerId, + /** + * Description: Version of the form completed by the user. + * + * GANA Type: Number + */ + FORM_VERSION: "FORM_VERSION" as UIHandlerId, + /** + * Description: High entropy value used in forms where hash is going to be stored in plain text. + * + * GANA Type: String */ - AML_NO_OPERATION_DURING_PERIOD: { - id: "AML_NO_OPERATION_DURING_PERIOD" as UIHandlerId, - description: "True if the account made no operaton during a period of time.", - } as FormFieldInfo, - } as const; + FORM_SALT: "FORM_SALT" as UIHandlerId, } diff --git a/packages/web-util/src/forms/index.ts b/packages/web-util/src/forms/index.ts @@ -1,19 +1,7 @@ export * from "./Calendar.js"; export * from "./Caption.js"; -export * from "./HtmlIframe.js"; export * from "./Dialog.js"; -export * from "./FormProvider.js"; -export * from "./Group.js"; -export * from "./gana/VQF_902_1_customer.js"; -export * from "./gana/VQF_902_1_officer.js"; -export * from "./gana/VQF_902_4.js"; -export * from "./gana/VQF_902_5.js"; -export * from "./gana/VQF_902_9.js"; -export * from "./gana/VQF_902_11.js"; -export * from "./gana/VQF_902_12.js"; -export * from "./gana/VQF_902_14.js"; -export * from "./gana/GLS_Onboarding.js"; -export * from "./gana/taler_form_attributes.js"; +export * from "./field-types.js"; export * from "./fields/InputAbsoluteTime.js"; export * from "./fields/InputAmount.js"; export * from "./fields/InputArray.js"; @@ -22,13 +10,25 @@ export * from "./fields/InputChoiceStacked.js"; export * from "./fields/InputFile.js"; export * from "./fields/InputInteger.js"; export * from "./fields/InputLine.js"; +export * from "./fields/InputSecret.js"; export * from "./fields/InputSelectMultiple.js"; export * from "./fields/InputSelectOne.js"; export * from "./fields/InputText.js"; -export * from "./fields/InputSecret.js"; export * from "./fields/InputTextArea.js"; export * from "./fields/InputToggle.js"; -export * from "./TimePicker.js"; -export * from "./field-types.js"; +export * from "./FormProvider.js"; export * from "./forms-types.js"; export * from "./forms-ui.js"; +export * from "./gana/GLS_Onboarding.js"; +export * from "./gana/taler_aml_properties.js"; +export * from "./gana/taler_form_attributes.js"; +export * from "./gana/VQF_902_11.js"; +export * from "./gana/VQF_902_14.js"; +export * from "./gana/VQF_902_1_customer.js"; +export * from "./gana/VQF_902_1_officer.js"; +export * from "./gana/VQF_902_4.js"; +export * from "./gana/VQF_902_5.js"; +export * from "./gana/VQF_902_9.js"; +export * from "./Group.js"; +export * from "./HtmlIframe.js"; +export * from "./TimePicker.js"; diff --git a/packages/web-util/src/hooks/useForm.ts b/packages/web-util/src/hooks/useForm.ts @@ -249,7 +249,7 @@ function constructFormHandler<T>( undefined, ); - // compute prop based un state + // compute prop based on state const hidden = hiddenSection === true || formElement.hidden === true ||