brainloper-ui 1.2.16 → 4.0.0
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.
- package/{esm2022 → esm2020}/brainloper-ui.mjs +4 -4
- package/esm2020/public_api.mjs +51 -0
- package/esm2020/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +305 -0
- package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +29 -0
- package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
- package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
- package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +31 -0
- package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +159 -0
- package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +486 -0
- package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +118 -0
- package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +185 -0
- package/{esm2022 → esm2020}/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +1 -1
- package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +222 -0
- package/esm2020/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +80 -0
- package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +81 -0
- package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +108 -0
- package/{esm2022 → esm2020}/src/app/modules/interfaces/buttons/button-icon.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/combos/combos-configuration.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/data-table/params.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/data-table/rules.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/data-table/table-columns.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/data-table/table-configuration.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/enum/enumActions.mjs +6 -6
- package/{esm2022 → esm2020}/src/app/modules/interfaces/enum/enumRules.mjs +7 -7
- package/{esm2022 → esm2020}/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/filters/header-filters.mjs +1 -1
- package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +8 -0
- package/{esm2022 → esm2020}/src/app/modules/interfaces/report/template-pdf-ot.mjs +1 -1
- package/{esm2022 → esm2020}/src/app/modules/interfaces/report/template-pfd-fo.mjs +1 -1
- package/esm2020/src/app/modules/services/crypto.service.mjs +37 -0
- package/esm2020/src/app/modules/services/export-data.service.mjs +143 -0
- package/{esm2022 → esm2020}/src/app/modules/services/file-forms.service.mjs +24 -24
- package/{esm2022 → esm2020}/src/app/modules/services/functions.service.mjs +54 -54
- package/esm2020/src/app/modules/services/generate-pdf.service.mjs +58 -0
- package/esm2020/src/app/modules/services/http.service.mjs +154 -0
- package/esm2020/src/app/modules/services/loading/loading.component.mjs +28 -0
- package/{esm2022 → esm2020}/src/app/modules/services/local-storage.service.mjs +115 -115
- package/esm2020/src/app/modules/services/message.service.mjs +196 -0
- package/{esm2022 → esm2020}/src/app/modules/services/screen-size-util.mjs +5 -5
- package/esm2020/src/app/modules/services/session.service.mjs +42 -0
- package/fesm2015/brainloper-ui.mjs +2690 -0
- package/fesm2015/brainloper-ui.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/brainloper-ui.mjs +2563 -2520
- package/fesm2020/brainloper-ui.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/package.json +25 -19
- package/public_api.d.ts +50 -49
- package/src/app/modules/brainloper-ui/brainloper-ui.module.d.ts +73 -71
- package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +13 -13
- package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +10 -10
- package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +24 -24
- package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +12 -12
- package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +46 -46
- package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +104 -104
- package/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.d.ts +21 -21
- package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +42 -42
- package/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.d.ts +2 -2
- package/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.d.ts +2 -2
- package/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.d.ts +2 -2
- package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +30 -30
- package/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.d.ts +35 -35
- package/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.d.ts +36 -36
- package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +26 -0
- package/src/app/modules/interfaces/buttons/button-icon.d.ts +9 -9
- package/src/app/modules/interfaces/buttons/button-lavel-edit.d.ts +6 -6
- package/src/app/modules/interfaces/combos/combos-configuration.d.ts +13 -13
- package/src/app/modules/interfaces/data-table/params.d.ts +7 -7
- package/src/app/modules/interfaces/data-table/rules.d.ts +8 -8
- package/src/app/modules/interfaces/data-table/table-columns.d.ts +25 -25
- package/src/app/modules/interfaces/data-table/table-configuration.d.ts +19 -19
- package/src/app/modules/interfaces/enum/enumActions.d.ts +5 -5
- package/src/app/modules/interfaces/enum/enumRules.d.ts +6 -6
- package/src/app/modules/interfaces/file-forms-service/file-forms-params.d.ts +4 -4
- package/src/app/modules/interfaces/file-forms-service/file-input-params.d.ts +13 -13
- package/src/app/modules/interfaces/filters/header-filters.d.ts +13 -13
- package/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.d.ts +10 -10
- package/src/app/modules/interfaces/report/template-pdf-ot.d.ts +19 -19
- package/src/app/modules/interfaces/report/template-pfd-fo.d.ts +20 -20
- package/src/app/modules/services/crypto.service.d.ts +10 -10
- package/src/app/modules/services/export-data.service.d.ts +15 -15
- package/src/app/modules/services/file-forms.service.d.ts +7 -7
- package/src/app/modules/services/functions.service.d.ts +13 -13
- package/src/app/modules/services/generate-pdf.service.d.ts +12 -12
- package/src/app/modules/services/http.service.d.ts +21 -21
- package/src/app/modules/services/loading/loading.component.d.ts +15 -15
- package/src/app/modules/services/local-storage.service.d.ts +49 -49
- package/src/app/modules/services/message.service.d.ts +23 -23
- package/src/app/modules/services/screen-size-util.d.ts +3 -3
- package/src/app/modules/services/session.service.d.ts +14 -14
- package/esm2022/public_api.mjs +0 -50
- package/esm2022/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +0 -296
- package/esm2022/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -30
- package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
- package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
- package/esm2022/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -30
- package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -165
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -501
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -122
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -203
- package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -226
- package/esm2022/src/app/modules/brainloper-ui/components/report/generate-pdf/generate-pdf.component.mjs +0 -84
- package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -85
- package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -6
- package/esm2022/src/app/modules/services/crypto.service.mjs +0 -38
- package/esm2022/src/app/modules/services/export-data.service.mjs +0 -146
- package/esm2022/src/app/modules/services/generate-pdf.service.mjs +0 -59
- package/esm2022/src/app/modules/services/http.service.mjs +0 -156
- package/esm2022/src/app/modules/services/loading/loading.component.mjs +0 -30
- package/esm2022/src/app/modules/services/message.service.mjs +0 -198
- package/esm2022/src/app/modules/services/session.service.mjs +0 -43
- package/fesm2022/brainloper-ui.mjs.map +0 -1
|
@@ -1,226 +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/legacy-form-field";
|
|
10
|
-
import * as i6 from "@angular/material/legacy-input";
|
|
11
|
-
import * as i7 from "@angular/material/legacy-select";
|
|
12
|
-
import * as i8 from "@angular/material/legacy-core";
|
|
13
|
-
import * as i9 from "@angular/material/datepicker";
|
|
14
|
-
import * as i10 from "@angular/forms";
|
|
15
|
-
export class FiltersComponent {
|
|
16
|
-
functionEter;
|
|
17
|
-
http;
|
|
18
|
-
headerFilters = [];
|
|
19
|
-
applyFilters = new EventEmitter();
|
|
20
|
-
headerFiltersValue = "-1";
|
|
21
|
-
headerFiltersSelected = [];
|
|
22
|
-
campaignOne;
|
|
23
|
-
campaignTwo;
|
|
24
|
-
fecha;
|
|
25
|
-
movil = ScreenSizeUtil.isMobile();
|
|
26
|
-
filtersPost = [];
|
|
27
|
-
constructor(functionEter, http) {
|
|
28
|
-
this.functionEter = functionEter;
|
|
29
|
-
this.http = http;
|
|
30
|
-
this.loadDates();
|
|
31
|
-
this.loadDatesBetween();
|
|
32
|
-
}
|
|
33
|
-
async ngOnChanges(changes) {
|
|
34
|
-
if (changes) {
|
|
35
|
-
await this.loadFilter();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async ngOnInit() {
|
|
39
|
-
// if(this.headerFilters && this.headerFilters.length > 0)
|
|
40
|
-
// await this.loadFilter()
|
|
41
|
-
}
|
|
42
|
-
handlerFiltersDate(deleteFilter, item, valueDate = null, valueBetween1 = null, valueBetween2 = null) {
|
|
43
|
-
switch (item.type) {
|
|
44
|
-
case 'date':
|
|
45
|
-
if (deleteFilter) {
|
|
46
|
-
this.delteFilter({
|
|
47
|
-
labelFilter: 'Fecha entre',
|
|
48
|
-
type: 'dateRange'
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
this.loadDates(new Date(valueDate + "T05:00:00.000Z"));
|
|
53
|
-
}
|
|
54
|
-
break;
|
|
55
|
-
case 'dateRange':
|
|
56
|
-
if (deleteFilter) {
|
|
57
|
-
this.delteFilter({
|
|
58
|
-
labelFilter: 'Fecha igual a',
|
|
59
|
-
type: 'date'
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.loadDatesBetween(false, new Date(valueBetween1 + "T05:00:00.000Z"), new Date(valueBetween2 + "T05:00:00.000Z"));
|
|
64
|
-
}
|
|
65
|
-
break;
|
|
66
|
-
default:
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
selectFilter($event) {
|
|
71
|
-
let validate = this.headerFiltersSelected.find(x => x.labelFilter == $event.value);
|
|
72
|
-
if (!validate) {
|
|
73
|
-
let value = this.headerFilters.find(x => x.labelFilter == $event.value);
|
|
74
|
-
if (value) {
|
|
75
|
-
this.headerFiltersSelected.push(value);
|
|
76
|
-
this.handlerFiltersDate(true, { type: value.type });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
setTimeout(() => {
|
|
80
|
-
this.headerFiltersValue = null;
|
|
81
|
-
}, 500);
|
|
82
|
-
}
|
|
83
|
-
async selectFilterData($event, item) {
|
|
84
|
-
let i = this.headerFiltersSelected.findIndex(x => x.labelFilter == item.labelFilter);
|
|
85
|
-
if (i >= 0)
|
|
86
|
-
this.headerFiltersSelected[i].value = $event.value;
|
|
87
|
-
let f = this.filtersPost.findIndex(x => x.labelFilter == item.labelFilter);
|
|
88
|
-
if ($event.value) {
|
|
89
|
-
let value = null;
|
|
90
|
-
switch (item.type) {
|
|
91
|
-
case 'select':
|
|
92
|
-
value = $event.value;
|
|
93
|
-
break;
|
|
94
|
-
case 'date':
|
|
95
|
-
value = this.functionEter.dateDB($event.value);
|
|
96
|
-
break;
|
|
97
|
-
case 'dateRange':
|
|
98
|
-
value = `${this.functionEter.dateDB(this.campaignOne.controls.start.value)},${this.functionEter.dateDB(this.campaignOne.controls.end.value)}`;
|
|
99
|
-
break;
|
|
100
|
-
default:
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
if (!value)
|
|
104
|
-
return;
|
|
105
|
-
if (f >= 0) {
|
|
106
|
-
this.filtersPost[f].value = value;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
this.filtersPost.push({
|
|
110
|
-
tN: btoa(item.tN),
|
|
111
|
-
primaryKey: item.fileNameDb ? item.fileNameDb : item.primaryKey,
|
|
112
|
-
type: item.type,
|
|
113
|
-
value: value,
|
|
114
|
-
labelFilter: item.labelFilter
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
this.applyFilters.emit(this.filtersPost);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
delteFilter(item) {
|
|
121
|
-
let i = this.headerFiltersSelected.findIndex(x => x.labelFilter == item.labelFilter);
|
|
122
|
-
let f = this.filtersPost.findIndex(x => x.labelFilter == item.labelFilter);
|
|
123
|
-
if (i >= 0) {
|
|
124
|
-
this.headerFiltersSelected[i].value = "-1";
|
|
125
|
-
this.headerFiltersSelected.splice(i, 1);
|
|
126
|
-
}
|
|
127
|
-
if (f >= 0) {
|
|
128
|
-
this.filtersPost.splice(f, 1);
|
|
129
|
-
this.applyFilters.emit(this.filtersPost);
|
|
130
|
-
}
|
|
131
|
-
this.handlerFiltersDate(false, item);
|
|
132
|
-
setTimeout(() => {
|
|
133
|
-
this.headerFiltersValue = null;
|
|
134
|
-
}, 500);
|
|
135
|
-
}
|
|
136
|
-
loadDates(value = null) {
|
|
137
|
-
this.fecha = new UntypedFormGroup({
|
|
138
|
-
fecha: new UntypedFormControl(value)
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
loadDatesBetween(init = true, value1 = null, value2 = null) {
|
|
142
|
-
if (init) {
|
|
143
|
-
this.campaignOne = new UntypedFormGroup({
|
|
144
|
-
start: new UntypedFormControl(null),
|
|
145
|
-
end: new UntypedFormControl(null),
|
|
146
|
-
});
|
|
147
|
-
this.campaignTwo = new UntypedFormGroup({
|
|
148
|
-
start: new UntypedFormControl(null),
|
|
149
|
-
end: new UntypedFormControl(null),
|
|
150
|
-
});
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
var day1 = 1;
|
|
154
|
-
var day2 = 15;
|
|
155
|
-
if (!value1) {
|
|
156
|
-
value1 = new Date();
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
day1 = value1.getDate();
|
|
160
|
-
}
|
|
161
|
-
if (!value2) {
|
|
162
|
-
value2 = new Date();
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
day2 = value2.getDate();
|
|
166
|
-
}
|
|
167
|
-
this.campaignOne = new UntypedFormGroup({
|
|
168
|
-
start: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
|
|
169
|
-
end: new UntypedFormControl(new Date(value2.getFullYear(), value2.getMonth(), day2)),
|
|
170
|
-
});
|
|
171
|
-
this.campaignTwo = new UntypedFormGroup({
|
|
172
|
-
start: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
|
|
173
|
-
end: new UntypedFormControl(new Date(value1.getFullYear(), value1.getMonth(), day1)),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
async loadFilter() {
|
|
177
|
-
// if (this.headerFiltersSelected.length != 0) {
|
|
178
|
-
// return
|
|
179
|
-
// }
|
|
180
|
-
let applyFilter = false;
|
|
181
|
-
for (let element of this.headerFilters) {
|
|
182
|
-
if (element.urlData) {
|
|
183
|
-
let res = await this.http.getDataBody(element.urlData);
|
|
184
|
-
element.body = res;
|
|
185
|
-
}
|
|
186
|
-
else if (element.type == 'select') {
|
|
187
|
-
element.body = element.data;
|
|
188
|
-
}
|
|
189
|
-
element.filteredList = element.body;
|
|
190
|
-
if (!element.primaryKey)
|
|
191
|
-
element.primaryKey = element.visibleField;
|
|
192
|
-
if (element.type == "date")
|
|
193
|
-
element.labelFilter = element.labelFilter ?? "Fecha igual a";
|
|
194
|
-
if (element.type == "dateRange")
|
|
195
|
-
element.labelFilter = element.labelFilter ?? "Fecha entre";
|
|
196
|
-
if (element.active) {
|
|
197
|
-
this.headerFiltersSelected.push(element);
|
|
198
|
-
this.filtersPost.push({
|
|
199
|
-
tN: btoa(element.tN),
|
|
200
|
-
primaryKey: element.fileNameDb ? element.fileNameDb : element.primaryKey,
|
|
201
|
-
type: element.type,
|
|
202
|
-
value: element.value,
|
|
203
|
-
labelFilter: element.labelFilter
|
|
204
|
-
});
|
|
205
|
-
this.handlerFiltersDate(false, element, element.value, element.value.split(',')[0], element.value.split(',')[1]);
|
|
206
|
-
if (element.value && element.value != '') {
|
|
207
|
-
applyFilter = true;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
if (applyFilter) {
|
|
212
|
-
this.applyFilters.emit(this.filtersPost);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.FunctionsService }, { token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 <!-- <mat-select-filter\r\n [placeholder]=\"'Filter'\"\r\n [displayMember]=\"item.visibleField\"\r\n [array]=\"item.body\"\r\n (filteredReturn)=\"item.filteredList = $event\"\r\n >\r\n </mat-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.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "component", type: i7.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatLegacyOption, 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"] }] });
|
|
217
|
-
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
219
|
-
type: Component,
|
|
220
|
-
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 <!-- <mat-select-filter\r\n [placeholder]=\"'Filter'\"\r\n [displayMember]=\"item.visibleField\"\r\n [array]=\"item.body\"\r\n (filteredReturn)=\"item.filteredList = $event\"\r\n >\r\n </mat-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"] }]
|
|
221
|
-
}], ctorParameters: function () { return [{ type: i1.FunctionsService }, { type: i2.HttpService }]; }, propDecorators: { headerFilters: [{
|
|
222
|
-
type: Input
|
|
223
|
-
}], applyFilters: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBVyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFTdEUsTUFBTSxPQUFPLGdCQUFnQjtJQWdCakI7SUFDQTtJQWZELGFBQWEsR0FBZSxFQUFFLENBQUE7SUFDN0IsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakQsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLHFCQUFxQixHQUFnQixFQUFFLENBQUE7SUFDdkMsV0FBVyxDQUFtQjtJQUM5QixXQUFXLENBQW1CO0lBQzlCLEtBQUssQ0FBbUI7SUFDeEIsS0FBSyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUdsQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBRWhCLFlBQ1UsWUFBOEIsRUFDOUIsSUFBaUI7UUFEakIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFFekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQ3hCLENBQUM7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QUN6QztJQUNILENBQUM7d0dBbE5VLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLCtKQ2I3Qix5NkZBOERBOzs0RkRqRGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7aUlBTWQsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZnVuY3Rpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY3JlZW5TaXplVXRpbCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi1zaXplLXV0aWwnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbGVtZW50IH0gZnJvbSAncHJvdHJhY3Rvcic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmlsdGVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyRmlsdGVyczogQXJyYXk8YW55PiA9IFtdXHJcbiAgQE91dHB1dCgpIGFwcGx5RmlsdGVycyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBoZWFkZXJGaWx0ZXJzVmFsdWUgPSBcIi0xXCJcclxuICBoZWFkZXJGaWx0ZXJzU2VsZWN0ZWQgOiBBcnJheTxhbnk+ID0gW11cclxuICBjYW1wYWlnbk9uZTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBjYW1wYWlnblR3bzogVW50eXBlZEZvcm1Hcm91cDtcclxuICBmZWNoYTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBtb3ZpbCA9IFNjcmVlblNpemVVdGlsLmlzTW9iaWxlKCk7XHJcblxyXG5cclxuICBmaWx0ZXJzUG9zdCA9IFtdXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmdW5jdGlvbkV0ZXI6IEZ1bmN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5sb2FkRGF0ZXMoKVxyXG4gICAgdGhpcy5sb2FkRGF0ZXNCZXR3ZWVuKClcclxuICAgfVxyXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICggY2hhbmdlcykge1xyXG4gICAgICBhd2FpdCB0aGlzLmxvYWRGaWx0ZXIoKVxyXG4gICAgfVxyXG4gIH0gIFxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGlmKHRoaXMuaGVhZGVyRmlsdGVycyAmJiB0aGlzLmhlYWRlckZpbHRlcnMubGVuZ3RoID4gMClcclxuICAgIC8vICAgYXdhaXQgdGhpcy5sb2FkRmlsdGVyKClcclxuICB9XHJcblxyXG4gIGhhbmRsZXJGaWx0ZXJzRGF0ZShkZWxldGVGaWx0ZXI6Ym9vbGVhbiwgaXRlbTphbnksIHZhbHVlRGF0ZSA9IG51bGwsIHZhbHVlQmV0d2VlbjEgPSBudWxsLCB2YWx1ZUJldHdlZW4yID0gbnVsbCl7XHJcbiAgICBzd2l0Y2ggKGl0ZW0udHlwZSkge1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICBpZihkZWxldGVGaWx0ZXIpe1xyXG4gICAgICAgICAgdGhpcy5kZWx0ZUZpbHRlcih7XHJcbiAgICAgICAgICAgIGxhYmVsRmlsdGVyOidGZWNoYSBlbnRyZScsXHJcbiAgICAgICAgICAgIHR5cGU6J2RhdGVSYW5nZSdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmxvYWREYXRlcyhuZXcgRGF0ZSh2YWx1ZURhdGUgKyBcIlQwNTowMDowMC4wMDBaXCIpKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICdkYXRlUmFuZ2UnOlxyXG4gICAgICAgIGlmKGRlbGV0ZUZpbHRlcil7XHJcbiAgICAgICAgICB0aGlzLmRlbHRlRmlsdGVyKHtcclxuICAgICAgICAgICAgbGFiZWxGaWx0ZXI6J0ZlY2hhIGlndWFsIGEnLFxyXG4gICAgICAgICAgICB0eXBlOidkYXRlJ1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmxvYWREYXRlc0JldHdlZW4oZmFsc2UsIG5ldyBEYXRlKHZhbHVlQmV0d2VlbjEgKyBcIlQwNTowMDowMC4wMDBaXCIpICwgbmV3IERhdGUodmFsdWVCZXR3ZWVuMiArIFwiVDA1OjAwOjAwLjAwMFpcIikpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrXHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0RmlsdGVyKCRldmVudCl7XHJcbiAgICBsZXQgdmFsaWRhdGUgPSB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZC5maW5kKHggPT4geC5sYWJlbEZpbHRlciA9PSAkZXZlbnQudmFsdWUpXHJcbiAgICBpZighdmFsaWRhdGUpe1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLmhlYWRlckZpbHRlcnMuZmluZCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gJGV2ZW50LnZhbHVlKVxyXG4gICAgICBpZih2YWx1ZSl7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWQucHVzaCh2YWx1ZSlcclxuICAgICAgICB0aGlzLmhhbmRsZXJGaWx0ZXJzRGF0ZSh0cnVlICwge3R5cGU6dmFsdWUudHlwZX0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmhlYWRlckZpbHRlcnNWYWx1ZSA9IG51bGxcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZWxlY3RGaWx0ZXJEYXRhKCRldmVudCwgaXRlbSl7XHJcbiAgICBsZXQgaSA9IHRoaXMuaGVhZGVyRmlsdGVyc1NlbGVjdGVkLmZpbmRJbmRleCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gaXRlbS5sYWJlbEZpbHRlcilcclxuICAgIGlmKGkgPj0gMCApIHRoaXMuaGVhZGVyRmlsdGVyc1NlbGVjdGVkW2ldLnZhbHVlID0gJGV2ZW50LnZhbHVlXHJcbiAgICBsZXQgZiA9IHRoaXMuZmlsdGVyc1Bvc3QuZmluZEluZGV4KHggPT4geC5sYWJlbEZpbHRlciA9PSBpdGVtLmxhYmVsRmlsdGVyKVxyXG4gICAgaWYoJGV2ZW50LnZhbHVlKXtcclxuICAgICAgbGV0IHZhbHVlID0gbnVsbFxyXG4gICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgICB2YWx1ZSA9ICRldmVudC52YWx1ZVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZnVuY3Rpb25FdGVyLmRhdGVEQigkZXZlbnQudmFsdWUpXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJ2RhdGVSYW5nZSc6XHJcbiAgICAgICAgICB2YWx1ZSA9IGAke3RoaXMuZnVuY3Rpb25FdGVyLmRhdGVEQih0aGlzLmNhbXBhaWduT25lLmNvbnRyb2xzLnN0YXJ0LnZhbHVlKX0sJHt0aGlzLmZ1bmN0aW9uRXRlci5kYXRlREIodGhpcy5jYW1wYWlnbk9uZS5jb250cm9scy5lbmQudmFsdWUpfWBcclxuICAgICAgICAgIGJyZWFrXHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBpZighdmFsdWUpIHJldHVyblxyXG4gICAgICBpZihmID49IDApe1xyXG4gICAgICAgIHRoaXMuZmlsdGVyc1Bvc3RbZl0udmFsdWUgPSB2YWx1ZVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmZpbHRlcnNQb3N0LnB1c2goe1xyXG4gICAgICAgICAgdE46YnRvYShpdGVtLnROKSxcclxuICAgICAgICAgIHByaW1hcnlLZXk6aXRlbS5maWxlTmFtZURiP2l0ZW0uZmlsZU5hbWVEYjppdGVtLnByaW1hcnlLZXksXHJcbiAgICAgICAgICB0eXBlOml0ZW0udHlwZSxcclxuICAgICAgICAgIHZhbHVlOnZhbHVlLFxyXG4gICAgICAgICAgbGFiZWxGaWx0ZXI6aXRlbS5sYWJlbEZpbHRlclxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdCh0aGlzLmZpbHRlcnNQb3N0KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBkZWx0ZUZpbHRlcihpdGVtKXtcclxuICAgIGxldCBpID0gdGhpcy5oZWFkZXJGaWx0ZXJzU2VsZWN0ZWQuZmluZEluZGV4KHggPT4geC5sYWJlbEZpbHRlciA9PSBpdGVtLmxhYmVsRmlsdGVyKVxyXG4gICAgbGV0IGYgPSB0aGlzLmZpbHRlcnNQb3N0LmZpbmRJbmRleCh4ID0+IHgubGFiZWxGaWx0ZXIgPT0gaXRlbS5sYWJlbEZpbHRlcilcclxuICAgIGlmKGkgPj0gMCkge1xyXG4gICAgICB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZFtpXS52YWx1ZSA9IFwiLTFcIlxyXG4gICAgICB0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZC5zcGxpY2UoaSwgMSlcclxuICAgIH1cclxuICAgIGlmKGYgPj0gMCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnNQb3N0LnNwbGljZShmLDEpXHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzLmVtaXQodGhpcy5maWx0ZXJzUG9zdClcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlckZpbHRlcnNEYXRlKGZhbHNlLCBpdGVtKVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGVhZGVyRmlsdGVyc1ZhbHVlID0gbnVsbFxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGxvYWREYXRlcyh2YWx1ZSA6IERhdGUgPSBudWxsKXtcclxuICAgIHRoaXMuZmVjaGEgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgIGZlY2hhOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHZhbHVlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkRGF0ZXNCZXR3ZWVuKGluaXQ6Ym9vbGVhbiA9IHRydWUsIHZhbHVlMSA6IERhdGUgPSBudWxsLCB2YWx1ZTIgOiBEYXRlID0gbnVsbCl7XHJcbiAgICBpZihpbml0KXtcclxuICAgICAgdGhpcy5jYW1wYWlnbk9uZSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgICBzdGFydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgICBlbmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5jYW1wYWlnblR3byA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgICBzdGFydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKSxcclxuICAgICAgICBlbmQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHZhciBkYXkxID0gMVxyXG4gICAgdmFyIGRheTIgPSAxNVxyXG4gICAgaWYoIXZhbHVlMSl7XHJcbiAgICAgIHZhbHVlMSA9IG5ldyBEYXRlKClcclxuICAgIH1lbHNle1xyXG4gICAgICBkYXkxID0gdmFsdWUxLmdldERhdGUoKVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCF2YWx1ZTIpe1xyXG4gICAgICB2YWx1ZTIgPSBuZXcgRGF0ZSgpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF5MiA9IHZhbHVlMi5nZXREYXRlKClcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNhbXBhaWduT25lID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgICBzdGFydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChuZXcgRGF0ZSh2YWx1ZTEuZ2V0RnVsbFllYXIoKSwgdmFsdWUxLmdldE1vbnRoKCksIGRheTEpKSxcclxuICAgICAgZW5kOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG5ldyBEYXRlKHZhbHVlMi5nZXRGdWxsWWVhcigpLCB2YWx1ZTIuZ2V0TW9udGgoKSwgZGF5MikpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jYW1wYWlnblR3byA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgc3RhcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUodmFsdWUxLmdldEZ1bGxZZWFyKCksIHZhbHVlMS5nZXRNb250aCgpLCBkYXkxKSksXHJcbiAgICAgIGVuZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChuZXcgRGF0ZSh2YWx1ZTEuZ2V0RnVsbFllYXIoKSwgdmFsdWUxLmdldE1vbnRoKCksIGRheTEpKSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRGaWx0ZXIoKXtcclxuICAgIC8vIGlmICh0aGlzLmhlYWRlckZpbHRlcnNTZWxlY3RlZC5sZW5ndGggIT0gMCkge1xyXG4gICAgLy8gICByZXR1cm5cclxuICAgIC8vIH1cclxuICAgIGxldCBhcHBseUZpbHRlciA9IGZhbHNlIFxyXG4gICAgZm9yKGxldCBlbGVtZW50IG9mIHRoaXMuaGVhZGVyRmlsdGVycyl7XHJcbiAgICAgXHJcbiAgICAgIGlmKGVsZW1lbnQudXJsRGF0YSl7XHJcbiAgICAgICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMuaHR0cC5nZXREYXRhQm9keTxhbnk+KGVsZW1lbnQudXJsRGF0YSlcclxuICAgICAgICBlbGVtZW50LmJvZHkgPSByZXM7XHJcbiAgICAgIH1lbHNlIGlmIChlbGVtZW50LnR5cGUgPT0gJ3NlbGVjdCcpIHsgICAgICAgXHJcbiAgICAgICAgZWxlbWVudC5ib2R5ID0gZWxlbWVudC5kYXRhICAgICAgXHJcbiAgICAgIH1cclxuICAgICAgZWxlbWVudC5maWx0ZXJlZExpc3QgPSBlbGVtZW50LmJvZHk7XHJcbiAgICAgIGlmKCFlbGVtZW50LnByaW1hcnlLZXkpIGVsZW1lbnQucHJpbWFyeUtleSA9IGVsZW1lbnQudmlzaWJsZUZpZWxkXHJcbiAgICAgIGlmKGVsZW1lbnQudHlwZSA9PSBcImRhdGVcIikgZWxlbWVudC5sYWJlbEZpbHRlciA9IGVsZW1lbnQubGFiZWxGaWx0ZXIgPz8gXCJGZWNoYSBpZ3VhbCBhXCJcclxuICAgICAgaWYoZWxlbWVudC50eXBlID09IFwiZGF0ZVJhbmdlXCIpIGVsZW1lbnQubGFiZWxGaWx0ZXIgPSBlbGVtZW50LmxhYmVsRmlsdGVyID8/IFwiRmVjaGEgZW50cmVcIlxyXG4gICAgICBpZihlbGVtZW50LmFjdGl2ZSkge1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlsdGVyc1NlbGVjdGVkLnB1c2goZWxlbWVudClcclxuICAgICAgICB0aGlzLmZpbHRlcnNQb3N0LnB1c2goe1xyXG4gICAgICAgICAgdE46YnRvYShlbGVtZW50LnROKSxcclxuICAgICAgICAgIHByaW1hcnlLZXk6ZWxlbWVudC5maWxlTmFtZURiP2VsZW1lbnQuZmlsZU5hbWVEYjplbGVtZW50LnByaW1hcnlLZXksXHJcbiAgICAgICAgICB0eXBlOmVsZW1lbnQudHlwZSxcclxuICAgICAgICAgIHZhbHVlOmVsZW1lbnQudmFsdWUsXHJcbiAgICAgICAgICBsYWJlbEZpbHRlcjplbGVtZW50LmxhYmVsRmlsdGVyXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmhhbmRsZXJGaWx0ZXJzRGF0ZShmYWxzZSwgZWxlbWVudCwgZWxlbWVudC52YWx1ZSwgZWxlbWVudC52YWx1ZS5zcGxpdCgnLCcpWzBdLCBlbGVtZW50LnZhbHVlLnNwbGl0KCcsJylbMV0pXHJcbiAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUgJiYgZWxlbWVudC52YWx1ZSAhPSAnJykge1xyXG4gICAgICAgICAgYXBwbHlGaWx0ZXIgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYXBwbHlGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdCh0aGlzLmZpbHRlcnNQb3N0KSAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaGVhZGVyRmlsdGVycyAmJiBoZWFkZXJGaWx0ZXJzLmxlbmd0aCA+IDBcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IHdpZHRoOiAxMDAlOyBmbGV4LXdyYXA6IHdyYXA7XCIgY2xhc3M9XCJjb2wtMTIgbWItMlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBjb2wtMTJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgIDxtYXQtbGFiZWw+RmlsdHJvczwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdEZpbHRlcigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJoZWFkZXJGaWx0ZXJzVmFsdWVcIj5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGYgb2YgaGVhZGVyRmlsdGVyc1wiXHJcbiAgICAgICAgICB2YWx1ZT1cInt7IGYubGFiZWxGaWx0ZXIgfX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGYubGFiZWxGaWx0ZXIgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGVhZGVyRmlsdGVyc1NlbGVjdGVkXCIgY2xhc3M9XCJjb2wtbWQtNCBjb2wtMTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3NlbGVjdCdcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPkZpbHRyYXIgcG9yIHt7aXRlbS5sYWJlbEZpbHRlcn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3RGaWx0ZXJEYXRhKCRldmVudCwgaXRlbSlcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxyXG4gICAgICAgICAgPCEtLSA8bWF0LXNlbGVjdC1maWx0ZXJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidGaWx0ZXInXCJcclxuICAgICAgICAgICAgW2Rpc3BsYXlNZW1iZXJdPVwiaXRlbS52aXNpYmxlRmllbGRcIlxyXG4gICAgICAgICAgICBbYXJyYXldPVwiaXRlbS5ib2R5XCJcclxuICAgICAgICAgICAgKGZpbHRlcmVkUmV0dXJuKT1cIml0ZW0uZmlsdGVyZWRMaXN0ID0gJGV2ZW50XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC1maWx0ZXI+IC0tPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbS5maWx0ZXJlZExpc3RcIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGRhdGFbaXRlbS5wcmltYXJ5S2V5XSB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRhdGFbaXRlbS52aXNpYmxlRmllbGRdIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2RhdGUnXCIgW2Zvcm1Hcm91cF09XCJmZWNoYVwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e2l0ZW0ubGFiZWxGaWx0ZXJ9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IChkYXRlSW5wdXQpPVwic2VsZWN0RmlsdGVyRGF0YSgkZXZlbnQsIGl0ZW0pXCIgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiRmVjaGFcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT0nZmVjaGEnIHJlcXVpcmVkPlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJGZWNoYVwiPlxyXG4gICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgZGF0ZUlucHV0ICNGZWNoYSBbdG91Y2hVaV09J21vdmlsP3RydWU6ZmFsc2UnPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2RhdGVSYW5nZSdcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7aXRlbS5sYWJlbEZpbHRlcn19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0XHJcbiAgICAgICAgICBbZm9ybUdyb3VwXT1cImNhbXBhaWduT25lXCJcclxuICAgICAgICAgIFtyYW5nZVBpY2tlcl09XCJjYW1wYWlnbk9uZVBpY2tlclwiXHJcbiAgICAgICAgICBbY29tcGFyaXNvblN0YXJ0XT1cImNhbXBhaWduVHdvLnZhbHVlLnN0YXJ0XCJcclxuICAgICAgICAgIFtjb21wYXJpc29uRW5kXT1cImNhbXBhaWduVHdvLnZhbHVlLmVuZFwiPlxyXG4gICAgICAgICAgPGlucHV0ICBtYXRTdGFydERhdGUgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIj5cclxuICAgICAgICAgIDxpbnB1dCAoZGF0ZUlucHV0KT1cInNlbGVjdEZpbHRlckRhdGEoJGV2ZW50LCBpdGVtKVwiIG1hdEVuZERhdGUgcGxhY2Vob2xkZXI9XCJFbmQgZGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImVuZFwiPlxyXG4gICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJjYW1wYWlnbk9uZVBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI2NhbXBhaWduT25lUGlja2VyPjwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInAtMlwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cImRlbHRlRmlsdGVyKGl0ZW0pXCI+PG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+PC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import jsPDF from 'jspdf';
|
|
3
|
-
import html2canvas from 'html2canvas';
|
|
4
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
-
import * as i2 from "../../../../services/message.service";
|
|
8
|
-
import * as i3 from "@angular/material/legacy-button";
|
|
9
|
-
export class GeneratePdfComponent {
|
|
10
|
-
dialogRef;
|
|
11
|
-
dataModal;
|
|
12
|
-
dialog;
|
|
13
|
-
message;
|
|
14
|
-
data = {
|
|
15
|
-
name: '',
|
|
16
|
-
nit: '',
|
|
17
|
-
address: '',
|
|
18
|
-
telephone: '',
|
|
19
|
-
mail: '',
|
|
20
|
-
image: '',
|
|
21
|
-
code: '',
|
|
22
|
-
date: '',
|
|
23
|
-
responsible: '',
|
|
24
|
-
third: '',
|
|
25
|
-
odometer: '',
|
|
26
|
-
approved_by: '',
|
|
27
|
-
description: '',
|
|
28
|
-
consecutive: '',
|
|
29
|
-
nameProvider: '',
|
|
30
|
-
addressProvider: '',
|
|
31
|
-
area: '',
|
|
32
|
-
};
|
|
33
|
-
constructor(dialogRef, dataModal, dialog, message) {
|
|
34
|
-
this.dialogRef = dialogRef;
|
|
35
|
-
this.dataModal = dataModal;
|
|
36
|
-
this.dialog = dialog;
|
|
37
|
-
this.message = message;
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
this.data = this.dataModal.data;
|
|
41
|
-
}
|
|
42
|
-
ngAfterViewInit() {
|
|
43
|
-
if (this.dataModal.autoGenerate) {
|
|
44
|
-
this.downloadPDF();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
downloadPDF() {
|
|
48
|
-
this.message.openLoading("Cargando", "Generando PDF");
|
|
49
|
-
const DATA = document.getElementById('templateOT');
|
|
50
|
-
const doc = new jsPDF('p', 'pt', 'a4');
|
|
51
|
-
const options = {
|
|
52
|
-
background: 'white',
|
|
53
|
-
scale: 3
|
|
54
|
-
};
|
|
55
|
-
html2canvas(DATA, options)
|
|
56
|
-
.then((canvas) => {
|
|
57
|
-
const img = canvas.toDataURL('image/PNG');
|
|
58
|
-
//add img canvas to pdf
|
|
59
|
-
const bufferX = 15;
|
|
60
|
-
const bufferY = 15;
|
|
61
|
-
const imgProps = doc.getImageProperties(img);
|
|
62
|
-
const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
|
|
63
|
-
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
|
|
64
|
-
doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
|
|
65
|
-
return doc;
|
|
66
|
-
})
|
|
67
|
-
.then((docResult) => {
|
|
68
|
-
//docResult.save(`${new Date().toISOString()}_reporte.pdf`);
|
|
69
|
-
docResult.output('dataurlnewwindow', { filename: 'reporte.pdf' });
|
|
70
|
-
this.dialog.closeAll();
|
|
71
|
-
this.message.closeLoading();
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneratePdfComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatLegacyDialog }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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.MatLegacyButton, 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"] }] });
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneratePdfComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
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"] }]
|
|
80
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
81
|
-
type: Inject,
|
|
82
|
-
args: [MAT_DIALOG_DATA]
|
|
83
|
-
}] }, { type: i1.MatLegacyDialog }, { type: i2.MessageService }]; } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGRmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvcmVwb3J0L2dlbmVyYXRlLXBkZi9nZW5lcmF0ZS1wZGYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvZ2VuZXJhdGUtcGRmL2dlbmVyYXRlLXBkZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBb0Usc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBTzlKLE1BQU0sT0FBTyxvQkFBb0I7SUF1QnRCO0lBQ3lCO0lBQ3hCO0lBQ0Q7SUF4QlQsSUFBSSxHQUFHO1FBQ0wsSUFBSSxFQUFFLEVBQUU7UUFDUixHQUFHLEVBQUUsRUFBRTtRQUNQLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLEVBQUU7UUFDYixJQUFJLEVBQUUsRUFBRTtRQUNSLEtBQUssRUFBRSxFQUFFO1FBQ1QsSUFBSSxFQUFFLEVBQUU7UUFDUixJQUFJLEVBQUUsRUFBRTtRQUNSLFdBQVcsRUFBRSxFQUFFO1FBQ2YsS0FBSyxFQUFFLEVBQUU7UUFDVCxRQUFRLEVBQUUsRUFBRTtRQUNaLFdBQVcsRUFBRSxFQUFFO1FBQ2YsV0FBVyxFQUFFLEVBQUU7UUFDZixXQUFXLEVBQUUsRUFBRTtRQUNmLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGVBQWUsRUFBRSxFQUFFO1FBQ25CLElBQUksRUFBRSxFQUFFO0tBQ1QsQ0FBQTtJQUVELFlBQ1MsU0FBNkMsRUFDcEIsU0FBUyxFQUNqQyxNQUFnQixFQUNqQixPQUF1QjtRQUh2QixjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDNUIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBQztZQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDbkI7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDckQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsVUFBVSxFQUFFLE9BQU87WUFDbkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBQ0YsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUzQyx1QkFBdUI7WUFDdkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEsR0FBSSxHQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUMvRCxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNoRSxHQUFHLENBQUMsUUFBUSxDQUNWLEdBQUcsRUFDSCxLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLENBQ1AsQ0FBQztZQUNGLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkIsNERBQTREO1lBQzNELFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxRQUFRLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQTNFVSxvQkFBb0Isb0RBd0JyQixlQUFlOzRGQXhCZCxvQkFBb0Isd0RDWGpDLDIvTUFtSE07OzRGRHhHTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkE0QnpCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQganNQREYgZnJvbSAnanNwZGYnO1xyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJhdGUtcGRmJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhdGUtcGRmLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1wZGYuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQZGZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICBuaXQ6ICcnLFxyXG4gICAgYWRkcmVzczogJycsXHJcbiAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgbWFpbDogJycsXHJcbiAgICBpbWFnZTogJycsXHJcbiAgICBjb2RlOiAnJyxcclxuICAgIGRhdGU6ICcnLFxyXG4gICAgcmVzcG9uc2libGU6ICcnLFxyXG4gICAgdGhpcmQ6ICcnLFxyXG4gICAgb2RvbWV0ZXI6ICcnLFxyXG4gICAgYXBwcm92ZWRfYnk6ICcnLFxyXG4gICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgY29uc2VjdXRpdmU6ICcnLFxyXG4gICAgbmFtZVByb3ZpZGVyOiAnJyxcclxuICAgIGFkZHJlc3NQcm92aWRlcjogJycsXHJcbiAgICBhcmVhOiAnJyxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdlbmVyYXRlUGRmQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YU1vZGFsLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6TWF0RGlhbG9nLFxyXG4gICAgcHVibGljIG1lc3NhZ2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGFNb2RhbC5kYXRhXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKXtcclxuICAgIGlmKHRoaXMuZGF0YU1vZGFsLmF1dG9HZW5lcmF0ZSl7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRQREYoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkUERGKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXNzYWdlLm9wZW5Mb2FkaW5nKFwiQ2FyZ2FuZG9cIiwgXCJHZW5lcmFuZG8gUERGXCIpXHJcbiAgICBjb25zdCBEQVRBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlT1QnKTtcclxuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERigncCcsICdwdCcsICdhNCcpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcclxuICAgICAgc2NhbGU6IDNcclxuICAgIH07XHJcbiAgICBodG1sMmNhbnZhcyhEQVRBLCBvcHRpb25zKVxyXG4gICAgICAudGhlbigoY2FudmFzKSA9PiB7XHJcbiAgICAgICBjb25zdCBpbWcgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9QTkcnKTtcclxuXHJcbiAgICAgIC8vYWRkIGltZyBjYW52YXMgdG8gcGRmXHJcbiAgICAgIGNvbnN0IGJ1ZmZlclggPSAxNTtcclxuICAgICAgY29uc3QgYnVmZmVyWSA9IDE1O1xyXG4gICAgICBjb25zdCBpbWdQcm9wcyA9IChkb2MgYXMgYW55KS5nZXRJbWFnZVByb3BlcnRpZXMoaW1nKTtcclxuICAgICAgY29uc3QgcGRmV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKSAtMiAqIGJ1ZmZlclg7XHJcbiAgICAgIGNvbnN0IHBkZkhlaWdodCA9IChpbWdQcm9wcy5oZWlnaHQgKiBwZGZXaWR0aCkgLyBpbWdQcm9wcy53aWR0aDtcclxuICAgICAgZG9jLmFkZEltYWdlKFxyXG4gICAgICAgIGltZyxcclxuICAgICAgICAnUE5HJyxcclxuICAgICAgICBidWZmZXJYLFxyXG4gICAgICAgIGJ1ZmZlclksXHJcbiAgICAgICAgcGRmV2lkdGgsXHJcbiAgICAgICAgcGRmSGVpZ2h0LFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAnRkFTVCdcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGRvYztcclxuICAgIH0pXHJcbiAgICAudGhlbigoZG9jUmVzdWx0KSA9PiB7XHJcbiAgICAgLy9kb2NSZXN1bHQuc2F2ZShgJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9X3JlcG9ydGUucGRmYCk7XHJcbiAgICAgIGRvY1Jlc3VsdC5vdXRwdXQoJ2RhdGF1cmxuZXd3aW5kb3cnLCB7ZmlsZW5hbWU6ICdyZXBvcnRlLnBkZid9KTtcclxuICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKVxyXG4gICAgICB0aGlzLm1lc3NhZ2UuY2xvc2VMb2FkaW5nKClcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwidGVtcGxhdGVPVFwiICN0ZW1wbGF0ZU9UPlxyXG4gICAgPGRpdiBjbGFzcz1cInRlbXBsYXRlLW90XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB3aWR0aDoxMDAlOyBtYXJnaW46MDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCI+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,85 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import jsPDF from 'jspdf';
|
|
3
|
-
import html2canvas from 'html2canvas';
|
|
4
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
-
import * as i2 from "../../../../services/message.service";
|
|
8
|
-
import * as i3 from "@angular/material/legacy-button";
|
|
9
|
-
export class TemplateFuelComponent {
|
|
10
|
-
dialogRef;
|
|
11
|
-
dataModal;
|
|
12
|
-
dialog;
|
|
13
|
-
message;
|
|
14
|
-
data = {
|
|
15
|
-
name: '',
|
|
16
|
-
nit: '',
|
|
17
|
-
address: '',
|
|
18
|
-
telephone: '',
|
|
19
|
-
mail: '',
|
|
20
|
-
image: '',
|
|
21
|
-
code: '',
|
|
22
|
-
date: '',
|
|
23
|
-
responsible: '',
|
|
24
|
-
id_place: '',
|
|
25
|
-
approved_by: '',
|
|
26
|
-
detalle: '',
|
|
27
|
-
description: '',
|
|
28
|
-
consecutive: '',
|
|
29
|
-
namePlace: '',
|
|
30
|
-
addressPlace: '',
|
|
31
|
-
area: '',
|
|
32
|
-
odometer: '',
|
|
33
|
-
};
|
|
34
|
-
constructor(dialogRef, dataModal, dialog, message) {
|
|
35
|
-
this.dialogRef = dialogRef;
|
|
36
|
-
this.dataModal = dataModal;
|
|
37
|
-
this.dialog = dialog;
|
|
38
|
-
this.message = message;
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.data = this.dataModal.data;
|
|
42
|
-
}
|
|
43
|
-
ngAfterViewInit() {
|
|
44
|
-
if (this.dataModal.autoGenerate) {
|
|
45
|
-
this.downloadPDF();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
downloadPDF() {
|
|
49
|
-
this.message.openLoading("Cargando", "Generando PDF");
|
|
50
|
-
const DATA = document.getElementById('templateFO');
|
|
51
|
-
const doc = new jsPDF('p', 'pt', 'a4');
|
|
52
|
-
const options = {
|
|
53
|
-
background: 'white',
|
|
54
|
-
scale: 3
|
|
55
|
-
};
|
|
56
|
-
html2canvas(DATA, options)
|
|
57
|
-
.then((canvas) => {
|
|
58
|
-
const img = canvas.toDataURL('image/PNG');
|
|
59
|
-
//add img canvas to pdf
|
|
60
|
-
const bufferX = 15;
|
|
61
|
-
const bufferY = 15;
|
|
62
|
-
const imgProps = doc.getImageProperties(img);
|
|
63
|
-
const pdfWidth = doc.internal.pageSize.getWidth() - 2 * bufferX;
|
|
64
|
-
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
|
|
65
|
-
doc.addImage(img, 'PNG', bufferX, bufferY, pdfWidth, pdfHeight, undefined, 'FAST');
|
|
66
|
-
return doc;
|
|
67
|
-
})
|
|
68
|
-
.then((docResult) => {
|
|
69
|
-
//docResult.save(`${new Date().toISOString()}_reporte.pdf`);
|
|
70
|
-
docResult.output('dataurlnewwindow', { filename: 'fuekreporte.pdf' });
|
|
71
|
-
this.dialog.closeAll();
|
|
72
|
-
this.message.closeLoading();
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateFuelComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i1.MatLegacyDialog }, { token: i2.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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.MatLegacyButton, 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"] }] });
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TemplateFuelComponent, decorators: [{
|
|
79
|
-
type: Component,
|
|
80
|
-
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"] }]
|
|
81
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
82
|
-
type: Inject,
|
|
83
|
-
args: [MAT_DIALOG_DATA]
|
|
84
|
-
}] }, { type: i1.MatLegacyDialog }, { type: i2.MessageService }]; } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZnVlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3JlcG9ydC90ZW1wbGF0ZS1mdWVsL3RlbXBsYXRlLWZ1ZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9yZXBvcnQvdGVtcGxhdGUtZnVlbC90ZW1wbGF0ZS1mdWVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFvRSxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFPOUosTUFBTSxPQUFPLHFCQUFxQjtJQXdCdkI7SUFDeUI7SUFDeEI7SUFDRDtJQXpCVCxJQUFJLEdBQUc7UUFDTCxJQUFJLEVBQUUsRUFBRTtRQUNSLEdBQUcsRUFBRSxFQUFFO1FBQ1AsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsRUFBRTtRQUNiLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFBRTtRQUNSLElBQUksRUFBRSxFQUFFO1FBQ1IsV0FBVyxFQUFFLEVBQUU7UUFDZixRQUFRLEVBQUUsRUFBRTtRQUNaLFdBQVcsRUFBRSxFQUFFO1FBQ2YsT0FBTyxFQUFDLEVBQUU7UUFDVixXQUFXLEVBQUUsRUFBRTtRQUNmLFdBQVcsRUFBRSxFQUFFO1FBQ2YsU0FBUyxFQUFFLEVBQUU7UUFDYixZQUFZLEVBQUUsRUFBRTtRQUNoQixJQUFJLEVBQUUsRUFBRTtRQUNSLFFBQVEsRUFBQyxFQUFFO0tBQ1osQ0FBQTtJQUVELFlBQ1MsU0FBOEMsRUFDckIsU0FBUyxFQUNqQyxNQUFnQixFQUNqQixPQUF1QjtRQUh2QixjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDNUIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBQztZQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDbkI7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDckQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsVUFBVSxFQUFFLE9BQU87WUFDbkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBQ0YsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdkIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUzQyx1QkFBdUI7WUFDdkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEsR0FBSSxHQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUMvRCxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNoRSxHQUFHLENBQUMsUUFBUSxDQUNWLEdBQUcsRUFDSCxLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLENBQ1AsQ0FBQztZQUNGLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkIsNERBQTREO1lBQzNELFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBNUVVLHFCQUFxQixvREF5QnRCLGVBQWU7NEZBekJkLHFCQUFxQix5RENYbEMsdW9OQXFIQTs7NEZEMUdhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQTZCMUIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XHJcbmltcG9ydCB7TWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZywgIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZW1wbGF0ZS1mdWVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtZnVlbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUZ1ZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICBuaXQ6ICcnLFxyXG4gICAgYWRkcmVzczogJycsXHJcbiAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgbWFpbDogJycsXHJcbiAgICBpbWFnZTogJycsXHJcbiAgICBjb2RlOiAnJyxcclxuICAgIGRhdGU6ICcnLFxyXG4gICAgcmVzcG9uc2libGU6ICcnLFxyXG4gICAgaWRfcGxhY2U6ICcnLFxyXG4gICAgYXBwcm92ZWRfYnk6ICcnLFxyXG4gICAgZGV0YWxsZTonJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgIGNvbnNlY3V0aXZlOiAnJyxcclxuICAgIG5hbWVQbGFjZTogJycsXHJcbiAgICBhZGRyZXNzUGxhY2U6ICcnLFxyXG4gICAgYXJlYTogJycsXHJcbiAgICBvZG9tZXRlcjonJyxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlRnVlbENvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGFNb2RhbCxcclxuICAgIHByaXZhdGUgZGlhbG9nOk1hdERpYWxvZyxcclxuICAgIHB1YmxpYyBtZXNzYWdlOiBNZXNzYWdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhTW9kYWwuZGF0YVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICBpZih0aGlzLmRhdGFNb2RhbC5hdXRvR2VuZXJhdGUpe1xyXG4gICAgICB0aGlzLmRvd25sb2FkUERGKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZFBERigpOiB2b2lkIHtcclxuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIFBERlwiKVxyXG4gICAgY29uc3QgREFUQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZUZPJyk7XHJcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3AnLCAncHQnLCAnYTQnKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXHJcbiAgICAgIHNjYWxlOiAzXHJcbiAgICB9O1xyXG4gICAgaHRtbDJjYW52YXMoREFUQSwgb3B0aW9ucylcclxuICAgICAgLnRoZW4oKGNhbnZhcykgPT4ge1xyXG4gICAgICAgY29uc3QgaW1nID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvUE5HJyk7XHJcblxyXG4gICAgICAvL2FkZCBpbWcgY2FudmFzIHRvIHBkZlxyXG4gICAgICBjb25zdCBidWZmZXJYID0gMTU7XHJcbiAgICAgIGNvbnN0IGJ1ZmZlclkgPSAxNTtcclxuICAgICAgY29uc3QgaW1nUHJvcHMgPSAoZG9jIGFzIGFueSkuZ2V0SW1hZ2VQcm9wZXJ0aWVzKGltZyk7XHJcbiAgICAgIGNvbnN0IHBkZldpZHRoID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmdldFdpZHRoKCkgLTIgKiBidWZmZXJYO1xyXG4gICAgICBjb25zdCBwZGZIZWlnaHQgPSAoaW1nUHJvcHMuaGVpZ2h0ICogcGRmV2lkdGgpIC8gaW1nUHJvcHMud2lkdGg7XHJcbiAgICAgIGRvYy5hZGRJbWFnZShcclxuICAgICAgICBpbWcsXHJcbiAgICAgICAgJ1BORycsXHJcbiAgICAgICAgYnVmZmVyWCxcclxuICAgICAgICBidWZmZXJZLFxyXG4gICAgICAgIHBkZldpZHRoLFxyXG4gICAgICAgIHBkZkhlaWdodCxcclxuICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgJ0ZBU1QnXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBkb2M7XHJcbiAgICB9KVxyXG4gICAgLnRoZW4oKGRvY1Jlc3VsdCkgPT4ge1xyXG4gICAgIC8vZG9jUmVzdWx0LnNhdmUoYCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfV9yZXBvcnRlLnBkZmApO1xyXG4gICAgICBkb2NSZXN1bHQub3V0cHV0KCdkYXRhdXJsbmV3d2luZG93Jywge2ZpbGVuYW1lOiAnZnVla3JlcG9ydGUucGRmJ30pO1xyXG4gICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpXHJcbiAgICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ0ZW1wbGF0ZUZPXCIgI3RlbXBsYXRlRk8+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==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export class MenuBreadCrumb {
|
|
2
|
-
name = "";
|
|
3
|
-
router = null;
|
|
4
|
-
current = false;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1icmVhay1jcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pbnRlcmZhY2VzL21lbnUtYnJlYWstY3J1bWIvbWVudS1icmVhay1jcnVtYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ1QsTUFBTSxHQUFJLElBQUksQ0FBQTtJQUNkLE9BQU8sR0FBSSxLQUFLLENBQUE7Q0FDakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElNZW51QnJlYWRDcnVtYiB7XHJcbiAgbmFtZTpzdHJpbmcsXHJcbiAgcm91dGVyPzpzdHJpbmcsXHJcbiAgY3VycmVudD86Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWVudUJyZWFkQ3J1bWIgaW1wbGVtZW50cyBJTWVudUJyZWFkQ3J1bWIgIHtcclxuICBuYW1lID0gXCJcIlxyXG4gIHJvdXRlcj8gPSBudWxsXHJcbiAgY3VycmVudD8gPSBmYWxzZVxyXG59XHJcbiJdfQ==
|