ngx-redi-core 18.1.21 → 18.1.24
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/src/helpers/query-filters.service.d.ts +1 -0
- package/RediDialog/src/components/redi-dialog/redi-dialog.component.d.ts +4 -1
- package/RediDialog/src/models/dialog-data.interface.d.ts +0 -2
- package/RediGrid/src/modules/redi-grid/redi-grid.component.d.ts +1 -1
- package/esm2022/Helper/src/helpers/query-filters.service.mjs +22 -1
- package/esm2022/RediDialog/src/components/redi-dialog/redi-dialog.component.mjs +24 -14
- package/esm2022/RediDialog/src/models/dialog-data.interface.mjs +1 -1
- package/esm2022/RediGrid/src/modules/redi-grid/redi-grid.component.mjs +2 -2
- package/fesm2022/ngx-redi-core-Helper.mjs +21 -0
- package/fesm2022/ngx-redi-core-Helper.mjs.map +1 -1
- package/fesm2022/ngx-redi-core-RediDialog.mjs +23 -13
- package/fesm2022/ngx-redi-core-RediDialog.mjs.map +1 -1
- package/fesm2022/ngx-redi-core-RediGrid.mjs +1 -1
- package/fesm2022/ngx-redi-core-RediGrid.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -19,6 +19,7 @@ export declare class QueryFiltersService {
|
|
|
19
19
|
*/
|
|
20
20
|
getQueryFilters(): Observable<QueryFilters>;
|
|
21
21
|
getSnapFilters(state: string): QueryFilters;
|
|
22
|
+
generateFilter(url: string): QueryFilters | undefined;
|
|
22
23
|
/**
|
|
23
24
|
* Obtiene los datos de los parámetros establecidos
|
|
24
25
|
* @param {Params} param - Parámetros
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { DialogData } from '../../models/dialog-data.interface';
|
|
4
|
+
import { QueryFiltersService } from 'ngx-redi-core/Helper';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class RediDialogComponent implements OnDestroy {
|
|
6
7
|
private data;
|
|
7
8
|
private readonly router;
|
|
9
|
+
private readonly queryfilter;
|
|
8
10
|
outlet: string;
|
|
9
|
-
constructor(data: DialogData, router: Router);
|
|
11
|
+
constructor(data: DialogData, router: Router, queryfilter: QueryFiltersService);
|
|
12
|
+
private configFilters;
|
|
10
13
|
ngOnDestroy(): void;
|
|
11
14
|
private generateArrayRoute;
|
|
12
15
|
private generateOutlets;
|
|
@@ -45,6 +45,27 @@ export class QueryFiltersService {
|
|
|
45
45
|
}
|
|
46
46
|
return filter;
|
|
47
47
|
}
|
|
48
|
+
generateFilter(url) {
|
|
49
|
+
if (!url) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
let params = url.split('&')
|
|
53
|
+
.map(p => {
|
|
54
|
+
let data = p.split('=');
|
|
55
|
+
return {
|
|
56
|
+
key: data[0],
|
|
57
|
+
value: data[1] ?? ''
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
seleccionarTodo: params.some(p => p.key === 'seleccionar' && p.value === ''),
|
|
62
|
+
seleccionados: params.find(p => p.key === 'seleccionar')?.value.split(',') ?? [],
|
|
63
|
+
deseleccionados: params.find(p => p.key === 'deseleccionar')?.value.split(',') ?? [],
|
|
64
|
+
eliminados: params.find(p => p.key === 'eliminar')?.value.split(',') ?? [],
|
|
65
|
+
filtrados: params.find(p => p.key === 'filtrar')?.value?.split(',') ?? [],
|
|
66
|
+
servicio: params.find(p => p.key === 'bagDataSubject')?.value ?? '',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
48
69
|
/**
|
|
49
70
|
* Obtiene los datos de los parámetros establecidos
|
|
50
71
|
* @param {Params} param - Parámetros
|
|
@@ -66,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
66
87
|
type: Inject,
|
|
67
88
|
args: [ActivatedRoute]
|
|
68
89
|
}] }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZGktY29yZS9IZWxwZXIvc3JjL2hlbHBlcnMvcXVlcnktZmlsdGVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFFdkM7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7O09BR0c7SUFDSCxZQUFxRCxVQUEwQjtRQUExQixlQUFVLEdBQVYsVUFBVSxDQUFnQjtJQUMvRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkQsT0FBTztnQkFDTCxlQUFlLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pELGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7Z0JBQ3RELGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUM7Z0JBQzFELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7Z0JBQ2hELFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7Z0JBQzlDLFFBQVEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO2FBQzdCLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENB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OzswQkFNYyxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFF1ZXJ5RmlsdGVycyB9IGZyb20gJy4uL21vZGVscy9pbnRlcmZhY2VzL3F1ZXJ5LWZpbHRlcnMnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNpbyBkZSBmaWx0cm8gZGUgZGF0b3MgcGFyYSBxdWVyeSBwYXJhbXNcclxuICogQGRlY29yYXRvcnMgYEBJbmplY3RhYmxlYFxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlcnlGaWx0ZXJzU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYSB1bmEgbnVldmEgaW5zdGFuY2lhIGRlIFF1ZXJ5RmlsdGVyXHJcbiAgICogQHBhcmFtIHtBY3RpdmF0ZWRSb3V0ZX0gcnV0YUFjdGl2YSAtIFNlcnZpY2lvIGRlIHJ1dGFcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBwcml2YXRlIHJlYWRvbmx5IHJ1dGFBY3RpdmE6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxvcyBmaWx0cm9zIGRlIGxhIHJ1dGFcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFF1ZXJ5RmlsdGVycz5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UXVlcnlGaWx0ZXJzKCk6IE9ic2VydmFibGU8UXVlcnlGaWx0ZXJzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5ydXRhQWN0aXZhLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKHF1ZXJ5UGFyYW0gPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNlbGVjY2lvbmFyVG9kbzogcXVlcnlQYXJhbVsnc2VsZWNjaW9uYXInXSA9PT0gJycsXHJcbiAgICAgICAgc2VsZWNjaW9uYWRvczogdGhpcy5nZXREYXRhKHF1ZXJ5UGFyYW0sICdzZWxlY2Npb25hcicpLFxyXG4gICAgICAgIGRlc2VsZWNjaW9uYWRvczogdGhpcy5nZXREYXRhKHF1ZXJ5UGFyYW0sICdkZXNlbGVjY2lvbmFyJyksXHJcbiAgICAgICAgZWxpbWluYWRvczogdGhpcy5nZXREYXRhKHF1ZXJ5UGFyYW0sICdlbGltaW5hcicpLFxyXG4gICAgICAgIGZpbHRyYWRvczogdGhpcy5nZXREYXRhKHF1ZXJ5UGFyYW0sICdmaWx0cmFyJyksXHJcbiAgICAgICAgc2VydmljaW86IHF1ZXJ5UGFyYW1bJ2JhZ0RhdGFTdWJqZWN0J10gPz8gJydcclxuICAgICAgfSBhcyBRdWVyeUZpbHRlcnM7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGdldFNuYXBGaWx0ZXJzKHN0YXRlOiBzdHJpbmcpOiBRdWVyeUZpbHRlcnMge1xyXG4gICAgbGV0IGZpbHRlciA9IFJlZmxlY3QuZ2V0KGhpc3Rvcnkuc3RhdGUsIHN0YXRlKTtcclxuICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgZmlsdGVyID0ge1xyXG4gICAgICAgIHNlbGVjY2lvbmFyVG9kbzogZmlsdGVyLnNlbGVjY2lvbmFyVG9kbyA/PyBmYWxzZSxcclxuICAgICAgICBzZWxlY2Npb25hZG9zOiBmaWx0ZXIuc2VsZWNjaW9uYWRvcyA/PyBbXSxcclxuICAgICAgICBkZXNlbGVjY2lvbmFkb3M6IGZpbHRlci5kZXNlbGVjY2lvbmFkb3MgPz8gW10sXHJcbiAgICAgICAgZWxpbWluYWRvczogZmlsdGVyLmVsaW1pbmFkb3MgPz8gW10sXHJcbiAgICAgICAgZmlsdHJhZG9zOiBmaWx0ZXIuZmlsdHJhZG9zID8/IFtdLFxyXG4gICAgICAgIHNlcnZpY2lvOiBmaWx0ZXIuc2VydmljaW8gPz8gJydcclxuICAgICAgfSBhcyBRdWVyeUZpbHRlcnM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlRmlsdGVyKHVybDogc3RyaW5nKTogUXVlcnlGaWx0ZXJzIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0gdXJsLnNwbGl0KCcmJylcclxuICAgICAgLm1hcChwID0+IHtcclxuICAgICAgICBsZXQgZGF0YSA9IHAuc3BsaXQoJz0nKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiBkYXRhWzBdLFxyXG4gICAgICAgICAgdmFsdWU6IGRhdGFbMV0gPz8gJydcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2VsZWNjaW9uYXJUb2RvOiBwYXJhbXMuc29tZShwID0+IHAua2V5ID09PSAnc2VsZWNjaW9uYXInICYmIHAudmFsdWUgPT09ICcnKSxcclxuICAgICAgc2VsZWNjaW9uYWRvczogcGFyYW1zLmZpbmQocCA9PiBwLmtleSA9PT0gJ3NlbGVjY2lvbmFyJyk/LnZhbHVlLnNwbGl0KCcsJykgPz8gW10sXHJcbiAgICAgIGRlc2VsZWNjaW9uYWRvczogcGFyYW1zLmZpbmQocCA9PiBwLmtleSA9PT0gJ2Rlc2VsZWNjaW9uYXInKT8udmFsdWUuc3BsaXQoJywnKSA/PyBbXSxcclxuICAgICAgZWxpbWluYWRvczogcGFyYW1zLmZpbmQocCA9PiBwLmtleSA9PT0gJ2VsaW1pbmFyJyk/LnZhbHVlLnNwbGl0KCcsJykgPz8gW10sXHJcbiAgICAgIGZpbHRyYWRvczogcGFyYW1zLmZpbmQocCA9PiBwLmtleSA9PT0gJ2ZpbHRyYXInKT8udmFsdWU/LnNwbGl0KCcsJykgPz8gW10sXHJcbiAgICAgIHNlcnZpY2lvOiBwYXJhbXMuZmluZChwID0+IHAua2V5ID09PSAnYmFnRGF0YVN1YmplY3QnKT8udmFsdWUgPz8gJycsXHJcbiAgICB9IGFzIFF1ZXJ5RmlsdGVycztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgbG9zIGRhdG9zIGRlIGxvcyBwYXLDoW1ldHJvcyBlc3RhYmxlY2lkb3NcclxuICAgKiBAcGFyYW0ge1BhcmFtc30gcGFyYW0gLSBQYXLDoW1ldHJvc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBDbGF2ZSBkZWwgcGFyw6FtZXRyb1xyXG4gICAqIEByZXR1cm5zIEFycmVnbG8gZGUgcGFyw6FtZXRyb3NcclxuICAgKi9cclxuICBwcml2YXRlIGdldERhdGEocGFyYW06IFBhcmFtcywga2V5OiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwYXJhbVtrZXldPy5zcGxpdCgnLCcpID8/IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,21 +1,31 @@
|
|
|
1
1
|
import { Component, Inject } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "ngx-redi-core/Helper";
|
|
6
7
|
export class RediDialogComponent {
|
|
7
|
-
constructor(data, router) {
|
|
8
|
+
constructor(data, router, queryfilter) {
|
|
8
9
|
this.data = data;
|
|
9
10
|
this.router = router;
|
|
11
|
+
this.queryfilter = queryfilter;
|
|
10
12
|
this.outlet = data.outlet;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
this.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
this.configFilters();
|
|
14
|
+
}
|
|
15
|
+
configFilters() {
|
|
16
|
+
let urlData = this.data.path.split('?');
|
|
17
|
+
let filter = this.queryfilter.generateFilter(urlData[1] ?? '');
|
|
18
|
+
this.router.events.subscribe((e) => {
|
|
19
|
+
if (e instanceof NavigationEnd) {
|
|
20
|
+
history.pushState(filter, this.data.outlet);
|
|
21
|
+
this.router.navigate([
|
|
22
|
+
{
|
|
23
|
+
...this.generateOutlets(this.data.outlet, this.generateArrayRoute(urlData[0])),
|
|
24
|
+
state: filter
|
|
25
|
+
}
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
19
29
|
}
|
|
20
30
|
ngOnDestroy() {
|
|
21
31
|
this.router.navigate([{ outlets: { rediDialog: null } }]);
|
|
@@ -25,9 +35,9 @@ export class RediDialogComponent {
|
|
|
25
35
|
}
|
|
26
36
|
generateOutlets(outletName, url) {
|
|
27
37
|
let internalOutlet = `{"${outletName}":${JSON.stringify(url)}}`;
|
|
28
|
-
return { outlets: JSON.parse(internalOutlet)
|
|
38
|
+
return { outlets: JSON.parse(internalOutlet) };
|
|
29
39
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.Router }, { token: i2.QueryFiltersService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
41
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: RediDialogComponent, isStandalone: true, selector: "redi-dialog", ngImport: i0, template: "<router-outlet [name]=\"outlet\"></router-outlet>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
32
42
|
}
|
|
33
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, decorators: [{
|
|
@@ -36,5 +46,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
36
46
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
37
47
|
type: Inject,
|
|
38
48
|
args: [MAT_DIALOG_DATA]
|
|
39
|
-
}] }, { type: i1.Router }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
}] }, { type: i1.Router }, { type: i2.QueryFiltersService }] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZGktY29yZS9SZWRpRGlhbG9nL3NyYy9jb21wb25lbnRzL3JlZGktZGlhbG9nL3JlZGktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaURpYWxvZy9zcmMvY29tcG9uZW50cy9yZWRpLWRpYWxvZy9yZWRpLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFZdEUsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUE2QyxJQUFnQixFQUMxQyxNQUFjLEVBQ2QsV0FBZ0M7UUFGTixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFDbkI7d0JBQ0UsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLEtBQUssRUFBRSxNQUFNO3FCQUNkO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQWtCLEVBQUUsR0FBa0I7UUFDNUQsSUFBSSxjQUFjLEdBQUcsS0FBSyxVQUFVLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7OEdBdENVLG1CQUFtQixrQkFHVixlQUFlO2tHQUh4QixtQkFBbUIsdUVDZGhDLG1EQUErQyw0RURVbkMsWUFBWTs7MkZBSVgsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OzBCQU9WLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUXVlcnlGaWx0ZXJzU2VydmljZSB9IGZyb20gJ25neC1yZWRpLWNvcmUvSGVscGVyJztcclxuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmVkaS1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGktZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVkaS1kaWFsb2cuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZGlEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBvdXRsZXQ6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogRGlhbG9nRGF0YSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5ZmlsdGVyOiBRdWVyeUZpbHRlcnNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLm91dGxldCA9IGRhdGEub3V0bGV0O1xyXG4gICAgdGhpcy5jb25maWdGaWx0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbmZpZ0ZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICBsZXQgdXJsRGF0YSA9IHRoaXMuZGF0YS5wYXRoLnNwbGl0KCc/Jyk7XHJcbiAgICBsZXQgZmlsdGVyID0gdGhpcy5xdWVyeWZpbHRlci5nZW5lcmF0ZUZpbHRlcih1cmxEYXRhWzFdID8/ICcnKTtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUoZmlsdGVyLCB0aGlzLmRhdGEub3V0bGV0KTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZ2VuZXJhdGVPdXRsZXRzKHRoaXMuZGF0YS5vdXRsZXQsXHJcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUFycmF5Um91dGUodXJsRGF0YVswXSkpLFxyXG4gICAgICAgICAgICBzdGF0ZTogZmlsdGVyXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3sgb3V0bGV0czogeyByZWRpRGlhbG9nOiBudWxsIH0gfV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUFycmF5Um91dGUodXJsOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB1cmw/LnNwbGl0KCcvJykuZmlsdGVyKHIgPT4gciAhPT0gJycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZU91dGxldHMob3V0bGV0TmFtZTogc3RyaW5nLCB1cmw6IEFycmF5PHN0cmluZz4pIHtcclxuICAgIGxldCBpbnRlcm5hbE91dGxldCA9IGB7XCIke291dGxldE5hbWV9XCI6JHtKU09OLnN0cmluZ2lmeSh1cmwpfX1gO1xyXG4gICAgcmV0dXJuIHsgb3V0bGV0czogSlNPTi5wYXJzZShpbnRlcm5hbE91dGxldCkgfTtcclxuICB9XHJcbn0iLCI8cm91dGVyLW91dGxldCBbbmFtZV09XCJvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZGktY29yZS9SZWRpRGlhbG9nL3NyYy9tb2RlbHMvZGlhbG9nLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUZpbHRlcnMgfSBmcm9tIFwibmd4LXJlZGktY29yZS9IZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgICBvdXRsZXQ6IHN0cmluZztcclxuICAgIHBhdGg6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -23,7 +23,7 @@ export class RediGridComponent {
|
|
|
23
23
|
/**
|
|
24
24
|
* Método de inicialización de visualización
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
configFilters() {
|
|
27
27
|
if (this.data) {
|
|
28
28
|
this.editable = this.data.editable || false;
|
|
29
29
|
this.enumerar = this.data.enumerable || false;
|
|
@@ -156,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
156
156
|
type: ViewChild,
|
|
157
157
|
args: [CdkVirtualScrollViewport, { static: false }]
|
|
158
158
|
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaUdyaWQvc3JjL21vZHVsZXMvcmVkaS1ncmlkL3JlZGktZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVkaS1jb3JlL1JlZGlHcmlkL3NyYy9tb2R1bGVzL3JlZGktZ3JpZC9yZWRpLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFNcEU7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUI7OztPQUdHO0lBQ0gsWUFBb0IsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFRRDs7O09BR0c7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUks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LE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FyS1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsaUtBMENqQix3QkFBd0IsZ0RDMURyQyw4NkRBcUNNOzsyRkRyQk8saUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7K0VBU2QsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBMkJDLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLWdyaWQnO1xyXG5pbXBvcnQgeyBDc3ZTZXJ2aWNlIH0gZnJvbSAnbmd4LXJlZGktY29yZS9IZWxwZXInO1xyXG5pbXBvcnQgeyBDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMvY2VsbCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcXVlIHJlcHJlc2VudGEgbG9zIGRhdG9zIGVuIHVuIGdyaWRcclxuICogQGRlY29yYXRvcnMgYEBDb21wb25lbnQoKWBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmVkaS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVkaS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWRpLWdyaWQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWRpR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqXHJcbiAgICogRGF0b3MgZGUgb3JpZ2VuIHkgY29uZmlndXJhY2nDs24gZGVsIGdyaWRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhOiBEYXRhR3JpZDtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNpIGVsIGdyaWQgc2UgZW51bWVyYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVudW1lcmFyOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2kgZWwgZ3JpZCBlcyBlZGl0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVkaXRhYmxlOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvciBkZWwgZ3JpZFxyXG4gICAqIEBwYXJhbSBjc3YgLSBTZXJ2aWNpbyBDU1ZcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNzdjogQ3N2U2VydmljZSkge1xyXG4gICAgdGhpcy5kYXRhID0ge30gYXMgRGF0YUdyaWQ7XHJcbiAgICB0aGlzLmVudW1lcmFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRhYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRlIGluaWNpYWxpemFjacOzbiBkZSB2aXN1YWxpemFjacOzblxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICB0aGlzLmVkaXRhYmxlID0gdGhpcy5kYXRhLmVkaXRhYmxlIHx8IGZhbHNlO1xyXG4gICAgICB0aGlzLmVudW1lcmFyID0gdGhpcy5kYXRhLmVudW1lcmFibGUgfHwgZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWaWV3UG9ydCBwYXJhIGVsIHNjcm9sbCB2aXJ0dWFsXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyB2aWV3UG9ydCE6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgaW52aWVydGUgbGEgdWJpY2FjacOzbiBkZWwgb2JqZXRvIHJlbmRlcml6YWRvXHJcbiAgICogQHJldHVybnMgUmVncmVzYSBsYSB1YmljYWNpw7NuIGludmVydGlkYSBlbiBtb2RvIHRleHRvXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBpbnZlcnRpclViaWNhY2lvbigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLnZpZXdQb3J0IHx8ICF0aGlzLnZpZXdQb3J0WydfcmVuZGVyZWRDb250ZW50T2Zmc2V0J10pIHtcclxuICAgICAgcmV0dXJuICctMHB4JztcclxuICAgIH1cclxuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmlld1BvcnRbJ19yZW5kZXJlZENvbnRlbnRPZmZzZXQnXTtcclxuICAgIHJldHVybiBgLSR7b2Zmc2V0fXB4YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIHZhbGlkYSBzaSB1bmEgY29sdW1uYSBlc3RhIGJsb3F1ZWFkYVxyXG4gICAqIEBwYXJhbSBudW1lcm9Db2x1bW5hIC0gTnVtZXJvIGRlIGNvbHVtbmFcclxuICAgKiBAcmV0dXJucyBUcnVlIHNpIGxhIGNvbHVtbmEgZXN0YSBibG9xdWVhZGFcclxuICAgKi9cclxuICBwdWJsaWMgY29sdW1uYUJsb3F1ZWFkYShudW1lcm9Db2x1bW5hOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEuYmxvcXVlYXJDb2x1bW5hcyAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuZGF0YS5ibG9xdWVhckNvbHVtbmFzLnNvbWUoYyA9PiBjID09PSBudW1lcm9Db2x1bW5hKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIHZhbGlkYSBzaSB1bmEgY29sdW1uYSBlcyB2aXNpYmxlXHJcbiAgICogQHBhcmFtIG51bWVyb0NvbHVtbmEgLSBOdW1lcm8gZGUgY29sdW1uYVxyXG4gICAqIEByZXR1cm5zIFRydWUgc2kgZXMgdmlzaWJsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjb2x1bW5hVmlzaWJsZShudW1lcm9Db2x1bW5hOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhKHRoaXMuZGF0YS5vY3VsdGFyQ29sdW1uYXMgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmRhdGEub2N1bHRhckNvbHVtbmFzLnNvbWUoYyA9PiBjID09PSBudW1lcm9Db2x1bW5hKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSBhY3R1YWxpemEgbG9zIGRhdG9zIGVkaXRhZG9zIGVuIGVsIGdyaWRcclxuICAgKiBAcGFyYW0gaW5kaWNlRmlsYSAtIENvbnRpZW5lIGVsIGluZGljZSBkZSBsYSBmaWxhIGVkaXRhZGFcclxuICAgKiBAcGFyYW0gaW5kaWNlQ29sdW1uYSAtIENvbnRpZW5lIGVsIGluZGljZSBkZSBsYSBjb2x1bW5hIGVkaXRhZGFcclxuICAgKiBAcGFyYW0gdmFsb3IgLSBDb250aWVuZSBlbCB2YWxvciBkZSBlZGljacOzbiBkZSBjZWxkYVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhY3R1YWxpemFyRGF0b3MoaW5kaWNlRmlsYTogbnVtYmVyLCBpbmRpY2VDb2x1bW5hOiBudW1iZXIsIHZhbG9yOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmZpbGFzKSB7XHJcbiAgICAgIGNvbnN0IGZpbGEgPSB0aGlzLmRhdGEuZmlsYXNbaW5kaWNlRmlsYV1baW5kaWNlQ29sdW1uYV07XHJcbiAgICAgIGZpbGEuZWRpdGFkbyA9IGZpbGEudmFsb3IgIT09IHZhbG9yIHx8IGZpbGEuZWRpdGFkbztcclxuICAgICAgaWYgKGZpbGEuZWRpdGFkbykge1xyXG4gICAgICAgIGZpbGEudmFsb3IgPSB2YWxvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FtYmlhIGVsIGZvY28gZGUgbGFzIGNlbGRhc1xyXG4gICAqIEBwYXJhbSBldmVudCAtIEtleWJvYXJkRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgbW92ZXJGb2NvKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdmVyRGVDZWxkYShldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCxcclxuICAgICAgZXZlbnQua2V5LFxyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjY2VsbCcpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVhbGl6YSBlbCBtb3ZpbWllbnRvIGRlIGNlbGRhcyBwb3IgZWwgdGVjbGFkb1xyXG4gICAqIEBwYXJhbSBjb250cm9sIC0gQ29udHJvbCBxdWUgZGVzZW5jYWRlbmEgZWwgZXZlbnRvXHJcbiAgICogQHBhcmFtIGtleSAtIFRlY2xhIHF1ZSBkZXNlbmNhZGVubyBlbCBldmVudG9cclxuICAgKiBAcGFyYW0gbm9kZXNDb250cm9scyAtIENvbnRyb2xlcyBkZWwgZ3JpZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbW92ZXJEZUNlbGRhKGNvbnRyb2w6IEhUTUxJbnB1dEVsZW1lbnQsIGtleTogc3RyaW5nLCBub2Rlc0NvbnRyb2xzOiBOb2RlTGlzdCkge1xyXG4gICAgY29uc3QgaW5kZXggPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobm9kZXNDb250cm9scywgeCA9PiB7IHJldHVybiB4IH0pLmluZGV4T2YoY29udHJvbCk7XHJcbiAgICBsZXQgY2hhbmdlRm9jdXMgPSB0cnVlO1xyXG4gICAgbGV0IG5ld0luZGV4ID0gMDtcclxuICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XHJcbiAgICAgICAgY2hhbmdlRm9jdXMgPSBrZXkgPT09ICdFbnRlcicgfHxcclxuICAgICAgICAgIGNvbnRyb2wuc2VsZWN0aW9uU3RhcnQgPT09IGNvbnRyb2wudmFsdWUubGVuZ3RoO1xyXG4gICAgICAgIG5ld0luZGV4ID0gaW5kZXggKyAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxyXG4gICAgICAgIGNoYW5nZUZvY3VzID0gY29udHJvbC5zZWxlY3Rpb25TdGFydCA9PT0gMDtcclxuICAgICAgICBuZXdJbmRleCA9IGluZGV4IC0gMTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgICAgbmV3SW5kZXggPSBpbmRleCAtIHRoaXMuY29sdW1uYXNIYWJpbGl0YWRhcygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxyXG4gICAgICAgIG5ld0luZGV4ID0gaW5kZXggKyB0aGlzLmNvbHVtbmFzSGFiaWxpdGFkYXMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjaGFuZ2VGb2N1cyA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZUZvY3VzKSB7XHJcbiAgICAgIHRoaXMub2J0ZW5lckNvbnRyb2wobm9kZXNDb250cm9scywgbmV3SW5kZXgpLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdyZXNhIGVsIG51bWVybyBkZSBjb2x1bW5hcyBoYWJpbGl0YWRhcyBkZW50cm8gZGVsIGdyaWRcclxuICAgKiBAcmV0dXJucyBOdW1lcm8gZGUgY29sdW1uYXMgaGFiaWxpdGFkYXNcclxuICAgKi9cclxuICBwcml2YXRlIGNvbHVtbmFzSGFiaWxpdGFkYXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEuY29sdW1uYXMubGVuZ3RoIC0gKHRoaXMuZGF0YS5ibG9xdWVhckNvbHVtbmFzPy5sZW5ndGggPz8gMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGVsIGNvbnRyb2wgZGUgdW4gTm9kZUxpc3QgcG9yIGluZGljZVxyXG4gICAqIEBwYXJhbSBub2RlcyAtIExpc3RhIGRlIG5vZG9zXHJcbiAgICogQHBhcmFtIGluZGV4IC0gSW5kaWNlIGRlbCBjb250cm9sXHJcbiAgICogQHJldHVybnMgQ29udHJvbCBkZWwgaW5kaWNlIGVzcGVjaWZpY2Fkb1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb2J0ZW5lckNvbnRyb2wobm9kZXM6IE5vZGVMaXN0LCBpbmRleDogbnVtYmVyKTogSFRNTEVsZW1lbnQge1xyXG4gICAgcmV0dXJuIG5vZGVzLml0ZW0oaW5kZXgpIGFzIEhUTUxFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzY2FyZ2EgbG9zIGRhdG9zIGNvbnRlbmlkb3MgZW4gZWwgR3JpZCBjb21vIHVuIENTVlxyXG4gICAqIEBwYXJhbSBhcmNoaXZvIC0gTm9tYnJlIGRlbCBhcmNoaXZvXHJcbiAgICovXHJcbiAgcHVibGljIGRlc2NhcmdhckNzdihhcmNoaXZvOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGEuZmlsYXMubWFwKChmOiBBcnJheTxDZWxsPikgPT4geyByZXR1cm4gZi5maWx0ZXIoKGMsaSkgPT4gKGMuc2VyaWFsaXphYmxlID8/IHRydWUpICYmIHRoaXMuY29sdW1uYVZpc2libGUoaSkpLm1hcCgoYzogQ2VsbCkgPT4gYy52YWxvcik7IH0pLmZpbHRlcihkID0+IGQubGVuZ3RoID4gMCk7XHJcbiAgICBkYXRhLnVuc2hpZnQodGhpcy5kYXRhLmNvbHVtbmFzLmZpbHRlcigoYyxpKSA9PiAoYy5zZXJpYWxpemFibGUgPz8gdHJ1ZSkgJiYgdGhpcy5jb2x1bW5hVmlzaWJsZShpKSkubWFwKChjOiBDZWxsKSA9PiBjLnZhbG9yKSk7XHJcbiAgICB0aGlzLmNzdi5kZXNjYXJnYXJDc3YoYXJjaGl2bywgZGF0YSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8IS0tIENvbnRlbmVkb3IgcHJpbmNpcGFsIGRlbCBncmlkIC0tPlxyXG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgI3Njcm9sbFZpZXdwb3J0IGl0ZW1TaXplPVwiMjVcIj5cclxuICAgIDwhLS0gVGFibGEgZGUgZGF0b3MgLS0+XHJcbiAgICA8dGFibGUgKGtleWRvd24pPVwibW92ZXJGb2NvKCRldmVudClcIj5cclxuICAgICAgPGNhcHRpb24+IFJlZGlHcmlkQ29tcG9uZW50IDwvY2FwdGlvbj5cclxuICAgICAgPCEtLSBDYWJlY2VyYSBkZSB0YWJsYSAtLT5cclxuICAgICAgPHRoZWFkPlxyXG4gICAgICAgIDwhLS0gRGVmaW5pY2nDs24gZGUgZW5jYWJlemFkb3MgLS0+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgW3N0eWxlLnRvcF09XCJpbnZlcnRpclViaWNhY2lvblwiICpuZ0lmPVwiZW51bWVyYXJcIj5cclxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIFtzdHlsZS50b3BdPVwiaW52ZXJ0aXJVYmljYWNpb25cIiAqbmdGb3I9XCJsZXQgY29sIG9mIGRhdGEuY29sdW1uYXM7IGxldCBjb2xOdW09aW5kZXhcIlxyXG4gICAgICAgICAgICBbY2xhc3Mub2N1bHRvXT1cIiFjb2x1bW5hVmlzaWJsZShjb2xOdW0pXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbHVtbmFCbG9xdWVhZGEoY29sTnVtKVwiIGNsYXNzPVwibG9ja0ljb25cIj5sb2NrPC9tYXQtaWNvbj57e2NvbC52YWxvcn19XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGhlYWQ+XHJcbiAgICAgIDwhLS0gQ3VlcnBvIGRlIHRhYmxhIC0tPlxyXG4gICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBkYXRhLmZpbGFzO2xldCByb3dOdW0gPSBpbmRleFwiPlxyXG4gICAgICAgICAgPCEtLSBDb250YWRvciBkZSBmaWxhIC0tPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwiZW51bWVyYXJcIj4ge3sgcm93TnVtICsgMSB9fSA8L3RkPlxyXG4gICAgICAgICAgPCEtLSBDZWxkYXMgZGUgZGF0b3MgLS0+XHJcbiAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93OyBsZXQgY29sTnVtPWluZGV4O1wiIFtjbGFzcy53YXJuXT1cImNlbGwuZXNWYWxpZG8gIT09IHVuZGVmaW5lZCAmJiAhY2VsbC5lc1ZhbGlkb1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5lZGl0YWRvXT1cImNlbGwuZWRpdGFkb1wiIFtjbGFzcy5ibG9xdWVhZG9dPVwiY2VsbC5ibG9xdWVhZG8gfHwgY29sdW1uYUJsb3F1ZWFkYShjb2xOdW0pXCJcclxuICAgICAgICAgICAgW2NsYXNzLm9jdWx0b109XCIhY29sdW1uYVZpc2libGUoY29sTnVtKVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2VsbFwiPiBWYWx1ZSA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8IS0tIENhbXBvIGVkaXRhYmxlIC0tPlxyXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJlZGl0YWJsZSAmJiAhY2VsbC5ibG9xdWVhZG8gJiYgIWNvbHVtbmFCbG9xdWVhZGEoY29sTnVtKVwiIHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cImNlbGwudmFsb3JcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJjZWxsXCIgaWQ9XCJjZWxsXCIgKGZvY3Vzb3V0KT1cImFjdHVhbGl6YXJEYXRvcyhyb3dOdW0sY29sTnVtLCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZWRpdGFkb109XCJjZWxsLmVkaXRhZG9cIiAvPlxyXG4gICAgICAgICAgICB7eyAhZWRpdGFibGUgfHwgY2VsbC5ibG9xdWVhZG8gfHwgY29sdW1uYUJsb3F1ZWFkYShjb2xOdW0pID8gY2VsbC52YWxvciA6ICcnIH19XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGJvZHk+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG48L2Rpdj4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWRpLWNvcmUvUmVkaUdyaWQvc3JjL21vZHVsZXMvcmVkaS1ncmlkL3JlZGktZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVkaS1jb3JlL1JlZGlHcmlkL3NyYy9tb2R1bGVzL3JlZGktZ3JpZC9yZWRpLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFNcEU7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUI7OztPQUdHO0lBQ0gsWUFBb0IsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFRRDs7O09BR0c7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUks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LE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FyS1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsaUtBMENqQix3QkFBd0IsZ0RDMURyQyw4NkRBcUNNOzsyRkRyQk8saUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7K0VBU2QsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBMkJDLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLWdyaWQnO1xyXG5pbXBvcnQgeyBDc3ZTZXJ2aWNlIH0gZnJvbSAnbmd4LXJlZGktY29yZS9IZWxwZXInO1xyXG5pbXBvcnQgeyBDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMvY2VsbCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcXVlIHJlcHJlc2VudGEgbG9zIGRhdG9zIGVuIHVuIGdyaWRcclxuICogQGRlY29yYXRvcnMgYEBDb21wb25lbnQoKWBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmVkaS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVkaS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWRpLWdyaWQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWRpR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqXHJcbiAgICogRGF0b3MgZGUgb3JpZ2VuIHkgY29uZmlndXJhY2nDs24gZGVsIGdyaWRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhOiBEYXRhR3JpZDtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNpIGVsIGdyaWQgc2UgZW51bWVyYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVudW1lcmFyOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2kgZWwgZ3JpZCBlcyBlZGl0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVkaXRhYmxlOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvciBkZWwgZ3JpZFxyXG4gICAqIEBwYXJhbSBjc3YgLSBTZXJ2aWNpbyBDU1ZcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNzdjogQ3N2U2VydmljZSkge1xyXG4gICAgdGhpcy5kYXRhID0ge30gYXMgRGF0YUdyaWQ7XHJcbiAgICB0aGlzLmVudW1lcmFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRhYmxlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRlIGluaWNpYWxpemFjacOzbiBkZSB2aXN1YWxpemFjacOzblxyXG4gICAqL1xyXG4gIGNvbmZpZ0ZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZWRpdGFibGUgPSB0aGlzLmRhdGEuZWRpdGFibGUgfHwgZmFsc2U7XHJcbiAgICAgIHRoaXMuZW51bWVyYXIgPSB0aGlzLmRhdGEuZW51bWVyYWJsZSB8fCBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZpZXdQb3J0IHBhcmEgZWwgc2Nyb2xsIHZpcnR1YWxcclxuICAgKi9cclxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHZpZXdQb3J0ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSBpbnZpZXJ0ZSBsYSB1YmljYWNpw7NuIGRlbCBvYmpldG8gcmVuZGVyaXphZG9cclxuICAgKiBAcmV0dXJucyBSZWdyZXNhIGxhIHViaWNhY2nDs24gaW52ZXJ0aWRhIGVuIG1vZG8gdGV4dG9cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGludmVydGlyVWJpY2FjaW9uKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMudmlld1BvcnQgfHwgIXRoaXMudmlld1BvcnRbJ19yZW5kZXJlZENvbnRlbnRPZmZzZXQnXSkge1xyXG4gICAgICByZXR1cm4gJy0wcHgnO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy52aWV3UG9ydFsnX3JlbmRlcmVkQ29udGVudE9mZnNldCddO1xyXG4gICAgcmV0dXJuIGAtJHtvZmZzZXR9cHhgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgdmFsaWRhIHNpIHVuYSBjb2x1bW5hIGVzdGEgYmxvcXVlYWRhXHJcbiAgICogQHBhcmFtIG51bWVyb0NvbHVtbmEgLSBOdW1lcm8gZGUgY29sdW1uYVxyXG4gICAqIEByZXR1cm5zIFRydWUgc2kgbGEgY29sdW1uYSBlc3RhIGJsb3F1ZWFkYVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjb2x1bW5hQmxvcXVlYWRhKG51bWVyb0NvbHVtbmE6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5ibG9xdWVhckNvbHVtbmFzICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5kYXRhLmJsb3F1ZWFyQ29sdW1uYXMuc29tZShjID0+IGMgPT09IG51bWVyb0NvbHVtbmEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgdmFsaWRhIHNpIHVuYSBjb2x1bW5hIGVzIHZpc2libGVcclxuICAgKiBAcGFyYW0gbnVtZXJvQ29sdW1uYSAtIE51bWVybyBkZSBjb2x1bW5hXHJcbiAgICogQHJldHVybnMgVHJ1ZSBzaSBlcyB2aXNpYmxlXHJcbiAgICovXHJcbiAgcHVibGljIGNvbHVtbmFWaXNpYmxlKG51bWVyb0NvbHVtbmE6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEodGhpcy5kYXRhLm9jdWx0YXJDb2x1bW5hcyAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuZGF0YS5vY3VsdGFyQ29sdW1uYXMuc29tZShjID0+IGMgPT09IG51bWVyb0NvbHVtbmEpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIGFjdHVhbGl6YSBsb3MgZGF0b3MgZWRpdGFkb3MgZW4gZWwgZ3JpZFxyXG4gICAqIEBwYXJhbSBpbmRpY2VGaWxhIC0gQ29udGllbmUgZWwgaW5kaWNlIGRlIGxhIGZpbGEgZWRpdGFkYVxyXG4gICAqIEBwYXJhbSBpbmRpY2VDb2x1bW5hIC0gQ29udGllbmUgZWwgaW5kaWNlIGRlIGxhIGNvbHVtbmEgZWRpdGFkYVxyXG4gICAqIEBwYXJhbSB2YWxvciAtIENvbnRpZW5lIGVsIHZhbG9yIGRlIGVkaWNpw7NuIGRlIGNlbGRhXHJcbiAgICovXHJcbiAgcHVibGljIGFjdHVhbGl6YXJEYXRvcyhpbmRpY2VGaWxhOiBudW1iZXIsIGluZGljZUNvbHVtbmE6IG51bWJlciwgdmFsb3I6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEuZmlsYXMpIHtcclxuICAgICAgY29uc3QgZmlsYSA9IHRoaXMuZGF0YS5maWxhc1tpbmRpY2VGaWxhXVtpbmRpY2VDb2x1bW5hXTtcclxuICAgICAgZmlsYS5lZGl0YWRvID0gZmlsYS52YWxvciAhPT0gdmFsb3IgfHwgZmlsYS5lZGl0YWRvO1xyXG4gICAgICBpZiAoZmlsYS5lZGl0YWRvKSB7XHJcbiAgICAgICAgZmlsYS52YWxvciA9IHZhbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW1iaWEgZWwgZm9jbyBkZSBsYXMgY2VsZGFzXHJcbiAgICogQHBhcmFtIGV2ZW50IC0gS2V5Ym9hcmRFdmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBtb3ZlckZvY28oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMubW92ZXJEZUNlbGRhKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50LFxyXG4gICAgICBldmVudC5rZXksXHJcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNjZWxsJykpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFsaXphIGVsIG1vdmltaWVudG8gZGUgY2VsZGFzIHBvciBlbCB0ZWNsYWRvXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBDb250cm9sIHF1ZSBkZXNlbmNhZGVuYSBlbCBldmVudG9cclxuICAgKiBAcGFyYW0ga2V5IC0gVGVjbGEgcXVlIGRlc2VuY2FkZW5vIGVsIGV2ZW50b1xyXG4gICAqIEBwYXJhbSBub2Rlc0NvbnRyb2xzIC0gQ29udHJvbGVzIGRlbCBncmlkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtb3ZlckRlQ2VsZGEoY29udHJvbDogSFRNTElucHV0RWxlbWVudCwga2V5OiBzdHJpbmcsIG5vZGVzQ29udHJvbHM6IE5vZGVMaXN0KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChub2Rlc0NvbnRyb2xzLCB4ID0+IHsgcmV0dXJuIHggfSkuaW5kZXhPZihjb250cm9sKTtcclxuICAgIGxldCBjaGFuZ2VGb2N1cyA9IHRydWU7XHJcbiAgICBsZXQgbmV3SW5kZXggPSAwO1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICBjaGFuZ2VGb2N1cyA9IGtleSA9PT0gJ0VudGVyJyB8fFxyXG4gICAgICAgICAgY29udHJvbC5zZWxlY3Rpb25TdGFydCA9PT0gY29udHJvbC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgICAgbmV3SW5kZXggPSBpbmRleCArIDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgY2hhbmdlRm9jdXMgPSBjb250cm9sLnNlbGVjdGlvblN0YXJ0ID09PSAwO1xyXG4gICAgICAgIG5ld0luZGV4ID0gaW5kZXggLSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICBuZXdJbmRleCA9IGluZGV4IC0gdGhpcy5jb2x1bW5hc0hhYmlsaXRhZGFzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgbmV3SW5kZXggPSBpbmRleCArIHRoaXMuY29sdW1uYXNIYWJpbGl0YWRhcygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNoYW5nZUZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlRm9jdXMpIHtcclxuICAgICAgdGhpcy5vYnRlbmVyQ29udHJvbChub2Rlc0NvbnRyb2xzLCBuZXdJbmRleCkuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZ3Jlc2EgZWwgbnVtZXJvIGRlIGNvbHVtbmFzIGhhYmlsaXRhZGFzIGRlbnRybyBkZWwgZ3JpZFxyXG4gICAqIEByZXR1cm5zIE51bWVybyBkZSBjb2x1bW5hcyBoYWJpbGl0YWRhc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY29sdW1uYXNIYWJpbGl0YWRhcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5jb2x1bW5hcy5sZW5ndGggLSAodGhpcy5kYXRhLmJsb3F1ZWFyQ29sdW1uYXM/Lmxlbmd0aCA/PyAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgY29udHJvbCBkZSB1biBOb2RlTGlzdCBwb3IgaW5kaWNlXHJcbiAgICogQHBhcmFtIG5vZGVzIC0gTGlzdGEgZGUgbm9kb3NcclxuICAgKiBAcGFyYW0gaW5kZXggLSBJbmRpY2UgZGVsIGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBDb250cm9sIGRlbCBpbmRpY2UgZXNwZWNpZmljYWRvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvYnRlbmVyQ29udHJvbChub2RlczogTm9kZUxpc3QsIGluZGV4OiBudW1iZXIpOiBIVE1MRWxlbWVudCB7XHJcbiAgICByZXR1cm4gbm9kZXMuaXRlbShpbmRleCkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXNjYXJnYSBsb3MgZGF0b3MgY29udGVuaWRvcyBlbiBlbCBHcmlkIGNvbW8gdW4gQ1NWXHJcbiAgICogQHBhcmFtIGFyY2hpdm8gLSBOb21icmUgZGVsIGFyY2hpdm9cclxuICAgKi9cclxuICBwdWJsaWMgZGVzY2FyZ2FyQ3N2KGFyY2hpdm86IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YS5maWxhcy5tYXAoKGY6IEFycmF5PENlbGw+KSA9PiB7IHJldHVybiBmLmZpbHRlcigoYyxpKSA9PiAoYy5zZXJpYWxpemFibGUgPz8gdHJ1ZSkgJiYgdGhpcy5jb2x1bW5hVmlzaWJsZShpKSkubWFwKChjOiBDZWxsKSA9PiBjLnZhbG9yKTsgfSkuZmlsdGVyKGQgPT4gZC5sZW5ndGggPiAwKTtcclxuICAgIGRhdGEudW5zaGlmdCh0aGlzLmRhdGEuY29sdW1uYXMuZmlsdGVyKChjLGkpID0+IChjLnNlcmlhbGl6YWJsZSA/PyB0cnVlKSAmJiB0aGlzLmNvbHVtbmFWaXNpYmxlKGkpKS5tYXAoKGM6IENlbGwpID0+IGMudmFsb3IpKTtcclxuICAgIHRoaXMuY3N2LmRlc2NhcmdhckNzdihhcmNoaXZvLCBkYXRhKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDwhLS0gQ29udGVuZWRvciBwcmluY2lwYWwgZGVsIGdyaWQgLS0+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCAjc2Nyb2xsVmlld3BvcnQgaXRlbVNpemU9XCIyNVwiPlxyXG4gICAgPCEtLSBUYWJsYSBkZSBkYXRvcyAtLT5cclxuICAgIDx0YWJsZSAoa2V5ZG93bik9XCJtb3ZlckZvY28oJGV2ZW50KVwiPlxyXG4gICAgICA8Y2FwdGlvbj4gUmVkaUdyaWRDb21wb25lbnQgPC9jYXB0aW9uPlxyXG4gICAgICA8IS0tIENhYmVjZXJhIGRlIHRhYmxhIC0tPlxyXG4gICAgICA8dGhlYWQ+XHJcbiAgICAgICAgPCEtLSBEZWZpbmljacOzbiBkZSBlbmNhYmV6YWRvcyAtLT5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBbc3R5bGUudG9wXT1cImludmVydGlyVWJpY2FjaW9uXCIgKm5nSWY9XCJlbnVtZXJhclwiPlxyXG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgW3N0eWxlLnRvcF09XCJpbnZlcnRpclViaWNhY2lvblwiICpuZ0Zvcj1cImxldCBjb2wgb2YgZGF0YS5jb2x1bW5hczsgbGV0IGNvbE51bT1pbmRleFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5vY3VsdG9dPVwiIWNvbHVtbmFWaXNpYmxlKGNvbE51bSlcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY29sdW1uYUJsb3F1ZWFkYShjb2xOdW0pXCIgY2xhc3M9XCJsb2NrSWNvblwiPmxvY2s8L21hdC1pY29uPnt7Y29sLnZhbG9yfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90aGVhZD5cclxuICAgICAgPCEtLSBDdWVycG8gZGUgdGFibGEgLS0+XHJcbiAgICAgIDx0Ym9keT5cclxuICAgICAgICA8dHIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIGRhdGEuZmlsYXM7bGV0IHJvd051bSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8IS0tIENvbnRhZG9yIGRlIGZpbGEgLS0+XHJcbiAgICAgICAgICA8dGQgKm5nSWY9XCJlbnVtZXJhclwiPiB7eyByb3dOdW0gKyAxIH19IDwvdGQ+XHJcbiAgICAgICAgICA8IS0tIENlbGRhcyBkZSBkYXRvcyAtLT5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3c7IGxldCBjb2xOdW09aW5kZXg7XCIgW2NsYXNzLndhcm5dPVwiY2VsbC5lc1ZhbGlkbyAhPT0gdW5kZWZpbmVkICYmICFjZWxsLmVzVmFsaWRvXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVkaXRhZG9dPVwiY2VsbC5lZGl0YWRvXCIgW2NsYXNzLmJsb3F1ZWFkb109XCJjZWxsLmJsb3F1ZWFkbyB8fCBjb2x1bW5hQmxvcXVlYWRhKGNvbE51bSlcIlxyXG4gICAgICAgICAgICBbY2xhc3Mub2N1bHRvXT1cIiFjb2x1bW5hVmlzaWJsZShjb2xOdW0pXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjZWxsXCI+IFZhbHVlIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwhLS0gQ2FtcG8gZWRpdGFibGUgLS0+XHJcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImVkaXRhYmxlICYmICFjZWxsLmJsb3F1ZWFkbyAmJiAhY29sdW1uYUJsb3F1ZWFkYShjb2xOdW0pXCIgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwiY2VsbC52YWxvclwiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNlbGxcIiBpZD1cImNlbGxcIiAoZm9jdXNvdXQpPVwiYWN0dWFsaXphckRhdG9zKHJvd051bSxjb2xOdW0sJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5lZGl0YWRvXT1cImNlbGwuZWRpdGFkb1wiIC8+XHJcbiAgICAgICAgICAgIHt7ICFlZGl0YWJsZSB8fCBjZWxsLmJsb3F1ZWFkbyB8fCBjb2x1bW5hQmxvcXVlYWRhKGNvbE51bSkgPyBjZWxsLnZhbG9yIDogJycgfX1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -213,6 +213,27 @@ class QueryFiltersService {
|
|
|
213
213
|
}
|
|
214
214
|
return filter;
|
|
215
215
|
}
|
|
216
|
+
generateFilter(url) {
|
|
217
|
+
if (!url) {
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
220
|
+
let params = url.split('&')
|
|
221
|
+
.map(p => {
|
|
222
|
+
let data = p.split('=');
|
|
223
|
+
return {
|
|
224
|
+
key: data[0],
|
|
225
|
+
value: data[1] ?? ''
|
|
226
|
+
};
|
|
227
|
+
});
|
|
228
|
+
return {
|
|
229
|
+
seleccionarTodo: params.some(p => p.key === 'seleccionar' && p.value === ''),
|
|
230
|
+
seleccionados: params.find(p => p.key === 'seleccionar')?.value.split(',') ?? [],
|
|
231
|
+
deseleccionados: params.find(p => p.key === 'deseleccionar')?.value.split(',') ?? [],
|
|
232
|
+
eliminados: params.find(p => p.key === 'eliminar')?.value.split(',') ?? [],
|
|
233
|
+
filtrados: params.find(p => p.key === 'filtrar')?.value?.split(',') ?? [],
|
|
234
|
+
servicio: params.find(p => p.key === 'bagDataSubject')?.value ?? '',
|
|
235
|
+
};
|
|
236
|
+
}
|
|
216
237
|
/**
|
|
217
238
|
* Obtiene los datos de los parámetros establecidos
|
|
218
239
|
* @param {Params} param - Parámetros
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-redi-core-Helper.mjs","sources":["../../../projects/ngx-redi-core/Helper/src/helpers/csv.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/data-subject.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/bag-data-subject.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/query-filters.service.ts","../../../projects/ngx-redi-core/Helper/ngx-redi-core-Helper.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n/**\r\n * Servicio que provee métodos para trabajar con datos CSV\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsvService {\r\n /**\r\n * Genera el texto CSV a partir de un archivo\r\n * @param data- Datos a construir\r\n * @returns CSV texto\r\n */\r\n public generarCsv<T extends {}>(data: Array<T>): string {\r\n const datos = data.map(d => {\r\n return Object.values(d)\r\n .filter(p => this.tipoSerializable(p))\r\n .map(v => (v as string).includes(',') ? `\"${v}\"` : v);\r\n });\r\n return datos.map(d => { return Object.values(d).join(','); }).join('\\n');\r\n }\r\n\r\n /**\r\n * Método que indica si la propiedad es serializable\r\n * @param propiedad - Propiedad a validar\r\n * @returns True si es una propiedad serializable\r\n */\r\n private tipoSerializable(propiedad: unknown): boolean {\r\n return typeof (propiedad) !== 'object' &&\r\n typeof (propiedad) !== 'function';\r\n }\r\n\r\n /**\r\n * Descarga el CSV a partir de los datos establecidos\r\n * @param archivo - Nombre del archivo a descargar\r\n * @param data - Arreglo de datos a descargar\r\n */\r\n public descargarCsv<T extends {}>(archivo: string, data: Array<T>): void {\r\n const blob = new Blob([BOM_CSV, this.generarCsv(data)], { type: TYPE_CSV });\r\n const link = this.generarLink(archivo, blob);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n /**\r\n * Genera el link para el blob y archivo establecidos\r\n * @param archivo - Nombre del archivo a descargar\r\n * @param blob - Contenido del blob\r\n * @returns link\r\n */\r\n private generarLink(archivo: string, blob: Blob): HTMLAnchorElement {\r\n const link = document.createElement('a') as HTMLAnchorElement;\r\n if (link.download !== undefined) {\r\n link.setAttribute('href', URL.createObjectURL(blob));\r\n link.setAttribute('download', archivo);\r\n link.style.visibility = 'hidden';\r\n }\r\n return link;\r\n }\r\n\r\n}\r\n\r\n/** Tipo MIME CSV + Encode */\r\nconst TYPE_CSV = 'text/csv;charset=utf-8;';\r\n/** BOM CSV */\r\nconst BOM_CSV = new Uint8Array([0xEF, 0xBB, 0xBF]);\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DataSubject } from '../models/interfaces/data-subject.interface';\r\n\r\n/**\r\n * Servicio para compartir datos\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataSubjectService<T> implements DataSubject<T> {\r\n /**\r\n * Crea un nuevo servicio de Datos compartidos\r\n */\r\n constructor() {\r\n this._data = undefined as T;\r\n this.subject = new Subject();\r\n }\r\n\r\n /**\r\n * Contiene el subject que emite datos\r\n */\r\n private readonly subject: Subject<T>;\r\n\r\n /**\r\n * Datos internos\r\n */\r\n private _data: T;\r\n\r\n /**\r\n * Emite los datos a los subscriptores\r\n * @param data Datos a emitir\r\n */\r\n public broadcast(data: T): void {\r\n this._data = data;\r\n this.subject.next(data);\r\n }\r\n\r\n /**\r\n * Contiene el ultimo dato emitido\r\n */\r\n public get data(): T {\r\n return this._data;\r\n }\r\n\r\n /**\r\n * Observable que notifica los cambios\r\n */\r\n public get observer(): Observable<T> {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataSubjectService } from './data-subject.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Servicio para compartir datos entre micro-fronts\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BagDataSubjectService {\r\n\r\n /**\r\n * Crea un nuevo servicio de datos compartido\r\n */\r\n constructor() {\r\n this.subjects = {};\r\n }\r\n\r\n /**\r\n * Obtiene el subjet dada un identificador\r\n * @param subject Identificador\r\n * @returns Servicio de datos\r\n */\r\n public getSubject<T>(subject: string): DataSubjectService<T> {\r\n let result = Reflect.get(this.subjects, subject);\r\n if (!result) {\r\n result = new DataSubjectService<T>();\r\n Reflect.defineProperty(this.subjects, subject, { value: result });\r\n }\r\n return result as DataSubjectService<T>;\r\n }\r\n\r\n /**\r\n * Asigna los datos a un servicio mediante su identificador\r\n * @param subject Identificador del servicio\r\n * @param data Datos a emitir\r\n */\r\n public setData<T>(subject: string, data: T): void {\r\n return this.getSubject<T>(subject).broadcast(data);\r\n }\r\n\r\n /**\r\n * Obtiene el ultimo dato del servicio especificando su identificador\r\n * @param subject Identificador del servicio\r\n * @returns Dato\r\n */\r\n public getData<T>(subject: string): T {\r\n return this.getSubject(subject).data as T;\r\n }\r\n\r\n /**\r\n * Obtiene el observable especificando el servicio\r\n * @param subject Identificador del servicio\r\n * @returns Observable<T>\r\n */\r\n public getObservable<T>(subject: string): Observable<T> {\r\n return this.getSubject(subject).observer as Observable<T>;\r\n }\r\n\r\n /**\r\n * Objeto contenedor de los subjects\r\n */\r\n private subjects: object;\r\n}","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { QueryFilters } from '../models/interfaces/query-filters';\r\nimport { map, Observable } from 'rxjs';\r\n\r\n/**\r\n * Servicio de filtro de datos para query params\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryFiltersService {\r\n /**\r\n * Crea una nueva instancia de QueryFilter\r\n * @param {ActivatedRoute} rutaActiva - Servicio de ruta\r\n */\r\n constructor(@Inject(ActivatedRoute) private readonly rutaActiva: ActivatedRoute) {\r\n }\r\n\r\n /**\r\n * Obtiene los filtros de la ruta\r\n * @returns Observable<QueryFilters>\r\n */\r\n public getQueryFilters(): Observable<QueryFilters> {\r\n return this.rutaActiva.queryParams.pipe(map(queryParam => {\r\n return {\r\n seleccionarTodo: queryParam['seleccionar'] === '',\r\n seleccionados: this.getData(queryParam, 'seleccionar'),\r\n deseleccionados: this.getData(queryParam, 'deseleccionar'),\r\n eliminados: this.getData(queryParam, 'eliminar'),\r\n filtrados: this.getData(queryParam, 'filtrar'),\r\n servicio: queryParam['bagDataSubject'] ?? ''\r\n } as QueryFilters;\r\n }));\r\n }\r\n\r\n\r\n public getSnapFilters(state: string): QueryFilters {\r\n let filter = Reflect.get(history.state, state);\r\n if (filter) {\r\n filter = {\r\n seleccionarTodo: filter.seleccionarTodo ?? false,\r\n seleccionados: filter.seleccionados ?? [],\r\n deseleccionados: filter.deseleccionados ?? [],\r\n eliminados: filter.eliminados ?? [],\r\n filtrados: filter.filtrados ?? [],\r\n servicio: filter.servicio ?? ''\r\n } as QueryFilters;\r\n }\r\n return filter;\r\n }\r\n\r\n /**\r\n * Obtiene los datos de los parámetros establecidos\r\n * @param {Params} param - Parámetros\r\n * @param {string} key - Clave del parámetro\r\n * @returns Arreglo de parámetros\r\n */\r\n private getData(param: Params, key: string): Array<string> {\r\n return param[key]?.split(',') ?? [];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-redi-core-Helper.mjs","sources":["../../../projects/ngx-redi-core/Helper/src/helpers/csv.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/data-subject.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/bag-data-subject.service.ts","../../../projects/ngx-redi-core/Helper/src/helpers/query-filters.service.ts","../../../projects/ngx-redi-core/Helper/ngx-redi-core-Helper.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n/**\r\n * Servicio que provee métodos para trabajar con datos CSV\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsvService {\r\n /**\r\n * Genera el texto CSV a partir de un archivo\r\n * @param data- Datos a construir\r\n * @returns CSV texto\r\n */\r\n public generarCsv<T extends {}>(data: Array<T>): string {\r\n const datos = data.map(d => {\r\n return Object.values(d)\r\n .filter(p => this.tipoSerializable(p))\r\n .map(v => (v as string).includes(',') ? `\"${v}\"` : v);\r\n });\r\n return datos.map(d => { return Object.values(d).join(','); }).join('\\n');\r\n }\r\n\r\n /**\r\n * Método que indica si la propiedad es serializable\r\n * @param propiedad - Propiedad a validar\r\n * @returns True si es una propiedad serializable\r\n */\r\n private tipoSerializable(propiedad: unknown): boolean {\r\n return typeof (propiedad) !== 'object' &&\r\n typeof (propiedad) !== 'function';\r\n }\r\n\r\n /**\r\n * Descarga el CSV a partir de los datos establecidos\r\n * @param archivo - Nombre del archivo a descargar\r\n * @param data - Arreglo de datos a descargar\r\n */\r\n public descargarCsv<T extends {}>(archivo: string, data: Array<T>): void {\r\n const blob = new Blob([BOM_CSV, this.generarCsv(data)], { type: TYPE_CSV });\r\n const link = this.generarLink(archivo, blob);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n /**\r\n * Genera el link para el blob y archivo establecidos\r\n * @param archivo - Nombre del archivo a descargar\r\n * @param blob - Contenido del blob\r\n * @returns link\r\n */\r\n private generarLink(archivo: string, blob: Blob): HTMLAnchorElement {\r\n const link = document.createElement('a') as HTMLAnchorElement;\r\n if (link.download !== undefined) {\r\n link.setAttribute('href', URL.createObjectURL(blob));\r\n link.setAttribute('download', archivo);\r\n link.style.visibility = 'hidden';\r\n }\r\n return link;\r\n }\r\n\r\n}\r\n\r\n/** Tipo MIME CSV + Encode */\r\nconst TYPE_CSV = 'text/csv;charset=utf-8;';\r\n/** BOM CSV */\r\nconst BOM_CSV = new Uint8Array([0xEF, 0xBB, 0xBF]);\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DataSubject } from '../models/interfaces/data-subject.interface';\r\n\r\n/**\r\n * Servicio para compartir datos\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataSubjectService<T> implements DataSubject<T> {\r\n /**\r\n * Crea un nuevo servicio de Datos compartidos\r\n */\r\n constructor() {\r\n this._data = undefined as T;\r\n this.subject = new Subject();\r\n }\r\n\r\n /**\r\n * Contiene el subject que emite datos\r\n */\r\n private readonly subject: Subject<T>;\r\n\r\n /**\r\n * Datos internos\r\n */\r\n private _data: T;\r\n\r\n /**\r\n * Emite los datos a los subscriptores\r\n * @param data Datos a emitir\r\n */\r\n public broadcast(data: T): void {\r\n this._data = data;\r\n this.subject.next(data);\r\n }\r\n\r\n /**\r\n * Contiene el ultimo dato emitido\r\n */\r\n public get data(): T {\r\n return this._data;\r\n }\r\n\r\n /**\r\n * Observable que notifica los cambios\r\n */\r\n public get observer(): Observable<T> {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataSubjectService } from './data-subject.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Servicio para compartir datos entre micro-fronts\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BagDataSubjectService {\r\n\r\n /**\r\n * Crea un nuevo servicio de datos compartido\r\n */\r\n constructor() {\r\n this.subjects = {};\r\n }\r\n\r\n /**\r\n * Obtiene el subjet dada un identificador\r\n * @param subject Identificador\r\n * @returns Servicio de datos\r\n */\r\n public getSubject<T>(subject: string): DataSubjectService<T> {\r\n let result = Reflect.get(this.subjects, subject);\r\n if (!result) {\r\n result = new DataSubjectService<T>();\r\n Reflect.defineProperty(this.subjects, subject, { value: result });\r\n }\r\n return result as DataSubjectService<T>;\r\n }\r\n\r\n /**\r\n * Asigna los datos a un servicio mediante su identificador\r\n * @param subject Identificador del servicio\r\n * @param data Datos a emitir\r\n */\r\n public setData<T>(subject: string, data: T): void {\r\n return this.getSubject<T>(subject).broadcast(data);\r\n }\r\n\r\n /**\r\n * Obtiene el ultimo dato del servicio especificando su identificador\r\n * @param subject Identificador del servicio\r\n * @returns Dato\r\n */\r\n public getData<T>(subject: string): T {\r\n return this.getSubject(subject).data as T;\r\n }\r\n\r\n /**\r\n * Obtiene el observable especificando el servicio\r\n * @param subject Identificador del servicio\r\n * @returns Observable<T>\r\n */\r\n public getObservable<T>(subject: string): Observable<T> {\r\n return this.getSubject(subject).observer as Observable<T>;\r\n }\r\n\r\n /**\r\n * Objeto contenedor de los subjects\r\n */\r\n private subjects: object;\r\n}","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { QueryFilters } from '../models/interfaces/query-filters';\r\nimport { map, Observable } from 'rxjs';\r\n\r\n/**\r\n * Servicio de filtro de datos para query params\r\n * @decorators `@Injectable`\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryFiltersService {\r\n /**\r\n * Crea una nueva instancia de QueryFilter\r\n * @param {ActivatedRoute} rutaActiva - Servicio de ruta\r\n */\r\n constructor(@Inject(ActivatedRoute) private readonly rutaActiva: ActivatedRoute) {\r\n }\r\n\r\n /**\r\n * Obtiene los filtros de la ruta\r\n * @returns Observable<QueryFilters>\r\n */\r\n public getQueryFilters(): Observable<QueryFilters> {\r\n return this.rutaActiva.queryParams.pipe(map(queryParam => {\r\n return {\r\n seleccionarTodo: queryParam['seleccionar'] === '',\r\n seleccionados: this.getData(queryParam, 'seleccionar'),\r\n deseleccionados: this.getData(queryParam, 'deseleccionar'),\r\n eliminados: this.getData(queryParam, 'eliminar'),\r\n filtrados: this.getData(queryParam, 'filtrar'),\r\n servicio: queryParam['bagDataSubject'] ?? ''\r\n } as QueryFilters;\r\n }));\r\n }\r\n\r\n\r\n public getSnapFilters(state: string): QueryFilters {\r\n let filter = Reflect.get(history.state, state);\r\n if (filter) {\r\n filter = {\r\n seleccionarTodo: filter.seleccionarTodo ?? false,\r\n seleccionados: filter.seleccionados ?? [],\r\n deseleccionados: filter.deseleccionados ?? [],\r\n eliminados: filter.eliminados ?? [],\r\n filtrados: filter.filtrados ?? [],\r\n servicio: filter.servicio ?? ''\r\n } as QueryFilters;\r\n }\r\n return filter;\r\n }\r\n\r\n public generateFilter(url: string): QueryFilters | undefined {\r\n if (!url) {\r\n return undefined;\r\n }\r\n let params = url.split('&')\r\n .map(p => {\r\n let data = p.split('=');\r\n return {\r\n key: data[0],\r\n value: data[1] ?? ''\r\n }\r\n });\r\n return {\r\n seleccionarTodo: params.some(p => p.key === 'seleccionar' && p.value === ''),\r\n seleccionados: params.find(p => p.key === 'seleccionar')?.value.split(',') ?? [],\r\n deseleccionados: params.find(p => p.key === 'deseleccionar')?.value.split(',') ?? [],\r\n eliminados: params.find(p => p.key === 'eliminar')?.value.split(',') ?? [],\r\n filtrados: params.find(p => p.key === 'filtrar')?.value?.split(',') ?? [],\r\n servicio: params.find(p => p.key === 'bagDataSubject')?.value ?? '',\r\n } as QueryFilters;\r\n }\r\n\r\n /**\r\n * Obtiene los datos de los parámetros establecidos\r\n * @param {Params} param - Parámetros\r\n * @param {string} key - Clave del parámetro\r\n * @returns Arreglo de parámetros\r\n */\r\n private getData(param: Params, key: string): Array<string> {\r\n return param[key]?.split(',') ?? [];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,21 +3,31 @@ import { Component, Inject, Injectable } from '@angular/core';
|
|
|
3
3
|
import * as i1$1 from '@angular/material/dialog';
|
|
4
4
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
5
5
|
import * as i1 from '@angular/router';
|
|
6
|
-
import { RouterModule } from '@angular/router';
|
|
6
|
+
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
7
|
+
import * as i2 from 'ngx-redi-core/Helper';
|
|
7
8
|
|
|
8
9
|
class RediDialogComponent {
|
|
9
|
-
constructor(data, router) {
|
|
10
|
+
constructor(data, router, queryfilter) {
|
|
10
11
|
this.data = data;
|
|
11
12
|
this.router = router;
|
|
13
|
+
this.queryfilter = queryfilter;
|
|
12
14
|
this.outlet = data.outlet;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
this.configFilters();
|
|
16
|
+
}
|
|
17
|
+
configFilters() {
|
|
18
|
+
let urlData = this.data.path.split('?');
|
|
19
|
+
let filter = this.queryfilter.generateFilter(urlData[1] ?? '');
|
|
20
|
+
this.router.events.subscribe((e) => {
|
|
21
|
+
if (e instanceof NavigationEnd) {
|
|
22
|
+
history.pushState(filter, this.data.outlet);
|
|
23
|
+
this.router.navigate([
|
|
24
|
+
{
|
|
25
|
+
...this.generateOutlets(this.data.outlet, this.generateArrayRoute(urlData[0])),
|
|
26
|
+
state: filter
|
|
27
|
+
}
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
21
31
|
}
|
|
22
32
|
ngOnDestroy() {
|
|
23
33
|
this.router.navigate([{ outlets: { rediDialog: null } }]);
|
|
@@ -27,9 +37,9 @@ class RediDialogComponent {
|
|
|
27
37
|
}
|
|
28
38
|
generateOutlets(outletName, url) {
|
|
29
39
|
let internalOutlet = `{"${outletName}":${JSON.stringify(url)}}`;
|
|
30
|
-
return { outlets: JSON.parse(internalOutlet)
|
|
40
|
+
return { outlets: JSON.parse(internalOutlet) };
|
|
31
41
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.Router }, { token: i2.QueryFiltersService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
43
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: RediDialogComponent, isStandalone: true, selector: "redi-dialog", ngImport: i0, template: "<router-outlet [name]=\"outlet\"></router-outlet>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
34
44
|
}
|
|
35
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RediDialogComponent, decorators: [{
|
|
@@ -38,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
38
48
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
39
49
|
type: Inject,
|
|
40
50
|
args: [MAT_DIALOG_DATA]
|
|
41
|
-
}] }, { type: i1.Router }] });
|
|
51
|
+
}] }, { type: i1.Router }, { type: i2.QueryFiltersService }] });
|
|
42
52
|
|
|
43
53
|
class RediDialogService {
|
|
44
54
|
constructor(dialog) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-redi-core-RediDialog.mjs","sources":["../../../projects/ngx-redi-core/RediDialog/src/components/redi-dialog/redi-dialog.component.ts","../../../projects/ngx-redi-core/RediDialog/src/components/redi-dialog/redi-dialog.component.html","../../../projects/ngx-redi-core/RediDialog/src/services/redi-dialog.service.ts","../../../projects/ngx-redi-core/RediDialog/public-api.ts","../../../projects/ngx-redi-core/RediDialog/ngx-redi-core-RediDialog.ts"],"sourcesContent":["import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\r\nimport {
|
|
1
|
+
{"version":3,"file":"ngx-redi-core-RediDialog.mjs","sources":["../../../projects/ngx-redi-core/RediDialog/src/components/redi-dialog/redi-dialog.component.ts","../../../projects/ngx-redi-core/RediDialog/src/components/redi-dialog/redi-dialog.component.html","../../../projects/ngx-redi-core/RediDialog/src/services/redi-dialog.service.ts","../../../projects/ngx-redi-core/RediDialog/public-api.ts","../../../projects/ngx-redi-core/RediDialog/ngx-redi-core-RediDialog.ts"],"sourcesContent":["import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\r\nimport { DialogData } from '../../models/dialog-data.interface';\r\nimport { QueryFiltersService } from 'ngx-redi-core/Helper';\r\nimport { state } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'redi-dialog',\r\n standalone: true,\r\n imports: [RouterModule],\r\n templateUrl: './redi-dialog.component.html',\r\n styleUrl: './redi-dialog.component.css'\r\n})\r\nexport class RediDialogComponent implements OnDestroy {\r\n public outlet: string;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) private data: DialogData,\r\n private readonly router: Router,\r\n private readonly queryfilter: QueryFiltersService) {\r\n this.outlet = data.outlet;\r\n this.configFilters();\r\n }\r\n\r\n private configFilters(): void {\r\n let urlData = this.data.path.split('?');\r\n let filter = this.queryfilter.generateFilter(urlData[1] ?? '');\r\n this.router.events.subscribe((e) => {\r\n if (e instanceof NavigationEnd) {\r\n history.pushState(filter, this.data.outlet);\r\n this.router.navigate([\r\n {\r\n ...this.generateOutlets(this.data.outlet,\r\n this.generateArrayRoute(urlData[0])),\r\n state: filter\r\n }\r\n ]);\r\n }\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.router.navigate([{ outlets: { rediDialog: null } }]);\r\n }\r\n\r\n private generateArrayRoute(url: string): Array<string> {\r\n return url?.split('/').filter(r => r !== '');\r\n }\r\n\r\n private generateOutlets(outletName: string, url: Array<string>) {\r\n let internalOutlet = `{\"${outletName}\":${JSON.stringify(url)}}`;\r\n return { outlets: JSON.parse(internalOutlet) };\r\n }\r\n}","<router-outlet [name]=\"outlet\"></router-outlet>","import { ComponentType } from '@angular/cdk/portal';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogConfig\r\n} from '@angular/material/dialog';\r\nimport { RediDialogComponent } from '../components/redi-dialog/redi-dialog.component';\r\nimport { DialogData } from '../models/dialog-data.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RediDialogService {\r\n constructor(private readonly dialog: MatDialog) { }\r\n\r\n private openDialogComponent<T>(component: ComponentType<T>, data: DialogData, config: MatDialogConfig | undefined) {\r\n return this.dialog.open(component, {\r\n ...(config ?? {}),\r\n data: data\r\n });\r\n }\r\n\r\n public openDialogRoute(dialogData: DialogData, config: MatDialogConfig | undefined) {\r\n return this.openDialogComponent(RediDialogComponent, dialogData, config);\r\n }\r\n}\r\n","// Servicios\r\nexport * from './src/services/redi-dialog.service';\r\nexport * from './src/models/dialog-data.interface';\r\nexport * from './src/components/redi-dialog/redi-dialog.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-redi-core-RediGrid.mjs","sources":["../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid/redi-grid.component.ts","../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid/redi-grid.component.html","../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid.module.ts","../../../projects/ngx-redi-core/RediGrid/ngx-redi-core-RediGrid.ts"],"sourcesContent":["import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { DataGrid } from '../../models/interfaces/data-grid';\r\nimport { CsvService } from 'ngx-redi-core/Helper';\r\nimport { Cell } from '../../models/interfaces/cell';\r\n\r\n\r\n/**\r\n * Componente que representa los datos en un grid\r\n * @decorators `@Component()`\r\n */\r\n@Component({\r\n selector: 'redi-grid',\r\n templateUrl: './redi-grid.component.html',\r\n styleUrls: ['./redi-grid.component.css']\r\n})\r\nexport class RediGridComponent implements OnInit {\r\n /**\r\n * Datos de origen y configuración del grid\r\n */\r\n @Input()\r\n public data: DataGrid;\r\n\r\n /**\r\n * Indica si el grid se enumera\r\n */\r\n @Input()\r\n public enumerar: boolean;\r\n\r\n /**\r\n * Indica si el grid es editable\r\n */\r\n @Input()\r\n public editable: boolean;\r\n\r\n /**\r\n * Constructor del grid\r\n * @param csv - Servicio CSV\r\n */\r\n constructor(private csv: CsvService) {\r\n this.data = {} as DataGrid;\r\n this.enumerar = false;\r\n this.editable = false;\r\n }\r\n\r\n /**\r\n * Método de inicialización de visualización\r\n */\r\n ngOnInit(): void {\r\n if (this.data) {\r\n this.editable = this.data.editable || false;\r\n this.enumerar = this.data.enumerable || false;\r\n }\r\n }\r\n\r\n /**\r\n * ViewPort para el scroll virtual\r\n */\r\n @ViewChild(CdkVirtualScrollViewport, { static: false })\r\n public viewPort!: CdkVirtualScrollViewport;\r\n\r\n /**\r\n * Método que invierte la ubicación del objeto renderizado\r\n * @returns Regresa la ubicación invertida en modo texto\r\n */\r\n public get invertirUbicacion(): string {\r\n if (!this.viewPort || !this.viewPort['_renderedContentOffset']) {\r\n return '-0px';\r\n }\r\n const offset = this.viewPort['_renderedContentOffset'];\r\n return `-${offset}px`;\r\n }\r\n\r\n /**\r\n * Método que valida si una columna esta bloqueada\r\n * @param numeroColumna - Numero de columna\r\n * @returns True si la columna esta bloqueada\r\n */\r\n public columnaBloqueada(numeroColumna: number): boolean {\r\n return this.data.bloquearColumnas !== undefined &&\r\n this.data.bloquearColumnas.some(c => c === numeroColumna);\r\n }\r\n\r\n /**\r\n * Método que valida si una columna es visible\r\n * @param numeroColumna - Numero de columna\r\n * @returns True si es visible\r\n */\r\n public columnaVisible(numeroColumna: number): boolean {\r\n return !(this.data.ocultarColumnas !== undefined &&\r\n this.data.ocultarColumnas.some(c => c === numeroColumna));\r\n }\r\n\r\n /**\r\n * Método que actualiza los datos editados en el grid\r\n * @param indiceFila - Contiene el indice de la fila editada\r\n * @param indiceColumna - Contiene el indice de la columna editada\r\n * @param valor - Contiene el valor de edición de celda\r\n */\r\n public actualizarDatos(indiceFila: number, indiceColumna: number, valor: string): void {\r\n if (this.data && this.data.filas) {\r\n const fila = this.data.filas[indiceFila][indiceColumna];\r\n fila.editado = fila.valor !== valor || fila.editado;\r\n if (fila.editado) {\r\n fila.valor = valor;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Cambia el foco de las celdas\r\n * @param event - KeyboardEvent\r\n */\r\n public moverFoco(event: KeyboardEvent) {\r\n this.moverDeCelda(event.target as HTMLInputElement,\r\n event.key,\r\n document.querySelectorAll('#cell'))\r\n }\r\n\r\n /**\r\n * Realiza el movimiento de celdas por el teclado\r\n * @param control - Control que desencadena el evento\r\n * @param key - Tecla que desencadeno el evento\r\n * @param nodesControls - Controles del grid\r\n */\r\n private moverDeCelda(control: HTMLInputElement, key: string, nodesControls: NodeList) {\r\n const index = Array.prototype.map.call(nodesControls, x => { return x }).indexOf(control);\r\n let changeFocus = true;\r\n let newIndex = 0;\r\n switch (key) {\r\n case 'Enter':\r\n case 'ArrowRight':\r\n changeFocus = key === 'Enter' ||\r\n control.selectionStart === control.value.length;\r\n newIndex = index + 1;\r\n break;\r\n case 'ArrowLeft':\r\n changeFocus = control.selectionStart === 0;\r\n newIndex = index - 1;\r\n break;\r\n case 'ArrowUp':\r\n newIndex = index - this.columnasHabilitadas();\r\n break;\r\n case 'ArrowDown':\r\n newIndex = index + this.columnasHabilitadas();\r\n break;\r\n default:\r\n changeFocus = false;\r\n break;\r\n }\r\n if (changeFocus) {\r\n this.obtenerControl(nodesControls, newIndex).focus();\r\n }\r\n }\r\n\r\n /**\r\n * Regresa el numero de columnas habilitadas dentro del grid\r\n * @returns Numero de columnas habilitadas\r\n */\r\n private columnasHabilitadas(): number {\r\n return this.data.columnas.length - (this.data.bloquearColumnas?.length ?? 0);\r\n }\r\n\r\n /**\r\n * Obtiene el control de un NodeList por indice\r\n * @param nodes - Lista de nodos\r\n * @param index - Indice del control\r\n * @returns Control del indice especificado\r\n */\r\n private obtenerControl(nodes: NodeList, index: number): HTMLElement {\r\n return nodes.item(index) as HTMLElement;\r\n }\r\n\r\n /**\r\n * Descarga los datos contenidos en el Grid como un CSV\r\n * @param archivo - Nombre del archivo\r\n */\r\n public descargarCsv(archivo: string) {\r\n const data = this.data.filas.map((f: Array<Cell>) => { return f.filter((c,i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c: Cell) => c.valor); }).filter(d => d.length > 0);\r\n data.unshift(this.data.columnas.filter((c,i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c: Cell) => c.valor));\r\n this.csv.descargarCsv(archivo, data);\r\n }\r\n}\r\n","<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ón 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>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RediGridComponent } from './redi-grid/redi-grid.component';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n/**\r\n * Modulo que contiene los componentes de grid\r\n * @decorators ´@NgModule´\r\n */\r\n@NgModule({\r\n declarations: [RediGridComponent],\r\n imports: [\r\n CommonModule,\r\n ScrollingModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n RediGridComponent\r\n ]\r\n})\r\nexport class RediGridModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-redi-core-RediGrid.mjs","sources":["../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid/redi-grid.component.ts","../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid/redi-grid.component.html","../../../projects/ngx-redi-core/RediGrid/src/modules/redi-grid.module.ts","../../../projects/ngx-redi-core/RediGrid/ngx-redi-core-RediGrid.ts"],"sourcesContent":["import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { DataGrid } from '../../models/interfaces/data-grid';\r\nimport { CsvService } from 'ngx-redi-core/Helper';\r\nimport { Cell } from '../../models/interfaces/cell';\r\n\r\n\r\n/**\r\n * Componente que representa los datos en un grid\r\n * @decorators `@Component()`\r\n */\r\n@Component({\r\n selector: 'redi-grid',\r\n templateUrl: './redi-grid.component.html',\r\n styleUrls: ['./redi-grid.component.css']\r\n})\r\nexport class RediGridComponent implements OnInit {\r\n /**\r\n * Datos de origen y configuración del grid\r\n */\r\n @Input()\r\n public data: DataGrid;\r\n\r\n /**\r\n * Indica si el grid se enumera\r\n */\r\n @Input()\r\n public enumerar: boolean;\r\n\r\n /**\r\n * Indica si el grid es editable\r\n */\r\n @Input()\r\n public editable: boolean;\r\n\r\n /**\r\n * Constructor del grid\r\n * @param csv - Servicio CSV\r\n */\r\n constructor(private csv: CsvService) {\r\n this.data = {} as DataGrid;\r\n this.enumerar = false;\r\n this.editable = false;\r\n }\r\n\r\n /**\r\n * Método de inicialización de visualización\r\n */\r\n configFilters(): void {\r\n if (this.data) {\r\n this.editable = this.data.editable || false;\r\n this.enumerar = this.data.enumerable || false;\r\n }\r\n }\r\n\r\n /**\r\n * ViewPort para el scroll virtual\r\n */\r\n @ViewChild(CdkVirtualScrollViewport, { static: false })\r\n public viewPort!: CdkVirtualScrollViewport;\r\n\r\n /**\r\n * Método que invierte la ubicación del objeto renderizado\r\n * @returns Regresa la ubicación invertida en modo texto\r\n */\r\n public get invertirUbicacion(): string {\r\n if (!this.viewPort || !this.viewPort['_renderedContentOffset']) {\r\n return '-0px';\r\n }\r\n const offset = this.viewPort['_renderedContentOffset'];\r\n return `-${offset}px`;\r\n }\r\n\r\n /**\r\n * Método que valida si una columna esta bloqueada\r\n * @param numeroColumna - Numero de columna\r\n * @returns True si la columna esta bloqueada\r\n */\r\n public columnaBloqueada(numeroColumna: number): boolean {\r\n return this.data.bloquearColumnas !== undefined &&\r\n this.data.bloquearColumnas.some(c => c === numeroColumna);\r\n }\r\n\r\n /**\r\n * Método que valida si una columna es visible\r\n * @param numeroColumna - Numero de columna\r\n * @returns True si es visible\r\n */\r\n public columnaVisible(numeroColumna: number): boolean {\r\n return !(this.data.ocultarColumnas !== undefined &&\r\n this.data.ocultarColumnas.some(c => c === numeroColumna));\r\n }\r\n\r\n /**\r\n * Método que actualiza los datos editados en el grid\r\n * @param indiceFila - Contiene el indice de la fila editada\r\n * @param indiceColumna - Contiene el indice de la columna editada\r\n * @param valor - Contiene el valor de edición de celda\r\n */\r\n public actualizarDatos(indiceFila: number, indiceColumna: number, valor: string): void {\r\n if (this.data && this.data.filas) {\r\n const fila = this.data.filas[indiceFila][indiceColumna];\r\n fila.editado = fila.valor !== valor || fila.editado;\r\n if (fila.editado) {\r\n fila.valor = valor;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Cambia el foco de las celdas\r\n * @param event - KeyboardEvent\r\n */\r\n public moverFoco(event: KeyboardEvent) {\r\n this.moverDeCelda(event.target as HTMLInputElement,\r\n event.key,\r\n document.querySelectorAll('#cell'))\r\n }\r\n\r\n /**\r\n * Realiza el movimiento de celdas por el teclado\r\n * @param control - Control que desencadena el evento\r\n * @param key - Tecla que desencadeno el evento\r\n * @param nodesControls - Controles del grid\r\n */\r\n private moverDeCelda(control: HTMLInputElement, key: string, nodesControls: NodeList) {\r\n const index = Array.prototype.map.call(nodesControls, x => { return x }).indexOf(control);\r\n let changeFocus = true;\r\n let newIndex = 0;\r\n switch (key) {\r\n case 'Enter':\r\n case 'ArrowRight':\r\n changeFocus = key === 'Enter' ||\r\n control.selectionStart === control.value.length;\r\n newIndex = index + 1;\r\n break;\r\n case 'ArrowLeft':\r\n changeFocus = control.selectionStart === 0;\r\n newIndex = index - 1;\r\n break;\r\n case 'ArrowUp':\r\n newIndex = index - this.columnasHabilitadas();\r\n break;\r\n case 'ArrowDown':\r\n newIndex = index + this.columnasHabilitadas();\r\n break;\r\n default:\r\n changeFocus = false;\r\n break;\r\n }\r\n if (changeFocus) {\r\n this.obtenerControl(nodesControls, newIndex).focus();\r\n }\r\n }\r\n\r\n /**\r\n * Regresa el numero de columnas habilitadas dentro del grid\r\n * @returns Numero de columnas habilitadas\r\n */\r\n private columnasHabilitadas(): number {\r\n return this.data.columnas.length - (this.data.bloquearColumnas?.length ?? 0);\r\n }\r\n\r\n /**\r\n * Obtiene el control de un NodeList por indice\r\n * @param nodes - Lista de nodos\r\n * @param index - Indice del control\r\n * @returns Control del indice especificado\r\n */\r\n private obtenerControl(nodes: NodeList, index: number): HTMLElement {\r\n return nodes.item(index) as HTMLElement;\r\n }\r\n\r\n /**\r\n * Descarga los datos contenidos en el Grid como un CSV\r\n * @param archivo - Nombre del archivo\r\n */\r\n public descargarCsv(archivo: string) {\r\n const data = this.data.filas.map((f: Array<Cell>) => { return f.filter((c,i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c: Cell) => c.valor); }).filter(d => d.length > 0);\r\n data.unshift(this.data.columnas.filter((c,i) => (c.serializable ?? true) && this.columnaVisible(i)).map((c: Cell) => c.valor));\r\n this.csv.descargarCsv(archivo, data);\r\n }\r\n}\r\n","<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ón 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>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RediGridComponent } from './redi-grid/redi-grid.component';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n/**\r\n * Modulo que contiene los componentes de grid\r\n * @decorators ´@NgModule´\r\n */\r\n@NgModule({\r\n declarations: [RediGridComponent],\r\n imports: [\r\n CommonModule,\r\n ScrollingModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n RediGridComponent\r\n ]\r\n})\r\nexport class RediGridModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-redi-core",
|
|
3
|
-
"version": "18.1.
|
|
3
|
+
"version": "18.1.24",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.0.0",
|
|
6
6
|
"@angular/core": "^18.0.0",
|
|
@@ -35,12 +35,6 @@
|
|
|
35
35
|
"esm": "./esm2022/RediDialog/ngx-redi-core-RediDialog.mjs",
|
|
36
36
|
"default": "./fesm2022/ngx-redi-core-RediDialog.mjs"
|
|
37
37
|
},
|
|
38
|
-
"./RediGrid": {
|
|
39
|
-
"types": "./RediGrid/index.d.ts",
|
|
40
|
-
"esm2022": "./esm2022/RediGrid/ngx-redi-core-RediGrid.mjs",
|
|
41
|
-
"esm": "./esm2022/RediGrid/ngx-redi-core-RediGrid.mjs",
|
|
42
|
-
"default": "./fesm2022/ngx-redi-core-RediGrid.mjs"
|
|
43
|
-
},
|
|
44
38
|
"./RediDragDrop": {
|
|
45
39
|
"types": "./RediDragDrop/index.d.ts",
|
|
46
40
|
"esm2022": "./esm2022/RediDragDrop/ngx-redi-core-RediDragDrop.mjs",
|
|
@@ -53,6 +47,12 @@
|
|
|
53
47
|
"esm": "./esm2022/RediTable/ngx-redi-core-RediTable.mjs",
|
|
54
48
|
"default": "./fesm2022/ngx-redi-core-RediTable.mjs"
|
|
55
49
|
},
|
|
50
|
+
"./RediGrid": {
|
|
51
|
+
"types": "./RediGrid/index.d.ts",
|
|
52
|
+
"esm2022": "./esm2022/RediGrid/ngx-redi-core-RediGrid.mjs",
|
|
53
|
+
"esm": "./esm2022/RediGrid/ngx-redi-core-RediGrid.mjs",
|
|
54
|
+
"default": "./fesm2022/ngx-redi-core-RediGrid.mjs"
|
|
55
|
+
},
|
|
56
56
|
"./Security": {
|
|
57
57
|
"types": "./Security/index.d.ts",
|
|
58
58
|
"esm2022": "./esm2022/Security/ngx-redi-core-Security.mjs",
|