@esfaenza/es-table 11.2.122 → 11.2.123
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/bundles/esfaenza-es-table.umd.js +471 -263
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/bundles/esfaenza-es-table.umd.min.js +1 -1
- package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
- package/esfaenza-es-table.d.ts +8 -4
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/esfaenza-es-table.js +9 -5
- package/esm2015/lib/components/es-table/es_table.component.js +145 -79
- package/esm2015/lib/components/es-td/es_td.component.js +10 -52
- package/esm2015/lib/components/es-th/es_th.component.js +2 -2
- package/esm2015/lib/components/pipes/est-renderer.pipe.js +36 -0
- package/esm2015/lib/components/pipes/est-routerlink.pipe.js +37 -0
- package/esm2015/lib/components/pipes/est_editor.pipe.js +36 -0
- package/esm2015/lib/core/CopyPasteDetector.js +4 -2
- package/esm2015/lib/core/Logger.js +23 -0
- package/esm2015/lib/core/handlers/ColumnMetadataHandler.js +14 -12
- package/esm2015/lib/core/handlers/DynamicModeHandler.js +59 -37
- package/esm2015/lib/core/handlers/SelectionHandler.js +46 -50
- package/esm2015/lib/core/handlers/UtilitiesHandler.js +2 -5
- package/esm2015/lib/directives/es_th.directive.js +9 -2
- package/esm2015/lib/domain/externals/EsTableColumnsDefinition.js +4 -3
- package/esm2015/lib/domain/externals/ItemPropEditableReference.js +1 -1
- package/esm2015/lib/domain/internals/EsTableColumn.js +2 -2
- package/esm2015/lib/domain/internals/PagerInfos.js +15 -0
- package/esm2015/lib/domain/internals/ThGroup.js +2 -0
- package/esm2015/lib/es-table.module.js +42 -19
- package/fesm2015/esfaenza-es-table.js +451 -251
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/components/es-table/es_table.component.d.ts +55 -60
- package/lib/components/es-td/es_td.component.d.ts +6 -34
- package/lib/components/pipes/est-renderer.pipe.d.ts +12 -0
- package/lib/components/pipes/est-routerlink.pipe.d.ts +17 -0
- package/lib/components/pipes/est_editor.pipe.d.ts +12 -0
- package/lib/core/Logger.d.ts +7 -0
- package/lib/core/handlers/DynamicModeHandler.d.ts +11 -23
- package/lib/core/handlers/SelectionHandler.d.ts +16 -3
- package/lib/core/handlers/UtilitiesHandler.d.ts +4 -1
- package/lib/directives/es_th.directive.d.ts +25 -0
- package/lib/domain/externals/EsTableColumnsDefinition.d.ts +3 -9
- package/lib/domain/externals/ItemPropEditableReference.d.ts +4 -0
- package/lib/domain/internals/EsTableColumn.d.ts +3 -1
- package/lib/domain/internals/PagerInfos.d.ts +13 -0
- package/lib/domain/internals/ThGroup.d.ts +10 -0
- package/package.json +1 -1
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { EsTdDirective } from "../../directives/es_td.directive";
|
|
2
|
+
import { EsThDirective } from "../../directives/es_th.directive";
|
|
3
|
+
// Dominio
|
|
1
4
|
import { EsTableColumnsDefinition } from "../../domain/externals/EsTableColumnsDefinition";
|
|
2
5
|
/** Classe contenente le gestioni particolari della modalità dinamica dell'es-table */
|
|
3
6
|
export class DynamicModeHandler {
|
|
@@ -5,42 +8,6 @@ export class DynamicModeHandler {
|
|
|
5
8
|
constructor(est) {
|
|
6
9
|
this.est = est;
|
|
7
10
|
}
|
|
8
|
-
/**
|
|
9
|
-
* Metodo di supporto alla creazione di un router link parametrizzato all'oggetto corrente utilizzato nella modalità dinamica
|
|
10
|
-
*
|
|
11
|
-
* @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
|
|
12
|
-
* @param {string[]} parameterProps Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
|
|
13
|
-
* Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
|
|
14
|
-
* @param {GenericItem} item Oggetto generico collegato a questo contesto
|
|
15
|
-
*
|
|
16
|
-
* @returns {any} Router link generato in base al parametri
|
|
17
|
-
*/
|
|
18
|
-
generateRouterLink(path, parameterProps, item) {
|
|
19
|
-
if (this.est.DynamicTableRouterLinkCache[item._hash + path]) {
|
|
20
|
-
return this.est.DynamicTableRouterLinkCache[item._hash + path];
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
let link = this.getRouterLink(path, parameterProps, item);
|
|
24
|
-
this.est.DynamicTableRouterLinkCache[item._hash + path] = link;
|
|
25
|
-
return link;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Crea un router link
|
|
30
|
-
*
|
|
31
|
-
* @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
|
|
32
|
-
* @param {string[]} pars Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
|
|
33
|
-
* Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
|
|
34
|
-
* @param {GenericItem} item Oggetto generico collegato a questo contesto
|
|
35
|
-
*
|
|
36
|
-
* @returns {any} Router link generato in base al parametri
|
|
37
|
-
*/
|
|
38
|
-
getRouterLink(path, pars, item) {
|
|
39
|
-
for (let i = 0; i < pars.length; i++)
|
|
40
|
-
path = path.replace('{' + i + '}', item.properties[pars[i]]);
|
|
41
|
-
path = path.replace(/'/g, '"').replace(/ /g, '');
|
|
42
|
-
return JSON.parse(path);
|
|
43
|
-
}
|
|
44
11
|
/** Se non ho l'Input **DynamicRowColumnsDefinition** in modalità dinamica lo riempio con il default nome della colonna = testo della colonna */
|
|
45
12
|
eventuallyReviewDynamicColumns() {
|
|
46
13
|
// Senza oggetti esco
|
|
@@ -59,5 +26,60 @@ export class DynamicModeHandler {
|
|
|
59
26
|
else
|
|
60
27
|
this.est.UserDefinedDynamicCols = true;
|
|
61
28
|
}
|
|
29
|
+
/** Genera partendo dalle **DynamicRowColumnsDefinition** la lista di **EsThDirective** e **EsTdDirective** che servono per la tabella */
|
|
30
|
+
emitThsAndTdsBasedOnDynamicDefinition() {
|
|
31
|
+
// Senza dynamic columns esco
|
|
32
|
+
if (!this.est.DynamicRowColumnsDefinition || this.est.DynamicRowColumnsDefinition.length == 0)
|
|
33
|
+
return null;
|
|
34
|
+
let ths = [];
|
|
35
|
+
let tds = [];
|
|
36
|
+
for (let i = 0; i < this.est.DynamicRowColumnsDefinition.length; i++) {
|
|
37
|
+
let col = this.est.DynamicRowColumnsDefinition[i];
|
|
38
|
+
ths.push(this.getTh(col));
|
|
39
|
+
tds.push(this.getTd(col));
|
|
40
|
+
}
|
|
41
|
+
return { ths, tds };
|
|
42
|
+
}
|
|
43
|
+
/** @ignore Helper */
|
|
44
|
+
getTh(col) {
|
|
45
|
+
var ret = new EsThDirective(null);
|
|
46
|
+
ret.th = col.PropertyName;
|
|
47
|
+
ret.thPinned = col.Pinned;
|
|
48
|
+
ret.thPinnable = col.Pinnable;
|
|
49
|
+
ret.thPinnedWidth = col.PinnedWidth;
|
|
50
|
+
ret.thVisible = col.Visible;
|
|
51
|
+
ret.thOrder = col.DataOrder;
|
|
52
|
+
ret.thOrderable = col.Orderable;
|
|
53
|
+
ret.thWrap = col.HeaderWraps;
|
|
54
|
+
ret.thClass = col.Clss;
|
|
55
|
+
ret.thProperty = col.PropertyName;
|
|
56
|
+
ret.thType = col.PropertyType;
|
|
57
|
+
ret.thSource = col.PropertySource;
|
|
58
|
+
ret.thEditorName = col.EditorName;
|
|
59
|
+
ret.thEditorOptions = col.EditorOptions;
|
|
60
|
+
ret.thRendererName = col.RendererName;
|
|
61
|
+
ret.thRoutePath = col.RoutePath;
|
|
62
|
+
ret.thRouteParameterProperties = col.RouteParameterProperties;
|
|
63
|
+
//ret.thFixed = col.Fixed;
|
|
64
|
+
//ret.thResizable = col.Resizable;
|
|
65
|
+
//ret.thGroupClass = col.GroupClass;
|
|
66
|
+
//ret.thGroup = col.Group;
|
|
67
|
+
//ret.thAggregation = col.Aggregation;
|
|
68
|
+
//ret.thMulti = col.Multi;
|
|
69
|
+
//ret.thStaticContent = col.StaticContent;
|
|
70
|
+
//ret.thBackgroundColor = col.BackgroundColor;
|
|
71
|
+
//ret.thAlignment = col.Alignment;
|
|
72
|
+
//ret.thFormat = col.Format;
|
|
73
|
+
return ret;
|
|
74
|
+
}
|
|
75
|
+
/** @ignore Helper */
|
|
76
|
+
getTd(col) {
|
|
77
|
+
var ret = new EsTdDirective(null);
|
|
78
|
+
ret.td = col.PropertyName;
|
|
79
|
+
ret.tdClass = col.Clss;
|
|
80
|
+
//ret.tdAlignment = col.Alignment;
|
|
81
|
+
//ret.tdFormat = col.Format;
|
|
82
|
+
return ret;
|
|
83
|
+
}
|
|
62
84
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZGVIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL0R5bmFtaWNNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLFVBQVU7QUFDVixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUzRixzRkFBc0Y7QUFDdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFBSSxDQUFDO0lBRTlDLGdKQUFnSjtJQUN6SSw4QkFBOEI7UUFDakMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMvRCxPQUFPO1FBRVgsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BJLE9BQU87UUFFWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzdGLElBQUksS0FBSyxHQUEyQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztZQUMxQyxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUs7Z0JBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksd0JBQXdCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7U0FDM0M7O1lBRUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELHlJQUF5STtJQUNsSSxxQ0FBcUM7UUFDeEMsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDekYsT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxxQkFBcUI7SUFDYixLQUFLLENBQUMsR0FBNkI7UUFDdkMsSUFBSSxHQUFHLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQixHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDOUIsR0FBRyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM1QixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDNUIsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUM3QixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdkIsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUM5QixHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDbEMsR0FBRyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtRQUN2QyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdEMsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxHQUFHLENBQUMsd0JBQXdCLENBQUM7UUFFOUQsMEJBQTBCO1FBQzFCLGtDQUFrQztRQUNsQyxvQ0FBb0M7UUFDcEMsMEJBQTBCO1FBQzFCLHNDQUFzQztRQUN0QywwQkFBMEI7UUFDMUIsMENBQTBDO1FBQzFDLDhDQUE4QztRQUM5QyxrQ0FBa0M7UUFDbEMsNEJBQTRCO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFCQUFxQjtJQUNiLEtBQUssQ0FBQyxHQUE2QjtRQUN2QyxJQUFJLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDMUIsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLGtDQUFrQztRQUNsQyw0QkFBNEI7UUFDNUIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5pbXBvcnQgeyBFc1RkRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZXNfdGQuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IEVzVGhEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9lc190aC5kaXJlY3RpdmVcIjtcclxuXHJcbi8vIERvbWluaW9cclxuaW1wb3J0IHsgRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9leHRlcm5hbHMvRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uXCI7XHJcblxyXG4vKiogQ2xhc3NlIGNvbnRlbmVudGUgbGUgZ2VzdGlvbmkgcGFydGljb2xhcmkgZGVsbGEgbW9kYWxpdMOgIGRpbmFtaWNhIGRlbGwnZXMtdGFibGUgKi9cclxuZXhwb3J0IGNsYXNzIER5bmFtaWNNb2RlSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQpIHsgfVxyXG5cclxuICAgIC8qKiBTZSBub24gaG8gbCdJbnB1dCAqKkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbioqIGluIG1vZGFsaXTDoCBkaW5hbWljYSBsbyByaWVtcGlvIGNvbiBpbCBkZWZhdWx0IG5vbWUgZGVsbGEgY29sb25uYSA9IHRlc3RvIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIHB1YmxpYyBldmVudHVhbGx5UmV2aWV3RHluYW1pY0NvbHVtbnMoKSB7XHJcbiAgICAgICAgLy8gU2VuemEgb2dnZXR0aSBlc2NvXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZSB8fCB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgdXNlR2VuZXJpY0l0ZW1zID0gISF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgaWYgKCF1c2VHZW5lcmljSXRlbXMgfHwgKCF0aGlzLmVzdC5GaXJzdEJpbmQgJiYgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uICYmIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGggPiAwKSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoKCF0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gfHwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICAgICAgICB2YXIgcHJvcHMgPSA8UmVjb3JkPHN0cmluZywgc3RyaW5nPj50aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gcHJvcHMpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ucHVzaChuZXcgRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uKGtleSwga2V5KSk7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlVzZXJEZWZpbmVkRHluYW1pY0NvbHMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5Vc2VyRGVmaW5lZER5bmFtaWNDb2xzID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VuZXJhIHBhcnRlbmRvIGRhbGxlICoqRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uKiogbGEgbGlzdGEgZGkgKipFc1RoRGlyZWN0aXZlKiogZSAqKkVzVGREaXJlY3RpdmUqKiBjaGUgc2Vydm9ubyBwZXIgbGEgdGFiZWxsYSAqL1xyXG4gICAgcHVibGljIGVtaXRUaHNBbmRUZHNCYXNlZE9uRHluYW1pY0RlZmluaXRpb24oKTogeyB0aHM6IEVzVGhEaXJlY3RpdmVbXSwgdGRzOiBFc1RkRGlyZWN0aXZlW10gfSB7XHJcbiAgICAgICAgLy8gU2VuemEgZHluYW1pYyBjb2x1bW5zIGVzY29cclxuICAgICAgICBpZiAoIXRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiB8fCB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBsZXQgdGhzID0gW107XHJcbiAgICAgICAgbGV0IHRkcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjb2wgPSB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb25baV07XHJcblxyXG4gICAgICAgICAgICB0aHMucHVzaCh0aGlzLmdldFRoKGNvbCkpO1xyXG4gICAgICAgICAgICB0ZHMucHVzaCh0aGlzLmdldFRkKGNvbCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyB0aHMsIHRkcyB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIEhlbHBlciAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUaChjb2w6IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbik6IEVzVGhEaXJlY3RpdmUge1xyXG4gICAgICAgIHZhciByZXQgPSBuZXcgRXNUaERpcmVjdGl2ZShudWxsKTtcclxuICAgICAgICByZXQudGggPSBjb2wuUHJvcGVydHlOYW1lO1xyXG4gICAgICAgIHJldC50aFBpbm5lZCA9IGNvbC5QaW5uZWQ7XHJcbiAgICAgICAgcmV0LnRoUGlubmFibGUgPSBjb2wuUGlubmFibGU7XHJcbiAgICAgICAgcmV0LnRoUGlubmVkV2lkdGggPSBjb2wuUGlubmVkV2lkdGg7XHJcbiAgICAgICAgcmV0LnRoVmlzaWJsZSA9IGNvbC5WaXNpYmxlO1xyXG4gICAgICAgIHJldC50aE9yZGVyID0gY29sLkRhdGFPcmRlcjtcclxuICAgICAgICByZXQudGhPcmRlcmFibGUgPSBjb2wuT3JkZXJhYmxlO1xyXG4gICAgICAgIHJldC50aFdyYXAgPSBjb2wuSGVhZGVyV3JhcHM7XHJcbiAgICAgICAgcmV0LnRoQ2xhc3MgPSBjb2wuQ2xzcztcclxuICAgICAgICByZXQudGhQcm9wZXJ0eSA9IGNvbC5Qcm9wZXJ0eU5hbWU7XHJcbiAgICAgICAgcmV0LnRoVHlwZSA9IGNvbC5Qcm9wZXJ0eVR5cGU7XHJcbiAgICAgICAgcmV0LnRoU291cmNlID0gY29sLlByb3BlcnR5U291cmNlO1xyXG4gICAgICAgIHJldC50aEVkaXRvck5hbWUgPSBjb2wuRWRpdG9yTmFtZTtcclxuICAgICAgICByZXQudGhFZGl0b3JPcHRpb25zID0gY29sLkVkaXRvck9wdGlvbnNcclxuICAgICAgICByZXQudGhSZW5kZXJlck5hbWUgPSBjb2wuUmVuZGVyZXJOYW1lO1xyXG4gICAgICAgIHJldC50aFJvdXRlUGF0aCA9IGNvbC5Sb3V0ZVBhdGg7XHJcbiAgICAgICAgcmV0LnRoUm91dGVQYXJhbWV0ZXJQcm9wZXJ0aWVzID0gY29sLlJvdXRlUGFyYW1ldGVyUHJvcGVydGllcztcclxuXHJcbiAgICAgICAgLy9yZXQudGhGaXhlZCA9IGNvbC5GaXhlZDtcclxuICAgICAgICAvL3JldC50aFJlc2l6YWJsZSA9IGNvbC5SZXNpemFibGU7XHJcbiAgICAgICAgLy9yZXQudGhHcm91cENsYXNzID0gY29sLkdyb3VwQ2xhc3M7XHJcbiAgICAgICAgLy9yZXQudGhHcm91cCA9IGNvbC5Hcm91cDtcclxuICAgICAgICAvL3JldC50aEFnZ3JlZ2F0aW9uID0gY29sLkFnZ3JlZ2F0aW9uO1xyXG4gICAgICAgIC8vcmV0LnRoTXVsdGkgPSBjb2wuTXVsdGk7XHJcbiAgICAgICAgLy9yZXQudGhTdGF0aWNDb250ZW50ID0gY29sLlN0YXRpY0NvbnRlbnQ7XHJcbiAgICAgICAgLy9yZXQudGhCYWNrZ3JvdW5kQ29sb3IgPSBjb2wuQmFja2dyb3VuZENvbG9yO1xyXG4gICAgICAgIC8vcmV0LnRoQWxpZ25tZW50ID0gY29sLkFsaWdubWVudDtcclxuICAgICAgICAvL3JldC50aEZvcm1hdCA9IGNvbC5Gb3JtYXQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBIZWxwZXIgKi9cclxuICAgIHByaXZhdGUgZ2V0VGQoY29sOiBFc1RhYmxlQ29sdW1uc0RlZmluaXRpb24pOiBFc1RkRGlyZWN0aXZlIHtcclxuICAgICAgICB2YXIgcmV0ID0gbmV3IEVzVGREaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgcmV0LnRkID0gY29sLlByb3BlcnR5TmFtZTtcclxuICAgICAgICByZXQudGRDbGFzcyA9IGNvbC5DbHNzO1xyXG4gICAgICAgIC8vcmV0LnRkQWxpZ25tZW50ID0gY29sLkFsaWdubWVudDtcclxuICAgICAgICAvL3JldC50ZEZvcm1hdCA9IGNvbC5Gb3JtYXQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=
|