valtech-components 4.0.171 → 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=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.171';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNzEnO1xuIl19
5
+ export const VERSION = '4.0.172';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNzInO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.171';
59
+ const VERSION = '4.0.172';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -35288,20 +35288,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
35288
35288
  type: Output
35289
35289
  }] } });
35290
35290
 
35291
- addIcons({ printOutline, downloadOutline });
35291
+ addIcons({ printOutline });
35292
35292
  /**
35293
35293
  * `val-html-viewer-modal` — Modal para visualizar y descargar/imprimir HTML.
35294
35294
  * Se abre como sheet a pantalla completa en móviles.
35295
35295
  *
35296
35296
  * Renderiza HTML embebido en un iframe (los estilos deben estar inline o
35297
- * embebidos en el HTML). Botones de Imprimir (print via iframe) y Descargar
35298
- * (blob export). Toolbar con botón Cerrar.
35297
+ * embebidos en el HTML). Botón Imprimir (print via iframe) + Cerrar. El diálogo
35298
+ * de impresión del SO ya ofrece "Guardar como PDF" y compartir nativo, así que
35299
+ * NO exponemos un "descargar HTML" (un .html suelto no le sirve al usuario).
35299
35300
  *
35300
- * Uso: ModalService.openSheet({ component: HtmlViewerModalComponent, componentProps: { html: "...", title: "..." } })
35301
+ * Uso: ModalService.open({ component: HtmlViewerModalComponent, componentProps: { html: "...", title: "..." }, size: "full" })
35301
35302
  *
35302
35303
  * Props:
35303
35304
  * - html: string — HTML completo con estilos embebidos (requerido)
35304
- * - title: string — Nombre del archivo a descargar (default: "documento")
35305
+ * - title: string — Título del documento (default: "documento")
35305
35306
  *
35306
35307
  * El componente recibe `_modalRef` inyectado por ModalService para cerrar.
35307
35308
  */
@@ -35323,15 +35324,6 @@ class HtmlViewerModalComponent {
35323
35324
  iframe.contentWindow.print();
35324
35325
  }
35325
35326
  }
35326
- downloadContent() {
35327
- const blob = new Blob([this.html], { type: 'text/html;charset=utf-8' });
35328
- const url = window.URL.createObjectURL(blob);
35329
- const link = document.createElement('a');
35330
- link.href = url;
35331
- link.download = `${this.title}-${new Date().getTime()}.html`;
35332
- link.click();
35333
- window.URL.revokeObjectURL(url);
35334
- }
35335
35327
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HtmlViewerModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35336
35328
  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: `
35337
35329
  <ion-header>
@@ -35345,9 +35337,6 @@ class HtmlViewerModalComponent {
35345
35337
  <ion-button fill="clear" color="primary" (click)="printContent()" title="Imprimir">
35346
35338
  <ion-icon name="print-outline" slot="icon-only" />
35347
35339
  </ion-button>
35348
- <ion-button fill="clear" color="primary" (click)="downloadContent()" title="Descargar">
35349
- <ion-icon name="download-outline" slot="icon-only" />
35350
- </ion-button>
35351
35340
  </ion-buttons>
35352
35341
  </ion-toolbar>
35353
35342
  </ion-header>
@@ -35371,9 +35360,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
35371
35360
  <ion-button fill="clear" color="primary" (click)="printContent()" title="Imprimir">
35372
35361
  <ion-icon name="print-outline" slot="icon-only" />
35373
35362
  </ion-button>
35374
- <ion-button fill="clear" color="primary" (click)="downloadContent()" title="Descargar">
35375
- <ion-icon name="download-outline" slot="icon-only" />
35376
- </ion-button>
35377
35363
  </ion-buttons>
35378
35364
  </ion-toolbar>
35379
35365
  </ion-header>