@swan-io/shared-business 8.14.7 → 8.15.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 +1 -1
- package/src/components/TransactionStatement.d.ts +10 -5
- package/src/components/TransactionStatement.js +15 -6
- package/src/locales/de.json +8 -0
- package/src/locales/en.json +8 -0
- package/src/locales/es.json +8 -0
- package/src/locales/fi.json +8 -0
- package/src/locales/fr.json +8 -0
- package/src/locales/it.json +8 -0
- package/src/locales/nl.json +8 -0
- package/src/locales/pt.json +8 -0
- package/src/utils/i18n.d.ts +1 -0
- package/src/utils/i18n.js +1 -0
package/package.json
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { StyleProp, ViewStyle } from "react-native";
|
|
2
|
+
type Amount = {
|
|
3
|
+
value: string;
|
|
4
|
+
currency: string;
|
|
5
|
+
};
|
|
6
|
+
type TransactionType = "SepaCreditTransferIn" | "SepaCreditTransferOut" | "SepaInstantCreditTransferIn" | "SepaInstantCreditTransferOut" | "InternalCreditTransferIn" | "InternalCreditTransferOut" | "InternationalCreditTransferIn" | "InternationalCreditTransferOut";
|
|
2
7
|
type TransactionStatementV1Props = {
|
|
3
8
|
version: "v1";
|
|
4
9
|
partnerLogoUrl?: string;
|
|
5
10
|
generationDate: string;
|
|
6
11
|
executionDate: string;
|
|
7
|
-
type:
|
|
8
|
-
amount:
|
|
9
|
-
targetTransferAmount?:
|
|
10
|
-
exchangeRate?:
|
|
11
|
-
fees?:
|
|
12
|
+
type: TransactionType;
|
|
13
|
+
amount: Amount;
|
|
14
|
+
targetTransferAmount?: Amount;
|
|
15
|
+
exchangeRate?: [Amount, Amount];
|
|
16
|
+
fees?: Amount;
|
|
12
17
|
label: string;
|
|
13
18
|
reference: string;
|
|
14
19
|
debtorName: string;
|
|
@@ -6,10 +6,10 @@ import { Space } from "@swan-io/lake/src/components/Space";
|
|
|
6
6
|
import { Stack } from "@swan-io/lake/src/components/Stack";
|
|
7
7
|
import { SwanLogo } from "@swan-io/lake/src/components/SwanLogo";
|
|
8
8
|
import { colors, fonts, interFontStyle } from "@swan-io/lake/src/constants/design";
|
|
9
|
-
import { isNotNullishOrEmpty } from "@swan-io/lake/src/utils/nullish";
|
|
9
|
+
import { isNotNullish, isNotNullishOrEmpty } from "@swan-io/lake/src/utils/nullish";
|
|
10
10
|
import { StyleSheet, Text, View } from "react-native";
|
|
11
11
|
import { match } from "ts-pattern";
|
|
12
|
-
import { t } from "../utils/i18n";
|
|
12
|
+
import { formatCurrency, t } from "../utils/i18n";
|
|
13
13
|
const LOGO_MAX_HEIGHT = 24;
|
|
14
14
|
const LOGO_MAX_WIDTH = 150;
|
|
15
15
|
const getTextStyle = (type, fontSize) => ({
|
|
@@ -21,9 +21,9 @@ const getTextStyle = (type, fontSize) => ({
|
|
|
21
21
|
});
|
|
22
22
|
const styles = StyleSheet.create({
|
|
23
23
|
container: {
|
|
24
|
-
height:
|
|
25
|
-
width:
|
|
26
|
-
padding:
|
|
24
|
+
height: 1050,
|
|
25
|
+
width: 793,
|
|
26
|
+
padding: 56,
|
|
27
27
|
},
|
|
28
28
|
partnershipText: {
|
|
29
29
|
...getTextStyle("sans", 12),
|
|
@@ -74,7 +74,16 @@ const logoStyle = {
|
|
|
74
74
|
objectPosition: "left",
|
|
75
75
|
};
|
|
76
76
|
export const TransactionStatementV1 = ({ partnerLogoUrl, generationDate, executionDate, type, amount, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }) => {
|
|
77
|
-
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.information") }), _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: type
|
|
77
|
+
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.information") }), _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)
|
|
78
|
+
.with("SepaCreditTransferIn", () => t("transactionStatement.type.SepaCreditTransferIn"))
|
|
79
|
+
.with("SepaCreditTransferOut", () => t("transactionStatement.type.SepaCreditTransferOut"))
|
|
80
|
+
.with("SepaInstantCreditTransferIn", () => t("transactionStatement.type.SepaInstantCreditTransferIn"))
|
|
81
|
+
.with("SepaInstantCreditTransferOut", () => t("transactionStatement.type.SepaInstantCreditTransferOut"))
|
|
82
|
+
.with("InternalCreditTransferIn", () => t("transactionStatement.type.InternalCreditTransferIn"))
|
|
83
|
+
.with("InternalCreditTransferOut", () => t("transactionStatement.type.InternalCreditTransferOut"))
|
|
84
|
+
.with("InternationalCreditTransferIn", () => t("transactionStatement.type.InternationalCreditTransferIn"))
|
|
85
|
+
.with("InternationalCreditTransferOut", () => t("transactionStatement.type.InternationalCreditTransferOut"))
|
|
86
|
+
.exhaustive() }), _jsx(Line, { name: t("transactionStatement.information.amount"), value: formatCurrency(Number(amount.value), amount.currency) }), isNotNullish(targetTransferAmount) && (_jsx(Line, { name: t("transactionStatement.information.targetTransferAmount"), value: formatCurrency(Number(targetTransferAmount.value), targetTransferAmount.currency) })), isNotNullish(exchangeRate) && (_jsx(Line, { name: t("transactionStatement.information.exchangeRate"), value: `${formatCurrency(Number(exchangeRate[0].value), exchangeRate[0].currency)} : ${formatCurrency(Number(exchangeRate[1].value), exchangeRate[1].currency)}` })), isNotNullish(fees) && (_jsx(Line, { name: t("transactionStatement.information.fees"), value: formatCurrency(Number(fees.value), fees.currency) })), _jsx(Line, { name: "Label", value: label }), _jsx(Line, { name: "Reference", value: reference })] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.debtor") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.debtor.name"), value: debtorName }), _jsx(Line, { name: t("transactionStatement.debtor.accountNumber"), value: debtorAccountNumber }), isNotNullishOrEmpty(debtorBankName) && (_jsx(Line, { name: t("transactionStatement.debtor.bankName"), value: debtorBankName })), isNotNullishOrEmpty(debtorBankIdentifier) && (_jsx(Line, { name: t("transactionStatement.debtor.bankIdentifier"), value: debtorBankIdentifier }))] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.creditor") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.creditor.name"), value: creditorName }), _jsx(Line, { name: t("transactionStatement.creditor.accountNumber"), value: creditorAccountNumber }), isNotNullishOrEmpty(creditorBankName) && (_jsx(Line, { name: t("transactionStatement.creditor.bankName"), value: creditorBankName })), isNotNullishOrEmpty(creditorBankIdentifier) && (_jsx(Line, { name: t("transactionStatement.creditor.bankIdentifier"), value: creditorBankIdentifier }))] }), _jsx(Fill, { minHeight: 8 }), _jsx(Text, { style: styles.generationInfos, children: t("transactionStatement.generationDate", { date: generationDate }) }), _jsx(Space, { height: 8 }), _jsx(Text, { style: styles.generationInfos, children: t("transactionStatement.generationInfos") }), _jsx(Separator, { space: 24 }), _jsx(Text, { style: styles.footer, children: t("transactionStatement.footer") })] }));
|
|
78
87
|
};
|
|
79
88
|
export const TransactionStatement = (props) => match(props)
|
|
80
89
|
.with({ version: "v1" }, props => _jsx(TransactionStatementV1, { ...props }))
|
package/src/locales/de.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Informationen zum Zahlungspflichtigen",
|
|
298
298
|
"transactionStatement.title.document": "Transaktionsbestätigung",
|
|
299
299
|
"transactionStatement.title.information": "Informationen",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Interne Überweisung erhalten",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Interne Überweisung gesendet",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Internationale Überweisung erhalten",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Internationale Überweisung gesendet",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "SEPA-Überweisung erhalten",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "SEPA-Überweisung gesendet",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "SEPA Sofortüberweisung erhalten",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "SEPA Sofortüberweisung gesendet",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "Geburtsdatum kann nicht in der Zukunft liegen.",
|
|
301
309
|
"validation.invalidBirthDate": "Bitte geben Sie ein gültiges Geburtsdatum ein."
|
|
302
310
|
}
|
package/src/locales/en.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Debtor information",
|
|
298
298
|
"transactionStatement.title.document": "Transaction confirmation",
|
|
299
299
|
"transactionStatement.title.information": "Information",
|
|
300
|
+
"transactionStatement.type.SepaCreditTransferIn": "SEPA Credit Transfer received",
|
|
301
|
+
"transactionStatement.type.SepaCreditTransferOut": "SEPA Credit Transfer sent",
|
|
302
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "SEPA Instant Credit Transfer received",
|
|
303
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "SEPA Instant Credit Transfer sent",
|
|
304
|
+
"transactionStatement.type.InternalCreditTransferIn": "Internal Credit Transfer received",
|
|
305
|
+
"transactionStatement.type.InternalCreditTransferOut": "Internal Credit Transfer sent",
|
|
306
|
+
"transactionStatement.type.InternationalCreditTransferIn": "International Credit Transfer received",
|
|
307
|
+
"transactionStatement.type.InternationalCreditTransferOut": "International Credit Transfer sent",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "Birthdate cannot be in the future",
|
|
301
309
|
"validation.invalidBirthDate": "Please enter a valid birth date."
|
|
302
310
|
}
|
package/src/locales/es.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Información del Deudor",
|
|
298
298
|
"transactionStatement.title.document": "Confirmación de la transacción",
|
|
299
299
|
"transactionStatement.title.information": "Información",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Transferencia interna recibida",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Transferencia interna enviada",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Transferencia internacional recibida",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Transferencia internacional enviada",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "Transferencia SEPA recibida",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "Transferencia SEPA enviada",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "Transferencia SEPA Instantánea recibida",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "Transferencia SEPA Instantánea enviada",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "La fecha de nacimiento no puede estar en el futuro",
|
|
301
309
|
"validation.invalidBirthDate": "Por favor, introduce una fecha de nacimiento válida."
|
|
302
310
|
}
|
package/src/locales/fi.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Velallisen tiedot",
|
|
298
298
|
"transactionStatement.title.document": "Transaction confirmation",
|
|
299
299
|
"transactionStatement.title.information": "Tiedot",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Vastaanotettu sisäinen tilisiirto",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Lähetetty sisäinen tilisiirto",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Vastaanotettu kansainvälinen tilisiirto",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Lähetetty kansainvälinen tilisiirto",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "Vastaanotettu SEPA-tilisiirto",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "Lähetetty SEPA-tilisiirto",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "Vastaanotettu SEPA Instant -tilisiirto",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "Lähetetty SEPA Instant -tilisiirto",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "Syntymäpäivä ei voi olla tulevaisuudessa",
|
|
301
309
|
"validation.invalidBirthDate": "Syötä kelvollinen syntymäpäivä."
|
|
302
310
|
}
|
package/src/locales/fr.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Informations sur le débiteur",
|
|
298
298
|
"transactionStatement.title.document": "Confirmation de transaction",
|
|
299
299
|
"transactionStatement.title.information": "Informations",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Virement interne reçu",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Virement interne envoyé",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Virement international reçu",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Virement international envoyé",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "Virement SEPA reçu",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "Virement SEPA envoyé",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "Virement SEPA instantané reçu",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "Virement SEPA instantané envoyé",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "La date de naissance ne peut pas être future",
|
|
301
309
|
"validation.invalidBirthDate": "Veuillez saisir une date de naissance valide."
|
|
302
310
|
}
|
package/src/locales/it.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Informazioni debitore",
|
|
298
298
|
"transactionStatement.title.document": "Conferma della transazione",
|
|
299
299
|
"transactionStatement.title.information": "Informazioni",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Bonifico interno ricevuto",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Bonifico interno inviato",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Bonifico internazionale ricevuto",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Bonifico internazionale inviato",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "Bonifico SEPA ricevuto",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "Bonifico SEPA inviato",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "Bonifico SEPA istantaneo ricevuto",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "Bonifico SEPA istantaneo inviato",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "La data di nascita non può essere nel futuro",
|
|
301
309
|
"validation.invalidBirthDate": "Inserisci una data di nascita valida."
|
|
302
310
|
}
|
package/src/locales/nl.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Informatie over Debiteur",
|
|
298
298
|
"transactionStatement.title.document": "Transactiebevestiging",
|
|
299
299
|
"transactionStatement.title.information": "Informatie",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Interne Overschrijving ontvangen",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Interne Overschrijving verzonden",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Internationale Overschrijving ontvangen",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Internationale Overschrijving verzonden",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "SEPA Overschrijving ontvangen",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "SEPA Overschrijving verzonden",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "SEPA Directe Overschrijving ontvangen",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "SEPA Directe Overschrijving verzonden",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "Geboortedatum kan niet in de toekomst liggen",
|
|
301
309
|
"validation.invalidBirthDate": "Voer alstublieft een geldige geboortedatum in."
|
|
302
310
|
}
|
package/src/locales/pt.json
CHANGED
|
@@ -297,6 +297,14 @@
|
|
|
297
297
|
"transactionStatement.title.debtor": "Informações do devedor",
|
|
298
298
|
"transactionStatement.title.document": "Confirmação da transação",
|
|
299
299
|
"transactionStatement.title.information": "Informação",
|
|
300
|
+
"transactionStatement.type.InternalCreditTransferIn": "Transferência de crédito interna recebida",
|
|
301
|
+
"transactionStatement.type.InternalCreditTransferOut": "Transferência de crédito interna enviada",
|
|
302
|
+
"transactionStatement.type.InternationalCreditTransferIn": "Transferência de crédito internacional recebida",
|
|
303
|
+
"transactionStatement.type.InternationalCreditTransferOut": "Transferência de crédito internacional enviada",
|
|
304
|
+
"transactionStatement.type.SepaCreditTransferIn": "Transferência de crédito SEPA recebida",
|
|
305
|
+
"transactionStatement.type.SepaCreditTransferOut": "Transferência de crédito SEPA enviada",
|
|
306
|
+
"transactionStatement.type.SepaInstantCreditTransferIn": "Transferência de crédito instantânea SEPA recebida",
|
|
307
|
+
"transactionStatement.type.SepaInstantCreditTransferOut": "Transferência de crédito instantânea SEPA enviada",
|
|
300
308
|
"validation.birthdateCannotBeFuture": "A data de nascimento não pode estar no futuro",
|
|
301
309
|
"validation.invalidBirthDate": "Por favor, insira uma data de nascimento válida."
|
|
302
310
|
}
|
package/src/utils/i18n.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ type Locale = {
|
|
|
18
18
|
};
|
|
19
19
|
export declare const locale: Locale;
|
|
20
20
|
export declare const t: (key: TranslationKey, params?: TranslationParams) => string;
|
|
21
|
+
export declare const formatCurrency: (value: number, currency: string) => string;
|
|
21
22
|
export declare const formatNestedMessage: (key: TranslationKey, params: Record<string, string | number | ReactElement | ((children: ReactNode) => ReactNode)>) => (string | ReactElement<any, string | import("react").JSXElementConstructor<any>>)[];
|
|
22
23
|
export declare const rifmDateProps: RifmProps;
|
|
23
24
|
export declare const isTranslationKey: (value: unknown) => value is TranslationKey;
|
package/src/utils/i18n.js
CHANGED
|
@@ -116,6 +116,7 @@ const intl = createIntl({
|
|
|
116
116
|
messages: locale.translations,
|
|
117
117
|
}, createIntlCache());
|
|
118
118
|
export const t = (key, params) => intl.formatMessage({ id: key, defaultMessage: translationEN[key] }, params).toString();
|
|
119
|
+
export const formatCurrency = (value, currency) => intl.formatNumber(value, { style: "currency", currency });
|
|
119
120
|
export const formatNestedMessage = (key, params) => {
|
|
120
121
|
const result = intl.formatMessage({ id: key, defaultMessage: translationEN[key] },
|
|
121
122
|
// @ts-expect-error
|