ngx-sumax-erp-components 1.11.0 → 1.12.0-beta.151
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/sumax-upload/profiles/smx-txt.profile.mjs +12 -0
- package/esm2022/lib/sumax-upload/profiles/smx-upload-profile.mjs +4 -0
- package/esm2022/lib/sumax-upload/smx-upload-file/smx-upload-file.component.mjs +7 -6
- package/esm2022/lib/sumax-upload/smx-upload.types.mjs +1 -1
- package/esm2022/public-api.mjs +2 -3
- package/fesm2022/ngx-sumax-erp-components.mjs +15 -6
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
- package/lib/sumax-upload/profiles/smx-txt.profile.d.ts +2 -0
- package/lib/sumax-upload/profiles/smx-upload-profile.d.ts +3 -0
- package/lib/sumax-upload/smx-upload-file/smx-upload-file.component.d.ts +2 -2
- package/lib/sumax-upload/smx-upload.types.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const SMX_PROFILE_TXT = {
|
|
2
|
+
profileId: "txt",
|
|
3
|
+
accentColor: "#0288d1",
|
|
4
|
+
allowedExtensions: [".txt"],
|
|
5
|
+
acceptAttr: ".txt,text/plain",
|
|
6
|
+
headerIcon: "fa-solid fa-file-lines",
|
|
7
|
+
fileIcon: "fa-solid fa-file-lines",
|
|
8
|
+
dropzoneLabel: "Seleccione un archivo de texto (.txt) o arrástrelo aquí",
|
|
9
|
+
formatLabel: "Formatos soportados: .txt",
|
|
10
|
+
invalidFileMessage: "Solo se permiten archivos de texto (.txt)",
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LXR4dC5wcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC11cGxvYWQvcHJvZmlsZXMvc214LXR4dC5wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBbUI7SUFDN0MsU0FBUyxFQUFFLEtBQUs7SUFDaEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDM0IsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixVQUFVLEVBQUUsd0JBQXdCO0lBQ3BDLFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsYUFBYSxFQUFFLHlEQUF5RDtJQUN4RSxXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLGtCQUFrQixFQUFFLDJDQUEyQztDQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU214RmlsZVByb2ZpbGUgfSBmcm9tIFwiLi4vc214LXVwbG9hZC50eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgU01YX1BST0ZJTEVfVFhUOiBTbXhGaWxlUHJvZmlsZSA9IHtcbiAgcHJvZmlsZUlkOiBcInR4dFwiLFxuICBhY2NlbnRDb2xvcjogXCIjMDI4OGQxXCIsXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBbXCIudHh0XCJdLFxuICBhY2NlcHRBdHRyOiBcIi50eHQsdGV4dC9wbGFpblwiLFxuICBoZWFkZXJJY29uOiBcImZhLXNvbGlkIGZhLWZpbGUtbGluZXNcIixcbiAgZmlsZUljb246IFwiZmEtc29saWQgZmEtZmlsZS1saW5lc1wiLFxuICBkcm9wem9uZUxhYmVsOiBcIlNlbGVjY2lvbmUgdW4gYXJjaGl2byBkZSB0ZXh0byAoLnR4dCkgbyBhcnLDoXN0cmVsbyBhcXXDrVwiLFxuICBmb3JtYXRMYWJlbDogXCJGb3JtYXRvcyBzb3BvcnRhZG9zOiAudHh0XCIsXG4gIGludmFsaWRGaWxlTWVzc2FnZTogXCJTb2xvIHNlIHBlcm1pdGVuIGFyY2hpdm9zIGRlIHRleHRvICgudHh0KVwiLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./smx-excel.profile";
|
|
2
|
+
export * from "./smx-pdf.profile";
|
|
3
|
+
export * from "./smx-txt.profile";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LXVwbG9hZC1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC11cGxvYWQvcHJvZmlsZXMvc214LXVwbG9hZC1wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc214LWV4Y2VsLnByb2ZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NteC1wZGYucHJvZmlsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc214LXR4dC5wcm9maWxlXCI7XG4iXX0=
|
|
@@ -2,7 +2,11 @@ import { Component, inject } from "@angular/core";
|
|
|
2
2
|
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from "@angular/material/dialog";
|
|
3
3
|
import { MessageUtilService } from "../../utils/message-util.service";
|
|
4
4
|
import { SMX_PROFILE_EXCEL } from "../profiles/smx-excel.profile";
|
|
5
|
+
import { FormsModule } from "@angular/forms";
|
|
6
|
+
import { NgSelectModule } from "@ng-select/ng-select";
|
|
7
|
+
import { CommonModule } from "@angular/common";
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
6
10
|
/**
|
|
7
11
|
* Componente de diálogo para cargar archivos.
|
|
8
12
|
* Utilizar {@link SmxUploadFileData} como interfaz para Data.
|
|
@@ -84,14 +88,11 @@ export class SmxUploadFileComponent {
|
|
|
84
88
|
}
|
|
85
89
|
this.dialogRef.close(this.selectedFile);
|
|
86
90
|
}
|
|
87
|
-
onCancel() {
|
|
88
|
-
this.dialogRef.close(null);
|
|
89
|
-
}
|
|
90
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxUploadFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmxUploadFileComponent, isStandalone: true, selector: "smx-upload-file", ngImport: i0, template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Botones -->\n <div class=\"d-flex justify-content-end pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success px-5\" (click)=\"onConfirm()\"
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmxUploadFileComponent, isStandalone: true, selector: "smx-upload-file", ngImport: i0, template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n\n\n <!-- Footer (Controles y Botones) -->\n <div class=\"d-flex justify-content-between align-items-end pt-3 border-top\">\n <div class=\"flex-grow-1 me-4\">\n @if (data.footerTemplate) {\n <ng-container *ngTemplateOutlet=\"data.footerTemplate\"></ng-container>\n }\n </div>\n <div>\n <button type=\"button\" class=\"btn btn-success px-5 py-2 shadow-sm fw-bold\" style=\"border-radius: 8px;\" (click)=\"onConfirm()\">\n Cargar\n </button>\n </div>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155;--smx-accent: #28a745}.icon-header{width:48px;height:48px;border-radius:50%;background-color:color-mix(in srgb,var(--smx-accent) 12%,transparent);color:var(--smx-accent);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:var(--smx-accent);background-color:color-mix(in srgb,var(--smx-accent) 4%,transparent)}.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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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}::ng-deep .smx-upload-dropdown-panel{width:auto!important;min-width:250px!important;max-width:400px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
92
93
|
}
|
|
93
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxUploadFileComponent, decorators: [{
|
|
94
95
|
type: Component,
|
|
95
|
-
args: [{ selector: "smx-upload-file", standalone: true, imports: [MatDialogModule], template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Botones -->\n <div class=\"d-flex justify-content-end pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success px-5\" (click)=\"onConfirm()\"
|
|
96
|
+
args: [{ selector: "smx-upload-file", standalone: true, imports: [MatDialogModule, FormsModule, NgSelectModule, CommonModule], template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n\n\n <!-- Footer (Controles y Botones) -->\n <div class=\"d-flex justify-content-between align-items-end pt-3 border-top\">\n <div class=\"flex-grow-1 me-4\">\n @if (data.footerTemplate) {\n <ng-container *ngTemplateOutlet=\"data.footerTemplate\"></ng-container>\n }\n </div>\n <div>\n <button type=\"button\" class=\"btn btn-success px-5 py-2 shadow-sm fw-bold\" style=\"border-radius: 8px;\" (click)=\"onConfirm()\">\n Cargar\n </button>\n </div>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155;--smx-accent: #28a745}.icon-header{width:48px;height:48px;border-radius:50%;background-color:color-mix(in srgb,var(--smx-accent) 12%,transparent);color:var(--smx-accent);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:var(--smx-accent);background-color:color-mix(in srgb,var(--smx-accent) 4%,transparent)}.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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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}::ng-deep .smx-upload-dropdown-panel{width:auto!important;min-width:250px!important;max-width:400px!important}\n"] }]
|
|
96
97
|
}] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LXVwbG9hZC1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc3VtYXgtdXBsb2FkL3NteC11cGxvYWQtZmlsZS9zbXgtdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC11cGxvYWQvc214LXVwbG9hZC1maWxlL3NteC11cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFVbEU7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVFXLFNBQUksR0FBc0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUFvQyxDQUFBLENBQUMsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTFELGlCQUFZLEdBQWdCLElBQUksQ0FBQztRQUNqQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QixhQUFRLEdBQUcsb0NBQW9DLENBQUM7UUFDaEQsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixZQUFPLEdBQW1C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QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDZixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUNyRixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7K0dBbEZVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDJFQ3pCbkMsNHVGQTBFQSxvOEREbkRZLGVBQWU7OzRGQUVkLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBNZXNzYWdlVXRpbFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWVzc2FnZS11dGlsLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNteEZpbGVQcm9maWxlIH0gZnJvbSBcIi4uL3NteC11cGxvYWQudHlwZXNcIjtcbmltcG9ydCB7IFNNWF9QUk9GSUxFX0VYQ0VMIH0gZnJvbSBcIi4uL3Byb2ZpbGVzL3NteC1leGNlbC5wcm9maWxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU214VXBsb2FkRmlsZURhdGEge1xuICB0aXRsZT86IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIGJhZGdlVGV4dD86IHN0cmluZztcbiAgYmFkZ2VJY29uPzogc3RyaW5nO1xuICBwcm9maWxlPzogU214RmlsZVByb2ZpbGU7XG59XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBkacOhbG9nbyBwYXJhIGNhcmdhciBhcmNoaXZvcy5cbiAqIFV0aWxpemFyIHtAbGluayBTbXhVcGxvYWRGaWxlRGF0YX0gY29tbyBpbnRlcmZheiBwYXJhIERhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbXgtdXBsb2FkLWZpbGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbXgtdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NteC11cGxvYWQtZmlsZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdERpYWxvZ01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNteFVwbG9hZEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByZWFkb25seSBkYXRhOiBTbXhVcGxvYWRGaWxlRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuICByZWFkb25seSBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPFNteFVwbG9hZEZpbGVDb21wb25lbnQ+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlVXRpbCA9IGluamVjdChNZXNzYWdlVXRpbFNlcnZpY2UpO1xuXG4gIHNlbGVjdGVkRmlsZTogRmlsZSB8IG51bGwgPSBudWxsO1xuICBpc0RyYWdnaW5nID0gZmFsc2U7XG5cbiAgdGl0bGUgPSBcIkNhcmdhciBhcmNoaXZvXCI7XG4gIHN1YnRpdGxlID0gXCJTZWxlY2Npb25hIG8gYXJyYXN0cmEgZWwgZG9jdW1lbnRvXCI7XG4gIGJhZGdlVGV4dCA9IFwiXCI7XG4gIGJhZGdlSWNvbiA9IFwiXCI7XG4gIHByb2ZpbGU6IFNteEZpbGVQcm9maWxlID0gU01YX1BST0ZJTEVfRVhDRUw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGF0YS50aXRsZSkgdGhpcy50aXRsZSA9IHRoaXMuZGF0YS50aXRsZTtcbiAgICAgIGlmICh0aGlzLmRhdGEuc3VidGl0bGUpIHRoaXMuc3VidGl0bGUgPSB0aGlzLmRhdGEuc3VidGl0bGU7XG4gICAgICBpZiAodGhpcy5kYXRhLmJhZGdlVGV4dCkgdGhpcy5iYWRnZVRleHQgPSB0aGlzLmRhdGEuYmFkZ2VUZXh0O1xuICAgICAgaWYgKHRoaXMuZGF0YS5iYWRnZUljb24pIHRoaXMuYmFkZ2VJY29uID0gdGhpcy5kYXRhLmJhZGdlSWNvbjtcbiAgICAgIGlmICh0aGlzLmRhdGEucHJvZmlsZSkgdGhpcy5wcm9maWxlID0gdGhpcy5kYXRhLnByb2ZpbGU7XG4gICAgfVxuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICB9XG5cbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQW5kU2V0RmlsZShmaWxlc1swXSk7XG4gICAgfVxuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlcyA9IGlucHV0Py5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy52YWxpZGF0ZUFuZFNldEZpbGUoZmlsZXNbMF0pO1xuICAgICAgaW5wdXQudmFsdWUgPSBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlQW5kU2V0RmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnByb2ZpbGUuYWxsb3dlZEV4dGVuc2lvbnMuc29tZSgoZXh0KSA9PiBmaWxlLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpKTtcbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VVdGlsLmdldEFsZXJ0V2FybmluZyh0aGlzLnByb2ZpbGUuaW52YWxpZEZpbGVNZXNzYWdlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlO1xuICB9XG5cbiAgZ2V0RmlsZVNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gXCIwIEJ5dGVzXCI7XG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiXTtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArIFwiIFwiICsgc2l6ZXNbaV07XG4gIH1cblxuICBvbkNvbmZpcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmlsZSkge1xuICAgICAgdGhpcy5tZXNzYWdlVXRpbC5nZXRBbGVydFdhcm5pbmcoXCJQb3IgZmF2b3IsIHNlbGVjY2lvbmUgdW4gYXJjaGl2byBwYXJhIGNvbnRpbnVhci5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWRGaWxlKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG51bGwpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY3VzdG9tLWNvbnRhaW5lciBwLTRcIiBbc3R5bGUuLS1zbXgtYWNjZW50XT1cInByb2ZpbGUuYWNjZW50Q29sb3JcIj5cbiAgPCEtLSBDYWJlY2VyYSAtLT5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcGItMyBtYi0zIGJvcmRlci1ib3R0b21cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24taGVhZGVyIG1lLTNcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJ7eyBwcm9maWxlLmhlYWRlckljb24gfX0gZnMtNFwiPjwvaT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGg0IGNsYXNzPVwiZnctYm9sZCB0ZXh0LWRhcmsgbWItMFwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkIHNtYWxsXCI+e3sgc3VidGl0bGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgQGlmIChiYWRnZVRleHQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy1saWdodCB0ZXh0LXByaW1hcnkgYm9yZGVyIHB4LTMgcHktMiBmcy03IGZ3LWJvbGQgc2hhZG93LXNtIG1lLTNcIj5cbiAgICAgICAgICBAaWYgKGJhZGdlSWNvbikge1xuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBiYWRnZUljb24gfX0gbWUtMVwiPjwvaT5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgYmFkZ2VUZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBab25hIGRyYWcgJiBkcm9wIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ1cGxvYWQtZHJvcHpvbmUgbWItNFwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2NsYXNzLmhhcy1maWxlXT1cInNlbGVjdGVkRmlsZVwiXG4gICAgW2NsYXNzLmRyYWctb3Zlcl09XCJpc0RyYWdnaW5nXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICA8IS0tIEVzdGFkbyAxOiBzaW4gYXJjaGl2byAtLT5cbiAgICBAaWYgKCFzZWxlY3RlZEZpbGUpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbi13cmFwcGVyIHNoYWRvdy1zbVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2xvdWQtYXJyb3ctdXAgZnMtMlwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoNiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1kYXJrIG1iLTFcIj57eyBwcm9maWxlLmRyb3B6b25lTGFiZWwgfX08L2g2PlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGwgbWItM1wiPnt7IHByb2ZpbGUuZm9ybWF0TGFiZWwgfX08L3A+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IHB5LTIgZnctYm9sZCBzaGFkb3ctc20gcm91bmRlZC1waWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZm9sZGVyLW9wZW4gbWUtMlwiPjwvaT5FeHBsb3JhciBhcmNoaXZvXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBFc3RhZG8gMjogYXJjaGl2byBzZWxlY2Npb25hZG8gLS0+XG4gICAgQGlmIChzZWxlY3RlZEZpbGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1maWxlLWNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaWNvbiBzaGFkb3ctc21cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInt7IHByb2ZpbGUuZmlsZUljb24gfX0gZnMtM1wiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWRldGFpbHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1uYW1lXCIgW3RpdGxlXT1cInNlbGVjdGVkRmlsZS5uYW1lXCI+e3sgc2VsZWN0ZWRGaWxlLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1zaXplXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1oYXJkLWRyaXZlIG1lLTFcIj48L2k+e3sgZ2V0RmlsZVNpemUoc2VsZWN0ZWRGaWxlLnNpemUpIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiBbYXR0ci5hY2NlcHRdPVwicHJvZmlsZS5hY2NlcHRBdHRyXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgLz5cbiAgPC9kaXY+XG5cbiAgPCEtLSBCb3RvbmVzIC0tPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcHQtMyBib3JkZXItdG9wXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcHgtNVwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNhcmdhcjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LXVwbG9hZC1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc3VtYXgtdXBsb2FkL3NteC11cGxvYWQtZmlsZS9zbXgtdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC11cGxvYWQvc214LXVwbG9hZC1maWxlL3NteC11cGxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVcvQzs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBUVcsU0FBSSxHQUFzQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFlBQW9DLENBQUEsQ0FBQyxDQUFDO1FBQ2pELGdCQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFMUQsaUJBQVksR0FBZ0IsSUFBSSxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxL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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xuaW1wb3J0IHsgU214RmlsZVByb2ZpbGUgfSBmcm9tIFwiLi4vc214LXVwbG9hZC50eXBlc1wiO1xuaW1wb3J0IHsgU01YX1BST0ZJTEVfRVhDRUwgfSBmcm9tIFwiLi4vcHJvZmlsZXMvc214LWV4Y2VsLnByb2ZpbGVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNteFVwbG9hZEZpbGVEYXRhIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICBiYWRnZVRleHQ/OiBzdHJpbmc7XG4gIGJhZGdlSWNvbj86IHN0cmluZztcbiAgcHJvZmlsZT86IFNteEZpbGVQcm9maWxlO1xuICBmb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBkacOhbG9nbyBwYXJhIGNhcmdhciBhcmNoaXZvcy5cbiAqIFV0aWxpemFyIHtAbGluayBTbXhVcGxvYWRGaWxlRGF0YX0gY29tbyBpbnRlcmZheiBwYXJhIERhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbXgtdXBsb2FkLWZpbGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbXgtdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NteC11cGxvYWQtZmlsZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdERpYWxvZ01vZHVsZSwgRm9ybXNNb2R1bGUsIE5nU2VsZWN0TW9kdWxlLCBDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTbXhVcGxvYWRGaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVhZG9ubHkgZGF0YTogU214VXBsb2FkRmlsZURhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcmVhZG9ubHkgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxTbXhVcGxvYWRGaWxlQ29tcG9uZW50Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVV0aWwgPSBpbmplY3QoTWVzc2FnZVV0aWxTZXJ2aWNlKTtcblxuICBzZWxlY3RlZEZpbGU6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gIHRpdGxlID0gXCJDYXJnYXIgYXJjaGl2b1wiO1xuICBzdWJ0aXRsZSA9IFwiU2VsZWNjaW9uYSBvIGFycmFzdHJhIGVsIGRvY3VtZW50b1wiO1xuICBiYWRnZVRleHQgPSBcIlwiO1xuICBiYWRnZUljb24gPSBcIlwiO1xuICBwcm9maWxlOiBTbXhGaWxlUHJvZmlsZSA9IFNNWF9QUk9GSUxFX0VYQ0VMO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIGlmICh0aGlzLmRhdGEudGl0bGUpIHRoaXMudGl0bGUgPSB0aGlzLmRhdGEudGl0bGU7XG4gICAgICBpZiAodGhpcy5kYXRhLnN1YnRpdGxlKSB0aGlzLnN1YnRpdGxlID0gdGhpcy5kYXRhLnN1YnRpdGxlO1xuICAgICAgaWYgKHRoaXMuZGF0YS5iYWRnZVRleHQpIHRoaXMuYmFkZ2VUZXh0ID0gdGhpcy5kYXRhLmJhZGdlVGV4dDtcbiAgICAgIGlmICh0aGlzLmRhdGEuYmFkZ2VJY29uKSB0aGlzLmJhZGdlSWNvbiA9IHRoaXMuZGF0YS5iYWRnZUljb247XG4gICAgICBpZiAodGhpcy5kYXRhLnByb2ZpbGUpIHRoaXMucHJvZmlsZSA9IHRoaXMuZGF0YS5wcm9maWxlO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy52YWxpZGF0ZUFuZFNldEZpbGUoZmlsZXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXMgPSBpbnB1dD8uZmlsZXM7XG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVBbmRTZXRGaWxlKGZpbGVzWzBdKTtcbiAgICAgIGlucHV0LnZhbHVlID0gXCJcIjtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUFuZFNldEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy5wcm9maWxlLmFsbG93ZWRFeHRlbnNpb25zLnNvbWUoKGV4dCkgPT4gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZXh0KSk7XG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgdGhpcy5tZXNzYWdlVXRpbC5nZXRBbGVydFdhcm5pbmcodGhpcy5wcm9maWxlLmludmFsaWRGaWxlTWVzc2FnZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcbiAgfVxuXG4gIGdldEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuIFwiMCBCeXRlc1wiO1xuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IHNpemVzID0gW1wiQnl0ZXNcIiwgXCJLQlwiLCBcIk1CXCIsIFwiR0JcIl07XG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIHJldHVybiBOdW1iZXIucGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKSkgKyBcIiBcIiArIHNpemVzW2ldO1xuICB9XG5cbiAgb25Db25maXJtKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZEZpbGUpIHtcbiAgICAgIHRoaXMubWVzc2FnZVV0aWwuZ2V0QWxlcnRXYXJuaW5nKFwiUG9yIGZhdm9yLCBzZWxlY2Npb25lIHVuIGFyY2hpdm8gcGFyYSBjb250aW51YXIuXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWRGaWxlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWN1c3RvbS1jb250YWluZXIgcC00XCIgW3N0eWxlLi0tc214LWFjY2VudF09XCJwcm9maWxlLmFjY2VudENvbG9yXCI+XG4gIDwhLS0gQ2FiZWNlcmEgLS0+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHBiLTMgbWItMyBib3JkZXItYm90dG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWhlYWRlciBtZS0zXCI+XG4gICAgICAgIDxpIGNsYXNzPVwie3sgcHJvZmlsZS5oZWFkZXJJY29uIH19IGZzLTRcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoNCBjbGFzcz1cImZ3LWJvbGQgdGV4dC1kYXJrIG1iLTBcIj57eyB0aXRsZSB9fTwvaDQ+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbFwiPnt7IHN1YnRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIEBpZiAoYmFkZ2VUZXh0KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1wcmltYXJ5IGJvcmRlciBweC0zIHB5LTIgZnMtNyBmdy1ib2xkIHNoYWRvdy1zbSBtZS0zXCI+XG4gICAgICAgICAgQGlmIChiYWRnZUljb24pIHtcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgYmFkZ2VJY29uIH19IG1lLTFcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIHt7IGJhZGdlVGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gWm9uYSBkcmFnICYgZHJvcCAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwidXBsb2FkLWRyb3B6b25lIG1iLTRcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5oYXMtZmlsZV09XCJzZWxlY3RlZEZpbGVcIlxuICAgIFtjbGFzcy5kcmFnLW92ZXJdPVwiaXNEcmFnZ2luZ1wiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgPCEtLSBFc3RhZG8gMTogc2luIGFyY2hpdm8gLS0+XG4gICAgQGlmICghc2VsZWN0ZWRGaWxlKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWljb24td3JhcHBlciBzaGFkb3ctc21cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb3VkLWFycm93LXVwIGZzLTJcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aDYgY2xhc3M9XCJmdy1ib2xkIHRleHQtZGFyayBtYi0xXCI+e3sgcHJvZmlsZS5kcm9wem9uZUxhYmVsIH19PC9oNj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkIHNtYWxsIG1iLTNcIj57eyBwcm9maWxlLmZvcm1hdExhYmVsIH19PC9wPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBweS0yIGZ3LWJvbGQgc2hhZG93LXNtIHJvdW5kZWQtcGlsbFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWZvbGRlci1vcGVuIG1lLTJcIj48L2k+RXhwbG9yYXIgYXJjaGl2b1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gRXN0YWRvIDI6IGFyY2hpdm8gc2VsZWNjaW9uYWRvIC0tPlxuICAgIEBpZiAoc2VsZWN0ZWRGaWxlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtZmlsZS1jYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb24gc2hhZG93LXNtXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ7eyBwcm9maWxlLmZpbGVJY29uIH19IGZzLTNcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1kZXRhaWxzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbmFtZVwiIFt0aXRsZV09XCJzZWxlY3RlZEZpbGUubmFtZVwiPnt7IHNlbGVjdGVkRmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtc2l6ZVwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtaGFyZC1kcml2ZSBtZS0xXCI+PC9pPnt7IGdldEZpbGVTaXplKHNlbGVjdGVkRmlsZS5zaXplKSB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgW2F0dHIuYWNjZXB0XT1cInByb2ZpbGUuYWNjZXB0QXR0clwiIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIC8+XG4gIDwvZGl2PlxuXG5cblxuICA8IS0tIEZvb3RlciAoQ29udHJvbGVzIHkgQm90b25lcykgLS0+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIHB0LTMgYm9yZGVyLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBtZS00XCI+XG4gICAgICBAaWYgKGRhdGEuZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGEuZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgcHgtNSBweS0yIHNoYWRvdy1zbSBmdy1ib2xkXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiA4cHg7XCIgKGNsaWNrKT1cIm9uQ29uZmlybSgpXCI+XG4gICAgICAgIENhcmdhclxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// ─── Resultado de validación ────────────────────────────────────────────────
|
|
2
2
|
export {};
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LXVwbG9hZC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc3VtYXgtdXBsb2FkL3NteC11cGxvYWQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiLy8g4pSA4pSA4pSAIFJlc3VsdGFkbyBkZSB2YWxpZGFjacOzbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTbXhGaWxlVmFsaWRhdGlvbkVycm9yIHtcbiAgZmlsYT86IG51bWJlciB8IHN0cmluZztcbiAgY29sdW1uYT86IHN0cmluZztcbiAgbWVuc2FqZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNteEZpbGVWYWxpZGF0aW9uUmVzdWx0IHtcbiAgdG90YWxSZWdpc3Ryb3M6IG51bWJlcjtcbiAgcmVnaXN0cm9zVmFsaWRvcz86IG51bWJlcjtcbiAgZXJyb3JzOiBTbXhGaWxlVmFsaWRhdGlvbkVycm9yW107XG59XG5cbi8vIOKUgOKUgOKUgCBQZXJmaWwgZGUgdGlwbyBkZSBhcmNoaXZvIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIFNteEZpbGVQcm9maWxlIHtcbiAgLyoqIElkZW50aWZpY2Fkb3IgZGVsIHBlcmZpbCAqL1xuICBwcm9maWxlSWQ6IFwiZXhjZWxcIiB8IFwicGRmXCIgfCBcImltYWdlXCIgfCBcInR4dFwiIHwgXCJjdXN0b21cIjtcbiAgLyoqIENvbG9yIGRlIGFjZW50byBkZWwgbW9kYWwqL1xuICBhY2NlbnRDb2xvcjogc3RyaW5nO1xuICAvKiogRXh0ZW5zaW9uZXMgcGVybWl0aWRhcywgZS5nLiBbJy54bHN4JywgJy54bHMnXSAqL1xuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW107XG4gIC8qKiBWYWxvciBwYXJhIGVsIGF0cmlidXRvIEhUTUwgYWNjZXB0IGRlbCA8aW5wdXQgdHlwZT1cImZpbGVcIj4gKi9cbiAgYWNjZXB0QXR0cjogc3RyaW5nO1xuICAvKiogw41jb25vIEZvbnQgQXdlc29tZSBwYXJhIGxhIGNhYmVjZXJhIGRlbCBtb2RhbCAqL1xuICBoZWFkZXJJY29uOiBzdHJpbmc7XG4gIC8qKiDDjWNvbm8gRm9udCBBd2Vzb21lIHBhcmEgZWwgYXJjaGl2byBzZWxlY2Npb25hZG8gKi9cbiAgZmlsZUljb246IHN0cmluZztcbiAgLyoqIFRleHRvIHByaW5jaXBhbCBkZSBsYSB6b25hIGRlIGRyb3AgKi9cbiAgZHJvcHpvbmVMYWJlbDogc3RyaW5nO1xuICAvKiogRGVzY3JpcGNpw7NuIGRlIGZvcm1hdG9zIHNvcG9ydGFkb3MgKi9cbiAgZm9ybWF0TGFiZWw6IHN0cmluZztcbiAgLyoqIE1lbnNhamUgZGUgZXJyb3IgY3VhbmRvIGVsIGFyY2hpdm8gbm8gY3VtcGxlIGxhIGV4dGVuc2nDs24gKi9cbiAgaW52YWxpZEZpbGVNZXNzYWdlOiBzdHJpbmc7XG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -46,8 +46,7 @@ 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/sumax-upload/smx-upload.types";
|
|
49
|
-
export * from "./lib/sumax-upload/profiles/smx-
|
|
50
|
-
export * from "./lib/sumax-upload/profiles/smx-pdf.profile";
|
|
49
|
+
export * from "./lib/sumax-upload/profiles/smx-upload-profile";
|
|
51
50
|
export * from "./lib/sumax-upload/smx-upload-file/smx-upload-file.component";
|
|
52
51
|
export * from "./lib/sumax-upload/smx-validate-file/smx-validate-file.component";
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYywyR0FBMkcsQ0FBQztBQUMxSCxjQUFjLHlGQUF5RixDQUFDO0FBQ3hHLGNBQWMsMkdBQTJHLENBQUM7QUFDMUgsY0FBYyx1R0FBdUcsQ0FBQztBQUN0SCxjQUFjLDZGQUE2RixDQUFDO0FBQzVHLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLCtFQUErRSxDQUFDO0FBRTlGLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1zdW1heC1lcnAtY29tcG9uZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXRpbWUtcGlja2VyLWVkaXRhYmxlL2RhdGUtdGltZS1waWNrZXItZWRpdGFibGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGF0ZS10aW1lLXBpY2tlci1lZGl0YWJsZS9kYXRlLXRpbWUtcGlja2VyLWVkaXRhYmxlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtdGltZS1waWNrZXItZWRpdGFibGUvZGF0ZS10aW1lLXBpY2tlci1lZGl0YWJsZS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbmctc2VsZWN0LW11bHRpcGxlL25nLXNlbGVjdC1tdWx0aXBsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9uZy1zZWxlY3QtbXVsdGlwbGUvbmctc2VsZWN0LW11bHRpcGxlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL25nLXNlbGVjdC1tdWx0aXBsZS9uZy1zZWxlY3QtbXVsdGlwbGUuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL25nLXNlbGVjdC1zaW1wbGUvbmctc2VsZWN0LXNpbXBsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9uZy1zZWxlY3Qtc2ltcGxlL25nLXNlbGVjdC1zaW1wbGUubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbmctc2VsZWN0LXNpbXBsZS9uZy1zZWxlY3Qtc2ltcGxlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zYy1hZy1ncmlkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2MtYWctZ3JpZC9jZWxsLXJlbmRlci9uby1yb3dzLW92ZXJsYXkvbm9Sb3dzT3ZlcmxheUN1c3RvbS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zYy1hZy1ncmlkL3NjLWFnLWdyaWQtcGFnaW5hYmxlL3NjLWFnLWdyaWQtcGFnaW5hYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NjLXdpemFyZC9zYy13aXphcmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2Mtd2l6YXJkL3NjLXdpemFyZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1iYXNpYy9zbXgtZGFzaC1jYXJkLWJhc2ljLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLWRvdWdobnV0LWV4dC1sYWJlbHMvc214LWRhc2gtY2FyZC1kb3VnaG51dC1leHQtbGFiZWxzLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLWtwaS1sZWdlbmQvc214LWRhc2gtY2FyZC1rcGktbGVnZW5kLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLWxlZ2VuZC1jaGFydC1zZWxlY3Qvc214LWRhc2gtY2FyZC1sZWdlbmQtY2hhcnQtc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLWxlZ2VuZC1jaGFydC10YWJzL3NteC1kYXNoLWNhcmQtbGVnZW5kLWNoYXJ0LXRhYnMuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL2NhcmRzL3NteC1kYXNoLWNhcmQtbGVnZW5kLWNoYXJ0L3NteC1kYXNoLWNhcmQtbGVnZW5kLWNoYXJ0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0L3NteC1kYXNoLWNhcmQtbWV0cmljLWxpc3QuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL2NhcmRzL3NteC1kYXNoLWNhcmQtcmFua2luZy9zbXgtZGFzaC1jYXJkLXJhbmtpbmcuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL2NhcmRzL3NteC1kYXNoLWNhcmQtdGFibGUvc214LWRhc2gtY2FyZC10YWJsZS5jb21wb25lbnRcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3N1bWF4LWRhc2hib2FyZC9zdW1heC1kYXNoYm9hcmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL3R5cGVzL3R5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL3V0aWxzL2NoYXJ0LXNldHVwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtZGFzaGJvYXJkL3V0aWxzL2Rhc2hib2FyZC1pbnRlZ3JhdGlvbi51dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdGV4dC1hcmVhL3RleHQtYXJlYS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi91dGlscy9TY1dpemFyZEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi91dGlscy90b2tlbi9hdWRpdC50b2tlblwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtdXBsb2FkL3NteC11cGxvYWQudHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zdW1heC11cGxvYWQvcHJvZmlsZXMvc214LXVwbG9hZC1wcm9maWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtdXBsb2FkL3NteC11cGxvYWQtZmlsZS9zbXgtdXBsb2FkLWZpbGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc3VtYXgtdXBsb2FkL3NteC12YWxpZGF0ZS1maWxlL3NteC12YWxpZGF0ZS1maWxlLmNvbXBvbmVudFwiO1xuIl19
|
|
@@ -11413,6 +11413,18 @@ const SMX_PROFILE_PDF = {
|
|
|
11413
11413
|
invalidFileMessage: "Solo se permiten archivos PDF (.pdf)",
|
|
11414
11414
|
};
|
|
11415
11415
|
|
|
11416
|
+
const SMX_PROFILE_TXT = {
|
|
11417
|
+
profileId: "txt",
|
|
11418
|
+
accentColor: "#0288d1",
|
|
11419
|
+
allowedExtensions: [".txt"],
|
|
11420
|
+
acceptAttr: ".txt,text/plain",
|
|
11421
|
+
headerIcon: "fa-solid fa-file-lines",
|
|
11422
|
+
fileIcon: "fa-solid fa-file-lines",
|
|
11423
|
+
dropzoneLabel: "Seleccione un archivo de texto (.txt) o arrástrelo aquí",
|
|
11424
|
+
formatLabel: "Formatos soportados: .txt",
|
|
11425
|
+
invalidFileMessage: "Solo se permiten archivos de texto (.txt)",
|
|
11426
|
+
};
|
|
11427
|
+
|
|
11416
11428
|
/**
|
|
11417
11429
|
* Componente de diálogo para cargar archivos.
|
|
11418
11430
|
* Utilizar {@link SmxUploadFileData} como interfaz para Data.
|
|
@@ -11494,15 +11506,12 @@ class SmxUploadFileComponent {
|
|
|
11494
11506
|
}
|
|
11495
11507
|
this.dialogRef.close(this.selectedFile);
|
|
11496
11508
|
}
|
|
11497
|
-
onCancel() {
|
|
11498
|
-
this.dialogRef.close(null);
|
|
11499
|
-
}
|
|
11500
11509
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxUploadFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11501
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmxUploadFileComponent, isStandalone: true, selector: "smx-upload-file", ngImport: i0, template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Botones -->\n <div class=\"d-flex justify-content-end pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success px-5\" (click)=\"onConfirm()\"
|
|
11510
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmxUploadFileComponent, isStandalone: true, selector: "smx-upload-file", ngImport: i0, template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n\n\n <!-- Footer (Controles y Botones) -->\n <div class=\"d-flex justify-content-between align-items-end pt-3 border-top\">\n <div class=\"flex-grow-1 me-4\">\n @if (data.footerTemplate) {\n <ng-container *ngTemplateOutlet=\"data.footerTemplate\"></ng-container>\n }\n </div>\n <div>\n <button type=\"button\" class=\"btn btn-success px-5 py-2 shadow-sm fw-bold\" style=\"border-radius: 8px;\" (click)=\"onConfirm()\">\n Cargar\n </button>\n </div>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155;--smx-accent: #28a745}.icon-header{width:48px;height:48px;border-radius:50%;background-color:color-mix(in srgb,var(--smx-accent) 12%,transparent);color:var(--smx-accent);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:var(--smx-accent);background-color:color-mix(in srgb,var(--smx-accent) 4%,transparent)}.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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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}::ng-deep .smx-upload-dropdown-panel{width:auto!important;min-width:250px!important;max-width:400px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
11502
11511
|
}
|
|
11503
11512
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxUploadFileComponent, decorators: [{
|
|
11504
11513
|
type: Component,
|
|
11505
|
-
args: [{ selector: "smx-upload-file", standalone: true, imports: [MatDialogModule], template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n <!-- Botones -->\n <div class=\"d-flex justify-content-end pt-3 border-top\">\n <button type=\"button\" class=\"btn btn-success px-5\" (click)=\"onConfirm()\"
|
|
11514
|
+
args: [{ selector: "smx-upload-file", standalone: true, imports: [MatDialogModule, FormsModule, NgSelectModule, CommonModule], template: "<div class=\"modal-custom-container p-4\" [style.--smx-accent]=\"profile.accentColor\">\n <!-- Cabecera -->\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=\"{{ profile.headerIcon }} 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 @if (badgeText) {\n <span class=\"badge bg-light text-primary border px-3 py-2 fs-7 fw-bold shadow-sm me-3\">\n @if (badgeIcon) {\n <i class=\"{{ badgeIcon }} me-1\"></i>\n }\n {{ badgeText }}\n </span>\n }\n </div>\n </div>\n\n <!-- Zona drag & drop -->\n <div\n class=\"upload-dropzone mb-4\"\n role=\"button\"\n [class.has-file]=\"selectedFile\"\n [class.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 <!-- Estado 1: sin archivo -->\n @if (!selectedFile) {\n <div>\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\">{{ profile.dropzoneLabel }}</h6>\n <p class=\"text-muted small mb-3\">{{ profile.formatLabel }}</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\n <!-- Estado 2: archivo seleccionado -->\n @if (selectedFile) {\n <div class=\"selected-file-card\">\n <div class=\"file-icon shadow-sm\">\n <i class=\"{{ profile.fileIcon }} 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\n <input #fileInput type=\"file\" style=\"display: none\" [attr.accept]=\"profile.acceptAttr\" (change)=\"onFileSelected($event)\" />\n </div>\n\n\n\n <!-- Footer (Controles y Botones) -->\n <div class=\"d-flex justify-content-between align-items-end pt-3 border-top\">\n <div class=\"flex-grow-1 me-4\">\n @if (data.footerTemplate) {\n <ng-container *ngTemplateOutlet=\"data.footerTemplate\"></ng-container>\n }\n </div>\n <div>\n <button type=\"button\" class=\"btn btn-success px-5 py-2 shadow-sm fw-bold\" style=\"border-radius: 8px;\" (click)=\"onConfirm()\">\n Cargar\n </button>\n </div>\n </div>\n</div>\n", styles: [".modal-custom-container{background-color:#fff;border-radius:.75rem;font-family:inherit;color:#334155;--smx-accent: #28a745}.icon-header{width:48px;height:48px;border-radius:50%;background-color:color-mix(in srgb,var(--smx-accent) 12%,transparent);color:var(--smx-accent);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:var(--smx-accent);background-color:color-mix(in srgb,var(--smx-accent) 4%,transparent)}.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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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:color-mix(in srgb,var(--smx-accent) 15%,transparent);color:var(--smx-accent);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}::ng-deep .smx-upload-dropdown-panel{width:auto!important;min-width:250px!important;max-width:400px!important}\n"] }]
|
|
11506
11515
|
}] });
|
|
11507
11516
|
|
|
11508
11517
|
/**
|
|
@@ -11594,5 +11603,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
11594
11603
|
* Generated bundle index. Do not edit.
|
|
11595
11604
|
*/
|
|
11596
11605
|
|
|
11597
|
-
export { AUDIT_ACTION_SERVICE, ColumnDefs, ContainerSharedComponent, DashboardIntegrationUtils, DatePickerComponent, DatePickerModule, DatePickerService, DateTimePickerComponent, DateTimePickerEditableComponent, DateTimePickerEditableModule, DateTimePickerEditableService, DateTimePickerModule, DateTimePickerService, DialogAgGridSearchComponent, EnumButtonType, InputNumberComponent, InputNumberModule, InputNumberService, InputTextComponent, InputTextModule, InputTextService, NgSelectMultipleComponent, NgSelectMultipleModule, NgSelectMultipleService, NgSelectSimpleComponent, NgSelectSimpleModule, NgSelectSimpleService, NoRowsOverlayCustomComponent, NoRowsOverlayDefaultComponent, SC_AG_GRID_BEFORE_ACTION, SC_AG_GRID_BUTTON_HEADER, SMX_PROFILE_EXCEL, SMX_PROFILE_PDF, ScAgGridBeforeActionDirective, ScAgGridButtonHeader, ScAgGridCustomizableComponent, ScAgGridModule, ScAgGridPaginableComponent, ScCellRenderButtonService, ScCellRenderCheckboxListComponent, ScCellRenderSelectComponent, ScCellRenderToggleComponent, ScCellRendererButtonComponent, ScMenuPanelComponent, ScWizardBase, ScWizardComponent, ScWizardModule, SearchParams, SmxDashCardBasicComponent, SmxDashCardDoughnutExtLabelsComponent, SmxDashCardKpiLegendComponent, SmxDashCardLegendChartComponent, SmxDashCardLegendChartSelectComponent, SmxDashCardLegendChartTabsComponent, SmxDashCardMetricListComponent, SmxDashCardRankingComponent, SmxDashCardTableComponent, SmxUploadFileComponent, SmxValidateFileComponent, SumaxDashboardComponent, TextAreaComponent, TextAreaModule, TextAreaService, TypeControl, WidgetCode, bodyContentCenter, bodyContentRight, isChartAvailable, isObjEmpty, registerChartGlobal, setClassFlex };
|
|
11606
|
+
export { AUDIT_ACTION_SERVICE, ColumnDefs, ContainerSharedComponent, DashboardIntegrationUtils, DatePickerComponent, DatePickerModule, DatePickerService, DateTimePickerComponent, DateTimePickerEditableComponent, DateTimePickerEditableModule, DateTimePickerEditableService, DateTimePickerModule, DateTimePickerService, DialogAgGridSearchComponent, EnumButtonType, InputNumberComponent, InputNumberModule, InputNumberService, InputTextComponent, InputTextModule, InputTextService, NgSelectMultipleComponent, NgSelectMultipleModule, NgSelectMultipleService, NgSelectSimpleComponent, NgSelectSimpleModule, NgSelectSimpleService, NoRowsOverlayCustomComponent, NoRowsOverlayDefaultComponent, SC_AG_GRID_BEFORE_ACTION, SC_AG_GRID_BUTTON_HEADER, SMX_PROFILE_EXCEL, SMX_PROFILE_PDF, SMX_PROFILE_TXT, ScAgGridBeforeActionDirective, ScAgGridButtonHeader, ScAgGridCustomizableComponent, ScAgGridModule, ScAgGridPaginableComponent, ScCellRenderButtonService, ScCellRenderCheckboxListComponent, ScCellRenderSelectComponent, ScCellRenderToggleComponent, ScCellRendererButtonComponent, ScMenuPanelComponent, ScWizardBase, ScWizardComponent, ScWizardModule, SearchParams, SmxDashCardBasicComponent, SmxDashCardDoughnutExtLabelsComponent, SmxDashCardKpiLegendComponent, SmxDashCardLegendChartComponent, SmxDashCardLegendChartSelectComponent, SmxDashCardLegendChartTabsComponent, SmxDashCardMetricListComponent, SmxDashCardRankingComponent, SmxDashCardTableComponent, SmxUploadFileComponent, SmxValidateFileComponent, SumaxDashboardComponent, TextAreaComponent, TextAreaModule, TextAreaService, TypeControl, WidgetCode, bodyContentCenter, bodyContentRight, isChartAvailable, isObjEmpty, registerChartGlobal, setClassFlex };
|
|
11598
11607
|
//# sourceMappingURL=ngx-sumax-erp-components.mjs.map
|