@universis/ngx-tables 6.14.2 → 9.14.2

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 (101) hide show
  1. package/bundles/universis-ngx-tables.umd.js +4902 -6847
  2. package/bundles/universis-ngx-tables.umd.js.map +1 -1
  3. package/bundles/universis-ngx-tables.umd.min.js +15 -1
  4. package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
  5. package/esm2015/lib/actions/table.actions.js +7 -49
  6. package/esm2015/lib/advanced-aggregator.js +0 -5
  7. package/esm2015/lib/components/add-items/add-items.component.js +36 -96
  8. package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +48 -103
  9. package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +36 -58
  10. package/esm2015/lib/components/advanced-list/advanced-list.component.js +67 -120
  11. package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +61 -118
  12. package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +47 -99
  13. package/esm2015/lib/components/advanced-select/advanced-select.component.js +25 -58
  14. package/esm2015/lib/components/advanced-select/advanced-select.service.js +10 -27
  15. package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +13 -36
  16. package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +22 -50
  17. package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +15 -37
  18. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +55 -227
  19. package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +23 -96
  20. package/esm2015/lib/components/advanced-table/advanced-table.component.js +303 -688
  21. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
  22. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +19 -230
  23. package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
  24. package/esm2015/lib/components/advanced-table/custom-button.formatter.js +3 -17
  25. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +77 -198
  26. package/esm2015/lib/components/column-selector/column-selector.component.js +39 -109
  27. package/esm2015/lib/components/column-selector/column-selector.service.js +9 -26
  28. package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +28 -51
  29. package/esm2015/lib/directives/advance-search-state.directive.js +22 -54
  30. package/esm2015/lib/directives/advance-table-state.directive.js +20 -39
  31. package/esm2015/lib/directives/advanced-search-router-state.directive.js +15 -37
  32. package/esm2015/lib/directives/advanced-table-editor.directive.js +24 -54
  33. package/esm2015/lib/directives/btnexp.directive.js +55 -97
  34. package/esm2015/lib/i18n/tables.el.js +3 -7
  35. package/esm2015/lib/i18n/tables.en.js +3 -7
  36. package/esm2015/lib/pipes/advanced-aggregator.pipe.js +15 -18
  37. package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +13 -25
  38. package/esm2015/lib/reducers/index.js +7 -37
  39. package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +27 -48
  40. package/esm2015/lib/tables.activated-table.service.js +11 -46
  41. package/esm2015/lib/tables.module.js +90 -105
  42. package/esm2015/public_api.js +29 -34
  43. package/esm2015/universis-ngx-tables.js +2 -7
  44. package/esm5/lib/actions/table.actions.js +7 -38
  45. package/esm5/lib/advanced-aggregator.js +0 -5
  46. package/esm5/lib/components/add-items/add-items.component.js +42 -127
  47. package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +58 -141
  48. package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +32 -71
  49. package/esm5/lib/components/advanced-list/advanced-list.component.js +67 -136
  50. package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +62 -139
  51. package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +45 -116
  52. package/esm5/lib/components/advanced-select/advanced-select.component.js +23 -57
  53. package/esm5/lib/components/advanced-select/advanced-select.service.js +8 -27
  54. package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +15 -50
  55. package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +18 -52
  56. package/esm5/lib/components/advanced-table/advanced-table-search-base.js +17 -48
  57. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +84 -329
  58. package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +27 -116
  59. package/esm5/lib/components/advanced-table/advanced-table.component.js +324 -863
  60. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
  61. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +58 -393
  62. package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
  63. package/esm5/lib/components/advanced-table/custom-button.formatter.js +6 -27
  64. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +90 -296
  65. package/esm5/lib/components/column-selector/column-selector.component.js +46 -143
  66. package/esm5/lib/components/column-selector/column-selector.service.js +7 -26
  67. package/esm5/lib/components/table-simple-header/table-simple-header.component.js +26 -61
  68. package/esm5/lib/directives/advance-search-state.directive.js +24 -74
  69. package/esm5/lib/directives/advance-table-state.directive.js +17 -37
  70. package/esm5/lib/directives/advanced-search-router-state.directive.js +13 -43
  71. package/esm5/lib/directives/advanced-table-editor.directive.js +31 -81
  72. package/esm5/lib/directives/btnexp.directive.js +43 -175
  73. package/esm5/lib/i18n/tables.el.js +3 -7
  74. package/esm5/lib/i18n/tables.en.js +3 -7
  75. package/esm5/lib/pipes/advanced-aggregator.pipe.js +9 -35
  76. package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +9 -36
  77. package/esm5/lib/reducers/index.js +8 -38
  78. package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +21 -82
  79. package/esm5/lib/tables.activated-table.service.js +10 -42
  80. package/esm5/lib/tables.module.js +89 -105
  81. package/esm5/public_api.js +29 -34
  82. package/esm5/universis-ngx-tables.js +2 -7
  83. package/fesm2015/universis-ngx-tables.js +1177 -2186
  84. package/fesm2015/universis-ngx-tables.js.map +1 -1
  85. package/fesm5/universis-ngx-tables.js +1235 -3067
  86. package/fesm5/universis-ngx-tables.js.map +1 -1
  87. package/lib/actions/table.actions.d.ts +3 -3
  88. package/lib/components/add-items/add-items.component.d.ts +1 -1
  89. package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +7 -4
  90. package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +1 -1
  91. package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +1 -1
  92. package/lib/components/advanced-table/advanced-table-search-base.d.ts +3 -2
  93. package/lib/components/advanced-table/advanced-table-search.component.d.ts +3 -2
  94. package/lib/components/advanced-table/advanced-table.component.d.ts +13 -8
  95. package/lib/directives/advanced-table-editor.directive.d.ts +1 -1
  96. package/lib/i18n/tables.el.d.ts +108 -108
  97. package/lib/i18n/tables.en.d.ts +107 -107
  98. package/lib/reducers/index.d.ts +3 -3
  99. package/lib/tables.activated-table.service.d.ts +2 -1
  100. package/package.json +20 -31
  101. package/universis-ngx-tables.metadata.json +1 -1
@@ -1,15 +1,11 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, TemplateRef } from '@angular/core';
1
+ import { __awaiter, __decorate, __generator } from "tslib";
2
+ import { Component, Input, OnInit, Output, EventEmitter, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, TemplateRef } from '@angular/core';
7
3
  import { AdvancedAggregatorService } from '../../services/advanced-aggregator/advanced-aggregator.service';
8
4
  import { LoadingService } from '@universis/common';
9
5
  /**
10
6
  *
11
7
  *
12
- * \@classdesc An advanced list with the capability of aggregate data based on configurable filters
8
+ * @classdesc An advanced list with the capability of aggregate data based on configurable filters
13
9
  *
14
10
  */
15
11
  var AdvancedAggregatorComponent = /** @class */ (function () {
@@ -21,73 +17,46 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
21
17
  this.eventHandler = new EventEmitter();
22
18
  }
23
19
  Object.defineProperty(AdvancedAggregatorComponent.prototype, "config", {
24
- get: /**
25
- * @return {?}
26
- */
27
- function () {
28
- return /** @type {?} */ (this._config);
20
+ get: function () {
21
+ return this._config;
29
22
  },
30
- set: /**
31
- * @param {?} value
32
- * @return {?}
33
- */
34
- function (value) {
23
+ set: function (value) {
35
24
  this._config = value;
36
25
  },
37
26
  enumerable: true,
38
27
  configurable: true
39
28
  });
40
29
  Object.defineProperty(AdvancedAggregatorComponent.prototype, "aggregators", {
41
- get: /**
42
- * @return {?}
43
- */
44
- function () {
30
+ get: function () {
45
31
  return this._aggregators;
46
32
  },
47
- set: /**
48
- * @param {?} value
49
- * @return {?}
50
- */
51
- function (value) {
33
+ set: function (value) {
52
34
  this._aggregators = value;
53
35
  },
54
36
  enumerable: true,
55
37
  configurable: true
56
38
  });
57
39
  Object.defineProperty(AdvancedAggregatorComponent.prototype, "postProcessors", {
58
- get: /**
59
- * @return {?}
60
- */
61
- function () {
40
+ get: function () {
62
41
  return this._postProcessors;
63
42
  },
64
- set: /**
65
- * @param {?} value
66
- * @return {?}
67
- */
68
- function (value) {
43
+ set: function (value) {
69
44
  this._postProcessors = value;
70
45
  },
71
46
  enumerable: true,
72
47
  configurable: true
73
48
  });
74
- /**
75
- * @return {?}
76
- */
77
- AdvancedAggregatorComponent.prototype.ngOnInit = /**
78
- * @return {?}
79
- */
80
- function () {
81
- return tslib_1.__awaiter(this, void 0, void 0, function () {
49
+ AdvancedAggregatorComponent.prototype.ngOnInit = function () {
50
+ return __awaiter(this, void 0, void 0, function () {
82
51
  var _this = this;
83
- return tslib_1.__generator(this, function (_a) {
52
+ return __generator(this, function (_a) {
84
53
  this.selectedGroups$.subscribe(function (data) {
85
54
  _this.groups = data;
86
55
  _this._changeDetector.markForCheck();
87
56
  });
88
- this.filters$.subscribe(function (filters) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
57
+ this.filters$.subscribe(function (filters) { return __awaiter(_this, void 0, void 0, function () {
89
58
  var err_1;
90
- return tslib_1.__generator(this, function (_a) {
59
+ return __generator(this, function (_a) {
91
60
  switch (_a.label) {
92
61
  case 0:
93
62
  _a.trys.push([0, 2, , 3]);
@@ -107,15 +76,9 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
107
76
  });
108
77
  });
109
78
  };
110
- /**
111
- * @return {?}
112
- */
113
- AdvancedAggregatorComponent.prototype.ngOnDestroy = /**
114
- * @return {?}
115
- */
116
- function () {
117
- return tslib_1.__awaiter(this, void 0, void 0, function () {
118
- return tslib_1.__generator(this, function (_a) {
79
+ AdvancedAggregatorComponent.prototype.ngOnDestroy = function () {
80
+ return __awaiter(this, void 0, void 0, function () {
81
+ return __generator(this, function (_a) {
119
82
  this.selectedGroups$.unsubscribe();
120
83
  this.filters$.unsubscribe();
121
84
  return [2 /*return*/];
@@ -127,24 +90,10 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
127
90
  * Retrieves the data
128
91
  *
129
92
  */
130
- /**
131
- *
132
- * Retrieves the data
133
- *
134
- * @param {?} filters
135
- * @return {?}
136
- */
137
- AdvancedAggregatorComponent.prototype.fetch = /**
138
- *
139
- * Retrieves the data
140
- *
141
- * @param {?} filters
142
- * @return {?}
143
- */
144
- function (filters) {
145
- return tslib_1.__awaiter(this, void 0, void 0, function () {
93
+ AdvancedAggregatorComponent.prototype.fetch = function (filters) {
94
+ return __awaiter(this, void 0, void 0, function () {
146
95
  var data, i, err_2;
147
- return tslib_1.__generator(this, function (_a) {
96
+ return __generator(this, function (_a) {
148
97
  switch (_a.label) {
149
98
  case 0:
150
99
  _a.trys.push([0, 6, 7, 8]);
@@ -187,82 +136,50 @@ var AdvancedAggregatorComponent = /** @class */ (function () {
187
136
  * @param event The event data
188
137
  *
189
138
  */
190
- /**
191
- *
192
- * Triggers the event handler event
193
- *
194
- * @param {?} event The event data
195
- *
196
- * @return {?}
197
- */
198
- AdvancedAggregatorComponent.prototype.onActionEvent = /**
199
- *
200
- * Triggers the event handler event
201
- *
202
- * @param {?} event The event data
203
- *
204
- * @return {?}
205
- */
206
- function (event) {
139
+ AdvancedAggregatorComponent.prototype.onActionEvent = function (event) {
207
140
  this.eventHandler.emit(event);
208
141
  };
209
- AdvancedAggregatorComponent.decorators = [
210
- { type: Component, args: [{
211
- // tslint:disable-next-line:component-selector
212
- selector: 'app-advanced-aggregator',
213
- template: "<ng-container *ngIf=\"config && body\">\n <div class=\"w-100 text-center\" *ngIf=\"body && body.length === 0\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"groups.length === 0\">\n <div class=\"row mt-4\">\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"body\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\" class=\"col-12\">\n </app-advanced-aggregator-list>\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groups.length === 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"group.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for the group -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"groups.length > 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor=\"let subgroup of group.value | groupBy: groups[1].name | keyvalue\" class=\"col-12 ml-4 pl-4\">\n <div class=\"row mt-4\">\n <h6 class=\"col-12 text-secondary\"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"subgroup.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for each subgroup -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>",
214
- changeDetection: ChangeDetectionStrategy.OnPush
215
- }] }
216
- ];
217
- /** @nocollapse */
218
142
  AdvancedAggregatorComponent.ctorParameters = function () { return [
219
143
  { type: ChangeDetectorRef },
220
144
  { type: AdvancedAggregatorService },
221
145
  { type: LoadingService }
222
146
  ]; };
223
- AdvancedAggregatorComponent.propDecorators = {
224
- config: [{ type: Input, args: ['config',] }],
225
- aggregators: [{ type: Input, args: ['aggregators',] }],
226
- postProcessors: [{ type: Input, args: ['postProcessors',] }],
227
- params: [{ type: Input, args: ['params',] }],
228
- selectedGroups$: [{ type: Input, args: ['selectedGroups',] }],
229
- filters$: [{ type: Input, args: ['filters',] }],
230
- searchExpression: [{ type: Input, args: ['searchExpression',] }],
231
- detailTemplate: [{ type: Input, args: ['detailTemplate',] }],
232
- eventHandler: [{ type: Output }]
233
- };
147
+ __decorate([
148
+ Input('config')
149
+ ], AdvancedAggregatorComponent.prototype, "config", null);
150
+ __decorate([
151
+ Input('aggregators')
152
+ ], AdvancedAggregatorComponent.prototype, "aggregators", null);
153
+ __decorate([
154
+ Input('postProcessors')
155
+ ], AdvancedAggregatorComponent.prototype, "postProcessors", null);
156
+ __decorate([
157
+ Input('params')
158
+ ], AdvancedAggregatorComponent.prototype, "params", void 0);
159
+ __decorate([
160
+ Input('selectedGroups')
161
+ ], AdvancedAggregatorComponent.prototype, "selectedGroups$", void 0);
162
+ __decorate([
163
+ Input('filters')
164
+ ], AdvancedAggregatorComponent.prototype, "filters$", void 0);
165
+ __decorate([
166
+ Input('searchExpression')
167
+ ], AdvancedAggregatorComponent.prototype, "searchExpression", void 0);
168
+ __decorate([
169
+ Input('detailTemplate')
170
+ ], AdvancedAggregatorComponent.prototype, "detailTemplate", void 0);
171
+ __decorate([
172
+ Output()
173
+ ], AdvancedAggregatorComponent.prototype, "eventHandler", void 0);
174
+ AdvancedAggregatorComponent = __decorate([
175
+ Component({
176
+ // tslint:disable-next-line:component-selector
177
+ selector: 'app-advanced-aggregator',
178
+ template: "<ng-container *ngIf=\"config && body\">\n <div class=\"w-100 text-center\" *ngIf=\"body && body.length === 0\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"groups.length === 0\">\n <div class=\"row mt-4\">\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"body\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\" class=\"col-12\">\n </app-advanced-aggregator-list>\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groups.length === 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"group.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for the group -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"groups.length > 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor=\"let subgroup of group.value | groupBy: groups[1].name | keyvalue\" class=\"col-12 ml-4 pl-4\">\n <div class=\"row mt-4\">\n <h6 class=\"col-12 text-secondary\"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [detailTemplate]=\"detailTemplate\" [body]=\"subgroup.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for each subgroup -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>",
179
+ changeDetection: ChangeDetectionStrategy.OnPush
180
+ })
181
+ ], AdvancedAggregatorComponent);
234
182
  return AdvancedAggregatorComponent;
235
183
  }());
236
184
  export { AdvancedAggregatorComponent };
237
- if (false) {
238
- /** @type {?} */
239
- AdvancedAggregatorComponent.prototype._config;
240
- /** @type {?} */
241
- AdvancedAggregatorComponent.prototype._aggregators;
242
- /** @type {?} */
243
- AdvancedAggregatorComponent.prototype._postProcessors;
244
- /** @type {?} */
245
- AdvancedAggregatorComponent.prototype.body;
246
- /** @type {?} */
247
- AdvancedAggregatorComponent.prototype.groups;
248
- /** @type {?} */
249
- AdvancedAggregatorComponent.prototype.params;
250
- /** @type {?} */
251
- AdvancedAggregatorComponent.prototype.selectedGroups$;
252
- /** @type {?} */
253
- AdvancedAggregatorComponent.prototype.filters$;
254
- /** @type {?} */
255
- AdvancedAggregatorComponent.prototype.searchExpression;
256
- /** @type {?} */
257
- AdvancedAggregatorComponent.prototype.detailTemplate;
258
- /** @type {?} */
259
- AdvancedAggregatorComponent.prototype.eventHandler;
260
- /** @type {?} */
261
- AdvancedAggregatorComponent.prototype._changeDetector;
262
- /** @type {?} */
263
- AdvancedAggregatorComponent.prototype._advancedAggregatorService;
264
- /** @type {?} */
265
- AdvancedAggregatorComponent.prototype._loadingService;
266
- }
267
-
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFFM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7OztJQWtEakQscUNBQ1UsaUJBQ0EsNEJBQ0E7UUFGQSxvQkFBZSxHQUFmLGVBQWU7UUFDZiwrQkFBMEIsR0FBMUIsMEJBQTBCO1FBQzFCLG9CQUFlLEdBQWYsZUFBZTtzQkEvQkYsRUFBRTs0QkEwQkEsSUFBSSxZQUFZLEVBQUU7S0FNdEM7SUE5Qkwsc0JBQ1csK0NBQU07Ozs7O1lBZ0NmLHlCQUFPLElBQUksQ0FBQyxPQUFtQyxFQUFDOzs7Ozs7UUFqQ2xELFVBQ2tCLEtBQStCO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCOzs7T0FBQTtJQUVELHNCQUNXLG9EQUFXOzs7OztZQStCcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDOzs7Ozs7UUFoQzNCLFVBQ3VCLEtBQUs7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7OztPQUFBO0lBRUQsc0JBQ1csdURBQWM7Ozs7O1lBOEJ2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7Ozs7OztRQS9COUIsVUFDMEIsS0FBSztZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUM5Qjs7O09BQUE7Ozs7SUErQkssOENBQVE7OztJQUFkOzs7O2dCQUNFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQUMsSUFBSTtvQkFDbEMsS0FBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLEtBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3JDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFPLE9BQWtDOzs7Ozs7Z0NBRTdELHFCQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUE7O2dDQUF6QixTQUF5QixDQUFDOzs7O2dDQUUxQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUcsQ0FBQyxDQUFDOzs7OztxQkFFdEIsQ0FBQyxDQUFDOzs7O0tBQ0o7Ozs7SUFFSyxpREFBVzs7O0lBQWpCOzs7Z0JBQ0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQzs7OztLQUM3QjtJQUVEOzs7O09BSUc7Ozs7Ozs7O0lBQ0csMkNBQUs7Ozs7Ozs7SUFBWCxVQUFZLE9BQWtDOzs7Ozs7O3dCQUUxQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN4QixxQkFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUMxRSxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUNqQixPQUFPLENBQUMsT0FBTyxFQUNmLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsT0FBTyxDQUFDLElBQUksQ0FDYixFQUFBOzt3QkFORyxJQUFJLEdBQUcsU0FNVjs2QkFHRyxDQUFBLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBLEVBQXpJLHdCQUF5STt3QkFDbEksQ0FBQyxHQUFHLENBQUM7Ozs2QkFBRSxDQUFBLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUE7d0JBQzVDLHFCQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUE7O3dCQUExRSxJQUFJLEdBQUcsU0FBbUUsQ0FBQzs7O3dCQUR0QixDQUFDLEVBQUUsQ0FBQTs7O3dCQUs1RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDMUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Ozt3QkFFcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFHLENBQUMsQ0FBQzs7O3dCQUVuQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDOzs7Ozs7S0FFdEM7SUFFRDs7Ozs7O09BTUc7Ozs7Ozs7OztJQUNILG1EQUFhOzs7Ozs7OztJQUFiLFVBQWMsS0FBSztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMvQjs7Z0JBeEhGLFNBQVMsU0FBQzs7b0JBRVQsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsdXNIQUFtRDtvQkFDbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzs7O2dCQWpCNEYsaUJBQWlCO2dCQUNyRyx5QkFBeUI7Z0JBRXpCLGNBQWM7Ozt5QkF3QnBCLEtBQUssU0FBQyxRQUFROzhCQUtkLEtBQUssU0FBQyxhQUFhO2lDQUtuQixLQUFLLFNBQUMsZ0JBQWdCO3lCQUt0QixLQUFLLFNBQUMsUUFBUTtrQ0FFZCxLQUFLLFNBQUMsZ0JBQWdCOzJCQUV0QixLQUFLLFNBQUMsU0FBUzttQ0FDZixLQUFLLFNBQUMsa0JBQWtCO2lDQUV4QixLQUFLLFNBQUMsZ0JBQWdCOytCQUV0QixNQUFNOztzQ0FuRFQ7O1NBa0JhLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZywgQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycyB9IGZyb20gJy4uLy4uL2FkdmFuY2VkLWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbi8qKlxuICpcbiAqIFxuICogIEBjbGFzc2Rlc2MgQW4gYWR2YW5jZWQgbGlzdCB3aXRoIHRoZSBjYXBhYmlsaXR5IG9mIGFnZ3JlZ2F0ZSBkYXRhIGJhc2VkIG9uIGNvbmZpZ3VyYWJsZSBmaWx0ZXJzXG4gKlxuICovXG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnPzogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnO1xuICBwcml2YXRlIF9hZ2dyZWdhdG9ycztcbiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3NvcnM7XG5cbiAgcHVibGljIGJvZHk7XG4gIHB1YmxpYyBncm91cHM6IGFueVtdID0gW107XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2FnZ3JlZ2F0b3JzJylcbiAgcHVibGljIHNldCBhZ2dyZWdhdG9ycyh2YWx1ZSkge1xuICAgIHRoaXMuX2FnZ3JlZ2F0b3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3Bvc3RQcm9jZXNzb3JzJylcbiAgcHVibGljIHNldCBwb3N0UHJvY2Vzc29ycyh2YWx1ZSkge1xuICAgIHRoaXMuX3Bvc3RQcm9jZXNzb3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpIHBhcmFtcztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2VsZWN0ZWRHcm91cHMkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZmlsdGVycycpIGZpbHRlcnMkO1xuICBASW5wdXQoJ3NlYXJjaEV4cHJlc3Npb24nKSBzZWFyY2hFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQE91dHB1dCgpIGV2ZW50SGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfYWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZTogQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIF9sb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnIGFzIEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWdncmVnYXRvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FnZ3JlZ2F0b3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBwb3N0UHJvY2Vzc29ycygpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zdFByb2Nlc3NvcnM7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBzJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZ3JvdXBzID0gZGF0YTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzJC5zdWJzY3JpYmUoYXN5bmMgKGZpbHRlcnM6IEFkdmFuY2VkQWdncmVnYXRvckZpbHRlcnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZmV0Y2goZmlsdGVycyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZpbHRlcnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhXG4gICAqXG4gICAqL1xuICBhc3luYyBmZXRjaChmaWx0ZXJzOiBBZHZhbmNlZEFnZ3JlZ2F0b3JGaWx0ZXJzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLnNob3dMb2FkaW5nKCk7XG4gICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UuZmV0Y2hEYXRhKHRoaXMuY29uZmlnLm1vZGVsLFxuICAgICAgICB0aGlzLnBhcmFtcyxcbiAgICAgICAgdGhpcy5jb25maWcucXVlcnksXG4gICAgICAgIGZpbHRlcnMuZmlsdGVycyxcbiAgICAgICAgdGhpcy5zZWFyY2hFeHByZXNzaW9uLFxuICAgICAgICBmaWx0ZXJzLnRleHRcbiAgICAgICk7XG5cbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIGlmICh0aGlzLnBvc3RQcm9jZXNzb3JzICYmIE9iamVjdC5rZXlzKHRoaXMucG9zdFByb2Nlc3NvcnMpLmxlbmd0aCA+IDAgJiYgdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnMgJiYgdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMucG9zdFByb2Nlc3NvcnNbdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnNbaV0ubmFtZV0oZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5ib2R5ID0gdGhpcy5fYWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZS5mb3JtYXREYXRhKHRoaXMuY29uZmlnLCBkYXRhKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9sb2FkaW5nU2VydmljZS5oaWRlTG9hZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUcmlnZ2VycyB0aGUgZXZlbnQgaGFuZGxlciBldmVudFxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IGRhdGFcbiAgICpcbiAgICovXG4gIG9uQWN0aW9uRXZlbnQoZXZlbnQpIHtcbiAgICB0aGlzLmV2ZW50SGFuZGxlci5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRTNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRDs7Ozs7R0FLRztBQVFIO0lBbUNFLHFDQUNVLGVBQWtDLEVBQ2xDLDBCQUFxRCxFQUNyRCxlQUErQjtRQUYvQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUEyQjtRQUNyRCxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUEvQmxDLFdBQU0sR0FBVSxFQUFFLENBQUM7UUEwQmhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU14QyxDQUFDO0lBN0JMLHNCQUFXLCtDQUFNO2FBK0JqQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQW1DLENBQUM7UUFDbEQsQ0FBQzthQWpDRCxVQUFrQixLQUErQjtZQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQUdELHNCQUFXLG9EQUFXO2FBOEJ0QjtZQUNFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDO2FBaENELFVBQXVCLEtBQUs7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7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LENBQUMsYUFBYSxDQUFDO2tFQUdwQjtJQUdEO1FBREMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO3FFQUd2QjtJQUVnQjtRQUFoQixLQUFLLENBQUMsUUFBUSxDQUFDOytEQUFRO0lBRUM7UUFBeEIsS0FBSyxDQUFDLGdCQUFnQixDQUFDO3dFQUFpQjtJQUV2QjtRQUFqQixLQUFLLENBQUMsU0FBUyxDQUFDO2lFQUFVO0lBQ0E7UUFBMUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDO3lFQUEyQjtJQUU1QjtRQUF4QixLQUFLLENBQUMsZ0JBQWdCLENBQUM7dUVBQW1DO0lBRWpEO1FBQVQsTUFBTSxFQUFFO3FFQUFtQztJQWpDakMsMkJBQTJCO1FBTnZDLFNBQVMsQ0FBQztZQUNULDhDQUE4QztZQUM5QyxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLHVzSEFBbUQ7WUFDbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQztPQUNXLDJCQUEyQixDQW1IdkM7SUFBRCxrQ0FBQztDQUFBLEFBbkhELElBbUhDO1NBbkhZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZywgQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycyB9IGZyb20gJy4uLy4uL2FkdmFuY2VkLWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbi8qKlxuICpcbiAqIFxuICogIEBjbGFzc2Rlc2MgQW4gYWR2YW5jZWQgbGlzdCB3aXRoIHRoZSBjYXBhYmlsaXR5IG9mIGFnZ3JlZ2F0ZSBkYXRhIGJhc2VkIG9uIGNvbmZpZ3VyYWJsZSBmaWx0ZXJzXG4gKlxuICovXG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnPzogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnO1xuICBwcml2YXRlIF9hZ2dyZWdhdG9ycztcbiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3NvcnM7XG5cbiAgcHVibGljIGJvZHk7XG4gIHB1YmxpYyBncm91cHM6IGFueVtdID0gW107XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2FnZ3JlZ2F0b3JzJylcbiAgcHVibGljIHNldCBhZ2dyZWdhdG9ycyh2YWx1ZSkge1xuICAgIHRoaXMuX2FnZ3JlZ2F0b3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3Bvc3RQcm9jZXNzb3JzJylcbiAgcHVibGljIHNldCBwb3N0UHJvY2Vzc29ycyh2YWx1ZSkge1xuICAgIHRoaXMuX3Bvc3RQcm9jZXNzb3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpIHBhcmFtcztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2VsZWN0ZWRHcm91cHMkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZmlsdGVycycpIGZpbHRlcnMkO1xuICBASW5wdXQoJ3NlYXJjaEV4cHJlc3Npb24nKSBzZWFyY2hFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQE91dHB1dCgpIGV2ZW50SGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfYWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZTogQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIF9sb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnIGFzIEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWdncmVnYXRvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FnZ3JlZ2F0b3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBwb3N0UHJvY2Vzc29ycygpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zdFByb2Nlc3NvcnM7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBzJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZ3JvdXBzID0gZGF0YTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzJC5zdWJzY3JpYmUoYXN5bmMgKGZpbHRlcnM6IEFkdmFuY2VkQWdncmVnYXRvckZpbHRlcnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZmV0Y2goZmlsdGVycyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZpbHRlcnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhXG4gICAqXG4gICAqL1xuICBhc3luYyBmZXRjaChmaWx0ZXJzOiBBZHZhbmNlZEFnZ3JlZ2F0b3JGaWx0ZXJzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLnNob3dMb2FkaW5nKCk7XG4gICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UuZmV0Y2hEYXRhKHRoaXMuY29uZmlnLm1vZGVsLFxuICAgICAgICB0aGlzLnBhcmFtcyxcbiAgICAgICAgdGhpcy5jb25maWcucXVlcnksXG4gICAgICAgIGZpbHRlcnMuZmlsdGVycyxcbiAgICAgICAgdGhpcy5zZWFyY2hFeHByZXNzaW9uLFxuICAgICAgICBmaWx0ZXJzLnRleHRcbiAgICAgICk7XG5cbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIGlmICh0aGlzLnBvc3RQcm9jZXNzb3JzICYmIE9iamVjdC5rZXlzKHRoaXMucG9zdFByb2Nlc3NvcnMpLmxlbmd0aCA+IDAgJiYgdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnMgJiYgdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMucG9zdFByb2Nlc3NvcnNbdGhpcy5jb25maWcucG9zdFByb2Nlc3NvcnNbaV0ubmFtZV0oZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5ib2R5ID0gdGhpcy5fYWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZS5mb3JtYXREYXRhKHRoaXMuY29uZmlnLCBkYXRhKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9sb2FkaW5nU2VydmljZS5oaWRlTG9hZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUcmlnZ2VycyB0aGUgZXZlbnQgaGFuZGxlciBldmVudFxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IGRhdGFcbiAgICpcbiAgICovXG4gIG9uQWN0aW9uRXZlbnQoZXZlbnQpIHtcbiAgICB0aGlzLmV2ZW50SGFuZGxlci5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIl19
@@ -1,29 +1,20 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
- import { Component, Input, Output, EventEmitter, TemplateRef } from '@angular/core';
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
6
3
  import { TemplatePipe } from '@universis/common';
7
- /** @enum {string} */
8
- var Lengths = {
9
- XL: 'xl',
10
- LG: 'lg',
11
- MD: 'md',
12
- SM: 'sm',
13
- XS: 'xs',
14
- };
4
+ var Lengths;
5
+ (function (Lengths) {
6
+ Lengths["XL"] = "xl";
7
+ Lengths["LG"] = "lg";
8
+ Lengths["MD"] = "md";
9
+ Lengths["SM"] = "sm";
10
+ Lengths["XS"] = "xs";
11
+ })(Lengths || (Lengths = {}));
15
12
  var AdvancedAggregatorListComponent = /** @class */ (function () {
16
13
  function AdvancedAggregatorListComponent(_template) {
17
14
  this._template = _template;
18
15
  this.clickEvent = new EventEmitter();
19
16
  }
20
- /**
21
- * @return {?}
22
- */
23
- AdvancedAggregatorListComponent.prototype.ngOnInit = /**
24
- * @return {?}
25
- */
26
- function () {
17
+ AdvancedAggregatorListComponent.prototype.ngOnInit = function () {
27
18
  var _this = this;
28
19
  this.config.columns.forEach(function (x) {
29
20
  x.length = Object.values(Lengths).includes(x.length) ? _this._template.transform("sis--list-group-item_" + x.length + "_column", x) :
@@ -38,65 +29,35 @@ var AdvancedAggregatorListComponent = /** @class */ (function () {
38
29
  * @param item The value of the current item
39
30
  * }
40
31
  */
41
- /**
42
- *
43
- * Triggers the output event emitter
44
- *
45
- * @param {?} type The type of the event as it's declared in the configuration
46
- * @param {?} data
47
- * @return {?}
48
- */
49
- AdvancedAggregatorListComponent.prototype.callCallback = /**
50
- *
51
- * Triggers the output event emitter
52
- *
53
- * @param {?} type The type of the event as it's declared in the configuration
54
- * @param {?} data
55
- * @return {?}
56
- */
57
- function (type, data) {
32
+ AdvancedAggregatorListComponent.prototype.callCallback = function (type, data) {
58
33
  this.clickEvent.emit({
59
34
  type: type,
60
35
  data: data
61
36
  });
62
37
  };
63
- AdvancedAggregatorListComponent.decorators = [
64
- { type: Component, args: [{
65
- // tslint:disable-next-line:component-selector
66
- selector: 'app-advanced-aggregator-list',
67
- template: "<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\" [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n <!-- The list of entries -->\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <!-- The list of actions -->\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i class=\"\" [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n <span class=\"px-0\">\n <i class=\"fa fa-fw\">&nbsp;</i>\n </span>\n\n </div>\n <!-- The list of data -->\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!entry[column.name],\n 'fa-times text-danger': !!entry[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <ng-container *ngIf=\"detailTemplate\">\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: { row: entry }\"></ng-container>\n </ng-container>\n <div *ngIf=\"entry && entry.subitems\">\n <ng-container *ngFor=\"let subitem of entry.subitems\">\n <div class=\"d-flex d-debug justify-content-center align-items-center list-color\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <span class=\"px-0\">\n <i class=\"fa fa-fw\">&nbsp;</i>\n </span>\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, subitem)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i *ngIf=\"action.type === 'edit'\" class=\"fas fa-edit text-indigo\"></i>\n </button>\n </div>\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!subitem[column.name],\n 'fa-times text-danger': !!subitem[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"subitem[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </li>\n </ul>\n</div>"
68
- }] }
69
- ];
70
- /** @nocollapse */
71
38
  AdvancedAggregatorListComponent.ctorParameters = function () { return [
72
39
  { type: TemplatePipe }
73
40
  ]; };
74
- AdvancedAggregatorListComponent.propDecorators = {
75
- config: [{ type: Input }],
76
- body: [{ type: Input }],
77
- detailTemplate: [{ type: Input, args: ['detailTemplate',] }],
78
- clickEvent: [{ type: Output }]
79
- };
41
+ __decorate([
42
+ Input()
43
+ ], AdvancedAggregatorListComponent.prototype, "config", void 0);
44
+ __decorate([
45
+ Input()
46
+ ], AdvancedAggregatorListComponent.prototype, "body", void 0);
47
+ __decorate([
48
+ Input('detailTemplate')
49
+ ], AdvancedAggregatorListComponent.prototype, "detailTemplate", void 0);
50
+ __decorate([
51
+ Output()
52
+ ], AdvancedAggregatorListComponent.prototype, "clickEvent", void 0);
53
+ AdvancedAggregatorListComponent = __decorate([
54
+ Component({
55
+ // tslint:disable-next-line:component-selector
56
+ selector: 'app-advanced-aggregator-list',
57
+ template: "<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\" [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n <!-- The list of entries -->\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <!-- The list of actions -->\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i class=\"\" [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n <span class=\"px-0\">\n <i class=\"fa fa-fw\">&nbsp;</i>\n </span>\n\n </div>\n <!-- The list of data -->\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!entry[column.name],\n 'fa-times text-danger': !!entry[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <ng-container *ngIf=\"detailTemplate\">\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: { row: entry }\"></ng-container>\n </ng-container>\n <div *ngIf=\"entry && entry.subitems\">\n <ng-container *ngFor=\"let subitem of entry.subitems\">\n <div class=\"d-flex d-debug justify-content-center align-items-center list-color\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <span class=\"px-0\">\n <i class=\"fa fa-fw\">&nbsp;</i>\n </span>\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, subitem)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i *ngIf=\"action.type === 'edit'\" class=\"fas fa-edit text-indigo\"></i>\n </button>\n </div>\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!subitem[column.name],\n 'fa-times text-danger': !!subitem[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"subitem[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </li>\n </ul>\n</div>"
58
+ })
59
+ ], AdvancedAggregatorListComponent);
80
60
  return AdvancedAggregatorListComponent;
81
61
  }());
82
62
  export { AdvancedAggregatorListComponent };
83
- if (false) {
84
- /**
85
- * \@property {AdvancedAggregatorConfig} config The configuration object to use
86
- * @type {?}
87
- */
88
- AdvancedAggregatorListComponent.prototype.config;
89
- /**
90
- * \@property {Array<Array<any>>} body The list of data entries to show as the list body
91
- * @type {?}
92
- */
93
- AdvancedAggregatorListComponent.prototype.body;
94
- /** @type {?} */
95
- AdvancedAggregatorListComponent.prototype.detailTemplate;
96
- /** @type {?} */
97
- AdvancedAggregatorListComponent.prototype.clickEvent;
98
- /** @type {?} */
99
- AdvancedAggregatorListComponent.prototype._template;
100
- }
101
-
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7OztJQUc5QyxJQUFJLElBQUk7SUFDUixJQUFJLElBQUk7SUFDUixJQUFJLElBQUk7SUFDUixJQUFJLElBQUk7SUFDUixJQUFJLElBQUk7OztJQXdCUix5Q0FBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYzswQkFGcEIsSUFBSSxZQUFZLEVBQUU7S0FFTzs7OztJQUVoRCxrREFBUTs7O0lBQVI7UUFBQSxpQkFLQztRQUpDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUM7WUFDM0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLDBCQUF3QixDQUFDLENBQUMsTUFBTSxZQUFTLEVBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQztnQkFDOUgsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBRTtTQUM1RCxDQUFDLENBQUM7S0FDSjtJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7OztJQUNILHNEQUFZOzs7Ozs7OztJQUFaLFVBQWEsSUFBWSxFQUFFLElBQVM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFBO1lBQ0osSUFBSSxNQUFBO1NBQ0wsQ0FBQyxDQUFDO0tBQ0o7O2dCQTFDRixTQUFTLFNBQUM7O29CQUVULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLDhvT0FBd0Q7aUJBQ3pEOzs7O2dCQWZRLFlBQVk7Ozt5QkFxQmxCLEtBQUs7dUJBS0wsS0FBSztpQ0FDTCxLQUFLLFNBQUMsZ0JBQWdCOzZCQUV0QixNQUFNOzswQ0E5QlQ7O1NBaUJhLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBpcGV9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuZW51bSBMZW5ndGhzIHtcbiAgWEw9ICd4bCcsXG4gIExHPSAnbGcnLFxuICBNRD0gJ21kJyxcbiAgU009ICdzbScsXG4gIFhTPSAneHMnXG59XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZWQtYWdncmVnYXRvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRBZ2dyZWdhdG9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSB7QWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnfSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIHVzZVxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXk8QXJyYXk8YW55Pj59IGJvZHkgVGhlIGxpc3Qgb2YgZGF0YSBlbnRyaWVzIHRvIHNob3cgYXMgdGhlIGxpc3QgYm9keVxuICAgKi9cbiAgQElucHV0KCkgYm9keTtcbiAgQElucHV0KCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVQaXBlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goeCA9PiB7XG4gICAgICB4Lmxlbmd0aCA9IE9iamVjdC52YWx1ZXMoTGVuZ3RocykuaW5jbHVkZXMoeC5sZW5ndGgpID8gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKGBzaXMtLWxpc3QtZ3JvdXAtaXRlbV8ke3gubGVuZ3RofV9jb2x1bW5gLCB4ICkgOlxuICAgICAgICAheC5sZW5ndGggPyAnc2lzLS1saXN0LWdyb3VwLWl0ZW1fc21fY29sdW1uJyA6IHgubGVuZ3RoIDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUcmlnZ2VycyB0aGUgb3V0cHV0IGV2ZW50IGVtaXR0ZXJcbiAgICpcbiAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGV2ZW50IGFzIGl0J3MgZGVjbGFyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGl0ZW0gVGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGl0ZW1cbiAgICogfVxuICAgKi9cbiAgY2FsbENhbGxiYWNrKHR5cGU6IHN0cmluZywgZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgdHlwZSxcbiAgICAgIGRhdGFcbiAgICB9KTtcbiAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxJQUFLLE9BTUo7QUFORCxXQUFLLE9BQU87SUFDVixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtJQUNSLG9CQUFRLENBQUE7SUFDUixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtBQUNWLENBQUMsRUFOSSxPQUFPLEtBQVAsT0FBTyxRQU1YO0FBUUQ7SUFlRSx5Q0FBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUZqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVLLENBQUM7SUFFaEQsa0RBQVEsR0FBUjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQztZQUMzQixDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsMEJBQXdCLENBQUMsQ0FBQyxNQUFNLFlBQVMsRUFBRSxDQUFDLENBQUUsQ0FBQyxDQUFDO2dCQUM5SCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFFO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxzREFBWSxHQUFaLFVBQWEsSUFBWSxFQUFFLElBQVM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxNQUFBO1lBQ0osSUFBSSxNQUFBO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0JBdEI4QixZQUFZOztJQVZsQztRQUFSLEtBQUssRUFBRTttRUFBYTtJQUtaO1FBQVIsS0FBSyxFQUFFO2lFQUFNO0lBQ1c7UUFBeEIsS0FBSyxDQUFDLGdCQUFnQixDQUFDOzJFQUFtQztJQUVqRDtRQUFULE1BQU0sRUFBRTt1RUFBaUM7SUFiL0IsK0JBQStCO1FBTDNDLFNBQVMsQ0FBQztZQUNULDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsOEJBQThCO1lBQ3hDLDhvT0FBd0Q7U0FDekQsQ0FBQztPQUNXLCtCQUErQixDQXNDM0M7SUFBRCxzQ0FBQztDQUFBLEFBdENELElBc0NDO1NBdENZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBpcGV9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuZW51bSBMZW5ndGhzIHtcbiAgWEw9ICd4bCcsXG4gIExHPSAnbGcnLFxuICBNRD0gJ21kJyxcbiAgU009ICdzbScsXG4gIFhTPSAneHMnXG59XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZWQtYWdncmVnYXRvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRBZ2dyZWdhdG9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSB7QWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnfSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIHVzZVxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXk8QXJyYXk8YW55Pj59IGJvZHkgVGhlIGxpc3Qgb2YgZGF0YSBlbnRyaWVzIHRvIHNob3cgYXMgdGhlIGxpc3QgYm9keVxuICAgKi9cbiAgQElucHV0KCkgYm9keTtcbiAgQElucHV0KCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVQaXBlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goeCA9PiB7XG4gICAgICB4Lmxlbmd0aCA9IE9iamVjdC52YWx1ZXMoTGVuZ3RocykuaW5jbHVkZXMoeC5sZW5ndGgpID8gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKGBzaXMtLWxpc3QtZ3JvdXAtaXRlbV8ke3gubGVuZ3RofV9jb2x1bW5gLCB4ICkgOlxuICAgICAgICAheC5sZW5ndGggPyAnc2lzLS1saXN0LWdyb3VwLWl0ZW1fc21fY29sdW1uJyA6IHgubGVuZ3RoIDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUcmlnZ2VycyB0aGUgb3V0cHV0IGV2ZW50IGVtaXR0ZXJcbiAgICpcbiAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGV2ZW50IGFzIGl0J3MgZGVjbGFyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGl0ZW0gVGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGl0ZW1cbiAgICogfVxuICAgKi9cbiAgY2FsbENhbGxiYWNrKHR5cGU6IHN0cmluZywgZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgdHlwZSxcbiAgICAgIGRhdGFcbiAgICB9KTtcbiAgfVxufVxuIl19