@design.estate/dees-document 3.1.1 → 3.2.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-document',
6
- version: '3.1.1',
6
+ version: '3.2.0',
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
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVMQUF1TDtDQUNyTSxDQUFBIn0=
@@ -60,7 +60,7 @@ export const demoLetter = {
60
60
  date: Date.now(),
61
61
  incidenceId: "LL-INV-48765",
62
62
  subject: "LL-INV-48765",
63
- reverseCharge: true,
63
+ reverseCharge: false,
64
64
  dueInDays: 30,
65
65
  from: fromContact,
66
66
  to: toContact,
@@ -321,4 +321,4 @@ export const demoDocumentSettings = {
321
321
  enableDefaultFooter: true,
322
322
  languageCode: "DE",
323
323
  };
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtb2xldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX3NoYXJlZC9kZW1vbGV0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxXQUFXLEdBQXNDO0lBQ3JELElBQUksRUFBRSxzQkFBc0I7SUFDNUIsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsUUFBUTtJQUNoQixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtJQUM3QyxXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxnQkFBZ0I7UUFDNUIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsT0FBTztLQUNwQjtJQUNELGNBQWMsRUFBRTtRQUNkLEdBQUcsRUFBRSxVQUFVO1FBQ2YsSUFBSSxFQUFFLGtCQUFrQjtLQUN6QjtJQUNELEtBQUssRUFBRSx1QkFBdUI7SUFDOUIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLG1CQUFtQixFQUFFO1FBQ25CLGNBQWMsRUFBRSxjQUFjO1FBQzlCLGdCQUFnQixFQUFFLG9CQUFvQjtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQjtDQUNGLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBc0M7SUFDbkQsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsU0FBUztJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxF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
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtb2xldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX3NoYXJlZC9kZW1vbGV0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxXQUFXLEdBQXNDO0lBQ3JELElBQUksRUFBRSxzQkFBc0I7SUFDNUIsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsUUFBUTtJQUNoQixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtJQUM3QyxXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxnQkFBZ0I7UUFDNUIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsT0FBTztLQUNwQjtJQUNELGNBQWMsRUFBRTtRQUNkLEdBQUcsRUFBRSxVQUFVO1FBQ2YsSUFBSSxFQUFFLGtCQUFrQjtLQUN6QjtJQUNELEtBQUssRUFBRSx1QkFBdUI7SUFDOUIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLG1CQUFtQixFQUFFO1FBQ25CLGNBQWMsRUFBRSxjQUFjO1FBQzlCLGdCQUFnQixFQUFFLG9CQUFvQjtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQjtDQUNGLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBc0M7SUFDbkQsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsU0FBUztJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0lBQzdDLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixXQUFXLEVBQUUsR0FBRztRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxPQUFPO0tBQ3BCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsY0FBYyxFQUFFLGNBQWM7UUFDOUIsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLEtBQUssRUFBRSxZQUFZO0tBQ3BCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBcUM7SUFDMUQsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixpQkFBaUIsRUFBRSxTQUFTO0lBQzVCLGVBQWUsRUFBRSxjQUFjO0lBQy9CLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsRUFBRSxFQUFFLGNBQWM7SUFDbEIsV0FBVyxFQUFFO1FBQ1gsT0FBTyxFQUFFLE9BQU87UUFDaEIsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNELFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDaEIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsT0FBTyxFQUFFLGNBQWM7SUFDdkIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsU0FBUyxFQUFFLEVBQUU7SUFDYixJQUFJLEVBQUUsV0FBVztJQUNqQixFQUFFLEVBQUUsU0FBUztJQUNiLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNsQyxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRTtLQUNoQjtJQUNELFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEVBQUU7SUFDVCxLQUFLLEVBQUU7UUFDTDtZQUNFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsRUFBRTtZQUNqQixRQUFRLEVBQUUsQ0FBQztTQUNaO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLENBQUM7U0FDWjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxDQUFDO1NBQ1o7UUFDRDtZQUNFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsRUFBRTtZQUNqQixRQUFRLEVBQUUsQ0FBQztTQUNaO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLENBQUM7U0FDWjtRQUNEO1lBQ0UsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxDQUFDO1NBQ1o7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsQ0FBQztTQUNaO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLENBQUM7U0FDWjtRQUNEO1lBQ0UsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxDQUFDO1NBQ1o7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsZUFBZTtZQUNyQixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxhQUFhO1lBQ25CLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLEVBQUUsR0FBRztZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFlBQVksRUFBRSxDQUFDO1lBQ2YsWUFBWSxFQUFFLEdBQUc7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFpQztJQUNoRSxrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLG1CQUFtQixFQUFFLElBQUk7SUFDekIsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixZQUFZLEVBQUUsSUFBSTtDQUNuQixDQUFDIn0=
@@ -7,3 +7,4 @@ import * as translation from "./translation.js";
7
7
  export { translation };
8
8
  export * from "./accountingdoc.js";
9
9
  export * from "./demoletter.js";
10
+ export * from "./paymentcode.js";
@@ -10,4 +10,5 @@ import * as translation from "./translation.js";
10
10
  export { translation };
11
11
  export * from "./accountingdoc.js";
12
12
  export * from "./demoletter.js";
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLGdCQUFnQjtBQUN2QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZTtBQUN0RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYTtBQUVqRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWE7SUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUV0QixPQUFPLEtBQUssV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUV2QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUMifQ==
13
+ export * from "./paymentcode.js";
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLGdCQUFnQjtBQUN2QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZTtBQUN0RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYTtBQUVqRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWE7SUFDbEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUV0QixPQUFPLEtBQUssV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUV2QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQyJ9
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The content of a SEPA credit transfer QR code (EPC QR code, "GiroCode"), as
3
+ * the European Payments Council defines it in EPC069-12. Banking apps read it
4
+ * line by line:
5
+ *
6
+ * 1 service tag `BCD` 7 IBAN of the beneficiary
7
+ * 2 version 8 amount, `EUR` and at most two decimals
8
+ * 3 character set (1 UTF-8) 9 purpose code (empty)
9
+ * 4 identification `SCT` 10 structured creditor reference (empty)
10
+ * 5 BIC 11 unstructured remittance information
11
+ * 6 beneficiary name
12
+ *
13
+ * The document number goes into line 11, the free-text remittance: line 10 only
14
+ * takes an ISO 11649 creditor reference (`RF…`), which a document number is not.
15
+ *
16
+ * Lines are separated by a line feed, and nothing follows the last filled line.
17
+ * A line break inside the name or the remittance information becomes a space.
18
+ * The whole content is at most 331 bytes of UTF-8.
19
+ */
20
+ export interface IEpcQrPaymentData {
21
+ /** BIC of the beneficiary's bank; version 002 of the code leaves it optional. */
22
+ bic?: string;
23
+ /** Beneficiary name, at most 70 characters in the code. */
24
+ name: string;
25
+ iban: string;
26
+ currency: string;
27
+ amount: number;
28
+ /** What the payer's bank transfers as remittance information, at most 140 characters. */
29
+ remittanceInformation: string;
30
+ }
31
+ /**
32
+ * Builds the EPC QR code content, or returns null when no valid code exists
33
+ * for the payment: the EPC QR code transfers euros only, an amount from 0.01
34
+ * to 999,999,999.99, to a beneficiary with a name and an IBAN.
35
+ *
36
+ * The name is cut to 70 characters and the remittance information to 140
37
+ * (Unicode code points), at whole grapheme clusters. When the content would
38
+ * still exceed 331 bytes, which only text of multi-byte characters reaches, the
39
+ * remittance information is cut further at whole grapheme clusters. The name is
40
+ * not cut further: when the other lines alone leave no room for any of the
41
+ * remittance information, or exceed 331 bytes themselves, the result is null.
42
+ */
43
+ export declare const buildEpcQrPayload: (paymentArg: IEpcQrPaymentData) => string | null;
@@ -0,0 +1,85 @@
1
+ /** The largest amount an EPC QR code can carry. */
2
+ const EPC_MAX_AMOUNT = 999999999.99;
3
+ /** The largest EPC QR code content, in bytes. */
4
+ const EPC_MAX_PAYLOAD_BYTES = 331;
5
+ const EPC_MAX_NAME_CHARACTERS = 70;
6
+ const EPC_MAX_REMITTANCE_CHARACTERS = 140;
7
+ /** Every line break Unicode knows, in runs. */
8
+ const LINE_BREAKS = /[\r\n\v\f\u0085\u2028\u2029]+/g;
9
+ const utf8Encoder = new TextEncoder();
10
+ const graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" });
11
+ const utf8Length = (textArg) => utf8Encoder.encode(textArg).length;
12
+ /** One line of free text: line breaks become spaces, surrounding space is dropped. */
13
+ const toSingleLine = (textArg) => textArg.replace(LINE_BREAKS, " ").trim();
14
+ /**
15
+ * The longest start of the text, in whole grapheme clusters, that has at most
16
+ * `maxCharactersArg` characters (Unicode code points) and `maxBytesArg` bytes of
17
+ * UTF-8. A cluster that would cross either limit is left out whole.
18
+ */
19
+ const truncateToGraphemes = (textArg, maxCharactersArg, maxBytesArg) => {
20
+ let result = "";
21
+ let characters = 0;
22
+ let bytes = 0;
23
+ for (const { segment } of graphemeSegmenter.segment(textArg)) {
24
+ const segmentCharacters = [...segment].length;
25
+ const segmentBytes = utf8Length(segment);
26
+ if (characters + segmentCharacters > maxCharactersArg || bytes + segmentBytes > maxBytesArg) {
27
+ break;
28
+ }
29
+ result += segment;
30
+ characters += segmentCharacters;
31
+ bytes += segmentBytes;
32
+ }
33
+ return result.trimEnd();
34
+ };
35
+ /**
36
+ * Builds the EPC QR code content, or returns null when no valid code exists
37
+ * for the payment: the EPC QR code transfers euros only, an amount from 0.01
38
+ * to 999,999,999.99, to a beneficiary with a name and an IBAN.
39
+ *
40
+ * The name is cut to 70 characters and the remittance information to 140
41
+ * (Unicode code points), at whole grapheme clusters. When the content would
42
+ * still exceed 331 bytes, which only text of multi-byte characters reaches, the
43
+ * remittance information is cut further at whole grapheme clusters. The name is
44
+ * not cut further: when the other lines alone leave no room for any of the
45
+ * remittance information, or exceed 331 bytes themselves, the result is null.
46
+ */
47
+ export const buildEpcQrPayload = (paymentArg) => {
48
+ const iban = paymentArg.iban?.replace(/\s+/g, "").toUpperCase() ?? "";
49
+ const name = truncateToGraphemes(toSingleLine(paymentArg.name ?? ""), EPC_MAX_NAME_CHARACTERS, EPC_MAX_PAYLOAD_BYTES);
50
+ const bic = paymentArg.bic?.replace(/\s+/g, "").toUpperCase() ?? "";
51
+ const amount = Math.round(paymentArg.amount * 100) / 100;
52
+ if (paymentArg.currency !== "EUR" ||
53
+ !Number.isFinite(amount) ||
54
+ amount < 0.01 ||
55
+ amount > EPC_MAX_AMOUNT ||
56
+ iban.length === 0 ||
57
+ name.length === 0) {
58
+ return null;
59
+ }
60
+ const leadingLines = [
61
+ "BCD",
62
+ bic.length > 0 ? "001" : "002",
63
+ "1",
64
+ "SCT",
65
+ bic,
66
+ name,
67
+ iban,
68
+ `EUR${amount.toFixed(2)}`,
69
+ "",
70
+ "",
71
+ ];
72
+ // the remittance line and its separator get the bytes the other lines leave
73
+ const remittanceText = toSingleLine(paymentArg.remittanceInformation ?? "");
74
+ const remittance = truncateToGraphemes(remittanceText, EPC_MAX_REMITTANCE_CHARACTERS, Math.max(0, EPC_MAX_PAYLOAD_BYTES - utf8Length(leadingLines.join("\n")) - 1));
75
+ if (remittanceText.length > 0 && remittance.length === 0) {
76
+ return null;
77
+ }
78
+ const lines = [...leadingLines, remittance];
79
+ while (lines[lines.length - 1] === "") {
80
+ lines.pop();
81
+ }
82
+ const payload = lines.join("\n");
83
+ return utf8Length(payload) <= EPC_MAX_PAYLOAD_BYTES ? payload : null;
84
+ };
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudGNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvcGF5bWVudGNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JBLG1EQUFtRDtBQUNuRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFcEMsaURBQWlEO0FBQ2pELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBRWxDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ25DLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFDO0FBRTFDLCtDQUErQztBQUMvQyxNQUFNLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQztBQUVyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBRXJGLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUVuRixzRkFBc0Y7QUFDdEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRTNGOzs7O0dBSUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsV0FBbUIsRUFDWCxFQUFFO0lBQ1YsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxLQUFLLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksVUFBVSxHQUFHLGlCQUFpQixHQUFHLGdCQUFnQixJQUFJLEtBQUssR0FBRyxZQUFZLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDNUYsTUFBTTtRQUNSLENBQUM7UUFDRCxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ2xCLFVBQVUsSUFBSSxpQkFBaUIsQ0FBQztRQUNoQyxLQUFLLElBQUksWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLFVBQTZCLEVBQ2QsRUFBRTtJQUNqQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUM5QixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFDbkMsdUJBQXVCLEVBQ3ZCLHFCQUFxQixDQUN0QixDQUFDO0lBQ0YsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3pELElBQ0UsVUFBVSxDQUFDLFFBQVEsS0FBSyxLQUFLO1FBQzdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDeEIsTUFBTSxHQUFHLElBQUk7UUFDYixNQUFNLEdBQUcsY0FBYztRQUN2QixJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRztRQUNuQixLQUFLO1FBQ0wsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSztRQUM5QixHQUFHO1FBQ0gsS0FBSztRQUNMLEdBQUc7UUFDSCxJQUFJO1FBQ0osSUFBSTtRQUNKLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6QixFQUFFO1FBQ0YsRUFBRTtLQUNILENBQUM7SUFDRiw0RUFBNEU7SUFDNUUsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FDcEMsY0FBYyxFQUNkLDZCQUE2QixFQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3RSxDQUFDO0lBQ0YsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdkUsQ0FBQyxDQUFDIn0=
@@ -1,3 +1,12 @@
1
+ /**
2
+ * The words UStG requires on a reverse-charge invoice: § 14a Abs. 5 for a
3
+ * domestic supply whose recipient owes the tax under § 13b, § 14a Abs. 1 for a
4
+ * supply in another member state whose recipient owes the tax there, such as a
5
+ * business-to-business service under Art. 196 of the VAT Directive. A document
6
+ * prints them in every language; the translations below add a line in the
7
+ * document's own language where it is not German.
8
+ */
9
+ export declare const REVERSE_CHARGE_STATUTORY_PHRASE_DE = "Steuerschuldnerschaft des Leistungsempf\u00E4ngers";
1
10
  export declare const EN_translations: {
2
11
  address: string;
3
12
  "bank.accountHolder": string;
@@ -1,3 +1,12 @@
1
+ /**
2
+ * The words UStG requires on a reverse-charge invoice: § 14a Abs. 5 for a
3
+ * domestic supply whose recipient owes the tax under § 13b, § 14a Abs. 1 for a
4
+ * supply in another member state whose recipient owes the tax there, such as a
5
+ * business-to-business service under Art. 196 of the VAT Directive. A document
6
+ * prints them in every language; the translations below add a line in the
7
+ * document's own language where it is not German.
8
+ */
9
+ export const REVERSE_CHARGE_STATUTORY_PHRASE_DE = "Steuerschuldnerschaft des Leistungsempfängers";
1
10
  // Define English translations without enforcing TTranslationImplementation yet
2
11
  export const EN_translations = {
3
12
  address: "Address",
@@ -51,7 +60,8 @@ export const EN_translations = {
51
60
  totalGross: "Total gross",
52
61
  "unit.type": "Unit Type",
53
62
  "vat.position": "on item positions",
54
- "vat.reverseCharge.note": "VAT arises on a reverse charge basis and is payable by the customer.",
63
+ // the words of Art. 226 Nr. 11a of the VAT Directive in its English version
64
+ "vat.reverseCharge.note": "Reverse charge",
55
65
  "vat.short": "VAT",
56
66
  "vat.yourId": "Your vat id on file",
57
67
  vat: "Valued Added Tax",
@@ -110,7 +120,8 @@ export const DE_translations = {
110
120
  totalGross: "Gesamtbetrag brutto",
111
121
  "unit.type": "Einheit",
112
122
  "vat.position": "auf Positionen",
113
- "vat.reverseCharge.note": "Die Umsatzsteuer entsteht im Reverse-Charge-Verfahren und ist vom Kunden zu zahlen.",
123
+ // § 14a Abs. 1 und 5 UStG
124
+ "vat.reverseCharge.note": REVERSE_CHARGE_STATUTORY_PHRASE_DE,
114
125
  "vat.short": "MwSt.",
115
126
  "vat.yourId": "Ihre hinterlegte USt-Id",
116
127
  vat: "Umsatzsteuer",
@@ -151,4 +162,4 @@ export const translate = (languageCode, key) => {
151
162
  // an unknown key renders as itself, so a missing translation is visible instead of empty
152
163
  return found ?? key;
153
164
  };
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvdHJhbnNsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixPQUFPLEVBQUUsU0FBUztJQUNsQixvQkFBb0IsRUFBRSxhQUFhO0lBQ25DLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsdUJBQXVCLEVBQUUsaUJBQWlCO0lBQzFDLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsbUJBQW1CLEVBQUUsb0JBQW9CO0lBQ3pDLDRCQUE0QixFQUMxQixzREFBc0Q7SUFDeEQsaUJBQWlCLEVBQUUsa0JBQWtCO0lBQ3JDLGtCQUFrQixFQUFFLG1CQUFtQjtJQUN2QywyQkFBMkIsRUFDekIsbUVBQW1FO0lBQ3JFLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsdUJBQXVCLEVBQUUsZ0JBQWdCO0lBQ3pDLEtBQUssRUFBRSxjQUFjO0lBQ3JCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFLHVEQUF1RDtJQUN2RSxnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLE1BQU07SUFDWixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxZQUFZLEVBQUUsMENBQTBDO0lBQ3hELElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLHdCQUF3QixFQUFFLHVDQUF1QztJQUNqRSxlQUFlLEVBQUUsZUFBZTtJQUNoQyxzQkFBc0IsRUFBRSx5QkFBeUI7SUFDakQseUJBQXlCLEVBQUUsZUFBZTtJQUMxQywy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
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zaGFyZWQvdHJhbnNsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUM3QywrQ0FBK0MsQ0FBQztBQUVsRCwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLG9CQUFvQixFQUFFLGFBQWE7SUFDbkMsVUFBVSxFQUFFLEtBQUs7SUFDakIsV0FBVyxFQUFFLE1BQU07SUFDbkIsa0JBQWtCLEVBQUUsYUFBYTtJQUNqQyx1QkFBdUIsRUFBRSxpQkFBaUI7SUFDMUMsZ0JBQWdCLEVBQUUsY0FBYztJQUNoQyxtQkFBbUIsRUFBRSxvQkFBb0I7SUFDekMsNEJBQTRCLEVBQzFCLHNEQUFzRDtJQUN4RCxpQkFBaUIsRUFBRSxrQkFBa0I7SUFDckMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLDJCQUEyQixFQUN6QixtRUFBbUU7SUFDckUsV0FBVyxFQUFFLGFBQWE7SUFDMUIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyx1QkFBdUIsRUFBRSxnQkFBZ0I7SUFDekMsS0FBSyxFQUFFLGNBQWM7SUFDckIsR0FBRyxFQUFFLEtBQUs7SUFDVixjQUFjLEVBQUUsdURBQXVEO0lBQ3ZFLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxPQUFPLEVBQUUsU0FBUztJQUNsQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsTUFBTTtJQUNaLGdCQUFnQixFQUFFLE9BQU87SUFDekIsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLFlBQVksRUFBRSwwQ0FBMEM7SUFDeEQsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxpQkFBaUI7SUFDL0Isd0JBQXdCLEVBQUUsdUNBQXVDO0lBQ2pFLGVBQWUsRUFB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
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-document',
6
- version: '3.1.1',
6
+ version: '3.2.0',
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
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSx1TEFBdUw7Q0FDck0sQ0FBQSJ9
@@ -60,7 +60,23 @@ export declare class DeContentInvoice extends DeesElement {
60
60
  private applyOffsetTrimming;
61
61
  /** The due date, which only an accounting document has: it counts from its date. */
62
62
  private renderPaymentTerms;
63
+ /**
64
+ * The QR pay box. It is printed only when the payment has a valid EPC QR
65
+ * code: a euro amount to the sender's IBAN, which a document in another
66
+ * currency or without the sender's IBAN does not have.
67
+ */
63
68
  private renderPaymentInfo;
69
+ /**
70
+ * The reverse-charge statement. § 14a UStG requires the words
71
+ * "Steuerschuldnerschaft des Leistungsempfängers": Abs. 5 for a domestic
72
+ * supply whose recipient owes the tax under § 13b, Abs. 1 for a supply in
73
+ * another member state whose recipient owes the tax there, such as a
74
+ * business-to-business service under Art. 196 of the VAT Directive. They are
75
+ * printed on every reverse-charge document, and a document in another language adds its own
76
+ * line, in English "Reverse charge", the words of Art. 226 Nr. 11a of the VAT
77
+ * Directive (2006/112/EC).
78
+ */
79
+ private renderReverseChargeNote;
64
80
  /** The earlier documents a correction answers, by number and, when known, by date. */
65
81
  private renderRelatedDocuments;
66
82
  /**
@@ -489,6 +489,11 @@ let DeContentInvoice = (() => {
489
489
  </div>
490
490
  </div>`;
491
491
  }
492
+ /**
493
+ * The QR pay box. It is printed only when the payment has a valid EPC QR
494
+ * code: a euro amount to the sender's IBAN, which a document in another
495
+ * currency or without the sender's IBAN does not have.
496
+ */
492
497
  renderPaymentInfo(accountingDocArg) {
493
498
  const bic = accountingDocArg.from.sepaConnection?.bic;
494
499
  const name = accountingDocArg.from.name;
@@ -496,6 +501,17 @@ let DeContentInvoice = (() => {
496
501
  const currency = accountingDocArg.currency;
497
502
  const totalGross = this.getTotalGross();
498
503
  const reference = accountingDocArg.id;
504
+ if (typeof iban !== "string" ||
505
+ plugins.shared.buildEpcQrPayload({
506
+ bic,
507
+ name,
508
+ iban,
509
+ currency,
510
+ amount: totalGross,
511
+ remittanceInformation: reference,
512
+ }) === null) {
513
+ return null;
514
+ }
499
515
  return html `<div class="infoBox">
500
516
  <div>
501
517
  <div>
@@ -511,6 +527,25 @@ let DeContentInvoice = (() => {
511
527
  reference="${reference}"
512
528
  />
513
529
  </div>
530
+ </div>`;
531
+ }
532
+ /**
533
+ * The reverse-charge statement. § 14a UStG requires the words
534
+ * "Steuerschuldnerschaft des Leistungsempfängers": Abs. 5 for a domestic
535
+ * supply whose recipient owes the tax under § 13b, Abs. 1 for a supply in
536
+ * another member state whose recipient owes the tax there, such as a
537
+ * business-to-business service under Art. 196 of the VAT Directive. They are
538
+ * printed on every reverse-charge document, and a document in another language adds its own
539
+ * line, in English "Reverse charge", the words of Art. 226 Nr. 11a of the VAT
540
+ * Directive (2006/112/EC).
541
+ */
542
+ renderReverseChargeNote() {
543
+ const localizedLine = this.translateKey("invoice@@vat.reverseCharge.note");
544
+ return html `<div class="taxNote">
545
+ <div>${plugins.shared.translation.REVERSE_CHARGE_STATUTORY_PHRASE_DE}</div>
546
+ ${localizedLine === plugins.shared.translation.REVERSE_CHARGE_STATUTORY_PHRASE_DE
547
+ ? null
548
+ : html `<div>${localizedLine}</div>`}
514
549
  </div>`;
515
550
  }
516
551
  /** The earlier documents a correction answers, by number and, when known, by date. */
@@ -654,11 +689,7 @@ let DeContentInvoice = (() => {
654
689
  </div>
655
690
  <div class="divider"></div>
656
691
 
657
- ${accountingDoc?.reverseCharge
658
- ? html `<div class="taxNote">
659
- ${this.translateKey("invoice@@vat.reverseCharge.note")}
660
- </div>`
661
- : ``}
692
+ ${accountingDoc?.reverseCharge ? this.renderReverseChargeNote() : ``}
662
693
 
663
694
  <!-- REFERENCED CONTRACT -->
664
695
  ${this.renderReferencedContract()}
@@ -684,4 +715,4 @@ let DeContentInvoice = (() => {
684
715
  return DeContentInvoice = _classThis;
685
716
  })();
686
717
  export { DeContentInvoice };
687
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGludm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29udGVudGludm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFwRCw4RUFBOEU7QUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGVBQXdCLEVBQVUsRUFBRTtJQUM3RCxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBWUYsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUseUJBQXlCO1FBQ3pDLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLHNCQUFzQixFQUFFLEtBQUs7S0FDOUI7SUFDRCx5RkFBeUY7SUFDekYsVUFBVSxFQUFFO1FBQ1YsY0FBYyxFQUFFLDRC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
718
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGludm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29udGVudGludm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFwRCw4RUFBOEU7QUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGVBQXdCLEVBQVUsRUFBRTtJQUM3RCxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBWUYsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUseUJBQXlCO1FBQ3pDLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLHNCQUFzQixFQUFFLEtBQUs7S0FDOUI7SUFDRCx5RkFBeUY7SUFDekYsVUFBVSxFQUFFO1FBQ1YsY0FBYyxFQUFFLDRC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
@@ -13,6 +13,8 @@ export declare class DedocumentPaymentCode extends DeesElement {
13
13
  accessor currency: string;
14
14
  accessor totalGross: number;
15
15
  accessor reference: string;
16
+ /** The EPC QR code content, or null when the payment has no valid code (see buildEpcQrPayload). */
17
+ private get payload();
16
18
  private updateQRCode;
17
19
  update(changedProperties: Parameters<DeesElement["update"]>[0]): void;
18
20
  render(): TemplateResult | null;
@@ -118,19 +118,29 @@ let DedocumentPaymentCode = (() => {
118
118
  #reference_accessor_storage = (__runInitializers(this, _totalGross_extraInitializers), __runInitializers(this, _reference_initializers, void 0));
119
119
  get reference() { return this.#reference_accessor_storage; }
120
120
  set reference(value) { this.#reference_accessor_storage = value; }
121
+ /** The EPC QR code content, or null when the payment has no valid code (see buildEpcQrPayload). */
122
+ get payload() {
123
+ if (typeof this.name !== "string" ||
124
+ typeof this.iban !== "string" ||
125
+ typeof this.currency !== "string" ||
126
+ typeof this.totalGross !== "number" ||
127
+ typeof this.reference !== "string") {
128
+ return null;
129
+ }
130
+ return plugins.shared.buildEpcQrPayload({
131
+ bic: typeof this.bic === "string" ? this.bic : undefined,
132
+ name: this.name,
133
+ iban: this.iban,
134
+ currency: this.currency,
135
+ amount: this.totalGross,
136
+ remittanceInformation: this.reference,
137
+ });
138
+ }
121
139
  updateQRCode() {
122
- if (!this.canvasEl)
140
+ const payload = this.payload;
141
+ if (!this.canvasEl || payload === null)
123
142
  return;
124
- plugins.qrcode.toCanvas(this.canvasEl, `BCD
125
- 001
126
- 1
127
- SCT
128
- ${this.bic}
129
- ${this.name}
130
- ${this.iban}
131
- ${this.currency}${this.totalGross?.toFixed?.(2)}
132
-
133
- ${this.reference}`, (error) => {
143
+ plugins.qrcode.toCanvas(this.canvasEl, payload, (error) => {
134
144
  if (error)
135
145
  console.error(error);
136
146
  });
@@ -140,13 +150,7 @@ ${this.reference}`, (error) => {
140
150
  this.updateQRCode();
141
151
  }
142
152
  render() {
143
- const allDataAvailable = typeof this.bic === "string" &&
144
- typeof this.name === "string" &&
145
- typeof this.iban === "string" &&
146
- typeof this.currency === "string" &&
147
- typeof this.totalGross === "number" &&
148
- typeof this.reference === "string";
149
- return allDataAvailable ? html `<canvas></canvas>` : null;
153
+ return this.payload === null ? null : html `<canvas></canvas>`;
150
154
  }
151
155
  constructor() {
152
156
  super(...arguments);
@@ -159,4 +163,4 @@ ${this.reference}`, (error) => {
159
163
  return DedocumentPaymentCode = _classThis;
160
164
  })();
161
165
  export { DedocumentPaymentCode };
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudGNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvcGF5bWVudGNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxHQUFHLEVBQ0gsYUFBYSxFQUNiLFdBQVcsRUFDWCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssR0FFTixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0lBUzVCLHFCQUFxQjs0QkFEakMsYUFBYSxDQUFDLHdCQUF3QixDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUNBQW5CLFNBQVEsV0FBVzs7OztvQ0FnQm5ELEtBQUssQ0FBQyxRQUFRLENBQUM7K0JBR2YsUUFBUSxFQUFFO2dDQUdWLFFBQVEsRUFBRTtnQ0FHVixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFO3NDQUdWLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztxQ0FHMUIsUUFBUSxFQUFFO1lBakJYLDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFBcUI7WUFHdEMsOEpBQVMsR0FBRyw2QkFBSCxHQUFHLGlGQUFVO1lBR3RCLGlLQUFTLElBQUksNkJBQUosSUFBSSxtRkFBVTtZQUd2QixpS0FBUyxJQUFJLDZCQUFKLElBQUksbUZBQVU7WUFHdkIsNktBQVMsUUFBUSw2QkFBUixRQUFRLDJGQUFVO1lBRzNCLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBVTtZQUc3QixnTEFBUyxTQUFTLDZCQUFULFNBQVMsNkZBQVU7WUFuQzlCLDZLQTRFQzs7OztRQTNFUSxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7S0FXRjtTQUNGLENBQUM7UUFHRixxRkFBc0M7UUFBdEMsSUFBUyxRQUFRLDhDQUFxQjtRQUF0QyxJQUFTLFFBQVEsb0RBQXFCO1FBR3RDLG1JQUFzQjtRQUF0QixJQUFTLEdBQUcseUNBQVU7UUFBdEIsSUFBUyxHQUFHLCtDQUFVO1FBR3RCLGdJQUF1QjtRQUF2QixJQUFTLElBQUksMENBQVU7UUFBdkIsSUFBUyxJQUFJLGdEQUFVO1FBR3ZCLGlJQUF1QjtRQUF2QixJQUFTLElBQUksMENBQVU7UUFBdkIsSUFBUyxJQUFJLGdEQUFVO1FBR3ZCLHlJQUEyQjtRQUEzQixJQUFTLFFBQVEsOENBQVU7UUFBM0IsSUFBUyxRQUFRLG9EQUFVO1FBRzNCLGlKQUE2QjtRQUE3QixJQUFTLFVBQVUsZ0RBQVU7UUFBN0IsSUFBUyxVQUFVLHNEQUFVO1FBRzdCLGlKQUE0QjtRQUE1QixJQUFTLFNBQVMsK0NBQVU7UUFBNUIsSUFBUyxTQUFTLHFEQUFVO1FBRXBCLFlBQVk7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQ2I7Ozs7RUFJSixJQUFJLENBQUMsR0FBRztFQUNSLElBQUksQ0FBQyxJQUFJO0VBQ1QsSUFBSSxDQUFDLElBQUk7RUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDOztFQUU3QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQ1osQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDUixJQUFJLEtBQUs7b0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFZSxNQUFNLENBQ3BCLGlCQUF1RDtZQUV2RCxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFTSxNQUFNO1lBQ1gsTUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFFBQVE7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRO2dCQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVE7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRO2dCQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO1lBRXJDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNELENBQUM7Ozs7OztZQTNFVSx1REFBcUI7Ozs7O1NBQXJCLHFCQUFxQiJ9
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudGNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvcGF5bWVudGNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxHQUFHLEVBQ0gsYUFBYSxFQUNiLFdBQVcsRUFDWCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssR0FFTixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0lBUzVCLHFCQUFxQjs0QkFEakMsYUFBYSxDQUFDLHdCQUF3QixDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUNBQW5CLFNBQVEsV0FBVzs7OztvQ0FnQm5ELEtBQUssQ0FBQyxRQUFRLENBQUM7K0JBR2YsUUFBUSxFQUFFO2dDQUdWLFFBQVEsRUFBRTtnQ0FHVixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFO3NDQUdWLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztxQ0FHMUIsUUFBUSxFQUFFO1lBakJYLDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFBcUI7WUFHdEMsOEpBQVMsR0FBRyw2QkFBSCxHQUFHLGlGQUFVO1lBR3RCLGlLQUFTLElBQUksNkJBQUosSUFBSSxtRkFBVTtZQUd2QixpS0FBUyxJQUFJLDZCQUFKLElBQUksbUZBQVU7WUFHdkIsNktBQVMsUUFBUSw2QkFBUixRQUFRLDJGQUFVO1lBRzNCLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBVTtZQUc3QixnTEFBUyxTQUFTLDZCQUFULFNBQVMsNkZBQVU7WUFuQzlCLDZLQTZFQzs7OztRQTVFUSxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7S0FXRjtTQUNGLENBQUM7UUFHRixxRkFBc0M7UUFBdEMsSUFBUyxRQUFRLDhDQUFxQjtRQUF0QyxJQUFTLFFBQVEsb0RBQXFCO1FBR3RDLG1JQUFzQjtRQUF0QixJQUFTLEdBQUcseUNBQVU7UUFBdEIsSUFBUyxHQUFHLCtDQUFVO1FBR3RCLGdJQUF1QjtRQUF2QixJQUFTLElBQUksMENBQVU7UUFBdkIsSUFBUyxJQUFJLGdEQUFVO1FBR3ZCLGlJQUF1QjtRQUF2QixJQUFTLElBQUksMENBQVU7UUFBdkIsSUFBUyxJQUFJLGdEQUFVO1FBR3ZCLHlJQUEyQjtRQUEzQixJQUFTLFFBQVEsOENBQVU7UUFBM0IsSUFBUyxRQUFRLG9EQUFVO1FBRzNCLGlKQUE2QjtRQUE3QixJQUFTLFVBQVUsZ0RBQVU7UUFBN0IsSUFBUyxVQUFVLHNEQUFVO1FBRzdCLGlKQUE0QjtRQUE1QixJQUFTLFNBQVMsK0NBQVU7UUFBNUIsSUFBUyxTQUFTLHFEQUFVO1FBRTVCLG1HQUFtRztRQUNuRyxJQUFZLE9BQU87WUFDakIsSUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRO2dCQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFDbEMsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3RDLEdBQUcsRUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN4RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN2QixxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUzthQUN0QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU8sWUFBWTtZQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJO2dCQUFFLE9BQU87WUFFL0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxLQUFLO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRWUsTUFBTSxDQUNwQixpQkFBdUQ7WUFFdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLG1CQUFtQixDQUFDO1FBQ2hFLENBQUM7Ozs7OztZQTVFVSx1REFBcUI7Ozs7O1NBQXJCLHFCQUFxQiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-document",
3
- "version": "3.1.1",
3
+ "version": "3.2.0",
4
4
  "private": false,
5
5
  "description": "A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.",
6
6
  "main": "dist_ts_web/index.js",
@@ -15,7 +15,7 @@
15
15
  "author": "Lossless GmbH",
16
16
  "license": "MIT",
17
17
  "dependencies": {
18
- "@design.estate/dees-catalog": "^9.7.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0",
18
+ "@design.estate/dees-catalog": "^9.7.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0",
19
19
  "@design.estate/dees-domtools": "^3.0.0",
20
20
  "@design.estate/dees-element": "^3.1.1",
21
21
  "@design.estate/dees-wcctools": "^3.9.4",
@@ -30,12 +30,12 @@
30
30
  "qrcode": "^1.5.4"
31
31
  },
32
32
  "devDependencies": {
33
- "@git.zone/tsbuild": "^4.5.0",
34
- "@git.zone/tsbundle": "^2.13.0",
35
- "@git.zone/tsrun": "^2.0.6",
36
- "@git.zone/tstest": "^6.1.1",
37
- "@git.zone/tswatch": "^3.3.5",
38
- "@types/node": "^26.5.1"
33
+ "@git.zone/tsbuild": "^5.0.0",
34
+ "@git.zone/tsbundle": "^2.15.0",
35
+ "@git.zone/tsrun": "^3.0.0",
36
+ "@git.zone/tstest": "^6.2.0",
37
+ "@git.zone/tswatch": "^4.0.1",
38
+ "@types/node": "^26.6.1"
39
39
  },
40
40
  "files": [
41
41
  "ts/**/*",
package/readme.md CHANGED
@@ -319,6 +319,15 @@ const invoice = {
319
319
  };
320
320
  ```
321
321
 
322
+ ### Tax statements
323
+
324
+ - **Reverse charge**: a document with `reverseCharge: true` prints "Steuerschuldnerschaft des Leistungsempfängers" in every language: the words § 14a Abs. 5 UStG requires for a domestic supply whose recipient owes the tax under § 13b UStG, and § 14a Abs. 1 UStG for a supply in another member state whose recipient owes the tax there, such as a business-to-business service under Art. 196 of the VAT Directive (2006/112/EC). A document in English adds the line "Reverse charge", the words of Art. 226 Nr. 11a of the VAT Directive.
325
+ - **Exemption reference** (§ 14 Abs. 4 Nr. 8 UStG): pass it as a note, for example `'Steuerfreie innergemeinschaftliche Lieferung nach § 4 Nr. 1 Buchst. b i. V. m. § 6a UStG.'`; it prints below the totals like every note. Do not set `reverseCharge` for a tax-exempt intra-Community supply of goods (§ 4 Nr. 1 Buchst. b, § 6a UStG): it is exempt, not reverse charge, so it takes the exemption reference as a note instead.
326
+
327
+ ### QR pay box
328
+
329
+ A document that asks for payment prints a SEPA credit transfer QR code (EPC QR code, EPC069-12) for its gross total to the sender's IBAN, with the document number as the remittance information (the free-text field, not the creditor-reference field, which only takes an `RF` reference). The code carries euros only, so the box is omitted for another currency, for a total below 0.01 or above 999,999,999.99, and when the sender has no IBAN. Without a BIC the code uses version 002, which makes the BIC optional. Nothing follows the last filled line, and a line break inside the name or the remittance information becomes a space. The name is cut to the code's 70 characters and the remittance information to 140, at whole grapheme clusters. The code holds at most 331 bytes: text of multi-byte characters that would exceed them cuts the remittance information further; when no remittance information would be left, or the other lines alone exceed 331 bytes, no code is built and the box is omitted. `buildEpcQrPayload()` on `@design.estate/dees-document/shared` returns the code's content, or `null` when no valid code exists.
330
+
322
331
  ## Draft vs Final Documents
323
332
 
324
333
  Control document version display:
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-document',
6
- version: '3.1.1',
6
+ version: '3.2.0',
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
  }