brainloper-ui 14.0.15 → 14.0.17

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 (97) hide show
  1. package/package.json +5 -1
  2. package/esm2020/brainloper-ui.mjs +0 -5
  3. package/esm2020/public_api.mjs +0 -52
  4. package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +0 -305
  5. package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
  6. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
  7. package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
  8. package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -31
  9. package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
  10. package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -691
  11. package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
  12. package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -185
  13. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -2
  14. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -2
  15. package/esm2020/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -2
  16. package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
  17. package/esm2020/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +0 -80
  18. package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -81
  19. package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
  20. package/esm2020/src/app/modules/data/rolesAndPermissions.mjs +0 -491
  21. package/esm2020/src/app/modules/interfaces/buttons/button-icon.mjs +0 -2
  22. package/esm2020/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -2
  23. package/esm2020/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -2
  24. package/esm2020/src/app/modules/interfaces/common/Permissions.mjs +0 -8
  25. package/esm2020/src/app/modules/interfaces/data-table/params.mjs +0 -2
  26. package/esm2020/src/app/modules/interfaces/data-table/rules.mjs +0 -2
  27. package/esm2020/src/app/modules/interfaces/data-table/table-columns.mjs +0 -2
  28. package/esm2020/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -2
  29. package/esm2020/src/app/modules/interfaces/enum/enumActions.mjs +0 -7
  30. package/esm2020/src/app/modules/interfaces/enum/enumRules.mjs +0 -8
  31. package/esm2020/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -2
  32. package/esm2020/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -2
  33. package/esm2020/src/app/modules/interfaces/filters/header-filters.mjs +0 -2
  34. package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
  35. package/esm2020/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -2
  36. package/esm2020/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -2
  37. package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
  38. package/esm2020/src/app/modules/services/export-data.service.mjs +0 -78055
  39. package/esm2020/src/app/modules/services/file-forms.service.mjs +0 -24
  40. package/esm2020/src/app/modules/services/functions.service.mjs +0 -54
  41. package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -58
  42. package/esm2020/src/app/modules/services/http.service.mjs +0 -154
  43. package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
  44. package/esm2020/src/app/modules/services/local-storage.service.mjs +0 -115
  45. package/esm2020/src/app/modules/services/message.service.mjs +0 -200
  46. package/esm2020/src/app/modules/services/screen-size-util.mjs +0 -6
  47. package/esm2020/src/app/modules/services/session.service.mjs +0 -42
  48. package/fesm2015/brainloper-ui.mjs +0 -81324
  49. package/fesm2015/brainloper-ui.mjs.map +0 -1
  50. package/fesm2020/brainloper-ui.mjs +0 -81285
  51. package/fesm2020/brainloper-ui.mjs.map +0 -1
  52. package/index.d.ts +0 -5
  53. package/public_api.d.ts +0 -51
  54. package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +0 -73
  55. package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +0 -13
  56. package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +0 -10
  57. package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +0 -24
  58. package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +0 -12
  59. package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +0 -46
  60. package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +0 -121
  61. package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +0 -21
  62. package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +0 -42
  63. package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +0 -2
  64. package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +0 -2
  65. package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +0 -2
  66. package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +0 -30
  67. package/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.d.ts +0 -35
  68. package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +0 -36
  69. package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +0 -26
  70. package/src/app/modules/data/rolesAndPermissions.d.ts +0 -2
  71. package/src/app/modules/interfaces/buttons/button-icon.d.ts +0 -9
  72. package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +0 -6
  73. package/src/app/modules/interfaces/combos/combos-configuration.d.ts +0 -13
  74. package/src/app/modules/interfaces/common/Permissions.d.ts +0 -40
  75. package/src/app/modules/interfaces/data-table/params.d.ts +0 -7
  76. package/src/app/modules/interfaces/data-table/rules.d.ts +0 -8
  77. package/src/app/modules/interfaces/data-table/table-columns.d.ts +0 -25
  78. package/src/app/modules/interfaces/data-table/table-configuration.d.ts +0 -25
  79. package/src/app/modules/interfaces/enum/enumActions.d.ts +0 -5
  80. package/src/app/modules/interfaces/enum/enumRules.d.ts +0 -6
  81. package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +0 -4
  82. package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +0 -13
  83. package/src/app/modules/interfaces/filters/header-filters.d.ts +0 -13
  84. package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +0 -10
  85. package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +0 -19
  86. package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +0 -20
  87. package/src/app/modules/services/crypto.service.d.ts +0 -10
  88. package/src/app/modules/services/export-data.service.d.ts +0 -18
  89. package/src/app/modules/services/file-forms.service.d.ts +0 -7
  90. package/src/app/modules/services/functions.service.d.ts +0 -13
  91. package/src/app/modules/services/generate-pdf.service.d.ts +0 -12
  92. package/src/app/modules/services/http.service.d.ts +0 -21
  93. package/src/app/modules/services/loading/loading.component.d.ts +0 -15
  94. package/src/app/modules/services/local-storage.service.d.ts +0 -49
  95. package/src/app/modules/services/message.service.d.ts +0 -23
  96. package/src/app/modules/services/screen-size-util.d.ts +0 -3
  97. package/src/app/modules/services/session.service.d.ts +0 -14
@@ -1,222 +0,0 @@
1
- import { ScreenSizeUtil } from '../../../services/screen-size-util';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../services/functions.service";
6
- import * as i2 from "../../../services/http.service";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "@angular/material/icon";
9
- import * as i5 from "@angular/material/form-field";
10
- import * as i6 from "@angular/material/input";
11
- import * as i7 from "@angular/material/select";
12
- import * as i8 from "@angular/material/core";
13
- import * as i9 from "@angular/material/datepicker";
14
- import * as i10 from "@angular/forms";
15
- import * as i11 from "../select-filter/select-filter.component";
16
- export class FiltersComponent {
17
- constructor(functionEter, http) {
18
- this.functionEter = functionEter;
19
- this.http = http;
20
- this.headerFilters = [];
21
- this.applyFilters = new EventEmitter();
22
- this.headerFiltersValue = "-1";
23
- this.headerFiltersSelected = [];
24
- this.movil = ScreenSizeUtil.isMobile();
25
- this.filtersPost = [];
26
- this.loadDates();
27
- this.loadDatesBetween();
28
- }
29
- async ngOnChanges(changes) {
30
- if (changes) {
31
- await this.loadFilter();
32
- }
33
- }
34
- async ngOnInit() {
35
- // if(this.headerFilters && this.headerFilters.length > 0)
36
- // await this.loadFilter()
37
- }
38
- handlerFiltersDate(deleteFilter, item, valueDate = null, valueBetween1 = null, valueBetween2 = null) {
39
- switch (item.type) {
40
- case 'date':
41
- if (deleteFilter) {
42
- this.delteFilter({
43
- labelFilter: 'Fecha entre',
44
- type: 'dateRange'
45
- });
46
- }
47
- else {
48
- this.loadDates(new Date(valueDate + "T05:00:00.000Z"));
49
- }
50
- break;
51
- case 'dateRange':
52
- if (deleteFilter) {
53
- this.delteFilter({
54
- labelFilter: 'Fecha igual a',
55
- type: 'date'
56
- });
57
- }
58
- else {
59
- this.loadDatesBetween(false, new Date(valueBetween1 + "T05:00:00.000Z"), new Date(valueBetween2 + "T05:00:00.000Z"));
60
- }
61
- break;
62
- default:
63
- break;
64
- }
65
- }
66
- selectFilter($event) {
67
- let validate = this.headerFiltersSelected.find(x => x.labelFilter == $event.value);
68
- if (!validate) {
69
- let value = this.headerFilters.find(x => x.labelFilter == $event.value);
70
- if (value) {
71
- this.headerFiltersSelected.push(value);
72
- this.handlerFiltersDate(true, { type: value.type });
73
- }
74
- }
75
- setTimeout(() => {
76
- this.headerFiltersValue = null;
77
- }, 500);
78
- }
79
- async selectFilterData($event, item) {
80
- let i = this.headerFiltersSelected.findIndex(x => x.labelFilter == item.labelFilter);
81
- if (i >= 0)
82
- this.headerFiltersSelected[i].value = $event.value;
83
- let f = this.filtersPost.findIndex(x => x.labelFilter == item.labelFilter);
84
- if ($event.value) {
85
- let value = null;
86
- switch (item.type) {
87
- case 'select':
88
- value = $event.value;
89
- break;
90
- case 'date':
91
- value = this.functionEter.dateDB($event.value);
92
- break;
93
- case 'dateRange':
94
- value = `${this.functionEter.dateDB(this.campaignOne.controls.start.value)},${this.functionEter.dateDB(this.campaignOne.controls.end.value)}`;
95
- break;
96
- default:
97
- break;
98
- }
99
- if (!value)
100
- return;
101
- if (f >= 0) {
102
- this.filtersPost[f].value = value;
103
- }
104
- else {
105
- this.filtersPost.push({
106
- tN: btoa(item.tN),
107
- primaryKey: item.fileNameDb ? item.fileNameDb : item.primaryKey,
108
- type: item.type,
109
- value: value,
110
- labelFilter: item.labelFilter
111
- });
112
- }
113
- this.applyFilters.emit(this.filtersPost);
114
- }
115
- }
116
- delteFilter(item) {
117
- let i = this.headerFiltersSelected.findIndex(x => x.labelFilter == item.labelFilter);
118
- let f = this.filtersPost.findIndex(x => x.labelFilter == item.labelFilter);
119
- if (i >= 0) {
120
- this.headerFiltersSelected[i].value = "-1";
121
- this.headerFiltersSelected.splice(i, 1);
122
- }
123
- if (f >= 0) {
124
- this.filtersPost.splice(f, 1);
125
- this.applyFilters.emit(this.filtersPost);
126
- }
127
- this.handlerFiltersDate(false, item);
128
- setTimeout(() => {
129
- this.headerFiltersValue = null;
130
- }, 500);
131
- }
132
- loadDates(value = null) {
133
- this.fecha = new UntypedFormGroup({
134
- fecha: new UntypedFormControl(value)
135
- });
136
- }
137
- loadDatesBetween(init = true, value1 = null, value2 = null) {
138
- if (init) {
139
- this.campaignOne = new UntypedFormGroup({
140
- start: new UntypedFormControl(null),
141
- end: new UntypedFormControl(null),
142
- });
143
- this.campaignTwo = new UntypedFormGroup({
144
- start: new UntypedFormControl(null),
145
- end: new UntypedFormControl(null),
146
- });
147
- return;
148
- }
149
- var day1 = 1;
150
- var day2 = 15;
151
- if (!value1) {
152
- value1 = new Date();
153
- }
154
- else {
155
- day1 = value1.getDate();
156
- }
157
- if (!value2) {
158
- value2 = new Date();
159
- }
160
- else {
161
- day2 = value2.getDate();
162
- }
163
- this.campaignOne = new UntypedFormGroup({
164
- start: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
165
- end: new UntypedFormControl(new Date(value2.getFullYear(), value2.getMonth(), day2)),
166
- });
167
- this.campaignTwo = new UntypedFormGroup({
168
- start: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
169
- end: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
170
- });
171
- }
172
- async loadFilter() {
173
- // if (this.headerFiltersSelected.length != 0) {
174
- // return
175
- // }
176
- let applyFilter = false;
177
- for (let element of this.headerFilters) {
178
- if (element.urlData) {
179
- let res = await this.http.getDataBody(element.urlData);
180
- element.body = res;
181
- }
182
- else if (element.type == 'select') {
183
- element.body = element.data;
184
- }
185
- element.filteredList = element.body;
186
- if (!element.primaryKey)
187
- element.primaryKey = element.visibleField;
188
- if (element.type == "date")
189
- element.labelFilter = element.labelFilter ?? "Fecha igual a";
190
- if (element.type == "dateRange")
191
- element.labelFilter = element.labelFilter ?? "Fecha entre";
192
- if (element.active) {
193
- this.headerFiltersSelected.push(element);
194
- this.filtersPost.push({
195
- tN: btoa(element.tN),
196
- primaryKey: element.fileNameDb ? element.fileNameDb : element.primaryKey,
197
- type: element.type,
198
- value: element.value,
199
- labelFilter: element.labelFilter
200
- });
201
- this.handlerFiltersDate(false, element, element.value, element.value.split(',')[0], element.value.split(',')[1]);
202
- if (element.value && element.value != '') {
203
- applyFilter = true;
204
- }
205
- }
206
- }
207
- if (applyFilter) {
208
- this.applyFilters.emit(this.filtersPost);
209
- }
210
- }
211
- }
212
- FiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.FunctionsService }, { token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Component });
213
- FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FiltersComponent, selector: "app-filters", inputs: { headerFilters: "headerFilters" }, outputs: { applyFilters: "applyFilters" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"headerFilters && headerFilters.length > 0\" style=\"display: flex; width: 100%; flex-wrap: wrap;\" class=\"col-12 mb-2\">\r\n <div class=\"col-md-4 col-12\">\r\n <mat-form-field >\r\n <mat-label>Filtros</mat-label>\r\n <mat-select (selectionChange)=\"selectFilter($event)\" [(ngModel)]=\"headerFiltersValue\">\r\n <mat-option\r\n *ngFor=\"let f of headerFilters\"\r\n value=\"{{ f.labelFilter }}\"\r\n >\r\n {{ f.labelFilter }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngFor=\"let item of headerFiltersSelected\" class=\"col-md-4 col-12 d-flex align-items-center\">\r\n <mat-form-field *ngIf=\"item.type == 'select'\">\r\n <mat-label>Filtrar por {{item.labelFilter}}</mat-label>\r\n <mat-select (selectionChange)=\"selectFilterData($event, item)\" [value]=\"item.value\">\r\n <app-select-filter\r\n [placeholder]=\"'Filter'\"\r\n [displayMember]=\"item.visibleField\"\r\n [array]=\"item.body\"\r\n (filteredReturn)=\"item.filteredList = $event\"\r\n [noResultsMessage]=\"'No hay resultados'\"\r\n >\r\n </app-select-filter>\r\n <mat-option\r\n *ngFor=\"let data of item.filteredList\"\r\n value=\"{{ data[item.primaryKey] }}\"\r\n >\r\n {{ data[item.visibleField] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"item.type == 'date'\" [formGroup]=\"fecha\">\r\n <mat-label>{{item.labelFilter}}</mat-label>\r\n <input (dateInput)=\"selectFilterData($event, item)\" matInput [matDatepicker]=\"Fecha\" autocomplete=\"off\" matInput\r\n formControlName='fecha' required>\r\n <mat-datepicker-toggle matSuffix [for]=\"Fecha\">\r\n </mat-datepicker-toggle>\r\n <mat-datepicker dateInput #Fecha [touchUi]='movil?true:false'></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"item.type == 'dateRange'\">\r\n <mat-label>{{item.labelFilter}}</mat-label>\r\n <mat-date-range-input\r\n [formGroup]=\"campaignOne\"\r\n [rangePicker]=\"campaignOnePicker\"\r\n [comparisonStart]=\"campaignTwo.value.start\"\r\n [comparisonEnd]=\"campaignTwo.value.end\">\r\n <input matStartDate placeholder=\"Start date\" formControlName=\"start\">\r\n <input (dateInput)=\"selectFilterData($event, item)\" matEndDate placeholder=\"End date\" formControlName=\"end\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"campaignOnePicker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>\r\n </mat-form-field>\r\n\r\n <div class=\"p-2\" style=\"cursor: pointer\" (click)=\"delteFilter(item)\"><mat-icon>cancel</mat-icon></div>\r\n\r\n </div>\r\n</div>\r\n", styles: ["mat-form-field{padding:0!important;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i9.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i9.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i9.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i9.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i11.SelectFilterComponent, selector: "app-select-filter", inputs: ["array", "placeholder", "color", "displayMember", "showSpinner", "noResultsMessage", "hasGroup", "groupArrayName"], outputs: ["filteredReturn"] }] });
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FiltersComponent, decorators: [{
215
- type: Component,
216
- args: [{ selector: 'app-filters', template: "<div *ngIf=\"headerFilters && headerFilters.length > 0\" style=\"display: flex; width: 100%; flex-wrap: wrap;\" class=\"col-12 mb-2\">\r\n <div class=\"col-md-4 col-12\">\r\n <mat-form-field >\r\n <mat-label>Filtros</mat-label>\r\n <mat-select (selectionChange)=\"selectFilter($event)\" [(ngModel)]=\"headerFiltersValue\">\r\n <mat-option\r\n *ngFor=\"let f of headerFilters\"\r\n value=\"{{ f.labelFilter }}\"\r\n >\r\n {{ f.labelFilter }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngFor=\"let item of headerFiltersSelected\" class=\"col-md-4 col-12 d-flex align-items-center\">\r\n <mat-form-field *ngIf=\"item.type == 'select'\">\r\n <mat-label>Filtrar por {{item.labelFilter}}</mat-label>\r\n <mat-select (selectionChange)=\"selectFilterData($event, item)\" [value]=\"item.value\">\r\n <app-select-filter\r\n [placeholder]=\"'Filter'\"\r\n [displayMember]=\"item.visibleField\"\r\n [array]=\"item.body\"\r\n (filteredReturn)=\"item.filteredList = $event\"\r\n [noResultsMessage]=\"'No hay resultados'\"\r\n >\r\n </app-select-filter>\r\n <mat-option\r\n *ngFor=\"let data of item.filteredList\"\r\n value=\"{{ data[item.primaryKey] }}\"\r\n >\r\n {{ data[item.visibleField] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"item.type == 'date'\" [formGroup]=\"fecha\">\r\n <mat-label>{{item.labelFilter}}</mat-label>\r\n <input (dateInput)=\"selectFilterData($event, item)\" matInput [matDatepicker]=\"Fecha\" autocomplete=\"off\" matInput\r\n formControlName='fecha' required>\r\n <mat-datepicker-toggle matSuffix [for]=\"Fecha\">\r\n </mat-datepicker-toggle>\r\n <mat-datepicker dateInput #Fecha [touchUi]='movil?true:false'></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field *ngIf=\"item.type == 'dateRange'\">\r\n <mat-label>{{item.labelFilter}}</mat-label>\r\n <mat-date-range-input\r\n [formGroup]=\"campaignOne\"\r\n [rangePicker]=\"campaignOnePicker\"\r\n [comparisonStart]=\"campaignTwo.value.start\"\r\n [comparisonEnd]=\"campaignTwo.value.end\">\r\n <input matStartDate placeholder=\"Start date\" formControlName=\"start\">\r\n <input (dateInput)=\"selectFilterData($event, item)\" matEndDate placeholder=\"End date\" formControlName=\"end\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"campaignOnePicker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #campaignOnePicker></mat-date-range-picker>\r\n </mat-form-field>\r\n\r\n <div class=\"p-2\" style=\"cursor: pointer\" (click)=\"delteFilter(item)\"><mat-icon>cancel</mat-icon></div>\r\n\r\n </div>\r\n</div>\r\n", styles: ["mat-form-field{padding:0!important;width:100%}\n"] }]
217
- }], ctorParameters: function () { return [{ type: i1.FunctionsService }, { type: i2.HttpService }]; }, propDecorators: { headerFilters: [{
218
- type: Input
219
- }], applyFilters: [{
220
- type: Output
221
- }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBVyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFDVSxZQUE4QixFQUM5QixJQUFpQjtRQURqQixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQWZsQixrQkFBYSxHQUFlLEVBQUUsQ0FBQTtRQUM3QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFakQsdUJBQWtCLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLDBCQUFxQixHQUFnQixFQUFFLENBQUE7UUFJdkMsVUFBSyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUdsQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQTtRQU1kLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFzQjtRQUN0QyxJQUFLLE9BQU8sRUFBRTtZQUNaLE1B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MkZEbERhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhO2lJQU1kLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRnVuY3Rpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Z1bmN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2NyZWVuU2l6ZVV0aWwgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS11dGlsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZWxlbWVudCB9IGZyb20gJ3Byb3RyYWN0b3InO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZpbHRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGhlYWRlckZpbHRlcnM6IEFycmF5PGFueT4gPSBbXVxyXG4gIEBPdXRwdXQoKSBhcHBseUZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgaGVhZGVyRmlsdGVyc1ZhbHVlID0gXCItMVwiXHJcbiAgaGVhZGVyRmlsdGVyc1NlbGVjdGVkIDogQXJyYXk8YW55PiA9IFtdXHJcbiAgY2FtcGFpZ25PbmU6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgY2FtcGFpZ25Ud286IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgZmVjaGE6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgbW92aWwgPSBTY3JlZW5TaXplVXRpbC5pc01vYmlsZSgpO1xyXG5cclxuXHJcbiAgZmlsdGVyc1Bvc3QgPSBbXVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZnVuY3Rpb25FdGVyOiBGdW5jdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMubG9hZERhdGVzKClcclxuICAgIHRoaXMubG9hZERhdGVzQmV0d2VlbigpXHJcbiAgIH1cclxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoIGNoYW5nZXMpIHtcclxuICAgICAgYXdhaXQgdGhpcy5sb2FkRmlsdGVyKClcclxuICAgIH1cclxuICB9ICBcclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBpZih0aGlzLmhlYWRlckZpbHRlcnMgJiYgdGhpcy5oZWFkZXJGaWx0ZXJzLmxlbmd0aCA+IDApXHJcbiAgICAvLyAgIGF3YWl0IHRoaXMubG9hZEZpbHRlcigpXHJcbiAgfVxyXG5cclxuICBoYW5kbGVyRmlsdGVyc0RhdGUoZGVsZXRlRmlsdGVyOmJvb2xlYW4sIGl0ZW06YW55LCB2YWx1ZURhdGUgPSBudWxsLCB2YWx1ZUJldHdlZW4xID0gbnVsbCwgdmFsdWVCZXR3ZWVuMiA9IG51bGwpe1xyXG4gICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgaWYoZGVsZXRlRmlsdGVyKXtcclxuICAgICAgICAgIHRoaXMuZGVsdGVGaWx0ZXIoe1xyXG4gICAgICAgICAgICBsYWJlbEZpbHRlcjonRmVjaGEgZW50cmUnLFxyXG4gICAgICAgICAgICB0eXBlOidkYXRlUmFuZ2UnXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0ZXMobmV3IERhdGUodmFsdWVEYXRlICsgXCJUMDU6MDA6MDAuMDAwWlwiKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcclxuICAgICAgICBpZihkZWxldGVGaWx0ZXIpe1xyXG4gICAgICAgICAgdGhpcy5kZWx0ZUZpbHRlcih7XHJcbiAgICAgICAgICAgIGxhYmVsRmlsdGVyOidGZWNoYSBpZ3VhbCBhJyxcclxuICAgICAgICAgICAgdHlwZTonZGF0ZSdcclxuICAgICAgICB9KVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0ZXNCZXR3ZWVuKGZhbHNlLCBuZXcgRGF0ZSh2YWx1ZUJldHdlZW4xICsgXCJUMDU6MDA6MDAuMDAwWlwiKSAsIG5ldyBEYXRlKHZhbHVlQmV0d2VlbjIgKyBcIlQwNTowMDowMC4wMDBaXCIpKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEZpbHRlcigkZXZlbnQpe1xyXG4gICAgbGV0IHZhbGlkYXRlID0gdGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWQuZmluZCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gJGV2ZW50LnZhbHVlKVxyXG4gICAgaWYoIXZhbGlkYXRlKXtcclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy5oZWFkZXJGaWx0ZXJzLmZpbmQoeCA9PiB4LmxhYmVsRmlsdGVyID09ICRldmVudC52YWx1ZSlcclxuICAgICAgaWYodmFsdWUpe1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlsdGVyc1NlbGVjdGVkLnB1c2godmFsdWUpXHJcbiAgICAgICAgdGhpcy5oYW5kbGVyRmlsdGVyc0RhdGUodHJ1ZSAsIHt0eXBlOnZhbHVlLnR5cGV9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5oZWFkZXJGaWx0ZXJzVmFsdWUgPSBudWxsXHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2VsZWN0RmlsdGVyRGF0YSgkZXZlbnQsIGl0ZW0pe1xyXG4gICAgbGV0IGkgPSB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZC5maW5kSW5kZXgoeCA9PiB4LmxhYmVsRmlsdGVyID09IGl0ZW0ubGFiZWxGaWx0ZXIpXHJcbiAgICBpZihpID49IDAgKSB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZFtpXS52YWx1ZSA9ICRldmVudC52YWx1ZVxyXG4gICAgbGV0IGYgPSB0aGlzLmZpbHRlcnNQb3N0LmZpbmRJbmRleCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gaXRlbS5sYWJlbEZpbHRlcilcclxuICAgIGlmKCRldmVudC52YWx1ZSl7XHJcbiAgICAgIGxldCB2YWx1ZSA9IG51bGxcclxuICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgICAgdmFsdWUgPSAkZXZlbnQudmFsdWVcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmZ1bmN0aW9uRXRlci5kYXRlREIoJGV2ZW50LnZhbHVlKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdkYXRlUmFuZ2UnOlxyXG4gICAgICAgICAgdmFsdWUgPSBgJHt0aGlzLmZ1bmN0aW9uRXRlci5kYXRlREIodGhpcy5jYW1wYWlnbk9uZS5jb250cm9scy5zdGFydC52YWx1ZSl9LCR7dGhpcy5mdW5jdGlvbkV0ZXIuZGF0ZURCKHRoaXMuY2FtcGFpZ25PbmUuY29udHJvbHMuZW5kLnZhbHVlKX1gXHJcbiAgICAgICAgICBicmVha1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXZhbHVlKSByZXR1cm5cclxuICAgICAgaWYoZiA+PSAwKXtcclxuICAgICAgICB0aGlzLmZpbHRlcnNQb3N0W2ZdLnZhbHVlID0gdmFsdWVcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzUG9zdC5wdXNoKHtcclxuICAgICAgICAgIHROOmJ0b2EoaXRlbS50TiksXHJcbiAgICAgICAgICBwcmltYXJ5S2V5Oml0ZW0uZmlsZU5hbWVEYj9pdGVtLmZpbGVOYW1lRGI6aXRlbS5wcmltYXJ5S2V5LFxyXG4gICAgICAgICAgdHlwZTppdGVtLnR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTp2YWx1ZSxcclxuICAgICAgICAgIGxhYmVsRmlsdGVyOml0ZW0ubGFiZWxGaWx0ZXJcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzLmVtaXQodGhpcy5maWx0ZXJzUG9zdClcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZGVsdGVGaWx0ZXIoaXRlbSl7XHJcbiAgICBsZXQgaSA9IHRoaXMuaGVhZGVyRmlsdGVyc1NlbGVjdGVkLmZpbmRJbmRleCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gaXRlbS5sYWJlbEZpbHRlcilcclxuICAgIGxldCBmID0gdGhpcy5maWx0ZXJzUG9zdC5maW5kSW5kZXgoeCA9PiB4LmxhYmVsRmlsdGVyID09IGl0ZW0ubGFiZWxGaWx0ZXIpXHJcbiAgICBpZihpID49IDApIHtcclxuICAgICAgdGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWRbaV0udmFsdWUgPSBcIi0xXCJcclxuICAgICAgdGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWQuc3BsaWNlKGksIDEpXHJcbiAgICB9XHJcbiAgICBpZihmID49IDApIHtcclxuICAgICAgdGhpcy5maWx0ZXJzUG9zdC5zcGxpY2UoZiwxKVxyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVycy5lbWl0KHRoaXMuZmlsdGVyc1Bvc3QpXHJcbiAgICB9XHJcbiAgICB0aGlzLmhhbmRsZXJGaWx0ZXJzRGF0ZShmYWxzZSwgaXRlbSlcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmhlYWRlckZpbHRlcnNWYWx1ZSA9IG51bGxcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBsb2FkRGF0ZXModmFsdWUgOiBEYXRlID0gbnVsbCl7XHJcbiAgICB0aGlzLmZlY2hhID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgICBmZWNoYTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh2YWx1ZSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZERhdGVzQmV0d2Vlbihpbml0OmJvb2xlYW4gPSB0cnVlLCB2YWx1ZTEgOiBEYXRlID0gbnVsbCwgdmFsdWUyIDogRGF0ZSA9IG51bGwpe1xyXG4gICAgaWYoaW5pdCl7XHJcbiAgICAgIHRoaXMuY2FtcGFpZ25PbmUgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgICAgc3RhcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgICAgZW5kOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY2FtcGFpZ25Ud28gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgICAgc3RhcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgICAgZW5kOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB2YXIgZGF5MSA9IDFcclxuICAgIHZhciBkYXkyID0gMTVcclxuICAgIGlmKCF2YWx1ZTEpe1xyXG4gICAgICB2YWx1ZTEgPSBuZXcgRGF0ZSgpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF5MSA9IHZhbHVlMS5nZXREYXRlKClcclxuICAgIH1cclxuXHJcbiAgICBpZighdmFsdWUyKXtcclxuICAgICAgdmFsdWUyID0gbmV3IERhdGUoKVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGRheTIgPSB2YWx1ZTIuZ2V0RGF0ZSgpXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYW1wYWlnbk9uZSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgc3RhcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUodmFsdWUxLmdldEZ1bGxZZWFyKCksIHZhbHVlMS5nZXRNb250aCgpLCBkYXkxKSksXHJcbiAgICAgIGVuZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChuZXcgRGF0ZSh2YWx1ZTIuZ2V0RnVsbFllYXIoKSwgdmFsdWUyLmdldE1vbnRoKCksIGRheTIpKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2FtcGFpZ25Ud28gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgIHN0YXJ0OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG5ldyBEYXRlKHZhbHVlMS5nZXRGdWxsWWVhcigpLCB2YWx1ZTEuZ2V0TW9udGgoKSwgZGF5MSkpLFxyXG4gICAgICBlbmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUodmFsdWUxLmdldEZ1bGxZZWFyKCksIHZhbHVlMS5nZXRNb250aCgpLCBkYXkxKSksXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkRmlsdGVyKCl7XHJcbiAgICAvLyBpZiAodGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWQubGVuZ3RoICE9IDApIHtcclxuICAgIC8vICAgcmV0dXJuXHJcbiAgICAvLyB9XHJcbiAgICBsZXQgYXBwbHlGaWx0ZXIgPSBmYWxzZSBcclxuICAgIGZvcihsZXQgZWxlbWVudCBvZiB0aGlzLmhlYWRlckZpbHRlcnMpe1xyXG4gICAgIFxyXG4gICAgICBpZihlbGVtZW50LnVybERhdGEpe1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0RGF0YUJvZHk8YW55PihlbGVtZW50LnVybERhdGEpXHJcbiAgICAgICAgZWxlbWVudC5ib2R5ID0gcmVzO1xyXG4gICAgICB9ZWxzZSBpZiAoZWxlbWVudC50eXBlID09ICdzZWxlY3QnKSB7ICAgICAgIFxyXG4gICAgICAgIGVsZW1lbnQuYm9keSA9IGVsZW1lbnQuZGF0YSAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIGVsZW1lbnQuZmlsdGVyZWRMaXN0ID0gZWxlbWVudC5ib2R5O1xyXG4gICAgICBpZighZWxlbWVudC5wcmltYXJ5S2V5KSBlbGVtZW50LnByaW1hcnlLZXkgPSBlbGVtZW50LnZpc2libGVGaWVsZFxyXG4gICAgICBpZihlbGVtZW50LnR5cGUgPT0gXCJkYXRlXCIpIGVsZW1lbnQubGFiZWxGaWx0ZXIgPSBlbGVtZW50LmxhYmVsRmlsdGVyID8/IFwiRmVjaGEgaWd1YWwgYVwiXHJcbiAgICAgIGlmKGVsZW1lbnQudHlwZSA9PSBcImRhdGVSYW5nZVwiKSBlbGVtZW50LmxhYmVsRmlsdGVyID0gZWxlbWVudC5sYWJlbEZpbHRlciA/PyBcIkZlY2hhIGVudHJlXCJcclxuICAgICAgaWYoZWxlbWVudC5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZC5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJzUG9zdC5wdXNoKHtcclxuICAgICAgICAgIHROOmJ0b2EoZWxlbWVudC50TiksXHJcbiAgICAgICAgICBwcmltYXJ5S2V5OmVsZW1lbnQuZmlsZU5hbWVEYj9lbGVtZW50LmZpbGVOYW1lRGI6ZWxlbWVudC5wcmltYXJ5S2V5LFxyXG4gICAgICAgICAgdHlwZTplbGVtZW50LnR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTplbGVtZW50LnZhbHVlLFxyXG4gICAgICAgICAgbGFiZWxGaWx0ZXI6ZWxlbWVudC5sYWJlbEZpbHRlclxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5oYW5kbGVyRmlsdGVyc0RhdGUoZmFsc2UsIGVsZW1lbnQsIGVsZW1lbnQudmFsdWUsIGVsZW1lbnQudmFsdWUuc3BsaXQoJywnKVswXSwgZWxlbWVudC52YWx1ZS5zcGxpdCgnLCcpWzFdKVxyXG4gICAgICAgIGlmIChlbGVtZW50LnZhbHVlICYmIGVsZW1lbnQudmFsdWUgIT0gJycpIHtcclxuICAgICAgICAgIGFwcGx5RmlsdGVyID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGFwcGx5RmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzLmVtaXQodGhpcy5maWx0ZXJzUG9zdCkgICAgICBcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImhlYWRlckZpbHRlcnMgJiYgaGVhZGVyRmlsdGVycy5sZW5ndGggPiAwXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyB3aWR0aDogMTAwJTsgZmxleC13cmFwOiB3cmFwO1wiIGNsYXNzPVwiY29sLTEyIG1iLTJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgY29sLTEyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICA8bWF0LWxhYmVsPkZpbHRyb3M8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiaGVhZGVyRmlsdGVyc1ZhbHVlXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBmIG9mIGhlYWRlckZpbHRlcnNcIlxyXG4gICAgICAgICAgdmFsdWU9XCJ7eyBmLmxhYmVsRmlsdGVyIH19XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBmLmxhYmVsRmlsdGVyIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGhlYWRlckZpbHRlcnNTZWxlY3RlZFwiIGNsYXNzPVwiY29sLW1kLTQgY29sLTEyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiaXRlbS50eXBlID09ICdzZWxlY3QnXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5GaWx0cmFyIHBvciB7e2l0ZW0ubGFiZWxGaWx0ZXJ9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0RmlsdGVyRGF0YSgkZXZlbnQsIGl0ZW0pXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cclxuICAgICAgICAgIDxhcHAtc2VsZWN0LWZpbHRlclxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0ZpbHRlcidcIlxyXG4gICAgICAgICAgICBbZGlzcGxheU1lbWJlcl09XCJpdGVtLnZpc2libGVGaWVsZFwiXHJcbiAgICAgICAgICAgIFthcnJheV09XCJpdGVtLmJvZHlcIlxyXG4gICAgICAgICAgICAoZmlsdGVyZWRSZXR1cm4pPVwiaXRlbS5maWx0ZXJlZExpc3QgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICBbbm9SZXN1bHRzTWVzc2FnZV09XCInTm8gaGF5IHJlc3VsdGFkb3MnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvYXBwLXNlbGVjdC1maWx0ZXI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmZpbHRlcmVkTGlzdFwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3sgZGF0YVtpdGVtLnByaW1hcnlLZXldIH19XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgZGF0YVtpdGVtLnZpc2libGVGaWVsZF0gfX1cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGF0ZSdcIiBbZm9ybUdyb3VwXT1cImZlY2hhXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7aXRlbS5sYWJlbEZpbHRlcn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgKGRhdGVJbnB1dCk9XCJzZWxlY3RGaWx0ZXJEYXRhKCRldmVudCwgaXRlbSlcIiBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJGZWNoYVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPSdmZWNoYScgcmVxdWlyZWQ+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cIkZlY2hhXCI+XHJcbiAgICAgICAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciBkYXRlSW5wdXQgI0ZlY2hhIFt0b3VjaFVpXT0nbW92aWw/dHJ1ZTpmYWxzZSc+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGF0ZVJhbmdlJ1wiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3tpdGVtLmxhYmVsRmlsdGVyfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXRcclxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiY2FtcGFpZ25PbmVcIlxyXG4gICAgICAgICAgW3JhbmdlUGlja2VyXT1cImNhbXBhaWduT25lUGlja2VyXCJcclxuICAgICAgICAgIFtjb21wYXJpc29uU3RhcnRdPVwiY2FtcGFpZ25Ud28udmFsdWUuc3RhcnRcIlxyXG4gICAgICAgICAgW2NvbXBhcmlzb25FbmRdPVwiY2FtcGFpZ25Ud28udmFsdWUuZW5kXCI+XHJcbiAgICAgICAgICA8aW5wdXQgIG1hdFN0YXJ0RGF0ZSBwbGFjZWhvbGRlcj1cIlN0YXJ0IGRhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiPlxyXG4gICAgICAgICAgPGlucHV0IChkYXRlSW5wdXQpPVwic2VsZWN0RmlsdGVyRGF0YSgkZXZlbnQsIGl0ZW0pXCIgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCI+XHJcbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImNhbXBhaWduT25lUGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjY2FtcGFpZ25PbmVQaWNrZXI+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoY2xpY2spPVwiZGVsdGVGaWx0ZXIoaXRlbSlcIj48bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj48L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,80 +0,0 @@
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 GeneratePdfComponent {
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
- third: '',
26
- odometer: '',
27
- approved_by: '',
28
- description: '',
29
- consecutive: '',
30
- nameProvider: '',
31
- addressProvider: '',
32
- area: '',
33
- };
34
- }
35
- ngOnInit() {
36
- this.data = this.dataModal.data;
37
- }
38
- ngAfterViewInit() {
39
- if (this.dataModal.autoGenerate) {
40
- this.downloadPDF();
41
- }
42
- }
43
- downloadPDF() {
44
- this.message.openLoading("Cargando", "Generando PDF");
45
- const DATA = document.getElementById('templateOT');
46
- const doc = new jsPDF('p', 'pt', 'a4');
47
- const options = {
48
- background: 'white',
49
- scale: 3
50
- };
51
- html2canvas(DATA, options)
52
- .then((canvas) => {
53
- const img = canvas.toDataURL('image/PNG');
54
- //add img canvas to pdf
55
- const bufferX = 15;
56
- const bufferY = 15;
57
- const imgProps = doc.getImageProperties(img);
58
- const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
59
- const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
60
- doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
61
- return doc;
62
- })
63
- .then((docResult) => {
64
- //docResult.save(`${new Date().toISOString()}_reporte.pdf`);
65
- docResult.output('dataurlnewwindow', { filename: 'reporte.pdf' });
66
- this.dialog.closeAll();
67
- this.message.closeLoading();
68
- });
69
- }
70
- }
71
- GeneratePdfComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatDialog }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
72
- GeneratePdfComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: GeneratePdfComponent, selector: "app-generate-pdf", ngImport: i0, template: "<div id=\"templateOT\" #templateOT>\r\n <div class=\"template-ot\" style=\"display: flex; flex-direction: column; width:100%; margin:0; background-color: white;\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde\" style=\"width:100%; height:30mm; display:flex; flex-direction: row; align-items: center; \">\r\n <div style=\"width:70%; display:flex; flex-direction:column; align-items: center;\">\r\n <h2 style=\"margin:0; padding:0; text-align: center; text-transform: uppercase;\">{{data.name}}</h2>\r\n <h2 style=\"margin:0; padding:0; text-align: center; \">NIT: {{data.nit}}</h2>\r\n <div style=\"width:70%; display:flex; flex-direction:row; justify-content: space-around;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">{{data.address}}</h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:30%;\">\r\n <div class=\"img\"\r\n style=\"width:90%; height:100px; margin: 10px; padding: 15px; background-image: url({{data.image}});\">\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"borde\"\r\n style=\"width:100%; height:10mm; display:flex; flex-direction: row; justify-content: space-around; align-items: center; background: #F0F4FF;\">\r\n <h2 style=\"margin:0; padding:0;\">ORDEN DE TRABAJO</h2>\r\n <h2 style=\"margin:0; padding:0;\">N\u00B0: {{data.consecutive}}</h2>\r\n\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Fecha:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.date}}</h2>\r\n </div>\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">C\u00F3digo:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.code}}</h2>\r\n </div>\r\n <div style=\"width:12%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">\u00C1rea:</h2>\r\n </div>\r\n <div style=\"width:32%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.area}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Operario:</h2>\r\n </div>\r\n <div style=\"width:47%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.responsible}}</h2>\r\n </div>\r\n <div style=\"width:18%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Od\u00F3metro:</h2>\r\n </div>\r\n <div style=\"width:22%\">\r\n <h2 style=\"text-align: center; margin-top:15px; padding:0\">{{data.odometer}}</h2>\r\n </div>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:10m; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Datos del proveedor</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row ; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Nombre:</h2>\r\n </div>\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">{{data.nameProvider}}</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div style=\"width:35%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.addressProvider}}</h2>\r\n </div>\r\n\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:8mm; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Detalles del servicio</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:20mm;\">\r\n <h3 style=\"margin-top:11px; padding:0;\">{{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:10mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin:1px; padding:0;\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div style=\"width:65%\">\r\n <h2 style=\"text-align: center; margin:5px; padding:0;\">{{data.approved_by}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde\"\r\n style=\"width:100%; height:15mm; display: flex; flex-direction: column; justify-content: center;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Favor adjuntar la orden a la factura o cuenta de cobro\r\n </h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">{{data.mail}}</h3>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n\r\n<div style=\"display: flex; justify-content: center; margin-top: 15px;\">\r\n <button (click)=\"downloadPDF()\" color='primary' mat-raised-button>Generar PDF</button>\r\n</div>", styles: [".img{background-size:100%;background-repeat:no-repeat;background-position:center;background-size:contain}h2{font-size:1rem}.borde{border:1px solid blue}\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"] }] });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneratePdfComponent, decorators: [{
74
- type: Component,
75
- args: [{ selector: 'app-generate-pdf', template: "<div id=\"templateOT\" #templateOT>\r\n <div class=\"template-ot\" style=\"display: flex; flex-direction: column; width:100%; margin:0; background-color: white;\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde\" style=\"width:100%; height:30mm; display:flex; flex-direction: row; align-items: center; \">\r\n <div style=\"width:70%; display:flex; flex-direction:column; align-items: center;\">\r\n <h2 style=\"margin:0; padding:0; text-align: center; text-transform: uppercase;\">{{data.name}}</h2>\r\n <h2 style=\"margin:0; padding:0; text-align: center; \">NIT: {{data.nit}}</h2>\r\n <div style=\"width:70%; display:flex; flex-direction:row; justify-content: space-around;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">{{data.address}}</h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:30%;\">\r\n <div class=\"img\"\r\n style=\"width:90%; height:100px; margin: 10px; padding: 15px; background-image: url({{data.image}});\">\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"borde\"\r\n style=\"width:100%; height:10mm; display:flex; flex-direction: row; justify-content: space-around; align-items: center; background: #F0F4FF;\">\r\n <h2 style=\"margin:0; padding:0;\">ORDEN DE TRABAJO</h2>\r\n <h2 style=\"margin:0; padding:0;\">N\u00B0: {{data.consecutive}}</h2>\r\n\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Fecha:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.date}}</h2>\r\n </div>\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">C\u00F3digo:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.code}}</h2>\r\n </div>\r\n <div style=\"width:12%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">\u00C1rea:</h2>\r\n </div>\r\n <div style=\"width:32%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.area}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:13%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Operario:</h2>\r\n </div>\r\n <div style=\"width:47%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.responsible}}</h2>\r\n </div>\r\n <div style=\"width:18%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Od\u00F3metro:</h2>\r\n </div>\r\n <div style=\"width:22%\">\r\n <h2 style=\"text-align: center; margin-top:15px; padding:0\">{{data.odometer}}</h2>\r\n </div>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:10m; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Datos del proveedor</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row ; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Nombre:</h2>\r\n </div>\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">{{data.nameProvider}}</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div style=\"width:35%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.addressProvider}}</h2>\r\n </div>\r\n\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:8mm; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Detalles del servicio</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:20mm;\">\r\n <h3 style=\"margin-top:11px; padding:0;\">{{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:10mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin:1px; padding:0;\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div style=\"width:65%\">\r\n <h2 style=\"text-align: center; margin:5px; padding:0;\">{{data.approved_by}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde\"\r\n style=\"width:100%; height:15mm; display: flex; flex-direction: column; justify-content: center;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Favor adjuntar la orden a la factura o cuenta de cobro\r\n </h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">{{data.mail}}</h3>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n\r\n<div style=\"display: flex; justify-content: center; margin-top: 15px;\">\r\n <button (click)=\"downloadPDF()\" color='primary' mat-raised-button>Generar PDF</button>\r\n</div>", styles: [".img{background-size:100%;background-repeat:no-repeat;background-position:center;background-size:contain}h2{font-size:1rem}.borde{border:1px solid blue}\n"] }]
76
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
77
- type: Inject,
78
- args: [MAT_DIALOG_DATA]
79
- }] }, { type: i1.MatDialog }, { type: i2.MessageService }]; } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvcmVwb3J0L2dlbmVyYXRlLXBkZi9nZW5lcmF0ZS1wZGYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvZ2VuZXJhdGUtcGRmL2dlbmVyYXRlLXBkZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBT3BGLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQ1MsU0FBNkMsRUFDcEIsU0FBUyxFQUNqQyxNQUFnQixFQUNqQixPQUF1QjtRQUh2QixjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUF4QmhDLFNBQUksR0FBRztZQUNMLElBQUksRUFBRSxFQUFFO1lBQ1IsR0FBRyxFQUFFLEVBQUU7WUFDUCxPQUFPLEVBQUUsRUFBRTtZQUNYLFNBQVMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEVBQUU7WUFDUixXQUFXLEVBQUUsRUFBRTtZQUNmLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsRUFBRTtZQUNoQixlQUFlLEVBQUUsRUFBRTtZQUNuQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUE7SUFPRyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUE7SUFDakMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtTQUNuQjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUc7WUFDZCxVQUFVLEVBQUUsT0FBTztZQUNuQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUM7UUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN2QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTNDLHVCQUF1QjtZQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sUUFBUSxHQUFJLEdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQy9ELE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ2hFLEdBQUcsQ0FBQyxRQUFRLENBQ1YsR0FBRyxFQUNILEtBQUssRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sQ0FDUCxDQUFDO1lBQ0YsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNuQiw0REFBNEQ7WUFDM0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQTNFVSxvQkFBb0IsOENBd0JyQixlQUFlO3FHQXhCZCxvQkFBb0Isd0RDWGpDLDIvTUFtSE07MkZEeEdPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQTRCekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJhdGUtcGRmJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhdGUtcGRmLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1wZGYuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQZGZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICBuaXQ6ICcnLFxyXG4gICAgYWRkcmVzczogJycsXHJcbiAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgbWFpbDogJycsXHJcbiAgICBpbWFnZTogJycsXHJcbiAgICBjb2RlOiAnJyxcclxuICAgIGRhdGU6ICcnLFxyXG4gICAgcmVzcG9uc2libGU6ICcnLFxyXG4gICAgdGhpcmQ6ICcnLFxyXG4gICAgb2RvbWV0ZXI6ICcnLFxyXG4gICAgYXBwcm92ZWRfYnk6ICcnLFxyXG4gICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgY29uc2VjdXRpdmU6ICcnLFxyXG4gICAgbmFtZVByb3ZpZGVyOiAnJyxcclxuICAgIGFkZHJlc3NQcm92aWRlcjogJycsXHJcbiAgICBhcmVhOiAnJyxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdlbmVyYXRlUGRmQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YU1vZGFsLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6TWF0RGlhbG9nLFxyXG4gICAgcHVibGljIG1lc3NhZ2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGFNb2RhbC5kYXRhXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKXtcclxuICAgIGlmKHRoaXMuZGF0YU1vZGFsLmF1dG9HZW5lcmF0ZSl7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRQREYoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkUERGKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGXCIpXHJcbiAgICBjb25zdCBEQVRBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlT1QnKTtcclxuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERigncCcsICdwdCcsICdhNCcpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcclxuICAgICAgc2NhbGU6IDNcclxuICAgIH07XHJcbiAgICBodG1sMmNhbnZhcyhEQVRBLCBvcHRpb25zKVxyXG4gICAgICAudGhlbigoY2FudmFzKSA9PiB7XHJcbiAgICAgICBjb25zdCBpbWcgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9QTkcnKTtcclxuXHJcbiAgICAgIC8vYWRkIGltZyBjYW52YXMgdG8gcGRmXHJcbiAgICAgIGNvbnN0IGJ1ZmZlclggPSAxNTtcclxuICAgICAgY29uc3QgYnVmZmVyWSA9IDE1O1xyXG4gICAgICBjb25zdCBpbWdQcm9wcyA9IChkb2MgYXMgYW55KS5nZXRJbWFnZVByb3BlcnRpZXMoaW1nKTtcclxuICAgICAgY29uc3QgcGRmV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKSAtMiAqIGJ1ZmZlclg7XHJcbiAgICAgIGNvbnN0IHBkZkhlaWdodCA9IChpbWdQcm9wcy5oZWlnaHQgKiBwZGZXaWR0aCkgLyBpbWdQcm9wcy53aWR0aDtcclxuICAgICAgZG9jLmFkZEltYWdlKFxyXG4gICAgICAgIGltZyxcclxuICAgICAgICAnUE5HJyxcclxuICAgICAgICBidWZmZXJYLFxyXG4gICAgICAgIGJ1ZmZlclksXHJcbiAgICAgICAgcGRmV2lkdGgsXHJcbiAgICAgICAgcGRmSGVpZ2h0LFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAnRkFTVCdcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGRvYztcclxuICAgIH0pXHJcbiAgICAudGhlbigoZG9jUmVzdWx0KSA9PiB7XHJcbiAgICAgLy9kb2NSZXN1bHQuc2F2ZShgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9X3JlcG9ydGUucGRmYCk7XHJcbiAgICAgIGRvY1Jlc3VsdC5vdXRwdXQoJ2RhdGF1cmxuZXd3aW5kb3cnLCB7ZmlsZW5hbWU6ICdyZXBvcnRlLnBkZid9KTtcclxuICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKVxyXG4gICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKClcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwidGVtcGxhdGVPVFwiICN0ZW1wbGF0ZU9UPlxyXG4gICAgPGRpdiBjbGFzcz1cInRlbXBsYXRlLW90XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB3aWR0aDoxMDAlOyBtYXJnaW46MDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCI+XHJcblxyXG4gICAgICAgIDwhLS0gRW5jYWJlemFkbyAgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlXCIgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MzBtbTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyBhbGlnbi1pdGVtczogY2VudGVyOyBcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjcwJTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XCI+e3tkYXRhLm5hbWV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOiBjZW50ZXI7IFwiPk5JVDoge3tkYXRhLm5pdH19PC9oMj5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDo3MCU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOiBjZW50ZXI7IFwiPnt7ZGF0YS5hZGRyZXNzfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjsgXCI+VEVMOiB7e2RhdGEudGVsZXBob25lfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MzAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDo5MCU7IGhlaWdodDoxMDBweDsgbWFyZ2luOiAxMHB4OyAgIHBhZGRpbmc6IDE1cHg7ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoe3tkYXRhLmltYWdlfX0pO1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTBtbTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgYmFja2dyb3VuZDogI0YwRjRGRjtcIj5cclxuICAgICAgICAgICAgPGgyIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDtcIj5PUkRFTiBERSBUUkFCQUpPPC9oMj5cclxuICAgICAgICAgICAgPGgyIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDtcIj5OwrA6IHt7ZGF0YS5jb25zZWN1dGl2ZX19PC9oMj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gQ3VlcnBvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjExbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoxMyU7IGJvcmRlci1yaWdodDoxcHggc29saWQgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPkZlY2hhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTUlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmRhdGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTMlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+Q8OzZGlnbzo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjE1JTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPnt7ZGF0YS5jb2RlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjEyJTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPsOBcmVhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MzIlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzowO1wiPnt7ZGF0YS5hcmVhfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjExbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoxMyU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDo1cHg7IHBhZGRpbmc6MDtcIj5PcGVyYXJpbzo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjQ3JTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPnt7ZGF0YS5yZXNwb25zaWJsZX19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoxOCU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDozcHg7IHBhZGRpbmc6MDtcIj5PZMOzbWV0cm86PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoyMiVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDoxNXB4OyBwYWRkaW5nOjBcIj57e2RhdGEub2RvbWV0ZXJ9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjEwbTsgYmFja2dyb3VuZDogI0YwRjRGRjtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPkRhdG9zIGRlbCBwcm92ZWVkb3I8L2gzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjExbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93IDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTUlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDozcHg7IHBhZGRpbmc6MDtcIj5Ob21icmU6PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozNSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDozcHg7IHBhZGRpbmc6MDtcIj57e2RhdGEubmFtZVByb3ZpZGVyfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjE1JTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjNweDsgcGFkZGluZzowO1wiPkRpcmVjY2nDs246PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDoyMHB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmFkZHJlc3NQcm92aWRlcn19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjhtbTsgYmFja2dyb3VuZDogI0YwRjRGRjtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPkRldGFsbGVzIGRlbCBzZXJ2aWNpbzwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlXCIgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MjBtbTtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luLXRvcDoxMXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmRlc2NyaXB0aW9ufX08L2gzPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDoxMG1tOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MzUlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIGJsdWU7ICBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjoxcHg7IHBhZGRpbmc6MDtcIj5BVVRPUklaQURBIFBPUjo8L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjY1JVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW46NXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmFwcHJvdmVkX2J5fX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gcGlzbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDoxNW1tOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPkZhdm9yIGFkanVudGFyIGxhIG9yZGVuIGEgbGEgZmFjdHVyYSBvIGN1ZW50YSBkZSBjb2Jyb1xyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8aDMgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+e3tkYXRhLm1haWx9fTwvaDM+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE1cHg7XCI+XHJcbiAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFBERigpXCIgY29sb3I9J3ByaW1hcnknIG1hdC1yYWlzZWQtYnV0dG9uPkdlbmVyYXIgUERGPC9idXR0b24+XHJcbjwvZGl2PiJdfQ==
@@ -1,81 +0,0 @@
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
- };
35
- }
36
- ngOnInit() {
37
- this.data = this.dataModal.data;
38
- }
39
- ngAfterViewInit() {
40
- if (this.dataModal.autoGenerate) {
41
- this.downloadPDF();
42
- }
43
- }
44
- downloadPDF() {
45
- this.message.openLoading("Cargando", "Generando PDF");
46
- const DATA = document.getElementById('templateFO');
47
- const doc = new jsPDF('p', 'pt', 'a4');
48
- const options = {
49
- background: 'white',
50
- scale: 3
51
- };
52
- html2canvas(DATA, options)
53
- .then((canvas) => {
54
- const img = canvas.toDataURL('image/PNG');
55
- //add img canvas to pdf
56
- const bufferX = 15;
57
- const bufferY = 15;
58
- const imgProps = doc.getImageProperties(img);
59
- const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
60
- const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
61
- doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
62
- return doc;
63
- })
64
- .then((docResult) => {
65
- //docResult.save(`${new Date().toISOString()}_reporte.pdf`);
66
- docResult.output('dataurlnewwindow', { filename: 'fuekreporte.pdf' });
67
- this.dialog.closeAll();
68
- this.message.closeLoading();
69
- });
70
- }
71
- }
72
- 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 });
73
- 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=\"template-ot\" style=\"display: flex; flex-direction: column; width:100%; margin:0; background-color: white;\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde\" style=\"width:100%; height:30mm; display:flex; flex-direction: row; align-items: center; \">\r\n <div style=\"width:70%; display:flex; flex-direction:column; align-items: center;\">\r\n <h2 style=\"margin:0; padding:0; text-align: center; text-transform: uppercase;\">{{data.name}}</h2>\r\n <h2 style=\"margin:0; padding:0; text-align: center; \">NIT: {{data.nit}}</h2>\r\n <div style=\"width:70%; display:flex; flex-direction:row; justify-content: space-around;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">{{data.address}}</h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:30%;\">\r\n <div class=\"img\"\r\n style=\"width:90%; height:100px; margin: 10px; padding: 15px; background-image: url({{data.image}});\">\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"borde\"\r\n style=\"width:100%; height:10mm; display:flex; flex-direction: row; justify-content: space-around; align-items: center; background: #F0F4FF;\">\r\n <h2 style=\"margin:0; padding:0;\">ORDEN DE COMBUSTIBLE</h2>\r\n <h2 style=\"margin:0; padding:0;\">N\u00B0: {{data.consecutive}}</h2>\r\n\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Fecha:</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.date}}</h2>\r\n </div>\r\n <div style=\"width:18%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Od\u00F3metro:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.odometer}}</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">\u00C1rea:</h2>\r\n </div>\r\n <div style=\"width:40%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.area}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">C\u00F3digo:</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.code}}</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Operario:</h2>\r\n </div>\r\n <div style=\"width:45%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.responsible}}</h2>\r\n </div>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:10m; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Datos del proveedor</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row ; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Lugar:</h2>\r\n </div>\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">{{data.namePlace}}</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div style=\"width:35%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.addressPlace}}</h2>\r\n </div>\r\n\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:8mm; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Detalles del servicio</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:20mm;\">\r\n <h3 style=\"margin: 6px 0 0 25px; padding:0;\">{{data.detalle}}</h3>\r\n <h3 style=\"margin: 0 0 0 25px; padding:0;\">Descripci\u00F3n: {{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:10mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin:1px; padding:0;\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div style=\"width:65%\">\r\n <h2 style=\"text-align: center; margin:5px; padding:0;\">{{data.approved_by}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde\"\r\n style=\"width:100%; height:15mm; display: flex; flex-direction: column; justify-content: center;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Favor adjuntar la orden de venta o factura\r\n </h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">{{data.mail}}</h3>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n\r\n<div style=\"display: flex; justify-content: center; margin-top: 15px;\">\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}h2{font-size:1rem}.borde{border:1px solid blue}\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"] }] });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TemplateFuelComponent, decorators: [{
75
- type: Component,
76
- args: [{ selector: 'app-template-fuel', template: "<div id=\"templateFO\" #templateFO>\r\n <div class=\"template-ot\" style=\"display: flex; flex-direction: column; width:100%; margin:0; background-color: white;\">\r\n\r\n <!-- Encabezado -->\r\n <div class=\"borde\" style=\"width:100%; height:30mm; display:flex; flex-direction: row; align-items: center; \">\r\n <div style=\"width:70%; display:flex; flex-direction:column; align-items: center;\">\r\n <h2 style=\"margin:0; padding:0; text-align: center; text-transform: uppercase;\">{{data.name}}</h2>\r\n <h2 style=\"margin:0; padding:0; text-align: center; \">NIT: {{data.nit}}</h2>\r\n <div style=\"width:70%; display:flex; flex-direction:row; justify-content: space-around;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">{{data.address}}</h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center; \">TEL: {{data.telephone}}</h3>\r\n </div>\r\n </div>\r\n <div style=\"width:30%;\">\r\n <div class=\"img\"\r\n style=\"width:90%; height:100px; margin: 10px; padding: 15px; background-image: url({{data.image}});\">\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"borde\"\r\n style=\"width:100%; height:10mm; display:flex; flex-direction: row; justify-content: space-around; align-items: center; background: #F0F4FF;\">\r\n <h2 style=\"margin:0; padding:0;\">ORDEN DE COMBUSTIBLE</h2>\r\n <h2 style=\"margin:0; padding:0;\">N\u00B0: {{data.consecutive}}</h2>\r\n\r\n </div>\r\n\r\n <!-- Cuerpo -->\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Fecha:</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.date}}</h2>\r\n </div>\r\n <div style=\"width:18%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Od\u00F3metro:</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.odometer}}</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">\u00C1rea:</h2>\r\n </div>\r\n <div style=\"width:40%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.area}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">C\u00F3digo:</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.code}}</h2>\r\n </div>\r\n <div style=\"width:20%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">Operario:</h2>\r\n </div>\r\n <div style=\"width:45%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:5px; padding:0;\">{{data.responsible}}</h2>\r\n </div>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:10m; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Datos del proveedor</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:11mm; display:flex; flex-direction:row ; align-items: center\">\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Lugar:</h2>\r\n </div>\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">{{data.namePlace}}</h2>\r\n </div>\r\n <div style=\"width:15%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin-top:3px; padding:0;\">Direcci\u00F3n:</h2>\r\n </div>\r\n <div style=\"width:35%\">\r\n <h2 style=\"text-align: center; margin-top:20px; padding:0;\">{{data.addressPlace}}</h2>\r\n </div>\r\n\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:8mm; background: #F0F4FF;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Detalles del servicio</h3>\r\n </div>\r\n <div class=\"borde\" style=\"width:100%; height:20mm;\">\r\n <h3 style=\"margin: 6px 0 0 25px; padding:0;\">{{data.detalle}}</h3>\r\n <h3 style=\"margin: 0 0 0 25px; padding:0;\">Descripci\u00F3n: {{data.description}}</h3>\r\n </div>\r\n\r\n <div class=\"borde\" style=\"width:100%; height:10mm; display:flex; flex-direction:row; align-items: center\">\r\n <div style=\"width:35%; border-right:1px solid blue; height: 100%;\">\r\n <h2 style=\"text-align: center; margin:1px; padding:0;\">AUTORIZADA POR:</h2>\r\n </div>\r\n <div style=\"width:65%\">\r\n <h2 style=\"text-align: center; margin:5px; padding:0;\">{{data.approved_by}}</h2>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- piso -->\r\n <div class=\"borde\"\r\n style=\"width:100%; height:15mm; display: flex; flex-direction: column; justify-content: center;\">\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">Favor adjuntar la orden de venta o factura\r\n </h3>\r\n <h3 style=\"margin:0; padding:0; text-align: center;\">{{data.mail}}</h3>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n\r\n<div style=\"display: flex; justify-content: center; margin-top: 15px;\">\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}h2{font-size:1rem}.borde{border:1px solid blue}\n"] }]
77
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
78
- type: Inject,
79
- args: [MAT_DIALOG_DATA]
80
- }] }, { type: i1.MatDialog }, { type: i2.MessageService }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZnVlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFPcEYsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFDUyxTQUE4QyxFQUNyQixTQUFTLEVBQ2pDLE1BQWdCLEVBQ2pCLE9BQXVCO1FBSHZCLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQUE7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQXpCaEMsU0FBSSxHQUFHO1lBQ0wsSUFBSSxFQUFFLEVBQUU7WUFDUixHQUFHLEVBQUUsRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsRUFBRTtZQUNmLE9BQU8sRUFBQyxFQUFFO1lBQ1YsV0FBVyxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsRUFBRTtZQUNmLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUMsRUFBRTtTQUNaLENBQUE7SUFPRyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUE7SUFDakMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtTQUNuQjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUc7WUFDZCxVQUFVLEVBQUUsT0FBTztZQUNuQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUM7UUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN2QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTNDLHVCQUF1QjtZQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sUUFBUSxHQUFJLEdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQy9ELE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ2hFLEdBQUcsQ0FBQyxRQUFRLENBQ1YsR0FBRyxFQUNILEtBQUssRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sQ0FDUCxDQUFDO1lBQ0YsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNuQiw0REFBNEQ7WUFDM0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBNUVVLHFCQUFxQiw4Q0F5QnRCLGVBQWU7c0dBekJkLHFCQUFxQix5RENYbEMsdW9OQXFIQTsyRkQxR2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs7MEJBNkIxQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGpzUERGIGZyb20gJ2pzcGRmJztcclxuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcclxuaW1wb3J0IHtNYXREaWFsb2csICBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZW1wbGF0ZS1mdWVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUZ1ZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICBuaXQ6ICcnLFxyXG4gICAgYWRkcmVzczogJycsXHJcbiAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgbWFpbDogJycsXHJcbiAgICBpbWFnZTogJycsXHJcbiAgICBjb2RlOiAnJyxcclxuICAgIGRhdGU6ICcnLFxyXG4gICAgcmVzcG9uc2libGU6ICcnLFxyXG4gICAgaWRfcGxhY2U6ICcnLFxyXG4gICAgYXBwcm92ZWRfYnk6ICcnLFxyXG4gICAgZGV0YWxsZTonJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgIGNvbnNlY3V0aXZlOiAnJyxcclxuICAgIG5hbWVQbGFjZTogJycsXHJcbiAgICBhZGRyZXNzUGxhY2U6ICcnLFxyXG4gICAgYXJlYTogJycsXHJcbiAgICBvZG9tZXRlcjonJyxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlRnVlbENvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGFNb2RhbCxcclxuICAgIHByaXZhdGUgZGlhbG9nOk1hdERpYWxvZyxcclxuICAgIHB1YmxpYyBtZXNzYWdlOiBNZXNzYWdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhTW9kYWwuZGF0YVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICBpZih0aGlzLmRhdGFNb2RhbC5hdXRvR2VuZXJhdGUpe1xyXG4gICAgICB0aGlzLmRvd25sb2FkUERGKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZFBERigpOiB2b2lkIHtcclxuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERlwiKVxyXG4gICAgY29uc3QgREFUQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZUZPJyk7XHJcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCAnYTQnKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXHJcbiAgICAgIHNjYWxlOiAzXHJcbiAgICB9O1xyXG4gICAgaHRtbDJjYW52YXMoREFUQSwgb3B0aW9ucylcclxuICAgICAgLnRoZW4oKGNhbnZhcykgPT4ge1xyXG4gICAgICAgY29uc3QgaW1nID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvUE5HJyk7XHJcblxyXG4gICAgICAvL2FkZCBpbWcgY2FudmFzIHRvIHBkZlxyXG4gICAgICBjb25zdCBidWZmZXJYID0gMTU7XHJcbiAgICAgIGNvbnN0IGJ1ZmZlclkgPSAxNTtcclxuICAgICAgY29uc3QgaW1nUHJvcHMgPSAoZG9jIGFzIGFueSkuZ2V0SW1hZ2VQcm9wZXJ0aWVzKGltZyk7XHJcbiAgICAgIGNvbnN0IHBkZldpZHRoID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldFdpZHRoKCkgLTIgKiBidWZmZXJYO1xyXG4gICAgICBjb25zdCBwZGZIZWlnaHQgPSAoaW1nUHJvcHMuaGVpZ2h0ICogcGRmV2lkdGgpIC8gaW1nUHJvcHMud2lkdGg7XHJcbiAgICAgIGRvYy5hZGRJbWFnZShcclxuICAgICAgICBpbWcsXHJcbiAgICAgICAgJ1BORycsXHJcbiAgICAgICAgYnVmZmVyWCxcclxuICAgICAgICBidWZmZXJZLFxyXG4gICAgICAgIHBkZldpZHRoLFxyXG4gICAgICAgIHBkZkhlaWdodCxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgJ0ZBU1QnXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBkb2M7XHJcbiAgICB9KVxyXG4gICAgLnRoZW4oKGRvY1Jlc3VsdCkgPT4ge1xyXG4gICAgIC8vZG9jUmVzdWx0LnNhdmUoYCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfV9yZXBvcnRlLnBkZmApO1xyXG4gICAgICBkb2NSZXN1bHQub3V0cHV0KCdkYXRhdXJsbmV3d2luZG93Jywge2ZpbGVuYW1lOiAnZnVla3JlcG9ydGUucGRmJ30pO1xyXG4gICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpXHJcbiAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ0ZW1wbGF0ZUZPXCIgI3RlbXBsYXRlRk8+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtb3RcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHdpZHRoOjEwMCU7IG1hcmdpbjowOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIj5cclxuXHJcbiAgICAgICAgPCEtLSBFbmNhYmV6YWRvICAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDozMG1tOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3c7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IFwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6NzAlOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcIj57e2RhdGEubmFtZX19PC9oMj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjsgXCI+TklUOiB7e2RhdGEubml0fX08L2gyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjcwJTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjsgXCI+e3tkYXRhLmFkZHJlc3N9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjogY2VudGVyOyBcIj5URUw6IHt7ZGF0YS50ZWxlcGhvbmV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjkwJTsgaGVpZ2h0OjEwMHB4OyBtYXJnaW46IDEwcHg7ICAgcGFkZGluZzogMTVweDsgIGJhY2tncm91bmQtaW1hZ2U6IHVybCh7e2RhdGEuaW1hZ2V9fSk7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDoxMG1tOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3c7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyBhbGlnbi1pdGVtczogY2VudGVyOyBiYWNrZ3JvdW5kOiAjRjBGNEZGO1wiPlxyXG4gICAgICAgICAgICA8aDIgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowO1wiPk9SREVOIERFIENPTUJVU1RJQkxFPC9oMj5cclxuICAgICAgICAgICAgPGgyIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDtcIj5OwrA6IHt7ZGF0YS5jb25zZWN1dGl2ZX19PC9oMj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gQ3VlcnBvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjExbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoxNSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPkZlY2hhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MjAlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmRhdGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTglOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+T2TDs21ldHJvOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTUlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLm9kb21ldGVyfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjIwJTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjVweDsgcGFkZGluZzowO1wiPsOBcmVhOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6NDAlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzowO1wiPnt7ZGF0YS5hcmVhfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjExbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDoxNSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDo1cHg7IHBhZGRpbmc6MDtcIj5Dw7NkaWdvOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MjAlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmNvZGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MjAlOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6NXB4OyBwYWRkaW5nOjA7XCI+T3BlcmFyaW86PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDo0NSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDo1cHg7IHBhZGRpbmc6MDtcIj57e2RhdGEucmVzcG9uc2libGV9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDoxMG07IGJhY2tncm91bmQ6ICNGMEY0RkY7XCI+XHJcbiAgICAgICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5EYXRvcyBkZWwgcHJvdmVlZG9yPC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDoxMW1tOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdyA7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjE1JTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBibHVlOyBoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6M3B4OyBwYWRkaW5nOjA7XCI+THVnYXI6PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozNSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgIGJsdWU7IGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDozcHg7IHBhZGRpbmc6MDtcIj57e2RhdGEubmFtZVBsYWNlfX08L2gyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOjE1JTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAgYmx1ZTsgaGVpZ2h0OiAxMDAlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGgyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjNweDsgcGFkZGluZzowO1wiPkRpcmVjY2nDs246PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozNSVcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDoyMHB4OyBwYWRkaW5nOjA7XCI+e3tkYXRhLmFkZHJlc3NQbGFjZX19PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjhtbTsgYmFja2dyb3VuZDogI0YwRjRGRjtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPkRldGFsbGVzIGRlbCBzZXJ2aWNpbzwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlXCIgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MjBtbTtcIj5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOiA2cHggMCAwIDI1cHg7IHBhZGRpbmc6MDtcIj57e2RhdGEuZGV0YWxsZX19PC9oMz5cclxuICAgICAgICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOiAwIDAgMCAyNXB4OyBwYWRkaW5nOjA7XCI+RGVzY3JpcGNpw7NuOiB7e2RhdGEuZGVzY3JpcHRpb259fTwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjEwbW07IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDozNSU7IGJvcmRlci1yaWdodDoxcHggc29saWQgYmx1ZTsgIGhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOjFweDsgcGFkZGluZzowO1wiPkFVVE9SSVpBREEgUE9SOjwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6NjUlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjo1cHg7IHBhZGRpbmc6MDtcIj57e2RhdGEuYXBwcm92ZWRfYnl9fTwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBwaXNvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjE1bW07IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGp1c3RpZnktY29udGVudDogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICA8aDMgc3R5bGU9XCJtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+RmF2b3IgYWRqdW50YXIgbGEgb3JkZW4gZGUgdmVudGEgbyBmYWN0dXJhXHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtYWxpZ246IGNlbnRlcjtcIj57e2RhdGEubWFpbH19PC9oMz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luLXRvcDogMTVweDtcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkUERGKClcIiBjb2xvcj0ncHJpbWFyeScgbWF0LXJhaXNlZC1idXR0b24+R2VuZXJhciBQREY8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==