ng-zorro-antd-extension 17.0.2 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/print/ng-zorro-antd-extension-print.mjs +5 -0
- package/esm2022/print/nzx-print.component.mjs +180 -0
- package/esm2022/print/nzx-print.directive.mjs +88 -0
- package/esm2022/print/nzx-print.module.mjs +25 -0
- package/esm2022/print/public-api.mjs +8 -0
- package/esm2022/print/util.mjs +9 -0
- package/fesm2022/ng-zorro-antd-extension-print.mjs +305 -0
- package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -0
- package/package.json +13 -7
- package/print/index.d.ts +5 -0
- package/print/nzx-print.component.d.ts +34 -0
- package/print/nzx-print.directive.d.ts +16 -0
- package/print/nzx-print.module.d.ts +9 -0
- package/print/public-api.d.ts +7 -0
- package/print/util.d.ts +1 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctem9ycm8tYW50ZC1leHRlbnNpb24tcHJpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3ByaW50L25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uLXByaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Component, ContentChild, Directive, ElementRef, Inject, Input, } from '@angular/core';
|
|
3
|
+
import { getElementTag } from './util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/platform";
|
|
6
|
+
export class NzxPrintContentDirective {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintContentDirective, selector: "[nzxPrintContent]", ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: '[nzxPrintContent]',
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
/**
|
|
17
|
+
* 使用Paged.js打印
|
|
18
|
+
*/
|
|
19
|
+
export class NzxPrintComponent {
|
|
20
|
+
constructor(platform, document) {
|
|
21
|
+
this.platform = platform;
|
|
22
|
+
this.document = document;
|
|
23
|
+
this.printTitle = 'pdf';
|
|
24
|
+
/**
|
|
25
|
+
* a4 794px1123px
|
|
26
|
+
*/
|
|
27
|
+
this.width = 814;
|
|
28
|
+
this.height = 1143;
|
|
29
|
+
this.enablePreview = true;
|
|
30
|
+
this._title = this.document.title;
|
|
31
|
+
this.afterPrint = () => {
|
|
32
|
+
this.iframeEl.contentWindow.parent.document.title = this._title;
|
|
33
|
+
};
|
|
34
|
+
this.beforePrint = () => {
|
|
35
|
+
this.iframeEl.contentWindow.parent.document.title = this.printTitle;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
ngAfterViewInit() {
|
|
39
|
+
this.render();
|
|
40
|
+
}
|
|
41
|
+
print() {
|
|
42
|
+
if (this.iframeEl.contentWindow) {
|
|
43
|
+
this.iframeEl.contentWindow.focus();
|
|
44
|
+
this.iframeEl.contentWindow.print();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
refresh() {
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
this.render();
|
|
50
|
+
}, 100);
|
|
51
|
+
}
|
|
52
|
+
render() {
|
|
53
|
+
const container = this.document.getElementById('nzx-print-iframe-content');
|
|
54
|
+
this.iframeEl = this.document.createElement('iframe');
|
|
55
|
+
this.iframeEl.height = this.height + '';
|
|
56
|
+
this.iframeEl.width = this.width + '';
|
|
57
|
+
if (!this.enablePreview) {
|
|
58
|
+
this.iframeEl.style.visibility = 'hidden';
|
|
59
|
+
if (this.platform.FIREFOX) {
|
|
60
|
+
this.iframeEl.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.iframeEl.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (container) {
|
|
67
|
+
container.innerHTML = '';
|
|
68
|
+
container.appendChild(this.iframeEl);
|
|
69
|
+
}
|
|
70
|
+
if (this.iframeEl.contentWindow) {
|
|
71
|
+
this.iframeEl.contentWindow.document.open();
|
|
72
|
+
this.iframeEl.contentWindow.document.write(this.getTemplateStr());
|
|
73
|
+
this.iframeEl.contentWindow.document.close();
|
|
74
|
+
// chorme bug
|
|
75
|
+
this.iframeEl.contentWindow.onbeforeprint = this.beforePrint;
|
|
76
|
+
this.iframeEl.contentWindow.onafterprint = this.afterPrint;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
getTemplateStr() {
|
|
80
|
+
const styles = getElementTag('style');
|
|
81
|
+
const scripts = `
|
|
82
|
+
<script src="https://winkong-frontend.oss-cn-qingdao.aliyuncs.com/javascript/paged/paged.polyfill.min.js"></script>
|
|
83
|
+
<script>
|
|
84
|
+
class RepeatingTableHeaders extends Paged.Handler {
|
|
85
|
+
constructor(chunker, polisher, caller) {
|
|
86
|
+
super(chunker, polisher, caller);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
afterPageLayout(pageElement, page, breakToken, chunker) {
|
|
90
|
+
let tables = pageElement.querySelectorAll('table[data-split-from]');
|
|
91
|
+
tables.forEach((table) => {
|
|
92
|
+
let ref = table.dataset.ref;
|
|
93
|
+
let sourceTable = chunker.source.querySelector(
|
|
94
|
+
"[data-ref='" + ref + "']"
|
|
95
|
+
);
|
|
96
|
+
let header = sourceTable.querySelector('thead');
|
|
97
|
+
if (header) {
|
|
98
|
+
let clonedHeader = header.cloneNode(true);
|
|
99
|
+
table.insertBefore(clonedHeader, table.firstChild);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
Paged.registerHandlers(RepeatingTableHeaders);
|
|
105
|
+
</script>
|
|
106
|
+
`;
|
|
107
|
+
const html = `
|
|
108
|
+
<!DOCTYPE html>
|
|
109
|
+
<html>
|
|
110
|
+
<head>
|
|
111
|
+
<meta charset="utf-8" />
|
|
112
|
+
<title>${this.printTitle}</title>
|
|
113
|
+
<base href="/" />
|
|
114
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
115
|
+
<link
|
|
116
|
+
rel="preconnect"
|
|
117
|
+
href="https://winkong-frontend.oss-cn-qingdao.aliyuncs.com"
|
|
118
|
+
/>
|
|
119
|
+
<style>
|
|
120
|
+
::-webkit-scrollbar {
|
|
121
|
+
width: 5px;
|
|
122
|
+
height: 5px;
|
|
123
|
+
}
|
|
124
|
+
::-webkit-scrollbar-thumb {
|
|
125
|
+
background-color: #999;
|
|
126
|
+
-webkit-border-radius: 5px;
|
|
127
|
+
border-radius: 5px;
|
|
128
|
+
}
|
|
129
|
+
::-webkit-scrollbar-thumb:vertical:hover {
|
|
130
|
+
background-color: #666;
|
|
131
|
+
}
|
|
132
|
+
::-webkit-scrollbar-thumb:vertical:active {
|
|
133
|
+
background-color: #666;
|
|
134
|
+
}
|
|
135
|
+
::-webkit-scrollbar-button {
|
|
136
|
+
display: none;
|
|
137
|
+
}
|
|
138
|
+
::-webkit-scrollbar-track {
|
|
139
|
+
background-color: #f1f1f1;
|
|
140
|
+
}
|
|
141
|
+
</style>
|
|
142
|
+
|
|
143
|
+
${styles}
|
|
144
|
+
${scripts}
|
|
145
|
+
</head>
|
|
146
|
+
<body>
|
|
147
|
+
${this._printEl.nativeElement.outerHTML}
|
|
148
|
+
</body>
|
|
149
|
+
</html>
|
|
150
|
+
`;
|
|
151
|
+
return html;
|
|
152
|
+
}
|
|
153
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintComponent, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
154
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintComponent, selector: "nzx-print", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview" }, queries: [{ propertyName: "_printEl", first: true, predicate: NzxPrintContentDirective, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
|
|
155
|
+
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
156
|
+
<div id="nzx-print-iframe-content"></div>
|
|
157
|
+
`, isInline: true, styles: ["#nzx-print-iframe-content iframe{background:#fff;border:1px solid #ccc}\n"] }); }
|
|
158
|
+
}
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintComponent, decorators: [{
|
|
160
|
+
type: Component,
|
|
161
|
+
args: [{ selector: 'nzx-print', template: `
|
|
162
|
+
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
163
|
+
<div id="nzx-print-iframe-content"></div>
|
|
164
|
+
`, styles: ["#nzx-print-iframe-content iframe{background:#fff;border:1px solid #ccc}\n"] }]
|
|
165
|
+
}], ctorParameters: () => [{ type: i1.Platform }, { type: Document, decorators: [{
|
|
166
|
+
type: Inject,
|
|
167
|
+
args: [DOCUMENT]
|
|
168
|
+
}] }], propDecorators: { printTitle: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], width: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], height: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], enablePreview: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], _printEl: [{
|
|
177
|
+
type: ContentChild,
|
|
178
|
+
args: [NzxPrintContentDirective, { read: ElementRef, static: true }]
|
|
179
|
+
}] } });
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvbnp4LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs7QUFHRDs7R0FFRztBQWtCSCxNQUFNLE9BQU8saUJBQWlCO0lBcUI1QixZQUNVLFFBQWtCLEVBQ0EsUUFBa0I7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNBLGFBQVEsR0FBUixRQUFRLENBQVU7UUF0QnJDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUI7O1dBRUc7UUFDTSxVQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBS3RCLFdBQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUU3QixlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkUsQ0FBQyxDQUFDO1FBQ00sZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFj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QXVCbEIsUUFBUTtrR0F2QlAsaUJBQWlCLCtMQVNkLHdCQUF3QiwyQkFBVSxVQUFVLDJDQXhCaEQ7OztHQUdUOzsyRkFZVSxpQkFBaUI7a0JBakI3QixTQUFTOytCQUNFLFdBQVcsWUFDWDs7O0dBR1Q7OzBCQW1DRSxNQUFNOzJCQUFDLFFBQVE7eUNBdEJULFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdFLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudFRhZyB9IGZyb20gJy4vdXRpbCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuenhQcmludENvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlIHt9XG5cbi8qKlxuICog5L2/55SoUGFnZWQuanPmiZPljbBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LXByaW50JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbnp4UHJpbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgaWQ9XCJuengtcHJpbnQtaWZyYW1lLWNvbnRlbnRcIj48L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgI256eC1wcmludC1pZnJhbWUtY29udGVudCB7XG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnp4UHJpbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcHJpbnRUaXRsZSA9ICdwZGYnO1xuICAvKipcbiAgICogYTQgNzk0cHgxMTIzcHhcbiAgICovXG4gIEBJbnB1dCgpIHdpZHRoID0gODE0O1xuICBASW5wdXQoKSBoZWlnaHQgPSAxMTQzO1xuICBASW5wdXQoKSBlbmFibGVQcmV2aWV3ID0gdHJ1ZTtcblxuICBAQ29udGVudENoaWxkKE56eFByaW50Q29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfcHJpbnRFbCE6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgaWZyYW1lRWwhOiBIVE1MSUZyYW1lRWxlbWVudDtcbiAgcHJpdmF0ZSBfdGl0bGUgPSB0aGlzLmRvY3VtZW50LnRpdGxlO1xuXG4gIHByaXZhdGUgYWZ0ZXJQcmludCA9ICgpID0+IHtcbiAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3chLnBhcmVudC5kb2N1bWVudC50aXRsZSA9IHRoaXMuX3RpdGxlO1xuICB9O1xuICBwcml2YXRlIGJlZm9yZVByaW50ID0gKCkgPT4ge1xuICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdyEucGFyZW50LmRvY3VtZW50LnRpdGxlID0gdGhpcy5wcmludFRpdGxlO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHByaW50KCkge1xuICAgIGlmICh0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5mb2N1cygpO1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93LnByaW50KCk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ256eC1wcmludC1pZnJhbWUtY29udGVudCcpO1xuICAgIHRoaXMuaWZyYW1lRWwgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgIHRoaXMuaWZyYW1lRWwuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgKyAnJztcbiAgICB0aGlzLmlmcmFtZUVsLndpZHRoID0gdGhpcy53aWR0aCArICcnO1xuICAgIGlmICghdGhpcy5lbmFibGVQcmV2aWV3KSB7XG4gICAgICB0aGlzLmlmcmFtZUVsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIGlmICh0aGlzLnBsYXRmb3JtLkZJUkVGT1gpIHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAnd2lkdGg6IDFweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyB0b3A6IDA7IG9wYWNpdHk6IDA7IGJvcmRlci13aWR0aDogMDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pZnJhbWVFbC5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAndmlzaWJpbGl0eTogaGlkZGVuOyBoZWlnaHQ6IDA7IHdpZHRoOiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlcjogMCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnO1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lRWwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5vcGVuKCk7XG4gICAgICB0aGlzLmlmcmFtZUVsLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQud3JpdGUodGhpcy5nZXRUZW1wbGF0ZVN0cigpKTtcbiAgICAgIHRoaXMuaWZyYW1lRWwuY29udGVudFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICAgICAgLy8gY2hvcm1lIGJ1Z1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Lm9uYmVmb3JlcHJpbnQgPSB0aGlzLmJlZm9yZVByaW50O1xuICAgICAgdGhpcy5pZnJhbWVFbC5jb250ZW50V2luZG93Lm9uYWZ0ZXJwcmludCA9IHRoaXMuYWZ0ZXJQcmludDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRlbXBsYXRlU3RyKCkge1xuICAgIGNvbnN0IHN0eWxlcyA9IGdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XG5cbiAgICBjb25zdCBzY3JpcHRzID0gYFxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vd2lua29uZy1mcm9udGVuZC5vc3MtY24tcWluZ2Rhby5hbGl5dW5jcy5jb20vamF2YXNjcmlwdC9wYWdlZC9wYWdlZC5wb2x5ZmlsbC5taW4uanNcIj48L3NjcmlwdD5cbiAgICAgICAgPHNjcmlwdD5cbiAgICAgICAgICBjbGFzcyBSZXBlYXRpbmdUYWJsZUhlYWRlcnMgZXh0ZW5kcyBQYWdlZC5IYW5kbGVyIHtcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGNodW5rZXIsIHBvbGlzaGVyLCBjYWxsZXIpIHtcbiAgICAgICAgICAgICAgc3VwZXIoY2h1bmtlciwgcG9saXNoZXIsIGNhbGxlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFmdGVyUGFnZUxheW91dChwYWdlRWxlbWVudCwgcGFnZSwgYnJlYWtUb2tlbiwgY2h1bmtlcikge1xuICAgICAgICAgICAgICBsZXQgdGFibGVzID0gcGFnZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbZGF0YS1zcGxpdC1mcm9tXScpO1xuICAgICAgICAgICAgICB0YWJsZXMuZm9yRWFjaCgodGFibGUpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVmID0gdGFibGUuZGF0YXNldC5yZWY7XG4gICAgICAgICAgICAgICAgbGV0IHNvdXJjZVRhYmxlID0gY2h1bmtlci5zb3VyY2UucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgIFwiW2RhdGEtcmVmPSdcIiArIHJlZiArIFwiJ11cIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IHNvdXJjZVRhYmxlLnF1ZXJ5U2VsZWN0b3IoJ3RoZWFkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhlYWRlcikge1xuICAgICAgICAgICAgICAgICAgbGV0IGNsb25lZEhlYWRlciA9IGhlYWRlci5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICB0YWJsZS5pbnNlcnRCZWZvcmUoY2xvbmVkSGVhZGVyLCB0YWJsZS5maXJzdENoaWxkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBQYWdlZC5yZWdpc3RlckhhbmRsZXJzKFJlcGVhdGluZ1RhYmxlSGVhZGVycyk7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgYDtcblxuICAgIGNvbnN0IGh0bWwgPSBgXG4gICAgICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgICA8aHRtbD5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICA8bWV0YSBjaGFyc2V0PVwidXRmLThcIiAvPlxuICAgICAgICAgIDx0aXRsZT4ke3RoaXMucHJpbnRUaXRsZX08L3RpdGxlPlxuICAgICAgICAgIDxiYXNlIGhyZWY9XCIvXCIgLz5cbiAgICAgICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiAvPlxuICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICByZWw9XCJwcmVjb25uZWN0XCJcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3dpbmtvbmctZnJvbnRlbmQub3NzLWNuLXFpbmdkYW8uYWxpeXVuY3MuY29tXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOnZlcnRpY2FsOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6dmVydGljYWw6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3N0eWxlPlxuXG4gICAgICAgICAgICAke3N0eWxlc31cbiAgICAgICAgICAgICR7c2NyaXB0c31cbiAgICAgICAgICA8L2hlYWQ+XG4gICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAke3RoaXMuX3ByaW50RWwubmF0aXZlRWxlbWVudC5vdXRlckhUTUx9XG4gICAgICAgICAgPC9ib2R5PlxuICAgICAgICA8L2h0bWw+XG4gICAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Directive, HostListener, Input, } from '@angular/core';
|
|
2
|
+
import { getElementTag } from './util';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* 常规打印
|
|
6
|
+
*/
|
|
7
|
+
export class NzxPrintDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.printTitle = 'pdf';
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
if (!this.printEl) {
|
|
13
|
+
throw new Error('The "printEl" input is required for the nzxPrint directive.');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
ngAfterViewInit() {
|
|
17
|
+
this.getElement();
|
|
18
|
+
}
|
|
19
|
+
print() {
|
|
20
|
+
const newWin = window.open('', '_blank');
|
|
21
|
+
if (newWin) {
|
|
22
|
+
const styles = getElementTag('style');
|
|
23
|
+
const links = getElementTag('link');
|
|
24
|
+
const baseTag = getElementTag('base');
|
|
25
|
+
const scripts = `
|
|
26
|
+
<script>
|
|
27
|
+
window.onload = function () {
|
|
28
|
+
window.print();
|
|
29
|
+
};
|
|
30
|
+
window.onafterprint = function () {
|
|
31
|
+
window.close();
|
|
32
|
+
};
|
|
33
|
+
</script>
|
|
34
|
+
`;
|
|
35
|
+
const html = `
|
|
36
|
+
<!DOCTYPE html>
|
|
37
|
+
<html>
|
|
38
|
+
<head>
|
|
39
|
+
<title>${this.printTitle}</title>
|
|
40
|
+
${baseTag}
|
|
41
|
+
${links}
|
|
42
|
+
${styles}
|
|
43
|
+
${scripts}
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
${this._printEl.outerHTML}
|
|
47
|
+
</body>
|
|
48
|
+
</html>
|
|
49
|
+
`;
|
|
50
|
+
newWin.document.open();
|
|
51
|
+
newWin.document.write(html);
|
|
52
|
+
newWin.document.close();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
getElement() {
|
|
56
|
+
if (typeof this.printEl === 'string') {
|
|
57
|
+
const el = document.querySelector(this.printEl);
|
|
58
|
+
if (el) {
|
|
59
|
+
this._printEl = el;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
throw new Error('printEl is not find');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (this.printEl instanceof HTMLElement) {
|
|
66
|
+
this._printEl = this.printEl;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
throw new Error('printEl is invalid');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
73
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintDirective, selector: "button[nzxPrint]", inputs: { printEl: "printEl", printTitle: "printTitle" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintDirective, decorators: [{
|
|
76
|
+
type: Directive,
|
|
77
|
+
args: [{
|
|
78
|
+
selector: 'button[nzxPrint]',
|
|
79
|
+
}]
|
|
80
|
+
}], propDecorators: { printEl: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], printTitle: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], print: [{
|
|
85
|
+
type: HostListener,
|
|
86
|
+
args: ['click']
|
|
87
|
+
}] } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvbnp4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFFdkM7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBS1csZUFBVSxHQUF1QixLQUFLLENBQUM7S0FzRWpEO0lBbkVDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxDQUM5RCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBR08sS0FBSztRQUNYLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdEMsTUFBTSxPQUFPLEdBQUc7Ozs7Ozs7OztPQVNmLENBQUM7WUFFRixNQUFNLElBQUksR0FBRzs7OztxQkFJRSxJQUFJLENBQUMsVUFBVTtjQUN0QixPQUFPO2NBQ1AsS0FBSztjQUNMLE1BQU07Y0FDTixPQUFPOzs7Y0FHUCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7OztPQUc5QixDQUFDO1lBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxHQUF1QixRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRSxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQzthQUNwQjtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDeEM7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzlCO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDOzhHQXZFVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFnQkUsS0FBSztzQkFEWixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRFbGVtZW50VGFnIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiDluLjop4TmiZPljbBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uW256eFByaW50XScsXG59KVxuZXhwb3J0IGNsYXNzIE56eFByaW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcHJpbnRFbDogSFRNTEVsZW1lbnQgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHByaW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICdwZGYnO1xuICBwcml2YXRlIF9wcmludEVsITogSFRNTEVsZW1lbnQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByaW50RWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBcInByaW50RWxcIiBpbnB1dCBpcyByZXF1aXJlZCBmb3IgdGhlIG56eFByaW50IGRpcmVjdGl2ZS4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldEVsZW1lbnQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJpdmF0ZSBwcmludCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdXaW4gPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycpO1xuXG4gICAgaWYgKG5ld1dpbikge1xuICAgICAgY29uc3Qgc3R5bGVzID0gZ2V0RWxlbWVudFRhZygnc3R5bGUnKTtcbiAgICAgIGNvbnN0IGxpbmtzID0gZ2V0RWxlbWVudFRhZygnbGluaycpO1xuICAgICAgY29uc3QgYmFzZVRhZyA9IGdldEVsZW1lbnRUYWcoJ2Jhc2UnKTtcblxuICAgICAgY29uc3Qgc2NyaXB0cyA9IGBcbiAgICAgIDxzY3JpcHQ+XG4gICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgd2luZG93LnByaW50KCk7XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5vbmFmdGVycHJpbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgd2luZG93LmNsb3NlKCk7XG4gICAgICAgIH07XG4gICAgICA8L3NjcmlwdD5cbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IGh0bWwgPSBgXG4gICAgICA8IURPQ1RZUEUgaHRtbD5cbiAgICAgICAgPGh0bWw+XG4gICAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgICA8dGl0bGU+JHt0aGlzLnByaW50VGl0bGV9PC90aXRsZT5cbiAgICAgICAgICAgICR7YmFzZVRhZ31cbiAgICAgICAgICAgICR7bGlua3N9XG4gICAgICAgICAgICAke3N0eWxlc31cbiAgICAgICAgICAgICR7c2NyaXB0c31cbiAgICAgICAgICA8L2hlYWQ+XG4gICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAke3RoaXMuX3ByaW50RWwub3V0ZXJIVE1MfVxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYDtcbiAgICAgIG5ld1dpbi5kb2N1bWVudC5vcGVuKCk7XG4gICAgICBuZXdXaW4uZG9jdW1lbnQud3JpdGUoaHRtbCk7XG4gICAgICBuZXdXaW4uZG9jdW1lbnQuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnByaW50RWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBlbDogSFRNTEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnByaW50RWwpO1xuICAgICAgaWYgKGVsKSB7XG4gICAgICAgIHRoaXMuX3ByaW50RWwgPSBlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJpbnRFbCBpcyBub3QgZmluZCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcmludEVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3ByaW50RWwgPSB0aGlzLnByaW50RWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHJpbnRFbCBpcyBpbnZhbGlkJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { NzxPrintComponent, NzxPrintContentDirective, } from './nzx-print.component';
|
|
4
|
+
import { NzxPrintDirective } from './nzx-print.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NzxPrintModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, declarations: [NzxPrintComponent,
|
|
9
|
+
NzxPrintContentDirective,
|
|
10
|
+
NzxPrintDirective], imports: [CommonModule], exports: [NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, imports: [CommonModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [
|
|
17
|
+
NzxPrintComponent,
|
|
18
|
+
NzxPrintContentDirective,
|
|
19
|
+
NzxPrintDirective,
|
|
20
|
+
],
|
|
21
|
+
imports: [CommonModule],
|
|
22
|
+
exports: [NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective],
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvbnp4LXByaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHdCQUF3QixHQUN6QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVcxRCxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBUHZCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsaUJBQWlCLGFBRVQsWUFBWSxhQUNaLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGlCQUFpQjsrR0FFN0QsY0FBYyxZQUhmLFlBQVk7OzJGQUdYLGNBQWM7a0JBVDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLENBQUM7aUJBQzFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBOenhQcmludENvbXBvbmVudCxcbiAgTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlLFxufSBmcm9tICcuL256eC1wcmludC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnp4UHJpbnREaXJlY3RpdmUgfSBmcm9tICcuL256eC1wcmludC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOenhQcmludENvbXBvbmVudCxcbiAgICBOenhQcmludENvbnRlbnREaXJlY3RpdmUsXG4gICAgTnp4UHJpbnREaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTnp4UHJpbnRDb21wb25lbnQsIE56eFByaW50Q29udGVudERpcmVjdGl2ZSwgTnp4UHJpbnREaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOenhQcmludE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
3
|
+
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
|
|
4
|
+
*/
|
|
5
|
+
export * from './nzx-print.component';
|
|
6
|
+
export * from './nzx-print.directive';
|
|
7
|
+
export * from './nzx-print.module';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5leHBvcnQgKiBmcm9tICcuL256eC1wcmludC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9uengtcHJpbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbnp4LXByaW50Lm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function getElementTag(tag) {
|
|
2
|
+
const html = [];
|
|
3
|
+
const elements = document.getElementsByTagName(tag);
|
|
4
|
+
for (let index = 0; index < elements.length; index++) {
|
|
5
|
+
html.push(elements[index].outerHTML);
|
|
6
|
+
}
|
|
7
|
+
return html.join('\r\n');
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcHJpbnQvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQWdDO0lBQzVELE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUMxQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50VGFnKHRhZzoga2V5b2YgSFRNTEVsZW1lbnRUYWdOYW1lTWFwKTogc3RyaW5nIHtcbiAgY29uc3QgaHRtbDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO1xuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgaHRtbC5wdXNoKGVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwpO1xuICB9XG4gIHJldHVybiBodG1sLmpvaW4oJ1xcclxcbicpO1xufVxuIl19
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Directive, ElementRef, Component, Inject, Input, ContentChild, HostListener, NgModule } from '@angular/core';
|
|
4
|
+
import * as i1 from '@angular/cdk/platform';
|
|
5
|
+
|
|
6
|
+
function getElementTag(tag) {
|
|
7
|
+
const html = [];
|
|
8
|
+
const elements = document.getElementsByTagName(tag);
|
|
9
|
+
for (let index = 0; index < elements.length; index++) {
|
|
10
|
+
html.push(elements[index].outerHTML);
|
|
11
|
+
}
|
|
12
|
+
return html.join('\r\n');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class NzxPrintContentDirective {
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintContentDirective, selector: "[nzxPrintContent]", ngImport: i0 }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
|
|
20
|
+
type: Directive,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: '[nzxPrintContent]',
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
/**
|
|
26
|
+
* 使用Paged.js打印
|
|
27
|
+
*/
|
|
28
|
+
class NzxPrintComponent {
|
|
29
|
+
constructor(platform, document) {
|
|
30
|
+
this.platform = platform;
|
|
31
|
+
this.document = document;
|
|
32
|
+
this.printTitle = 'pdf';
|
|
33
|
+
/**
|
|
34
|
+
* a4 794px1123px
|
|
35
|
+
*/
|
|
36
|
+
this.width = 814;
|
|
37
|
+
this.height = 1143;
|
|
38
|
+
this.enablePreview = true;
|
|
39
|
+
this._title = this.document.title;
|
|
40
|
+
this.afterPrint = () => {
|
|
41
|
+
this.iframeEl.contentWindow.parent.document.title = this._title;
|
|
42
|
+
};
|
|
43
|
+
this.beforePrint = () => {
|
|
44
|
+
this.iframeEl.contentWindow.parent.document.title = this.printTitle;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
ngAfterViewInit() {
|
|
48
|
+
this.render();
|
|
49
|
+
}
|
|
50
|
+
print() {
|
|
51
|
+
if (this.iframeEl.contentWindow) {
|
|
52
|
+
this.iframeEl.contentWindow.focus();
|
|
53
|
+
this.iframeEl.contentWindow.print();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
refresh() {
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
this.render();
|
|
59
|
+
}, 100);
|
|
60
|
+
}
|
|
61
|
+
render() {
|
|
62
|
+
const container = this.document.getElementById('nzx-print-iframe-content');
|
|
63
|
+
this.iframeEl = this.document.createElement('iframe');
|
|
64
|
+
this.iframeEl.height = this.height + '';
|
|
65
|
+
this.iframeEl.width = this.width + '';
|
|
66
|
+
if (!this.enablePreview) {
|
|
67
|
+
this.iframeEl.style.visibility = 'hidden';
|
|
68
|
+
if (this.platform.FIREFOX) {
|
|
69
|
+
this.iframeEl.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.iframeEl.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (container) {
|
|
76
|
+
container.innerHTML = '';
|
|
77
|
+
container.appendChild(this.iframeEl);
|
|
78
|
+
}
|
|
79
|
+
if (this.iframeEl.contentWindow) {
|
|
80
|
+
this.iframeEl.contentWindow.document.open();
|
|
81
|
+
this.iframeEl.contentWindow.document.write(this.getTemplateStr());
|
|
82
|
+
this.iframeEl.contentWindow.document.close();
|
|
83
|
+
// chorme bug
|
|
84
|
+
this.iframeEl.contentWindow.onbeforeprint = this.beforePrint;
|
|
85
|
+
this.iframeEl.contentWindow.onafterprint = this.afterPrint;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
getTemplateStr() {
|
|
89
|
+
const styles = getElementTag('style');
|
|
90
|
+
const scripts = `
|
|
91
|
+
<script src="https://winkong-frontend.oss-cn-qingdao.aliyuncs.com/javascript/paged/paged.polyfill.min.js"></script>
|
|
92
|
+
<script>
|
|
93
|
+
class RepeatingTableHeaders extends Paged.Handler {
|
|
94
|
+
constructor(chunker, polisher, caller) {
|
|
95
|
+
super(chunker, polisher, caller);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
afterPageLayout(pageElement, page, breakToken, chunker) {
|
|
99
|
+
let tables = pageElement.querySelectorAll('table[data-split-from]');
|
|
100
|
+
tables.forEach((table) => {
|
|
101
|
+
let ref = table.dataset.ref;
|
|
102
|
+
let sourceTable = chunker.source.querySelector(
|
|
103
|
+
"[data-ref='" + ref + "']"
|
|
104
|
+
);
|
|
105
|
+
let header = sourceTable.querySelector('thead');
|
|
106
|
+
if (header) {
|
|
107
|
+
let clonedHeader = header.cloneNode(true);
|
|
108
|
+
table.insertBefore(clonedHeader, table.firstChild);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
Paged.registerHandlers(RepeatingTableHeaders);
|
|
114
|
+
</script>
|
|
115
|
+
`;
|
|
116
|
+
const html = `
|
|
117
|
+
<!DOCTYPE html>
|
|
118
|
+
<html>
|
|
119
|
+
<head>
|
|
120
|
+
<meta charset="utf-8" />
|
|
121
|
+
<title>${this.printTitle}</title>
|
|
122
|
+
<base href="/" />
|
|
123
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
124
|
+
<link
|
|
125
|
+
rel="preconnect"
|
|
126
|
+
href="https://winkong-frontend.oss-cn-qingdao.aliyuncs.com"
|
|
127
|
+
/>
|
|
128
|
+
<style>
|
|
129
|
+
::-webkit-scrollbar {
|
|
130
|
+
width: 5px;
|
|
131
|
+
height: 5px;
|
|
132
|
+
}
|
|
133
|
+
::-webkit-scrollbar-thumb {
|
|
134
|
+
background-color: #999;
|
|
135
|
+
-webkit-border-radius: 5px;
|
|
136
|
+
border-radius: 5px;
|
|
137
|
+
}
|
|
138
|
+
::-webkit-scrollbar-thumb:vertical:hover {
|
|
139
|
+
background-color: #666;
|
|
140
|
+
}
|
|
141
|
+
::-webkit-scrollbar-thumb:vertical:active {
|
|
142
|
+
background-color: #666;
|
|
143
|
+
}
|
|
144
|
+
::-webkit-scrollbar-button {
|
|
145
|
+
display: none;
|
|
146
|
+
}
|
|
147
|
+
::-webkit-scrollbar-track {
|
|
148
|
+
background-color: #f1f1f1;
|
|
149
|
+
}
|
|
150
|
+
</style>
|
|
151
|
+
|
|
152
|
+
${styles}
|
|
153
|
+
${scripts}
|
|
154
|
+
</head>
|
|
155
|
+
<body>
|
|
156
|
+
${this._printEl.nativeElement.outerHTML}
|
|
157
|
+
</body>
|
|
158
|
+
</html>
|
|
159
|
+
`;
|
|
160
|
+
return html;
|
|
161
|
+
}
|
|
162
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintComponent, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintComponent, selector: "nzx-print", inputs: { printTitle: "printTitle", width: "width", height: "height", enablePreview: "enablePreview" }, queries: [{ propertyName: "_printEl", first: true, predicate: NzxPrintContentDirective, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
|
|
164
|
+
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
165
|
+
<div id="nzx-print-iframe-content"></div>
|
|
166
|
+
`, isInline: true, styles: ["#nzx-print-iframe-content iframe{background:#fff;border:1px solid #ccc}\n"] }); }
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'nzx-print', template: `
|
|
171
|
+
<ng-content select="[nzxPrintHeader]"></ng-content>
|
|
172
|
+
<div id="nzx-print-iframe-content"></div>
|
|
173
|
+
`, styles: ["#nzx-print-iframe-content iframe{background:#fff;border:1px solid #ccc}\n"] }]
|
|
174
|
+
}], ctorParameters: () => [{ type: i1.Platform }, { type: Document, decorators: [{
|
|
175
|
+
type: Inject,
|
|
176
|
+
args: [DOCUMENT]
|
|
177
|
+
}] }], propDecorators: { printTitle: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], width: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], height: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], enablePreview: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], _printEl: [{
|
|
186
|
+
type: ContentChild,
|
|
187
|
+
args: [NzxPrintContentDirective, { read: ElementRef, static: true }]
|
|
188
|
+
}] } });
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* 常规打印
|
|
192
|
+
*/
|
|
193
|
+
class NzxPrintDirective {
|
|
194
|
+
constructor() {
|
|
195
|
+
this.printTitle = 'pdf';
|
|
196
|
+
}
|
|
197
|
+
ngOnInit() {
|
|
198
|
+
if (!this.printEl) {
|
|
199
|
+
throw new Error('The "printEl" input is required for the nzxPrint directive.');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
ngAfterViewInit() {
|
|
203
|
+
this.getElement();
|
|
204
|
+
}
|
|
205
|
+
print() {
|
|
206
|
+
const newWin = window.open('', '_blank');
|
|
207
|
+
if (newWin) {
|
|
208
|
+
const styles = getElementTag('style');
|
|
209
|
+
const links = getElementTag('link');
|
|
210
|
+
const baseTag = getElementTag('base');
|
|
211
|
+
const scripts = `
|
|
212
|
+
<script>
|
|
213
|
+
window.onload = function () {
|
|
214
|
+
window.print();
|
|
215
|
+
};
|
|
216
|
+
window.onafterprint = function () {
|
|
217
|
+
window.close();
|
|
218
|
+
};
|
|
219
|
+
</script>
|
|
220
|
+
`;
|
|
221
|
+
const html = `
|
|
222
|
+
<!DOCTYPE html>
|
|
223
|
+
<html>
|
|
224
|
+
<head>
|
|
225
|
+
<title>${this.printTitle}</title>
|
|
226
|
+
${baseTag}
|
|
227
|
+
${links}
|
|
228
|
+
${styles}
|
|
229
|
+
${scripts}
|
|
230
|
+
</head>
|
|
231
|
+
<body>
|
|
232
|
+
${this._printEl.outerHTML}
|
|
233
|
+
</body>
|
|
234
|
+
</html>
|
|
235
|
+
`;
|
|
236
|
+
newWin.document.open();
|
|
237
|
+
newWin.document.write(html);
|
|
238
|
+
newWin.document.close();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
getElement() {
|
|
242
|
+
if (typeof this.printEl === 'string') {
|
|
243
|
+
const el = document.querySelector(this.printEl);
|
|
244
|
+
if (el) {
|
|
245
|
+
this._printEl = el;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
throw new Error('printEl is not find');
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else if (this.printEl instanceof HTMLElement) {
|
|
252
|
+
this._printEl = this.printEl;
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
throw new Error('printEl is invalid');
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
259
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxPrintDirective, selector: "button[nzxPrint]", inputs: { printEl: "printEl", printTitle: "printTitle" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
|
|
260
|
+
}
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintDirective, decorators: [{
|
|
262
|
+
type: Directive,
|
|
263
|
+
args: [{
|
|
264
|
+
selector: 'button[nzxPrint]',
|
|
265
|
+
}]
|
|
266
|
+
}], propDecorators: { printEl: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], printTitle: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], print: [{
|
|
271
|
+
type: HostListener,
|
|
272
|
+
args: ['click']
|
|
273
|
+
}] } });
|
|
274
|
+
|
|
275
|
+
class NzxPrintModule {
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
277
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, declarations: [NzxPrintComponent,
|
|
278
|
+
NzxPrintContentDirective,
|
|
279
|
+
NzxPrintDirective], imports: [CommonModule], exports: [NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective] }); }
|
|
280
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, imports: [CommonModule] }); }
|
|
281
|
+
}
|
|
282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPrintModule, decorators: [{
|
|
283
|
+
type: NgModule,
|
|
284
|
+
args: [{
|
|
285
|
+
declarations: [
|
|
286
|
+
NzxPrintComponent,
|
|
287
|
+
NzxPrintContentDirective,
|
|
288
|
+
NzxPrintDirective,
|
|
289
|
+
],
|
|
290
|
+
imports: [CommonModule],
|
|
291
|
+
exports: [NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective],
|
|
292
|
+
}]
|
|
293
|
+
}] });
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
297
|
+
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
|
|
298
|
+
*/
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Generated bundle index. Do not edit.
|
|
302
|
+
*/
|
|
303
|
+
|
|
304
|
+
export { NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective, NzxPrintModule };
|
|
305
|
+
//# sourceMappingURL=ng-zorro-antd-extension-print.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-zorro-antd-extension-print.mjs","sources":["../../../components/print/util.ts","../../../components/print/nzx-print.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":["export function getElementTag(tag: keyof HTMLElementTagNameMap): string {\n const html: string[] = [];\n const elements = document.getElementsByTagName(tag);\n for (let index = 0; index < elements.length; index++) {\n html.push(elements[index].outerHTML);\n }\n return html.join('\\r\\n');\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Inject,\n Input,\n} from '@angular/core';\nimport { getElementTag } from './util';\n\n@Directive({\n selector: '[nzxPrintContent]',\n})\nexport class NzxPrintContentDirective {}\n\n/**\n * 使用Paged.js打印\n */\n@Component({\n selector: 'nzx-print',\n template: `\n <ng-content select=\"[nzxPrintHeader]\"></ng-content>\n <div id=\"nzx-print-iframe-content\"></div>\n `,\n styles: [\n `\n #nzx-print-iframe-content {\n iframe {\n background: #fff;\n border: 1px solid #ccc;\n }\n }\n `,\n ],\n})\nexport class NzxPrintComponent implements AfterViewInit {\n @Input() printTitle = 'pdf';\n /**\n * a4 794px1123px\n */\n @Input() width = 814;\n @Input() height = 1143;\n @Input() enablePreview = true;\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 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 const container = this.document.getElementById('nzx-print-iframe-content');\n this.iframeEl = this.document.createElement('iframe');\n this.iframeEl.height = this.height + '';\n this.iframeEl.width = this.width + '';\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 (container) {\n container.innerHTML = '';\n container.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 = getElementTag('style');\n\n const scripts = `\n <script src=\"https://winkong-frontend.oss-cn-qingdao.aliyuncs.com/javascript/paged/paged.polyfill.min.js\"></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 const 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\n return html;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { getElementTag } from './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 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 = getElementTag('style');\n const links = getElementTag('link');\n const baseTag = getElementTag('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 const 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 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 {\n NzxPrintComponent,\n NzxPrintContentDirective,\n} from './nzx-print.component';\nimport { NzxPrintDirective } from './nzx-print.directive';\n\n@NgModule({\n declarations: [\n NzxPrintComponent,\n NzxPrintContentDirective,\n NzxPrintDirective,\n ],\n imports: [CommonModule],\n exports: [NzxPrintComponent, NzxPrintContentDirective, NzxPrintDirective],\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.directive';\nexport * from './nzx-print.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-zorro-antd-extension",
|
|
3
|
-
"version": "17.0
|
|
3
|
+
"version": "17.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "An extension based on ng-zorro-antd",
|
|
6
6
|
"keywords": [
|
|
@@ -57,18 +57,18 @@
|
|
|
57
57
|
"esm": "./esm2022/blank-field/ng-zorro-antd-extension-blank-field.mjs",
|
|
58
58
|
"default": "./fesm2022/ng-zorro-antd-extension-blank-field.mjs"
|
|
59
59
|
},
|
|
60
|
-
"./checkbox": {
|
|
61
|
-
"types": "./checkbox/index.d.ts",
|
|
62
|
-
"esm2022": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
63
|
-
"esm": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
64
|
-
"default": "./fesm2022/ng-zorro-antd-extension-checkbox.mjs"
|
|
65
|
-
},
|
|
66
60
|
"./configurable-query": {
|
|
67
61
|
"types": "./configurable-query/index.d.ts",
|
|
68
62
|
"esm2022": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
69
63
|
"esm": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
70
64
|
"default": "./fesm2022/ng-zorro-antd-extension-configurable-query.mjs"
|
|
71
65
|
},
|
|
66
|
+
"./checkbox": {
|
|
67
|
+
"types": "./checkbox/index.d.ts",
|
|
68
|
+
"esm2022": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
69
|
+
"esm": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
70
|
+
"default": "./fesm2022/ng-zorro-antd-extension-checkbox.mjs"
|
|
71
|
+
},
|
|
72
72
|
"./editable": {
|
|
73
73
|
"types": "./editable/index.d.ts",
|
|
74
74
|
"esm2022": "./esm2022/editable/ng-zorro-antd-extension-editable.mjs",
|
|
@@ -93,6 +93,12 @@
|
|
|
93
93
|
"esm": "./esm2022/pipes/ng-zorro-antd-extension-pipes.mjs",
|
|
94
94
|
"default": "./fesm2022/ng-zorro-antd-extension-pipes.mjs"
|
|
95
95
|
},
|
|
96
|
+
"./print": {
|
|
97
|
+
"types": "./print/index.d.ts",
|
|
98
|
+
"esm2022": "./esm2022/print/ng-zorro-antd-extension-print.mjs",
|
|
99
|
+
"esm": "./esm2022/print/ng-zorro-antd-extension-print.mjs",
|
|
100
|
+
"default": "./fesm2022/ng-zorro-antd-extension-print.mjs"
|
|
101
|
+
},
|
|
96
102
|
"./simple-table": {
|
|
97
103
|
"types": "./simple-table/index.d.ts",
|
|
98
104
|
"esm2022": "./esm2022/simple-table/ng-zorro-antd-extension-simple-table.mjs",
|
package/print/index.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
|
+
import { AfterViewInit } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NzxPrintContentDirective {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NzxPrintContentDirective, never>;
|
|
6
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NzxPrintContentDirective, "[nzxPrintContent]", never, {}, {}, never, never, false, never>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 使用Paged.js打印
|
|
10
|
+
*/
|
|
11
|
+
export declare class NzxPrintComponent implements AfterViewInit {
|
|
12
|
+
private platform;
|
|
13
|
+
private document;
|
|
14
|
+
printTitle: string;
|
|
15
|
+
/**
|
|
16
|
+
* a4 794px1123px
|
|
17
|
+
*/
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
enablePreview: boolean;
|
|
21
|
+
private _printEl;
|
|
22
|
+
private iframeEl;
|
|
23
|
+
private _title;
|
|
24
|
+
private afterPrint;
|
|
25
|
+
private beforePrint;
|
|
26
|
+
constructor(platform: Platform, document: Document);
|
|
27
|
+
ngAfterViewInit(): void;
|
|
28
|
+
print(): void;
|
|
29
|
+
refresh(): void;
|
|
30
|
+
private render;
|
|
31
|
+
private getTemplateStr;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NzxPrintComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NzxPrintComponent, "nzx-print", never, { "printTitle": { "alias": "printTitle"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "enablePreview": { "alias": "enablePreview"; "required": false; }; }, {}, ["_printEl"], ["[nzxPrintHeader]"], false, never>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AfterViewInit, OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* 常规打印
|
|
5
|
+
*/
|
|
6
|
+
export declare class NzxPrintDirective implements OnInit, AfterViewInit {
|
|
7
|
+
printEl: HTMLElement | string | undefined;
|
|
8
|
+
printTitle: string | undefined;
|
|
9
|
+
private _printEl;
|
|
10
|
+
ngOnInit(): void;
|
|
11
|
+
ngAfterViewInit(): void;
|
|
12
|
+
private print;
|
|
13
|
+
private getElement;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NzxPrintDirective, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NzxPrintDirective, "button[nzxPrint]", never, { "printEl": { "alias": "printEl"; "required": false; }; "printTitle": { "alias": "printTitle"; "required": false; }; }, {}, never, never, false, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./nzx-print.component";
|
|
3
|
+
import * as i2 from "./nzx-print.directive";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
export declare class NzxPrintModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NzxPrintModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NzxPrintModule, [typeof i1.NzxPrintComponent, typeof i1.NzxPrintContentDirective, typeof i2.NzxPrintDirective], [typeof i3.CommonModule], [typeof i1.NzxPrintComponent, typeof i1.NzxPrintContentDirective, typeof i2.NzxPrintDirective]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NzxPrintModule>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
3
|
+
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
|
|
4
|
+
*/
|
|
5
|
+
export * from './nzx-print.component';
|
|
6
|
+
export * from './nzx-print.directive';
|
|
7
|
+
export * from './nzx-print.module';
|
package/print/util.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getElementTag(tag: keyof HTMLElementTagNameMap): string;
|