ngx-print 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,6 +11,7 @@ This directive makes printing your HTML sections smooth and easy in your Angular
11
11
  | 1.4.x | 16.0.0 |
12
12
  | 1.5.x | 17.0.0 |
13
13
  | 2.x.x | 18.0.0 |
14
+ | 3.x.x | 19.0.0 |
14
15
 
15
16
  ### Note
16
17
  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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { CSP_NONCE, Injectable, Inject, Optional, Directive, Input, HostListener, NgModule } from '@angular/core';
2
+ import { CSP_NONCE, Inject, Optional, Injectable, HostListener, Input, Directive, NgModule } from '@angular/core';
3
3
 
4
4
  class PrintBase {
5
5
  nonce;
@@ -17,8 +17,8 @@ class PrintBase {
17
17
  */
18
18
  setPrintStyle(values) {
19
19
  this._printStyle = [];
20
- for (let key in values) {
21
- if (values.hasOwnProperty(key)) {
20
+ for (const key in values) {
21
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
22
22
  this._printStyle.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
23
23
  }
24
24
  }
@@ -36,10 +36,10 @@ class PrintBase {
36
36
  return `<style${styleNonce}> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
37
37
  }
38
38
  /**
39
- * @returns string which contains the link tags containing the css which will
40
- * be injected later within <head></head> tag.
41
- *
42
- */
39
+ * @returns string which contains the link tags containing the css which will
40
+ * be injected later within <head></head> tag.
41
+ *
42
+ */
43
43
  returnStyleSheetLinkTags() {
44
44
  return this._styleSheetFile;
45
45
  }
@@ -188,48 +188,68 @@ class PrintBase {
188
188
  console.error(`Print section with id ${printOptions.printSectionId} not found.`);
189
189
  return;
190
190
  }
191
- const popupWin = window.open("", "_blank", popOut);
191
+ const popupWin = window.open('', '_blank', popOut);
192
192
  if (!popupWin) {
193
193
  // the popup window could not be opened.
194
194
  console.error('Could not open print window.');
195
195
  return;
196
196
  }
197
197
  popupWin.document.open();
198
- popupWin.document.write(`
199
- <html>
200
- <head>
201
- <title>${printOptions.printTitle ? printOptions.printTitle : ""}</title>
202
- ${baseTag}
203
- ${this.returnStyleValues()}
204
- ${this.returnStyleSheetLinkTags()}
205
- ${styles}
206
- ${links}
207
- </head>
208
- <body ${printOptions.bodyClass ? `class="${printOptions.bodyClass}"` : ''}>
209
- ${printContents}
210
- <script defer>
211
- function triggerPrint(event) {
212
- window.removeEventListener('load', triggerPrint, false);
213
- ${printOptions.previewOnly ? '' : `setTimeout(function() {
214
- closeWindow(window.print());
215
- }, ${printOptions.printDelay});`}
216
- }
217
- function closeWindow(){
218
- ${printOptions.closeWindow ? 'window.close();' : ''}
219
- }
220
- window.addEventListener('load', triggerPrint, false);
221
- </script>
222
- </body>
223
- </html>`);
198
+ // Create the HTML structure
199
+ const doc = popupWin.document;
200
+ // Set up the basic HTML structure
201
+ const html = doc.createElement('html');
202
+ const head = doc.createElement('head');
203
+ const body = doc.createElement('body');
204
+ // Set title
205
+ const title = doc.createElement('title');
206
+ title.textContent = printOptions.printTitle || '';
207
+ head.appendChild(title);
208
+ // Add base tag, styles, and links
209
+ if (baseTag) {
210
+ head.innerHTML += baseTag;
211
+ }
212
+ head.innerHTML += this.returnStyleValues();
213
+ head.innerHTML += this.returnStyleSheetLinkTags();
214
+ head.innerHTML += styles;
215
+ head.innerHTML += links;
216
+ // Set body class if provided
217
+ if (printOptions.bodyClass) {
218
+ body.className = printOptions.bodyClass;
219
+ }
220
+ // Insert print contents
221
+ body.innerHTML += printContents;
222
+ // Add script
223
+ const script = doc.createElement('script');
224
+ script.defer = true;
225
+ script.textContent = `
226
+ function triggerPrint(event) {
227
+ window.removeEventListener('load', triggerPrint, false);
228
+ ${printOptions.previewOnly
229
+ ? ''
230
+ : `setTimeout(function() {
231
+ closeWindow(window.print());
232
+ }, ${printOptions.printDelay});`}
233
+ }
234
+ function closeWindow(){
235
+ ${printOptions.closeWindow ? 'window.close();' : ''}
236
+ }
237
+ window.addEventListener('load', triggerPrint, false);
238
+ `;
239
+ body.appendChild(script);
240
+ // Assemble the document
241
+ html.appendChild(head);
242
+ html.appendChild(body);
243
+ doc.appendChild(html);
224
244
  popupWin.document.close();
225
245
  }
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' });
246
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PrintBase, deps: [{ token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
247
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PrintBase, providedIn: 'root' });
228
248
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PrintBase, decorators: [{
230
250
  type: Injectable,
231
251
  args: [{
232
- providedIn: 'root'
252
+ providedIn: 'root',
233
253
  }]
234
254
  }], ctorParameters: () => [{ type: undefined, decorators: [{
235
255
  type: Inject,
@@ -278,13 +298,13 @@ class NgxPrintService extends PrintBase {
278
298
  set styleSheetFile(cssList) {
279
299
  super.setStyleSheetFile(cssList);
280
300
  }
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" });
301
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
302
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintService, providedIn: 'root' });
283
303
  }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, decorators: [{
304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintService, decorators: [{
285
305
  type: Injectable,
286
306
  args: [{
287
- providedIn: "root",
307
+ providedIn: 'root',
288
308
  }]
289
309
  }] });
290
310
 
@@ -390,14 +410,14 @@ class NgxPrintDirective extends PrintBase {
390
410
  print() {
391
411
  super.print(this.printOptions);
392
412
  }
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 });
413
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
414
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: NgxPrintDirective, isStandalone: true, selector: "[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 });
395
415
  }
396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintDirective, decorators: [{
397
417
  type: Directive,
398
418
  args: [{
399
- selector: "button[ngxPrint]",
400
- standalone: true
419
+ selector: '[ngxPrint]',
420
+ standalone: true,
401
421
  }]
402
422
  }], propDecorators: { previewOnly: [{
403
423
  type: Input
@@ -425,15 +445,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
425
445
  }] } });
426
446
 
427
447
  class 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 });
448
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
449
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintModule, imports: [NgxPrintDirective], exports: [NgxPrintDirective] });
450
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintModule });
431
451
  }
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, decorators: [{
452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: NgxPrintModule, decorators: [{
433
453
  type: NgModule,
434
454
  args: [{
435
455
  imports: [NgxPrintDirective],
436
- exports: [NgxPrintDirective]
456
+ exports: [NgxPrintDirective],
437
457
  }]
438
458
  }] });
439
459
 
@@ -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 { 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
+ {"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 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 (const key in values) {\r\n if (Object.prototype.hasOwnProperty.call(values, 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 * 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 let styles = '',\r\n links = '',\r\n 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\r\n // Create the HTML structure\r\n const doc = popupWin.document;\r\n\r\n // Set up the basic HTML structure\r\n const html = doc.createElement('html');\r\n const head = doc.createElement('head');\r\n const body = doc.createElement('body');\r\n\r\n // Set title\r\n const title = doc.createElement('title');\r\n title.textContent = printOptions.printTitle || '';\r\n head.appendChild(title);\r\n\r\n // Add base tag, styles, and links\r\n if (baseTag) {\r\n head.innerHTML += baseTag;\r\n }\r\n head.innerHTML += this.returnStyleValues();\r\n head.innerHTML += this.returnStyleSheetLinkTags();\r\n head.innerHTML += styles;\r\n head.innerHTML += links;\r\n\r\n // Set body class if provided\r\n if (printOptions.bodyClass) {\r\n body.className = printOptions.bodyClass;\r\n }\r\n\r\n // Insert print contents\r\n body.innerHTML += printContents;\r\n\r\n // Add script\r\n const script = doc.createElement('script');\r\n script.defer = true;\r\n script.textContent = `\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n ${\r\n printOptions.previewOnly\r\n ? ''\r\n : `setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${printOptions.printDelay});`\r\n }\r\n }\r\n function closeWindow(){\r\n ${printOptions.closeWindow ? 'window.close();' : ''}\r\n }\r\n window.addEventListener('load', triggerPrint, false);\r\n`;\r\n body.appendChild(script);\r\n\r\n // Assemble the document\r\n html.appendChild(head);\r\n html.appendChild(body);\r\n doc.appendChild(html);\r\n\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 * 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 * 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: '[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 * @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,10 +1,10 @@
1
- import { PrintOptions } from "./print-options";
1
+ import { PrintOptions } from './print-options';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PrintBase {
4
4
  private nonce?;
5
5
  private _printStyle;
6
6
  private _styleSheetFile;
7
- constructor(nonce?: (string | null) | undefined);
7
+ constructor(nonce?: string | null | undefined);
8
8
  /**
9
9
  * Sets the print styles based on the provided values.
10
10
  *
@@ -26,10 +26,10 @@ export declare class PrintBase {
26
26
  */
27
27
  returnStyleValues(): string;
28
28
  /**
29
- * @returns string which contains the link tags containing the css which will
30
- * be injected later within <head></head> tag.
31
- *
32
- */
29
+ * @returns string which contains the link tags containing the css which will
30
+ * be injected later within <head></head> tag.
31
+ *
32
+ */
33
33
  private returnStyleSheetLinkTags;
34
34
  /**
35
35
  * Sets the style sheet file based on the provided CSS list.
@@ -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;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"}
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;IAIuB,OAAO,CAAC,KAAK,CAAC;IAHzD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAc;gBAEc,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA;IAGxE;;;;;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;;;;OAIG;IACH,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;IAUrB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;yCAvLtC,SAAS;6CAAT,SAAS;CAmRrB"}
@@ -69,6 +69,6 @@ export declare class NgxPrintDirective extends PrintBase {
69
69
  */
70
70
  print(): void;
71
71
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxPrintDirective, 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>;
72
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPrintDirective, "[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>;
73
73
  }
74
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;;;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"}
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;IAED;;;OAGG;IACH,IACI,cAAc,CAAC,OAAO,EAAE,MAAM,EAEjC;IAED;;;;OAIG;IAEI,KAAK,IAAI,IAAI;yCAhGT,iBAAiB;2CAAjB,iBAAiB;CAmG7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.module.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.module.ts"],"names":[],"mappings":";;AAGA,qBAIa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAI"}
1
+ {"version":3,"file":"ngx-print.module.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.module.ts"],"names":[],"mappings":";;AAGA,qBAIa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAG"}
@@ -1,5 +1,5 @@
1
- import { PrintBase } from "./ngx-print.base";
2
- import { PrintOptions } from "./print-options";
1
+ import { PrintBase } from './ngx-print.base';
2
+ import { PrintOptions } from './print-options';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Service for handling printing functionality in Angular applications.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-print.service.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;AAE/C;;;;;;;GAOG;AACH,qBAGa,eAAgB,SAAQ,SAAS;IAE5C;;;;;;OAMG;IACI,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAK9C;;;;;;OAMG;IACH,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,EAElE;IAGD;;;;;;OAMG;IACH,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAEjC;yCAnCU,eAAe;6CAAf,eAAe;CAoC3B"}
1
+ {"version":3,"file":"ngx-print.service.d.ts","sourceRoot":"","sources":["../../../src/lib/ngx-print.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;AAE/C;;;;;;;GAOG;AACH,qBAGa,eAAgB,SAAQ,SAAS;IAC5C;;;;;;OAMG;IACI,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAK9C;;;;;;OAMG;IACH,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,EAElE;IAED;;;;;;OAMG;IACH,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAEjC;yCAjCU,eAAe;6CAAf,eAAe;CAkC3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-print",
3
- "version": "2.0.0",
3
+ "version": "3.1.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": {
@@ -30,8 +30,6 @@
30
30
  },
31
31
  ".": {
32
32
  "types": "./index.d.ts",
33
- "esm2022": "./esm2022/ngx-print.mjs",
34
- "esm": "./esm2022/ngx-print.mjs",
35
33
  "default": "./fesm2022/ngx-print.mjs"
36
34
  }
37
35
  },
@@ -1 +1 @@
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"}
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,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,239 +0,0 @@
1
- import { CSP_NONCE, Inject, Injectable, Optional } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class PrintBase {
4
- nonce;
5
- _printStyle = [];
6
- _styleSheetFile = '';
7
- constructor(nonce) {
8
- this.nonce = nonce;
9
- }
10
- //#region Getters and Setters
11
- /**
12
- * Sets the print styles based on the provided values.
13
- *
14
- * @param {Object} values - Key-value pairs representing print styles.
15
- * @protected
16
- */
17
- setPrintStyle(values) {
18
- this._printStyle = [];
19
- for (let key in values) {
20
- if (values.hasOwnProperty(key)) {
21
- this._printStyle.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
22
- }
23
- }
24
- }
25
- /**
26
- *
27
- *
28
- * @returns the string that create the stylesheet which will be injected
29
- * later within <style></style> tag.
30
- *
31
- * -join/replace to transform an array objects to css-styled string
32
- */
33
- returnStyleValues() {
34
- const styleNonce = this.nonce ? ` nonce="${this.nonce}"` : '';
35
- return `<style${styleNonce}> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;
36
- }
37
- /**
38
- * @returns string which contains the link tags containing the css which will
39
- * be injected later within <head></head> tag.
40
- *
41
- */
42
- returnStyleSheetLinkTags() {
43
- return this._styleSheetFile;
44
- }
45
- /**
46
- * Sets the style sheet file based on the provided CSS list.
47
- *
48
- * @param {string} cssList - CSS file or list of CSS files.
49
- * @protected
50
- */
51
- setStyleSheetFile(cssList) {
52
- const linkTagFn = function (cssFileName) {
53
- return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
54
- };
55
- if (cssList.indexOf(',') !== -1) {
56
- const valueArr = cssList.split(',');
57
- this._styleSheetFile = valueArr.map(val => linkTagFn(val)).join('');
58
- }
59
- else {
60
- this._styleSheetFile = linkTagFn(cssList);
61
- }
62
- }
63
- //#endregion
64
- //#region Private methods used by PrintBase
65
- /**
66
- * Updates the default values for input elements.
67
- *
68
- * @param {HTMLCollectionOf<HTMLInputElement>} elements - Collection of input elements.
69
- * @private
70
- */
71
- updateInputDefaults(elements) {
72
- for (let i = 0; i < elements.length; i++) {
73
- const element = elements[i];
74
- element['defaultValue'] = element.value;
75
- if (element['checked'])
76
- element['defaultChecked'] = true;
77
- }
78
- }
79
- /**
80
- * Updates the default values for select elements.
81
- *
82
- * @param {HTMLCollectionOf<HTMLSelectElement>} elements - Collection of select elements.
83
- * @private
84
- */
85
- updateSelectDefaults(elements) {
86
- for (let i = 0; i < elements.length; i++) {
87
- const element = elements[i];
88
- const selectedIdx = element.selectedIndex;
89
- const selectedOption = element.options[selectedIdx];
90
- selectedOption.defaultSelected = true;
91
- }
92
- }
93
- /**
94
- * Updates the default values for textarea elements.
95
- *
96
- * @param {HTMLCollectionOf<HTMLTextAreaElement>} elements - Collection of textarea elements.
97
- * @private
98
- */
99
- updateTextAreaDefaults(elements) {
100
- for (let i = 0; i < elements.length; i++) {
101
- const element = elements[i];
102
- element['defaultValue'] = element.value;
103
- }
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
- }
129
- /**
130
- * Retrieves the HTML content of a specified printing section.
131
- *
132
- * @param {string} printSectionId - Id of the printing section.
133
- * @returns {string | null} - HTML content of the printing section, or null if not found.
134
- * @private
135
- */
136
- getHtmlContents(printSectionId) {
137
- const printContents = document.getElementById(printSectionId);
138
- if (!printContents)
139
- return null;
140
- const inputEls = printContents.getElementsByTagName('input');
141
- const selectEls = printContents.getElementsByTagName('select');
142
- const textAreaEls = printContents.getElementsByTagName('textarea');
143
- const canvasEls = printContents.getElementsByTagName('canvas');
144
- this.updateInputDefaults(inputEls);
145
- this.updateSelectDefaults(selectEls);
146
- this.updateTextAreaDefaults(textAreaEls);
147
- this.updateCanvasToImage(canvasEls);
148
- return printContents.innerHTML;
149
- }
150
- /**
151
- * Retrieves the HTML content of elements with the specified tag.
152
- *
153
- * @param {keyof HTMLElementTagNameMap} tag - HTML tag name.
154
- * @returns {string} - Concatenated outerHTML of elements with the specified tag.
155
- * @private
156
- */
157
- getElementTag(tag) {
158
- const html = [];
159
- const elements = document.getElementsByTagName(tag);
160
- for (let index = 0; index < elements.length; index++) {
161
- html.push(elements[index].outerHTML);
162
- }
163
- return html.join('\r\n');
164
- }
165
- //#endregion
166
- /**
167
- * Prints the specified content using the provided print options.
168
- *
169
- * @param {PrintOptions} printOptions - Options for printing.
170
- * @public
171
- */
172
- print(printOptions) {
173
- let styles = '', links = '', popOut = 'top=0,left=0,height=auto,width=auto';
174
- const baseTag = this.getElementTag('base');
175
- if (printOptions.useExistingCss) {
176
- styles = this.getElementTag('style');
177
- links = this.getElementTag('link');
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
- }
184
- const printContents = this.getHtmlContents(printOptions.printSectionId);
185
- if (!printContents) {
186
- // Handle the case where the specified print section is not found.
187
- console.error(`Print section with id ${printOptions.printSectionId} not found.`);
188
- return;
189
- }
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
- }
196
- popupWin.document.open();
197
- popupWin.document.write(`
198
- <html>
199
- <head>
200
- <title>${printOptions.printTitle ? printOptions.printTitle : ""}</title>
201
- ${baseTag}
202
- ${this.returnStyleValues()}
203
- ${this.returnStyleSheetLinkTags()}
204
- ${styles}
205
- ${links}
206
- </head>
207
- <body ${printOptions.bodyClass ? `class="${printOptions.bodyClass}"` : ''}>
208
- ${printContents}
209
- <script defer>
210
- function triggerPrint(event) {
211
- window.removeEventListener('load', triggerPrint, false);
212
- ${printOptions.previewOnly ? '' : `setTimeout(function() {
213
- closeWindow(window.print());
214
- }, ${printOptions.printDelay});`}
215
- }
216
- function closeWindow(){
217
- ${printOptions.closeWindow ? 'window.close();' : ''}
218
- }
219
- window.addEventListener('load', triggerPrint, false);
220
- </script>
221
- </body>
222
- </html>`);
223
- popupWin.document.close();
224
- }
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' });
227
- }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintBase, decorators: [{
229
- type: Injectable,
230
- args: [{
231
- providedIn: 'root'
232
- }]
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==
@@ -1,124 +0,0 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
2
- import { PrintBase } from './ngx-print.base';
3
- import { PrintOptions } from './print-options';
4
- import * as i0 from "@angular/core";
5
- export class NgxPrintDirective extends PrintBase {
6
- printOptions = new PrintOptions();
7
- /**
8
- * Prevents the print dialog from opening on the window
9
- *
10
- * @memberof NgxPrintDirective
11
- */
12
- set previewOnly(value) {
13
- this.printOptions = { ...this.printOptions, previewOnly: value };
14
- }
15
- /**
16
- *
17
- *
18
- * @memberof NgxPrintDirective
19
- */
20
- set printSectionId(value) {
21
- this.printOptions = { ...this.printOptions, printSectionId: value };
22
- }
23
- /**
24
- *
25
- *
26
- * @memberof NgxPrintDirective
27
- */
28
- set printTitle(value) {
29
- this.printOptions = { ...this.printOptions, printTitle: value };
30
- }
31
- /**
32
- *
33
- *
34
- * @memberof NgxPrintDirective
35
- */
36
- set useExistingCss(value) {
37
- this.printOptions = { ...this.printOptions, useExistingCss: value };
38
- }
39
- /**
40
- * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
41
- *
42
- * @memberof NgxPrintDirective
43
- */
44
- set printDelay(value) {
45
- this.printOptions = { ...this.printOptions, printDelay: value };
46
- }
47
- /**
48
- * Whether to close the window after print() returns.
49
- *
50
- */
51
- set closeWindow(value) {
52
- this.printOptions = { ...this.printOptions, closeWindow: value };
53
- }
54
- /**
55
- * Class attribute to apply to the body element.
56
- *
57
- */
58
- set bodyClass(value) {
59
- this.printOptions = { ...this.printOptions, bodyClass: value };
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
- }
68
- /**
69
- *
70
- *
71
- * @memberof NgxPrintDirective
72
- */
73
- set printStyle(values) {
74
- super.setPrintStyle(values);
75
- }
76
- /**
77
- * @memberof NgxPrintDirective
78
- * @param cssList
79
- */
80
- set styleSheetFile(cssList) {
81
- super.setStyleSheetFile(cssList);
82
- }
83
- /**
84
- *
85
- *
86
- * @memberof NgxPrintDirective
87
- */
88
- print() {
89
- super.print(this.printOptions);
90
- }
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 });
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintDirective, decorators: [{
95
- type: Directive,
96
- args: [{
97
- selector: "button[ngxPrint]",
98
- standalone: true
99
- }]
100
- }], propDecorators: { previewOnly: [{
101
- type: Input
102
- }], printSectionId: [{
103
- type: Input
104
- }], printTitle: [{
105
- type: Input
106
- }], useExistingCss: [{
107
- type: Input
108
- }], printDelay: [{
109
- type: Input
110
- }], closeWindow: [{
111
- type: Input
112
- }], bodyClass: [{
113
- type: Input
114
- }], openNewTab: [{
115
- type: Input
116
- }], printStyle: [{
117
- type: Input
118
- }], styleSheetFile: [{
119
- type: Input
120
- }], print: [{
121
- type: HostListener,
122
- args: ['click']
123
- }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQVM7SUFDdEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUM7Ozs7T0FJRztJQUNILElBQWEsV0FBVyxDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLGNBQWMsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYSxVQUFVLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWEsY0FBYyxDQUFDLEtBQWM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFdBQVcsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxVQUFVLENBQUMsTUFBb0Q7UUFDakUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsSUFDSSxjQUFjLENBQUMsT0FBZTtRQUNoQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0FuR1UsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFjLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sY0FBYztzQkFBMUIsS0FBSztnQkFTTyxVQUFVO3NCQUF0QixLQUFLO2dCQVNPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxXQUFXO3NCQUF2QixLQUFLO2dCQVFPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBUU8sVUFBVTtzQkFBdEIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsY0FBYztzQkFEakIsS0FBSztnQkFXQyxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcmludEJhc2UgfSBmcm9tICcuL25neC1wcmludC5iYXNlJztcclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi9wcmludC1vcHRpb25zJztcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiYnV0dG9uW25neFByaW50XVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFByaW50RGlyZWN0aXZlIGV4dGVuZHMgUHJpbnRCYXNlIHtcclxuICBwcml2YXRlIHByaW50T3B0aW9ucyA9IG5ldyBQcmludE9wdGlvbnMoKTtcclxuICAvKipcclxuICAgKiBQcmV2ZW50cyB0aGUgcHJpbnQgZGlhbG9nIGZyb20gb3BlbmluZyBvbiB0aGUgd2luZG93XHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgcHJldmlld09ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJldmlld09ubHk6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHByaW50U2VjdGlvbklkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgcHJpbnRTZWN0aW9uSWQ6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIE5neFByaW50RGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHByaW50VGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCBwcmludFRpdGxlOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB1c2VFeGlzdGluZ0Nzcyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCB1c2VFeGlzdGluZ0NzczogdmFsdWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIHRvIGZvcmNlIHRoZSBwcmludCBkaWFsb2cgdG8gd2FpdCBiZWZvcmUgb3BlbmVkLiBEZWZhdWx0OiAwXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgcHJpbnREZWxheSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIHByaW50RGVsYXk6IHZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSB3aW5kb3cgYWZ0ZXIgcHJpbnQoKSByZXR1cm5zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGNsb3NlV2luZG93KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByaW50T3B0aW9ucyA9IHsgLi4udGhpcy5wcmludE9wdGlvbnMsIGNsb3NlV2luZG93OiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xhc3MgYXR0cmlidXRlIHRvIGFwcGx5IHRvIHRoZSBib2R5IGVsZW1lbnQuXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgYm9keUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJpbnRPcHRpb25zID0geyAuLi50aGlzLnByaW50T3B0aW9ucywgYm9keUNsYXNzOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBvcGVuIGEgbmV3IHdpbmRvdyBvciBkZWZhdWx0IHRvIG5ldyB3aW5kb3cuXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgb3Blbk5ld1RhYih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcmludE9wdGlvbnMgPSB7IC4uLnRoaXMucHJpbnRPcHRpb25zLCBvcGVuTmV3VGFiOiB2YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHByaW50U3R5bGUodmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfSkge1xyXG4gICAgc3VwZXIuc2V0UHJpbnRTdHlsZSh2YWx1ZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBtZW1iZXJvZiBOZ3hQcmludERpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSBjc3NMaXN0XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc3R5bGVTaGVldEZpbGUoY3NzTGlzdDogc3RyaW5nKSB7XHJcbiAgICBzdXBlci5zZXRTdHlsZVNoZWV0RmlsZShjc3NMaXN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnREaXJlY3RpdmVcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgcHVibGljIHByaW50KCk6IHZvaWQge1xyXG4gICAgc3VwZXIucHJpbnQodGhpcy5wcmludE9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { NgxPrintDirective } from './ngx-print.directive';
3
- import * as i0 from "@angular/core";
4
- export class NgxPrintModule {
5
- 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
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [NgxPrintDirective],
13
- exports: [NgxPrintDirective]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbmd4LXByaW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sY0FBYzt3R0FBZCxjQUFjO3lHQUFkLGNBQWMsWUFIZixpQkFBaUIsYUFDakIsaUJBQWlCO3lHQUVoQixjQUFjOzs0RkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hQcmludERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXByaW50LmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtOZ3hQcmludERpcmVjdGl2ZV0sXHJcbiAgZXhwb3J0czogW05neFByaW50RGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4UHJpbnRNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,53 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { PrintBase } from "./ngx-print.base";
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Service for handling printing functionality in Angular applications.
6
- * Extends the base printing class (PrintBase).
7
- *
8
- * @export
9
- * @class NgxPrintService
10
- * @extends {PrintBase}
11
- */
12
- export class NgxPrintService extends PrintBase {
13
- /**
14
- * Initiates the printing process using the provided print options.
15
- *
16
- * @param {PrintOptions} printOptions - Options for configuring the printing process.
17
- * @memberof NgxPrintService
18
- * @returns {void}
19
- */
20
- print(printOptions) {
21
- // Call the print method in the parent class
22
- super.print(printOptions);
23
- }
24
- /**
25
- * Sets the print style for the printing process.
26
- *
27
- * @param {{ [key: string]: { [key: string]: string } }} values - A dictionary representing the print styles.
28
- * @memberof NgxPrintService
29
- * @setter
30
- */
31
- set printStyle(values) {
32
- super.setPrintStyle(values);
33
- }
34
- /**
35
- * Sets the stylesheet file for the printing process.
36
- *
37
- * @param {string} cssList - A string representing the path to the stylesheet file.
38
- * @memberof NgxPrintService
39
- * @setter
40
- */
41
- set styleSheetFile(cssList) {
42
- super.setStyleSheetFile(cssList);
43
- }
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
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPrintService, decorators: [{
48
- type: Injectable,
49
- args: [{
50
- providedIn: "root",
51
- }]
52
- }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25neC1wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUc3Qzs7Ozs7OztHQU9HO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQUU1Qzs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsWUFBMEI7UUFDckMsNENBQTRDO1FBQzVDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksVUFBVSxDQUFDLE1BQW9EO1FBQ2pFLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdEOzs7Ozs7T0FNRztJQUNILElBQUksY0FBYyxDQUFDLE9BQWU7UUFDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBbkNVLGVBQWU7NEdBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFByaW50QmFzZSB9IGZyb20gXCIuL25neC1wcmludC5iYXNlXCI7XHJcbmltcG9ydCB7IFByaW50T3B0aW9ucyB9IGZyb20gXCIuL3ByaW50LW9wdGlvbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyBwcmludGluZyBmdW5jdGlvbmFsaXR5IGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxyXG4gKiBFeHRlbmRzIHRoZSBiYXNlIHByaW50aW5nIGNsYXNzIChQcmludEJhc2UpLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBOZ3hQcmludFNlcnZpY2VcclxuICogQGV4dGVuZHMge1ByaW50QmFzZX1cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFByaW50U2VydmljZSBleHRlbmRzIFByaW50QmFzZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgcHJpbnRpbmcgcHJvY2VzcyB1c2luZyB0aGUgcHJvdmlkZWQgcHJpbnQgb3B0aW9ucy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJpbnRPcHRpb25zfSBwcmludE9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICovXHJcbiAgcHVibGljIHByaW50KHByaW50T3B0aW9uczogUHJpbnRPcHRpb25zKTogdm9pZCB7XHJcbiAgICAvLyBDYWxsIHRoZSBwcmludCBtZXRob2QgaW4gdGhlIHBhcmVudCBjbGFzc1xyXG4gICAgc3VwZXIucHJpbnQocHJpbnRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHByaW50IHN0eWxlIGZvciB0aGUgcHJpbnRpbmcgcHJvY2Vzcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7eyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH19IHZhbHVlcyAtIEEgZGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIHByaW50IHN0eWxlcy5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBwcmludFN0eWxlKHZhbHVlczogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0pIHtcclxuICAgIHN1cGVyLnNldFByaW50U3R5bGUodmFsdWVzKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzdHlsZXNoZWV0IGZpbGUgZm9yIHRoZSBwcmludGluZyBwcm9jZXNzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNzc0xpc3QgLSBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIHN0eWxlc2hlZXQgZmlsZS5cclxuICAgKiBAbWVtYmVyb2YgTmd4UHJpbnRTZXJ2aWNlXHJcbiAgICogQHNldHRlclxyXG4gICAqL1xyXG4gIHNldCBzdHlsZVNoZWV0RmlsZShjc3NMaXN0OiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLnNldFN0eWxlU2hlZXRGaWxlKGNzc0xpc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,16 +0,0 @@
1
- export class PrintOptions {
2
- printSectionId = '';
3
- printTitle = '';
4
- useExistingCss = false;
5
- bodyClass = '';
6
- openNewTab = false;
7
- previewOnly = false;
8
- closeWindow = true;
9
- printDelay = 0;
10
- constructor(options) {
11
- if (options) {
12
- Object.assign(this, options);
13
- }
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJpbnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUN2QixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFFdkIsWUFBWSxPQUErQjtRQUN6QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcmludE9wdGlvbnMge1xyXG4gIHByaW50U2VjdGlvbklkOiBzdHJpbmcgPSAnJztcclxuICBwcmludFRpdGxlOiBzdHJpbmcgPSAnJztcclxuICB1c2VFeGlzdGluZ0NzczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGJvZHlDbGFzczogc3RyaW5nID0gJyc7XHJcbiAgb3Blbk5ld1RhYjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByZXZpZXdPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2xvc2VXaW5kb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaW50RGVsYXk6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBQYXJ0aWFsPFByaW50T3B0aW9ucz4pIHtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC1wcmludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of ngx-print
3
- */
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==