@esfaenza/es-table 18.2.2 → 19.2.1

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 (63) hide show
  1. package/fesm2022/esfaenza-es-table.mjs +108 -78
  2. package/fesm2022/esfaenza-es-table.mjs.map +1 -1
  3. package/package.json +15 -17
  4. package/esm2022/esfaenza-es-table.mjs +0 -5
  5. package/esm2022/lib/components/es-table/es_table.component.loc.mjs +0 -39
  6. package/esm2022/lib/components/es-table/es_table.component.mjs +0 -1891
  7. package/esm2022/lib/components/es-td/es_td.component.mjs +0 -40
  8. package/esm2022/lib/components/es-th/es_th.component.mjs +0 -176
  9. package/esm2022/lib/components/pager/table_pager.component.loc.mjs +0 -21
  10. package/esm2022/lib/components/pager/table_pager.component.mjs +0 -111
  11. package/esm2022/lib/components/pipes/est-format.pipe.mjs +0 -44
  12. package/esm2022/lib/components/pipes/est-lookup.pipe.mjs +0 -19
  13. package/esm2022/lib/components/pipes/est-propinsensitive.pipe.mjs +0 -19
  14. package/esm2022/lib/components/pipes/est-renderer.pipe.mjs +0 -36
  15. package/esm2022/lib/components/pipes/est-routerlink.pipe.mjs +0 -41
  16. package/esm2022/lib/components/pipes/est_editor.pipe.mjs +0 -36
  17. package/esm2022/lib/core/CopyPasteDetector.mjs +0 -28
  18. package/esm2022/lib/core/Logger.mjs +0 -26
  19. package/esm2022/lib/core/handlers/ColumnMetadataHandler.mjs +0 -835
  20. package/esm2022/lib/core/handlers/DynamicModeHandler.mjs +0 -109
  21. package/esm2022/lib/core/handlers/ExportHandler.mjs +0 -32
  22. package/esm2022/lib/core/handlers/HierarchyModeHandler.mjs +0 -136
  23. package/esm2022/lib/core/handlers/ItemsHandler.mjs +0 -119
  24. package/esm2022/lib/core/handlers/ReportModeHandler.mjs +0 -60
  25. package/esm2022/lib/core/handlers/RowGroupingHandler.mjs +0 -480
  26. package/esm2022/lib/core/handlers/SelectionHandler.mjs +0 -778
  27. package/esm2022/lib/core/handlers/UtilitiesHandler.mjs +0 -151
  28. package/esm2022/lib/directives/es_td.directive.mjs +0 -54
  29. package/esm2022/lib/directives/es_td_editor.directive.mjs +0 -24
  30. package/esm2022/lib/directives/es_th.directive.mjs +0 -130
  31. package/esm2022/lib/directives/es_th_td_provider.directive.mjs +0 -35
  32. package/esm2022/lib/domain/configuration/EsTableDefaultable.mjs +0 -4
  33. package/esm2022/lib/domain/configuration/EsTableModuleConfig.mjs +0 -4
  34. package/esm2022/lib/domain/externals/CornerMenuOption.mjs +0 -4
  35. package/esm2022/lib/domain/externals/EsTableColumnsDefinition.mjs +0 -48
  36. package/esm2022/lib/domain/externals/EsTableModelChange.mjs +0 -19
  37. package/esm2022/lib/domain/externals/EsTableOperationDefinition.mjs +0 -22
  38. package/esm2022/lib/domain/externals/ItemPropEditableReference.mjs +0 -4
  39. package/esm2022/lib/domain/externals/appsearch/AppOrdering.mjs +0 -16
  40. package/esm2022/lib/domain/externals/appsearch/AppSearch.mjs +0 -66
  41. package/esm2022/lib/domain/externals/appsearch/EsTableMultiValue.mjs +0 -25
  42. package/esm2022/lib/domain/externals/appsearch/GenericItem.mjs +0 -11
  43. package/esm2022/lib/domain/externals/appsearch/Group.mjs +0 -17
  44. package/esm2022/lib/domain/externals/appsearch/GroupAggregation.mjs +0 -16
  45. package/esm2022/lib/domain/externals/appsearch/GroupFilter.mjs +0 -14
  46. package/esm2022/lib/domain/externals/appsearch/GroupOrAggregation.mjs +0 -16
  47. package/esm2022/lib/domain/externals/appsearch/ItemsSelection.mjs +0 -23
  48. package/esm2022/lib/domain/externals/report/ReportColumn.mjs +0 -4
  49. package/esm2022/lib/domain/externals/report/ReportParam.mjs +0 -4
  50. package/esm2022/lib/domain/externals/report/ReportRow.mjs +0 -4
  51. package/esm2022/lib/domain/internals/CacheTriptic.mjs +0 -16
  52. package/esm2022/lib/domain/internals/EsTableColumn.mjs +0 -32
  53. package/esm2022/lib/domain/internals/GroupPager.mjs +0 -23
  54. package/esm2022/lib/domain/internals/GroupRouteFragment.mjs +0 -17
  55. package/esm2022/lib/domain/internals/PagerInfos.mjs +0 -15
  56. package/esm2022/lib/domain/internals/TdElement.mjs +0 -2
  57. package/esm2022/lib/domain/internals/ThAggregation.mjs +0 -16
  58. package/esm2022/lib/domain/internals/ThElement.mjs +0 -2
  59. package/esm2022/lib/domain/internals/ThGroup.mjs +0 -2
  60. package/esm2022/lib/domain/types.mjs +0 -2
  61. package/esm2022/lib/es-table.module.mjs +0 -125
  62. package/esm2022/lib/tokens.mjs +0 -6
  63. package/esm2022/public-api.mjs +0 -28
@@ -1,109 +0,0 @@
1
- import { EsTdDirective } from "../../directives/es_td.directive";
2
- import { EsThDirective } from "../../directives/es_th.directive";
3
- // Dominio
4
- import { EsTableColumnsDefinition } from "../../domain/externals/EsTableColumnsDefinition";
5
- /** Classe contenente le gestioni particolari della modalità dinamica dell'es-table */
6
- export class DynamicModeHandler {
7
- /** @ignore Costruttore*/
8
- constructor(est) {
9
- this.est = est;
10
- }
11
- /** Se non ho l'Input **DynamicRowColumnsDefinition** in modalità dinamica lo riempio con il default nome della colonna = testo della colonna */
12
- eventuallyReviewDynamicColumns() {
13
- // Senza oggetti esco
14
- if (!this.est.TMPBoundSource || this.est.TMPBoundSource.length == 0)
15
- return;
16
- var useGenericItems = !!this.est.TMPBoundSource[0]["properties"];
17
- if (!useGenericItems || (!this.est.FirstBind && this.est.DynamicRowColumnsDefinition && this.est.DynamicRowColumnsDefinition.length > 0))
18
- return;
19
- if ((!this.est.DynamicRowColumnsDefinition || this.est.DynamicRowColumnsDefinition.length == 0)) {
20
- var props = this.est.TMPBoundSource[0]["properties"];
21
- this.est.DynamicRowColumnsDefinition = [];
22
- for (let key in props)
23
- this.est.DynamicRowColumnsDefinition.push(new EsTableColumnsDefinition(key, key));
24
- this.est.UserDefinedDynamicCols = false;
25
- }
26
- else
27
- this.est.UserDefinedDynamicCols = true;
28
- }
29
- /** Genera partendo dalle **DynamicRowColumnsDefinition** la lista di **EsThDirective** e **EsTdDirective** che servono per la tabella */
30
- emitThsAndTdsBasedOnDynamicDefinition() {
31
- // Senza dynamic columns esco
32
- if (!this.est.DynamicRowColumnsDefinition || this.est.DynamicRowColumnsDefinition.length == 0)
33
- return null;
34
- let ths = [];
35
- let tds = [];
36
- for (let i = 0; i < this.est.DynamicOperations.length; i++) {
37
- let op = this.est.DynamicOperations[i];
38
- ths.push(this.getThFromOperation(op));
39
- tds.push(this.getTdFromOperation(op));
40
- }
41
- for (let i = 0; i < this.est.DynamicRowColumnsDefinition.length; i++) {
42
- let col = this.est.DynamicRowColumnsDefinition[i];
43
- ths.push(this.getThFromColumnDef(col));
44
- tds.push(this.getTdFromColumnDef(col));
45
- }
46
- return { ths, tds };
47
- }
48
- /** @ignore Helper */
49
- getThFromOperation(op) {
50
- let th = new EsThDirective(null);
51
- th.th = op.id;
52
- th.thFixed = true;
53
- th.thVisible = true;
54
- th.thStaticContent = "";
55
- return th;
56
- }
57
- getTdFromOperation(op) {
58
- let td = new EsTdDirective(null);
59
- td.td = op.id;
60
- td.tdVisible = true;
61
- td.tdIconClass = op.iconClass;
62
- td.tdConditionField = op.conditionField;
63
- td.tdConditionValue = op.conditionValue;
64
- td.tdTitle = op.title;
65
- td.tdContent = op.text;
66
- return td;
67
- }
68
- getThFromColumnDef(col) {
69
- var ret = new EsThDirective(null);
70
- ret.th = col.PropertyName;
71
- ret.thPinned = col.Pinned;
72
- ret.thPinnable = col.Pinnable;
73
- ret.thPinnedWidth = col.PinnedWidth;
74
- ret.thVisible = col.Visible;
75
- ret.thOrder = col.DataOrder;
76
- ret.thOrderable = col.Orderable;
77
- ret.thWrap = col.HeaderWraps;
78
- ret.thClass = col.Clss;
79
- ret.thProperty = col.PropertyName;
80
- ret.thType = col.PropertyType;
81
- ret.thSource = col.PropertySource;
82
- ret.thEditorName = col.EditorName;
83
- ret.thEditorOptions = col.EditorOptions;
84
- ret.thRendererName = col.RendererName;
85
- ret.thRoutePath = col.RoutePath;
86
- ret.thRouteParameterProperties = col.RouteParameterProperties;
87
- ret.thStaticContent = col.Description;
88
- //ret.thFixed = col.Fixed;
89
- //ret.thResizable = col.Resizable;
90
- //ret.thGroupClass = col.GroupClass;
91
- //ret.thGroup = col.Group;
92
- //ret.thAggregation = col.Aggregation;
93
- //ret.thMulti = col.Multi;
94
- //ret.thBackgroundColor = col.BackgroundColor;
95
- //ret.thAlignment = col.Alignment;
96
- //ret.thFormat = col.Format;
97
- return ret;
98
- }
99
- /** @ignore Helper */
100
- getTdFromColumnDef(col) {
101
- var ret = new EsTdDirective(null);
102
- ret.td = col.PropertyName;
103
- ret.tdClass = col.Clss;
104
- //ret.tdAlignment = col.Alignment;
105
- //ret.tdFormat = col.Format;
106
- return ret;
107
- }
108
- }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZGVIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL0R5bmFtaWNNb2RlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLFVBQVU7QUFDVixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUczRixzRkFBc0Y7QUFDdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFBSSxDQUFDO0lBRTlDLGdKQUFnSjtJQUN6SSw4QkFBOEI7UUFDakMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMvRCxPQUFPO1FBRVgsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BJLE9BQU87UUFFWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsTUFB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R0FBRyxDQUFDLGFBQWEsQ0FBQTtRQUN2QyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdEMsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxHQUFHLENBQUMsd0JBQXdCLENBQUM7UUFDOUQsR0FBRyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBRXRDLDBCQUEwQjtRQUMxQixrQ0FBa0M7UUFDbEMsb0NBQW9DO1FBQ3BDLDBCQUEwQjtRQUMxQixzQ0FBc0M7UUFDdEMsMEJBQTBCO1FBQzFCLDhDQUE4QztRQUM5QyxrQ0FBa0M7UUFDbEMsNEJBQTRCO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFCQUFxQjtJQUNiLGtCQUFrQixDQUFDLEdBQTZCO1FBQ3BELElBQUksR0FBRyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUMxQixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdkIsa0NBQWtDO1FBQ2xDLDRCQUE0QjtRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IEVzVGREaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9lc190ZC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgRXNUaERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZVwiO1xyXG5cclxuLy8gRG9taW5pb1xyXG5pbXBvcnQgeyBFc1RhYmxlQ29sdW1uc0RlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vZG9tYWluL2V4dGVybmFscy9Fc1RhYmxlQ29sdW1uc0RlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vZG9tYWluL2V4dGVybmFscy9Fc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvblwiO1xyXG5cclxuLyoqIENsYXNzZSBjb250ZW5lbnRlIGxlIGdlc3Rpb25pIHBhcnRpY29sYXJpIGRlbGxhIG1vZGFsaXTDoCBkaW5hbWljYSBkZWxsJ2VzLXRhYmxlICovXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTW9kZUhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50KSB7IH1cclxuXHJcbiAgICAvKiogU2Ugbm9uIGhvIGwnSW5wdXQgKipEeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24qKiBpbiBtb2RhbGl0w6AgZGluYW1pY2EgbG8gcmllbXBpbyBjb24gaWwgZGVmYXVsdCBub21lIGRlbGxhIGNvbG9ubmEgPSB0ZXN0byBkZWxsYSBjb2xvbm5hICovXHJcbiAgICBwdWJsaWMgZXZlbnR1YWxseVJldmlld0R5bmFtaWNDb2x1bW5zKCkge1xyXG4gICAgICAgIC8vIFNlbnphIG9nZ2V0dGkgZXNjb1xyXG4gICAgICAgIGlmICghdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UgfHwgdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdmFyIHVzZUdlbmVyaWNJdGVtcyA9ICEhdGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF1bXCJwcm9wZXJ0aWVzXCJdO1xyXG4gICAgICAgIGlmICghdXNlR2VuZXJpY0l0ZW1zIHx8ICghdGhpcy5lc3QuRmlyc3RCaW5kICYmIHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbiAmJiB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24ubGVuZ3RoID4gMCkpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKCghdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uIHx8IHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGggPT0gMCkpIHtcclxuICAgICAgICAgICAgdmFyIHByb3BzID0gPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+dGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF1bXCJwcm9wZXJ0aWVzXCJdO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHByb3BzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLnB1c2gobmV3IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbihrZXksIGtleSkpO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5Vc2VyRGVmaW5lZER5bmFtaWNDb2xzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5lc3QuVXNlckRlZmluZWREeW5hbWljQ29scyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYSBwYXJ0ZW5kbyBkYWxsZSAqKkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbioqIGxhIGxpc3RhIGRpICoqRXNUaERpcmVjdGl2ZSoqIGUgKipFc1RkRGlyZWN0aXZlKiogY2hlIHNlcnZvbm8gcGVyIGxhIHRhYmVsbGEgKi9cclxuICAgIHB1YmxpYyBlbWl0VGhzQW5kVGRzQmFzZWRPbkR5bmFtaWNEZWZpbml0aW9uKCk6IHsgdGhzOiBFc1RoRGlyZWN0aXZlW10sIHRkczogRXNUZERpcmVjdGl2ZVtdIH0ge1xyXG4gICAgICAgIC8vIFNlbnphIGR5bmFtaWMgY29sdW1ucyBlc2NvXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb24gfHwgdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IHRocyA9IFtdO1xyXG4gICAgICAgIGxldCB0ZHMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVzdC5EeW5hbWljT3BlcmF0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb3AgPSB0aGlzLmVzdC5EeW5hbWljT3BlcmF0aW9uc1tpXTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRocy5wdXNoKHRoaXMuZ2V0VGhGcm9tT3BlcmF0aW9uKG9wKSk7XHJcbiAgICAgICAgICAgIHRkcy5wdXNoKHRoaXMuZ2V0VGRGcm9tT3BlcmF0aW9uKG9wKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LkR5bmFtaWNSb3dDb2x1bW5zRGVmaW5pdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgY29sID0gdGhpcy5lc3QuRHluYW1pY1Jvd0NvbHVtbnNEZWZpbml0aW9uW2ldO1xyXG5cclxuICAgICAgICAgICAgdGhzLnB1c2godGhpcy5nZXRUaEZyb21Db2x1bW5EZWYoY29sKSk7XHJcbiAgICAgICAgICAgIHRkcy5wdXNoKHRoaXMuZ2V0VGRGcm9tQ29sdW1uRGVmKGNvbCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geyB0aHMsIHRkcyB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIEhlbHBlciAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUaEZyb21PcGVyYXRpb24ob3A6IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKTogRXNUaERpcmVjdGl2ZSB7XHJcbiAgICAgICAgbGV0IHRoID0gbmV3IEVzVGhEaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgdGgudGggPSBvcC5pZDtcclxuICAgICAgICB0aC50aEZpeGVkID0gdHJ1ZTtcclxuICAgICAgICB0aC50aFZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoLnRoU3RhdGljQ29udGVudCA9IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIHRoO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VGRGcm9tT3BlcmF0aW9uKG9wOiBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbik6IEVzVGREaXJlY3RpdmUge1xyXG4gICAgICAgIGxldCB0ZCA9IG5ldyBFc1RkRGlyZWN0aXZlKG51bGwpO1xyXG4gICAgICAgIHRkLnRkID0gb3AuaWQ7XHJcbiAgICAgICAgdGQudGRWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB0ZC50ZEljb25DbGFzcyA9IG9wLmljb25DbGFzcztcclxuICAgICAgICB0ZC50ZENvbmRpdGlvbkZpZWxkID0gb3AuY29uZGl0aW9uRmllbGQ7XHJcbiAgICAgICAgdGQudGRDb25kaXRpb25WYWx1ZSA9IG9wLmNvbmRpdGlvblZhbHVlO1xyXG4gICAgICAgIHRkLnRkVGl0bGUgPSBvcC50aXRsZTtcclxuICAgICAgICB0ZC50ZENvbnRlbnQgPSBvcC50ZXh0O1xyXG4gICAgICAgIHJldHVybiB0ZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFRoRnJvbUNvbHVtbkRlZihjb2w6IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbik6IEVzVGhEaXJlY3RpdmUge1xyXG4gICAgICAgIHZhciByZXQgPSBuZXcgRXNUaERpcmVjdGl2ZShudWxsKTtcclxuICAgICAgICByZXQudGggPSBjb2wuUHJvcGVydHlOYW1lO1xyXG4gICAgICAgIHJldC50aFBpbm5lZCA9IGNvbC5QaW5uZWQ7XHJcbiAgICAgICAgcmV0LnRoUGlubmFibGUgPSBjb2wuUGlubmFibGU7XHJcbiAgICAgICAgcmV0LnRoUGlubmVkV2lkdGggPSBjb2wuUGlubmVkV2lkdGg7XHJcbiAgICAgICAgcmV0LnRoVmlzaWJsZSA9IGNvbC5WaXNpYmxlO1xyXG4gICAgICAgIHJldC50aE9yZGVyID0gY29sLkRhdGFPcmRlcjtcclxuICAgICAgICByZXQudGhPcmRlcmFibGUgPSBjb2wuT3JkZXJhYmxlO1xyXG4gICAgICAgIHJldC50aFdyYXAgPSBjb2wuSGVhZGVyV3JhcHM7XHJcbiAgICAgICAgcmV0LnRoQ2xhc3MgPSBjb2wuQ2xzcztcclxuICAgICAgICByZXQudGhQcm9wZXJ0eSA9IGNvbC5Qcm9wZXJ0eU5hbWU7XHJcbiAgICAgICAgcmV0LnRoVHlwZSA9IGNvbC5Qcm9wZXJ0eVR5cGU7XHJcbiAgICAgICAgcmV0LnRoU291cmNlID0gY29sLlByb3BlcnR5U291cmNlO1xyXG4gICAgICAgIHJldC50aEVkaXRvck5hbWUgPSBjb2wuRWRpdG9yTmFtZTtcclxuICAgICAgICByZXQudGhFZGl0b3JPcHRpb25zID0gY29sLkVkaXRvck9wdGlvbnNcclxuICAgICAgICByZXQudGhSZW5kZXJlck5hbWUgPSBjb2wuUmVuZGVyZXJOYW1lO1xyXG4gICAgICAgIHJldC50aFJvdXRlUGF0aCA9IGNvbC5Sb3V0ZVBhdGg7XHJcbiAgICAgICAgcmV0LnRoUm91dGVQYXJhbWV0ZXJQcm9wZXJ0aWVzID0gY29sLlJvdXRlUGFyYW1ldGVyUHJvcGVydGllcztcclxuICAgICAgICByZXQudGhTdGF0aWNDb250ZW50ID0gY29sLkRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgICAvL3JldC50aEZpeGVkID0gY29sLkZpeGVkO1xyXG4gICAgICAgIC8vcmV0LnRoUmVzaXphYmxlID0gY29sLlJlc2l6YWJsZTtcclxuICAgICAgICAvL3JldC50aEdyb3VwQ2xhc3MgPSBjb2wuR3JvdXBDbGFzcztcclxuICAgICAgICAvL3JldC50aEdyb3VwID0gY29sLkdyb3VwO1xyXG4gICAgICAgIC8vcmV0LnRoQWdncmVnYXRpb24gPSBjb2wuQWdncmVnYXRpb247XHJcbiAgICAgICAgLy9yZXQudGhNdWx0aSA9IGNvbC5NdWx0aTtcclxuICAgICAgICAvL3JldC50aEJhY2tncm91bmRDb2xvciA9IGNvbC5CYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgLy9yZXQudGhBbGlnbm1lbnQgPSBjb2wuQWxpZ25tZW50O1xyXG4gICAgICAgIC8vcmV0LnRoRm9ybWF0ID0gY29sLkZvcm1hdDtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIEhlbHBlciAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUZEZyb21Db2x1bW5EZWYoY29sOiBFc1RhYmxlQ29sdW1uc0RlZmluaXRpb24pOiBFc1RkRGlyZWN0aXZlIHtcclxuICAgICAgICB2YXIgcmV0ID0gbmV3IEVzVGREaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgcmV0LnRkID0gY29sLlByb3BlcnR5TmFtZTtcclxuICAgICAgICByZXQudGRDbGFzcyA9IGNvbC5DbHNzO1xyXG4gICAgICAgIC8vcmV0LnRkQWxpZ25tZW50ID0gY29sLkFsaWdubWVudDtcclxuICAgICAgICAvL3JldC50ZEZvcm1hdCA9IGNvbC5Gb3JtYXQ7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- /** Classe contenente la gestione delle importazioni */
2
- export class ExportHandler {
3
- /** @ignore Costruttore*/
4
- constructor(est, expExts, msgExts, utiExts, dateExts) {
5
- this.est = est;
6
- this.expExts = expExts;
7
- this.msgExts = msgExts;
8
- this.utiExts = utiExts;
9
- this.dateExts = dateExts;
10
- }
11
- /**
12
- * Effettua l'esportazione dei dati
13
- *
14
- * @param {string} format Formato di esportazione. Letto solo in modalità Report della tabella
15
- */
16
- tryExport(format) {
17
- if (!this.est.ExportFunction)
18
- return;
19
- else
20
- this.est.ExportFunction(async (data, type) => {
21
- if (data.length == 0) {
22
- this.msgExts.simpleWarning(this.est.lc.loc("Cannot export an empty dataset"));
23
- return;
24
- }
25
- let drcd = this.est.DynamicRowColumnsDefinition;
26
- let columnsFilter = this.est.ExportOnlyVisibleColumns ? this.est.ColumnsList.filter(t => t.visible).map(t => t.id) : null;
27
- let csvHeadersOverride = drcd && drcd.length > 0 ? drcd.map(t => { return { label: t.Description, key: t.PropertyName, propKey: t.PropertyName, order: t.ColumnOrder, type: 'string' }; }) : null;
28
- this.expExts.export(data, format, this.est.ExportFileName, type, columnsFilter, csvHeadersOverride);
29
- }, format);
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9FeHBvcnRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLHVEQUF1RDtBQUN2RCxNQUFNLE9BQU8sYUFBYTtJQUV0Qix5QkFBeUI7SUFDekIsWUFBb0IsR0FBcUIsRUFBVSxPQUFzQixFQUFVLE9BQXVCLEVBQVUsT0FBdUIsRUFBVSxRQUFxQjtRQUF0SixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUFJLENBQUM7SUFFL0s7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUF1QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjO1lBQ3hCLE9BQU87O1lBR1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQVcsRUFBRSxJQUFlLEVBQUUsRUFBRTtnQkFFM0QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO29CQUM5RSxPQUFPO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztnQkFDaEQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxSCxJQUFJLGtCQUFrQixHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQW1CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFFOU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDeEcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBDc3ZIZWFkZXJzLCBEYXRlU2VydmljZSwgRXhwb3J0U2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuXHJcbi8qKiBDbGFzc2UgY29udGVuZW50ZSBsYSBnZXN0aW9uZSBkZWxsZSBpbXBvcnRhemlvbmkgKi9cclxuZXhwb3J0IGNsYXNzIEV4cG9ydEhhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIGV4cEV4dHM6IEV4cG9ydFNlcnZpY2UsIHByaXZhdGUgbXNnRXh0czogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgdXRpRXh0czogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgZGF0ZUV4dHM6IERhdGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGwnZXNwb3J0YXppb25lIGRlaSBkYXRpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCBGb3JtYXRvIGRpIGVzcG9ydGF6aW9uZS4gTGV0dG8gc29sbyBpbiBtb2RhbGl0w6AgUmVwb3J0IGRlbGxhIHRhYmVsbGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyeUV4cG9ydChmb3JtYXQ/OiAnQ1NWJyB8ICdYTFNYJykge1xyXG4gICAgICAgIGlmICghdGhpcy5lc3QuRXhwb3J0RnVuY3Rpb24pXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5FeHBvcnRGdW5jdGlvbihhc3luYyAoZGF0YTogYW55W10sIHR5cGU6IFR5cGU8YW55PikgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmcodGhpcy5lc3QubGMubG9jKFwiQ2Fubm90IGV4cG9ydCBhbiBlbXB0eSBkYXRhc2V0XCIpKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IGRyY2QgPSB0aGlzLmVzdC5EeW5hbWljUm93Q29sdW1uc0RlZmluaXRpb247XHJcbiAgICAgICAgICAgICAgICBsZXQgY29sdW1uc0ZpbHRlciA9IHRoaXMuZXN0LkV4cG9ydE9ubHlWaXNpYmxlQ29sdW1ucyA/IHRoaXMuZXN0LkNvbHVtbnNMaXN0LmZpbHRlcih0ID0+IHQudmlzaWJsZSkubWFwKHQgPT4gdC5pZCkgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNzdkhlYWRlcnNPdmVycmlkZSA9IGRyY2QgJiYgZHJjZC5sZW5ndGggPiAwID8gZHJjZC5tYXAodCA9PiB7IHJldHVybiA8Q3N2SGVhZGVycz57IGxhYmVsOiB0LkRlc2NyaXB0aW9uLCBrZXk6IHQuUHJvcGVydHlOYW1lLCBwcm9wS2V5OiB0LlByb3BlcnR5TmFtZSwgb3JkZXI6IHQuQ29sdW1uT3JkZXIsIHR5cGU6ICdzdHJpbmcnIH07IH0pIDogbnVsbDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cEV4dHMuZXhwb3J0KGRhdGEsIGZvcm1hdCwgdGhpcy5lc3QuRXhwb3J0RmlsZU5hbWUsIHR5cGUsIGNvbHVtbnNGaWx0ZXIsIGNzdkhlYWRlcnNPdmVycmlkZSk7XHJcbiAgICAgICAgICAgIH0sIGZvcm1hdCk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,136 +0,0 @@
1
- /** Classe contenente la gestione della modalità gerarchica */
2
- export class HierarchyModeHandler {
3
- /** @ignore Costruttore*/
4
- constructor(est) {
5
- this.est = est;
6
- }
7
- /**
8
- * Data una lista di oggetti assegno il livello gerarchico rispetto alla lista di oggetti passata
9
- *
10
- * @param {any[]} objs Lista di oggetti a cui aggiungere l'informazione del livello gerarchico
11
- */
12
- assignHierarchyLevels(objs) {
13
- // Casistica input nullo
14
- if (!objs || !objs.length)
15
- return;
16
- //Se mancano entrambe le info le cerco di valorizzare in automatico coi default "parentid" e "id" (posto che le props esistano nell'oggetto)
17
- if (!this.est.ParentKey && !this.est.OwnKey) {
18
- if (objs[0]['parentid'] !== undefined)
19
- this.est.ParentKey = 'parentid';
20
- if (objs[0]['id'] !== undefined)
21
- this.est.OwnKey = 'id';
22
- }
23
- //Check finale per assicurarmi che le props ci siano
24
- if (!this.est.ParentKey || !this.est.OwnKey) {
25
- console.error('Per utilizzare il sistema in modalità gerarchica è obbligatorio specificare sia ParentKey che OwnKey. Fallback a sistema non gerarchico');
26
- return;
27
- }
28
- // Valorizzazione campi level, expanded, e visible per ogni item
29
- let currentLevel = 1;
30
- let assigned = 0;
31
- do {
32
- assigned = this.assignLevel(objs, currentLevel);
33
- currentLevel++;
34
- } while (assigned > 0);
35
- // butto su lato html e poi me la gioco là con padding = 20 * (level - 1) per far capire il diverso livello
36
- }
37
- /**
38
- * Per ognuno degli oggetti passati gli assegna un livello di gerarchia in base a **ParentKey** e **OwnKey**
39
- *
40
- * @param {any[]} objs Oggetti a cui assegnare il livello di gerarchia
41
- * @param {number} levelToAssign Livello che sta assegnando attualmente questa iterazione (dato che è ricorsiva)
42
- *
43
- * @returns {number} Numero di oggetti a cui è stato assegnato un livello gerarchico
44
- */
45
- assignLevel(objs, levelToAssign) {
46
- let assigned = 0;
47
- for (let i = 0; i < objs.length; i++) {
48
- let obj = objs[i];
49
- // Se la parentKey non è valorizzata, questo è il livello 0 (1... perché gli 0 son perciolosi)
50
- if (!obj[this.est.ParentKey] && levelToAssign == 1) {
51
- obj._level = 1;
52
- obj._visible = true;
53
- obj._expanded = this.est.StartsExpanded;
54
- assigned++;
55
- continue;
56
- }
57
- // Per i livelli superiore al primo
58
- if (obj[this.est.ParentKey] && levelToAssign > 1) {
59
- // trovo il parent
60
- for (let p = 0; p < objs.length; p++) {
61
- let possibleParent = objs[p];
62
- // Trovato il parent dell'item, assegno all'item il livello giusto
63
- if (possibleParent[this.est.OwnKey] == obj[this.est.ParentKey] && possibleParent._level == levelToAssign - 1) {
64
- obj._level = levelToAssign;
65
- // So che questo item ha un parent. Ribadisco che il parent è espanso in base alle impostazione e stessa logica
66
- // per la visibilità del figlio
67
- possibleParent._expanded = this.est.StartsExpanded;
68
- possibleParent.parent = true;
69
- obj._visible = this.est.StartsExpanded;
70
- assigned++;
71
- break;
72
- }
73
- }
74
- }
75
- }
76
- return assigned;
77
- }
78
- /**
79
- * Funzione che permette di effettuare l'espansione di un parent quando la tabella funziona in modalità gerarchica
80
- *
81
- * @param {string} key Chiave del parent da espandere
82
- */
83
- expandParent(key) {
84
- for (let i = 0; i < this.est.boundSource.length; i++) {
85
- let obj = this.est.boundSource[i];
86
- // Trovo il parent con quell'id e lo espando
87
- if (obj[this.est.OwnKey] == key) {
88
- obj._expanded = true;
89
- for (let ic = 0; ic < this.est.boundSource.length; ic++) {
90
- let child = this.est.boundSource[ic];
91
- // Trovo tutti i child di quel parent e li rendo visibili
92
- if (child[this.est.ParentKey] == key)
93
- child._visible = true;
94
- }
95
- return;
96
- }
97
- }
98
- }
99
- /**
100
- * Funzione che permette di effettuare il collapse di un parent quando la tabella funziona in modalità gerarchica
101
- *
102
- * @param {string} key Chiave del parent da collassare
103
- */
104
- collapseParent(key) {
105
- for (let i = 0; i < this.est.boundSource.length; i++) {
106
- let obj = this.est.boundSource[i];
107
- // Trovo il parent con quell'id e lo collasso
108
- if (obj[this.est.OwnKey] == key) {
109
- obj._expanded = false;
110
- // Collasso/nascondo tutti i child del parent
111
- this.collapseChildOfParent(key);
112
- return;
113
- }
114
- }
115
- }
116
- /**
117
- * Collassa ricorsivamente tutti i figli di un parent identificato dalla **parentKey**
118
- *
119
- * @param {string} parentKey Chiave del parent di cui collassare i figli
120
- */
121
- collapseChildOfParent(parentKey) {
122
- for (let ic = 0; ic < this.est.boundSource.length; ic++) {
123
- let child = this.est.boundSource[ic];
124
- // Trovo tutti i child di quel parent e li rendo invisibili. Se il child trovato è a sua volta un parent,
125
- // lo collasso e vado in ricorsione sui figli
126
- if (child[this.est.ParentKey] == parentKey && !child.parent)
127
- child._visible = false;
128
- else if (child[this.est.ParentKey] == parentKey && child.parent) {
129
- child._expanded = false;
130
- child._visible = false;
131
- this.collapseChildOfParent(child[this.est.OwnKey]);
132
- }
133
- }
134
- }
135
- }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGllcmFyY2h5TW9kZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2NvcmUvaGFuZGxlcnMvSGllcmFyY2h5TW9kZUhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsOERBQThEO0FBQzlELE1BQU0sT0FBTyxvQkFBb0I7SUFFN0IseUJBQXlCO0lBQ3pCLFlBQW9CLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO0lBQUksQ0FBQztJQUU5Qzs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsSUFBVztRQUNwQyx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3JCLE9BQU87UUFFWCw0SUFBNEk7UUFDNUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTO2dCQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUztnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlJQUF5SSxDQUFDLENBQUM7WUFDekosT0FBTztRQUNYLENBQUM7UUFFRCxnRUFBZ0U7UUFDaEUsSUFBSSxZQUFZLEdBQUcs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QUFDO1lBRXJDLHlHQUF5RztZQUN6Ryw2Q0FBNkM7WUFDN0MsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDdkQsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7aUJBQ3RCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUQsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLyoqIENsYXNzZSBjb250ZW5lbnRlIGxhIGdlc3Rpb25lIGRlbGxhIG1vZGFsaXTDoCBnZXJhcmNoaWNhICovXHJcbmV4cG9ydCBjbGFzcyBIaWVyYXJjaHlNb2RlSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSB1bmEgbGlzdGEgZGkgb2dnZXR0aSBhc3NlZ25vIGlsIGxpdmVsbG8gZ2VyYXJjaGljbyByaXNwZXR0byBhbGxhIGxpc3RhIGRpIG9nZ2V0dGkgcGFzc2F0YVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IG9ianMgTGlzdGEgZGkgb2dnZXR0aSBhIGN1aSBhZ2dpdW5nZXJlIGwnaW5mb3JtYXppb25lIGRlbCBsaXZlbGxvIGdlcmFyY2hpY29cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzc2lnbkhpZXJhcmNoeUxldmVscyhvYmpzOiBhbnlbXSkge1xyXG4gICAgICAgIC8vIENhc2lzdGljYSBpbnB1dCBudWxsb1xyXG4gICAgICAgIGlmICghb2JqcyB8fCAhb2Jqcy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy9TZSBtYW5jYW5vIGVudHJhbWJlIGxlIGluZm8gbGUgY2VyY28gZGkgdmFsb3JpenphcmUgaW4gYXV0b21hdGljbyBjb2kgZGVmYXVsdCBcInBhcmVudGlkXCIgZSBcImlkXCIgKHBvc3RvIGNoZSBsZSBwcm9wcyBlc2lzdGFubyBuZWxsJ29nZ2V0dG8pXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5QYXJlbnRLZXkgJiYgIXRoaXMuZXN0Lk93bktleSkge1xyXG4gICAgICAgICAgICBpZiAob2Jqc1swXVsncGFyZW50aWQnXSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuUGFyZW50S2V5ID0gJ3BhcmVudGlkJztcclxuICAgICAgICAgICAgaWYgKG9ianNbMF1bJ2lkJ10gIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0Lk93bktleSA9ICdpZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL0NoZWNrIGZpbmFsZSBwZXIgYXNzaWN1cmFybWkgY2hlIGxlIHByb3BzIGNpIHNpYW5vXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5QYXJlbnRLZXkgfHwgIXRoaXMuZXN0Lk93bktleSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQZXIgdXRpbGl6emFyZSBpbCBzaXN0ZW1hIGluIG1vZGFsaXTDoCBnZXJhcmNoaWNhIMOoIG9iYmxpZ2F0b3JpbyBzcGVjaWZpY2FyZSBzaWEgUGFyZW50S2V5IGNoZSBPd25LZXkuIEZhbGxiYWNrIGEgc2lzdGVtYSBub24gZ2VyYXJjaGljbycpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBWYWxvcml6emF6aW9uZSBjYW1waSBsZXZlbCwgZXhwYW5kZWQsIGUgdmlzaWJsZSBwZXIgb2duaSBpdGVtXHJcbiAgICAgICAgbGV0IGN1cnJlbnRMZXZlbCA9IDE7XHJcbiAgICAgICAgbGV0IGFzc2lnbmVkID0gMDtcclxuICAgICAgICBkbyB7XHJcbiAgICAgICAgICAgIGFzc2lnbmVkID0gdGhpcy5hc3NpZ25MZXZlbChvYmpzLCBjdXJyZW50TGV2ZWwpO1xyXG4gICAgICAgICAgICBjdXJyZW50TGV2ZWwrKztcclxuICAgICAgICB9IHdoaWxlIChhc3NpZ25lZCA+IDApO1xyXG4gICAgICAgIC8vIGJ1dHRvIHN1IGxhdG8gaHRtbCBlIHBvaSBtZSBsYSBnaW9jbyBsw6AgY29uIHBhZGRpbmcgPSAyMCAqIChsZXZlbCAtIDEpIHBlciBmYXIgY2FwaXJlIGlsIGRpdmVyc28gbGl2ZWxsb1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyIG9nbnVubyBkZWdsaSBvZ2dldHRpIHBhc3NhdGkgZ2xpIGFzc2VnbmEgdW4gbGl2ZWxsbyBkaSBnZXJhcmNoaWEgaW4gYmFzZSBhICoqUGFyZW50S2V5KiogZSAqKk93bktleSoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnlbXX0gb2JqcyBPZ2dldHRpIGEgY3VpIGFzc2VnbmFyZSBpbCBsaXZlbGxvIGRpIGdlcmFyY2hpYVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxldmVsVG9Bc3NpZ24gTGl2ZWxsbyBjaGUgc3RhIGFzc2VnbmFuZG8gYXR0dWFsbWVudGUgcXVlc3RhIGl0ZXJhemlvbmUgKGRhdG8gY2hlIMOoIHJpY29yc2l2YSlcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBOdW1lcm8gZGkgb2dnZXR0aSBhIGN1aSDDqCBzdGF0byBhc3NlZ25hdG8gdW4gbGl2ZWxsbyBnZXJhcmNoaWNvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXNzaWduTGV2ZWwob2JqczogYW55W10sIGxldmVsVG9Bc3NpZ246IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGFzc2lnbmVkID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IG9iaiA9IG9ianNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyBTZSBsYSBwYXJlbnRLZXkgbm9uIMOoIHZhbG9yaXp6YXRhLCBxdWVzdG8gw6ggaWwgbGl2ZWxsbyAwICgxLi4uIHBlcmNow6kgZ2xpIDAgc29uIHBlcmNpb2xvc2kpXHJcbiAgICAgICAgICAgIGlmICghb2JqW3RoaXMuZXN0LlBhcmVudEtleV0gJiYgbGV2ZWxUb0Fzc2lnbiA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouX2xldmVsID0gMTtcclxuICAgICAgICAgICAgICAgIG9iai5fdmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBvYmouX2V4cGFuZGVkID0gdGhpcy5lc3QuU3RhcnRzRXhwYW5kZWQ7XHJcbiAgICAgICAgICAgICAgICBhc3NpZ25lZCsrO1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFBlciBpIGxpdmVsbGkgc3VwZXJpb3JlIGFsIHByaW1vXHJcbiAgICAgICAgICAgIGlmIChvYmpbdGhpcy5lc3QuUGFyZW50S2V5XSAmJiBsZXZlbFRvQXNzaWduID4gMSkge1xyXG4gICAgICAgICAgICAgICAgLy8gdHJvdm8gaWwgcGFyZW50XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBwID0gMDsgcCA8IG9ianMubGVuZ3RoOyBwKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcG9zc2libGVQYXJlbnQgPSBvYmpzW3BdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBUcm92YXRvIGlsIHBhcmVudCBkZWxsJ2l0ZW0sIGFzc2Vnbm8gYWxsJ2l0ZW0gaWwgbGl2ZWxsbyBnaXVzdG9cclxuICAgICAgICAgICAgICAgICAgICBpZiAocG9zc2libGVQYXJlbnRbdGhpcy5lc3QuT3duS2V5XSA9PSBvYmpbdGhpcy5lc3QuUGFyZW50S2V5XSAmJiBwb3NzaWJsZVBhcmVudC5fbGV2ZWwgPT0gbGV2ZWxUb0Fzc2lnbiAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqLl9sZXZlbCA9IGxldmVsVG9Bc3NpZ247XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbyBjaGUgcXVlc3RvIGl0ZW0gaGEgdW4gcGFyZW50LiBSaWJhZGlzY28gY2hlIGlsIHBhcmVudCDDqCBlc3BhbnNvIGluIGJhc2UgYWxsZSBpbXBvc3RhemlvbmUgZSBzdGVzc2EgbG9naWNhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBlciBsYSB2aXNpYmlsaXTDoCBkZWwgZmlnbGlvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlUGFyZW50Ll9leHBhbmRlZCA9IHRoaXMuZXN0LlN0YXJ0c0V4cGFuZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZVBhcmVudC5wYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmouX3Zpc2libGUgPSB0aGlzLmVzdC5TdGFydHNFeHBhbmRlZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduZWQrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhc3NpZ25lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGNoZSBwZXJtZXR0ZSBkaSBlZmZldHR1YXJlIGwnZXNwYW5zaW9uZSBkaSB1biBwYXJlbnQgcXVhbmRvIGxhIHRhYmVsbGEgZnVuemlvbmEgaW4gbW9kYWxpdMOgIGdlcmFyY2hpY2FcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkZWwgcGFyZW50IGRhIGVzcGFuZGVyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZXhwYW5kUGFyZW50KGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVzdC5ib3VuZFNvdXJjZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqID0gdGhpcy5lc3QuYm91bmRTb3VyY2VbaV07XHJcblxyXG4gICAgICAgICAgICAvLyBUcm92byBpbCBwYXJlbnQgY29uIHF1ZWxsJ2lkIGUgbG8gZXNwYW5kb1xyXG4gICAgICAgICAgICBpZiAob2JqW3RoaXMuZXN0Lk93bktleV0gPT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICBvYmouX2V4cGFuZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpYyA9IDA7IGljIDwgdGhpcy5lc3QuYm91bmRTb3VyY2UubGVuZ3RoOyBpYysrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkID0gdGhpcy5lc3QuYm91bmRTb3VyY2VbaWNdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBUcm92byB0dXR0aSBpIGNoaWxkIGRpIHF1ZWwgcGFyZW50IGUgbGkgcmVuZG8gdmlzaWJpbGlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRbdGhpcy5lc3QuUGFyZW50S2V5XSA9PSBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLl92aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGNoZSBwZXJtZXR0ZSBkaSBlZmZldHR1YXJlIGlsIGNvbGxhcHNlIGRpIHVuIHBhcmVudCBxdWFuZG8gbGEgdGFiZWxsYSBmdW56aW9uYSBpbiBtb2RhbGl0w6AgZ2VyYXJjaGljYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRlbCBwYXJlbnQgZGEgY29sbGFzc2FyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sbGFwc2VQYXJlbnQoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXN0LmJvdW5kU291cmNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBvYmogPSB0aGlzLmVzdC5ib3VuZFNvdXJjZVtpXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFRyb3ZvIGlsIHBhcmVudCBjb24gcXVlbGwnaWQgZSBsbyBjb2xsYXNzb1xyXG4gICAgICAgICAgICBpZiAob2JqW3RoaXMuZXN0Lk93bktleV0gPT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICBvYmouX2V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQ29sbGFzc28vbmFzY29uZG8gdHV0dGkgaSBjaGlsZCBkZWwgcGFyZW50XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlQ2hpbGRPZlBhcmVudChrZXkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29sbGFzc2Egcmljb3JzaXZhbWVudGUgdHV0dGkgaSBmaWdsaSBkaSB1biBwYXJlbnQgaWRlbnRpZmljYXRvIGRhbGxhICoqcGFyZW50S2V5KipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50S2V5IENoaWF2ZSBkZWwgcGFyZW50IGRpIGN1aSBjb2xsYXNzYXJlIGkgZmlnbGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb2xsYXBzZUNoaWxkT2ZQYXJlbnQocGFyZW50S2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBmb3IgKGxldCBpYyA9IDA7IGljIDwgdGhpcy5lc3QuYm91bmRTb3VyY2UubGVuZ3RoOyBpYysrKSB7XHJcbiAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMuZXN0LmJvdW5kU291cmNlW2ljXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFRyb3ZvIHR1dHRpIGkgY2hpbGQgZGkgcXVlbCBwYXJlbnQgZSBsaSByZW5kbyBpbnZpc2liaWxpLiBTZSBpbCBjaGlsZCB0cm92YXRvIMOoIGEgc3VhIHZvbHRhIHVuIHBhcmVudCxcclxuICAgICAgICAgICAgLy8gbG8gY29sbGFzc28gZSB2YWRvIGluIHJpY29yc2lvbmUgc3VpIGZpZ2xpXHJcbiAgICAgICAgICAgIGlmIChjaGlsZFt0aGlzLmVzdC5QYXJlbnRLZXldID09IHBhcmVudEtleSAmJiAhY2hpbGQucGFyZW50KVxyXG4gICAgICAgICAgICAgICAgY2hpbGQuX3Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGRbdGhpcy5lc3QuUGFyZW50S2V5XSA9PSBwYXJlbnRLZXkgJiYgY2hpbGQucGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjaGlsZC5fZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNoaWxkLl92aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlQ2hpbGRPZlBhcmVudChjaGlsZFt0aGlzLmVzdC5Pd25LZXldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,119 +0,0 @@
1
- // Modelli
2
- import { AppSearch } from "../../domain/externals/appsearch/AppSearch";
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
- let castedView = this.est.View;
67
- let groupKeys = castedView.groupings ? castedView.groupings.filter(t => !t.aggregation).length : 0;
68
- //Gruppi intermedi
69
- if ((castedView.requestedgroups?.length != groupKeys || castedView.requestedgroups?.length == 0) && groupKeys > 0) {
70
- let ret = castedView.groups;
71
- ret.forEach(itm => {
72
- // Setto variabile interna per capire che questo è in realtà un gruppo
73
- itm._group = true;
74
- // Le informazioni passate come lista le metto dentro a una cache per velocizzarne l'accesso quando devo tirare fuori il display della proprietà
75
- this.utilities.cacheAggregations(itm);
76
- });
77
- return ret;
78
- }
79
- else {
80
- let ret = this.est.ItemSourceProperty ? this.est.View[this.est.ItemSourceProperty] : this.est.View.items;
81
- if (!ret)
82
- ret = [];
83
- // Setto variabile interna per specificare che questo è un elemento normale, non un gruppo o altro
84
- ret.forEach(itm => { itm._item = true; });
85
- return ret;
86
- }
87
- }
88
- /** Genera le informazioni di paginazione e taglia la View in modalità array per mostrare solo gli oggetti della pagina specificata */
89
- adaptViewToPaging() {
90
- let tmpItems = [];
91
- // Se ho una search view l'array pulsanti viene calcolato da lei, non devo prendere quello della modalità array,
92
- // inoltre non ho bisogno di fare ragionamenti su quanti elementi ci sono e sulla pagina, dato che viene tutto gestito esternamente,
93
- // unendo al risultato della view tutti gli oggetti addizionali
94
- if (!this.est.SearchView)
95
- this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.arraymodePage, this.est.arraymodePages);
96
- else
97
- return this.est.View;
98
- // Applico eventuali oridnamenti lato Array prima di tirare fuori la pagina selezionata
99
- let items = this.est.View;
100
- if (this.est)
101
- items = this.arrayModeReviewOrderings(items);
102
- // Poi per tutti i valori dopo compresi fra la pagina - 1 e la pagina
103
- for (let i = ((this.est.arraymodePage - 1) * this.est.ArraymodeItemsPerPage); i < this.est.arraymodePage * this.est.ArraymodeItemsPerPage; i++) {
104
- if (i <= items.length - 1)
105
- tmpItems.push(items[i]);
106
- }
107
- return tmpItems;
108
- }
109
- /** Se in modalità array applica gli ordinamenti ASC-DESC delle colonne */
110
- arrayModeReviewOrderings(items) {
111
- let tmp = items;
112
- if (this.est.arrayOrders.length > 0)
113
- this.est.arrayOrders.forEach(t => {
114
- tmp = tmp.sort((a, b) => (a[t.id] > b[t.id] ? 1 : -1) * (t.order == 'DESC' ? -1 : 1));
115
- });
116
- return tmp;
117
- }
118
- }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL0l0ZW1zSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBS3ZFLDJKQUEySjtBQUMzSixNQUFNLE9BQU8sWUFBWTtJQUVyQiwwQkFBMEI7SUFDMUIsWUFBb0IsR0FBcUIsRUFBVSxTQUEyQjtRQUExRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUksQ0FBQztJQUVuRjs7Ozs7Ozs7T0FRRztJQUNJLGNBQWMsQ0FBQyxlQUF3QixLQUFLLEVBQUUsZ0JBQXlCLEtBQUssRUFBRSxnQkFBeUIsS0FBSztRQUMvRyxJQUFJLEtBQUssR0FBVSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUQsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3hDLENBQUM7YUFDSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCxxREFBcUQ7WUFDckQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBRWhELCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVB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LFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsd0JBQXdCLENBQUMsS0FBWTtRQUN4QyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRixDQUFDLENBQUMsQ0FBQztRQUNQLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwU2VhcmNoIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9leHRlcm5hbHMvYXBwc2VhcmNoL0FwcFNlYXJjaFwiO1xyXG5cclxuLy8gVXRpbGl0aWVzXHJcbmltcG9ydCB7IFV0aWxpdGllc0hhbmRsZXIgfSBmcm9tIFwiLi9VdGlsaXRpZXNIYW5kbGVyXCI7XHJcblxyXG4vKiogQ2xhc3NlIGNoZSBzaSBvY2N1cGEgZGVsbGEgZ2VzdGlvbmUgZGVsIHJlY3VwZXJvIGRlZ2xpIG9nZ2V0dGksIHBhZ2luYXppb25lIGUgdHV0dG8gY2nDsiBpbiBjdWkgZ2xpIGVsZW1lbnRpIGNhcmljYXRpIHZlbmdvbm8gbWFuaXBvbGF0aSBkaXJldHRhbWVudGUgKi9cclxuZXhwb3J0IGNsYXNzIEl0ZW1zSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIHV0aWxpdGllczogVXRpbGl0aWVzSGFuZGxlcikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBiYXNlIGFsbGEgbW9kYWxpdMOgIHNwZWNpZmljYXRhIChBcnJheU1vZGUsIFZpZXdNb2RlLCBlY2MuLi4pIHF1ZXN0byBtZXRvZG8gcmVjdXBlcmEgbCdhcnJheSBkaSBvZ2dldHRpIGRhIGJpbmRhcmUgYWQgaW50ZXJmYWNjaWFcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9ubHlzZWxlY3RlZCBbZmFsc2VdIEluZGljYSBkaSBwcmVuZGVyZSBzb2xvIGdsaSBvZ2dldHRpIHNlbGV6aW9uYXRpXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlZnJlc2hQYWdpbmcgW2ZhbHNlXSBJbmRpY2Egc2UgYWdnaW9ybmFyZSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgbyBtZW5vXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbElmUG9zc2libGUgW2ZhbHNlXSBJbmRpY2Egc2UgcHJlbmRlcmUgdHV0dGkgZ2xpIG9nZ2V0dGkgcXVhb3JhIHBvc3NpYmlsZSwgdXNhdG8gc29sbyBpbiBBcnJheU1vZGVcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55W119IExpc3RhIGRlZ2xpIG9nZ2V0dGkgc3UgY3VpIGVmZmV0dHVhcmUgaWwgYmluZCBsYXRvIGludGVyZmFjY2lhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtc0J5TW9kZShvbmx5c2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgcmVmcmVzaFBhZ2luZzogYm9vbGVhbiA9IGZhbHNlLCBhbGxJZlBvc3NpYmxlOiBib29sZWFuID0gZmFsc2UpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoKHRoaXMuZXN0LnZpZXdNb2RlICYmIHRoaXMuZXN0LlZpZXcgaW5zdGFuY2VvZiBBcHBTZWFyY2gpKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5nZXRWaWV3SXRlbXNCeVNvdXJjZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmVzdC5hcnJheU1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5lc3QuVmlldy5mb3JFYWNoKGl0bSA9PiB7IGl0bS5faXRlbSA9IHRydWU7IH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gU2UgZmFjY2lvIGRlaSByYWdncnVwcGFtZW50aSBpZ25vcm8gbGEgcGFnaW5hemlvbmVcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlVzZUFycmF5TW9kZVBhZ2luZyAmJiAhYWxsSWZQb3NzaWJsZSkge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNlIHNvbm8gaW4gbW9kYWxpdMOgIGFycmF5IG1hIGxhIHJpY2VyY2EgZGlwZW5kZSBkYSB1bmEgdmlldyBkZXZvIHJpYWxsaW5lYXJlIGdsaSBpdGVtcGVycGFnZVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gdGhpcy5lc3QuU2VhcmNoVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlID0gdGhpcy5lc3QuU2VhcmNoVmlldy5wYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzID0gdGhpcy5lc3QuU2VhcmNoVmlldy5wYWdlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIERldm8gY2hpYW1hcmUgaWwgcmVmcmVzaCBwYWdlIHNvbG8gc2UgdmVuZ28gcmljaGlhbWF0byBkYSB1biBiaW5kaW5nIGVzdGVybm9cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZnJlc2hQYWdpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoUGFnaW5nKHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmFkYXB0Vmlld1RvUGFnaW5nKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuZXN0LlZpZXcgYXMgYW55W107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFNlIHZvZ2xpbyBzb2xvIGkgc2VsZXppb25hdGkgZmlsdHJvXHJcbiAgICAgICAgaWYgKG9ubHlzZWxlY3RlZClcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcih0ID0+IHQuX3NlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIHBlciBlZmZldHR1YXJlIGlsIHJlZnJlc2ggZGVsbGEgcGFnaW5hemlvbmUgc3VsIGNhbWJpYW1lbnRvIGRlZ2xpIG9nZ2V0dGkgZGEgdmlzdWFsaXp6YXJlIGluIHVuYSBzaW5nb2xhIHBhZ2luYS5cclxuICAgICAqXHJcbiAgICAgKiBWYWxlIHNvbG8gcGVyIGxhIG1vZGFsaXTDoCBBcnJheVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlU2l6ZSBEaW1lbnNpb25lIGRlbGxhIHBhZ2luYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVmcmVzaFBhZ2luZyhwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gcGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pLmxlbmd0aCAvIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSA9IDE7XHJcblxyXG4gICAgICAgIC8vIFJpZm9yem8gaWwgd3JpdGV2YWx1ZSBpbiBtb2RvIGNoZSBpbCBjb2RpY2UgcGFzc2kgZGFsbGEgZ2VzdGlvbmUgY29tZSBzZSBmb3NzZSBmYXR0YSByaXBhcnRpcmUgdW5hIHJpY2VyY2FcclxuICAgICAgICB0aGlzLmVzdC5pbnRlcm5hbFdyaXRlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgZ2xpIG9nZ2V0dGkgaW4gYmFzZSBhbGxhIHNvcmdlbnRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Vmlld0l0ZW1zQnlTb3VyY2UoKTogYW55W10ge1xyXG4gICAgICAgIGxldCBjYXN0ZWRWaWV3ID0gdGhpcy5lc3QuVmlldyBhcyBBcHBTZWFyY2g8YW55PjtcclxuICAgICAgICBsZXQgZ3JvdXBLZXlzID0gY2FzdGVkVmlldy5ncm91cGluZ3MgPyBjYXN0ZWRWaWV3Lmdyb3VwaW5ncy5maWx0ZXIodCA9PiAhdC5hZ2dyZWdhdGlvbikubGVuZ3RoIDogMDtcclxuXHJcbiAgICAgICAgLy9HcnVwcGkgaW50ZXJtZWRpXHJcbiAgICAgICAgaWYgKChjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoICE9IGdyb3VwS2V5cyB8fCBjYXN0ZWRWaWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoID09IDApICYmIGdyb3VwS2V5cyA+IDApIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IGNhc3RlZFZpZXcuZ3JvdXBzO1xyXG4gICAgICAgICAgICByZXQuZm9yRWFjaChpdG0gPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNldHRvIHZhcmlhYmlsZSBpbnRlcm5hIHBlciBjYXBpcmUgY2hlIHF1ZXN0byDDqCBpbiByZWFsdMOgIHVuIGdydXBwb1xyXG4gICAgICAgICAgICAgICAgKDxhbnk+aXRtKS5fZ3JvdXAgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIExlIGluZm9ybWF6aW9uaSBwYXNzYXRlIGNvbWUgbGlzdGEgbGUgbWV0dG8gZGVudHJvIGEgdW5hIGNhY2hlIHBlciB2ZWxvY2l6emFybmUgbCdhY2Nlc3NvIHF1YW5kbyBkZXZvIHRpcmFyZSBmdW9yaSBpbCBkaXNwbGF5IGRlbGxhIHByb3ByaWV0w6BcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0aWVzLmNhY2hlQWdncmVnYXRpb25zKGl0bSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHJldCA9IHRoaXMuZXN0Lkl0ZW1Tb3VyY2VQcm9wZXJ0eSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSlbdGhpcy5lc3QuSXRlbVNvdXJjZVByb3BlcnR5XSA6ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXM7XHJcbiAgICAgICAgICAgIGlmICghcmV0KSByZXQgPSBbXTtcclxuICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIHNwZWNpZmljYXJlIGNoZSBxdWVzdG8gw6ggdW4gZWxlbWVudG8gbm9ybWFsZSwgbm9uIHVuIGdydXBwbyBvIGFsdHJvXHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7ICg8YW55Pml0bSkuX2l0ZW0gPSB0cnVlOyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgZSB0YWdsaWEgbGEgVmlldyBpbiBtb2RhbGl0w6AgYXJyYXkgcGVyIG1vc3RyYXJlIHNvbG8gZ2xpIG9nZ2V0dGkgZGVsbGEgcGFnaW5hIHNwZWNpZmljYXRhICovXHJcbiAgICBwcml2YXRlIGFkYXB0Vmlld1RvUGFnaW5nKCkge1xyXG4gICAgICAgIGxldCB0bXBJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgLy8gU2UgaG8gdW5hIHNlYXJjaCB2aWV3IGwnYXJyYXkgcHVsc2FudGkgdmllbmUgY2FsY29sYXRvIGRhIGxlaSwgbm9uIGRldm8gcHJlbmRlcmUgcXVlbGxvIGRlbGxhIG1vZGFsaXTDoCBhcnJheSxcclxuICAgICAgICAvLyBpbm9sdHJlIG5vbiBobyBiaXNvZ25vIGRpIGZhcmUgcmFnaW9uYW1lbnRpIHN1IHF1YW50aSBlbGVtZW50aSBjaSBzb25vIGUgc3VsbGEgcGFnaW5hLCBkYXRvIGNoZSB2aWVuZSB0dXR0byBnZXN0aXRvIGVzdGVybmFtZW50ZSwgXHJcbiAgICAgICAgLy8gdW5lbmRvIGFsIHJpc3VsdGF0byBkZWxsYSB2aWV3IHR1dHRpIGdsaSBvZ2dldHRpIGFkZGl6aW9uYWxpXHJcbiAgICAgICAgaWYgKCF0aGlzLmVzdC5TZWFyY2hWaWV3KVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5hcnJheVB1bHNhbnRpID0gdGhpcy51dGlsaXRpZXMuZ2V0UGFnZXNBcnJheSg2LCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlLCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3QuVmlldyBhcyBhbnlbXTtcclxuXHJcbiAgICAgICAgLy8gQXBwbGljbyBldmVudHVhbGkgb3JpZG5hbWVudGkgbGF0byBBcnJheSBwcmltYSBkaSB0aXJhcmUgZnVvcmkgbGEgcGFnaW5hIHNlbGV6aW9uYXRhXHJcbiAgICAgICAgbGV0IGl0ZW1zID0gKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pO1xyXG4gICAgICAgIGlmICh0aGlzLmVzdClcclxuICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmFycmF5TW9kZVJldmlld09yZGVyaW5ncyhpdGVtcyk7XHJcblxyXG4gICAgICAgIC8vIFBvaSBwZXIgdHV0dGkgaSB2YWxvcmkgZG9wbyBjb21wcmVzaSBmcmEgbGEgcGFnaW5hIC0gMSBlIGxhIHBhZ2luYVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAoKHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgLSAxKSAqIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7IGkgPCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlICogdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGkgPD0gaXRlbXMubGVuZ3RoIC0gMSlcclxuICAgICAgICAgICAgICAgIHRtcEl0ZW1zLnB1c2goaXRlbXNbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRtcEl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZSBpbiBtb2RhbGl0w6AgYXJyYXkgYXBwbGljYSBnbGkgb3JkaW5hbWVudGkgQVNDLURFU0MgZGVsbGUgY29sb25uZSAqL1xyXG4gICAgcHVibGljIGFycmF5TW9kZVJldmlld09yZGVyaW5ncyhpdGVtczogYW55W10pOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IHRtcCA9IGl0ZW1zO1xyXG4gICAgICAgIGlmICh0aGlzLmVzdC5hcnJheU9yZGVycy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5hcnJheU9yZGVycy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdG1wID0gdG1wLnNvcnQoKGEsIGIpID0+IChhW3QuaWRdID4gYlt0LmlkXSA/IDEgOiAtMSkgKiAodC5vcmRlciA9PSAnREVTQycgPyAtMSA6IDEpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRtcDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,60 +0,0 @@
1
- import { EsThDirective } from "../../directives/es_th.directive";
2
- import { EsTdDirective } from "../../directives/es_td.directive";
3
- /** Classe che gestisce la modalità Report dell'es-table utilizzata nel Metering */
4
- export class ReportModeHandler {
5
- /** @ignore Costruttore */
6
- constructor(est, utilities) {
7
- this.est = est;
8
- this.utilities = utilities;
9
- }
10
- /** Metodo che si occupa di gestire la grafica della tabella in base alle informazioni di ordinamento colonne e paginazione contenuti nel modello */
11
- reviewReportBindings() {
12
- // Allineo le informazioni su eventuali ordinamenti fatti precedentemente
13
- if (this.est.View.orders && this.est.View.orders.length > 0) {
14
- this.est.View.orders.forEach(t => {
15
- this.est.View.report_columns.filter(c => c.id == t.column)[0].order = t.order;
16
- });
17
- }
18
- // Recupero il count precedente se serve
19
- let count = this.est.View.objectcount;
20
- if (count != -2)
21
- this.est.previousCount = count;
22
- else if (count == -2)
23
- count = this.est.previousCount;
24
- let ipp = (this.est.View.itemsperpageoverride || 15);
25
- this.est.View.pages = Math.ceil(count / ipp);
26
- this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.View.page, this.est.View.pages);
27
- }
28
- /**
29
- * Data una AppSearch questo metodo genera la lista di th e td che si possono collegare al giro standard.
30
- * Se non ci fosse questo passaggio intermedio la gestione della modalità report sarebbe 100% custom,
31
- * come poi lo era prima che la facessi passare dal giro che fanno tutte le altre modalità
32
- *
33
- * @param {AppSearch<any>} view View in modalità report contenente le informazioni sulle colonne
34
- *
35
- * @returns {{ ths: EsThDirective[], tds: EsTdDirective[] }} Lista di direttive per gli header e per il body
36
- */
37
- generateThsAndTdsFromView(view) {
38
- var ret = { ths: [], tds: [] };
39
- // Ordinamento per ora commentato... non vorrebbe mi fuckappasse tutto
40
- //view.report_columns.sort((c1, c2) => c1.seq || 0 - c2.seq || 0);
41
- for (let i = 0; i < view.report_columns.length; i++) {
42
- let clm = view.report_columns[i];
43
- var th = new EsThDirective(null);
44
- th.th = clm.id;
45
- th.thStaticContent = clm.description || null;
46
- th.thBackgroundColor = clm.color;
47
- th.thAlignment = clm.alignment;
48
- th.thFormat = clm.format;
49
- var td = new EsTdDirective(null);
50
- td.td = clm.id;
51
- td.tdPropertyAccessor = i.toString();
52
- td.tdAlignment = clm.alignment;
53
- td.tdFormat = clm.format;
54
- ret.ths.push(th);
55
- ret.tds.push(td);
56
- }
57
- return ret;
58
- }
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0TW9kZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2NvcmUvaGFuZGxlcnMvUmVwb3J0TW9kZUhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUtqRSxtRkFBbUY7QUFDbkYsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQiwwQkFBMEI7SUFDMUIsWUFBb0IsR0FBcUIsRUFBVSxTQUEyQjtRQUExRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUksQ0FBQztJQUVuRixvSkFBb0o7SUFDN0ksb0JBQW9CO1FBRXZCLHlFQUF5RTtRQUN6RSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCx3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUM5QixJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDaEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBRW5DLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0kseUJBQXlCLENBQUMsSUFBb0I7UUFDakQsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUUvQixzRUFBc0U7UUFDdEUsa0VBQWtFO1FBRWxFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFakMsSUFBSSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2YsRUFBRSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUM3QyxFQUFFLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNqQyxFQUFFLENBQUMsV0FBVyxHQUFnQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQzVELEVBQUUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUV6QixJQUFJLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixFQUFFLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyxXQUFXLEdBQWdDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDNUQsRUFBRSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBRXpCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEhhbmRsZXJzXHJcbmltcG9ydCB7IFV0aWxpdGllc0hhbmRsZXIgfSBmcm9tIFwiLi9VdGlsaXRpZXNIYW5kbGVyXCI7XHJcblxyXG4vLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5pbXBvcnQgeyBFc1RoRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZXNfdGguZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IEVzVGREaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9lc190ZC5kaXJlY3RpdmVcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwU2VhcmNoIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9leHRlcm5hbHMvYXBwc2VhcmNoL0FwcFNlYXJjaFwiO1xyXG5cclxuLyoqIENsYXNzZSBjaGUgZ2VzdGlzY2UgbGEgbW9kYWxpdMOgIFJlcG9ydCBkZWxsJ2VzLXRhYmxlIHV0aWxpenphdGEgbmVsIE1ldGVyaW5nICovXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRNb2RlSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIHV0aWxpdGllczogVXRpbGl0aWVzSGFuZGxlcikgeyB9XHJcblxyXG4gICAgLyoqIE1ldG9kbyBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgbGEgZ3JhZmljYSBkZWxsYSB0YWJlbGxhIGluIGJhc2UgYWxsZSBpbmZvcm1hemlvbmkgZGkgb3JkaW5hbWVudG8gY29sb25uZSBlIHBhZ2luYXppb25lIGNvbnRlbnV0aSBuZWwgbW9kZWxsbyAqL1xyXG4gICAgcHVibGljIHJldmlld1JlcG9ydEJpbmRpbmdzKCkge1xyXG5cclxuICAgICAgICAvLyBBbGxpbmVvIGxlIGluZm9ybWF6aW9uaSBzdSBldmVudHVhbGkgb3JkaW5hbWVudGkgZmF0dGkgcHJlY2VkZW50ZW1lbnRlXHJcbiAgICAgICAgaWYgKHRoaXMuZXN0LlZpZXcub3JkZXJzICYmIHRoaXMuZXN0LlZpZXcub3JkZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5lc3QuVmlldy5vcmRlcnMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcucmVwb3J0X2NvbHVtbnMuZmlsdGVyKGMgPT4gYy5pZCA9PSB0LmNvbHVtbilbMF0ub3JkZXIgPSB0Lm9yZGVyO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlY3VwZXJvIGlsIGNvdW50IHByZWNlZGVudGUgc2Ugc2VydmVcclxuICAgICAgICBsZXQgY291bnQgPSB0aGlzLmVzdC5WaWV3Lm9iamVjdGNvdW50O1xyXG4gICAgICAgIGlmIChjb3VudCAhPSAtMilcclxuICAgICAgICAgICAgdGhpcy5lc3QucHJldmlvdXNDb3VudCA9IGNvdW50O1xyXG4gICAgICAgIGVsc2UgaWYgKGNvdW50ID09IC0yKVxyXG4gICAgICAgICAgICBjb3VudCA9IHRoaXMuZXN0LnByZXZpb3VzQ291bnQ7XHJcblxyXG4gICAgICAgIGxldCBpcHAgPSAodGhpcy5lc3QuVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZSB8fCAxNSk7XHJcbiAgICAgICAgdGhpcy5lc3QuVmlldy5wYWdlcyA9IE1hdGguY2VpbChjb3VudCAvIGlwcCk7XHJcbiAgICAgICAgdGhpcy5lc3QuYXJyYXlQdWxzYW50aSA9IHRoaXMudXRpbGl0aWVzLmdldFBhZ2VzQXJyYXkoNiwgdGhpcy5lc3QuVmlldy5wYWdlLCB0aGlzLmVzdC5WaWV3LnBhZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGEgdW5hIEFwcFNlYXJjaCBxdWVzdG8gbWV0b2RvIGdlbmVyYSBsYSBsaXN0YSBkaSB0aCBlIHRkIGNoZSBzaSBwb3Nzb25vIGNvbGxlZ2FyZSBhbCBnaXJvIHN0YW5kYXJkLlxyXG4gICAgICogU2Ugbm9uIGNpIGZvc3NlIHF1ZXN0byBwYXNzYWdnaW8gaW50ZXJtZWRpbyBsYSBnZXN0aW9uZSBkZWxsYSBtb2RhbGl0w6AgcmVwb3J0IHNhcmViYmUgMTAwJSBjdXN0b20sIFxyXG4gICAgICogY29tZSBwb2kgbG8gZXJhIHByaW1hIGNoZSBsYSBmYWNlc3NpIHBhc3NhcmUgZGFsIGdpcm8gY2hlIGZhbm5vIHR1dHRlIGxlIGFsdHJlIG1vZGFsaXTDoFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0FwcFNlYXJjaDxhbnk+fSB2aWV3IFZpZXcgaW4gbW9kYWxpdMOgIHJlcG9ydCBjb250ZW5lbnRlIGxlIGluZm9ybWF6aW9uaSBzdWxsZSBjb2xvbm5lXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHt7IHRoczogRXNUaERpcmVjdGl2ZVtdLCB0ZHM6IEVzVGREaXJlY3RpdmVbXSB9fSBMaXN0YSBkaSBkaXJldHRpdmUgcGVyIGdsaSBoZWFkZXIgZSBwZXIgaWwgYm9keVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2VuZXJhdGVUaHNBbmRUZHNGcm9tVmlldyh2aWV3OiBBcHBTZWFyY2g8YW55Pik6IHsgdGhzOiBFc1RoRGlyZWN0aXZlW10sIHRkczogRXNUZERpcmVjdGl2ZVtdIH0ge1xyXG4gICAgICAgIHZhciByZXQgPSB7IHRoczogW10sIHRkczogW10gfTtcclxuXHJcbiAgICAgICAgLy8gT3JkaW5hbWVudG8gcGVyIG9yYSBjb21tZW50YXRvLi4uIG5vbiB2b3JyZWJiZSBtaSBmdWNrYXBwYXNzZSB0dXR0b1xyXG4gICAgICAgIC8vdmlldy5yZXBvcnRfY29sdW1ucy5zb3J0KChjMSwgYzIpID0+IGMxLnNlcSB8fCAwIC0gYzIuc2VxIHx8IDApO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlldy5yZXBvcnRfY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgY2xtID0gdmlldy5yZXBvcnRfY29sdW1uc1tpXTtcclxuXHJcbiAgICAgICAgICAgIHZhciB0aCA9IG5ldyBFc1RoRGlyZWN0aXZlKG51bGwpO1xyXG4gICAgICAgICAgICB0aC50aCA9IGNsbS5pZDtcclxuICAgICAgICAgICAgdGgudGhTdGF0aWNDb250ZW50ID0gY2xtLmRlc2NyaXB0aW9uIHx8IG51bGw7XHJcbiAgICAgICAgICAgIHRoLnRoQmFja2dyb3VuZENvbG9yID0gY2xtLmNvbG9yO1xyXG4gICAgICAgICAgICB0aC50aEFsaWdubWVudCA9IDxcIkNlbnRlclwiIHwgXCJMZWZ0XCIgfCBcIlJpZ2h0XCI+Y2xtLmFsaWdubWVudDtcclxuICAgICAgICAgICAgdGgudGhGb3JtYXQgPSBjbG0uZm9ybWF0O1xyXG5cclxuICAgICAgICAgICAgdmFyIHRkID0gbmV3IEVzVGREaXJlY3RpdmUobnVsbCk7XHJcbiAgICAgICAgICAgIHRkLnRkID0gY2xtLmlkO1xyXG4gICAgICAgICAgICB0ZC50ZFByb3BlcnR5QWNjZXNzb3IgPSBpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIHRkLnRkQWxpZ25tZW50ID0gPFwiQ2VudGVyXCIgfCBcIkxlZnRcIiB8IFwiUmlnaHRcIj5jbG0uYWxpZ25tZW50O1xyXG4gICAgICAgICAgICB0ZC50ZEZvcm1hdCA9IGNsbS5mb3JtYXQ7XHJcblxyXG4gICAgICAgICAgICByZXQudGhzLnB1c2godGgpO1xyXG4gICAgICAgICAgICByZXQudGRzLnB1c2godGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxufVxyXG4iXX0=