ngx-redi-core 0.0.0-watch
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/Helper/index.d.ts +5 -0
- package/Helper/package.json +3 -0
- package/Helper/public-api.d.ts +3 -0
- package/Helper/src/helpers/bag-data-subject.service.d.ts +43 -0
- package/Helper/src/helpers/csv.service.d.ts +33 -0
- package/Helper/src/helpers/data-subject.service.d.ts +32 -0
- package/Helper/src/models/interfaces/data-subject.interface.d.ts +6 -0
- package/README.md +24 -0
- package/RediDragDrop/index.d.ts +5 -0
- package/RediDragDrop/package.json +3 -0
- package/RediDragDrop/public-api.d.ts +4 -0
- package/RediDragDrop/src/models/classes/proceso-archivo-csv.d.ts +29 -0
- package/RediDragDrop/src/models/directives/drag-drop.directive.d.ts +43 -0
- package/RediDragDrop/src/modules/redi-drag-drop/redi-drag-drop.component.d.ts +188 -0
- package/RediDragDrop/src/modules/redi-drag-drop.module.d.ts +13 -0
- package/RediGrid/index.d.ts +5 -0
- package/RediGrid/package.json +3 -0
- package/RediGrid/public-api.d.ts +4 -0
- package/RediGrid/src/models/interfaces/cell.d.ts +37 -0
- package/RediGrid/src/models/interfaces/data-grid.d.ts +30 -0
- package/RediGrid/src/modules/redi-grid/redi-grid.component.d.ts +92 -0
- package/RediGrid/src/modules/redi-grid.module.d.ts +14 -0
- package/RediTable/index.d.ts +5 -0
- package/RediTable/package.json +3 -0
- package/RediTable/public-api.d.ts +6 -0
- package/RediTable/src/components/filter-data/filter-data.component.d.ts +23 -0
- package/RediTable/src/components/redi-table/redi-table.component.d.ts +139 -0
- package/RediTable/src/models/interfaces/column-definition.d.ts +18 -0
- package/RediTable/src/models/interfaces/data-table.d.ts +24 -0
- package/RediTable/src/models/interfaces/filter-item.d.ts +5 -0
- package/RediTable/src/models/interfaces/row-action.d.ts +24 -0
- package/RediTable/src/models/types/event-table.type.d.ts +5 -0
- package/Security/index.d.ts +5 -0
- package/Security/package.json +3 -0
- package/Security/public-api.d.ts +6 -0
- package/Security/src/modules/security-web-intercept/interceptors/redi-secure.interceptor.d.ts +39 -0
- package/Security/src/modules/security-web-intercept/models/secure-factory.model.d.ts +10 -0
- package/Security/src/modules/security-web-intercept/services/cifrado-basico.service.d.ts +14 -0
- package/Security/src/modules/security-web-intercept/services/cifrado.service.d.ts +21 -0
- package/Security/src/modules/security-web-intercept/services/reflection.service.d.ts +58 -0
- package/Security/src/modules/security.module.d.ts +11 -0
- package/esm2022/Helper/ngx-redi-core-Helper.mjs +5 -0
- package/esm2022/Helper/public-api.mjs +4 -0
- package/esm2022/Helper/src/helpers/bag-data-subject.service.mjs +61 -0
- package/esm2022/Helper/src/helpers/csv.service.mjs +69 -0
- package/esm2022/Helper/src/helpers/data-subject.service.mjs +34 -0
- package/esm2022/Helper/src/models/interfaces/data-subject.interface.mjs +2 -0
- package/esm2022/RediDragDrop/ngx-redi-core-RediDragDrop.mjs +5 -0
- package/esm2022/RediDragDrop/public-api.mjs +5 -0
- package/esm2022/RediDragDrop/src/models/classes/proceso-archivo-csv.mjs +132 -0
- package/esm2022/RediDragDrop/src/models/directives/drag-drop.directive.mjs +95 -0
- package/esm2022/RediDragDrop/src/modules/redi-drag-drop/redi-drag-drop.component.mjs +369 -0
- package/esm2022/RediDragDrop/src/modules/redi-drag-drop.module.mjs +34 -0
- package/esm2022/RediGrid/ngx-redi-core-RediGrid.mjs +5 -0
- package/esm2022/RediGrid/public-api.mjs +5 -0
- package/esm2022/RediGrid/src/models/interfaces/cell.mjs +2 -0
- package/esm2022/RediGrid/src/models/interfaces/data-grid.mjs +2 -0
- package/esm2022/RediGrid/src/modules/redi-grid/redi-grid.component.mjs +159 -0
- package/esm2022/RediGrid/src/modules/redi-grid.module.mjs +34 -0
- package/esm2022/RediTable/ngx-redi-core-RediTable.mjs +5 -0
- package/esm2022/RediTable/public-api.mjs +9 -0
- package/esm2022/RediTable/src/components/filter-data/filter-data.component.mjs +84 -0
- package/esm2022/RediTable/src/components/redi-table/redi-table.component.mjs +404 -0
- package/esm2022/RediTable/src/models/interfaces/column-definition.mjs +2 -0
- package/esm2022/RediTable/src/models/interfaces/data-table.mjs +2 -0
- package/esm2022/RediTable/src/models/interfaces/filter-item.mjs +2 -0
- package/esm2022/RediTable/src/models/interfaces/row-action.mjs +2 -0
- package/esm2022/RediTable/src/models/types/event-table.type.mjs +2 -0
- package/esm2022/Security/ngx-redi-core-Security.mjs +5 -0
- package/esm2022/Security/public-api.mjs +7 -0
- package/esm2022/Security/src/modules/security-web-intercept/interceptors/redi-secure.interceptor.mjs +88 -0
- package/esm2022/Security/src/modules/security-web-intercept/models/secure-factory.model.mjs +27 -0
- package/esm2022/Security/src/modules/security-web-intercept/services/cifrado-basico.service.mjs +51 -0
- package/esm2022/Security/src/modules/security-web-intercept/services/cifrado.service.mjs +33 -0
- package/esm2022/Security/src/modules/security-web-intercept/services/reflection.service.mjs +122 -0
- package/esm2022/Security/src/modules/security.module.mjs +23 -0
- package/esm2022/ngx-redi-core.mjs +5 -0
- package/esm2022/public-api.mjs +8 -0
- package/fesm2022/ngx-redi-core-Helper.mjs +166 -0
- package/fesm2022/ngx-redi-core-Helper.mjs.map +1 -0
- package/fesm2022/ngx-redi-core-RediDragDrop.mjs +628 -0
- package/fesm2022/ngx-redi-core-RediDragDrop.mjs.map +1 -0
- package/fesm2022/ngx-redi-core-RediGrid.mjs +196 -0
- package/fesm2022/ngx-redi-core-RediGrid.mjs.map +1 -0
- package/fesm2022/ngx-redi-core-RediTable.mjs +496 -0
- package/fesm2022/ngx-redi-core-RediTable.mjs.map +1 -0
- package/fesm2022/ngx-redi-core-Security.mjs +339 -0
- package/fesm2022/ngx-redi-core-Security.mjs.map +1 -0
- package/fesm2022/ngx-redi-core.mjs +14 -0
- package/fesm2022/ngx-redi-core.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +57 -0
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-redi-core/Helper";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/cdk/scrolling";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
/**
|
|
9
|
+
* Componente que representa los datos en un grid
|
|
10
|
+
* @decorators `@Component()`
|
|
11
|
+
*/
|
|
12
|
+
export class RediGridComponent {
|
|
13
|
+
/**
|
|
14
|
+
* Constructor del grid
|
|
15
|
+
* @param csv - Servicio CSV
|
|
16
|
+
*/
|
|
17
|
+
constructor(csv) {
|
|
18
|
+
this.csv = csv;
|
|
19
|
+
this.data = {};
|
|
20
|
+
this.enumerar = false;
|
|
21
|
+
this.editable = false;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Método de inicialización de visualización
|
|
25
|
+
*/
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
if (this.data) {
|
|
28
|
+
this.editable = this.data.editable || false;
|
|
29
|
+
this.enumerar = this.data.enumerable || false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Método que invierte la ubicación del objeto renderizado
|
|
34
|
+
* @returns Regresa la ubicación invertida en modo texto
|
|
35
|
+
*/
|
|
36
|
+
get invertirUbicacion() {
|
|
37
|
+
if (!this.viewPort || !this.viewPort['_renderedContentOffset']) {
|
|
38
|
+
return '-0px';
|
|
39
|
+
}
|
|
40
|
+
const offset = this.viewPort['_renderedContentOffset'];
|
|
41
|
+
return `-${offset}px`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Método que valida si una columna esta bloqueada
|
|
45
|
+
* @param numeroColumna - Numero de columna
|
|
46
|
+
* @returns True si la columna esta bloqueada
|
|
47
|
+
*/
|
|
48
|
+
columnaBloqueada(numeroColumna) {
|
|
49
|
+
return this.data.bloquearColumnas !== undefined &&
|
|
50
|
+
this.data.bloquearColumnas.some(c => c === numeroColumna);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Método que valida si una columna es visible
|
|
54
|
+
* @param numeroColumna - Numero de columna
|
|
55
|
+
* @returns True si es visible
|
|
56
|
+
*/
|
|
57
|
+
columnaVisible(numeroColumna) {
|
|
58
|
+
return !(this.data.ocultarColumnas !== undefined &&
|
|
59
|
+
this.data.ocultarColumnas.some(c => c === numeroColumna));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Método que actualiza los datos editados en el grid
|
|
63
|
+
* @param indiceFila - Contiene el indice de la fila editada
|
|
64
|
+
* @param indiceColumna - Contiene el indice de la columna editada
|
|
65
|
+
* @param valor - Contiene el valor de edición de celda
|
|
66
|
+
*/
|
|
67
|
+
actualizarDatos(indiceFila, indiceColumna, valor) {
|
|
68
|
+
if (this.data && this.data.filas) {
|
|
69
|
+
const fila = this.data.filas[indiceFila][indiceColumna];
|
|
70
|
+
fila.editado = fila.valor !== valor || fila.editado;
|
|
71
|
+
if (fila.editado) {
|
|
72
|
+
fila.valor = valor;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Cambia el foco de las celdas
|
|
78
|
+
* @param event - KeyboardEvent
|
|
79
|
+
*/
|
|
80
|
+
moverFoco(event) {
|
|
81
|
+
this.moverDeCelda(event.target, event.key, document.querySelectorAll('#cell'));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Realiza el movimiento de celdas por el teclado
|
|
85
|
+
* @param control - Control que desencadena el evento
|
|
86
|
+
* @param key - Tecla que desencadeno el evento
|
|
87
|
+
* @param nodesControls - Controles del grid
|
|
88
|
+
*/
|
|
89
|
+
moverDeCelda(control, key, nodesControls) {
|
|
90
|
+
const index = Array.prototype.map.call(nodesControls, x => { return x; }).indexOf(control);
|
|
91
|
+
let changeFocus = true;
|
|
92
|
+
let newIndex = 0;
|
|
93
|
+
switch (key) {
|
|
94
|
+
case 'Enter':
|
|
95
|
+
case 'ArrowRight':
|
|
96
|
+
changeFocus = key === 'Enter' ||
|
|
97
|
+
control.selectionStart === control.value.length;
|
|
98
|
+
newIndex = index + 1;
|
|
99
|
+
break;
|
|
100
|
+
case 'ArrowLeft':
|
|
101
|
+
changeFocus = control.selectionStart === 0;
|
|
102
|
+
newIndex = index - 1;
|
|
103
|
+
break;
|
|
104
|
+
case 'ArrowUp':
|
|
105
|
+
newIndex = index - this.columnasHabilitadas();
|
|
106
|
+
break;
|
|
107
|
+
case 'ArrowDown':
|
|
108
|
+
newIndex = index + this.columnasHabilitadas();
|
|
109
|
+
break;
|
|
110
|
+
default:
|
|
111
|
+
changeFocus = false;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
if (changeFocus) {
|
|
115
|
+
this.obtenerControl(nodesControls, newIndex).focus();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Regresa el numero de columnas habilitadas dentro del grid
|
|
120
|
+
* @returns Numero de columnas habilitadas
|
|
121
|
+
*/
|
|
122
|
+
columnasHabilitadas() {
|
|
123
|
+
return this.data.columnas.length - (this.data.bloquearColumnas?.length ?? 0);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Obtiene el control de un NodeList por indice
|
|
127
|
+
* @param nodes - Lista de nodos
|
|
128
|
+
* @param index - Indice del control
|
|
129
|
+
* @returns Control del indice especificado
|
|
130
|
+
*/
|
|
131
|
+
obtenerControl(nodes, index) {
|
|
132
|
+
return nodes.item(index);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Descarga los datos contenidos en el Grid como un CSV
|
|
136
|
+
* @param archivo - Nombre del archivo
|
|
137
|
+
*/
|
|
138
|
+
descargarCsv(archivo) {
|
|
139
|
+
const data = this.data.filas.map((f) => { return f.filter((c, i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c) => c.valor); }).filter(d => d.length > 0);
|
|
140
|
+
data.unshift(this.data.columnas.filter((c, i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c) => c.valor));
|
|
141
|
+
this.csv.descargarCsv(archivo, data);
|
|
142
|
+
}
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RediGridComponent, deps: [{ token: i1.CsvService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: RediGridComponent, selector: "redi-grid", inputs: { data: "data", enumerar: "enumerar", editable: "editable" }, viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n <!-- Contenedor principal del grid -->\r\n <cdk-virtual-scroll-viewport #scrollViewport itemSize=\"25\">\r\n <!-- Tabla de datos -->\r\n <table (keydown)=\"moverFoco($event)\">\r\n <caption> RediGridComponent </caption>\r\n <!-- Cabecera de tabla -->\r\n <thead>\r\n <!-- Definici\u00F3n de encabezados -->\r\n <tr>\r\n <th scope=\"col\" [style.top]=\"invertirUbicacion\" *ngIf=\"enumerar\">\r\n <th scope=\"col\" [style.top]=\"invertirUbicacion\" *ngFor=\"let col of data.columnas; let colNum=index\"\r\n [class.oculto]=\"!columnaVisible(colNum)\">\r\n <mat-icon *ngIf=\"columnaBloqueada(colNum)\" class=\"lockIcon\">lock</mat-icon>{{col.valor}}\r\n </th>\r\n </tr>\r\n </thead>\r\n <!-- Cuerpo de tabla -->\r\n <tbody>\r\n <tr *cdkVirtualFor=\"let row of data.filas;let rowNum = index\">\r\n <!-- Contador de fila -->\r\n <td *ngIf=\"enumerar\"> {{ rowNum + 1 }} </td>\r\n <!-- Celdas de datos -->\r\n <td *ngFor=\"let cell of row; let colNum=index;\" [class.warn]=\"cell.esValido !== undefined && !cell.esValido\"\r\n [class.editado]=\"cell.editado\" [class.bloqueado]=\"cell.bloqueado || columnaBloqueada(colNum)\"\r\n [class.oculto]=\"!columnaVisible(colNum)\">\r\n <label for=\"cell\"> Value </label>\r\n <!-- Campo editable -->\r\n <input *ngIf=\"editable && !cell.bloqueado && !columnaBloqueada(colNum)\" type=\"text\" [value]=\"cell.valor\"\r\n name=\"cell\" id=\"cell\" (focusout)=\"actualizarDatos(rowNum,colNum,$any($event.target).value)\"\r\n [class.editado]=\"cell.editado\" />\r\n {{ !editable || cell.bloqueado || columnaBloqueada(colNum) ? cell.valor : '' }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </cdk-virtual-scroll-viewport>\r\n</div>", styles: [".container{border:1px solid #f4f4f4;overflow:auto;max-height:90vh;padding:0;box-shadow:#0000003d 0 3px 8px}.enumerable{width:10px}thead{text-align:center;color:#f9f9f9;height:1.9em}tbody{text-align:center;cursor:cell;color:#717171}input{text-align:center;color:#717171;border:none;background:transparent;outline:0;width:100%;padding:0}td{padding:3px;height:1.5em;border-right:solid 1px #e1e1e1;min-width:2em}tbody>tr:nth-child(2n){background-color:#f4f4f4}tbody>tr:hover{background-color:#cddce9;border:solid 1px #cddce9}thead>tr>th{position:sticky;top:0;border-right:solid 1px white;font-weight:400;background-color:#a5a5a5}tbody>tr>td:last-child,thead>tr>th:last-child{border-right:solid 0px}tbody>tr:last-child{border-bottom:solid 1px #e1e1e1}table{width:100%;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:auto}.cdk-virtual-scrollable{min-height:400px}caption,label{display:none}.warn{border-bottom:solid 2px #F44336;border-top:solid 2px #F44336}tr>.warn:last-child{border-right:solid 2px #F44336}tr>.warn:first-child{border-left:solid 2px #F44336}.editado{color:#282;font-weight:600}.bloqueado{background-color:#f4f4f48d;color:#00000070}.oculto{display:none}.lockIcon{width:15px;height:15px;font-size:.8em;float:right}tbody>tr>td:focus-within{border:solid 1px #468b51bd;background:#9fd0fb6b}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RediGridComponent, decorators: [{
|
|
147
|
+
type: Component,
|
|
148
|
+
args: [{ selector: 'redi-grid', template: "<div class=\"container\">\r\n <!-- Contenedor principal del grid -->\r\n <cdk-virtual-scroll-viewport #scrollViewport itemSize=\"25\">\r\n <!-- Tabla de datos -->\r\n <table (keydown)=\"moverFoco($event)\">\r\n <caption> RediGridComponent </caption>\r\n <!-- Cabecera de tabla -->\r\n <thead>\r\n <!-- Definici\u00F3n de encabezados -->\r\n <tr>\r\n <th scope=\"col\" [style.top]=\"invertirUbicacion\" *ngIf=\"enumerar\">\r\n <th scope=\"col\" [style.top]=\"invertirUbicacion\" *ngFor=\"let col of data.columnas; let colNum=index\"\r\n [class.oculto]=\"!columnaVisible(colNum)\">\r\n <mat-icon *ngIf=\"columnaBloqueada(colNum)\" class=\"lockIcon\">lock</mat-icon>{{col.valor}}\r\n </th>\r\n </tr>\r\n </thead>\r\n <!-- Cuerpo de tabla -->\r\n <tbody>\r\n <tr *cdkVirtualFor=\"let row of data.filas;let rowNum = index\">\r\n <!-- Contador de fila -->\r\n <td *ngIf=\"enumerar\"> {{ rowNum + 1 }} </td>\r\n <!-- Celdas de datos -->\r\n <td *ngFor=\"let cell of row; let colNum=index;\" [class.warn]=\"cell.esValido !== undefined && !cell.esValido\"\r\n [class.editado]=\"cell.editado\" [class.bloqueado]=\"cell.bloqueado || columnaBloqueada(colNum)\"\r\n [class.oculto]=\"!columnaVisible(colNum)\">\r\n <label for=\"cell\"> Value </label>\r\n <!-- Campo editable -->\r\n <input *ngIf=\"editable && !cell.bloqueado && !columnaBloqueada(colNum)\" type=\"text\" [value]=\"cell.valor\"\r\n name=\"cell\" id=\"cell\" (focusout)=\"actualizarDatos(rowNum,colNum,$any($event.target).value)\"\r\n [class.editado]=\"cell.editado\" />\r\n {{ !editable || cell.bloqueado || columnaBloqueada(colNum) ? cell.valor : '' }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </cdk-virtual-scroll-viewport>\r\n</div>", styles: [".container{border:1px solid #f4f4f4;overflow:auto;max-height:90vh;padding:0;box-shadow:#0000003d 0 3px 8px}.enumerable{width:10px}thead{text-align:center;color:#f9f9f9;height:1.9em}tbody{text-align:center;cursor:cell;color:#717171}input{text-align:center;color:#717171;border:none;background:transparent;outline:0;width:100%;padding:0}td{padding:3px;height:1.5em;border-right:solid 1px #e1e1e1;min-width:2em}tbody>tr:nth-child(2n){background-color:#f4f4f4}tbody>tr:hover{background-color:#cddce9;border:solid 1px #cddce9}thead>tr>th{position:sticky;top:0;border-right:solid 1px white;font-weight:400;background-color:#a5a5a5}tbody>tr>td:last-child,thead>tr>th:last-child{border-right:solid 0px}tbody>tr:last-child{border-bottom:solid 1px #e1e1e1}table{width:100%;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:auto}.cdk-virtual-scrollable{min-height:400px}caption,label{display:none}.warn{border-bottom:solid 2px #F44336;border-top:solid 2px #F44336}tr>.warn:last-child{border-right:solid 2px #F44336}tr>.warn:first-child{border-left:solid 2px #F44336}.editado{color:#282;font-weight:600}.bloqueado{background-color:#f4f4f48d;color:#00000070}.oculto{display:none}.lockIcon{width:15px;height:15px;font-size:.8em;float:right}tbody>tr>td:focus-within{border:solid 1px #468b51bd;background:#9fd0fb6b}\n"] }]
|
|
149
|
+
}], ctorParameters: () => [{ type: i1.CsvService }], propDecorators: { data: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], enumerar: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], editable: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], viewPort: [{
|
|
156
|
+
type: ViewChild,
|
|
157
|
+
args: [CdkVirtualScrollViewport, { static: false }]
|
|
158
|
+
}] } });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaUdyaWQvc3JjL21vZHVsZXMvcmVkaS1ncmlkL3JlZGktZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVkaS1jb3JlL1JlZGlHcmlkL3NyYy9tb2R1bGVzL3JlZGktZ3JpZC9yZWRpLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBTW5GOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFtQjVCOzs7T0FHRztJQUNILFlBQW9CLEdBQWU7UUFBZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBUUQ7OztPQUdHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJ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QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBcktVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlLQTBDakIsd0JBQXdCLGdEQzFEckMsODZEQXFDTTs7MkZEckJPLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXOytFQVNkLElBQUk7c0JBRFYsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxLQUFLO2dCQTJCQyxRQUFRO3NCQURkLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFHcmlkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMvZGF0YS1ncmlkJztcclxuaW1wb3J0IHsgQ3N2U2VydmljZSB9IGZyb20gJ25neC1yZWRpLWNvcmUvSGVscGVyJztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJy4uLy4uL21vZGVscy9pbnRlcmZhY2VzL2NlbGwnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHF1ZSByZXByZXNlbnRhIGxvcyBkYXRvcyBlbiB1biBncmlkXHJcbiAqIEBkZWNvcmF0b3JzIGBAQ29tcG9uZW50KClgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JlZGktZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGktZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVkaS1ncmlkLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkaUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKlxyXG4gICAqIERhdG9zIGRlIG9yaWdlbiB5IGNvbmZpZ3VyYWNpw7NuIGRlbCBncmlkXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogRGF0YUdyaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzaSBlbCBncmlkIHNlIGVudW1lcmFcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlbnVtZXJhcjogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNpIGVsIGdyaWQgZXMgZWRpdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlZGl0YWJsZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3IgZGVsIGdyaWRcclxuICAgKiBAcGFyYW0gY3N2IC0gU2VydmljaW8gQ1NWXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjc3Y6IENzdlNlcnZpY2UpIHtcclxuICAgIHRoaXMuZGF0YSA9IHt9IGFzIERhdGFHcmlkO1xyXG4gICAgdGhpcy5lbnVtZXJhciA9IGZhbHNlO1xyXG4gICAgdGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBkZSBpbmljaWFsaXphY2nDs24gZGUgdmlzdWFsaXphY2nDs25cclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgdGhpcy5lZGl0YWJsZSA9IHRoaXMuZGF0YS5lZGl0YWJsZSB8fCBmYWxzZTtcclxuICAgICAgdGhpcy5lbnVtZXJhciA9IHRoaXMuZGF0YS5lbnVtZXJhYmxlIHx8IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmlld1BvcnQgcGFyYSBlbCBzY3JvbGwgdmlydHVhbFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgdmlld1BvcnQhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIGludmllcnRlIGxhIHViaWNhY2nDs24gZGVsIG9iamV0byByZW5kZXJpemFkb1xyXG4gICAqIEByZXR1cm5zIFJlZ3Jlc2EgbGEgdWJpY2FjacOzbiBpbnZlcnRpZGEgZW4gbW9kbyB0ZXh0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgaW52ZXJ0aXJVYmljYWNpb24oKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy52aWV3UG9ydCB8fCAhdGhpcy52aWV3UG9ydFsnX3JlbmRlcmVkQ29udGVudE9mZnNldCddKSB7XHJcbiAgICAgIHJldHVybiAnLTBweCc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnZpZXdQb3J0WydfcmVuZGVyZWRDb250ZW50T2Zmc2V0J107XHJcbiAgICByZXR1cm4gYC0ke29mZnNldH1weGA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSB2YWxpZGEgc2kgdW5hIGNvbHVtbmEgZXN0YSBibG9xdWVhZGFcclxuICAgKiBAcGFyYW0gbnVtZXJvQ29sdW1uYSAtIE51bWVybyBkZSBjb2x1bW5hXHJcbiAgICogQHJldHVybnMgVHJ1ZSBzaSBsYSBjb2x1bW5hIGVzdGEgYmxvcXVlYWRhXHJcbiAgICovXHJcbiAgcHVibGljIGNvbHVtbmFCbG9xdWVhZGEobnVtZXJvQ29sdW1uYTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmJsb3F1ZWFyQ29sdW1uYXMgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmRhdGEuYmxvcXVlYXJDb2x1bW5hcy5zb21lKGMgPT4gYyA9PT0gbnVtZXJvQ29sdW1uYSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSB2YWxpZGEgc2kgdW5hIGNvbHVtbmEgZXMgdmlzaWJsZVxyXG4gICAqIEBwYXJhbSBudW1lcm9Db2x1bW5hIC0gTnVtZXJvIGRlIGNvbHVtbmFcclxuICAgKiBAcmV0dXJucyBUcnVlIHNpIGVzIHZpc2libGVcclxuICAgKi9cclxuICBwdWJsaWMgY29sdW1uYVZpc2libGUobnVtZXJvQ29sdW1uYTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISh0aGlzLmRhdGEub2N1bHRhckNvbHVtbmFzICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5kYXRhLm9jdWx0YXJDb2x1bW5hcy5zb21lKGMgPT4gYyA9PT0gbnVtZXJvQ29sdW1uYSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgYWN0dWFsaXphIGxvcyBkYXRvcyBlZGl0YWRvcyBlbiBlbCBncmlkXHJcbiAgICogQHBhcmFtIGluZGljZUZpbGEgLSBDb250aWVuZSBlbCBpbmRpY2UgZGUgbGEgZmlsYSBlZGl0YWRhXHJcbiAgICogQHBhcmFtIGluZGljZUNvbHVtbmEgLSBDb250aWVuZSBlbCBpbmRpY2UgZGUgbGEgY29sdW1uYSBlZGl0YWRhXHJcbiAgICogQHBhcmFtIHZhbG9yIC0gQ29udGllbmUgZWwgdmFsb3IgZGUgZWRpY2nDs24gZGUgY2VsZGFcclxuICAgKi9cclxuICBwdWJsaWMgYWN0dWFsaXphckRhdG9zKGluZGljZUZpbGE6IG51bWJlciwgaW5kaWNlQ29sdW1uYTogbnVtYmVyLCB2YWxvcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5maWxhcykge1xyXG4gICAgICBjb25zdCBmaWxhID0gdGhpcy5kYXRhLmZpbGFzW2luZGljZUZpbGFdW2luZGljZUNvbHVtbmFdO1xyXG4gICAgICBmaWxhLmVkaXRhZG8gPSBmaWxhLnZhbG9yICE9PSB2YWxvciB8fCBmaWxhLmVkaXRhZG87XHJcbiAgICAgIGlmIChmaWxhLmVkaXRhZG8pIHtcclxuICAgICAgICBmaWxhLnZhbG9yID0gdmFsb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbWJpYSBlbCBmb2NvIGRlIGxhcyBjZWxkYXNcclxuICAgKiBAcGFyYW0gZXZlbnQgLSBLZXlib2FyZEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG1vdmVyRm9jbyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgdGhpcy5tb3ZlckRlQ2VsZGEoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQsXHJcbiAgICAgIGV2ZW50LmtleSxcclxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2NlbGwnKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlYWxpemEgZWwgbW92aW1pZW50byBkZSBjZWxkYXMgcG9yIGVsIHRlY2xhZG9cclxuICAgKiBAcGFyYW0gY29udHJvbCAtIENvbnRyb2wgcXVlIGRlc2VuY2FkZW5hIGVsIGV2ZW50b1xyXG4gICAqIEBwYXJhbSBrZXkgLSBUZWNsYSBxdWUgZGVzZW5jYWRlbm8gZWwgZXZlbnRvXHJcbiAgICogQHBhcmFtIG5vZGVzQ29udHJvbHMgLSBDb250cm9sZXMgZGVsIGdyaWRcclxuICAgKi9cclxuICBwcml2YXRlIG1vdmVyRGVDZWxkYShjb250cm9sOiBIVE1MSW5wdXRFbGVtZW50LCBrZXk6IHN0cmluZywgbm9kZXNDb250cm9sczogTm9kZUxpc3QpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG5vZGVzQ29udHJvbHMsIHggPT4geyByZXR1cm4geCB9KS5pbmRleE9mKGNvbnRyb2wpO1xyXG4gICAgbGV0IGNoYW5nZUZvY3VzID0gdHJ1ZTtcclxuICAgIGxldCBuZXdJbmRleCA9IDA7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgIGNoYW5nZUZvY3VzID0ga2V5ID09PSAnRW50ZXInIHx8XHJcbiAgICAgICAgICBjb250cm9sLnNlbGVjdGlvblN0YXJ0ID09PSBjb250cm9sLnZhbHVlLmxlbmd0aDtcclxuICAgICAgICBuZXdJbmRleCA9IGluZGV4ICsgMTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICBjaGFuZ2VGb2N1cyA9IGNvbnRyb2wuc2VsZWN0aW9uU3RhcnQgPT09IDA7XHJcbiAgICAgICAgbmV3SW5kZXggPSBpbmRleCAtIDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIG5ld0luZGV4ID0gaW5kZXggLSB0aGlzLmNvbHVtbmFzSGFiaWxpdGFkYXMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICBuZXdJbmRleCA9IGluZGV4ICsgdGhpcy5jb2x1bW5hc0hhYmlsaXRhZGFzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY2hhbmdlRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VGb2N1cykge1xyXG4gICAgICB0aGlzLm9idGVuZXJDb250cm9sKG5vZGVzQ29udHJvbHMsIG5ld0luZGV4KS5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVncmVzYSBlbCBudW1lcm8gZGUgY29sdW1uYXMgaGFiaWxpdGFkYXMgZGVudHJvIGRlbCBncmlkXHJcbiAgICogQHJldHVybnMgTnVtZXJvIGRlIGNvbHVtbmFzIGhhYmlsaXRhZGFzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb2x1bW5hc0hhYmlsaXRhZGFzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNvbHVtbmFzLmxlbmd0aCAtICh0aGlzLmRhdGEuYmxvcXVlYXJDb2x1bW5hcz8ubGVuZ3RoID8/IDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBlbCBjb250cm9sIGRlIHVuIE5vZGVMaXN0IHBvciBpbmRpY2VcclxuICAgKiBAcGFyYW0gbm9kZXMgLSBMaXN0YSBkZSBub2Rvc1xyXG4gICAqIEBwYXJhbSBpbmRleCAtIEluZGljZSBkZWwgY29udHJvbFxyXG4gICAqIEByZXR1cm5zIENvbnRyb2wgZGVsIGluZGljZSBlc3BlY2lmaWNhZG9cclxuICAgKi9cclxuICBwcml2YXRlIG9idGVuZXJDb250cm9sKG5vZGVzOiBOb2RlTGlzdCwgaW5kZXg6IG51bWJlcik6IEhUTUxFbGVtZW50IHtcclxuICAgIHJldHVybiBub2Rlcy5pdGVtKGluZGV4KSBhcyBIVE1MRWxlbWVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2NhcmdhIGxvcyBkYXRvcyBjb250ZW5pZG9zIGVuIGVsIEdyaWQgY29tbyB1biBDU1ZcclxuICAgKiBAcGFyYW0gYXJjaGl2byAtIE5vbWJyZSBkZWwgYXJjaGl2b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBkZXNjYXJnYXJDc3YoYXJjaGl2bzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhLmZpbGFzLm1hcCgoZjogQXJyYXk8Q2VsbD4pID0+IHsgcmV0dXJuIGYuZmlsdGVyKChjLGkpID0+IChjLnNlcmlhbGl6YWJsZSA/PyB0cnVlKSAmJiB0aGlzLmNvbHVtbmFWaXNpYmxlKGkpKS5tYXAoKGM6IENlbGwpID0+IGMudmFsb3IpOyB9KS5maWx0ZXIoZCA9PiBkLmxlbmd0aCA+IDApO1xyXG4gICAgZGF0YS51bnNoaWZ0KHRoaXMuZGF0YS5jb2x1bW5hcy5maWx0ZXIoKGMsaSkgPT4gKGMuc2VyaWFsaXphYmxlID8/IHRydWUpICYmIHRoaXMuY29sdW1uYVZpc2libGUoaSkpLm1hcCgoYzogQ2VsbCkgPT4gYy52YWxvcikpO1xyXG4gICAgdGhpcy5jc3YuZGVzY2FyZ2FyQ3N2KGFyY2hpdm8sIGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgPCEtLSBDb250ZW5lZG9yIHByaW5jaXBhbCBkZWwgZ3JpZCAtLT5cclxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICNzY3JvbGxWaWV3cG9ydCBpdGVtU2l6ZT1cIjI1XCI+XHJcbiAgICA8IS0tIFRhYmxhIGRlIGRhdG9zIC0tPlxyXG4gICAgPHRhYmxlIChrZXlkb3duKT1cIm1vdmVyRm9jbygkZXZlbnQpXCI+XHJcbiAgICAgIDxjYXB0aW9uPiBSZWRpR3JpZENvbXBvbmVudCA8L2NhcHRpb24+XHJcbiAgICAgIDwhLS0gQ2FiZWNlcmEgZGUgdGFibGEgLS0+XHJcbiAgICAgIDx0aGVhZD5cclxuICAgICAgICA8IS0tIERlZmluaWNpw7NuIGRlIGVuY2FiZXphZG9zIC0tPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIFtzdHlsZS50b3BdPVwiaW52ZXJ0aXJVYmljYWNpb25cIiAqbmdJZj1cImVudW1lcmFyXCI+XHJcbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBbc3R5bGUudG9wXT1cImludmVydGlyVWJpY2FjaW9uXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBkYXRhLmNvbHVtbmFzOyBsZXQgY29sTnVtPWluZGV4XCJcclxuICAgICAgICAgICAgW2NsYXNzLm9jdWx0b109XCIhY29sdW1uYVZpc2libGUoY29sTnVtKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjb2x1bW5hQmxvcXVlYWRhKGNvbE51bSlcIiBjbGFzcz1cImxvY2tJY29uXCI+bG9jazwvbWF0LWljb24+e3tjb2wudmFsb3J9fVxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RoZWFkPlxyXG4gICAgICA8IS0tIEN1ZXJwbyBkZSB0YWJsYSAtLT5cclxuICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgZGF0YS5maWxhcztsZXQgcm93TnVtID0gaW5kZXhcIj5cclxuICAgICAgICAgIDwhLS0gQ29udGFkb3IgZGUgZmlsYSAtLT5cclxuICAgICAgICAgIDx0ZCAqbmdJZj1cImVudW1lcmFyXCI+IHt7IHJvd051bSArIDEgfX0gPC90ZD5cclxuICAgICAgICAgIDwhLS0gQ2VsZGFzIGRlIGRhdG9zIC0tPlxyXG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjZWxsIG9mIHJvdzsgbGV0IGNvbE51bT1pbmRleDtcIiBbY2xhc3Mud2Fybl09XCJjZWxsLmVzVmFsaWRvICE9PSB1bmRlZmluZWQgJiYgIWNlbGwuZXNWYWxpZG9cIlxyXG4gICAgICAgICAgICBbY2xhc3MuZWRpdGFkb109XCJjZWxsLmVkaXRhZG9cIiBbY2xhc3MuYmxvcXVlYWRvXT1cImNlbGwuYmxvcXVlYWRvIHx8IGNvbHVtbmFCbG9xdWVhZGEoY29sTnVtKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5vY3VsdG9dPVwiIWNvbHVtbmFWaXNpYmxlKGNvbE51bSlcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNlbGxcIj4gVmFsdWUgPC9sYWJlbD5cclxuICAgICAgICAgICAgPCEtLSBDYW1wbyBlZGl0YWJsZSAtLT5cclxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiZWRpdGFibGUgJiYgIWNlbGwuYmxvcXVlYWRvICYmICFjb2x1bW5hQmxvcXVlYWRhKGNvbE51bSlcIiB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJjZWxsLnZhbG9yXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2VsbFwiIGlkPVwiY2VsbFwiIChmb2N1c291dCk9XCJhY3R1YWxpemFyRGF0b3Mocm93TnVtLGNvbE51bSwkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmVkaXRhZG9dPVwiY2VsbC5lZGl0YWRvXCIgLz5cclxuICAgICAgICAgICAge3sgIWVkaXRhYmxlIHx8IGNlbGwuYmxvcXVlYWRvIHx8IGNvbHVtbmFCbG9xdWVhZGEoY29sTnVtKSA/IGNlbGwudmFsb3IgOiAnJyB9fVxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3Rib2R5PlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RediGridComponent } from './redi-grid/redi-grid.component';
|
|
4
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Modulo que contiene los componentes de grid
|
|
9
|
+
* @decorators ´@NgModule´
|
|
10
|
+
*/
|
|
11
|
+
export class RediGridModule {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RediGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: RediGridModule, declarations: [RediGridComponent], imports: [CommonModule,
|
|
14
|
+
ScrollingModule,
|
|
15
|
+
MatIconModule], exports: [RediGridComponent] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RediGridModule, imports: [CommonModule,
|
|
17
|
+
ScrollingModule,
|
|
18
|
+
MatIconModule] }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RediGridModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [RediGridComponent],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
ScrollingModule,
|
|
27
|
+
MatIconModule
|
|
28
|
+
],
|
|
29
|
+
exports: [
|
|
30
|
+
RediGridComponent
|
|
31
|
+
]
|
|
32
|
+
}]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaS1ncmlkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaUdyaWQvc3JjL21vZHVsZXMvcmVkaS1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUV2RDs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBVlYsaUJBQWlCLGFBRTlCLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYSxhQUdiLGlCQUFpQjsrR0FHUixjQUFjLFlBUnZCLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTs7MkZBTUosY0FBYztrQkFYMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVkaUdyaWRDb21wb25lbnQgfSBmcm9tICcuL3JlZGktZ3JpZC9yZWRpLWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbi8qKlxyXG4gKiBNb2R1bG8gcXVlIGNvbnRpZW5lIGxvcyBjb21wb25lbnRlcyBkZSBncmlkXHJcbiAqIEBkZWNvcmF0b3JzIMK0QE5nTW9kdWxlwrRcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUmVkaUdyaWRDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFJlZGlHcmlkQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkaUdyaWRNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlZGktY29yZS1SZWRpVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVkaS1jb3JlL1JlZGlUYWJsZS9uZ3gtcmVkaS1jb3JlLVJlZGlUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Componentes */
|
|
2
|
+
export * from './src/components/redi-table/redi-table.component';
|
|
3
|
+
/** Modelos */
|
|
4
|
+
export * from './src/models/interfaces/column-definition';
|
|
5
|
+
export * from './src/models/interfaces/data-table';
|
|
6
|
+
export * from './src/models/interfaces/row-action';
|
|
7
|
+
// /** Tipos */
|
|
8
|
+
// export * from './src/models/types/event-table.type';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaVRhYmxlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0JBQWtCO0FBQ2xCLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYztBQUNkLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWU7QUFDZix1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29tcG9uZW50ZXMgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvY29tcG9uZW50cy9yZWRpLXRhYmxlL3JlZGktdGFibGUuY29tcG9uZW50JztcclxuXHJcbi8qKiBNb2RlbG9zICovXHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL21vZGVscy9pbnRlcmZhY2VzL2NvbHVtbi1kZWZpbml0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvbW9kZWxzL2ludGVyZmFjZXMvZGF0YS10YWJsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL21vZGVscy9pbnRlcmZhY2VzL3Jvdy1hY3Rpb24nO1xyXG4vLyAvKiogVGlwb3MgKi9cclxuLy8gZXhwb3J0ICogZnJvbSAnLi9zcmMvbW9kZWxzL3R5cGVzL2V2ZW50LXRhYmxlLnR5cGUnOyJdfQ==
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
4
|
+
import { MatInputModule } from '@angular/material/input';
|
|
5
|
+
import { MatListModule } from '@angular/material/list';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/form-field";
|
|
8
|
+
import * as i2 from "@angular/material/input";
|
|
9
|
+
import * as i3 from "@angular/material/list";
|
|
10
|
+
export class FilterDataComponent {
|
|
11
|
+
set filtrosColumnas(value) {
|
|
12
|
+
if (value) {
|
|
13
|
+
this._refFiltro = value;
|
|
14
|
+
this.filtros = [...value.map(f => { return { ...f }; })];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
constructor() {
|
|
18
|
+
this.filterEnd = new EventEmitter();
|
|
19
|
+
this._refFiltro = [];
|
|
20
|
+
this.filtros = [];
|
|
21
|
+
}
|
|
22
|
+
ngAfterViewInit() {
|
|
23
|
+
if (this.allItemControl) {
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
this.allItemControl.selected = this.isAllChecked(this.filtros);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
selectedChange() {
|
|
30
|
+
if (this.allItemControl) {
|
|
31
|
+
this.allItemControl.selected = this.isAllChecked(this.filtros);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
setAllCheck(value) {
|
|
35
|
+
this.filtros.map(f => f.isSelected = value);
|
|
36
|
+
}
|
|
37
|
+
isAllChecked(filters) {
|
|
38
|
+
return filters.every(f => f.isSelected);
|
|
39
|
+
}
|
|
40
|
+
changeFilter() {
|
|
41
|
+
if (this.control) {
|
|
42
|
+
let value = this.control.nativeElement.value ?? '';
|
|
43
|
+
this.filtros.map(f => f.isVisible = value === '' ||
|
|
44
|
+
f.name.trim().toLowerCase().indexOf(value.trim().toLowerCase()) !== -1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
aplicarFiltros() {
|
|
48
|
+
this._refFiltro.map((d, i) => { this._refFiltro[i].isSelected = this.filtros[i].isSelected; });
|
|
49
|
+
this.filterEnd.emit(true);
|
|
50
|
+
}
|
|
51
|
+
cancelarFiltro() {
|
|
52
|
+
this.filterEnd.emit();
|
|
53
|
+
}
|
|
54
|
+
loadData() {
|
|
55
|
+
this.control.nativeElement.value = '';
|
|
56
|
+
this._refFiltro.map((d, i) => {
|
|
57
|
+
this.filtros[i].isSelected = this._refFiltro[i].isSelected;
|
|
58
|
+
d.isVisible = true;
|
|
59
|
+
this.filtros[i].isVisible = true;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FilterDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: FilterDataComponent, isStandalone: true, selector: "filter-data", inputs: { filtrosColumnas: "filtrosColumnas" }, outputs: { filterEnd: "filterEnd" }, viewQueries: [{ propertyName: "allItemControl", first: true, predicate: ["mainControl"], descendants: true }, { propertyName: "control", first: true, predicate: ["textFilter"], descendants: true }], ngImport: i0, template: "<mat-label>Filtro</mat-label>\r\n<div>\r\n <input #textFilter class=\"inputFilter\" (keyup)=\"changeFilter()\" type=\"text\" placeholder=\"Buscar\" aria-label=\"Filtro\"\r\n matInput>\r\n</div>\r\n<mat-selection-list #elementos>\r\n <mat-list-option #mainControl (click)=\"setAllCheck(mainControl.selected)\"\r\n [disabled]=\"textFilter.value !== ''\">(Seleccionar todo)</mat-list-option>\r\n @for (filtro of filtros; track filtro) {\r\n @if(filtro.isVisible){\r\n <mat-list-option [(selected)]=\"filtro.isSelected\"\r\n (selectedChange)=\"selectedChange()\">{{filtro.name}}</mat-list-option>\r\n }\r\n }\r\n</mat-selection-list>\r\n<button mat-flat-button color=\"primary\" (click)=\"aplicarFiltros()\">Aceptar</button>\r\n<button mat-flat-button color=\"accent\" (click)=\"cancelarFiltro()\">Cancelar</button>", styles: ["mat-selection-list{max-height:40vh;height:20vh;overflow-y:scroll;border:solid 1px gray;margin-top:10px;margin-bottom:10px;background-color:#fff}input,mat-label{width:90%;margin-left:5px}:host{padding:5px}button{float:right;margin-right:5px}mat-list-option{max-height:35px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i3.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }] }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FilterDataComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'filter-data', standalone: true, imports: [
|
|
68
|
+
MatFormFieldModule,
|
|
69
|
+
FormsModule,
|
|
70
|
+
MatInputModule,
|
|
71
|
+
MatListModule
|
|
72
|
+
], template: "<mat-label>Filtro</mat-label>\r\n<div>\r\n <input #textFilter class=\"inputFilter\" (keyup)=\"changeFilter()\" type=\"text\" placeholder=\"Buscar\" aria-label=\"Filtro\"\r\n matInput>\r\n</div>\r\n<mat-selection-list #elementos>\r\n <mat-list-option #mainControl (click)=\"setAllCheck(mainControl.selected)\"\r\n [disabled]=\"textFilter.value !== ''\">(Seleccionar todo)</mat-list-option>\r\n @for (filtro of filtros; track filtro) {\r\n @if(filtro.isVisible){\r\n <mat-list-option [(selected)]=\"filtro.isSelected\"\r\n (selectedChange)=\"selectedChange()\">{{filtro.name}}</mat-list-option>\r\n }\r\n }\r\n</mat-selection-list>\r\n<button mat-flat-button color=\"primary\" (click)=\"aplicarFiltros()\">Aceptar</button>\r\n<button mat-flat-button color=\"accent\" (click)=\"cancelarFiltro()\">Cancelar</button>", styles: ["mat-selection-list{max-height:40vh;height:20vh;overflow-y:scroll;border:solid 1px gray;margin-top:10px;margin-bottom:10px;background-color:#fff}input,mat-label{width:90%;margin-left:5px}:host{padding:5px}button{float:right;margin-right:5px}mat-list-option{max-height:35px}\n"] }]
|
|
73
|
+
}], ctorParameters: () => [], propDecorators: { filtrosColumnas: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], allItemControl: [{
|
|
76
|
+
type: ViewChild,
|
|
77
|
+
args: ['mainControl']
|
|
78
|
+
}], filterEnd: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}], control: [{
|
|
81
|
+
type: ViewChild,
|
|
82
|
+
args: ['textFilter']
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWRhdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZGktY29yZS9SZWRpVGFibGUvc3JjL2NvbXBvbmVudHMvZmlsdGVyLWRhdGEvZmlsdGVyLWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZGktY29yZS9SZWRpVGFibGUvc3JjL2NvbXBvbmVudHMvZmlsdGVyLWRhdGEvZmlsdGVyLWRhdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFpQnRFLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsSUFDVyxlQUFlLENBQUMsS0FBd0I7UUFDakQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFjRDtRQUxPLGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU1wRSxJQUFJLENBQUMsVUFB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LElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxhQUFhO3FCQUNkO3dEQU9VLGVBQWU7c0JBRHpCLEtBQUs7Z0JBWUMsY0FBYztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhO2dCQUlqQixTQUFTO3NCQURmLE1BQU07Z0JBSVAsT0FBTztzQkFETixTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUsIE1hdExpc3RPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgRmlsdGVySXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9pbnRlcmZhY2VzL2ZpbHRlci1pdGVtJztcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZpbHRlci1kYXRhJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWRhdGEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9maWx0ZXItZGF0YS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0YUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZmlsdHJvc0NvbHVtbmFzKHZhbHVlOiBBcnJheTxGaWx0ZXJJdGVtPikge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3JlZkZpbHRybyA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmZpbHRyb3MgPSBbLi4udmFsdWUubWFwKGYgPT4geyByZXR1cm4geyAuLi5mIH0gfSldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIF9yZWZGaWx0cm86IEFycmF5PEZpbHRlckl0ZW0+O1xyXG4gIHB1YmxpYyBmaWx0cm9zOiBBcnJheTxGaWx0ZXJJdGVtPjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRyb2wnKVxyXG4gIHB1YmxpYyBhbGxJdGVtQ29udHJvbCE6IE1hdExpc3RPcHRpb25cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZpbHRlckVuZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCd0ZXh0RmlsdGVyJylcclxuICBjb250cm9sITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9yZWZGaWx0cm8gPSBbXTtcclxuICAgIHRoaXMuZmlsdHJvcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWxsSXRlbUNvbnRyb2wpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hbGxJdGVtQ29udHJvbC5zZWxlY3RlZCA9IHRoaXMuaXNBbGxDaGVja2VkKHRoaXMuZmlsdHJvcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWxsSXRlbUNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5hbGxJdGVtQ29udHJvbC5zZWxlY3RlZCA9IHRoaXMuaXNBbGxDaGVja2VkKHRoaXMuZmlsdHJvcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWxsQ2hlY2sodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZmlsdHJvcy5tYXAoZiA9PiBmLmlzU2VsZWN0ZWQgPSB2YWx1ZSlcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgaXNBbGxDaGVja2VkKGZpbHRlcnM6IEFycmF5PEZpbHRlckl0ZW0+KSB7XHJcbiAgICByZXR1cm4gZmlsdGVycy5ldmVyeShmID0+IGYuaXNTZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlRmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbnRyb2wubmF0aXZlRWxlbWVudC52YWx1ZSA/PyAnJztcclxuICAgICAgdGhpcy5maWx0cm9zLm1hcChmID0+IGYuaXNWaXNpYmxlID0gdmFsdWUgPT09ICcnIHx8XHJcbiAgICAgICAgZi5uYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCkpICE9PSAtMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBsaWNhckZpbHRyb3MoKSB7XHJcbiAgICB0aGlzLl9yZWZGaWx0cm8ubWFwKChkLCBpKSA9PiB7IHRoaXMuX3JlZkZpbHRyb1tpXS5pc1NlbGVjdGVkID0gdGhpcy5maWx0cm9zW2ldLmlzU2VsZWN0ZWQgfSk7XHJcbiAgICB0aGlzLmZpbHRlckVuZC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbmNlbGFyRmlsdHJvKCkge1xyXG4gICAgdGhpcy5maWx0ZXJFbmQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWREYXRhKCkge1xyXG4gICAgdGhpcy5jb250cm9sLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuX3JlZkZpbHRyby5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgdGhpcy5maWx0cm9zW2ldLmlzU2VsZWN0ZWQgPSB0aGlzLl9yZWZGaWx0cm9baV0uaXNTZWxlY3RlZDtcclxuICAgICAgZC5pc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZpbHRyb3NbaV0uaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LWxhYmVsPkZpbHRybzwvbWF0LWxhYmVsPlxyXG48ZGl2PlxyXG4gICAgPGlucHV0ICN0ZXh0RmlsdGVyIGNsYXNzPVwiaW5wdXRGaWx0ZXJcIiAoa2V5dXApPVwiY2hhbmdlRmlsdGVyKClcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyXCIgYXJpYS1sYWJlbD1cIkZpbHRyb1wiXHJcbiAgICAgICAgbWF0SW5wdXQ+XHJcbjwvZGl2PlxyXG48bWF0LXNlbGVjdGlvbi1saXN0ICNlbGVtZW50b3M+XHJcbiAgICA8bWF0LWxpc3Qtb3B0aW9uICNtYWluQ29udHJvbCAoY2xpY2spPVwic2V0QWxsQ2hlY2sobWFpbkNvbnRyb2wuc2VsZWN0ZWQpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwidGV4dEZpbHRlci52YWx1ZSAhPT0gJydcIj4oU2VsZWNjaW9uYXIgdG9kbyk8L21hdC1saXN0LW9wdGlvbj5cclxuICAgIEBmb3IgKGZpbHRybyBvZiBmaWx0cm9zOyB0cmFjayBmaWx0cm8pIHtcclxuICAgIEBpZihmaWx0cm8uaXNWaXNpYmxlKXtcclxuICAgIDxtYXQtbGlzdC1vcHRpb24gWyhzZWxlY3RlZCldPVwiZmlsdHJvLmlzU2VsZWN0ZWRcIlxyXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJzZWxlY3RlZENoYW5nZSgpXCI+e3tmaWx0cm8ubmFtZX19PC9tYXQtbGlzdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgICB9XHJcbjwvbWF0LXNlbGVjdGlvbi1saXN0PlxyXG48YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYXBsaWNhckZpbHRyb3MoKVwiPkFjZXB0YXI8L2J1dHRvbj5cclxuPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsYXJGaWx0cm8oKVwiPkNhbmNlbGFyPC9idXR0b24+Il19
|