ngx-print 1.3.0 → 1.3.1
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/esm2020/lib/ngx-print.directive.mjs +187 -0
- package/esm2020/lib/ngx-print.module.mjs +17 -0
- package/esm2020/ngx-print.mjs +5 -0
- package/esm2020/public_api.mjs +6 -0
- package/fesm2015/ngx-print.mjs +212 -0
- package/fesm2015/ngx-print.mjs.map +1 -0
- package/fesm2020/ngx-print.mjs +212 -0
- package/fesm2020/ngx-print.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/ngx-print.directive.d.ts +95 -0
- package/lib/ngx-print.directive.d.ts.map +1 -0
- package/lib/ngx-print.module.d.ts +8 -0
- package/lib/ngx-print.module.d.ts.map +1 -0
- package/ngx-print.d.ts.map +1 -0
- package/package.json +48 -47
- package/{src/public_api.ts → public_api.d.ts} +1 -4
- package/public_api.d.ts.map +1 -0
- package/.editorconfig +0 -13
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.nvmrc +0 -1
- package/.travis.yml +0 -40
- package/CHANGELOG.md +0 -10
- package/_config.yml +0 -1
- package/angular.json +0 -48
- package/karma.conf.js +0 -47
- package/ng-package.json +0 -8
- package/src/lib/ngx-print.directive.spec.ts +0 -112
- package/src/lib/ngx-print.directive.ts +0 -193
- package/src/lib/ngx-print.module.ts +0 -10
- package/tsconfig.json +0 -29
- package/tsconfig.lib.json +0 -14
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgxPrintDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this._printStyle = [];
|
|
6
|
+
/**
|
|
7
|
+
* Prevents the print dialog from opening on the window
|
|
8
|
+
*
|
|
9
|
+
* @memberof NgxPrintDirective
|
|
10
|
+
*/
|
|
11
|
+
this.previewOnly = false;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
* @memberof NgxPrintDirective
|
|
16
|
+
*/
|
|
17
|
+
this.useExistingCss = false;
|
|
18
|
+
/**
|
|
19
|
+
* A delay in milliseconds to force the print dialog to wait before opened. Default: 0
|
|
20
|
+
*
|
|
21
|
+
* @memberof NgxPrintDirective
|
|
22
|
+
*/
|
|
23
|
+
this.printDelay = 0;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
* @returns html for the given tag
|
|
28
|
+
*
|
|
29
|
+
* @memberof NgxPrintDirective
|
|
30
|
+
*/
|
|
31
|
+
this._styleSheetFile = '';
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*
|
|
36
|
+
* @memberof NgxPrintDirective
|
|
37
|
+
*/
|
|
38
|
+
set printStyle(values) {
|
|
39
|
+
for (let key in values) {
|
|
40
|
+
if (values.hasOwnProperty(key)) {
|
|
41
|
+
this._printStyle.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.returnStyleValues();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
*
|
|
49
|
+
* @returns the string that create the stylesheet which will be injected
|
|
50
|
+
* later within <style></style> tag.
|
|
51
|
+
*
|
|
52
|
+
* -join/replace to transform an array objects to css-styled string
|
|
53
|
+
*
|
|
54
|
+
* @memberof NgxPrintDirective
|
|
55
|
+
*/
|
|
56
|
+
returnStyleValues() {
|
|
57
|
+
return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @memberof NgxPrintDirective
|
|
61
|
+
* @param cssList
|
|
62
|
+
*/
|
|
63
|
+
set styleSheetFile(cssList) {
|
|
64
|
+
let linkTagFn = function (cssFileName) {
|
|
65
|
+
return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
|
|
66
|
+
};
|
|
67
|
+
if (cssList.indexOf(',') !== -1) {
|
|
68
|
+
const valueArr = cssList.split(',');
|
|
69
|
+
for (let val of valueArr) {
|
|
70
|
+
this._styleSheetFile = this._styleSheetFile + linkTagFn(val);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this._styleSheetFile = linkTagFn(cssList);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @returns string which contains the link tags containing the css which will
|
|
79
|
+
* be injected later within <head></head> tag.
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
returnStyleSheetLinkTags() {
|
|
83
|
+
return this._styleSheetFile;
|
|
84
|
+
}
|
|
85
|
+
getElementTag(tag) {
|
|
86
|
+
const html = [];
|
|
87
|
+
const elements = document.getElementsByTagName(tag);
|
|
88
|
+
for (let index = 0; index < elements.length; index++) {
|
|
89
|
+
html.push(elements[index].outerHTML);
|
|
90
|
+
}
|
|
91
|
+
return html.join('\r\n');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
* @param data the html element collection to save defaults to
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
getFormData(data) {
|
|
99
|
+
for (var i = 0; i < data.length; i++) {
|
|
100
|
+
data[i].defaultValue = data[i].value;
|
|
101
|
+
if (data[i].checked) {
|
|
102
|
+
data[i].defaultChecked = true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @returns html section to be printed along with some associated inputs
|
|
108
|
+
*
|
|
109
|
+
*/
|
|
110
|
+
getHtmlContents() {
|
|
111
|
+
let printContents = document.getElementById(this.printSectionId);
|
|
112
|
+
let innards = printContents.getElementsByTagName('input');
|
|
113
|
+
this.getFormData(innards);
|
|
114
|
+
let txt = printContents.getElementsByTagName('textarea');
|
|
115
|
+
this.getFormData(txt);
|
|
116
|
+
return printContents.innerHTML;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
*
|
|
120
|
+
*
|
|
121
|
+
* @memberof NgxPrintDirective
|
|
122
|
+
*/
|
|
123
|
+
print() {
|
|
124
|
+
let printContents, popupWin, styles = '', links = '';
|
|
125
|
+
const baseTag = this.getElementTag('base');
|
|
126
|
+
if (this.useExistingCss) {
|
|
127
|
+
styles = this.getElementTag('style');
|
|
128
|
+
links = this.getElementTag('link');
|
|
129
|
+
}
|
|
130
|
+
printContents = this.getHtmlContents();
|
|
131
|
+
popupWin = window.open("", "_blank", "top=0,left=0,height=auto,width=auto");
|
|
132
|
+
popupWin.document.open();
|
|
133
|
+
popupWin.document.write(`
|
|
134
|
+
<html>
|
|
135
|
+
<head>
|
|
136
|
+
<title>${this.printTitle ? this.printTitle : ""}</title>
|
|
137
|
+
${baseTag}
|
|
138
|
+
${this.returnStyleValues()}
|
|
139
|
+
${this.returnStyleSheetLinkTags()}
|
|
140
|
+
${styles}
|
|
141
|
+
${links}
|
|
142
|
+
</head>
|
|
143
|
+
<body>
|
|
144
|
+
${printContents}
|
|
145
|
+
<script defer>
|
|
146
|
+
function triggerPrint(event) {
|
|
147
|
+
window.removeEventListener('load', triggerPrint, false);
|
|
148
|
+
${this.previewOnly ? '' : `setTimeout(function() {
|
|
149
|
+
closeWindow(window.print());
|
|
150
|
+
}, ${this.printDelay});`}
|
|
151
|
+
}
|
|
152
|
+
function closeWindow(){
|
|
153
|
+
window.close();
|
|
154
|
+
}
|
|
155
|
+
window.addEventListener('load', triggerPrint, false);
|
|
156
|
+
</script>
|
|
157
|
+
</body>
|
|
158
|
+
</html>`);
|
|
159
|
+
popupWin.document.close();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
NgxPrintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
163
|
+
NgxPrintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: NgxPrintDirective, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, ngImport: i0 });
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintDirective, decorators: [{
|
|
165
|
+
type: Directive,
|
|
166
|
+
args: [{
|
|
167
|
+
selector: "button[ngxPrint]"
|
|
168
|
+
}]
|
|
169
|
+
}], propDecorators: { previewOnly: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], printSectionId: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], printTitle: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], useExistingCss: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], printDelay: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], printStyle: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], styleSheetFile: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], print: [{
|
|
184
|
+
type: HostListener,
|
|
185
|
+
args: ['click']
|
|
186
|
+
}] } });
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSS9ELE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFLUyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFnQnRDOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUVoQzs7OztXQUlHO1FBQ00sZUFBVSxHQUFXLENBQUMsQ0FBQztRQStCaEM7Ozs7OztXQU1HO1FBQ0ssb0JBQWUsR0FBRyxFQUFFLENBQUM7S0FpSDlCO0lBckpDOzs7O09BSUc7SUFDSCxJQUNJLFVBQVUsQ0FBQyxNQUFvRDtRQUNqRSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEY7U0FDRjtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFSDs7Ozs7Ozs7O09BU0c7SUFDSSxpQkFBaUI7UUFDdEIsT0FBTyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUMxRSxDQUFDO0lBV0Q7OztP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QyxFQUFFLEVBQUUsUUFBUSxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFDNUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzs7O21CQUdULElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsT0FBTztZQUNQLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDL0IsTUFBTTtZQUNOLEtBQUs7OztZQUdMLGFBQWE7Ozs7Z0JBSVQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7bUJBRXJCLElBQUksQ0FBQyxVQUFVLElBQUk7Ozs7Ozs7O2NBUXhCLENBQUMsQ0FBQztRQUNaLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OEdBM0xVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7OEJBVVUsV0FBVztzQkFBbkIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSztnQkFzQ0YsY0FBYztzQkFEakIsS0FBSztnQkFtRUMsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiYnV0dG9uW25neFByaW50XVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hQcmludERpcmVjdGl2ZSB7XHJcblxyXG4gIHB1YmxpYyBfcHJpbnRTdHlsZSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBQcmV2ZW50cyB0aGUgcHJpbnQgZGlhbG9nIGZyb20gb3BlbmluZyBvbiB0aGUgd2luZG93XHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBwcmV2aWV3T25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHJpbnRTZWN0aW9uSWQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByaW50VGl0bGU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHVzZUV4aXN0aW5nQ3NzID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIHRvIGZvcmNlIHRoZSBwcmludCBkaWFsb2cgdG8gd2FpdCBiZWZvcmUgb3BlbmVkLiBEZWZhdWx0OiAwXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBwcmludERlbGF5OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcHJpbnRTdHlsZSh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7XHJcbiAgICAgIGlmICh2YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICB0aGlzLl9wcmludFN0eWxlLnB1c2goKGtleSArIEpTT04uc3RyaW5naWZ5KHZhbHVlc1trZXldKSkucmVwbGFjZSgvWydcIl0rL2csICcnKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmV0dXJuU3R5bGVWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4vKipcclxuICpcclxuICpcclxuICogQHJldHVybnMgdGhlIHN0cmluZyB0aGF0IGNyZWF0ZSB0aGUgc3R5bGVzaGVldCB3aGljaCB3aWxsIGJlIGluamVjdGVkXHJcbiAqIGxhdGVyIHdpdGhpbiA8c3R5bGU+PC9zdHlsZT4gdGFnLlxyXG4gKlxyXG4gKiAtam9pbi9yZXBsYWNlIHRvIHRyYW5zZm9ybSBhbiBhcnJheSBvYmplY3RzIHRvIGNzcy1zdHlsZWQgc3RyaW5nXHJcbiAqXHJcbiAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gKi9cclxucHVibGljIHJldHVyblN0eWxlVmFsdWVzKCkge1xyXG4gIHJldHVybiBgPHN0eWxlPiAke3RoaXMuX3ByaW50U3R5bGUuam9pbignICcpLnJlcGxhY2UoLywvZywnOycpfSA8L3N0eWxlPmA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgaHRtbCBmb3IgdGhlIGdpdmVuIHRhZ1xyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3R5bGVTaGVldEZpbGUgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICogQHBhcmFtIGNzc0xpc3RcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIGxldCBsaW5rVGFnRm4gPSBmdW5jdGlvbihjc3NGaWxlTmFtZSkge1xyXG4gICAgICByZXR1cm4gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiJHtjc3NGaWxlTmFtZX1cIj5gO1xyXG4gICAgfVxyXG4gICAgaWYgKGNzc0xpc3QuaW5kZXhPZignLCcpICE9PSAtMSkge1xyXG4gICAgICBjb25zdCB2YWx1ZUFyciA9IGNzc0xpc3Quc3BsaXQoJywnKTtcclxuICAgICAgZm9yIChsZXQgdmFsIG9mIHZhbHVlQXJyKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGVTaGVldEZpbGUgPSB0aGlzLl9zdHlsZVNoZWV0RmlsZSArIGxpbmtUYWdGbih2YWwpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zdHlsZVNoZWV0RmlsZSA9IGxpbmtUYWdGbihjc3NMaXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zIHN0cmluZyB3aGljaCBjb250YWlucyB0aGUgbGluayB0YWdzIGNvbnRhaW5pbmcgdGhlIGNzcyB3aGljaCB3aWxsXHJcbiAgICogYmUgaW5qZWN0ZWQgbGF0ZXIgd2l0aGluIDxoZWFkPjwvaGVhZD4gdGFnLlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXR1cm5TdHlsZVNoZWV0TGlua1RhZ3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3R5bGVTaGVldEZpbGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0RWxlbWVudFRhZyh0YWc6IGtleW9mIEhUTUxFbGVtZW50VGFnTmFtZU1hcCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBodG1sOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBodG1sLnB1c2goZWxlbWVudHNbaW5kZXhdLm91dGVySFRNTCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBkYXRhIHRoZSBodG1sIGVsZW1lbnQgY29sbGVjdGlvbiB0byBzYXZlIGRlZmF1bHRzIHRvXHJcbiAgICogXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGb3JtRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBkYXRhW2ldLmRlZmF1bHRWYWx1ZSA9IGRhdGFbaV0udmFsdWU7XHJcbiAgICAgIGlmKGRhdGFbaV0uY2hlY2tlZCkge1xyXG4gICAgICAgIGRhdGFbaV0uZGVmYXVsdENoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcmV0dXJucyBodG1sIHNlY3Rpb24gdG8gYmUgcHJpbnRlZCBhbG9uZyB3aXRoIHNvbWUgYXNzb2NpYXRlZCBpbnB1dHNcclxuICAgKiBcclxuICAgKi9cclxuICBwcml2YXRlIGdldEh0bWxDb250ZW50cygpIHtcclxuICAgIGxldCBwcmludENvbnRlbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5wcmludFNlY3Rpb25JZCk7XHJcbiAgICBsZXQgaW5uYXJkcyA9IHByaW50Q29udGVudHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7XHJcbiAgICB0aGlzLmdldEZvcm1EYXRhKGlubmFyZHMpO1xyXG5cclxuICAgIGxldCB0eHQgPSBwcmludENvbnRlbnRzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZXh0YXJlYScpO1xyXG4gICAgdGhpcy5nZXRGb3JtRGF0YSh0eHQpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gcHJpbnRDb250ZW50cy5pbm5lckhUTUw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIHB1YmxpYyBwcmludCgpOiB2b2lkIHtcclxuICAgIGxldCBwcmludENvbnRlbnRzLCBwb3B1cFdpbiwgc3R5bGVzID0gJycsIGxpbmtzID0gJyc7XHJcbiAgICBjb25zdCBiYXNlVGFnID0gdGhpcy5nZXRFbGVtZW50VGFnKCdiYXNlJyk7XHJcblxyXG4gICAgaWYodGhpcy51c2VFeGlzdGluZ0Nzcykge1xyXG4gICAgICBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICAgIGxpbmtzID0gdGhpcy5nZXRFbGVtZW50VGFnKCdsaW5rJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbnRDb250ZW50cyA9IHRoaXMuZ2V0SHRtbENvbnRlbnRzKCk7XHJcbiAgICBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKFwiXCIsIFwiX2JsYW5rXCIsIFwidG9wPTAsbGVmdD0wLGhlaWdodD1hdXRvLHdpZHRoPWF1dG9cIik7XHJcbiAgICBwb3B1cFdpbi5kb2N1bWVudC5vcGVuKCk7XHJcbiAgICBwb3B1cFdpbi5kb2N1bWVudC53cml0ZShgXHJcbiAgICAgIDxodG1sPlxyXG4gICAgICAgIDxoZWFkPlxyXG4gICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlID8gdGhpcy5wcmludFRpdGxlIDogXCJcIn08L3RpdGxlPlxyXG4gICAgICAgICAgJHtiYXNlVGFnfVxyXG4gICAgICAgICAgJHt0aGlzLnJldHVyblN0eWxlVmFsdWVzKCl9XHJcbiAgICAgICAgICAke3RoaXMucmV0dXJuU3R5bGVTaGVldExpbmtUYWdzKCl9XHJcbiAgICAgICAgICAke3N0eWxlc31cclxuICAgICAgICAgICR7bGlua3N9XHJcbiAgICAgICAgPC9oZWFkPlxyXG4gICAgICAgIDxib2R5PlxyXG4gICAgICAgICAgJHtwcmludENvbnRlbnRzfVxyXG4gICAgICAgICAgPHNjcmlwdCBkZWZlcj5cclxuICAgICAgICAgICAgZnVuY3Rpb24gdHJpZ2dlclByaW50KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0cmlnZ2VyUHJpbnQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAke3RoaXMucHJldmlld09ubHkgPyAnJyA6IGBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VXaW5kb3cod2luZG93LnByaW50KCkpO1xyXG4gICAgICAgICAgICAgIH0sICR7dGhpcy5wcmludERlbGF5fSk7YH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBjbG9zZVdpbmRvdygpe1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0cmlnZ2VyUHJpbnQsIGZhbHNlKTtcclxuICAgICAgICAgIDwvc2NyaXB0PlxyXG4gICAgICAgIDwvYm9keT5cclxuICAgICAgPC9odG1sPmApO1xyXG4gICAgcG9wdXBXaW4uZG9jdW1lbnQuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NgxPrintDirective } from './ngx-print.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NgxPrintModule {
|
|
5
|
+
}
|
|
6
|
+
NgxPrintModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
NgxPrintModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, declarations: [NgxPrintDirective], exports: [NgxPrintDirective] });
|
|
8
|
+
NgxPrintModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [NgxPrintDirective],
|
|
13
|
+
imports: [],
|
|
14
|
+
exports: [NgxPrintDirective]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVExRCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQUxWLGlCQUFpQixhQUd0QixpQkFBaUI7NEdBRWhCLGNBQWM7MkZBQWQsY0FBYztrQkFOMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmd4UHJpbnREaXJlY3RpdmUgfSBmcm9tICcuL25neC1wcmludC5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtOZ3hQcmludERpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW1xyXG4gIF0sXHJcbiAgZXhwb3J0czogW05neFByaW50RGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4UHJpbnRNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1wcmludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-print
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ngx-print.directive';
|
|
5
|
+
export * from './lib/ngx-print.module';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1wcmludFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wcmludC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcHJpbnQubW9kdWxlJztcclxuIl19
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, Input, HostListener, NgModule } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class NgxPrintDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._printStyle = [];
|
|
7
|
+
/**
|
|
8
|
+
* Prevents the print dialog from opening on the window
|
|
9
|
+
*
|
|
10
|
+
* @memberof NgxPrintDirective
|
|
11
|
+
*/
|
|
12
|
+
this.previewOnly = false;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*
|
|
16
|
+
* @memberof NgxPrintDirective
|
|
17
|
+
*/
|
|
18
|
+
this.useExistingCss = false;
|
|
19
|
+
/**
|
|
20
|
+
* A delay in milliseconds to force the print dialog to wait before opened. Default: 0
|
|
21
|
+
*
|
|
22
|
+
* @memberof NgxPrintDirective
|
|
23
|
+
*/
|
|
24
|
+
this.printDelay = 0;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* @returns html for the given tag
|
|
29
|
+
*
|
|
30
|
+
* @memberof NgxPrintDirective
|
|
31
|
+
*/
|
|
32
|
+
this._styleSheetFile = '';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
* @memberof NgxPrintDirective
|
|
38
|
+
*/
|
|
39
|
+
set printStyle(values) {
|
|
40
|
+
for (let key in values) {
|
|
41
|
+
if (values.hasOwnProperty(key)) {
|
|
42
|
+
this._printStyle.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
this.returnStyleValues();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
*
|
|
50
|
+
* @returns the string that create the stylesheet which will be injected
|
|
51
|
+
* later within <style></style> tag.
|
|
52
|
+
*
|
|
53
|
+
* -join/replace to transform an array objects to css-styled string
|
|
54
|
+
*
|
|
55
|
+
* @memberof NgxPrintDirective
|
|
56
|
+
*/
|
|
57
|
+
returnStyleValues() {
|
|
58
|
+
return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @memberof NgxPrintDirective
|
|
62
|
+
* @param cssList
|
|
63
|
+
*/
|
|
64
|
+
set styleSheetFile(cssList) {
|
|
65
|
+
let linkTagFn = function (cssFileName) {
|
|
66
|
+
return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
|
|
67
|
+
};
|
|
68
|
+
if (cssList.indexOf(',') !== -1) {
|
|
69
|
+
const valueArr = cssList.split(',');
|
|
70
|
+
for (let val of valueArr) {
|
|
71
|
+
this._styleSheetFile = this._styleSheetFile + linkTagFn(val);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this._styleSheetFile = linkTagFn(cssList);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @returns string which contains the link tags containing the css which will
|
|
80
|
+
* be injected later within <head></head> tag.
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
returnStyleSheetLinkTags() {
|
|
84
|
+
return this._styleSheetFile;
|
|
85
|
+
}
|
|
86
|
+
getElementTag(tag) {
|
|
87
|
+
const html = [];
|
|
88
|
+
const elements = document.getElementsByTagName(tag);
|
|
89
|
+
for (let index = 0; index < elements.length; index++) {
|
|
90
|
+
html.push(elements[index].outerHTML);
|
|
91
|
+
}
|
|
92
|
+
return html.join('\r\n');
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @param data the html element collection to save defaults to
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
99
|
+
getFormData(data) {
|
|
100
|
+
for (var i = 0; i < data.length; i++) {
|
|
101
|
+
data[i].defaultValue = data[i].value;
|
|
102
|
+
if (data[i].checked) {
|
|
103
|
+
data[i].defaultChecked = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @returns html section to be printed along with some associated inputs
|
|
109
|
+
*
|
|
110
|
+
*/
|
|
111
|
+
getHtmlContents() {
|
|
112
|
+
let printContents = document.getElementById(this.printSectionId);
|
|
113
|
+
let innards = printContents.getElementsByTagName('input');
|
|
114
|
+
this.getFormData(innards);
|
|
115
|
+
let txt = printContents.getElementsByTagName('textarea');
|
|
116
|
+
this.getFormData(txt);
|
|
117
|
+
return printContents.innerHTML;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
*
|
|
121
|
+
*
|
|
122
|
+
* @memberof NgxPrintDirective
|
|
123
|
+
*/
|
|
124
|
+
print() {
|
|
125
|
+
let printContents, popupWin, styles = '', links = '';
|
|
126
|
+
const baseTag = this.getElementTag('base');
|
|
127
|
+
if (this.useExistingCss) {
|
|
128
|
+
styles = this.getElementTag('style');
|
|
129
|
+
links = this.getElementTag('link');
|
|
130
|
+
}
|
|
131
|
+
printContents = this.getHtmlContents();
|
|
132
|
+
popupWin = window.open("", "_blank", "top=0,left=0,height=auto,width=auto");
|
|
133
|
+
popupWin.document.open();
|
|
134
|
+
popupWin.document.write(`
|
|
135
|
+
<html>
|
|
136
|
+
<head>
|
|
137
|
+
<title>${this.printTitle ? this.printTitle : ""}</title>
|
|
138
|
+
${baseTag}
|
|
139
|
+
${this.returnStyleValues()}
|
|
140
|
+
${this.returnStyleSheetLinkTags()}
|
|
141
|
+
${styles}
|
|
142
|
+
${links}
|
|
143
|
+
</head>
|
|
144
|
+
<body>
|
|
145
|
+
${printContents}
|
|
146
|
+
<script defer>
|
|
147
|
+
function triggerPrint(event) {
|
|
148
|
+
window.removeEventListener('load', triggerPrint, false);
|
|
149
|
+
${this.previewOnly ? '' : `setTimeout(function() {
|
|
150
|
+
closeWindow(window.print());
|
|
151
|
+
}, ${this.printDelay});`}
|
|
152
|
+
}
|
|
153
|
+
function closeWindow(){
|
|
154
|
+
window.close();
|
|
155
|
+
}
|
|
156
|
+
window.addEventListener('load', triggerPrint, false);
|
|
157
|
+
</script>
|
|
158
|
+
</body>
|
|
159
|
+
</html>`);
|
|
160
|
+
popupWin.document.close();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
NgxPrintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
164
|
+
NgxPrintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: NgxPrintDirective, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, ngImport: i0 });
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintDirective, decorators: [{
|
|
166
|
+
type: Directive,
|
|
167
|
+
args: [{
|
|
168
|
+
selector: "button[ngxPrint]"
|
|
169
|
+
}]
|
|
170
|
+
}], propDecorators: { previewOnly: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], printSectionId: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], printTitle: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], useExistingCss: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], printDelay: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], printStyle: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], styleSheetFile: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], print: [{
|
|
185
|
+
type: HostListener,
|
|
186
|
+
args: ['click']
|
|
187
|
+
}] } });
|
|
188
|
+
|
|
189
|
+
class NgxPrintModule {
|
|
190
|
+
}
|
|
191
|
+
NgxPrintModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
192
|
+
NgxPrintModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, declarations: [NgxPrintDirective], exports: [NgxPrintDirective] });
|
|
193
|
+
NgxPrintModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule });
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxPrintModule, decorators: [{
|
|
195
|
+
type: NgModule,
|
|
196
|
+
args: [{
|
|
197
|
+
declarations: [NgxPrintDirective],
|
|
198
|
+
imports: [],
|
|
199
|
+
exports: [NgxPrintDirective]
|
|
200
|
+
}]
|
|
201
|
+
}] });
|
|
202
|
+
|
|
203
|
+
/*
|
|
204
|
+
* Public API Surface of ngx-print
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Generated bundle index. Do not edit.
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
export { NgxPrintDirective, NgxPrintModule };
|
|
212
|
+
//# sourceMappingURL=ngx-print.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-print.mjs","sources":["../../../src/lib/ngx-print.directive.ts","../../../src/lib/ngx-print.module.ts","../../../src/public_api.ts","../../../src/ngx-print.ts"],"sourcesContent":["import { Directive, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n selector: \"button[ngxPrint]\"\r\n})\r\nexport class NgxPrintDirective {\r\n\r\n public _printStyle = [];\r\n\r\n /**\r\n * Prevents the print dialog from opening on the window\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() previewOnly: boolean = false;\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() printSectionId: string;\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() printTitle: string;\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() useExistingCss = false;\r\n\r\n /**\r\n * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() printDelay: number = 0;\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input()\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n for (let key in values) {\r\n if (values.hasOwnProperty(key)) {\r\n this._printStyle.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\r\n }\r\n }\r\n this.returnStyleValues();\r\n }\r\n\r\n/**\r\n *\r\n *\r\n * @returns the string that create the stylesheet which will be injected\r\n * later within <style></style> tag.\r\n *\r\n * -join/replace to transform an array objects to css-styled string\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\npublic returnStyleValues() {\r\n return `<style> ${this._printStyle.join(' ').replace(/,/g,';')} </style>`;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @returns html for the given tag\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n private _styleSheetFile = '';\r\n\r\n /**\r\n * @memberof NgxPrintDirective\r\n * @param cssList\r\n */\r\n @Input()\r\n set styleSheetFile(cssList: string) {\r\n let linkTagFn = function(cssFileName) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n }\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n for (let val of valueArr) {\r\n this._styleSheetFile = this._styleSheetFile + linkTagFn(val);\r\n }\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n /**\r\n * @returns string which contains the link tags containing the css which will\r\n * be injected later within <head></head> tag.\r\n *\r\n */\r\n private returnStyleSheetLinkTags() {\r\n return this._styleSheetFile;\r\n }\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n return html.join('\\r\\n');\r\n }\r\n\r\n /**\r\n * \r\n * @param data the html element collection to save defaults to\r\n * \r\n */\r\n private getFormData(data: any) {\r\n for (var i = 0; i < data.length; i++) {\r\n data[i].defaultValue = data[i].value;\r\n if(data[i].checked) {\r\n data[i].defaultChecked = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @returns html section to be printed along with some associated inputs\r\n * \r\n */\r\n private getHtmlContents() {\r\n let printContents = document.getElementById(this.printSectionId);\r\n let innards = printContents.getElementsByTagName('input');\r\n this.getFormData(innards);\r\n\r\n let txt = printContents.getElementsByTagName('textarea');\r\n this.getFormData(txt);\r\n \r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @HostListener('click')\r\n public print(): void {\r\n let printContents, popupWin, styles = '', links = '';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if(this.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n printContents = this.getHtmlContents();\r\n popupWin = window.open(\"\", \"_blank\", \"top=0,left=0,height=auto,width=auto\");\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n <html>\r\n <head>\r\n <title>${this.printTitle ? this.printTitle : \"\"}</title>\r\n ${baseTag}\r\n ${this.returnStyleValues()}\r\n ${this.returnStyleSheetLinkTags()}\r\n ${styles}\r\n ${links}\r\n </head>\r\n <body>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n ${this.previewOnly ? '' : `setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${this.printDelay});`}\r\n }\r\n function closeWindow(){\r\n window.close();\r\n }\r\n window.addEventListener('load', triggerPrint, false);\r\n </script>\r\n </body>\r\n </html>`);\r\n popupWin.document.close();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NgxPrintDirective } from './ngx-print.directive';\r\n\r\n@NgModule({\r\n declarations: [NgxPrintDirective],\r\n imports: [\r\n ],\r\n exports: [NgxPrintDirective]\r\n})\r\nexport class NgxPrintModule { }\r\n","/*\r\n * Public API Surface of ngx-print\r\n */\r\n\r\nexport * from './lib/ngx-print.directive';\r\nexport * from './lib/ngx-print.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|