@design.estate/dees-document 1.6.9 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +622 -605
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.pdfservice.d.ts +3 -3
- package/dist_ts/classes.pdfservice.js +6 -3
- package/dist_ts/helpers.d.ts +1 -1
- package/dist_ts/helpers.js +2 -2
- package/dist_ts/paths.js +4 -2
- package/dist_ts/plugins.d.ts +2 -0
- package/dist_ts/plugins.js +3 -1
- package/dist_ts_shared/demoletter.d.ts +3 -3
- package/dist_ts_shared/demoletter.js +223 -192
- package/dist_ts_shared/index.d.ts +6 -7
- package/dist_ts_shared/index.js +10 -8
- package/dist_ts_shared/interfaces/document.d.ts +15 -2
- package/dist_ts_shared/interfaces/document.js +1 -1
- package/dist_ts_shared/translation.d.ts +79 -28
- package/dist_ts_shared/translation.js +121 -107
- package/dist_ts_web/ts_shared/translation.d.ts +82 -0
- package/dist_ts_web/ts_shared/translation.js +134 -0
- package/dist_ts_web/{00_commitinfo_data.js → ts_web/00_commitinfo_data.js} +2 -2
- package/dist_ts_web/{elements → ts_web/elements}/contentinvoice.d.ts +12 -6
- package/dist_ts_web/ts_web/elements/contentinvoice.js +466 -0
- package/dist_ts_web/{elements → ts_web/elements}/document.d.ts +10 -10
- package/dist_ts_web/ts_web/elements/document.demo.js +9 -0
- package/dist_ts_web/ts_web/elements/document.js +306 -0
- package/dist_ts_web/ts_web/elements/index.d.ts +10 -0
- package/dist_ts_web/ts_web/elements/index.js +11 -0
- package/dist_ts_web/ts_web/elements/letterheader.d.ts +18 -0
- package/dist_ts_web/ts_web/elements/letterheader.js +224 -0
- package/dist_ts_web/ts_web/elements/page.d.ts +25 -0
- package/dist_ts_web/ts_web/elements/page.js +335 -0
- package/dist_ts_web/{elements → ts_web/elements}/pagecontainer.d.ts +4 -4
- package/dist_ts_web/ts_web/elements/pagecontainer.js +114 -0
- package/dist_ts_web/{elements → ts_web/elements}/pagecontent.d.ts +7 -6
- package/dist_ts_web/ts_web/elements/pagecontent.js +177 -0
- package/dist_ts_web/ts_web/elements/pagefooter.d.ts +17 -0
- package/dist_ts_web/ts_web/elements/pagefooter.js +234 -0
- package/dist_ts_web/ts_web/elements/pageheader.d.ts +17 -0
- package/dist_ts_web/ts_web/elements/pageheader.js +165 -0
- package/dist_ts_web/ts_web/elements/paymentcode.d.ts +19 -0
- package/dist_ts_web/ts_web/elements/paymentcode.js +162 -0
- package/dist_ts_web/{elements → ts_web/elements}/viewer.d.ts +5 -5
- package/dist_ts_web/ts_web/elements/viewer.demo.js +9 -0
- package/dist_ts_web/ts_web/elements/viewer.js +150 -0
- package/dist_ts_web/{index.js → ts_web/index.js} +1 -1
- package/dist_ts_web/{pages → ts_web/pages}/index.js +1 -1
- package/dist_ts_web/ts_web/pages/page1.js +21 -0
- package/dist_ts_web/{pages → ts_web/pages}/page2.js +1 -1
- package/dist_ts_web/ts_web/plugins.js +14 -0
- package/dist_ts_web/ts_web/style.js +38 -0
- package/license +2 -2
- package/package.json +21 -19
- package/readme.hints.md +40 -1
- package/readme.md +202 -125
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.pdfservice.ts +15 -7
- package/ts/helpers.ts +1 -1
- package/ts/paths.ts +3 -1
- package/ts/plugins.ts +3 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/contentinvoice.ts +272 -250
- package/ts_web/elements/document.demo.ts +7 -4
- package/ts_web/elements/document.ts +68 -82
- package/ts_web/elements/index.ts +10 -9
- package/ts_web/elements/letterheader.ts +106 -39
- package/ts_web/elements/page.ts +106 -48
- package/ts_web/elements/pagecontainer.ts +14 -13
- package/ts_web/elements/pagecontent.ts +34 -53
- package/ts_web/elements/pagefooter.ts +125 -45
- package/ts_web/elements/pageheader.ts +22 -16
- package/ts_web/elements/paymentcode.ts +95 -0
- package/ts_web/elements/viewer.demo.ts +7 -4
- package/ts_web/elements/viewer.ts +26 -12
- package/ts_web/pages/page1.ts +10 -6
- package/ts_web/style.ts +34 -3
- package/dist_ts_shared/interfaces/translation.d.ts +0 -19
- package/dist_ts_shared/interfaces/translation.js +0 -2
- package/dist_ts_web/elements/contentinvoice.js +0 -388
- package/dist_ts_web/elements/document.demo.js +0 -6
- package/dist_ts_web/elements/document.js +0 -272
- package/dist_ts_web/elements/index.d.ts +0 -9
- package/dist_ts_web/elements/index.js +0 -10
- package/dist_ts_web/elements/letterheader.d.ts +0 -16
- package/dist_ts_web/elements/letterheader.js +0 -124
- package/dist_ts_web/elements/page.d.ts +0 -25
- package/dist_ts_web/elements/page.js +0 -219
- package/dist_ts_web/elements/pagecontainer.js +0 -67
- package/dist_ts_web/elements/pagecontent.js +0 -143
- package/dist_ts_web/elements/pagefooter.d.ts +0 -17
- package/dist_ts_web/elements/pagefooter.js +0 -138
- package/dist_ts_web/elements/pageheader.d.ts +0 -17
- package/dist_ts_web/elements/pageheader.js +0 -109
- package/dist_ts_web/elements/viewer.demo.js +0 -6
- package/dist_ts_web/elements/viewer.js +0 -101
- package/dist_ts_web/pages/page1.js +0 -17
- package/dist_ts_web/plugins.js +0 -14
- package/dist_ts_web/style.js +0 -7
- package/dist_watch/bundle.js +0 -40318
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -25
- /package/dist_ts_web/{00_commitinfo_data.d.ts → ts_web/00_commitinfo_data.d.ts} +0 -0
- /package/dist_ts_web/{elements → ts_web/elements}/document.demo.d.ts +0 -0
- /package/dist_ts_web/{elements → ts_web/elements}/viewer.demo.d.ts +0 -0
- /package/dist_ts_web/{index.d.ts → ts_web/index.d.ts} +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/index.d.ts +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/page1.d.ts +0 -0
- /package/dist_ts_web/{pages → ts_web/pages}/page2.d.ts +0 -0
- /package/dist_ts_web/{plugins.d.ts → ts_web/plugins.d.ts} +0 -0
- /package/dist_ts_web/{style.d.ts → ts_web/style.d.ts} +0 -0
|
@@ -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
|
|
10
|
+
} from "@design.estate/dees-element";
|
|
12
11
|
|
|
13
|
-
import * as plugins from
|
|
14
|
-
import { dedocumentSharedStyle } from
|
|
12
|
+
import * as plugins from "../plugins.js";
|
|
13
|
+
import { dedocumentSharedStyle } from "../style.js";
|
|
15
14
|
|
|
16
15
|
declare global {
|
|
17
16
|
interface HTMLElementTagNameMap {
|
|
18
|
-
|
|
17
|
+
"dedocument-pagefooter": DePageFooter;
|
|
19
18
|
}
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
@customElement(
|
|
21
|
+
@customElement("dedocument-pagefooter")
|
|
23
22
|
export class DePageFooter extends DeesElement {
|
|
24
23
|
public static demo = () => html`
|
|
25
|
-
<dedocument-pagefooter .format="${
|
|
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.
|
|
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
|
-
|
|
41
|
+
accessor pageNumber: number = 1;
|
|
43
42
|
|
|
44
43
|
@property({
|
|
45
|
-
type: Number
|
|
44
|
+
type: Number,
|
|
46
45
|
})
|
|
47
|
-
|
|
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
|
|
72
|
-
grid-template-columns: calc(100% / 4) calc(100% / 4) calc(100% / 4) calc(
|
|
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:
|
|
81
|
-
|
|
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: -
|
|
91
|
-
right:
|
|
92
|
-
|
|
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
|
|
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}
|
|
109
|
-
${this.letterData.from.address.
|
|
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
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
|
10
|
+
domtools,
|
|
11
|
+
} from "@design.estate/dees-element";
|
|
12
12
|
|
|
13
|
-
import * as plugins from
|
|
14
|
-
import { dedocumentSharedStyle } from
|
|
13
|
+
import * as plugins from "../plugins.js";
|
|
14
|
+
import { dedocumentSharedStyle } from "../style.js";
|
|
15
15
|
|
|
16
16
|
declare global {
|
|
17
17
|
interface HTMLElementTagNameMap {
|
|
18
|
-
|
|
18
|
+
"dedocument-pageheader": DePageHeader;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
@customElement(
|
|
22
|
+
@customElement("dedocument-pageheader")
|
|
23
23
|
export class DePageHeader extends DeesElement {
|
|
24
24
|
public static demo = () => html`
|
|
25
|
-
<dedocument-pageheader .format="${
|
|
25
|
+
<dedocument-pageheader .format="${"a4"}"></dedocument-pageheader>
|
|
26
26
|
`;
|
|
27
27
|
|
|
28
28
|
@property({
|
|
29
29
|
type: Object,
|
|
30
30
|
})
|
|
31
|
-
|
|
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
|
-
|
|
42
|
+
accessor pageNumber: number = 1;
|
|
43
43
|
|
|
44
44
|
@property({
|
|
45
45
|
type: Number,
|
|
46
46
|
})
|
|
47
|
-
|
|
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:
|
|
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:
|
|
90
|
-
font-family:
|
|
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
|
-
|
|
103
|
+
${plugins.shared.translation.translate(
|
|
104
|
+
this.documentSettings.languageCode,
|
|
105
|
+
"empty.logo"
|
|
106
|
+
)}
|
|
104
107
|
</div>
|
|
105
108
|
</div>
|
|
106
|
-
<div class="topstripe2"
|
|
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
|
|
2
|
-
import * as plugins from
|
|
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
|
|
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
|
|
1
|
+
import * as plugins from "../plugins.js";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
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
|
-
|
|
15
|
+
"dedocument-viewer": DeDocumentViewer;
|
|
9
16
|
}
|
|
10
17
|
}
|
|
11
18
|
|
|
12
|
-
@customElement(
|
|
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
|
-
|
|
29
|
+
accessor letterData: plugins.tsclass.business.TLetter = null;
|
|
23
30
|
|
|
24
31
|
@property({
|
|
25
32
|
type: Object,
|
|
26
33
|
reflect: true,
|
|
27
34
|
})
|
|
28
|
-
|
|
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(
|
|
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(
|
|
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`
|
|
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 = (
|
|
100
|
+
public updated = (
|
|
101
|
+
changedProperties: Map<string | number | symbol, unknown>
|
|
102
|
+
) => {
|
|
89
103
|
super.updated(changedProperties);
|
|
90
|
-
if (changedProperties.has(
|
|
104
|
+
if (changedProperties.has("letterData")) {
|
|
91
105
|
}
|
|
92
106
|
};
|
|
93
107
|
}
|
package/ts_web/pages/page1.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as plugins from
|
|
2
|
-
import { html } from
|
|
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
|
|
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:
|
|
15
|
-
}
|
|
16
|
-
} as plugins.tsclass.
|
|
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
|
|
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
|
-
|
|
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
|
+
`;
|
|
@@ -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
|
-
}
|