ngx-print 1.2.1 → 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/README.md CHANGED
@@ -3,6 +3,11 @@
3
3
  # ngx-print : *plug n' play Angular (2++) directive to print your stuff*
4
4
  This directive makes printing your HTML sections smooth and easy in your Angular application. It is inspired from the old [AngularJS ngPrint](https://github.com/gilf/ngPrint) directive, thus it is intendend to be used with the new Angular -2/4/5/6/7-... ***Enjoy ! contributions are so welcomed :)***
5
5
 
6
+ ## Dependencies
7
+ | ngx-print | Angular |
8
+ | ------------ | ------------ |
9
+ | 1.2.1 | 7.0.0 - 14.1.0 |
10
+ | 1.3.x | 15.0.0 |
6
11
  ## Setup
7
12
 
8
13
  **1-** In your root application folder run:
@@ -127,6 +132,24 @@ Here some simple styles were added to every `h1` & `h2` tags within the `div` wh
127
132
  printSectionId="print-section"
128
133
  ngxPrint>print</button>
129
134
 
135
+ ```
136
+
137
+ - If you would like to show a preview without a print dialog use
138
+ `previewOnly`:
139
+
140
+ ```html
141
+
142
+ <div id="print-section">
143
+
144
+ <!-- ... -->
145
+
146
+ </div>
147
+
148
+ <button
149
+ [previewOnly]="true"
150
+ printSectionId="print-section"
151
+ ngxPrint>print</button>
152
+
130
153
  ```
131
154
  ## Contributors :1st_place_medal:
132
155
 
@@ -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
@@ -1,39 +1,40 @@
1
- import { Directive, HostListener, Input, NgModule } from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, Input, HostListener, NgModule } from '@angular/core';
2
3
 
3
- /**
4
- * @fileoverview added by tsickle
5
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6
- */
7
4
  class NgxPrintDirective {
8
5
  constructor() {
9
6
  this._printStyle = [];
10
7
  /**
8
+ * Prevents the print dialog from opening on the window
11
9
  *
10
+ * @memberof NgxPrintDirective
11
+ */
12
+ this.previewOnly = false;
13
+ /**
12
14
  *
13
- * \@memberof NgxPrintDirective
15
+ *
16
+ * @memberof NgxPrintDirective
14
17
  */
15
18
  this.useExistingCss = false;
16
19
  /**
17
20
  * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
18
21
  *
19
- * \@memberof NgxPrintDirective
22
+ * @memberof NgxPrintDirective
20
23
  */
21
24
  this.printDelay = 0;
22
25
  /**
23
26
  *
24
27
  *
25
- * @return html for the given tag
28
+ * @returns html for the given tag
26
29
  *
27
- * \@memberof NgxPrintDirective
30
+ * @memberof NgxPrintDirective
28
31
  */
29
32
  this._styleSheetFile = '';
30
33
  }
31
34
  /**
32
35
  *
33
36
  *
34
- * \@memberof NgxPrintDirective
35
- * @param {?} values
36
- * @return {?}
37
+ * @memberof NgxPrintDirective
37
38
  */
38
39
  set printStyle(values) {
39
40
  for (let key in values) {
@@ -46,32 +47,25 @@ class NgxPrintDirective {
46
47
  /**
47
48
  *
48
49
  *
49
- * \@memberof NgxPrintDirective
50
- * @return {?} the string that create the stylesheet which will be injected
50
+ * @returns the string that create the stylesheet which will be injected
51
51
  * later within <style></style> tag.
52
52
  *
53
53
  * -join/replace to transform an array objects to css-styled string
54
54
  *
55
+ * @memberof NgxPrintDirective
55
56
  */
56
57
  returnStyleValues() {
57
58
  return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
58
59
  }
59
60
  /**
60
- * \@memberof NgxPrintDirective
61
- * @param {?} cssList
62
- * @return {?}
61
+ * @memberof NgxPrintDirective
62
+ * @param cssList
63
63
  */
64
64
  set styleSheetFile(cssList) {
65
- /** @type {?} */
66
- let linkTagFn = (/**
67
- * @param {?} cssFileName
68
- * @return {?}
69
- */
70
- function (cssFileName) {
65
+ let linkTagFn = function (cssFileName) {
71
66
  return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
72
- });
67
+ };
73
68
  if (cssList.indexOf(',') !== -1) {
74
- /** @type {?} */
75
69
  const valueArr = cssList.split(',');
76
70
  for (let val of valueArr) {
77
71
  this._styleSheetFile = this._styleSheetFile + linkTagFn(val);
@@ -82,23 +76,15 @@ class NgxPrintDirective {
82
76
  }
83
77
  }
84
78
  /**
85
- * @private
86
- * @return {?} string which contains the link tags containing the css which will
79
+ * @returns string which contains the link tags containing the css which will
87
80
  * be injected later within <head></head> tag.
88
81
  *
89
82
  */
90
83
  returnStyleSheetLinkTags() {
91
84
  return this._styleSheetFile;
92
85
  }
93
- /**
94
- * @private
95
- * @param {?} tag
96
- * @return {?}
97
- */
98
86
  getElementTag(tag) {
99
- /** @type {?} */
100
87
  const html = [];
101
- /** @type {?} */
102
88
  const elements = document.getElementsByTagName(tag);
103
89
  for (let index = 0; index < elements.length; index++) {
104
90
  html.push(elements[index].outerHTML);
@@ -107,10 +93,8 @@ class NgxPrintDirective {
107
93
  }
108
94
  /**
109
95
  *
110
- * @private
111
- * @param {?} data the html element collection to save defaults to
96
+ * @param data the html element collection to save defaults to
112
97
  *
113
- * @return {?}
114
98
  */
115
99
  getFormData(data) {
116
100
  for (var i = 0; i < data.length; i++) {
@@ -121,17 +105,13 @@ class NgxPrintDirective {
121
105
  }
122
106
  }
123
107
  /**
124
- * @private
125
- * @return {?} html section to be printed along with some associated inputs
108
+ * @returns html section to be printed along with some associated inputs
126
109
  *
127
110
  */
128
111
  getHtmlContents() {
129
- /** @type {?} */
130
112
  let printContents = document.getElementById(this.printSectionId);
131
- /** @type {?} */
132
113
  let innards = printContents.getElementsByTagName('input');
133
114
  this.getFormData(innards);
134
- /** @type {?} */
135
115
  let txt = printContents.getElementsByTagName('textarea');
136
116
  this.getFormData(txt);
137
117
  return printContents.innerHTML;
@@ -139,19 +119,10 @@ class NgxPrintDirective {
139
119
  /**
140
120
  *
141
121
  *
142
- * \@memberof NgxPrintDirective
143
- * @return {?}
122
+ * @memberof NgxPrintDirective
144
123
  */
145
124
  print() {
146
- /** @type {?} */
147
- let printContents;
148
- /** @type {?} */
149
- let popupWin;
150
- /** @type {?} */
151
- let styles = '';
152
- /** @type {?} */
153
- let links = '';
154
- /** @type {?} */
125
+ let printContents, popupWin, styles = '', links = '';
155
126
  const baseTag = this.getElementTag('base');
156
127
  if (this.useExistingCss) {
157
128
  styles = this.getElementTag('style');
@@ -175,9 +146,9 @@ class NgxPrintDirective {
175
146
  <script defer>
176
147
  function triggerPrint(event) {
177
148
  window.removeEventListener('load', triggerPrint, false);
178
- setTimeout(function() {
149
+ ${this.previewOnly ? '' : `setTimeout(function() {
179
150
  closeWindow(window.print());
180
- }, ${this.printDelay});
151
+ }, ${this.printDelay});`}
181
152
  }
182
153
  function closeWindow(){
183
154
  window.close();
@@ -189,45 +160,53 @@ class NgxPrintDirective {
189
160
  popupWin.document.close();
190
161
  }
191
162
  }
192
- NgxPrintDirective.decorators = [
193
- { type: Directive, args: [{
194
- selector: "button[ngxPrint]"
195
- },] }
196
- ];
197
- NgxPrintDirective.propDecorators = {
198
- printSectionId: [{ type: Input }],
199
- printTitle: [{ type: Input }],
200
- useExistingCss: [{ type: Input }],
201
- printDelay: [{ type: Input }],
202
- printStyle: [{ type: Input }],
203
- styleSheetFile: [{ type: Input }],
204
- print: [{ type: HostListener, args: ['click',] }]
205
- };
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
+ }] } });
206
188
 
207
- /**
208
- * @fileoverview added by tsickle
209
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
210
- */
211
189
  class NgxPrintModule {
212
190
  }
213
- NgxPrintModule.decorators = [
214
- { type: NgModule, args: [{
215
- declarations: [NgxPrintDirective],
216
- imports: [],
217
- exports: [NgxPrintDirective]
218
- },] }
219
- ];
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
+ }] });
220
202
 
221
- /**
222
- * @fileoverview added by tsickle
223
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
203
+ /*
204
+ * Public API Surface of ngx-print
224
205
  */
225
206
 
226
207
  /**
227
- * @fileoverview added by tsickle
228
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
208
+ * Generated bundle index. Do not edit.
229
209
  */
230
210
 
231
211
  export { NgxPrintDirective, NgxPrintModule };
232
-
233
- //# sourceMappingURL=ngx-print.js.map
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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"}