@design.estate/dees-document 1.6.9 → 2.0.2

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 (97) hide show
  1. package/dist_bundle/bundle.js +622 -605
  2. package/dist_bundle/bundle.js.map +4 -4
  3. package/dist_ts/00_commitinfo_data.js +1 -1
  4. package/dist_ts/classes.pdfservice.d.ts +3 -3
  5. package/dist_ts/classes.pdfservice.js +6 -3
  6. package/dist_ts/helpers.d.ts +1 -1
  7. package/dist_ts/helpers.js +2 -2
  8. package/dist_ts/paths.js +4 -2
  9. package/dist_ts/plugins.d.ts +2 -0
  10. package/dist_ts/plugins.js +3 -1
  11. package/dist_ts_shared/demoletter.d.ts +3 -3
  12. package/dist_ts_shared/demoletter.js +223 -192
  13. package/dist_ts_shared/index.d.ts +6 -7
  14. package/dist_ts_shared/index.js +10 -8
  15. package/dist_ts_shared/interfaces/document.d.ts +15 -2
  16. package/dist_ts_shared/interfaces/document.js +1 -1
  17. package/dist_ts_shared/translation.d.ts +79 -28
  18. package/dist_ts_shared/translation.js +121 -107
  19. package/dist_ts_web/00_commitinfo_data.js +2 -2
  20. package/dist_ts_web/elements/contentinvoice.js +4 -10
  21. package/dist_ts_web/elements/document.js +8 -18
  22. package/dist_ts_web/elements/letterheader.js +5 -12
  23. package/dist_ts_web/elements/page.js +10 -22
  24. package/dist_ts_web/elements/pagecontainer.js +4 -10
  25. package/dist_ts_web/elements/pagecontent.js +5 -12
  26. package/dist_ts_web/elements/pagefooter.js +6 -14
  27. package/dist_ts_web/elements/pageheader.js +6 -14
  28. package/dist_ts_web/elements/viewer.js +3 -8
  29. package/dist_ts_web/ts_shared/translation.d.ts +82 -0
  30. package/dist_ts_web/ts_shared/translation.js +134 -0
  31. package/dist_ts_web/ts_web/00_commitinfo_data.d.ts +8 -0
  32. package/dist_ts_web/ts_web/00_commitinfo_data.js +9 -0
  33. package/dist_ts_web/ts_web/elements/contentinvoice.d.ts +41 -0
  34. package/dist_ts_web/ts_web/elements/contentinvoice.js +466 -0
  35. package/dist_ts_web/ts_web/elements/document.d.ts +27 -0
  36. package/dist_ts_web/ts_web/elements/document.demo.d.ts +1 -0
  37. package/dist_ts_web/ts_web/elements/document.demo.js +9 -0
  38. package/dist_ts_web/ts_web/elements/document.js +306 -0
  39. package/dist_ts_web/ts_web/elements/index.d.ts +10 -0
  40. package/dist_ts_web/ts_web/elements/index.js +11 -0
  41. package/dist_ts_web/ts_web/elements/letterheader.d.ts +18 -0
  42. package/dist_ts_web/ts_web/elements/letterheader.js +224 -0
  43. package/dist_ts_web/ts_web/elements/page.d.ts +25 -0
  44. package/dist_ts_web/ts_web/elements/page.js +335 -0
  45. package/dist_ts_web/ts_web/elements/pagecontainer.d.ts +14 -0
  46. package/dist_ts_web/ts_web/elements/pagecontainer.js +114 -0
  47. package/dist_ts_web/ts_web/elements/pagecontent.d.ts +19 -0
  48. package/dist_ts_web/ts_web/elements/pagecontent.js +177 -0
  49. package/dist_ts_web/ts_web/elements/pagefooter.d.ts +17 -0
  50. package/dist_ts_web/ts_web/elements/pagefooter.js +234 -0
  51. package/dist_ts_web/ts_web/elements/pageheader.d.ts +17 -0
  52. package/dist_ts_web/ts_web/elements/pageheader.js +165 -0
  53. package/dist_ts_web/ts_web/elements/paymentcode.d.ts +19 -0
  54. package/dist_ts_web/ts_web/elements/paymentcode.js +162 -0
  55. package/dist_ts_web/ts_web/elements/viewer.d.ts +15 -0
  56. package/dist_ts_web/ts_web/elements/viewer.demo.d.ts +1 -0
  57. package/dist_ts_web/ts_web/elements/viewer.demo.js +9 -0
  58. package/dist_ts_web/ts_web/elements/viewer.js +150 -0
  59. package/dist_ts_web/ts_web/index.d.ts +1 -0
  60. package/dist_ts_web/ts_web/index.js +2 -0
  61. package/dist_ts_web/ts_web/pages/index.d.ts +2 -0
  62. package/dist_ts_web/ts_web/pages/index.js +3 -0
  63. package/dist_ts_web/ts_web/pages/page1.d.ts +1 -0
  64. package/dist_ts_web/ts_web/pages/page1.js +21 -0
  65. package/dist_ts_web/ts_web/pages/page2.d.ts +1 -0
  66. package/dist_ts_web/ts_web/pages/page2.js +18 -0
  67. package/dist_ts_web/ts_web/plugins.d.ts +9 -0
  68. package/dist_ts_web/ts_web/plugins.js +14 -0
  69. package/dist_ts_web/ts_web/style.d.ts +1 -0
  70. package/dist_ts_web/ts_web/style.js +38 -0
  71. package/dist_watch/bundle.js +20421 -12784
  72. package/dist_watch/bundle.js.map +4 -4
  73. package/license +2 -2
  74. package/package.json +21 -19
  75. package/readme.hints.md +40 -1
  76. package/readme.md +202 -125
  77. package/ts/00_commitinfo_data.ts +1 -1
  78. package/ts/classes.pdfservice.ts +15 -7
  79. package/ts/helpers.ts +1 -1
  80. package/ts/paths.ts +3 -1
  81. package/ts/plugins.ts +3 -0
  82. package/ts_web/00_commitinfo_data.ts +1 -1
  83. package/ts_web/elements/contentinvoice.ts +272 -250
  84. package/ts_web/elements/document.demo.ts +7 -4
  85. package/ts_web/elements/document.ts +68 -82
  86. package/ts_web/elements/index.ts +10 -9
  87. package/ts_web/elements/letterheader.ts +106 -39
  88. package/ts_web/elements/page.ts +106 -48
  89. package/ts_web/elements/pagecontainer.ts +14 -13
  90. package/ts_web/elements/pagecontent.ts +34 -53
  91. package/ts_web/elements/pagefooter.ts +125 -45
  92. package/ts_web/elements/pageheader.ts +22 -16
  93. package/ts_web/elements/paymentcode.ts +95 -0
  94. package/ts_web/elements/viewer.demo.ts +7 -4
  95. package/ts_web/elements/viewer.ts +26 -12
  96. package/ts_web/pages/page1.ts +10 -6
  97. package/ts_web/style.ts +34 -3
@@ -5,46 +5,45 @@ import {
5
5
  customElement,
6
6
  type TemplateResult,
7
7
  css,
8
- cssManager,
9
8
  unsafeCSS,
10
9
  domtools,
11
- } from '@design.estate/dees-element';
10
+ } from "@design.estate/dees-element";
12
11
 
13
- import * as plugins from '../plugins.js';
14
- import { dedocumentSharedStyle } from '../style.js';
12
+ import * as plugins from "../plugins.js";
13
+ import { dedocumentSharedStyle } from "../style.js";
15
14
 
16
15
  declare global {
17
16
  interface HTMLElementTagNameMap {
18
- 'dedocument-pagefooter': DePageFooter;
17
+ "dedocument-pagefooter": DePageFooter;
19
18
  }
20
19
  }
21
20
 
22
- @customElement('dedocument-pagefooter')
21
+ @customElement("dedocument-pagefooter")
23
22
  export class DePageFooter extends DeesElement {
24
23
  public static demo = () => html`
25
- <dedocument-pagefooter .format="${'a4'}"></dedocument-pagefooter>
24
+ <dedocument-pagefooter .format="${"a4"}"></dedocument-pagefooter>
26
25
  `;
27
26
 
28
27
  @property({
29
28
  type: Object,
30
29
  })
31
- letterData: plugins.tsclass.business.ILetter;
30
+ accessor letterData: plugins.tsclass.business.TLetter;
32
31
 
33
32
  @property({
34
33
  type: Object,
35
34
  reflect: true,
36
35
  })
37
- documentSettings: plugins.shared.interfaces.IDocumentSettings;
36
+ accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
38
37
 
39
38
  @property({
40
- type: Number
39
+ type: Number,
41
40
  })
42
- public pageNumber: number = 1;
41
+ accessor pageNumber: number = 1;
43
42
 
44
43
  @property({
45
- type: Number
44
+ type: Number,
46
45
  })
47
- public pageTotalNumber: number = 1;
46
+ accessor pageTotalNumber: number = 1;
48
47
 
49
48
  constructor() {
50
49
  super();
@@ -67,32 +66,36 @@ export class DePageFooter extends DeesElement {
67
66
  left: 0px;
68
67
  right: 0px;
69
68
  height: 130px;
70
- content: '';
71
- padding: 30px ${unsafeCSS(plugins.shared.rightMargin + 'px')} 10px ${unsafeCSS(plugins.shared.leftMargin + 'px')};
72
- grid-template-columns: calc(100% / 4) calc(100% / 4) calc(100% / 4) calc(100% / 4);
69
+ content: "";
70
+ padding: 30px var(--RIGHT-MARGIN) 10px var(--LEFT-MARGIN);
71
+ grid-template-columns: calc(100% / 4) calc(100% / 4) calc(100% / 4) calc(
72
+ 100% / 4
73
+ );
73
74
  grid-gap: 5px;
74
- border-top: 2px solid #e4002b;
75
+ border-top: 2px solid var(--footer-separator-bg-color, #e4002b);
75
76
  }
76
77
 
77
78
  .bottomstripe .pageNumber {
78
79
  position: absolute;
79
80
  top: 0px;
80
- right: ${unsafeCSS(plugins.shared.rightMargin + 'px')};
81
- background: #e4002b;
81
+ right: var(--RIGHT-MARGIN);
82
+ color: var(--footer-separator-fg-color, #ffffff);
83
+ background: var(--footer-separator-bg-color, #e4002b);
82
84
  padding: 3px;
83
85
  font-size: 9px;
84
86
  color: #fff;
85
87
  border-bottom-left-radius: 3px;
86
88
  border-bottom-right-radius: 3px;
87
89
  }
90
+
88
91
  .bottomstripe .documentTitle {
89
92
  position: absolute;
90
- top: -18px;
91
- right: ${unsafeCSS(plugins.shared.rightMargin + 'px')};
92
- background: #dddddd;
93
+ top: -19px;
94
+ right: var(--RIGHT-MARGIN);
95
+ color: var(--label-fg);
96
+ background: var(--label-bg);
93
97
  padding: 3px;
94
98
  font-size: 9px;
95
- color: #333;
96
99
  border-top-left-radius: 3px;
97
100
  border-top-right-radius: 3px;
98
101
  }
@@ -103,36 +106,113 @@ export class DePageFooter extends DeesElement {
103
106
  return html`
104
107
  <div class="bottomstripe">
105
108
  <div>
106
- <strong>${plugins.shared.translation.translate(this.documentSettings.languageCode, 'address', 'Address')}:</strong><br />
109
+ <strong
110
+ >${plugins.shared.translation.translate(
111
+ this.documentSettings.languageCode,
112
+ "footer@@address"
113
+ )}:</strong
114
+ ><br />
107
115
  ${this.letterData.from.name}<br />
108
- ${this.letterData.from.address.streetName} ${this.letterData.from.address.houseNumber}<br />
109
- ${this.letterData.from.address.postalCode} ${this.letterData.from.address.city}<br />
116
+ ${this.letterData.from.address.streetName}
117
+ ${this.letterData.from.address.houseNumber}<br />
118
+ ${this.letterData.from.address.postalCode}
119
+ ${this.letterData.from.address.city}<br />
110
120
  ${this.letterData.from.address.country}
111
121
  </div>
122
+ ${this.letterData.from.registrationDetails
123
+ ? html` <div>
124
+ <strong
125
+ >${plugins.shared.translation.translate(
126
+ this.documentSettings.languageCode,
127
+ "footer@@registration.label"
128
+ )}:</strong
129
+ ><br />
130
+ ${this.letterData.from.registrationDetails.registrationName}<br />
131
+ <i>reg-#:</i> ${this.letterData.from.registrationDetails
132
+ .registrationId}<br />
133
+ <i>vat-id:</i> ${this.letterData.from.registrationDetails.vatId}
134
+ </div>`
135
+ : null}
112
136
  <div>
113
- <strong>${plugins.shared.translation.translate(this.documentSettings.languageCode, 'registrationInfo', 'Registration Info')}:</strong><br />
114
- Amtsgericht Bremen<br />
115
- <i>reg-#:</i> HRB 35230 HB<br />
116
- <i>vat-id:</i> ${this.letterData.from.vatId}
137
+ <strong
138
+ >${plugins.shared.translation.translate(
139
+ this.documentSettings.languageCode,
140
+ "contact@@title"
141
+ )}:</strong
142
+ ><br />
143
+ <i
144
+ >${plugins.shared.translation.translate(
145
+ this.documentSettings.languageCode,
146
+ "contact@@mail"
147
+ )}:</i
148
+ >
149
+ ${this.letterData.from.email}<br />
150
+ <i
151
+ >${plugins.shared.translation.translate(
152
+ this.documentSettings.languageCode,
153
+ "contact@@phone"
154
+ )}:</i
155
+ >
156
+ ${this.letterData.from.phone}<br />
157
+ <i
158
+ >${plugins.shared.translation.translate(
159
+ this.documentSettings.languageCode,
160
+ "contact@@fax"
161
+ )}:</i
162
+ >
163
+ ${this.letterData.from.fax}
117
164
  </div>
118
165
  <div>
119
- <strong>${plugins.shared.translation.translate(this.documentSettings.languageCode, 'contactInfo', 'Contact Info')}:</strong><br />
120
- <i>email:</i> ${this.letterData.from.email}<br />
121
- <i>phone:</i> ${this.letterData.from.phone}<br />
122
- <i>fax:</i> ${this.letterData.from.fax}
166
+ <strong
167
+ >${plugins.shared.translation.translate(
168
+ this.documentSettings.languageCode,
169
+ "bankConnection@@title"
170
+ )}:</strong
171
+ ><br />
172
+ <i
173
+ >${plugins.shared.translation.translate(
174
+ this.documentSettings.languageCode,
175
+ "bankConnection@@bank.accountHolder"
176
+ )}:</i
177
+ >
178
+ ${this.letterData?.from?.name}<br />
179
+ <i
180
+ >${plugins.shared.translation.translate(
181
+ this.documentSettings.languageCode,
182
+ "bankConnection@@bank.institution"
183
+ )}:</i
184
+ >
185
+ ${this.letterData?.from?.sepaConnection?.institution}<br />
186
+ <i
187
+ >${plugins.shared.translation.translate(
188
+ this.documentSettings.languageCode,
189
+ "bankConnection@@bank.iban"
190
+ )}:</i
191
+ >
192
+ ${this.letterData?.from?.sepaConnection?.iban}<br />
193
+ <i
194
+ >${plugins.shared.translation.translate(
195
+ this.documentSettings.languageCode,
196
+ "bankConnection@@bank.bic"
197
+ )}:</i
198
+ >
199
+ ${this.letterData?.from?.sepaConnection?.bic}<br />
123
200
  </div>
124
- <div>
125
- <strong>${plugins.shared.translation.translate(this.documentSettings.languageCode, 'bankConnection', 'Bank Connection')}:</strong><br />
126
- <i>beneficiary:</i> ${this.letterData?.from?.name}<br />
127
- <i>institution:</i> ${this.letterData?.from?.sepaConnection?.institution}<br />
128
- <i>iban:</i> ${this.letterData?.from?.sepaConnection?.iban}<br />
129
- <i>bic:</i> ${this.letterData?.from?.sepaConnection?.bic}<br />
201
+ <div class="documentTitle">
202
+ <b>${this.letterData?.subject}</b>
203
+ </div>
204
+ <div class="pageNumber">
205
+ ${plugins.shared.translation.translate(
206
+ this.documentSettings.languageCode,
207
+ "footer@@page"
208
+ )}
209
+ ${this.pageNumber}
210
+ ${plugins.shared.translation.translate(
211
+ this.documentSettings.languageCode,
212
+ "footer@@pageOf"
213
+ )}
214
+ ${this.pageTotalNumber}
130
215
  </div>
131
- <div class="documentTitle">Subject: <b>${this.letterData?.subject}</b>${(() => {
132
- const uidString = html`/ Document-UID: <b>${html`<a href="https://uid.signature.digital/">https://uid.signature.digital/</a>`}</b>`;
133
- return ``;
134
- })()}</div>
135
- <div class="pageNumber">page ${this.pageNumber} of ${this.pageTotalNumber}</div>
136
216
  </div>
137
217
  `;
138
218
  }
@@ -7,44 +7,44 @@ import {
7
7
  css,
8
8
  cssManager,
9
9
  unsafeCSS,
10
- domtools
11
- } from '@design.estate/dees-element';
10
+ domtools,
11
+ } from "@design.estate/dees-element";
12
12
 
13
- import * as plugins from '../plugins.js';
14
- import { dedocumentSharedStyle } from '../style.js';
13
+ import * as plugins from "../plugins.js";
14
+ import { dedocumentSharedStyle } from "../style.js";
15
15
 
16
16
  declare global {
17
17
  interface HTMLElementTagNameMap {
18
- 'dedocument-pageheader': DePageHeader;
18
+ "dedocument-pageheader": DePageHeader;
19
19
  }
20
20
  }
21
21
 
22
- @customElement('dedocument-pageheader')
22
+ @customElement("dedocument-pageheader")
23
23
  export class DePageHeader extends DeesElement {
24
24
  public static demo = () => html`
25
- <dedocument-pageheader .format="${'a4'}"></dedocument-pageheader>
25
+ <dedocument-pageheader .format="${"a4"}"></dedocument-pageheader>
26
26
  `;
27
27
 
28
28
  @property({
29
29
  type: Object,
30
30
  })
31
- public letterData: plugins.tsclass.business.ILetter = null;
31
+ accessor letterData: plugins.tsclass.business.TLetter = null;
32
32
 
33
33
  @property({
34
34
  type: Object,
35
35
  reflect: true,
36
36
  })
37
- documentSettings: plugins.shared.interfaces.IDocumentSettings;
37
+ accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
38
38
 
39
39
  @property({
40
40
  type: Number,
41
41
  })
42
- public pageNumber: number = 1;
42
+ accessor pageNumber: number = 1;
43
43
 
44
44
  @property({
45
45
  type: Number,
46
46
  })
47
- public pageTotalNumber: number = 1;
47
+ accessor pageTotalNumber: number = 1;
48
48
 
49
49
  constructor() {
50
50
  super();
@@ -75,7 +75,7 @@ export class DePageHeader extends DeesElement {
75
75
  overflow: hidden;
76
76
  top: 130px;
77
77
  left: auto;
78
- right: ${unsafeCSS(plugins.shared.rightMargin + 'px')};
78
+ right: var(--RIGHT-MARGIN);
79
79
  height: 20px;
80
80
  line-height: 20px;
81
81
  color: #333;
@@ -86,8 +86,8 @@ export class DePageHeader extends DeesElement {
86
86
  bottom: 10px;
87
87
  height: 25px;
88
88
  left: auto;
89
- right: ${unsafeCSS(plugins.shared.rightMargin + 'px')};
90
- font-family: 'Courier New', Courier, monospace;
89
+ right: var(--RIGHT-MARGIN);
90
+ font-family: "Courier New", Courier, monospace;
91
91
  }
92
92
  .topstripe .logo img {
93
93
  position: relative;
@@ -100,10 +100,16 @@ export class DePageHeader extends DeesElement {
100
100
  return html`
101
101
  <div class="topstripe">
102
102
  <div class="logo">
103
- No logo set!
103
+ ${plugins.shared.translation.translate(
104
+ this.documentSettings.languageCode,
105
+ "empty.logo"
106
+ )}
104
107
  </div>
105
108
  </div>
106
- <div class="topstripe2">${this.letterData?.from?.description || '[no letterData.from.description set]'}</div>
109
+ <div class="topstripe2">
110
+ ${this.letterData?.from?.description ||
111
+ "[no letterData.from.description set]"}
112
+ </div>
107
113
  `;
108
114
  }
109
115
  }
@@ -0,0 +1,95 @@
1
+ import {
2
+ css,
3
+ customElement,
4
+ DeesElement,
5
+ html,
6
+ property,
7
+ query,
8
+ type TemplateResult,
9
+ } from "@design.estate/dees-element";
10
+ import * as plugins from "../plugins.js";
11
+
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ "dedocument-paymentcode": DedocumentPaymentCode;
15
+ }
16
+ }
17
+
18
+ @customElement("dedocument-paymentcode")
19
+ export class DedocumentPaymentCode extends DeesElement {
20
+ public static styles = [
21
+ css`
22
+ :host {
23
+ text-align: center;
24
+ width: 100px;
25
+ height: 100px;
26
+ }
27
+
28
+ canvas {
29
+ width: inherit !important;
30
+ height: inherit !important;
31
+ }
32
+ `,
33
+ ];
34
+
35
+ @query("canvas")
36
+ accessor canvasEl!: HTMLCanvasElement;
37
+
38
+ @property()
39
+ accessor bic: string;
40
+
41
+ @property()
42
+ accessor name: string;
43
+
44
+ @property()
45
+ accessor iban: string;
46
+
47
+ @property()
48
+ accessor currency: string;
49
+
50
+ @property({ type: Number })
51
+ accessor totalGross: number;
52
+
53
+ @property()
54
+ accessor reference: string;
55
+
56
+ private updateQRCode(): void {
57
+ if (!this.canvasEl) return;
58
+
59
+ plugins.qrcode.toCanvas(
60
+ this.canvasEl,
61
+ `BCD
62
+ 001
63
+ 1
64
+ SCT
65
+ ${this.bic}
66
+ ${this.name}
67
+ ${this.iban}
68
+ ${this.currency}${this.totalGross?.toFixed?.(2)}
69
+
70
+ ${this.reference}`,
71
+ (error) => {
72
+ if (error) console.error(error);
73
+ }
74
+ );
75
+ }
76
+
77
+ public override update(
78
+ changedProperties: Parameters<DeesElement["update"]>[0]
79
+ ): void {
80
+ super.update(changedProperties);
81
+ this.updateQRCode();
82
+ }
83
+
84
+ public render(): TemplateResult {
85
+ const allDataAvailable =
86
+ typeof this.bic === "string" &&
87
+ typeof this.name === "string" &&
88
+ typeof this.iban === "string" &&
89
+ typeof this.currency === "string" &&
90
+ typeof this.totalGross === "number" &&
91
+ typeof this.reference === "string";
92
+
93
+ return allDataAvailable ? html`<canvas></canvas>` : null;
94
+ }
95
+ }
@@ -1,6 +1,9 @@
1
- import { html } from '@design.estate/dees-element';
2
- import * as plugins from '../plugins.js';
1
+ import { html } from "@design.estate/dees-element";
2
+ import * as plugins from "../plugins.js";
3
3
 
4
4
  export const demoFunc = () => html`
5
- <dedocument-viewer .letterData=${plugins.shared.demoLetter} .documentSettings=${plugins.shared.demoDocumentSettings}></dedocument-viewer>
6
- `;
5
+ <dedocument-viewer
6
+ .letterData=${plugins.shared.demoLetter}
7
+ .documentSettings=${plugins.shared.demoDocumentSettings}
8
+ ></dedocument-viewer>
9
+ `;
@@ -1,15 +1,22 @@
1
- import * as plugins from '../plugins.js';
1
+ import * as plugins from "../plugins.js";
2
2
 
3
- import { DeesElement, css, cssManager, customElement, html, property } from '@design.estate/dees-element';
4
- import { demoFunc } from './viewer.demo.js';
3
+ import {
4
+ DeesElement,
5
+ css,
6
+ cssManager,
7
+ customElement,
8
+ html,
9
+ property,
10
+ } from "@design.estate/dees-element";
11
+ import { demoFunc } from "./viewer.demo.js";
5
12
 
6
13
  declare global {
7
14
  interface HTMLElementTagNameMap {
8
- 'dedocument-viewer': DeDocumentViewer;
15
+ "dedocument-viewer": DeDocumentViewer;
9
16
  }
10
17
  }
11
18
 
12
- @customElement('dedocument-viewer')
19
+ @customElement("dedocument-viewer")
13
20
  export class DeDocumentViewer extends DeesElement {
14
21
  // DEMO
15
22
  public static demo = demoFunc;
@@ -19,13 +26,13 @@ export class DeDocumentViewer extends DeesElement {
19
26
  type: Object,
20
27
  reflect: true,
21
28
  })
22
- public letterData: plugins.tsclass.business.ILetter = null;
29
+ accessor letterData: plugins.tsclass.business.TLetter = null;
23
30
 
24
31
  @property({
25
32
  type: Object,
26
33
  reflect: true,
27
34
  })
28
- public documentSettings: plugins.shared.interfaces.IDocumentSettings;
35
+ accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
29
36
 
30
37
  public static styles = [
31
38
  cssManager.defaultStyles,
@@ -34,7 +41,7 @@ export class DeDocumentViewer extends DeesElement {
34
41
  position: relative;
35
42
  height: 100%;
36
43
  width: 100%;
37
- background: ${cssManager.bdTheme('#eeeeeb', '#111')};
44
+ background: ${cssManager.bdTheme("#eeeeeb", "#111")};
38
45
  }
39
46
  .controls {
40
47
  top: 0px;
@@ -43,7 +50,7 @@ export class DeDocumentViewer extends DeesElement {
43
50
  position: absolute;
44
51
  height: 32px;
45
52
  width: 100%;
46
- background: ${cssManager.bdTheme('#eeeeeb', '#111111ee')};
53
+ background: ${cssManager.bdTheme("#eeeeeb", "#111111ee")};
47
54
  box-shadow: 0px 2px 8px 0px #000000;
48
55
  }
49
56
  .controlsShadow {
@@ -77,7 +84,12 @@ export class DeDocumentViewer extends DeesElement {
77
84
  <div class="maincontainer">
78
85
  <div class="viewport">
79
86
  ${this.letterData
80
- ? html` <dedocument-dedocument .letterData=${this.letterData} .documentSettings=${this.documentSettings}></dedocument-dedocument> `
87
+ ? html`
88
+ <dedocument-dedocument
89
+ .letterData=${this.letterData}
90
+ .documentSettings=${this.documentSettings}
91
+ ></dedocument-dedocument>
92
+ `
81
93
  : html``}
82
94
  </div>
83
95
  <div class="controls"></div>
@@ -85,9 +97,11 @@ export class DeDocumentViewer extends DeesElement {
85
97
  `;
86
98
  };
87
99
 
88
- public updated = (changedProperties: Map<string | number | symbol, unknown>) => {
100
+ public updated = (
101
+ changedProperties: Map<string | number | symbol, unknown>
102
+ ) => {
89
103
  super.updated(changedProperties);
90
- if (changedProperties.has('letterData')) {
104
+ if (changedProperties.has("letterData")) {
91
105
  }
92
106
  };
93
107
  }
@@ -1,5 +1,5 @@
1
- import * as plugins from '../plugins.js';
2
- import { html } from '@design.estate/dees-element';
1
+ import * as plugins from "../plugins.js";
2
+ import { html } from "@design.estate/dees-element";
3
3
 
4
4
  export const page1 = () => html`
5
5
  <style>
@@ -7,11 +7,15 @@ export const page1 = () => html`
7
7
  margin: 16px;
8
8
  }
9
9
  </style>
10
- <dedocument-dedocument .printMode=${false} letterData=${plugins.smartjson.stringifyBase64({
10
+ <dedocument-dedocument
11
+ .printMode=${false}
12
+ letterData=${plugins.smartjson.stringifyBase64({
11
13
  ...plugins.shared.demoLetter,
12
14
  from: {
13
15
  ...plugins.shared.demoLetter.from,
14
- description: 'a string set via stringified JSON'
15
- }
16
- } as plugins.tsclass.business.ILetter)}> </dedocument-dedocument>
16
+ description: "a string set via stringified JSON",
17
+ },
18
+ } as plugins.tsclass.finance.TInvoice)}
19
+ >
20
+ </dedocument-dedocument>
17
21
  `;
package/ts_web/style.ts CHANGED
@@ -1,7 +1,38 @@
1
- import { css } from '@design.estate/dees-element';
1
+ import { css } from "@design.estate/dees-element";
2
+ import * as plugins from "./plugins.js";
2
3
 
3
4
  export const dedocumentSharedStyle = css`
4
5
  :host {
5
- font-family: 'Exo 2';
6
+ /* Primitive colors */
7
+ --color-light: #ffffff;
8
+ --color-dark: #333333;
9
+ --color-grey: #dddddd;
10
+ --color-grey-100: #dddddd;
11
+ --color-red: #e4002b;
12
+
13
+ /* Semantic colors */
14
+ --color-primary-fg: var(--theme-color-primary-fg, var(--color-dark));
15
+ --color-primary-bg: var(--theme-color-primary-bg, var(--color-light));
16
+ --color-accent-fg: var(--theme-color-accent-fg, var(--color-light));
17
+ --color-accent-bg: var(--theme-color-accent-bg, var(--color-red));
18
+
19
+ /* Functional colors */
20
+ --text-fg-color: var(--color-primary-fg);
21
+ --text-bg-color: var(--color-primary-bg);
22
+ --label-fg: var(--color-dark);
23
+ --label-bg: var(--color-grey);
24
+ --footer-separator-bg-color: var(--color-accent-bg);
25
+ --footer-separator-fg-color: var(--color-light);
26
+
27
+ /* Functional variables */
28
+ --DPI-FACTOR: ${plugins.shared.cmToPx(1)}px;
29
+ --RIGHT-MARGIN: ${plugins.shared.cmToPx(2)}px;
30
+ --LEFT-MARGIN: ${plugins.shared.cmToPx(2)}px;
31
+ --text-font-family: var(--theme-text-font-family, "Exo 2");
32
+ --text-font-size: var(--theme-text-font-size, 12px);
33
+
34
+ color: var(--text-fg-color);
35
+ font-family: var(--text-font-family);
36
+ font-size: var(--text-font-size);
6
37
  }
7
- `;
38
+ `;