ngx-print 1.3.1 → 1.5.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.
@@ -1,95 +1,69 @@
1
- import * as i0 from "@angular/core";
2
- export declare class NgxPrintDirective {
3
- _printStyle: any[];
4
- /**
5
- * Prevents the print dialog from opening on the window
6
- *
7
- * @memberof NgxPrintDirective
8
- */
9
- previewOnly: boolean;
10
- /**
11
- *
12
- *
13
- * @memberof NgxPrintDirective
14
- */
15
- printSectionId: string;
16
- /**
17
- *
18
- *
19
- * @memberof NgxPrintDirective
20
- */
21
- printTitle: string;
22
- /**
23
- *
24
- *
25
- * @memberof NgxPrintDirective
26
- */
27
- useExistingCss: boolean;
28
- /**
29
- * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
30
- *
31
- * @memberof NgxPrintDirective
32
- */
33
- printDelay: number;
34
- /**
35
- *
36
- *
37
- * @memberof NgxPrintDirective
38
- */
39
- set printStyle(values: {
40
- [key: string]: {
41
- [key: string]: string;
42
- };
43
- });
44
- /**
45
- *
46
- *
47
- * @returns the string that create the stylesheet which will be injected
48
- * later within <style></style> tag.
49
- *
50
- * -join/replace to transform an array objects to css-styled string
51
- *
52
- * @memberof NgxPrintDirective
53
- */
54
- returnStyleValues(): string;
55
- /**
56
- *
57
- *
58
- * @returns html for the given tag
59
- *
60
- * @memberof NgxPrintDirective
61
- */
62
- private _styleSheetFile;
63
- /**
64
- * @memberof NgxPrintDirective
65
- * @param cssList
66
- */
67
- set styleSheetFile(cssList: string);
68
- /**
69
- * @returns string which contains the link tags containing the css which will
70
- * be injected later within <head></head> tag.
71
- *
72
- */
73
- private returnStyleSheetLinkTags;
74
- private getElementTag;
75
- /**
76
- *
77
- * @param data the html element collection to save defaults to
78
- *
79
- */
80
- private getFormData;
81
- /**
82
- * @returns html section to be printed along with some associated inputs
83
- *
84
- */
85
- private getHtmlContents;
86
- /**
87
- *
88
- *
89
- * @memberof NgxPrintDirective
90
- */
91
- print(): void;
92
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintDirective, never>;
93
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPrintDirective, "button[ngxPrint]", never, { "previewOnly": "previewOnly"; "printSectionId": "printSectionId"; "printTitle": "printTitle"; "useExistingCss": "useExistingCss"; "printDelay": "printDelay"; "printStyle": "printStyle"; "styleSheetFile": "styleSheetFile"; }, {}, never, never, false, never>;
94
- }
1
+ import { PrintBase } from './ngx-print.base';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NgxPrintDirective extends PrintBase {
4
+ private printOptions;
5
+ /**
6
+ * Prevents the print dialog from opening on the window
7
+ *
8
+ * @memberof NgxPrintDirective
9
+ */
10
+ set previewOnly(value: boolean);
11
+ /**
12
+ *
13
+ *
14
+ * @memberof NgxPrintDirective
15
+ */
16
+ set printSectionId(value: string);
17
+ /**
18
+ *
19
+ *
20
+ * @memberof NgxPrintDirective
21
+ */
22
+ set printTitle(value: string);
23
+ /**
24
+ *
25
+ *
26
+ * @memberof NgxPrintDirective
27
+ */
28
+ set useExistingCss(value: boolean);
29
+ /**
30
+ * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
31
+ *
32
+ * @memberof NgxPrintDirective
33
+ */
34
+ set printDelay(value: number);
35
+ /**
36
+ * Whether to close the window after print() returns.
37
+ *
38
+ */
39
+ set closeWindow(value: boolean);
40
+ /**
41
+ * Class attribute to apply to the body element.
42
+ *
43
+ */
44
+ set bodyClass(value: string);
45
+ /**
46
+ *
47
+ *
48
+ * @memberof NgxPrintDirective
49
+ */
50
+ set printStyle(values: {
51
+ [key: string]: {
52
+ [key: string]: string;
53
+ };
54
+ });
55
+ /**
56
+ * @memberof NgxPrintDirective
57
+ * @param cssList
58
+ */
59
+ set styleSheetFile(cssList: string);
60
+ /**
61
+ *
62
+ *
63
+ * @memberof NgxPrintDirective
64
+ */
65
+ print(): void;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintDirective, never>;
67
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPrintDirective, "button[ngxPrint]", never, { "previewOnly": { "alias": "previewOnly"; "required": false; }; "printSectionId": { "alias": "printSectionId"; "required": false; }; "printTitle": { "alias": "printTitle"; "required": false; }; "useExistingCss": { "alias": "useExistingCss"; "required": false; }; "printDelay": { "alias": "printDelay"; "required": false; }; "closeWindow": { "alias": "closeWindow"; "required": false; }; "bodyClass": { "alias": "bodyClass"; "required": false; }; "printStyle": { "alias": "printStyle"; "required": false; }; "styleSheetFile": { "alias": "styleSheetFile"; "required": false; }; }, {}, never, never, true, never>;
68
+ }
95
69
  //# sourceMappingURL=ngx-print.directive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.directive.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.directive.ts"],"names":[],"mappings":";AACA,qBAGa,iBAAiB;IAErB,WAAW,QAAM;IAExB;;;;OAIG;IACM,WAAW,EAAE,OAAO,CAAS;IAEtC;;;;OAIG;IACM,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACM,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACM,cAAc,UAAS;IAEhC;;;;OAIG;IACM,UAAU,EAAE,MAAM,CAAK;IAEhC;;;;OAIG;IACH,IACI,UAAU,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,EAOlE;IAEH;;;;;;;;;OASG;IACI,iBAAiB;IAItB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,CAAM;IAE7B;;;OAGG;IACH,IACI,cAAc,CAAC,OAAO,EAAE,MAAM,EAYjC;IAED;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAGhC,OAAO,CAAC,aAAa;IASrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IASnB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;OAIG;IAEI,KAAK,IAAI,IAAI;yCApJT,iBAAiB;2CAAjB,iBAAiB;CA4L7B"}
1
+ {"version":3,"file":"ngx-print.directive.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.directive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;;AAE7C,qBAIa,iBAAkB,SAAQ,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAsB;IAC1C;;;;OAIG;IACH,IAAa,WAAW,CAAC,KAAK,EAAE,OAAO,EAEtC;IAED;;;;OAIG;IACH,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,EAExC;IAED;;;;OAIG;IACH,IAAa,UAAU,CAAC,KAAK,EAAE,MAAM,EAEpC;IAED;;;;OAIG;IACH,IAAa,cAAc,CAAC,KAAK,EAAE,OAAO,EAEzC;IAED;;;;OAIG;IACH,IAAa,UAAU,CAAC,KAAK,EAAE,MAAM,EAEpC;IAED;;;OAGG;IACH,IAAa,WAAW,CAAC,KAAK,EAAE,OAAO,EAEtC;IAED;;;OAGG;IACH,IAAa,SAAS,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED;;;;OAIG;IACH,IACI,UAAU,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,EAElE;IAGD;;;OAGG;IACH,IACI,cAAc,CAAC,OAAO,EAAE,MAAM,EAEjC;IAED;;;;OAIG;IAEI,KAAK,IAAI,IAAI;yCAzFT,iBAAiB;2CAAjB,iBAAiB;CA4F7B"}
@@ -1,8 +1,8 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./ngx-print.directive";
3
- export declare class NgxPrintModule {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxPrintModule, [typeof i1.NgxPrintDirective], never, [typeof i1.NgxPrintDirective]>;
6
- static ɵinj: i0.ɵɵInjectorDeclaration<NgxPrintModule>;
7
- }
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ngx-print.directive";
3
+ export declare class NgxPrintModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxPrintModule, never, [typeof i1.NgxPrintDirective], [typeof i1.NgxPrintDirective]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<NgxPrintModule>;
7
+ }
8
8
  //# sourceMappingURL=ngx-print.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.module.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.module.ts"],"names":[],"mappings":";;AAGA,qBAMa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAI"}
1
+ {"version":3,"file":"ngx-print.module.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.module.ts"],"names":[],"mappings":";;AAGA,qBAIa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAI"}
@@ -0,0 +1,44 @@
1
+ import { PrintBase } from "./ngx-print.base";
2
+ import { PrintOptions } from "./print-options";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service for handling printing functionality in Angular applications.
6
+ * Extends the base printing class (PrintBase).
7
+ *
8
+ * @export
9
+ * @class NgxPrintService
10
+ * @extends {PrintBase}
11
+ */
12
+ export declare class NgxPrintService extends PrintBase {
13
+ /**
14
+ * Initiates the printing process using the provided print options.
15
+ *
16
+ * @param {PrintOptions} printOptions - Options for configuring the printing process.
17
+ * @memberof NgxPrintService
18
+ * @returns {void}
19
+ */
20
+ print(printOptions: PrintOptions): void;
21
+ /**
22
+ * Sets the print style for the printing process.
23
+ *
24
+ * @param {{ [key: string]: { [key: string]: string } }} values - A dictionary representing the print styles.
25
+ * @memberof NgxPrintService
26
+ * @setter
27
+ */
28
+ set printStyle(values: {
29
+ [key: string]: {
30
+ [key: string]: string;
31
+ };
32
+ });
33
+ /**
34
+ * Sets the stylesheet file for the printing process.
35
+ *
36
+ * @param {string} cssList - A string representing the path to the stylesheet file.
37
+ * @memberof NgxPrintService
38
+ * @setter
39
+ */
40
+ set styleSheetFile(cssList: string);
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintService, never>;
42
+ static ɵprov: i0.ɵɵInjectableDeclaration<NgxPrintService>;
43
+ }
44
+ //# sourceMappingURL=ngx-print.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-print.service.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;AAE/C;;;;;;;GAOG;AACH,qBAGa,eAAgB,SAAQ,SAAS;IAE5C;;;;;;OAMG;IACI,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAK9C;;;;;;OAMG;IACH,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,EAElE;IAGD;;;;;;OAMG;IACH,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAEjC;yCAnCU,eAAe;6CAAf,eAAe;CAoC3B"}
@@ -0,0 +1,11 @@
1
+ export declare class PrintOptions {
2
+ printSectionId: string;
3
+ printTitle: string;
4
+ useExistingCss: boolean;
5
+ bodyClass: string;
6
+ previewOnly: boolean;
7
+ closeWindow: boolean;
8
+ printDelay: number;
9
+ constructor(options?: Partial<PrintOptions>);
10
+ }
11
+ //# sourceMappingURL=print-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-options.d.ts","sourceRoot":"","sources":["../../../src/lib/print-options.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACvB,cAAc,EAAE,MAAM,CAAQ;IAC9B,UAAU,EAAE,MAAM,CAAQ;IAC1B,cAAc,EAAE,OAAO,CAAS;IAChC,SAAS,EAAE,MAAM,CAAM;IACvB,WAAW,EAAE,OAAO,CAAS;IAC7B,WAAW,EAAE,OAAO,CAAQ;IAC5B,UAAU,EAAE,MAAM,CAAK;gBAEX,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAK5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-print",
3
- "version": "1.3.1",
3
+ "version": "1.5.0",
4
4
  "description": "Plug n' Play Angular (2++) directive to print your stuff",
5
5
  "author": "https://github.com/selemxmn/ngx-print/graphs/contributors",
6
6
  "repository": {
@@ -25,11 +25,7 @@
25
25
  "dependencies": {
26
26
  "tslib": "^2.3.0"
27
27
  },
28
- "module": "fesm2015/ngx-print.mjs",
29
- "es2020": "fesm2020/ngx-print.mjs",
30
- "esm2020": "esm2020/ngx-print.mjs",
31
- "fesm2020": "fesm2020/ngx-print.mjs",
32
- "fesm2015": "fesm2015/ngx-print.mjs",
28
+ "module": "fesm2022/ngx-print.mjs",
33
29
  "typings": "index.d.ts",
34
30
  "exports": {
35
31
  "./package.json": {
@@ -37,11 +33,9 @@
37
33
  },
38
34
  ".": {
39
35
  "types": "./index.d.ts",
40
- "esm2020": "./esm2020/ngx-print.mjs",
41
- "es2020": "./fesm2020/ngx-print.mjs",
42
- "es2015": "./fesm2015/ngx-print.mjs",
43
- "node": "./fesm2015/ngx-print.mjs",
44
- "default": "./fesm2020/ngx-print.mjs"
36
+ "esm2022": "./esm2022/ngx-print.mjs",
37
+ "esm": "./esm2022/ngx-print.mjs",
38
+ "default": "./fesm2022/ngx-print.mjs"
45
39
  }
46
40
  },
47
41
  "sideEffects": false
package/public_api.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export * from './lib/ngx-print.directive';
2
- export * from './lib/ngx-print.module';
1
+ export * from './lib/ngx-print.service';
2
+ export * from './lib/ngx-print.directive';
3
+ export * from './lib/ngx-print.module';
4
+ export * from './lib/print-options';
3
5
  //# sourceMappingURL=public_api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":"AAIA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
@@ -1,187 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSS9ELE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFLUyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFnQnRDOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUVoQzs7OztXQUlHO1FBQ00sZUFBVSxHQUFXLENBQUMsQ0FBQztRQStCaEM7Ozs7OztXQU1HO1FBQ0ssb0JBQWUsR0FBRyxFQUFFLENBQUM7S0FpSDlCO0lBckpDOzs7O09BSUc7SUFDSCxJQUNJLFVBQVUsQ0FBQyxNQUFvRDtRQUNqRSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEY7U0FDRjtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFSDs7Ozs7Ozs7O09BU0c7SUFDSSxpQkFBaUI7UUFDdEIsT0FBTyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUMxRSxDQUFDO0lBV0Q7OztPQUdHO0lBQ0gsSUFDSSxjQUFjLENBQUMsT0FBZTtRQUNoQyxJQUFJLFNBQVMsR0FBRyxVQUFTLFdBQVc7WUFDbEMsT0FBTyxnREFBZ0QsV0FBVyxJQUFJLENBQUM7UUFDekUsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUQ7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHdCQUF3QjtRQUM5QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNPLGFBQWEsQ0FBQyxHQUFnQztRQUNwRCxNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssV0FBVyxDQUFDLElBQVM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3JDLElBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlO1FBQ3JCLElBQUksYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksT0FBTyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLElBQUksR0FBRyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVJLEtBQUs7UUFDVixJQUFJLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFDNUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzs7O21CQUdULElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsT0FBTztZQUNQLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDL0IsTUFBTTtZQUNOLEtBQUs7OztZQUdMLGFBQWE7Ozs7Z0JBSVQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7bUJBRXJCLElBQUksQ0FBQyxVQUFVLElBQUk7Ozs7Ozs7O2NBUXhCLENBQUMsQ0FBQztRQUNaLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OEdBM0xVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7OEJBVVUsV0FBVztzQkFBbkIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSztnQkFzQ0YsY0FBYztzQkFEakIsS0FBSztnQkFtRUMsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiYnV0dG9uW25neFByaW50XVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hQcmludERpcmVjdGl2ZSB7XHJcblxyXG4gIHB1YmxpYyBfcHJpbnRTdHlsZSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBQcmV2ZW50cyB0aGUgcHJpbnQgZGlhbG9nIGZyb20gb3BlbmluZyBvbiB0aGUgd2luZG93XHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBwcmV2aWV3T25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHJpbnRTZWN0aW9uSWQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByaW50VGl0bGU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHVzZUV4aXN0aW5nQ3NzID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIHRvIGZvcmNlIHRoZSBwcmludCBkaWFsb2cgdG8gd2FpdCBiZWZvcmUgb3BlbmVkLiBEZWZhdWx0OiAwXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBwcmludERlbGF5OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcHJpbnRTdHlsZSh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7XHJcbiAgICAgIGlmICh2YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICB0aGlzLl9wcmludFN0eWxlLnB1c2goKGtleSArIEpTT04uc3RyaW5naWZ5KHZhbHVlc1trZXldKSkucmVwbGFjZSgvWydcIl0rL2csICcnKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmV0dXJuU3R5bGVWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4vKipcclxuICpcclxuICpcclxuICogQHJldHVybnMgdGhlIHN0cmluZyB0aGF0IGNyZWF0ZSB0aGUgc3R5bGVzaGVldCB3aGljaCB3aWxsIGJlIGluamVjdGVkXHJcbiAqIGxhdGVyIHdpdGhpbiA8c3R5bGU+PC9zdHlsZT4gdGFnLlxyXG4gKlxyXG4gKiAtam9pbi9yZXBsYWNlIHRvIHRyYW5zZm9ybSBhbiBhcnJheSBvYmplY3RzIHRvIGNzcy1zdHlsZWQgc3RyaW5nXHJcbiAqXHJcbiAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gKi9cclxucHVibGljIHJldHVyblN0eWxlVmFsdWVzKCkge1xyXG4gIHJldHVybiBgPHN0eWxlPiAke3RoaXMuX3ByaW50U3R5bGUuam9pbignICcpLnJlcGxhY2UoLywvZywnOycpfSA8L3N0eWxlPmA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgaHRtbCBmb3IgdGhlIGdpdmVuIHRhZ1xyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3R5bGVTaGVldEZpbGUgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICogQHBhcmFtIGNzc0xpc3RcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIGxldCBsaW5rVGFnRm4gPSBmdW5jdGlvbihjc3NGaWxlTmFtZSkge1xyXG4gICAgICByZXR1cm4gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiJHtjc3NGaWxlTmFtZX1cIj5gO1xyXG4gICAgfVxyXG4gICAgaWYgKGNzc0xpc3QuaW5kZXhPZignLCcpICE9PSAtMSkge1xyXG4gICAgICBjb25zdCB2YWx1ZUFyciA9IGNzc0xpc3Quc3BsaXQoJywnKTtcclxuICAgICAgZm9yIChsZXQgdmFsIG9mIHZhbHVlQXJyKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGVTaGVldEZpbGUgPSB0aGlzLl9zdHlsZVNoZWV0RmlsZSArIGxpbmtUYWdGbih2YWwpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zdHlsZVNoZWV0RmlsZSA9IGxpbmtUYWdGbihjc3NMaXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zIHN0cmluZyB3aGljaCBjb250YWlucyB0aGUgbGluayB0YWdzIGNvbnRhaW5pbmcgdGhlIGNzcyB3aGljaCB3aWxsXHJcbiAgICogYmUgaW5qZWN0ZWQgbGF0ZXIgd2l0aGluIDxoZWFkPjwvaGVhZD4gdGFnLlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXR1cm5TdHlsZVNoZWV0TGlua1RhZ3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3R5bGVTaGVldEZpbGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0RWxlbWVudFRhZyh0YWc6IGtleW9mIEhUTUxFbGVtZW50VGFnTmFtZU1hcCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBodG1sOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBodG1sLnB1c2goZWxlbWVudHNbaW5kZXhdLm91dGVySFRNTCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBkYXRhIHRoZSBodG1sIGVsZW1lbnQgY29sbGVjdGlvbiB0byBzYXZlIGRlZmF1bHRzIHRvXHJcbiAgICogXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRGb3JtRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBkYXRhW2ldLmRlZmF1bHRWYWx1ZSA9IGRhdGFbaV0udmFsdWU7XHJcbiAgICAgIGlmKGRhdGFbaV0uY2hlY2tlZCkge1xyXG4gICAgICAgIGRhdGFbaV0uZGVmYXVsdENoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcmV0dXJucyBodG1sIHNlY3Rpb24gdG8gYmUgcHJpbnRlZCBhbG9uZyB3aXRoIHNvbWUgYXNzb2NpYXRlZCBpbnB1dHNcclxuICAgKiBcclxuICAgKi9cclxuICBwcml2YXRlIGdldEh0bWxDb250ZW50cygpIHtcclxuICAgIGxldCBwcmludENvbnRlbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5wcmludFNlY3Rpb25JZCk7XHJcbiAgICBsZXQgaW5uYXJkcyA9IHByaW50Q29udGVudHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7XHJcbiAgICB0aGlzLmdldEZvcm1EYXRhKGlubmFyZHMpO1xyXG5cclxuICAgIGxldCB0eHQgPSBwcmludENvbnRlbnRzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZXh0YXJlYScpO1xyXG4gICAgdGhpcy5nZXRGb3JtRGF0YSh0eHQpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gcHJpbnRDb250ZW50cy5pbm5lckhUTUw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIHB1YmxpYyBwcmludCgpOiB2b2lkIHtcclxuICAgIGxldCBwcmludENvbnRlbnRzLCBwb3B1cFdpbiwgc3R5bGVzID0gJycsIGxpbmtzID0gJyc7XHJcbiAgICBjb25zdCBiYXNlVGFnID0gdGhpcy5nZXRFbGVtZW50VGFnKCdiYXNlJyk7XHJcblxyXG4gICAgaWYodGhpcy51c2VFeGlzdGluZ0Nzcykge1xyXG4gICAgICBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICAgIGxpbmtzID0gdGhpcy5nZXRFbGVtZW50VGFnKCdsaW5rJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbnRDb250ZW50cyA9IHRoaXMuZ2V0SHRtbENvbnRlbnRzKCk7XHJcbiAgICBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKFwiXCIsIFwiX2JsYW5rXCIsIFwidG9wPTAsbGVmdD0wLGhlaWdodD1hdXRvLHdpZHRoPWF1dG9cIik7XHJcbiAgICBwb3B1cFdpbi5kb2N1bWVudC5vcGVuKCk7XHJcbiAgICBwb3B1cFdpbi5kb2N1bWVudC53cml0ZShgXHJcbiAgICAgIDxodG1sPlxyXG4gICAgICAgIDxoZWFkPlxyXG4gICAgICAgICAgPHRpdGxlPiR7dGhpcy5wcmludFRpdGxlID8gdGhpcy5wcmludFRpdGxlIDogXCJcIn08L3RpdGxlPlxyXG4gICAgICAgICAgJHtiYXNlVGFnfVxyXG4gICAgICAgICAgJHt0aGlzLnJldHVyblN0eWxlVmFsdWVzKCl9XHJcbiAgICAgICAgICAke3RoaXMucmV0dXJuU3R5bGVTaGVldExpbmtUYWdzKCl9XHJcbiAgICAgICAgICAke3N0eWxlc31cclxuICAgICAgICAgICR7bGlua3N9XHJcbiAgICAgICAgPC9oZWFkPlxyXG4gICAgICAgIDxib2R5PlxyXG4gICAgICAgICAgJHtwcmludENvbnRlbnRzfVxyXG4gICAgICAgICAgPHNjcmlwdCBkZWZlcj5cclxuICAgICAgICAgICAgZnVuY3Rpb24gdHJpZ2dlclByaW50KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0cmlnZ2VyUHJpbnQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAke3RoaXMucHJldmlld09ubHkgPyAnJyA6IGBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VXaW5kb3cod2luZG93LnByaW50KCkpO1xyXG4gICAgICAgICAgICAgIH0sICR7dGhpcy5wcmludERlbGF5fSk7YH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBjbG9zZVdpbmRvdygpe1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0cmlnZ2VyUHJpbnQsIGZhbHNlKTtcclxuICAgICAgICAgIDwvc2NyaXB0PlxyXG4gICAgICAgIDwvYm9keT5cclxuICAgICAgPC9odG1sPmApO1xyXG4gICAgcG9wdXBXaW4uZG9jdW1lbnQuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,17 +0,0 @@
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==
@@ -1,6 +0,0 @@
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