@esfaenza/es-table 11.2.22-beta3 → 11.2.22-beta7
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 +3129 -2988
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/bundles/esfaenza-es-table.umd.min.js +1 -15
- package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
- package/esfaenza-es-table.d.ts +6 -5
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/esfaenza-es-table.js +7 -6
- package/esm2015/lib/components/es-table/es_table.component.js +1299 -0
- package/esm2015/lib/components/es-table/es_table.component.loc.js +36 -0
- package/esm2015/lib/components/es-td/es_td.component.js +106 -0
- package/esm2015/lib/components/es-th/es_th.component.js +160 -0
- package/esm2015/lib/components/pager/table_pager.component.js +100 -0
- package/esm2015/lib/components/pager/table_pager.component.loc.js +22 -0
- package/esm2015/lib/core/handlers/classes/ColumnMetadataHandler.js +666 -0
- package/esm2015/lib/core/handlers/classes/DynamicModeHandler.js +63 -0
- package/esm2015/lib/core/handlers/classes/ExportHandler.js +41 -0
- package/esm2015/lib/core/handlers/classes/HierarchyModeHandler.js +134 -0
- package/esm2015/lib/core/handlers/classes/ItemsHandler.js +120 -0
- package/esm2015/lib/core/handlers/classes/ReportModeHandler.js +67 -0
- package/esm2015/lib/core/handlers/classes/RowGroupingHandler.js +474 -0
- package/esm2015/lib/core/handlers/classes/SelectionHandler.js +524 -0
- package/esm2015/lib/core/handlers/classes/UtilitiesHandler.js +170 -0
- package/esm2015/lib/core/handlers/index.js +10 -0
- package/esm2015/lib/domain/configuration/EsTableDefaultable.js +4 -0
- package/esm2015/lib/domain/configuration/EsTableModuleConfig.js +4 -0
- package/esm2015/lib/domain/internals/classes/EsTableColumn.js +1 -1
- package/esm2015/lib/es-table.module.js +6 -6
- package/esm2015/lib/tokens.js +1 -1
- package/esm2015/public-api.js +6 -6
- package/fesm2015/esfaenza-es-table.js +2818 -2701
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/{es_table.component.d.ts → components/es-table/es_table.component.d.ts} +35 -573
- package/lib/{es_table.component.loc.d.ts → components/es-table/es_table.component.loc.d.ts} +0 -0
- package/lib/{es_td.component.d.ts → components/es-td/es_td.component.d.ts} +0 -0
- package/lib/{es_th.component.d.ts → components/es-th/es_th.component.d.ts} +6 -0
- package/lib/{pager → components/pager}/table_pager.component.d.ts +4 -1
- package/lib/{pager → components/pager}/table_pager.component.loc.d.ts +0 -0
- package/lib/core/handlers/classes/ColumnMetadataHandler.d.ts +158 -0
- package/lib/core/handlers/classes/DynamicModeHandler.d.ts +31 -0
- package/lib/core/handlers/classes/ExportHandler.d.ts +20 -0
- package/lib/core/handlers/classes/HierarchyModeHandler.d.ts +38 -0
- package/lib/core/handlers/classes/ItemsHandler.d.ts +41 -0
- package/lib/core/handlers/classes/ReportModeHandler.d.ts +19 -0
- package/lib/core/handlers/classes/RowGroupingHandler.d.ts +114 -0
- package/lib/core/handlers/classes/SelectionHandler.d.ts +153 -0
- package/lib/core/handlers/classes/UtilitiesHandler.d.ts +66 -0
- package/lib/core/handlers/index.d.ts +9 -0
- package/lib/{models → domain/configuration}/EsTableDefaultable.d.ts +0 -0
- package/lib/{models → domain/configuration}/EsTableModuleConfig.d.ts +0 -0
- package/lib/domain/internals/classes/EsTableColumn.d.ts +2 -0
- package/lib/es-table.module.d.ts +1 -1
- package/lib/tokens.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -5
- package/esm2015/lib/es_table.component.js +0 -3453
- package/esm2015/lib/es_table.component.loc.js +0 -35
- package/esm2015/lib/es_td.component.js +0 -106
- package/esm2015/lib/es_th.component.js +0 -150
- package/esm2015/lib/models/EsTableDefaultable.js +0 -4
- package/esm2015/lib/models/EsTableModuleConfig.js +0 -4
- package/esm2015/lib/pager/table_pager.component.js +0 -92
- package/esm2015/lib/pager/table_pager.component.loc.js +0 -22
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Dominio
|
|
2
|
+
import { EsTableColumnsDefinition } from "../../../domain";
|
|
3
|
+
/** Classe contenente le gestioni particolari della modalità dinamica dell'es-table */
|
|
4
|
+
export class DynamicModeHandler {
|
|
5
|
+
constructor(est) {
|
|
6
|
+
this.est = est;
|
|
7
|
+
}
|
|
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
|
+
/** Se non ho l'Input **DynamicRowColumnsDefinition** in modalità dinamica lo riempio con il default nome della colonna = testo della colonna */
|
|
45
|
+
eventuallyReviewDynamicColumns() {
|
|
46
|
+
// Senza oggetti esco
|
|
47
|
+
if (!this.est.TMPBoundSource || this.est.TMPBoundSource.length == 0)
|
|
48
|
+
return;
|
|
49
|
+
var useGenericItems = !!this.est.TMPBoundSource[0]["properties"];
|
|
50
|
+
if (!useGenericItems || (!this.est.FirstBind && this.est.DynamicRowColumnsDefinition && this.est.DynamicRowColumnsDefinition.length > 0))
|
|
51
|
+
return;
|
|
52
|
+
if ((!this.est.DynamicRowColumnsDefinition || this.est.DynamicRowColumnsDefinition.length == 0)) {
|
|
53
|
+
var props = this.est.TMPBoundSource[0]["properties"];
|
|
54
|
+
this.est.DynamicRowColumnsDefinition = [];
|
|
55
|
+
for (let key in props)
|
|
56
|
+
this.est.DynamicRowColumnsDefinition.push(new EsTableColumnsDefinition(key, key));
|
|
57
|
+
this.est.UserDefinedDynamicCols = false;
|
|
58
|
+
}
|
|
59
|
+
else
|
|
60
|
+
this.est.UserDefinedDynamicCols = true;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZGVIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvRHluYW1pY01vZGVIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsd0JBQXdCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RSxzRkFBc0Y7QUFDdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUFvQixHQUFxQjtRQUFyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFFOUM7Ozs7Ozs7OztPQVNHO0lBQ0ksa0JBQWtCLENBQUMsSUFBWSxFQUFFLGNBQXdCLEVBQUUsSUFBaUI7UUFDL0UsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ssYUFBYSxDQUFDLElBQVksRUFBRSxJQUFjLEVBQUUsSUFBaUI7UUFFakUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQ2hDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGdKQUFnSjtJQUN6SSw4QkFBOEI7UUFDakMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMvRCxPQUFPO1FBRVgsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BJLE9BQU87UUFFWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzdGLElBQUksS0FBSyxHQUEyQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztZQUMxQyxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUs7Z0JBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksd0JBQXdCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7U0FDM0M7O1lBR0csSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuXHJcbi8vIERvbWluaW9cclxuaW1wb3J0IHsgRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uLCBHZW5lcmljSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9kb21haW5cIjtcclxuXHJcbi8qKiBDbGFzc2UgY29udGVuZW50ZSBsZSBnZXN0aW9uaSBwYXJ0aWNvbGFyaSBkZWxsYSBtb2RhbGl0w6AgZGluYW1pY2EgZGVsbCdlcy10YWJsZSAqL1xyXG5leHBvcnQgY2xhc3MgRHluYW1pY01vZGVIYW5kbGVyIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50KSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBkaSBzdXBwb3J0byBhbGxhIGNyZWF6aW9uZSBkaSB1biByb3V0ZXIgbGluayBwYXJhbWV0cml6emF0byBhbGwnb2dnZXR0byBjb3JyZW50ZSB1dGlsaXp6YXRvIG5lbGxhIG1vZGFsaXTDoCBkaW5hbWljYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFBhdGggc3UgY3VpIG5hdmlnYXJlIGNvbiBldmVudHVhbGkgcGFyYW1ldHJpIHJpZmVyaXRpIGFsbCdvZ2dldHRvIGNvdG5lc3R1YWxlIGNvbWUgezB9LCB7MX0sIGVjYy4uLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGFyYW1ldGVyUHJvcHMgTGlzdGEgcG9zaXppb25hbGUgZGVsbGUgcHJvcHJpZXTDoCBhIGN1aSBiaW5kYXJlIGkgcmlmZXJpbWVudGkgZGVsIHBhcmFtZXRybyAqKnBhdGgqKlxyXG4gICAgICogRXMuIElsIHZhbG9yZSBkZWxhIHByb3ByaWV0w6AgYWxsJ2luZGljZSAwIGRpIHF1ZXN0byBhcnJheSB2ZXJyw6Agc29zdGl0dWl0YSBhbCB2YWxvcmUgezB9IGRlbCBwYXJhbWV0cm8gKipwYXRoKipcclxuICAgICAqIEBwYXJhbSB7R2VuZXJpY0l0ZW19IGl0ZW0gT2dnZXR0byBnZW5lcmljbyBjb2xsZWdhdG8gYSBxdWVzdG8gY29udGVzdG9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBSb3V0ZXIgbGluayBnZW5lcmF0byBpbiBiYXNlIGFsIHBhcmFtZXRyaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2VuZXJhdGVSb3V0ZXJMaW5rKHBhdGg6IHN0cmluZywgcGFyYW1ldGVyUHJvcHM6IHN0cmluZ1tdLCBpdGVtOiBHZW5lcmljSXRlbSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXN0LkR5bmFtaWNUYWJsZVJvdXRlckxpbmtDYWNoZVtpdGVtLl9oYXNoICsgcGF0aF0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXN0LkR5bmFtaWNUYWJsZVJvdXRlckxpbmtDYWNoZVtpdGVtLl9oYXNoICsgcGF0aF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGxpbmsgPSB0aGlzLmdldFJvdXRlckxpbmsocGF0aCwgcGFyYW1ldGVyUHJvcHMsIGl0ZW0pO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljVGFibGVSb3V0ZXJMaW5rQ2FjaGVbaXRlbS5faGFzaCArIHBhdGhdID0gbGluaztcclxuICAgICAgICAgICAgcmV0dXJuIGxpbms7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYSB1biByb3V0ZXIgbGlua1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFBhdGggc3UgY3VpIG5hdmlnYXJlIGNvbiBldmVudHVhbGkgcGFyYW1ldHJpIHJpZmVyaXRpIGFsbCdvZ2dldHRvIGNvdG5lc3R1YWxlIGNvbWUgezB9LCB7MX0sIGVjYy4uLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGFycyBMaXN0YSBwb3NpemlvbmFsZSBkZWxsZSBwcm9wcmlldMOgIGEgY3VpIGJpbmRhcmUgaSByaWZlcmltZW50aSBkZWwgcGFyYW1ldHJvICoqcGF0aCoqXHJcbiAgICAgKiBFcy4gSWwgdmFsb3JlIGRlbGEgcHJvcHJpZXTDoCBhbGwnaW5kaWNlIDAgZGkgcXVlc3RvIGFycmF5IHZlcnLDoCBzb3N0aXR1aXRhIGFsIHZhbG9yZSB7MH0gZGVsIHBhcmFtZXRybyAqKnBhdGgqKlxyXG4gICAgICogQHBhcmFtIHtHZW5lcmljSXRlbX0gaXRlbSBPZ2dldHRvIGdlbmVyaWNvIGNvbGxlZ2F0byBhIHF1ZXN0byBjb250ZXN0b1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnl9IFJvdXRlciBsaW5rIGdlbmVyYXRvIGluIGJhc2UgYWwgcGFyYW1ldHJpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Um91dGVyTGluayhwYXRoOiBzdHJpbmcsIHBhcnM6IHN0cmluZ1tdLCBpdGVtOiBHZW5lcmljSXRlbSk6IGFueSB7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFycy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgneycgKyBpICsgJ30nLCBpdGVtLnByb3BlcnRpZXNbcGFyc1tpXV0pO1xyXG5cclxuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC8nL2csICdcIicpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZSBub24gaG8gbCdJbnB1dCAqKkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbioqIGluIG1vZGFsaXTDoCBkaW5hbWljYSBsbyByaWVtcGlvIGNvbiBpbCBkZWZhdWx0IG5vbWUgZGVsbGEgY29sb25uYSA9IHRlc3RvIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIHB1YmxpYyBldmVudHVhbGx5UmV2aWV3RHluYW1pY0NvbHVtbnMoKSB7XHJcbiAgICAgICAgLy8gU2VuemEgb2dnZXR0aSBlc2NvXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZSB8fCB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgdXNlR2VuZXJpY0l0ZW1zID0gISF0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgaWYgKCF1c2VHZW5lcmljSXRlbXMgfHwgKCF0aGlzLmVzdC5GaXJzdEJpbmQgJiYgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uICYmIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGggPiAwKSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoKCF0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gfHwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICAgICAgICB2YXIgcHJvcHMgPSA8UmVjb3JkPHN0cmluZywgc3RyaW5nPj50aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXVtcInByb3BlcnRpZXNcIl07XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gcHJvcHMpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ucHVzaChuZXcgRXNUYWJsZUNvbHVtbnNEZWZpbml0aW9uKGtleSwga2V5KSk7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlVzZXJEZWZpbmVkRHluYW1pY0NvbHMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5lc3QuVXNlckRlZmluZWREeW5hbWljQ29scyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class ExportHandler {
|
|
2
|
+
constructor(est, expExts, msgExts) {
|
|
3
|
+
this.est = est;
|
|
4
|
+
this.expExts = expExts;
|
|
5
|
+
this.msgExts = msgExts;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Effettua l'esportazione dei dati
|
|
9
|
+
*
|
|
10
|
+
* @param {string} format Formato di esportazione. Letto solo in modalità Report della tabella
|
|
11
|
+
*/
|
|
12
|
+
tryExport(format) {
|
|
13
|
+
if (!this.est.ExportFunction)
|
|
14
|
+
return;
|
|
15
|
+
if (this.est.reportMode)
|
|
16
|
+
this.est.ExportFunction(format);
|
|
17
|
+
else
|
|
18
|
+
this.est.ExportFunction((data, cancel = false) => {
|
|
19
|
+
if (cancel)
|
|
20
|
+
return;
|
|
21
|
+
if (data.length == 0) {
|
|
22
|
+
this.msgExts.simpleWarning(this.est.lc.loc("Cannot export an empty dataset"));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.setupExport(data);
|
|
26
|
+
this.est.cdr.detectChanges();
|
|
27
|
+
setTimeout(() => { this.est.exportDownloader.nativeElement.click(); });
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Metodo che effettivamente genera gli header e i dati per l'esportazione con **ngx-csv**
|
|
32
|
+
*
|
|
33
|
+
* @param {any[]} items Oggetti da esportare
|
|
34
|
+
*/
|
|
35
|
+
setupExport(items) {
|
|
36
|
+
let drcd = this.est.DynamicRowColumnsDefinition;
|
|
37
|
+
this.est.headers = drcd && drcd.length > 0 ? this.expExts.setupForGenericExport(items, drcd.map(t => { return { label: t.description, key: t.propertyName, order: t.columnOrder }; })) : this.expExts.setupForExport(items);
|
|
38
|
+
this.est.data = items;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9jbGFzc2VzL0V4cG9ydEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFBb0IsR0FBcUIsRUFBVSxPQUFzQixFQUFVLE9BQXVCO1FBQXRGLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQUksQ0FBQztJQUUvRzs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLE1BQWU7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYztZQUN4QixPQUFPO1FBRVgsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVU7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7O1lBR2hDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBVyxFQUFFLFNBQWtCLEtBQUssRUFBRSxFQUFFO2dCQUM3RCxJQUFJLE1BQU07b0JBQ04sT0FBTztnQkFFWCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO29CQUM5RSxPQUFPO2lCQUNWO2dCQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssV0FBVyxDQUFDLEtBQVk7UUFDNUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztRQUVoRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVOLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHBvcnRTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcblxyXG5leHBvcnQgY2xhc3MgRXhwb3J0SGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVzdDogRXNUYWJsZUNvbXBvbmVudCwgcHJpdmF0ZSBleHBFeHRzOiBFeHBvcnRTZXJ2aWNlLCBwcml2YXRlIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGwnZXNwb3J0YXppb25lIGRlaSBkYXRpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCBGb3JtYXRvIGRpIGVzcG9ydGF6aW9uZS4gTGV0dG8gc29sbyBpbiBtb2RhbGl0w6AgUmVwb3J0IGRlbGxhIHRhYmVsbGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyeUV4cG9ydChmb3JtYXQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZXN0LkV4cG9ydEZ1bmN0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmVzdC5yZXBvcnRNb2RlKVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbihmb3JtYXQpO1xyXG5cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkV4cG9ydEZ1bmN0aW9uKChkYXRhOiBhbnlbXSwgY2FuY2VsOiBib29sZWFuID0gZmFsc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjYW5jZWwpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmcodGhpcy5lc3QubGMubG9jKFwiQ2Fubm90IGV4cG9ydCBhbiBlbXB0eSBkYXRhc2V0XCIpKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cEV4cG9ydChkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0LmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5lc3QuZXhwb3J0RG93bmxvYWRlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7IH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBjaGUgZWZmZXR0aXZhbWVudGUgZ2VuZXJhIGdsaSBoZWFkZXIgZSBpIGRhdGkgcGVyIGwnZXNwb3J0YXppb25lIGNvbiAqKm5neC1jc3YqKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IGl0ZW1zIE9nZ2V0dGkgZGEgZXNwb3J0YXJlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0dXBFeHBvcnQoaXRlbXM6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IGRyY2QgPSB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb247XHJcblxyXG4gICAgICAgIHRoaXMuZXN0LmhlYWRlcnMgPSBkcmNkICYmIGRyY2QubGVuZ3RoID4gMCA/IHRoaXMuZXhwRXh0cy5zZXR1cEZvckdlbmVyaWNFeHBvcnQoaXRlbXMsIGRyY2QubWFwKHQgPT4geyByZXR1cm4geyBsYWJlbDogdC5kZXNjcmlwdGlvbiwga2V5OiB0LnByb3BlcnR5TmFtZSwgb3JkZXI6IHQuY29sdW1uT3JkZXIgfTsgfSkpIDogdGhpcy5leHBFeHRzLnNldHVwRm9yRXhwb3J0KGl0ZW1zKTtcclxuICAgICAgICB0aGlzLmVzdC5kYXRhID0gaXRlbXM7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export class HierarchyModeHandler {
|
|
2
|
+
constructor(est) {
|
|
3
|
+
this.est = est;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Data una lista di oggetti assegno il livello gerarchico rispetto alla lista di oggetti passata
|
|
7
|
+
*
|
|
8
|
+
* @param {any[]} objs Lista di oggetti a cui aggiungere l'informazione del livello gerarchico
|
|
9
|
+
*/
|
|
10
|
+
assignHierarchyLevels(objs) {
|
|
11
|
+
// Casistica input nullo
|
|
12
|
+
if (!objs || !objs.length)
|
|
13
|
+
return;
|
|
14
|
+
//Se mancano entrambe le info le cerco di valorizzare in automatico coi default "parentid" e "id" (posto che le props esistano nell'oggetto)
|
|
15
|
+
if (!this.est.ParentKey && !this.est.OwnKey) {
|
|
16
|
+
if (objs[0]['parentid'] !== undefined)
|
|
17
|
+
this.est.ParentKey = 'parentid';
|
|
18
|
+
if (objs[0]['id'] !== undefined)
|
|
19
|
+
this.est.OwnKey = 'id';
|
|
20
|
+
}
|
|
21
|
+
//Check finale per assicurarmi che le props ci siano
|
|
22
|
+
if (!this.est.ParentKey || !this.est.OwnKey) {
|
|
23
|
+
console.error('Per utilizzare il sistema in modalità gerarchica è obbligatorio specificare sia ParentKey che OwnKey. Fallback a sistema non gerarchico');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Valorizzazione campi level, expanded, e visible per ogni item
|
|
27
|
+
let currentLevel = 1;
|
|
28
|
+
let assigned = 0;
|
|
29
|
+
do {
|
|
30
|
+
assigned = this.assignLevel(objs, currentLevel);
|
|
31
|
+
currentLevel++;
|
|
32
|
+
} while (assigned > 0);
|
|
33
|
+
// butto su lato html e poi me la gioco là con padding = 20 * (level - 1) per far capire il diverso livello
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Per ognuno degli oggetti passati gli assegna un livello di gerarchia in base a **ParentKey** e **OwnKey**
|
|
37
|
+
*
|
|
38
|
+
* @param {any[]} objs Oggetti a cui assegnare il livello di gerarchia
|
|
39
|
+
* @param {number} levelToAssign Livello che sta assegnando attualmente questa iterazione (dato che è ricorsiva)
|
|
40
|
+
*
|
|
41
|
+
* @returns {number} Numero di oggetti a cui è stato assegnato un livello gerarchico
|
|
42
|
+
*/
|
|
43
|
+
assignLevel(objs, levelToAssign) {
|
|
44
|
+
let assigned = 0;
|
|
45
|
+
for (let i = 0; i < objs.length; i++) {
|
|
46
|
+
let obj = objs[i];
|
|
47
|
+
// Se la parentKey non è valorizzata, questo è il livello 0 (1... perché gli 0 son perciolosi)
|
|
48
|
+
if (!obj[this.est.ParentKey] && levelToAssign == 1) {
|
|
49
|
+
obj._level = 1;
|
|
50
|
+
obj._visible = true;
|
|
51
|
+
obj._expanded = this.est.StartsExpanded;
|
|
52
|
+
assigned++;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Per i livelli superiore al primo
|
|
56
|
+
if (obj[this.est.ParentKey] && levelToAssign > 1) {
|
|
57
|
+
// trovo il parent
|
|
58
|
+
for (let p = 0; p < objs.length; p++) {
|
|
59
|
+
let possibleParent = objs[p];
|
|
60
|
+
// Trovato il parent dell'item, assegno all'item il livello giusto
|
|
61
|
+
if (possibleParent[this.est.OwnKey] == obj[this.est.ParentKey] && possibleParent._level == levelToAssign - 1) {
|
|
62
|
+
obj._level = levelToAssign;
|
|
63
|
+
// So che questo item ha un parent. Ribadisco che il parent è espanso in base alle impostazione e stessa logica
|
|
64
|
+
// per la visibilità del figlio
|
|
65
|
+
possibleParent._expanded = this.est.StartsExpanded;
|
|
66
|
+
possibleParent.parent = true;
|
|
67
|
+
obj._visible = this.est.StartsExpanded;
|
|
68
|
+
assigned++;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return assigned;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Funzione che permette di effettuare l'espansione di un parent quando la tabella funziona in modalità gerarchica
|
|
78
|
+
*
|
|
79
|
+
* @param {string} key Chiave del parent da espandere
|
|
80
|
+
*/
|
|
81
|
+
expandParent(key) {
|
|
82
|
+
for (let i = 0; i < this.est.boundSource.length; i++) {
|
|
83
|
+
let obj = this.est.boundSource[i];
|
|
84
|
+
// Trovo il parent con quell'id e lo espando
|
|
85
|
+
if (obj[this.est.OwnKey] == key) {
|
|
86
|
+
obj._expanded = true;
|
|
87
|
+
for (let ic = 0; ic < this.est.boundSource.length; ic++) {
|
|
88
|
+
let child = this.est.boundSource[ic];
|
|
89
|
+
// Trovo tutti i child di quel parent e li rendo visibili
|
|
90
|
+
if (child[this.est.ParentKey] == key)
|
|
91
|
+
child._visible = true;
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Funzione che permette di effettuare il collapse di un parent quando la tabella funziona in modalità gerarchica
|
|
99
|
+
*
|
|
100
|
+
* @param {string} key Chiave del parent da collassare
|
|
101
|
+
*/
|
|
102
|
+
collapseParent(key) {
|
|
103
|
+
for (let i = 0; i < this.est.boundSource.length; i++) {
|
|
104
|
+
let obj = this.est.boundSource[i];
|
|
105
|
+
// Trovo il parent con quell'id e lo collasso
|
|
106
|
+
if (obj[this.est.OwnKey] == key) {
|
|
107
|
+
obj._expanded = false;
|
|
108
|
+
// Collasso/nascondo tutti i child del parent
|
|
109
|
+
this.collapseChildOfParent(key);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Collassa ricorsivamente tutti i figli di un parent identificato dalla **parentKey**
|
|
116
|
+
*
|
|
117
|
+
* @param {string} parentKey Chiave del parent di cui collassare i figli
|
|
118
|
+
*/
|
|
119
|
+
collapseChildOfParent(parentKey) {
|
|
120
|
+
for (let ic = 0; ic < this.est.boundSource.length; ic++) {
|
|
121
|
+
let child = this.est.boundSource[ic];
|
|
122
|
+
// Trovo tutti i child di quel parent e li rendo invisibili. Se il child trovato è a sua volta un parent,
|
|
123
|
+
// lo collasso e vado in ricorsione sui figli
|
|
124
|
+
if (child[this.est.ParentKey] == parentKey && !child.parent)
|
|
125
|
+
child._visible = false;
|
|
126
|
+
else if (child[this.est.ParentKey] == parentKey && child.parent) {
|
|
127
|
+
child._expanded = false;
|
|
128
|
+
child._visible = false;
|
|
129
|
+
this.collapseChildOfParent(child[this.est.OwnKey]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGllcmFyY2h5TW9kZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2NvcmUvaGFuZGxlcnMvY2xhc3Nlcy9IaWVyYXJjaHlNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQW9CLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO0lBQUksQ0FBQztJQUc5Qzs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsSUFBVztRQUNwQyx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3JCLE9BQU87UUFFWCw0SUFBNEk7UUFDNUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUztnQkFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1lBQ3BDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUM5QjtRQUVELG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLHlJQUF5SSxDQUFDLENBQUM7WUFDekosT0FBTztTQUNWO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsR0FBRztZQUNDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNoRCxZQUFZLEVBQUUsQ0FBQztTQUNsQixRQUFRLFFBQVEsR0FBRyxDQUFDLEVBQUU7UUFDdkIsMkdBQTJHO0lBQy9HLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssV0FBVyxDQUFDLElBQVcsRUFBRSxhQUFxQjtRQUNsRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxCLDhGQUE4RjtZQUM5RixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxJQUFJLENBQUMsRUFBRTtnQkFDaEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2YsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7Z0JBQ3hDLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFNBQVM7YUFDWjtZQUVELG1DQUFtQztZQUNuQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLGtCQUFrQjtnQkFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ2xDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFN0Isa0VBQWtFO29CQUNsRSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTt3QkFDMUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7d0JBRTNCLCtHQUErRzt3QkFDL0csK0JBQStCO3dCQUMvQixjQUFjLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO3dCQUNuRCxjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzt3QkFDN0IsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQzt3QkFDdkMsUUFBUSxFQUFFLENBQUM7d0JBQ1gsTUFBTTtxQkFDVDtpQkFDSjthQUNKO1NBQ0o7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFlBQVksQ0FBQyxHQUFXO1FBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEMsNENBQTRDO1lBQzVDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFFckIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDckQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBRXJDLHlEQUF5RDtvQkFDekQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHO3dCQUNoQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDN0I7Z0JBQ0QsT0FBTzthQUNWO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWMsQ0FBQyxHQUFXO1FBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEMsNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFFdEIsNkNBQTZDO2dCQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLE9BQU87YUFDVjtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxxQkFBcUIsQ0FBQyxTQUFpQjtRQUMzQyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3JELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXJDLHlHQUF5RztZQUN6Ryw2Q0FBNkM7WUFDN0MsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDdkQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7aUJBQ3RCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzdELEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDdEQ7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeU1vZGVIYW5kbGVyIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50KSB7IH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBsaXN0YSBkaSBvZ2dldHRpIGFzc2Vnbm8gaWwgbGl2ZWxsbyBnZXJhcmNoaWNvIHJpc3BldHRvIGFsbGEgbGlzdGEgZGkgb2dnZXR0aSBwYXNzYXRhXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnlbXX0gb2JqcyBMaXN0YSBkaSBvZ2dldHRpIGEgY3VpIGFnZ2l1bmdlcmUgbCdpbmZvcm1hemlvbmUgZGVsIGxpdmVsbG8gZ2VyYXJjaGljb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXNzaWduSGllcmFyY2h5TGV2ZWxzKG9ianM6IGFueVtdKSB7XHJcbiAgICAgICAgLy8gQ2FzaXN0aWNhIGlucHV0IG51bGxvXHJcbiAgICAgICAgaWYgKCFvYmpzIHx8ICFvYmpzLmxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvL1NlIG1hbmNhbm8gZW50cmFtYmUgbGUgaW5mbyBsZSBjZXJjbyBkaSB2YWxvcml6emFyZSBpbiBhdXRvbWF0aWNvIGNvaSBkZWZhdWx0IFwicGFyZW50aWRcIiBlIFwiaWRcIiAocG9zdG8gY2hlIGxlIHByb3BzIGVzaXN0YW5vIG5lbGwnb2dnZXR0bylcclxuICAgICAgICBpZiAoIXRoaXMuZXN0LlBhcmVudEtleSAmJiAhdGhpcy5lc3QuT3duS2V5KSB7XHJcbiAgICAgICAgICAgIGlmIChvYmpzWzBdWydwYXJlbnRpZCddICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5QYXJlbnRLZXkgPSAncGFyZW50aWQnO1xyXG4gICAgICAgICAgICBpZiAob2Jqc1swXVsnaWQnXSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuT3duS2V5ID0gJ2lkJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vQ2hlY2sgZmluYWxlIHBlciBhc3NpY3VyYXJtaSBjaGUgbGUgcHJvcHMgY2kgc2lhbm9cclxuICAgICAgICBpZiAoIXRoaXMuZXN0LlBhcmVudEtleSB8fCAhdGhpcy5lc3QuT3duS2V5KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1BlciB1dGlsaXp6YXJlIGlsIHNpc3RlbWEgaW4gbW9kYWxpdMOgIGdlcmFyY2hpY2Egw6ggb2JibGlnYXRvcmlvIHNwZWNpZmljYXJlIHNpYSBQYXJlbnRLZXkgY2hlIE93bktleS4gRmFsbGJhY2sgYSBzaXN0ZW1hIG5vbiBnZXJhcmNoaWNvJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFZhbG9yaXp6YXppb25lIGNhbXBpIGxldmVsLCBleHBhbmRlZCwgZSB2aXNpYmxlIHBlciBvZ25pIGl0ZW1cclxuICAgICAgICBsZXQgY3VycmVudExldmVsID0gMTtcclxuICAgICAgICBsZXQgYXNzaWduZWQgPSAwO1xyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgYXNzaWduZWQgPSB0aGlzLmFzc2lnbkxldmVsKG9ianMsIGN1cnJlbnRMZXZlbCk7XHJcbiAgICAgICAgICAgIGN1cnJlbnRMZXZlbCsrO1xyXG4gICAgICAgIH0gd2hpbGUgKGFzc2lnbmVkID4gMCk7XHJcbiAgICAgICAgLy8gYnV0dG8gc3UgbGF0byBodG1sIGUgcG9pIG1lIGxhIGdpb2NvIGzDoCBjb24gcGFkZGluZyA9IDIwICogKGxldmVsIC0gMSkgcGVyIGZhciBjYXBpcmUgaWwgZGl2ZXJzbyBsaXZlbGxvXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgb2dudW5vIGRlZ2xpIG9nZ2V0dGkgcGFzc2F0aSBnbGkgYXNzZWduYSB1biBsaXZlbGxvIGRpIGdlcmFyY2hpYSBpbiBiYXNlIGEgKipQYXJlbnRLZXkqKiBlICoqT3duS2V5KipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBvYmpzIE9nZ2V0dGkgYSBjdWkgYXNzZWduYXJlIGlsIGxpdmVsbG8gZGkgZ2VyYXJjaGlhXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWxUb0Fzc2lnbiBMaXZlbGxvIGNoZSBzdGEgYXNzZWduYW5kbyBhdHR1YWxtZW50ZSBxdWVzdGEgaXRlcmF6aW9uZSAoZGF0byBjaGUgw6ggcmljb3JzaXZhKVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IE51bWVybyBkaSBvZ2dldHRpIGEgY3VpIMOoIHN0YXRvIGFzc2VnbmF0byB1biBsaXZlbGxvIGdlcmFyY2hpY29cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhc3NpZ25MZXZlbChvYmpzOiBhbnlbXSwgbGV2ZWxUb0Fzc2lnbjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgYXNzaWduZWQgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2Jqcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqID0gb2Jqc1tpXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNlIGxhIHBhcmVudEtleSBub24gw6ggdmFsb3JpenphdGEsIHF1ZXN0byDDqCBpbCBsaXZlbGxvIDAgKDEuLi4gcGVyY2jDqSBnbGkgMCBzb24gcGVyY2lvbG9zaSlcclxuICAgICAgICAgICAgaWYgKCFvYmpbdGhpcy5lc3QuUGFyZW50S2V5XSAmJiBsZXZlbFRvQXNzaWduID09IDEpIHtcclxuICAgICAgICAgICAgICAgIG9iai5fbGV2ZWwgPSAxO1xyXG4gICAgICAgICAgICAgICAgb2JqLl92aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG9iai5fZXhwYW5kZWQgPSB0aGlzLmVzdC5TdGFydHNFeHBhbmRlZDtcclxuICAgICAgICAgICAgICAgIGFzc2lnbmVkKys7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gUGVyIGkgbGl2ZWxsaSBzdXBlcmlvcmUgYWwgcHJpbW9cclxuICAgICAgICAgICAgaWYgKG9ialt0aGlzLmVzdC5QYXJlbnRLZXldICYmIGxldmVsVG9Bc3NpZ24gPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0cm92byBpbCBwYXJlbnRcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHAgPSAwOyBwIDwgb2Jqcy5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3NzaWJsZVBhcmVudCA9IG9ianNbcF07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyb3ZhdG8gaWwgcGFyZW50IGRlbGwnaXRlbSwgYXNzZWdubyBhbGwnaXRlbSBpbCBsaXZlbGxvIGdpdXN0b1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3NzaWJsZVBhcmVudFt0aGlzLmVzdC5Pd25LZXldID09IG9ialt0aGlzLmVzdC5QYXJlbnRLZXldICYmIHBvc3NpYmxlUGFyZW50Ll9sZXZlbCA9PSBsZXZlbFRvQXNzaWduIC0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmouX2xldmVsID0gbGV2ZWxUb0Fzc2lnbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNvIGNoZSBxdWVzdG8gaXRlbSBoYSB1biBwYXJlbnQuIFJpYmFkaXNjbyBjaGUgaWwgcGFyZW50IMOoIGVzcGFuc28gaW4gYmFzZSBhbGxlIGltcG9zdGF6aW9uZSBlIHN0ZXNzYSBsb2dpY2FcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGVyIGxhIHZpc2liaWxpdMOgIGRlbCBmaWdsaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zc2libGVQYXJlbnQuX2V4cGFuZGVkID0gdGhpcy5lc3QuU3RhcnRzRXhwYW5kZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlUGFyZW50LnBhcmVudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iai5fdmlzaWJsZSA9IHRoaXMuZXN0LlN0YXJ0c0V4cGFuZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25lZCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGFzc2lnbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIHBlcm1ldHRlIGRpIGVmZmV0dHVhcmUgbCdlc3BhbnNpb25lIGRpIHVuIHBhcmVudCBxdWFuZG8gbGEgdGFiZWxsYSBmdW56aW9uYSBpbiBtb2RhbGl0w6AgZ2VyYXJjaGljYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRlbCBwYXJlbnQgZGEgZXNwYW5kZXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBleHBhbmRQYXJlbnQoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmJvdW5kU291cmNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBvYmogPSB0aGlzLmVzdC5ib3VuZFNvdXJjZVtpXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFRyb3ZvIGlsIHBhcmVudCBjb24gcXVlbGwnaWQgZSBsbyBlc3BhbmRvXHJcbiAgICAgICAgICAgIGlmIChvYmpbdGhpcy5lc3QuT3duS2V5XSA9PSBrZXkpIHtcclxuICAgICAgICAgICAgICAgIG9iai5fZXhwYW5kZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGljID0gMDsgaWMgPCB0aGlzLmVzdC5ib3VuZFNvdXJjZS5sZW5ndGg7IGljKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZVtpY107XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyb3ZvIHR1dHRpIGkgY2hpbGQgZGkgcXVlbCBwYXJlbnQgZSBsaSByZW5kbyB2aXNpYmlsaVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZFt0aGlzLmVzdC5QYXJlbnRLZXldID09IGtleSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuX3Zpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIHBlcm1ldHRlIGRpIGVmZmV0dHVhcmUgaWwgY29sbGFwc2UgZGkgdW4gcGFyZW50IHF1YW5kbyBsYSB0YWJlbGxhIGZ1bnppb25hIGluIG1vZGFsaXTDoCBnZXJhcmNoaWNhXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIHBhcmVudCBkYSBjb2xsYXNzYXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2xsYXBzZVBhcmVudChrZXk6IHN0cmluZykge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lc3QuYm91bmRTb3VyY2UubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IG9iaiA9IHRoaXMuZXN0LmJvdW5kU291cmNlW2ldO1xyXG5cclxuICAgICAgICAgICAgLy8gVHJvdm8gaWwgcGFyZW50IGNvbiBxdWVsbCdpZCBlIGxvIGNvbGxhc3NvXHJcbiAgICAgICAgICAgIGlmIChvYmpbdGhpcy5lc3QuT3duS2V5XSA9PSBrZXkpIHtcclxuICAgICAgICAgICAgICAgIG9iai5fZXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBDb2xsYXNzby9uYXNjb25kbyB0dXR0aSBpIGNoaWxkIGRlbCBwYXJlbnRcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2VDaGlsZE9mUGFyZW50KGtleSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xsYXNzYSByaWNvcnNpdmFtZW50ZSB0dXR0aSBpIGZpZ2xpIGRpIHVuIHBhcmVudCBpZGVudGlmaWNhdG8gZGFsbGEgKipwYXJlbnRLZXkqKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJlbnRLZXkgQ2hpYXZlIGRlbCBwYXJlbnQgZGkgY3VpIGNvbGxhc3NhcmUgaSBmaWdsaVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNvbGxhcHNlQ2hpbGRPZlBhcmVudChwYXJlbnRLZXk6IHN0cmluZykge1xyXG4gICAgICAgIGZvciAobGV0IGljID0gMDsgaWMgPCB0aGlzLmVzdC5ib3VuZFNvdXJjZS5sZW5ndGg7IGljKyspIHtcclxuICAgICAgICAgICAgbGV0IGNoaWxkID0gdGhpcy5lc3QuYm91bmRTb3VyY2VbaWNdO1xyXG5cclxuICAgICAgICAgICAgLy8gVHJvdm8gdHV0dGkgaSBjaGlsZCBkaSBxdWVsIHBhcmVudCBlIGxpIHJlbmRvIGludmlzaWJpbGkuIFNlIGlsIGNoaWxkIHRyb3ZhdG8gw6ggYSBzdWEgdm9sdGEgdW4gcGFyZW50LFxyXG4gICAgICAgICAgICAvLyBsbyBjb2xsYXNzbyBlIHZhZG8gaW4gcmljb3JzaW9uZSBzdWkgZmlnbGlcclxuICAgICAgICAgICAgaWYgKGNoaWxkW3RoaXMuZXN0LlBhcmVudEtleV0gPT0gcGFyZW50S2V5ICYmICFjaGlsZC5wYXJlbnQpXHJcbiAgICAgICAgICAgICAgICBjaGlsZC5fdmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjaGlsZFt0aGlzLmVzdC5QYXJlbnRLZXldID09IHBhcmVudEtleSAmJiBjaGlsZC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGNoaWxkLl9leHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuX3Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2VDaGlsZE9mUGFyZW50KGNoaWxkW3RoaXMuZXN0Lk93bktleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { AppSearch } from "../../../domain";
|
|
2
|
+
export class ItemsHandler {
|
|
3
|
+
constructor(est, utilities) {
|
|
4
|
+
this.est = est;
|
|
5
|
+
this.utilities = utilities;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* In base alla modalità specificata (ArrayMode, ViewMode, ecc...) questo metodo recupera l'array di oggetti da bindare ad interfaccia
|
|
9
|
+
*
|
|
10
|
+
* @param {boolean} onlyselected [false] Indica di prendere solo gli oggetti selezionati
|
|
11
|
+
* @param {boolean} refreshPaging [false] Indica se aggiornare le informazioni di paginazione o meno
|
|
12
|
+
* @param {boolean} allIfPossible [false] Indica se prendere tutti gli oggetti quaora possibile, usato solo in ArrayMode
|
|
13
|
+
*
|
|
14
|
+
* @returns {any[]} Lista degli oggetti su cui effettuare il bind lato interfaccia
|
|
15
|
+
*/
|
|
16
|
+
getItemsByMode(onlyselected = false, refreshPaging = false, allIfPossible = false) {
|
|
17
|
+
let items = [];
|
|
18
|
+
if ((this.est.viewMode && this.est.View instanceof AppSearch)) {
|
|
19
|
+
items = this.getViewItemsBySource();
|
|
20
|
+
}
|
|
21
|
+
else if (this.est.arrayMode) {
|
|
22
|
+
this.est.View.forEach(itm => { itm._item = true; });
|
|
23
|
+
// Se faccio dei raggruppamenti ignoro la paginazione
|
|
24
|
+
if (this.est.UseArrayModePaging && !allIfPossible) {
|
|
25
|
+
// Se sono in modalità array ma la ricerca dipende da una view devo riallineare gli itemperpage
|
|
26
|
+
if (this.est.SearchView)
|
|
27
|
+
this.est.ArraymodeItemsPerPage = this.est.SearchView.itemsperpageoverride;
|
|
28
|
+
// Devo chiamare il refresh page solo se vengo richiamato da un binding esterno
|
|
29
|
+
if (refreshPaging)
|
|
30
|
+
this.refreshPaging(this.est.ArraymodeItemsPerPage);
|
|
31
|
+
items = this.adaptViewToPaging();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
items = this.est.View;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Se voglio solo i selezionati filtro
|
|
38
|
+
if (onlyselected)
|
|
39
|
+
return items.filter(t => t._selected);
|
|
40
|
+
return items;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Metodo per effettuare il refresh della paginazione sul cambiamento degli oggetti da visualizzare in una singola pagina.
|
|
44
|
+
*
|
|
45
|
+
* Vale solo per la modalità Array
|
|
46
|
+
*
|
|
47
|
+
* @param {number} pageSize Dimensione della pagina
|
|
48
|
+
*/
|
|
49
|
+
refreshPaging(pageSize) {
|
|
50
|
+
this.est.ArraymodeItemsPerPage = pageSize;
|
|
51
|
+
this.est.arraymodePages = Math.ceil(this.est.View.length / this.est.ArraymodeItemsPerPage);
|
|
52
|
+
this.est.arraymodePage = 1;
|
|
53
|
+
// Riforzo il writevalue in modo che il codice passi dalla gestione come se fosse fatta ripartire una ricerca
|
|
54
|
+
this.est.internalWriteValue();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Ottiene gli oggetti in base alla sorgente
|
|
58
|
+
*/
|
|
59
|
+
getViewItemsBySource() {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
let castedView = this.est.View;
|
|
62
|
+
let groupKeys = castedView.groupings ? castedView.groupings.filter(t => !t.aggregation).length : 0;
|
|
63
|
+
//Gruppi intermedi
|
|
64
|
+
if ((((_a = castedView.requestedgroups) === null || _a === void 0 ? void 0 : _a.length) != groupKeys || ((_b = castedView.requestedgroups) === null || _b === void 0 ? void 0 : _b.length) == 0) && groupKeys > 0) {
|
|
65
|
+
let ret = castedView.groups;
|
|
66
|
+
ret.forEach(itm => {
|
|
67
|
+
// Setto variabile interna per capire che questo è in realtà un gruppo
|
|
68
|
+
itm._group = true;
|
|
69
|
+
// Le informazioni passate come lista le metto dentro a una cache per velocizzarne l'accesso quando devo tirare fuori il display della proprietà
|
|
70
|
+
this.utilities.cacheAggregations(itm);
|
|
71
|
+
});
|
|
72
|
+
return ret;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
let ret = this.est.SecondarySource ? this.est.View.items2 : this.est.TertiarySource ? this.est.View.items3 : this.est.View.items;
|
|
76
|
+
// Setto variabile interna per specificare che questo è un elemento normale, non un gruppo o altro
|
|
77
|
+
ret.forEach(itm => { itm._item = true; });
|
|
78
|
+
return ret;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** Genera le informazioni di paginazione e taglia la View in modalità array per mostrare solo gli oggetti della pagina specificata */
|
|
82
|
+
adaptViewToPaging() {
|
|
83
|
+
let tmpItems = [];
|
|
84
|
+
// Se ho una search view l'array pulsanti viene calcolato da lei, non devo prendere quello della modalità array
|
|
85
|
+
if (!this.est.SearchView)
|
|
86
|
+
this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.arraymodePage, this.est.arraymodePages);
|
|
87
|
+
// Poi per tutti i valori dopo compresi fra la pagina - 1 e la pagina
|
|
88
|
+
for (let i = ((this.est.arraymodePage - 1) * this.est.ArraymodeItemsPerPage); i < this.est.arraymodePage * this.est.ArraymodeItemsPerPage; i++) {
|
|
89
|
+
if (i <= this.est.View.length - 1)
|
|
90
|
+
tmpItems.push(this.est.View[i]);
|
|
91
|
+
}
|
|
92
|
+
return tmpItems;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Metodo che prende tutti gli oggetti di cui dispone divisi in bucket da 100 elementi
|
|
96
|
+
*
|
|
97
|
+
* @returns {any[][]} Matrice di array Nx100
|
|
98
|
+
*/
|
|
99
|
+
getItemSlices() {
|
|
100
|
+
// Se sono qui di sicuro non ho rowgrouping
|
|
101
|
+
let items = this.getItemsByMode();
|
|
102
|
+
if (!items)
|
|
103
|
+
return [];
|
|
104
|
+
let arrayBy100 = [];
|
|
105
|
+
let slices = Math.ceil(items.length / this.est.SliceSize);
|
|
106
|
+
for (let i = 0; i < slices; i++) {
|
|
107
|
+
let arraySlice = items.slice(i * this.est.SliceSize, i * this.est.SliceSize + this.est.SliceSize);
|
|
108
|
+
arrayBy100.push(arraySlice);
|
|
109
|
+
}
|
|
110
|
+
return arrayBy100;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Se in modalità array applica gli ordinamenti ASC-DESC delle colonne
|
|
114
|
+
*/
|
|
115
|
+
arrayModeReviewOrderings() {
|
|
116
|
+
if (this.est.arrayOrders.length > 0)
|
|
117
|
+
this.est.arrayOrders.forEach(t => { this.est.boundSource = this.est.boundSource.sort((a, b) => (a[t.id] > b[t.id] ? 1 : -1) * (t.order == 'DESC' ? -1 : 1)); });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUs1QyxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVU7b0JBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEdBQUcsSUFB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QUM3QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0JBQXdCO1FBQzNCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hLLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFNlYXJjaCB9IGZyb20gXCIuLi8uLi8uLi9kb21haW5cIjtcclxuaW1wb3J0IHsgVXRpbGl0aWVzSGFuZGxlciB9IGZyb20gXCIuL1V0aWxpdGllc0hhbmRsZXJcIjtcclxuXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuZXhwb3J0IGNsYXNzIEl0ZW1zSGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVzdDogRXNUYWJsZUNvbXBvbmVudCwgcHJpdmF0ZSB1dGlsaXRpZXM6IFV0aWxpdGllc0hhbmRsZXIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW4gYmFzZSBhbGxhIG1vZGFsaXTDoCBzcGVjaWZpY2F0YSAoQXJyYXlNb2RlLCBWaWV3TW9kZSwgZWNjLi4uKSBxdWVzdG8gbWV0b2RvIHJlY3VwZXJhIGwnYXJyYXkgZGkgb2dnZXR0aSBkYSBiaW5kYXJlIGFkIGludGVyZmFjY2lhXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBvbmx5c2VsZWN0ZWQgW2ZhbHNlXSBJbmRpY2EgZGkgcHJlbmRlcmUgc29sbyBnbGkgb2dnZXR0aSBzZWxlemlvbmF0aVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSByZWZyZXNoUGFnaW5nIFtmYWxzZV0gSW5kaWNhIHNlIGFnZ2lvcm5hcmUgbGUgaW5mb3JtYXppb25pIGRpIHBhZ2luYXppb25lIG8gbWVub1xyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBhbGxJZlBvc3NpYmxlIFtmYWxzZV0gSW5kaWNhIHNlIHByZW5kZXJlIHR1dHRpIGdsaSBvZ2dldHRpIHF1YW9yYSBwb3NzaWJpbGUsIHVzYXRvIHNvbG8gaW4gQXJyYXlNb2RlXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge2FueVtdfSBMaXN0YSBkZWdsaSBvZ2dldHRpIHN1IGN1aSBlZmZldHR1YXJlIGlsIGJpbmQgbGF0byBpbnRlcmZhY2NpYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SXRlbXNCeU1vZGUob25seXNlbGVjdGVkOiBib29sZWFuID0gZmFsc2UsIHJlZnJlc2hQYWdpbmc6IGJvb2xlYW4gPSBmYWxzZSwgYWxsSWZQb3NzaWJsZTogYm9vbGVhbiA9IGZhbHNlKTogYW55W10ge1xyXG4gICAgICAgIGxldCBpdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKCh0aGlzLmVzdC52aWV3TW9kZSAmJiB0aGlzLmVzdC5WaWV3IGluc3RhbmNlb2YgQXBwU2VhcmNoKSkge1xyXG4gICAgICAgICAgICBpdGVtcyA9IHRoaXMuZ2V0Vmlld0l0ZW1zQnlTb3VyY2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5lc3QuYXJyYXlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcuZm9yRWFjaChpdG0gPT4geyBpdG0uX2l0ZW0gPSB0cnVlOyB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNlIGZhY2NpbyBkZWkgcmFnZ3J1cHBhbWVudGkgaWdub3JvIGxhIHBhZ2luYXppb25lXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVzdC5Vc2VBcnJheU1vZGVQYWdpbmcgJiYgIWFsbElmUG9zc2libGUpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBTZSBzb25vIGluIG1vZGFsaXTDoCBhcnJheSBtYSBsYSByaWNlcmNhIGRpcGVuZGUgZGEgdW5hIHZpZXcgZGV2byByaWFsbGluZWFyZSBnbGkgaXRlbXBlcnBhZ2VcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVzdC5TZWFyY2hWaWV3KVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSA9IHRoaXMuZXN0LlNlYXJjaFZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGU7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gRGV2byBjaGlhbWFyZSBpbCByZWZyZXNoIHBhZ2Ugc29sbyBzZSB2ZW5nbyByaWNoaWFtYXRvIGRhIHVuIGJpbmRpbmcgZXN0ZXJub1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlZnJlc2hQYWdpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoUGFnaW5nKHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmFkYXB0Vmlld1RvUGFnaW5nKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuZXN0LlZpZXcgYXMgYW55W107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFNlIHZvZ2xpbyBzb2xvIGkgc2VsZXppb25hdGkgZmlsdHJvXHJcbiAgICAgICAgaWYgKG9ubHlzZWxlY3RlZClcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcih0ID0+IHQuX3NlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIHBlciBlZmZldHR1YXJlIGlsIHJlZnJlc2ggZGVsbGEgcGFnaW5hemlvbmUgc3VsIGNhbWJpYW1lbnRvIGRlZ2xpIG9nZ2V0dGkgZGEgdmlzdWFsaXp6YXJlIGluIHVuYSBzaW5nb2xhIHBhZ2luYS5cclxuICAgICAqXHJcbiAgICAgKiBWYWxlIHNvbG8gcGVyIGxhIG1vZGFsaXTDoCBBcnJheVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlU2l6ZSBEaW1lbnNpb25lIGRlbGxhIHBhZ2luYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVmcmVzaFBhZ2luZyhwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gcGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pLmxlbmd0aCAvIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSA9IDE7XHJcblxyXG4gICAgICAgIC8vIFJpZm9yem8gaWwgd3JpdGV2YWx1ZSBpbiBtb2RvIGNoZSBpbCBjb2RpY2UgcGFzc2kgZGFsbGEgZ2VzdGlvbmUgY29tZSBzZSBmb3NzZSBmYXR0YSByaXBhcnRpcmUgdW5hIHJpY2VyY2FcclxuICAgICAgICB0aGlzLmVzdC5pbnRlcm5hbFdyaXRlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgZ2xpIG9nZ2V0dGkgaW4gYmFzZSBhbGxhIHNvcmdlbnRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Vmlld0l0ZW1zQnlTb3VyY2UoKTogYW55W10ge1xyXG4gICAgICAgIGxldCBjYXN0ZWRWaWV3ID0gdGhpcy5lc3QuVmlldyBhcyBBcHBTZWFyY2g8YW55PjtcclxuICAgICAgICBsZXQgZ3JvdXBLZXlzID0gY2FzdGVkVmlldy5ncm91cGluZ3MgPyBjYXN0ZWRWaWV3Lmdyb3VwaW5ncy5maWx0ZXIodCA9PiAhdC5hZ2dyZWdhdGlvbikubGVuZ3RoIDogMDtcclxuXHJcbiAgICAgICAgLy9HcnVwcGkgaW50ZXJtZWRpXHJcbiAgICAgICAgaWYgKChjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoICE9IGdyb3VwS2V5cyB8fCBjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoID09IDApICYmIGdyb3VwS2V5cyA+IDApIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IGNhc3RlZFZpZXcuZ3JvdXBzO1xyXG4gICAgICAgICAgICByZXQuZm9yRWFjaChpdG0gPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNldHRvIHZhcmlhYmlsZSBpbnRlcm5hIHBlciBjYXBpcmUgY2hlIHF1ZXN0byDDqCBpbiByZWFsdMOgIHVuIGdydXBwb1xyXG4gICAgICAgICAgICAgICAgKDxhbnk+aXRtKS5fZ3JvdXAgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIExlIGluZm9ybWF6aW9uaSBwYXNzYXRlIGNvbWUgbGlzdGEgbGUgbWV0dG8gZGVudHJvIGEgdW5hIGNhY2hlIHBlciB2ZWxvY2l6emFybmUgbCdhY2Nlc3NvIHF1YW5kbyBkZXZvIHRpcmFyZSBmdW9yaSBpbCBkaXNwbGF5IGRlbGxhIHByb3ByaWV0w6BcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0aWVzLmNhY2hlQWdncmVnYXRpb25zKGl0bSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IHRoaXMuZXN0LlNlY29uZGFyeVNvdXJjZSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXMyIDogdGhpcy5lc3QuVGVydGlhcnlTb3VyY2UgPyAodGhpcy5lc3QuVmlldyBhcyBhbnkpLml0ZW1zMyA6ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXM7XHJcbiAgICAgICAgICAgIC8vIFNldHRvIHZhcmlhYmlsZSBpbnRlcm5hIHBlciBzcGVjaWZpY2FyZSBjaGUgcXVlc3RvIMOoIHVuIGVsZW1lbnRvIG5vcm1hbGUsIG5vbiB1biBncnVwcG8gbyBhbHRyb1xyXG4gICAgICAgICAgICByZXQuZm9yRWFjaChpdG0gPT4geyAoPGFueT5pdG0pLl9pdGVtID0gdHJ1ZTsgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBHZW5lcmEgbGUgaW5mb3JtYXppb25pIGRpIHBhZ2luYXppb25lIGUgdGFnbGlhIGxhIFZpZXcgaW4gbW9kYWxpdMOgIGFycmF5IHBlciBtb3N0cmFyZSBzb2xvIGdsaSBvZ2dldHRpIGRlbGxhIHBhZ2luYSBzcGVjaWZpY2F0YSAqL1xyXG4gICAgcHJpdmF0ZSBhZGFwdFZpZXdUb1BhZ2luZygpIHtcclxuICAgICAgICBsZXQgdG1wSXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIC8vIFNlIGhvIHVuYSBzZWFyY2ggdmlldyBsJ2FycmF5IHB1bHNhbnRpIHZpZW5lIGNhbGNvbGF0byBkYSBsZWksIG5vbiBkZXZvIHByZW5kZXJlIHF1ZWxsbyBkZWxsYSBtb2RhbGl0w6AgYXJyYXlcclxuICAgICAgICBpZiAoIXRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5UHVsc2FudGkgPSB0aGlzLnV0aWxpdGllcy5nZXRQYWdlc0FycmF5KDYsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzKTtcclxuXHJcbiAgICAgICAgLy8gUG9pIHBlciB0dXR0aSBpIHZhbG9yaSBkb3BvIGNvbXByZXNpIGZyYSBsYSBwYWdpbmEgLSAxIGUgbGEgcGFnaW5hXHJcbiAgICAgICAgZm9yIChsZXQgaSA9ICgodGhpcy5lc3QuYXJyYXltb2RlUGFnZSAtIDEpICogdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTsgaSA8IHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgKiB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2U7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoaSA8PSAodGhpcy5lc3QuVmlldyBhcyBhbnlbXSkubGVuZ3RoIC0gMSlcclxuICAgICAgICAgICAgICAgIHRtcEl0ZW1zLnB1c2goKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRtcEl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBwcmVuZGUgdHV0dGkgZ2xpIG9nZ2V0dGkgZGkgY3VpIGRpc3BvbmUgZGl2aXNpIGluIGJ1Y2tldCBkYSAxMDAgZWxlbWVudGlcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55W11bXX0gTWF0cmljZSBkaSBhcnJheSBOeDEwMFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SXRlbVNsaWNlcygpOiBhbnlbXVtdIHtcclxuICAgICAgICAvLyBTZSBzb25vIHF1aSBkaSBzaWN1cm8gbm9uIGhvIHJvd2dyb3VwaW5nXHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5nZXRJdGVtc0J5TW9kZSgpO1xyXG4gICAgICAgIGlmICghaXRlbXMpXHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuXHJcbiAgICAgICAgbGV0IGFycmF5QnkxMDAgPSBbXTtcclxuICAgICAgICBsZXQgc2xpY2VzID0gTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIHRoaXMuZXN0LlNsaWNlU2l6ZSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZXM7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYXJyYXlTbGljZSA9IGl0ZW1zLnNsaWNlKGkgKiB0aGlzLmVzdC5TbGljZVNpemUsIGkgKiB0aGlzLmVzdC5TbGljZVNpemUgKyB0aGlzLmVzdC5TbGljZVNpemUpO1xyXG4gICAgICAgICAgICBhcnJheUJ5MTAwLnB1c2goYXJyYXlTbGljZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheUJ5MTAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2UgaW4gbW9kYWxpdMOgIGFycmF5IGFwcGxpY2EgZ2xpIG9yZGluYW1lbnRpIEFTQy1ERVNDIGRlbGxlIGNvbG9ubmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFycmF5TW9kZVJldmlld09yZGVyaW5ncygpIHtcclxuICAgICAgICBpZiAodGhpcy5lc3QuYXJyYXlPcmRlcnMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXlPcmRlcnMuZm9yRWFjaCh0ID0+IHsgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZS5zb3J0KChhLCBiKSA9PiAoYVt0LmlkXSA+IGJbdC5pZF0gPyAxIDogLTEpICogKHQub3JkZXIgPT0gJ0RFU0MnID8gLTEgOiAxKSk7IH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ReportDefinition, ReportOrder } from "../../../domain";
|
|
2
|
+
export class ReportModeHandler {
|
|
3
|
+
constructor(est, utilities) {
|
|
4
|
+
this.est = est;
|
|
5
|
+
this.utilities = utilities;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Sul click dell'Header di una colonna questo metodo si occupa di applicare l'ordinamento successivo e di notificare con **emitSearchRequest**
|
|
9
|
+
* il bisogno di aggiornare i dati da parte del componente che utilizza la tabella
|
|
10
|
+
*
|
|
11
|
+
* Utilizzato solo in modalità REport
|
|
12
|
+
*
|
|
13
|
+
* @param {ReportColumn} clm Colonna del report per cui ordinare
|
|
14
|
+
*/
|
|
15
|
+
setupNextOrderAndSearch(clm) {
|
|
16
|
+
if (!(this.est.View instanceof ReportDefinition)) {
|
|
17
|
+
console.error('View diversa da reportdefinition entrata nel metodo setupNextOrderAndSearch');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
let orderNext = { NONE: 'DESC', DESC: 'ASC', ASC: null };
|
|
21
|
+
let nextOrder = orderNext[clm.order || 'NONE'];
|
|
22
|
+
clm.order = nextOrder;
|
|
23
|
+
let order;
|
|
24
|
+
let clmOrder = this.est.View.orders ? this.est.View.orders.filter(t => t.column == clm.id) : [];
|
|
25
|
+
if (clmOrder.length == 0 && clm.order) {
|
|
26
|
+
order = new ReportOrder();
|
|
27
|
+
order.column = clm.id;
|
|
28
|
+
order.order = clm.order;
|
|
29
|
+
if (!this.est.View.orders)
|
|
30
|
+
this.est.View.orders = [];
|
|
31
|
+
this.est.View.orders.push(order);
|
|
32
|
+
}
|
|
33
|
+
else if (clmOrder.length == 1) {
|
|
34
|
+
// Rimuovo l'ordinamento o aggiorno quello già esistente
|
|
35
|
+
if (!clm.order)
|
|
36
|
+
clmOrder = [];
|
|
37
|
+
else
|
|
38
|
+
clmOrder[0].order = clm.order;
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
console.warn('Impossibile settare ordinamento. Colonna ' + clm.id + ' direttive di ordinamento ' + clmOrder.length + ' ordinamento scelto ' + clm.order);
|
|
42
|
+
// Dopo aver aggiornato l'ordinamento rilancio la ricerca
|
|
43
|
+
this.est.emitSearchRequest(false);
|
|
44
|
+
}
|
|
45
|
+
/** Metodo che si occupa di gestire la grafica della tabella in base alle informazioni di ordinamento colonne e paginazione contenuti nel modello */
|
|
46
|
+
reviewReportBindings() {
|
|
47
|
+
if (!(this.est.View instanceof ReportDefinition)) {
|
|
48
|
+
console.error('View diversa da reportdefinition entrata nel metodo reviewReportBindings');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Allineo le informazioni su eventuali ordinamenti fatti precedentemente
|
|
52
|
+
if (this.est.View.orders && this.est.View.orders.length > 0) {
|
|
53
|
+
this.est.View.orders.forEach(t => {
|
|
54
|
+
this.est.ReportValues.columns.filter(c => c.id == t.column)[0].order = t.order;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Recupero il count precedente se serve
|
|
58
|
+
if (this.est.ReportValues.count != -2)
|
|
59
|
+
this.est.previousCount = this.est.ReportValues.count;
|
|
60
|
+
else if (this.est.ReportValues.count == -2)
|
|
61
|
+
this.est.ReportValues.count = this.est.previousCount;
|
|
62
|
+
let ipp = (this.est.View.itemsperpageoverride || 15);
|
|
63
|
+
this.est.View.pages = Math.ceil(this.est.ReportValues.count / ipp);
|
|
64
|
+
this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.View.page, this.est.View.pages);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0TW9kZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2NvcmUvaGFuZGxlcnMvY2xhc3Nlcy9SZXBvcnRNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWdCLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlFLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsR0FBcUIsRUFBVSxTQUEyQjtRQUExRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUksQ0FBQztJQUVuRjs7Ozs7OztPQU9HO0lBQ0ksdUJBQXVCLENBQUMsR0FBaUI7UUFDNUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksZ0JBQWdCLENBQUMsRUFBRTtZQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7WUFDN0YsT0FBTztTQUNWO1FBRUQsSUFBSSxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3pELElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLEdBQUcsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXRCLElBQUksS0FBa0IsQ0FBQztRQUN2QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEdB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QUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXRpbGl0aWVzSGFuZGxlciB9IGZyb20gXCIuL1V0aWxpdGllc0hhbmRsZXJcIjtcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IFJlcG9ydENvbHVtbiwgUmVwb3J0RGVmaW5pdGlvbiwgUmVwb3J0T3JkZXIgfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVwb3J0TW9kZUhhbmRsZXIge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgdXRpbGl0aWVzOiBVdGlsaXRpZXNIYW5kbGVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1bCBjbGljayBkZWxsJ0hlYWRlciBkaSB1bmEgY29sb25uYSBxdWVzdG8gbWV0b2RvIHNpIG9jY3VwYSBkaSBhcHBsaWNhcmUgbCdvcmRpbmFtZW50byBzdWNjZXNzaXZvIGUgZGkgbm90aWZpY2FyZSBjb24gKiplbWl0U2VhcmNoUmVxdWVzdCoqXHJcbiAgICAgKiBpbCBiaXNvZ25vIGRpIGFnZ2lvcm5hcmUgaSBkYXRpIGRhIHBhcnRlIGRlbCBjb21wb25lbnRlIGNoZSB1dGlsaXp6YSBsYSB0YWJlbGxhXHJcbiAgICAgKlxyXG4gICAgICogVXRpbGl6emF0byBzb2xvIGluIG1vZGFsaXTDoCBSRXBvcnRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1JlcG9ydENvbHVtbn0gY2xtIENvbG9ubmEgZGVsIHJlcG9ydCBwZXIgY3VpIG9yZGluYXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXR1cE5leHRPcmRlckFuZFNlYXJjaChjbG06IFJlcG9ydENvbHVtbikge1xyXG4gICAgICAgIGlmICghKHRoaXMuZXN0LlZpZXcgaW5zdGFuY2VvZiBSZXBvcnREZWZpbml0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWaWV3IGRpdmVyc2EgZGEgcmVwb3J0ZGVmaW5pdGlvbiBlbnRyYXRhIG5lbCBtZXRvZG8gc2V0dXBOZXh0T3JkZXJBbmRTZWFyY2gnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG9yZGVyTmV4dCA9IHsgTk9ORTogJ0RFU0MnLCBERVNDOiAnQVNDJywgQVNDOiBudWxsIH07XHJcbiAgICAgICAgbGV0IG5leHRPcmRlciA9IG9yZGVyTmV4dFtjbG0ub3JkZXIgfHwgJ05PTkUnXTtcclxuICAgICAgICBjbG0ub3JkZXIgPSBuZXh0T3JkZXI7XHJcblxyXG4gICAgICAgIGxldCBvcmRlcjogUmVwb3J0T3JkZXI7XHJcbiAgICAgICAgbGV0IGNsbU9yZGVyID0gdGhpcy5lc3QuVmlldy5vcmRlcnMgPyB0aGlzLmVzdC5WaWV3Lm9yZGVycy5maWx0ZXIodCA9PiB0LmNvbHVtbiA9PSBjbG0uaWQpIDogW107XHJcbiAgICAgICAgaWYgKGNsbU9yZGVyLmxlbmd0aCA9PSAwICYmIGNsbS5vcmRlcikge1xyXG4gICAgICAgICAgICBvcmRlciA9IG5ldyBSZXBvcnRPcmRlcigpO1xyXG4gICAgICAgICAgICBvcmRlci5jb2x1bW4gPSBjbG0uaWQ7XHJcbiAgICAgICAgICAgIG9yZGVyLm9yZGVyID0gY2xtLm9yZGVyO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXN0LlZpZXcub3JkZXJzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuVmlldy5vcmRlcnMgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcub3JkZXJzLnB1c2gob3JkZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChjbG1PcmRlci5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAvLyBSaW11b3ZvIGwnb3JkaW5hbWVudG8gbyBhZ2dpb3JubyBxdWVsbG8gZ2nDoCBlc2lzdGVudGVcclxuICAgICAgICAgICAgaWYgKCFjbG0ub3JkZXIpXHJcbiAgICAgICAgICAgICAgICBjbG1PcmRlciA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgY2xtT3JkZXJbMF0ub3JkZXIgPSBjbG0ub3JkZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW1wb3NzaWJpbGUgc2V0dGFyZSBvcmRpbmFtZW50by4gQ29sb25uYSAnICsgY2xtLmlkICsgJyBkaXJldHRpdmUgZGkgb3JkaW5hbWVudG8gJyArIGNsbU9yZGVyLmxlbmd0aCArICcgb3JkaW5hbWVudG8gc2NlbHRvICcgKyBjbG0ub3JkZXIpO1xyXG5cclxuICAgICAgICAvLyBEb3BvIGF2ZXIgYWdnaW9ybmF0byBsJ29yZGluYW1lbnRvIHJpbGFuY2lvIGxhIHJpY2VyY2FcclxuICAgICAgICB0aGlzLmVzdC5lbWl0U2VhcmNoUmVxdWVzdChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIE1ldG9kbyBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgbGEgZ3JhZmljYSBkZWxsYSB0YWJlbGxhIGluIGJhc2UgYWxsZSBpbmZvcm1hemlvbmkgZGkgb3JkaW5hbWVudG8gY29sb25uZSBlIHBhZ2luYXppb25lIGNvbnRlbnV0aSBuZWwgbW9kZWxsbyAqL1xyXG4gICAgcHVibGljIHJldmlld1JlcG9ydEJpbmRpbmdzKCkge1xyXG4gICAgICAgIGlmICghKHRoaXMuZXN0LlZpZXcgaW5zdGFuY2VvZiBSZXBvcnREZWZpbml0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdWaWV3IGRpdmVyc2EgZGEgcmVwb3J0ZGVmaW5pdGlvbiBlbnRyYXRhIG5lbCBtZXRvZG8gcmV2aWV3UmVwb3J0QmluZGluZ3MnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWxsaW5lbyBsZSBpbmZvcm1hemlvbmkgc3UgZXZlbnR1YWxpIG9yZGluYW1lbnRpIGZhdHRpIHByZWNlZGVudGVtZW50ZVxyXG4gICAgICAgIGlmICh0aGlzLmVzdC5WaWV3Lm9yZGVycyAmJiB0aGlzLmVzdC5WaWV3Lm9yZGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcub3JkZXJzLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5SZXBvcnRWYWx1ZXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmlkID09IHQuY29sdW1uKVswXS5vcmRlciA9IHQub3JkZXI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gUmVjdXBlcm8gaWwgY291bnQgcHJlY2VkZW50ZSBzZSBzZXJ2ZVxyXG4gICAgICAgIGlmICh0aGlzLmVzdC5SZXBvcnRWYWx1ZXMuY291bnQgIT0gLTIpXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LnByZXZpb3VzQ291bnQgPSB0aGlzLmVzdC5SZXBvcnRWYWx1ZXMuY291bnQ7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5lc3QuUmVwb3J0VmFsdWVzLmNvdW50ID09IC0yKVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5SZXBvcnRWYWx1ZXMuY291bnQgPSB0aGlzLmVzdC5wcmV2aW91c0NvdW50O1xyXG5cclxuICAgICAgICBsZXQgaXBwID0gKHRoaXMuZXN0LlZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgfHwgMTUpO1xyXG4gICAgICAgIHRoaXMuZXN0LlZpZXcucGFnZXMgPSBNYXRoLmNlaWwodGhpcy5lc3QuUmVwb3J0VmFsdWVzLmNvdW50IC8gaXBwKTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheVB1bHNhbnRpID0gdGhpcy51dGlsaXRpZXMuZ2V0UGFnZXNBcnJheSg2LCB0aGlzLmVzdC5WaWV3LnBhZ2UsIHRoaXMuZXN0LlZpZXcucGFnZXMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|