brainloper-ui 14.1.8 → 14.1.10

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 (103) hide show
  1. package/esm2020/brainloper-ui.mjs +4 -4
  2. package/esm2020/public_api.mjs +57 -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 -115
  17. package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +145 -145
  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/enum/httpResponseType.mjs +8 -0
  30. package/esm2020/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +2 -2
  31. package/esm2020/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +2 -2
  32. package/esm2020/src/app/modules/interfaces/filters/header-filters.mjs +2 -2
  33. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +8 -8
  34. package/esm2020/src/app/modules/interfaces/report/template-pdf-base.mjs +2 -2
  35. package/esm2020/src/app/modules/interfaces/report/template-pdf-ot.mjs +2 -2
  36. package/esm2020/src/app/modules/interfaces/report/template-pfd-fo.mjs +2 -2
  37. package/esm2020/src/app/modules/services/crypto.service.mjs +37 -37
  38. package/esm2020/src/app/modules/services/export-data.service.mjs +166 -166
  39. package/esm2020/src/app/modules/services/file-forms.service.mjs +24 -24
  40. package/esm2020/src/app/modules/services/fuel-order-pdf.service.mjs +528 -528
  41. package/esm2020/src/app/modules/services/functions.service.mjs +54 -54
  42. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +109 -109
  43. package/esm2020/src/app/modules/services/http.service.mjs +126 -97
  44. package/esm2020/src/app/modules/services/loading/loading.component.mjs +28 -28
  45. package/esm2020/src/app/modules/services/local-storage.service.mjs +115 -115
  46. package/esm2020/src/app/modules/services/message.service.mjs +200 -200
  47. package/esm2020/src/app/modules/services/screen-size-util.mjs +6 -6
  48. package/esm2020/src/app/modules/services/session.service.mjs +42 -42
  49. package/esm2020/src/app/modules/services/work-order-pdf.service.mjs +384 -384
  50. package/fesm2015/brainloper-ui.mjs +3885 -3849
  51. package/fesm2015/brainloper-ui.mjs.map +1 -1
  52. package/fesm2020/brainloper-ui.mjs +3855 -3819
  53. package/fesm2020/brainloper-ui.mjs.map +1 -1
  54. package/index.d.ts +5 -5
  55. package/package.json +1 -1
  56. package/public_api.d.ts +56 -55
  57. package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +62 -62
  58. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +13 -13
  59. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +10 -10
  60. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +24 -24
  61. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +16 -16
  62. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +46 -46
  63. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +125 -125
  64. package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +21 -21
  65. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +42 -42
  66. package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +2 -2
  67. package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +2 -2
  68. package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +2 -2
  69. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +30 -30
  70. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +41 -41
  71. package/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.d.ts +40 -40
  72. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +26 -26
  73. package/src/app/modules/directives/carousel-item.directive.d.ts +9 -9
  74. package/src/app/modules/interfaces/buttons/button-icon.d.ts +9 -9
  75. package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +6 -6
  76. package/src/app/modules/interfaces/combos/combos-configuration.d.ts +13 -13
  77. package/src/app/modules/interfaces/data-table/params.d.ts +7 -7
  78. package/src/app/modules/interfaces/data-table/rules.d.ts +8 -8
  79. package/src/app/modules/interfaces/data-table/table-columns.d.ts +25 -25
  80. package/src/app/modules/interfaces/data-table/table-configuration.d.ts +26 -26
  81. package/src/app/modules/interfaces/enum/enumActions.d.ts +6 -6
  82. package/src/app/modules/interfaces/enum/enumRules.d.ts +6 -6
  83. package/src/app/modules/interfaces/enum/httpResponseType.d.ts +6 -0
  84. package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +4 -4
  85. package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +13 -13
  86. package/src/app/modules/interfaces/filters/header-filters.d.ts +13 -13
  87. package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +10 -10
  88. package/src/app/modules/interfaces/report/template-pdf-base.d.ts +17 -17
  89. package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +6 -6
  90. package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +7 -7
  91. package/src/app/modules/services/crypto.service.d.ts +10 -10
  92. package/src/app/modules/services/export-data.service.d.ts +18 -18
  93. package/src/app/modules/services/file-forms.service.d.ts +7 -7
  94. package/src/app/modules/services/fuel-order-pdf.service.d.ts +59 -59
  95. package/src/app/modules/services/functions.service.d.ts +13 -13
  96. package/src/app/modules/services/generate-pdf.service.d.ts +21 -21
  97. package/src/app/modules/services/http.service.d.ts +23 -22
  98. package/src/app/modules/services/loading/loading.component.d.ts +15 -15
  99. package/src/app/modules/services/local-storage.service.d.ts +49 -49
  100. package/src/app/modules/services/message.service.d.ts +23 -23
  101. package/src/app/modules/services/screen-size-util.d.ts +3 -3
  102. package/src/app/modules/services/session.service.d.ts +14 -14
  103. package/src/app/modules/services/work-order-pdf.service.d.ts +60 -60
@@ -1,115 +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 "../../../../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>\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=\"container-text text-content\" style=\"width:44%\">\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)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\r\n Generar PDF\r\n </button>\r\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\r\n Generar PDF (Version 2.0)\r\n </button>\r\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\r\n <mat-icon>picture_as_pdf</mat-icon>\r\n Generar PDF (Version 3.0)\r\n </button> -->\r\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:0!important;padding:0!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>\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=\"container-text text-content\" style=\"width:44%\">\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)=\"generatePdfWithHtml2Canvas()\" color='primary' mat-raised-button style=\"margin-right: 10px;\">\r\n Generar PDF\r\n </button>\r\n <!-- <button (click)=\"generatePdfWithJsPDFVersion2()\" color='warn' mat-raised-button style=\"margin-right: 10px;\">\r\n Generar PDF (Version 2.0)\r\n </button>\r\n <button (click)=\"generatePdfWithJsPDFVersion3()\" color='accent' mat-raised-button>\r\n <mat-icon>picture_as_pdf</mat-icon>\r\n Generar PDF (Version 3.0)\r\n </button> -->\r\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:0!important;padding:0!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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LENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2tIQWpIVSxxQkFBcUIsOENBMEJ0QixlQUFlO3NHQTFCZCxxQkFBcUIseURDYmxDLDZ0TEE0SE07MkZEL0dPLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQThCMUIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZVBkZlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nZW5lcmF0ZS1wZGYuc2VydmljZSc7XHJcbmltcG9ydCB7IEZ1ZWxPcmRlclBkZlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9mdWVsLW9yZGVyLXBkZi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBqc1BERiB9IGZyb20gJ2pzcGRmJztcclxuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcclxuaW1wb3J0IHtNYXREaWFsb2csICBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZW1wbGF0ZS1mdWVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUZ1ZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICBuaXQ6ICcnLFxyXG4gICAgYWRkcmVzczogJycsXHJcbiAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgbWFpbDogJycsXHJcbiAgICBpbWFnZTogJycsXHJcbiAgICBjb2RlOiAnJyxcclxuICAgIGRhdGU6ICcnLFxyXG4gICAgcmVzcG9uc2libGU6ICcnLFxyXG4gICAgaWRfcGxhY2U6ICcnLFxyXG4gICAgYXBwcm92ZWRfYnk6ICcnLFxyXG4gICAgZGV0YWxsZTonJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgIGNvbnNlY3V0aXZlOiAnJyxcclxuICAgIG5hbWVQbGFjZTogJycsXHJcbiAgICBhZGRyZXNzUGxhY2U6ICcnLFxyXG4gICAgYXJlYTogJycsXHJcbiAgICBvZG9tZXRlcjonJyxcclxuICAgIGludm9pY2VSZWZlcmVuY2U6ICcnXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZUZ1ZWxDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhTW9kYWwsXHJcbiAgICBwcml2YXRlIGRpYWxvZzpNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgbWVzc2FnZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEZ1ZWxPcmRlclBkZlNlcnZpY2U6IEZ1ZWxPcmRlclBkZlNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YU1vZGFsLmRhdGFcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpe1xyXG4gICAgaWYodGhpcy5kYXRhTW9kYWwuYXV0b0dlbmVyYXRlKXtcclxuICAgICAgaWYodGhpcy5kYXRhTW9kYWwudXNlTmV3TWV0aG9kKSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVBkZldpdGhIdG1sMkNhbnZhcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgXHJcbiAgcHVibGljIGdlbmVyYXRlUGRmV2l0aEh0bWwyQ2FudmFzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGXCIpXHJcbiAgICBjb25zdCBEQVRBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlRk8nKTtcclxuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERigncCcsICdwdCcsICdhNCcpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcclxuICAgICAgc2NhbGU6IDNcclxuICAgIH07XHJcbiAgICBodG1sMmNhbnZhcyhEQVRBLCBvcHRpb25zKVxyXG4gICAgICAudGhlbigoY2FudmFzKSA9PiB7XHJcbiAgICAgICBjb25zdCBpbWcgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9QTkcnKTtcclxuXHJcbiAgICAgIC8vYWRkIGltZyBjYW52YXMgdG8gcGRmXHJcbiAgICAgIGNvbnN0IGJ1ZmZlclggPSAxNTtcclxuICAgICAgY29uc3QgYnVmZmVyWSA9IDE1O1xyXG4gICAgICBjb25zdCBpbWdQcm9wcyA9IChkb2MgYXMgYW55KS5nZXRJbWFnZVByb3BlcnRpZXMoaW1nKTtcclxuICAgICAgY29uc3QgcGRmV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKSAtMiAqIGJ1ZmZlclg7XHJcbiAgICAgIGNvbnN0IHBkZkhlaWdodCA9IChpbWdQcm9wcy5oZWlnaHQgKiBwZGZXaWR0aCkgLyBpbWdQcm9wcy53aWR0aDtcclxuICAgICAgZG9jLmFkZEltYWdlKFxyXG4gICAgICAgIGltZyxcclxuICAgICAgICAnUE5HJyxcclxuICAgICAgICBidWZmZXJYLFxyXG4gICAgICAgIGJ1ZmZlclksXHJcbiAgICAgICAgcGRmV2lkdGgsXHJcbiAgICAgICAgcGRmSGVpZ2h0LFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAnRkFTVCdcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGRvYztcclxuICAgIH0pXHJcbiAgICAudGhlbigoZG9jUmVzdWx0KSA9PiB7XHJcbiAgICAgLy9kb2NSZXN1bHQuc2F2ZShgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9X3JlcG9ydGUucGRmYCk7XHJcbiAgICAgIGRvY1Jlc3VsdC5vdXRwdXQoJ2RhdGF1cmxuZXd3aW5kb3cnLCB7ZmlsZW5hbWU6ICdmdWVrcmVwb3J0ZS5wZGYnfSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKClcclxuICAgICAgdGhpcy5tZXNzYWdlLmNsb3NlTG9hZGluZygpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZW5lcmF0ZVBkZldpdGhKc1BERlZlcnNpb24yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGIGNvbiBudWV2byBtw6l0b2RvXCIpO1xyXG4gICAgXHJcbiAgICB0aGlzLkZ1ZWxPcmRlclBkZlNlcnZpY2UuZ2VuZXJhdGVGdWVsT3JkZXJQREYodGhpcy5kYXRhKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZW5lcmFuZG8gUERGOicsIGVycm9yKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVBkZldpdGhIdG1sMkNhbnZhcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgZ2VuZXJhdGVQZGZXaXRoSnNQREZWZXJzaW9uMygpOiB2b2lkIHtcclxuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERiBwcm9mZXNpb25hbFwiKTtcclxuICAgIFxyXG4gICAgdGhpcy5GdWVsT3JkZXJQZGZTZXJ2aWNlLmdlbmVyYXRlRnVlbE9yZGVyUHJvZmVzaW9uYWxQREYodGhpcy5kYXRhKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZW5lcmFuZG8gUERGIHByb2Zlc2lvbmFsOicsIGVycm9yKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVBkZldpdGhIdG1sMkNhbnZhcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ0ZW1wbGF0ZUZPXCIgI3RlbXBsYXRlRk8+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwIHdoaXRlLWJhY2tncm91bmRcIj5cclxuXHJcbiAgICAgICAgPCEtLSBFbmNhYmV6YWRvICAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgdy0xMDAgZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBoZWFkZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWNvbnRlbnRcIiBzdHlsZT1cIndpZHRoOjgwJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1oZWFkZXIgdGV4dC11cHBlcmNhc2Ugd3JhcC10ZXh0XCI+e3tkYXRhLm5hbWV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5OSVQ6IHt7ZGF0YS5uaXR9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1ldmVubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj57e2RhdGEuYWRkcmVzc319PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWhlYWRlciB3cmFwLXRleHRcIj5URUw6IHt7ZGF0YS50ZWxlcGhvbmV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWcgdy0xMDBcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndXJsKCcgKyBkYXRhLmltYWdlICsgJyknXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICA8aDI+T3JkZW4gZGUgY29tYnVzdGlibGU8L2gyPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj5OwrA6IHt7ZGF0YS5jb25zZWN1dGl2ZX19PC9oMj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDdWVycG8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIHctMTAwIGZsZXhpYmxlLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPsOBcmVhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hcmVhfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5Dw7NkaWdvOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5jb2RlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5GZWNoYTo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MTYlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuZGF0ZX19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBmbGV4aWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5PcGVyYXJpbzo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MzIlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEucmVzcG9uc2libGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXIgY29udGFpbmVyLXRleHRcIiBzdHlsZT1cIndpZHRoOjEyJVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZnctYm9sZFwiPk9kw7NtZXRybzo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6NDQlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEub2RvbWV0ZXJ9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJib3JkZXItciBjb250YWluZXItdGV4dFwiIHN0eWxlPVwid2lkdGg6MTIlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmdy1ib2xkXCI+UmVmZXJlbmNpYSBGYWN0dXJhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDoxNiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5pbnZvaWNlUmVmZXJlbmNlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBjb250YWluZXItaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICA8aDM+RGF0b3MgZGVsIHByb3ZlZWRvcjwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSBmbGV4aWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5MdWdhcjo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6MzUlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEubmFtZVBsYWNlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5EaXJlY2Npw7NuOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRleHQgdGV4dC1jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIndyYXAtdGV4dFwiPnt7ZGF0YS5hZGRyZXNzUGxhY2V9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGUgY29udGFpbmVyLWhlYWRlcnNcIj5cclxuICAgICAgICAgICAgPGgzPkRldGFsbGVzIGRlbCBzZXJ2aWNpbzwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBkZXNjcmlwdGlvbi1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIndyYXAtdGV4dCB0ZXh0LXN0YXJ0XCI+e3tkYXRhLmRldGFsbGV9fTwvaDM+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIndyYXAtdGV4dCB0ZXh0LXN0YXJ0XCI+RGVzY3JpcGNpw7NuOiB7e2RhdGEuZGVzY3JpcHRpb259fTwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZSB3LTEwMCBmbGV4aWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1yIGNvbnRhaW5lci10ZXh0XCIgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImZ3LWJvbGRcIj5BVVRPUklaQURBIFBPUjo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0IHRleHQtY29udGVudFwiIHN0eWxlPVwid2lkdGg6NjUlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ3cmFwLXRleHRcIj57e2RhdGEuYXBwcm92ZWRfYnl9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIHBpc28gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBmb290ZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8aDI+RmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gZGUgdmVudGEgbyBmYWN0dXJhPC9oMj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwid3JhcC10ZXh0XCI+e3tkYXRhLm1haWx9fTwvaDI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImRvd25sb2FkLWNvbnRhaW5lclwiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZ2VuZXJhdGVQZGZXaXRoSHRtbDJDYW52YXMoKVwiIGNvbG9yPSdwcmltYXJ5JyBtYXQtcmFpc2VkLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICBHZW5lcmFyIFBERlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cImdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjIoKVwiIGNvbG9yPSd3YXJuJyBtYXQtcmFpc2VkLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICBHZW5lcmFyIFBERiAoVmVyc2lvbiAyLjApXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cImdlbmVyYXRlUGRmV2l0aEpzUERGVmVyc2lvbjMoKVwiIGNvbG9yPSdhY2NlbnQnIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtaWNvbj5waWN0dXJlX2FzX3BkZjwvbWF0LWljb24+XHJcbiAgICAgICAgR2VuZXJhciBQREYgKFZlcnNpb24gMy4wKVxyXG4gICAgPC9idXR0b24+IC0tPlxyXG48L2Rpdj4iXX0=
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:0!important;padding:0!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:0!important;padding:0!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