@esfaenza/es-table 14.2.0 → 14.3.0
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/esm2020/lib/components/es-table/es_table.component.loc.mjs +4 -4
- package/esm2020/lib/components/es-table/es_table.component.mjs +313 -116
- package/esm2020/lib/components/es-table-template/es_table_template.component.mjs +4 -4
- package/esm2020/lib/components/es-td/es_td.component.mjs +12 -56
- package/esm2020/lib/components/es-th/es_th.component.mjs +5 -5
- package/esm2020/lib/components/pager/table_pager.component.loc.mjs +4 -4
- package/esm2020/lib/components/pager/table_pager.component.mjs +4 -4
- package/esm2020/lib/components/pipes/est-format.pipe.mjs +44 -0
- package/esm2020/lib/components/pipes/est-lookup.pipe.mjs +19 -0
- package/esm2020/lib/components/pipes/est-renderer.pipe.mjs +36 -0
- package/esm2020/lib/components/pipes/est-routerlink.pipe.mjs +41 -0
- package/esm2020/lib/components/pipes/est_editor.pipe.mjs +36 -0
- package/esm2020/lib/core/CopyPasteDetector.mjs +8 -5
- package/esm2020/lib/core/Logger.mjs +26 -0
- package/esm2020/lib/core/handlers/ColumnMetadataHandler.mjs +46 -25
- package/esm2020/lib/core/handlers/DynamicModeHandler.mjs +80 -37
- package/esm2020/lib/core/handlers/ExportHandler.mjs +53 -23
- package/esm2020/lib/core/handlers/ReportModeHandler.mjs +6 -2
- package/esm2020/lib/core/handlers/SelectionHandler.mjs +54 -50
- package/esm2020/lib/core/handlers/UtilitiesHandler.mjs +5 -8
- package/esm2020/lib/directives/es_td.directive.mjs +18 -4
- package/esm2020/lib/directives/es_td_editor.directive.mjs +4 -4
- package/esm2020/lib/directives/es_th.directive.mjs +24 -4
- package/esm2020/lib/domain/configuration/EsTableDefaultable.mjs +1 -1
- package/esm2020/lib/domain/externals/EsTableColumnsDefinition.mjs +9 -4
- package/esm2020/lib/domain/externals/ItemPropEditableReference.mjs +1 -1
- package/esm2020/lib/domain/externals/appsearch/AppSearch.mjs +2 -1
- package/esm2020/lib/domain/externals/report/ReportColumn.mjs +1 -1
- package/esm2020/lib/domain/externals/report/ReportRow.mjs +1 -1
- package/esm2020/lib/domain/internals/EsTableColumn.mjs +2 -2
- package/esm2020/lib/domain/internals/PagerInfos.mjs +15 -0
- package/esm2020/lib/domain/internals/TdElement.mjs +1 -1
- package/esm2020/lib/domain/internals/ThElement.mjs +1 -1
- package/esm2020/lib/domain/internals/ThGroup.mjs +2 -0
- package/esm2020/lib/es-table.module.mjs +74 -39
- package/fesm2015/esfaenza-es-table.mjs +903 -382
- package/fesm2015/esfaenza-es-table.mjs.map +1 -1
- package/fesm2020/esfaenza-es-table.mjs +892 -376
- package/fesm2020/esfaenza-es-table.mjs.map +1 -1
- package/lib/components/es-table/es_table.component.d.ts +91 -71
- package/lib/components/es-td/es_td.component.d.ts +7 -35
- package/lib/components/pipes/est-format.pipe.d.ts +10 -0
- package/lib/components/pipes/est-lookup.pipe.d.ts +13 -0
- package/lib/components/pipes/est-renderer.pipe.d.ts +15 -0
- package/lib/components/pipes/est-routerlink.pipe.d.ts +20 -0
- package/lib/components/pipes/est_editor.pipe.d.ts +15 -0
- package/lib/core/CopyPasteDetector.d.ts +2 -0
- package/lib/core/Logger.d.ts +10 -0
- package/lib/core/handlers/ColumnMetadataHandler.d.ts +1 -0
- package/lib/core/handlers/DynamicModeHandler.d.ts +13 -23
- package/lib/core/handlers/ExportHandler.d.ts +4 -0
- package/lib/core/handlers/SelectionHandler.d.ts +16 -3
- package/lib/core/handlers/UtilitiesHandler.d.ts +4 -1
- package/lib/directives/es_td.directive.d.ts +15 -1
- package/lib/directives/es_th.directive.d.ts +32 -1
- package/lib/domain/configuration/EsTableDefaultable.d.ts +1 -0
- package/lib/domain/externals/EsTableColumnsDefinition.d.ts +11 -8
- package/lib/domain/externals/ItemPropEditableReference.d.ts +4 -0
- package/lib/domain/externals/report/ReportColumn.d.ts +4 -0
- package/lib/domain/externals/report/ReportRow.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/TdElement.d.ts +8 -0
- package/lib/domain/internals/ThElement.d.ts +1 -0
- package/lib/domain/internals/ThGroup.d.ts +10 -0
- package/lib/es-table.module.d.ts +26 -22
- package/package.json +12 -14
|
@@ -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,81 @@ 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.DynamicOperations.length; i++) {
|
|
37
|
+
let op = this.est.DynamicOperations[i];
|
|
38
|
+
ths.push(this.getThFromOperation(op));
|
|
39
|
+
tds.push(this.getTdFromOperation(op));
|
|
40
|
+
}
|
|
41
|
+
for (let i = 0; i < this.est.DynamicRowColumnsDefinition.length; i++) {
|
|
42
|
+
let col = this.est.DynamicRowColumnsDefinition[i];
|
|
43
|
+
ths.push(this.getThFromColumnDef(col));
|
|
44
|
+
tds.push(this.getTdFromColumnDef(col));
|
|
45
|
+
}
|
|
46
|
+
return { ths, tds };
|
|
47
|
+
}
|
|
48
|
+
/** @ignore Helper */
|
|
49
|
+
getThFromOperation(op) {
|
|
50
|
+
let th = new EsThDirective(null);
|
|
51
|
+
th.th = op.id;
|
|
52
|
+
th.thStaticContent = "";
|
|
53
|
+
return th;
|
|
54
|
+
}
|
|
55
|
+
getTdFromOperation(op) {
|
|
56
|
+
let td = new EsTdDirective(null);
|
|
57
|
+
td.td = op.id;
|
|
58
|
+
td.tdIconClass = op.iconClass;
|
|
59
|
+
td.tdConditionField = op.conditionField;
|
|
60
|
+
td.tdConditionValue = op.conditionValue;
|
|
61
|
+
td.tdTitle = op.title;
|
|
62
|
+
td.tdContent = op.text;
|
|
63
|
+
return td;
|
|
64
|
+
}
|
|
65
|
+
getThFromColumnDef(col) {
|
|
66
|
+
var ret = new EsThDirective(null);
|
|
67
|
+
ret.th = col.PropertyName;
|
|
68
|
+
ret.thPinned = col.Pinned;
|
|
69
|
+
ret.thPinnable = col.Pinnable;
|
|
70
|
+
ret.thPinnedWidth = col.PinnedWidth;
|
|
71
|
+
ret.thVisible = col.Visible;
|
|
72
|
+
ret.thOrder = col.DataOrder;
|
|
73
|
+
ret.thOrderable = col.Orderable;
|
|
74
|
+
ret.thWrap = col.HeaderWraps;
|
|
75
|
+
ret.thClass = col.Clss;
|
|
76
|
+
ret.thProperty = col.PropertyName;
|
|
77
|
+
ret.thType = col.PropertyType;
|
|
78
|
+
ret.thSource = col.PropertySource;
|
|
79
|
+
ret.thEditorName = col.EditorName;
|
|
80
|
+
ret.thEditorOptions = col.EditorOptions;
|
|
81
|
+
ret.thRendererName = col.RendererName;
|
|
82
|
+
ret.thRoutePath = col.RoutePath;
|
|
83
|
+
ret.thRouteParameterProperties = col.RouteParameterProperties;
|
|
84
|
+
//ret.thFixed = col.Fixed;
|
|
85
|
+
//ret.thResizable = col.Resizable;
|
|
86
|
+
//ret.thGroupClass = col.GroupClass;
|
|
87
|
+
//ret.thGroup = col.Group;
|
|
88
|
+
//ret.thAggregation = col.Aggregation;
|
|
89
|
+
//ret.thMulti = col.Multi;
|
|
90
|
+
//ret.thStaticContent = col.StaticContent;
|
|
91
|
+
//ret.thBackgroundColor = col.BackgroundColor;
|
|
92
|
+
//ret.thAlignment = col.Alignment;
|
|
93
|
+
//ret.thFormat = col.Format;
|
|
94
|
+
return ret;
|
|
95
|
+
}
|
|
96
|
+
/** @ignore Helper */
|
|
97
|
+
getTdFromColumnDef(col) {
|
|
98
|
+
var ret = new EsTdDirective(null);
|
|
99
|
+
ret.td = col.PropertyName;
|
|
100
|
+
ret.tdClass = col.Clss;
|
|
101
|
+
//ret.tdAlignment = col.Alignment;
|
|
102
|
+
//ret.tdFormat = col.Format;
|
|
103
|
+
return ret;
|
|
104
|
+
}
|
|
62
105
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZGVIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL0R5bmFtaWNNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUUzRixzRkFBc0Y7QUFDdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFBSSxDQUFDO0lBRTlDOzs7Ozs7Ozs7T0FTRztJQUNJLGtCQUFrQixDQUFDLElBQVksRUFBRSxjQUF3QixFQUFFLElBQWlCO1FBQy9FLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLGFBQWEsQ0FBQyxJQUFZLEVBQUUsSUFBYyxFQUFFLElBQWlCO1FBRWpFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNoQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnSkFBZ0o7SUFDekksOEJBQThCO1FBQ2pDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDL0QsT0FBTztRQUVYLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwSSxPQUFPO1FBRVgsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRTtZQUM3RixJQUFJLEtBQUssR0FBMkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUM7WUFDMUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLO2dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1NBQzNDOztZQUdHLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQy9DLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcblxyXG4vLyBEb21pbmlvXHJcbmltcG9ydCB7IEdlbmVyaWNJdGVtIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9leHRlcm5hbHMvYXBwc2VhcmNoL0dlbmVyaWNJdGVtXCI7XHJcbmltcG9ydCB7IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9kb21haW4vZXh0ZXJuYWxzL0VzVGFibGVDb2x1bW5zRGVmaW5pdGlvblwiO1xyXG5cclxuLyoqIENsYXNzZSBjb250ZW5lbnRlIGxlIGdlc3Rpb25pIHBhcnRpY29sYXJpIGRlbGxhIG1vZGFsaXTDoCBkaW5hbWljYSBkZWxsJ2VzLXRhYmxlICovXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTW9kZUhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50KSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBkaSBzdXBwb3J0byBhbGxhIGNyZWF6aW9uZSBkaSB1biByb3V0ZXIgbGluayBwYXJhbWV0cml6emF0byBhbGwnb2dnZXR0byBjb3JyZW50ZSB1dGlsaXp6YXRvIG5lbGxhIG1vZGFsaXTDoCBkaW5hbWljYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFBhdGggc3UgY3VpIG5hdmlnYXJlIGNvbiBldmVudHVhbGkgcGFyYW1ldHJpIHJpZmVyaXRpIGFsbCdvZ2dldHRvIGNvdG5lc3R1YWxlIGNvbWUgezB9LCB7MX0sIGVjYy4uLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGFyYW1ldGVyUHJvcHMgTGlzdGEgcG9zaXppb25hbGUgZGVsbGUgcHJvcHJpZXTDoCBhIGN1aSBiaW5kYXJlIGkgcmlmZXJpbWVudGkgZGVsIHBhcmFtZXRybyAqKnBhdGgqKlxyXG4gICAgICogRXMuIElsIHZhbG9yZSBkZWxhIHByb3ByaWV0w6AgYWxsJ2luZGljZSAwIGRpIHF1ZXN0byBhcnJheSB2ZXJyw6Agc29zdGl0dWl0YSBhbCB2YWxvcmUgezB9IGRlbCBwYXJhbWV0cm8gKipwYXRoKipcclxuICAgICAqIEBwYXJhbSB7R2VuZXJpY0l0ZW19IGl0ZW0gT2dnZXR0byBnZW5lcmljbyBjb2xsZWdhdG8gYSBxdWVzdG8gY29udGVzdG9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBSb3V0ZXIgbGluayBnZW5lcmF0byBpbiBiYXNlIGFsIHBhcmFtZXRyaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2VuZXJhdGVSb3V0ZXJMaW5rKHBhdGg6IHN0cmluZywgcGFyYW1ldGVyUHJvcHM6IHN0cmluZ1tdLCBpdGVtOiBHZW5lcmljSXRlbSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXN0LkR5bmFtaWNUYWJsZVJvdXRlckxpbmtDYWNoZVtpdGVtLl9oYXNoICsgcGF0aF0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXN0LkR5bmFtaWNUYWJsZVJvdXRlckxpbmtDYWNoZVtpdGVtLl9oYXNoICsgcGF0aF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGxpbmsgPSB0aGlzLmdldFJvdXRlckxpbmsocGF0aCwgcGFyYW1ldGVyUHJvcHMsIGl0ZW0pO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljVGFibGVSb3V0ZXJMaW5rQ2FjaGVbaXRlbS5faGFzaCArIHBhdGhdID0gbGluaztcclxuICAgICAgICAgICAgcmV0dXJuIGxpbms7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYSB1biByb3V0ZXIgbGlua1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFBhdGggc3UgY3VpIG5hdmlnYXJlIGNvbiBldmVudHVhbGkgcGFyYW1ldHJpIHJpZmVyaXRpIGFsbCdvZ2dldHRvIGNvdG5lc3R1YWxlIGNvbWUgezB9LCB7MX0sIGVjYy4uLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGFycyBMaXN0YSBwb3NpemlvbmFsZSBkZWxsZSBwcm9wcmlldMOgIGEgY3VpIGJpbmRhcmUgaSByaWZlcmltZW50aSBkZWwgcGFyYW1ldHJvICoqcGF0aCoqXHJcbiAgICAgKiBFcy4gSWwgdmFsb3JlIGRlbGEgcHJvcHJpZXTDoCBhbGwnaW5kaWNlIDAgZGkgcXVlc3RvIGFycmF5IHZlcnLDoCBzb3N0aXR1aXRhIGFsIHZhbG9yZSB7MH0gZGVsIHBhcmFtZXRybyAqKnBhdGgqKlxyXG4gICAgICogQHBhcmFtIHtHZW5lcmljSXRlbX0gaXRlbSBPZ2dldHRvIGdlbmVyaWNvIGNvbGxlZ2F0byBhIHF1ZXN0byBjb250ZXN0b1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFJvdXRlciBsaW5rIGdlbmVyYXRvIGluIGJhc2UgYWwgcGFyYW1ldHJpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Um91dGVyTGluayhwYXRoOiBzdHJpbmcsIHBhcnM6IHN0cmluZ1tdLCBpdGVtOiBHZW5lcmljSXRlbSk6IGFueSB7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFycy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgneycgKyBpICsgJ30nLCBpdGVtLnByb3BlcnRpZXNbcGFyc1tpXV0pO1xyXG5cclxuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC8nL2csICdcIicpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZSBub24gaG8gbCdJbnB1dCAqKkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbioqIGluIG1vZGFsaXTDoCBkaW5hbWljYSBsbyByaWVtcGlvIGNvbiBpbCBkZWZhdWx0IG5vbWUgZGVsbGEgY29sb25uYSA9IHRlc3RvIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIHB1YmxpYyBldmVudHVhbGx5UmV2aWV3RHluYW1pY0NvbHVtbnMoKSB7XHJcbiAgICAgICAgLy8gU2VuemEgb2dnZXR0aSBlc2NvXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZSB8fCB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgdXNlR2VuZXJpY0l0ZW1zID0gISF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgaWYgKCF1c2VHZW5lcmljSXRlbXMgfHwgKCF0aGlzLmVzdC5GaXJzdEJpbmQgJiYgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uICYmIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGggPiAwKSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoKCF0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gfHwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICAgICAgICB2YXIgcHJvcHMgPSA8UmVjb3JkPHN0cmluZywgc3RyaW5nPj50aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gcHJvcHMpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ucHVzaChuZXcgRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uKGtleSwga2V5KSk7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlVzZXJEZWZpbmVkRHluYW1pY0NvbHMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5lc3QuVXNlckRlZmluZWREeW5hbWljQ29scyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZGVIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL0R5bmFtaWNNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLFVBQVU7QUFDVixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUczRixzRkFBc0Y7QUFDdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFBSSxDQUFDO0lBRTlDLGdKQUFnSjtJQUN6SSw4QkFBOEI7UUFDakMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMvRCxPQUFPO1FBRVgsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BJLE9BQU87UUFFWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFB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RyxHQUFHLENBQUMsd0JBQXdCLENBQUM7UUFFOUQsMEJBQTBCO1FBQzFCLGtDQUFrQztRQUNsQyxvQ0FBb0M7UUFDcEMsMEJBQTBCO1FBQzFCLHNDQUFzQztRQUN0QywwQkFBMEI7UUFDMUIsMENBQTBDO1FBQzFDLDhDQUE4QztRQUM5QyxrQ0FBa0M7UUFDbEMsNEJBQTRCO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFCQUFxQjtJQUNiLGtCQUFrQixDQUFDLEdBQTZCO1FBQ3BELElBQUksR0FBRyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUMxQixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdkIsa0NBQWtDO1FBQ2xDLDRCQUE0QjtRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IEVzVGREaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9lc190ZC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgRXNUaERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZVwiO1xyXG5cclxuLy8gRG9taW5pb1xyXG5pbXBvcnQgeyBFc1RhYmxlQ29sdW1uc0RlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vZG9tYWluL2V4dGVybmFscy9Fc1RhYmxlQ29sdW1uc0RlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vZG9tYWluL2V4dGVybmFscy9Fc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvblwiO1xyXG5cclxuLyoqIENsYXNzZSBjb250ZW5lbnRlIGxlIGdlc3Rpb25pIHBhcnRpY29sYXJpIGRlbGxhIG1vZGFsaXTDoCBkaW5hbWljYSBkZWxsJ2VzLXRhYmxlICovXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTW9kZUhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50KSB7IH1cclxuXHJcbiAgICAvKiogU2Ugbm9uIGhvIGwnSW5wdXQgKipEeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24qKiBpbiBtb2RhbGl0w6AgZGluYW1pY2EgbG8gcmllbXBpbyBjb24gaWwgZGVmYXVsdCBub21lIGRlbGxhIGNvbG9ubmEgPSB0ZXN0byBkZWxsYSBjb2xvbm5hICovXHJcbiAgICBwdWJsaWMgZXZlbnR1YWxseVJldmlld0R5bmFtaWNDb2x1bW5zKCkge1xyXG4gICAgICAgIC8vIFNlbnphIG9nZ2V0dGkgZXNjb1xyXG4gICAgICAgIGlmICghdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UgfHwgdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdmFyIHVzZUdlbmVyaWNJdGVtcyA9ICEhdGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF1bXCJwcm9wZXJ0aWVzXCJdO1xyXG4gICAgICAgIGlmICghdXNlR2VuZXJpY0l0ZW1zIHx8ICghdGhpcy5lc3QuRmlyc3RCaW5kICYmIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiAmJiB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ubGVuZ3RoID4gMCkpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKCghdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uIHx8IHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGggPT0gMCkpIHtcclxuICAgICAgICAgICAgdmFyIHByb3BzID0gPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+dGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF1bXCJwcm9wZXJ0aWVzXCJdO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHByb3BzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLnB1c2gobmV3IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbihrZXksIGtleSkpO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5Vc2VyRGVmaW5lZER5bmFtaWNDb2xzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5lc3QuVXNlckRlZmluZWREeW5hbWljQ29scyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYSBwYXJ0ZW5kbyBkYWxsZSAqKkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbioqIGxhIGxpc3RhIGRpICoqRXNUaERpcmVjdGl2ZSoqIGUgKipFc1RkRGlyZWN0aXZlKiogY2hlIHNlcnZvbm8gcGVyIGxhIHRhYmVsbGEgKi9cclxuICAgIHB1YmxpYyBlbWl0VGhzQW5kVGRzQmFzZWRPbkR5bmFtaWNEZWZpbml0aW9uKCk6IHsgdGhzOiBFc1RoRGlyZWN0aXZlW10sIHRkczogRXNUZERpcmVjdGl2ZVtdIH0ge1xyXG4gICAgICAgIC8vIFNlbnphIGR5bmFtaWMgY29sdW1ucyBlc2NvXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gfHwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IHRocyA9IFtdO1xyXG4gICAgICAgIGxldCB0ZHMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVzdC5EeW5hbWljT3BlcmF0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb3AgPSB0aGlzLmVzdC5EeW5hbWljT3BlcmF0aW9uc1tpXTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRocy5wdXNoKHRoaXMuZ2V0VGhGcm9tT3BlcmF0aW9uKG9wKSk7XHJcbiAgICAgICAgICAgIHRkcy5wdXNoKHRoaXMuZ2V0VGRGcm9tT3BlcmF0aW9uKG9wKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgY29sID0gdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uW2ldO1xyXG5cclxuICAgICAgICAgICAgdGhzLnB1c2godGhpcy5nZXRUaEZyb21Db2x1bW5EZWYoY29sKSk7XHJcbiAgICAgICAgICAgIHRkcy5wdXNoKHRoaXMuZ2V0VGRGcm9tQ29sdW1uRGVmKGNvbCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyB0aHMsIHRkcyB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIEhlbHBlciAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUaEZyb21PcGVyYXRpb24ob3A6IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKTogRXNUaERpcmVjdGl2ZSB7XHJcbiAgICAgICAgbGV0IHRoID0gbmV3IEVzVGhEaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgdGgudGggPSBvcC5pZDtcclxuICAgICAgICB0aC50aFN0YXRpY0NvbnRlbnQgPSBcIlwiO1xyXG4gICAgICAgIHJldHVybiB0aDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFRkRnJvbU9wZXJhdGlvbihvcDogRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24pOiBFc1RkRGlyZWN0aXZlIHtcclxuICAgICAgICBsZXQgdGQgPSBuZXcgRXNUZERpcmVjdGl2ZShudWxsKTtcclxuICAgICAgICB0ZC50ZCA9IG9wLmlkO1xyXG4gICAgICAgIHRkLnRkSWNvbkNsYXNzID0gb3AuaWNvbkNsYXNzO1xyXG4gICAgICAgIHRkLnRkQ29uZGl0aW9uRmllbGQgPSBvcC5jb25kaXRpb25GaWVsZDtcclxuICAgICAgICB0ZC50ZENvbmRpdGlvblZhbHVlID0gb3AuY29uZGl0aW9uVmFsdWU7XHJcbiAgICAgICAgdGQudGRUaXRsZSA9IG9wLnRpdGxlO1xyXG4gICAgICAgIHRkLnRkQ29udGVudCA9IG9wLnRleHQ7XHJcbiAgICAgICAgcmV0dXJuIHRkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VGhGcm9tQ29sdW1uRGVmKGNvbDogRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uKTogRXNUaERpcmVjdGl2ZSB7XHJcbiAgICAgICAgdmFyIHJldCA9IG5ldyBFc1RoRGlyZWN0aXZlKG51bGwpO1xyXG4gICAgICAgIHJldC50aCA9IGNvbC5Qcm9wZXJ0eU5hbWU7XHJcbiAgICAgICAgcmV0LnRoUGlubmVkID0gY29sLlBpbm5lZDtcclxuICAgICAgICByZXQudGhQaW5uYWJsZSA9IGNvbC5QaW5uYWJsZTtcclxuICAgICAgICByZXQudGhQaW5uZWRXaWR0aCA9IGNvbC5QaW5uZWRXaWR0aDtcclxuICAgICAgICByZXQudGhWaXNpYmxlID0gY29sLlZpc2libGU7XHJcbiAgICAgICAgcmV0LnRoT3JkZXIgPSBjb2wuRGF0YU9yZGVyO1xyXG4gICAgICAgIHJldC50aE9yZGVyYWJsZSA9IGNvbC5PcmRlcmFibGU7XHJcbiAgICAgICAgcmV0LnRoV3JhcCA9IGNvbC5IZWFkZXJXcmFwcztcclxuICAgICAgICByZXQudGhDbGFzcyA9IGNvbC5DbHNzO1xyXG4gICAgICAgIHJldC50aFByb3BlcnR5ID0gY29sLlByb3BlcnR5TmFtZTtcclxuICAgICAgICByZXQudGhUeXBlID0gY29sLlByb3BlcnR5VHlwZTtcclxuICAgICAgICByZXQudGhTb3VyY2UgPSBjb2wuUHJvcGVydHlTb3VyY2U7XHJcbiAgICAgICAgcmV0LnRoRWRpdG9yTmFtZSA9IGNvbC5FZGl0b3JOYW1lO1xyXG4gICAgICAgIHJldC50aEVkaXRvck9wdGlvbnMgPSBjb2wuRWRpdG9yT3B0aW9uc1xyXG4gICAgICAgIHJldC50aFJlbmRlcmVyTmFtZSA9IGNvbC5SZW5kZXJlck5hbWU7XHJcbiAgICAgICAgcmV0LnRoUm91dGVQYXRoID0gY29sLlJvdXRlUGF0aDtcclxuICAgICAgICByZXQudGhSb3V0ZVBhcmFtZXRlclByb3BlcnRpZXMgPSBjb2wuUm91dGVQYXJhbWV0ZXJQcm9wZXJ0aWVzO1xyXG5cclxuICAgICAgICAvL3JldC50aEZpeGVkID0gY29sLkZpeGVkO1xyXG4gICAgICAgIC8vcmV0LnRoUmVzaXphYmxlID0gY29sLlJlc2l6YWJsZTtcclxuICAgICAgICAvL3JldC50aEdyb3VwQ2xhc3MgPSBjb2wuR3JvdXBDbGFzcztcclxuICAgICAgICAvL3JldC50aEdyb3VwID0gY29sLkdyb3VwO1xyXG4gICAgICAgIC8vcmV0LnRoQWdncmVnYXRpb24gPSBjb2wuQWdncmVnYXRpb247XHJcbiAgICAgICAgLy9yZXQudGhNdWx0aSA9IGNvbC5NdWx0aTtcclxuICAgICAgICAvL3JldC50aFN0YXRpY0NvbnRlbnQgPSBjb2wuU3RhdGljQ29udGVudDtcclxuICAgICAgICAvL3JldC50aEJhY2tncm91bmRDb2xvciA9IGNvbC5CYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgLy9yZXQudGhBbGlnbm1lbnQgPSBjb2wuQWxpZ25tZW50O1xyXG4gICAgICAgIC8vcmV0LnRoRm9ybWF0ID0gY29sLkZvcm1hdDtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIEhlbHBlciAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUZEZyb21Db2x1bW5EZWYoY29sOiBFc1RhYmxlQ29sdW1uc0RlZmluaXRpb24pOiBFc1RkRGlyZWN0aXZlIHtcclxuICAgICAgICB2YXIgcmV0ID0gbmV3IEVzVGREaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgcmV0LnRkID0gY29sLlByb3BlcnR5TmFtZTtcclxuICAgICAgICByZXQudGRDbGFzcyA9IGNvbC5DbHNzO1xyXG4gICAgICAgIC8vcmV0LnRkQWxpZ25tZW50ID0gY29sLkFsaWdubWVudDtcclxuICAgICAgICAvL3JldC50ZEZvcm1hdCA9IGNvbC5Gb3JtYXQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -26,8 +26,7 @@ export class ExportHandler {
|
|
|
26
26
|
}
|
|
27
27
|
this.setupExport(data);
|
|
28
28
|
if (format == "CSV") {
|
|
29
|
-
this.
|
|
30
|
-
setTimeout(() => { this.est.exportDownloader.nativeElement.click(); });
|
|
29
|
+
this.exportCSV();
|
|
31
30
|
}
|
|
32
31
|
else if (format == "XLSX") {
|
|
33
32
|
if (this.ExcelJS != null) {
|
|
@@ -46,6 +45,33 @@ export class ExportHandler {
|
|
|
46
45
|
throw "Formato di esportazione non riconosciuto";
|
|
47
46
|
}, format);
|
|
48
47
|
}
|
|
48
|
+
/** Effettua l'esportazione in file CSV, va a sostituire quel coso inutile di @ctrl/ngx-csv */
|
|
49
|
+
exportCSV() {
|
|
50
|
+
var csvData = this.convertToCSV();
|
|
51
|
+
var blob = new Blob([csvData], { type: 'text/csv' });
|
|
52
|
+
var objectUrl = window.URL.createObjectURL(blob);
|
|
53
|
+
let fn = this.est.ExportFileName;
|
|
54
|
+
this.utiExts.fileDownload(objectUrl, fn.endsWith('.xlsx') ? fn.replace('.xlsx', '.csv') : fn.endsWith('.csv') ? fn : fn + ".csv");
|
|
55
|
+
}
|
|
56
|
+
/** Generazione specifica del CSV */
|
|
57
|
+
convertToCSV() {
|
|
58
|
+
let csv = '', row = '', sep = ';';
|
|
59
|
+
for (let i = 0; i < this.est.headers.length; i++) {
|
|
60
|
+
let h = this.est.headers[i];
|
|
61
|
+
row += `${row != '' ? sep : ''}"${h.label}"`;
|
|
62
|
+
}
|
|
63
|
+
csv += row + '\r\n';
|
|
64
|
+
for (let i = 0; i < this.est.data.length; i++) {
|
|
65
|
+
row = '';
|
|
66
|
+
let item = this.est.data[i];
|
|
67
|
+
for (let j = 0; j < this.est.headers.length; j++) {
|
|
68
|
+
let val = item[this.est.headers[j].key];
|
|
69
|
+
row += `${row != '' ? sep : ''}"${val}"`;
|
|
70
|
+
}
|
|
71
|
+
csv += row + '\r\n';
|
|
72
|
+
}
|
|
73
|
+
return csv;
|
|
74
|
+
}
|
|
49
75
|
/** Effettua l'esportazione del file Excel basandosi sul modulo **ExcelJS**, sugli header **this.est.headers** e sui dati **this.est.data** */
|
|
50
76
|
async exportExcel() {
|
|
51
77
|
let iFix = 1;
|
|
@@ -67,26 +93,28 @@ export class ExportHandler {
|
|
|
67
93
|
let h = this.est.headers[i];
|
|
68
94
|
let cell = row.getCell(i + 1);
|
|
69
95
|
let val = item[h.key];
|
|
70
|
-
if (val
|
|
96
|
+
if (!val) {
|
|
71
97
|
cell.value = "";
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
switch (h.type) {
|
|
101
|
+
case 'date':
|
|
102
|
+
// ExcelJS va di default in UTC quindi rischierebbe di tirare giù 2 ore ad ogni esportazione
|
|
103
|
+
// Bisogna aggiungere l'utc offset alla data attuale
|
|
104
|
+
let date = this.dateExts.getDateConvertion(val);
|
|
105
|
+
if (date) {
|
|
106
|
+
let correctedDate = date.add(date.utcOffset(), 'minute');
|
|
107
|
+
cell.value = correctedDate.toDate();
|
|
108
|
+
cell.numFmt = val.length > 10 ? 'dd/mm/yyyy h:m:s' : '';
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
case 'number':
|
|
112
|
+
let converted = parseFloat(val.replace(',', '.'));
|
|
113
|
+
cell.value = isNaN(converted) ? "" : converted;
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
cell.value = val;
|
|
117
|
+
break;
|
|
90
118
|
}
|
|
91
119
|
}
|
|
92
120
|
}
|
|
@@ -103,8 +131,10 @@ export class ExportHandler {
|
|
|
103
131
|
*/
|
|
104
132
|
setupExport(items) {
|
|
105
133
|
let drcd = this.est.DynamicRowColumnsDefinition;
|
|
106
|
-
this.est.headers = drcd && drcd.length > 0 ?
|
|
134
|
+
this.est.headers = drcd && drcd.length > 0 ?
|
|
135
|
+
this.expExts.setupForGenericExport(items, drcd.map(t => { return { label: t.Description, key: t.PropertyName, propKey: t.PropertyName, order: t.ColumnOrder, type: 'string' }; })) :
|
|
136
|
+
this.expExts.setupForExport(items, this.est.ExportOnlyVisibleColumns ? this.est.ColumnsList.filter(t => t.visible).map(t => t.id) : null);
|
|
107
137
|
this.est.data = items;
|
|
108
138
|
}
|
|
109
139
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9FeHBvcnRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLHVEQUF1RDtBQUN2RCxNQUFNLE9BQU8sYUFBYTtJQUt0Qix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUIsRUFBVSxPQUFzQixFQUFVLE9BQXVCLEVBQVUsT0FBdUIsRUFBVSxRQUFxQjtRQUF0SixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUFJLENBQUM7SUFFL0s7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUFlO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWM7WUFDeEIsT0FBTzs7WUFHUCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBVyxFQUFFLFNBQWtCLEtBQUssRUFBRSxFQUFFO2dCQUNuRSxJQUFJLE1BQU07b0JBQ04sT0FBTztnQkFFWCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO29CQUM5RSxPQUFPO2lCQUNWO2dCQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtvQkFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzdCLFVBQVUs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QUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxLQUFZO1FBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7UUFFaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBDc3ZIZWFkZXJzLCBEYXRlU2VydmljZSwgRXhwb3J0U2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG4gZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbi8qKiBDbGFzc2UgY29udGVuZW50ZSBsYSBnZXN0aW9uZSBkZWxsZSBpbXBvcnRhemlvbmkgKi9cclxuZXhwb3J0IGNsYXNzIEV4cG9ydEhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBDYWNoZSBkZWwgbW9kdWxvIHBlciBsJ2VzcG9ydGF6aW9uZSBFeGNlbCAqL1xyXG4gICAgcHJpdmF0ZSBFeGNlbEpTOiBhbnk7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgZXhwRXh0czogRXhwb3J0U2VydmljZSwgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBkYXRlRXh0czogRGF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgbCdlc3BvcnRhemlvbmUgZGVpIGRhdGlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IEZvcm1hdG8gZGkgZXNwb3J0YXppb25lLiBMZXR0byBzb2xvIGluIG1vZGFsaXTDoCBSZXBvcnQgZGVsbGEgdGFiZWxsYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJ5RXhwb3J0KGZvcm1hdD86IHN0cmluZykge1xyXG4gICAgICAgIGlmICghdGhpcy5lc3QuRXhwb3J0RnVuY3Rpb24pXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbihhc3luYyAoZGF0YTogYW55W10sIGNhbmNlbDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nKHRoaXMuZXN0LmxjLmxvYyhcIkNhbm5vdCBleHBvcnQgYW4gZW1wdHkgZGF0YXNldFwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBFeHBvcnQoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0ID09IFwiQ1NWXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmVzdC5leHBvcnREb3dubG9hZGVyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChmb3JtYXQgPT0gXCJYTFNYXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5FeGNlbEpTICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBvcnRFeGNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkV4Y2VsSlMgPSBhd2FpdCBpbXBvcnQoXCJleGNlbGpzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydEV4Y2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJJbXBvc3NpYmlsZSBjYXJpY2FyZSBsYSBsaWJyZXJpYSBwZXIgbCdlc3BvcnRhemlvbmUgaW4gRXhjZWxcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJGb3JtYXRvIGRpIGVzcG9ydGF6aW9uZSBub24gcmljb25vc2NpdXRvXCI7XHJcbiAgICAgICAgICAgIH0sIGZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEVmZmV0dHVhIGwnZXNwb3J0YXppb25lIGRlbCBmaWxlIEV4Y2VsIGJhc2FuZG9zaSBzdWwgbW9kdWxvICoqRXhjZWxKUyoqLCBzdWdsaSBoZWFkZXIgKip0aGlzLmVzdC5oZWFkZXJzKiogZSBzdWkgZGF0aSAqKnRoaXMuZXN0LmRhdGEqKiAqL1xyXG4gICAgcHJpdmF0ZSBhc3luYyBleHBvcnRFeGNlbCgpIHtcclxuICAgICAgICBsZXQgaUZpeCA9IDE7XHJcbiAgICAgICAgbGV0IHdvcmtib29rID0gbmV3IHRoaXMuRXhjZWxKUy5Xb3JrYm9vaygpO1xyXG4gICAgICAgIHdvcmtib29rLmNyZWF0b3IgPSBcIkVtYSdzIGJpZyBFcy1UYWJsZVwiO1xyXG4gICAgICAgIHdvcmtib29rLmNyZWF0ZWQgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICBsZXQgc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoJ0RhdGEnKTtcclxuICAgICAgICBsZXQgaGVhZGVyID0gc2hlZXQuZ2V0Um93KDEpO1xyXG4gICAgICAgIGhlYWRlci5mb250ID0geyBib2xkOiB0cnVlIH07XHJcbiAgICAgICAgdGhpcy5lc3QuaGVhZGVycyA9IHRoaXMuZXN0LmhlYWRlcnMuc29ydCgoYTogQ3N2SGVhZGVycywgYjogQ3N2SGVhZGVycykgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGggPSB0aGlzLmVzdC5oZWFkZXJzW2ldO1xyXG4gICAgICAgICAgICBoZWFkZXIuZ2V0Q2VsbChpICsgaUZpeCkudmFsdWUgPSBoLmxhYmVsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVzdC5kYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCByb3cgPSBzaGVldC5nZXRSb3coaSArIGlGaXggKyAxKTtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmVzdC5kYXRhW2ldO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBoID0gdGhpcy5lc3QuaGVhZGVyc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCBjZWxsID0gcm93LmdldENlbGwoaSArIDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGl0ZW1baC5rZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbCA9PSBudWxsIHx8IHZhbCA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGgudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV4Y2VsSlMgdmEgZGkgZGVmYXVsdCBpbiBVVEMgcXVpbmRpIHJpc2NoaWVyZWJiZSBkaSB0aXJhcmUgZ2nDuSAyIG9yZSBhZCBvZ25pIGVzcG9ydGF6aW9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmlzb2duYSBhZ2dpdW5nZXJlIGwndXRjIG9mZnNldCBhbGxhIGRhdGEgYXR0dWFsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb3JyZWN0ZWREYXRlID0gZGF5anMoZGF0ZSkuYWRkKGRheWpzKCkudXRjT2Zmc2V0KCksICdtaW51dGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gY29ycmVjdGVkRGF0ZS50b0RhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHBhcnNlRmxvYXQodmFsLnJlcGxhY2UoJywnLCAnLicpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IGF3YWl0IHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7dHlwZTogXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtcIn0pO1xyXG4gICAgICAgIGxldCBvYmplY3RVcmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICBsZXQgZm4gPSB0aGlzLmVzdC5FeHBvcnRGaWxlTmFtZTtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuZmlsZURvd25sb2FkKG9iamVjdFVybCwgZm4uZW5kc1dpdGgoJy5jc3YnKSA/IGZuLnJlcGxhY2UoJy5jc3YnLCAnLnhsc3gnKSA6IGZuLmVuZHNXaXRoKCcueGxzeCcpID8gZm4gOiBmbiArIFwiLnhsc3hcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIGVmZmV0dGl2YW1lbnRlIGdlbmVyYSBnbGkgaGVhZGVyIGUgaSBkYXRpIHBlciBsJ2VzcG9ydGF6aW9uZSBjb24gKipuZ3gtY3N2KipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBpdGVtcyBPZ2dldHRpIGRhIGVzcG9ydGFyZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldHVwRXhwb3J0KGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCBkcmNkID0gdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLmVzdC5oZWFkZXJzID0gZHJjZCAmJiBkcmNkLmxlbmd0aCA+IDAgPyB0aGlzLmV4cEV4dHMuc2V0dXBGb3JHZW5lcmljRXhwb3J0KGl0ZW1zLCBkcmNkLm1hcCh0ID0+IHsgcmV0dXJuIHsgbGFiZWw6IHQuRGVzY3JpcHRpb24sIGtleTogdC5Qcm9wZXJ0eU5hbWUsIG9yZGVyOiB0LkNvbHVtbk9yZGVyLCB0eXBlOiAnc3RyaW5nJyB9OyB9KSkgOiB0aGlzLmV4cEV4dHMuc2V0dXBGb3JFeHBvcnQoaXRlbXMpO1xyXG4gICAgICAgIHRoaXMuZXN0LmRhdGEgPSBpdGVtcztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9FeHBvcnRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLHVEQUF1RDtBQUN2RCxNQUFNLE9BQU8sYUFBYTtJQUt0Qix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUIsRUFBVSxPQUFzQixFQUFVLE9BQXVCLEVBQVUsT0FBdUIsRUFBVSxRQUFxQjtRQUF0SixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUFJLENBQUM7SUFFL0s7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUFlO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWM7WUFDeEIsT0FBTzs7WUFHUCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBVyxFQUFFLFNBQWtCLEtBQUssRUFBRSxFQUFFO2dCQUNuRSxJQUFJLE1BQU07b0JBQ04sT0FBTztnQkFFWCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO29CQUM5RSxPQUFPO2lCQUNWO2dCQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRTtvQkFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2lCQUNwQjtxQkFDSSxJQUFJLE1BQU0sSUFBSSxNQUFN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aEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEwsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBDc3ZIZWFkZXJzLCBEYXRlU2VydmljZSwgRXhwb3J0U2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG4gZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbi8qKiBDbGFzc2UgY29udGVuZW50ZSBsYSBnZXN0aW9uZSBkZWxsZSBpbXBvcnRhemlvbmkgKi9cclxuZXhwb3J0IGNsYXNzIEV4cG9ydEhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBDYWNoZSBkZWwgbW9kdWxvIHBlciBsJ2VzcG9ydGF6aW9uZSBFeGNlbCAqL1xyXG4gICAgcHJpdmF0ZSBFeGNlbEpTOiBhbnk7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgZXhwRXh0czogRXhwb3J0U2VydmljZSwgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBkYXRlRXh0czogRGF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgbCdlc3BvcnRhemlvbmUgZGVpIGRhdGlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IEZvcm1hdG8gZGkgZXNwb3J0YXppb25lLiBMZXR0byBzb2xvIGluIG1vZGFsaXTDoCBSZXBvcnQgZGVsbGEgdGFiZWxsYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJ5RXhwb3J0KGZvcm1hdD86IHN0cmluZykge1xyXG4gICAgICAgIGlmICghdGhpcy5lc3QuRXhwb3J0RnVuY3Rpb24pXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbihhc3luYyAoZGF0YTogYW55W10sIGNhbmNlbDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nKHRoaXMuZXN0LmxjLmxvYyhcIkNhbm5vdCBleHBvcnQgYW4gZW1wdHkgZGF0YXNldFwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBFeHBvcnQoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0ID09IFwiQ1NWXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydENTVigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZm9ybWF0ID09IFwiWExTWFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRXhjZWxKUyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0RXhjZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FeGNlbEpTID0gYXdhaXQgaW1wb3J0KFwiZXhjZWxqc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBvcnRFeGNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IFwiSW1wb3NzaWJpbGUgY2FyaWNhcmUgbGEgbGlicmVyaWEgcGVyIGwnZXNwb3J0YXppb25lIGluIEV4Y2VsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IFwiRm9ybWF0byBkaSBlc3BvcnRhemlvbmUgbm9uIHJpY29ub3NjaXV0b1wiO1xyXG4gICAgICAgICAgICB9LCBmb3JtYXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBFZmZldHR1YSBsJ2VzcG9ydGF6aW9uZSBpbiBmaWxlIENTViwgdmEgYSBzb3N0aXR1aXJlIHF1ZWwgY29zbyBpbnV0aWxlIGRpIEBjdHJsL25neC1jc3YgKi9cclxuICAgIHByaXZhdGUgZXhwb3J0Q1NWKCkge1xyXG4gICAgICAgIHZhciBjc3ZEYXRhID0gdGhpcy5jb252ZXJ0VG9DU1YoKTtcclxuICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtjc3ZEYXRhXSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pO1xyXG4gICAgICAgIHZhciBvYmplY3RVcmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICBsZXQgZm4gPSB0aGlzLmVzdC5FeHBvcnRGaWxlTmFtZTtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuZmlsZURvd25sb2FkKG9iamVjdFVybCwgZm4uZW5kc1dpdGgoJy54bHN4JykgPyBmbi5yZXBsYWNlKCcueGxzeCcsICcuY3N2JykgOiBmbi5lbmRzV2l0aCgnLmNzdicpID8gZm4gOiBmbiArIFwiLmNzdlwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VuZXJhemlvbmUgc3BlY2lmaWNhIGRlbCBDU1YgKi9cclxuICAgIHByaXZhdGUgY29udmVydFRvQ1NWKCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGNzdiA9ICcnLCByb3cgPSAnJywgc2VwID0gJzsnO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGggPSB0aGlzLmVzdC5oZWFkZXJzW2ldO1xyXG4gICAgICAgICAgICByb3cgKz0gYCR7cm93ICE9ICcnID8gc2VwIDogJyd9XCIke2gubGFiZWx9XCJgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjc3YgKz0gcm93ICsgJ1xcclxcbic7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lc3QuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICByb3cgPSAnJztcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmVzdC5kYXRhW2ldO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBpdGVtW3RoaXMuZXN0LmhlYWRlcnNbal0ua2V5XTtcclxuICAgICAgICAgICAgICAgIHJvdyArPSBgJHtyb3cgIT0gJycgPyBzZXAgOiAnJ31cIiR7dmFsfVwiYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjc3YgKz0gcm93ICsgJ1xcclxcbic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjc3Y7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEVmZmV0dHVhIGwnZXNwb3J0YXppb25lIGRlbCBmaWxlIEV4Y2VsIGJhc2FuZG9zaSBzdWwgbW9kdWxvICoqRXhjZWxKUyoqLCBzdWdsaSBoZWFkZXIgKip0aGlzLmVzdC5oZWFkZXJzKiogZSBzdWkgZGF0aSAqKnRoaXMuZXN0LmRhdGEqKiAqL1xyXG4gICAgcHJpdmF0ZSBhc3luYyBleHBvcnRFeGNlbCgpIHtcclxuICAgICAgICBsZXQgaUZpeCA9IDE7XHJcbiAgICAgICAgbGV0IHdvcmtib29rID0gbmV3IHRoaXMuRXhjZWxKUy5Xb3JrYm9vaygpO1xyXG4gICAgICAgIHdvcmtib29rLmNyZWF0b3IgPSBcIkVtYSdzIGJpZyBFcy1UYWJsZVwiO1xyXG4gICAgICAgIHdvcmtib29rLmNyZWF0ZWQgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICBsZXQgc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoJ0RhdGEnKTtcclxuICAgICAgICBsZXQgaGVhZGVyID0gc2hlZXQuZ2V0Um93KDEpO1xyXG4gICAgICAgIGhlYWRlci5mb250ID0geyBib2xkOiB0cnVlIH07XHJcbiAgICAgICAgdGhpcy5lc3QuaGVhZGVycyA9IHRoaXMuZXN0LmhlYWRlcnMuc29ydCgoYTogQ3N2SGVhZGVycywgYjogQ3N2SGVhZGVycykgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGggPSB0aGlzLmVzdC5oZWFkZXJzW2ldO1xyXG4gICAgICAgICAgICBoZWFkZXIuZ2V0Q2VsbChpICsgaUZpeCkudmFsdWUgPSBoLmxhYmVsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVzdC5kYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCByb3cgPSBzaGVldC5nZXRSb3coaSArIGlGaXggKyAxKTtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmVzdC5kYXRhW2ldO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBoID0gdGhpcy5lc3QuaGVhZGVyc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCBjZWxsID0gcm93LmdldENlbGwoaSArIDEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGl0ZW1baC5rZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChoLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXhjZWxKUyB2YSBkaSBkZWZhdWx0IGluIFVUQyBxdWluZGkgcmlzY2hpZXJlYmJlIGRpIHRpcmFyZSBnacO5IDIgb3JlIGFkIG9nbmkgZXNwb3J0YXppb25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpc29nbmEgYWdnaXVuZ2VyZSBsJ3V0YyBvZmZzZXQgYWxsYSBkYXRhIGF0dHVhbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29ycmVjdGVkRGF0ZSA9IGRhdGUuYWRkKGRhdGUudXRjT2Zmc2V0KCksICdtaW51dGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBjb3JyZWN0ZWREYXRlLnRvRGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5udW1GbXQgPSB2YWwubGVuZ3RoID4gMTAgPyAnZGQvbW0veXl5eSBoOm06cycgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udmVydGVkID0gcGFyc2VGbG9hdCh2YWwucmVwbGFjZSgnLCcsICcuJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gaXNOYU4oY29udmVydGVkKSA/IFwiXCIgOiBjb252ZXJ0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgYnVmZmVyID0gYXdhaXQgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgIGxldCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHt0eXBlOiBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O1wifSk7XHJcbiAgICAgICAgbGV0IG9iamVjdFVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgIGxldCBmbiA9IHRoaXMuZXN0LkV4cG9ydEZpbGVOYW1lO1xyXG4gICAgICAgIHRoaXMudXRpRXh0cy5maWxlRG93bmxvYWQob2JqZWN0VXJsLCBmbi5lbmRzV2l0aCgnLmNzdicpID8gZm4ucmVwbGFjZSgnLmNzdicsICcueGxzeCcpIDogZm4uZW5kc1dpdGgoJy54bHN4JykgPyBmbiA6IGZuICsgXCIueGxzeFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBjaGUgZWZmZXR0aXZhbWVudGUgZ2VuZXJhIGdsaSBoZWFkZXIgZSBpIGRhdGkgcGVyIGwnZXNwb3J0YXppb25lIGNvbiAqKm5neC1jc3YqKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IGl0ZW1zIE9nZ2V0dGkgZGEgZXNwb3J0YXJlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0dXBFeHBvcnQoaXRlbXM6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IGRyY2QgPSB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb247XHJcblxyXG4gICAgICAgIHRoaXMuZXN0LmhlYWRlcnMgPSBkcmNkICYmIGRyY2QubGVuZ3RoID4gMCA/IFxyXG4gICAgICAgICAgICB0aGlzLmV4cEV4dHMuc2V0dXBGb3JHZW5lcmljRXhwb3J0KGl0ZW1zLCBkcmNkLm1hcCh0ID0+IHsgcmV0dXJuIHsgbGFiZWw6IHQuRGVzY3JpcHRpb24sIGtleTogdC5Qcm9wZXJ0eU5hbWUsIHByb3BLZXk6IHQuUHJvcGVydHlOYW1lLCBvcmRlcjogdC5Db2x1bW5PcmRlciwgdHlwZTogJ3N0cmluZycgfTsgfSkpIDogXHJcbiAgICAgICAgICAgIHRoaXMuZXhwRXh0cy5zZXR1cEZvckV4cG9ydChpdGVtcywgdGhpcy5lc3QuRXhwb3J0T25seVZpc2libGVDb2x1bW5zID8gdGhpcy5lc3QuQ29sdW1uc0xpc3QuZmlsdGVyKHQgPT4gdC52aXNpYmxlKS5tYXAodCA9PiB0LmlkKSA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuZXN0LmRhdGEgPSBpdGVtcztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -42,15 +42,19 @@ export class ReportModeHandler {
|
|
|
42
42
|
let clm = view.report_columns[i];
|
|
43
43
|
var th = new EsThDirective(null);
|
|
44
44
|
th.th = clm.id;
|
|
45
|
-
th.thStaticContent = clm.description;
|
|
45
|
+
th.thStaticContent = clm.description || null;
|
|
46
46
|
th.thBackgroundColor = clm.color;
|
|
47
|
+
th.thAlignment = clm.alignment;
|
|
48
|
+
th.thFormat = clm.format;
|
|
47
49
|
var td = new EsTdDirective(null);
|
|
48
50
|
td.td = clm.id;
|
|
49
51
|
td.tdPropertyAccessor = i.toString();
|
|
52
|
+
td.tdAlignment = clm.alignment;
|
|
53
|
+
td.tdFormat = clm.format;
|
|
50
54
|
ret.ths.push(th);
|
|
51
55
|
ret.tds.push(td);
|
|
52
56
|
}
|
|
53
57
|
return ret;
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0TW9kZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2NvcmUvaGFuZGxlcnMvUmVwb3J0TW9kZUhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUtqRSxtRkFBbUY7QUFDbkYsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQiwwQkFBMEI7SUFDMUIsWUFBb0IsR0FBcUIsRUFBVSxTQUEyQjtRQUExRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUksQ0FBQztJQUVuRixvSkFBb0o7SUFDN0ksb0JBQW9CO1FBRXZCLHlFQUF5RTtRQUN6RSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELHdDQUF3QztRQUN4QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzlCLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNoQixLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFFbkMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSx5QkFBeUIsQ0FBQyxJQUFvQjtRQUNqRCxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRS9CLHNFQUFzRTtRQUN0RSxrRUFBa0U7UUFFbEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFakMsSUFBSSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2YsRUFBRSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUM3QyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNqQyxFQUFFLENBQUMsV0FBVyxHQUFnQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQzVELEVBQUUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUV6QixJQUFJLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixFQUFFLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyxXQUFXLEdBQWdDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDNUQsRUFBRSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBRXpCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBIYW5kbGVyc1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNIYW5kbGVyIH0gZnJvbSBcIi4vVXRpbGl0aWVzSGFuZGxlclwiO1xyXG5cclxuLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuaW1wb3J0IHsgRXNUaERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBFc1RkRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZXNfdGQuZGlyZWN0aXZlXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEFwcFNlYXJjaCB9IGZyb20gXCIuLi8uLi9kb21haW4vZXh0ZXJuYWxzL2FwcHNlYXJjaC9BcHBTZWFyY2hcIjtcclxuXHJcbi8qKiBDbGFzc2UgY2hlIGdlc3Rpc2NlIGxhIG1vZGFsaXTDoCBSZXBvcnQgZGVsbCdlcy10YWJsZSB1dGlsaXp6YXRhIG5lbCBNZXRlcmluZyAqL1xyXG5leHBvcnQgY2xhc3MgUmVwb3J0TW9kZUhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVzdDogRXNUYWJsZUNvbXBvbmVudCwgcHJpdmF0ZSB1dGlsaXRpZXM6IFV0aWxpdGllc0hhbmRsZXIpIHsgfVxyXG5cclxuICAgIC8qKiBNZXRvZG8gY2hlIHNpIG9jY3VwYSBkaSBnZXN0aXJlIGxhIGdyYWZpY2EgZGVsbGEgdGFiZWxsYSBpbiBiYXNlIGFsbGUgaW5mb3JtYXppb25pIGRpIG9yZGluYW1lbnRvIGNvbG9ubmUgZSBwYWdpbmF6aW9uZSBjb250ZW51dGkgbmVsIG1vZGVsbG8gKi9cclxuICAgIHB1YmxpYyByZXZpZXdSZXBvcnRCaW5kaW5ncygpIHtcclxuXHJcbiAgICAgICAgLy8gQWxsaW5lbyBsZSBpbmZvcm1hemlvbmkgc3UgZXZlbnR1YWxpIG9yZGluYW1lbnRpIGZhdHRpIHByZWNlZGVudGVtZW50ZVxyXG4gICAgICAgIGlmICh0aGlzLmVzdC5WaWV3Lm9yZGVycyAmJiB0aGlzLmVzdC5WaWV3Lm9yZGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcub3JkZXJzLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5WaWV3LnJlcG9ydF9jb2x1bW5zLmZpbHRlcihjID0+IGMuaWQgPT0gdC5jb2x1bW4pWzBdLm9yZGVyID0gdC5vcmRlcjtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZWN1cGVybyBpbCBjb3VudCBwcmVjZWRlbnRlIHNlIHNlcnZlXHJcbiAgICAgICAgbGV0IGNvdW50ID0gdGhpcy5lc3QuVmlldy5vYmplY3Rjb3VudDtcclxuICAgICAgICBpZiAoY291bnQgIT0gLTIpXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LnByZXZpb3VzQ291bnQgPSBjb3VudDtcclxuICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAtMilcclxuICAgICAgICAgICAgY291bnQgPSB0aGlzLmVzdC5wcmV2aW91c0NvdW50O1xyXG5cclxuICAgICAgICBsZXQgaXBwID0gKHRoaXMuZXN0LlZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgfHwgMTUpO1xyXG4gICAgICAgIHRoaXMuZXN0LlZpZXcucGFnZXMgPSBNYXRoLmNlaWwoY291bnQgLyBpcHApO1xyXG4gICAgICAgIHRoaXMuZXN0LmFycmF5UHVsc2FudGkgPSB0aGlzLnV0aWxpdGllcy5nZXRQYWdlc0FycmF5KDYsIHRoaXMuZXN0LlZpZXcucGFnZSwgdGhpcy5lc3QuVmlldy5wYWdlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBBcHBTZWFyY2ggcXVlc3RvIG1ldG9kbyBnZW5lcmEgbGEgbGlzdGEgZGkgdGggZSB0ZCBjaGUgc2kgcG9zc29ubyBjb2xsZWdhcmUgYWwgZ2lybyBzdGFuZGFyZC5cclxuICAgICAqIFNlIG5vbiBjaSBmb3NzZSBxdWVzdG8gcGFzc2FnZ2lvIGludGVybWVkaW8gbGEgZ2VzdGlvbmUgZGVsbGEgbW9kYWxpdMOgIHJlcG9ydCBzYXJlYmJlIDEwMCUgY3VzdG9tLCBcclxuICAgICAqIGNvbWUgcG9pIGxvIGVyYSBwcmltYSBjaGUgbGEgZmFjZXNzaSBwYXNzYXJlIGRhbCBnaXJvIGNoZSBmYW5ubyB0dXR0ZSBsZSBhbHRyZSBtb2RhbGl0w6BcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtBcHBTZWFyY2g8YW55Pn0gdmlldyBWaWV3IGluIG1vZGFsaXTDoCByZXBvcnQgY29udGVuZW50ZSBsZSBpbmZvcm1hemlvbmkgc3VsbGUgY29sb25uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7eyB0aHM6IEVzVGhEaXJlY3RpdmVbXSwgdGRzOiBFc1RkRGlyZWN0aXZlW10gfX0gTGlzdGEgZGkgZGlyZXR0aXZlIHBlciBnbGkgaGVhZGVyIGUgcGVyIGlsIGJvZHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdlbmVyYXRlVGhzQW5kVGRzRnJvbVZpZXcodmlldzogQXBwU2VhcmNoPGFueT4pOiB7IHRoczogRXNUaERpcmVjdGl2ZVtdLCB0ZHM6IEVzVGREaXJlY3RpdmVbXSB9IHtcclxuICAgICAgICB2YXIgcmV0ID0geyB0aHM6IFtdLCB0ZHM6IFtdIH07XHJcblxyXG4gICAgICAgIC8vIE9yZGluYW1lbnRvIHBlciBvcmEgY29tbWVudGF0by4uLiBub24gdm9ycmViYmUgbWkgZnVja2FwcGFzc2UgdHV0dG9cclxuICAgICAgICAvL3ZpZXcucmVwb3J0X2NvbHVtbnMuc29ydCgoYzEsIGMyKSA9PiBjMS5zZXEgfHwgMCAtIGMyLnNlcSB8fCAwKTtcclxuICAgICAgICBcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpZXcucmVwb3J0X2NvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGNsbSA9IHZpZXcucmVwb3J0X2NvbHVtbnNbaV07XHJcblxyXG4gICAgICAgICAgICB2YXIgdGggPSBuZXcgRXNUaERpcmVjdGl2ZShudWxsKTtcclxuICAgICAgICAgICAgdGgudGggPSBjbG0uaWQ7XHJcbiAgICAgICAgICAgIHRoLnRoU3RhdGljQ29udGVudCA9IGNsbS5kZXNjcmlwdGlvbiB8fCBudWxsO1xyXG4gICAgICAgICAgICB0aC50aEJhY2tncm91bmRDb2xvciA9IGNsbS5jb2xvcjtcclxuICAgICAgICAgICAgdGgudGhBbGlnbm1lbnQgPSA8XCJDZW50ZXJcIiB8IFwiTGVmdFwiIHwgXCJSaWdodFwiPmNsbS5hbGlnbm1lbnQ7XHJcbiAgICAgICAgICAgIHRoLnRoRm9ybWF0ID0gY2xtLmZvcm1hdDtcclxuXHJcbiAgICAgICAgICAgIHZhciB0ZCA9IG5ldyBFc1RkRGlyZWN0aXZlKG51bGwpO1xyXG4gICAgICAgICAgICB0ZC50ZCA9IGNsbS5pZDtcclxuICAgICAgICAgICAgdGQudGRQcm9wZXJ0eUFjY2Vzc29yID0gaS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0ZC50ZEFsaWdubWVudCA9IDxcIkNlbnRlclwiIHwgXCJMZWZ0XCIgfCBcIlJpZ2h0XCI+Y2xtLmFsaWdubWVudDtcclxuICAgICAgICAgICAgdGQudGRGb3JtYXQgPSBjbG0uZm9ybWF0O1xyXG5cclxuICAgICAgICAgICAgcmV0LnRocy5wdXNoKHRoKTtcclxuICAgICAgICAgICAgcmV0LnRkcy5wdXNoKHRkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|