ng-zorro-antd-extension 18.1.4 → 18.1.5
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.
|
@@ -2,14 +2,16 @@ import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild, } f
|
|
|
2
2
|
import { CoreViewer, Navigation, PageViewMode, } from '@vivliostyle/core';
|
|
3
3
|
import { NzxPrintContentDirective } from './nzx-print-content.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/
|
|
6
|
-
import * as i2 from "
|
|
7
|
-
import * as i3 from "ng-zorro-antd/
|
|
5
|
+
import * as i1 from "@angular/cdk/platform";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "ng-zorro-antd/grid";
|
|
8
|
+
import * as i4 from "ng-zorro-antd/pagination";
|
|
8
9
|
/**
|
|
9
10
|
* Vivliostyle 打印
|
|
10
11
|
*/
|
|
11
12
|
export class NzxPrintVComponent {
|
|
12
|
-
constructor(cd) {
|
|
13
|
+
constructor(platform, cd) {
|
|
14
|
+
this.platform = platform;
|
|
13
15
|
this.cd = cd;
|
|
14
16
|
this.printTitle = 'pdf';
|
|
15
17
|
/**
|
|
@@ -94,6 +96,15 @@ export class NzxPrintVComponent {
|
|
|
94
96
|
createIframeWrapper() {
|
|
95
97
|
if (this.vivViewRef) {
|
|
96
98
|
this.clearView();
|
|
99
|
+
if (!this.enablePreview) {
|
|
100
|
+
this.vivViewRef.nativeElement.style.visibility = 'hidden';
|
|
101
|
+
if (this.platform.FIREFOX) {
|
|
102
|
+
this.vivViewRef.nativeElement.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.vivViewRef.nativeElement.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
97
108
|
this.iframeEl = document.createElement('iframe');
|
|
98
109
|
this.iframeEl.height = this.height + '';
|
|
99
110
|
this.iframeEl.width = this.width + '';
|
|
@@ -236,13 +247,13 @@ export class NzxPrintVComponent {
|
|
|
236
247
|
this.viewer = undefined;
|
|
237
248
|
this._isRenderComplete = false;
|
|
238
249
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
240
251
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintVComponent, selector: "nzx-print-v", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", pixelRatio: "pixelRatio" }, outputs: { pageRenderComplete: "pageRenderComplete" }, queries: [{ propertyName: "_printElQueryList", predicate: NzxPrintContentDirective }], viewQueries: [{ propertyName: "vivViewRef", first: true, predicate: ["vivView"], descendants: true }], ngImport: i0, template: `
|
|
241
252
|
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
242
253
|
|
|
243
254
|
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
244
255
|
|
|
245
|
-
<div nz-row nzJustify="end">
|
|
256
|
+
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
246
257
|
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
247
258
|
<nz-pagination
|
|
248
259
|
[nzPageIndex]="1"
|
|
@@ -254,7 +265,7 @@ export class NzxPrintVComponent {
|
|
|
254
265
|
(nzPageIndexChange)="onPageIndexChange($event)"
|
|
255
266
|
></nz-pagination>
|
|
256
267
|
</div>
|
|
257
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
268
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }] }); }
|
|
258
269
|
}
|
|
259
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, decorators: [{
|
|
260
271
|
type: Component,
|
|
@@ -265,7 +276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
265
276
|
|
|
266
277
|
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
267
278
|
|
|
268
|
-
<div nz-row nzJustify="end">
|
|
279
|
+
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
269
280
|
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
270
281
|
<nz-pagination
|
|
271
282
|
[nzPageIndex]="1"
|
|
@@ -279,7 +290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
279
290
|
</div>
|
|
280
291
|
`,
|
|
281
292
|
}]
|
|
282
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
|
|
293
|
+
}], ctorParameters: () => [{ type: i1.Platform }, { type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
|
|
283
294
|
type: Input
|
|
284
295
|
}], width: [{
|
|
285
296
|
type: Input
|
|
@@ -298,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
298
309
|
type: ContentChildren,
|
|
299
310
|
args: [NzxPrintContentDirective]
|
|
300
311
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksR0FHYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV6RTs7R0FFRztBQXNCSCxNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXRCaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxHQUFHLENBQUM7UUFDWixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2Qsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNkLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHM0QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQU9OLFdBQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQXNIMUIsZ0JBQVcsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFTSwyQkFBc0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FB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QUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29yZVZpZXdlcixcbiAgTmF2aWdhdGlvbixcbiAgUGFnZVZpZXdNb2RlLFxuICBQYXlsb2FkLFxuICBTaW5nbGVEb2N1bWVudE9wdGlvbnMsXG59IGZyb20gJ0B2aXZsaW9zdHlsZS9jb3JlJztcbmltcG9ydCB7IE56eFByaW50Q29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vbnp4LXByaW50LWNvbnRlbnQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBWaXZsaW9zdHlsZSDmiZPljbBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LXByaW50LXYnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltuenhQcmludEhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2ICN2aXZWaWV3IFtuZ1N0eWxlXT1cInsgbWFyZ2luOiAnMTBweCAwJyB9XCI+PC9kaXY+XG5cbiAgICA8ZGl2IG56LXJvdyBuekp1c3RpZnk9XCJlbmRcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdG90YWxUZW1wbGF0ZSBsZXQtdG90YWw+5YWxIHt7IHRvdGFsIH19IOmhtTwvbmctdGVtcGxhdGU+XG4gICAgICA8bnotcGFnaW5hdGlvblxuICAgICAgICBbbnpQYWdlSW5kZXhdPVwiMVwiXG4gICAgICAgIFtuelRvdGFsXT1cInBhZ2VUb3RhbFwiXG4gICAgICAgIFtuelBhZ2VTaXplXT1cIjFcIlxuICAgICAgICBbbnpTaXplXT1cIidzbWFsbCdcIlxuICAgICAgICBbbnpTaG93VG90YWxdPVwidG90YWxUZW1wbGF0ZVwiXG4gICAgICAgIG56U2hvd1F1aWNrSnVtcGVyXG4gICAgICAgIChuelBhZ2VJbmRleENoYW5nZSk9XCJvblBhZ2VJbmRleENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L256LXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE56eFByaW50VkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHByaW50VGl0bGUgPSAncGRmJztcbiAgLyoqXG4gICAqIGE0IDc5NHB4MTEyM3B4XG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDgxNDtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMTE0MztcbiAgQElucHV0KCkgZW5hYmxlUHJldmlldyA9IHRydWU7XG4gIEBJbnB1dCgpIHBpeGVsUmF0aW8gPSA4O1xuICBAT3V0cHV0KCkgcGFnZVJlbmRlckNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHZpZXdlcjogQ29yZVZpZXdlciB8IHVuZGVmaW5lZDtcbiAgcGFnZVRvdGFsID0gMDtcblxuICBAVmlld0NoaWxkKCd2aXZWaWV3JylcbiAgcHJpdmF0ZSB2aXZWaWV3UmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihOenhQcmludENvbnRlbnREaXJlY3RpdmUpXG4gIHByaXZhdGUgX3ByaW50RWxRdWVyeUxpc3QhOiBRdWVyeUxpc3Q8Tnp4UHJpbnRDb250ZW50RGlyZWN0aXZlPjtcbiAgcHJpdmF0ZSBfdGl0bGUgPSBkb2N1bWVudC50aXRsZTtcbiAgcHJpdmF0ZSBpZnJhbWVFbCE6IEhUTUxJRnJhbWVFbGVtZW50O1xuICBwcml2YXRlIF9pc1JlbmRlckNvbXBsZXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVJZnJhbWVXcmFwcGVyKCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdlSW5kZXhDaGFuZ2UobnVtOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMudmlld2VyLm5hdmlnYXRlVG9QYWdlKE5hdmlnYXRpb24uRVBBR0UsIG51bSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaW50KCkge1xuICAgIGlmICh0aGlzLl9pc1JlbmRlckNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnByaW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybigncmVuZGluZy4uLicpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUlmcmFtZVdyYXBwZXIoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJZnJhbWVXcmFwcGVyKCkge1xuICAgIGlmICh0aGlzLnZpdlZpZXdSZWYpIHtcbiAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XG5cbiAgICAgIHRoaXMuaWZyYW1lRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgKyAnJztcbiAgICAgIHRoaXMuaWZyYW1lRWwud2lkdGggPSB0aGlzLndpZHRoICsgJyc7XG4gICAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgI2NjYyc7XG4gICAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLmJhY2tncm91bmQgPSAnI2ZmZic7XG5cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYFxuICAgICAgICA8IURPQ1RZUEUgaHRtbD5cbiAgICAgICAgPGh0bWwgZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIiAvPlxuICAgICAgICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcIiAvPlxuICAgICAgICAgICAgPGJhc2UgaHJlZj1cIi9cIiAvPlxuICAgICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0gYm9keSxcbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0gW2RhdGEtdml2bGlvc3R5bGUtdmlld2VyLXZpZXdwb3J0XSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdLFxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBib2R5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICAgIDxzdHlsZSBpZD1cInZpdmxpb3N0eWxlLXBhZ2UtcnVsZXNcIj48L3N0eWxlPlxuICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICA8Ym9keT5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJ2aXZsaW9zdHlsZS12aWV3ZXItdmlld3BvcnRcIj48L2Rpdj5cbiAgICAgICAgICA8L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICAgIGA7XG5cbiAgICAgIHRoaXMuaWZyYW1lRWwuc3JjZG9jID0gdGVtcGxhdGU7XG4gICAgICB0aGlzLnZpdlZpZXdSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmlmcmFtZUVsKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEub25iZWZvcmVwcmludCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLnByaW50VGl0bGU7XG4gICAgICB9O1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5vbmFmdGVycHJpbnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucGFyZW50LmRvY3VtZW50LnRpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICB9O1xuICAgICAgdGhpcy5jcmVhdGVWaXZWaWV3ZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZpdlZpZXdlcigpIHtcbiAgICB0aGlzLmlmcmFtZUVsLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGVsczogTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlW10gPSB0aGlzLl9wcmludEVsUXVlcnlMaXN0LnRvQXJyYXkoKTtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuZ2V0Vml2VGVtcGxhdGVzKGVscyk7XG4gICAgICBjb25zdCBvcHRpb25zOiBTaW5nbGVEb2N1bWVudE9wdGlvbnNbXSA9IFtdO1xuICAgICAgdGVtcGxhdGVzLmZvckVhY2goKHRlbXBsYXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY0Jsb2IgPSBuZXcgQmxvYihbdGVtcGxhdGVdLCB7XG4gICAgICAgICAgdHlwZTogJ3RleHQvaHRtbCcsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBkb2NVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvY0Jsb2IpO1xuICAgICAgICBvcHRpb25zLnB1c2goeyB1cmw6IGRvY1VSTCB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy52aWV3ZXIgPSBuZXcgQ29yZVZpZXdlcihcbiAgICAgICAge1xuICAgICAgICAgIHZpZXdwb3J0RWxlbWVudDogdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Py5kb2N1bWVudC5ib2R5XG4gICAgICAgICAgICAuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYWdlVmlld01vZGU6IFBhZ2VWaWV3TW9kZS5TSU5HTEVfUEFHRSxcbiAgICAgICAgICBwaXhlbFJhdGlvOiB0aGlzLnBpeGVsUmF0aW8sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLnZpZXdlci5sb2FkRG9jdW1lbnQob3B0aW9ucyk7XG4gICAgICB0aGlzLmNyZWF0ZUxpc3RlbmVyKHRoaXMudmlld2VyKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvciA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2Vycm9yOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZVJlYWR5U3RhdGVDaGFuZ2UgPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIHRoaXMuX2lzUmVuZGVyQ29tcGxldGUgPSBmYWxzZTtcbiAgICB0aGlzLnBhZ2VSZW5kZXJDb21wbGV0ZS5lbWl0KGZhbHNlKTtcbiAgICBpZiAodGhpcy52aWV3ZXIgJiYgdGhpcy52aWV3ZXIucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgY29uc3QgaW50ZXJ2YWxUYWcgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsICYmXG4gICAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93ICYmXG4gICAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93LmRvY3VtZW50XG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGltYWdlcyA9XG4gICAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpO1xuXG4gICAgICAgICAgbGV0IGFsbEltYWdlc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghaW1hZ2VzW2ldLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgIGFsbEltYWdlc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFsbEltYWdlc0xvYWRlZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FsbCBpbWFnZXMgaW4gaWZyYW1lIGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHRoaXMucGFnZVJlbmRlckNvbXBsZXRlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLl9pc1JlbmRlckNvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxUYWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlSHlwZXJsaW5rID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlSHlwZXJsaW5rOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUxvYWRlZCA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZUxvYWRlZDo6JywgcGF5bG9hZCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVOYXZpZ2F0aW9uID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICB0aGlzLnBhZ2VUb3RhbCA9IHBheWxvYWQuZXBhZ2VDb3VudDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHByaXZhdGUgY3JlYXRlTGlzdGVuZXIodmlld2VyOiBDb3JlVmlld2VyKSB7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdlcnJvcicsIHRoaXMuaGFuZGxlRXJyb3IpO1xuICAgIHZpZXdlci5hZGRMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHRoaXMuaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdsb2FkZWQnLCB0aGlzLmhhbmRsZUxvYWRlZCk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdoeXBlcmxpbmsnLCB0aGlzLmhhbmRsZUh5cGVybGluayk7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCduYXYnLCB0aGlzLmhhbmRsZU5hdmlnYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnModmlld2VyOiBDb3JlVmlld2VyKSB7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIHRoaXMuaGFuZGxlRXJyb3IpO1xuICAgIHZpZXdlci5yZW1vdmVMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHRoaXMuaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdsb2FkZWQnLCB0aGlzLmhhbmRsZUxvYWRlZCk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdoeXBlcmxpbmsnLCB0aGlzLmhhbmRsZUh5cGVybGluayk7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCduYXYnLCB0aGlzLmhhbmRsZU5hdmlnYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHlsZXMoaWRlbnRpZmllclN0cjogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0eWxlc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3R5bGUnKTtcbiAgICBjb25zdCBsZW5ndGggPSBzdHlsZUVsZW1lbnRzLmxlbmd0aDtcbiAgICBsZXQgaWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWRlbnRpZmllclN0cikpIHtcbiAgICAgIGlkZW50aWZpZXJzID0gWy4uLmlkZW50aWZpZXJTdHJdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZGVudGlmaWVycyA9IFtpZGVudGlmaWVyU3RyXTtcbiAgICB9XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWRlbnRpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBpZiAoc3R5bGVFbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MLmluY2x1ZGVzKHMpKSB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0ZVN0ciA9IHN0eWxlRWxlbWVudHNbaW5kZXhdLm91dGVySFRNTC5yZXBsYWNlKFxuICAgICAgICAgICAgL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZyxcbiAgICAgICAgICAgICcnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzdHlsZXNBcnJheS5wdXNoKGZvcm1hdGVTdHIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlc0FycmF5LmpvaW4oJ1xcclxcbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaXZUZW1wbGF0ZXMoZGlyZWN0aXZlczogTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlW10pIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgZGlyZWN0aXZlcy5mb3JFYWNoKChkKSA9PiB7XG4gICAgICBsZXQgc3R5bGVzID0gJyc7XG4gICAgICBpZiAoZC5pZGVudGlmaWVyU3RyIHx8IGQuaWRlbnRpZmllclN0ci5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN0eWxlcyA9IHRoaXMuZ2V0U3R5bGVzKGQuaWRlbnRpZmllclN0cik7XG4gICAgICB9XG5cbiAgICAgIGxldCBodG1sID0gYFxuICAgICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICAgIDxodG1sPlxuICAgICAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIiAvPlxuICAgICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlfTwvdGl0bGU+XG4gICAgICAgICAgICA8YmFzZSBocmVmPVwiL1wiIC8+XG4gICAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiAvPlxuICAgICAgICAgICAgICR7ZC5jdXN0b21TdHlsZX1cbiAgICAgICAgICAgICAke3N0eWxlc31cbiAgICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgICAke2QuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm91dGVySFRNTH1cbiAgICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgICA8L2h0bWw+XG4gICAgICAgIGA7XG4gICAgICBodG1sID0gaHRtbC5yZXBsYWNlKC88IS0tLS0+L2csICcgJyk7XG4gICAgICB0ZW1wbGF0ZXMucHVzaChodG1sKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZW1wbGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVmlldygpIHtcbiAgICBpZiAodGhpcy52aWV3ZXIpIHtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKHRoaXMudmlld2VyKTtcbiAgICB9XG4gICAgdGhpcy52aXZWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgdGhpcy52aWV3ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksR0FHYixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFFekU7O0dBRUc7QUFzQkgsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0IsWUFBb0IsUUFBa0IsRUFBVSxFQUFxQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF0QjVELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUI7O1dBRUc7UUFDTSxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzNELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFPTixXQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFvSTFCLGdCQUFXLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRU0sMkJBQXNCLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFD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QUM7SUFDakMsQ0FBQzsrR0F2UlUsa0JBQWtCO21HQUFsQixrQkFBa0IsOFFBaUJaLHdCQUF3QixvSUFwQy9COzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDs7NEZBRVUsa0JBQWtCO2tCQXJCOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtpQkFDRjs2R0FFVSxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFNQyxVQUFVO3NCQURqQixTQUFTO3VCQUFDLFNBQVM7Z0JBSVosaUJBQWlCO3NCQUR4QixlQUFlO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIENvcmVWaWV3ZXIsXG4gIE5hdmlnYXRpb24sXG4gIFBhZ2VWaWV3TW9kZSxcbiAgUGF5bG9hZCxcbiAgU2luZ2xlRG9jdW1lbnRPcHRpb25zLFxufSBmcm9tICdAdml2bGlvc3R5bGUvY29yZSc7XG5pbXBvcnQgeyBOenhQcmludENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL256eC1wcmludC1jb250ZW50LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVml2bGlvc3R5bGUg5omT5Y2wXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ256eC1wcmludC12JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbnp4UHJpbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiAjdml2VmlldyBbbmdTdHlsZV09XCJ7IG1hcmdpbjogJzEwcHggMCcgfVwiPjwvZGl2PlxuXG4gICAgPGRpdiBuei1yb3cgbnpKdXN0aWZ5PVwiZW5kXCIgKm5nSWY9XCJlbmFibGVQcmV2aWV3XCI+XG4gICAgICA8bmctdGVtcGxhdGUgI3RvdGFsVGVtcGxhdGUgbGV0LXRvdGFsPuWFsSB7eyB0b3RhbCB9fSDpobU8L25nLXRlbXBsYXRlPlxuICAgICAgPG56LXBhZ2luYXRpb25cbiAgICAgICAgW256UGFnZUluZGV4XT1cIjFcIlxuICAgICAgICBbbnpUb3RhbF09XCJwYWdlVG90YWxcIlxuICAgICAgICBbbnpQYWdlU2l6ZV09XCIxXCJcbiAgICAgICAgW256U2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgW256U2hvd1RvdGFsXT1cInRvdGFsVGVtcGxhdGVcIlxuICAgICAgICBuelNob3dRdWlja0p1bXBlclxuICAgICAgICAobnpQYWdlSW5kZXhDaGFuZ2UpPVwib25QYWdlSW5kZXhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9uei1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOenhQcmludFZDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwcmludFRpdGxlID0gJ3BkZic7XG4gIC8qKlxuICAgKiBhNCA3OTRweDExMjNweFxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSA4MTQ7XG4gIEBJbnB1dCgpIGhlaWdodCA9IDExNDM7XG4gIEBJbnB1dCgpIGVuYWJsZVByZXZpZXcgPSB0cnVlO1xuICBASW5wdXQoKSBwaXhlbFJhdGlvID0gODtcbiAgQE91dHB1dCgpIHBhZ2VSZW5kZXJDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICB2aWV3ZXI6IENvcmVWaWV3ZXIgfCB1bmRlZmluZWQ7XG4gIHBhZ2VUb3RhbCA9IDA7XG5cbiAgQFZpZXdDaGlsZCgndml2VmlldycpXG4gIHByaXZhdGUgdml2Vmlld1JlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlKVxuICBwcml2YXRlIF9wcmludEVsUXVlcnlMaXN0ITogUXVlcnlMaXN0PE56eFByaW50Q29udGVudERpcmVjdGl2ZT47XG4gIHByaXZhdGUgX3RpdGxlID0gZG9jdW1lbnQudGl0bGU7XG4gIHByaXZhdGUgaWZyYW1lRWwhOiBIVE1MSUZyYW1lRWxlbWVudDtcbiAgcHJpdmF0ZSBfaXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUlmcmFtZVdyYXBwZXIoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBvblBhZ2VJbmRleENoYW5nZShudW06IG51bWJlcikge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy52aWV3ZXIubmF2aWdhdGVUb1BhZ2UoTmF2aWdhdGlvbi5FUEFHRSwgbnVtIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgaWYgKHRoaXMuX2lzUmVuZGVyQ29tcGxldGUpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucHJpbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdyZW5kaW5nLi4uJyk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlSWZyYW1lV3JhcHBlcigpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUlmcmFtZVdyYXBwZXIoKSB7XG4gICAgaWYgKHRoaXMudml2Vmlld1JlZikge1xuICAgICAgdGhpcy5jbGVhclZpZXcoKTtcbiAgICAgIGlmICghdGhpcy5lbmFibGVQcmV2aWV3KSB7XG4gICAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0uRklSRUZPWCkge1xuICAgICAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdzdHlsZScsXG4gICAgICAgICAgICAnd2lkdGg6IDFweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyB0b3A6IDA7IG9wYWNpdHk6IDA7IGJvcmRlci13aWR0aDogMDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aXZWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICd2aXNpYmlsaXR5OiBoaWRkZW47IGhlaWdodDogMDsgd2lkdGg6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm9yZGVyOiAwJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pZnJhbWVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5oZWlnaHQgPSB0aGlzLmhlaWdodCArICcnO1xuICAgICAgdGhpcy5pZnJhbWVFbC53aWR0aCA9IHRoaXMud2lkdGggKyAnJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjY2NjJztcbiAgICAgIHRoaXMuaWZyYW1lRWwuc3R5bGUuYmFja2dyb3VuZCA9ICcjZmZmJztcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBgXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICA8aHRtbCBkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZD1cInRydWVcIj5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMFwiIC8+XG4gICAgICAgICAgICA8YmFzZSBocmVmPVwiL1wiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBib2R5LFxuICAgICAgICAgICAgICBodG1sW2RhdGEtdml2bGlvc3R5bGUtcGFnaW5hdGVkXSBbZGF0YS12aXZsaW9zdHlsZS12aWV3ZXItdmlld3BvcnRdIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFtkYXRhLXZpdmxpb3N0eWxlLXBhZ2luYXRlZF0sXG4gICAgICAgICAgICAgIGh0bWxbZGF0YS12aXZsaW9zdHlsZS1wYWdpbmF0ZWRdIGJvZHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgPHN0eWxlIGlkPVwidml2bGlvc3R5bGUtcGFnZS1ydWxlc1wiPjwvc3R5bGU+XG4gICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgPGRpdiBpZD1cInZpdmxpb3N0eWxlLXZpZXdlci12aWV3cG9ydFwiPjwvZGl2PlxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYDtcblxuICAgICAgdGhpcy5pZnJhbWVFbC5zcmNkb2MgPSB0ZW1wbGF0ZTtcbiAgICAgIHRoaXMudml2Vmlld1JlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lRWwpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5vbmJlZm9yZXByaW50ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnBhcmVudC5kb2N1bWVudC50aXRsZSA9IHRoaXMucHJpbnRUaXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLm9uYWZ0ZXJwcmludCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93IS5wYXJlbnQuZG9jdW1lbnQudGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmNyZWF0ZVZpdlZpZXdlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVml2Vmlld2VyKCkge1xuICAgIHRoaXMuaWZyYW1lRWwub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgZWxzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSA9IHRoaXMuX3ByaW50RWxRdWVyeUxpc3QudG9BcnJheSgpO1xuICAgICAgY29uc3QgdGVtcGxhdGVzID0gdGhpcy5nZXRWaXZUZW1wbGF0ZXMoZWxzKTtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFNpbmdsZURvY3VtZW50T3B0aW9uc1tdID0gW107XG4gICAgICB0ZW1wbGF0ZXMuZm9yRWFjaCgodGVtcGxhdGUpID0+IHtcbiAgICAgICAgY29uc3QgZG9jQmxvYiA9IG5ldyBCbG9iKFt0ZW1wbGF0ZV0sIHtcbiAgICAgICAgICB0eXBlOiAndGV4dC9odG1sJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRvY1VSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG9jQmxvYik7XG4gICAgICAgIG9wdGlvbnMucHVzaCh7IHVybDogZG9jVVJMIH0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnZpZXdlciA9IG5ldyBDb3JlVmlld2VyKFxuICAgICAgICB7XG4gICAgICAgICAgdmlld3BvcnRFbGVtZW50OiB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgIC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhZ2VWaWV3TW9kZTogUGFnZVZpZXdNb2RlLlNJTkdMRV9QQUdFLFxuICAgICAgICAgIHBpeGVsUmF0aW86IHRoaXMucGl4ZWxSYXRpbyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMudmlld2VyLmxvYWREb2N1bWVudChvcHRpb25zKTtcbiAgICAgIHRoaXMuY3JlYXRlTGlzdGVuZXIodGhpcy52aWV3ZXIpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnZXJyb3I6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlUmVhZHlTdGF0ZUNoYW5nZSA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgdGhpcy5faXNSZW5kZXJDb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMucGFnZVJlbmRlckNvbXBsZXRlLmVtaXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnZpZXdlciAmJiB0aGlzLnZpZXdlci5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICBjb25zdCBpbnRlcnZhbFRhZyA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuaWZyYW1lRWwgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cgJiZcbiAgICAgICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaW1hZ2VzID1cbiAgICAgICAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJyk7XG5cbiAgICAgICAgICBsZXQgYWxsSW1hZ2VzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGltYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFpbWFnZXNbaV0uY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgYWxsSW1hZ2VzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWxsSW1hZ2VzTG9hZGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQWxsIGltYWdlcyBpbiBpZnJhbWUgbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgdGhpcy5wYWdlUmVuZGVyQ29tcGxldGUuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2lzUmVuZGVyQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFRhZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVIeXBlcmxpbmsgPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVIeXBlcmxpbms6OicsIHBheWxvYWQpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlTG9hZGVkID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICBjb25zb2xlLmxvZygnaGFuZGxlTG9hZGVkOjonLCBwYXlsb2FkKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZU5hdmlnYXRpb24gPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgIHRoaXMucGFnZVRvdGFsID0gcGF5bG9hZC5lcGFnZUNvdW50O1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaXN0ZW5lcih2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLmFkZExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIuYWRkTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycyh2aWV3ZXI6IENvcmVWaWV3ZXIpIHtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgdmlld2VyLnJlbW92ZUxpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgdGhpcy5oYW5kbGVSZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2xvYWRlZCcsIHRoaXMuaGFuZGxlTG9hZGVkKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ2h5cGVybGluaycsIHRoaXMuaGFuZGxlSHlwZXJsaW5rKTtcbiAgICB2aWV3ZXIucmVtb3ZlTGlzdGVuZXIoJ25hdicsIHRoaXMuaGFuZGxlTmF2aWdhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlcyhpZGVudGlmaWVyU3RyOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3R5bGVzQXJyYXk6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3R5bGVFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzdHlsZScpO1xuICAgIGNvbnN0IGxlbmd0aCA9IHN0eWxlRWxlbWVudHMubGVuZ3RoO1xuICAgIGxldCBpZGVudGlmaWVyczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZGVudGlmaWVyU3RyKSkge1xuICAgICAgaWRlbnRpZmllcnMgPSBbLi4uaWRlbnRpZmllclN0cl07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkZW50aWZpZXJzID0gW2lkZW50aWZpZXJTdHJdO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZGVudGlmaWVycy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwuaW5jbHVkZXMocykpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXRlU3RyID0gc3R5bGVFbGVtZW50c1tpbmRleF0ub3V0ZXJIVE1MLnJlcGxhY2UoXG4gICAgICAgICAgICAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApO1xuICAgICAgICAgIHN0eWxlc0FycmF5LnB1c2goZm9ybWF0ZVN0cik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGVzQXJyYXkuam9pbignXFxyXFxuJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFZpdlRlbXBsYXRlcyhkaXJlY3RpdmVzOiBOenhQcmludENvbnRlbnREaXJlY3RpdmVbXSkge1xuICAgIGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICBkaXJlY3RpdmVzLmZvckVhY2goKGQpID0+IHtcbiAgICAgIGxldCBzdHlsZXMgPSAnJztcbiAgICAgIGlmIChkLmlkZW50aWZpZXJTdHIgfHwgZC5pZGVudGlmaWVyU3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3R5bGVzID0gdGhpcy5nZXRTdHlsZXMoZC5pZGVudGlmaWVyU3RyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGh0bWwgPSBgXG4gICAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgICAgPGh0bWw+XG4gICAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgIDxiYXNlIGhyZWY9XCIvXCIgLz5cbiAgICAgICAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICAgICAgICAgJHtkLmN1c3RvbVN0eWxlfVxuICAgICAgICAgICAgICR7c3R5bGVzfVxuICAgICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAgICR7ZC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub3V0ZXJIVE1MfVxuICAgICAgICAgICAgPC9ib2R5PlxuICAgICAgICAgIDwvaHRtbD5cbiAgICAgICAgYDtcbiAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLzwhLS0tLT4vZywgJyAnKTtcbiAgICAgIHRlbXBsYXRlcy5wdXNoKGh0bWwpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXdlcikge1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnModGhpcy52aWV3ZXIpO1xuICAgIH1cbiAgICB0aGlzLnZpdlZpZXdSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcbiAgICB0aGlzLnZpZXdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9pc1JlbmRlckNvbXBsZXRlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i2 from '@angular/common';
|
|
2
2
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Directive, Input, ElementRef, Component, Inject, ViewChild, ContentChild, EventEmitter, Output, ContentChildren, HostListener, NgModule } from '@angular/core';
|
|
5
5
|
import { getElementByTag } from 'ng-zorro-antd-extension/util';
|
|
6
6
|
import * as i1 from '@angular/cdk/platform';
|
|
7
7
|
import { Navigation, CoreViewer, PageViewMode } from '@vivliostyle/core';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i3 from 'ng-zorro-antd/grid';
|
|
9
9
|
import { NzGridModule } from 'ng-zorro-antd/grid';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i4 from 'ng-zorro-antd/pagination';
|
|
11
11
|
import { NzPaginationModule } from 'ng-zorro-antd/pagination';
|
|
12
12
|
|
|
13
13
|
class NzxPrintContentDirective {
|
|
@@ -218,7 +218,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
218
218
|
* Vivliostyle 打印
|
|
219
219
|
*/
|
|
220
220
|
class NzxPrintVComponent {
|
|
221
|
-
constructor(cd) {
|
|
221
|
+
constructor(platform, cd) {
|
|
222
|
+
this.platform = platform;
|
|
222
223
|
this.cd = cd;
|
|
223
224
|
this.printTitle = 'pdf';
|
|
224
225
|
/**
|
|
@@ -303,6 +304,15 @@ class NzxPrintVComponent {
|
|
|
303
304
|
createIframeWrapper() {
|
|
304
305
|
if (this.vivViewRef) {
|
|
305
306
|
this.clearView();
|
|
307
|
+
if (!this.enablePreview) {
|
|
308
|
+
this.vivViewRef.nativeElement.style.visibility = 'hidden';
|
|
309
|
+
if (this.platform.FIREFOX) {
|
|
310
|
+
this.vivViewRef.nativeElement.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
this.vivViewRef.nativeElement.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
314
|
+
}
|
|
315
|
+
}
|
|
306
316
|
this.iframeEl = document.createElement('iframe');
|
|
307
317
|
this.iframeEl.height = this.height + '';
|
|
308
318
|
this.iframeEl.width = this.width + '';
|
|
@@ -445,13 +455,13 @@ class NzxPrintVComponent {
|
|
|
445
455
|
this.viewer = undefined;
|
|
446
456
|
this._isRenderComplete = false;
|
|
447
457
|
}
|
|
448
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
458
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, deps: [{ token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
449
459
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxPrintVComponent, selector: "nzx-print-v", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview", pixelRatio: "pixelRatio" }, outputs: { pageRenderComplete: "pageRenderComplete" }, queries: [{ propertyName: "_printElQueryList", predicate: NzxPrintContentDirective }], viewQueries: [{ propertyName: "vivViewRef", first: true, predicate: ["vivView"], descendants: true }], ngImport: i0, template: `
|
|
450
460
|
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
451
461
|
|
|
452
462
|
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
453
463
|
|
|
454
|
-
<div nz-row nzJustify="end">
|
|
464
|
+
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
455
465
|
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
456
466
|
<nz-pagination
|
|
457
467
|
[nzPageIndex]="1"
|
|
@@ -463,7 +473,7 @@ class NzxPrintVComponent {
|
|
|
463
473
|
(nzPageIndexChange)="onPageIndexChange($event)"
|
|
464
474
|
></nz-pagination>
|
|
465
475
|
</div>
|
|
466
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
476
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }] }); }
|
|
467
477
|
}
|
|
468
478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxPrintVComponent, decorators: [{
|
|
469
479
|
type: Component,
|
|
@@ -474,7 +484,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
474
484
|
|
|
475
485
|
<div #vivView [ngStyle]="{ margin: '10px 0' }"></div>
|
|
476
486
|
|
|
477
|
-
<div nz-row nzJustify="end">
|
|
487
|
+
<div nz-row nzJustify="end" *ngIf="enablePreview">
|
|
478
488
|
<ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>
|
|
479
489
|
<nz-pagination
|
|
480
490
|
[nzPageIndex]="1"
|
|
@@ -488,7 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
488
498
|
</div>
|
|
489
499
|
`,
|
|
490
500
|
}]
|
|
491
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
|
|
501
|
+
}], ctorParameters: () => [{ type: i1.Platform }, { type: i0.ChangeDetectorRef }], propDecorators: { printTitle: [{
|
|
492
502
|
type: Input
|
|
493
503
|
}], width: [{
|
|
494
504
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-zorro-antd-extension-print.mjs","sources":["../../../components/print/nzx-print-content.directive.ts","../../../components/print/nzx-print.component.ts","../../../components/print/nzx-print-v.component.ts","../../../components/print/nzx-print.directive.ts","../../../components/print/nzx-print.module.ts","../../../components/print/public-api.ts","../../../components/print/ng-zorro-antd-extension-print.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[nzxPrintContent]',\n})\nexport class NzxPrintContentDirective {\n @Input() identifierStr: string | string[] = '';\n @Input() customStyle = '';\n constructor(public elementRef: ElementRef) {}\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { getElementByTag } from 'ng-zorro-antd-extension/util';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n/**\n * 使用Paged.js打印\n */\n@Component({\n selector: 'nzx-print',\n template: `\n <ng-content select=\"[nzxPrintHeader]\"></ng-content>\n <div #iframeContainer></div>\n `,\n})\nexport class NzxPrintComponent implements OnInit, AfterViewInit {\n @Input() printTitle = 'pdf';\n /**\n * a4 794px1123px\n */\n @Input() width = 814;\n @Input() height = 1143;\n @Input() enablePreview = true;\n @Input() identifierStr: string | string[] = '';\n @Input() pagedCDN = '';\n\n @ViewChild('iframeContainer', { read: ElementRef, static: true })\n private containerRef!: ElementRef;\n\n @ContentChild(NzxPrintContentDirective, { read: ElementRef, static: true })\n private _printEl!: ElementRef;\n private iframeEl!: HTMLIFrameElement;\n private _title = this.document.title;\n\n private afterPrint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this._title;\n };\n private beforePrint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this.printTitle;\n };\n\n constructor(\n private platform: Platform,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n ngOnInit(): void {\n if (!this.pagedCDN) {\n throw new Error('pagedCDN is required');\n }\n }\n\n ngAfterViewInit(): void {\n this.render();\n }\n\n print() {\n if (this.iframeEl.contentWindow) {\n this.iframeEl.contentWindow.focus();\n this.iframeEl.contentWindow.print();\n }\n }\n\n refresh() {\n setTimeout(() => {\n this.render();\n }, 100);\n }\n\n private render() {\n this.iframeEl = this.document.createElement('iframe');\n this.iframeEl.height = this.height + '';\n this.iframeEl.width = this.width + '';\n this.iframeEl.style.border = '1px solid #ccc';\n this.iframeEl.style.background = '#fff';\n\n if (!this.enablePreview) {\n this.iframeEl.style.visibility = 'hidden';\n if (this.platform.FIREFOX) {\n this.iframeEl.setAttribute(\n 'style',\n 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0'\n );\n } else {\n this.iframeEl.setAttribute(\n 'style',\n 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0'\n );\n }\n }\n if (this.containerRef) {\n this.containerRef.nativeElement.innerHTML = '';\n this.containerRef.nativeElement.appendChild(this.iframeEl);\n }\n\n if (this.iframeEl.contentWindow) {\n this.iframeEl.contentWindow.document.open();\n this.iframeEl.contentWindow.document.write(this.getTemplateStr());\n this.iframeEl.contentWindow.document.close();\n // chorme bug\n this.iframeEl.contentWindow.onbeforeprint = this.beforePrint;\n this.iframeEl.contentWindow.onafterprint = this.afterPrint;\n }\n }\n\n private getTemplateStr() {\n const styles = getElementByTag('style', this.identifierStr);\n\n const scripts = `\n <script src=\"${this.pagedCDN}\"></script>\n <script>\n class RepeatingTableHeaders extends Paged.Handler {\n constructor(chunker, polisher, caller) {\n super(chunker, polisher, caller);\n }\n\n afterPageLayout(pageElement, page, breakToken, chunker) {\n let tables = pageElement.querySelectorAll('table[data-split-from]');\n tables.forEach((table) => {\n let ref = table.dataset.ref;\n let sourceTable = chunker.source.querySelector(\n \"[data-ref='\" + ref + \"']\"\n );\n let header = sourceTable.querySelector('thead');\n if (header) {\n let clonedHeader = header.cloneNode(true);\n table.insertBefore(clonedHeader, table.firstChild);\n }\n });\n }\n }\n Paged.registerHandlers(RepeatingTableHeaders);\n </script>\n `;\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <title>${this.printTitle}</title>\n <base href=\"/\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link\n rel=\"preconnect\"\n href=\"https://winkong-frontend.oss-cn-qingdao.aliyuncs.com\"\n />\n <style>\n ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: #999;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n }\n ::-webkit-scrollbar-thumb:vertical:hover {\n background-color: #666;\n }\n ::-webkit-scrollbar-thumb:vertical:active {\n background-color: #666;\n }\n ::-webkit-scrollbar-button {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background-color: #f1f1f1;\n }\n </style>\n\n ${styles}\n ${scripts}\n </head>\n <body>\n ${this._printEl.nativeElement.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n return html;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n SingleDocumentOptions,\n} from '@vivliostyle/core';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n/**\n * Vivliostyle 打印\n */\n@Component({\n selector: 'nzx-print-v',\n template: `\n <ng-content select=\"[nzxPrintHeader]\"></ng-content>\n\n <div #vivView [ngStyle]=\"{ margin: '10px 0' }\"></div>\n\n <div nz-row nzJustify=\"end\">\n <ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>\n <nz-pagination\n [nzPageIndex]=\"1\"\n [nzTotal]=\"pageTotal\"\n [nzPageSize]=\"1\"\n [nzSize]=\"'small'\"\n [nzShowTotal]=\"totalTemplate\"\n nzShowQuickJumper\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n ></nz-pagination>\n </div>\n `,\n})\nexport class NzxPrintVComponent implements OnDestroy, AfterViewInit {\n @Input() printTitle = 'pdf';\n /**\n * a4 794px1123px\n */\n @Input() width = 814;\n @Input() height = 1143;\n @Input() enablePreview = true;\n @Input() pixelRatio = 8;\n @Output() pageRenderComplete = new EventEmitter<boolean>();\n\n viewer: CoreViewer | undefined;\n pageTotal = 0;\n\n @ViewChild('vivView')\n private vivViewRef!: ElementRef<HTMLDivElement>;\n\n @ContentChildren(NzxPrintContentDirective)\n private _printElQueryList!: QueryList<NzxPrintContentDirective>;\n private _title = document.title;\n private iframeEl!: HTMLIFrameElement;\n private _isRenderComplete = false;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.createIframeWrapper();\n }, 1000);\n }\n\n ngOnDestroy(): void {\n if (this.viewer) {\n this.clearView();\n }\n }\n\n onPageIndexChange(num: number) {\n if (this.viewer) {\n this.viewer.navigateToPage(Navigation.EPAGE, num - 1);\n }\n }\n\n print() {\n if (this._isRenderComplete) {\n this.iframeEl.contentWindow!.print();\n } else {\n console.warn('rending...');\n }\n }\n\n refresh() {\n setTimeout(() => {\n this.createIframeWrapper();\n }, 100);\n }\n\n private createIframeWrapper() {\n if (this.vivViewRef) {\n this.clearView();\n\n this.iframeEl = document.createElement('iframe');\n this.iframeEl.height = this.height + '';\n this.iframeEl.width = this.width + '';\n this.iframeEl.style.border = '1px solid #ccc';\n this.iframeEl.style.background = '#fff';\n\n const template = `\n <!DOCTYPE html>\n <html data-vivliostyle-paginated=\"true\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <base href=\"/\" />\n <title>${this.printTitle}</title>\n <style>\n html[data-vivliostyle-paginated] {\n width: 100%;\n height: 100%;\n }\n html[data-vivliostyle-paginated] body,\n html[data-vivliostyle-paginated] [data-vivliostyle-viewer-viewport] {\n width: 100% !important;\n height: 100% !important;\n background: #fff;\n }\n html[data-vivliostyle-paginated],\n html[data-vivliostyle-paginated] body {\n margin: 0;\n padding: 0;\n }\n </style>\n <style id=\"vivliostyle-page-rules\"></style>\n </head>\n <body>\n <div id=\"vivliostyle-viewer-viewport\"></div>\n </body>\n </html>\n `;\n\n this.iframeEl.srcdoc = template;\n this.vivViewRef.nativeElement.appendChild(this.iframeEl);\n this.iframeEl.contentWindow!.onbeforeprint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this.printTitle;\n };\n this.iframeEl.contentWindow!.onafterprint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this._title;\n };\n this.createVivViewer();\n }\n }\n\n private createVivViewer() {\n this.iframeEl.onload = () => {\n const els: NzxPrintContentDirective[] = this._printElQueryList.toArray();\n const templates = this.getVivTemplates(els);\n const options: SingleDocumentOptions[] = [];\n templates.forEach((template) => {\n const docBlob = new Blob([template], {\n type: 'text/html',\n });\n const docURL = URL.createObjectURL(docBlob);\n options.push({ url: docURL });\n });\n this.viewer = new CoreViewer(\n {\n viewportElement: this.iframeEl.contentWindow?.document.body\n .firstElementChild as HTMLElement,\n },\n {\n pageViewMode: PageViewMode.SINGLE_PAGE,\n pixelRatio: this.pixelRatio,\n }\n );\n this.viewer.loadDocument(options);\n this.createListener(this.viewer);\n };\n }\n\n private handleError = (payload: Payload) => {\n console.log('error::', payload);\n };\n\n private handleReadyStateChange = (payload: Payload) => {\n this._isRenderComplete = false;\n this.pageRenderComplete.emit(false);\n if (this.viewer && this.viewer.readyState === 'complete') {\n const intervalTag = setInterval(() => {\n if (\n this.iframeEl &&\n this.iframeEl.contentWindow &&\n this.iframeEl.contentWindow.document\n ) {\n const images =\n this.iframeEl.contentWindow.document.getElementsByTagName('img');\n\n let allImagesLoaded = true;\n for (let i = 0; i < images.length; i++) {\n if (!images[i].complete) {\n allImagesLoaded = false;\n break;\n }\n }\n if (allImagesLoaded) {\n console.log('All images in iframe loaded successfully');\n this.pageRenderComplete.emit(true);\n this._isRenderComplete = true;\n clearInterval(intervalTag);\n }\n }\n }, 1000);\n }\n };\n\n private handleHyperlink = (payload: Payload) => {\n console.log('handleHyperlink::', payload);\n };\n\n private handleLoaded = (payload: Payload) => {\n console.log('handleLoaded::', payload);\n };\n\n private handleNavigation = (payload: Payload) => {\n this.pageTotal = payload.epageCount;\n this.cd.markForCheck();\n };\n\n private createListener(viewer: CoreViewer) {\n viewer.addListener('error', this.handleError);\n viewer.addListener('readystatechange', this.handleReadyStateChange);\n viewer.addListener('loaded', this.handleLoaded);\n viewer.addListener('hyperlink', this.handleHyperlink);\n viewer.addListener('nav', this.handleNavigation);\n }\n\n private removeListeners(viewer: CoreViewer) {\n viewer.removeListener('error', this.handleError);\n viewer.removeListener('readystatechange', this.handleReadyStateChange);\n viewer.removeListener('loaded', this.handleLoaded);\n viewer.removeListener('hyperlink', this.handleHyperlink);\n viewer.removeListener('nav', this.handleNavigation);\n }\n\n private getStyles(identifierStr: string | string[]): string {\n const stylesArray: string[] = [];\n const styleElements = document.getElementsByTagName('style');\n const length = styleElements.length;\n let identifiers: string[] = [];\n if (Array.isArray(identifierStr)) {\n identifiers = [...identifierStr];\n } else {\n identifiers = [identifierStr];\n }\n for (let index = 0; index < length; index++) {\n identifiers.forEach((s) => {\n if (styleElements[index].outerHTML.includes(s)) {\n const formateStr = styleElements[index].outerHTML.replace(\n /\\/\\*[\\s\\S]*?\\*\\//g,\n ''\n );\n stylesArray.push(formateStr);\n }\n });\n }\n return stylesArray.join('\\r\\n');\n }\n\n private getVivTemplates(directives: NzxPrintContentDirective[]) {\n const templates: string[] = [];\n directives.forEach((d) => {\n let styles = '';\n if (d.identifierStr || d.identifierStr.length > 0) {\n styles = this.getStyles(d.identifierStr);\n }\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <title>${this.printTitle}</title>\n <base href=\"/\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n ${d.customStyle}\n ${styles}\n </head>\n <body>\n ${d.elementRef.nativeElement.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n templates.push(html);\n });\n\n return templates;\n }\n\n private clearView() {\n if (this.viewer) {\n this.removeListeners(this.viewer);\n }\n this.vivViewRef.nativeElement.innerHTML = '';\n this.viewer = undefined;\n this._isRenderComplete = false;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { getElementByTag } from 'ng-zorro-antd-extension/util';\n\n/**\n * 常规打印\n */\n@Directive({\n selector: 'button[nzxPrint]',\n})\nexport class NzxPrintDirective implements OnInit, AfterViewInit {\n @Input() printEl: HTMLElement | string | undefined;\n @Input() printTitle: string | undefined = 'pdf';\n @Input() identifierStr: string | string[] = '';\n private _printEl!: HTMLElement;\n\n ngOnInit(): void {\n if (!this.printEl) {\n throw new Error(\n 'The \"printEl\" input is required for the nzxPrint directive.'\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.getElement();\n }\n\n @HostListener('click')\n private print(): void {\n const newWin = window.open('', '_blank');\n\n if (newWin) {\n const styles = getElementByTag('style', this.identifierStr);\n const links = getElementByTag('link');\n const baseTag = getElementByTag('base');\n\n const scripts = `\n <script>\n window.onload = function () {\n window.print();\n };\n window.onafterprint = function () {\n window.close();\n };\n </script>\n `;\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>${this.printTitle}</title>\n ${baseTag}\n ${links}\n ${styles}\n ${scripts}\n </head>\n <body>\n ${this._printEl.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n newWin.document.open();\n newWin.document.write(html);\n newWin.document.close();\n }\n }\n\n private getElement(): void {\n if (typeof this.printEl === 'string') {\n const el: HTMLElement | null = document.querySelector(this.printEl);\n if (el) {\n this._printEl = el;\n } else {\n throw new Error('printEl is not find');\n }\n } else if (this.printEl instanceof HTMLElement) {\n this._printEl = this.printEl;\n } else {\n throw new Error('printEl is invalid');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NzxPrintComponent } from './nzx-print.component';\nimport { NzxPrintDirective } from './nzx-print.directive';\nimport { NzxPrintVComponent } from './nzx-print-v.component';\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n@NgModule({\n declarations: [\n NzxPrintComponent,\n NzxPrintVComponent,\n NzxPrintDirective,\n NzxPrintContentDirective,\n ],\n imports: [CommonModule, NzGridModule, NzPaginationModule],\n exports: [\n NzxPrintComponent,\n NzxPrintVComponent,\n NzxPrintContentDirective,\n NzxPrintDirective,\n ],\n})\nexport class NzxPrintModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nexport * from './nzx-print.component';\nexport * from './nzx-print-v.component';\nexport * from './nzx-print.directive';\nexport * from './nzx-print.module';\nexport * from './nzx-print-content.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-zorro-antd-extension-print.mjs","sources":["../../../components/print/nzx-print-content.directive.ts","../../../components/print/nzx-print.component.ts","../../../components/print/nzx-print-v.component.ts","../../../components/print/nzx-print.directive.ts","../../../components/print/nzx-print.module.ts","../../../components/print/public-api.ts","../../../components/print/ng-zorro-antd-extension-print.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[nzxPrintContent]',\n})\nexport class NzxPrintContentDirective {\n @Input() identifierStr: string | string[] = '';\n @Input() customStyle = '';\n constructor(public elementRef: ElementRef) {}\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n Inject,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { getElementByTag } from 'ng-zorro-antd-extension/util';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n/**\n * 使用Paged.js打印\n */\n@Component({\n selector: 'nzx-print',\n template: `\n <ng-content select=\"[nzxPrintHeader]\"></ng-content>\n <div #iframeContainer></div>\n `,\n})\nexport class NzxPrintComponent implements OnInit, AfterViewInit {\n @Input() printTitle = 'pdf';\n /**\n * a4 794px1123px\n */\n @Input() width = 814;\n @Input() height = 1143;\n @Input() enablePreview = true;\n @Input() identifierStr: string | string[] = '';\n @Input() pagedCDN = '';\n\n @ViewChild('iframeContainer', { read: ElementRef, static: true })\n private containerRef!: ElementRef;\n\n @ContentChild(NzxPrintContentDirective, { read: ElementRef, static: true })\n private _printEl!: ElementRef;\n private iframeEl!: HTMLIFrameElement;\n private _title = this.document.title;\n\n private afterPrint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this._title;\n };\n private beforePrint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this.printTitle;\n };\n\n constructor(\n private platform: Platform,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n ngOnInit(): void {\n if (!this.pagedCDN) {\n throw new Error('pagedCDN is required');\n }\n }\n\n ngAfterViewInit(): void {\n this.render();\n }\n\n print() {\n if (this.iframeEl.contentWindow) {\n this.iframeEl.contentWindow.focus();\n this.iframeEl.contentWindow.print();\n }\n }\n\n refresh() {\n setTimeout(() => {\n this.render();\n }, 100);\n }\n\n private render() {\n this.iframeEl = this.document.createElement('iframe');\n this.iframeEl.height = this.height + '';\n this.iframeEl.width = this.width + '';\n this.iframeEl.style.border = '1px solid #ccc';\n this.iframeEl.style.background = '#fff';\n\n if (!this.enablePreview) {\n this.iframeEl.style.visibility = 'hidden';\n if (this.platform.FIREFOX) {\n this.iframeEl.setAttribute(\n 'style',\n 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0'\n );\n } else {\n this.iframeEl.setAttribute(\n 'style',\n 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0'\n );\n }\n }\n if (this.containerRef) {\n this.containerRef.nativeElement.innerHTML = '';\n this.containerRef.nativeElement.appendChild(this.iframeEl);\n }\n\n if (this.iframeEl.contentWindow) {\n this.iframeEl.contentWindow.document.open();\n this.iframeEl.contentWindow.document.write(this.getTemplateStr());\n this.iframeEl.contentWindow.document.close();\n // chorme bug\n this.iframeEl.contentWindow.onbeforeprint = this.beforePrint;\n this.iframeEl.contentWindow.onafterprint = this.afterPrint;\n }\n }\n\n private getTemplateStr() {\n const styles = getElementByTag('style', this.identifierStr);\n\n const scripts = `\n <script src=\"${this.pagedCDN}\"></script>\n <script>\n class RepeatingTableHeaders extends Paged.Handler {\n constructor(chunker, polisher, caller) {\n super(chunker, polisher, caller);\n }\n\n afterPageLayout(pageElement, page, breakToken, chunker) {\n let tables = pageElement.querySelectorAll('table[data-split-from]');\n tables.forEach((table) => {\n let ref = table.dataset.ref;\n let sourceTable = chunker.source.querySelector(\n \"[data-ref='\" + ref + \"']\"\n );\n let header = sourceTable.querySelector('thead');\n if (header) {\n let clonedHeader = header.cloneNode(true);\n table.insertBefore(clonedHeader, table.firstChild);\n }\n });\n }\n }\n Paged.registerHandlers(RepeatingTableHeaders);\n </script>\n `;\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <title>${this.printTitle}</title>\n <base href=\"/\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link\n rel=\"preconnect\"\n href=\"https://winkong-frontend.oss-cn-qingdao.aliyuncs.com\"\n />\n <style>\n ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: #999;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n }\n ::-webkit-scrollbar-thumb:vertical:hover {\n background-color: #666;\n }\n ::-webkit-scrollbar-thumb:vertical:active {\n background-color: #666;\n }\n ::-webkit-scrollbar-button {\n display: none;\n }\n ::-webkit-scrollbar-track {\n background-color: #f1f1f1;\n }\n </style>\n\n ${styles}\n ${scripts}\n </head>\n <body>\n ${this._printEl.nativeElement.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n return html;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n SingleDocumentOptions,\n} from '@vivliostyle/core';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n/**\n * Vivliostyle 打印\n */\n@Component({\n selector: 'nzx-print-v',\n template: `\n <ng-content select=\"[nzxPrintHeader]\"></ng-content>\n\n <div #vivView [ngStyle]=\"{ margin: '10px 0' }\"></div>\n\n <div nz-row nzJustify=\"end\" *ngIf=\"enablePreview\">\n <ng-template #totalTemplate let-total>共 {{ total }} 页</ng-template>\n <nz-pagination\n [nzPageIndex]=\"1\"\n [nzTotal]=\"pageTotal\"\n [nzPageSize]=\"1\"\n [nzSize]=\"'small'\"\n [nzShowTotal]=\"totalTemplate\"\n nzShowQuickJumper\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n ></nz-pagination>\n </div>\n `,\n})\nexport class NzxPrintVComponent implements OnDestroy, AfterViewInit {\n @Input() printTitle = 'pdf';\n /**\n * a4 794px1123px\n */\n @Input() width = 814;\n @Input() height = 1143;\n @Input() enablePreview = true;\n @Input() pixelRatio = 8;\n @Output() pageRenderComplete = new EventEmitter<boolean>();\n\n viewer: CoreViewer | undefined;\n pageTotal = 0;\n\n @ViewChild('vivView')\n private vivViewRef!: ElementRef<HTMLDivElement>;\n\n @ContentChildren(NzxPrintContentDirective)\n private _printElQueryList!: QueryList<NzxPrintContentDirective>;\n private _title = document.title;\n private iframeEl!: HTMLIFrameElement;\n private _isRenderComplete = false;\n\n constructor(private platform: Platform, private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.createIframeWrapper();\n }, 1000);\n }\n\n ngOnDestroy(): void {\n if (this.viewer) {\n this.clearView();\n }\n }\n\n onPageIndexChange(num: number) {\n if (this.viewer) {\n this.viewer.navigateToPage(Navigation.EPAGE, num - 1);\n }\n }\n\n print() {\n if (this._isRenderComplete) {\n this.iframeEl.contentWindow!.print();\n } else {\n console.warn('rending...');\n }\n }\n\n refresh() {\n setTimeout(() => {\n this.createIframeWrapper();\n }, 100);\n }\n\n private createIframeWrapper() {\n if (this.vivViewRef) {\n this.clearView();\n if (!this.enablePreview) {\n this.vivViewRef.nativeElement.style.visibility = 'hidden';\n if (this.platform.FIREFOX) {\n this.vivViewRef.nativeElement.setAttribute(\n 'style',\n 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0'\n );\n } else {\n this.vivViewRef.nativeElement.setAttribute(\n 'style',\n 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0'\n );\n }\n }\n\n this.iframeEl = document.createElement('iframe');\n this.iframeEl.height = this.height + '';\n this.iframeEl.width = this.width + '';\n this.iframeEl.style.border = '1px solid #ccc';\n this.iframeEl.style.background = '#fff';\n\n const template = `\n <!DOCTYPE html>\n <html data-vivliostyle-paginated=\"true\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <base href=\"/\" />\n <title>${this.printTitle}</title>\n <style>\n html[data-vivliostyle-paginated] {\n width: 100%;\n height: 100%;\n }\n html[data-vivliostyle-paginated] body,\n html[data-vivliostyle-paginated] [data-vivliostyle-viewer-viewport] {\n width: 100% !important;\n height: 100% !important;\n background: #fff;\n }\n html[data-vivliostyle-paginated],\n html[data-vivliostyle-paginated] body {\n margin: 0;\n padding: 0;\n }\n </style>\n <style id=\"vivliostyle-page-rules\"></style>\n </head>\n <body>\n <div id=\"vivliostyle-viewer-viewport\"></div>\n </body>\n </html>\n `;\n\n this.iframeEl.srcdoc = template;\n this.vivViewRef.nativeElement.appendChild(this.iframeEl);\n this.iframeEl.contentWindow!.onbeforeprint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this.printTitle;\n };\n this.iframeEl.contentWindow!.onafterprint = () => {\n this.iframeEl.contentWindow!.parent.document.title = this._title;\n };\n this.createVivViewer();\n }\n }\n\n private createVivViewer() {\n this.iframeEl.onload = () => {\n const els: NzxPrintContentDirective[] = this._printElQueryList.toArray();\n const templates = this.getVivTemplates(els);\n const options: SingleDocumentOptions[] = [];\n templates.forEach((template) => {\n const docBlob = new Blob([template], {\n type: 'text/html',\n });\n const docURL = URL.createObjectURL(docBlob);\n options.push({ url: docURL });\n });\n this.viewer = new CoreViewer(\n {\n viewportElement: this.iframeEl.contentWindow?.document.body\n .firstElementChild as HTMLElement,\n },\n {\n pageViewMode: PageViewMode.SINGLE_PAGE,\n pixelRatio: this.pixelRatio,\n }\n );\n this.viewer.loadDocument(options);\n this.createListener(this.viewer);\n };\n }\n\n private handleError = (payload: Payload) => {\n console.log('error::', payload);\n };\n\n private handleReadyStateChange = (payload: Payload) => {\n this._isRenderComplete = false;\n this.pageRenderComplete.emit(false);\n if (this.viewer && this.viewer.readyState === 'complete') {\n const intervalTag = setInterval(() => {\n if (\n this.iframeEl &&\n this.iframeEl.contentWindow &&\n this.iframeEl.contentWindow.document\n ) {\n const images =\n this.iframeEl.contentWindow.document.getElementsByTagName('img');\n\n let allImagesLoaded = true;\n for (let i = 0; i < images.length; i++) {\n if (!images[i].complete) {\n allImagesLoaded = false;\n break;\n }\n }\n if (allImagesLoaded) {\n console.log('All images in iframe loaded successfully');\n this.pageRenderComplete.emit(true);\n this._isRenderComplete = true;\n clearInterval(intervalTag);\n }\n }\n }, 1000);\n }\n };\n\n private handleHyperlink = (payload: Payload) => {\n console.log('handleHyperlink::', payload);\n };\n\n private handleLoaded = (payload: Payload) => {\n console.log('handleLoaded::', payload);\n };\n\n private handleNavigation = (payload: Payload) => {\n this.pageTotal = payload.epageCount;\n this.cd.markForCheck();\n };\n\n private createListener(viewer: CoreViewer) {\n viewer.addListener('error', this.handleError);\n viewer.addListener('readystatechange', this.handleReadyStateChange);\n viewer.addListener('loaded', this.handleLoaded);\n viewer.addListener('hyperlink', this.handleHyperlink);\n viewer.addListener('nav', this.handleNavigation);\n }\n\n private removeListeners(viewer: CoreViewer) {\n viewer.removeListener('error', this.handleError);\n viewer.removeListener('readystatechange', this.handleReadyStateChange);\n viewer.removeListener('loaded', this.handleLoaded);\n viewer.removeListener('hyperlink', this.handleHyperlink);\n viewer.removeListener('nav', this.handleNavigation);\n }\n\n private getStyles(identifierStr: string | string[]): string {\n const stylesArray: string[] = [];\n const styleElements = document.getElementsByTagName('style');\n const length = styleElements.length;\n let identifiers: string[] = [];\n if (Array.isArray(identifierStr)) {\n identifiers = [...identifierStr];\n } else {\n identifiers = [identifierStr];\n }\n for (let index = 0; index < length; index++) {\n identifiers.forEach((s) => {\n if (styleElements[index].outerHTML.includes(s)) {\n const formateStr = styleElements[index].outerHTML.replace(\n /\\/\\*[\\s\\S]*?\\*\\//g,\n ''\n );\n stylesArray.push(formateStr);\n }\n });\n }\n return stylesArray.join('\\r\\n');\n }\n\n private getVivTemplates(directives: NzxPrintContentDirective[]) {\n const templates: string[] = [];\n directives.forEach((d) => {\n let styles = '';\n if (d.identifierStr || d.identifierStr.length > 0) {\n styles = this.getStyles(d.identifierStr);\n }\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <title>${this.printTitle}</title>\n <base href=\"/\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n ${d.customStyle}\n ${styles}\n </head>\n <body>\n ${d.elementRef.nativeElement.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n templates.push(html);\n });\n\n return templates;\n }\n\n private clearView() {\n if (this.viewer) {\n this.removeListeners(this.viewer);\n }\n this.vivViewRef.nativeElement.innerHTML = '';\n this.viewer = undefined;\n this._isRenderComplete = false;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { getElementByTag } from 'ng-zorro-antd-extension/util';\n\n/**\n * 常规打印\n */\n@Directive({\n selector: 'button[nzxPrint]',\n})\nexport class NzxPrintDirective implements OnInit, AfterViewInit {\n @Input() printEl: HTMLElement | string | undefined;\n @Input() printTitle: string | undefined = 'pdf';\n @Input() identifierStr: string | string[] = '';\n private _printEl!: HTMLElement;\n\n ngOnInit(): void {\n if (!this.printEl) {\n throw new Error(\n 'The \"printEl\" input is required for the nzxPrint directive.'\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.getElement();\n }\n\n @HostListener('click')\n private print(): void {\n const newWin = window.open('', '_blank');\n\n if (newWin) {\n const styles = getElementByTag('style', this.identifierStr);\n const links = getElementByTag('link');\n const baseTag = getElementByTag('base');\n\n const scripts = `\n <script>\n window.onload = function () {\n window.print();\n };\n window.onafterprint = function () {\n window.close();\n };\n </script>\n `;\n\n let html = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>${this.printTitle}</title>\n ${baseTag}\n ${links}\n ${styles}\n ${scripts}\n </head>\n <body>\n ${this._printEl.outerHTML}\n </body>\n </html>\n `;\n html = html.replace(/<!---->/g, ' ');\n newWin.document.open();\n newWin.document.write(html);\n newWin.document.close();\n }\n }\n\n private getElement(): void {\n if (typeof this.printEl === 'string') {\n const el: HTMLElement | null = document.querySelector(this.printEl);\n if (el) {\n this._printEl = el;\n } else {\n throw new Error('printEl is not find');\n }\n } else if (this.printEl instanceof HTMLElement) {\n this._printEl = this.printEl;\n } else {\n throw new Error('printEl is invalid');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NzxPrintComponent } from './nzx-print.component';\nimport { NzxPrintDirective } from './nzx-print.directive';\nimport { NzxPrintVComponent } from './nzx-print-v.component';\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzxPrintContentDirective } from './nzx-print-content.directive';\n\n@NgModule({\n declarations: [\n NzxPrintComponent,\n NzxPrintVComponent,\n NzxPrintDirective,\n NzxPrintContentDirective,\n ],\n imports: [CommonModule, NzGridModule, NzPaginationModule],\n exports: [\n NzxPrintComponent,\n NzxPrintVComponent,\n NzxPrintContentDirective,\n NzxPrintDirective,\n ],\n})\nexport class NzxPrintModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nexport * from './nzx-print.component';\nexport * from './nzx-print-v.component';\nexport * from './nzx-print.directive';\nexport * from './nzx-print.module';\nexport * from './nzx-print-content.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;MAKa,wBAAwB,CAAA;AAGnC,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAFhC,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC;QACtC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;KACmB;+GAHlC,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;+EAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;ACQR;;AAEG;MAQU,iBAAiB,CAAA;IA0B5B,WACU,CAAA,QAAkB,EACA,QAAkB,EAAA;QADpC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QA3BrC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAC5B;;AAEG;QACM,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;QACZ,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACrB,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC;QACtC,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAQf,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAG,MAAK;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACnE,SAAC,CAAC;QACM,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AACvE,SAAC,CAAC;KAKE;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACrC;KACF;IAED,OAAO,GAAA;QACL,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,EAAE,GAAG,CAAC,CAAC;KACT;IAEO,MAAM,GAAA;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC1C,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,OAAO,EACP,iHAAiH,CAClH,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,OAAO,EACP,wEAAwE,CACzE,CAAC;aACH;SACF;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5D;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC5C,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;;YAE7C,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;SAC5D;KACF;IAEO,cAAc,GAAA;QACpB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAE5D,QAAA,MAAM,OAAO,GAAG,CAAA;AACG,qBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;OAwB7B,CAAC;AAEJ,QAAA,IAAI,IAAI,GAAG,CAAA;;;;;AAKI,iBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+BpB,MAAM,CAAA;cACN,OAAO,CAAA;;;AAGP,YAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAA;;;OAG5C,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;AAtKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,0CA4BlB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA5BP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qPAcd,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAHpB,UAAU,EAhBtC,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,EAAA,CAAA;AACF,iBAAA,CAAA;;0BA6BI,MAAM;2BAAC,QAAQ,CAAA;yCA3BT,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGE,YAAY,EAAA,CAAA;sBADnB,SAAS;uBAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIxD,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AChB5E;;AAEG;MAsBU,kBAAkB,CAAA;IAuB7B,WAAoB,CAAA,QAAkB,EAAU,EAAqB,EAAA;QAAjD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAtB5D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAC5B;;AAEG;QACM,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;QACZ,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AACd,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;QAG3D,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;AAON,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAExB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAoI1B,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,OAAgB,KAAI;AACzC,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAClC,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,OAAgB,KAAI;AACpD,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;AACxD,gBAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAK;oBACnC,IACE,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3B,wBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EACpC;AACA,wBAAA,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;wBAEnE,IAAI,eAAe,GAAG,IAAI,CAAC;AAC3B,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACtC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gCACvB,eAAe,GAAG,KAAK,CAAC;gCACxB,MAAM;6BACP;yBACF;wBACD,IAAI,eAAe,EAAE;AACnB,4BAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACxD,4BAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,4BAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;4BAC9B,aAAa,CAAC,WAAW,CAAC,CAAC;yBAC5B;qBACF;iBACF,EAAE,IAAI,CAAC,CAAC;aACV;AACH,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,OAAgB,KAAI;AAC7C,YAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC5C,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,OAAgB,KAAI;AAC1C,YAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACzC,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,OAAgB,KAAI;AAC9C,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;AACzB,SAAC,CAAC;KAhLuE;IAEzE,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,EAAE,IAAI,CAAC,CAAC;KACV;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;AAED,IAAA,iBAAiB,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;SACvD;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,KAAK,EAAE,CAAC;SACtC;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5B;KACF;IAED,OAAO,GAAA;QACL,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KACT;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC1D,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CACxC,OAAO,EACP,iHAAiH,CAClH,CAAC;iBACH;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CACxC,OAAO,EACP,wEAAwE,CACzE,CAAC;iBACH;aACF;YAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;AAExC,YAAA,MAAM,QAAQ,GAAG,CAAA;;;;;;;AAOF,mBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;OAwB7B,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,aAAa,GAAG,MAAK;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AACvE,aAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,YAAY,GAAG,MAAK;AAC/C,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACnE,aAAC,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAK;YAC1B,MAAM,GAAG,GAA+B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,OAAO,GAA4B,EAAE,CAAC;AAC5C,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAC7B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;AACnC,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAC1B;gBACE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI;qBACxD,iBAAgC;aACpC,EACD;gBACE,YAAY,EAAE,YAAY,CAAC,WAAW;gBACtC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,aAAA,CACF,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,SAAC,CAAC;KACH;AAkDO,IAAA,cAAc,CAAC,MAAkB,EAAA;QACvC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClD;AAEO,IAAA,eAAe,CAAC,MAAkB,EAAA;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACrD;AAEO,IAAA,SAAS,CAAC,aAAgC,EAAA;QAChD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACpC,IAAI,WAAW,GAAa,EAAE,CAAC;AAC/B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AAChC,YAAA,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;SAClC;aAAM;AACL,YAAA,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;SAC/B;AACD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AAC3C,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxB,gBAAA,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC9C,oBAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CACvD,mBAAmB,EACnB,EAAE,CACH,CAAC;AACF,oBAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC9B;AACH,aAAC,CAAC,CAAC;SACJ;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjC;AAEO,IAAA,eAAe,CAAC,UAAsC,EAAA;QAC5D,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YACvB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;aAC1C;AAED,YAAA,IAAI,IAAI,GAAG,CAAA;;;;;AAKI,mBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;;AAGrB,aAAA,EAAA,CAAC,CAAC,WAAW,CAAA;eACb,MAAM,CAAA;;;AAGL,cAAA,EAAA,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAA;;;SAG3C,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACrC,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,SAAS,CAAC;KAClB;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;+GAvRU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAiBZ,wBAAwB,EApC/B,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;AACF,iBAAA,CAAA;6GAEU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAMC,UAAU,EAAA,CAAA;sBADjB,SAAS;uBAAC,SAAS,CAAA;gBAIZ,iBAAiB,EAAA,CAAA;sBADxB,eAAe;uBAAC,wBAAwB,CAAA;;;ACvD3C;;AAEG;MAIU,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;QAKW,IAAU,CAAA,UAAA,GAAuB,KAAK,CAAC;QACvC,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC;AAuEhD,KAAA;IApEC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;SACH;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAGO,KAAK,GAAA;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,MAAM,EAAE;YACV,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5D,YAAA,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACtC,YAAA,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAExC,YAAA,MAAM,OAAO,GAAG,CAAA;;;;;;;;;OASf,CAAC;AAEF,YAAA,IAAI,IAAI,GAAG,CAAA;;;;AAII,mBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;cACtB,OAAO,CAAA;cACP,KAAK,CAAA;cACL,MAAM,CAAA;cACN,OAAO,CAAA;;;cAGP,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;;;OAG9B,CAAC;YACF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACrC,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvB,YAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB;KACF;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YACpC,MAAM,EAAE,GAAuB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACpB;iBAAM;AACL,gBAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;aACxC;SACF;AAAM,aAAA,IAAI,IAAI,CAAC,OAAO,YAAY,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;SAC9B;aAAM;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;KACF;+GAzEU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;8BAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAgBE,KAAK,EAAA,CAAA;sBADZ,YAAY;uBAAC,OAAO,CAAA;;;MCTV,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAbvB,iBAAiB;YACjB,kBAAkB;YAClB,iBAAiB;AACjB,YAAA,wBAAwB,aAEhB,YAAY,EAAE,YAAY,EAAE,kBAAkB,aAEtD,iBAAiB;YACjB,kBAAkB;YAClB,wBAAwB;YACxB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EARf,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQ7C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAf1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,kBAAkB;wBAClB,iBAAiB;wBACjB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC;AACzD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,kBAAkB;wBAClB,wBAAwB;wBACxB,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;ACvBD;;;AAGG;;ACHH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
3
|
import { CoreViewer } from '@vivliostyle/core';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Vivliostyle 打印
|
|
6
7
|
*/
|
|
7
8
|
export declare class NzxPrintVComponent implements OnDestroy, AfterViewInit {
|
|
9
|
+
private platform;
|
|
8
10
|
private cd;
|
|
9
11
|
printTitle: string;
|
|
10
12
|
/**
|
|
@@ -22,7 +24,7 @@ export declare class NzxPrintVComponent implements OnDestroy, AfterViewInit {
|
|
|
22
24
|
private _title;
|
|
23
25
|
private iframeEl;
|
|
24
26
|
private _isRenderComplete;
|
|
25
|
-
constructor(cd: ChangeDetectorRef);
|
|
27
|
+
constructor(platform: Platform, cd: ChangeDetectorRef);
|
|
26
28
|
ngAfterViewInit(): void;
|
|
27
29
|
ngOnDestroy(): void;
|
|
28
30
|
onPageIndexChange(num: number): void;
|