@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.
- 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/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/contentinvoice.js +4 -10
- package/dist_ts_web/elements/document.js +8 -18
- package/dist_ts_web/elements/letterheader.js +5 -12
- package/dist_ts_web/elements/page.js +10 -22
- package/dist_ts_web/elements/pagecontainer.js +4 -10
- package/dist_ts_web/elements/pagecontent.js +5 -12
- package/dist_ts_web/elements/pagefooter.js +6 -14
- package/dist_ts_web/elements/pageheader.js +6 -14
- package/dist_ts_web/elements/viewer.js +3 -8
- 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/ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/ts_web/elements/contentinvoice.d.ts +41 -0
- package/dist_ts_web/ts_web/elements/contentinvoice.js +466 -0
- package/dist_ts_web/ts_web/elements/document.d.ts +27 -0
- package/dist_ts_web/ts_web/elements/document.demo.d.ts +1 -0
- 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/ts_web/elements/pagecontainer.d.ts +14 -0
- package/dist_ts_web/ts_web/elements/pagecontainer.js +114 -0
- package/dist_ts_web/ts_web/elements/pagecontent.d.ts +19 -0
- 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/ts_web/elements/viewer.d.ts +15 -0
- package/dist_ts_web/ts_web/elements/viewer.demo.d.ts +1 -0
- 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/ts_web/index.d.ts +1 -0
- package/dist_ts_web/ts_web/index.js +2 -0
- package/dist_ts_web/ts_web/pages/index.d.ts +2 -0
- package/dist_ts_web/ts_web/pages/index.js +3 -0
- package/dist_ts_web/ts_web/pages/page1.d.ts +1 -0
- package/dist_ts_web/ts_web/pages/page1.js +21 -0
- package/dist_ts_web/ts_web/pages/page2.d.ts +1 -0
- package/dist_ts_web/ts_web/pages/page2.js +18 -0
- package/dist_ts_web/ts_web/plugins.d.ts +9 -0
- package/dist_ts_web/ts_web/plugins.js +14 -0
- package/dist_ts_web/ts_web/style.d.ts +1 -0
- package/dist_ts_web/ts_web/style.js +38 -0
- package/dist_watch/bundle.js +20421 -12784
- package/dist_watch/bundle.js.map +4 -4
- 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/ts_web/elements/page.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as tsclass from
|
|
1
|
+
import * as tsclass from "@tsclass/tsclass";
|
|
2
2
|
import {
|
|
3
3
|
DeesElement,
|
|
4
4
|
property,
|
|
@@ -6,66 +6,66 @@ import {
|
|
|
6
6
|
customElement,
|
|
7
7
|
type TemplateResult,
|
|
8
8
|
css,
|
|
9
|
-
cssManager,
|
|
10
|
-
unsafeCSS,
|
|
11
9
|
domtools,
|
|
12
|
-
} from
|
|
10
|
+
} from "@design.estate/dees-element";
|
|
13
11
|
|
|
14
|
-
import * as plugins from
|
|
12
|
+
import * as plugins from "../plugins.js";
|
|
15
13
|
|
|
16
|
-
import { defaultDocumentSettings } from
|
|
14
|
+
import { defaultDocumentSettings } from "./document.js";
|
|
17
15
|
|
|
18
16
|
declare global {
|
|
19
17
|
interface HTMLElementTagNameMap {
|
|
20
|
-
|
|
18
|
+
"dedocument-page": DePage;
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
|
|
24
|
-
@customElement(
|
|
22
|
+
@customElement("dedocument-page")
|
|
25
23
|
export class DePage extends DeesElement {
|
|
26
|
-
public static demo = () =>
|
|
24
|
+
public static demo = () =>
|
|
25
|
+
html` <dedocument-page .format="${"a4"}"></dedocument-page> `;
|
|
27
26
|
|
|
28
27
|
@property({
|
|
29
28
|
type: Number,
|
|
30
29
|
})
|
|
31
|
-
viewWidth: number = null;
|
|
30
|
+
accessor viewWidth: number = null;
|
|
32
31
|
|
|
33
32
|
@property({
|
|
34
33
|
type: Number,
|
|
35
34
|
})
|
|
36
|
-
viewHeight: number = null;
|
|
35
|
+
accessor viewHeight: number = null;
|
|
37
36
|
|
|
38
37
|
@property({
|
|
39
38
|
type: String,
|
|
40
39
|
})
|
|
41
|
-
|
|
40
|
+
accessor format: "a4" = "a4";
|
|
42
41
|
|
|
43
42
|
@property({
|
|
44
43
|
type: Number,
|
|
45
44
|
})
|
|
46
|
-
|
|
45
|
+
accessor pageNumber: number = 1;
|
|
47
46
|
|
|
48
47
|
@property({
|
|
49
48
|
type: Number,
|
|
50
49
|
})
|
|
51
|
-
|
|
50
|
+
accessor pageTotalNumber: number = 1;
|
|
52
51
|
|
|
53
52
|
@property({
|
|
54
53
|
type: Object,
|
|
55
54
|
})
|
|
56
|
-
|
|
55
|
+
accessor letterData: tsclass.business.TLetter = null;
|
|
57
56
|
|
|
58
57
|
@property({
|
|
59
58
|
type: Boolean,
|
|
60
59
|
reflect: true,
|
|
61
60
|
})
|
|
62
|
-
printMode = false;
|
|
61
|
+
accessor printMode = false;
|
|
63
62
|
|
|
64
63
|
@property({
|
|
65
64
|
type: Object,
|
|
66
65
|
reflect: true,
|
|
67
66
|
})
|
|
68
|
-
|
|
67
|
+
accessor documentSettings: plugins.shared.interfaces.IDocumentSettings =
|
|
68
|
+
defaultDocumentSettings;
|
|
69
69
|
|
|
70
70
|
constructor() {
|
|
71
71
|
super();
|
|
@@ -100,26 +100,68 @@ export class DePage extends DeesElement {
|
|
|
100
100
|
align-items: center;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
.topInfo {
|
|
104
|
-
position: absolute;
|
|
105
|
-
top: 60px;
|
|
106
|
-
left: 40px;
|
|
107
|
-
color: red;
|
|
108
|
-
transform: rotate(-5deg);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
103
|
.bigDraftText {
|
|
112
104
|
transform: rotate(-45deg);
|
|
113
105
|
font-size: 200px;
|
|
114
106
|
opacity: 0.05;
|
|
115
107
|
}
|
|
108
|
+
|
|
109
|
+
.foldMark__wrapper {
|
|
110
|
+
z-index: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.foldMark {
|
|
114
|
+
position: absolute;
|
|
115
|
+
border-top: 1px solid #d3d3d3;
|
|
116
|
+
width: 10px;
|
|
117
|
+
left: 15px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.foldMark--start {
|
|
121
|
+
top: calc(var(--DPI-FACTOR) * 8.7);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.foldMark--center {
|
|
125
|
+
top: calc(var(--DPI-FACTOR) * 14.85);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.foldMark--end {
|
|
129
|
+
top: calc(var(--DPI-FACTOR) * 19.2);
|
|
130
|
+
}
|
|
116
131
|
`,
|
|
117
132
|
];
|
|
118
133
|
|
|
119
134
|
public render(): TemplateResult {
|
|
135
|
+
const theme = this.documentSettings.theme;
|
|
120
136
|
return html`
|
|
137
|
+
<style>
|
|
138
|
+
:host {
|
|
139
|
+
${theme?.colorPrimaryForeground ? `--theme-color-primary-fg: ${theme.colorPrimaryForeground};` : ''}
|
|
140
|
+
${theme?.colorPrimaryBackground ? `--theme-color-primary-bg: ${theme.colorPrimaryBackground};` : ''}
|
|
141
|
+
${theme?.colorAccentForeground ? `--theme-color-accent-fg: ${theme.colorAccentForeground};` : ''}
|
|
142
|
+
${theme?.colorAccentBackground ? `--theme-color-accent-bg: ${theme.colorAccentBackground};` : ''}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.page {
|
|
146
|
+
background-size: contain;
|
|
147
|
+
height: 100%;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.page:not(.page--first) {
|
|
151
|
+
background-image: ${theme?.pageBackground ?? "none"};
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.page.page--first {
|
|
155
|
+
background-image: ${theme?.coverPageBackground ?? theme?.pageBackground ?? "none"};
|
|
156
|
+
}
|
|
157
|
+
</style>
|
|
121
158
|
<div id="scaleWrapper">
|
|
122
159
|
<dedocument-pagecontainer .printMode=${this.printMode}>
|
|
160
|
+
<div
|
|
161
|
+
class="page ${this.pageNumber === 1
|
|
162
|
+
? "page--first"
|
|
163
|
+
: ""}"
|
|
164
|
+
></div>
|
|
123
165
|
${this.letterData
|
|
124
166
|
? html`
|
|
125
167
|
${this.documentSettings.enableDefaultHeader
|
|
@@ -131,7 +173,18 @@ export class DePage extends DeesElement {
|
|
|
131
173
|
.pageTotalNumber="${this.pageTotalNumber}"
|
|
132
174
|
></dedocument-pageheader>
|
|
133
175
|
`
|
|
134
|
-
:
|
|
176
|
+
: null}
|
|
177
|
+
|
|
178
|
+
<!-- FOLD MARKS -->
|
|
179
|
+
${this.documentSettings.enableFoldMarks === true
|
|
180
|
+
? html` <div class="foldMark__wrapper">
|
|
181
|
+
<span class="foldMark foldMark--start"></span>
|
|
182
|
+
<span class="foldMark foldMark--center"></span>
|
|
183
|
+
<span class="foldMark foldMark--end"></span>
|
|
184
|
+
</div>`
|
|
185
|
+
: null}
|
|
186
|
+
|
|
187
|
+
<!-- LETTER HEADER -->
|
|
135
188
|
${this.pageNumber === 1
|
|
136
189
|
? html`
|
|
137
190
|
<dedocument-letterheader
|
|
@@ -141,7 +194,9 @@ export class DePage extends DeesElement {
|
|
|
141
194
|
.pageTotalNumber="${this.pageTotalNumber}"
|
|
142
195
|
></dedocument-letterheader>
|
|
143
196
|
`
|
|
144
|
-
:
|
|
197
|
+
: null}
|
|
198
|
+
|
|
199
|
+
<!-- PAGE CONTENT -->
|
|
145
200
|
<dedocument-pagecontent
|
|
146
201
|
.letterData=${this.letterData}
|
|
147
202
|
.documentSettings=${this.documentSettings}
|
|
@@ -149,7 +204,9 @@ export class DePage extends DeesElement {
|
|
|
149
204
|
.pageTotalNumber="${this.pageTotalNumber}"
|
|
150
205
|
><slot></slot
|
|
151
206
|
></dedocument-pagecontent>
|
|
152
|
-
|
|
207
|
+
|
|
208
|
+
<!-- DEFAULT FOOTER -->
|
|
209
|
+
${this.documentSettings.enableDefaultFooter === true
|
|
153
210
|
? html`
|
|
154
211
|
<dedocument-pagefooter
|
|
155
212
|
.letterData=${this.letterData}
|
|
@@ -158,22 +215,19 @@ export class DePage extends DeesElement {
|
|
|
158
215
|
.pageTotalNumber="${this.pageTotalNumber}"
|
|
159
216
|
></dedocument-pagefooter>
|
|
160
217
|
`
|
|
161
|
-
:
|
|
218
|
+
: null}
|
|
219
|
+
|
|
162
220
|
<div class="versionOverlay">
|
|
163
|
-
${this.letterData.versionInfo.type ===
|
|
221
|
+
${this.letterData.versionInfo.type === "draft"
|
|
164
222
|
? html`
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
</div>
|
|
172
|
-
`
|
|
173
|
-
: ``}
|
|
174
|
-
<div class="bigDraftText">DRAFT</div>
|
|
223
|
+
<div class="bigDraftText">
|
|
224
|
+
${plugins.shared.translation.translate(
|
|
225
|
+
this.documentSettings.languageCode,
|
|
226
|
+
"overlay@@draft"
|
|
227
|
+
)}
|
|
228
|
+
</div>
|
|
175
229
|
`
|
|
176
|
-
:
|
|
230
|
+
: null}
|
|
177
231
|
</div>
|
|
178
232
|
`
|
|
179
233
|
: html` <slot></slot> `}
|
|
@@ -184,33 +238,37 @@ export class DePage extends DeesElement {
|
|
|
184
238
|
|
|
185
239
|
public async checkOverflow() {
|
|
186
240
|
await this.elementDomReady;
|
|
187
|
-
const pageContent = this.shadowRoot.querySelector(
|
|
241
|
+
const pageContent = this.shadowRoot.querySelector("dedocument-pagecontent");
|
|
188
242
|
return pageContent.checkOverflow();
|
|
189
243
|
}
|
|
190
244
|
|
|
191
245
|
updated(changedProperties: Map<string | number | symbol, unknown>): void {
|
|
192
246
|
super.updated(changedProperties);
|
|
193
|
-
if (
|
|
247
|
+
if (
|
|
248
|
+
changedProperties.has("viewHeight") ||
|
|
249
|
+
changedProperties.has("viewWidth")
|
|
250
|
+
) {
|
|
194
251
|
this.adjustScaling();
|
|
195
252
|
}
|
|
196
253
|
}
|
|
197
254
|
|
|
198
255
|
private adjustScaling() {
|
|
199
|
-
const scaleWrapper: HTMLDivElement =
|
|
256
|
+
const scaleWrapper: HTMLDivElement =
|
|
257
|
+
this.shadowRoot.querySelector("#scaleWrapper");
|
|
200
258
|
|
|
201
259
|
if (!scaleWrapper) return;
|
|
202
260
|
|
|
203
261
|
let scale = 1;
|
|
204
262
|
if (this.viewHeight) {
|
|
205
|
-
scale = this.viewHeight / plugins.shared.
|
|
263
|
+
scale = this.viewHeight / plugins.shared.A4_HEIGHT;
|
|
206
264
|
} else if (this.viewWidth) {
|
|
207
|
-
scale = this.viewWidth / plugins.shared.
|
|
265
|
+
scale = this.viewWidth / plugins.shared.A4_WIDTH;
|
|
208
266
|
}
|
|
209
267
|
scaleWrapper.style.transform = `scale(${scale})`;
|
|
210
268
|
|
|
211
269
|
// Adjust the outer dimensions so they match the scaled content
|
|
212
270
|
|
|
213
|
-
this.style.width = `${plugins.shared.
|
|
214
|
-
this.style.height = `${plugins.shared.
|
|
271
|
+
this.style.width = `${plugins.shared.A4_WIDTH * scale}px`;
|
|
272
|
+
this.style.height = `${plugins.shared.A4_HEIGHT * scale}px`;
|
|
215
273
|
}
|
|
216
274
|
}
|
|
@@ -7,32 +7,32 @@ import {
|
|
|
7
7
|
css,
|
|
8
8
|
cssManager,
|
|
9
9
|
unsafeCSS,
|
|
10
|
-
} from
|
|
11
|
-
import * as domtools from
|
|
10
|
+
} from "@design.estate/dees-element";
|
|
11
|
+
import * as domtools from "@design.estate/dees-domtools";
|
|
12
12
|
|
|
13
|
-
import * as plugins from
|
|
13
|
+
import * as plugins from "../plugins.js";
|
|
14
14
|
|
|
15
15
|
declare global {
|
|
16
16
|
interface HTMLElementTagNameMap {
|
|
17
|
-
|
|
17
|
+
"dedocument-pagecontainer": DePageContainer;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
@customElement(
|
|
21
|
+
@customElement("dedocument-pagecontainer")
|
|
22
22
|
export class DePageContainer extends DeesElement {
|
|
23
23
|
public static demo = () => html`
|
|
24
|
-
<dedocument-pagecontainer .format="${
|
|
24
|
+
<dedocument-pagecontainer .format="${"a4"}"></dedocument-pagecontainer>
|
|
25
25
|
`;
|
|
26
26
|
|
|
27
27
|
@property({
|
|
28
28
|
type: String,
|
|
29
29
|
})
|
|
30
|
-
|
|
30
|
+
accessor format: "a4" = "a4";
|
|
31
31
|
|
|
32
32
|
@property({
|
|
33
33
|
type: Boolean,
|
|
34
34
|
})
|
|
35
|
-
|
|
35
|
+
accessor printMode = false;
|
|
36
36
|
|
|
37
37
|
constructor() {
|
|
38
38
|
super();
|
|
@@ -44,14 +44,13 @@ export class DePageContainer extends DeesElement {
|
|
|
44
44
|
css`
|
|
45
45
|
:host {
|
|
46
46
|
display: block;
|
|
47
|
-
background: white;
|
|
48
|
-
color: #333;
|
|
49
47
|
padding: 0px;
|
|
50
|
-
width: ${unsafeCSS(plugins.shared.
|
|
51
|
-
height: ${unsafeCSS(plugins.shared.
|
|
48
|
+
width: ${unsafeCSS(plugins.shared.A4_WIDTH + "px")};
|
|
49
|
+
height: ${unsafeCSS(plugins.shared.A4_HEIGHT + "px")};
|
|
52
50
|
position: relative;
|
|
53
51
|
border-radius: 3px;
|
|
54
52
|
overflow: hidden;
|
|
53
|
+
background: var(--text-bg-color, #ffffff);
|
|
55
54
|
}
|
|
56
55
|
`,
|
|
57
56
|
];
|
|
@@ -60,7 +59,9 @@ export class DePageContainer extends DeesElement {
|
|
|
60
59
|
return html`
|
|
61
60
|
<style>
|
|
62
61
|
:host {
|
|
63
|
-
box-shadow: ${this.printMode
|
|
62
|
+
box-shadow: ${this.printMode
|
|
63
|
+
? `none`
|
|
64
|
+
: `0px 0px 10px rgba(0,0,0,0.3)`};
|
|
64
65
|
}
|
|
65
66
|
</style>
|
|
66
67
|
<slot></slot>
|
|
@@ -8,37 +8,43 @@ import {
|
|
|
8
8
|
cssManager,
|
|
9
9
|
unsafeCSS,
|
|
10
10
|
domtools,
|
|
11
|
-
} from
|
|
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-pagecontent": DePageContent;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
@customElement(
|
|
22
|
+
@customElement("dedocument-pagecontent")
|
|
23
23
|
export class DePageContent extends DeesElement {
|
|
24
24
|
public static demo = () => html`
|
|
25
|
-
<dedocument-pagecontent .format="${
|
|
25
|
+
<dedocument-pagecontent .format="${"a4"}"></dedocument-pagecontent>
|
|
26
26
|
`;
|
|
27
27
|
|
|
28
28
|
@property({
|
|
29
29
|
type: Number,
|
|
30
30
|
})
|
|
31
|
-
|
|
31
|
+
accessor letterData: plugins.tsclass.business.TLetter;
|
|
32
32
|
|
|
33
33
|
@property({
|
|
34
34
|
type: Number,
|
|
35
35
|
})
|
|
36
|
-
|
|
36
|
+
accessor pageNumber: number = 1;
|
|
37
37
|
|
|
38
38
|
@property({
|
|
39
39
|
type: Number,
|
|
40
40
|
})
|
|
41
|
-
|
|
41
|
+
accessor pageTotalNumber: number = 1;
|
|
42
|
+
|
|
43
|
+
@property({
|
|
44
|
+
type: Object,
|
|
45
|
+
reflect: true,
|
|
46
|
+
})
|
|
47
|
+
accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
42
48
|
|
|
43
49
|
constructor() {
|
|
44
50
|
super();
|
|
@@ -49,19 +55,23 @@ export class DePageContent extends DeesElement {
|
|
|
49
55
|
domtools.elementBasic.staticStyles,
|
|
50
56
|
dedocumentSharedStyle,
|
|
51
57
|
css`
|
|
52
|
-
:host {
|
|
53
|
-
color: #333;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
58
|
.content {
|
|
57
59
|
position: absolute;
|
|
58
60
|
|
|
59
|
-
left:
|
|
60
|
-
right:
|
|
61
|
-
bottom:
|
|
61
|
+
left: var(--LEFT-MARGIN);
|
|
62
|
+
right: var(--RIGHT-MARGIN);
|
|
63
|
+
bottom: calc(var(--DPI-FACTOR) * 4);
|
|
62
64
|
overflow: visible;
|
|
63
65
|
}
|
|
64
66
|
|
|
67
|
+
.content.page--first {
|
|
68
|
+
top: calc(var(--DPI-FACTOR) * 9.85);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.content.page--notFirst {
|
|
72
|
+
top: calc(var(--DPI-FACTOR) * 4.5);
|
|
73
|
+
}
|
|
74
|
+
|
|
65
75
|
.content .subject {
|
|
66
76
|
font-size: 18px;
|
|
67
77
|
font-weight: bold;
|
|
@@ -83,60 +93,31 @@ export class DePageContent extends DeesElement {
|
|
|
83
93
|
margin-bottom: 10px;
|
|
84
94
|
font-size: 10px;
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
.continuesOnNextPage {
|
|
88
|
-
display: inline-block;
|
|
89
|
-
background: #eeeeee;
|
|
90
|
-
color: #999;
|
|
91
|
-
border-radius: 50px;
|
|
92
|
-
padding: 5px 10px;
|
|
93
|
-
margin-top: 8px;
|
|
94
|
-
font-size: 10px;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.finalPage {
|
|
98
|
-
display: inline-block;
|
|
99
|
-
background: #29b000;
|
|
100
|
-
color: #fff;
|
|
101
|
-
border-radius: 50px;
|
|
102
|
-
padding: 5px 10px;
|
|
103
|
-
margin-top: 8px;
|
|
104
|
-
font-size: 10px;
|
|
105
|
-
}
|
|
106
96
|
`,
|
|
107
97
|
];
|
|
108
98
|
|
|
109
99
|
public render(): TemplateResult {
|
|
100
|
+
const firstPage = this.pageNumber === 1;
|
|
110
101
|
return html`
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
top: ${this.pageNumber === 1 ? unsafeCSS('450px') : unsafeCSS('200px')};
|
|
114
|
-
}
|
|
115
|
-
</style>
|
|
116
|
-
<div class="content">
|
|
117
|
-
${this.pageNumber === 1
|
|
102
|
+
<div class="content ${firstPage ? "page--first" : "page--notFirst"}">
|
|
103
|
+
${firstPage
|
|
118
104
|
? html`<div class="subject">${this.letterData.subject}</div>`
|
|
119
|
-
:
|
|
120
|
-
<div class="subjectRepeated">
|
|
121
|
-
${this.letterData.subject} (Page ${this.pageNumber})
|
|
122
|
-
</div>
|
|
123
|
-
`}
|
|
105
|
+
: null}
|
|
124
106
|
<slot></slot>
|
|
125
|
-
${this.pageTotalNumber !== this.pageNumber
|
|
126
|
-
? html`<div class="continuesOnNextPage">Continues on page ${this.pageNumber + 1}</div>`
|
|
127
|
-
: html`<div class="finalPage">This is the final page of this document.</div>`}
|
|
128
107
|
</div>
|
|
129
108
|
`;
|
|
130
109
|
}
|
|
131
110
|
|
|
132
|
-
public firstUpdated(
|
|
111
|
+
public firstUpdated(
|
|
112
|
+
_changedProperties: Map<string | number | symbol, unknown>
|
|
113
|
+
): void {
|
|
133
114
|
super.firstUpdated(_changedProperties);
|
|
134
115
|
this.checkOverflow();
|
|
135
116
|
}
|
|
136
117
|
|
|
137
118
|
public async checkOverflow() {
|
|
138
119
|
await this.elementDomReady;
|
|
139
|
-
const contentContainer = this.shadowRoot.querySelector(
|
|
120
|
+
const contentContainer = this.shadowRoot.querySelector(".content");
|
|
140
121
|
if (contentContainer.scrollHeight > contentContainer.clientHeight) {
|
|
141
122
|
return true;
|
|
142
123
|
} else {
|