ngx-sumax-erp-components 1.9.0 → 1.10.0-beta.129
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/lib/sc-modal-upload-excel/sc-modal-upload-excel.component.mjs +91 -0
- package/esm2022/lib/sc-modal-upload-excel/sc-modal-upload-excel.types.mjs +2 -0
- package/esm2022/lib/sc-modal-validate-excel/sc-modal-validate-excel.component.mjs +74 -0
- package/esm2022/lib/utils/message-util.service.mjs +5 -5
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/ngx-sumax-erp-components.mjs +160 -6
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
- package/lib/sc-modal-upload-excel/sc-modal-upload-excel.component.d.ts +32 -0
- package/lib/sc-modal-upload-excel/sc-modal-upload-excel.types.d.ts +10 -0
- package/lib/sc-modal-validate-excel/sc-modal-validate-excel.component.d.ts +37 -0
- package/lib/utils/message-util.service.d.ts +2 -2
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component, Inject } from "@angular/core";
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from "@angular/material/dialog";
|
|
3
|
+
import { NgIf, NgClass } from "@angular/common";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "../utils/message-util.service";
|
|
7
|
+
export class ScModalUploadExcelComponent {
|
|
8
|
+
constructor(data, dialogRef, messageUtil) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.dialogRef = dialogRef;
|
|
11
|
+
this.messageUtil = messageUtil;
|
|
12
|
+
this.selectedFile = null;
|
|
13
|
+
this.isDragging = false;
|
|
14
|
+
this.title = "Cargar Archivo Excel";
|
|
15
|
+
this.subtitle = "Selecciona o arrastra el documento";
|
|
16
|
+
this.badgeText = "";
|
|
17
|
+
this.badgeIcon = "";
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
if (this.data) {
|
|
21
|
+
if (this.data.title)
|
|
22
|
+
this.title = this.data.title;
|
|
23
|
+
if (this.data.subtitle)
|
|
24
|
+
this.subtitle = this.data.subtitle;
|
|
25
|
+
if (this.data.badgeText)
|
|
26
|
+
this.badgeText = this.data.badgeText;
|
|
27
|
+
if (this.data.badgeIcon)
|
|
28
|
+
this.badgeIcon = this.data.badgeIcon;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
onDragOver(event) {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
this.isDragging = true;
|
|
35
|
+
}
|
|
36
|
+
onDragLeave(event) {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
event.stopPropagation();
|
|
39
|
+
this.isDragging = false;
|
|
40
|
+
}
|
|
41
|
+
onDrop(event) {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
event.stopPropagation();
|
|
44
|
+
this.isDragging = false;
|
|
45
|
+
const files = event.dataTransfer?.files;
|
|
46
|
+
if (files && files.length > 0) {
|
|
47
|
+
this.validateAndSetFile(files[0]);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
onFileSelected(event) {
|
|
51
|
+
const input = event.target;
|
|
52
|
+
const files = input?.files;
|
|
53
|
+
if (files && files.length > 0) {
|
|
54
|
+
this.validateAndSetFile(files[0]);
|
|
55
|
+
input.value = "";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
validateAndSetFile(file) {
|
|
59
|
+
const validExtensions = [".xlsx", ".xls"];
|
|
60
|
+
if (!validExtensions.some((ext) => file.name.toLowerCase().endsWith(ext))) {
|
|
61
|
+
this.messageUtil.getAlertWarning("Solo se permiten archivos Excel (.xlsx, .xls)");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.selectedFile = file;
|
|
65
|
+
}
|
|
66
|
+
getFileSize(bytes) {
|
|
67
|
+
if (bytes === 0)
|
|
68
|
+
return "0 Bytes";
|
|
69
|
+
const k = 1024;
|
|
70
|
+
const sizes = ["Bytes", "KB", "MB", "GB"];
|
|
71
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
72
|
+
return Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
|
|
73
|
+
}
|
|
74
|
+
onConfirm() {
|
|
75
|
+
if (!this.selectedFile) {
|
|
76
|
+
this.messageUtil.getAlertWarning("Por favor, seleccione un archivo Excel para continuar.");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.dialogRef.close(this.selectedFile);
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScModalUploadExcelComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.MessageUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ScModalUploadExcelComponent, isStandalone: true, selector: "sc-modal-upload-excel", ngImport: i0, template: "<div class=\"modal-custom-container p-4\">\n <!-- Top Header Bar -->\n <div class=\"d-flex justify-content-between align-items-center pb-3 mb-3 border-bottom\">\n <div class=\"d-flex align-items-center\">\n <div class=\"icon-header me-3\">\n <i class=\"fa-solid fa-file-excel fs-4\"></i>\n </div>\n <div>\n <h4 class=\"fw-bold text-dark mb-0\">{{ title }}</h4>\n <span class=\"text-muted small\">{{ subtitle }}</span>\n </div>\n </div>\n <div class=\"d-flex align-items-center\">\n <span *ngIf=\"badgeText\" class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n <i *ngIf=\"badgeIcon\" class=\"{{ badgeIcon }} me-1\"></i> {{ badgeText }}\n </span>\n </div>\n </div>\n\n <!-- Drag and Drop Upload Area -->\n <div\n class=\"upload-dropzone mb-4\"\n [ngClass]=\"{ 'has-file': selectedFile, 'drag-over': isDragging }\"\n tabindex=\"0\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n (click)=\"fileInput.click()\"\n (keydown.enter)=\"fileInput.click()\">\n <!-- State 1: No file selected -->\n <div *ngIf=\"!selectedFile\">\n <div class=\"upload-icon-wrapper shadow-sm\">\n <i class=\"fa-solid fa-cloud-arrow-up fs-2\"></i>\n </div>\n <h6 class=\"fw-bold text-dark mb-1\">Seleccione un archivo Excel o arr\u00E1strelo aqu\u00ED</h6>\n <p class=\"text-muted small mb-3\">Formatos soportados: .xlsx, .xls</p>\n <button\n type=\"button\"\n class=\"btn btn-primary px-4 py-2 fw-bold shadow-sm rounded-pill\"\n (click)=\"$event.stopPropagation(); fileInput.click()\">\n <i class=\"fa-solid fa-folder-open me-2\"></i>Explorar archivo\n </button>\n </div>\n\n <!-- State 2: File selected -->\n <div *ngIf=\"selectedFile\" class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"fa-solid fa-file-excel fs-3\"></i>\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\" [title]=\"selectedFile.name\">{{ selectedFile.name }}</div>\n <div class=\"file-size\"><i class=\"fa-solid fa-hard-drive me-1\"></i>{{ getFileSize(selectedFile.size) }}</div>\n </div>\n </div>\n\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx, .xls\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Footer Buttons -->\n <div class=\"d-flex justify-content-end align-items-center pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success btn-block px-5 mx-2 my-1\" (click)=\"onConfirm()\">Cargar</button>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155}.icon-header{width:48px;height:48px;border-radius:50%;background-color:#28a7451f;color:#28a745;display:flex;align-items:center;justify-content:center}.upload-dropzone{border:2px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:all .2s ease-in-out}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:#28a745;background-color:#28a7450a}.upload-dropzone.has-file{border-style:solid;border-color:#e2e8f0;background-color:#fff;cursor:default;padding:1.5rem}.upload-icon-wrapper{width:70px;height:70px;border-radius:50%;background-color:#e2e8f0;color:#475569;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;transition:all .2s}.upload-dropzone:hover .upload-icon-wrapper{background-color:#28a74526;color:#28a745;transform:scale(1.05)}.selected-file-card{background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;text-align:left;max-width:500px;margin:0 auto;box-shadow:0 1px 3px #0000000d}.selected-file-card .file-icon{width:46px;height:46px;border-radius:.5rem;background-color:#28a74526;color:#28a745;display:flex;align-items:center;justify-content:center;margin-right:1rem;flex-shrink:0}.selected-file-card .file-details{overflow:hidden;flex-grow:1;margin-right:1rem}.selected-file-card .file-details .file-name{font-weight:600;color:#1e293b;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .file-details .file-size{font-size:.75rem;color:#64748b}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatDialogModule }] }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScModalUploadExcelComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: "sc-modal-upload-excel", standalone: true, imports: [NgIf, NgClass, MatDialogModule], template: "<div class=\"modal-custom-container p-4\">\n <!-- Top Header Bar -->\n <div class=\"d-flex justify-content-between align-items-center pb-3 mb-3 border-bottom\">\n <div class=\"d-flex align-items-center\">\n <div class=\"icon-header me-3\">\n <i class=\"fa-solid fa-file-excel fs-4\"></i>\n </div>\n <div>\n <h4 class=\"fw-bold text-dark mb-0\">{{ title }}</h4>\n <span class=\"text-muted small\">{{ subtitle }}</span>\n </div>\n </div>\n <div class=\"d-flex align-items-center\">\n <span *ngIf=\"badgeText\" class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n <i *ngIf=\"badgeIcon\" class=\"{{ badgeIcon }} me-1\"></i> {{ badgeText }}\n </span>\n </div>\n </div>\n\n <!-- Drag and Drop Upload Area -->\n <div\n class=\"upload-dropzone mb-4\"\n [ngClass]=\"{ 'has-file': selectedFile, 'drag-over': isDragging }\"\n tabindex=\"0\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n (click)=\"fileInput.click()\"\n (keydown.enter)=\"fileInput.click()\">\n <!-- State 1: No file selected -->\n <div *ngIf=\"!selectedFile\">\n <div class=\"upload-icon-wrapper shadow-sm\">\n <i class=\"fa-solid fa-cloud-arrow-up fs-2\"></i>\n </div>\n <h6 class=\"fw-bold text-dark mb-1\">Seleccione un archivo Excel o arr\u00E1strelo aqu\u00ED</h6>\n <p class=\"text-muted small mb-3\">Formatos soportados: .xlsx, .xls</p>\n <button\n type=\"button\"\n class=\"btn btn-primary px-4 py-2 fw-bold shadow-sm rounded-pill\"\n (click)=\"$event.stopPropagation(); fileInput.click()\">\n <i class=\"fa-solid fa-folder-open me-2\"></i>Explorar archivo\n </button>\n </div>\n\n <!-- State 2: File selected -->\n <div *ngIf=\"selectedFile\" class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"fa-solid fa-file-excel fs-3\"></i>\n </div>\n <div class=\"file-details\">\n <div class=\"file-name\" [title]=\"selectedFile.name\">{{ selectedFile.name }}</div>\n <div class=\"file-size\"><i class=\"fa-solid fa-hard-drive me-1\"></i>{{ getFileSize(selectedFile.size) }}</div>\n </div>\n </div>\n\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx, .xls\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Footer Buttons -->\n <div class=\"d-flex justify-content-end align-items-center pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success btn-block px-5 mx-2 my-1\" (click)=\"onConfirm()\">Cargar</button>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155}.icon-header{width:48px;height:48px;border-radius:50%;background-color:#28a7451f;color:#28a745;display:flex;align-items:center;justify-content:center}.upload-dropzone{border:2px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:all .2s ease-in-out}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:#28a745;background-color:#28a7450a}.upload-dropzone.has-file{border-style:solid;border-color:#e2e8f0;background-color:#fff;cursor:default;padding:1.5rem}.upload-icon-wrapper{width:70px;height:70px;border-radius:50%;background-color:#e2e8f0;color:#475569;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;transition:all .2s}.upload-dropzone:hover .upload-icon-wrapper{background-color:#28a74526;color:#28a745;transform:scale(1.05)}.selected-file-card{background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:.5rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;text-align:left;max-width:500px;margin:0 auto;box-shadow:0 1px 3px #0000000d}.selected-file-card .file-icon{width:46px;height:46px;border-radius:.5rem;background-color:#28a74526;color:#28a745;display:flex;align-items:center;justify-content:center;margin-right:1rem;flex-shrink:0}.selected-file-card .file-details{overflow:hidden;flex-grow:1;margin-right:1rem}.selected-file-card .file-details .file-name{font-weight:600;color:#1e293b;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .file-details .file-size{font-size:.75rem;color:#64748b}\n"] }]
|
|
87
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
88
|
+
type: Inject,
|
|
89
|
+
args: [MAT_DIALOG_DATA]
|
|
90
|
+
}] }, { type: i1.MatDialogRef }, { type: i2.MessageUtilService }] });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbW9kYWwtdXBsb2FkLWV4Y2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtbW9kYWwtdXBsb2FkLWV4Y2VsL3NjLW1vZGFsLXVwbG9hZC1leGNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3NjLW1vZGFsLXVwbG9hZC1leGNlbC9zYy1tb2RhbC11cGxvYWQtZXhjZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUNrQyxJQUE0QixFQUNyRCxTQUFvRCxFQUNuRCxXQUErQjtRQUZQLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQ3JELGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ25ELGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQVh6QyxpQkFBWSxHQUFnQixJQUFJLENBQUM7UUFDakMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1QixVQUFLLEdBQVcsc0JBQXNCLENBQUM7UUFDdkMsYUFBUSxHQUFXLG9DQUFvQyxDQUFDO1FBQ3hELGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFXLEVBQUUsQ0FBQztJQU1wQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdCO1FBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7UUFDeEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBVTtRQUMzQixNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDbEYsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1lBQzNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBL0VVLDJCQUEyQixrQkFVNUIsZUFBZTttR0FWZCwyQkFBMkIsaUZDbkJ4QywybkZBK0RBLDR0REQ5Q1ksSUFBSSw2RkFBRSxPQUFPLG1GQUFFLGVBQWU7OzRGQUU3QiwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBR3JCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDOzswQkFZdEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjTW9kYWxVcGxvYWRFeGNlbERhdGEge1xuICB0aXRsZT86IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIGJhZGdlVGV4dD86IHN0cmluZztcbiAgYmFkZ2VJY29uPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic2MtbW9kYWwtdXBsb2FkLWV4Y2VsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2MtbW9kYWwtdXBsb2FkLWV4Y2VsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zYy1tb2RhbC11cGxvYWQtZXhjZWwuY29tcG9uZW50LnNjc3NcIl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBNYXREaWFsb2dNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTY01vZGFsVXBsb2FkRXhjZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZWxlY3RlZEZpbGU6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRpdGxlOiBzdHJpbmcgPSBcIkNhcmdhciBBcmNoaXZvIEV4Y2VsXCI7XG4gIHN1YnRpdGxlOiBzdHJpbmcgPSBcIlNlbGVjY2lvbmEgbyBhcnJhc3RyYSBlbCBkb2N1bWVudG9cIjtcbiAgYmFkZ2VUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBiYWRnZUljb246IHN0cmluZyA9IFwiXCI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTY01vZGFsVXBsb2FkRXhjZWxEYXRhLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTY01vZGFsVXBsb2FkRXhjZWxDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWw6IE1lc3NhZ2VVdGlsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGF0YS50aXRsZSkgdGhpcy50aXRsZSA9IHRoaXMuZGF0YS50aXRsZTtcbiAgICAgIGlmICh0aGlzLmRhdGEuc3VidGl0bGUpIHRoaXMuc3VidGl0bGUgPSB0aGlzLmRhdGEuc3VidGl0bGU7XG4gICAgICBpZiAodGhpcy5kYXRhLmJhZGdlVGV4dCkgdGhpcy5iYWRnZVRleHQgPSB0aGlzLmRhdGEuYmFkZ2VUZXh0O1xuICAgICAgaWYgKHRoaXMuZGF0YS5iYWRnZUljb24pIHRoaXMuYmFkZ2VJY29uID0gdGhpcy5kYXRhLmJhZGdlSWNvbjtcbiAgICB9XG4gIH1cblxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy52YWxpZGF0ZUFuZFNldEZpbGUoZmlsZXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXMgPSBpbnB1dD8uZmlsZXM7XG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVBbmRTZXRGaWxlKGZpbGVzWzBdKTtcbiAgICAgIGlucHV0LnZhbHVlID0gXCJcIjtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUFuZFNldEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkRXh0ZW5zaW9ucyA9IFtcIi54bHN4XCIsIFwiLnhsc1wiXTtcbiAgICBpZiAoIXZhbGlkRXh0ZW5zaW9ucy5zb21lKChleHQpID0+IGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dCkpKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VVdGlsLmdldEFsZXJ0V2FybmluZyhcIlNvbG8gc2UgcGVybWl0ZW4gYXJjaGl2b3MgRXhjZWwgKC54bHN4LCAueGxzKVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlO1xuICB9XG5cbiAgZ2V0RmlsZVNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gXCIwIEJ5dGVzXCI7XG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiXTtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArIFwiIFwiICsgc2l6ZXNbaV07XG4gIH1cblxuICBvbkNvbmZpcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmlsZSkge1xuICAgICAgdGhpcy5tZXNzYWdlVXRpbC5nZXRBbGVydFdhcm5pbmcoXCJQb3IgZmF2b3IsIHNlbGVjY2lvbmUgdW4gYXJjaGl2byBFeGNlbCBwYXJhIGNvbnRpbnVhci5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWRGaWxlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWN1c3RvbS1jb250YWluZXIgcC00XCI+XG4gIDwhLS0gVG9wIEhlYWRlciBCYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHBiLTMgbWItMyBib3JkZXItYm90dG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWhlYWRlciBtZS0zXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZmlsZS1leGNlbCBmcy00XCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDQgY2xhc3M9XCJmdy1ib2xkIHRleHQtZGFyayBtYi0wXCI+e3sgdGl0bGUgfX08L2g0PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGxcIj57eyBzdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImJhZGdlVGV4dFwiIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1wcmltYXJ5IGJvcmRlciBweC0zIHB5LTIgZnMtNyBmdy1ib2xkIHNoYWRvdy1zbSBtZS0zXCI+XG4gICAgICAgIDxpICpuZ0lmPVwiYmFkZ2VJY29uXCIgY2xhc3M9XCJ7eyBiYWRnZUljb24gfX0gbWUtMVwiPjwvaT4ge3sgYmFkZ2VUZXh0IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRHJhZyBhbmQgRHJvcCBVcGxvYWQgQXJlYSAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwidXBsb2FkLWRyb3B6b25lIG1iLTRcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1maWxlJzogc2VsZWN0ZWRGaWxlLCAnZHJhZy1vdmVyJzogaXNEcmFnZ2luZyB9XCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICA8IS0tIFN0YXRlIDE6IE5vIGZpbGUgc2VsZWN0ZWQgLS0+XG4gICAgPGRpdiAqbmdJZj1cIiFzZWxlY3RlZEZpbGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbi13cmFwcGVyIHNoYWRvdy1zbVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb3VkLWFycm93LXVwIGZzLTJcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxoNiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1kYXJrIG1iLTFcIj5TZWxlY2Npb25lIHVuIGFyY2hpdm8gRXhjZWwgbyBhcnLDoXN0cmVsbyBhcXXDrTwvaDY+XG4gICAgICA8cCBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGwgbWItM1wiPkZvcm1hdG9zIHNvcG9ydGFkb3M6IC54bHN4LCAueGxzPC9wPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBweS0yIGZ3LWJvbGQgc2hhZG93LXNtIHJvdW5kZWQtcGlsbFwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZm9sZGVyLW9wZW4gbWUtMlwiPjwvaT5FeHBsb3JhciBhcmNoaXZvXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU3RhdGUgMjogRmlsZSBzZWxlY3RlZCAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWxlXCIgY2xhc3M9XCJzZWxlY3RlZC1maWxlLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb24gc2hhZG93LXNtXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZmlsZS1leGNlbCBmcy0zXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwic2VsZWN0ZWRGaWxlLm5hbWVcIj57eyBzZWxlY3RlZEZpbGUubmFtZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1zaXplXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1oYXJkLWRyaXZlIG1lLTFcIj48L2k+e3sgZ2V0RmlsZVNpemUoc2VsZWN0ZWRGaWxlLnNpemUpIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgYWNjZXB0PVwiLnhsc3gsIC54bHNcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAvPlxuICA8L2Rpdj5cblxuICA8IS0tIEZvb3RlciBCdXR0b25zIC0tPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIHB0LTMgYm9yZGVyLXRvcFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1ibG9jayBweC01IG14LTIgbXktMVwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNhcmdhcjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbW9kYWwtdXBsb2FkLWV4Y2VsLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zYy1tb2RhbC11cGxvYWQtZXhjZWwvc2MtbW9kYWwtdXBsb2FkLWV4Y2VsLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjRXhjZWxWYWxpZGF0aW9uRXJyb3Ige1xuICBmaWxhPzogbnVtYmVyIHwgc3RyaW5nO1xuICBjb2x1bW5hPzogc3RyaW5nO1xuICBtZW5zYWplOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NFeGNlbFZhbGlkYXRpb25SZXN1bHQge1xuICB0b3RhbFJlZ2lzdHJvczogbnVtYmVyO1xuICByZWdpc3Ryb3NWYWxpZG9zPzogbnVtYmVyO1xuICBlcnJvcnM6IFNjRXhjZWxWYWxpZGF0aW9uRXJyb3JbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Component, Inject } from "@angular/core";
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from "@angular/material/dialog";
|
|
3
|
+
import { NgIf, NgFor } from "@angular/common";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
export class ScModalValidateExcelComponent {
|
|
7
|
+
constructor(data, dialogRef) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
this.dialogRef = dialogRef;
|
|
10
|
+
this.resultado = null;
|
|
11
|
+
this.errors = [];
|
|
12
|
+
this.fileName = "";
|
|
13
|
+
this.badgeText = "";
|
|
14
|
+
this.badgeIcon = "";
|
|
15
|
+
this.titleSuccess = "";
|
|
16
|
+
this.titleError = "";
|
|
17
|
+
this.subtitleError = "";
|
|
18
|
+
this.confirmQuestion = "";
|
|
19
|
+
this.textErrorAction = "";
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
if (this.data) {
|
|
23
|
+
if (this.data.resultado) {
|
|
24
|
+
this.resultado = this.data.resultado;
|
|
25
|
+
this.errors = this.resultado?.errors || [];
|
|
26
|
+
}
|
|
27
|
+
if (this.data.fileName)
|
|
28
|
+
this.fileName = this.data.fileName;
|
|
29
|
+
if (this.data.badgeText)
|
|
30
|
+
this.badgeText = this.data.badgeText;
|
|
31
|
+
if (this.data.badgeIcon)
|
|
32
|
+
this.badgeIcon = this.data.badgeIcon;
|
|
33
|
+
if (this.data.titleSuccess)
|
|
34
|
+
this.titleSuccess = this.data.titleSuccess;
|
|
35
|
+
if (this.data.titleError)
|
|
36
|
+
this.titleError = this.data.titleError;
|
|
37
|
+
if (this.data.subtitleError)
|
|
38
|
+
this.subtitleError = this.data.subtitleError;
|
|
39
|
+
if (this.data.confirmQuestion)
|
|
40
|
+
this.confirmQuestion = this.data.confirmQuestion;
|
|
41
|
+
if (this.data.textErrorAction)
|
|
42
|
+
this.textErrorAction = this.data.textErrorAction;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getTotalRegistros() {
|
|
46
|
+
if (!this.resultado)
|
|
47
|
+
return 0;
|
|
48
|
+
if (typeof this.resultado.totalRegistros === "number") {
|
|
49
|
+
return this.resultado.totalRegistros;
|
|
50
|
+
}
|
|
51
|
+
const validos = this.resultado.registrosValidos || 0;
|
|
52
|
+
const invalidos = this.errors.length;
|
|
53
|
+
return validos + invalidos;
|
|
54
|
+
}
|
|
55
|
+
hasErrors() {
|
|
56
|
+
return this.errors && this.errors.length > 0;
|
|
57
|
+
}
|
|
58
|
+
onConfirm() {
|
|
59
|
+
this.dialogRef.close(true);
|
|
60
|
+
}
|
|
61
|
+
onCancel() {
|
|
62
|
+
this.dialogRef.close(false);
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScModalValidateExcelComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ScModalValidateExcelComponent, isStandalone: true, selector: "sc-modal-validate-excel", ngImport: i0, template: "<div class=\"swal-custom-container p-4\">\n <!-- Top Bar: Excel Name on left, Office Badge on Top Right -->\n <div class=\"d-flex justify-content-between align-items-center pb-3 mb-3 border-bottom\">\n <div class=\"d-flex align-items-center text-truncate pe-2\">\n <i class=\"fa-solid fa-file-excel text-success fs-4 me-2\"></i>\n <span class=\"fw-bold text-dark text-truncate\">{{ fileName || \"Archivo Excel\" }}</span>\n </div>\n <div class=\"flex-shrink-0\">\n <span *ngIf=\"badgeText\" class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm\">\n <i *ngIf=\"badgeIcon\" class=\"{{ badgeIcon }} me-1\"></i> {{ badgeText }}\n </span>\n </div>\n </div>\n\n <!-- SweetAlert Style Animated/Styled Icon -->\n <div class=\"my-3\">\n <div *ngIf=\"!hasErrors()\" class=\"swal-icon-circle success-circle mx-auto d-flex align-items-center justify-content-center\">\n <i class=\"fa-solid fa-check\"></i>\n </div>\n <div *ngIf=\"hasErrors()\" class=\"swal-icon-circle warning-circle mx-auto d-flex align-items-center justify-content-center\">\n <i class=\"fa-solid fa-exclamation\"></i>\n </div>\n </div>\n\n <!-- Centered Title (SweetAlert Style) -->\n <div class=\"text-center px-3 mb-4\">\n <h3 class=\"fw-bold text-dark mb-1 swal-title\">\n {{ !hasErrors() ? titleSuccess || \"\u00A1Validaci\u00F3n Exitosa!\" : titleError || \"Observaciones en la Plantilla\" }}\n </h3>\n <p *ngIf=\"hasErrors()\" class=\"text-muted small mb-0\">\n {{ subtitleError || \"Se detectaron observaciones durante la lectura del archivo.\" }}\n </p>\n </div>\n\n <!-- Organized Summary Data Panel -->\n <div *ngIf=\"!hasErrors()\" class=\"organized-panel mx-auto p-2 mb-4 text-center\" style=\"max-width: 460px\">\n <div class=\"p-3 bg-white rounded border mb-3 d-inline-block px-5 shadow-sm\">\n <span class=\"text-muted d-block small mb-1\">Registros Le\u00EDdos</span>\n <span class=\"fs-3 fw-bold text-dark\">{{ getTotalRegistros() }}</span>\n </div>\n <div class=\"text-muted small px-2\">\n <i class=\"fa-solid fa-circle-check text-success me-1\"></i> No se encontraron errores ni formato incorrecto en los registros le\u00EDdos.\n </div>\n </div>\n\n <div *ngIf=\"hasErrors()\" class=\"organized-panel mx-auto p-2 mb-3 text-center\" style=\"max-width: 560px\">\n <div class=\"row g-2 py-1 justify-content-center mb-2\">\n <div class=\"col-6\">\n <div class=\"p-2 bg-white rounded border shadow-sm\">\n <span class=\"text-muted d-block small\">Registros Le\u00EDdos</span>\n <span class=\"fs-5 fw-bold text-dark\">{{ getTotalRegistros() }}</span>\n </div>\n </div>\n <div class=\"col-6\">\n <div class=\"p-2 bg-white rounded border border-warning shadow-sm\">\n <span class=\"text-warning-emphasis d-block small fw-bold\">Registros Inv\u00E1lidos</span>\n <span class=\"fs-5 fw-bold text-danger\">{{ errors.length }}</span>\n </div>\n </div>\n </div>\n <div class=\"text-muted small px-2\">\n <i class=\"fa-solid fa-triangle-exclamation text-warning me-1\"></i> Revisa los registros que requieren correcci\u00F3n en la siguiente\n tabla:\n </div>\n </div>\n\n <!-- Errors Table -->\n <div\n *ngIf=\"hasErrors()\"\n class=\"errors-table-container border rounded-3 mb-4 mx-auto text-start overflow-hidden shadow-sm\"\n style=\"max-width: 600px\">\n <div class=\"table-responsive\" style=\"max-height: 180px; overflow-y: auto\">\n <table class=\"table table-hover table-sm mb-0 align-middle\">\n <thead class=\"table-light sticky-top\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-2 text-dark\" style=\"width: 70px\">Fila</th>\n <th scope=\"col\" class=\"py-2 text-dark\" style=\"width: 140px\">Columna</th>\n <th scope=\"col\" class=\"py-2 text-dark\">Descripci\u00F3n del Error</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let err of errors\">\n <td class=\"px-3 fw-bold text-dark\">#{{ err.fila || \"-\" }}</td>\n <td>\n <span class=\"badge bg-light text-dark border px-2 py-1\">{{ err.columna || \"-\" }}</span>\n </td>\n <td class=\"text-danger small fw-500\">{{ err.mensaje }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- SweetAlert Style Actions when NO errors -->\n <div *ngIf=\"!hasErrors()\" class=\"text-center pt-2\">\n <p class=\"fs-6 fw-bold text-dark mb-3\">\n {{ confirmQuestion || \"\u00BFDesea proceder con la importaci\u00F3n?\" }}\n </p>\n <div class=\"d-flex justify-content-center align-items-center\">\n <button type=\"button\" class=\"btn btn-danger btn-block px-5 mx-2 my-1\" (click)=\"onCancel()\">No</button>\n <button type=\"button\" class=\"btn btn-success btn-block px-5 mx-2 my-1\" (click)=\"onConfirm()\">S\u00ED</button>\n </div>\n </div>\n\n <!-- SweetAlert Style Actions when THERE ARE errors -->\n <div *ngIf=\"hasErrors()\" class=\"text-center pt-2\">\n <p class=\"fs-6 fw-bold text-danger mb-3\">\n {{ textErrorAction || \"Debe corregir las observaciones del archivo Excel para continuar.\" }}\n </p>\n <div class=\"d-flex justify-content-center align-items-center\">\n <button type=\"button\" class=\"btn btn-danger btn-block px-5 mx-2 my-1\" (click)=\"onCancel()\">Cerrar</button>\n </div>\n </div>\n</div>\n", styles: [".swal-custom-container{background-color:#fff;border-radius:.5rem;font-family:inherit}.swal-icon-circle{width:80px;height:80px;border-radius:50%;border:4px solid;font-size:2.5rem}.swal-icon-circle.success-circle{border-color:#a5dc86;background-color:#a5dc8626;color:#a5dc86}.swal-icon-circle.success-circle i{color:#28a745!important}.swal-icon-circle.warning-circle{border-color:#f8bb86;background-color:#f8bb8626;color:#f8bb86}.swal-icon-circle.warning-circle i{color:#ffc107!important}.swal-title{font-size:1.5rem}.organized-panel{background-color:transparent!important}.errors-table-container{border-color:#e2e8f0!important}.errors-table-container table{font-size:.85rem}.errors-table-container table thead th{background-color:#f1f5f9;font-weight:600;color:#334155;border-bottom:1px solid #cbd5e1}.errors-table-container table tbody tr:last-child td{border-bottom:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatDialogModule }] }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ScModalValidateExcelComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: "sc-modal-validate-excel", standalone: true, imports: [NgIf, NgFor, MatDialogModule], template: "<div class=\"swal-custom-container p-4\">\n <!-- Top Bar: Excel Name on left, Office Badge on Top Right -->\n <div class=\"d-flex justify-content-between align-items-center pb-3 mb-3 border-bottom\">\n <div class=\"d-flex align-items-center text-truncate pe-2\">\n <i class=\"fa-solid fa-file-excel text-success fs-4 me-2\"></i>\n <span class=\"fw-bold text-dark text-truncate\">{{ fileName || \"Archivo Excel\" }}</span>\n </div>\n <div class=\"flex-shrink-0\">\n <span *ngIf=\"badgeText\" class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm\">\n <i *ngIf=\"badgeIcon\" class=\"{{ badgeIcon }} me-1\"></i> {{ badgeText }}\n </span>\n </div>\n </div>\n\n <!-- SweetAlert Style Animated/Styled Icon -->\n <div class=\"my-3\">\n <div *ngIf=\"!hasErrors()\" class=\"swal-icon-circle success-circle mx-auto d-flex align-items-center justify-content-center\">\n <i class=\"fa-solid fa-check\"></i>\n </div>\n <div *ngIf=\"hasErrors()\" class=\"swal-icon-circle warning-circle mx-auto d-flex align-items-center justify-content-center\">\n <i class=\"fa-solid fa-exclamation\"></i>\n </div>\n </div>\n\n <!-- Centered Title (SweetAlert Style) -->\n <div class=\"text-center px-3 mb-4\">\n <h3 class=\"fw-bold text-dark mb-1 swal-title\">\n {{ !hasErrors() ? titleSuccess || \"\u00A1Validaci\u00F3n Exitosa!\" : titleError || \"Observaciones en la Plantilla\" }}\n </h3>\n <p *ngIf=\"hasErrors()\" class=\"text-muted small mb-0\">\n {{ subtitleError || \"Se detectaron observaciones durante la lectura del archivo.\" }}\n </p>\n </div>\n\n <!-- Organized Summary Data Panel -->\n <div *ngIf=\"!hasErrors()\" class=\"organized-panel mx-auto p-2 mb-4 text-center\" style=\"max-width: 460px\">\n <div class=\"p-3 bg-white rounded border mb-3 d-inline-block px-5 shadow-sm\">\n <span class=\"text-muted d-block small mb-1\">Registros Le\u00EDdos</span>\n <span class=\"fs-3 fw-bold text-dark\">{{ getTotalRegistros() }}</span>\n </div>\n <div class=\"text-muted small px-2\">\n <i class=\"fa-solid fa-circle-check text-success me-1\"></i> No se encontraron errores ni formato incorrecto en los registros le\u00EDdos.\n </div>\n </div>\n\n <div *ngIf=\"hasErrors()\" class=\"organized-panel mx-auto p-2 mb-3 text-center\" style=\"max-width: 560px\">\n <div class=\"row g-2 py-1 justify-content-center mb-2\">\n <div class=\"col-6\">\n <div class=\"p-2 bg-white rounded border shadow-sm\">\n <span class=\"text-muted d-block small\">Registros Le\u00EDdos</span>\n <span class=\"fs-5 fw-bold text-dark\">{{ getTotalRegistros() }}</span>\n </div>\n </div>\n <div class=\"col-6\">\n <div class=\"p-2 bg-white rounded border border-warning shadow-sm\">\n <span class=\"text-warning-emphasis d-block small fw-bold\">Registros Inv\u00E1lidos</span>\n <span class=\"fs-5 fw-bold text-danger\">{{ errors.length }}</span>\n </div>\n </div>\n </div>\n <div class=\"text-muted small px-2\">\n <i class=\"fa-solid fa-triangle-exclamation text-warning me-1\"></i> Revisa los registros que requieren correcci\u00F3n en la siguiente\n tabla:\n </div>\n </div>\n\n <!-- Errors Table -->\n <div\n *ngIf=\"hasErrors()\"\n class=\"errors-table-container border rounded-3 mb-4 mx-auto text-start overflow-hidden shadow-sm\"\n style=\"max-width: 600px\">\n <div class=\"table-responsive\" style=\"max-height: 180px; overflow-y: auto\">\n <table class=\"table table-hover table-sm mb-0 align-middle\">\n <thead class=\"table-light sticky-top\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-2 text-dark\" style=\"width: 70px\">Fila</th>\n <th scope=\"col\" class=\"py-2 text-dark\" style=\"width: 140px\">Columna</th>\n <th scope=\"col\" class=\"py-2 text-dark\">Descripci\u00F3n del Error</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let err of errors\">\n <td class=\"px-3 fw-bold text-dark\">#{{ err.fila || \"-\" }}</td>\n <td>\n <span class=\"badge bg-light text-dark border px-2 py-1\">{{ err.columna || \"-\" }}</span>\n </td>\n <td class=\"text-danger small fw-500\">{{ err.mensaje }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- SweetAlert Style Actions when NO errors -->\n <div *ngIf=\"!hasErrors()\" class=\"text-center pt-2\">\n <p class=\"fs-6 fw-bold text-dark mb-3\">\n {{ confirmQuestion || \"\u00BFDesea proceder con la importaci\u00F3n?\" }}\n </p>\n <div class=\"d-flex justify-content-center align-items-center\">\n <button type=\"button\" class=\"btn btn-danger btn-block px-5 mx-2 my-1\" (click)=\"onCancel()\">No</button>\n <button type=\"button\" class=\"btn btn-success btn-block px-5 mx-2 my-1\" (click)=\"onConfirm()\">S\u00ED</button>\n </div>\n </div>\n\n <!-- SweetAlert Style Actions when THERE ARE errors -->\n <div *ngIf=\"hasErrors()\" class=\"text-center pt-2\">\n <p class=\"fs-6 fw-bold text-danger mb-3\">\n {{ textErrorAction || \"Debe corregir las observaciones del archivo Excel para continuar.\" }}\n </p>\n <div class=\"d-flex justify-content-center align-items-center\">\n <button type=\"button\" class=\"btn btn-danger btn-block px-5 mx-2 my-1\" (click)=\"onCancel()\">Cerrar</button>\n </div>\n </div>\n</div>\n", styles: [".swal-custom-container{background-color:#fff;border-radius:.5rem;font-family:inherit}.swal-icon-circle{width:80px;height:80px;border-radius:50%;border:4px solid;font-size:2.5rem}.swal-icon-circle.success-circle{border-color:#a5dc86;background-color:#a5dc8626;color:#a5dc86}.swal-icon-circle.success-circle i{color:#28a745!important}.swal-icon-circle.warning-circle{border-color:#f8bb86;background-color:#f8bb8626;color:#f8bb86}.swal-icon-circle.warning-circle i{color:#ffc107!important}.swal-title{font-size:1.5rem}.organized-panel{background-color:transparent!important}.errors-table-container{border-color:#e2e8f0!important}.errors-table-container table{font-size:.85rem}.errors-table-container table thead th{background-color:#f1f5f9;font-weight:600;color:#334155;border-bottom:1px solid #cbd5e1}.errors-table-container table tbody tr:last-child td{border-bottom:0}\n"] }]
|
|
70
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
71
|
+
type: Inject,
|
|
72
|
+
args: [MAT_DIALOG_DATA]
|
|
73
|
+
}] }, { type: i1.MatDialogRef }] });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbW9kYWwtdmFsaWRhdGUtZXhjZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zYy1tb2RhbC12YWxpZGF0ZS1leGNlbC9zYy1tb2RhbC12YWxpZGF0ZS1leGNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3NjLW1vZGFsLXZhbGlkYXRlLWV4Y2VsL3NjLW1vZGFsLXZhbGlkYXRlLWV4Y2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXNCOUMsTUFBTSxPQUFPLDZCQUE2QjtJQWN4QyxZQUNrQyxJQUE4QixFQUN2RCxTQUFzRDtRQUQ3QixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUN2RCxjQUFTLEdBQVQsU0FBUyxDQUE2QztRQWYvRCxjQUFTLEdBQW1DLElBQUksQ0FBQztRQUNqRCxXQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUV0QyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUU5RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtnQkFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3ZFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDakUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMxRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtnQkFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO2dCQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDckMsT0FBTyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0F6RFUsNkJBQTZCLGtCQWU5QixlQUFlO21HQWZkLDZCQUE2QixtRkN4QjFDLDY1S0FrSEEsZzZCRDVGWSxJQUFJLDZGQUFFLEtBQUssa0hBQUUsZUFBZTs7NEZBRTNCLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUM7OzBCQWlCcEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBTY0V4Y2VsVmFsaWRhdGlvblJlc3VsdCwgU2NFeGNlbFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi9zYy1tb2RhbC11cGxvYWQtZXhjZWwvc2MtbW9kYWwtdXBsb2FkLWV4Y2VsLnR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NNb2RhbFZhbGlkYXRlRXhjZWxEYXRhIHtcbiAgcmVzdWx0YWRvOiBTY0V4Y2VsVmFsaWRhdGlvblJlc3VsdDtcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG4gIGJhZGdlVGV4dD86IHN0cmluZztcbiAgYmFkZ2VJY29uPzogc3RyaW5nO1xuICB0aXRsZVN1Y2Nlc3M/OiBzdHJpbmc7XG4gIHRpdGxlRXJyb3I/OiBzdHJpbmc7XG4gIHN1YnRpdGxlRXJyb3I/OiBzdHJpbmc7XG4gIGNvbmZpcm1RdWVzdGlvbj86IHN0cmluZztcbiAgdGV4dEVycm9yQWN0aW9uPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic2MtbW9kYWwtdmFsaWRhdGUtZXhjZWxcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zYy1tb2RhbC12YWxpZGF0ZS1leGNlbC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc2MtbW9kYWwtdmFsaWRhdGUtZXhjZWwuY29tcG9uZW50LnNjc3NcIl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgTWF0RGlhbG9nTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NNb2RhbFZhbGlkYXRlRXhjZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByZXN1bHRhZG86IFNjRXhjZWxWYWxpZGF0aW9uUmVzdWx0IHwgbnVsbCA9IG51bGw7XG4gIGVycm9yczogU2NFeGNlbFZhbGlkYXRpb25FcnJvcltdID0gW107XG5cbiAgZmlsZU5hbWU6IHN0cmluZyA9IFwiXCI7XG4gIGJhZGdlVGV4dDogc3RyaW5nID0gXCJcIjtcbiAgYmFkZ2VJY29uOiBzdHJpbmcgPSBcIlwiO1xuXG4gIHRpdGxlU3VjY2Vzczogc3RyaW5nID0gXCJcIjtcbiAgdGl0bGVFcnJvcjogc3RyaW5nID0gXCJcIjtcbiAgc3VidGl0bGVFcnJvcjogc3RyaW5nID0gXCJcIjtcbiAgY29uZmlybVF1ZXN0aW9uOiBzdHJpbmcgPSBcIlwiO1xuICB0ZXh0RXJyb3JBY3Rpb246IHN0cmluZyA9IFwiXCI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTY01vZGFsVmFsaWRhdGVFeGNlbERhdGEsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjTW9kYWxWYWxpZGF0ZUV4Y2VsQ29tcG9uZW50PlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGF0YS5yZXN1bHRhZG8pIHtcbiAgICAgICAgdGhpcy5yZXN1bHRhZG8gPSB0aGlzLmRhdGEucmVzdWx0YWRvO1xuICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMucmVzdWx0YWRvPy5lcnJvcnMgfHwgW107XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhLmZpbGVOYW1lKSB0aGlzLmZpbGVOYW1lID0gdGhpcy5kYXRhLmZpbGVOYW1lO1xuICAgICAgaWYgKHRoaXMuZGF0YS5iYWRnZVRleHQpIHRoaXMuYmFkZ2VUZXh0ID0gdGhpcy5kYXRhLmJhZGdlVGV4dDtcbiAgICAgIGlmICh0aGlzLmRhdGEuYmFkZ2VJY29uKSB0aGlzLmJhZGdlSWNvbiA9IHRoaXMuZGF0YS5iYWRnZUljb247XG5cbiAgICAgIGlmICh0aGlzLmRhdGEudGl0bGVTdWNjZXNzKSB0aGlzLnRpdGxlU3VjY2VzcyA9IHRoaXMuZGF0YS50aXRsZVN1Y2Nlc3M7XG4gICAgICBpZiAodGhpcy5kYXRhLnRpdGxlRXJyb3IpIHRoaXMudGl0bGVFcnJvciA9IHRoaXMuZGF0YS50aXRsZUVycm9yO1xuICAgICAgaWYgKHRoaXMuZGF0YS5zdWJ0aXRsZUVycm9yKSB0aGlzLnN1YnRpdGxlRXJyb3IgPSB0aGlzLmRhdGEuc3VidGl0bGVFcnJvcjtcbiAgICAgIGlmICh0aGlzLmRhdGEuY29uZmlybVF1ZXN0aW9uKSB0aGlzLmNvbmZpcm1RdWVzdGlvbiA9IHRoaXMuZGF0YS5jb25maXJtUXVlc3Rpb247XG4gICAgICBpZiAodGhpcy5kYXRhLnRleHRFcnJvckFjdGlvbikgdGhpcy50ZXh0RXJyb3JBY3Rpb24gPSB0aGlzLmRhdGEudGV4dEVycm9yQWN0aW9uO1xuICAgIH1cbiAgfVxuXG4gIGdldFRvdGFsUmVnaXN0cm9zKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdGFkbykgcmV0dXJuIDA7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnJlc3VsdGFkby50b3RhbFJlZ2lzdHJvcyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzdWx0YWRvLnRvdGFsUmVnaXN0cm9zO1xuICAgIH1cbiAgICBjb25zdCB2YWxpZG9zID0gdGhpcy5yZXN1bHRhZG8ucmVnaXN0cm9zVmFsaWRvcyB8fCAwO1xuICAgIGNvbnN0IGludmFsaWRvcyA9IHRoaXMuZXJyb3JzLmxlbmd0aDtcbiAgICByZXR1cm4gdmFsaWRvcyArIGludmFsaWRvcztcbiAgfVxuXG4gIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMgJiYgdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN3YWwtY3VzdG9tLWNvbnRhaW5lciBwLTRcIj5cbiAgPCEtLSBUb3AgQmFyOiBFeGNlbCBOYW1lIG9uIGxlZnQsIE9mZmljZSBCYWRnZSBvbiBUb3AgUmlnaHQgLS0+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHBiLTMgbWItMyBib3JkZXItYm90dG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC10cnVuY2F0ZSBwZS0yXCI+XG4gICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWZpbGUtZXhjZWwgdGV4dC1zdWNjZXNzIGZzLTQgbWUtMlwiPjwvaT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWRhcmsgdGV4dC10cnVuY2F0ZVwiPnt7IGZpbGVOYW1lIHx8IFwiQXJjaGl2byBFeGNlbFwiIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImJhZGdlVGV4dFwiIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1wcmltYXJ5IGJvcmRlciBweC0zIHB5LTIgZnMtNyBmdy1ib2xkIHNoYWRvdy1zbVwiPlxuICAgICAgICA8aSAqbmdJZj1cImJhZGdlSWNvblwiIGNsYXNzPVwie3sgYmFkZ2VJY29uIH19IG1lLTFcIj48L2k+IHt7IGJhZGdlVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFN3ZWV0QWxlcnQgU3R5bGUgQW5pbWF0ZWQvU3R5bGVkIEljb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJteS0zXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFoYXNFcnJvcnMoKVwiIGNsYXNzPVwic3dhbC1pY29uLWNpcmNsZSBzdWNjZXNzLWNpcmNsZSBteC1hdXRvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGVja1wiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaGFzRXJyb3JzKClcIiBjbGFzcz1cInN3YWwtaWNvbi1jaXJjbGUgd2FybmluZy1jaXJjbGUgbXgtYXV0byBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZXhjbGFtYXRpb25cIj48L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2VudGVyZWQgVGl0bGUgKFN3ZWV0QWxlcnQgU3R5bGUpIC0tPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHgtMyBtYi00XCI+XG4gICAgPGgzIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWRhcmsgbWItMSBzd2FsLXRpdGxlXCI+XG4gICAgICB7eyAhaGFzRXJyb3JzKCkgPyB0aXRsZVN1Y2Nlc3MgfHwgXCLCoVZhbGlkYWNpw7NuIEV4aXRvc2EhXCIgOiB0aXRsZUVycm9yIHx8IFwiT2JzZXJ2YWNpb25lcyBlbiBsYSBQbGFudGlsbGFcIiB9fVxuICAgIDwvaDM+XG4gICAgPHAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiIGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBtYi0wXCI+XG4gICAgICB7eyBzdWJ0aXRsZUVycm9yIHx8IFwiU2UgZGV0ZWN0YXJvbiBvYnNlcnZhY2lvbmVzIGR1cmFudGUgbGEgbGVjdHVyYSBkZWwgYXJjaGl2by5cIiB9fVxuICAgIDwvcD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBPcmdhbml6ZWQgU3VtbWFyeSBEYXRhIFBhbmVsIC0tPlxuICA8ZGl2ICpuZ0lmPVwiIWhhc0Vycm9ycygpXCIgY2xhc3M9XCJvcmdhbml6ZWQtcGFuZWwgbXgtYXV0byBwLTIgbWItNCB0ZXh0LWNlbnRlclwiIHN0eWxlPVwibWF4LXdpZHRoOiA0NjBweFwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTMgYmctd2hpdGUgcm91bmRlZCBib3JkZXIgbWItMyBkLWlubGluZS1ibG9jayBweC01IHNoYWRvdy1zbVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkIGQtYmxvY2sgc21hbGwgbWItMVwiPlJlZ2lzdHJvcyBMZcOtZG9zPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmcy0zIGZ3LWJvbGQgdGV4dC1kYXJrXCI+e3sgZ2V0VG90YWxSZWdpc3Ryb3MoKSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBweC0yXCI+XG4gICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1jaGVjayB0ZXh0LXN1Y2Nlc3MgbWUtMVwiPjwvaT4gTm8gc2UgZW5jb250cmFyb24gZXJyb3JlcyBuaSBmb3JtYXRvIGluY29ycmVjdG8gZW4gbG9zIHJlZ2lzdHJvcyBsZcOtZG9zLlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaGFzRXJyb3JzKClcIiBjbGFzcz1cIm9yZ2FuaXplZC1wYW5lbCBteC1hdXRvIHAtMiBtYi0zIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDU2MHB4XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBnLTIgcHktMSBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1iLTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIGJnLXdoaXRlIHJvdW5kZWQgYm9yZGVyIHNoYWRvdy1zbVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZCBkLWJsb2NrIHNtYWxsXCI+UmVnaXN0cm9zIExlw61kb3M8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy01IGZ3LWJvbGQgdGV4dC1kYXJrXCI+e3sgZ2V0VG90YWxSZWdpc3Ryb3MoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIGJnLXdoaXRlIHJvdW5kZWQgYm9yZGVyIGJvcmRlci13YXJuaW5nIHNoYWRvdy1zbVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC13YXJuaW5nLWVtcGhhc2lzIGQtYmxvY2sgc21hbGwgZnctYm9sZFwiPlJlZ2lzdHJvcyBJbnbDoWxpZG9zPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtNSBmdy1ib2xkIHRleHQtZGFuZ2VyXCI+e3sgZXJyb3JzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBweC0yXCI+XG4gICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uIHRleHQtd2FybmluZyBtZS0xXCI+PC9pPiBSZXZpc2EgbG9zIHJlZ2lzdHJvcyBxdWUgcmVxdWllcmVuIGNvcnJlY2Npw7NuIGVuIGxhIHNpZ3VpZW50ZVxuICAgICAgdGFibGE6XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXJyb3JzIFRhYmxlIC0tPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiXG4gICAgY2xhc3M9XCJlcnJvcnMtdGFibGUtY29udGFpbmVyIGJvcmRlciByb3VuZGVkLTMgbWItNCBteC1hdXRvIHRleHQtc3RhcnQgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy1zbVwiXG4gICAgc3R5bGU9XCJtYXgtd2lkdGg6IDYwMHB4XCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIiBzdHlsZT1cIm1heC1oZWlnaHQ6IDE4MHB4OyBvdmVyZmxvdy15OiBhdXRvXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlciB0YWJsZS1zbSBtYi0wIGFsaWduLW1pZGRsZVwiPlxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJ0YWJsZS1saWdodCBzdGlja3ktdG9wXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJweC0zIHB5LTIgdGV4dC1kYXJrXCIgc3R5bGU9XCJ3aWR0aDogNzBweFwiPkZpbGE8L3RoPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJweS0yIHRleHQtZGFya1wiIHN0eWxlPVwid2lkdGg6IDE0MHB4XCI+Q29sdW1uYTwvdGg+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInB5LTIgdGV4dC1kYXJrXCI+RGVzY3JpcGNpw7NuIGRlbCBFcnJvcjwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZXJyIG9mIGVycm9yc1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMyBmdy1ib2xkIHRleHQtZGFya1wiPiN7eyBlcnIuZmlsYSB8fCBcIi1cIiB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1kYXJrIGJvcmRlciBweC0yIHB5LTFcIj57eyBlcnIuY29sdW1uYSB8fCBcIi1cIiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhbmdlciBzbWFsbCBmdy01MDBcIj57eyBlcnIubWVuc2FqZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gU3dlZXRBbGVydCBTdHlsZSBBY3Rpb25zIHdoZW4gTk8gZXJyb3JzIC0tPlxuICA8ZGl2ICpuZ0lmPVwiIWhhc0Vycm9ycygpXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC0yXCI+XG4gICAgPHAgY2xhc3M9XCJmcy02IGZ3LWJvbGQgdGV4dC1kYXJrIG1iLTNcIj5cbiAgICAgIHt7IGNvbmZpcm1RdWVzdGlvbiB8fCBcIsK/RGVzZWEgcHJvY2VkZXIgY29uIGxhIGltcG9ydGFjacOzbj9cIiB9fVxuICAgIDwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1ibG9jayBweC01IG14LTIgbXktMVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Tm88L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1ibG9jayBweC01IG14LTIgbXktMVwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPlPDrTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFN3ZWV0QWxlcnQgU3R5bGUgQWN0aW9ucyB3aGVuIFRIRVJFIEFSRSBlcnJvcnMgLS0+XG4gIDxkaXYgKm5nSWY9XCJoYXNFcnJvcnMoKVwiIGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtMlwiPlxuICAgIDxwIGNsYXNzPVwiZnMtNiBmdy1ib2xkIHRleHQtZGFuZ2VyIG1iLTNcIj5cbiAgICAgIHt7IHRleHRFcnJvckFjdGlvbiB8fCBcIkRlYmUgY29ycmVnaXIgbGFzIG9ic2VydmFjaW9uZXMgZGVsIGFyY2hpdm8gRXhjZWwgcGFyYSBjb250aW51YXIuXCIgfX1cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tYmxvY2sgcHgtNSBteC0yIG15LTFcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNlcnJhcjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -47,20 +47,20 @@ export class MessageUtilService {
|
|
|
47
47
|
toastr.error(this.message, `<h5 class='text-white'> ${element} </h5>`);
|
|
48
48
|
return toastr;
|
|
49
49
|
}
|
|
50
|
-
getAlertWarning(mensaje) {
|
|
50
|
+
getAlertWarning(mensaje, titulo = '¡ADVERTENCIA!') {
|
|
51
51
|
toastr.options.positionClass = 'toast-bottom-right';
|
|
52
52
|
toastr.options.closeButton = true;
|
|
53
53
|
toastr.options.progressBar = true;
|
|
54
54
|
toastr.options.newestOnTop = true;
|
|
55
|
-
toastr.warning(mensaje);
|
|
55
|
+
toastr.warning(mensaje, titulo);
|
|
56
56
|
return toastr;
|
|
57
57
|
}
|
|
58
|
-
getAlertSuccess(mensaje) {
|
|
58
|
+
getAlertSuccess(mensaje, titulo = '¡ÉXITO!') {
|
|
59
59
|
toastr.options.positionClass = 'toast-bottom-right';
|
|
60
60
|
toastr.options.closeButton = true;
|
|
61
61
|
toastr.options.progressBar = true;
|
|
62
62
|
toastr.options.newestOnTop = true;
|
|
63
|
-
toastr.success(mensaje);
|
|
63
|
+
toastr.success(mensaje, titulo);
|
|
64
64
|
return toastr;
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MessageUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
72
72
|
providedIn: 'root'
|
|
73
73
|
}]
|
|
74
74
|
}], ctorParameters: () => [] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS11dGlsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsOEJBQThCO0FBQzdCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDOztBQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFLeEIsTUFBTSxPQUFPLGtCQUFrQjtJQUU5QjtRQURBLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFDRyxDQUFDO0lBRWpCLGVBQWUsQ0FBQyxNQUFjLEVBQUUsVUFBa0IsRUFBRSxFQUFFLE9BQWdCO1FBQ3JFLHlCQUF5QjtRQUN6QixRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTTtnQkFDVixJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksT0FBTyxnQkFBZ0IsQ0FBQztnQkFDbkQsTUFBTTtZQUNQLEtBQUssTUFBTTtnQkFDVixJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksT0FBTyx1Q0FBdUMsQ0FBQztnQkFDMUUsTUFBTTtZQUNQLEtBQUssTUFBTTtnQkFDVixJQUFJLENBQUMsT0FBTyxHQUFHLHFFQUFxRSxDQUFDO2dCQUNyRixNQUFNO1lBQ1AsS0FBSyxNQUFNO2dCQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcscUZBQXFGLENBQUM7Z0JBQ3JHLE1BQU07WUFDUCxLQUFLLFFBQVE7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixNQUFNO1lBQ1AsS0FBSyxNQUFNO2dCQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsMEJBQTBCLENBQUM7Z0JBQzFDLE1BQU07WUFDUCxLQUFLLE1BQU07Z0JBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUNsQixxQ0FBcUM7Z0JBQ3JDLE1BQU07WUFDUCxLQUFLLEtBQUs7Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxrREFBa0QsQ0FBQztnQkFDbEUsTUFBTTtZQUNQO2dCQUNDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLG9CQUFvQixDQUFBO1FBQ25ELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwyQkFBMkIsT0FBTyxRQUFRLENBQUMsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZSxFQUFFLFNBQWlCLGVBQWU7UUFDaEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUE7UUFDbkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWUsRUFBRSxTQUFpQixTQUFTO1FBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLG9CQUFvQixDQUFBO1FBQ25ELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQzsrR0E3RFcsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGbEIsTUFBTTs7NEZBRU4sa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vaW1wb3J0IHRvYXN0ciBmcm9tICd0b2FzdHInO1xuIGltcG9ydCAqIGFzIHRvYXN0cl8gZnJvbSAndG9hc3RyJztcbiBjb25zdCB0b2FzdHIgPSB0b2FzdHJfO1xuXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVXRpbFNlcnZpY2Uge1xuXHRtZXNzYWdlID0gJyc7XG5cdGNvbnN0cnVjdG9yKCkgeyB9XG5cblx0Z2V0TWVzc2FnZUVycm9yKGNvZGlnbzogc3RyaW5nLCBlbGVtZW50OiBzdHJpbmcgPSAnJywgbWVzc2FnZT86IHN0cmluZyk6IGFueSB7XG5cdFx0Ly8gdHNsaW50OmRpc2FibGU6IGluZGVudFxuXHRcdHN3aXRjaCAoY29kaWdvKSB7XG5cdFx0XHRjYXNlICdBMDAxJzpcblx0XHRcdFx0dGhpcy5tZXNzYWdlID0gYEVsIGNhbXBvICR7ZWxlbWVudH0gIGVzIHJlcXVlcmlkb2A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQTAwMic6XG5cdFx0XHRcdHRoaXMubWVzc2FnZSA9IGBFbCBjYW1wbyAke2VsZW1lbnR9IG5vIGN1bXBsZSBjb24gZWwgZm9ybWF0byBlc3RhYmxlY2lkb2A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQTAwMyc6XG5cdFx0XHRcdHRoaXMubWVzc2FnZSA9IGBMYSBmZWNoYSBpbmdyZXNhZGEgbm8gcHVlZGUgc2VyIHN1cGVyaW9yIGEgbGEgZmVjaGEgZGVsIGTDrcKtYSBhY3R1YWxgO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ0EwMDQnOlxuXHRcdFx0XHR0aGlzLm1lc3NhZ2UgPSBgTGEgZmVjaGEgZGVsIGRvY3VtZW50byBubyBwdWVkZSBzZXIgbWVub3IgYSBsYSBmZWNoYSBkZWwgdWx0aW1vIGRvY3VtZW50byBpbmdyZXNhZG9gO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJzAwMDA0Nic6XG5cdFx0XHRcdHRoaXMubWVzc2FnZSA9IGAke21lc3NhZ2V9YDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBMDA1Jzpcblx0XHRcdFx0dGhpcy5tZXNzYWdlID0gYE5vIGhhIGluZ3Jlc2FkbyBsYSBzZXJpZWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQTk5OSc6XG5cdFx0XHRcdHRoaXMubWVzc2FnZSA9IGAke2VsZW1lbnR9YDtcblx0XHRcdFx0ZWxlbWVudCA9ICdFcnJvcic7XG5cdFx0XHRcdC8vIHJldHVybiB0b2FzdHIuZXJyb3IodGhpcy5tZXNzYWdlKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICc1MDAnOlxuXHRcdFx0XHR0aGlzLm1lc3NhZ2UgPSBgUG9yIGZhdm9yIGNvbXVuaXF1ZXNlIGNvbiBlbCBzb3BvcnRlIGRlbCBTaXN0ZW1hYDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aGlzLm1lc3NhZ2UgPSBlbGVtZW50O1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0dG9hc3RyLm9wdGlvbnMucG9zaXRpb25DbGFzcyA9ICd0b2FzdC1ib3R0b20tcmlnaHQnXG5cdFx0dG9hc3RyLm9wdGlvbnMuY2xvc2VCdXR0b24gPSB0cnVlO1xuXHRcdHRvYXN0ci5vcHRpb25zLnByb2dyZXNzQmFyID0gdHJ1ZTtcblx0XHR0b2FzdHIub3B0aW9ucy5uZXdlc3RPblRvcCA9IHRydWU7XG5cdFx0dG9hc3RyLmVycm9yKHRoaXMubWVzc2FnZSwgYDxoNSBjbGFzcz0ndGV4dC13aGl0ZSc+ICR7ZWxlbWVudH0gPC9oNT5gKTtcblx0XHRyZXR1cm4gdG9hc3RyO1xuXHR9XG5cblx0Z2V0QWxlcnRXYXJuaW5nKG1lbnNhamU6IHN0cmluZywgdGl0dWxvOiBzdHJpbmcgPSAnwqFBRFZFUlRFTkNJQSEnKTogYW55e1xuXHRcdHRvYXN0ci5vcHRpb25zLnBvc2l0aW9uQ2xhc3MgPSAndG9hc3QtYm90dG9tLXJpZ2h0J1xuXHRcdHRvYXN0ci5vcHRpb25zLmNsb3NlQnV0dG9uID0gdHJ1ZTtcblx0XHR0b2FzdHIub3B0aW9ucy5wcm9ncmVzc0JhciA9IHRydWU7XG5cdFx0dG9hc3RyLm9wdGlvbnMubmV3ZXN0T25Ub3AgPSB0cnVlO1xuXHRcdHRvYXN0ci53YXJuaW5nKG1lbnNhamUsIHRpdHVsbyk7XG5cdFx0cmV0dXJuIHRvYXN0cjtcblx0fVxuXG5cdGdldEFsZXJ0U3VjY2VzcyhtZW5zYWplOiBzdHJpbmcsIHRpdHVsbzogc3RyaW5nID0gJ8Khw4lYSVRPIScpOiBhbnl7XG5cdFx0dG9hc3RyLm9wdGlvbnMucG9zaXRpb25DbGFzcyA9ICd0b2FzdC1ib3R0b20tcmlnaHQnXG5cdFx0dG9hc3RyLm9wdGlvbnMuY2xvc2VCdXR0b24gPSB0cnVlO1xuXHRcdHRvYXN0ci5vcHRpb25zLnByb2dyZXNzQmFyID0gdHJ1ZTtcblx0XHR0b2FzdHIub3B0aW9ucy5uZXdlc3RPblRvcCA9IHRydWU7XG5cdFx0dG9hc3RyLnN1Y2Nlc3MobWVuc2FqZSwgdGl0dWxvKTtcblx0XHRyZXR1cm4gdG9hc3RyO1xuXHR9XG5cblxufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -45,4 +45,7 @@ export * from "./lib/text-area/text-area.module";
|
|
|
45
45
|
export * from "./lib/text-area/text-area.service";
|
|
46
46
|
export * from "./lib/utils/ScWizardBase";
|
|
47
47
|
export * from "./lib/utils/token/audit.token";
|
|
48
|
-
|
|
48
|
+
export * from "./lib/sc-modal-upload-excel/sc-modal-upload-excel.types";
|
|
49
|
+
export * from "./lib/sc-modal-upload-excel/sc-modal-upload-excel.component";
|
|
50
|
+
export * from "./lib/sc-modal-validate-excel/sc-modal-validate-excel.component";
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYywyR0FBMkcsQ0FBQztBQUMxSCxjQUFjLHlGQUF5RixDQUFDO0FBQ3hHLGNBQWMsMkdBQTJHLENBQUM7QUFDMUgsY0FBYyx1R0FBdUcsQ0FBQztBQUN0SCxjQUFjLDZGQUE2RixDQUFDO0FBQzVHLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLCtFQUErRSxDQUFDO0FBRTlGLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLGlFQUFpRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtc3VtYXgtZXJwLWNvbXBvbmVudFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGF0ZS10aW1lLXBpY2tlci1lZGl0YWJsZS9kYXRlLXRpbWUtcGlja2VyLWVkaXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtdGltZS1waWNrZXItZWRpdGFibGUvZGF0ZS10aW1lLXBpY2tlci1lZGl0YWJsZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXRpbWUtcGlja2VyLWVkaXRhYmxlL2RhdGUtdGltZS1waWNrZXItZWRpdGFibGUuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbnB1dC10ZXh0L2lucHV0LXRleHQuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL25nLXNlbGVjdC1tdWx0aXBsZS9uZy1zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbmctc2VsZWN0LW11bHRpcGxlL25nLXNlbGVjdC1tdWx0aXBsZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9uZy1zZWxlY3QtbXVsdGlwbGUvbmctc2VsZWN0LW11bHRpcGxlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9uZy1zZWxlY3Qtc2ltcGxlL25nLXNlbGVjdC1zaW1wbGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbmctc2VsZWN0LXNpbXBsZS9uZy1zZWxlY3Qtc2ltcGxlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2MtYWctZ3JpZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NjLWFnLWdyaWQvY2VsbC1yZW5kZXIvbm8tcm93cy1vdmVybGF5L25vUm93c092ZXJsYXlDdXN0b20uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLXBhZ2luYWJsZS9zYy1hZy1ncmlkLXBhZ2luYWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zYy13aXphcmQvc2Mtd2l6YXJkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NjLXdpemFyZC9zYy13aXphcmQubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL2NhcmRzL3NteC1kYXNoLWNhcmQtYmFzaWMvc214LWRhc2gtY2FyZC1iYXNpYy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1kb3VnaG51dC1leHQtbGFiZWxzL3NteC1kYXNoLWNhcmQtZG91Z2hudXQtZXh0LWxhYmVscy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1rcGktbGVnZW5kL3NteC1kYXNoLWNhcmQta3BpLWxlZ2VuZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1sZWdlbmQtY2hhcnQtc2VsZWN0L3NteC1kYXNoLWNhcmQtbGVnZW5kLWNoYXJ0LXNlbGVjdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1sZWdlbmQtY2hhcnQtdGFicy9zbXgtZGFzaC1jYXJkLWxlZ2VuZC1jaGFydC10YWJzLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLWxlZ2VuZC1jaGFydC9zbXgtZGFzaC1jYXJkLWxlZ2VuZC1jaGFydC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdC9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLXJhbmtpbmcvc214LWRhc2gtY2FyZC1yYW5raW5nLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLXRhYmxlL3NteC1kYXNoLWNhcmQtdGFibGUuY29tcG9uZW50XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvc3VtYXgtZGFzaGJvYXJkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC90eXBlcy90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC91dGlscy9jaGFydC1zZXR1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC91dGlscy9kYXNoYm9hcmQtaW50ZWdyYXRpb24udXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3RleHQtYXJlYS90ZXh0LWFyZWEubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdGV4dC1hcmVhL3RleHQtYXJlYS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdXRpbHMvU2NXaXphcmRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdXRpbHMvdG9rZW4vYXVkaXQudG9rZW5cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NjLW1vZGFsLXVwbG9hZC1leGNlbC9zYy1tb2RhbC11cGxvYWQtZXhjZWwudHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zYy1tb2RhbC11cGxvYWQtZXhjZWwvc2MtbW9kYWwtdXBsb2FkLWV4Y2VsLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NjLW1vZGFsLXZhbGlkYXRlLWV4Y2VsL3NjLW1vZGFsLXZhbGlkYXRlLWV4Y2VsLmNvbXBvbmVudFwiO1xuIl19
|