brainloper-ui 14.1.5 → 14.1.7

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.
Files changed (102) hide show
  1. package/esm2020/brainloper-ui.mjs +4 -4
  2. package/esm2020/public_api.mjs +56 -56
  3. package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +310 -310
  4. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +29 -29
  5. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -23
  6. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -83
  7. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +40 -40
  8. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +176 -176
  9. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +728 -728
  10. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +118 -118
  11. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +186 -186
  12. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +1 -1
  13. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +1 -1
  14. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +1 -1
  15. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +222 -222
  16. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +115 -82
  17. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +145 -0
  18. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +108 -108
  19. package/esm2020/src/app/modules/directives/carousel-item.directive.mjs +18 -18
  20. package/esm2020/src/app/modules/interfaces/buttons/button-icon.mjs +2 -2
  21. package/esm2020/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +2 -2
  22. package/esm2020/src/app/modules/interfaces/combos/combos-configuration.mjs +2 -2
  23. package/esm2020/src/app/modules/interfaces/data-table/params.mjs +2 -2
  24. package/esm2020/src/app/modules/interfaces/data-table/rules.mjs +2 -2
  25. package/esm2020/src/app/modules/interfaces/data-table/table-columns.mjs +2 -2
  26. package/esm2020/src/app/modules/interfaces/data-table/table-configuration.mjs +2 -2
  27. package/esm2020/src/app/modules/interfaces/enum/enumActions.mjs +8 -8
  28. package/esm2020/src/app/modules/interfaces/enum/enumRules.mjs +8 -8
  29. package/esm2020/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +2 -2
  30. package/esm2020/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +2 -2
  31. package/esm2020/src/app/modules/interfaces/filters/header-filters.mjs +2 -2
  32. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +8 -8
  33. package/esm2020/src/app/modules/interfaces/report/template-pdf-base.mjs +2 -2
  34. package/esm2020/src/app/modules/interfaces/report/template-pdf-ot.mjs +2 -2
  35. package/esm2020/src/app/modules/interfaces/report/template-pfd-fo.mjs +2 -2
  36. package/esm2020/src/app/modules/services/crypto.service.mjs +37 -37
  37. package/esm2020/src/app/modules/services/export-data.service.mjs +166 -166
  38. package/esm2020/src/app/modules/services/file-forms.service.mjs +24 -24
  39. package/esm2020/src/app/modules/services/fuel-order-pdf.service.mjs +528 -0
  40. package/esm2020/src/app/modules/services/functions.service.mjs +54 -54
  41. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +109 -58
  42. package/esm2020/src/app/modules/services/http.service.mjs +97 -97
  43. package/esm2020/src/app/modules/services/loading/loading.component.mjs +28 -28
  44. package/esm2020/src/app/modules/services/local-storage.service.mjs +115 -115
  45. package/esm2020/src/app/modules/services/message.service.mjs +200 -200
  46. package/esm2020/src/app/modules/services/screen-size-util.mjs +6 -6
  47. package/esm2020/src/app/modules/services/session.service.mjs +42 -42
  48. package/esm2020/src/app/modules/services/work-order-pdf.service.mjs +384 -0
  49. package/fesm2015/brainloper-ui.mjs +3859 -2820
  50. package/fesm2015/brainloper-ui.mjs.map +1 -1
  51. package/fesm2020/brainloper-ui.mjs +3831 -2782
  52. package/fesm2020/brainloper-ui.mjs.map +1 -1
  53. package/index.d.ts +5 -5
  54. package/package.json +3 -2
  55. package/public_api.d.ts +55 -55
  56. package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +62 -62
  57. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +13 -13
  58. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +10 -10
  59. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +24 -24
  60. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +16 -16
  61. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +46 -46
  62. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +125 -125
  63. package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +21 -21
  64. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +42 -42
  65. package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +2 -2
  66. package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +2 -2
  67. package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +2 -2
  68. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +30 -30
  69. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +41 -37
  70. package/src/app/modules/brainloper-ui/components/report/{generate-pdf/generate-pdf.component.d.ts → template-ot/template-ot.component.d.ts} +40 -36
  71. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +26 -26
  72. package/src/app/modules/directives/carousel-item.directive.d.ts +9 -9
  73. package/src/app/modules/interfaces/buttons/button-icon.d.ts +9 -9
  74. package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +6 -6
  75. package/src/app/modules/interfaces/combos/combos-configuration.d.ts +13 -13
  76. package/src/app/modules/interfaces/data-table/params.d.ts +7 -7
  77. package/src/app/modules/interfaces/data-table/rules.d.ts +8 -8
  78. package/src/app/modules/interfaces/data-table/table-columns.d.ts +25 -25
  79. package/src/app/modules/interfaces/data-table/table-configuration.d.ts +26 -26
  80. package/src/app/modules/interfaces/enum/enumActions.d.ts +6 -6
  81. package/src/app/modules/interfaces/enum/enumRules.d.ts +6 -6
  82. package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +4 -4
  83. package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +13 -13
  84. package/src/app/modules/interfaces/filters/header-filters.d.ts +13 -13
  85. package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +10 -10
  86. package/src/app/modules/interfaces/report/template-pdf-base.d.ts +17 -17
  87. package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +6 -6
  88. package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +7 -7
  89. package/src/app/modules/services/crypto.service.d.ts +10 -10
  90. package/src/app/modules/services/export-data.service.d.ts +18 -18
  91. package/src/app/modules/services/file-forms.service.d.ts +7 -7
  92. package/src/app/modules/services/fuel-order-pdf.service.d.ts +59 -0
  93. package/src/app/modules/services/functions.service.d.ts +13 -13
  94. package/src/app/modules/services/generate-pdf.service.d.ts +21 -12
  95. package/src/app/modules/services/http.service.d.ts +22 -22
  96. package/src/app/modules/services/loading/loading.component.d.ts +15 -15
  97. package/src/app/modules/services/local-storage.service.d.ts +49 -49
  98. package/src/app/modules/services/message.service.d.ts +23 -23
  99. package/src/app/modules/services/screen-size-util.d.ts +3 -3
  100. package/src/app/modules/services/session.service.d.ts +14 -14
  101. package/src/app/modules/services/work-order-pdf.service.d.ts +60 -0
  102. package/esm2020/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +0 -81
@@ -1,82 +1,115 @@
1
- import { Component, Inject } from '@angular/core';
2
- import jsPDF from 'jspdf';
3
- import html2canvas from 'html2canvas';
4
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "../../../../services/message.service";
8
- import * as i3 from "@angular/material/button";
9
- export class TemplateFuelComponent {
10
- constructor(dialogRef, dataModal, dialog, message) {
11
- this.dialogRef = dialogRef;
12
- this.dataModal = dataModal;
13
- this.dialog = dialog;
14
- this.message = message;
15
- this.data = {
16
- name: '',
17
- nit: '',
18
- address: '',
19
- telephone: '',
20
- mail: '',
21
- image: '',
22
- code: '',
23
- date: '',
24
- responsible: '',
25
- id_place: '',
26
- approved_by: '',
27
- detalle: '',
28
- description: '',
29
- consecutive: '',
30
- namePlace: '',
31
- addressPlace: '',
32
- area: '',
33
- odometer: '',
34
- invoiceReference: ''
35
- };
36
- }
37
- ngOnInit() {
38
- this.data = this.dataModal.data;
39
- }
40
- ngAfterViewInit() {
41
- if (this.dataModal.autoGenerate) {
42
- this.downloadPDF();
43
- }
44
- }
45
- downloadPDF() {
46
- this.message.openLoading("Cargando", "Generando PDF");
47
- const DATA = document.getElementById('templateFO');
48
- const doc = new jsPDF('p', 'pt', 'a4');
49
- const options = {
50
- background: 'white',
51
- scale: 3
52
- };
53
- html2canvas(DATA, options)
54
- .then((canvas) => {
55
- const img = canvas.toDataURL('image/PNG');
56
- //add img canvas to pdf
57
- const bufferX = 15;
58
- const bufferY = 15;
59
- const imgProps = doc.getImageProperties(img);
60
- const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
61
- const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
62
- doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
63
- return doc;
64
- })
65
- .then((docResult) => {
66
- //docResult.save(`${new Date().toISOString()}_reporte.pdf`);
67
- docResult.output('dataurlnewwindow', { filename: 'fuekreporte.pdf' });
68
- this.dialog.closeAll();
69
- this.message.closeLoading();
70
- });
71
- }
72
- }
73
- TemplateFuelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateFuelComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatDialog }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
74
- TemplateFuelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TemplateFuelComponent, selector: "app-template-fuel", ngImport: i0, template: "<div id=\"templateFO\" #templateFO>\r\n <div class=\"d-flex flex-column w-100 white-background\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\r\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\r\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\r\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\r\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\r\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\r\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:20%\">\r\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h2>ORDEN DE COMBUSTIBLE</h2>\r\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\r\n <h2 class=\"wrap-text\">{{data.area}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.code}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Fecha:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.date}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Operario:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\r\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h3>Datos del proveedor</h3>\r\n </div>\r\n\r\n <div class=\"borde flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:15%\">\r\n <h2 class=\"fw-bold\">Lugar:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\r\n <h2 class=\"wrap-text\">{{data.namePlace}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:15%\">\r\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:35%\">\r\n <h2 class=\"wrap-text\">{{data.addressPlace}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h3>Detalles del servicio</h3>\r\n </div>\r\n\r\n <div class=\"borde w-100 description-section\">\r\n <h3 class=\"wrap-text text-start\">{{data.detalle}}</h3>\r\n <h3 class=\"wrap-text text-start\">Descripci\u00F3n: {{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:35%\">\r\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:65%\">\r\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\r\n </div>\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\r\n <h2>Favor adjuntar la orden de venta o factura</h2>\r\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div class=\"download-container\">\r\n <button (click)=\"downloadPDF()\" color='primary' mat-raised-button>Generar PDF</button>\r\n</div>\r\n", styles: [".img{background-size:100%;background-repeat:no-repeat;background-position:center;background-size:contain;height:22mm;margin:10px;padding:15px}h2{font-size:1rem;line-height:1.2;margin:0;padding:0;text-align:center}h3{line-height:1.2;margin:0;padding:0;text-align:center}.text-header{line-height:1.5;font-weight:700}.text-uppercase{text-transform:uppercase}.wrap-text{white-space:pre-wrap}.text-content{padding:5px;word-wrap:break-word;overflow-wrap:break-word}.borde{border:1px solid blue}.border-r{border-right:1px solid blue;min-height:100%;align-self:stretch}.container-text{display:flex;justify-content:center;align-items:center;min-height:inherit}.container-headers{display:flex;align-items:center;justify-content:space-evenly;width:100%;min-height:8mm;background:rgba(240,244,255,.6117647059);padding:5px;word-wrap:break-word;overflow-wrap:break-word}.container-headers h2,.container-headers h3{font-weight:700}.flexible-row{display:flex;flex-direction:row;align-items:stretch;min-height:11mm}.header-section{min-height:25mm}.footer-section{min-height:14mm;background:rgba(240,244,255,.35);padding:5px;word-wrap:break-word;overflow-wrap:break-word}.description-section{min-height:20mm;padding:10px;word-wrap:break-word;overflow-wrap:break-word}.w-100{width:100%!important}.text-start{text-align:start}.white-background{background-color:#fff}.download-container{display:flex;justify-content:center;margin-top:15px}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateFuelComponent, decorators: [{
76
- type: Component,
77
- args: [{ selector: 'app-template-fuel', template: "<div id=\"templateFO\" #templateFO>\r\n <div class=\"d-flex flex-column w-100 white-background\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\r\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\r\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\r\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\r\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\r\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\r\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:20%\">\r\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h2>ORDEN DE COMBUSTIBLE</h2>\r\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\r\n <h2 class=\"wrap-text\">{{data.area}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.code}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Fecha:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.date}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Operario:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\r\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:12%\">\r\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:16%\">\r\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h3>Datos del proveedor</h3>\r\n </div>\r\n\r\n <div class=\"borde flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:15%\">\r\n <h2 class=\"fw-bold\">Lugar:</h2>\r\n </div>\r\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\r\n <h2 class=\"wrap-text\">{{data.namePlace}}</h2>\r\n </div>\r\n <div class=\"border-r container-text\" style=\"width:15%\">\r\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:35%\">\r\n <h2 class=\"wrap-text\">{{data.addressPlace}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"borde container-headers\">\r\n <h3>Detalles del servicio</h3>\r\n </div>\r\n\r\n <div class=\"borde w-100 description-section\">\r\n <h3 class=\"wrap-text text-start\">{{data.detalle}}</h3>\r\n <h3 class=\"wrap-text text-start\">Descripci\u00F3n: {{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde w-100 flexible-row\">\r\n <div class=\"border-r container-text\" style=\"width:35%\">\r\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div class=\"container-text text-content\" style=\"width:65%\">\r\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\r\n </div>\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\r\n <h2>Favor adjuntar la orden de venta o factura</h2>\r\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div class=\"download-container\">\r\n <button (click)=\"downloadPDF()\" color='primary' mat-raised-button>Generar PDF</button>\r\n</div>\r\n", styles: [".img{background-size:100%;background-repeat:no-repeat;background-position:center;background-size:contain;height:22mm;margin:10px;padding:15px}h2{font-size:1rem;line-height:1.2;margin:0;padding:0;text-align:center}h3{line-height:1.2;margin:0;padding:0;text-align:center}.text-header{line-height:1.5;font-weight:700}.text-uppercase{text-transform:uppercase}.wrap-text{white-space:pre-wrap}.text-content{padding:5px;word-wrap:break-word;overflow-wrap:break-word}.borde{border:1px solid blue}.border-r{border-right:1px solid blue;min-height:100%;align-self:stretch}.container-text{display:flex;justify-content:center;align-items:center;min-height:inherit}.container-headers{display:flex;align-items:center;justify-content:space-evenly;width:100%;min-height:8mm;background:rgba(240,244,255,.6117647059);padding:5px;word-wrap:break-word;overflow-wrap:break-word}.container-headers h2,.container-headers h3{font-weight:700}.flexible-row{display:flex;flex-direction:row;align-items:stretch;min-height:11mm}.header-section{min-height:25mm}.footer-section{min-height:14mm;background:rgba(240,244,255,.35);padding:5px;word-wrap:break-word;overflow-wrap:break-word}.description-section{min-height:20mm;padding:10px;word-wrap:break-word;overflow-wrap:break-word}.w-100{width:100%!important}.text-start{text-align:start}.white-background{background-color:#fff}.download-container{display:flex;justify-content:center;margin-top:15px}\n"] }]
78
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
79
- type: Inject,
80
- args: [MAT_DIALOG_DATA]
81
- }] }, { type: i1.MatDialog }, { type: i2.MessageService }]; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZnVlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFPcEYsTUFBTSxPQUFPLHFCQUFxQjtJQXdCaEMsWUFDUyxTQUE4QyxFQUNyQixTQUFTLEVBQ2pDLE1BQWdCLEVBQ2pCLE9BQXVCO1FBSHZCLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQTFCaEMsU0FBSSxHQUFHO1lBQ0wsSUFBSSxFQUFFLEVBQUU7WUFDUixHQUFHLEVBQUUsRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsRUFBRTtZQUNmLE9BQU8sRUFBQyxFQUFFO1lBQ1YsV0FBVyxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsRUFBRTtZQUNmLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUMsRUFBRTtZQUNYLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQTtJQU9HLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQTtJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRztZQUNkLFVBQVUsRUFBRSxPQUFPO1lBQ25CLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQztRQUNGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFM0MsdUJBQXVCO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxRQUFRLEdBQUksR0FBVyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDL0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEUsR0FBRyxDQUFDLFFBQVEsQ0FDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxDQUNQLENBQUM7WUFDRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25CLDREQUE0RDtZQUMzRCxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEE3RVUscUJBQXFCLDhDQTBCdEIsZUFBZTtzR0ExQmQscUJBQXFCLHlEQ1hsQywyeUtBb0hBOzJGRHpHYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzswQkE4QjFCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQganNQREYgZnJvbSAnanNwZGYnO1xyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQge01hdERpYWxvZywgIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRlbXBsYXRlLWZ1ZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRnVlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGRhdGEgPSB7XHJcbiAgICBuYW1lOiAnJyxcclxuICAgIG5pdDogJycsXHJcbiAgICBhZGRyZXNzOiAnJyxcclxuICAgIHRlbGVwaG9uZTogJycsXHJcbiAgICBtYWlsOiAnJyxcclxuICAgIGltYWdlOiAnJyxcclxuICAgIGNvZGU6ICcnLFxyXG4gICAgZGF0ZTogJycsXHJcbiAgICByZXNwb25zaWJsZTogJycsXHJcbiAgICBpZF9wbGFjZTogJycsXHJcbiAgICBhcHByb3ZlZF9ieTogJycsXHJcbiAgICBkZXRhbGxlOicnLFxyXG4gICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgY29uc2VjdXRpdmU6ICcnLFxyXG4gICAgbmFtZVBsYWNlOiAnJyxcclxuICAgIGFkZHJlc3NQbGFjZTogJycsXHJcbiAgICBhcmVhOiAnJyxcclxuICAgIG9kb21ldGVyOicnLFxyXG4gICAgaW52b2ljZVJlZmVyZW5jZTogJydcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlRnVlbENvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGFNb2RhbCxcclxuICAgIHByaXZhdGUgZGlhbG9nOk1hdERpYWxvZyxcclxuICAgIHB1YmxpYyBtZXNzYWdlOiBNZXNzYWdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhTW9kYWwuZGF0YVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICBpZih0aGlzLmRhdGFNb2RhbC5hdXRvR2VuZXJhdGUpe1xyXG4gICAgICB0aGlzLmRvd25sb2FkUERGKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZFBERigpOiB2b2lkIHtcclxuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERlwiKVxyXG4gICAgY29uc3QgREFUQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZUZPJyk7XHJcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCAnYTQnKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXHJcbiAgICAgIHNjYWxlOiAzXHJcbiAgICB9O1xyXG4gICAgaHRtbDJjYW52YXMoREFUQSwgb3B0aW9ucylcclxuICAgICAgLnRoZW4oKGNhbnZhcykgPT4ge1xyXG4gICAgICAgY29uc3QgaW1nID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvUE5HJyk7XHJcblxyXG4gICAgICAvL2FkZCBpbWcgY2FudmFzIHRvIHBkZlxyXG4gICAgICBjb25zdCBidWZmZXJYID0gMTU7XHJcbiAgICAgIGNvbnN0IGJ1ZmZlclkgPSAxNTtcclxuICAgICAgY29uc3QgaW1nUHJvcHMgPSAoZG9jIGFzIGFueSkuZ2V0SW1hZ2VQcm9wZXJ0aWVzKGltZyk7XHJcbiAgICAgIGNvbnN0IHBkZldpZHRoID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldFdpZHRoKCkgLTIgKiBidWZmZXJYO1xyXG4gICAgICBjb25zdCBwZGZIZWlnaHQgPSAoaW1nUHJvcHMuaGVpZ2h0ICogcGRmV2lkdGgpIC8gaW1nUHJvcHMud2lkdGg7XHJcbiAgICAgIGRvYy5hZGRJbWFnZShcclxuICAgICAgICBpbWcsXHJcbiAgICAgICAgJ1BORycsXHJcbiAgICAgICAgYnVmZmVyWCxcclxuICAgICAgICBidWZmZXJZLFxyXG4gICAgICAgIHBkZldpZHRoLFxyXG4gICAgICAgIHBkZkhlaWdodCxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgJ0ZBU1QnXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBkb2M7XHJcbiAgICB9KVxyXG4gICAgLnRoZW4oKGRvY1Jlc3VsdCkgPT4ge1xyXG4gICAgIC8vZG9jUmVzdWx0LnNhdmUoYCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfV9yZXBvcnRlLnBkZmApO1xyXG4gICAgICBkb2NSZXN1bHQub3V0cHV0KCdkYXRhdXJsbmV3d2luZG93Jywge2ZpbGVuYW1lOiAnZnVla3JlcG9ydGUucGRmJ30pO1xyXG4gICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpXHJcbiAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ0ZW1wbGF0ZUZPXCIgI3RlbXBsYXRlRk8+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwIHdoaXRlLWJhY2tncm91bmRcIj5cclxuXHJcbiAgICAgICAgPCEtLSBFbmNhYmV6YWRvICAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBoZWFkZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjgwJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1oZWFkZXIgdGV4dC11cHBlcmNhc2Ugd3JhcC10ZXh0XCI+e3tkYXRhLm5hbWV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5OSVQ6IHt7ZGF0YS5uaXR9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1ldmVubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj57e2RhdGEuYWRkcmVzc319PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5URUw6IHt7ZGF0YS50ZWxlcGhvbmV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWcgdy0xMDBcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndXJsKCcgKyBkYXRhLmltYWdlICsgJyknXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICA8aDI+T1JERU4gREUgQ09NQlVTVElCTEU8L2gyPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj5OwrA6IHt7ZGF0YS5jb25zZWN1dGl2ZX19PC9oMj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDdWVycG8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGZsZXhpYmxlLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPsOBcmVhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hcmVhfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPkPDs2RpZ286PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjE2JVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLmNvZGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPkZlY2hhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5kYXRlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGZsZXhpYmxlLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPk9wZXJhcmlvOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5yZXNwb25zaWJsZX19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTIlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+T2TDs21ldHJvOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5vZG9tZXRlcn19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPlJlZmVyZW5jaWEgRmFjdHVyYTo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MTYlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuaW52b2ljZVJlZmVyZW5jZX19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICA8aDM+RGF0b3MgZGVsIHByb3ZlZWRvcjwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBmbGV4aWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5MdWdhcjo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MzUlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEubmFtZVBsYWNlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5EaXJlY2Npw7NuOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hZGRyZXNzUGxhY2V9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgY29udGFpbmVyLWhlYWRlcnNcIj5cclxuICAgICAgICAgICAgPGgzPkRldGFsbGVzIGRlbCBzZXJ2aWNpbzwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBkZXNjcmlwdGlvbi1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIndyYXAtdGV4dCB0ZXh0LXN0YXJ0XCI+e3tkYXRhLmRldGFsbGV9fTwvaDM+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIndyYXAtdGV4dCB0ZXh0LXN0YXJ0XCI+RGVzY3JpcGNpw7NuOiB7e2RhdGEuZGVzY3JpcHRpb259fTwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBmbGV4aWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5BVVRPUklaQURBIFBPUjo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6NjUlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuYXBwcm92ZWRfYnl9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIHBpc28gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBmb290ZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8aDI+RmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gZGUgdmVudGEgbyBmYWN0dXJhPC9oMj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLm1haWx9fTwvaDI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImRvd25sb2FkLWNvbnRhaW5lclwiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWRQREYoKVwiIGNvbG9yPSdwcmltYXJ5JyBtYXQtcmFpc2VkLWJ1dHRvbj5HZW5lcmFyIFBERjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
1
+ import { Component, Inject } from '@angular/core';
2
+ import { jsPDF } from 'jspdf';
3
+ import html2canvas from 'html2canvas';
4
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "../../../../services/message.service";
8
+ import * as i3 from "../../../../services/fuel-order-pdf.service";
9
+ import * as i4 from "@angular/material/button";
10
+ export class TemplateFuelComponent {
11
+ constructor(dialogRef, dataModal, dialog, message, FuelOrderPdfService) {
12
+ this.dialogRef = dialogRef;
13
+ this.dataModal = dataModal;
14
+ this.dialog = dialog;
15
+ this.message = message;
16
+ this.FuelOrderPdfService = FuelOrderPdfService;
17
+ this.data = {
18
+ name: '',
19
+ nit: '',
20
+ address: '',
21
+ telephone: '',
22
+ mail: '',
23
+ image: '',
24
+ code: '',
25
+ date: '',
26
+ responsible: '',
27
+ id_place: '',
28
+ approved_by: '',
29
+ detalle: '',
30
+ description: '',
31
+ consecutive: '',
32
+ namePlace: '',
33
+ addressPlace: '',
34
+ area: '',
35
+ odometer: '',
36
+ invoiceReference: ''
37
+ };
38
+ }
39
+ ngOnInit() {
40
+ this.data = this.dataModal.data;
41
+ }
42
+ ngAfterViewInit() {
43
+ if (this.dataModal.autoGenerate) {
44
+ if (this.dataModal.useNewMethod) {
45
+ this.generatePdfWithHtml2Canvas();
46
+ }
47
+ else {
48
+ this.generatePdfWithHtml2Canvas();
49
+ }
50
+ }
51
+ }
52
+ generatePdfWithHtml2Canvas() {
53
+ this.message.openLoading("Cargando", "Generando PDF");
54
+ const DATA = document.getElementById('templateFO');
55
+ const doc = new jsPDF('p', 'pt', 'a4');
56
+ const options = {
57
+ background: 'white',
58
+ scale: 3
59
+ };
60
+ html2canvas(DATA, options)
61
+ .then((canvas) => {
62
+ const img = canvas.toDataURL('image/PNG');
63
+ //add img canvas to pdf
64
+ const bufferX = 15;
65
+ const bufferY = 15;
66
+ const imgProps = doc.getImageProperties(img);
67
+ const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
68
+ const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
69
+ doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
70
+ return doc;
71
+ })
72
+ .then((docResult) => {
73
+ //docResult.save(`${new Date().toISOString()}_reporte.pdf`);
74
+ docResult.output('dataurlnewwindow', { filename: 'fuekreporte.pdf' });
75
+ this.dialog.closeAll();
76
+ this.message.closeLoading();
77
+ });
78
+ }
79
+ generatePdfWithJsPDFVersion2() {
80
+ this.message.openLoading("Cargando", "Generando PDF con nuevo método");
81
+ this.FuelOrderPdfService.generateFuelOrderPDF(this.data)
82
+ .then(() => {
83
+ this.dialog.closeAll();
84
+ this.message.closeLoading();
85
+ })
86
+ .catch((error) => {
87
+ console.error('Error generando PDF:', error);
88
+ this.message.closeLoading();
89
+ this.generatePdfWithHtml2Canvas();
90
+ });
91
+ }
92
+ generatePdfWithJsPDFVersion3() {
93
+ this.message.openLoading("Cargando", "Generando PDF profesional");
94
+ this.FuelOrderPdfService.generateFuelOrderProfesionalPDF(this.data)
95
+ .then(() => {
96
+ this.dialog.closeAll();
97
+ this.message.closeLoading();
98
+ })
99
+ .catch((error) => {
100
+ console.error('Error generando PDF profesional:', error);
101
+ this.message.closeLoading();
102
+ this.generatePdfWithHtml2Canvas();
103
+ });
104
+ }
105
+ }
106
+ TemplateFuelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateFuelComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatDialog }, { token: i2.MessageService }, { token: i3.FuelOrderPdfService }], target: i0.ɵɵFactoryTarget.Component });
107
+ TemplateFuelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TemplateFuelComponent, selector: "app-template-fuel", ngImport: i0, template: "<div id=\"templateFO\" #templateFO>\n <div class=\"d-flex flex-column w-100 white-background\">\n\n <!-- Encabezado -->\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\n </div>\n </div>\n <div style=\"width:20%\">\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\n </div>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Orden de combustible</h2>\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\n </div>\n\n <!-- Cuerpo -->\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.area}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.code}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Fecha:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.date}}</h2>\n </div>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Operario:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:44%\">\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\n </div>\n <!-- <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\n </div> -->\n </div>\n\n <div class=\"borde container-headers\">\n <h3>Datos del proveedor</h3>\n </div>\n\n <div class=\"borde flexible-row\">\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Lugar:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.namePlace}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.addressPlace}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h3>Detalles del servicio</h3>\n </div>\n\n <div class=\"borde w-100 description-section\">\n <h3 class=\"wrap-text text-start\">{{data.detalle}}</h3>\n <h3 class=\"wrap-text text-start\">Descripci\u00F3n: {{data.description}}</h3>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:35%\">\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:65%\">\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\n </div>\n </div>\n\n <!-- piso -->\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\n <h2>Favor adjuntar la orden de venta o factura</h2>\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\n </div>\n\n </div>\n</div>\n\n<div class=\"download-container\">\n <button (click)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF\n </button>\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF (Version 2.0)\n </button>\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\n <mat-icon>picture_as_pdf</mat-icon>\n Generar PDF (Version 3.0)\n </button> -->\n</div>", styles: [".img{background-size:100%!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;height:22mm!important;margin:10px!important;padding:15px!important}h2{font-size:1rem!important;line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}h3{line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}.text-header{line-height:1.5!important;font-weight:700!important}.text-uppercase{text-transform:uppercase!important}.wrap-text{white-space:pre-wrap!important}.text-content{padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.borde{border:1px solid blue!important}.border-r{border-right:1px solid blue!important;min-height:100%!important;align-self:stretch!important}.container-text{display:flex!important;justify-content:center!important;align-items:center!important;min-height:inherit!important}.container-headers{display:flex!important;align-items:center!important;justify-content:space-evenly!important;width:100%!important;min-height:8mm!important;background:rgba(240,244,255,.6117647059)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.container-headers h2,.container-headers h3{font-weight:700!important}.flexible-row{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:11mm!important}.header-section{min-height:25mm!important}.footer-section{min-height:14mm!important;background:rgba(240,244,255,.35)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.description-section{min-height:20mm!important;padding:10px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.w-100{width:100%!important}.text-start{text-align:start!important}.white-background{background-color:#fff!important}.download-container{display:flex!important;justify-content:center!important;margin-top:15px!important}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateFuelComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'app-template-fuel', template: "<div id=\"templateFO\" #templateFO>\n <div class=\"d-flex flex-column w-100 white-background\">\n\n <!-- Encabezado -->\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\n </div>\n </div>\n <div style=\"width:20%\">\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\n </div>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Orden de combustible</h2>\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\n </div>\n\n <!-- Cuerpo -->\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.area}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.code}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Fecha:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.date}}</h2>\n </div>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Operario:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:44%\">\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\n </div>\n <!-- <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\n </div> -->\n </div>\n\n <div class=\"borde container-headers\">\n <h3>Datos del proveedor</h3>\n </div>\n\n <div class=\"borde flexible-row\">\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Lugar:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.namePlace}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.addressPlace}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h3>Detalles del servicio</h3>\n </div>\n\n <div class=\"borde w-100 description-section\">\n <h3 class=\"wrap-text text-start\">{{data.detalle}}</h3>\n <h3 class=\"wrap-text text-start\">Descripci\u00F3n: {{data.description}}</h3>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:35%\">\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:65%\">\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\n </div>\n </div>\n\n <!-- piso -->\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\n <h2>Favor adjuntar la orden de venta o factura</h2>\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\n </div>\n\n </div>\n</div>\n\n<div class=\"download-container\">\n <button (click)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF\n </button>\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF (Version 2.0)\n </button>\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\n <mat-icon>picture_as_pdf</mat-icon>\n Generar PDF (Version 3.0)\n </button> -->\n</div>", styles: [".img{background-size:100%!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;height:22mm!important;margin:10px!important;padding:15px!important}h2{font-size:1rem!important;line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}h3{line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}.text-header{line-height:1.5!important;font-weight:700!important}.text-uppercase{text-transform:uppercase!important}.wrap-text{white-space:pre-wrap!important}.text-content{padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.borde{border:1px solid blue!important}.border-r{border-right:1px solid blue!important;min-height:100%!important;align-self:stretch!important}.container-text{display:flex!important;justify-content:center!important;align-items:center!important;min-height:inherit!important}.container-headers{display:flex!important;align-items:center!important;justify-content:space-evenly!important;width:100%!important;min-height:8mm!important;background:rgba(240,244,255,.6117647059)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.container-headers h2,.container-headers h3{font-weight:700!important}.flexible-row{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:11mm!important}.header-section{min-height:25mm!important}.footer-section{min-height:14mm!important;background:rgba(240,244,255,.35)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.description-section{min-height:20mm!important;padding:10px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.w-100{width:100%!important}.text-start{text-align:start!important}.white-background{background-color:#fff!important}.download-container{display:flex!important;justify-content:center!important;margin-top:15px!important}\n"] }]
111
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
112
+ type: Inject,
113
+ args: [MAT_DIALOG_DATA]
114
+ }] }, { type: i1.MatDialog }, { type: i2.MessageService }, { type: i3.FuelOrderPdfService }]; } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZnVlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQU9wRixNQUFNLE9BQU8scUJBQXFCO0lBd0JoQyxZQUNTLFNBQThDLEVBQ3JCLFNBQVMsRUFDakMsTUFBZ0IsRUFDakIsT0FBdUIsRUFDdEIsbUJBQXdDO1FBSnpDLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBM0JsRCxTQUFJLEdBQUc7WUFDTCxJQUFJLEVBQUUsRUFBRTtZQUNSLEdBQUcsRUFBRSxFQUFFO1lBQ1AsT0FBTyxFQUFFLEVBQUU7WUFDWCxTQUFTLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLElB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LENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2tIQWpIVSxxQkFBcUIsOENBMEJ0QixlQUFlO3NHQTFCZCxxQkFBcUIseURDYmxDLHErS0E0SE07MkZEL0dPLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQThCMUIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VuZXJhdGVQZGZTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJhdGUtcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnVlbE9yZGVyUGRmU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2Z1ZWwtb3JkZXItcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xuaW1wb3J0IHtNYXREaWFsb2csICBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZW1wbGF0ZS1mdWVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVGdWVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkYXRhID0ge1xuICAgIG5hbWU6ICcnLFxuICAgIG5pdDogJycsXG4gICAgYWRkcmVzczogJycsXG4gICAgdGVsZXBob25lOiAnJyxcbiAgICBtYWlsOiAnJyxcbiAgICBpbWFnZTogJycsXG4gICAgY29kZTogJycsXG4gICAgZGF0ZTogJycsXG4gICAgcmVzcG9uc2libGU6ICcnLFxuICAgIGlkX3BsYWNlOiAnJyxcbiAgICBhcHByb3ZlZF9ieTogJycsXG4gICAgZGV0YWxsZTonJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgY29uc2VjdXRpdmU6ICcnLFxuICAgIG5hbWVQbGFjZTogJycsXG4gICAgYWRkcmVzc1BsYWNlOiAnJyxcbiAgICBhcmVhOiAnJyxcbiAgICBvZG9tZXRlcjonJyxcbiAgICBpbnZvaWNlUmVmZXJlbmNlOiAnJ1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlRnVlbENvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhTW9kYWwsXG4gICAgcHJpdmF0ZSBkaWFsb2c6TWF0RGlhbG9nLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIEZ1ZWxPcmRlclBkZlNlcnZpY2U6IEZ1ZWxPcmRlclBkZlNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGFNb2RhbC5kYXRhXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICBpZih0aGlzLmRhdGFNb2RhbC5hdXRvR2VuZXJhdGUpe1xuICAgICAgaWYodGhpcy5kYXRhTW9kYWwudXNlTmV3TWV0aG9kKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBcbiAgcHVibGljIGdlbmVyYXRlUGRmV2l0aEh0bWwyQ2FudmFzKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERlwiKVxuICAgIGNvbnN0IERBVEEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGVGTycpO1xuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERigncCcsICdwdCcsICdhNCcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgc2NhbGU6IDNcbiAgICB9O1xuICAgIGh0bWwyY2FudmFzKERBVEEsIG9wdGlvbnMpXG4gICAgICAudGhlbigoY2FudmFzKSA9PiB7XG4gICAgICAgY29uc3QgaW1nID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvUE5HJyk7XG5cbiAgICAgIC8vYWRkIGltZyBjYW52YXMgdG8gcGRmXG4gICAgICBjb25zdCBidWZmZXJYID0gMTU7XG4gICAgICBjb25zdCBidWZmZXJZID0gMTU7XG4gICAgICBjb25zdCBpbWdQcm9wcyA9IChkb2MgYXMgYW55KS5nZXRJbWFnZVByb3BlcnRpZXMoaW1nKTtcbiAgICAgIGNvbnN0IHBkZldpZHRoID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldFdpZHRoKCkgLTIgKiBidWZmZXJYO1xuICAgICAgY29uc3QgcGRmSGVpZ2h0ID0gKGltZ1Byb3BzLmhlaWdodCAqIHBkZldpZHRoKSAvIGltZ1Byb3BzLndpZHRoO1xuICAgICAgZG9jLmFkZEltYWdlKFxuICAgICAgICBpbWcsXG4gICAgICAgICdQTkcnLFxuICAgICAgICBidWZmZXJYLFxuICAgICAgICBidWZmZXJZLFxuICAgICAgICBwZGZXaWR0aCxcbiAgICAgICAgcGRmSGVpZ2h0LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICdGQVNUJ1xuICAgICAgKTtcbiAgICAgIHJldHVybiBkb2M7XG4gICAgfSlcbiAgICAudGhlbigoZG9jUmVzdWx0KSA9PiB7XG4gICAgIC8vZG9jUmVzdWx0LnNhdmUoYCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfV9yZXBvcnRlLnBkZmApO1xuICAgICAgZG9jUmVzdWx0Lm91dHB1dCgnZGF0YXVybG5ld3dpbmRvdycsIHtmaWxlbmFtZTogJ2Z1ZWtyZXBvcnRlLnBkZid9KTtcbiAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKClcbiAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjIoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGIGNvbiBudWV2byBtw6l0b2RvXCIpO1xuICAgIFxuICAgIHRoaXMuRnVlbE9yZGVyUGRmU2VydmljZS5nZW5lcmF0ZUZ1ZWxPcmRlclBERih0aGlzLmRhdGEpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYW5kbyBQREY6JywgZXJyb3IpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcbiAgICAgIH0pO1xuICB9XG4gXG4gIHB1YmxpYyBnZW5lcmF0ZVBkZldpdGhKc1BERlZlcnNpb24zKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERiBwcm9mZXNpb25hbFwiKTtcbiAgICBcbiAgICB0aGlzLkZ1ZWxPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVGdWVsT3JkZXJQcm9mZXNpb25hbFBERih0aGlzLmRhdGEpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYW5kbyBQREYgcHJvZmVzaW9uYWw6JywgZXJyb3IpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgaWQ9XCJ0ZW1wbGF0ZUZPXCIgI3RlbXBsYXRlRk8+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMCB3aGl0ZS1iYWNrZ3JvdW5kXCI+XG5cbiAgICAgICAgPCEtLSBFbmNhYmV6YWRvICAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgaGVhZGVyLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6ODAlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1oZWFkZXIgdGV4dC11cHBlcmNhc2Ugd3JhcC10ZXh0XCI+e3tkYXRhLm5hbWV9fTwvaDI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1oZWFkZXIgd3JhcC10ZXh0XCI+TklUOiB7e2RhdGEubml0fX08L2gyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWV2ZW5seVwiPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj57e2RhdGEuYWRkcmVzc319PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC1oZWFkZXIgd3JhcC10ZXh0XCI+VEVMOiB7e2RhdGEudGVsZXBob25lfX08L2gzPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MjAlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZyB3LTEwMFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGRhdGEuaW1hZ2UgKyAnKSdcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgY29udGFpbmVyLWhlYWRlcnNcIj5cbiAgICAgICAgICAgIDxoMj5PcmRlbiBkZSBjb21idXN0aWJsZTwvaDI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj5OwrA6IHt7ZGF0YS5jb25zZWN1dGl2ZX19PC9oMj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBDdWVycG8gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBmbGV4aWJsZS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTIlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPsOBcmVhOjwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjMyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hcmVhfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5Dw7NkaWdvOjwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjE2JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5jb2RlfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5GZWNoYTo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuZGF0ZX19PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZmxleGlibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5PcGVyYXJpbzo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEucmVzcG9uc2libGV9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTIlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPk9kw7NtZXRybzo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDo0NCVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEub2RvbWV0ZXJ9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxMiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+UmVmZXJlbmNpYSBGYWN0dXJhOjwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjE2JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5pbnZvaWNlUmVmZXJlbmNlfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgY29udGFpbmVyLWhlYWRlcnNcIj5cbiAgICAgICAgICAgIDxoMz5EYXRvcyBkZWwgcHJvdmVlZG9yPC9oMz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGZsZXhpYmxlLXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+THVnYXI6PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MzUlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLm5hbWVQbGFjZX19PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+RGlyZWNjacOzbjo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuYWRkcmVzc1BsYWNlfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxuICAgICAgICAgICAgPGgzPkRldGFsbGVzIGRlbCBzZXJ2aWNpbzwvaDM+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBkZXNjcmlwdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJ3cmFwLXRleHQgdGV4dC1zdGFydFwiPnt7ZGF0YS5kZXRhbGxlfX08L2gzPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwid3JhcC10ZXh0IHRleHQtc3RhcnRcIj5EZXNjcmlwY2nDs246IHt7ZGF0YS5kZXNjcmlwdGlvbn19PC9oMz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGZsZXhpYmxlLXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+QVVUT1JJWkFEQSBQT1I6PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6NjUlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLmFwcHJvdmVkX2J5fX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gcGlzbyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBmb290ZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgPGgyPkZhdm9yIGFkanVudGFyIGxhIG9yZGVuIGRlIHZlbnRhIG8gZmFjdHVyYTwvaDI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEubWFpbH19PC9oMj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZG93bmxvYWQtY29udGFpbmVyXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKVwiIGNvbG9yPSdwcmltYXJ5JyBtYXQtcmFpc2VkLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cbiAgICAgICAgR2VuZXJhciBQREZcbiAgICA8L2J1dHRvbj5cbiAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cImdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjIoKVwiIGNvbG9yPSd3YXJuJyBtYXQtcmFpc2VkLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cbiAgICAgICAgR2VuZXJhciBQREYgKFZlcnNpb24gMi4wKVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjMoKVwiIGNvbG9yPSdhY2NlbnQnIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICA8bWF0LWljb24+cGljdHVyZV9hc19wZGY8L21hdC1pY29uPlxuICAgICAgICBHZW5lcmFyIFBERiAoVmVyc2lvbiAzLjApXG4gICAgPC9idXR0b24+IC0tPlxuPC9kaXY+Il19
@@ -0,0 +1,145 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { jsPDF } from 'jspdf';
3
+ import html2canvas from 'html2canvas';
4
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "../../../../services/message.service";
8
+ import * as i3 from "../../../../services/work-order-pdf.service";
9
+ import * as i4 from "@angular/material/button";
10
+ export class TemplateOtComponent {
11
+ constructor(dialogRef, dataModal, dialog, message, workOrderPdfService) {
12
+ this.dialogRef = dialogRef;
13
+ this.dataModal = dataModal;
14
+ this.dialog = dialog;
15
+ this.message = message;
16
+ this.workOrderPdfService = workOrderPdfService;
17
+ this.data = {
18
+ name: '',
19
+ nit: '',
20
+ address: '',
21
+ telephone: '',
22
+ mail: '',
23
+ image: '',
24
+ code: '',
25
+ date: '',
26
+ responsible: '',
27
+ third: '',
28
+ odometer: '',
29
+ approved_by: '',
30
+ description: '',
31
+ consecutive: '',
32
+ nameProvider: '',
33
+ addressProvider: '',
34
+ area: '',
35
+ invoiceReference: '',
36
+ };
37
+ }
38
+ ngOnInit() {
39
+ this.data = this.dataModal.data;
40
+ }
41
+ ngAfterViewInit() {
42
+ if (this.dataModal.autoGenerate) {
43
+ if (this.dataModal.useNewMethod) {
44
+ this.generatePdfWithJsPDFVersion2();
45
+ }
46
+ else {
47
+ this.generatePdfWithHtml2Canvas();
48
+ }
49
+ }
50
+ }
51
+ generatePdfWithHtml2Canvas() {
52
+ this.message.openLoading("Cargando", "Generando PDF");
53
+ const DATA = document.getElementById('templateOT');
54
+ const doc = new jsPDF('p', 'pt', 'a4');
55
+ const options = {
56
+ background: 'white',
57
+ scale: 3
58
+ };
59
+ html2canvas(DATA, options)
60
+ .then((canvas) => {
61
+ const img = canvas.toDataURL('image/PNG');
62
+ const bufferX = 15;
63
+ const bufferY = 15;
64
+ const imgProps = doc.getImageProperties(img);
65
+ const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
66
+ const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
67
+ doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
68
+ return doc;
69
+ })
70
+ .then((docResult) => {
71
+ docResult.output('dataurlnewwindow', { filename: 'reporte.pdf' });
72
+ this.dialog.closeAll();
73
+ this.message.closeLoading();
74
+ });
75
+ }
76
+ generatePdfWithJsPDFVersion2() {
77
+ this.message.openLoading("Cargando", "Generando PDF con nuevo método");
78
+ try {
79
+ const doc = new jsPDF('p', 'pt', 'letter');
80
+ const pageWidth = doc.internal.pageSize.getWidth();
81
+ const margin = 40;
82
+ let currentY = margin;
83
+ // Encabezado simple
84
+ doc.setFont('helvetica', 'bold');
85
+ doc.setFontSize(18);
86
+ const title = 'ORDEN DE TRABAJO';
87
+ const titleWidth = doc.getTextWidth(title);
88
+ doc.text(title, (pageWidth - titleWidth) / 2, currentY);
89
+ currentY += 30;
90
+ doc.setFontSize(14);
91
+ const numberText = `N° ${this.data.consecutive}`;
92
+ const numberWidth = doc.getTextWidth(numberText);
93
+ doc.text(numberText, (pageWidth - numberWidth) / 2, currentY);
94
+ currentY += 40;
95
+ // Información básica
96
+ doc.setFont('helvetica', 'normal');
97
+ doc.setFontSize(12);
98
+ const info = [
99
+ `Empresa: ${this.data.name}`,
100
+ `NIT: ${this.data.nit}`,
101
+ `Área: ${this.data.area}`,
102
+ `Código: ${this.data.code}`,
103
+ `Fecha: ${this.data.date}`,
104
+ `Operario: ${this.data.responsible}`,
105
+ `Proveedor: ${this.data.nameProvider}`,
106
+ `Descripción: ${this.data.description}`
107
+ ];
108
+ info.forEach(line => {
109
+ doc.text(line, margin, currentY);
110
+ currentY += 20;
111
+ });
112
+ doc.output('dataurlnewwindow', { filename: 'orden_trabajo.pdf' });
113
+ this.dialog.closeAll();
114
+ this.message.closeLoading();
115
+ }
116
+ catch (error) {
117
+ console.error('Error generando PDF nuevo:', error);
118
+ this.message.closeLoading();
119
+ this.generatePdfWithHtml2Canvas();
120
+ }
121
+ }
122
+ generatePdfWithJsPDFVersion3() {
123
+ this.message.openLoading("Cargando", "Generando PDF profesional");
124
+ this.workOrderPdfService.generateWorkOrderPDF(this.data)
125
+ .then(() => {
126
+ this.dialog.closeAll();
127
+ this.message.closeLoading();
128
+ })
129
+ .catch((error) => {
130
+ console.error('Error generando PDF profesional:', error);
131
+ this.message.closeLoading();
132
+ this.generatePdfWithHtml2Canvas();
133
+ });
134
+ }
135
+ }
136
+ TemplateOtComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateOtComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatDialog }, { token: i2.MessageService }, { token: i3.WorkOrderPdfService }], target: i0.ɵɵFactoryTarget.Component });
137
+ TemplateOtComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TemplateOtComponent, selector: "app-template-ot", ngImport: i0, template: "<div id=\"templateOT\" #templateOT>\n <div class=\"d-flex flex-column w-100 white-background\">\n\n <!-- Encabezado -->\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\n </div>\n </div>\n <div style=\"width:20%\">\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\n </div>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Orden de trabajo</h2>\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\n </div>\n\n <!-- Cuerpo -->\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.area}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.code}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Fecha:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.date}}</h2>\n </div>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Operario:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Datos del proveedor</h2>\n </div>\n\n <div class=\"borde flexible-row\">\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Nombre:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.nameProvider}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.addressProvider}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Detalles del servicio</h2>\n </div>\n\n <div class=\"borde w-100 description-section\">\n <h2 class=\"wrap-text text-start\">{{data.description}}</h2>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:35%\">\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:65%\">\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\n </div>\n </div>\n\n <!-- piso -->\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\n <h2>Favor adjuntar la orden a la factura o cuenta de cobro</h2>\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\n </div>\n\n </div>\n</div>\n\n<div class=\"download-container\">\n <button (click)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF\n </button>\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF (version 2.0)\n </button>\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\n <mat-icon>picture_as_pdf</mat-icon>\n Generar PDF (version 3.0)\n </button> -->\n\n</div>", styles: [".img{background-size:100%!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;height:22mm!important;margin:10px!important;padding:15px!important}h2{font-size:1rem!important;line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}h3{line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}.text-header{line-height:1.5!important;font-weight:700!important}.text-uppercase{text-transform:uppercase!important}.wrap-text{white-space:pre-wrap!important}.text-content{padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.borde{border:1px solid blue!important}.border-r{border-right:1px solid blue!important;min-height:100%!important;align-self:stretch!important}.container-text{display:flex!important;justify-content:center!important;align-items:center!important;min-height:inherit!important}.container-headers{display:flex!important;align-items:center!important;justify-content:space-evenly!important;width:100%!important;min-height:8mm!important;background:rgba(240,244,255,.6117647059)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.container-headers h2{font-weight:700!important}.flexible-row{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:11mm!important}.header-section{min-height:25mm!important}.footer-section{min-height:14mm!important;background:rgba(240,244,255,.35)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.description-section{min-height:20mm!important;padding:10px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.w-100{width:100%!important}.text-start{text-align:start!important}.white-background{background-color:#fff!important}.download-container{display:flex!important;justify-content:center!important;margin-top:15px!important}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateOtComponent, decorators: [{
139
+ type: Component,
140
+ args: [{ selector: 'app-template-ot', template: "<div id=\"templateOT\" #templateOT>\n <div class=\"d-flex flex-column w-100 white-background\">\n\n <!-- Encabezado -->\n <div class=\"borde w-100 d-flex flex-row align-items-center header-section\">\n <div class=\"d-flex flex-column align-items-center text-content\" style=\"width:80%\">\n <h2 class=\"text-header text-uppercase wrap-text\">{{data.name}}</h2>\n <h2 class=\"text-header wrap-text\">NIT: {{data.nit}}</h2>\n <div class=\"w-100 d-flex flex-row justify-content-evenly\">\n <h3 class=\"text-header wrap-text\">{{data.address}}</h3>\n <h3 class=\"text-header wrap-text\">TEL: {{data.telephone}}</h3>\n </div>\n </div>\n <div style=\"width:20%\">\n <div class=\"img w-100\" [style.background-image]=\"'url(' + data.image + ')'\">\n </div>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Orden de trabajo</h2>\n <h2 class=\"wrap-text\">N\u00B0: {{data.consecutive}}</h2>\n </div>\n\n <!-- Cuerpo -->\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">\u00C1rea:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.area}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">C\u00F3digo:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.code}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Fecha:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.date}}</h2>\n </div>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Operario:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:32%\">\n <h2 class=\"wrap-text\">{{data.responsible}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Od\u00F3metro:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.odometer}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:12%\">\n <h2 class=\"fw-bold\">Referencia Factura:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:16%\">\n <h2 class=\"wrap-text\">{{data.invoiceReference}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Datos del proveedor</h2>\n </div>\n\n <div class=\"borde flexible-row\">\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Nombre:</h2>\n </div>\n <div class=\"border-r container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.nameProvider}}</h2>\n </div>\n <div class=\"border-r container-text\" style=\"width:15%\">\n <h2 class=\"fw-bold\">Direcci\u00F3n:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:35%\">\n <h2 class=\"wrap-text\">{{data.addressProvider}}</h2>\n </div>\n </div>\n\n <div class=\"borde container-headers\">\n <h2>Detalles del servicio</h2>\n </div>\n\n <div class=\"borde w-100 description-section\">\n <h2 class=\"wrap-text text-start\">{{data.description}}</h2>\n </div>\n\n <div class=\"borde w-100 flexible-row\">\n <div class=\"border-r container-text\" style=\"width:35%\">\n <h2 class=\"fw-bold\">AUTORIZADA POR:</h2>\n </div>\n <div class=\"container-text text-content\" style=\"width:65%\">\n <h2 class=\"wrap-text\">{{data.approved_by}}</h2>\n </div>\n </div>\n\n <!-- piso -->\n <div class=\"borde d-flex flex-column align-items-center justify-content-center w-100 footer-section\">\n <h2>Favor adjuntar la orden a la factura o cuenta de cobro</h2>\n <h2 class=\"wrap-text\">{{data.mail}}</h2>\n </div>\n\n </div>\n</div>\n\n<div class=\"download-container\">\n <button (click)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF\n </button>\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\n Generar PDF (version 2.0)\n </button>\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\n <mat-icon>picture_as_pdf</mat-icon>\n Generar PDF (version 3.0)\n </button> -->\n\n</div>", styles: [".img{background-size:100%!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;height:22mm!important;margin:10px!important;padding:15px!important}h2{font-size:1rem!important;line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}h3{line-height:1.2!important;margin:0!important;padding:0!important;text-align:center!important}.text-header{line-height:1.5!important;font-weight:700!important}.text-uppercase{text-transform:uppercase!important}.wrap-text{white-space:pre-wrap!important}.text-content{padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.borde{border:1px solid blue!important}.border-r{border-right:1px solid blue!important;min-height:100%!important;align-self:stretch!important}.container-text{display:flex!important;justify-content:center!important;align-items:center!important;min-height:inherit!important}.container-headers{display:flex!important;align-items:center!important;justify-content:space-evenly!important;width:100%!important;min-height:8mm!important;background:rgba(240,244,255,.6117647059)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.container-headers h2{font-weight:700!important}.flexible-row{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:11mm!important}.header-section{min-height:25mm!important}.footer-section{min-height:14mm!important;background:rgba(240,244,255,.35)!important;padding:5px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.description-section{min-height:20mm!important;padding:10px!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.w-100{width:100%!important}.text-start{text-align:start!important}.white-background{background-color:#fff!important}.download-container{display:flex!important;justify-content:center!important;margin-top:15px!important}\n"] }]
141
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
142
+ type: Inject,
143
+ args: [MAT_DIALOG_DATA]
144
+ }] }, { type: i1.MatDialog }, { type: i2.MessageService }, { type: i3.WorkOrderPdfService }]; } });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtb3QvdGVtcGxhdGUtb3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtb3QvdGVtcGxhdGUtb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBT3BGLE1BQU0sT0FBTyxtQkFBbUI7SUF1QjlCLFlBQ1MsU0FBNEMsRUFDbkIsU0FBUyxFQUNqQyxNQUFpQixFQUNsQixPQUF1QixFQUN0QixtQkFBd0M7UUFKekMsY0FBUyxHQUFULFNBQVMsQ0FBbUM7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUExQmxELFNBQUksR0FBRztZQUNMLElBQUksRUFBRSxFQUFFO1lBQ1IsR0FBRyxFQUFFLEVBQUU7WUFDUCxPQUFPLEVBQUUsRUFBRTtZQUNYLFNBQVMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVB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Q0FBQztRQUM5QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2dIQW5KVSxtQkFBbUIsOENBeUJwQixlQUFlO29HQXpCZCxtQkFBbUIsdURDWmhDLHE2S0E0SE07MkZEaEhPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQTZCeEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya09yZGVyUGRmU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3dvcmstb3JkZXItcGRmLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZic7XG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZW1wbGF0ZS1vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS1vdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlbXBsYXRlLW90LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVPdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGF0YSA9IHtcbiAgICBuYW1lOiAnJyxcbiAgICBuaXQ6ICcnLFxuICAgIGFkZHJlc3M6ICcnLFxuICAgIHRlbGVwaG9uZTogJycsXG4gICAgbWFpbDogJycsXG4gICAgaW1hZ2U6ICcnLFxuICAgIGNvZGU6ICcnLFxuICAgIGRhdGU6ICcnLFxuICAgIHJlc3BvbnNpYmxlOiAnJyxcbiAgICB0aGlyZDogJycsXG4gICAgb2RvbWV0ZXI6ICcnLFxuICAgIGFwcHJvdmVkX2J5OiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgY29uc2VjdXRpdmU6ICcnLFxuICAgIG5hbWVQcm92aWRlcjogJycsXG4gICAgYWRkcmVzc1Byb3ZpZGVyOiAnJyxcbiAgICBhcmVhOiAnJyxcbiAgICBpbnZvaWNlUmVmZXJlbmNlOiAnJyxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZU90Q29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGFNb2RhbCxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHdvcmtPcmRlclBkZlNlcnZpY2U6IFdvcmtPcmRlclBkZlNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGFNb2RhbC5kYXRhXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YU1vZGFsLmF1dG9HZW5lcmF0ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0YU1vZGFsLnVzZU5ld01ldGhvZCkge1xuICAgICAgICB0aGlzLmdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGXCIpXG4gICAgY29uc3QgREFUQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZU9UJyk7XG4gICAgY29uc3QgZG9jID0gbmV3IGpzUERGKCdwJywgJ3B0JywgJ2E0Jyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICBzY2FsZTogM1xuICAgIH07XG4gICAgaHRtbDJjYW52YXMoREFUQSwgb3B0aW9ucylcbiAgICAgIC50aGVuKChjYW52YXMpID0+IHtcbiAgICAgICAgY29uc3QgaW1nID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvUE5HJyk7XG5cbiAgICAgICAgY29uc3QgYnVmZmVyWCA9IDE1O1xuICAgICAgICBjb25zdCBidWZmZXJZID0gMTU7XG4gICAgICAgIGNvbnN0IGltZ1Byb3BzID0gKGRvYyBhcyBhbnkpLmdldEltYWdlUHJvcGVydGllcyhpbWcpO1xuICAgICAgICBjb25zdCBwZGZXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpIC0gMiAqIGJ1ZmZlclg7XG4gICAgICAgIGNvbnN0IHBkZkhlaWdodCA9IChpbWdQcm9wcy5oZWlnaHQgKiBwZGZXaWR0aCkgLyBpbWdQcm9wcy53aWR0aDtcbiAgICAgICAgZG9jLmFkZEltYWdlKFxuICAgICAgICAgIGltZyxcbiAgICAgICAgICAnUE5HJyxcbiAgICAgICAgICBidWZmZXJYLFxuICAgICAgICAgIGJ1ZmZlclksXG4gICAgICAgICAgcGRmV2lkdGgsXG4gICAgICAgICAgcGRmSGVpZ2h0LFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAnRkFTVCdcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGRvYztcbiAgICAgIH0pXG4gICAgICAudGhlbigoZG9jUmVzdWx0KSA9PiB7XG4gICAgICAgIGRvY1Jlc3VsdC5vdXRwdXQoJ2RhdGF1cmxuZXd3aW5kb3cnLCB7IGZpbGVuYW1lOiAncmVwb3J0ZS5wZGYnIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpXG4gICAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxuICAgICAgfSk7XG4gIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZVBkZldpdGhKc1BERlZlcnNpb24yKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERiBjb24gbnVldm8gbcOpdG9kb1wiKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCAnbGV0dGVyJyk7XG4gICAgICBjb25zdCBwYWdlV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKTtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IDQwO1xuICAgICAgbGV0IGN1cnJlbnRZID0gbWFyZ2luO1xuXG4gICAgICAvLyBFbmNhYmV6YWRvIHNpbXBsZVxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoMTgpO1xuICAgICAgY29uc3QgdGl0bGUgPSAnT1JERU4gREUgVFJBQkFKTyc7XG4gICAgICBjb25zdCB0aXRsZVdpZHRoID0gZG9jLmdldFRleHRXaWR0aCh0aXRsZSk7XG4gICAgICBkb2MudGV4dCh0aXRsZSwgKHBhZ2VXaWR0aCAtIHRpdGxlV2lkdGgpIC8gMiwgY3VycmVudFkpO1xuICAgICAgY3VycmVudFkgKz0gMzA7XG5cbiAgICAgIGRvYy5zZXRGb250U2l6ZSgxNCk7XG4gICAgICBjb25zdCBudW1iZXJUZXh0ID0gYE7CsCAke3RoaXMuZGF0YS5jb25zZWN1dGl2ZX1gO1xuICAgICAgY29uc3QgbnVtYmVyV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKG51bWJlclRleHQpO1xuICAgICAgZG9jLnRleHQobnVtYmVyVGV4dCwgKHBhZ2VXaWR0aCAtIG51bWJlcldpZHRoKSAvIDIsIGN1cnJlbnRZKTtcbiAgICAgIGN1cnJlbnRZICs9IDQwO1xuXG4gICAgICAvLyBJbmZvcm1hY2nDs24gYsOhc2ljYVxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICAgIGRvYy5zZXRGb250U2l6ZSgxMik7XG5cbiAgICAgIGNvbnN0IGluZm8gPSBbXG4gICAgICAgIGBFbXByZXNhOiAke3RoaXMuZGF0YS5uYW1lfWAsXG4gICAgICAgIGBOSVQ6ICR7dGhpcy5kYXRhLm5pdH1gLFxuICAgICAgICBgw4FyZWE6ICR7dGhpcy5kYXRhLmFyZWF9YCxcbiAgICAgICAgYEPDs2RpZ286ICR7dGhpcy5kYXRhLmNvZGV9YCxcbiAgICAgICAgYEZlY2hhOiAke3RoaXMuZGF0YS5kYXRlfWAsXG4gICAgICAgIGBPcGVyYXJpbzogJHt0aGlzLmRhdGEucmVzcG9uc2libGV9YCxcbiAgICAgICAgYFByb3ZlZWRvcjogJHt0aGlzLmRhdGEubmFtZVByb3ZpZGVyfWAsXG4gICAgICAgIGBEZXNjcmlwY2nDs246ICR7dGhpcy5kYXRhLmRlc2NyaXB0aW9ufWBcbiAgICAgIF07XG5cbiAgICAgIGluZm8uZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgZG9jLnRleHQobGluZSwgbWFyZ2luLCBjdXJyZW50WSk7XG4gICAgICAgIGN1cnJlbnRZICs9IDIwO1xuICAgICAgfSk7XG5cbiAgICAgIGRvYy5vdXRwdXQoJ2RhdGF1cmxuZXd3aW5kb3cnLCB7IGZpbGVuYW1lOiAnb3JkZW5fdHJhYmFqby5wZGYnIH0pO1xuICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2VuZXJhbmRvIFBERiBudWV2bzonLCBlcnJvcik7XG4gICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlUGRmV2l0aEh0bWwyQ2FudmFzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjMoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGIHByb2Zlc2lvbmFsXCIpO1xuXG4gICAgdGhpcy53b3JrT3JkZXJQZGZTZXJ2aWNlLmdlbmVyYXRlV29ya09yZGVyUERGKHRoaXMuZGF0YSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlLmNsb3NlTG9hZGluZygpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2VuZXJhbmRvIFBERiBwcm9mZXNpb25hbDonLCBlcnJvcik7XG4gICAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKTtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVBkZldpdGhIdG1sMkNhbnZhcygpO1xuICAgICAgfSk7XG4gIH1cblxuXG5cblxufVxuIiwiPGRpdiBpZD1cInRlbXBsYXRlT1RcIiAjdGVtcGxhdGVPVD5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwIHdoaXRlLWJhY2tncm91bmRcIj5cblxuICAgICAgICA8IS0tIEVuY2FiZXphZG8gIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBoZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDo4MCVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWhlYWRlciB0ZXh0LXVwcGVyY2FzZSB3cmFwLXRleHRcIj57e2RhdGEubmFtZX19PC9oMj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5OSVQ6IHt7ZGF0YS5uaXR9fTwvaDI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZXZlbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtaGVhZGVyIHdyYXAtdGV4dFwiPnt7ZGF0YS5hZGRyZXNzfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5URUw6IHt7ZGF0YS50ZWxlcGhvbmV9fTwvaDM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nIHctMTAwXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgZGF0YS5pbWFnZSArICcpJ1wiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxuICAgICAgICAgICAgPGgyPk9yZGVuIGRlIHRyYWJham88L2gyPlxuICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+TsKwOiB7e2RhdGEuY29uc2VjdXRpdmV9fTwvaDI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQ3VlcnBvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZmxleGlibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj7DgXJlYTo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuYXJlYX19PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5Dw7NkaWdvOjwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjE2JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5jb2RlfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5GZWNoYTo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuZGF0ZX19PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZmxleGlibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5PcGVyYXJpbzo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEucmVzcG9uc2libGV9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTIlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPk9kw7NtZXRybzo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEub2RvbWV0ZXJ9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5SZWZlcmVuY2lhIEZhY3R1cmE6PC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MTYlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLmludm9pY2VSZWZlcmVuY2V9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGNvbnRhaW5lci1oZWFkZXJzXCI+XG4gICAgICAgICAgICA8aDI+RGF0b3MgZGVsIHByb3ZlZWRvcjwvaDI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBmbGV4aWJsZS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTUlXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPk5vbWJyZTo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEubmFtZVByb3ZpZGVyfX08L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjE1JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5EaXJlY2Npw7NuOjwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGV4dCB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjM1JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hZGRyZXNzUHJvdmlkZXJ9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGNvbnRhaW5lci1oZWFkZXJzXCI+XG4gICAgICAgICAgICA8aDI+RGV0YWxsZXMgZGVsIHNlcnZpY2lvPC9oMj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGRlc2NyaXB0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dCB0ZXh0LXN0YXJ0XCI+e3tkYXRhLmRlc2NyaXB0aW9ufX08L2gyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZmxleGlibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjM1JVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5BVVRPUklaQURBIFBPUjo8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDo2NSVcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuYXBwcm92ZWRfYnl9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBwaXNvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwIGZvb3Rlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8aDI+RmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gYSBsYSBmYWN0dXJhIG8gY3VlbnRhIGRlIGNvYnJvPC9oMj5cbiAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5tYWlsfX08L2gyPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkb3dubG9hZC1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJnZW5lcmF0ZVBkZldpdGhIdG1sMkNhbnZhcygpXCIgY29sb3I9J3ByaW1hcnknIG1hdC1yYWlzZWQtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxuICAgICAgICBHZW5lcmFyIFBERlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gPGJ1dHRvbiAoY2xpY2spPVwiZ2VuZXJhdGVQZGZXaXRoSnNQREZWZXJzaW9uMigpXCIgY29sb3I9J3dhcm4nIG1hdC1yYWlzZWQtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxuICAgICAgICAgICAgR2VuZXJhciBQREYgKHZlcnNpb24gMi4wKVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjMoKVwiIGNvbG9yPSdhY2NlbnQnIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICA8bWF0LWljb24+cGljdHVyZV9hc19wZGY8L21hdC1pY29uPlxuICAgICAgICBHZW5lcmFyIFBERiAodmVyc2lvbiAzLjApXG4gICAgPC9idXR0b24+IC0tPlxuXG48L2Rpdj4iXX0=