@swan-io/shared-business 18.0.3 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/components/AccountStatementHeader.d.ts +2 -1
- package/src/components/AccountStatementHeader.js +2 -2
- package/src/components/CreditStatement.d.ts +2 -1
- package/src/components/CreditStatement.js +2 -2
- package/src/components/RIB.d.ts +1 -0
- package/src/components/RIB.js +1 -1
- package/src/components/TaxIdentificationNumberInput.js +1 -1
- package/src/components/TransactionStatement.d.ts +2 -1
- package/src/components/TransactionStatement.js +2 -2
- package/src/locales/nl.json +28 -28
- package/src/utils/validation.d.ts +1 -1
- package/src/utils/validation.js +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swan-io/shared-business",
|
|
3
|
-
"version": "18.0
|
|
3
|
+
"version": "18.1.0",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">22.12.0"
|
|
6
6
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"react": ">=19.0.0",
|
|
29
29
|
"react-dom": ">=19.0.0",
|
|
30
30
|
"react-native-web": ">=0.21.2",
|
|
31
|
-
"@swan-io/lake": "18.0
|
|
31
|
+
"@swan-io/lake": "18.1.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@formatjs/intl": "^4.1.16",
|
|
@@ -53,6 +53,6 @@
|
|
|
53
53
|
"react-dom": "^19.2.7",
|
|
54
54
|
"react-native-web": "^0.21.2",
|
|
55
55
|
"type-fest": "^5.8.0",
|
|
56
|
-
"@swan-io/lake": "18.0
|
|
56
|
+
"@swan-io/lake": "18.1.0"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type SupportedLanguage } from "../utils/i18n";
|
|
2
2
|
type AccountStatementHeaderProps = {
|
|
3
3
|
partnerLogoUrl?: string;
|
|
4
|
+
partnerLogoAlt?: string;
|
|
4
5
|
language?: SupportedLanguage;
|
|
5
6
|
};
|
|
6
|
-
export declare const AccountStatementHeader: ({ partnerLogoUrl, language, }: AccountStatementHeaderProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const AccountStatementHeader: ({ partnerLogoUrl, partnerLogoAlt, language, }: AccountStatementHeaderProps) => import("react").JSX.Element;
|
|
7
8
|
export {};
|
|
@@ -57,7 +57,7 @@ const logoStyle = {
|
|
|
57
57
|
objectFit: "contain",
|
|
58
58
|
objectPosition: "left",
|
|
59
59
|
};
|
|
60
|
-
export const AccountStatementHeader = ({ partnerLogoUrl, language, }) => {
|
|
60
|
+
export const AccountStatementHeader = ({ partnerLogoUrl, partnerLogoAlt, language, }) => {
|
|
61
61
|
const t = useTranslation(language);
|
|
62
|
-
return (_jsxs("div", { style: styles.container, children: [_jsx("div", { style: styles.logo, children: isNotNullishOrEmpty(partnerLogoUrl) ? (_jsxs(_Fragment, { children: [_jsx("img", { src: partnerLogoUrl, style: logoStyle }), _jsxs("div", { style: styles.partnership, children: [_jsx("div", { style: styles.partnershipText, children: t("accountStatement.partnership") }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] })] })) : (_jsx(SwanLogo, { style: styles.defaultLogo })) }), _jsxs("div", { style: styles.pageNumber, children: [t("accountStatement.page"), " ", _jsx("span", { className: "pageNumber" }), "/", _jsx("span", { className: "totalPages" })] })] }));
|
|
62
|
+
return (_jsxs("div", { style: styles.container, children: [_jsx("div", { style: styles.logo, children: isNotNullishOrEmpty(partnerLogoUrl) ? (_jsxs(_Fragment, { children: [_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle }), _jsxs("div", { style: styles.partnership, children: [_jsx("div", { style: styles.partnershipText, children: t("accountStatement.partnership") }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] })] })) : (_jsx(SwanLogo, { style: styles.defaultLogo })) }), _jsxs("div", { style: styles.pageNumber, children: [t("accountStatement.page"), " ", _jsx("span", { className: "pageNumber" }), "/", _jsx("span", { className: "totalPages" })] })] }));
|
|
63
63
|
};
|
|
@@ -26,6 +26,7 @@ type Transaction = {
|
|
|
26
26
|
type CreditStatementV1Props = {
|
|
27
27
|
version: "v1";
|
|
28
28
|
partnerLogoUrl?: string;
|
|
29
|
+
partnerLogoAlt?: string;
|
|
29
30
|
style?: StyleProp<ViewStyle>;
|
|
30
31
|
accountHolderType: "Individual" | "Company";
|
|
31
32
|
accountHolderName: string;
|
|
@@ -41,7 +42,7 @@ type CreditStatementV1Props = {
|
|
|
41
42
|
repaymentDate: string;
|
|
42
43
|
closingBalance: Amount;
|
|
43
44
|
};
|
|
44
|
-
export declare const CreditStatementV1: ({ partnerLogoUrl, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }: CreditStatementV1Props) => import("react").JSX.Element;
|
|
45
|
+
export declare const CreditStatementV1: ({ partnerLogoUrl, partnerLogoAlt, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }: CreditStatementV1Props) => import("react").JSX.Element;
|
|
45
46
|
export type CreditStatementProps = CreditStatementV1Props;
|
|
46
47
|
export declare const CreditStatement: (props: CreditStatementProps) => import("react").JSX.Element;
|
|
47
48
|
export {};
|
|
@@ -96,8 +96,8 @@ const logoStyle = {
|
|
|
96
96
|
objectPosition: "left",
|
|
97
97
|
};
|
|
98
98
|
const formatMaskedPan = (value) => `••${value.slice(-4)}`;
|
|
99
|
-
export const CreditStatementV1 = ({ partnerLogoUrl, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }) => {
|
|
100
|
-
return (_jsxs(Box, { style: styles.container, direction: "column", justifyContent: "spaceBetween", children: [_jsxs(Box, { direction: "row", justifyContent: "spaceBetween", alignItems: "start", children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(LakeText, { style: styles.mediumText, children: t("accountStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsxs(Box, { children: [_jsx(LakeText, { style: styles.pageTitle, children: t("creditStatement.titleDocument") }), _jsx(LakeText, { style: styles.text, color: colors.gray[700], children: accountHolderType === "Company"
|
|
99
|
+
export const CreditStatementV1 = ({ partnerLogoUrl, partnerLogoAlt, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }) => {
|
|
100
|
+
return (_jsxs(Box, { style: styles.container, direction: "column", justifyContent: "spaceBetween", children: [_jsxs(Box, { direction: "row", justifyContent: "spaceBetween", alignItems: "start", children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(LakeText, { style: styles.mediumText, children: t("accountStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsxs(Box, { children: [_jsx(LakeText, { style: styles.pageTitle, children: t("creditStatement.titleDocument") }), _jsx(LakeText, { style: styles.text, color: colors.gray[700], children: accountHolderType === "Company"
|
|
101
101
|
? t("accountStatement.titleDocument.companyDescription")
|
|
102
102
|
: t("accountStatement.titleDocument.individualDescription") }), _jsx(LakeText, { align: "right", style: styles.smallText, children: t("creditStatement.issueDate", {
|
|
103
103
|
issueDate: dayjs(issueDate).format(locale.dateFormat),
|
package/src/components/RIB.d.ts
CHANGED
package/src/components/RIB.js
CHANGED
|
@@ -67,7 +67,7 @@ const logoStyle = {
|
|
|
67
67
|
objectFit: "contain",
|
|
68
68
|
objectPosition: "left",
|
|
69
69
|
};
|
|
70
|
-
const RIBv1 = ({ accountHolderAddress, bank, bankAddress, bic, iban, partnerColor, partnerLogoUrl, ...props }) => (_jsx(WithPartnerAccentColor, { color: partnerColor, children: _jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.half, children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: { ...logoStyle, height: LOGO_MAX_HEIGHT, maxWidth: LOGO_MAX_WIDTH } })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Space, { width: 24 }), _jsx(LakeHeading, { align: "right", color: colors.gray[900], level: 2, style: commonStyles.fill, variant: "h3", children: t("rib.bankDetails") })] }), _jsx(Space, { height: 24 }), _jsxs(Box, { direction: "row", alignItems: "center", children: [_jsx(Item, { kind: "main", color: "partner", label: t("rib.iban"), value: iban }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "main", color: "partner", label: t("rib.bic"), value: bic })] }), _jsx(Space, { height: 8 }), _jsx(Box, { direction: "row", alignItems: "center", children: match(props)
|
|
70
|
+
const RIBv1 = ({ accountHolderAddress, bank, bankAddress, bic, iban, partnerColor, partnerLogoUrl, partnerLogoAlt, ...props }) => (_jsx(WithPartnerAccentColor, { color: partnerColor, children: _jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.half, children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: { ...logoStyle, height: LOGO_MAX_HEIGHT, maxWidth: LOGO_MAX_WIDTH } })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Space, { width: 24 }), _jsx(LakeHeading, { align: "right", color: colors.gray[900], level: 2, style: commonStyles.fill, variant: "h3", children: t("rib.bankDetails") })] }), _jsx(Space, { height: 24 }), _jsxs(Box, { direction: "row", alignItems: "center", children: [_jsx(Item, { kind: "main", color: "partner", label: t("rib.iban"), value: iban }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "main", color: "partner", label: t("rib.bic"), value: bic })] }), _jsx(Space, { height: 8 }), _jsx(Box, { direction: "row", alignItems: "center", children: match(props)
|
|
71
71
|
.with({ accountCountry: "FRA" }, ({ agency, bankKey, bankNumber }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.agency"), value: agency }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.number"), value: bankNumber }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.key"), value: bankKey })] })))
|
|
72
72
|
.with({ accountCountry: "DEU" }, ({ accountNumber }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.accountNumber"), value: accountNumber })] })))
|
|
73
73
|
.with({ accountCountry: "ESP" }, ({ agency, bankNumber, nationalCode }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.agency"), value: agency }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.nationalCode"), value: nationalCode }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.number"), value: bankNumber })] })))
|
|
@@ -3,7 +3,7 @@ import { LakeLabel } from "@swan-io/lake/src/components/LakeLabel";
|
|
|
3
3
|
import { LakeTextInput } from "@swan-io/lake/src/components/LakeTextInput";
|
|
4
4
|
import { t } from "../utils/i18n";
|
|
5
5
|
import { getCompanyTaxNumberHelp, getCompanyTaxNumberPlaceholder, getIndividualTaxNumberHelp, getIndividualTaxNumberPlaceholder, getTaxNumberLabel, } from "../utils/validation";
|
|
6
|
-
export const TaxIdentificationNumberInput = ({ ref, value, error, valid, disabled, onChange, onBlur, country, isCompany, required, label = getTaxNumberLabel(isCompany), placeholder = isCompany
|
|
6
|
+
export const TaxIdentificationNumberInput = ({ ref, value, error, valid, disabled, onChange, onBlur, country, isCompany, required, label = getTaxNumberLabel(isCompany, country), placeholder = isCompany
|
|
7
7
|
? getCompanyTaxNumberPlaceholder(country)
|
|
8
8
|
: getIndividualTaxNumberPlaceholder(country), }) => {
|
|
9
9
|
return (_jsx(LakeLabel, { label: label, optionalLabel: required === true ? undefined : t("common.optional"), render: id => (_jsx(LakeTextInput, { id: id, ref: ref, placeholder: placeholder, help: isCompany ? getCompanyTaxNumberHelp(country) : getIndividualTaxNumberHelp(country), value: value, error: error, valid: valid, disabled: disabled, onChangeText: onChange, onBlur: onBlur })) }));
|
|
@@ -7,6 +7,7 @@ type TransactionType = "SepaCreditTransferIn" | "SepaCreditTransferOut" | "SepaI
|
|
|
7
7
|
type TransactionStatementV1Props = {
|
|
8
8
|
version: "v1";
|
|
9
9
|
partnerLogoUrl?: string;
|
|
10
|
+
partnerLogoAlt?: string;
|
|
10
11
|
generationDate: string;
|
|
11
12
|
executionDate: string;
|
|
12
13
|
type: TransactionType;
|
|
@@ -28,7 +29,7 @@ type TransactionStatementV1Props = {
|
|
|
28
29
|
creditorBankIdentifier?: string;
|
|
29
30
|
style?: StyleProp<ViewStyle>;
|
|
30
31
|
};
|
|
31
|
-
export declare const TransactionStatementV1: ({ partnerLogoUrl, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }: TransactionStatementV1Props) => import("react").JSX.Element;
|
|
32
|
+
export declare const TransactionStatementV1: ({ partnerLogoUrl, partnerLogoAlt, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }: TransactionStatementV1Props) => import("react").JSX.Element;
|
|
32
33
|
export type TransactionStatementProps = TransactionStatementV1Props;
|
|
33
34
|
export declare const TransactionStatement: (props: TransactionStatementProps) => import("react").JSX.Element;
|
|
34
35
|
export {};
|
|
@@ -70,8 +70,8 @@ const logoStyle = {
|
|
|
70
70
|
objectFit: "contain",
|
|
71
71
|
objectPosition: "left",
|
|
72
72
|
};
|
|
73
|
-
export const TransactionStatementV1 = ({ partnerLogoUrl, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }) => {
|
|
74
|
-
return (_jsxs(View, { style: [styles.container, style], children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(Text, { style: styles.partnershipText, children: t("transactionStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.pageTitle, children: t("transactionStatement.title.document") }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.transactionInformation") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.information.executionDate"), value: executionDate }), _jsx(Line, { name: t("transactionStatement.information.type"), value: match(type)
|
|
73
|
+
export const TransactionStatementV1 = ({ partnerLogoUrl, partnerLogoAlt, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }) => {
|
|
74
|
+
return (_jsxs(View, { style: [styles.container, style], children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(Text, { style: styles.partnershipText, children: t("transactionStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.pageTitle, children: t("transactionStatement.title.document") }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.transactionInformation") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.information.executionDate"), value: executionDate }), _jsx(Line, { name: t("transactionStatement.information.type"), value: match(type)
|
|
75
75
|
.with("SepaCreditTransferIn", () => t("transactionStatement.type.SepaCreditTransferIn"))
|
|
76
76
|
.with("SepaCreditTransferOut", () => t("transactionStatement.type.SepaCreditTransferOut"))
|
|
77
77
|
.with("SepaInstantCreditTransferIn", () => t("transactionStatement.type.SepaInstantCreditTransferIn"))
|
package/src/locales/nl.json
CHANGED
|
@@ -69,35 +69,35 @@
|
|
|
69
69
|
"common.open": "Openen",
|
|
70
70
|
"common.optional": "Optioneel",
|
|
71
71
|
"common.previous": "Vorige",
|
|
72
|
-
"common.rejectionReason.BadDocumentQuality": "De kwaliteit van het document is te
|
|
73
|
-
"common.rejectionReason.CompanyNameMismatch": "De bedrijfsnaam komt niet overeen met de gegevens
|
|
74
|
-
"common.rejectionReason.ComplianceReason": "
|
|
75
|
-
"common.rejectionReason.DeclaredAmountMismatch": "Het opgegeven bedrag komt niet overeen met de gegevens
|
|
76
|
-
"common.rejectionReason.ExpiredDocument": "Het document is
|
|
77
|
-
"common.rejectionReason.FullDocumentRequired": "Het volledige document is vereist. Upload het complete document, inclusief alle pagina's en beide zijden indien van toepassing.",
|
|
78
|
-
"common.rejectionReason.HandwrittenOrCertifiedElectronicSignatureRequired": "De handtekening moet
|
|
72
|
+
"common.rejectionReason.BadDocumentQuality": "De kwaliteit van het document is te slecht om te kunnen lezen. Upload een scan of foto met een hogere resolutie.",
|
|
73
|
+
"common.rejectionReason.CompanyNameMismatch": "De bedrijfsnaam komt niet overeen met de gegevens die bij Swan bekend zijn. Upload een document met de juiste bedrijfsnaam.",
|
|
74
|
+
"common.rejectionReason.ComplianceReason": "Er is aanvullende verificatie nodig om aan de regels te voldoen. Kijk in het veld Reden voor meer informatie van Swan.",
|
|
75
|
+
"common.rejectionReason.DeclaredAmountMismatch": "Het opgegeven bedrag komt niet overeen met de gegevens die bij Swan bekend zijn. Upload een document met het juiste bedrag.",
|
|
76
|
+
"common.rejectionReason.ExpiredDocument": "Het document is te oud. Upload de meest recente versie die er beschikbaar is.",
|
|
77
|
+
"common.rejectionReason.FullDocumentRequired": "Het volledige document is vereist. Upload het complete document, inclusief alle pagina's en beide zijden, indien van toepassing.",
|
|
78
|
+
"common.rejectionReason.HandwrittenOrCertifiedElectronicSignatureRequired": "De handtekening moet handgeschreven zijn of elektronisch gecertificeerd. Upload een document met een geldige handtekening.",
|
|
79
79
|
"common.rejectionReason.IbanMismatch": "De IBAN op het document komt niet overeen met de transactiegegevens. Upload een document met de juiste IBAN.",
|
|
80
|
-
"common.rejectionReason.InvalidAddress": "Het adres komt niet overeen met
|
|
81
|
-
"common.rejectionReason.InvalidDepositBankName": "De banknaam in de statuten komt niet overeen met de
|
|
82
|
-
"common.rejectionReason.InvalidDocument": "Het document is
|
|
83
|
-
"common.rejectionReason.InvalidOrMissingData": "Vereiste informatie is ongeldig of ontbreekt.
|
|
84
|
-
"common.rejectionReason.InvalidTransaction": "Het ingediende document komt niet overeen met deze transactie.
|
|
85
|
-
"common.rejectionReason.MissingAccommodationProviderId": "Het
|
|
86
|
-
"common.rejectionReason.MissingAccommodationProviderIdLetter": "De ID-brief van de
|
|
87
|
-
"common.rejectionReason.MissingAccommodationProviderLetter": "De brief van de
|
|
88
|
-
"common.rejectionReason.MissingCompanyDomiciliationStatement": "De
|
|
89
|
-
"common.rejectionReason.MissingCompanyProviderRegisterExtract": "Het uittreksel uit het
|
|
90
|
-
"common.rejectionReason.MissingDescription": "
|
|
91
|
-
"common.rejectionReason.MissingProviderProofOfAddress": "Het
|
|
92
|
-
"common.rejectionReason.MissingProviderProofOfAddressAndIdDocument": "Het
|
|
80
|
+
"common.rejectionReason.InvalidAddress": "Het adres komt niet overeen met het adres dat bij Swan bekend is. Upload een document met het correcte adres.",
|
|
81
|
+
"common.rejectionReason.InvalidDepositBankName": "De banknaam in de statuten komt niet overeen met de banknaam die bij Swan bekend is. Upload een document met de juiste banknaam.",
|
|
82
|
+
"common.rejectionReason.InvalidDocument": "Het document is niet geldig of heeft een onjuiste indeling. Kijk in het veld Reden voor meer informatie van Swan.",
|
|
83
|
+
"common.rejectionReason.InvalidOrMissingData": "Vereiste informatie is ongeldig of ontbreekt. Kijk in het veld Reden voor meer details van Swan.",
|
|
84
|
+
"common.rejectionReason.InvalidTransaction": "Het ingediende document komt niet overeen met deze transactie. Kijk in het veld Reden voor meer details van Swan.",
|
|
85
|
+
"common.rejectionReason.MissingAccommodationProviderId": "Het identificatiebewijs van de accommodatieverstrekker is vereist. Upload alle drie de accommodatiedocumenten tegelijk.",
|
|
86
|
+
"common.rejectionReason.MissingAccommodationProviderIdLetter": "De ID-brief van de accommodatieverstrekker is verplicht. Upload alle drie de accommodatiedocumenten tegelijk.",
|
|
87
|
+
"common.rejectionReason.MissingAccommodationProviderLetter": "De brief van de accommodatieverstrekker is verplicht. Upload alle drie de accommodatiedocumenten tegelijk.",
|
|
88
|
+
"common.rejectionReason.MissingCompanyDomiciliationStatement": "De verklaring van de bedrijfslocatie is verplicht. Dit document bevestigt het geregistreerde adres van het bedrijf. Upload deze verklaring om door te gaan.",
|
|
89
|
+
"common.rejectionReason.MissingCompanyProviderRegisterExtract": "Het uittreksel uit het handelsregister van het bedrijf van de accommodatieverstrekker is verplicht. Upload het om door te gaan.",
|
|
90
|
+
"common.rejectionReason.MissingDescription": "Er is meer informatie nodig om inzicht in deze transactie te krijgen. Upload een ondersteunend document, zoals een verkoopcontract of offerte.",
|
|
91
|
+
"common.rejectionReason.MissingProviderProofOfAddress": "Het adresbewijs van de accommodatieverstrekker is verplicht. Upload beide documenten van de accommodatieverstrekker samen.",
|
|
92
|
+
"common.rejectionReason.MissingProviderProofOfAddressAndIdDocument": "Het identificatiebewijs en het bewijs van adres van de accommodatieverstrekker zijn verplicht. Upload beide documenten van de accommodatieverstrekker samen.",
|
|
93
93
|
"common.rejectionReason.MissingSignature": "Het document moet ondertekend en gedateerd zijn. Upload de gecorrigeerde versie om verder te gaan.",
|
|
94
94
|
"common.rejectionReason.Other": "Bekijk de reden en uitleg van Swan.",
|
|
95
|
-
"common.rejectionReason.PowerOfAttorneyToSwanRequired": "
|
|
96
|
-
"common.rejectionReason.ProviderColorIdDocumentRequired": "Het identiteitsbewijs moet in kleur worden
|
|
95
|
+
"common.rejectionReason.PowerOfAttorneyToSwanRequired": "Er is een volmacht aan Swan vereist. Upload deze om verder te gaan.",
|
|
96
|
+
"common.rejectionReason.ProviderColorIdDocumentRequired": "Het identiteitsbewijs moet in kleur ingediend worden. Upload een versie in kleur om verder te gaan.",
|
|
97
97
|
"common.rejectionReason.TransactionAmountMismatch": "Het bedrag op het ingediende document komt niet overeen met de transactiegegevens. Upload een document met het juiste bedrag.",
|
|
98
98
|
"common.rejectionReason.TransactionDateMismatch": "De datum op het document komt niet overeen met de transactiegegevens. Upload een document met de juiste datum.",
|
|
99
99
|
"common.rejectionReason.TransactionNameMismatch": "De namen op het document komen niet overeen met de transactiegegevens. Upload een document met de juiste namen.",
|
|
100
|
-
"common.rejectionReason.UnacceptableDocument": "Het document komt niet overeen met het gevraagde type.
|
|
100
|
+
"common.rejectionReason.UnacceptableDocument": "Het document komt niet overeen met het gevraagde type. Controleer het veld Reden voor meer informatie van Swan.",
|
|
101
101
|
"common.remove": "Verwijderen",
|
|
102
102
|
"common.showLess": "Toon minder",
|
|
103
103
|
"common.showMore": "Toon meer",
|
|
@@ -158,11 +158,11 @@
|
|
|
158
158
|
"fileTile.status.Pending": "In afwachting van verificatie",
|
|
159
159
|
"fileTile.status.Validated": "Gevalideerd",
|
|
160
160
|
"fileTile.uploading": "Bezig met uploaden…",
|
|
161
|
-
"forecastYearlyIncome.from0To500000": "Minder dan € 500.000",
|
|
162
|
-
"forecastYearlyIncome.from1000001To5000000": "€ 1.000.000,-
|
|
163
|
-
"forecastYearlyIncome.from500001To1000000": "€ 500.000,-
|
|
164
|
-
"forecastYearlyIncome.moreThan5000000": "Meer dan
|
|
165
|
-
"monthlyPaymentVolume.between10000And50000": "€ 10.000,-
|
|
161
|
+
"forecastYearlyIncome.from0To500000": "Minder dan € 500.000,-",
|
|
162
|
+
"forecastYearlyIncome.from1000001To5000000": "Tussen € 1.000.000,- en € 5.000.000,-",
|
|
163
|
+
"forecastYearlyIncome.from500001To1000000": "Tussen € 500.000,- en € 1.000.000,-",
|
|
164
|
+
"forecastYearlyIncome.moreThan5000000": "Meer dan 5.000.000,-",
|
|
165
|
+
"monthlyPaymentVolume.between10000And50000": "Tussen de € 10.000,- en € 50.000,- per maand",
|
|
166
166
|
"monthlyPaymentVolume.between50000And100000": "Tussen € 50.000,- en € 100.000,- per maand",
|
|
167
167
|
"monthlyPaymentVolume.lessThan10000": "Minder dan € 10.000,- per maand",
|
|
168
168
|
"monthlyPaymentVolume.moreThan100000": "Meer dan € 100.000,- per maand",
|
|
@@ -20,7 +20,7 @@ export { printFormat as printIbanFormat } from "iban";
|
|
|
20
20
|
export declare const validateIban: (iban: string) => string | undefined;
|
|
21
21
|
export declare const validateDate: (value: ExtractedDate | undefined) => string | undefined;
|
|
22
22
|
export declare const validateBirthdate: (value: ExtractedDate | undefined) => string | undefined;
|
|
23
|
-
export declare const getTaxNumberLabel: (isCompany: boolean) => string;
|
|
23
|
+
export declare const getTaxNumberLabel: (isCompany: boolean, country: CompanyCountryCCA3) => string;
|
|
24
24
|
export declare const getIndividualTaxNumberPlaceholder: (country: IndividualCountryCCA3 | CompanyCountryCCA3) => string | undefined;
|
|
25
25
|
export declare const getCompanyTaxNumberPlaceholder: (country: IndividualCountryCCA3 | CompanyCountryCCA3) => string | undefined;
|
|
26
26
|
export declare const getCompanyTaxNumberHelp: (country: CompanyCountryCCA3) => string;
|
package/src/utils/validation.js
CHANGED
|
@@ -238,8 +238,9 @@ export const validateBirthdate = (value) => {
|
|
|
238
238
|
/*
|
|
239
239
|
* Translation helpers for tax validation
|
|
240
240
|
*/
|
|
241
|
-
export const getTaxNumberLabel = (isCompany) => match({ isCompany, lang: locale.language })
|
|
241
|
+
export const getTaxNumberLabel = (isCompany, country) => match({ isCompany, lang: locale.language, country })
|
|
242
242
|
.with({ isCompany: true, lang: "de" }, () => "Steuer-Nummer")
|
|
243
|
+
.with({ country: "NLD" }, () => "RSIN")
|
|
243
244
|
.otherwise(() => t("taxIdentificationNumber.label"));
|
|
244
245
|
export const getIndividualTaxNumberPlaceholder = (country) => match({ country, lang: locale.language })
|
|
245
246
|
.with({ country: "DEU", lang: P.not("de") }, () => "Steueridentifikationsnummer")
|