ngx-print 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,6 +10,11 @@ This directive makes printing your HTML sections smooth and easy in your Angular
10
10
  | 1.3.x | 15.0.0 |
11
11
  | 1.4.x | 16.0.0 |
12
12
  | 1.5.x | 17.0.0 |
13
+ | 2.x.x | 18.0.0 |
14
+
15
+ ### Note
16
+ The versioning strategy has been updated from incrementing minor versions (1.5.x) to using major versions (2.x.x). This change ensures that npm update will no longer automatically upgrade to an unsupported Angular version. Previously, this was overlooked, leading to potential compatibility issues. Starting with version 2.x.x, we are addressing this oversight to ensure better version management going forward.
17
+
13
18
  ## Setup
14
19
 
15
20
  **1-** In your root application folder run:
@@ -187,7 +192,16 @@ Here some simple styles were added to every `h1` & `h2` tags within the `div` wh
187
192
  ngxPrint>print</button>
188
193
 
189
194
  ```
190
- ## Using NgxPrint as a service
195
+
196
+ - To print in a new tab rather than a new window set the property `openNewTab` to true. By default `openNewTab` is false and ngxPrint will open a new print window.
197
+
198
+ ```html
199
+ <button
200
+ [openNewTab]="true"
201
+ ngxPrint>print</button>
202
+ ```
203
+
204
+ ## Using NgxPrint as a service (v1.5+)
191
205
  Inject the NgxPrintService in the constructor of your component or service:
192
206
 
193
207
  ```typescript
@@ -214,6 +228,7 @@ The print options object allows you to specify how the print job should be handl
214
228
  printTitle: string = null;
215
229
  useExistingCss: boolean = false;
216
230
  bodyClass: string = '';
231
+ openNewTab: boolean = false;
217
232
  previewOnly: boolean = false;
218
233
  closeWindow: boolean = true;
219
234
  printDelay: number = 0;
@@ -228,6 +243,9 @@ this.printService.printStyle = styleSheet;
228
243
  this.printService.styleSheetFile = fileLocation;
229
244
  ```
230
245
 
246
+ ## Content-Security-Policy (CSP) Support
247
+ If Angular is configured to use a [CSP Nonce](https://angular.io/api/core/CSP_NONCE), ngx-print will automatically inject the `[printStyle]` CSS rules with this Nonce authorization.
248
+
231
249
  ## Contributors :1st_place_medal:
232
250
 
233
251
  Huge thanks to: [deeplotia](https://github.com/deeplotia) , [Ben L](https://github.com/broem) , [Gavyn McKenzie](https://github.com/gavmck) , [silenceway](https://github.com/silenceway), [Muhammad Ahsan Ayaz](https://github.com/AhsanAyaz), [Core121](https://github.com/Core121) and to all `ngx-print` users
@@ -1,8 +1,12 @@
1
- import { Injectable } from "@angular/core";
1
+ import { CSP_NONCE, Inject, Injectable, Optional } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class PrintBase {
4
+ nonce;
4
5
  _printStyle = [];
5
6
  _styleSheetFile = '';
7
+ constructor(nonce) {
8
+ this.nonce = nonce;
9
+ }
6
10
  //#region Getters and Setters
7
11
  /**
8
12
  * Sets the print styles based on the provided values.
@@ -27,7 +31,8 @@ export class PrintBase {
27
31
  * -join/replace to transform an array objects to css-styled string
28
32
  */
29
33
  returnStyleValues() {
30
- return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
34
+ const styleNonce = this.nonce ? ` nonce="${this.nonce}"` : '';
35
+ return `<style${styleNonce}> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
31
36
  }
32
37
  /**
33
38
  * @returns string which contains the link tags containing the css which will
@@ -44,7 +49,7 @@ export class PrintBase {
44
49
  * @protected
45
50
  */
46
51
  setStyleSheetFile(cssList) {
47
- let linkTagFn = function (cssFileName) {
52
+ const linkTagFn = function (cssFileName) {
48
53
  return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
49
54
  };
50
55
  if (cssList.indexOf(',') !== -1) {
@@ -97,6 +102,30 @@ export class PrintBase {
97
102
  element['defaultValue'] = element.value;
98
103
  }
99
104
  }
105
+ /**
106
+ * Converts a canvas element to an image and returns its HTML string.
107
+ *
108
+ * @param {HTMLCanvasElement} element - The canvas element to convert.
109
+ * @returns {string} - HTML string of the image.
110
+ * @private
111
+ */
112
+ canvasToImageHtml(element) {
113
+ const dataUrl = element.toDataURL();
114
+ return `<img src="${dataUrl}" style="max-width: 100%;">`;
115
+ }
116
+ /**
117
+ * Includes canvas contents in the print section via img tags.
118
+ *
119
+ * @param {HTMLCollectionOf<HTMLCanvasElement>} elements - Collection of canvas elements.
120
+ * @private
121
+ */
122
+ updateCanvasToImage(elements) {
123
+ for (let i = 0; i < elements.length; i++) {
124
+ const element = this.canvasToImageHtml(elements[i]);
125
+ elements[i].insertAdjacentHTML('afterend', element);
126
+ elements[i].remove();
127
+ }
128
+ }
100
129
  /**
101
130
  * Retrieves the HTML content of a specified printing section.
102
131
  *
@@ -111,9 +140,11 @@ export class PrintBase {
111
140
  const inputEls = printContents.getElementsByTagName('input');
112
141
  const selectEls = printContents.getElementsByTagName('select');
113
142
  const textAreaEls = printContents.getElementsByTagName('textarea');
143
+ const canvasEls = printContents.getElementsByTagName('canvas');
114
144
  this.updateInputDefaults(inputEls);
115
145
  this.updateSelectDefaults(selectEls);
116
146
  this.updateTextAreaDefaults(textAreaEls);
147
+ this.updateCanvasToImage(canvasEls);
117
148
  return printContents.innerHTML;
118
149
  }
119
150
  /**
@@ -139,19 +170,29 @@ export class PrintBase {
139
170
  * @public
140
171
  */
141
172
  print(printOptions) {
142
- let styles = '', links = '';
173
+ let styles = '', links = '', popOut = 'top=0,left=0,height=auto,width=auto';
143
174
  const baseTag = this.getElementTag('base');
144
175
  if (printOptions.useExistingCss) {
145
176
  styles = this.getElementTag('style');
146
177
  links = this.getElementTag('link');
147
178
  }
179
+ // If the openNewTab option is set to true, then set the popOut option to an empty string.
180
+ // This will cause the print dialog to open in a new tab.
181
+ if (printOptions.openNewTab) {
182
+ popOut = '';
183
+ }
148
184
  const printContents = this.getHtmlContents(printOptions.printSectionId);
149
185
  if (!printContents) {
150
186
  // Handle the case where the specified print section is not found.
151
187
  console.error(`Print section with id ${printOptions.printSectionId} not found.`);
152
188
  return;
153
189
  }
154
- const popupWin = window.open("", "_blank", "top=0,left=0,height=auto,width=auto");
190
+ const popupWin = window.open("", "_blank", popOut);
191
+ if (!popupWin) {
192
+ // the popup window could not be opened.
193
+ console.error('Could not open print window.');
194
+ return;
195
+ }
155
196
  popupWin.document.open();
156
197
  popupWin.document.write(`
157
198
  <html>
@@ -181,13 +222,18 @@ export class PrintBase {
181
222
  </html>`);
182
223
  popupWin.document.close();
183
224
  }
184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
185
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, providedIn: 'root' });
225
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, deps: [{ token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
226
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, providedIn: 'root' });
186
227
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, decorators: [{
188
229
  type: Injectable,
189
230
  args: [{
190
231
  providedIn: 'root'
191
232
  }]
192
- }] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25neC1wcmludC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxTQUFTO0lBRVYsV0FBVyxHQUFhLEVBQUUsQ0FBQztJQUMzQixlQUFlLEdBQVcsRUFBRSxDQUFDO0lBRXJDLDZCQUE2QjtJQUM3Qjs7Ozs7T0FLRztJQUNPLGFBQWEsQ0FBQyxNQUFvRDtRQUN4RSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUNwQixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDcEY7U0FDSjtJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksaUJBQWlCO1FBQ3BCLE9BQU8sV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDL0UsQ0FBQztJQUVEOzs7O0tBSUM7SUFDTyx3QkFBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLGlCQUFpQixDQUFDLE9BQWU7UUFDdkMsSUFBSSxTQUFTLEdBQUcsVUFBVSxXQUFXO1lBQ2pDLE9BQU8sZ0RBQWdELFdBQVcsSUFBSSxDQUFDO1FBQzNFLENBQUMsQ0FB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RTtnQkFDN0QsT0FBTztnQkFDUCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDL0IsTUFBTTtnQkFDTixLQUFLOztvQkFFRCxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckUsYUFBYTs7OztvQkFJVCxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzt1QkFFN0IsWUFBWSxDQUFDLFVBQVUsSUFBSTs7O29CQUc5QixZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTs7Ozs7a0JBS25ELENBQUMsQ0FBQztRQUNaLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQzt1R0F4TVEsU0FBUzsyR0FBVCxTQUFTLGNBRk4sTUFBTTs7MkZBRVQsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSBcIi4vcHJpbnQtb3B0aW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmludEJhc2Uge1xyXG5cclxuICAgIHByaXZhdGUgX3ByaW50U3R5bGU6IHN0cmluZ1tdID0gW107XHJcbiAgICBwcml2YXRlIF9zdHlsZVNoZWV0RmlsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8jcmVnaW9uIEdldHRlcnMgYW5kIFNldHRlcnNcclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcHJpbnQgc3R5bGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWx1ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIEtleS12YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgcHJpbnQgc3R5bGVzLlxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc2V0UHJpbnRTdHlsZSh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSB7XHJcbiAgICAgICAgdGhpcy5fcHJpbnRTdHlsZSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiB2YWx1ZXMpIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wcmludFN0eWxlLnB1c2goKGtleSArIEpTT04uc3RyaW5naWZ5KHZhbHVlc1trZXldKSkucmVwbGFjZSgvWydcIl0rL2csICcnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBzdHJpbmcgdGhhdCBjcmVhdGUgdGhlIHN0eWxlc2hlZXQgd2hpY2ggd2lsbCBiZSBpbmplY3RlZFxyXG4gICAgICogbGF0ZXIgd2l0aGluIDxzdHlsZT48L3N0eWxlPiB0YWcuXHJcbiAgICAgKlxyXG4gICAgICogLWpvaW4vcmVwbGFjZSB0byB0cmFuc2Zvcm0gYW4gYXJyYXkgb2JqZWN0cyB0byBjc3Mtc3R5bGVkIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmV0dXJuU3R5bGVWYWx1ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIGA8c3R5bGU+ICR7dGhpcy5fcHJpbnRTdHlsZS5qb2luKCcgJykucmVwbGFjZSgvLC9nLCAnOycpfSA8L3N0eWxlPmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogQHJldHVybnMgc3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRoZSBsaW5rIHRhZ3MgY29udGFpbmluZyB0aGUgY3NzIHdoaWNoIHdpbGxcclxuICAgKiBiZSBpbmplY3RlZCBsYXRlciB3aXRoaW4gPGhlYWQ+PC9oZWFkPiB0YWcuXHJcbiAgICpcclxuICAgKi9cclxuICAgIHByaXZhdGUgcmV0dXJuU3R5bGVTaGVldExpbmtUYWdzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZVNoZWV0RmlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHN0eWxlIHNoZWV0IGZpbGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIENTUyBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjc3NMaXN0IC0gQ1NTIGZpbGUgb3IgbGlzdCBvZiBDU1MgZmlsZXMuXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzZXRTdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgbGlua1RhZ0ZuID0gZnVuY3Rpb24gKGNzc0ZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCIke2Nzc0ZpbGVOYW1lfVwiPmA7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKGNzc0xpc3QuaW5kZXhPZignLCcpICE9PSAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFyciA9IGNzc0xpc3Quc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVldEZpbGUgPSB2YWx1ZUFyci5tYXAodmFsID0+IGxpbmtUYWdGbih2YWwpKS5qb2luKCcnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zdHlsZVNoZWV0RmlsZSA9IGxpbmtUYWdGbihjc3NMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFByaXZhdGUgbWV0aG9kcyB1c2VkIGJ5IFByaW50QmFzZVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGlucHV0IGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7SFRNTENvbGxlY3Rpb25PZjxIVE1MSW5wdXRFbGVtZW50Pn0gZWxlbWVudHMgLSBDb2xsZWN0aW9uIG9mIGlucHV0IGVsZW1lbnRzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnB1dERlZmF1bHRzKGVsZW1lbnRzOiBIVE1MQ29sbGVjdGlvbk9mPEhUTUxJbnB1dEVsZW1lbnQ+KTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbaV07XHJcbiAgICAgICAgICAgIGVsZW1lbnRbJ2RlZmF1bHRWYWx1ZSddID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRbJ2NoZWNrZWQnXSkgZWxlbWVudFsnZGVmYXVsdENoZWNrZWQnXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHNlbGVjdCBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0hUTUxDb2xsZWN0aW9uT2Y8SFRNTFNlbGVjdEVsZW1lbnQ+fSBlbGVtZW50cyAtIENvbGxlY3Rpb24gb2Ygc2VsZWN0IGVsZW1lbnRzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWxlY3REZWZhdWx0cyhlbGVtZW50czogSFRNTENvbGxlY3Rpb25PZjxIVE1MU2VsZWN0RWxlbWVudD4pOiB2b2lkIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tpXTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZHggPSBlbGVtZW50LnNlbGVjdGVkSW5kZXg7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uOiBIVE1MT3B0aW9uRWxlbWVudCA9IGVsZW1lbnQub3B0aW9uc1tzZWxlY3RlZElkeF07XHJcblxyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbi5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciB0ZXh0YXJlYSBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0hUTUxDb2xsZWN0aW9uT2Y8SFRNTFRleHRBcmVhRWxlbWVudD59IGVsZW1lbnRzIC0gQ29sbGVjdGlvbiBvZiB0ZXh0YXJlYSBlbGVtZW50cy5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVGV4dEFyZWFEZWZhdWx0cyhlbGVtZW50czogSFRNTENvbGxlY3Rpb25PZjxIVE1MVGV4dEFyZWFFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBlbGVtZW50WydkZWZhdWx0VmFsdWUnXSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBIVE1MIGNvbnRlbnQgb2YgYSBzcGVjaWZpZWQgcHJpbnRpbmcgc2VjdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJpbnRTZWN0aW9uSWQgLSBJZCBvZiB0aGUgcHJpbnRpbmcgc2VjdGlvbi5cclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAtIEhUTUwgY29udGVudCBvZiB0aGUgcHJpbnRpbmcgc2VjdGlvbiwgb3IgbnVsbCBpZiBub3QgZm91bmQuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEh0bWxDb250ZW50cyhwcmludFNlY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgcHJpbnRDb250ZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByaW50U2VjdGlvbklkKTtcclxuICAgICAgICBpZiAoIXByaW50Q29udGVudHMpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnB1dEVscyA9IHByaW50Q29udGVudHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0RWxzID0gcHJpbnRDb250ZW50cy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7XHJcbiAgICAgICAgY29uc3QgdGV4dEFyZWFFbHMgPSBwcmludENvbnRlbnRzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZXh0YXJlYScpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0RGVmYXVsdHMoaW5wdXRFbHMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0RGVmYXVsdHMoc2VsZWN0RWxzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRleHRBcmVhRGVmYXVsdHModGV4dEFyZWFFbHMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcHJpbnRDb250ZW50cy5pbm5lckhUTUw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIEhUTUwgY29udGVudCBvZiBlbGVtZW50cyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFnLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7a2V5b2YgSFRNTEVsZW1lbnRUYWdOYW1lTWFwfSB0YWcgLSBIVE1MIHRhZyBuYW1lLlxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gLSBDb25jYXRlbmF0ZWQgb3V0ZXJIVE1MIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCB0YWcuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEVsZW1lbnRUYWcodGFnOiBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXApOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGh0bWw6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50cy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgaHRtbC5wdXNoKGVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaW50cyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHByaW50IG9wdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQcmludE9wdGlvbnN9IHByaW50T3B0aW9ucyAtIE9wdGlvbnMgZm9yIHByaW50aW5nLlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcHJpbnQocHJpbnRPcHRpb25zOiBQcmludE9wdGlvbnMpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgbGV0IHN0eWxlcyA9ICcnLCBsaW5rcyA9ICcnO1xyXG4gICAgICAgIGNvbnN0IGJhc2VUYWcgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ2Jhc2UnKTtcclxuXHJcbiAgICAgICAgaWYgKHByaW50T3B0aW9ucy51c2VFeGlzdGluZ0Nzcykge1xyXG4gICAgICAgICAgICBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICAgICAgICAgIGxpbmtzID0gdGhpcy5nZXRFbGVtZW50VGFnKCdsaW5rJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwcmludENvbnRlbnRzID0gdGhpcy5nZXRIdG1sQ29udGVudHMocHJpbnRPcHRpb25zLnByaW50U2VjdGlvbklkKTtcclxuICAgICAgICBpZiAoIXByaW50Q29udGVudHMpIHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBzcGVjaWZpZWQgcHJpbnQgc2VjdGlvbiBpcyBub3QgZm91bmQuXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFByaW50IHNlY3Rpb24gd2l0aCBpZCAke3ByaW50T3B0aW9ucy5wcmludFNlY3Rpb25JZH0gbm90IGZvdW5kLmApO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKFwiXCIsIFwiX2JsYW5rXCIsIFwidG9wPTAsbGVmdD0wLGhlaWdodD1hdXRvLHdpZHRoPWF1dG9cIik7XHJcbiAgICAgICAgcG9wdXBXaW4uZG9jdW1lbnQub3BlbigpO1xyXG4gICAgICAgIHBvcHVwV2luLmRvY3VtZW50LndyaXRlKGBcclxuICAgICAgICAgIDxodG1sPlxyXG4gICAgICAgICAgICA8aGVhZD5cclxuICAgICAgICAgICAgICA8dGl0bGU+JHtwcmludE9wdGlvbnMucHJpbnRUaXRsZSA/IHByaW50T3B0aW9ucy5wcmludFRpdGxlIDogXCJcIn08L3RpdGxlPlxyXG4gICAgICAgICAgICAgICR7YmFzZVRhZ31cclxuICAgICAgICAgICAgICAke3RoaXMucmV0dXJuU3R5bGVWYWx1ZXMoKX1cclxuICAgICAgICAgICAgICAke3RoaXMucmV0dXJuU3R5bGVTaGVldExpbmtUYWdzKCl9XHJcbiAgICAgICAgICAgICAgJHtzdHlsZXN9XHJcbiAgICAgICAgICAgICAgJHtsaW5rc31cclxuICAgICAgICAgICAgPC9oZWFkPlxyXG4gICAgICAgICAgICA8Ym9keSAke3ByaW50T3B0aW9ucy5ib2R5Q2xhc3MgPyBgY2xhc3M9XCIke3ByaW50T3B0aW9ucy5ib2R5Q2xhc3N9XCJgIDogJyd9PlxyXG4gICAgICAgICAgICAgICR7cHJpbnRDb250ZW50c31cclxuICAgICAgICAgICAgICA8c2NyaXB0IGRlZmVyPlxyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gdHJpZ2dlclByaW50KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgdHJpZ2dlclByaW50LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICR7cHJpbnRPcHRpb25zLnByZXZpZXdPbmx5ID8gJycgOiBgc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyh3aW5kb3cucHJpbnQoKSk7XHJcbiAgICAgICAgICAgICAgICAgIH0sICR7cHJpbnRPcHRpb25zLnByaW50RGVsYXl9KTtgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xvc2VXaW5kb3coKXtcclxuICAgICAgICAgICAgICAgICAgJHtwcmludE9wdGlvbnMuY2xvc2VXaW5kb3cgPyAnd2luZG93LmNsb3NlKCk7JyA6ICcnfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0cmlnZ2VyUHJpbnQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICA8L3NjcmlwdD5cclxuICAgICAgICAgICAgPC9ib2R5PlxyXG4gICAgICAgICAgPC9odG1sPmApO1xyXG4gICAgICAgIHBvcHVwV2luLmRvY3VtZW50LmNsb3NlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
233
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
234
+ type: Inject,
235
+ args: [CSP_NONCE]
236
+ }, {
237
+ type: Optional
238
+ }] }] });
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25neC1wcmludC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXhFLE1BQU0sT0FBTyxTQUFTO0lBSytCO0lBSHpDLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFDM0IsZUFBZSxHQUFXLEVBQUUsQ0FBQztJQUV2QyxZQUFtRCxLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUFHLENBQUM7SUFFMUUsNkJBQTZCO0lBQzdCOzs7OztPQUtHO0lBQ08sYUFBYSxDQUFDLE1BQW9EO1FBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7WUFDckIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGlCQUFpQjtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVELE9BQU8sU0FBUyxVQUFVLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFD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QUMsOEJBQThCLENBQUMsQ0FBQztZQUM5QyxPQUFPO1FBQ1gsQ0FBQztRQUVELFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Ozt1QkFHVCxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3RCxPQUFPO2dCQUNQLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFO2dCQUMvQixNQUFNO2dCQUNOLEtBQUs7O29CQUVELFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsWUFBWSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNyRSxhQUFhOzs7O29CQUlULFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7O3VCQUU3QixZQUFZLENBQUMsVUFBVSxJQUFJOzs7b0JBRzlCLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFOzs7OztrQkFLbkQsQ0FBQyxDQUFDO1FBQ1osUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO3dHQXBQUSxTQUFTLGtCQUtBLFNBQVM7NEdBTGxCLFNBQVMsY0FGTixNQUFNOzs0RkFFVCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBTWMsTUFBTTsyQkFBQyxTQUFTOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1NQX05PTkNFLCBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSBcIi4vcHJpbnQtb3B0aW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmludEJhc2Uge1xyXG5cclxuICAgIHByaXZhdGUgX3ByaW50U3R5bGU6IHN0cmluZ1tdID0gW107XHJcbiAgICBwcml2YXRlIF9zdHlsZVNoZWV0RmlsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ1NQX05PTkNFKSBAT3B0aW9uYWwoKSBwcml2YXRlIG5vbmNlPzogc3RyaW5nIHwgbnVsbCkge31cclxuXHJcbiAgICAvLyNyZWdpb24gR2V0dGVycyBhbmQgU2V0dGVyc1xyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBwcmludCBzdHlsZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gS2V5LXZhbHVlIHBhaXJzIHJlcHJlc2VudGluZyBwcmludCBzdHlsZXMuXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzZXRQcmludFN0eWxlKHZhbHVlczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0pIHtcclxuICAgICAgICB0aGlzLl9wcmludFN0eWxlID0gW107XHJcbiAgICAgICAgZm9yIChsZXQga2V5IGluIHZhbHVlcykge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ByaW50U3R5bGUucHVzaCgoa2V5ICsgSlNPTi5zdHJpbmdpZnkodmFsdWVzW2tleV0pKS5yZXBsYWNlKC9bJ1wiXSsvZywgJycpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgdGhlIHN0cmluZyB0aGF0IGNyZWF0ZSB0aGUgc3R5bGVzaGVldCB3aGljaCB3aWxsIGJlIGluamVjdGVkXHJcbiAgICAgKiBsYXRlciB3aXRoaW4gPHN0eWxlPjwvc3R5bGU+IHRhZy5cclxuICAgICAqXHJcbiAgICAgKiAtam9pbi9yZXBsYWNlIHRvIHRyYW5zZm9ybSBhbiBhcnJheSBvYmplY3RzIHRvIGNzcy1zdHlsZWQgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZXR1cm5TdHlsZVZhbHVlcygpIHtcclxuICAgICAgY29uc3Qgc3R5bGVOb25jZSA9IHRoaXMubm9uY2UgPyBgIG5vbmNlPVwiJHt0aGlzLm5vbmNlfVwiYCA6ICcnO1xyXG4gICAgICAgIHJldHVybiBgPHN0eWxlJHtzdHlsZU5vbmNlfT4gJHt0aGlzLl9wcmludFN0eWxlLmpvaW4oJyAnKS5yZXBsYWNlKC8sL2csICc7Jyl9IDwvc3R5bGU+YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgd2hpY2ggY29udGFpbnMgdGhlIGxpbmsgdGFncyBjb250YWluaW5nIHRoZSBjc3Mgd2hpY2ggd2lsbFxyXG4gICAqIGJlIGluamVjdGVkIGxhdGVyIHdpdGhpbiA8aGVhZD48L2hlYWQ+IHRhZy5cclxuICAgKlxyXG4gICAqL1xyXG4gICAgcHJpdmF0ZSByZXR1cm5TdHlsZVNoZWV0TGlua1RhZ3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlU2hlZXRGaWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc3R5bGUgc2hlZXQgZmlsZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgQ1NTIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNzc0xpc3QgLSBDU1MgZmlsZSBvciBsaXN0IG9mIENTUyBmaWxlcy5cclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldFN0eWxlU2hlZXRGaWxlKGNzc0xpc3Q6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGxpbmtUYWdGbiA9IGZ1bmN0aW9uIChjc3NGaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCIke2Nzc0ZpbGVOYW1lfVwiPmA7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKGNzc0xpc3QuaW5kZXhPZignLCcpICE9PSAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFyciA9IGNzc0xpc3Quc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVldEZpbGUgPSB2YWx1ZUFyci5tYXAodmFsID0+IGxpbmtUYWdGbih2YWwpKS5qb2luKCcnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zdHlsZVNoZWV0RmlsZSA9IGxpbmtUYWdGbihjc3NMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIFByaXZhdGUgbWV0aG9kcyB1c2VkIGJ5IFByaW50QmFzZVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGlucHV0IGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7SFRNTENvbGxlY3Rpb25PZjxIVE1MSW5wdXRFbGVtZW50Pn0gZWxlbWVudHMgLSBDb2xsZWN0aW9uIG9mIGlucHV0IGVsZW1lbnRzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnB1dERlZmF1bHRzKGVsZW1lbnRzOiBIVE1MQ29sbGVjdGlvbk9mPEhUTUxJbnB1dEVsZW1lbnQ+KTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbaV07XHJcbiAgICAgICAgICAgIGVsZW1lbnRbJ2RlZmF1bHRWYWx1ZSddID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRbJ2NoZWNrZWQnXSkgZWxlbWVudFsnZGVmYXVsdENoZWNrZWQnXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHNlbGVjdCBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0hUTUxDb2xsZWN0aW9uT2Y8SFRNTFNlbGVjdEVsZW1lbnQ+fSBlbGVtZW50cyAtIENvbGxlY3Rpb24gb2Ygc2VsZWN0IGVsZW1lbnRzLlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWxlY3REZWZhdWx0cyhlbGVtZW50czogSFRNTENvbGxlY3Rpb25PZjxIVE1MU2VsZWN0RWxlbWVudD4pOiB2b2lkIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tpXTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZHggPSBlbGVtZW50LnNlbGVjdGVkSW5kZXg7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uOiBIVE1MT3B0aW9uRWxlbWVudCA9IGVsZW1lbnQub3B0aW9uc1tzZWxlY3RlZElkeF07XHJcblxyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbi5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciB0ZXh0YXJlYSBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0hUTUxDb2xsZWN0aW9uT2Y8SFRNTFRleHRBcmVhRWxlbWVudD59IGVsZW1lbnRzIC0gQ29sbGVjdGlvbiBvZiB0ZXh0YXJlYSBlbGVtZW50cy5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVGV4dEFyZWFEZWZhdWx0cyhlbGVtZW50czogSFRNTENvbGxlY3Rpb25PZjxIVE1MVGV4dEFyZWFFbGVtZW50Pik6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBlbGVtZW50WydkZWZhdWx0VmFsdWUnXSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydHMgYSBjYW52YXMgZWxlbWVudCB0byBhbiBpbWFnZSBhbmQgcmV0dXJucyBpdHMgSFRNTCBzdHJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtIVE1MQ2FudmFzRWxlbWVudH0gZWxlbWVudCAtIFRoZSBjYW52YXMgZWxlbWVudCB0byBjb252ZXJ0LlxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gLSBIVE1MIHN0cmluZyBvZiB0aGUgaW1hZ2UuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNhbnZhc1RvSW1hZ2VIdG1sKGVsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBkYXRhVXJsID0gZWxlbWVudC50b0RhdGFVUkwoKTtcclxuICAgICAgICByZXR1cm4gYDxpbWcgc3JjPVwiJHtkYXRhVXJsfVwiIHN0eWxlPVwibWF4LXdpZHRoOiAxMDAlO1wiPmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNsdWRlcyBjYW52YXMgY29udGVudHMgaW4gdGhlIHByaW50IHNlY3Rpb24gdmlhIGltZyB0YWdzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7SFRNTENvbGxlY3Rpb25PZjxIVE1MQ2FudmFzRWxlbWVudD59IGVsZW1lbnRzIC0gQ29sbGVjdGlvbiBvZiBjYW52YXMgZWxlbWVudHMuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNhbnZhc1RvSW1hZ2UoZWxlbWVudHM6IEhUTUxDb2xsZWN0aW9uT2Y8SFRNTENhbnZhc0VsZW1lbnQ+KTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jYW52YXNUb0ltYWdlSHRtbChlbGVtZW50c1tpXSk7XHJcbiAgICAgICAgICAgIGVsZW1lbnRzW2ldLmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJlbmQnLCBlbGVtZW50KTtcclxuICAgICAgICAgICAgZWxlbWVudHNbaV0ucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBIVE1MIGNvbnRlbnQgb2YgYSBzcGVjaWZpZWQgcHJpbnRpbmcgc2VjdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJpbnRTZWN0aW9uSWQgLSBJZCBvZiB0aGUgcHJpbnRpbmcgc2VjdGlvbi5cclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAtIEhUTUwgY29udGVudCBvZiB0aGUgcHJpbnRpbmcgc2VjdGlvbiwgb3IgbnVsbCBpZiBub3QgZm91bmQuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEh0bWxDb250ZW50cyhwcmludFNlY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgcHJpbnRDb250ZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByaW50U2VjdGlvbklkKTtcclxuICAgICAgICBpZiAoIXByaW50Q29udGVudHMpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnB1dEVscyA9IHByaW50Q29udGVudHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0RWxzID0gcHJpbnRDb250ZW50cy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7XHJcbiAgICAgICAgY29uc3QgdGV4dEFyZWFFbHMgPSBwcmludENvbnRlbnRzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZXh0YXJlYScpO1xyXG4gICAgICAgIGNvbnN0IGNhbnZhc0VscyA9IHByaW50Q29udGVudHMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0RGVmYXVsdHMoaW5wdXRFbHMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0RGVmYXVsdHMoc2VsZWN0RWxzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRleHRBcmVhRGVmYXVsdHModGV4dEFyZWFFbHMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ2FudmFzVG9JbWFnZShjYW52YXNFbHMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcHJpbnRDb250ZW50cy5pbm5lckhUTUw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIEhUTUwgY29udGVudCBvZiBlbGVtZW50cyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFnLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7a2V5b2YgSFRNTEVsZW1lbnRUYWdOYW1lTWFwfSB0YWcgLSBIVE1MIHRhZyBuYW1lLlxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gLSBDb25jYXRlbmF0ZWQgb3V0ZXJIVE1MIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCB0YWcuXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEVsZW1lbnRUYWcodGFnOiBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXApOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGh0bWw6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpO1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50cy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgaHRtbC5wdXNoKGVsZW1lbnRzW2luZGV4XS5vdXRlckhUTUwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaHRtbC5qb2luKCdcXHJcXG4nKTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaW50cyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHByaW50IG9wdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQcmludE9wdGlvbnN9IHByaW50T3B0aW9ucyAtIE9wdGlvbnMgZm9yIHByaW50aW5nLlxyXG4gICAgICogQHB1YmxpY1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcHJpbnQocHJpbnRPcHRpb25zOiBQcmludE9wdGlvbnMpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgbGV0IHN0eWxlcyA9ICcnLCBsaW5rcyA9ICcnLCBwb3BPdXQgPSAndG9wPTAsbGVmdD0wLGhlaWdodD1hdXRvLHdpZHRoPWF1dG8nO1xyXG4gICAgICAgIGNvbnN0IGJhc2VUYWcgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ2Jhc2UnKTtcclxuXHJcbiAgICAgICAgaWYgKHByaW50T3B0aW9ucy51c2VFeGlzdGluZ0Nzcykge1xyXG4gICAgICAgICAgICBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRUYWcoJ3N0eWxlJyk7XHJcbiAgICAgICAgICAgIGxpbmtzID0gdGhpcy5nZXRFbGVtZW50VGFnKCdsaW5rJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB0aGUgb3Blbk5ld1RhYiBvcHRpb24gaXMgc2V0IHRvIHRydWUsIHRoZW4gc2V0IHRoZSBwb3BPdXQgb3B0aW9uIHRvIGFuIGVtcHR5IHN0cmluZy5cclxuICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIHByaW50IGRpYWxvZyB0byBvcGVuIGluIGEgbmV3IHRhYi5cclxuICAgICAgICBpZiAocHJpbnRPcHRpb25zLm9wZW5OZXdUYWIpIHtcclxuICAgICAgICAgICAgcG9wT3V0ID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwcmludENvbnRlbnRzID0gdGhpcy5nZXRIdG1sQ29udGVudHMocHJpbnRPcHRpb25zLnByaW50U2VjdGlvbklkKTtcclxuICAgICAgICBpZiAoIXByaW50Q29udGVudHMpIHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBzcGVjaWZpZWQgcHJpbnQgc2VjdGlvbiBpcyBub3QgZm91bmQuXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFByaW50IHNlY3Rpb24gd2l0aCBpZCAke3ByaW50T3B0aW9ucy5wcmludFNlY3Rpb25JZH0gbm90IGZvdW5kLmApO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwb3B1cFdpbiA9IHdpbmRvdy5vcGVuKFwiXCIsIFwiX2JsYW5rXCIsIHBvcE91dCk7XHJcblxyXG4gICAgICAgIGlmICghcG9wdXBXaW4pIHtcclxuICAgICAgICAgICAgLy8gdGhlIHBvcHVwIHdpbmRvdyBjb3VsZCBub3QgYmUgb3BlbmVkLlxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3Qgb3BlbiBwcmludCB3aW5kb3cuJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBvcHVwV2luLmRvY3VtZW50Lm9wZW4oKTtcclxuICAgICAgICBwb3B1cFdpbi5kb2N1bWVudC53cml0ZShgXHJcbiAgICAgICAgICA8aHRtbD5cclxuICAgICAgICAgICAgPGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRpdGxlPiR7cHJpbnRPcHRpb25zLnByaW50VGl0bGUgPyBwcmludE9wdGlvbnMucHJpbnRUaXRsZSA6IFwiXCJ9PC90aXRsZT5cclxuICAgICAgICAgICAgICAke2Jhc2VUYWd9XHJcbiAgICAgICAgICAgICAgJHt0aGlzLnJldHVyblN0eWxlVmFsdWVzKCl9XHJcbiAgICAgICAgICAgICAgJHt0aGlzLnJldHVyblN0eWxlU2hlZXRMaW5rVGFncygpfVxyXG4gICAgICAgICAgICAgICR7c3R5bGVzfVxyXG4gICAgICAgICAgICAgICR7bGlua3N9XHJcbiAgICAgICAgICAgIDwvaGVhZD5cclxuICAgICAgICAgICAgPGJvZHkgJHtwcmludE9wdGlvbnMuYm9keUNsYXNzID8gYGNsYXNzPVwiJHtwcmludE9wdGlvbnMuYm9keUNsYXNzfVwiYCA6ICcnfT5cclxuICAgICAgICAgICAgICAke3ByaW50Q29udGVudHN9XHJcbiAgICAgICAgICAgICAgPHNjcmlwdCBkZWZlcj5cclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRyaWdnZXJQcmludChldmVudCkge1xyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRyaWdnZXJQcmludCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAke3ByaW50T3B0aW9ucy5wcmV2aWV3T25seSA/ICcnIDogYHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3cod2luZG93LnByaW50KCkpO1xyXG4gICAgICAgICAgICAgICAgICB9LCAke3ByaW50T3B0aW9ucy5wcmludERlbGF5fSk7YH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsb3NlV2luZG93KCl7XHJcbiAgICAgICAgICAgICAgICAgICR7cHJpbnRPcHRpb25zLmNsb3NlV2luZG93ID8gJ3dpbmRvdy5jbG9zZSgpOycgOiAnJ31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdHJpZ2dlclByaW50LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgPC9zY3JpcHQ+XHJcbiAgICAgICAgICAgIDwvYm9keT5cclxuICAgICAgICAgIDwvaHRtbD5gKTtcclxuICAgICAgICBwb3B1cFdpbi5kb2N1bWVudC5jbG9zZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -26,7 +26,7 @@ export class NgxPrintDirective extends PrintBase {
26
26
  * @memberof NgxPrintDirective
27
27
  */
28
28
  set printTitle(value) {
29
- this.printOptions = { ...this.printOptions, printSectionId: value };
29
+ this.printOptions = { ...this.printOptions, printTitle: value };
30
30
  }
31
31
  /**
32
32
  *
@@ -58,6 +58,13 @@ export class NgxPrintDirective extends PrintBase {
58
58
  set bodyClass(value) {
59
59
  this.printOptions = { ...this.printOptions, bodyClass: value };
60
60
  }
61
+ /**
62
+ * Whether to open a new window or default to new window.
63
+ *
64
+ */
65
+ set openNewTab(value) {
66
+ this.printOptions = { ...this.printOptions, openNewTab: value };
67
+ }
61
68
  /**
62
69
  *
63
70
  *
@@ -81,10 +88,10 @@ export class NgxPrintDirective extends PrintBase {
81
88
  print() {
82
89
  super.print(this.printOptions);
83
90
  }
84
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
85
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: NgxPrintDirective, isStandalone: true, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", closeWindow: "closeWindow", bodyClass: "bodyClass", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, usesInheritance: true, ngImport: i0 });
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
92
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NgxPrintDirective, isStandalone: true, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", closeWindow: "closeWindow", bodyClass: "bodyClass", openNewTab: "openNewTab", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, usesInheritance: true, ngImport: i0 });
86
93
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintDirective, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, decorators: [{
88
95
  type: Directive,
89
96
  args: [{
90
97
  selector: "button[ngxPrint]",
@@ -104,6 +111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
104
111
  type: Input
105
112
  }], bodyClass: [{
106
113
  type: Input
114
+ }], openNewTab: [{
115
+ type: Input
107
116
  }], printStyle: [{
108
117
  type: Input
109
118
  }], styleSheetFile: [{
@@ -112,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
112
121
  type: HostListener,
113
122
  args: ['click']
114
123
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQVM7SUFDdEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUM7Ozs7T0FJRztJQUNILElBQWEsV0FBVyxDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLGNBQWMsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYSxVQUFVLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWEsY0FBYyxDQUFDLEtBQWM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFdBQVcsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxVQUFVLENBQUMsTUFBb0Q7UUFDakUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxjQUFjLENBQUMsT0FBZTtRQUNoQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0EzRlUsaUJBQWlCOzJGQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFjLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sY0FBYztzQkFBMUIsS0FBSztnQkFTTyxVQUFVO3NCQUF0QixLQUFLO2dCQVNPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxXQUFXO3NCQUF2QixLQUFLO2dCQVFPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVdGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV0MsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJpbnRCYXNlIH0gZnJvbSAnLi9uZ3gtcHJpbnQuYmFzZSc7XHJcbmltcG9ydCB7IFByaW50T3B0aW9ucyB9IGZyb20gJy4vcHJpbnQtb3B0aW9ucyc7XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcImJ1dHRvbltuZ3hQcmludF1cIixcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hQcmludERpcmVjdGl2ZSBleHRlbmRzIFByaW50QmFzZSB7XHJcbiAgcHJpdmF0ZSBwcmludE9wdGlvbnMgPSBuZXcgUHJpbnRPcHRpb25zKCk7XHJcbiAgLyoqXHJcbiAgICogUHJldmVudHMgdGhlIHByaW50IGRpYWxvZyBmcm9tIG9wZW5pbmcgb24gdGhlIHdpbmRvd1xyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHByZXZpZXdPbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIHByZXZpZXdPbmx5OiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBwcmludFNlY3Rpb25JZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIHByaW50U2VjdGlvbklkOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBwcmludFRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJpbnRTZWN0aW9uSWQ6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHVzZUV4aXN0aW5nQ3NzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIHVzZUV4aXN0aW5nQ3NzOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBkZWxheSBpbiBtaWxsaXNlY29uZHMgdG8gZm9yY2UgdGhlIHByaW50IGRpYWxvZyB0byB3YWl0IGJlZm9yZSBvcGVuZWQuIERlZmF1bHQ6IDBcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBwcmludERlbGF5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJpbnREZWxheTogdmFsdWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gY2xvc2UgdGhlIHdpbmRvdyBhZnRlciBwcmludCgpIHJldHVybnMuXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgY2xvc2VXaW5kb3codmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgY2xvc2VXaW5kb3c6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGFzcyBhdHRyaWJ1dGUgdG8gYXBwbHkgdG8gdGhlIGJvZHkgZWxlbWVudC5cclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBib2R5Q2xhc3ModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCBib2R5Q2xhc3M6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcHJpbnRTdHlsZSh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSB7XHJcbiAgICBzdXBlci5zZXRQcmludFN0eWxlKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICogQHBhcmFtIGNzc0xpc3RcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFN0eWxlU2hlZXRGaWxlKGNzc0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBwdWJsaWMgcHJpbnQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5wcmludCh0aGlzLnByaW50T3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQVM7SUFDdEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUM7Ozs7T0FJRztJQUNILElBQWEsV0FBVyxDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLGNBQWMsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYSxVQUFVLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWEsY0FBYyxDQUFDLEtBQWM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFdBQVcsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxVQUFVLENBQUMsTUFBb0Q7UUFDakUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxjQUFjLENBQUMsT0FBZTtRQUNoQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0FuR1UsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFjLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sY0FBYztzQkFBMUIsS0FBSztnQkFTTyxVQUFVO3NCQUF0QixLQUFLO2dCQVNPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxXQUFXO3NCQUF2QixLQUFLO2dCQVFPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBUU8sVUFBVTtzQkFBdEIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsY0FBYztzQkFEakIsS0FBSztnQkFXQyxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcmludEJhc2UgfSBmcm9tICcuL25neC1wcmludC5iYXNlJztcclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi9wcmludC1vcHRpb25zJztcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiYnV0dG9uW25neFByaW50XVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFByaW50RGlyZWN0aXZlIGV4dGVuZHMgUHJpbnRCYXNlIHtcclxuICBwcml2YXRlIHByaW50T3B0aW9ucyA9IG5ldyBQcmludE9wdGlvbnMoKTtcclxuICAvKipcclxuICAgKiBQcmV2ZW50cyB0aGUgcHJpbnQgZGlhbG9nIGZyb20gb3BlbmluZyBvbiB0aGUgd2luZG93XHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgcHJldmlld09ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJldmlld09ubHk6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHByaW50U2VjdGlvbklkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJpbnRTZWN0aW9uSWQ6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHByaW50VGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCBwcmludFRpdGxlOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB1c2VFeGlzdGluZ0Nzcyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCB1c2VFeGlzdGluZ0NzczogdmFsdWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIHRvIGZvcmNlIHRoZSBwcmludCBkaWFsb2cgdG8gd2FpdCBiZWZvcmUgb3BlbmVkLiBEZWZhdWx0OiAwXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgcHJpbnREZWxheSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIHByaW50RGVsYXk6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSB3aW5kb3cgYWZ0ZXIgcHJpbnQoKSByZXR1cm5zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGNsb3NlV2luZG93KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIGNsb3NlV2luZG93OiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xhc3MgYXR0cmlidXRlIHRvIGFwcGx5IHRvIHRoZSBib2R5IGVsZW1lbnQuXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgYm9keUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgYm9keUNsYXNzOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBvcGVuIGEgbmV3IHdpbmRvdyBvciBkZWZhdWx0IHRvIG5ldyB3aW5kb3cuXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgb3Blbk5ld1RhYih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCBvcGVuTmV3VGFiOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHByaW50U3R5bGUodmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfSkge1xyXG4gICAgc3VwZXIuc2V0UHJpbnRTdHlsZSh2YWx1ZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSBjc3NMaXN0XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc3R5bGVTaGVldEZpbGUoY3NzTGlzdDogc3RyaW5nKSB7XHJcbiAgICBzdXBlci5zZXRTdHlsZVNoZWV0RmlsZShjc3NMaXN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgcHVibGljIHByaW50KCk6IHZvaWQge1xyXG4gICAgc3VwZXIucHJpbnQodGhpcy5wcmludE9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
2
2
  import { NgxPrintDirective } from './ngx-print.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgxPrintModule {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, imports: [NgxPrintDirective], exports: [NgxPrintDirective] });
7
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, imports: [NgxPrintDirective], exports: [NgxPrintDirective] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule });
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [NgxPrintDirective],
13
13
  exports: [NgxPrintDirective]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFIZixpQkFBaUIsYUFDakIsaUJBQWlCO3dHQUVoQixjQUFjOzsyRkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hQcmludERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXByaW50LmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtOZ3hQcmludERpcmVjdGl2ZV0sXHJcbiAgZXhwb3J0czogW05neFByaW50RGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4UHJpbnRNb2R1bGUgeyB9XHJcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sY0FBYzt3R0FBZCxjQUFjO3lHQUFkLGNBQWMsWUFIZixpQkFBaUIsYUFDakIsaUJBQWlCO3lHQUVoQixjQUFjOzs0RkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hQcmludERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXByaW50LmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtOZ3hQcmludERpcmVjdGl2ZV0sXHJcbiAgZXhwb3J0czogW05neFByaW50RGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4UHJpbnRNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -41,13 +41,13 @@ export class NgxPrintService extends PrintBase {
41
41
  set styleSheetFile(cssList) {
42
42
  super.setStyleSheetFile(cssList);
43
43
  }
44
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
45
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, providedIn: "root" });
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
45
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, providedIn: "root" });
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: "root",
51
51
  }]
52
52
  }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25neC1wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUc3Qzs7Ozs7OztHQU9HO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQUU1Qzs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsWUFBMEI7UUFDckMsNENBQTRDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksVUFBVSxDQUFDLE1BQW9EO1FBQ2pFLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdEOzs7Ozs7T0FNRztJQUNILElBQUksY0FBYyxDQUFDLE9BQWU7UUFDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBbkNVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFByaW50QmFzZSB9IGZyb20gXCIuL25neC1wcmludC5iYXNlXCI7XHJcbmltcG9ydCB7IFByaW50T3B0aW9ucyB9IGZyb20gXCIuL3ByaW50LW9wdGlvbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyBwcmludGluZyBmdW5jdGlvbmFsaXR5IGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxyXG4gKiBFeHRlbmRzIHRoZSBiYXNlIHByaW50aW5nIGNsYXNzIChQcmludEJhc2UpLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBOZ3hQcmludFNlcnZpY2VcclxuICogQGV4dGVuZHMge1ByaW50QmFzZX1cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFByaW50U2VydmljZSBleHRlbmRzIFByaW50QmFzZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgcHJpbnRpbmcgcHJvY2VzcyB1c2luZyB0aGUgcHJvdmlkZWQgcHJpbnQgb3B0aW9ucy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJpbnRPcHRpb25zfSBwcmludE9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICovXHJcbiAgcHVibGljIHByaW50KHByaW50T3B0aW9uczogUHJpbnRPcHRpb25zKTogdm9pZCB7XHJcbiAgICAvLyBDYWxsIHRoZSBwcmludCBtZXRob2QgaW4gdGhlIHBhcmVudCBjbGFzc1xyXG4gICAgc3VwZXIucHJpbnQocHJpbnRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHByaW50IHN0eWxlIGZvciB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7eyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH19IHZhbHVlcyAtIEEgZGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIHByaW50IHN0eWxlcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBwcmludFN0eWxlKHZhbHVlczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0pIHtcclxuICAgIHN1cGVyLnNldFByaW50U3R5bGUodmFsdWVzKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzdHlsZXNoZWV0IGZpbGUgZm9yIHRoZSBwcmludGluZyBwcm9jZXNzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNzc0xpc3QgLSBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIHN0eWxlc2hlZXQgZmlsZS5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFN0eWxlU2hlZXRGaWxlKGNzc0xpc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25neC1wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUc3Qzs7Ozs7OztHQU9HO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQUU1Qzs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsWUFBMEI7UUFDckMsNENBQTRDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksVUFBVSxDQUFDLE1BQW9EO1FBQ2pFLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdEOzs7Ozs7T0FNRztJQUNILElBQUksY0FBYyxDQUFDLE9BQWU7UUFDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBbkNVLGVBQWU7NEdBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFByaW50QmFzZSB9IGZyb20gXCIuL25neC1wcmludC5iYXNlXCI7XHJcbmltcG9ydCB7IFByaW50T3B0aW9ucyB9IGZyb20gXCIuL3ByaW50LW9wdGlvbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyBwcmludGluZyBmdW5jdGlvbmFsaXR5IGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxyXG4gKiBFeHRlbmRzIHRoZSBiYXNlIHByaW50aW5nIGNsYXNzIChQcmludEJhc2UpLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBOZ3hQcmludFNlcnZpY2VcclxuICogQGV4dGVuZHMge1ByaW50QmFzZX1cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFByaW50U2VydmljZSBleHRlbmRzIFByaW50QmFzZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgcHJpbnRpbmcgcHJvY2VzcyB1c2luZyB0aGUgcHJvdmlkZWQgcHJpbnQgb3B0aW9ucy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJpbnRPcHRpb25zfSBwcmludE9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICovXHJcbiAgcHVibGljIHByaW50KHByaW50T3B0aW9uczogUHJpbnRPcHRpb25zKTogdm9pZCB7XHJcbiAgICAvLyBDYWxsIHRoZSBwcmludCBtZXRob2QgaW4gdGhlIHBhcmVudCBjbGFzc1xyXG4gICAgc3VwZXIucHJpbnQocHJpbnRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHByaW50IHN0eWxlIGZvciB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7eyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH19IHZhbHVlcyAtIEEgZGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIHByaW50IHN0eWxlcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBwcmludFN0eWxlKHZhbHVlczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0pIHtcclxuICAgIHN1cGVyLnNldFByaW50U3R5bGUodmFsdWVzKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzdHlsZXNoZWV0IGZpbGUgZm9yIHRoZSBwcmludGluZyBwcm9jZXNzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNzc0xpc3QgLSBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIHN0eWxlc2hlZXQgZmlsZS5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFN0eWxlU2hlZXRGaWxlKGNzc0xpc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,8 +1,9 @@
1
1
  export class PrintOptions {
2
- printSectionId = null;
3
- printTitle = null;
2
+ printSectionId = '';
3
+ printTitle = '';
4
4
  useExistingCss = false;
5
5
  bodyClass = '';
6
+ openNewTab = false;
6
7
  previewOnly = false;
7
8
  closeWindow = true;
8
9
  printDelay = 0;
@@ -12,4 +13,4 @@ export class PrintOptions {
12
13
  }
13
14
  }
14
15
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJpbnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUN2QixjQUFjLEdBQVcsSUFBSSxDQUFDO0lBQzlCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsV0FBVyxHQUFZLElBQUksQ0FBQztJQUM1QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBRXZCLFlBQVksT0FBK0I7UUFDekMsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcmludE9wdGlvbnMge1xyXG4gIHByaW50U2VjdGlvbklkOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaW50VGl0bGU6IHN0cmluZyA9IG51bGw7XHJcbiAgdXNlRXhpc3RpbmdDc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBib2R5Q2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIHByZXZpZXdPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2xvc2VXaW5kb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaW50RGVsYXk6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBQYXJ0aWFsPFByaW50T3B0aW9ucz4pIHtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJpbnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUN2QixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFFdkIsWUFBWSxPQUErQjtRQUN6QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcmludE9wdGlvbnMge1xyXG4gIHByaW50U2VjdGlvbklkOiBzdHJpbmcgPSAnJztcclxuICBwcmludFRpdGxlOiBzdHJpbmcgPSAnJztcclxuICB1c2VFeGlzdGluZ0NzczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGJvZHlDbGFzczogc3RyaW5nID0gJyc7XHJcbiAgb3Blbk5ld1RhYjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByZXZpZXdPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2xvc2VXaW5kb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaW50RGVsYXk6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBQYXJ0aWFsPFByaW50T3B0aW9ucz4pIHtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * Public API Surface of ngx-print
3
3
  */
4
- export * from './lib/ngx-print.service';
5
- export * from './lib/ngx-print.directive';
6
- export * from './lib/ngx-print.module';
7
- export * from './lib/print-options';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtcHJpbnRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wcmludC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXByaW50LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wcmludC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcmludC1vcHRpb25zJztcclxuIl19
4
+ export { NgxPrintService } from './lib/ngx-print.service';
5
+ export { NgxPrintDirective } from './lib/ngx-print.directive';
6
+ export { NgxPrintModule } from './lib/ngx-print.module';
7
+ export { PrintOptions } from './lib/print-options';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXByaW50XHJcbiAqL1xyXG5leHBvcnQgeyBOZ3hQcmludFNlcnZpY2UgfSBmcm9tICcuL2xpYi9uZ3gtcHJpbnQuc2VydmljZSc7XHJcbmV4cG9ydCB7IE5neFByaW50RGlyZWN0aXZlfSBmcm9tICcuL2xpYi9uZ3gtcHJpbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgTmd4UHJpbnRNb2R1bGUgfSBmcm9tICcuL2xpYi9uZ3gtcHJpbnQubW9kdWxlJztcclxuZXhwb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi9saWIvcHJpbnQtb3B0aW9ucyc7XHJcbiJdfQ==
@@ -1,9 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Directive, Input, HostListener, NgModule } from '@angular/core';
2
+ import { CSP_NONCE, Injectable, Inject, Optional, Directive, Input, HostListener, NgModule } from '@angular/core';
3
3
 
4
4
  class PrintBase {
5
+ nonce;
5
6
  _printStyle = [];
6
7
  _styleSheetFile = '';
8
+ constructor(nonce) {
9
+ this.nonce = nonce;
10
+ }
7
11
  //#region Getters and Setters
8
12
  /**
9
13
  * Sets the print styles based on the provided values.
@@ -28,7 +32,8 @@ class PrintBase {
28
32
  * -join/replace to transform an array objects to css-styled string
29
33
  */
30
34
  returnStyleValues() {
31
- return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
35
+ const styleNonce = this.nonce ? ` nonce="${this.nonce}"` : '';
36
+ return `<style${styleNonce}> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
32
37
  }
33
38
  /**
34
39
  * @returns string which contains the link tags containing the css which will
@@ -45,7 +50,7 @@ class PrintBase {
45
50
  * @protected
46
51
  */
47
52
  setStyleSheetFile(cssList) {
48
- let linkTagFn = function (cssFileName) {
53
+ const linkTagFn = function (cssFileName) {
49
54
  return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
50
55
  };
51
56
  if (cssList.indexOf(',') !== -1) {
@@ -98,6 +103,30 @@ class PrintBase {
98
103
  element['defaultValue'] = element.value;
99
104
  }
100
105
  }
106
+ /**
107
+ * Converts a canvas element to an image and returns its HTML string.
108
+ *
109
+ * @param {HTMLCanvasElement} element - The canvas element to convert.
110
+ * @returns {string} - HTML string of the image.
111
+ * @private
112
+ */
113
+ canvasToImageHtml(element) {
114
+ const dataUrl = element.toDataURL();
115
+ return `<img src="${dataUrl}" style="max-width: 100%;">`;
116
+ }
117
+ /**
118
+ * Includes canvas contents in the print section via img tags.
119
+ *
120
+ * @param {HTMLCollectionOf<HTMLCanvasElement>} elements - Collection of canvas elements.
121
+ * @private
122
+ */
123
+ updateCanvasToImage(elements) {
124
+ for (let i = 0; i < elements.length; i++) {
125
+ const element = this.canvasToImageHtml(elements[i]);
126
+ elements[i].insertAdjacentHTML('afterend', element);
127
+ elements[i].remove();
128
+ }
129
+ }
101
130
  /**
102
131
  * Retrieves the HTML content of a specified printing section.
103
132
  *
@@ -112,9 +141,11 @@ class PrintBase {
112
141
  const inputEls = printContents.getElementsByTagName('input');
113
142
  const selectEls = printContents.getElementsByTagName('select');
114
143
  const textAreaEls = printContents.getElementsByTagName('textarea');
144
+ const canvasEls = printContents.getElementsByTagName('canvas');
115
145
  this.updateInputDefaults(inputEls);
116
146
  this.updateSelectDefaults(selectEls);
117
147
  this.updateTextAreaDefaults(textAreaEls);
148
+ this.updateCanvasToImage(canvasEls);
118
149
  return printContents.innerHTML;
119
150
  }
120
151
  /**
@@ -140,19 +171,29 @@ class PrintBase {
140
171
  * @public
141
172
  */
142
173
  print(printOptions) {
143
- let styles = '', links = '';
174
+ let styles = '', links = '', popOut = 'top=0,left=0,height=auto,width=auto';
144
175
  const baseTag = this.getElementTag('base');
145
176
  if (printOptions.useExistingCss) {
146
177
  styles = this.getElementTag('style');
147
178
  links = this.getElementTag('link');
148
179
  }
180
+ // If the openNewTab option is set to true, then set the popOut option to an empty string.
181
+ // This will cause the print dialog to open in a new tab.
182
+ if (printOptions.openNewTab) {
183
+ popOut = '';
184
+ }
149
185
  const printContents = this.getHtmlContents(printOptions.printSectionId);
150
186
  if (!printContents) {
151
187
  // Handle the case where the specified print section is not found.
152
188
  console.error(`Print section with id ${printOptions.printSectionId} not found.`);
153
189
  return;
154
190
  }
155
- const popupWin = window.open("", "_blank", "top=0,left=0,height=auto,width=auto");
191
+ const popupWin = window.open("", "_blank", popOut);
192
+ if (!popupWin) {
193
+ // the popup window could not be opened.
194
+ console.error('Could not open print window.');
195
+ return;
196
+ }
156
197
  popupWin.document.open();
157
198
  popupWin.document.write(`
158
199
  <html>
@@ -182,15 +223,20 @@ class PrintBase {
182
223
  </html>`);
183
224
  popupWin.document.close();
184
225
  }
185
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
186
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, providedIn: 'root' });
226
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, deps: [{ token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
227
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, providedIn: 'root' });
187
228
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PrintBase, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, decorators: [{
189
230
  type: Injectable,
190
231
  args: [{
191
232
  providedIn: 'root'
192
233
  }]
193
- }] });
234
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
235
+ type: Inject,
236
+ args: [CSP_NONCE]
237
+ }, {
238
+ type: Optional
239
+ }] }] });
194
240
 
195
241
  /**
196
242
  * Service for handling printing functionality in Angular applications.
@@ -232,10 +278,10 @@ class NgxPrintService extends PrintBase {
232
278
  set styleSheetFile(cssList) {
233
279
  super.setStyleSheetFile(cssList);
234
280
  }
235
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
236
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, providedIn: "root" });
281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
282
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, providedIn: "root" });
237
283
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintService, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, decorators: [{
239
285
  type: Injectable,
240
286
  args: [{
241
287
  providedIn: "root",
@@ -243,10 +289,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
243
289
  }] });
244
290
 
245
291
  class PrintOptions {
246
- printSectionId = null;
247
- printTitle = null;
292
+ printSectionId = '';
293
+ printTitle = '';
248
294
  useExistingCss = false;
249
295
  bodyClass = '';
296
+ openNewTab = false;
250
297
  previewOnly = false;
251
298
  closeWindow = true;
252
299
  printDelay = 0;
@@ -281,7 +328,7 @@ class NgxPrintDirective extends PrintBase {
281
328
  * @memberof NgxPrintDirective
282
329
  */
283
330
  set printTitle(value) {
284
- this.printOptions = { ...this.printOptions, printSectionId: value };
331
+ this.printOptions = { ...this.printOptions, printTitle: value };
285
332
  }
286
333
  /**
287
334
  *
@@ -313,6 +360,13 @@ class NgxPrintDirective extends PrintBase {
313
360
  set bodyClass(value) {
314
361
  this.printOptions = { ...this.printOptions, bodyClass: value };
315
362
  }
363
+ /**
364
+ * Whether to open a new window or default to new window.
365
+ *
366
+ */
367
+ set openNewTab(value) {
368
+ this.printOptions = { ...this.printOptions, openNewTab: value };
369
+ }
316
370
  /**
317
371
  *
318
372
  *
@@ -336,10 +390,10 @@ class NgxPrintDirective extends PrintBase {
336
390
  print() {
337
391
  super.print(this.printOptions);
338
392
  }
339
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
340
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: NgxPrintDirective, isStandalone: true, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", closeWindow: "closeWindow", bodyClass: "bodyClass", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, usesInheritance: true, ngImport: i0 });
393
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
394
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NgxPrintDirective, isStandalone: true, selector: "button[ngxPrint]", inputs: { previewOnly: "previewOnly", printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", closeWindow: "closeWindow", bodyClass: "bodyClass", openNewTab: "openNewTab", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, usesInheritance: true, ngImport: i0 });
341
395
  }
342
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintDirective, decorators: [{
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, decorators: [{
343
397
  type: Directive,
344
398
  args: [{
345
399
  selector: "button[ngxPrint]",
@@ -359,6 +413,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
359
413
  type: Input
360
414
  }], bodyClass: [{
361
415
  type: Input
416
+ }], openNewTab: [{
417
+ type: Input
362
418
  }], printStyle: [{
363
419
  type: Input
364
420
  }], styleSheetFile: [{
@@ -369,11 +425,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
369
425
  }] } });
370
426
 
371
427
  class NgxPrintModule {
372
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
373
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, imports: [NgxPrintDirective], exports: [NgxPrintDirective] });
374
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule });
428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
429
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, imports: [NgxPrintDirective], exports: [NgxPrintDirective] });
430
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule });
375
431
  }
376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NgxPrintModule, decorators: [{
432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, decorators: [{
377
433
  type: NgModule,
378
434
  args: [{
379
435
  imports: [NgxPrintDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.mjs","sources":["../../../src/lib/ngx-print.base.ts","../../../src/lib/ngx-print.service.ts","../../../src/lib/print-options.ts","../../../src/lib/ngx-print.directive.ts","../../../src/lib/ngx-print.module.ts","../../../src/public_api.ts","../../../src/ngx-print.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { PrintOptions } from \"./print-options\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrintBase {\r\n\r\n private _printStyle: string[] = [];\r\n private _styleSheetFile: string = '';\r\n\r\n //#region Getters and Setters\r\n /**\r\n * Sets the print styles based on the provided values.\r\n *\r\n * @param {Object} values - Key-value pairs representing print styles.\r\n * @protected\r\n */\r\n protected setPrintStyle(values: { [key: string]: { [key: string]: string } }) {\r\n this._printStyle = [];\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 }\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 public returnStyleValues() {\r\n return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;\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\r\n /**\r\n * Sets the style sheet file based on the provided CSS list.\r\n *\r\n * @param {string} cssList - CSS file or list of CSS files.\r\n * @protected\r\n */\r\n protected setStyleSheetFile(cssList: string) {\r\n let linkTagFn = function (cssFileName) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n };\r\n\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n this._styleSheetFile = valueArr.map(val => linkTagFn(val)).join('');\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Private methods used by PrintBase\r\n\r\n /**\r\n * Updates the default values for input elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLInputElement>} elements - Collection of input elements.\r\n * @private\r\n */\r\n private updateInputDefaults(elements: HTMLCollectionOf<HTMLInputElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element['defaultValue'] = element.value;\r\n if (element['checked']) element['defaultChecked'] = true;\r\n }\r\n }\r\n\r\n /**\r\n * Updates the default values for select elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLSelectElement>} elements - Collection of select elements.\r\n * @private\r\n */\r\n private updateSelectDefaults(elements: HTMLCollectionOf<HTMLSelectElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n const selectedIdx = element.selectedIndex;\r\n const selectedOption: HTMLOptionElement = element.options[selectedIdx];\r\n\r\n selectedOption.defaultSelected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Updates the default values for textarea elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLTextAreaElement>} elements - Collection of textarea elements.\r\n * @private\r\n */\r\n private updateTextAreaDefaults(elements: HTMLCollectionOf<HTMLTextAreaElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element['defaultValue'] = element.value;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the HTML content of a specified printing section.\r\n *\r\n * @param {string} printSectionId - Id of the printing section.\r\n * @returns {string | null} - HTML content of the printing section, or null if not found.\r\n * @private\r\n */\r\n private getHtmlContents(printSectionId: string): string | null {\r\n const printContents = document.getElementById(printSectionId);\r\n if (!printContents) return null;\r\n\r\n const inputEls = printContents.getElementsByTagName('input');\r\n const selectEls = printContents.getElementsByTagName('select');\r\n const textAreaEls = printContents.getElementsByTagName('textarea');\r\n\r\n this.updateInputDefaults(inputEls);\r\n this.updateSelectDefaults(selectEls);\r\n this.updateTextAreaDefaults(textAreaEls);\r\n\r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n * Retrieves the HTML content of elements with the specified tag.\r\n *\r\n * @param {keyof HTMLElementTagNameMap} tag - HTML tag name.\r\n * @returns {string} - Concatenated outerHTML of elements with the specified tag.\r\n * @private\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 //#endregion\r\n\r\n\r\n /**\r\n * Prints the specified content using the provided print options.\r\n *\r\n * @param {PrintOptions} printOptions - Options for printing.\r\n * @public\r\n */\r\n protected print(printOptions: PrintOptions): void {\r\n\r\n let styles = '', links = '';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if (printOptions.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n const printContents = this.getHtmlContents(printOptions.printSectionId);\r\n if (!printContents) {\r\n // Handle the case where the specified print section is not found.\r\n console.error(`Print section with id ${printOptions.printSectionId} not found.`);\r\n return;\r\n }\r\n\r\n const 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>${printOptions.printTitle ? printOptions.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 ${printOptions.bodyClass ? `class=\"${printOptions.bodyClass}\"` : ''}>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n ${printOptions.previewOnly ? '' : `setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${printOptions.printDelay});`}\r\n }\r\n function closeWindow(){\r\n ${printOptions.closeWindow ? '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 { Injectable } from \"@angular/core\";\r\nimport { PrintBase } from \"./ngx-print.base\";\r\nimport { PrintOptions } from \"./print-options\";\r\n\r\n/**\r\n * Service for handling printing functionality in Angular applications.\r\n * Extends the base printing class (PrintBase).\r\n *\r\n * @export\r\n * @class NgxPrintService\r\n * @extends {PrintBase}\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class NgxPrintService extends PrintBase {\r\n\r\n /**\r\n * Initiates the printing process using the provided print options.\r\n *\r\n * @param {PrintOptions} printOptions - Options for configuring the printing process.\r\n * @memberof NgxPrintService\r\n * @returns {void}\r\n */\r\n public print(printOptions: PrintOptions): void {\r\n // Call the print method in the parent class\r\n super.print(printOptions);\r\n }\r\n\r\n /**\r\n * Sets the print style for the printing process.\r\n *\r\n * @param {{ [key: string]: { [key: string]: string } }} values - A dictionary representing the print styles.\r\n * @memberof NgxPrintService\r\n * @setter\r\n */\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n super.setPrintStyle(values);\r\n }\r\n\r\n\r\n /**\r\n * Sets the stylesheet file for the printing process.\r\n *\r\n * @param {string} cssList - A string representing the path to the stylesheet file.\r\n * @memberof NgxPrintService\r\n * @setter\r\n */\r\n set styleSheetFile(cssList: string) {\r\n super.setStyleSheetFile(cssList);\r\n }\r\n}\r\n","export class PrintOptions {\r\n printSectionId: string = null;\r\n printTitle: string = null;\r\n useExistingCss: boolean = false;\r\n bodyClass: string = '';\r\n previewOnly: boolean = false;\r\n closeWindow: boolean = true;\r\n printDelay: number = 0;\r\n\r\n constructor(options?: Partial<PrintOptions>) {\r\n if (options) {\r\n Object.assign(this, options);\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { PrintBase } from './ngx-print.base';\r\nimport { PrintOptions } from './print-options';\r\n@Directive({\r\n selector: \"button[ngxPrint]\",\r\n standalone: true\r\n})\r\nexport class NgxPrintDirective extends PrintBase {\r\n private printOptions = new PrintOptions();\r\n /**\r\n * Prevents the print dialog from opening on the window\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set previewOnly(value: boolean) {\r\n this.printOptions = { ...this.printOptions, previewOnly: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set printSectionId(value: string) {\r\n this.printOptions = { ...this.printOptions, printSectionId: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set printTitle(value: string) {\r\n this.printOptions = { ...this.printOptions, printSectionId: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set useExistingCss(value: boolean) {\r\n this.printOptions = { ...this.printOptions, useExistingCss: value };\r\n }\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() set printDelay(value: number) {\r\n this.printOptions = { ...this.printOptions, printDelay: value };\r\n }\r\n\r\n /**\r\n * Whether to close the window after print() returns.\r\n *\r\n */\r\n @Input() set closeWindow(value: boolean) {\r\n this.printOptions = { ...this.printOptions, closeWindow: value };\r\n }\r\n\r\n /**\r\n * Class attribute to apply to the body element.\r\n *\r\n */\r\n @Input() set bodyClass(value: string) {\r\n this.printOptions = { ...this.printOptions, bodyClass: value };\r\n }\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 super.setPrintStyle(values);\r\n }\r\n\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 super.setStyleSheetFile(cssList);\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 super.print(this.printOptions);\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 imports: [NgxPrintDirective],\r\n exports: [NgxPrintDirective]\r\n})\r\nexport class NgxPrintModule { }\r\n","/*\r\n * Public API Surface of ngx-print\r\n */\r\nexport * from './lib/ngx-print.service';\r\nexport * from './lib/ngx-print.directive';\r\nexport * from './lib/ngx-print.module';\r\nexport * from './lib/print-options';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-print.mjs","sources":["../../../src/lib/ngx-print.base.ts","../../../src/lib/ngx-print.service.ts","../../../src/lib/print-options.ts","../../../src/lib/ngx-print.directive.ts","../../../src/lib/ngx-print.module.ts","../../../src/public_api.ts","../../../src/ngx-print.ts"],"sourcesContent":["import { CSP_NONCE, Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { PrintOptions } from \"./print-options\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrintBase {\r\n\r\n private _printStyle: string[] = [];\r\n private _styleSheetFile: string = '';\r\n\r\n constructor(@Inject(CSP_NONCE) @Optional() private nonce?: string | null) {}\r\n\r\n //#region Getters and Setters\r\n /**\r\n * Sets the print styles based on the provided values.\r\n *\r\n * @param {Object} values - Key-value pairs representing print styles.\r\n * @protected\r\n */\r\n protected setPrintStyle(values: { [key: string]: { [key: string]: string } }) {\r\n this._printStyle = [];\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 }\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 public returnStyleValues() {\r\n const styleNonce = this.nonce ? ` nonce=\"${this.nonce}\"` : '';\r\n return `<style${styleNonce}> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;\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\r\n /**\r\n * Sets the style sheet file based on the provided CSS list.\r\n *\r\n * @param {string} cssList - CSS file or list of CSS files.\r\n * @protected\r\n */\r\n protected setStyleSheetFile(cssList: string) {\r\n const linkTagFn = function (cssFileName: string) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n };\r\n\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n this._styleSheetFile = valueArr.map(val => linkTagFn(val)).join('');\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Private methods used by PrintBase\r\n\r\n /**\r\n * Updates the default values for input elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLInputElement>} elements - Collection of input elements.\r\n * @private\r\n */\r\n private updateInputDefaults(elements: HTMLCollectionOf<HTMLInputElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element['defaultValue'] = element.value;\r\n if (element['checked']) element['defaultChecked'] = true;\r\n }\r\n }\r\n\r\n /**\r\n * Updates the default values for select elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLSelectElement>} elements - Collection of select elements.\r\n * @private\r\n */\r\n private updateSelectDefaults(elements: HTMLCollectionOf<HTMLSelectElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n const selectedIdx = element.selectedIndex;\r\n const selectedOption: HTMLOptionElement = element.options[selectedIdx];\r\n\r\n selectedOption.defaultSelected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Updates the default values for textarea elements.\r\n *\r\n * @param {HTMLCollectionOf<HTMLTextAreaElement>} elements - Collection of textarea elements.\r\n * @private\r\n */\r\n private updateTextAreaDefaults(elements: HTMLCollectionOf<HTMLTextAreaElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = elements[i];\r\n element['defaultValue'] = element.value;\r\n }\r\n }\r\n\r\n /**\r\n * Converts a canvas element to an image and returns its HTML string.\r\n *\r\n * @param {HTMLCanvasElement} element - The canvas element to convert.\r\n * @returns {string} - HTML string of the image.\r\n * @private\r\n */\r\n private canvasToImageHtml(element: HTMLCanvasElement): string {\r\n const dataUrl = element.toDataURL();\r\n return `<img src=\"${dataUrl}\" style=\"max-width: 100%;\">`;\r\n }\r\n\r\n /**\r\n * Includes canvas contents in the print section via img tags.\r\n *\r\n * @param {HTMLCollectionOf<HTMLCanvasElement>} elements - Collection of canvas elements.\r\n * @private\r\n */\r\n private updateCanvasToImage(elements: HTMLCollectionOf<HTMLCanvasElement>): void {\r\n for (let i = 0; i < elements.length; i++) {\r\n const element = this.canvasToImageHtml(elements[i]);\r\n elements[i].insertAdjacentHTML('afterend', element);\r\n elements[i].remove();\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves the HTML content of a specified printing section.\r\n *\r\n * @param {string} printSectionId - Id of the printing section.\r\n * @returns {string | null} - HTML content of the printing section, or null if not found.\r\n * @private\r\n */\r\n private getHtmlContents(printSectionId: string): string | null {\r\n const printContents = document.getElementById(printSectionId);\r\n if (!printContents) return null;\r\n\r\n const inputEls = printContents.getElementsByTagName('input');\r\n const selectEls = printContents.getElementsByTagName('select');\r\n const textAreaEls = printContents.getElementsByTagName('textarea');\r\n const canvasEls = printContents.getElementsByTagName('canvas');\r\n\r\n this.updateInputDefaults(inputEls);\r\n this.updateSelectDefaults(selectEls);\r\n this.updateTextAreaDefaults(textAreaEls);\r\n this.updateCanvasToImage(canvasEls);\r\n\r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n * Retrieves the HTML content of elements with the specified tag.\r\n *\r\n * @param {keyof HTMLElementTagNameMap} tag - HTML tag name.\r\n * @returns {string} - Concatenated outerHTML of elements with the specified tag.\r\n * @private\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 //#endregion\r\n\r\n\r\n /**\r\n * Prints the specified content using the provided print options.\r\n *\r\n * @param {PrintOptions} printOptions - Options for printing.\r\n * @public\r\n */\r\n protected print(printOptions: PrintOptions): void {\r\n\r\n let styles = '', links = '', popOut = 'top=0,left=0,height=auto,width=auto';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if (printOptions.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n // If the openNewTab option is set to true, then set the popOut option to an empty string.\r\n // This will cause the print dialog to open in a new tab.\r\n if (printOptions.openNewTab) {\r\n popOut = '';\r\n }\r\n\r\n const printContents = this.getHtmlContents(printOptions.printSectionId);\r\n if (!printContents) {\r\n // Handle the case where the specified print section is not found.\r\n console.error(`Print section with id ${printOptions.printSectionId} not found.`);\r\n return;\r\n }\r\n\r\n const popupWin = window.open(\"\", \"_blank\", popOut);\r\n\r\n if (!popupWin) {\r\n // the popup window could not be opened.\r\n console.error('Could not open print window.');\r\n return;\r\n }\r\n\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n <html>\r\n <head>\r\n <title>${printOptions.printTitle ? printOptions.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 ${printOptions.bodyClass ? `class=\"${printOptions.bodyClass}\"` : ''}>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n ${printOptions.previewOnly ? '' : `setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${printOptions.printDelay});`}\r\n }\r\n function closeWindow(){\r\n ${printOptions.closeWindow ? '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 { Injectable } from \"@angular/core\";\r\nimport { PrintBase } from \"./ngx-print.base\";\r\nimport { PrintOptions } from \"./print-options\";\r\n\r\n/**\r\n * Service for handling printing functionality in Angular applications.\r\n * Extends the base printing class (PrintBase).\r\n *\r\n * @export\r\n * @class NgxPrintService\r\n * @extends {PrintBase}\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class NgxPrintService extends PrintBase {\r\n\r\n /**\r\n * Initiates the printing process using the provided print options.\r\n *\r\n * @param {PrintOptions} printOptions - Options for configuring the printing process.\r\n * @memberof NgxPrintService\r\n * @returns {void}\r\n */\r\n public print(printOptions: PrintOptions): void {\r\n // Call the print method in the parent class\r\n super.print(printOptions);\r\n }\r\n\r\n /**\r\n * Sets the print style for the printing process.\r\n *\r\n * @param {{ [key: string]: { [key: string]: string } }} values - A dictionary representing the print styles.\r\n * @memberof NgxPrintService\r\n * @setter\r\n */\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n super.setPrintStyle(values);\r\n }\r\n\r\n\r\n /**\r\n * Sets the stylesheet file for the printing process.\r\n *\r\n * @param {string} cssList - A string representing the path to the stylesheet file.\r\n * @memberof NgxPrintService\r\n * @setter\r\n */\r\n set styleSheetFile(cssList: string) {\r\n super.setStyleSheetFile(cssList);\r\n }\r\n}\r\n","export class PrintOptions {\r\n printSectionId: string = '';\r\n printTitle: string = '';\r\n useExistingCss: boolean = false;\r\n bodyClass: string = '';\r\n openNewTab: boolean = false;\r\n previewOnly: boolean = false;\r\n closeWindow: boolean = true;\r\n printDelay: number = 0;\r\n\r\n constructor(options?: Partial<PrintOptions>) {\r\n if (options) {\r\n Object.assign(this, options);\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { PrintBase } from './ngx-print.base';\r\nimport { PrintOptions } from './print-options';\r\n@Directive({\r\n selector: \"button[ngxPrint]\",\r\n standalone: true\r\n})\r\nexport class NgxPrintDirective extends PrintBase {\r\n private printOptions = new PrintOptions();\r\n /**\r\n * Prevents the print dialog from opening on the window\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set previewOnly(value: boolean) {\r\n this.printOptions = { ...this.printOptions, previewOnly: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set printSectionId(value: string) {\r\n this.printOptions = { ...this.printOptions, printSectionId: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set printTitle(value: string) {\r\n this.printOptions = { ...this.printOptions, printTitle: value };\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @memberof NgxPrintDirective\r\n */\r\n @Input() set useExistingCss(value: boolean) {\r\n this.printOptions = { ...this.printOptions, useExistingCss: value };\r\n }\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() set printDelay(value: number) {\r\n this.printOptions = { ...this.printOptions, printDelay: value };\r\n }\r\n\r\n /**\r\n * Whether to close the window after print() returns.\r\n *\r\n */\r\n @Input() set closeWindow(value: boolean) {\r\n this.printOptions = { ...this.printOptions, closeWindow: value };\r\n }\r\n\r\n /**\r\n * Class attribute to apply to the body element.\r\n *\r\n */\r\n @Input() set bodyClass(value: string) {\r\n this.printOptions = { ...this.printOptions, bodyClass: value };\r\n }\r\n\r\n /**\r\n * Whether to open a new window or default to new window.\r\n *\r\n */\r\n @Input() set openNewTab(value: boolean) {\r\n this.printOptions = { ...this.printOptions, openNewTab: value };\r\n }\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 super.setPrintStyle(values);\r\n }\r\n\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 super.setStyleSheetFile(cssList);\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 super.print(this.printOptions);\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 imports: [NgxPrintDirective],\r\n exports: [NgxPrintDirective]\r\n})\r\nexport class NgxPrintModule { }\r\n","/*\r\n * Public API Surface of ngx-print\r\n */\r\nexport { NgxPrintService } from './lib/ngx-print.service';\r\nexport { NgxPrintDirective} from './lib/ngx-print.directive';\r\nexport { NgxPrintModule } from './lib/ngx-print.module';\r\nexport { PrintOptions } from './lib/print-options';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { PrintOptions } from "./print-options";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PrintBase {
4
+ private nonce?;
4
5
  private _printStyle;
5
6
  private _styleSheetFile;
7
+ constructor(nonce?: (string | null) | undefined);
6
8
  /**
7
9
  * Sets the print styles based on the provided values.
8
10
  *
@@ -57,6 +59,21 @@ export declare class PrintBase {
57
59
  * @private
58
60
  */
59
61
  private updateTextAreaDefaults;
62
+ /**
63
+ * Converts a canvas element to an image and returns its HTML string.
64
+ *
65
+ * @param {HTMLCanvasElement} element - The canvas element to convert.
66
+ * @returns {string} - HTML string of the image.
67
+ * @private
68
+ */
69
+ private canvasToImageHtml;
70
+ /**
71
+ * Includes canvas contents in the print section via img tags.
72
+ *
73
+ * @param {HTMLCollectionOf<HTMLCanvasElement>} elements - Collection of canvas elements.
74
+ * @private
75
+ */
76
+ private updateCanvasToImage;
60
77
  /**
61
78
  * Retrieves the HTML content of a specified printing section.
62
79
  *
@@ -80,7 +97,7 @@ export declare class PrintBase {
80
97
  * @public
81
98
  */
82
99
  protected print(printOptions: PrintOptions): void;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<PrintBase, never>;
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<PrintBase, [{ optional: true; }]>;
84
101
  static ɵprov: i0.ɵɵInjectableDeclaration<PrintBase>;
85
102
  }
86
103
  //# sourceMappingURL=ngx-print.base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.base.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;AAE/C,qBAGa,SAAS;IAElB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAc;IAGrC;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE;IAS5E;;;;;;;OAOG;IACI,iBAAiB;IAIxB;;;;KAIC;IACD,OAAO,CAAC,wBAAwB;IAIhC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAiB3C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAevB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;yCA1JxC,SAAS;6CAAT,SAAS;CAyMrB"}
1
+ {"version":3,"file":"ngx-print.base.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;AAE/C,qBAGa,SAAS;IAKuB,OAAO,CAAC,KAAK,CAAC;IAHvD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAc;gBAEY,KAAK,CAAC,GAAE,MAAM,GAAG,IAAI,aAAA;IAGtE;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE;IAS5E;;;;;;;OAOG;IACI,iBAAiB;IAKxB;;;;KAIC;IACD,OAAO,CAAC,wBAAwB;IAIhC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAiB3C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;yCAzLxC,SAAS;6CAAT,SAAS;CAqPrB"}
@@ -42,6 +42,11 @@ export declare class NgxPrintDirective extends PrintBase {
42
42
  *
43
43
  */
44
44
  set bodyClass(value: string);
45
+ /**
46
+ * Whether to open a new window or default to new window.
47
+ *
48
+ */
49
+ set openNewTab(value: boolean);
45
50
  /**
46
51
  *
47
52
  *
@@ -64,6 +69,6 @@ export declare class NgxPrintDirective extends PrintBase {
64
69
  */
65
70
  print(): void;
66
71
  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>;
72
+ 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; }; "openNewTab": { "alias": "openNewTab"; "required": false; }; "printStyle": { "alias": "printStyle"; "required": false; }; "styleSheetFile": { "alias": "styleSheetFile"; "required": false; }; }, {}, never, never, true, never>;
68
73
  }
69
74
  //# 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,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
+ {"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;;;OAGG;IACH,IAAa,UAAU,CAAC,KAAK,EAAE,OAAO,EAErC;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;yCAjGT,iBAAiB;2CAAjB,iBAAiB;CAoG7B"}
@@ -3,6 +3,7 @@ export declare class PrintOptions {
3
3
  printTitle: string;
4
4
  useExistingCss: boolean;
5
5
  bodyClass: string;
6
+ openNewTab: boolean;
6
7
  previewOnly: boolean;
7
8
  closeWindow: boolean;
8
9
  printDelay: number;
@@ -1 +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"}
1
+ {"version":3,"file":"print-options.d.ts","sourceRoot":"","sources":["../../../src/lib/print-options.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACvB,cAAc,EAAE,MAAM,CAAM;IAC5B,UAAU,EAAE,MAAM,CAAM;IACxB,cAAc,EAAE,OAAO,CAAS;IAChC,SAAS,EAAE,MAAM,CAAM;IACvB,UAAU,EAAE,OAAO,CAAS;IAC5B,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.5.0",
3
+ "version": "2.0.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": {
@@ -22,9 +22,6 @@
22
22
  "dependency",
23
23
  "angular-print"
24
24
  ],
25
- "dependencies": {
26
- "tslib": "^2.3.0"
27
- },
28
25
  "module": "fesm2022/ngx-print.mjs",
29
26
  "typings": "index.d.ts",
30
27
  "exports": {
@@ -38,5 +35,8 @@
38
35
  "default": "./fesm2022/ngx-print.mjs"
39
36
  }
40
37
  },
41
- "sideEffects": false
38
+ "sideEffects": false,
39
+ "dependencies": {
40
+ "tslib": "^2.3.0"
41
+ }
42
42
  }
package/public_api.d.ts CHANGED
@@ -1,5 +1,5 @@
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';
1
+ export { NgxPrintService } from './lib/ngx-print.service';
2
+ export { NgxPrintDirective } from './lib/ngx-print.directive';
3
+ export { NgxPrintModule } from './lib/ngx-print.module';
4
+ export { PrintOptions } from './lib/print-options';
5
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":"AAGA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}