@esfaenza/es-table 12.2.26 → 13.1.3

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.
Files changed (89) hide show
  1. package/esfaenza-es-table.d.ts +1 -7
  2. package/esm2020/esfaenza-es-table.mjs +5 -0
  3. package/esm2020/lib/components/es-table/es_table.component.loc.mjs +41 -0
  4. package/esm2020/lib/components/es-table/es_table.component.mjs +1396 -0
  5. package/esm2020/lib/components/es-td/es_td.component.mjs +106 -0
  6. package/esm2020/lib/components/es-th/es_th.component.mjs +176 -0
  7. package/esm2020/lib/components/pager/table_pager.component.loc.mjs +27 -0
  8. package/esm2020/lib/components/pager/table_pager.component.mjs +118 -0
  9. package/esm2020/lib/core/handlers/classes/ColumnMetadataHandler.mjs +719 -0
  10. package/{esm2015/lib/core/handlers/classes/DynamicModeHandler.js → esm2020/lib/core/handlers/classes/DynamicModeHandler.mjs} +0 -0
  11. package/esm2020/lib/core/handlers/classes/ExportHandler.mjs +103 -0
  12. package/{esm2015/lib/core/handlers/classes/HierarchyModeHandler.js → esm2020/lib/core/handlers/classes/HierarchyModeHandler.mjs} +0 -0
  13. package/esm2020/lib/core/handlers/classes/ItemsHandler.mjs +129 -0
  14. package/{esm2015/lib/core/handlers/classes/ReportModeHandler.js → esm2020/lib/core/handlers/classes/ReportModeHandler.mjs} +0 -0
  15. package/esm2020/lib/core/handlers/classes/RowGroupingHandler.mjs +474 -0
  16. package/esm2020/lib/core/handlers/classes/SelectionHandler.mjs +525 -0
  17. package/esm2020/lib/core/handlers/classes/UtilitiesHandler.mjs +166 -0
  18. package/{esm2015/lib/core/handlers/index.js → esm2020/lib/core/handlers/index.mjs} +0 -0
  19. package/esm2020/lib/directives/es_td.directive.mjs +32 -0
  20. package/esm2020/lib/directives/es_th.directive.mjs +84 -0
  21. package/{esm2015/lib/domain/configuration/EsTableDefaultable.js → esm2020/lib/domain/configuration/EsTableDefaultable.mjs} +0 -0
  22. package/{esm2015/lib/domain/configuration/EsTableModuleConfig.js → esm2020/lib/domain/configuration/EsTableModuleConfig.mjs} +0 -0
  23. package/{esm2015/lib/domain/externals/classes/CornerMenuOption.js → esm2020/lib/domain/externals/classes/CornerMenuOption.mjs} +0 -0
  24. package/{esm2015/lib/domain/externals/classes/EsTableColumnsDefinition.js → esm2020/lib/domain/externals/classes/EsTableColumnsDefinition.mjs} +0 -0
  25. package/{esm2015/lib/domain/externals/classes/EsTableOperationDefinition.js → esm2020/lib/domain/externals/classes/EsTableOperationDefinition.mjs} +0 -0
  26. package/{esm2015/lib/domain/externals/classes/appsearch/AppOrdering.js → esm2020/lib/domain/externals/classes/appsearch/AppOrdering.mjs} +0 -0
  27. package/{esm2015/lib/domain/externals/classes/appsearch/AppSearch.js → esm2020/lib/domain/externals/classes/appsearch/AppSearch.mjs} +0 -0
  28. package/{esm2015/lib/domain/externals/classes/appsearch/GenericItem.js → esm2020/lib/domain/externals/classes/appsearch/GenericItem.mjs} +0 -0
  29. package/{esm2015/lib/domain/externals/classes/appsearch/Group.js → esm2020/lib/domain/externals/classes/appsearch/Group.mjs} +0 -0
  30. package/{esm2015/lib/domain/externals/classes/appsearch/GroupAggregation.js → esm2020/lib/domain/externals/classes/appsearch/GroupAggregation.mjs} +0 -0
  31. package/{esm2015/lib/domain/externals/classes/appsearch/GroupFilter.js → esm2020/lib/domain/externals/classes/appsearch/GroupFilter.mjs} +0 -0
  32. package/{esm2015/lib/domain/externals/classes/appsearch/GroupOrAggregation.js → esm2020/lib/domain/externals/classes/appsearch/GroupOrAggregation.mjs} +0 -0
  33. package/{esm2015/lib/domain/externals/classes/appsearch/ItemsSelection.js → esm2020/lib/domain/externals/classes/appsearch/ItemsSelection.mjs} +0 -0
  34. package/{esm2015/lib/domain/externals/classes/report/ReportColumn.js → esm2020/lib/domain/externals/classes/report/ReportColumn.mjs} +0 -0
  35. package/{esm2015/lib/domain/externals/classes/report/ReportDefinition.js → esm2020/lib/domain/externals/classes/report/ReportDefinition.mjs} +0 -0
  36. package/{esm2015/lib/domain/externals/classes/report/ReportOrder.js → esm2020/lib/domain/externals/classes/report/ReportOrder.mjs} +0 -0
  37. package/{esm2015/lib/domain/externals/classes/report/ReportParam.js → esm2020/lib/domain/externals/classes/report/ReportParam.mjs} +0 -0
  38. package/{esm2015/lib/domain/externals/classes/report/ReportResult.js → esm2020/lib/domain/externals/classes/report/ReportResult.mjs} +0 -0
  39. package/{esm2015/lib/domain/externals/classes/report/ReportRow.js → esm2020/lib/domain/externals/classes/report/ReportRow.mjs} +0 -0
  40. package/{esm2015/lib/domain/externals/index.js → esm2020/lib/domain/externals/index.mjs} +0 -0
  41. package/{esm2015/lib/domain/index.js → esm2020/lib/domain/index.mjs} +0 -0
  42. package/{esm2015/lib/domain/internals/classes/CacheTriptic.js → esm2020/lib/domain/internals/classes/CacheTriptic.mjs} +0 -0
  43. package/{esm2015/lib/domain/internals/classes/EsTableColumn.js → esm2020/lib/domain/internals/classes/EsTableColumn.mjs} +0 -0
  44. package/{esm2015/lib/domain/internals/classes/GroupPager.js → esm2020/lib/domain/internals/classes/GroupPager.mjs} +0 -0
  45. package/{esm2015/lib/domain/internals/classes/GroupRouteFragment.js → esm2020/lib/domain/internals/classes/GroupRouteFragment.mjs} +0 -0
  46. package/{esm2015/lib/domain/internals/classes/ThAggregation.js → esm2020/lib/domain/internals/classes/ThAggregation.mjs} +0 -0
  47. package/{esm2015/lib/domain/internals/classes/ThElement.js → esm2020/lib/domain/internals/classes/ThElement.mjs} +0 -0
  48. package/{esm2015/lib/domain/internals/index.js → esm2020/lib/domain/internals/index.mjs} +0 -0
  49. package/esm2020/lib/es-table.module.mjs +79 -0
  50. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  51. package/esm2020/public-api.mjs +14 -0
  52. package/fesm2015/{esfaenza-es-table.js → esfaenza-es-table.mjs} +622 -380
  53. package/fesm2015/esfaenza-es-table.mjs.map +1 -0
  54. package/fesm2020/esfaenza-es-table.mjs +4731 -0
  55. package/fesm2020/esfaenza-es-table.mjs.map +1 -0
  56. package/lib/components/es-table/es_table.component.d.ts +5 -2
  57. package/lib/components/es-table/es_table.component.loc.d.ts +3 -0
  58. package/lib/components/es-td/es_td.component.d.ts +3 -0
  59. package/lib/components/es-th/es_th.component.d.ts +3 -0
  60. package/lib/components/pager/table_pager.component.d.ts +3 -0
  61. package/lib/components/pager/table_pager.component.loc.d.ts +3 -0
  62. package/lib/core/handlers/classes/ExportHandler.d.ts +8 -2
  63. package/lib/core/handlers/classes/UtilitiesHandler.d.ts +3 -0
  64. package/lib/directives/es_td.directive.d.ts +3 -0
  65. package/lib/directives/es_th.directive.d.ts +3 -0
  66. package/lib/es-table.module.d.ts +21 -0
  67. package/package.json +30 -16
  68. package/public-api.d.ts +3 -0
  69. package/bundles/esfaenza-es-table.umd.js +0 -5075
  70. package/bundles/esfaenza-es-table.umd.js.map +0 -1
  71. package/esfaenza-es-table.metadata.json +0 -1
  72. package/esm2015/esfaenza-es-table.js +0 -12
  73. package/esm2015/lib/components/es-table/es_table.component.js +0 -1312
  74. package/esm2015/lib/components/es-table/es_table.component.loc.js +0 -36
  75. package/esm2015/lib/components/es-td/es_td.component.js +0 -106
  76. package/esm2015/lib/components/es-th/es_th.component.js +0 -160
  77. package/esm2015/lib/components/pager/table_pager.component.js +0 -106
  78. package/esm2015/lib/components/pager/table_pager.component.loc.js +0 -22
  79. package/esm2015/lib/core/handlers/classes/ColumnMetadataHandler.js +0 -712
  80. package/esm2015/lib/core/handlers/classes/ExportHandler.js +0 -43
  81. package/esm2015/lib/core/handlers/classes/ItemsHandler.js +0 -130
  82. package/esm2015/lib/core/handlers/classes/RowGroupingHandler.js +0 -475
  83. package/esm2015/lib/core/handlers/classes/SelectionHandler.js +0 -527
  84. package/esm2015/lib/core/handlers/classes/UtilitiesHandler.js +0 -169
  85. package/esm2015/lib/directives/es_td.directive.js +0 -29
  86. package/esm2015/lib/directives/es_th.directive.js +0 -69
  87. package/esm2015/lib/es-table.module.js +0 -52
  88. package/esm2015/public-api.js +0 -11
  89. package/fesm2015/esfaenza-es-table.js.map +0 -1
@@ -1,43 +0,0 @@
1
- /** Classe contenente la gestione delle importazioni */
2
- export class ExportHandler {
3
- /** @ignore Costruttore*/
4
- constructor(est, expExts, msgExts) {
5
- this.est = est;
6
- this.expExts = expExts;
7
- this.msgExts = msgExts;
8
- }
9
- /**
10
- * Effettua l'esportazione dei dati
11
- *
12
- * @param {string} format Formato di esportazione. Letto solo in modalità Report della tabella
13
- */
14
- tryExport(format) {
15
- if (!this.est.ExportFunction)
16
- return;
17
- if (this.est.reportMode)
18
- this.est.ExportFunction(format);
19
- else
20
- this.est.ExportFunction((data, cancel = false) => {
21
- if (cancel)
22
- return;
23
- if (data.length == 0) {
24
- this.msgExts.simpleWarning(this.est.lc.loc("Cannot export an empty dataset"));
25
- return;
26
- }
27
- this.setupExport(data);
28
- this.est.cdr.detectChanges();
29
- setTimeout(() => { this.est.exportDownloader.nativeElement.click(); });
30
- });
31
- }
32
- /**
33
- * Metodo che effettivamente genera gli header e i dati per l'esportazione con **ngx-csv**
34
- *
35
- * @param {any[]} items Oggetti da esportare
36
- */
37
- setupExport(items) {
38
- let drcd = this.est.DynamicRowColumnsDefinition;
39
- 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);
40
- this.est.data = items;
41
- }
42
- }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9jbGFzc2VzL0V4cG9ydEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxhQUFhO0lBRXRCLHlCQUF5QjtJQUN6QixZQUFvQixHQUFxQixFQUFVLE9BQXNCLEVBQVUsT0FBdUI7UUFBdEYsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFBSSxDQUFDO0lBRS9HOzs7O09BSUc7SUFDSSxTQUFTLENBQUMsTUFBZTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjO1lBQ3hCLE9BQU87UUFFWCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVTtZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFHaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFXLEVBQUUsU0FBa0IsS0FBSyxFQUFFLEVBQUU7Z0JBQzdELElBQUksTUFBTTtvQkFDTixPQUFPO2dCQUVYLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7b0JBQzlFLE9BQU87aUJBQ1Y7Z0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxXQUFXLENBQUMsS0FBWTtRQUM1QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO1FBRWhELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNU4sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpYnJlcmllXHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLyoqIENsYXNzZSBjb250ZW5lbnRlIGxhIGdlc3Rpb25lIGRlbGxlIGltcG9ydGF6aW9uaSAqL1xyXG5leHBvcnQgY2xhc3MgRXhwb3J0SGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgZXhwRXh0czogRXhwb3J0U2VydmljZSwgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBsJ2VzcG9ydGF6aW9uZSBkZWkgZGF0aVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgRm9ybWF0byBkaSBlc3BvcnRhemlvbmUuIExldHRvIHNvbG8gaW4gbW9kYWxpdMOgIFJlcG9ydCBkZWxsYSB0YWJlbGxhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cnlFeHBvcnQoZm9ybWF0Pzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lc3QucmVwb3J0TW9kZSlcclxuICAgICAgICAgICAgdGhpcy5lc3QuRXhwb3J0RnVuY3Rpb24oZm9ybWF0KTtcclxuXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbigoZGF0YTogYW55W10sIGNhbmNlbDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nKHRoaXMuZXN0LmxjLmxvYyhcIkNhbm5vdCBleHBvcnQgYW4gZW1wdHkgZGF0YXNldFwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBFeHBvcnQoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZXN0LmV4cG9ydERvd25sb2FkZXIubmF0aXZlRWxlbWVudC5jbGljaygpOyB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIGVmZmV0dGl2YW1lbnRlIGdlbmVyYSBnbGkgaGVhZGVyIGUgaSBkYXRpIHBlciBsJ2VzcG9ydGF6aW9uZSBjb24gKipuZ3gtY3N2KipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBpdGVtcyBPZ2dldHRpIGRhIGVzcG9ydGFyZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldHVwRXhwb3J0KGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCBkcmNkID0gdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLmVzdC5oZWFkZXJzID0gZHJjZCAmJiBkcmNkLmxlbmd0aCA+IDAgPyB0aGlzLmV4cEV4dHMuc2V0dXBGb3JHZW5lcmljRXhwb3J0KGl0ZW1zLCBkcmNkLm1hcCh0ID0+IHsgcmV0dXJuIHsgbGFiZWw6IHQuZGVzY3JpcHRpb24sIGtleTogdC5wcm9wZXJ0eU5hbWUsIG9yZGVyOiB0LmNvbHVtbk9yZGVyIH07IH0pKSA6IHRoaXMuZXhwRXh0cy5zZXR1cEZvckV4cG9ydChpdGVtcyk7XHJcbiAgICAgICAgdGhpcy5lc3QuZGF0YSA9IGl0ZW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,130 +0,0 @@
1
- // Modelli
2
- import { AppSearch } from "../../../domain";
3
- /** Classe che si occupa della gestione del recupero degli oggetti, paginazione e tutto ciò in cui gli elementi caricati vengono manipolati direttamente */
4
- export class ItemsHandler {
5
- /** @ignore Costruttore */
6
- constructor(est, utilities) {
7
- this.est = est;
8
- this.utilities = utilities;
9
- }
10
- /**
11
- * In base alla modalità specificata (ArrayMode, ViewMode, ecc...) questo metodo recupera l'array di oggetti da bindare ad interfaccia
12
- *
13
- * @param {boolean} onlyselected [false] Indica di prendere solo gli oggetti selezionati
14
- * @param {boolean} refreshPaging [false] Indica se aggiornare le informazioni di paginazione o meno
15
- * @param {boolean} allIfPossible [false] Indica se prendere tutti gli oggetti quaora possibile, usato solo in ArrayMode
16
- *
17
- * @returns {any[]} Lista degli oggetti su cui effettuare il bind lato interfaccia
18
- */
19
- getItemsByMode(onlyselected = false, refreshPaging = false, allIfPossible = false) {
20
- let items = [];
21
- if ((this.est.viewMode && this.est.View instanceof AppSearch)) {
22
- items = this.getViewItemsBySource();
23
- }
24
- else if (this.est.arrayMode) {
25
- this.est.View.forEach(itm => { itm._item = true; });
26
- // Se faccio dei raggruppamenti ignoro la paginazione
27
- if (this.est.UseArrayModePaging && !allIfPossible) {
28
- // Se sono in modalità array ma la ricerca dipende da una view devo riallineare gli itemperpage
29
- if (this.est.SearchView) {
30
- this.est.ArraymodeItemsPerPage = this.est.SearchView.itemsperpageoverride;
31
- this.est.arraymodePage = this.est.SearchView.page;
32
- this.est.arraymodePages = this.est.SearchView.pages;
33
- }
34
- // Devo chiamare il refresh page solo se vengo richiamato da un binding esterno
35
- else if (refreshPaging)
36
- this.refreshPaging(this.est.ArraymodeItemsPerPage);
37
- items = this.adaptViewToPaging();
38
- }
39
- else {
40
- items = this.est.View;
41
- }
42
- }
43
- // Se voglio solo i selezionati filtro
44
- if (onlyselected)
45
- return items.filter(t => t._selected);
46
- return items;
47
- }
48
- /**
49
- * Metodo per effettuare il refresh della paginazione sul cambiamento degli oggetti da visualizzare in una singola pagina.
50
- *
51
- * Vale solo per la modalità Array
52
- *
53
- * @param {number} pageSize Dimensione della pagina
54
- */
55
- refreshPaging(pageSize) {
56
- this.est.ArraymodeItemsPerPage = pageSize;
57
- this.est.arraymodePages = Math.ceil(this.est.View.length / this.est.ArraymodeItemsPerPage);
58
- this.est.arraymodePage = 1;
59
- // Riforzo il writevalue in modo che il codice passi dalla gestione come se fosse fatta ripartire una ricerca
60
- this.est.internalWriteValue();
61
- }
62
- /**
63
- * Ottiene gli oggetti in base alla sorgente
64
- */
65
- getViewItemsBySource() {
66
- var _a, _b;
67
- let castedView = this.est.View;
68
- let groupKeys = castedView.groupings ? castedView.groupings.filter(t => !t.aggregation).length : 0;
69
- //Gruppi intermedi
70
- 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) {
71
- let ret = castedView.groups;
72
- ret.forEach(itm => {
73
- // Setto variabile interna per capire che questo è in realtà un gruppo
74
- itm._group = true;
75
- // Le informazioni passate come lista le metto dentro a una cache per velocizzarne l'accesso quando devo tirare fuori il display della proprietà
76
- this.utilities.cacheAggregations(itm);
77
- });
78
- return ret;
79
- }
80
- else {
81
- let ret = this.est.SecondarySource ? this.est.View.items2 : this.est.TertiarySource ? this.est.View.items3 : this.est.View.items;
82
- if (!ret)
83
- ret = [];
84
- // Setto variabile interna per specificare che questo è un elemento normale, non un gruppo o altro
85
- ret.forEach(itm => { itm._item = true; });
86
- return ret;
87
- }
88
- }
89
- /** Genera le informazioni di paginazione e taglia la View in modalità array per mostrare solo gli oggetti della pagina specificata */
90
- adaptViewToPaging() {
91
- let tmpItems = [];
92
- // Se ho una search view l'array pulsanti viene calcolato da lei, non devo prendere quello della modalità array,
93
- // inoltre non ho bisogno di fare ragionamenti su quanti elementi ci sono e sulla pagina, dato che viene tutto gestito esternamente,
94
- // unendo al risultato della view tutti gli oggetti addizionali
95
- if (!this.est.SearchView)
96
- this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.arraymodePage, this.est.arraymodePages);
97
- else
98
- return this.est.View;
99
- // Poi per tutti i valori dopo compresi fra la pagina - 1 e la pagina
100
- for (let i = ((this.est.arraymodePage - 1) * this.est.ArraymodeItemsPerPage); i < this.est.arraymodePage * this.est.ArraymodeItemsPerPage; i++) {
101
- if (i <= this.est.View.length - 1)
102
- tmpItems.push(this.est.View[i]);
103
- }
104
- return tmpItems;
105
- }
106
- /**
107
- * Metodo che prende tutti gli oggetti di cui dispone divisi in bucket da 100 elementi
108
- *
109
- * @returns {any[][]} Matrice di array Nx100
110
- */
111
- getItemSlices() {
112
- // Se sono qui di sicuro non ho rowgrouping
113
- let items = this.getItemsByMode();
114
- if (!items)
115
- return [];
116
- let arrayBy100 = [];
117
- let slices = Math.ceil(items.length / this.est.SliceSize);
118
- for (let i = 0; i < slices; i++) {
119
- let arraySlice = items.slice(i * this.est.SliceSize, i * this.est.SliceSize + this.est.SliceSize);
120
- arrayBy100.push(arraySlice);
121
- }
122
- return arrayBy100;
123
- }
124
- /** Se in modalità array applica gli ordinamenti ASC-DESC delle colonne */
125
- arrayModeReviewOrderings() {
126
- if (this.est.arrayOrders.length > 0)
127
- 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)); });
128
- }
129
- }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUMsMkpBQTJKO0FBQzNKLE1BQU0sT0FBTyxZQUFZO0lBRXJCLDBCQUEwQjtJQUMxQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFDdkI7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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEssQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwU2VhcmNoIH0gZnJvbSBcIi4uLy4uLy4uL2RvbWFpblwiO1xyXG5cclxuLy8gVXRpbGl0aWVzXHJcbmltcG9ydCB7IFV0aWxpdGllc0hhbmRsZXIgfSBmcm9tIFwiLi9VdGlsaXRpZXNIYW5kbGVyXCI7XHJcblxyXG4vKiogQ2xhc3NlIGNoZSBzaSBvY2N1cGEgZGVsbGEgZ2VzdGlvbmUgZGVsIHJlY3VwZXJvIGRlZ2xpIG9nZ2V0dGksIHBhZ2luYXppb25lIGUgdHV0dG8gY2nDsiBpbiBjdWkgZ2xpIGVsZW1lbnRpIGNhcmljYXRpIHZlbmdvbm8gbWFuaXBvbGF0aSBkaXJldHRhbWVudGUgKi9cclxuZXhwb3J0IGNsYXNzIEl0ZW1zSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIHV0aWxpdGllczogVXRpbGl0aWVzSGFuZGxlcikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBiYXNlIGFsbGEgbW9kYWxpdMOgIHNwZWNpZmljYXRhIChBcnJheU1vZGUsIFZpZXdNb2RlLCBlY2MuLi4pIHF1ZXN0byBtZXRvZG8gcmVjdXBlcmEgbCdhcnJheSBkaSBvZ2dldHRpIGRhIGJpbmRhcmUgYWQgaW50ZXJmYWNjaWFcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9ubHlzZWxlY3RlZCBbZmFsc2VdIEluZGljYSBkaSBwcmVuZGVyZSBzb2xvIGdsaSBvZ2dldHRpIHNlbGV6aW9uYXRpXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlZnJlc2hQYWdpbmcgW2ZhbHNlXSBJbmRpY2Egc2UgYWdnaW9ybmFyZSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgbyBtZW5vXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbElmUG9zc2libGUgW2ZhbHNlXSBJbmRpY2Egc2UgcHJlbmRlcmUgdHV0dGkgZ2xpIG9nZ2V0dGkgcXVhb3JhIHBvc3NpYmlsZSwgdXNhdG8gc29sbyBpbiBBcnJheU1vZGVcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55W119IExpc3RhIGRlZ2xpIG9nZ2V0dGkgc3UgY3VpIGVmZmV0dHVhcmUgaWwgYmluZCBsYXRvIGludGVyZmFjY2lhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtc0J5TW9kZShvbmx5c2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgcmVmcmVzaFBhZ2luZzogYm9vbGVhbiA9IGZhbHNlLCBhbGxJZlBvc3NpYmxlOiBib29sZWFuID0gZmFsc2UpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoKHRoaXMuZXN0LnZpZXdNb2RlICYmIHRoaXMuZXN0LlZpZXcgaW5zdGFuY2VvZiBBcHBTZWFyY2gpKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5nZXRWaWV3SXRlbXNCeVNvdXJjZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmVzdC5hcnJheU1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5lc3QuVmlldy5mb3JFYWNoKGl0bSA9PiB7IGl0bS5faXRlbSA9IHRydWU7IH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gU2UgZmFjY2lvIGRlaSByYWdncnVwcGFtZW50aSBpZ25vcm8gbGEgcGFnaW5hemlvbmVcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlVzZUFycmF5TW9kZVBhZ2luZyAmJiAhYWxsSWZQb3NzaWJsZSkge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNlIHNvbm8gaW4gbW9kYWxpdMOgIGFycmF5IG1hIGxhIHJpY2VyY2EgZGlwZW5kZSBkYSB1bmEgdmlldyBkZXZvIHJpYWxsaW5lYXJlIGdsaSBpdGVtcGVycGFnZVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gdGhpcy5lc3QuU2VhcmNoVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlID0gdGhpcy5lc3QuU2VhcmNoVmlldy5wYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzID0gdGhpcy5lc3QuU2VhcmNoVmlldy5wYWdlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIERldm8gY2hpYW1hcmUgaWwgcmVmcmVzaCBwYWdlIHNvbG8gc2UgdmVuZ28gcmljaGlhbWF0byBkYSB1biBiaW5kaW5nIGVzdGVybm9cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZnJlc2hQYWdpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoUGFnaW5nKHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmFkYXB0Vmlld1RvUGFnaW5nKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuZXN0LlZpZXcgYXMgYW55W107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFNlIHZvZ2xpbyBzb2xvIGkgc2VsZXppb25hdGkgZmlsdHJvXHJcbiAgICAgICAgaWYgKG9ubHlzZWxlY3RlZClcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcih0ID0+IHQuX3NlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIHBlciBlZmZldHR1YXJlIGlsIHJlZnJlc2ggZGVsbGEgcGFnaW5hemlvbmUgc3VsIGNhbWJpYW1lbnRvIGRlZ2xpIG9nZ2V0dGkgZGEgdmlzdWFsaXp6YXJlIGluIHVuYSBzaW5nb2xhIHBhZ2luYS5cclxuICAgICAqXHJcbiAgICAgKiBWYWxlIHNvbG8gcGVyIGxhIG1vZGFsaXTDoCBBcnJheVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlU2l6ZSBEaW1lbnNpb25lIGRlbGxhIHBhZ2luYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVmcmVzaFBhZ2luZyhwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gcGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pLmxlbmd0aCAvIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSA9IDE7XHJcblxyXG4gICAgICAgIC8vIFJpZm9yem8gaWwgd3JpdGV2YWx1ZSBpbiBtb2RvIGNoZSBpbCBjb2RpY2UgcGFzc2kgZGFsbGEgZ2VzdGlvbmUgY29tZSBzZSBmb3NzZSBmYXR0YSByaXBhcnRpcmUgdW5hIHJpY2VyY2FcclxuICAgICAgICB0aGlzLmVzdC5pbnRlcm5hbFdyaXRlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgZ2xpIG9nZ2V0dGkgaW4gYmFzZSBhbGxhIHNvcmdlbnRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Vmlld0l0ZW1zQnlTb3VyY2UoKTogYW55W10ge1xyXG4gICAgICAgIGxldCBjYXN0ZWRWaWV3ID0gdGhpcy5lc3QuVmlldyBhcyBBcHBTZWFyY2g8YW55PjtcclxuICAgICAgICBsZXQgZ3JvdXBLZXlzID0gY2FzdGVkVmlldy5ncm91cGluZ3MgPyBjYXN0ZWRWaWV3Lmdyb3VwaW5ncy5maWx0ZXIodCA9PiAhdC5hZ2dyZWdhdGlvbikubGVuZ3RoIDogMDtcclxuXHJcbiAgICAgICAgLy9HcnVwcGkgaW50ZXJtZWRpXHJcbiAgICAgICAgaWYgKChjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoICE9IGdyb3VwS2V5cyB8fCBjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoID09IDApICYmIGdyb3VwS2V5cyA+IDApIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IGNhc3RlZFZpZXcuZ3JvdXBzO1xyXG4gICAgICAgICAgICByZXQuZm9yRWFjaChpdG0gPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNldHRvIHZhcmlhYmlsZSBpbnRlcm5hIHBlciBjYXBpcmUgY2hlIHF1ZXN0byDDqCBpbiByZWFsdMOgIHVuIGdydXBwb1xyXG4gICAgICAgICAgICAgICAgKDxhbnk+aXRtKS5fZ3JvdXAgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIExlIGluZm9ybWF6aW9uaSBwYXNzYXRlIGNvbWUgbGlzdGEgbGUgbWV0dG8gZGVudHJvIGEgdW5hIGNhY2hlIHBlciB2ZWxvY2l6emFybmUgbCdhY2Nlc3NvIHF1YW5kbyBkZXZvIHRpcmFyZSBmdW9yaSBpbCBkaXNwbGF5IGRlbGxhIHByb3ByaWV0w6BcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0aWVzLmNhY2hlQWdncmVnYXRpb25zKGl0bSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IHRoaXMuZXN0LlNlY29uZGFyeVNvdXJjZSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXMyIDogdGhpcy5lc3QuVGVydGlhcnlTb3VyY2UgPyAodGhpcy5lc3QuVmlldyBhcyBhbnkpLml0ZW1zMyA6ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXM7XHJcbiAgICAgICAgICAgIGlmICghcmV0KSByZXQgPSBbXTtcclxuICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIHNwZWNpZmljYXJlIGNoZSBxdWVzdG8gw6ggdW4gZWxlbWVudG8gbm9ybWFsZSwgbm9uIHVuIGdydXBwbyBvIGFsdHJvXHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7ICg8YW55Pml0bSkuX2l0ZW0gPSB0cnVlOyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgZSB0YWdsaWEgbGEgVmlldyBpbiBtb2RhbGl0w6AgYXJyYXkgcGVyIG1vc3RyYXJlIHNvbG8gZ2xpIG9nZ2V0dGkgZGVsbGEgcGFnaW5hIHNwZWNpZmljYXRhICovXHJcbiAgICBwcml2YXRlIGFkYXB0Vmlld1RvUGFnaW5nKCkge1xyXG4gICAgICAgIGxldCB0bXBJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgLy8gU2UgaG8gdW5hIHNlYXJjaCB2aWV3IGwnYXJyYXkgcHVsc2FudGkgdmllbmUgY2FsY29sYXRvIGRhIGxlaSwgbm9uIGRldm8gcHJlbmRlcmUgcXVlbGxvIGRlbGxhIG1vZGFsaXTDoCBhcnJheSxcclxuICAgICAgICAvLyBpbm9sdHJlIG5vbiBobyBiaXNvZ25vIGRpIGZhcmUgcmFnaW9uYW1lbnRpIHN1IHF1YW50aSBlbGVtZW50aSBjaSBzb25vIGUgc3VsbGEgcGFnaW5hLCBkYXRvIGNoZSB2aWVuZSB0dXR0byBnZXN0aXRvIGVzdGVybmFtZW50ZSwgXHJcbiAgICAgICAgLy8gdW5lbmRvIGFsIHJpc3VsdGF0byBkZWxsYSB2aWV3IHR1dHRpIGdsaSBvZ2dldHRpIGFkZGl6aW9uYWxpXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5TZWFyY2hWaWV3KVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5hcnJheVB1bHNhbnRpID0gdGhpcy51dGlsaXRpZXMuZ2V0UGFnZXNBcnJheSg2LCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlLCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3QuVmlldyBhcyBhbnlbXTtcclxuXHJcbiAgICAgICAgLy8gUG9pIHBlciB0dXR0aSBpIHZhbG9yaSBkb3BvIGNvbXByZXNpIGZyYSBsYSBwYWdpbmEgLSAxIGUgbGEgcGFnaW5hXHJcbiAgICAgICAgZm9yIChsZXQgaSA9ICgodGhpcy5lc3QuYXJyYXltb2RlUGFnZSAtIDEpICogdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTsgaSA8IHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgKiB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2U7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoaSA8PSAodGhpcy5lc3QuVmlldyBhcyBhbnlbXSkubGVuZ3RoIC0gMSlcclxuICAgICAgICAgICAgICAgIHRtcEl0ZW1zLnB1c2goKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pW2ldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0bXBJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBjaGUgcHJlbmRlIHR1dHRpIGdsaSBvZ2dldHRpIGRpIGN1aSBkaXNwb25lIGRpdmlzaSBpbiBidWNrZXQgZGEgMTAwIGVsZW1lbnRpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge2FueVtdW119IE1hdHJpY2UgZGkgYXJyYXkgTngxMDBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEl0ZW1TbGljZXMoKTogYW55W11bXSB7XHJcbiAgICAgICAgLy8gU2Ugc29ubyBxdWkgZGkgc2ljdXJvIG5vbiBobyByb3dncm91cGluZ1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXNCeU1vZGUoKTtcclxuICAgICAgICBpZiAoIWl0ZW1zKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcblxyXG4gICAgICAgIGxldCBhcnJheUJ5MTAwID0gW107XHJcbiAgICAgICAgbGV0IHNsaWNlcyA9IE1hdGguY2VpbChpdGVtcy5sZW5ndGggLyB0aGlzLmVzdC5TbGljZVNpemUpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2VzOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGFycmF5U2xpY2UgPSBpdGVtcy5zbGljZShpICogdGhpcy5lc3QuU2xpY2VTaXplLCBpICogdGhpcy5lc3QuU2xpY2VTaXplICsgdGhpcy5lc3QuU2xpY2VTaXplKTtcclxuICAgICAgICAgICAgYXJyYXlCeTEwMC5wdXNoKGFycmF5U2xpY2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXJyYXlCeTEwMDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogU2UgaW4gbW9kYWxpdMOgIGFycmF5IGFwcGxpY2EgZ2xpIG9yZGluYW1lbnRpIEFTQy1ERVNDIGRlbGxlIGNvbG9ubmUgKi9cclxuICAgIHB1YmxpYyBhcnJheU1vZGVSZXZpZXdPcmRlcmluZ3MoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXN0LmFycmF5T3JkZXJzLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5T3JkZXJzLmZvckVhY2godCA9PiB7IHRoaXMuZXN0LmJvdW5kU291cmNlID0gdGhpcy5lc3QuYm91bmRTb3VyY2Uuc29ydCgoYSwgYikgPT4gKGFbdC5pZF0gPiBiW3QuaWRdID8gMSA6IC0xKSAqICh0Lm9yZGVyID09ICdERVNDJyA/IC0xIDogMSkpOyB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=