@design.estate/dees-document 1.6.9 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +622 -605
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.pdfservice.d.ts +3 -3
- package/dist_ts/classes.pdfservice.js +6 -3
- package/dist_ts/helpers.d.ts +1 -1
- package/dist_ts/helpers.js +2 -2
- package/dist_ts/paths.js +4 -2
- package/dist_ts/plugins.d.ts +2 -0
- package/dist_ts/plugins.js +3 -1
- package/dist_ts_shared/demoletter.d.ts +3 -3
- package/dist_ts_shared/demoletter.js +223 -192
- package/dist_ts_shared/index.d.ts +6 -7
- package/dist_ts_shared/index.js +10 -8
- package/dist_ts_shared/interfaces/document.d.ts +15 -2
- package/dist_ts_shared/interfaces/document.js +1 -1
- package/dist_ts_shared/translation.d.ts +79 -28
- package/dist_ts_shared/translation.js +121 -107
- package/dist_ts_web/ts_shared/translation.d.ts +82 -0
- package/dist_ts_web/ts_shared/translation.js +134 -0
- package/dist_ts_web/{00_commitinfo_data.js → ts_web/00_commitinfo_data.js} +2 -2
- package/dist_ts_web/{elements → ts_web/elements}/contentinvoice.d.ts +12 -6
- package/dist_ts_web/ts_web/elements/contentinvoice.js +466 -0
- package/dist_ts_web/{elements → ts_web/elements}/document.d.ts +10 -10
- package/dist_ts_web/ts_web/elements/document.demo.js +9 -0
- package/dist_ts_web/ts_web/elements/document.js +306 -0
- package/dist_ts_web/ts_web/elements/index.d.ts +10 -0
- package/dist_ts_web/ts_web/elements/index.js +11 -0
- package/dist_ts_web/ts_web/elements/letterheader.d.ts +18 -0
- package/dist_ts_web/ts_web/elements/letterheader.js +224 -0
- package/dist_ts_web/ts_web/elements/page.d.ts +25 -0
- package/dist_ts_web/ts_web/elements/page.js +335 -0
- package/dist_ts_web/{elements → ts_web/elements}/pagecontainer.d.ts +4 -4
- package/dist_ts_web/ts_web/elements/pagecontainer.js +114 -0
- package/dist_ts_web/{elements → ts_web/elements}/pagecontent.d.ts +7 -6
- package/dist_ts_web/ts_web/elements/pagecontent.js +177 -0
- package/dist_ts_web/ts_web/elements/pagefooter.d.ts +17 -0
- package/dist_ts_web/ts_web/elements/pagefooter.js +234 -0
- package/dist_ts_web/ts_web/elements/pageheader.d.ts +17 -0
- package/dist_ts_web/ts_web/elements/pageheader.js +165 -0
- package/dist_ts_web/ts_web/elements/paymentcode.d.ts +19 -0
- package/dist_ts_web/ts_web/elements/paymentcode.js +162 -0
- package/dist_ts_web/{elements → ts_web/elements}/viewer.d.ts +5 -5
- package/dist_ts_web/ts_web/elements/viewer.demo.js +9 -0
- package/dist_ts_web/ts_web/elements/viewer.js +150 -0
- package/dist_ts_web/{index.js → ts_web/index.js} +1 -1
- package/dist_ts_web/{pages → ts_web/pages}/index.js +1 -1
- package/dist_ts_web/ts_web/pages/page1.js +21 -0
- package/dist_ts_web/{pages → ts_web/pages}/page2.js +1 -1
- package/dist_ts_web/ts_web/plugins.js +14 -0
- package/dist_ts_web/ts_web/style.js +38 -0
- package/license +2 -2
- package/package.json +21 -19
- package/readme.hints.md +40 -1
- package/readme.md +202 -125
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.pdfservice.ts +15 -7
- package/ts/helpers.ts +1 -1
- package/ts/paths.ts +3 -1
- package/ts/plugins.ts +3 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/contentinvoice.ts +272 -250
- package/ts_web/elements/document.demo.ts +7 -4
- package/ts_web/elements/document.ts +68 -82
- package/ts_web/elements/index.ts +10 -9
- package/ts_web/elements/letterheader.ts +106 -39
- package/ts_web/elements/page.ts +106 -48
- package/ts_web/elements/pagecontainer.ts +14 -13
- package/ts_web/elements/pagecontent.ts +34 -53
- package/ts_web/elements/pagefooter.ts +125 -45
- package/ts_web/elements/pageheader.ts +22 -16
- package/ts_web/elements/paymentcode.ts +95 -0
- package/ts_web/elements/viewer.demo.ts +7 -4
- package/ts_web/elements/viewer.ts +26 -12
- package/ts_web/pages/page1.ts +10 -6
- package/ts_web/style.ts +34 -3
- package/dist_ts_shared/interfaces/translation.d.ts +0 -19
- package/dist_ts_shared/interfaces/translation.js +0 -2
- package/dist_ts_web/elements/contentinvoice.js +0 -388
- package/dist_ts_web/elements/document.demo.js +0 -6
- package/dist_ts_web/elements/document.js +0 -272
- package/dist_ts_web/elements/index.d.ts +0 -9
- package/dist_ts_web/elements/index.js +0 -10
- package/dist_ts_web/elements/letterheader.d.ts +0 -16
- package/dist_ts_web/elements/letterheader.js +0 -124
- package/dist_ts_web/elements/page.d.ts +0 -25
- package/dist_ts_web/elements/page.js +0 -219
- package/dist_ts_web/elements/pagecontainer.js +0 -67
- package/dist_ts_web/elements/pagecontent.js +0 -143
- package/dist_ts_web/elements/pagefooter.d.ts +0 -17
- package/dist_ts_web/elements/pagefooter.js +0 -138
- package/dist_ts_web/elements/pageheader.d.ts +0 -17
- package/dist_ts_web/elements/pageheader.js +0 -109
- package/dist_ts_web/elements/viewer.demo.js +0 -6
- package/dist_ts_web/elements/viewer.js +0 -101
- package/dist_ts_web/pages/page1.js +0 -17
- package/dist_ts_web/plugins.js +0 -14
- package/dist_ts_web/style.js +0 -7
- package/dist_watch/bundle.js +0 -40318
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -25
- /package/dist_ts_web/{00_commitinfo_data.d.ts → ts_web/00_commitinfo_data.d.ts} +0 -0
- /package/dist_ts_web/{elements → ts_web/elements}/document.demo.d.ts +0 -0
- /package/dist_ts_web/{elements → ts_web/elements}/viewer.demo.d.ts +0 -0
- /package/dist_ts_web/{index.d.ts → ts_web/index.d.ts} +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/index.d.ts +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/page1.d.ts +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/page2.d.ts +0 -0
- /package/dist_ts_web/{plugins.d.ts → ts_web/plugins.d.ts} +0 -0
- /package/dist_ts_web/{style.d.ts → ts_web/style.d.ts} +0 -0
|
@@ -1,31 +1,82 @@
|
|
|
1
1
|
export declare const EN_translations: {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
2
|
+
address: string;
|
|
3
|
+
"bank.accountHolder": string;
|
|
4
|
+
"bank.bic": string;
|
|
5
|
+
"bank.iban": string;
|
|
6
|
+
"bank.institution": string;
|
|
7
|
+
"bankConnection@@title": string;
|
|
8
|
+
"contact@@title": string;
|
|
9
|
+
"customer.number": string;
|
|
10
|
+
description: string;
|
|
11
|
+
"empty.logo": string;
|
|
12
|
+
"empty.number.customer": string;
|
|
13
|
+
empty: string;
|
|
14
|
+
fax: string;
|
|
15
|
+
introStatement: string;
|
|
16
|
+
"invoice.number": string;
|
|
17
|
+
invoice: string;
|
|
18
|
+
"item.position": string;
|
|
19
|
+
mail: string;
|
|
20
|
+
"overlay@@draft": string;
|
|
21
|
+
"page.continueNext": string;
|
|
22
|
+
"page.final": string;
|
|
23
|
+
page: string;
|
|
24
|
+
pageOf: string;
|
|
25
|
+
"payment.qr": string;
|
|
26
|
+
"payment.qr.description": string;
|
|
27
|
+
"payment.terms": string;
|
|
28
|
+
"payment.terms.direct": string;
|
|
29
|
+
"periodOfPerformance.day": string;
|
|
30
|
+
"periodOfPerformance.range": string;
|
|
31
|
+
phone: string;
|
|
32
|
+
"price.total.net": string;
|
|
33
|
+
"price.unit.net": string;
|
|
34
|
+
price: string;
|
|
35
|
+
quantity: string;
|
|
36
|
+
referencedContract: string;
|
|
37
|
+
"referencedContract.text": string;
|
|
38
|
+
"registration.label": string;
|
|
39
|
+
subject: string;
|
|
40
|
+
sum: string;
|
|
41
|
+
totalGross: string;
|
|
42
|
+
"unit.type": string;
|
|
43
|
+
"vat.position": string;
|
|
44
|
+
"vat.reverseCharge.note": string;
|
|
45
|
+
"vat.short": string;
|
|
46
|
+
"vat.yourId": string;
|
|
47
|
+
vat: string;
|
|
20
48
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
49
|
+
/**
|
|
50
|
+
* For example:
|
|
51
|
+
* - price
|
|
52
|
+
*/
|
|
53
|
+
type RawTranslationKeys = keyof typeof EN_translations;
|
|
54
|
+
/**
|
|
55
|
+
* For example:
|
|
56
|
+
* - price.item
|
|
57
|
+
* - price.sum
|
|
58
|
+
* - price.unit
|
|
59
|
+
* - vat.yourId
|
|
60
|
+
*/
|
|
61
|
+
type NestedTranslationKeys = RawTranslationKeys | `${RawTranslationKeys}.${string}` | `${RawTranslationKeys}.${string}.${string}` | `${RawTranslationKeys}.${string}.${string}.${string}` | `${RawTranslationKeys}.${string}.${string}.${string}.${string}`;
|
|
62
|
+
/**
|
|
63
|
+
* For example:
|
|
64
|
+
* - contact@@mail
|
|
65
|
+
* - vat = 'VAT'
|
|
66
|
+
* - vat.yourId = 'your vat id'
|
|
67
|
+
* - footer@@vat.yourId = 'your vat id'
|
|
68
|
+
* - header@@vat.yourId = 'THIS IS YOUR VAT'
|
|
69
|
+
*/
|
|
70
|
+
type LocationBasedTranslationKeys = `${string}@@${NestedTranslationKeys}`;
|
|
71
|
+
/**
|
|
72
|
+
* Mix of everything
|
|
73
|
+
*/
|
|
74
|
+
export type TranslationKey = NestedTranslationKeys | LocationBasedTranslationKeys;
|
|
75
|
+
export type Dictionary = {
|
|
76
|
+
[key in TranslationKey]: string;
|
|
24
77
|
};
|
|
25
|
-
export declare const DE_translations:
|
|
26
|
-
export declare const
|
|
27
|
-
export
|
|
28
|
-
export declare const
|
|
29
|
-
export
|
|
30
|
-
export type TLanguageCode = keyof typeof languageCodeMap;
|
|
31
|
-
export declare const translate: (languageCode: TLanguageCode, key: TTranslationKey, defaultValue: string) => string;
|
|
78
|
+
export declare const DE_translations: Dictionary;
|
|
79
|
+
export declare const languageCodeMap: Record<string, Dictionary>;
|
|
80
|
+
export type LanguageCode = keyof typeof languageCodeMap;
|
|
81
|
+
export declare const translate: (languageCode: LanguageCode, key: TranslationKey) => string;
|
|
82
|
+
export {};
|
|
@@ -1,120 +1,134 @@
|
|
|
1
|
-
import * as interfaces from './interfaces/index.js';
|
|
2
1
|
// Define English translations without enforcing TTranslationImplementation yet
|
|
3
2
|
export const EN_translations = {
|
|
4
|
-
address:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
3
|
+
address: "Address",
|
|
4
|
+
"bank.accountHolder": "beneficiary",
|
|
5
|
+
"bank.bic": "bic",
|
|
6
|
+
"bank.iban": "iban",
|
|
7
|
+
"bank.institution": "institution",
|
|
8
|
+
"bankConnection@@title": "Bank Connection",
|
|
9
|
+
"contact@@title": "Contact Info",
|
|
10
|
+
"customer.number": "Your Customer ID",
|
|
11
|
+
description: "Description",
|
|
12
|
+
"empty.logo": "no logo provided",
|
|
13
|
+
"empty.number.customer": "not registered",
|
|
14
|
+
empty: "not provided",
|
|
15
|
+
fax: "Fax",
|
|
16
|
+
introStatement: "We hereby invoice the following products and services",
|
|
17
|
+
"invoice.number": "Invoice number",
|
|
18
|
+
invoice: "Invoice",
|
|
19
|
+
"item.position": "Pos.",
|
|
20
|
+
mail: "Mail",
|
|
21
|
+
"overlay@@draft": "Draft",
|
|
22
|
+
"page.continueNext": "Continues on page",
|
|
23
|
+
"page.final": "This is the final page of this document.",
|
|
24
|
+
page: "Page",
|
|
25
|
+
pageOf: "of",
|
|
26
|
+
"payment.qr": "Pay via QR code",
|
|
27
|
+
"payment.qr.description": "Scan the QR code with you banking app",
|
|
28
|
+
"payment.terms": "Payment Terms",
|
|
29
|
+
"payment.terms.direct": "Without deduction until",
|
|
30
|
+
"periodOfPerformance.day": "Delivery Date",
|
|
31
|
+
"periodOfPerformance.range": "Delivery Period",
|
|
32
|
+
phone: "Phone",
|
|
33
|
+
"price.total.net": "Total Net Price",
|
|
34
|
+
"price.unit.net": "Unit Net Price",
|
|
35
|
+
price: "Price",
|
|
36
|
+
quantity: "Quantity",
|
|
37
|
+
referencedContract: "Referenced contract",
|
|
38
|
+
"referencedContract.text": "This invoice is adhering to agreements made by contract between the parties on",
|
|
39
|
+
"registration.label": "Registration Info",
|
|
40
|
+
subject: "Subject",
|
|
41
|
+
sum: "Sum",
|
|
42
|
+
totalGross: "Total gross",
|
|
43
|
+
"unit.type": "Unit Type",
|
|
44
|
+
"vat.position": "on item positions",
|
|
45
|
+
"vat.reverseCharge.note": "VAT arises on a reverse charge basis and is payable by the customer.",
|
|
46
|
+
"vat.short": "VAT",
|
|
47
|
+
"vat.yourId": "Your vat id on file",
|
|
48
|
+
vat: "Valued Added Tax",
|
|
22
49
|
};
|
|
23
50
|
// Define German translations
|
|
24
51
|
export const DE_translations = {
|
|
25
|
-
address:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
description:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
invoice: 'Facture',
|
|
72
|
-
itemPos: 'Position',
|
|
73
|
-
quantity: 'Quantité',
|
|
74
|
-
registrationInfo: "Informations d'enregistrement",
|
|
75
|
-
reverseVatNote: "La TVA s'applique selon le mécanisme d'autoliquidation et est à payer par le client.",
|
|
76
|
-
totalNetPrice: 'Prix net total',
|
|
77
|
-
unitNetPrice: 'Prix unitaire net',
|
|
78
|
-
unitType: "Type d'unité",
|
|
79
|
-
yourCustomerId: 'Votre numéro de client :',
|
|
80
|
-
yourVatId: 'Votre numéro de TVA :',
|
|
81
|
-
continuesOnPage: 'Continue sur la page',
|
|
82
|
-
finalPageStatement: 'Ceci est la dernière page de ce document.',
|
|
83
|
-
page: 'Page',
|
|
84
|
-
vatShort: 'TVA',
|
|
85
|
-
};
|
|
86
|
-
// Define Italian translations
|
|
87
|
-
export const IT_translations = {
|
|
88
|
-
address: 'Indirizzo',
|
|
89
|
-
bankConnection: 'Coordinate bancarie',
|
|
90
|
-
contactInfo: 'Informazioni di contatto',
|
|
91
|
-
description: 'Descrizione',
|
|
92
|
-
invoice: 'Fattura',
|
|
93
|
-
itemPos: 'Pos.',
|
|
94
|
-
quantity: 'Quantità',
|
|
95
|
-
registrationInfo: 'Informazioni di registrazione',
|
|
96
|
-
reverseVatNote: "L'IVA è applicata con inversione contabile ed è a carico del cliente.",
|
|
97
|
-
totalNetPrice: 'Prezzo netto totale',
|
|
98
|
-
unitNetPrice: 'Prezzo netto unitario',
|
|
99
|
-
unitType: 'Tipo di unità',
|
|
100
|
-
yourCustomerId: 'Il tuo numero cliente:',
|
|
101
|
-
yourVatId: 'Il tuo numero di partita IVA:',
|
|
102
|
-
continuesOnPage: 'Continua alla pagina',
|
|
103
|
-
finalPageStatement: 'Questa è l\'ultima pagina di questo documento.',
|
|
104
|
-
page: 'Pagina',
|
|
105
|
-
vatShort: 'IVA',
|
|
52
|
+
address: "Adresse",
|
|
53
|
+
"bank.accountHolder": "Kontoinhaber",
|
|
54
|
+
"bank.bic": "BIC",
|
|
55
|
+
"bank.iban": "IBAN",
|
|
56
|
+
"bank.institution": "Bankinstitut",
|
|
57
|
+
"bankConnection@@title": "Bankverbindung",
|
|
58
|
+
"contact@@title": "Kontaktinformationen",
|
|
59
|
+
"customer.number": "Ihre Kundennummer",
|
|
60
|
+
description: "Beschreibung",
|
|
61
|
+
"empty.logo": "Kein Logo gesetzt",
|
|
62
|
+
"empty.number.customer": "nicht registriert",
|
|
63
|
+
empty: "nicht angegeben",
|
|
64
|
+
fax: "Fax",
|
|
65
|
+
introStatement: "Wir stellen Ihnen hiermit folgende Produkte und Dienstleistungen in Rechnung",
|
|
66
|
+
"invoice.number": "Rechnungsnr.",
|
|
67
|
+
invoice: "Rechnung",
|
|
68
|
+
"item.position": "Pos.",
|
|
69
|
+
mail: "E-Mail",
|
|
70
|
+
"overlay@@draft": "Entwurf",
|
|
71
|
+
"page.continueNext": "Fortsetzung auf Seite",
|
|
72
|
+
"page.final": "Dies ist die letzte Seite dieses Dokuments.",
|
|
73
|
+
page: "Seite",
|
|
74
|
+
pageOf: "von",
|
|
75
|
+
"payment.qr": "Überweisen per QR-Code",
|
|
76
|
+
"payment.qr.description": "Den QR-Code einfach mit der Banking-App einscannen",
|
|
77
|
+
"payment.terms": "Zahlungsbedingungen",
|
|
78
|
+
"payment.terms.direct": "Ohne Abzug bis zum",
|
|
79
|
+
"periodOfPerformance.day": "Lieferdatum",
|
|
80
|
+
"periodOfPerformance.range": "Lieferzeitraum",
|
|
81
|
+
phone: "Telefon",
|
|
82
|
+
"price.total.net": "Gesamtpreis",
|
|
83
|
+
"price.unit.net": "Stückpreis",
|
|
84
|
+
price: "Preis",
|
|
85
|
+
quantity: "Menge",
|
|
86
|
+
referencedContract: "Referenzierter Vertrag",
|
|
87
|
+
"referencedContract.text": "Diese Rechnung bezieht sich auf die getroffenen Vertragsvereinbarungen vom",
|
|
88
|
+
"registration.label": "Registrierungsinfo",
|
|
89
|
+
subject: "Betreff",
|
|
90
|
+
sum: "Summe",
|
|
91
|
+
totalGross: "Gesamtbetrag brutto",
|
|
92
|
+
"unit.type": "Einheit",
|
|
93
|
+
"vat.position": "auf Positionen",
|
|
94
|
+
"vat.reverseCharge.note": "Die Umsatzsteuer entsteht im Reverse-Charge-Verfahren und ist vom Kunden zu zahlen.",
|
|
95
|
+
"vat.short": "MwSt.",
|
|
96
|
+
"vat.yourId": "Ihre hinterlegte USt-Id",
|
|
97
|
+
vat: "Umsatzsteuer",
|
|
106
98
|
};
|
|
107
99
|
// Language Code Map
|
|
108
100
|
export const languageCodeMap = {
|
|
109
101
|
EN: EN_translations,
|
|
110
102
|
DE: DE_translations,
|
|
111
|
-
ES: ES_translations,
|
|
112
|
-
FR: FR_translations,
|
|
113
|
-
IT: IT_translations,
|
|
114
103
|
};
|
|
104
|
+
function* getTranslationKeyHierarchy(key) {
|
|
105
|
+
yield key;
|
|
106
|
+
const areaSplit = key.split("@@");
|
|
107
|
+
let rest = areaSplit[1];
|
|
108
|
+
if (rest) {
|
|
109
|
+
yield rest;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
rest = areaSplit[0];
|
|
113
|
+
}
|
|
114
|
+
if (!rest.includes("."))
|
|
115
|
+
return;
|
|
116
|
+
const parts = rest.split(".");
|
|
117
|
+
for (let i = parts.length - 1; i > 0; i--) {
|
|
118
|
+
yield parts.slice(0, i).join(".");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
115
121
|
// Translate Function
|
|
116
|
-
export const translate = (languageCode, key
|
|
117
|
-
const
|
|
118
|
-
|
|
122
|
+
export const translate = (languageCode, key) => {
|
|
123
|
+
const dictionary = languageCodeMap[languageCode] || EN_translations;
|
|
124
|
+
const lookupHierarchy = getTranslationKeyHierarchy(key);
|
|
125
|
+
let found;
|
|
126
|
+
for (let keyOption of lookupHierarchy) {
|
|
127
|
+
found = dictionary[keyOption] || EN_translations[keyOption];
|
|
128
|
+
if (found) {
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return found;
|
|
119
133
|
};
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvdHJhbnNsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixPQUFPLEVBQUUsU0FBUztJQUNsQixvQkFBb0IsRUFBRSxhQUFhO0lBQ25DLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsdUJBQXVCLEVBQUUsaUJBQWlCO0lBQzFDLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsaUJBQWlCLEVBQUUsa0JBQWtCO0lBQ3JDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsdUJBQXVCLEVBQUUsZ0JBQWdCO0lBQ3pDLEtBQUssRUFBRSxjQUFjO0lBQ3JCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFLHVEQUF1RDtJQUN2RSxnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLE1BQU07SUFDWixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxZQUFZLEVBQUUsMENBQTBDO0lBQ3hELElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLHdCQUF3QixFQUFFLHVDQUF1QztJQUNqRSxlQUFlLEVBQUUsZUFBZTtJQUNoQyxzQkFBc0IsRUFBRSx5QkFBeUI7SUFDakQseUJBQXlCLEVBQUUsZUFBZTtJQUMxQywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsS0FBSyxFQUFFLE9BQU87SUFDZCxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLEtBQUssRUFB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
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export declare const EN_translations: {
|
|
2
|
+
address: string;
|
|
3
|
+
"bank.accountHolder": string;
|
|
4
|
+
"bank.bic": string;
|
|
5
|
+
"bank.iban": string;
|
|
6
|
+
"bank.institution": string;
|
|
7
|
+
"bankConnection@@title": string;
|
|
8
|
+
"contact@@title": string;
|
|
9
|
+
"customer.number": string;
|
|
10
|
+
description: string;
|
|
11
|
+
"empty.logo": string;
|
|
12
|
+
"empty.number.customer": string;
|
|
13
|
+
empty: string;
|
|
14
|
+
fax: string;
|
|
15
|
+
introStatement: string;
|
|
16
|
+
"invoice.number": string;
|
|
17
|
+
invoice: string;
|
|
18
|
+
"item.position": string;
|
|
19
|
+
mail: string;
|
|
20
|
+
"overlay@@draft": string;
|
|
21
|
+
"page.continueNext": string;
|
|
22
|
+
"page.final": string;
|
|
23
|
+
page: string;
|
|
24
|
+
pageOf: string;
|
|
25
|
+
"payment.qr": string;
|
|
26
|
+
"payment.qr.description": string;
|
|
27
|
+
"payment.terms": string;
|
|
28
|
+
"payment.terms.direct": string;
|
|
29
|
+
"periodOfPerformance.day": string;
|
|
30
|
+
"periodOfPerformance.range": string;
|
|
31
|
+
phone: string;
|
|
32
|
+
"price.total.net": string;
|
|
33
|
+
"price.unit.net": string;
|
|
34
|
+
price: string;
|
|
35
|
+
quantity: string;
|
|
36
|
+
referencedContract: string;
|
|
37
|
+
"referencedContract.text": string;
|
|
38
|
+
"registration.label": string;
|
|
39
|
+
subject: string;
|
|
40
|
+
sum: string;
|
|
41
|
+
totalGross: string;
|
|
42
|
+
"unit.type": string;
|
|
43
|
+
"vat.position": string;
|
|
44
|
+
"vat.reverseCharge.note": string;
|
|
45
|
+
"vat.short": string;
|
|
46
|
+
"vat.yourId": string;
|
|
47
|
+
vat: string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* For example:
|
|
51
|
+
* - price
|
|
52
|
+
*/
|
|
53
|
+
type RawTranslationKeys = keyof typeof EN_translations;
|
|
54
|
+
/**
|
|
55
|
+
* For example:
|
|
56
|
+
* - price.item
|
|
57
|
+
* - price.sum
|
|
58
|
+
* - price.unit
|
|
59
|
+
* - vat.yourId
|
|
60
|
+
*/
|
|
61
|
+
type NestedTranslationKeys = RawTranslationKeys | `${RawTranslationKeys}.${string}` | `${RawTranslationKeys}.${string}.${string}` | `${RawTranslationKeys}.${string}.${string}.${string}` | `${RawTranslationKeys}.${string}.${string}.${string}.${string}`;
|
|
62
|
+
/**
|
|
63
|
+
* For example:
|
|
64
|
+
* - contact@@mail
|
|
65
|
+
* - vat = 'VAT'
|
|
66
|
+
* - vat.yourId = 'your vat id'
|
|
67
|
+
* - footer@@vat.yourId = 'your vat id'
|
|
68
|
+
* - header@@vat.yourId = 'THIS IS YOUR VAT'
|
|
69
|
+
*/
|
|
70
|
+
type LocationBasedTranslationKeys = `${string}@@${NestedTranslationKeys}`;
|
|
71
|
+
/**
|
|
72
|
+
* Mix of everything
|
|
73
|
+
*/
|
|
74
|
+
export type TranslationKey = NestedTranslationKeys | LocationBasedTranslationKeys;
|
|
75
|
+
export type Dictionary = {
|
|
76
|
+
[key in TranslationKey]: string;
|
|
77
|
+
};
|
|
78
|
+
export declare const DE_translations: Dictionary;
|
|
79
|
+
export declare const languageCodeMap: Record<string, Dictionary>;
|
|
80
|
+
export type LanguageCode = keyof typeof languageCodeMap;
|
|
81
|
+
export declare const translate: (languageCode: LanguageCode, key: TranslationKey) => string;
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// Define English translations without enforcing TTranslationImplementation yet
|
|
2
|
+
export const EN_translations = {
|
|
3
|
+
address: "Address",
|
|
4
|
+
"bank.accountHolder": "beneficiary",
|
|
5
|
+
"bank.bic": "bic",
|
|
6
|
+
"bank.iban": "iban",
|
|
7
|
+
"bank.institution": "institution",
|
|
8
|
+
"bankConnection@@title": "Bank Connection",
|
|
9
|
+
"contact@@title": "Contact Info",
|
|
10
|
+
"customer.number": "Your Customer ID",
|
|
11
|
+
description: "Description",
|
|
12
|
+
"empty.logo": "no logo provided",
|
|
13
|
+
"empty.number.customer": "not registered",
|
|
14
|
+
empty: "not provided",
|
|
15
|
+
fax: "Fax",
|
|
16
|
+
introStatement: "We hereby invoice the following products and services",
|
|
17
|
+
"invoice.number": "Invoice number",
|
|
18
|
+
invoice: "Invoice",
|
|
19
|
+
"item.position": "Pos.",
|
|
20
|
+
mail: "Mail",
|
|
21
|
+
"overlay@@draft": "Draft",
|
|
22
|
+
"page.continueNext": "Continues on page",
|
|
23
|
+
"page.final": "This is the final page of this document.",
|
|
24
|
+
page: "Page",
|
|
25
|
+
pageOf: "of",
|
|
26
|
+
"payment.qr": "Pay via QR code",
|
|
27
|
+
"payment.qr.description": "Scan the QR code with you banking app",
|
|
28
|
+
"payment.terms": "Payment Terms",
|
|
29
|
+
"payment.terms.direct": "Without deduction until",
|
|
30
|
+
"periodOfPerformance.day": "Delivery Date",
|
|
31
|
+
"periodOfPerformance.range": "Delivery Period",
|
|
32
|
+
phone: "Phone",
|
|
33
|
+
"price.total.net": "Total Net Price",
|
|
34
|
+
"price.unit.net": "Unit Net Price",
|
|
35
|
+
price: "Price",
|
|
36
|
+
quantity: "Quantity",
|
|
37
|
+
referencedContract: "Referenced contract",
|
|
38
|
+
"referencedContract.text": "This invoice is adhering to agreements made by contract between the parties on",
|
|
39
|
+
"registration.label": "Registration Info",
|
|
40
|
+
subject: "Subject",
|
|
41
|
+
sum: "Sum",
|
|
42
|
+
totalGross: "Total gross",
|
|
43
|
+
"unit.type": "Unit Type",
|
|
44
|
+
"vat.position": "on item positions",
|
|
45
|
+
"vat.reverseCharge.note": "VAT arises on a reverse charge basis and is payable by the customer.",
|
|
46
|
+
"vat.short": "VAT",
|
|
47
|
+
"vat.yourId": "Your vat id on file",
|
|
48
|
+
vat: "Valued Added Tax",
|
|
49
|
+
};
|
|
50
|
+
// Define German translations
|
|
51
|
+
export const DE_translations = {
|
|
52
|
+
address: "Adresse",
|
|
53
|
+
"bank.accountHolder": "Kontoinhaber",
|
|
54
|
+
"bank.bic": "BIC",
|
|
55
|
+
"bank.iban": "IBAN",
|
|
56
|
+
"bank.institution": "Bankinstitut",
|
|
57
|
+
"bankConnection@@title": "Bankverbindung",
|
|
58
|
+
"contact@@title": "Kontaktinformationen",
|
|
59
|
+
"customer.number": "Ihre Kundennummer",
|
|
60
|
+
description: "Beschreibung",
|
|
61
|
+
"empty.logo": "Kein Logo gesetzt",
|
|
62
|
+
"empty.number.customer": "nicht registriert",
|
|
63
|
+
empty: "nicht angegeben",
|
|
64
|
+
fax: "Fax",
|
|
65
|
+
introStatement: "Wir stellen Ihnen hiermit folgende Produkte und Dienstleistungen in Rechnung",
|
|
66
|
+
"invoice.number": "Rechnungsnr.",
|
|
67
|
+
invoice: "Rechnung",
|
|
68
|
+
"item.position": "Pos.",
|
|
69
|
+
mail: "E-Mail",
|
|
70
|
+
"overlay@@draft": "Entwurf",
|
|
71
|
+
"page.continueNext": "Fortsetzung auf Seite",
|
|
72
|
+
"page.final": "Dies ist die letzte Seite dieses Dokuments.",
|
|
73
|
+
page: "Seite",
|
|
74
|
+
pageOf: "von",
|
|
75
|
+
"payment.qr": "Überweisen per QR-Code",
|
|
76
|
+
"payment.qr.description": "Den QR-Code einfach mit der Banking-App einscannen",
|
|
77
|
+
"payment.terms": "Zahlungsbedingungen",
|
|
78
|
+
"payment.terms.direct": "Ohne Abzug bis zum",
|
|
79
|
+
"periodOfPerformance.day": "Lieferdatum",
|
|
80
|
+
"periodOfPerformance.range": "Lieferzeitraum",
|
|
81
|
+
phone: "Telefon",
|
|
82
|
+
"price.total.net": "Gesamtpreis",
|
|
83
|
+
"price.unit.net": "Stückpreis",
|
|
84
|
+
price: "Preis",
|
|
85
|
+
quantity: "Menge",
|
|
86
|
+
referencedContract: "Referenzierter Vertrag",
|
|
87
|
+
"referencedContract.text": "Diese Rechnung bezieht sich auf die getroffenen Vertragsvereinbarungen vom",
|
|
88
|
+
"registration.label": "Registrierungsinfo",
|
|
89
|
+
subject: "Betreff",
|
|
90
|
+
sum: "Summe",
|
|
91
|
+
totalGross: "Gesamtbetrag brutto",
|
|
92
|
+
"unit.type": "Einheit",
|
|
93
|
+
"vat.position": "auf Positionen",
|
|
94
|
+
"vat.reverseCharge.note": "Die Umsatzsteuer entsteht im Reverse-Charge-Verfahren und ist vom Kunden zu zahlen.",
|
|
95
|
+
"vat.short": "MwSt.",
|
|
96
|
+
"vat.yourId": "Ihre hinterlegte USt-Id",
|
|
97
|
+
vat: "Umsatzsteuer",
|
|
98
|
+
};
|
|
99
|
+
// Language Code Map
|
|
100
|
+
export const languageCodeMap = {
|
|
101
|
+
EN: EN_translations,
|
|
102
|
+
DE: DE_translations,
|
|
103
|
+
};
|
|
104
|
+
function* getTranslationKeyHierarchy(key) {
|
|
105
|
+
yield key;
|
|
106
|
+
const areaSplit = key.split("@@");
|
|
107
|
+
let rest = areaSplit[1];
|
|
108
|
+
if (rest) {
|
|
109
|
+
yield rest;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
rest = areaSplit[0];
|
|
113
|
+
}
|
|
114
|
+
if (!rest.includes("."))
|
|
115
|
+
return;
|
|
116
|
+
const parts = rest.split(".");
|
|
117
|
+
for (let i = parts.length - 1; i > 0; i--) {
|
|
118
|
+
yield parts.slice(0, i).join(".");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Translate Function
|
|
122
|
+
export const translate = (languageCode, key) => {
|
|
123
|
+
const dictionary = languageCodeMap[languageCode] || EN_translations;
|
|
124
|
+
const lookupHierarchy = getTranslationKeyHierarchy(key);
|
|
125
|
+
let found;
|
|
126
|
+
for (let keyOption of lookupHierarchy) {
|
|
127
|
+
found = dictionary[keyOption] || EN_translations[keyOption];
|
|
128
|
+
if (found) {
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return found;
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19zaGFyZWQvdHJhbnNsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixPQUFPLEVBQUUsU0FBUztJQUNsQixvQkFBb0IsRUFBRSxhQUFhO0lBQ25DLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsdUJBQXVCLEVBQUUsaUJBQWlCO0lBQzFDLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsaUJBQWlCLEVBQUUsa0JBQWtCO0lBQ3JDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsdUJBQXVCLEVBQUUsZ0JBQWdCO0lBQ3pDLEtBQUssRUFBRSxjQUFjO0lBQ3JCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFLHVEQUF1RDtJQUN2RSxnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLE1BQU07SUFDWixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxZQUFZLEVBQUUsMENBQTBDO0lBQ3hELElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLHdCQUF3QixFQUFFLHVDQUF1QztJQUNqRSxlQUFlLEVBQUUsZUFBZTtJQUNoQyxzQkFBc0IsRUFBRSx5QkFBeUI7SUFDakQseUJBQXlCLEVBQUUsZUFBZTtJQUMxQywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsS0FBSyxFQUFFLE9BQU87SUFDZCxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLEtBQUss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
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-document',
|
|
6
|
-
version: '
|
|
6
|
+
version: '2.0.2',
|
|
7
7
|
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSx1TEFBdUw7Q0FDck0sQ0FBQSJ9
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* content for invoices
|
|
3
3
|
*/
|
|
4
|
-
import { DeesElement, type TemplateResult } from
|
|
5
|
-
import * as plugins from
|
|
4
|
+
import { DeesElement, type TemplateResult } from "@design.estate/dees-element";
|
|
5
|
+
import * as plugins from "../plugins.js";
|
|
6
|
+
import type { TranslationKey } from "ts_shared/translation.js";
|
|
6
7
|
declare global {
|
|
7
8
|
interface HTMLElementTagNameMap {
|
|
8
|
-
|
|
9
|
+
"dedocument-contentinvoice": DeContentInvoice;
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
export declare class DeContentInvoice extends DeesElement {
|
|
12
13
|
static demo: () => TemplateResult<1>;
|
|
13
|
-
letterData: plugins.tsclass.
|
|
14
|
-
documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
14
|
+
accessor letterData: plugins.tsclass.finance.TInvoice;
|
|
15
|
+
accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
15
16
|
constructor();
|
|
16
17
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
17
18
|
render(): TemplateResult;
|
|
19
|
+
protected formatPrice(value: number, currency?: string, lang?: string): string;
|
|
18
20
|
getTotalNet: () => number;
|
|
19
21
|
getTotalGross: () => number;
|
|
20
22
|
getVatGroups: () => {
|
|
21
23
|
vatPercentage: number;
|
|
22
|
-
items: plugins.tsclass.finance.
|
|
24
|
+
items: plugins.tsclass.finance.TInvoice["items"];
|
|
23
25
|
vatAmountSum: number;
|
|
24
26
|
}[];
|
|
25
27
|
getContentNodes(): Promise<{
|
|
@@ -30,6 +32,10 @@ export declare class DeContentInvoice extends DeesElement {
|
|
|
30
32
|
getContentLength(): Promise<number>;
|
|
31
33
|
trimEndByOne(): Promise<void>;
|
|
32
34
|
trimStartToOffset(contentOffsetArg: number): Promise<void>;
|
|
35
|
+
translateKey(key: TranslationKey): string;
|
|
33
36
|
firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
|
|
37
|
+
private renderPaymentTerms;
|
|
38
|
+
private renderPaymentInfo;
|
|
39
|
+
private renderReferencedContract;
|
|
34
40
|
attachInvoiceDom(): Promise<void>;
|
|
35
41
|
}
|