brainloper-ui 18.0.1 → 19.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/fesm2022/brainloper-ui.mjs +111 -102
- package/fesm2022/brainloper-ui.mjs.map +1 -1
- package/package.json +13 -15
- package/esm2022/brainloper-ui.mjs +0 -5
- package/esm2022/public_api.mjs +0 -58
- package/esm2022/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +0 -303
- 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 -42
- package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -183
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -747
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -120
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -205
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -2
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -2
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -2
- package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -227
- package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -89
- package/esm2022/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +0 -86
- package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -117
- package/esm2022/src/app/modules/directives/carousel-item.directive.mjs +0 -20
- package/esm2022/src/app/modules/interfaces/buttons/button-icon.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/data-table/params.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/data-table/rules.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/data-table/table-columns.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/enum/enumActions.mjs +0 -8
- package/esm2022/src/app/modules/interfaces/enum/enumRules.mjs +0 -8
- package/esm2022/src/app/modules/interfaces/enum/httpResponseType.mjs +0 -8
- package/esm2022/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/filters/header-filters.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -6
- package/esm2022/src/app/modules/interfaces/report/template-pdf-base.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +0 -2
- package/esm2022/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -2
- package/esm2022/src/app/modules/services/crypto.service.mjs +0 -38
- package/esm2022/src/app/modules/services/export-data.service.mjs +0 -169
- package/esm2022/src/app/modules/services/file-forms.service.mjs +0 -24
- package/esm2022/src/app/modules/services/fuel-order-pdf.service.mjs +0 -346
- package/esm2022/src/app/modules/services/functions.service.mjs +0 -75
- package/esm2022/src/app/modules/services/generate-pdf.service.mjs +0 -93
- package/esm2022/src/app/modules/services/http.service.mjs +0 -142
- package/esm2022/src/app/modules/services/loading/loading.component.mjs +0 -30
- package/esm2022/src/app/modules/services/local-storage.service.mjs +0 -115
- package/esm2022/src/app/modules/services/message.service.mjs +0 -202
- package/esm2022/src/app/modules/services/purchase-order-pdf.service.mjs +0 -179
- package/esm2022/src/app/modules/services/screen-size-util.mjs +0 -6
- package/esm2022/src/app/modules/services/session.service.mjs +0 -43
- package/esm2022/src/app/modules/services/work-order-pdf.service.mjs +0 -363
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
|
|
4
|
-
import { forkJoin } from 'rxjs';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/dialog";
|
|
8
|
-
import * as i2 from "../../../../services/http.service";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "@angular/material/button";
|
|
11
|
-
import * as i5 from "@angular/material/form-field";
|
|
12
|
-
import * as i6 from "@angular/material/input";
|
|
13
|
-
import * as i7 from "@angular/material/select";
|
|
14
|
-
import * as i8 from "@angular/material/core";
|
|
15
|
-
import * as i9 from "@angular/forms";
|
|
16
|
-
export class TableModalComponent {
|
|
17
|
-
dialogRef;
|
|
18
|
-
data;
|
|
19
|
-
http;
|
|
20
|
-
modalForm = new UntypedFormGroup({});
|
|
21
|
-
dataCombo = {};
|
|
22
|
-
constructor(dialogRef, data, http) {
|
|
23
|
-
this.dialogRef = dialogRef;
|
|
24
|
-
this.data = data;
|
|
25
|
-
this.http = http;
|
|
26
|
-
}
|
|
27
|
-
onNoClick() {
|
|
28
|
-
this.dialogRef.close();
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
let group = {};
|
|
32
|
-
let httpRequests = [];
|
|
33
|
-
this.data.columns.map((element) => {
|
|
34
|
-
if (element.type === 'currency') {
|
|
35
|
-
element.value = element.value ? element.value.replace(/\./g, '') : '';
|
|
36
|
-
element.type = 'number';
|
|
37
|
-
}
|
|
38
|
-
if (!element.disregardForAdd) {
|
|
39
|
-
if (element.type === 'combo') {
|
|
40
|
-
this.dataCombo[element.paramsCombo.selectionField !== element.ID ? element.paramsCombo.selectionField : element.ID] = '';
|
|
41
|
-
}
|
|
42
|
-
let initialValue = this.data.action === 'edit' ? element.value : '';
|
|
43
|
-
if (element.type === 'date' && element.value) {
|
|
44
|
-
let s = element.value.split('/');
|
|
45
|
-
initialValue = `${s[2]}-${s[1]}-${s[0]}`;
|
|
46
|
-
}
|
|
47
|
-
group[element.ID] = element.required ? new UntypedFormControl(initialValue, Validators.required) : new UntypedFormControl(initialValue);
|
|
48
|
-
if (element.paramsCombo) {
|
|
49
|
-
httpRequests.push(this.createHttpRequest(element, group));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
if (httpRequests.length > 0) {
|
|
54
|
-
forkJoin(httpRequests).subscribe(() => {
|
|
55
|
-
this.modalForm = new UntypedFormGroup(group);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.modalForm = new UntypedFormGroup(group);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Extraemos la creación de la solicitud HTTP a su propia función para mejorar la legibilidad
|
|
63
|
-
createHttpRequest(element, group) {
|
|
64
|
-
return this.http
|
|
65
|
-
.getData(element.paramsCombo.url, element.paramsCombo.urlParams)
|
|
66
|
-
.pipe(map((res) => {
|
|
67
|
-
if (res['code'] === 0) {
|
|
68
|
-
element.identifierCombo = element.paramsCombo.selectionField !== element.ID ? element.paramsCombo.selectionField : element.ID;
|
|
69
|
-
this.dataCombo[element.identifierCombo] = res['body'];
|
|
70
|
-
if (this.data.action !== 'edit') {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
this.dataCombo[element.identifierCombo].some((data) => {
|
|
74
|
-
if (data[element.paramsCombo.selectionField] === element.value ||
|
|
75
|
-
data[element.paramsCombo.visibleField] === element.value) {
|
|
76
|
-
var value = data[element.paramsCombo.selectionField];
|
|
77
|
-
element.value = value;
|
|
78
|
-
group[element.ID].setValue(value);
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
return false;
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
onSubmit() {
|
|
87
|
-
if (this.modalForm.valid) {
|
|
88
|
-
this.data.columns.map((element) => {
|
|
89
|
-
if (element.paramsCombo && element.paramsCombo.returnDataSelect) {
|
|
90
|
-
element.identifierCombo = element.paramsCombo.selectionField !== element.ID ? element.paramsCombo.selectionField : element.ID;
|
|
91
|
-
let x = this.dataCombo[element.identifierCombo].find(x => x[element.identifierCombo] == this.modalForm.value[element.ID]);
|
|
92
|
-
if (x) {
|
|
93
|
-
this.modalForm.addControl(element.ID + 'Combo', new UntypedFormControl(x));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
this.dialogRef.close(this.modalForm.value);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
onChange(id, $event, type) {
|
|
101
|
-
switch (type) {
|
|
102
|
-
case 'combo':
|
|
103
|
-
this.modalForm.get(id).setValue($event.value);
|
|
104
|
-
break;
|
|
105
|
-
default:
|
|
106
|
-
this.modalForm.get(id).setValue($event.target.value);
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableModalComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TableModalComponent, selector: "app-table-modal", ngImport: i0, template: "<mat-dialog-content>\n <div style='display:flex; justify-content: space-between;'>\n <div>\n <strong>\n <h3 *ngIf='data.action==\"edit\"'> Editar </h3>\n <h3 *ngIf='data.action==\"add\"'> Agregar </h3>\n </strong>\n </div>\n <div mat-dialog-close>\n <i class=\"fa fa-times-circle\" style=\"font-size: 150%; position: relative;\"></i>\n </div>\n </div>\n\n <form [formGroup]=\"modalForm\">\n\n <div *ngFor='let input of data.columns'>\n\n\n\n <div *ngIf='data.action==\"edit\"; else Agregar'>\n <mat-form-field *ngIf=\"!input.disregardForEdit\">\n <mat-label>{{input.label}}</mat-label>\n <div *ngIf='input.type==\"combo\"; else otherInputEdit'>\n\n <mat-select [value]=\"input.value\" (selectionChange)='onChange(input.ID,$event, input.type)'\n placeholder='{{input.label}}' [required]=\"input.required\">\n <mat-option *ngFor='let data of dataCombo[input.identifierCombo]'\n [value]='data[input.paramsCombo.selectionField]'>\n {{data[input.paramsCombo.visibleField]}}</mat-option>\n </mat-select>\n </div>\n\n <ng-template #otherInputEdit>\n <input [type]='input.type' [name]='input.ID' [value]='input.value'\n (input)='onChange(input.ID,$event, input.type)' matInput [placeholder]='input.label'\n [required]=\"input.required\" />\n </ng-template>\n\n <mat-error>Campo Obligatorio</mat-error>\n </mat-form-field>\n\n </div>\n\n <ng-template #Agregar>\n <mat-form-field *ngIf=\"!input.disregardForAdd\">\n <mat-label>{{input.label}}</mat-label>\n <div *ngIf='input.type==\"combo\"; else otherInput'>\n\n <mat-select (selectionChange)='onChange(input.ID,$event, input.type)'\n placeholder='{{input.label}}' [required]=\"input.required\">\n <mat-option *ngFor='let data of dataCombo[input.identifierCombo]'\n [value]='data[input.paramsCombo.selectionField]'>\n {{data[input.paramsCombo.visibleField]}}</mat-option>\n </mat-select>\n\n </div>\n\n <ng-template #otherInput>\n <input [type]='input.type' [name]='input.ID' (input)='onChange(input.ID, $event, input.type)'\n matInput [placeholder]='input.label' [required]=\"input.required\" />\n\n </ng-template>\n <mat-error>Campo Obligatorio</mat-error>\n </mat-form-field>\n </ng-template>\n\n\n\n\n </div>\n\n <button *ngIf='data.action==\"add\" || data.action==\"edit\"' (click)='onSubmit()' color='primary' mat-raised-button\n [disabled]=\"!modalForm.valid\">Guardar</button>\n\n </form>\n</mat-dialog-content>", styles: ["button{width:100%}mat-form-field{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.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
112
|
-
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableModalComponent, decorators: [{
|
|
114
|
-
type: Component,
|
|
115
|
-
args: [{ selector: 'app-table-modal', template: "<mat-dialog-content>\n <div style='display:flex; justify-content: space-between;'>\n <div>\n <strong>\n <h3 *ngIf='data.action==\"edit\"'> Editar </h3>\n <h3 *ngIf='data.action==\"add\"'> Agregar </h3>\n </strong>\n </div>\n <div mat-dialog-close>\n <i class=\"fa fa-times-circle\" style=\"font-size: 150%; position: relative;\"></i>\n </div>\n </div>\n\n <form [formGroup]=\"modalForm\">\n\n <div *ngFor='let input of data.columns'>\n\n\n\n <div *ngIf='data.action==\"edit\"; else Agregar'>\n <mat-form-field *ngIf=\"!input.disregardForEdit\">\n <mat-label>{{input.label}}</mat-label>\n <div *ngIf='input.type==\"combo\"; else otherInputEdit'>\n\n <mat-select [value]=\"input.value\" (selectionChange)='onChange(input.ID,$event, input.type)'\n placeholder='{{input.label}}' [required]=\"input.required\">\n <mat-option *ngFor='let data of dataCombo[input.identifierCombo]'\n [value]='data[input.paramsCombo.selectionField]'>\n {{data[input.paramsCombo.visibleField]}}</mat-option>\n </mat-select>\n </div>\n\n <ng-template #otherInputEdit>\n <input [type]='input.type' [name]='input.ID' [value]='input.value'\n (input)='onChange(input.ID,$event, input.type)' matInput [placeholder]='input.label'\n [required]=\"input.required\" />\n </ng-template>\n\n <mat-error>Campo Obligatorio</mat-error>\n </mat-form-field>\n\n </div>\n\n <ng-template #Agregar>\n <mat-form-field *ngIf=\"!input.disregardForAdd\">\n <mat-label>{{input.label}}</mat-label>\n <div *ngIf='input.type==\"combo\"; else otherInput'>\n\n <mat-select (selectionChange)='onChange(input.ID,$event, input.type)'\n placeholder='{{input.label}}' [required]=\"input.required\">\n <mat-option *ngFor='let data of dataCombo[input.identifierCombo]'\n [value]='data[input.paramsCombo.selectionField]'>\n {{data[input.paramsCombo.visibleField]}}</mat-option>\n </mat-select>\n\n </div>\n\n <ng-template #otherInput>\n <input [type]='input.type' [name]='input.ID' (input)='onChange(input.ID, $event, input.type)'\n matInput [placeholder]='input.label' [required]=\"input.required\" />\n\n </ng-template>\n <mat-error>Campo Obligatorio</mat-error>\n </mat-form-field>\n </ng-template>\n\n\n\n\n </div>\n\n <button *ngIf='data.action==\"add\" || data.action==\"edit\"' (click)='onSubmit()' color='primary' mat-raised-button\n [disabled]=\"!modalForm.valid\">Guardar</button>\n\n </form>\n</mat-dialog-content>", styles: ["button{width:100%}mat-form-field{width:100%}\n"] }]
|
|
116
|
-
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
117
|
-
type: Inject,
|
|
118
|
-
args: [MAT_DIALOG_DATA]
|
|
119
|
-
}] }, { type: i2.HttpService }] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2JyYWlubG9wZXItdWkvY29tcG9uZW50cy9kYXRhLXRhYmxlL3RhYmxlLW1vZGFsL3RhYmxlLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvZGF0YS10YWJsZS90YWJsZS1tb2RhbC90YWJsZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckMsTUFBTSxPQUFPLG1CQUFtQjtJQU1yQjtJQUN5QjtJQUN4QjtJQVBWLFNBQVMsR0FBcUIsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBR2YsWUFDUyxTQUE0QyxFQUNuQixJQUFJLEVBQzVCLElBQWlCO1FBRmxCLGNBQVMsR0FBVCxTQUFTLENBQW1DO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQUE7UUFDNUIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUN4QixDQUFDO0lBRUosU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVE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QztnQkFDOUMsTUFBTTtZQUVSO2dCQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyRCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7d0dBbEhVLG1CQUFtQiw4Q0FPcEIsZUFBZTs0RkFQZCxtQkFBbUIsdURDWmhDLGd0R0EyRXFCOzs0RkQvRFIsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjs7MEJBV3hCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2RhbEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gIGRhdGFDb21ibyA9IHt9O1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRhYmxlTW9kYWxDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlXG4gICkge31cblxuICBvbk5vQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGxldCBncm91cCA9IHt9O1xuICAgIGxldCBodHRwUmVxdWVzdHMgPSBbXTtcblxuICAgIHRoaXMuZGF0YS5jb2x1bW5zLm1hcCgoZWxlbWVudCkgPT4ge1xuXG4gICAgICBpZihlbGVtZW50LnR5cGUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgZWxlbWVudC52YWx1ZSA9IGVsZW1lbnQudmFsdWUgPyBlbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xcLi9nLCAnJykgOiAnJztcbiAgICAgICAgZWxlbWVudC50eXBlID0gJ251bWJlcidcbiAgICAgIH1cblxuICAgICAgaWYgKCFlbGVtZW50LmRpc3JlZ2FyZEZvckFkZCkge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnY29tYm8nKSB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29tYm9bZWxlbWVudC5wYXJhbXNDb21iby5zZWxlY3Rpb25GaWVsZCAhPT0gZWxlbWVudC5JRCA/IGVsZW1lbnQucGFyYW1zQ29tYm8uc2VsZWN0aW9uRmllbGQgOiBlbGVtZW50LklEXSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluaXRpYWxWYWx1ZSA9IHRoaXMuZGF0YS5hY3Rpb24gPT09ICdlZGl0JyA/IGVsZW1lbnQudmFsdWUgOiAnJztcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ2RhdGUnICYmIGVsZW1lbnQudmFsdWUpIHtcbiAgICAgICAgICBsZXQgcyA9IGVsZW1lbnQudmFsdWUuc3BsaXQoJy8nKTtcbiAgICAgICAgICBpbml0aWFsVmFsdWUgPSBgJHtzWzJdfS0ke3NbMV19LSR7c1swXX1gO1xuICAgICAgICB9XG5cblxuICAgICAgICBncm91cFtlbGVtZW50LklEXSA9IGVsZW1lbnQucmVxdWlyZWQgPyBuZXcgVW50eXBlZEZvcm1Db250cm9sKGluaXRpYWxWYWx1ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkgOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGluaXRpYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQucGFyYW1zQ29tYm8pIHtcbiAgICAgICAgICBodHRwUmVxdWVzdHMucHVzaCh0aGlzLmNyZWF0ZUh0dHBSZXF1ZXN0KGVsZW1lbnQsIGdyb3VwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChodHRwUmVxdWVzdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9ya0pvaW4oaHR0cFJlcXVlc3RzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm1vZGFsRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKGdyb3VwKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKGdyb3VwKTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHRyYWVtb3MgbGEgY3JlYWNpw7NuIGRlIGxhIHNvbGljaXR1ZCBIVFRQIGEgc3UgcHJvcGlhIGZ1bmNpw7NuIHBhcmEgbWVqb3JhciBsYSBsZWdpYmlsaWRhZFxuICBjcmVhdGVIdHRwUmVxdWVzdChlbGVtZW50LCBncm91cCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXREYXRhKGVsZW1lbnQucGFyYW1zQ29tYm8udXJsLCBlbGVtZW50LnBhcmFtc0NvbWJvLnVybFBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXNbJ2NvZGUnXSA9PT0gMCkge1xuICAgICAgICAgICAgZWxlbWVudC5pZGVudGlmaWVyQ29tYm8gPSBlbGVtZW50LnBhcmFtc0NvbWJvLnNlbGVjdGlvbkZpZWxkICE9PSBlbGVtZW50LklEID8gZWxlbWVudC5wYXJhbXNDb21iby5zZWxlY3Rpb25GaWVsZCA6IGVsZW1lbnQuSUQ7XG4gICAgICAgICAgICB0aGlzLmRhdGFDb21ib1tlbGVtZW50LmlkZW50aWZpZXJDb21ib10gPSByZXNbJ2JvZHknXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5hY3Rpb24gIT09ICdlZGl0Jykge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZGF0YUNvbWJvW2VsZW1lbnQuaWRlbnRpZmllckNvbWJvXS5zb21lKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBkYXRhW2VsZW1lbnQucGFyYW1zQ29tYm8uc2VsZWN0aW9uRmllbGRdID09PSBlbGVtZW50LnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgZGF0YVtlbGVtZW50LnBhcmFtc0NvbWJvLnZpc2libGVGaWVsZF0gPT09IGVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtlbGVtZW50LnBhcmFtc0NvbWJvLnNlbGVjdGlvbkZpZWxkXVxuICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQuSURdLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLm1vZGFsRm9ybS52YWxpZCkge1xuXG4gICAgICB0aGlzLmRhdGEuY29sdW1ucy5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQucGFyYW1zQ29tYm8gJiYgZWxlbWVudC5wYXJhbXNDb21iby5yZXR1cm5EYXRhU2VsZWN0KSB7XG4gICAgICAgICAgZWxlbWVudC5pZGVudGlmaWVyQ29tYm8gPSBlbGVtZW50LnBhcmFtc0NvbWJvLnNlbGVjdGlvbkZpZWxkICE9PSBlbGVtZW50LklEID8gZWxlbWVudC5wYXJhbXNDb21iby5zZWxlY3Rpb25GaWVsZCA6IGVsZW1lbnQuSUQ7XG4gICAgICAgICAgbGV0IHggPSB0aGlzLmRhdGFDb21ib1tlbGVtZW50LmlkZW50aWZpZXJDb21ib10uZmluZCh4ID0+IHhbZWxlbWVudC5pZGVudGlmaWVyQ29tYm9dID09IHRoaXMubW9kYWxGb3JtLnZhbHVlW2VsZW1lbnQuSURdKVxuICAgICAgICAgIGlmKHgpe1xuICAgICAgICAgICAgdGhpcy5tb2RhbEZvcm0uYWRkQ29udHJvbChlbGVtZW50LklEICsgJ0NvbWJvJywgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh4KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLm1vZGFsRm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UoaWQ6IGFueSwgJGV2ZW50LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NvbWJvJzpcbiAgICAgICAgdGhpcy5tb2RhbEZvcm0uZ2V0KGlkKS5zZXRWYWx1ZSgkZXZlbnQudmFsdWUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5tb2RhbEZvcm0uZ2V0KGlkKS5zZXRWYWx1ZSgkZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxkaXYgc3R5bGU9J2Rpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyc+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgIDxoMyAqbmdJZj0nZGF0YS5hY3Rpb249PVwiZWRpdFwiJz4gRWRpdGFyIDwvaDM+XG4gICAgICAgICAgICAgICAgPGgzICpuZ0lmPSdkYXRhLmFjdGlvbj09XCJhZGRcIic+IEFncmVnYXIgPC9oMz5cbiAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcy1jaXJjbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTUwJTsgcG9zaXRpb246IHJlbGF0aXZlO1wiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIm1vZGFsRm9ybVwiPlxuXG4gICAgICAgIDxkaXYgKm5nRm9yPSdsZXQgaW5wdXQgb2YgZGF0YS5jb2x1bW5zJz5cblxuXG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9J2RhdGEuYWN0aW9uPT1cImVkaXRcIjsgZWxzZSBBZ3JlZ2FyJz5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCIhaW5wdXQuZGlzcmVnYXJkRm9yRWRpdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7aW5wdXQubGFiZWx9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPSdpbnB1dC50eXBlPT1cImNvbWJvXCI7IGVsc2Ugb3RoZXJJbnB1dEVkaXQnPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwiaW5wdXQudmFsdWVcIiAoc2VsZWN0aW9uQ2hhbmdlKT0nb25DaGFuZ2UoaW5wdXQuSUQsJGV2ZW50LCBpbnB1dC50eXBlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ne3tpbnB1dC5sYWJlbH19JyBbcmVxdWlyZWRdPVwiaW5wdXQucmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9J2xldCBkYXRhIG9mIGRhdGFDb21ib1tpbnB1dC5pZGVudGlmaWVyQ29tYm9dJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPSdkYXRhW2lucHV0LnBhcmFtc0NvbWJvLnNlbGVjdGlvbkZpZWxkXSc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YVtpbnB1dC5wYXJhbXNDb21iby52aXNpYmxlRmllbGRdfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjb3RoZXJJbnB1dEVkaXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3R5cGVdPSdpbnB1dC50eXBlJyBbbmFtZV09J2lucHV0LklEJyBbdmFsdWVdPSdpbnB1dC52YWx1ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPSdvbkNoYW5nZShpbnB1dC5JRCwkZXZlbnQsIGlucHV0LnR5cGUpJyBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPSdpbnB1dC5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaW5wdXQucmVxdWlyZWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+Q2FtcG8gT2JsaWdhdG9yaW88L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNBZ3JlZ2FyPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFpbnB1dC5kaXNyZWdhcmRGb3JBZGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2lucHV0LmxhYmVsfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj0naW5wdXQudHlwZT09XCJjb21ib1wiOyBlbHNlIG90aGVySW5wdXQnPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAoc2VsZWN0aW9uQ2hhbmdlKT0nb25DaGFuZ2UoaW5wdXQuSUQsJGV2ZW50LCBpbnB1dC50eXBlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0ne3tpbnB1dC5sYWJlbH19JyBbcmVxdWlyZWRdPVwiaW5wdXQucmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9J2xldCBkYXRhIG9mIGRhdGFDb21ib1tpbnB1dC5pZGVudGlmaWVyQ29tYm9dJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPSdkYXRhW2lucHV0LnBhcmFtc0NvbWJvLnNlbGVjdGlvbkZpZWxkXSc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YVtpbnB1dC5wYXJhbXNDb21iby52aXNpYmxlRmllbGRdfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNvdGhlcklucHV0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT0naW5wdXQudHlwZScgW25hbWVdPSdpbnB1dC5JRCcgKGlucHV0KT0nb25DaGFuZ2UoaW5wdXQuSUQsICRldmVudCwgaW5wdXQudHlwZSknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT0naW5wdXQubGFiZWwnIFtyZXF1aXJlZF09XCJpbnB1dC5yZXF1aXJlZFwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5DYW1wbyBPYmxpZ2F0b3JpbzwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG5cblxuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gKm5nSWY9J2RhdGEuYWN0aW9uPT1cImFkZFwiIHx8IGRhdGEuYWN0aW9uPT1cImVkaXRcIicgKGNsaWNrKT0nb25TdWJtaXQoKScgY29sb3I9J3ByaW1hcnknIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW1vZGFsRm9ybS52YWxpZFwiPkd1YXJkYXI8L2J1dHRvbj5cblxuICAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PiJdfQ==
|
package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { Component, Input, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import imagenPdf from '../../../brainloper-ui/components/file-input/imagenes/pdf';
|
|
3
|
-
import imagenDoc from '../../../brainloper-ui/components/file-input/imagenes/doc';
|
|
4
|
-
import imagenFondoTransparente from '../../../brainloper-ui/components/file-input/imagenes/fondoTransparente';
|
|
5
|
-
import Compressor from 'compressorjs';
|
|
6
|
-
import { UntypedFormControl, Validators } from '@angular/forms';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../services/file-forms.service";
|
|
9
|
-
import * as i2 from "../../../services/http.service";
|
|
10
|
-
import * as i3 from "../../../services/message.service";
|
|
11
|
-
import * as i4 from "@angular/forms";
|
|
12
|
-
import * as i5 from "@angular/common";
|
|
13
|
-
import * as i6 from "@angular/material/button";
|
|
14
|
-
import * as i7 from "@angular/material/icon";
|
|
15
|
-
import * as i8 from "@angular/material/form-field";
|
|
16
|
-
import * as i9 from "@angular/material/input";
|
|
17
|
-
export class FileInputComponent {
|
|
18
|
-
fileForms;
|
|
19
|
-
http;
|
|
20
|
-
message;
|
|
21
|
-
formBuilder;
|
|
22
|
-
styleImg;
|
|
23
|
-
type;
|
|
24
|
-
border;
|
|
25
|
-
imageSrc;
|
|
26
|
-
styleForm;
|
|
27
|
-
sizePicture;
|
|
28
|
-
edit;
|
|
29
|
-
formFile;
|
|
30
|
-
color = 'primary';
|
|
31
|
-
disabled = false;
|
|
32
|
-
multiple = false;
|
|
33
|
-
accept;
|
|
34
|
-
fileControl;
|
|
35
|
-
maxSize = 16;
|
|
36
|
-
size = 100000; //tamaño a comprimir las imagenes en bites
|
|
37
|
-
fileName = '';
|
|
38
|
-
params;
|
|
39
|
-
fileSave = new EventEmitter();
|
|
40
|
-
typeFile;
|
|
41
|
-
files;
|
|
42
|
-
file = null;
|
|
43
|
-
icon = 'folder';
|
|
44
|
-
constructor(fileForms, http, message, formBuilder) {
|
|
45
|
-
this.fileForms = fileForms;
|
|
46
|
-
this.http = http;
|
|
47
|
-
this.message = message;
|
|
48
|
-
this.formBuilder = formBuilder;
|
|
49
|
-
this.formFile = this.formBuilder.group({
|
|
50
|
-
requiredfile: []
|
|
51
|
-
});
|
|
52
|
-
this.fileControl = new UntypedFormControl(this.files, [
|
|
53
|
-
Validators.required
|
|
54
|
-
]);
|
|
55
|
-
}
|
|
56
|
-
form;
|
|
57
|
-
ngOnInit() {
|
|
58
|
-
this.form = this.formBuilder.group({
|
|
59
|
-
file: []
|
|
60
|
-
});
|
|
61
|
-
this.sizePicture = {
|
|
62
|
-
width: `${this.params.style.width}`,
|
|
63
|
-
height: this.params.style.height ? `${this.params.style.height}` : '200px',
|
|
64
|
-
"border-radius": '5%',
|
|
65
|
-
border: `${this.params.style.border}`,
|
|
66
|
-
};
|
|
67
|
-
if (this.params.edit == true) {
|
|
68
|
-
this.edit = 'img';
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.edit = '';
|
|
72
|
-
}
|
|
73
|
-
let types = Array.isArray(this.params.typeFile) ? this.params.typeFile : [this.params.typeFile];
|
|
74
|
-
this.typeFile = types;
|
|
75
|
-
this.type = types.map(t => {
|
|
76
|
-
if (t === 'imagen')
|
|
77
|
-
return 'image/*';
|
|
78
|
-
if (t === 'pdf')
|
|
79
|
-
return '.pdf';
|
|
80
|
-
if (t === 'doc')
|
|
81
|
-
return '.doc,.docx';
|
|
82
|
-
return '';
|
|
83
|
-
}).join(',');
|
|
84
|
-
this.functionTypeFile();
|
|
85
|
-
}
|
|
86
|
-
functionTypeFile() {
|
|
87
|
-
if (this.params.style.shape == "circular") {
|
|
88
|
-
this.sizePicture['border-radius'] = "50%";
|
|
89
|
-
this.sizePicture.width = `${screen.width * (this.params.style.width.replace('%', '') / 100)}px`;
|
|
90
|
-
this.sizePicture.height = this.sizePicture.width;
|
|
91
|
-
}
|
|
92
|
-
this.border = {
|
|
93
|
-
"borderRadius": `${this.sizePicture['border-radius']}`
|
|
94
|
-
};
|
|
95
|
-
this.styleForm = {
|
|
96
|
-
width: `${this.params.style.width}`,
|
|
97
|
-
height: `${this.params.style.height}`
|
|
98
|
-
};
|
|
99
|
-
this.styleImg = {
|
|
100
|
-
width: '100%',
|
|
101
|
-
height: '100%',
|
|
102
|
-
"border-radius": `${this.sizePicture['border-radius']}`,
|
|
103
|
-
};
|
|
104
|
-
if (this.typeFile.includes('imagen')) {
|
|
105
|
-
this.imageSrc = this.params.imageSrc || imagenFondoTransparente;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
this.imageSrc = imagenFondoTransparente;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
async fileChange($event) {
|
|
112
|
-
const file = $event.target['files'][0];
|
|
113
|
-
if (!file)
|
|
114
|
-
return;
|
|
115
|
-
this.fileName = file.name;
|
|
116
|
-
if (file.size < 15000000) {
|
|
117
|
-
this.file = file;
|
|
118
|
-
const mime = file.type;
|
|
119
|
-
const name = file.name.toLowerCase();
|
|
120
|
-
// NUEVO: Detectar tipo según archivo subido y lo permitido
|
|
121
|
-
if (mime.startsWith('image/') && this.typeFile.includes('imagen')) {
|
|
122
|
-
// Imagen
|
|
123
|
-
const reader = new FileReader();
|
|
124
|
-
reader.onload = e => this.imageSrc = reader.result;
|
|
125
|
-
reader.readAsDataURL(this.file);
|
|
126
|
-
const r = await this.compressor();
|
|
127
|
-
if (r === false) {
|
|
128
|
-
this.fileSave.emit({ new: this.file });
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
this.fileSave.emit({ new: this.file, compressor: r });
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else if ((mime === 'application/pdf' || name.endsWith('.pdf')) && this.typeFile.includes('pdf')) {
|
|
135
|
-
// PDF
|
|
136
|
-
this.imageSrc = '';
|
|
137
|
-
this.styleImg = {
|
|
138
|
-
width: '100%',
|
|
139
|
-
height: '100%',
|
|
140
|
-
"border-radius": `${this.sizePicture['border-radius']}`,
|
|
141
|
-
"background-image": `url(${imagenPdf})`,
|
|
142
|
-
"background-position": "center",
|
|
143
|
-
"background-size": "30% 65%",
|
|
144
|
-
"background-repeat": "no-repeat"
|
|
145
|
-
};
|
|
146
|
-
this.fileSave.emit({ new: this.file });
|
|
147
|
-
}
|
|
148
|
-
else if ((mime === 'application/msword' ||
|
|
149
|
-
mime === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||
|
|
150
|
-
name.endsWith('.doc') || name.endsWith('.docx')) && this.typeFile.includes('doc')) {
|
|
151
|
-
// DOC/DOCX
|
|
152
|
-
this.imageSrc = '';
|
|
153
|
-
this.styleImg = {
|
|
154
|
-
width: '100%',
|
|
155
|
-
height: '100%',
|
|
156
|
-
"border-radius": `${this.sizePicture['border-radius']}`,
|
|
157
|
-
"background-image": `url(${imagenDoc})`,
|
|
158
|
-
"background-position": "center",
|
|
159
|
-
"background-size": "30% 65%",
|
|
160
|
-
"background-repeat": "no-repeat"
|
|
161
|
-
};
|
|
162
|
-
this.fileSave.emit({ new: this.file });
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
this.message.Error('Error', 'Tipo de archivo no soportado');
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
this.message.Error('Error', 'Archivo muy pesado, tamaño mínimo 15 MB');
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
compressor() {
|
|
173
|
-
if (this.file.size > 500000 && this.file.size < 15000000) {
|
|
174
|
-
let factor = (this.size * 100) / this.file.size;
|
|
175
|
-
let y = ((factor ** 3) * (10 ** -6)) - (0.00059 * (factor ** 2)) + (0.0399 * factor);
|
|
176
|
-
return new Promise((resolve, reject) => {
|
|
177
|
-
new Compressor(this.file, {
|
|
178
|
-
quality: y,
|
|
179
|
-
success(result) {
|
|
180
|
-
resolve(result);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
return (false);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
selectFile($event) {
|
|
190
|
-
console.log($event);
|
|
191
|
-
}
|
|
192
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileInputComponent, deps: [{ token: i1.FileFormsService }, { token: i2.HttpService }, { token: i3.MessageService }, { token: i4.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileInputComponent, selector: "file-input", inputs: { params: "params", icon: "icon" }, outputs: { fileSave: "fileSave" }, ngImport: i0, template: "<div *ngIf=\"params.input == 'vista'\" [class]='edit' [ngStyle]=\"sizePicture\">\n \n <img *ngIf=\"imageSrc\" [ngStyle]=\"styleImg\" src=\"{{this.imageSrc}}\" />\n <div *ngIf=\"!imageSrc\" [ngStyle]=\"styleImg\"></div>\n\n\t<div *ngIf=\"params.edit == true\" class=\"entrada\" [ngStyle]=\"border\">\n\t\t<input id=\"input\" type=\"file\" title='Subir archivo' [accept]='type'\n\t\t\tstyle='width: 100%; height: 100%; opacity: 0; overflow: hidden; z-index: 1; cursor: pointer;'\n\t\t\t(change)='fileChange($event)'>\n\t</div>\n\n</div>\n<div *ngIf=\"params.input == 'formulario'\">\n <mat-form-field [ngStyle]=\"styleForm\" (click)=\"fileInput.click()\" style=\"cursor:pointer;\">\n <mat-label>{{params.label}}</mat-label>\n <input disabled type=\"text\" matInput [placeholder]=\"params.label\" [value]=\"fileName || ''\" readonly style=\"pointer-events:none; background:transparent;\">\n <button mat-icon-button matSuffix type=\"button\" tabindex=\"-1\" style=\"pointer-events:none;\">\n <mat-icon *ngIf=\"typeFile=='imagen'\">add_a_photo</mat-icon>\n <mat-icon *ngIf=\"typeFile=='pdf'\">picture_as_pdf</mat-icon>\n <mat-icon *ngIf=\"typeFile=='doc'\">insert_drive_file</mat-icon>\n </button>\n </mat-form-field>\n <input #fileInput id=\"input\" type=\"file\" title=\"Subir archivo\" [accept]=\"type\" style=\"display: none;\" (change)=\"fileChange($event)\">\n</div>\n", styles: ["p{font-family:Lato}.dropzone{min-height:400px;min-width:400px;display:table;width:100%;background-color:#eee;border:dotted 1px #aaa}.text-wrapper{display:table-cell;vertical-align:middle}.centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}.img :hover{background-image:url(data:image/png;base64,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);background-color:#cfd0d5;background-position:center;background-size:25%;background-repeat:no-repeat;transition:background-color 1s;cursor:pointer}.img{position:relative}.entrada{position:absolute;top:0;right:0;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
|
|
194
|
-
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileInputComponent, decorators: [{
|
|
196
|
-
type: Component,
|
|
197
|
-
args: [{ selector: 'file-input', template: "<div *ngIf=\"params.input == 'vista'\" [class]='edit' [ngStyle]=\"sizePicture\">\n \n <img *ngIf=\"imageSrc\" [ngStyle]=\"styleImg\" src=\"{{this.imageSrc}}\" />\n <div *ngIf=\"!imageSrc\" [ngStyle]=\"styleImg\"></div>\n\n\t<div *ngIf=\"params.edit == true\" class=\"entrada\" [ngStyle]=\"border\">\n\t\t<input id=\"input\" type=\"file\" title='Subir archivo' [accept]='type'\n\t\t\tstyle='width: 100%; height: 100%; opacity: 0; overflow: hidden; z-index: 1; cursor: pointer;'\n\t\t\t(change)='fileChange($event)'>\n\t</div>\n\n</div>\n<div *ngIf=\"params.input == 'formulario'\">\n <mat-form-field [ngStyle]=\"styleForm\" (click)=\"fileInput.click()\" style=\"cursor:pointer;\">\n <mat-label>{{params.label}}</mat-label>\n <input disabled type=\"text\" matInput [placeholder]=\"params.label\" [value]=\"fileName || ''\" readonly style=\"pointer-events:none; background:transparent;\">\n <button mat-icon-button matSuffix type=\"button\" tabindex=\"-1\" style=\"pointer-events:none;\">\n <mat-icon *ngIf=\"typeFile=='imagen'\">add_a_photo</mat-icon>\n <mat-icon *ngIf=\"typeFile=='pdf'\">picture_as_pdf</mat-icon>\n <mat-icon *ngIf=\"typeFile=='doc'\">insert_drive_file</mat-icon>\n </button>\n </mat-form-field>\n <input #fileInput id=\"input\" type=\"file\" title=\"Subir archivo\" [accept]=\"type\" style=\"display: none;\" (change)=\"fileChange($event)\">\n</div>\n", styles: ["p{font-family:Lato}.dropzone{min-height:400px;min-width:400px;display:table;width:100%;background-color:#eee;border:dotted 1px #aaa}.text-wrapper{display:table-cell;vertical-align:middle}.centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}.img :hover{background-image:url(data:image/png;base64,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);background-color:#cfd0d5;background-position:center;background-size:25%;background-repeat:no-repeat;transition:background-color 1s;cursor:pointer}.img{position:relative}.entrada{position:absolute;top:0;right:0;width:100%;height:100%}\n"] }]
|
|
198
|
-
}], ctorParameters: () => [{ type: i1.FileFormsService }, { type: i2.HttpService }, { type: i3.MessageService }, { type: i4.UntypedFormBuilder }], propDecorators: { params: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}], fileSave: [{
|
|
201
|
-
type: Output
|
|
202
|
-
}], icon: [{
|
|
203
|
-
type: Input
|
|
204
|
-
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sU0FBUyxNQUFNLDJEQUEyRCxDQUFBO0FBQ2pGLE9BQU8sU0FBUyxNQUFNLDJEQUEyRCxDQUFBO0FBQ2pGLE9BQU8sdUJBQXVCLE1BQU0seUVBQXlFLENBQUE7QUFDN0csT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBc0Isa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQU90RyxNQUFNLE9BQU8sa0JBQWtCO0lBK0JuQjtJQUNBO0lBQ0E7SUFDQTtJQWpDVixRQUFRLENBQUM7SUFDVCxJQUFJLENBQUM7SUFDTCxNQUFNLENBQUM7SUFDUCxRQUFRLENBQUM7SUFDVCxTQUFTLENBQUM7SUFDVixXQUFXLENBQUM7SUFDWixJQUFJLENBQUM7SUFFTCxRQUFRLENBQW1CO0lBRTNCLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDbEIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLE1BQU0sQ0FBUztJQUVmLFdBQVcsQ0FBcUI7SUFDaEMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUViLElBQUksR0FBRyxNQUFNLENBQUMs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QUVQLENBQUMsQ0FBQyxDQUFBO1FBRUosQ0FBQzthQUFJLENBQUM7WUFDSixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEIsQ0FBQztJQUVILENBQUM7SUFFRCxVQUFVLENBQUMsTUFBTTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckIsQ0FBQzt3R0FqTVUsa0JBQWtCOzRGQUFsQixrQkFBa0IsaUlDZi9CLDgzQ0F3QkE7OzRGRFRhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZOzZLQTJCYixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFLQyxJQUFJO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS1mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCBpbWFnZW5QZGYgZnJvbSAnLi4vLi4vLi4vYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbGUtaW5wdXQvaW1hZ2VuZXMvcGRmJ1xuaW1wb3J0IGltYWdlbkRvYyBmcm9tICcuLi8uLi8uLi9icmFpbmxvcGVyLXVpL2NvbXBvbmVudHMvZmlsZS1pbnB1dC9pbWFnZW5lcy9kb2MnXG5pbXBvcnQgaW1hZ2VuRm9uZG9UcmFuc3BhcmVudGUgZnJvbSAnLi4vLi4vLi4vYnJhaW5sb3Blci11aS9jb21wb25lbnRzL2ZpbGUtaW5wdXQvaW1hZ2VuZXMvZm9uZG9UcmFuc3BhcmVudGUnXG5pbXBvcnQgQ29tcHJlc3NvciBmcm9tICdjb21wcmVzc29yanMnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbGUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdHlsZUltZztcbiAgdHlwZTtcbiAgYm9yZGVyO1xuICBpbWFnZVNyYztcbiAgc3R5bGVGb3JtO1xuICBzaXplUGljdHVyZTtcbiAgZWRpdDtcblxuICBmb3JtRmlsZTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBjb2xvciA9ICdwcmltYXJ5JztcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWNjZXB0OiBzdHJpbmc7XG5cbiAgZmlsZUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgbWF4U2l6ZSA9IDE2O1xuXG4gIHNpemUgPSAxMDAwMDA7IC8vdGFtYcOxbyBhIGNvbXByaW1pciBsYXMgaW1hZ2VuZXMgZW4gYml0ZXNcblxuICBmaWxlTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgcGFyYW1zO1xuICBAT3V0cHV0KCkgZmlsZVNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICB0eXBlRmlsZVxuICBwdWJsaWMgZmlsZXM7XG4gIGZpbGU9bnVsbFxuICBASW5wdXQoKWljb24gPSAnZm9sZGVyJ1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpbGVGb3JtczogRmlsZUZvcm1zU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHAgOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2UgOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtRmlsZSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcmVxdWlyZWRmaWxlOiBbXVxuICAgIH0pXG5cbiAgICB0aGlzLmZpbGVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLmZpbGVzLCBbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgXSlcbiAgfVxuXG4gIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBmaWxlOiBbXVxuICAgIH0pXG5cbiAgICB0aGlzLnNpemVQaWN0dXJlPXtcbiAgICAgIHdpZHRoOmAke3RoaXMucGFyYW1zLnN0eWxlLndpZHRofWAsXG4gICAgICBoZWlnaHQ6dGhpcy5wYXJhbXMuc3R5bGUuaGVpZ2h0ID8gYCR7dGhpcy5wYXJhbXMuc3R5bGUuaGVpZ2h0fWAgOiAnMjAwcHgnLCBcbiAgICAgIFwiYm9yZGVyLXJhZGl1c1wiOiAnNSUnLFxuICAgICAgYm9yZGVyOmAke3RoaXMucGFyYW1zLnN0eWxlLmJvcmRlcn1gLFxuICAgIH1cblxuICAgIGlmKHRoaXMucGFyYW1zLmVkaXQgPT0gdHJ1ZSl7XG4gICAgICB0aGlzLmVkaXQgPSAnaW1nJ1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5lZGl0ID0gJydcbiAgICB9XG5cbiAgICBsZXQgdHlwZXMgPSBBcnJheS5pc0FycmF5KHRoaXMucGFyYW1zLnR5cGVGaWxlKSA/IHRoaXMucGFyYW1zLnR5cGVGaWxlIDogW3RoaXMucGFyYW1zLnR5cGVGaWxlXTtcbiAgICB0aGlzLnR5cGVGaWxlID0gdHlwZXM7XG4gICAgdGhpcy50eXBlID0gdHlwZXMubWFwKHQgPT4ge1xuICAgICAgaWYgKHQgPT09ICdpbWFnZW4nKSByZXR1cm4gJ2ltYWdlLyonO1xuICAgICAgaWYgKHQgPT09ICdwZGYnKSByZXR1cm4gJy5wZGYnO1xuICAgICAgaWYgKHQgPT09ICdkb2MnKSByZXR1cm4gJy5kb2MsLmRvY3gnO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0pLmpvaW4oJywnKTtcblxuICAgIHRoaXMuZnVuY3Rpb25UeXBlRmlsZSgpXG4gIH1cblxuICBmdW5jdGlvblR5cGVGaWxlKCl7XG5cbiAgICBpZih0aGlzLnBhcmFtcy5zdHlsZS5zaGFwZSA9PSBcImNpcmN1bGFyXCIpe1xuXG4gICAgICB0aGlzLnNpemVQaWN0dXJlWydib3JkZXItcmFkaXVzJ109XCI1MCVcIlxuICAgICAgdGhpcy5zaXplUGljdHVyZS53aWR0aD1gJHtzY3JlZW4ud2lkdGgqKHRoaXMucGFyYW1zLnN0eWxlLndpZHRoLnJlcGxhY2UoJyUnLCAnJykvMTAwKX1weGBcbiAgICAgIHRoaXMuc2l6ZVBpY3R1cmUuaGVpZ2h0ID0gdGhpcy5zaXplUGljdHVyZS53aWR0aFxuXG4gICAgfVxuXG4gICAgdGhpcy5ib3JkZXIgPXtcbiAgICAgIFwiYm9yZGVyUmFkaXVzXCI6YCR7dGhpcy5zaXplUGljdHVyZVsnYm9yZGVyLXJhZGl1cyddfWBcbiAgICB9XG5cbiAgICB0aGlzLnN0eWxlRm9ybT17XG4gICAgICB3aWR0aDpgJHt0aGlzLnBhcmFtcy5zdHlsZS53aWR0aH1gLFxuICAgICAgaGVpZ2h0OmAke3RoaXMucGFyYW1zLnN0eWxlLmhlaWdodH1gXG4gICAgfVxuXG4gICAgdGhpcy5zdHlsZUltZyA9IHtcbiAgICAgIHdpZHRoOicxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgXCJib3JkZXItcmFkaXVzXCI6YCR7dGhpcy5zaXplUGljdHVyZVsnYm9yZGVyLXJhZGl1cyddfWAsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZUZpbGUuaW5jbHVkZXMoJ2ltYWdlbicpKSB7XG4gICAgICB0aGlzLmltYWdlU3JjID0gdGhpcy5wYXJhbXMuaW1hZ2VTcmMgfHwgaW1hZ2VuRm9uZG9UcmFuc3BhcmVudGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW1hZ2VTcmMgPSBpbWFnZW5Gb25kb1RyYW5zcGFyZW50ZTtcbiAgICB9XG5cbiAgIH1cblxuICBhc3luYyBmaWxlQ2hhbmdlKCRldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBmaWxlID0gJGV2ZW50LnRhcmdldFsnZmlsZXMnXVswXTtcbiAgICBpZiAoIWZpbGUpIHJldHVybjtcblxuICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XG5cbiAgICBpZiAoZmlsZS5zaXplIDwgMTUwMDAwMDApIHtcbiAgICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgICBjb25zdCBtaW1lID0gZmlsZS50eXBlO1xuICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAvLyBOVUVWTzogRGV0ZWN0YXIgdGlwbyBzZWfDum4gYXJjaGl2byBzdWJpZG8geSBsbyBwZXJtaXRpZG9cbiAgICAgIGlmIChtaW1lLnN0YXJ0c1dpdGgoJ2ltYWdlLycpICYmIHRoaXMudHlwZUZpbGUuaW5jbHVkZXMoJ2ltYWdlbicpKSB7XG4gICAgICAgIC8vIEltYWdlblxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25sb2FkID0gZSA9PiB0aGlzLmltYWdlU3JjID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwodGhpcy5maWxlKTtcbiAgICAgICAgY29uc3QgciA9IGF3YWl0IHRoaXMuY29tcHJlc3NvcigpO1xuICAgICAgICBpZiAociA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLmZpbGVTYXZlLmVtaXQoeyBuZXc6IHRoaXMuZmlsZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZpbGVTYXZlLmVtaXQoeyBuZXc6IHRoaXMuZmlsZSwgY29tcHJlc3NvcjogciB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgbmFtZS5lbmRzV2l0aCgnLnBkZicpKSAmJiB0aGlzLnR5cGVGaWxlLmluY2x1ZGVzKCdwZGYnKSkge1xuICAgICAgICAvLyBQREZcbiAgICAgICAgdGhpcy5pbWFnZVNyYyA9ICcnO1xuICAgICAgICB0aGlzLnN0eWxlSW1nID0ge1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgXCJib3JkZXItcmFkaXVzXCI6IGAke3RoaXMuc2l6ZVBpY3R1cmVbJ2JvcmRlci1yYWRpdXMnXX1gLFxuICAgICAgICAgIFwiYmFja2dyb3VuZC1pbWFnZVwiOiBgdXJsKCR7aW1hZ2VuUGRmfSlgLFxuICAgICAgICAgIFwiYmFja2dyb3VuZC1wb3NpdGlvblwiOiBcImNlbnRlclwiLFxuICAgICAgICAgIFwiYmFja2dyb3VuZC1zaXplXCI6IFwiMzAlIDY1JVwiLFxuICAgICAgICAgIFwiYmFja2dyb3VuZC1yZXBlYXRcIjogXCJuby1yZXBlYXRcIlxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmZpbGVTYXZlLmVtaXQoeyBuZXc6IHRoaXMuZmlsZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIChtaW1lID09PSAnYXBwbGljYXRpb24vbXN3b3JkJyB8fFxuICAgICAgICBtaW1lID09PSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnIHx8XG4gICAgICAgIG5hbWUuZW5kc1dpdGgoJy5kb2MnKSB8fCBuYW1lLmVuZHNXaXRoKCcuZG9jeCcpKSAmJiB0aGlzLnR5cGVGaWxlLmluY2x1ZGVzKCdkb2MnKVxuICAgICAgKSB7XG4gICAgICAgIC8vIERPQy9ET0NYXG4gICAgICAgIHRoaXMuaW1hZ2VTcmMgPSAnJzsgXG4gICAgICAgIHRoaXMuc3R5bGVJbWcgPSB7XG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICBcImJvcmRlci1yYWRpdXNcIjogYCR7dGhpcy5zaXplUGljdHVyZVsnYm9yZGVyLXJhZGl1cyddfWAsXG4gICAgICAgICAgXCJiYWNrZ3JvdW5kLWltYWdlXCI6IGB1cmwoJHtpbWFnZW5Eb2N9KWAsXG4gICAgICAgICAgXCJiYWNrZ3JvdW5kLXBvc2l0aW9uXCI6IFwiY2VudGVyXCIsXG4gICAgICAgICAgXCJiYWNrZ3JvdW5kLXNpemVcIjogXCIzMCUgNjUlXCIsXG4gICAgICAgICAgXCJiYWNrZ3JvdW5kLXJlcGVhdFwiOiBcIm5vLXJlcGVhdFwiXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZmlsZVNhdmUuZW1pdCh7IG5ldzogdGhpcy5maWxlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKCdFcnJvcicsICdUaXBvIGRlIGFyY2hpdm8gbm8gc29wb3J0YWRvJyk7XG4gICAgICB9XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2UuRXJyb3IoJ0Vycm9yJywgJ0FyY2hpdm8gbXV5IHBlc2FkbywgdGFtYcOxbyBtw61uaW1vIDE1IE1CJylcbiAgICB9XG4gIH1cblxuICAgY29tcHJlc3Nvcigpe1xuICAgIGlmKHRoaXMuZmlsZS5zaXplID4gNTAwMDAwICYmIHRoaXMuZmlsZS5zaXplIDwgMTUwMDAwMDApe1xuICAgICAgbGV0IGZhY3RvciA9ICh0aGlzLnNpemUqMTAwKS90aGlzLmZpbGUuc2l6ZVxuICAgICAgbGV0IHkgPSAoKGZhY3RvcioqMykqKDEwKiotNikpLSgwLjAwMDU5KihmYWN0b3IqKjIpKSsoMC4wMzk5KmZhY3RvcilcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XG4gICAgICAgIG5ldyBDb21wcmVzc29yICh0aGlzLmZpbGUsIHtcbiAgICAgICAgICAgIHF1YWxpdHk6IHksXG4gICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCl7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICB9KVxuXG4gICAgICB9KVxuXG4gICAgfWVsc2V7XG4gICAgICByZXR1cm4gKGZhbHNlKVxuICAgIH1cblxuICB9XG5cbiAgc2VsZWN0RmlsZSgkZXZlbnQpe1xuICAgIGNvbnNvbGUubG9nKCRldmVudClcbiAgfVxuXG59XG4iLCI8ZGl2ICAqbmdJZj1cInBhcmFtcy5pbnB1dCA9PSAndmlzdGEnXCIgW2NsYXNzXT0nZWRpdCcgW25nU3R5bGVdPVwic2l6ZVBpY3R1cmVcIj5cbiAgXG4gIDxpbWcgKm5nSWY9XCJpbWFnZVNyY1wiIFtuZ1N0eWxlXT1cInN0eWxlSW1nXCIgc3JjPVwie3t0aGlzLmltYWdlU3JjfX1cIiAvPlxuICA8ZGl2ICpuZ0lmPVwiIWltYWdlU3JjXCIgW25nU3R5bGVdPVwic3R5bGVJbWdcIj48L2Rpdj5cblxuXHQ8ZGl2ICAqbmdJZj1cInBhcmFtcy5lZGl0ID09IHRydWVcIiBjbGFzcz1cImVudHJhZGFcIiBbbmdTdHlsZV09XCJib3JkZXJcIj5cblx0XHQ8aW5wdXQgaWQ9XCJpbnB1dFwiIHR5cGU9XCJmaWxlXCIgdGl0bGU9J1N1YmlyIGFyY2hpdm8nIFthY2NlcHRdPSd0eXBlJ1xuXHRcdFx0c3R5bGU9J3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9wYWNpdHk6IDA7IG92ZXJmbG93OiBoaWRkZW47IHotaW5kZXg6IDE7IGN1cnNvcjogcG9pbnRlcjsnXG5cdFx0XHQoY2hhbmdlKT0nZmlsZUNoYW5nZSgkZXZlbnQpJz5cblx0PC9kaXY+XG5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInBhcmFtcy5pbnB1dCA9PSAnZm9ybXVsYXJpbydcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIFtuZ1N0eWxlXT1cInN0eWxlRm9ybVwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXI7XCI+XG4gICAgPG1hdC1sYWJlbD57e3BhcmFtcy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IGRpc2FibGVkIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBhcmFtcy5sYWJlbFwiIFt2YWx1ZV09XCJmaWxlTmFtZSB8fCAnJ1wiIHJlYWRvbmx5IHN0eWxlPVwicG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDtcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXggdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBzdHlsZT1cInBvaW50ZXItZXZlbnRzOm5vbmU7XCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJ0eXBlRmlsZT09J2ltYWdlbidcIj5hZGRfYV9waG90bzwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJ0eXBlRmlsZT09J3BkZidcIj5waWN0dXJlX2FzX3BkZjwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJ0eXBlRmlsZT09J2RvYydcIj5pbnNlcnRfZHJpdmVfZmlsZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxpbnB1dCAjZmlsZUlucHV0IGlkPVwiaW5wdXRcIiB0eXBlPVwiZmlsZVwiIHRpdGxlPVwiU3ViaXIgYXJjaGl2b1wiIFthY2NlcHRdPVwidHlwZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50KVwiPlxuPC9kaXY+XG4iXX0=
|