valtech-components 4.0.170 → 4.0.172

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.
@@ -3,22 +3,23 @@ import { CommonModule } from '@angular/common';
3
3
  import { DomSanitizer } from '@angular/platform-browser';
4
4
  import { IonButton, IonHeader, IonToolbar, IonButtons, IonContent, IonIcon } from '@ionic/angular/standalone';
5
5
  import { addIcons } from 'ionicons';
6
- import { printOutline, downloadOutline } from 'ionicons/icons';
6
+ import { printOutline } from 'ionicons/icons';
7
7
  import * as i0 from "@angular/core";
8
- addIcons({ printOutline, downloadOutline });
8
+ addIcons({ printOutline });
9
9
  /**
10
10
  * `val-html-viewer-modal` — Modal para visualizar y descargar/imprimir HTML.
11
11
  * Se abre como sheet a pantalla completa en móviles.
12
12
  *
13
13
  * Renderiza HTML embebido en un iframe (los estilos deben estar inline o
14
- * embebidos en el HTML). Botones de Imprimir (print via iframe) y Descargar
15
- * (blob export). Toolbar con botón Cerrar.
14
+ * embebidos en el HTML). Botón Imprimir (print via iframe) + Cerrar. El diálogo
15
+ * de impresión del SO ya ofrece "Guardar como PDF" y compartir nativo, así que
16
+ * NO exponemos un "descargar HTML" (un .html suelto no le sirve al usuario).
16
17
  *
17
- * Uso: ModalService.openSheet({ component: HtmlViewerModalComponent, componentProps: { html: "...", title: "..." } })
18
+ * Uso: ModalService.open({ component: HtmlViewerModalComponent, componentProps: { html: "...", title: "..." }, size: "full" })
18
19
  *
19
20
  * Props:
20
21
  * - html: string — HTML completo con estilos embebidos (requerido)
21
- * - title: string — Nombre del archivo a descargar (default: "documento")
22
+ * - title: string — Título del documento (default: "documento")
22
23
  *
23
24
  * El componente recibe `_modalRef` inyectado por ModalService para cerrar.
24
25
  */
@@ -40,15 +41,6 @@ export class HtmlViewerModalComponent {
40
41
  iframe.contentWindow.print();
41
42
  }
42
43
  }
43
- downloadContent() {
44
- const blob = new Blob([this.html], { type: 'text/html;charset=utf-8' });
45
- const url = window.URL.createObjectURL(blob);
46
- const link = document.createElement('a');
47
- link.href = url;
48
- link.download = `${this.title}-${new Date().getTime()}.html`;
49
- link.click();
50
- window.URL.revokeObjectURL(url);
51
- }
52
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HtmlViewerModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
45
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HtmlViewerModalComponent, isStandalone: true, selector: "val-html-viewer-modal", inputs: { html: "html", title: "title" }, ngImport: i0, template: `
54
46
  <ion-header>
@@ -62,9 +54,6 @@ export class HtmlViewerModalComponent {
62
54
  <ion-button fill="clear" color="primary" (click)="printContent()" title="Imprimir">
63
55
  <ion-icon name="print-outline" slot="icon-only" />
64
56
  </ion-button>
65
- <ion-button fill="clear" color="primary" (click)="downloadContent()" title="Descargar">
66
- <ion-icon name="download-outline" slot="icon-only" />
67
- </ion-button>
68
57
  </ion-buttons>
69
58
  </ion-toolbar>
70
59
  </ion-header>
@@ -88,9 +77,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
88
77
  <ion-button fill="clear" color="primary" (click)="printContent()" title="Imprimir">
89
78
  <ion-icon name="print-outline" slot="icon-only" />
90
79
  </ion-button>
91
- <ion-button fill="clear" color="primary" (click)="downloadContent()" title="Descargar">
92
- <ion-icon name="download-outline" slot="icon-only" />
93
- </ion-button>
94
80
  </ion-buttons>
95
81
  </ion-toolbar>
96
82
  </ion-header>
@@ -104,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
104
90
  }], title: [{
105
91
  type: Input
106
92
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC12aWV3ZXItbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9odG1sLXZpZXdlci1tb2RhbC9odG1sLXZpZXdlci1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUvRCxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUE4Q0gsTUFBTSxPQUFPLHdCQUF3QjtJQTdDckM7UUE4Q1csU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQVcsV0FBVyxDQUFDO1FBSTdCLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0EwQjFDO0lBeEJDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQXNCLENBQUM7UUFDckUsSUFBSSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0EvQlUsd0JBQXdCO21HQUF4Qix3QkFBd0IsMkhBekN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCwwTEF2QlMsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLFNBQVMsb0dBQUUsVUFBVSxtRkFBRSxVQUFVLDhFQUFFLFVBQVUsd0tBQUUsT0FBTzs7NEZBMEM5RSx3QkFBd0I7a0JBN0NwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFDaEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7OEJBb0JRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkhlYWRlciwgSW9uVG9vbGJhciwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBwcmludE91dGxpbmUsIGRvd25sb2FkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyBwcmludE91dGxpbmUsIGRvd25sb2FkT3V0bGluZSB9KTtcblxuLyoqXG4gKiBgdmFsLWh0bWwtdmlld2VyLW1vZGFsYCDigJQgTW9kYWwgcGFyYSB2aXN1YWxpemFyIHkgZGVzY2FyZ2FyL2ltcHJpbWlyIEhUTUwuXG4gKiBTZSBhYnJlIGNvbW8gc2hlZXQgYSBwYW50YWxsYSBjb21wbGV0YSBlbiBtw7N2aWxlcy5cbiAqXG4gKiBSZW5kZXJpemEgSFRNTCBlbWJlYmlkbyBlbiB1biBpZnJhbWUgKGxvcyBlc3RpbG9zIGRlYmVuIGVzdGFyIGlubGluZSBvXG4gKiBlbWJlYmlkb3MgZW4gZWwgSFRNTCkuIEJvdG9uZXMgZGUgSW1wcmltaXIgKHByaW50IHZpYSBpZnJhbWUpIHkgRGVzY2FyZ2FyXG4gKiAoYmxvYiBleHBvcnQpLiBUb29sYmFyIGNvbiBib3TDs24gQ2VycmFyLlxuICpcbiAqIFVzbzogTW9kYWxTZXJ2aWNlLm9wZW5TaGVldCh7IGNvbXBvbmVudDogSHRtbFZpZXdlck1vZGFsQ29tcG9uZW50LCBjb21wb25lbnRQcm9wczogeyBodG1sOiBcIi4uLlwiLCB0aXRsZTogXCIuLi5cIiB9IH0pXG4gKlxuICogUHJvcHM6XG4gKiAtIGh0bWw6IHN0cmluZyDigJQgSFRNTCBjb21wbGV0byBjb24gZXN0aWxvcyBlbWJlYmlkb3MgKHJlcXVlcmlkbylcbiAqIC0gdGl0bGU6IHN0cmluZyDigJQgTm9tYnJlIGRlbCBhcmNoaXZvIGEgZGVzY2FyZ2FyIChkZWZhdWx0OiBcImRvY3VtZW50b1wiKVxuICpcbiAqIEVsIGNvbXBvbmVudGUgcmVjaWJlIGBfbW9kYWxSZWZgIGlueWVjdGFkbyBwb3IgTW9kYWxTZXJ2aWNlIHBhcmEgY2VycmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaHRtbC12aWV3ZXItbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkhlYWRlciwgSW9uVG9vbGJhciwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8c3Ryb25nPkNlcnJhcjwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicHJpbnRDb250ZW50KClcIiB0aXRsZT1cIkltcHJpbWlyXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInByaW50LW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvd25sb2FkQ29udGVudCgpXCIgdGl0bGU9XCJEZXNjYXJnYXJcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG93bmxvYWQtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50PlxuICAgICAgPGlmcmFtZSBbc3JjZG9jXT1cInNhZmVIdG1sXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7XCIgdGl0bGU9XCJWaXNvciBkZSBkb2N1bWVudG9cIj48L2lmcmFtZT5cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgLS1wYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cblxuICAgICAgaWZyYW1lIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSHRtbFZpZXdlck1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaHRtbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnZG9jdW1lbnRvJztcblxuICBfbW9kYWxSZWY/OiB7IGRpc21pc3M6ICgpID0+IFByb21pc2U8Ym9vbGVhbj4gfTtcblxuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIGdldCBzYWZlSHRtbCgpOiBTYWZlSHRtbCB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuaHRtbCk7XG4gIH1cblxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKCk7XG4gIH1cblxuICBwcmludENvbnRlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaWZyYW1lJykgYXMgSFRNTElGcmFtZUVsZW1lbnQ7XG4gICAgaWYgKGlmcmFtZT8uY29udGVudFdpbmRvdykge1xuICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucHJpbnQoKTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZENvbnRlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0aGlzLmh0bWxdLCB7IHR5cGU6ICd0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCcgfSk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgbGluay5kb3dubG9hZCA9IGAke3RoaXMudGl0bGV9LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9Lmh0bWxgO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC12aWV3ZXItbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9odG1sLXZpZXdlci1tb2RhbC9odG1sLXZpZXdlci1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTlDLFFBQVEsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFFM0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUEyQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQTFDckM7UUEyQ1csU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQVcsV0FBVyxDQUFDO1FBSTdCLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FnQjFDO0lBZEMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztRQUNyRSxJQUFJLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUMxQixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDOytHQXJCVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwySEF0Q3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDBMQXBCUyxZQUFZLCtCQUFFLFNBQVMsb1BBQUUsU0FBUyxvR0FBRSxVQUFVLG1GQUFFLFVBQVUsOEVBQUUsVUFBVSx3S0FBRSxPQUFPOzs0RkF1QzlFLHdCQUF3QjtrQkExQ3BDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUNoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDs4QkFvQlEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IHByaW50T3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyBwcmludE91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1odG1sLXZpZXdlci1tb2RhbGAg4oCUIE1vZGFsIHBhcmEgdmlzdWFsaXphciB5IGRlc2Nhcmdhci9pbXByaW1pciBIVE1MLlxuICogU2UgYWJyZSBjb21vIHNoZWV0IGEgcGFudGFsbGEgY29tcGxldGEgZW4gbcOzdmlsZXMuXG4gKlxuICogUmVuZGVyaXphIEhUTUwgZW1iZWJpZG8gZW4gdW4gaWZyYW1lIChsb3MgZXN0aWxvcyBkZWJlbiBlc3RhciBpbmxpbmUgb1xuICogZW1iZWJpZG9zIGVuIGVsIEhUTUwpLiBCb3TDs24gSW1wcmltaXIgKHByaW50IHZpYSBpZnJhbWUpICsgQ2VycmFyLiBFbCBkacOhbG9nb1xuICogZGUgaW1wcmVzacOzbiBkZWwgU08geWEgb2ZyZWNlIFwiR3VhcmRhciBjb21vIFBERlwiIHkgY29tcGFydGlyIG5hdGl2bywgYXPDrSBxdWVcbiAqIE5PIGV4cG9uZW1vcyB1biBcImRlc2NhcmdhciBIVE1MXCIgKHVuIC5odG1sIHN1ZWx0byBubyBsZSBzaXJ2ZSBhbCB1c3VhcmlvKS5cbiAqXG4gKiBVc286IE1vZGFsU2VydmljZS5vcGVuKHsgY29tcG9uZW50OiBIdG1sVmlld2VyTW9kYWxDb21wb25lbnQsIGNvbXBvbmVudFByb3BzOiB7IGh0bWw6IFwiLi4uXCIsIHRpdGxlOiBcIi4uLlwiIH0sIHNpemU6IFwiZnVsbFwiIH0pXG4gKlxuICogUHJvcHM6XG4gKiAtIGh0bWw6IHN0cmluZyDigJQgSFRNTCBjb21wbGV0byBjb24gZXN0aWxvcyBlbWJlYmlkb3MgKHJlcXVlcmlkbylcbiAqIC0gdGl0bGU6IHN0cmluZyDigJQgVMOtdHVsbyBkZWwgZG9jdW1lbnRvIChkZWZhdWx0OiBcImRvY3VtZW50b1wiKVxuICpcbiAqIEVsIGNvbXBvbmVudGUgcmVjaWJlIGBfbW9kYWxSZWZgIGlueWVjdGFkbyBwb3IgTW9kYWxTZXJ2aWNlIHBhcmEgY2VycmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaHRtbC12aWV3ZXItbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkhlYWRlciwgSW9uVG9vbGJhciwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8c3Ryb25nPkNlcnJhcjwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicHJpbnRDb250ZW50KClcIiB0aXRsZT1cIkltcHJpbWlyXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInByaW50LW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cblxuICAgIDxpb24tY29udGVudD5cbiAgICAgIDxpZnJhbWUgW3NyY2RvY109XCJzYWZlSHRtbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiBub25lO1wiIHRpdGxlPVwiVmlzb3IgZGUgZG9jdW1lbnRvXCI+PC9pZnJhbWU+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICBpb24tY29udGVudCB7XG4gICAgICAgIC0tcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIC0tcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIGlmcmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEh0bWxWaWV3ZXJNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGh0bWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ2RvY3VtZW50byc7XG5cbiAgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+IH07XG5cbiAgcHJpdmF0ZSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBnZXQgc2FmZUh0bWwoKTogU2FmZUh0bWwge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmh0bWwpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcygpO1xuICB9XG5cbiAgcHJpbnRDb250ZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZScpIGFzIEhUTUxJRnJhbWVFbGVtZW50O1xuICAgIGlmIChpZnJhbWU/LmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LnByaW50KCk7XG4gICAgfVxuICB9XG59XG4iXX0=