@design.estate/dees-document 2.0.2 → 2.0.4
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_ts_web/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/contentinvoice.d.ts +12 -6
- package/dist_ts_web/elements/contentinvoice.js +382 -298
- package/dist_ts_web/elements/document.d.ts +10 -10
- package/dist_ts_web/elements/document.demo.js +7 -4
- package/dist_ts_web/elements/document.js +280 -236
- package/dist_ts_web/elements/index.d.ts +10 -9
- package/dist_ts_web/elements/index.js +11 -10
- package/dist_ts_web/elements/letterheader.d.ts +8 -6
- package/dist_ts_web/elements/letterheader.js +183 -76
- package/dist_ts_web/elements/page.d.ts +12 -12
- package/dist_ts_web/elements/page.js +257 -129
- package/dist_ts_web/elements/pagecontainer.d.ts +4 -4
- package/dist_ts_web/elements/pagecontainer.js +97 -44
- package/dist_ts_web/elements/pagecontent.d.ts +7 -6
- package/dist_ts_web/elements/pagecontent.js +141 -100
- package/dist_ts_web/elements/pagefooter.d.ts +7 -7
- package/dist_ts_web/elements/pagefooter.js +187 -83
- package/dist_ts_web/elements/pageheader.d.ts +7 -7
- package/dist_ts_web/elements/pageheader.js +121 -57
- package/dist_ts_web/elements/viewer.d.ts +5 -5
- package/dist_ts_web/elements/viewer.demo.js +7 -4
- package/dist_ts_web/elements/viewer.js +109 -55
- package/dist_ts_web/index.js +1 -1
- package/dist_ts_web/pages/index.js +1 -1
- package/dist_ts_web/pages/page1.js +11 -7
- package/dist_ts_web/pages/page2.js +1 -1
- package/dist_ts_web/plugins.js +1 -1
- package/dist_ts_web/style.js +34 -3
- package/package.json +1 -1
- package/dist_ts_shared/interfaces/translation.d.ts +0 -19
- package/dist_ts_shared/interfaces/translation.js +0 -2
- package/dist_ts_web/ts_shared/translation.d.ts +0 -82
- package/dist_ts_web/ts_shared/translation.js +0 -134
- package/dist_ts_web/ts_web/00_commitinfo_data.d.ts +0 -8
- package/dist_ts_web/ts_web/00_commitinfo_data.js +0 -9
- package/dist_ts_web/ts_web/elements/contentinvoice.d.ts +0 -41
- package/dist_ts_web/ts_web/elements/contentinvoice.js +0 -466
- package/dist_ts_web/ts_web/elements/document.d.ts +0 -27
- package/dist_ts_web/ts_web/elements/document.demo.d.ts +0 -1
- package/dist_ts_web/ts_web/elements/document.demo.js +0 -9
- package/dist_ts_web/ts_web/elements/document.js +0 -306
- package/dist_ts_web/ts_web/elements/index.d.ts +0 -10
- package/dist_ts_web/ts_web/elements/index.js +0 -11
- package/dist_ts_web/ts_web/elements/letterheader.d.ts +0 -18
- package/dist_ts_web/ts_web/elements/letterheader.js +0 -224
- package/dist_ts_web/ts_web/elements/page.d.ts +0 -25
- package/dist_ts_web/ts_web/elements/page.js +0 -335
- package/dist_ts_web/ts_web/elements/pagecontainer.d.ts +0 -14
- package/dist_ts_web/ts_web/elements/pagecontainer.js +0 -114
- package/dist_ts_web/ts_web/elements/pagecontent.d.ts +0 -19
- package/dist_ts_web/ts_web/elements/pagecontent.js +0 -177
- package/dist_ts_web/ts_web/elements/pagefooter.d.ts +0 -17
- package/dist_ts_web/ts_web/elements/pagefooter.js +0 -234
- package/dist_ts_web/ts_web/elements/pageheader.d.ts +0 -17
- package/dist_ts_web/ts_web/elements/pageheader.js +0 -165
- package/dist_ts_web/ts_web/elements/viewer.d.ts +0 -15
- package/dist_ts_web/ts_web/elements/viewer.demo.d.ts +0 -1
- package/dist_ts_web/ts_web/elements/viewer.demo.js +0 -9
- package/dist_ts_web/ts_web/elements/viewer.js +0 -150
- package/dist_ts_web/ts_web/index.d.ts +0 -1
- package/dist_ts_web/ts_web/index.js +0 -2
- package/dist_ts_web/ts_web/pages/index.d.ts +0 -2
- package/dist_ts_web/ts_web/pages/index.js +0 -3
- package/dist_ts_web/ts_web/pages/page1.d.ts +0 -1
- package/dist_ts_web/ts_web/pages/page1.js +0 -21
- package/dist_ts_web/ts_web/pages/page2.d.ts +0 -1
- package/dist_ts_web/ts_web/pages/page2.js +0 -18
- package/dist_ts_web/ts_web/plugins.d.ts +0 -9
- package/dist_ts_web/ts_web/plugins.js +0 -14
- package/dist_ts_web/ts_web/style.d.ts +0 -1
- package/dist_ts_web/ts_web/style.js +0 -38
- package/dist_watch/bundle.js +0 -47955
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -25
- /package/dist_ts_web/{ts_web/elements → elements}/paymentcode.d.ts +0 -0
- /package/dist_ts_web/{ts_web/elements → elements}/paymentcode.js +0 -0
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { DeesElement, type TemplateResult } from
|
|
2
|
-
import * as plugins from
|
|
1
|
+
import { DeesElement, type TemplateResult } from "@design.estate/dees-element";
|
|
2
|
+
import * as plugins from "../plugins.js";
|
|
3
3
|
export declare const defaultDocumentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
4
4
|
declare global {
|
|
5
5
|
interface HTMLElementTagNameMap {
|
|
6
|
-
|
|
6
|
+
"dedocument-dedocument": DeDocument;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
export declare class DeDocument extends DeesElement {
|
|
10
10
|
static demo: () => TemplateResult<1>;
|
|
11
|
-
format:
|
|
12
|
-
viewWidth: number;
|
|
13
|
-
viewHeight: number;
|
|
14
|
-
printMode: boolean;
|
|
15
|
-
letterData: plugins.tsclass.business.
|
|
16
|
-
documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
11
|
+
accessor format: "a4";
|
|
12
|
+
accessor viewWidth: number;
|
|
13
|
+
accessor viewHeight: number;
|
|
14
|
+
accessor printMode: boolean;
|
|
15
|
+
accessor letterData: plugins.tsclass.business.TLetter;
|
|
16
|
+
accessor documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
17
17
|
constructor();
|
|
18
18
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
19
19
|
render(): TemplateResult;
|
|
20
20
|
firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
|
|
21
21
|
latestDocumentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
22
|
-
latestRenderedLetterData: plugins.tsclass.business.
|
|
22
|
+
latestRenderedLetterData: plugins.tsclass.business.TLetter;
|
|
23
23
|
cleanupStore: any[];
|
|
24
24
|
renderDocument(): Promise<void>;
|
|
25
25
|
updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
|
|
@@ -1,6 +1,9 @@
|
|
|
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
|
export const demoFunc = () => html `
|
|
4
|
-
<dedocument-dedocument
|
|
4
|
+
<dedocument-dedocument
|
|
5
|
+
.format="${"a4"}"
|
|
6
|
+
.letterData=${plugins.shared.demoLetter}
|
|
7
|
+
></dedocument-dedocument>
|
|
5
8
|
`;
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb2N1bWVudC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOztlQUVuQixJQUFJO2tCQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTs7Q0FFMUMsQ0FBQyJ9
|
|
@@ -1,262 +1,306 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
6
34
|
};
|
|
7
|
-
import { DeesElement, property, html, customElement, css,
|
|
8
|
-
import * as plugins from
|
|
35
|
+
import { DeesElement, property, html, customElement, css, domtools, } from "@design.estate/dees-element";
|
|
36
|
+
import * as plugins from "../plugins.js";
|
|
9
37
|
export const defaultDocumentSettings = {
|
|
10
38
|
enableTopDraftText: true,
|
|
11
39
|
enableDefaultHeader: true,
|
|
12
40
|
enableDefaultFooter: true,
|
|
13
|
-
|
|
41
|
+
enableFoldMarks: true,
|
|
42
|
+
enableInvoiceContractRefSection: true,
|
|
43
|
+
languageCode: "EN",
|
|
14
44
|
vatGroupPositions: true,
|
|
45
|
+
dateStyle: "short",
|
|
15
46
|
};
|
|
16
|
-
import { DePage } from
|
|
17
|
-
import { DeContentInvoice } from
|
|
18
|
-
import { demoFunc } from
|
|
19
|
-
let DeDocument =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
47
|
+
import { DePage } from "./page.js";
|
|
48
|
+
import { DeContentInvoice } from "./contentinvoice.js";
|
|
49
|
+
import { demoFunc } from "./document.demo.js";
|
|
50
|
+
let DeDocument = (() => {
|
|
51
|
+
let _classDecorators = [customElement("dedocument-dedocument")];
|
|
52
|
+
let _classDescriptor;
|
|
53
|
+
let _classExtraInitializers = [];
|
|
54
|
+
let _classThis;
|
|
55
|
+
let _classSuper = DeesElement;
|
|
56
|
+
let _format_decorators;
|
|
57
|
+
let _format_initializers = [];
|
|
58
|
+
let _format_extraInitializers = [];
|
|
59
|
+
let _viewWidth_decorators;
|
|
60
|
+
let _viewWidth_initializers = [];
|
|
61
|
+
let _viewWidth_extraInitializers = [];
|
|
62
|
+
let _viewHeight_decorators;
|
|
63
|
+
let _viewHeight_initializers = [];
|
|
64
|
+
let _viewHeight_extraInitializers = [];
|
|
65
|
+
let _printMode_decorators;
|
|
66
|
+
let _printMode_initializers = [];
|
|
67
|
+
let _printMode_extraInitializers = [];
|
|
68
|
+
let _letterData_decorators;
|
|
69
|
+
let _letterData_initializers = [];
|
|
70
|
+
let _letterData_extraInitializers = [];
|
|
71
|
+
let _documentSettings_decorators;
|
|
72
|
+
let _documentSettings_initializers = [];
|
|
73
|
+
let _documentSettings_extraInitializers = [];
|
|
74
|
+
var DeDocument = class extends _classSuper {
|
|
75
|
+
static { _classThis = this; }
|
|
76
|
+
static {
|
|
77
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
78
|
+
_format_decorators = [property({
|
|
79
|
+
type: String,
|
|
80
|
+
reflect: true,
|
|
81
|
+
})];
|
|
82
|
+
_viewWidth_decorators = [property({
|
|
83
|
+
type: Number,
|
|
84
|
+
reflect: true,
|
|
85
|
+
})];
|
|
86
|
+
_viewHeight_decorators = [property({
|
|
87
|
+
type: Number,
|
|
88
|
+
reflect: true,
|
|
89
|
+
})];
|
|
90
|
+
_printMode_decorators = [property({
|
|
91
|
+
type: Boolean,
|
|
92
|
+
reflect: true,
|
|
93
|
+
})];
|
|
94
|
+
_letterData_decorators = [property({
|
|
95
|
+
type: Object,
|
|
96
|
+
reflect: true,
|
|
97
|
+
converter: (valueArg) => {
|
|
98
|
+
if (typeof valueArg === "string") {
|
|
99
|
+
return plugins.smartjson.parseBase64(valueArg);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
return valueArg;
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
})];
|
|
106
|
+
_documentSettings_decorators = [property({
|
|
107
|
+
type: Object,
|
|
108
|
+
reflect: true,
|
|
109
|
+
converter: (valueArg) => {
|
|
110
|
+
if (typeof valueArg === "string") {
|
|
111
|
+
return plugins.smartjson.parseBase64(valueArg);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return valueArg;
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
})];
|
|
118
|
+
__esDecorate(this, null, _format_decorators, { kind: "accessor", name: "format", static: false, private: false, access: { has: obj => "format" in obj, get: obj => obj.format, set: (obj, value) => { obj.format = value; } }, metadata: _metadata }, _format_initializers, _format_extraInitializers);
|
|
119
|
+
__esDecorate(this, null, _viewWidth_decorators, { kind: "accessor", name: "viewWidth", static: false, private: false, access: { has: obj => "viewWidth" in obj, get: obj => obj.viewWidth, set: (obj, value) => { obj.viewWidth = value; } }, metadata: _metadata }, _viewWidth_initializers, _viewWidth_extraInitializers);
|
|
120
|
+
__esDecorate(this, null, _viewHeight_decorators, { kind: "accessor", name: "viewHeight", static: false, private: false, access: { has: obj => "viewHeight" in obj, get: obj => obj.viewHeight, set: (obj, value) => { obj.viewHeight = value; } }, metadata: _metadata }, _viewHeight_initializers, _viewHeight_extraInitializers);
|
|
121
|
+
__esDecorate(this, null, _printMode_decorators, { kind: "accessor", name: "printMode", static: false, private: false, access: { has: obj => "printMode" in obj, get: obj => obj.printMode, set: (obj, value) => { obj.printMode = value; } }, metadata: _metadata }, _printMode_initializers, _printMode_extraInitializers);
|
|
122
|
+
__esDecorate(this, null, _letterData_decorators, { kind: "accessor", name: "letterData", static: false, private: false, access: { has: obj => "letterData" in obj, get: obj => obj.letterData, set: (obj, value) => { obj.letterData = value; } }, metadata: _metadata }, _letterData_initializers, _letterData_extraInitializers);
|
|
123
|
+
__esDecorate(this, null, _documentSettings_decorators, { kind: "accessor", name: "documentSettings", static: false, private: false, access: { has: obj => "documentSettings" in obj, get: obj => obj.documentSettings, set: (obj, value) => { obj.documentSettings = value; } }, metadata: _metadata }, _documentSettings_initializers, _documentSettings_extraInitializers);
|
|
124
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
125
|
+
DeDocument = _classThis = _classDescriptor.value;
|
|
126
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
127
|
+
}
|
|
128
|
+
static demo = demoFunc;
|
|
129
|
+
#format_accessor_storage = __runInitializers(this, _format_initializers, "a4");
|
|
130
|
+
get format() { return this.#format_accessor_storage; }
|
|
131
|
+
set format(value) { this.#format_accessor_storage = value; }
|
|
132
|
+
#viewWidth_accessor_storage = (__runInitializers(this, _format_extraInitializers), __runInitializers(this, _viewWidth_initializers, null));
|
|
133
|
+
get viewWidth() { return this.#viewWidth_accessor_storage; }
|
|
134
|
+
set viewWidth(value) { this.#viewWidth_accessor_storage = value; }
|
|
135
|
+
#viewHeight_accessor_storage = (__runInitializers(this, _viewWidth_extraInitializers), __runInitializers(this, _viewHeight_initializers, null));
|
|
136
|
+
get viewHeight() { return this.#viewHeight_accessor_storage; }
|
|
137
|
+
set viewHeight(value) { this.#viewHeight_accessor_storage = value; }
|
|
138
|
+
#printMode_accessor_storage = (__runInitializers(this, _viewHeight_extraInitializers), __runInitializers(this, _printMode_initializers, false));
|
|
139
|
+
get printMode() { return this.#printMode_accessor_storage; }
|
|
140
|
+
set printMode(value) { this.#printMode_accessor_storage = value; }
|
|
141
|
+
#letterData_accessor_storage = (__runInitializers(this, _printMode_extraInitializers), __runInitializers(this, _letterData_initializers, void 0));
|
|
142
|
+
get letterData() { return this.#letterData_accessor_storage; }
|
|
143
|
+
set letterData(value) { this.#letterData_accessor_storage = value; }
|
|
144
|
+
#documentSettings_accessor_storage = (__runInitializers(this, _letterData_extraInitializers), __runInitializers(this, _documentSettings_initializers, defaultDocumentSettings));
|
|
145
|
+
get documentSettings() { return this.#documentSettings_accessor_storage; }
|
|
146
|
+
set documentSettings(value) { this.#documentSettings_accessor_storage = value; }
|
|
147
|
+
constructor() {
|
|
148
|
+
super();
|
|
149
|
+
domtools.DomTools.setupDomTools();
|
|
150
|
+
}
|
|
151
|
+
static styles = [
|
|
152
|
+
domtools.elementBasic.staticStyles,
|
|
153
|
+
css `
|
|
36
154
|
:host {
|
|
37
155
|
display: block;
|
|
38
|
-
color: #333;
|
|
39
|
-
padding: 0px;
|
|
40
|
-
position: relative;
|
|
41
|
-
font-family: 'Dees Sans', sans-serif;
|
|
42
156
|
}
|
|
43
157
|
|
|
44
158
|
.betweenPagesSpacer {
|
|
45
159
|
height: 16px;
|
|
46
160
|
}
|
|
47
161
|
`,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
<div class="documentContainer"></div>
|
|
52
|
-
`;
|
|
53
|
-
}
|
|
54
|
-
async firstUpdated(_changedProperties) {
|
|
55
|
-
domtools.plugins.smartdelay.delayFor(0).then(async () => {
|
|
56
|
-
this.documentSettings = {
|
|
57
|
-
...defaultDocumentSettings,
|
|
58
|
-
...this.documentSettings,
|
|
59
|
-
};
|
|
60
|
-
while (false) {
|
|
61
|
-
await domtools.plugins.smartdelay.delayFor(1000);
|
|
62
|
-
this.letterData = {
|
|
63
|
-
...this.letterData,
|
|
64
|
-
content: {
|
|
65
|
-
...this.letterData.content,
|
|
66
|
-
invoiceData: {
|
|
67
|
-
...this.letterData.content.invoiceData,
|
|
68
|
-
items: [
|
|
69
|
-
...this.letterData.content.invoiceData.items,
|
|
70
|
-
{
|
|
71
|
-
name: 'Test Item',
|
|
72
|
-
unitQuantity: 1,
|
|
73
|
-
unitNetPrice: 100,
|
|
74
|
-
unitType: 'hours',
|
|
75
|
-
vatPercentage: 19,
|
|
76
|
-
position: 1,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
85
|
-
for (const entry of entries) {
|
|
86
|
-
const width = entry.contentRect.width;
|
|
87
|
-
const height = entry.contentRect.height;
|
|
88
|
-
// Handle the new dimensions here
|
|
89
|
-
this.adjustDePageScaling();
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
resizeObserver.observe(this);
|
|
93
|
-
this.registerGarbageFunction(() => {
|
|
94
|
-
resizeObserver.disconnect();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
async renderDocument() {
|
|
98
|
-
this.latestDocumentSettings = this.documentSettings;
|
|
99
|
-
this.latestRenderedLetterData = this.letterData;
|
|
100
|
-
const cleanUpStoreCurrentRender = [];
|
|
101
|
-
const cleanUpStoreNextRender = [];
|
|
102
|
-
const domtools = await this.domtoolsPromise;
|
|
103
|
-
const documentBuildContainer = document.createElement('div');
|
|
104
|
-
cleanUpStoreCurrentRender.push(documentBuildContainer);
|
|
105
|
-
document.body.appendChild(documentBuildContainer);
|
|
106
|
-
let pages = [];
|
|
107
|
-
let pageCounter = 0;
|
|
108
|
-
let complete = false;
|
|
109
|
-
// lets append the content
|
|
110
|
-
const content = new DeContentInvoice();
|
|
111
|
-
cleanUpStoreCurrentRender.push(content);
|
|
112
|
-
content.letterData = this.letterData;
|
|
113
|
-
content.documentSettings = this.documentSettings;
|
|
114
|
-
document.body.appendChild(content);
|
|
115
|
-
await domtools.convenience.smartdelay.delayFor(0);
|
|
116
|
-
let overallContentOffset = 0;
|
|
117
|
-
let currentContentOffset;
|
|
118
|
-
let trimmed;
|
|
119
|
-
while (!complete) {
|
|
120
|
-
pageCounter++;
|
|
121
|
-
const currentContent = content.cloneNode(true);
|
|
122
|
-
cleanUpStoreNextRender.push(currentContent);
|
|
123
|
-
const newPage = new DePage();
|
|
124
|
-
newPage.printMode = this.printMode;
|
|
125
|
-
newPage.letterData = this.letterData;
|
|
126
|
-
newPage.documentSettings = this.documentSettings;
|
|
127
|
-
pages.push(newPage);
|
|
128
|
-
newPage.pageNumber = pageCounter;
|
|
129
|
-
newPage.append(currentContent);
|
|
130
|
-
newPage.pageTotalNumber = pageCounter;
|
|
131
|
-
// store current page
|
|
132
|
-
cleanUpStoreNextRender.push(newPage);
|
|
133
|
-
documentBuildContainer.append(newPage);
|
|
134
|
-
await currentContent.elementDomReady;
|
|
135
|
-
await currentContent.trimStartToOffset(overallContentOffset);
|
|
136
|
-
let newPageOverflows = await newPage.checkOverflow();
|
|
137
|
-
trimmed = 0;
|
|
138
|
-
while (newPageOverflows) {
|
|
139
|
-
await currentContent.trimEndByOne();
|
|
140
|
-
trimmed++;
|
|
141
|
-
newPageOverflows = await newPage.checkOverflow();
|
|
142
|
-
}
|
|
143
|
-
currentContentOffset = await currentContent.getContentLength();
|
|
144
|
-
overallContentOffset = overallContentOffset + currentContentOffset;
|
|
145
|
-
if (trimmed === 0) {
|
|
146
|
-
complete = true;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
for (const cleanUp of this.cleanupStore) {
|
|
150
|
-
cleanUp.remove();
|
|
162
|
+
];
|
|
163
|
+
render() {
|
|
164
|
+
return html ` <div class="documentContainer"></div> `;
|
|
151
165
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
166
|
+
async firstUpdated(_changedProperties) {
|
|
167
|
+
domtools.plugins.smartdelay.delayFor(0).then(async () => {
|
|
168
|
+
this.documentSettings = {
|
|
169
|
+
...defaultDocumentSettings,
|
|
170
|
+
...this.documentSettings,
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
174
|
+
for (const entry of entries) {
|
|
175
|
+
const width = entry.contentRect.width;
|
|
176
|
+
const height = entry.contentRect.height;
|
|
177
|
+
// Handle the new dimensions here
|
|
178
|
+
this.adjustDePageScaling();
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
resizeObserver.observe(this);
|
|
182
|
+
this.registerGarbageFunction(() => {
|
|
183
|
+
resizeObserver.disconnect();
|
|
162
184
|
});
|
|
163
185
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
186
|
+
latestDocumentSettings = (__runInitializers(this, _documentSettings_extraInitializers), null);
|
|
187
|
+
latestRenderedLetterData = null;
|
|
188
|
+
cleanupStore = [];
|
|
189
|
+
async renderDocument() {
|
|
190
|
+
this.latestDocumentSettings = this.documentSettings;
|
|
191
|
+
this.latestRenderedLetterData = this.letterData;
|
|
192
|
+
const cleanUpStoreCurrentRender = [];
|
|
193
|
+
const cleanUpStoreNextRender = [];
|
|
194
|
+
const domtools = await this.domtoolsPromise;
|
|
195
|
+
const documentBuildContainer = document.createElement("div");
|
|
196
|
+
cleanUpStoreCurrentRender.push(documentBuildContainer);
|
|
197
|
+
document.body.appendChild(documentBuildContainer);
|
|
198
|
+
let pages = [];
|
|
199
|
+
let pageCounter = 0;
|
|
200
|
+
let complete = false;
|
|
201
|
+
// lets append the content
|
|
202
|
+
const content = new DeContentInvoice();
|
|
203
|
+
cleanUpStoreCurrentRender.push(content);
|
|
204
|
+
content.letterData = this
|
|
205
|
+
.letterData;
|
|
206
|
+
content.documentSettings = this.documentSettings;
|
|
207
|
+
document.body.appendChild(content);
|
|
208
|
+
await domtools.convenience.smartdelay.delayFor(0);
|
|
209
|
+
let overallContentOffset = 0;
|
|
210
|
+
let currentContentOffset;
|
|
211
|
+
let trimmed;
|
|
212
|
+
while (!complete) {
|
|
213
|
+
pageCounter++;
|
|
214
|
+
const currentContent = content.cloneNode(true);
|
|
215
|
+
cleanUpStoreNextRender.push(currentContent);
|
|
216
|
+
const newPage = new DePage();
|
|
217
|
+
newPage.printMode = this.printMode;
|
|
218
|
+
newPage.letterData = this.letterData;
|
|
219
|
+
newPage.documentSettings = this.documentSettings;
|
|
220
|
+
pages.push(newPage);
|
|
221
|
+
newPage.pageNumber = pageCounter;
|
|
222
|
+
newPage.append(currentContent);
|
|
223
|
+
newPage.pageTotalNumber = pageCounter;
|
|
224
|
+
// store current page
|
|
225
|
+
cleanUpStoreNextRender.push(newPage);
|
|
226
|
+
documentBuildContainer.append(newPage);
|
|
227
|
+
await currentContent.elementDomReady;
|
|
228
|
+
await currentContent.trimStartToOffset(overallContentOffset);
|
|
229
|
+
let newPageOverflows = await newPage.checkOverflow();
|
|
230
|
+
trimmed = 0;
|
|
231
|
+
while (newPageOverflows) {
|
|
232
|
+
await currentContent.trimEndByOne();
|
|
233
|
+
trimmed++;
|
|
234
|
+
newPageOverflows = await newPage.checkOverflow();
|
|
235
|
+
}
|
|
236
|
+
currentContentOffset = await currentContent.getContentLength();
|
|
237
|
+
overallContentOffset = overallContentOffset + currentContentOffset;
|
|
238
|
+
if (trimmed === 0) {
|
|
239
|
+
complete = true;
|
|
240
|
+
}
|
|
172
241
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
async updated(changedProperties) {
|
|
177
|
-
super.updated(changedProperties);
|
|
178
|
-
const domtools = await this.domtoolsPromise;
|
|
179
|
-
let renderedDocIsUpToDate = domtools.convenience.smartjson.deepEqualObjects(this.letterData, this.latestRenderedLetterData)
|
|
180
|
-
&& domtools.convenience.smartjson.deepEqualObjects(this.documentSettings, this.latestDocumentSettings);
|
|
181
|
-
if (!renderedDocIsUpToDate) {
|
|
182
|
-
this.renderDocument();
|
|
183
|
-
}
|
|
184
|
-
if (changedProperties.has('viewHeight') || changedProperties.has('viewWidth')) {
|
|
185
|
-
this.adjustDePageScaling();
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
adjustDePageScaling() {
|
|
189
|
-
if (this.printMode) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
this.viewWidth = this.clientWidth;
|
|
193
|
-
// Find all DePage instances within this DeDocument
|
|
194
|
-
const pages = this.shadowRoot.querySelectorAll('dedocument-page');
|
|
195
|
-
// Update each DePage instance's viewHeight and viewWidth
|
|
196
|
-
pages.forEach((page) => {
|
|
197
|
-
if (this.viewHeight) {
|
|
198
|
-
page.viewHeight = this.viewHeight;
|
|
242
|
+
for (const cleanUp of this.cleanupStore) {
|
|
243
|
+
cleanUp.remove();
|
|
199
244
|
}
|
|
200
|
-
|
|
201
|
-
|
|
245
|
+
this.cleanupStore = cleanUpStoreNextRender;
|
|
246
|
+
cleanUpStoreCurrentRender.forEach((cleanUp) => {
|
|
247
|
+
cleanUp.remove();
|
|
248
|
+
});
|
|
249
|
+
const documentContainer = this.shadowRoot.querySelector(".documentContainer");
|
|
250
|
+
if (documentContainer) {
|
|
251
|
+
const children = Array.from(documentContainer.children);
|
|
252
|
+
children.forEach((child) => {
|
|
253
|
+
documentContainer.removeChild(child);
|
|
254
|
+
child.remove();
|
|
255
|
+
});
|
|
202
256
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
__decorate([
|
|
213
|
-
property({
|
|
214
|
-
type: Number,
|
|
215
|
-
reflect: true,
|
|
216
|
-
})
|
|
217
|
-
], DeDocument.prototype, "viewWidth", void 0);
|
|
218
|
-
__decorate([
|
|
219
|
-
property({
|
|
220
|
-
type: Number,
|
|
221
|
-
reflect: true,
|
|
222
|
-
})
|
|
223
|
-
], DeDocument.prototype, "viewHeight", void 0);
|
|
224
|
-
__decorate([
|
|
225
|
-
property({
|
|
226
|
-
type: Boolean,
|
|
227
|
-
reflect: true,
|
|
228
|
-
})
|
|
229
|
-
], DeDocument.prototype, "printMode", void 0);
|
|
230
|
-
__decorate([
|
|
231
|
-
property({
|
|
232
|
-
type: Object,
|
|
233
|
-
reflect: true,
|
|
234
|
-
converter: (valueArg) => {
|
|
235
|
-
if (typeof valueArg === 'string') {
|
|
236
|
-
return plugins.smartjson.parseBase64(valueArg);
|
|
257
|
+
for (const page of pages) {
|
|
258
|
+
page.pageTotalNumber = pageCounter;
|
|
259
|
+
documentContainer.append(page);
|
|
260
|
+
// betweenPagesSpacer
|
|
261
|
+
if (!this.printMode) {
|
|
262
|
+
const betweenPagesSpacerDiv = document.createElement("div");
|
|
263
|
+
betweenPagesSpacerDiv.classList.add("betweenPagesSpacer");
|
|
264
|
+
documentContainer.appendChild(betweenPagesSpacerDiv);
|
|
265
|
+
}
|
|
237
266
|
}
|
|
238
|
-
|
|
239
|
-
|
|
267
|
+
this.adjustDePageScaling();
|
|
268
|
+
}
|
|
269
|
+
async updated(changedProperties) {
|
|
270
|
+
super.updated(changedProperties);
|
|
271
|
+
const domtools = await this.domtoolsPromise;
|
|
272
|
+
let renderedDocIsUpToDate = domtools.convenience.smartjson.deepEqualObjects(this.letterData, this.latestRenderedLetterData) &&
|
|
273
|
+
domtools.convenience.smartjson.deepEqualObjects(this.documentSettings, this.latestDocumentSettings);
|
|
274
|
+
if (!renderedDocIsUpToDate) {
|
|
275
|
+
this.renderDocument();
|
|
240
276
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
__decorate([
|
|
245
|
-
property({
|
|
246
|
-
type: Object,
|
|
247
|
-
reflect: true,
|
|
248
|
-
converter: (valueArg) => {
|
|
249
|
-
if (typeof valueArg === 'string') {
|
|
250
|
-
return plugins.smartjson.parseBase64(valueArg);
|
|
277
|
+
if (changedProperties.has("viewHeight") ||
|
|
278
|
+
changedProperties.has("viewWidth")) {
|
|
279
|
+
this.adjustDePageScaling();
|
|
251
280
|
}
|
|
252
|
-
|
|
253
|
-
|
|
281
|
+
}
|
|
282
|
+
adjustDePageScaling() {
|
|
283
|
+
if (this.printMode) {
|
|
284
|
+
return;
|
|
254
285
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
286
|
+
this.viewWidth = this.clientWidth;
|
|
287
|
+
// Find all DePage instances within this DeDocument
|
|
288
|
+
const pages = this.shadowRoot.querySelectorAll("dedocument-page");
|
|
289
|
+
// Update each DePage instance's viewHeight and viewWidth
|
|
290
|
+
pages.forEach((page) => {
|
|
291
|
+
if (this.viewHeight) {
|
|
292
|
+
page.viewHeight = this.viewHeight;
|
|
293
|
+
}
|
|
294
|
+
if (this.viewWidth) {
|
|
295
|
+
page.viewWidth = this.viewWidth;
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
static {
|
|
300
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
return DeDocument = _classThis;
|
|
304
|
+
})();
|
|
261
305
|
export { DeDocument };
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUNsQztJQUNFLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLCtCQUErQixFQUFFLElBQUk7SUFDckMsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUosT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7SUFTakMsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLHVCQUF1QixDQUFDOzs7O3NCQUNQLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBQW5CLFNBQVEsV0FBVzs7OztrQ0FHeEMsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO29CQUNaLE9BQU8sRUFBRSxJQUFJO2lCQUNkLENBQUM7cUNBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO29CQUNaLE9BQU8sRUFBRSxJQUFJO2lCQUNkLENBQUM7c0NBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxN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
|