@design.estate/dees-document 2.0.2 → 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.
Files changed (44) hide show
  1. package/package.json +1 -1
  2. package/dist_ts_shared/interfaces/translation.d.ts +0 -19
  3. package/dist_ts_shared/interfaces/translation.js +0 -2
  4. package/dist_ts_web/00_commitinfo_data.d.ts +0 -8
  5. package/dist_ts_web/00_commitinfo_data.js +0 -9
  6. package/dist_ts_web/elements/contentinvoice.d.ts +0 -35
  7. package/dist_ts_web/elements/contentinvoice.js +0 -382
  8. package/dist_ts_web/elements/document.d.ts +0 -27
  9. package/dist_ts_web/elements/document.demo.d.ts +0 -1
  10. package/dist_ts_web/elements/document.demo.js +0 -6
  11. package/dist_ts_web/elements/document.js +0 -262
  12. package/dist_ts_web/elements/index.d.ts +0 -9
  13. package/dist_ts_web/elements/index.js +0 -10
  14. package/dist_ts_web/elements/letterheader.d.ts +0 -16
  15. package/dist_ts_web/elements/letterheader.js +0 -117
  16. package/dist_ts_web/elements/page.d.ts +0 -25
  17. package/dist_ts_web/elements/page.js +0 -207
  18. package/dist_ts_web/elements/pagecontainer.d.ts +0 -14
  19. package/dist_ts_web/elements/pagecontainer.js +0 -61
  20. package/dist_ts_web/elements/pagecontent.d.ts +0 -18
  21. package/dist_ts_web/elements/pagecontent.js +0 -136
  22. package/dist_ts_web/elements/pagefooter.d.ts +0 -17
  23. package/dist_ts_web/elements/pagefooter.js +0 -130
  24. package/dist_ts_web/elements/pageheader.d.ts +0 -17
  25. package/dist_ts_web/elements/pageheader.js +0 -101
  26. package/dist_ts_web/elements/viewer.d.ts +0 -15
  27. package/dist_ts_web/elements/viewer.demo.d.ts +0 -1
  28. package/dist_ts_web/elements/viewer.demo.js +0 -6
  29. package/dist_ts_web/elements/viewer.js +0 -96
  30. package/dist_ts_web/index.d.ts +0 -1
  31. package/dist_ts_web/index.js +0 -2
  32. package/dist_ts_web/pages/index.d.ts +0 -2
  33. package/dist_ts_web/pages/index.js +0 -3
  34. package/dist_ts_web/pages/page1.d.ts +0 -1
  35. package/dist_ts_web/pages/page1.js +0 -17
  36. package/dist_ts_web/pages/page2.d.ts +0 -1
  37. package/dist_ts_web/pages/page2.js +0 -18
  38. package/dist_ts_web/plugins.d.ts +0 -9
  39. package/dist_ts_web/plugins.js +0 -14
  40. package/dist_ts_web/style.d.ts +0 -1
  41. package/dist_ts_web/style.js +0 -7
  42. package/dist_watch/bundle.js +0 -47955
  43. package/dist_watch/bundle.js.map +0 -7
  44. package/dist_watch/index.html +0 -25
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-document",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
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",
@@ -1,19 +0,0 @@
1
- export interface IDeDocumentTranslations {
2
- address: string;
3
- bankConnection: string;
4
- contactInfo: string;
5
- description: string;
6
- invoice: string;
7
- itemPos: string;
8
- quantity: string;
9
- registrationInfo: string;
10
- reverseVatNote: string;
11
- totalNetPrice: string;
12
- unitNetPrice: string;
13
- unitType: string;
14
- yourCustomerId: string;
15
- yourVatId: string;
16
- continuesOnPage: string;
17
- finalPageStatement: string;
18
- page: string;
19
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19zaGFyZWQvaW50ZXJmYWNlcy90cmFuc2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,8 +0,0 @@
1
- /**
2
- * autocreated commitinfo by @push.rocks/commitinfo
3
- */
4
- export declare const commitinfo: {
5
- name: string;
6
- version: string;
7
- description: string;
8
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * autocreated commitinfo by @push.rocks/commitinfo
3
- */
4
- export const commitinfo = {
5
- name: '@design.estate/dees-document',
6
- version: '1.6.11',
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
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSx1TEFBdUw7Q0FDck0sQ0FBQSJ9
@@ -1,35 +0,0 @@
1
- /**
2
- * content for invoices
3
- */
4
- import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
5
- import * as plugins from '../plugins.js';
6
- declare global {
7
- interface HTMLElementTagNameMap {
8
- 'dedocument-contentinvoice': DeContentInvoice;
9
- }
10
- }
11
- export declare class DeContentInvoice extends DeesElement {
12
- static demo: () => TemplateResult<1>;
13
- letterData: plugins.tsclass.business.ILetter;
14
- documentSettings: plugins.shared.interfaces.IDocumentSettings;
15
- constructor();
16
- static styles: import("@design.estate/dees-element").CSSResult[];
17
- render(): TemplateResult;
18
- getTotalNet: () => number;
19
- getTotalGross: () => number;
20
- getVatGroups: () => {
21
- vatPercentage: number;
22
- items: plugins.tsclass.finance.IInvoice["items"];
23
- vatAmountSum: number;
24
- }[];
25
- getContentNodes(): Promise<{
26
- currentContent: HTMLElement;
27
- trimmedContent: HTMLElement;
28
- repeatedContent: HTMLElement;
29
- }>;
30
- getContentLength(): Promise<number>;
31
- trimEndByOne(): Promise<void>;
32
- trimStartToOffset(contentOffsetArg: number): Promise<void>;
33
- firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
34
- attachInvoiceDom(): Promise<void>;
35
- }
@@ -1,382 +0,0 @@
1
- /**
2
- * content for invoices
3
- */
4
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
- return c > 3 && r && Object.defineProperty(target, key, r), r;
9
- };
10
- import { DeesElement, property, html, customElement, css, cssManager, unsafeCSS, render, domtools, } from '@design.estate/dees-element';
11
- import * as plugins from '../plugins.js';
12
- import { dedocumentSharedStyle } from '../style.js';
13
- let DeContentInvoice = class DeContentInvoice extends DeesElement {
14
- static { this.demo = () => html `
15
- <style>
16
- .demoContainer {
17
- background: white;
18
- padding: 50px;
19
- }
20
- </style>
21
- <div class="demoContainer">
22
- <dedocument-contentinvoice></dedocument-contentinvoice>
23
- </div>
24
- `; }
25
- constructor() {
26
- super();
27
- this.getTotalNet = () => {
28
- let totalNet = 0;
29
- if (!this.letterData) {
30
- return totalNet;
31
- }
32
- for (const item of this.letterData.content.invoiceData.items) {
33
- totalNet += item.unitNetPrice * item.unitQuantity;
34
- }
35
- return totalNet;
36
- };
37
- this.getTotalGross = () => {
38
- let totalVat = 0;
39
- if (!this.letterData) {
40
- return totalVat;
41
- }
42
- for (const taxgroup of this.getVatGroups()) {
43
- totalVat += taxgroup.vatAmountSum;
44
- }
45
- return this.getTotalNet() + totalVat;
46
- };
47
- this.getVatGroups = () => {
48
- const vatGroups = [];
49
- if (!this.letterData) {
50
- return vatGroups;
51
- }
52
- const taxAmounts = [];
53
- for (const item of this.letterData.content.invoiceData.items) {
54
- taxAmounts.includes(item.vatPercentage) ? null : taxAmounts.push(item.vatPercentage);
55
- }
56
- for (const taxAmount of taxAmounts) {
57
- const matchingItems = this.letterData.content.invoiceData.items.filter((itemArg) => itemArg.vatPercentage === taxAmount);
58
- let sum = 0;
59
- for (const matchingItem of matchingItems) {
60
- sum += matchingItem.unitNetPrice * matchingItem.unitQuantity * (taxAmount / 100);
61
- }
62
- vatGroups.push({
63
- items: matchingItems,
64
- vatPercentage: taxAmount,
65
- vatAmountSum: Math.round(sum * 100) / 100,
66
- });
67
- }
68
- return vatGroups;
69
- };
70
- domtools.DomTools.setupDomTools();
71
- }
72
- static { this.styles = [
73
- domtools.elementBasic.staticStyles,
74
- dedocumentSharedStyle,
75
- css `
76
- :host {
77
- color: #333;
78
- }
79
-
80
- .trimmedContent {
81
- display: none;
82
- }
83
-
84
- .repeatedContent {
85
- }
86
- `,
87
- ]; }
88
- render() {
89
- return html `
90
- <div class="trimmedContent"></div>
91
- <div class="repeatedContent"></div>
92
- <div class="currentContent"></div>
93
- `;
94
- }
95
- async getContentNodes() {
96
- await this.elementDomReady;
97
- return {
98
- currentContent: this.shadowRoot.querySelector('.currentContent'),
99
- trimmedContent: this.shadowRoot.querySelector('.trimmedContent'),
100
- repeatedContent: this.shadowRoot.querySelector('.repeatedContent'),
101
- };
102
- }
103
- async getContentLength() {
104
- await this.elementDomReady;
105
- return (await this.getContentNodes()).currentContent.children.length;
106
- }
107
- async trimEndByOne() {
108
- await this.elementDomReady;
109
- this.shadowRoot
110
- .querySelector('.trimmedContent')
111
- .append((await this.getContentNodes()).currentContent.children.item((await this.getContentNodes()).currentContent.children.length - 1));
112
- }
113
- async trimStartToOffset(contentOffsetArg) {
114
- await this.elementDomReady;
115
- const beginningLength = (await this.getContentNodes()).currentContent.children.length;
116
- while ((await this.getContentNodes()).currentContent.children.length !==
117
- beginningLength - contentOffsetArg) {
118
- (await this.getContentNodes()).trimmedContent.append((await this.getContentNodes()).currentContent.children.item(0));
119
- }
120
- if ((await this.getContentNodes()).currentContent.children
121
- .item(0)
122
- .classList.contains('needsDataHeader')) {
123
- const trimmedContent = (await this.getContentNodes()).trimmedContent;
124
- let startPoint = trimmedContent.children.length;
125
- while (startPoint > 0) {
126
- const element = trimmedContent.children.item(startPoint - 1);
127
- if (element.classList.contains('dataHeader')) {
128
- (await this.getContentNodes()).repeatedContent.append(element);
129
- break;
130
- }
131
- startPoint--;
132
- }
133
- }
134
- }
135
- async firstUpdated(_changedProperties) {
136
- super.firstUpdated(_changedProperties);
137
- this.attachInvoiceDom();
138
- }
139
- async attachInvoiceDom() {
140
- const contentNodes = await this.getContentNodes();
141
- render(html `
142
- <style>
143
- .grid {
144
- display: grid;
145
- grid-template-columns: 40px auto 60px 60px 84px 84px 46px;
146
- }
147
- .topLine {
148
- margin-top: 5px;
149
- background: #e7e7e7;
150
- font-weight: bold;
151
- }
152
- .lineItem {
153
- font-size: 12px;
154
- padding: 5px;
155
- border-right: 1px dashed #ccc;
156
- }
157
-
158
- .lineItem:last-child {
159
- border-right: none;
160
- }
161
-
162
- .lineItem.rightAlign {
163
- text-align: right;
164
- }
165
-
166
- .invoiceLine {
167
- background: #ffffff00;
168
- border-bottom: 1px dotted #ccc;
169
- }
170
-
171
- .invoiceLine.highlighted {
172
- transition: background 0.2s;
173
- background: #ffc18f;
174
- border: 1px solid #ff9d4d;
175
- box-sizing: content-box;
176
- }
177
-
178
- .sums {
179
- margin-top: 5px;
180
- font-size: 12px;
181
- padding-left: 50%;
182
- }
183
-
184
- .sums .sumline {
185
- margin-top: 3px;
186
- display: grid;
187
- grid-template-columns: auto 90px;
188
- }
189
-
190
- .sums .sumline .label {
191
- padding: 2px 5px;
192
- border-right: 1px solid #ccc;
193
- text-align: right;
194
- font-weight: bold;
195
- }
196
-
197
- .sums .sumline .value {
198
- padding: 2px 5px;
199
- font-weight: bold;
200
- }
201
-
202
- .divider {
203
- margin-top: 8px;
204
- border-top: 1px dotted #ccc;
205
- }
206
-
207
- .taxNote {
208
- font-size: 12px;
209
- padding: 4px;
210
- background: #eeeeeb;
211
- text-align: center;
212
- }
213
-
214
- .infoBox {
215
- border-radius: 7px;
216
- border: 1px solid #ddd;
217
- border-left: 3px solid #c5e1a5;
218
- padding: 8px;
219
- margin-top: 16px;
220
- line-height: 1.4em;
221
- font-size: 16px;
222
- }
223
-
224
- .infoBox .label {
225
- padding-bottom: 2px;
226
- font-size: 12px;
227
- font-weight: bold;
228
- }
229
-
230
- .paymentCode {
231
- text-align: center;
232
- border-left: 2px solid #666;
233
- }
234
- </style>
235
- <div>We hereby invoice products and services provided to you by Lossless GmbH:</div>
236
- <div class="grid topLine dataHeader">
237
- <div class="lineItem rightAlign">
238
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'itemPos', 'Item Pos.')}
239
- </div>
240
- <div class="lineItem">
241
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'description', 'Description')}
242
- </div>
243
- <div class="lineItem rightAlign">
244
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'quantity', 'Quantity')}
245
- </div>
246
- <div class="lineItem">
247
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitType', 'Unit Type')}
248
- </div>
249
- <div class="lineItem rightAlign">
250
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitNetPrice', 'Unit Net Price')}
251
- </div>
252
- <div class="lineItem rightAlign">
253
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'totalNetPrice', 'Total Net Price')}
254
- </div>
255
- <div class="lineItem rightAlign">
256
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'vatShort', 'VAT')}
257
- </div>
258
- </div>
259
- ${(() => {
260
- let counter = 1;
261
- return this.letterData?.content.invoiceData?.items?.map((invoiceItem) => {
262
- const isHighlighted = false; // TODO: implement rest of highlight logic
263
- return html `
264
- <div class="grid invoiceLine needsDataHeader ${isHighlighted ? 'highlighted' : ''}">
265
- <div class="lineItem rightAlign">${counter++}</div>
266
- <div class="lineItem">${invoiceItem.name}</div>
267
- <div class="lineItem rightAlign">${invoiceItem.unitQuantity}</div>
268
- <div class="lineItem">${invoiceItem.unitType}</div>
269
- <div class="lineItem rightAlign">
270
- ${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}
271
- </div>
272
- <div class="lineItem rightAlign">
273
- ${invoiceItem.unitQuantity * invoiceItem.unitNetPrice}
274
- ${this.letterData?.content.invoiceData.currency}
275
- </div>
276
- <div class="lineItem rightAlign">${invoiceItem.vatPercentage}%</div>
277
- </div>
278
- `;
279
- });
280
- })()}
281
- <div class="sums">
282
- <div class="sumline">
283
- <div class="label">Total net</div>
284
- <div class="value">${this.getTotalNet()} EUR</div>
285
- </div>
286
- ${this.getVatGroups().map((vatGroupArg) => {
287
- let itemNumbers = '';
288
- let first = true;
289
- for (const item of vatGroupArg.items) {
290
- const itemIndex = this.letterData.content.invoiceData.items.indexOf(item);
291
- itemNumbers += `${first ? '' : ', '}${itemIndex + 1}`;
292
- first = false;
293
- }
294
- return html `
295
- <div class="sumline">
296
- <div class="label">
297
- Vat ${vatGroupArg.vatPercentage}%
298
- ${this.documentSettings.vatGroupPositions
299
- ? html `
300
- <br /><span style="font-weight: normal"
301
- >(on item positions: ${itemNumbers})</span
302
- >
303
- `
304
- : html ``}
305
- </div>
306
- <div class="value">${vatGroupArg.vatAmountSum} EUR</div>
307
- </div>
308
- `;
309
- })}
310
- <div class="sumline">
311
- <div class="label">Total gross</div>
312
- <div class="value">${this.getTotalGross()} EUR</div>
313
- </div>
314
- </div>
315
- <div class="divider"></div>
316
- ${this.letterData?.content.invoiceData.reverseCharge
317
- ? html `
318
- <div class="taxNote">
319
- ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'reverseVatNote', 'VAT arises on a reverse charge basis and is payable by the customer.')}
320
- </div>
321
- `
322
- : ``}
323
- <div class="infoBox">
324
- <div class="label">Payment Terms:</div>
325
- Payment is due within 30 days starting from the reception of this invoice. Please use the
326
- following SEPA details:
327
- <br /><br />
328
- Beneficiary: ${this.letterData?.from.name}<br />
329
- IBAN: ${this.letterData?.from?.sepaConnection?.iban}<br />
330
- BIC: ${this.letterData?.from?.sepaConnection?.bic}<br />
331
- Description: ${this.letterData?.content.invoiceData?.id}<br />
332
- Amount: ${this.getTotalGross()} ${this.letterData?.content.invoiceData.currency}
333
- </div>
334
- ${this.letterData?.content?.contractData?.contractDate
335
- ? html `
336
- <div class="infoBox">
337
- <div class="label">Referenced contract:</div>
338
- This invoice is adhering to agreements made by contract between the parties on
339
- ${plugins.smarttime.ExtendedDate.fromMillis(this.letterData?.content.contractData.contractDate).format('MMMM D, YYYY')}.
340
- </div>
341
- `
342
- : html ``}
343
- <div class="infoBox paymentCode">
344
- <div class="label">Sepa Payment Code:</div>
345
- </div>
346
- `, contentNodes.currentContent);
347
- const canvas = document.createElement('canvas');
348
- plugins.qrcode.toCanvas(canvas, `BCD
349
- 001
350
- 1
351
- SCT
352
- ${this.letterData.content.invoiceData.billedBy.sepaConnection.bic}
353
- ${this.letterData.content.invoiceData.billedBy.name}
354
- ${this.letterData.content.invoiceData.billedBy.sepaConnection.iban}
355
- EUR${this.getTotalGross()}
356
- CHAR
357
- ${this.letterData.content.invoiceData.id}
358
- ${this.letterData.content.invoiceData.id}
359
- EPC QR Code`, (error) => {
360
- if (error)
361
- console.error(error);
362
- });
363
- contentNodes.currentContent.querySelector('.paymentCode').append(canvas);
364
- }
365
- };
366
- __decorate([
367
- property({
368
- type: Object,
369
- reflect: true,
370
- })
371
- ], DeContentInvoice.prototype, "letterData", void 0);
372
- __decorate([
373
- property({
374
- type: Object,
375
- reflect: true,
376
- })
377
- ], DeContentInvoice.prototype, "documentSettings", void 0);
378
- DeContentInvoice = __decorate([
379
- customElement('dedocument-contentinvoice')
380
- ], DeContentInvoice);
381
- export { DeContentInvoice };
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGludm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29udGVudGludm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7QUFFSCxPQUFPLEVBQ0wsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEVBQ0osYUFBYSxFQUViLEdBQUcsRUFDSCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFTN0MsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBaUIsU0FBUSxXQUFXO2FBQ2pDLFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7R0FVOUIsQUFWaUIsQ0FVaEI7SUFjRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBNkJILGdCQUFXLEdBQUcsR0FBVyxFQUFFO1lBQ2hDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztZQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzdELFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDcEQsQ0FBQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQztRQUVLLGtCQUFhLEdBQUcsR0FBVyxFQUFFO1lBQ2xDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztZQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxD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
@@ -1,27 +0,0 @@
1
- import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import * as plugins from '../plugins.js';
3
- export declare const defaultDocumentSettings: plugins.shared.interfaces.IDocumentSettings;
4
- declare global {
5
- interface HTMLElementTagNameMap {
6
- 'dedocument-dedocument': DeDocument;
7
- }
8
- }
9
- export declare class DeDocument extends DeesElement {
10
- static demo: () => TemplateResult<1>;
11
- format: 'a4';
12
- viewWidth: number;
13
- viewHeight: number;
14
- printMode: boolean;
15
- letterData: plugins.tsclass.business.ILetter;
16
- documentSettings: plugins.shared.interfaces.IDocumentSettings;
17
- constructor();
18
- static styles: import("@design.estate/dees-element").CSSResult[];
19
- render(): TemplateResult;
20
- firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
21
- latestDocumentSettings: plugins.shared.interfaces.IDocumentSettings;
22
- latestRenderedLetterData: plugins.tsclass.business.ILetter;
23
- cleanupStore: any[];
24
- renderDocument(): Promise<void>;
25
- updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
26
- private adjustDePageScaling;
27
- }
@@ -1 +0,0 @@
1
- export declare const demoFunc: () => import("@design.estate/dees-element").TemplateResult<1>;
@@ -1,6 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- import { html } from '@design.estate/dees-element';
3
- export const demoFunc = () => html `
4
- <dedocument-dedocument .format="${'a4'}" .letterData=${plugins.shared.demoLetter}></dedocument-dedocument>
5
- `;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb2N1bWVudC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBO2tDQUNBLElBQUksaUJBQWlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTtDQUMvRSxDQUFDIn0=