@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.
Files changed (77) hide show
  1. package/dist_ts_web/00_commitinfo_data.js +2 -2
  2. package/dist_ts_web/elements/contentinvoice.d.ts +12 -6
  3. package/dist_ts_web/elements/contentinvoice.js +382 -298
  4. package/dist_ts_web/elements/document.d.ts +10 -10
  5. package/dist_ts_web/elements/document.demo.js +7 -4
  6. package/dist_ts_web/elements/document.js +280 -236
  7. package/dist_ts_web/elements/index.d.ts +10 -9
  8. package/dist_ts_web/elements/index.js +11 -10
  9. package/dist_ts_web/elements/letterheader.d.ts +8 -6
  10. package/dist_ts_web/elements/letterheader.js +183 -76
  11. package/dist_ts_web/elements/page.d.ts +12 -12
  12. package/dist_ts_web/elements/page.js +257 -129
  13. package/dist_ts_web/elements/pagecontainer.d.ts +4 -4
  14. package/dist_ts_web/elements/pagecontainer.js +97 -44
  15. package/dist_ts_web/elements/pagecontent.d.ts +7 -6
  16. package/dist_ts_web/elements/pagecontent.js +141 -100
  17. package/dist_ts_web/elements/pagefooter.d.ts +7 -7
  18. package/dist_ts_web/elements/pagefooter.js +187 -83
  19. package/dist_ts_web/elements/pageheader.d.ts +7 -7
  20. package/dist_ts_web/elements/pageheader.js +121 -57
  21. package/dist_ts_web/elements/viewer.d.ts +5 -5
  22. package/dist_ts_web/elements/viewer.demo.js +7 -4
  23. package/dist_ts_web/elements/viewer.js +109 -55
  24. package/dist_ts_web/index.js +1 -1
  25. package/dist_ts_web/pages/index.js +1 -1
  26. package/dist_ts_web/pages/page1.js +11 -7
  27. package/dist_ts_web/pages/page2.js +1 -1
  28. package/dist_ts_web/plugins.js +1 -1
  29. package/dist_ts_web/style.js +34 -3
  30. package/package.json +1 -1
  31. package/dist_ts_shared/interfaces/translation.d.ts +0 -19
  32. package/dist_ts_shared/interfaces/translation.js +0 -2
  33. package/dist_ts_web/ts_shared/translation.d.ts +0 -82
  34. package/dist_ts_web/ts_shared/translation.js +0 -134
  35. package/dist_ts_web/ts_web/00_commitinfo_data.d.ts +0 -8
  36. package/dist_ts_web/ts_web/00_commitinfo_data.js +0 -9
  37. package/dist_ts_web/ts_web/elements/contentinvoice.d.ts +0 -41
  38. package/dist_ts_web/ts_web/elements/contentinvoice.js +0 -466
  39. package/dist_ts_web/ts_web/elements/document.d.ts +0 -27
  40. package/dist_ts_web/ts_web/elements/document.demo.d.ts +0 -1
  41. package/dist_ts_web/ts_web/elements/document.demo.js +0 -9
  42. package/dist_ts_web/ts_web/elements/document.js +0 -306
  43. package/dist_ts_web/ts_web/elements/index.d.ts +0 -10
  44. package/dist_ts_web/ts_web/elements/index.js +0 -11
  45. package/dist_ts_web/ts_web/elements/letterheader.d.ts +0 -18
  46. package/dist_ts_web/ts_web/elements/letterheader.js +0 -224
  47. package/dist_ts_web/ts_web/elements/page.d.ts +0 -25
  48. package/dist_ts_web/ts_web/elements/page.js +0 -335
  49. package/dist_ts_web/ts_web/elements/pagecontainer.d.ts +0 -14
  50. package/dist_ts_web/ts_web/elements/pagecontainer.js +0 -114
  51. package/dist_ts_web/ts_web/elements/pagecontent.d.ts +0 -19
  52. package/dist_ts_web/ts_web/elements/pagecontent.js +0 -177
  53. package/dist_ts_web/ts_web/elements/pagefooter.d.ts +0 -17
  54. package/dist_ts_web/ts_web/elements/pagefooter.js +0 -234
  55. package/dist_ts_web/ts_web/elements/pageheader.d.ts +0 -17
  56. package/dist_ts_web/ts_web/elements/pageheader.js +0 -165
  57. package/dist_ts_web/ts_web/elements/viewer.d.ts +0 -15
  58. package/dist_ts_web/ts_web/elements/viewer.demo.d.ts +0 -1
  59. package/dist_ts_web/ts_web/elements/viewer.demo.js +0 -9
  60. package/dist_ts_web/ts_web/elements/viewer.js +0 -150
  61. package/dist_ts_web/ts_web/index.d.ts +0 -1
  62. package/dist_ts_web/ts_web/index.js +0 -2
  63. package/dist_ts_web/ts_web/pages/index.d.ts +0 -2
  64. package/dist_ts_web/ts_web/pages/index.js +0 -3
  65. package/dist_ts_web/ts_web/pages/page1.d.ts +0 -1
  66. package/dist_ts_web/ts_web/pages/page1.js +0 -21
  67. package/dist_ts_web/ts_web/pages/page2.d.ts +0 -1
  68. package/dist_ts_web/ts_web/pages/page2.js +0 -18
  69. package/dist_ts_web/ts_web/plugins.d.ts +0 -9
  70. package/dist_ts_web/ts_web/plugins.js +0 -14
  71. package/dist_ts_web/ts_web/style.d.ts +0 -1
  72. package/dist_ts_web/ts_web/style.js +0 -38
  73. package/dist_watch/bundle.js +0 -47955
  74. package/dist_watch/bundle.js.map +0 -7
  75. package/dist_watch/index.html +0 -25
  76. /package/dist_ts_web/{ts_web/elements → elements}/paymentcode.d.ts +0 -0
  77. /package/dist_ts_web/{ts_web/elements → elements}/paymentcode.js +0 -0
@@ -1,25 +1,25 @@
1
- import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
- import * as plugins from '../plugins.js';
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
- 'dedocument-dedocument': DeDocument;
6
+ "dedocument-dedocument": DeDocument;
7
7
  }
8
8
  }
9
9
  export declare class DeDocument extends DeesElement {
10
10
  static demo: () => TemplateResult<1>;
11
- format: 'a4';
12
- viewWidth: number;
13
- viewHeight: number;
14
- printMode: boolean;
15
- letterData: plugins.tsclass.business.ILetter;
16
- documentSettings: plugins.shared.interfaces.IDocumentSettings;
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.ILetter;
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 '../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
  export const demoFunc = () => html `
4
- <dedocument-dedocument .format="${'a4'}" .letterData=${plugins.shared.demoLetter}></dedocument-dedocument>
4
+ <dedocument-dedocument
5
+ .format="${"a4"}"
6
+ .letterData=${plugins.shared.demoLetter}
7
+ ></dedocument-dedocument>
5
8
  `;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb2N1bWVudC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBO2tDQUNBLElBQUksaUJBQWlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTtDQUMvRSxDQUFDIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9kb2N1bWVudC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOztlQUVuQixJQUFJO2tCQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVTs7Q0FFMUMsQ0FBQyJ9
@@ -1,262 +1,306 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
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, state, cssManager, unsafeCSS, domtools, } from '@design.estate/dees-element';
8
- import * as plugins from '../plugins.js';
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
- languageCode: 'EN',
41
+ enableFoldMarks: true,
42
+ enableInvoiceContractRefSection: true,
43
+ languageCode: "EN",
14
44
  vatGroupPositions: true,
45
+ dateStyle: "short",
15
46
  };
16
- import { DePage } from './page.js';
17
- import { DeContentInvoice } from './contentinvoice.js';
18
- import { demoFunc } from './document.demo.js';
19
- let DeDocument = class DeDocument extends DeesElement {
20
- static { this.demo = demoFunc; }
21
- constructor() {
22
- super();
23
- this.format = 'a4';
24
- this.viewWidth = null;
25
- this.viewHeight = null;
26
- this.printMode = false;
27
- this.documentSettings = defaultDocumentSettings;
28
- this.latestDocumentSettings = null;
29
- this.latestRenderedLetterData = null;
30
- this.cleanupStore = [];
31
- domtools.DomTools.setupDomTools();
32
- }
33
- static { this.styles = [
34
- domtools.elementBasic.staticStyles,
35
- css `
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
- render() {
50
- return html `
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
- this.cleanupStore = cleanUpStoreNextRender;
153
- cleanUpStoreCurrentRender.forEach((cleanUp) => {
154
- cleanUp.remove();
155
- });
156
- const documentContainer = this.shadowRoot.querySelector('.documentContainer');
157
- if (documentContainer) {
158
- const children = Array.from(documentContainer.children);
159
- children.forEach((child) => {
160
- documentContainer.removeChild(child);
161
- child.remove();
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
- for (const page of pages) {
165
- page.pageTotalNumber = pageCounter;
166
- documentContainer.append(page);
167
- // betweenPagesSpacer
168
- if (!this.printMode) {
169
- const betweenPagesSpacerDiv = document.createElement('div');
170
- betweenPagesSpacerDiv.classList.add('betweenPagesSpacer');
171
- documentContainer.appendChild(betweenPagesSpacerDiv);
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
- this.adjustDePageScaling();
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
- if (this.viewWidth) {
201
- page.viewWidth = this.viewWidth;
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
- __decorate([
207
- property({
208
- type: String,
209
- reflect: true,
210
- })
211
- ], DeDocument.prototype, "format", void 0);
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
- else {
239
- return valueArg;
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
- ], DeDocument.prototype, "letterData", void 0);
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
- else {
253
- return valueArg;
281
+ }
282
+ adjustDePageScaling() {
283
+ if (this.printMode) {
284
+ return;
254
285
  }
255
- },
256
- })
257
- ], DeDocument.prototype, "documentSettings", void 0);
258
- DeDocument = __decorate([
259
- customElement('dedocument-dedocument')
260
- ], DeDocument);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsUUFBUSxHQUNULE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdEO0lBQ2xGLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBU3ZDLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVcsU0FBUSxXQUFXO2FBQzNCLFNBQUksR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQW9EOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQS9DSCxXQUFNLEdBQVMsSUFBSSxDQUFDO1FBTXBCLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFNekIsZUFBVSxHQUFXLElBQUksQ0FBQztRQU1qQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBMEJYLHFCQUFnQixHQUFnRCx1QkFBdUIsQ0FBQztRQTJFeEYsMkJBQXNCLEdBQWdELElBQUksQ0FBQztRQUMzRSw2QkFBd0IsR0FBcUMsSUFBSSxDQUFDO1FBQ2xFLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBekU5QixR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
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUNsQztJQUNFLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLCtCQUErQixFQUFFLElBQUk7SUFDckMsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUosT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7SUFTakMsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLHVCQUF1QixDQUFDOzs7O3NCQUNQLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBQW5CLFNBQVEsV0FBVzs7OztrQ0FHeEMsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO29CQUNaLE9BQU8sRUFBRSxJQUFJO2lCQUNkLENBQUM7cUNBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxNQUFNO29CQUNaLE9BQU8sRUFBRSxJQUFJO2lCQUNkLENBQUM7c0NBR0QsUUFBUSxDQUFDO29CQUNSLElBQUksRUFBRSxN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