@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
@@ -0,0 +1,106 @@
1
+ //Angular
2
+ import { Component, Input, ChangeDetectionStrategy } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ /** Componente rappresentante una singola cella del body della tabella */
6
+ export class EsTd {
7
+ /** @ignore */
8
+ constructor(myself, renderer, _viewContainer, sanitizer) {
9
+ this.myself = myself;
10
+ this.renderer = renderer;
11
+ this._viewContainer = _viewContainer;
12
+ this.sanitizer = sanitizer;
13
+ /** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
14
+ this.ID = "";
15
+ /** Valore da mostrare all'interno della cella. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
16
+ this.Display = null;
17
+ /** Template Angular da istanziare per questo TD */
18
+ this.Template = null;
19
+ }
20
+ /**
21
+ * Imposta la visibilità o meno della cella, si traduce nell'applicazione o rimozione della classe **app-display-none**
22
+ *
23
+ * @param {boolean} expression Indicazione della visibilità
24
+ */
25
+ set Visible(expression) {
26
+ this._Visible = expression;
27
+ if (expression)
28
+ this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
29
+ else
30
+ this.renderer.addClass(this.myself.nativeElement, "app-display-none");
31
+ }
32
+ /**
33
+ * Restituisce lo stato di Visibilità della cella in oggetto
34
+ *
35
+ * @returns {boolean} **true** se visibile, **false** altrimenti
36
+ */
37
+ get Visible() {
38
+ if (this._Visible == undefined)
39
+ this._Visible = true;
40
+ return this._Visible;
41
+ }
42
+ /** @ignore */
43
+ ngAfterViewInit() {
44
+ // Se è Internal significa che è gestita internamente da ES-TABLE quindi evito di fare sti due passaggi di lettura del DOM
45
+ if (this.Internal)
46
+ return;
47
+ // L'hash è calcolato dalla ES-table in fase di binding
48
+ this.Context = this.Context || this.getTemplateContext()._hash;
49
+ this.Content = this.Display === null || this.Display === "" ? this.sanitizer.bypassSecurityTrustHtml(this.myself.nativeElement.innerHTML) : this.sanitizer.bypassSecurityTrustHtml(this.Display);
50
+ this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
51
+ }
52
+ /** Ottiene il contesto della view su cui è istanziato il componente */
53
+ getTemplateContext() {
54
+ // NGBUG: (<any>this._viewContainer)._view non esiste più in IVY: https://stackoverflow.com/questions/60398827/getting-the-context-of-the-template-inside-of-which-my-component-has-been-render
55
+ let vc = this._viewContainer;
56
+ let context;
57
+ // Primo giro di recupero del contesto, supponendo di non avere a che fare col compilatore IVY
58
+ if (vc._view == null)
59
+ context = null;
60
+ else if (vc._view.parent && !vc._view.context.$implicit && vc._view.parent.context && vc._view.parent.context.$implicit)
61
+ context = vc._view.parent.context.$implicit;
62
+ else if (vc._view.context && vc._view.context.ngIf)
63
+ context = vc._view.viewContainerParent.context.$implicit;
64
+ else
65
+ context = vc._view.context.$implicit;
66
+ if (context)
67
+ return context;
68
+ // Se non ho ancora trovato il contesto probabilmente sono in IVY e devo fare dei lookup un po' incasinati per beccarlo
69
+ var array = this._viewContainer._hostLView;
70
+ for (let i = 0; i < array.length; i++) {
71
+ let item = array[i];
72
+ if (item && item.$implicit && !item.ngIf)
73
+ return item.$implicit;
74
+ // Second level search for the real context in case the first one we find is an ngIf
75
+ if (item && item.length && item.length > 0) {
76
+ for (let ii = 0; ii < item.length; ii++) {
77
+ let iitem = item[ii];
78
+ if (iitem && iitem.$implicit && !iitem.ngIf)
79
+ return iitem.$implicit;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ EsTd.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsTd, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
86
+ EsTd.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsTd, selector: "[es-td]", inputs: { ID: ["es-td", "ID"], Internal: "Internal", RouterLink: "RouterLink", Display: "Display", Template: "Template", Context: "Context", Visible: "Visible" }, ngImport: i0, template: "<span>\r\n <ng-content></ng-content>\r\n</span>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsTd, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: "[es-td]", changeDetection: ChangeDetectionStrategy.OnPush, template: "<span>\r\n <ng-content></ng-content>\r\n</span>" }]
90
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1.DomSanitizer }]; }, propDecorators: { ID: [{
91
+ type: Input,
92
+ args: ['es-td']
93
+ }], Internal: [{
94
+ type: Input
95
+ }], RouterLink: [{
96
+ type: Input
97
+ }], Display: [{
98
+ type: Input
99
+ }], Template: [{
100
+ type: Input
101
+ }], Context: [{
102
+ type: Input
103
+ }], Visible: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10ZC9lc190ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTJDLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHbkgseUVBQXlFO0FBTXpFLE1BQU0sT0FBTyxJQUFJO0lBNkJiLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CLEVBQVUsY0FBZ0MsRUFBWSxTQUF1QjtRQUE1SCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE1QmhKLDJFQUEyRTtRQUMzRCxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBUWhDLDRIQUE0SDtRQUNuSCxZQUFPLEdBQVksSUFBSSxDQUFDO1FBRWpDLG1EQUFtRDtRQUMxQyxhQUFRLEdBQVMsSUFBSSxDQUFDO0lBZXFILENBQUM7SUFFcko7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksVUFBVTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7O1lBRXpFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFF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LEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7d0JBQ3ZDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztpQkFDOUI7YUFDSjtTQUNKO0lBQ0wsQ0FBQzs7aUdBeEdRLElBQUk7cUZBQUosSUFBSSxrTkNWakIsb0RBRU87MkZEUU0sSUFBSTtrQkFMaEIsU0FBUzsrQkFDSSxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU07bUxBSy9CLEVBQUU7c0JBQWpCLEtBQUs7dUJBQUMsT0FBTztnQkFHTCxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLO2dCQWFPLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvL0FuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbi8qKiBDb21wb25lbnRlIHJhcHByZXNlbnRhbnRlIHVuYSBzaW5nb2xhIGNlbGxhIGRlbCBib2R5IGRlbGxhIHRhYmVsbGEgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJbZXMtdGRdXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VzX3RkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNUZCB7XHJcblxyXG4gICAgLyoqIElkIGRlbGxhIGNlbGxhLCBkZXYnZXNzZXJlIGxvIHN0ZXNzbyBkZWxsYSBjb2xvbm5hICoqRXNUaCoqIHJlbGF0aXZhICovXHJcbiAgICBASW5wdXQoJ2VzLXRkJykgSUQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSDDqCB1bmEgY2VsbGEgaW50ZXJuYSAocmlnZW5lcmF0YSBwcm9ncmFtbWF0aWNhbWVudGUpIG8gbm8gKi9cclxuICAgIEBJbnB1dCgpIEludGVybmFsPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogUm91dGVyTGluayBxdWFsb3JhIGlsIGNsaWNrIHN1IHF1ZXN0YSBjZWxsYSBkZWJiYSBuYXZpZ2FyZSBkYSBxdWFsY2hlIHBhcnRlICovXHJcbiAgICBASW5wdXQoKSBSb3V0ZXJMaW5rPzogYW55O1xyXG5cclxuICAgIC8qKiBWYWxvcmUgZGEgbW9zdHJhcmUgYWxsJ2ludGVybm8gZGVsbGEgY2VsbGEuIFNlIG9tZXNzbyB2ZXJyw6AgcHJvaWV0dGF0byBpbCBjb250ZW51dG8gZGFsIHRlbXBsYXRlIGluIGN1aSDDqCBzdGF0YSB1c2F0YSAqL1xyXG4gICAgQElucHV0KCkgRGlzcGxheT86IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIEFuZ3VsYXIgZGEgaXN0YW56aWFyZSBwZXIgcXVlc3RvIFREICovXHJcbiAgICBASW5wdXQoKSBUZW1wbGF0ZT86IGFueSA9IG51bGw7XHJcblxyXG4gICAgLyoqIENsYXNzaSBkYSBhcHBsaWNhcmUgYWxsYSBjZWxsYSAqL1xyXG4gICAgcHVibGljIENsYXNzPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBDb250ZW51dG8gZGEgbW9zdHJhcmUgcHJvaWV0dGF0byBkYWwgY29tcG9uZW50ZSBwYWRyZSAqL1xyXG4gICAgcHVibGljIENvbnRlbnQ/OiBTYWZlSHRtbDtcclxuXHJcbiAgICAvKiogQ29udGVzdG8gZGVsbCdvZ2dldHRvIGEgY3VpIHNpIHJpZmVyaXNjZSBpbCBkYXRvIHZpc3VhbGl6emF0by4gQ29udGllbmUgbCdoYXNoIGRlbGwnb2dnZXR0byBpbiBxdWVzdGlvbmUgKi9cclxuICAgIEBJbnB1dCgpIENvbnRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKiogSW5kaWNhemlvbmkgc3VsbGEgdmlzaWJpbGl0w6AgZGVsbGEgY2VsbGEgKi9cclxuICAgIHByaXZhdGUgX1Zpc2libGU/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG15c2VsZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBsYSB2aXNpYmlsaXTDoCBvIG1lbm8gZGVsbGEgY2VsbGEsIHNpIHRyYWR1Y2UgbmVsbCdhcHBsaWNhemlvbmUgbyByaW1vemlvbmUgZGVsbGEgY2xhc3NlICoqYXBwLWRpc3BsYXktbm9uZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZXhwcmVzc2lvbiBJbmRpY2F6aW9uZSBkZWxsYSB2aXNpYmlsaXTDoFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzZXQgVmlzaWJsZShleHByZXNzaW9uOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fVmlzaWJsZSA9IGV4cHJlc3Npb247XHJcblxyXG4gICAgICAgIGlmIChleHByZXNzaW9uKVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQsIFwiYXBwLWRpc3BsYXktbm9uZVwiKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzdGl0dWlzY2UgbG8gc3RhdG8gZGkgVmlzaWJpbGl0w6AgZGVsbGEgY2VsbGEgaW4gb2dnZXR0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgdmlzaWJpbGUsICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKi9cclxuICAgIGdldCBWaXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9WaXNpYmxlID09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgdGhpcy5fVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9WaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgLy8gU2Ugw6ggSW50ZXJuYWwgc2lnbmlmaWNhIGNoZSDDqCBnZXN0aXRhIGludGVybmFtZW50ZSBkYSBFUy1UQUJMRSBxdWluZGkgZXZpdG8gZGkgZmFyZSBzdGkgZHVlIHBhc3NhZ2dpIGRpIGxldHR1cmEgZGVsIERPTVxyXG4gICAgICAgIGlmICh0aGlzLkludGVybmFsKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vIEwnaGFzaCDDqCBjYWxjb2xhdG8gZGFsbGEgRVMtdGFibGUgaW4gZmFzZSBkaSBiaW5kaW5nXHJcbiAgICAgICAgdGhpcy5Db250ZXh0ID0gdGhpcy5Db250ZXh0IHx8IHRoaXMuZ2V0VGVtcGxhdGVDb250ZXh0KCkuX2hhc2g7XHJcbiAgICAgICAgdGhpcy5Db250ZW50ID0gdGhpcy5EaXNwbGF5ID09PSBudWxsIHx8IHRoaXMuRGlzcGxheSA9PT0gXCJcIiA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKSA6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuRGlzcGxheSk7XHJcbiAgICAgICAgdGhpcy5DbGFzcyA9IHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoXCJhcHAtZGlzcGxheS1ub25lXCIsIFwiXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBPdHRpZW5lIGlsIGNvbnRlc3RvIGRlbGxhIHZpZXcgc3UgY3VpIMOoIGlzdGFuemlhdG8gaWwgY29tcG9uZW50ZSAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUZW1wbGF0ZUNvbnRleHQoKSB7XHJcbiAgICAgICAgLy8gTkdCVUc6ICg8YW55PnRoaXMuX3ZpZXdDb250YWluZXIpLl92aWV3IG5vbiBlc2lzdGUgcGnDuSBpbiBJVlk6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYwMzk4ODI3L2dldHRpbmctdGhlLWNvbnRleHQtb2YtdGhlLXRlbXBsYXRlLWluc2lkZS1vZi13aGljaC1teS1jb21wb25lbnQtaGFzLWJlZW4tcmVuZGVyXHJcbiAgICAgICAgbGV0IHZjID0gKDxhbnk+dGhpcy5fdmlld0NvbnRhaW5lcik7XHJcbiAgICAgICAgbGV0IGNvbnRleHQ7XHJcbiAgICAgICAgLy8gUHJpbW8gZ2lybyBkaSByZWN1cGVybyBkZWwgY29udGVzdG8sIHN1cHBvbmVuZG8gZGkgbm9uIGF2ZXJlIGEgY2hlIGZhcmUgY29sIGNvbXBpbGF0b3JlIElWWVxyXG4gICAgICAgIGlmICh2Yy5fdmlldyA9PSBudWxsKVxyXG4gICAgICAgICAgICBjb250ZXh0ID0gbnVsbDtcclxuICAgICAgICBlbHNlIGlmICh2Yy5fdmlldy5wYXJlbnQgJiYgIXZjLl92aWV3LmNvbnRleHQuJGltcGxpY2l0ICYmIHZjLl92aWV3LnBhcmVudC5jb250ZXh0ICYmIHZjLl92aWV3LnBhcmVudC5jb250ZXh0LiRpbXBsaWNpdClcclxuICAgICAgICAgICAgY29udGV4dCA9IHZjLl92aWV3LnBhcmVudC5jb250ZXh0LiRpbXBsaWNpdDtcclxuICAgICAgICBlbHNlIGlmICh2Yy5fdmlldy5jb250ZXh0ICYmIHZjLl92aWV3LmNvbnRleHQubmdJZilcclxuICAgICAgICAgICAgY29udGV4dCA9IHZjLl92aWV3LnZpZXdDb250YWluZXJQYXJlbnQuY29udGV4dC4kaW1wbGljaXQ7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjb250ZXh0ID0gdmMuX3ZpZXcuY29udGV4dC4kaW1wbGljaXQ7XHJcblxyXG4gICAgICAgIGlmIChjb250ZXh0KVxyXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIGFuY29yYSB0cm92YXRvIGlsIGNvbnRlc3RvIHByb2JhYmlsbWVudGUgc29ubyBpbiBJVlkgZSBkZXZvIGZhcmUgZGVpIGxvb2t1cCB1biBwbycgaW5jYXNpbmF0aSBwZXIgYmVjY2FybG9cclxuICAgICAgICB2YXIgYXJyYXkgPSAoPGFueT50aGlzLl92aWV3Q29udGFpbmVyKS5faG9zdExWaWV3O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBhcnJheVtpXTtcclxuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS4kaW1wbGljaXQgJiYgIWl0ZW0ubmdJZilcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLiRpbXBsaWNpdDtcclxuXHJcbiAgICAgICAgICAgIC8vIFNlY29uZCBsZXZlbCBzZWFyY2ggZm9yIHRoZSByZWFsIGNvbnRleHQgaW4gY2FzZSB0aGUgZmlyc3Qgb25lIHdlIGZpbmQgaXMgYW4gbmdJZlxyXG4gICAgICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmxlbmd0aCAmJiBpdGVtLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGlpID0gMDsgaWkgPCBpdGVtLmxlbmd0aDsgaWkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpaXRlbSA9IGl0ZW1baWldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpaXRlbSAmJiBpaXRlbS4kaW1wbGljaXQgJiYgIWlpdGVtLm5nSWYpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpaXRlbS4kaW1wbGljaXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCI8c3Bhbj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9zcGFuPiJdfQ==
@@ -0,0 +1,176 @@
1
+ //Angular
2
+ import { Component, Input, Output, EventEmitter, ViewChild, HostListener, ChangeDetectionStrategy } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ /** Componente rappresentante una Colonna della tabella */
6
+ export class EsTh {
7
+ /** @ignore */
8
+ constructor(myself, renderer) {
9
+ this.myself = myself;
10
+ this.renderer = renderer;
11
+ /** Dizionario di mappatura con ordinamento attuale e ordinamento successivo per gestire i passaggi di stato */
12
+ this.orderNext = { "NONE": "DESC", "DESC": "ASC", "ASC": null };
13
+ /** Indica se si sta effettuando un'operazione di resize su questa colonna */
14
+ this.resizingThis = false;
15
+ /**
16
+ * Storicizza l'offset di partenza del resize dell'elemento HTML per poter calcolare la nuova dimensione richiesta durente il resize
17
+ *
18
+ * nuova width = startOffset + posizione X del mouse
19
+ */
20
+ this.startOffset = null;
21
+ /** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
22
+ this.ID = "";
23
+ /** Indica se questa colonna è ordinabile o meno */
24
+ this.Orderable = true;
25
+ /** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
26
+ this.Display = "";
27
+ /** Indica se le dimnsioni di questa colonna sono modificabili o meno */
28
+ this.Resizable = false;
29
+ /** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
30
+ this.Pinned = false;
31
+ /**
32
+ * Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
33
+ * come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
34
+ */
35
+ this.SearchInProgress = false;
36
+ /** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
37
+ this.Wrap = false;
38
+ /** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
39
+ this.Fixed = false;
40
+ /** Template Angular da istanziare per questo TH */
41
+ this.Template = null;
42
+ /** Evento emesso al cambio di ordinamento effettuato su questa colonna */
43
+ this.onOrderChange = new EventEmitter();
44
+ /** Evento emesso all'unpinning della colonna */
45
+ this.onUnpinning = new EventEmitter();
46
+ /** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
47
+ this._referenced = false;
48
+ }
49
+ /**
50
+ * Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
51
+ *
52
+ * @param {boolean} expression Indicazione della visibilità
53
+ */
54
+ set Visible(expression) {
55
+ this._Visible = expression;
56
+ if (expression)
57
+ this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
58
+ else
59
+ this.renderer.addClass(this.myself.nativeElement, "app-display-none");
60
+ }
61
+ /**
62
+ * Restituisce lo stato di Visibilità della colonna in oggetto
63
+ *
64
+ * @returns {boolean} **true** se visibile, **false** altrimenti
65
+ */
66
+ get Visible() {
67
+ if (this._Visible == undefined)
68
+ this._Visible = true;
69
+ return this._Visible;
70
+ }
71
+ /** @ignore */
72
+ ngAfterViewInit() {
73
+ //Assegnare direttamente il content è più veloce che passare dal native element per qualche motivo
74
+ this.Description = this.Display === null || this.Display === "" ? this.content.nativeElement.innerText : this.Display;
75
+ this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
76
+ //Resize
77
+ if (this.Resizable)
78
+ this.renderer.addClass(this.myself.nativeElement, "app-relative");
79
+ }
80
+ /** Emette l'evento di unpinning */
81
+ unpin() {
82
+ this.onUnpinning.emit(this.ID);
83
+ }
84
+ /** Gestisce la modifica dell'ordinamento qualora venisse cliccato su questa colonna */
85
+ setupNextOrderAndNotify() {
86
+ if (!this.ID) {
87
+ console.log("Attempt to order a column without ID. Operation ignored");
88
+ return;
89
+ }
90
+ if (this.SearchInProgress) {
91
+ console.log("Attempt to order a column during a search. Operation ignored");
92
+ return;
93
+ }
94
+ if (!this.OrderBy || !this.Orderable)
95
+ return;
96
+ var nextOrder = this.orderNext[this.Order || "NONE"];
97
+ this.Order = nextOrder;
98
+ this.onOrderChange.emit(this.Order);
99
+ }
100
+ /**
101
+ * Evento di inizio resize della colonna
102
+ *
103
+ * @param {any} ev Evento MouseDown
104
+ */
105
+ onResizeStart(ev) {
106
+ if (!this.Resizable)
107
+ return;
108
+ this.resizingThis = true;
109
+ this.startOffset = this.myself.nativeElement.offsetWidth - ev.pageX;
110
+ }
111
+ /** Listener per la fine dell'operazione di resize */
112
+ onMouseUp() {
113
+ if (!this.Resizable)
114
+ return;
115
+ this.resizingThis = false;
116
+ }
117
+ /**
118
+ * Listener per gestire il movimento del mouse qualora un'operazione di resize fosse in esecuzione
119
+ *
120
+ * @param {$event} ev Evento MouseMove
121
+ */
122
+ onMouseMove($event) {
123
+ if (!this.Resizable || !this.resizingThis)
124
+ return;
125
+ //Uso jquery per non dover far partire un intero ciclo di change detection solo per fare un resize del cazzo
126
+ //(anche perché viene lanciato ogni 0.1 secondo quindi not a good idea)
127
+ this.myself.nativeElement.style.width = (this.startOffset + $event.pageX) + "px";
128
+ //Fermo il bubbling per non fare cose strane
129
+ $event.preventDefault();
130
+ }
131
+ }
132
+ EsTh.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsTh, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
133
+ EsTh.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsTh, selector: "[es-th]", inputs: { ID: ["es-th", "ID"], Order: "Order", Orderable: "Orderable", Display: "Display", Resizable: "Resizable", Pinned: "Pinned", SearchInProgress: "SearchInProgress", OrderBy: "OrderBy", Wrap: "Wrap", Fixed: "Fixed", Template: "Template", Visible: "Visible" }, outputs: { onOrderChange: "onOrderChange", onUnpinning: "onUnpinning" }, host: { listeners: { "window:mouseup.out-zone": "onMouseUp()", "window:mousemove.out-zone": "onMouseMove($event)" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<span (click)=\"setupNextOrderAndNotify()\" [class.app-no-selection]=\"!!ID && Orderable\" [class.app-pointer]=\"!!ID && Orderable\">\r\n <span #content>\r\n <ng-container *ngIf=\"Template\">\r\n <ng-container *ngTemplateOutlet=\"Template\"></ng-container>\r\n </ng-container>\r\n <ng-content *ngIf=\"!Template\"></ng-content>\r\n </span>&nbsp;\r\n <span class=\"fa\" [class.fa-chevron-down]=\"Order == 'DESC'\" [class.fa-chevron-up]=\"Order == 'ASC'\"></span>\r\n</span>\r\n<span *ngIf=\"Pinned && !Fixed\" class=\"app-pointer fa fa-thumb-tack est-quick-unpin\" (click)=\"unpin()\"></span>\r\n<div [hidden]=\"!Resizable || Fixed || Pinned\" class=\"est-head-resizer\" (mousedown)=\"onResizeStart($event)\">\r\n <div class=\"est-head-resizer-internal\"></div>\r\n</div>", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsTh, decorators: [{
135
+ type: Component,
136
+ args: [{ selector: "[es-th]", changeDetection: ChangeDetectionStrategy.OnPush, template: "<span (click)=\"setupNextOrderAndNotify()\" [class.app-no-selection]=\"!!ID && Orderable\" [class.app-pointer]=\"!!ID && Orderable\">\r\n <span #content>\r\n <ng-container *ngIf=\"Template\">\r\n <ng-container *ngTemplateOutlet=\"Template\"></ng-container>\r\n </ng-container>\r\n <ng-content *ngIf=\"!Template\"></ng-content>\r\n </span>&nbsp;\r\n <span class=\"fa\" [class.fa-chevron-down]=\"Order == 'DESC'\" [class.fa-chevron-up]=\"Order == 'ASC'\"></span>\r\n</span>\r\n<span *ngIf=\"Pinned && !Fixed\" class=\"app-pointer fa fa-thumb-tack est-quick-unpin\" (click)=\"unpin()\"></span>\r\n<div [hidden]=\"!Resizable || Fixed || Pinned\" class=\"est-head-resizer\" (mousedown)=\"onResizeStart($event)\">\r\n <div class=\"est-head-resizer-internal\"></div>\r\n</div>" }]
137
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { ID: [{
138
+ type: Input,
139
+ args: ['es-th']
140
+ }], Order: [{
141
+ type: Input
142
+ }], Orderable: [{
143
+ type: Input
144
+ }], Display: [{
145
+ type: Input
146
+ }], Resizable: [{
147
+ type: Input
148
+ }], Pinned: [{
149
+ type: Input
150
+ }], SearchInProgress: [{
151
+ type: Input
152
+ }], OrderBy: [{
153
+ type: Input
154
+ }], Wrap: [{
155
+ type: Input
156
+ }], Fixed: [{
157
+ type: Input
158
+ }], Template: [{
159
+ type: Input
160
+ }], onOrderChange: [{
161
+ type: Output
162
+ }], onUnpinning: [{
163
+ type: Output
164
+ }], content: [{
165
+ type: ViewChild,
166
+ args: ["content", { static: false }]
167
+ }], Visible: [{
168
+ type: Input
169
+ }], onMouseUp: [{
170
+ type: HostListener,
171
+ args: ['window:mouseup.out-zone']
172
+ }], onMouseMove: [{
173
+ type: HostListener,
174
+ args: ['window:mousemove.out-zone', ['$event']]
175
+ }] } });
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRoL2VzX3RoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQWEsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFaEosMERBQTBEO0FBTTFELE1BQU0sT0FBTyxJQUFJO0lBd0ViLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CO1FBQS9DLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdkVuRSwrR0FBK0c7UUFDdkcsY0FBUyxHQUErQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFLL0csNkVBQTZFO1FBQ3JFLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVuQyw2RUFBNkU7UUFDN0QsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUtoQyxtREFBbUQ7UUFDMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw4SEFBOEg7UUFDckgsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUU5Qix3RUFBd0U7UUFDL0QsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVwQyx5R0FBeUc7UUFDaEcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxxQkFBZ0IsR0FB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c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFtQjFCLE9BQU87c0JBQW5CLEtBQUs7Z0JBMEVDLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBY2hDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL0FuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgUmVuZGVyZXIyLCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIHJhcHByZXNlbnRhbnRlIHVuYSBDb2xvbm5hIGRlbGxhIHRhYmVsbGEgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJbZXMtdGhdXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VzX3RoLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNUaCB7XHJcblxyXG4gICAgLyoqIERpemlvbmFyaW8gZGkgbWFwcGF0dXJhIGNvbiBvcmRpbmFtZW50byBhdHR1YWxlIGUgb3JkaW5hbWVudG8gc3VjY2Vzc2l2byBwZXIgZ2VzdGlyZSBpIHBhc3NhZ2dpIGRpIHN0YXRvICovXHJcbiAgICBwcml2YXRlIG9yZGVyTmV4dDogeyBbaW5kZXg6IHN0cmluZ106ICdERVNDJyB8ICdBU0MnIHwgbnVsbCB9ID0geyBcIk5PTkVcIjogXCJERVNDXCIsIFwiREVTQ1wiOiBcIkFTQ1wiLCBcIkFTQ1wiOiBudWxsIH07XHJcblxyXG4gICAgLyoqIEluZGljYXppb25lIHN1bGxhIHZpc2liaWxpdMOgIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIHByaXZhdGUgX1Zpc2libGU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBzaSBzdGEgZWZmZXR0dWFuZG8gdW4nb3BlcmF6aW9uZSBkaSByZXNpemUgc3UgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIHByaXZhdGUgcmVzaXppbmdUaGlzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yaWNpenphIGwnb2Zmc2V0IGRpIHBhcnRlbnphIGRlbCByZXNpemUgZGVsbCdlbGVtZW50byBIVE1MIHBlciBwb3RlciBjYWxjb2xhcmUgbGEgbnVvdmEgZGltZW5zaW9uZSByaWNoaWVzdGEgZHVyZW50ZSBpbCByZXNpemUgXHJcbiAgICAgKiBcclxuICAgICAqIG51b3ZhIHdpZHRoID0gc3RhcnRPZmZzZXQgKyBwb3NpemlvbmUgWCBkZWwgbW91c2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGFydE9mZnNldDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKiogSWQgZGVsbGEgY29sb25uYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gcGVyIHR1dHRpIGdsaSAqKkVzVGQqKiByZWxhdGl2aSAqL1xyXG4gICAgQElucHV0KCdlcy10aCcpIElEOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBPcmRpbmFtZW50byBhdHR1YWxlIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIEBJbnB1dCgpIE9yZGVyPzogJ0RFU0MnIHwgJ0FTQyc7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBxdWVzdGEgY29sb25uYSDDqCBvcmRpbmFiaWxlIG8gbWVubyAqL1xyXG4gICAgQElucHV0KCkgT3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogVmFsb3JlIGRhIG1vc3RyYXJlIGFsbCdpbnRlcm5vIGRlbGxhIGNvbG9ubmEuIFNlIG9tZXNzbyB2ZXJyw6AgcHJvaWV0dGF0byBpbCBjb250ZW51dG8gZGFsIHRlbXBsYXRlIGluIGN1aSDDqCBzdGF0YSB1c2F0YSAqL1xyXG4gICAgQElucHV0KCkgRGlzcGxheTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxlIGRpbW5zaW9uaSBkaSBxdWVzdGEgY29sb25uYSBzb25vIG1vZGlmaWNhYmlsaSBvIG1lbm8gKi9cclxuICAgIEBJbnB1dCgpIFJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgcXVlc3RvIGhlYWRlciDDqCBwaW5uYXRvLiBJbiBjYXNvIGxvIGZvc3NlIHByZXNlbnRhIGlsIHRhc3Rpbm8gcGVyIGVmZmV0dHVhcmUgbG8gc3Bpbm5pbmcgKi9cclxuICAgIEBJbnB1dCgpIFBpbm5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIHN0YSB2ZW5lbmRvIGVzZWd1aXRhIHVuYSBvcGVyYXppb25lIGRpIHJpY2VyY2EgbyBtZW5vLCBzZXJ2ZSBwZXIgZXZpdGFyZSBsJ2VzZWN1emlvbmUgZGkgZXZlbnR1YWxlIGNvZGljZSBjaGUgcG90cmViYmUgZGFyZSBmYXN0aWRpbyBcclxuICAgICAqIGNvbWUgYWQgZXNlbXBpbyBsJ2VzY3V6aW9uZSBkaSB1biBvcmRpbmFtZW50byBkdXJhbnRlIGlsIGNhcmljYW1lbnRvIGRpIGRhdGkgbnVvdmlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgU2VhcmNoSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbXBvc3RhdG8gZGFsbCcqKkVzVGFibGUqKiwgc2VydmUgcGVyIHBlcm1ldHRlcmUgbyBtZW5vIGRpIGVmZmV0dHVhcmUgb3JkaW5hbWVudGkgZGF0aSBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgT3JkZXJCeTogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGlsIHRlc3RvIHByZXNlbnRlIGluIHF1ZXN0byBIZWFkZXIgcHXDsiBhbmRhcmUgYSBjYXBvIG8gbWVubywgZGkgZGVmYXVsdCBub24gcHXDsiAqL1xyXG4gICAgQElucHV0KCkgV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgY29sb25uYSDDqCBmaXhlZCwgY2lvw6ggc2Ugbm9uIHB1w7IgbsOpIGVzc2VyZSBuYXNjb3N0YSwgbsOpIHJpcG9zaXppb25hdGEuIFNvbG8gbGUgcHJpbWUgY29sb25uZSBwb3Nzb25vIGVzc2VyZSBGaXhlZCAqL1xyXG4gICAgQElucHV0KCkgRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgQW5ndWxhciBkYSBpc3RhbnppYXJlIHBlciBxdWVzdG8gVEggKi9cclxuICAgIEBJbnB1dCgpIFRlbXBsYXRlPzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAvKiogRXZlbnRvIGVtZXNzbyBhbCBjYW1iaW8gZGkgb3JkaW5hbWVudG8gZWZmZXR0dWF0byBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbk9yZGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8J0RFU0MnIHwgJ0FTQycgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8J0RFU0MnIHwgJ0FTQycgfCBudWxsPigpO1xyXG5cclxuICAgIC8qKiBFdmVudG8gZW1lc3NvIGFsbCd1bnBpbm5pbmcgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblVucGlubmluZzogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKiogUHJvaWV6aW9uZSBkZWwgY29udGVudXRvIGRpIHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBAVmlld0NoaWxkKFwiY29udGVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKiogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbGxhIGNvbG9ubmEgKi9cclxuICAgIHB1YmxpYyBDbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBJbXBvc3RhdG8gZGFsbCcqKkVzVGFibGUqKiwgcGVyIGNvbnRyb2xsYXJlIGNoZSBjaSBzaWEgYWxtZW5vIHVuIFREIGNoZSB1dGlsaXp6aSBxdWVzdCdoZWFkZXIgKi9cclxuICAgIHB1YmxpYyBfcmVmZXJlbmNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBWYXJpYWJpbGUgZmluYWxlIHN1IGN1aSDDqCBiaW5kYXRvIGlsIGNvbnRlbnV0byBkZWxsYSBjZWxsYS4gU2Fyw6AgdmFsb3JpenphdG8gYSAqKkRpc3BsYXkqKiBzZSBzcGVjaWZpY2F0bywgYWxsJyoqaW5uZXJIVE1MKiogZGVsbCdlbGVtZW50byBwcm9pZXR0YXRvIGFsdHJpbWVudGkgKi9cclxuICAgIHB1YmxpYyBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG15c2VsZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgdmlzaWJpbGl0w6AgbyBtZW5vIGRlbGxhIGNvbG9ubmEsIHNpIHRyYWR1Y2UgbmVsbCdhcHBsaWNhemlvbmUgbyByaW1vemlvbmUgZGVsbGEgY2xhc3NlICoqYXBwLWRpc3BsYXktbm9uZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZXhwcmVzc2lvbiBJbmRpY2F6aW9uZSBkZWxsYSB2aXNpYmlsaXTDoFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzZXQgVmlzaWJsZShleHByZXNzaW9uOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fVmlzaWJsZSA9IGV4cHJlc3Npb247XHJcblxyXG4gICAgICAgIGlmIChleHByZXNzaW9uKVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQsIFwiYXBwLWRpc3BsYXktbm9uZVwiKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzdGl0dWlzY2UgbG8gc3RhdG8gZGkgVmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSBpbiBvZ2dldHRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAqKnRydWUqKiBzZSB2aXNpYmlsZSwgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgZ2V0IFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX1Zpc2libGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLl9WaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICAvL0Fzc2VnbmFyZSBkaXJldHRhbWVudGUgaWwgY29udGVudCDDqCBwacO5IHZlbG9jZSBjaGUgcGFzc2FyZSBkYWwgbmF0aXZlIGVsZW1lbnQgcGVyIHF1YWxjaGUgbW90aXZvXHJcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHRoaXMuRGlzcGxheSA9PT0gbnVsbCB8fCB0aGlzLkRpc3BsYXkgPT09IFwiXCIgPyB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5pbm5lclRleHQgOiB0aGlzLkRpc3BsYXk7XHJcblxyXG4gICAgICAgIHRoaXMuQ2xhc3MgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKFwiYXBwLWRpc3BsYXktbm9uZVwiLCBcIlwiKTtcclxuXHJcbiAgICAgICAgLy9SZXNpemVcclxuICAgICAgICBpZiAodGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtcmVsYXRpdmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEVtZXR0ZSBsJ2V2ZW50byBkaSB1bnBpbm5pbmcgKi9cclxuICAgIHVucGluKCkge1xyXG4gICAgICAgIHRoaXMub25VbnBpbm5pbmcuZW1pdCh0aGlzLklEKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VzdGlzY2UgbGEgbW9kaWZpY2EgZGVsbCdvcmRpbmFtZW50byBxdWFsb3JhIHZlbmlzc2UgY2xpY2NhdG8gc3UgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIHNldHVwTmV4dE9yZGVyQW5kTm90aWZ5KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5JRCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkF0dGVtcHQgdG8gb3JkZXIgYSBjb2x1bW4gd2l0aG91dCBJRC4gT3BlcmF0aW9uIGlnbm9yZWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLlNlYXJjaEluUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJBdHRlbXB0IHRvIG9yZGVyIGEgY29sdW1uIGR1cmluZyBhIHNlYXJjaC4gT3BlcmF0aW9uIGlnbm9yZWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5PcmRlckJ5IHx8ICF0aGlzLk9yZGVyYWJsZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgbmV4dE9yZGVyID0gdGhpcy5vcmRlck5leHRbdGhpcy5PcmRlciB8fCBcIk5PTkVcIl07XHJcbiAgICAgICAgdGhpcy5PcmRlciA9IG5leHRPcmRlcjtcclxuXHJcbiAgICAgICAgdGhpcy5vbk9yZGVyQ2hhbmdlLmVtaXQodGhpcy5PcmRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudG8gZGkgaW5pemlvIHJlc2l6ZSBkZWxsYSBjb2xvbm5hXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBldiBFdmVudG8gTW91c2VEb3duXHJcbiAgICAgKi9cclxuICAgIG9uUmVzaXplU3RhcnQoZXYpIHtcclxuICAgICAgICBpZiAoIXRoaXMuUmVzaXphYmxlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMucmVzaXppbmdUaGlzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gdGhpcy5teXNlbGYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGV2LnBhZ2VYO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBwZXIgbGEgZmluZSBkZWxsJ29wZXJhemlvbmUgZGkgcmVzaXplICovXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2V1cC5vdXQtem9uZScpXHJcbiAgICBwdWJsaWMgb25Nb3VzZVVwKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNpemluZ1RoaXMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3RlbmVyIHBlciBnZXN0aXJlIGlsIG1vdmltZW50byBkZWwgbW91c2UgcXVhbG9yYSB1bidvcGVyYXppb25lIGRpIHJlc2l6ZSBmb3NzZSBpbiBlc2VjdXppb25lXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7JGV2ZW50fSBldiBFdmVudG8gTW91c2VNb3ZlXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZW1vdmUub3V0LXpvbmUnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uTW91c2VNb3ZlKCRldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUgfHwgIXRoaXMucmVzaXppbmdUaGlzKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vVXNvIGpxdWVyeSBwZXIgbm9uIGRvdmVyIGZhciBwYXJ0aXJlIHVuIGludGVybyBjaWNsbyBkaSBjaGFuZ2UgZGV0ZWN0aW9uIHNvbG8gcGVyIGZhcmUgdW4gcmVzaXplIGRlbCBjYXp6b1xyXG4gICAgICAgIC8vKGFuY2hlIHBlcmNow6kgdmllbmUgbGFuY2lhdG8gb2duaSAwLjEgc2Vjb25kbyBxdWluZGkgbm90IGEgZ29vZCBpZGVhKVxyXG4gICAgICAgIHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSAodGhpcy5zdGFydE9mZnNldCArICRldmVudC5wYWdlWCkgKyBcInB4XCI7XHJcblxyXG4gICAgICAgIC8vRmVybW8gaWwgYnViYmxpbmcgcGVyIG5vbiBmYXJlIGNvc2Ugc3RyYW5lXHJcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbn0iLCI8c3BhbiAoY2xpY2spPVwic2V0dXBOZXh0T3JkZXJBbmROb3RpZnkoKVwiIFtjbGFzcy5hcHAtbm8tc2VsZWN0aW9uXT1cIiEhSUQgJiYgT3JkZXJhYmxlXCIgW2NsYXNzLmFwcC1wb2ludGVyXT1cIiEhSUQgJiYgT3JkZXJhYmxlXCI+XHJcbiAgICA8c3BhbiAjY29udGVudD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhVGVtcGxhdGVcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L3NwYW4+Jm5ic3A7XHJcbiAgICA8c3BhbiBjbGFzcz1cImZhXCIgW2NsYXNzLmZhLWNoZXZyb24tZG93bl09XCJPcmRlciA9PSAnREVTQydcIiBbY2xhc3MuZmEtY2hldnJvbi11cF09XCJPcmRlciA9PSAnQVNDJ1wiPjwvc3Bhbj5cclxuPC9zcGFuPlxyXG48c3BhbiAqbmdJZj1cIlBpbm5lZCAmJiAhRml4ZWRcIiBjbGFzcz1cImFwcC1wb2ludGVyIGZhIGZhLXRodW1iLXRhY2sgZXN0LXF1aWNrLXVucGluXCIgKGNsaWNrKT1cInVucGluKClcIj48L3NwYW4+XHJcbjxkaXYgW2hpZGRlbl09XCIhUmVzaXphYmxlIHx8IEZpeGVkIHx8IFBpbm5lZFwiIGNsYXNzPVwiZXN0LWhlYWQtcmVzaXplclwiIChtb3VzZWRvd24pPVwib25SZXNpemVTdGFydCgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXN0LWhlYWQtcmVzaXplci1pbnRlcm5hbFwiPjwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Injectable, Inject, Optional } from "@angular/core";
2
+ import { LocalizationService } from "@esfaenza/localizations";
3
+ import { EST_LOCALE } from '../../tokens';
4
+ import * as i0 from "@angular/core";
5
+ /** Classe di localizzazione per il componente **TablePagerComponent** */
6
+ export class TablePagerLoc extends LocalizationService {
7
+ /** @ignore */
8
+ constructor(LOC_LOCALE) {
9
+ super(LOC_LOCALE ?? 'it-IT');
10
+ super.set("en->it", "All", ["Tutto"]);
11
+ super.set("en->it", "Shown Elements", ["Elementi visualizzati"]);
12
+ super.set("en->it", "Shown Groups", ["Gruppi visualizzati"]);
13
+ super.set("en->it", "Are you sure you want to retrieve all results?", ["Si è sicuri di voler caricare tutti i risultati?"]);
14
+ super.set("en->it", "This might slow down the page and possibly crash the entire application", ["L'operazione potrebbe rallentare la pagina fino al crash dell'applicazione"]);
15
+ }
16
+ }
17
+ TablePagerLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TablePagerLoc, deps: [{ token: EST_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ TablePagerLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TablePagerLoc });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TablePagerLoc, decorators: [{
20
+ type: Injectable
21
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
22
+ type: Optional
23
+ }, {
24
+ type: Inject,
25
+ args: [EST_LOCALE]
26
+ }] }]; } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVfcGFnZXIuY29tcG9uZW50LmxvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUUxQyx5RUFBeUU7QUFFekUsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFFbEQsY0FBYztJQUNkLFlBQTRDLFVBQWtCO1FBQzFELEtBQUssQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLENBQUM7UUFDN0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUNqRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0RBQWdELEVBQUUsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLENBQUM7UUFDNUgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUseUVBQXlFLEVBQUUsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUM7SUFDbkwsQ0FBQzs7MEdBVlEsYUFBYSxrQkFHVSxVQUFVOzhHQUhqQyxhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUlNLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEVTVF9MT0NBTEUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLyoqIENsYXNzZSBkaSBsb2NhbGl6emF6aW9uZSBwZXIgaWwgY29tcG9uZW50ZSAqKlRhYmxlUGFnZXJDb21wb25lbnQqKiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVBhZ2VyTG9jIGV4dGVuZHMgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRVNUX0xPQ0FMRSkgTE9DX0xPQ0FMRTogc3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIoTE9DX0xPQ0FMRSA/PyAnaXQtSVQnKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJBbGxcIiwgW1wiVHV0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNob3duIEVsZW1lbnRzXCIsIFtcIkVsZW1lbnRpIHZpc3VhbGl6emF0aVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiU2hvd24gR3JvdXBzXCIsIFtcIkdydXBwaSB2aXN1YWxpenphdGlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXRyaWV2ZSBhbGwgcmVzdWx0cz9cIiwgW1wiU2kgw6ggc2ljdXJpIGRpIHZvbGVyIGNhcmljYXJlIHR1dHRpIGkgcmlzdWx0YXRpP1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiVGhpcyBtaWdodCBzbG93IGRvd24gdGhlIHBhZ2UgYW5kIHBvc3NpYmx5IGNyYXNoIHRoZSBlbnRpcmUgYXBwbGljYXRpb25cIiwgW1wiTCdvcGVyYXppb25lIHBvdHJlYmJlIHJhbGxlbnRhcmUgbGEgcGFnaW5hIGZpbm8gYWwgY3Jhc2ggZGVsbCdhcHBsaWNhemlvbmVcIl0pO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,118 @@
1
+ // Angular
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
3
+ // Configurazioni
4
+ import { LocalizationService } from "@esfaenza/localizations";
5
+ // Applicazione
6
+ import { TablePagerLoc } from "./table_pager.component.loc";
7
+ import { EST_LOCALE } from "../../tokens";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@esfaenza/extensions";
10
+ import * as i2 from "@esfaenza/localizations";
11
+ import * as i3 from "@angular/material/form-field";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "@angular/material/input";
14
+ import * as i6 from "@angular/forms";
15
+ /** Componente che si occupa della paginazione di una tabella */
16
+ export class TablePagerComponent {
17
+ /** @ignore */
18
+ constructor(msgExts, lc, cdr, locale) {
19
+ this.msgExts = msgExts;
20
+ this.lc = lc;
21
+ this.cdr = cdr;
22
+ this.locale = locale;
23
+ /** Indica se deve mostrare un warning quando si cercano di solezionare come elementi da visualizzare "Tutti" */
24
+ this.WarnOnAll = true;
25
+ /** Indica se dare la possibilità o meno di selezionare "Tutti" nelle opzioni di paginazione */
26
+ this.AllSearch = true;
27
+ /** Placeholder che identifica il "Tutti" */
28
+ this.DefaultAll = 999999;
29
+ /** Indica se attivare la modalità gruppo con stili più snelli per apparire sotto ai raggruppamenti */
30
+ this.GroupMode = false;
31
+ /** Indica se utilizzare il conteggio dei gruppi o degli oggetti */
32
+ this.GroupCount = false;
33
+ /** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom, Ignorato in caso di gruppi */
34
+ this.CountLabel = null;
35
+ /** Indica se visualizzare il numero totale di oggeti presenti */
36
+ this.ShowCount = true;
37
+ /** Indica se visualizzare il numero totale di oggeti presenti */
38
+ this.ShowPaging = true;
39
+ /** Output invocato quando il numero di elementi per pagina viene modificato da un click utente */
40
+ this.pagingSelected = new EventEmitter();
41
+ /** Opzioni di paginazione */
42
+ this.PagingOptions = [10, 15, 30, 45, 100];
43
+ }
44
+ /** @ignore */
45
+ ngOnInit() {
46
+ this.Model = this.View ? (this.View.itemsperpageoverride || 15) : this.CurrentPageSize;
47
+ if (this.AllSearch)
48
+ this.PagingOptions.push(this.DefaultAll);
49
+ }
50
+ /** @ignore */
51
+ ngOnChanges(changes) {
52
+ let newView = changes['View'];
53
+ let newCPS = changes['CurrentPageSize'];
54
+ if ((newView && !newView.firstChange) || (newCPS && !newCPS.firstChange))
55
+ this.Model = newView?.currentValue ? (newView.currentValue.itemsperpageoverride || 15) : newCPS?.currentValue ? newCPS.currentValue : null;
56
+ }
57
+ /**
58
+ * Funzione richiamata dal template quando un utente clicca su un numero di paginazione.
59
+ *
60
+ * Cliccare 2 volte sullo stesso numero causa comunque un refresh dei dati
61
+ *
62
+ * @param {number} pageSize Dimensione selezionata lato UI
63
+ */
64
+ choice(pageSize) {
65
+ if (pageSize == this.DefaultAll && this.WarnOnAll) {
66
+ this.msgExts.simpleWarningWithChoice(this.lc.loc("Are you sure you want to retrieve all results?"), this.lc.loc("This might slow down the page and possibly crash the entire application"), () => { this.pagingSelected.emit(pageSize); this.Model = pageSize; }, () => {
67
+ // Dio solo sa perché mi tocca fare sta roba... qui dentro per qualche motivo la CD non prende
68
+ let prevModel = this.Model;
69
+ this.Model = null;
70
+ this.cdr.detectChanges();
71
+ this.Model = prevModel;
72
+ this.cdr.detectChanges();
73
+ });
74
+ }
75
+ else {
76
+ this.pagingSelected.emit(pageSize);
77
+ this.Model = pageSize;
78
+ }
79
+ }
80
+ }
81
+ TablePagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TablePagerComponent, deps: [{ token: i1.MessageService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: EST_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
82
+ TablePagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TablePagerComponent, selector: "app-paging", inputs: { CurrentPageSize: "CurrentPageSize", View: "View", WarnOnAll: "WarnOnAll", AllSearch: "AllSearch", DefaultAll: "DefaultAll", GroupMode: "GroupMode", GroupCount: "GroupCount", CountLabel: "CountLabel", ShowCount: "ShowCount", ShowPaging: "ShowPaging", PagerCount: "PagerCount", Hidden: "Hidden" }, outputs: { pagingSelected: "pagingSelected" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!Hidden\">\r\n <span class=\"est-fs-14\"> {{CountLabel && !GroupMode ? CountLabel : ((GroupMode ? 'Shown Groups' : 'Shown Elements') | localize : lc)}}:&nbsp;</span>\r\n <ng-container *ngIf=\"ShowPaging && Model && (Model == DefaultAll || PagerCount >= Model || PagerCount == -1)\">\r\n <mat-form-field [appearance]=\"'legacy'\" class=\"mat-paginator-page-size-select est-fs-14 est-ipp-bold\">\r\n <select matNativeControl [ngModel]=\"Model\" name=\"input\" (ngModelChange)=\"choice($event)\">\r\n <ng-container *ngFor=\"let pOpt of PagingOptions\">\r\n <option *ngIf=\"pOpt == DefaultAll || PagerCount >= pOpt || PagerCount == -1\" [value]=\"pOpt\">{{ pOpt == DefaultAll ? ('All' | localize : lc) : pOpt.toString()}}</option>\r\n </ng-container>\r\n </select>\r\n </mat-form-field>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount && PagerCount != -1\">&nbsp;/&nbsp;</span>\r\n </ng-container>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount && PagerCount != -1\">{{PagerCount | number : '0.0-0' : locale}}</span>\r\n</ng-container>", styles: [".est-rg-ipp-sel-all,.est-rg-ipp-sel,.est-ipp-sel-all,.est-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-bold{font-weight:700}.mat-paginator-page-size-select{margin:6px 4px 0;width:50px}.mat-paginator-page-size-select .mat-form-field-wrapper{height:52px!important;margin-top:-15px!important;padding:0!important}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{margin-top:-5.5px!important}\n"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "localize": i2.LocalizePipe, "number": i4.DecimalPipe }, viewProviders: [{ provide: LocalizationService, useClass: TablePagerLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TablePagerComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: "app-paging", viewProviders: [{ provide: LocalizationService, useClass: TablePagerLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!Hidden\">\r\n <span class=\"est-fs-14\"> {{CountLabel && !GroupMode ? CountLabel : ((GroupMode ? 'Shown Groups' : 'Shown Elements') | localize : lc)}}:&nbsp;</span>\r\n <ng-container *ngIf=\"ShowPaging && Model && (Model == DefaultAll || PagerCount >= Model || PagerCount == -1)\">\r\n <mat-form-field [appearance]=\"'legacy'\" class=\"mat-paginator-page-size-select est-fs-14 est-ipp-bold\">\r\n <select matNativeControl [ngModel]=\"Model\" name=\"input\" (ngModelChange)=\"choice($event)\">\r\n <ng-container *ngFor=\"let pOpt of PagingOptions\">\r\n <option *ngIf=\"pOpt == DefaultAll || PagerCount >= pOpt || PagerCount == -1\" [value]=\"pOpt\">{{ pOpt == DefaultAll ? ('All' | localize : lc) : pOpt.toString()}}</option>\r\n </ng-container>\r\n </select>\r\n </mat-form-field>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount && PagerCount != -1\">&nbsp;/&nbsp;</span>\r\n </ng-container>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount && PagerCount != -1\">{{PagerCount | number : '0.0-0' : locale}}</span>\r\n</ng-container>", styles: [".est-rg-ipp-sel-all,.est-rg-ipp-sel,.est-ipp-sel-all,.est-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-bold{font-weight:700}.mat-paginator-page-size-select{margin:6px 4px 0;width:50px}.mat-paginator-page-size-select .mat-form-field-wrapper{height:52px!important;margin-top:-15px!important;padding:0!important}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{margin-top:-5.5px!important}\n"] }]
86
+ }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
87
+ type: Optional
88
+ }, {
89
+ type: Inject,
90
+ args: [EST_LOCALE]
91
+ }] }]; }, propDecorators: { CurrentPageSize: [{
92
+ type: Input
93
+ }], View: [{
94
+ type: Input
95
+ }], WarnOnAll: [{
96
+ type: Input
97
+ }], AllSearch: [{
98
+ type: Input
99
+ }], DefaultAll: [{
100
+ type: Input
101
+ }], GroupMode: [{
102
+ type: Input
103
+ }], GroupCount: [{
104
+ type: Input
105
+ }], CountLabel: [{
106
+ type: Input
107
+ }], ShowCount: [{
108
+ type: Input
109
+ }], ShowPaging: [{
110
+ type: Input
111
+ }], PagerCount: [{
112
+ type: Input
113
+ }], Hidden: [{
114
+ type: Input
115
+ }], pagingSelected: [{
116
+ type: Output
117
+ }] } });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVfcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VyL3RhYmxlX3BhZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkssaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELGVBQWU7QUFDZixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFMUMsZ0VBQWdFO0FBU2hFLE1BQU0sT0FBTyxtQkFBbUI7SUF5QzVCLGNBQWM7SUFDZCxZQUFvQixPQUF1QixFQUFTLEVBQXVCLEVBQVMsR0FBc0IsRUFBeUMsTUFBYztRQUE3SSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBeUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxDakssZ0hBQWdIO1FBQ3ZHLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFbkMsK0ZBQStGO1FBQ3RGLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFbkMsNENBQTRDO1FBQ25DLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFFN0Isc0dBQXNHO1FBQzdG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QUFRLEVBQUUsYUFBYSxFQUFFLENBQUM7MkZBTWpFLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDSSxZQUFZLGlCQUNQLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGlCQUczRCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkE0QzhELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVTs0Q0F2Q2pJLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgVGFibGVQYWdlckxvYyB9IGZyb20gXCIuL3RhYmxlX3BhZ2VyLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgRVNUX0xPQ0FMRSB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIGNoZSBzaSBvY2N1cGEgZGVsbGEgcGFnaW5hemlvbmUgZGkgdW5hIHRhYmVsbGEgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhcHAtcGFnaW5nXCIsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogVGFibGVQYWdlckxvYyB9XSxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlX3BhZ2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlX3BhZ2VyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlUGFnZXJDb21wb25lbnQge1xyXG5cclxuICAgIC8qKiBEaW1lbnNpb25lIGRpIHBhZ2luYSBhdHR1YWxlICovXHJcbiAgICBASW5wdXQoKSBDdXJyZW50UGFnZVNpemU6IGFueTtcclxuXHJcbiAgICAvKiogVmlldyBnZXN0aXRhLCBjaGUgcHXDsiBlc3NlcmUgdW4gSUFwcFNlYXJjaCBvIHVuYSBSZXBvcnRWaWV3ICovXHJcbiAgICBASW5wdXQoKSBWaWV3OiBhbnk7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBkZXZlIG1vc3RyYXJlIHVuIHdhcm5pbmcgcXVhbmRvIHNpIGNlcmNhbm8gZGkgc29sZXppb25hcmUgY29tZSBlbGVtZW50aSBkYSB2aXN1YWxpenphcmUgXCJUdXR0aVwiICovXHJcbiAgICBASW5wdXQoKSBXYXJuT25BbGw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgZGFyZSBsYSBwb3NzaWJpbGl0w6AgbyBtZW5vIGRpIHNlbGV6aW9uYXJlIFwiVHV0dGlcIiBuZWxsZSBvcHppb25pIGRpIHBhZ2luYXppb25lICovXHJcbiAgICBASW5wdXQoKSBBbGxTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgXHJcbiAgICAvKiogUGxhY2Vob2xkZXIgY2hlIGlkZW50aWZpY2EgaWwgXCJUdXR0aVwiICovXHJcbiAgICBASW5wdXQoKSBEZWZhdWx0QWxsID0gOTk5OTk5O1xyXG4gICAgXHJcbiAgICAvKiogSW5kaWNhIHNlIGF0dGl2YXJlIGxhIG1vZGFsaXTDoCBncnVwcG8gY29uIHN0aWxpIHBpw7kgc25lbGxpIHBlciBhcHBhcmlyZSBzb3R0byBhaSByYWdncnVwcGFtZW50aSAqL1xyXG4gICAgQElucHV0KCkgR3JvdXBNb2RlID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSB1dGlsaXp6YXJlIGlsIGNvbnRlZ2dpbyBkZWkgZ3J1cHBpIG8gZGVnbGkgb2dnZXR0aSAqL1xyXG4gICAgQElucHV0KCkgR3JvdXBDb3VudCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2EgaWwgdGVzdG8gY2hlIHZhIGEgc29zdGl0dWlyZSBcIk9nZ2V0dGkgVmlzdWFsaXp6YXRpXCIgaW4gY2FzbyBzaSBzdGlhIGZhY2VuZG8gcXVhbGNvc2EgZGkgY3VzdG9tLCBJZ25vcmF0byBpbiBjYXNvIGRpIGdydXBwaSAqL1xyXG4gICAgQElucHV0KCkgQ291bnRMYWJlbDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHZpc3VhbGl6emFyZSBpbCBudW1lcm8gdG90YWxlIGRpIG9nZ2V0aSBwcmVzZW50aSAqL1xyXG4gICAgQElucHV0KCkgU2hvd0NvdW50OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHZpc3VhbGl6emFyZSBpbCBudW1lcm8gdG90YWxlIGRpIG9nZ2V0aSBwcmVzZW50aSAqL1xyXG4gICAgQElucHV0KCkgU2hvd1BhZ2luZzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIEluZGljYSBpbCBudW1lcm8gdG90YWxlIGRpIG9nZ2V0aSBwcmVzZW50aSAqL1xyXG4gICAgQElucHV0KCkgUGFnZXJDb3VudDogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbW9zdHJhcmUgbyBtZW5vIGlsIGNvbnRlbnV0byBAZGVwcmVjYXRlZCB1c2F0YSBzb2xvIGRhIE1hdHJpeFZhbHVlc0NvbXBvbmVudCBuZWxsYSBsaWIgcmVsYXRpdmEgKi9cclxuICAgIEBJbnB1dCgpIEhpZGRlbjogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogT3V0cHV0IGludm9jYXRvIHF1YW5kbyBpbCBudW1lcm8gZGkgZWxlbWVudGkgcGVyIHBhZ2luYSB2aWVuZSBtb2RpZmljYXRvIGRhIHVuIGNsaWNrIHV0ZW50ZSAqL1xyXG4gICAgQE91dHB1dCgpIHBhZ2luZ1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbXNnRXh0czogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBJbmplY3QoRVNUX0xPQ0FMRSkgcHVibGljIGxvY2FsZTogc3RyaW5nKSB7IH1cclxuXHJcbiAgICAvKiogTW9kZWxsbyBzdSBjdWkgbGEgc2VsZWN0IGVmZmV0dHVhIG9wZXJhemlvbmkgZGkgc2VsZXppb25lICovXHJcbiAgICBwdWJsaWMgTW9kZWw6IG51bWJlcjtcclxuXHJcbiAgICAvKiogT3B6aW9uaSBkaSBwYWdpbmF6aW9uZSAqL1xyXG4gICAgcHVibGljIFBhZ2luZ09wdGlvbnM6IG51bWJlcltdID0gWzEwLCAxNSwgMzAsIDQ1LCAxMDAgXTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5Nb2RlbCA9IHRoaXMuVmlldyA/ICh0aGlzLlZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgfHwgMTUpIDogdGhpcy5DdXJyZW50UGFnZVNpemU7XHJcbiAgICAgICAgaWYgKHRoaXMuQWxsU2VhcmNoKVxyXG4gICAgICAgICAgICB0aGlzLlBhZ2luZ09wdGlvbnMucHVzaCh0aGlzLkRlZmF1bHRBbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgbGV0IG5ld1ZpZXcgPSBjaGFuZ2VzWydWaWV3J107XHJcbiAgICAgICAgbGV0IG5ld0NQUyA9IGNoYW5nZXNbJ0N1cnJlbnRQYWdlU2l6ZSddO1xyXG5cclxuICAgICAgICBpZiAoKG5ld1ZpZXcgJiYgIW5ld1ZpZXcuZmlyc3RDaGFuZ2UpIHx8IChuZXdDUFMgJiYgIW5ld0NQUy5maXJzdENoYW5nZSkpXHJcbiAgICAgICAgICAgIHRoaXMuTW9kZWwgPSBuZXdWaWV3Py5jdXJyZW50VmFsdWUgPyAobmV3Vmlldy5jdXJyZW50VmFsdWUuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgfHwgMTUpIDogbmV3Q1BTPy5jdXJyZW50VmFsdWUgPyBuZXdDUFMuY3VycmVudFZhbHVlIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIHJpY2hpYW1hdGEgZGFsIHRlbXBsYXRlIHF1YW5kbyB1biB1dGVudGUgY2xpY2NhIHN1IHVuIG51bWVybyBkaSBwYWdpbmF6aW9uZS5cclxuICAgICAqIFxyXG4gICAgICogQ2xpY2NhcmUgMiB2b2x0ZSBzdWxsbyBzdGVzc28gbnVtZXJvIGNhdXNhIGNvbXVucXVlIHVuIHJlZnJlc2ggZGVpIGRhdGlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2VTaXplIERpbWVuc2lvbmUgc2VsZXppb25hdGEgbGF0byBVSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hvaWNlKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAocGFnZVNpemUgPT0gdGhpcy5EZWZhdWx0QWxsICYmIHRoaXMuV2Fybk9uQWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nV2l0aENob2ljZShcclxuICAgICAgICAgICAgICAgIHRoaXMubGMubG9jKFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJldHJpZXZlIGFsbCByZXN1bHRzP1wiKSxcclxuICAgICAgICAgICAgICAgIHRoaXMubGMubG9jKFwiVGhpcyBtaWdodCBzbG93IGRvd24gdGhlIHBhZ2UgYW5kIHBvc3NpYmx5IGNyYXNoIHRoZSBlbnRpcmUgYXBwbGljYXRpb25cIiksXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7IHRoaXMucGFnaW5nU2VsZWN0ZWQuZW1pdChwYWdlU2l6ZSk7IHRoaXMuTW9kZWwgPSBwYWdlU2l6ZTsgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBEaW8gc29sbyBzYSBwZXJjaMOpIG1pIHRvY2NhIGZhcmUgc3RhIHJvYmEuLi4gcXVpIGRlbnRybyBwZXIgcXVhbGNoZSBtb3Rpdm8gbGEgQ0Qgbm9uIHByZW5kZVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2TW9kZWwgPSB0aGlzLk1vZGVsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTW9kZWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLk1vZGVsID0gcHJldk1vZGVsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmdTZWxlY3RlZC5lbWl0KHBhZ2VTaXplKTtcclxuICAgICAgICAgICAgdGhpcy5Nb2RlbCA9IHBhZ2VTaXplO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhSGlkZGVuXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJlc3QtZnMtMTRcIj4ge3tDb3VudExhYmVsICYmICFHcm91cE1vZGUgPyBDb3VudExhYmVsIDogKChHcm91cE1vZGUgPyAnU2hvd24gR3JvdXBzJyA6ICdTaG93biBFbGVtZW50cycpIHwgbG9jYWxpemUgOiBsYyl9fTombmJzcDs8L3NwYW4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dQYWdpbmcgJiYgTW9kZWwgJiYgKE1vZGVsID09IERlZmF1bHRBbGwgfHwgUGFnZXJDb3VudCA+PSBNb2RlbCB8fCBQYWdlckNvdW50ID09IC0xKVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cIidsZWdhY3knXCIgY2xhc3M9XCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QgZXN0LWZzLTE0IGVzdC1pcHAtYm9sZFwiPlxyXG4gICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW25nTW9kZWxdPVwiTW9kZWxcIiBuYW1lPVwiaW5wdXRcIiAobmdNb2RlbENoYW5nZSk9XCJjaG9pY2UoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBPcHQgb2YgUGFnaW5nT3B0aW9uc1wiPlxyXG4gICAgICAgICAgPG9wdGlvbiAqbmdJZj1cInBPcHQgPT0gRGVmYXVsdEFsbCB8fCBQYWdlckNvdW50ID49IHBPcHQgfHwgUGFnZXJDb3VudCA9PSAtMVwiIFt2YWx1ZV09XCJwT3B0XCI+e3sgcE9wdCA9PSBEZWZhdWx0QWxsID8gKCdBbGwnIHwgbG9jYWxpemUgOiBsYykgOiBwT3B0LnRvU3RyaW5nKCl9fTwvb3B0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8c3BhbiBjbGFzcz1cImVzdC1mcy0xNCBlc3QtaXBwLWJvbGRcIiAqbmdJZj1cIlNob3dDb3VudCAmJiBQYWdlckNvdW50ICE9IC0xXCI+Jm5ic3A7LyZuYnNwOzwvc3Bhbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8c3BhbiBjbGFzcz1cImVzdC1mcy0xNCBlc3QtaXBwLWJvbGRcIiAqbmdJZj1cIlNob3dDb3VudCAmJiBQYWdlckNvdW50ICE9IC0xXCI+e3tQYWdlckNvdW50IHwgbnVtYmVyIDogJzAuMC0wJyA6IGxvY2FsZX19PC9zcGFuPlxyXG48L25nLWNvbnRhaW5lcj4iXX0=