@seniorsistemas/exclusion-process-component 0.0.1-c049d10c-e93a-4d63-9c2a-b17bca40c324 → 0.2.0

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 (50) hide show
  1. package/bundles/seniorsistemas-exclusion-process-component.umd.js +662 -33
  2. package/bundles/seniorsistemas-exclusion-process-component.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-exclusion-process-component.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-exclusion-process-component.umd.min.js.map +1 -1
  5. package/esm2015/exclusion-details/exclusion-details.component.js +99 -12
  6. package/esm2015/exclusion-details/exclusion-details.module.js +4 -3
  7. package/esm2015/exclusion-details/protocols/exclusion-process-status-changed.js +1 -0
  8. package/esm2015/exclusion-details/protocols/show-details-information.js +1 -1
  9. package/esm2015/exclusion-details/protocols/web-socket-event-data.js +1 -0
  10. package/esm2015/exclusions-list/exclusions-list.component.js +358 -0
  11. package/esm2015/exclusions-list/exclusions-list.module.js +47 -0
  12. package/esm2015/exclusions-list/exclusions-list.routing.js +115 -0
  13. package/esm2015/exclusions-list/index.js +4 -0
  14. package/esm2015/public-api.js +2 -1
  15. package/esm2015/seniorsistemas-exclusion-process-component.js +4 -2
  16. package/esm2015/services/filter.service.js +4 -1
  17. package/esm2015/services/index.js +2 -0
  18. package/esm2015/services/logical-delete.service.js +33 -19
  19. package/esm5/exclusion-details/exclusion-details.component.js +104 -12
  20. package/esm5/exclusion-details/exclusion-details.module.js +4 -3
  21. package/esm5/exclusion-details/protocols/exclusion-process-status-changed.js +1 -0
  22. package/esm5/exclusion-details/protocols/show-details-information.js +1 -1
  23. package/esm5/exclusion-details/protocols/web-socket-event-data.js +1 -0
  24. package/esm5/exclusions-list/exclusions-list.component.js +373 -0
  25. package/esm5/exclusions-list/exclusions-list.module.js +50 -0
  26. package/esm5/exclusions-list/exclusions-list.routing.js +127 -0
  27. package/esm5/exclusions-list/index.js +4 -0
  28. package/esm5/public-api.js +2 -1
  29. package/esm5/seniorsistemas-exclusion-process-component.js +4 -2
  30. package/esm5/services/filter.service.js +4 -1
  31. package/esm5/services/index.js +2 -0
  32. package/esm5/services/logical-delete.service.js +36 -20
  33. package/exclusion-details/exclusion-details.component.d.ts +13 -1
  34. package/exclusion-details/protocols/exclusion-process-status-changed.d.ts +8 -0
  35. package/exclusion-details/protocols/show-details-information.d.ts +2 -1
  36. package/exclusion-details/protocols/web-socket-event-data.d.ts +6 -0
  37. package/exclusions-list/exclusions-list.component.d.ts +70 -0
  38. package/exclusions-list/exclusions-list.module.d.ts +2 -0
  39. package/exclusions-list/exclusions-list.routing.d.ts +29 -0
  40. package/exclusions-list/index.d.ts +3 -0
  41. package/fesm2015/seniorsistemas-exclusion-process-component.js +619 -33
  42. package/fesm2015/seniorsistemas-exclusion-process-component.js.map +1 -1
  43. package/fesm5/seniorsistemas-exclusion-process-component.js +657 -34
  44. package/fesm5/seniorsistemas-exclusion-process-component.js.map +1 -1
  45. package/package.json +14 -6
  46. package/public-api.d.ts +1 -0
  47. package/seniorsistemas-exclusion-process-component.d.ts +3 -1
  48. package/seniorsistemas-exclusion-process-component.metadata.json +1 -1
  49. package/services/index.d.ts +1 -0
  50. package/services/logical-delete.service.d.ts +5 -3
@@ -4,4 +4,4 @@ var ShowDetailsInformation = /** @class */ (function () {
4
4
  return ShowDetailsInformation;
5
5
  }());
6
6
  export { ShowDetailsInformation };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLWluZm9ybWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL3Byb3RvY29scy9zaG93LWRldGFpbHMtaW5mb3JtYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtJQUlBLENBQUM7SUFBRCw2QkFBQztBQUFELENBQUMsQUFKRCxJQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNob3dEZXRhaWxzSW5mb3JtYXRpb24ge1xuICAgIHJlY29yZElkOiBzdHJpbmc7XG4gICAgZW50aXR5TmFtZTogc3RyaW5nO1xuICAgIGVudGl0eURlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLWluZm9ybWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL3Byb3RvY29scy9zaG93LWRldGFpbHMtaW5mb3JtYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtJQUtBLENBQUM7SUFBRCw2QkFBQztBQUFELENBQUMsQUFMRCxJQUtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNob3dEZXRhaWxzSW5mb3JtYXRpb24ge1xuICAgIHJlY29yZElkPzogc3RyaW5nO1xuICAgIHByb2Nlc3NJZD86IHN0cmluZztcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gICAgZW50aXR5RGVzY3JpcHRpb246IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC1ldmVudC1kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL3Byb3RvY29scy93ZWItc29ja2V0LWV2ZW50LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgV2Vic29ja2V0RXZlbnREYXRhPFQ+IHtcbiAgICBkb21haW46IHN0cmluZztcbiAgICBwcmltaXRpdmU6IHN0cmluZztcbiAgICBzZXJ2aWNlOiBzdHJpbmc7XG4gICAgZGF0YTogVDtcbn1cbiJdfQ==
@@ -0,0 +1,373 @@
1
+ import { __assign, __decorate, __read, __spread } from "tslib";
2
+ import * as moment from "moment";
3
+ import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from "@angular/core";
4
+ import { FormBuilder, FormGroup, Validators } from "@angular/forms";
5
+ import { TranslateService } from "@ngx-translate/core";
6
+ import { Subject } from "rxjs";
7
+ import { catchError, finalize, takeUntil } from "rxjs/operators";
8
+ import { EnumBadgeColors, EnumColumnFieldType, FieldType, FormField } from "@seniorsistemas/angular-components";
9
+ import { EnumExclusionProcessStatus } from "../enums/enum-exclusion-process-status";
10
+ import { LogicalDeleteService } from "../services";
11
+ import { ActivatedRoute } from "@angular/router";
12
+ import { LogicalDeleteConfigService } from "../services/logical-delete-config.service";
13
+ import { ExclusionDetailsComponent } from "../exclusion-details";
14
+ import { FilterService } from "../services/filter.service";
15
+ var HTTP_CODE_SERVER_ERROR_START = 500;
16
+ var HTTP_CODE_SERVER_ERROR_END = 600;
17
+ var ExclusionsListComponent = /** @class */ (function () {
18
+ function ExclusionsListComponent(route, translate, formBuilder, changeDetectorRef, logicalDeleteService, filterService, projectConfigs) {
19
+ this.route = route;
20
+ this.translate = translate;
21
+ this.formBuilder = formBuilder;
22
+ this.changeDetectorRef = changeDetectorRef;
23
+ this.logicalDeleteService = logicalDeleteService;
24
+ this.filterService = filterService;
25
+ this.projectConfigs = projectConfigs;
26
+ this.currentListParams = { page: 0, size: 10, sort: [], filterData: {} };
27
+ this.showLoader = false;
28
+ this.totalRecords = 0;
29
+ this.filtersPanelCollapsed = true;
30
+ this.searchTokens = [];
31
+ this.serverError = false;
32
+ this.ngUnsubscribe = new Subject();
33
+ }
34
+ ExclusionsListComponent_1 = ExclusionsListComponent;
35
+ ExclusionsListComponent.prototype.ngOnInit = function () {
36
+ var _this = this;
37
+ this.filterFormGroup = this.getFormBuilder();
38
+ this.filterFields = this.getFilterFields();
39
+ this.gridColumns = this.getGridColumns();
40
+ this.route.data
41
+ .pipe(takeUntil(this.ngUnsubscribe))
42
+ .subscribe(function (data) {
43
+ _this.locale = data.localeConfig;
44
+ });
45
+ this.route.params
46
+ .pipe(takeUntil(this.ngUnsubscribe))
47
+ .subscribe(function (params) {
48
+ _this.entityName = params.entityName;
49
+ _this.showBasedOnRoute();
50
+ });
51
+ this.route.queryParams
52
+ .pipe(takeUntil(this.ngUnsubscribe))
53
+ .subscribe(function (queryParams) {
54
+ _this.entityDescription = queryParams.entityDescription;
55
+ _this.processId = queryParams.processId;
56
+ _this.showBasedOnRoute();
57
+ });
58
+ };
59
+ ExclusionsListComponent.prototype.showBasedOnRoute = function () {
60
+ if (this.entityName && this.entityDescription && this.processId) {
61
+ this.exclusionDetailsComponent.showDetails({
62
+ processId: this.processId,
63
+ entityDescription: this.entityDescription,
64
+ entityName: this.entityName
65
+ });
66
+ }
67
+ };
68
+ ExclusionsListComponent.prototype.ngOnDestroy = function () {
69
+ this.ngUnsubscribe.next();
70
+ this.ngUnsubscribe.complete();
71
+ };
72
+ ExclusionsListComponent.prototype.getFormBuilder = function () {
73
+ return this.formBuilder.group({
74
+ description: [undefined, Validators.compose([])],
75
+ status: [undefined, Validators.compose([])],
76
+ startDate: [{ value: undefined, disabled: false }, Validators.compose([])],
77
+ endDate: [{ value: undefined, disabled: false }, Validators.compose([])]
78
+ });
79
+ };
80
+ ExclusionsListComponent.prototype.getGridColumns = function () {
81
+ return [
82
+ {
83
+ field: "description",
84
+ attributes: ["description"],
85
+ header: this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_description"),
86
+ type: EnumColumnFieldType.STRING,
87
+ style: {
88
+ width: "300px"
89
+ }
90
+ },
91
+ {
92
+ field: "status",
93
+ attributes: ["status"],
94
+ header: this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_status"),
95
+ type: EnumColumnFieldType.ENUM,
96
+ enumPrefix: this.projectConfigs.getTranslationPrefix() + ".logical_delete_enum_exclusion_process_status_",
97
+ style: {
98
+ width: "100px"
99
+ },
100
+ tooltip: this.getColumnStatusTooltip,
101
+ badgeConfigs: [
102
+ {
103
+ enumValue: EnumExclusionProcessStatus.ERROR,
104
+ color: EnumBadgeColors.RED
105
+ },
106
+ {
107
+ enumValue: EnumExclusionProcessStatus.PENDING,
108
+ color: EnumBadgeColors.YELLOW
109
+ },
110
+ {
111
+ enumValue: EnumExclusionProcessStatus.PROCESSING,
112
+ color: EnumBadgeColors.BLUE
113
+ },
114
+ {
115
+ enumValue: EnumExclusionProcessStatus.SUCCESS,
116
+ color: EnumBadgeColors.GREEN
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ field: "startDate",
122
+ attributes: ["startDate"],
123
+ header: this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_start"),
124
+ type: EnumColumnFieldType.DATE,
125
+ dateFormat: "DD/MM/YYYY HH:mm:ss",
126
+ style: {
127
+ width: "100px"
128
+ }
129
+ },
130
+ {
131
+ field: "finishDate",
132
+ attributes: ["finishDate"],
133
+ header: this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_finish"),
134
+ type: EnumColumnFieldType.DATE,
135
+ dateFormat: "DD/MM/YYYY HH:mm:ss",
136
+ style: {
137
+ width: "100px"
138
+ }
139
+ }
140
+ ];
141
+ };
142
+ ExclusionsListComponent.prototype.getColumnStatusTooltip = function (rowValue) {
143
+ if (rowValue.errorMessage) {
144
+ return rowValue.errorMessage;
145
+ }
146
+ return null;
147
+ };
148
+ ExclusionsListComponent.prototype.getFilterFields = function () {
149
+ var translationPrefix = this.projectConfigs.getTranslationPrefix();
150
+ return [
151
+ new FormField({
152
+ type: FieldType.String,
153
+ name: "description",
154
+ label: this.translate.instant(translationPrefix + ".logical_delete_description")
155
+ }),
156
+ new FormField({
157
+ type: FieldType.Enum,
158
+ name: "status",
159
+ label: this.translate.instant(translationPrefix + ".logical_delete_status"),
160
+ placeholder: this.translate.instant(translationPrefix + ".logical_delete_status"),
161
+ multiple: true,
162
+ options: [
163
+ {
164
+ label: this.translate.instant(translationPrefix + ".logical_delete_enum_exclusion_process_status_error"),
165
+ value: EnumExclusionProcessStatus.ERROR
166
+ },
167
+ {
168
+ label: this.translate.instant(translationPrefix + ".logical_delete_enum_exclusion_process_status_pending"),
169
+ value: EnumExclusionProcessStatus.PENDING
170
+ },
171
+ {
172
+ label: this.translate.instant(translationPrefix + ".logical_delete_enum_exclusion_process_status_processing"),
173
+ value: EnumExclusionProcessStatus.PROCESSING
174
+ },
175
+ {
176
+ label: this.translate.instant(translationPrefix + ".logical_delete_enum_exclusion_process_status_success"),
177
+ value: EnumExclusionProcessStatus.SUCCESS
178
+ }
179
+ ]
180
+ }),
181
+ new FormField({
182
+ type: FieldType.Date,
183
+ name: "startDate",
184
+ label: this.translate.instant(translationPrefix + ".logical_delete_start")
185
+ }),
186
+ new FormField({
187
+ type: FieldType.Date,
188
+ name: "endDate",
189
+ label: this.translate.instant(translationPrefix + ".logical_delete_finish")
190
+ })
191
+ ];
192
+ };
193
+ ExclusionsListComponent.prototype.getEmptyStateTitle = function () {
194
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_empty_state_title");
195
+ };
196
+ ExclusionsListComponent.prototype.getEmptyStateDescription = function () {
197
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_empty_state_description");
198
+ };
199
+ ExclusionsListComponent.prototype.getTitle = function () {
200
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_list_title");
201
+ };
202
+ ExclusionsListComponent.prototype.getDetailsButtonTitle = function () {
203
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".logical_delete_details");
204
+ };
205
+ ExclusionsListComponent.prototype.getFiltersTitle = function () {
206
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".filters");
207
+ };
208
+ ExclusionsListComponent.prototype.getFilterButtonTitle = function () {
209
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".filter");
210
+ };
211
+ ExclusionsListComponent.prototype.getClearButtonTitle = function () {
212
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".clear");
213
+ };
214
+ ExclusionsListComponent.prototype.getErrorInvalid = function () {
215
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".error_invalid");
216
+ };
217
+ ExclusionsListComponent.prototype.getErrorServerTitle = function () {
218
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".error_server_title");
219
+ };
220
+ ExclusionsListComponent.prototype.getErrorServerDescription = function () {
221
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".error_server_description");
222
+ };
223
+ ExclusionsListComponent.prototype.getActionsColumnLabel = function () {
224
+ return this.translate.instant(this.projectConfigs.getTranslationPrefix() + ".actions");
225
+ };
226
+ ExclusionsListComponent.prototype.onSearch = function () {
227
+ var filterData = this.filterFormGroup.getRawValue();
228
+ this.filtersPanelCollapsed = true;
229
+ this.resetGrid({ filterData: filterData });
230
+ };
231
+ ExclusionsListComponent.prototype.onClear = function () {
232
+ this.filterFormGroup.reset();
233
+ var filterData = this.filterFormGroup.getRawValue();
234
+ this.resetGrid({ filterData: filterData });
235
+ };
236
+ ExclusionsListComponent.prototype.onRemoveToken = function (token) {
237
+ this.filterFormGroup.get(token.id).setValue(undefined);
238
+ var filterData = this.filterFormGroup.getRawValue();
239
+ this.resetGrid({ filterData: filterData });
240
+ };
241
+ ExclusionsListComponent.prototype.onGridChange = function (event) {
242
+ var size = event.rows;
243
+ var page = event.first / size;
244
+ var sort = event.multiSortMeta ? event.multiSortMeta : [];
245
+ return this.updateGrid({ page: page, size: size, sort: sort });
246
+ };
247
+ ExclusionsListComponent.prototype.getFilterTokens = function () {
248
+ var _this = this;
249
+ var filterData = this.filterFormGroup.value;
250
+ return this.filterFields
251
+ .filter(function (_a) {
252
+ var name = _a.name;
253
+ return filterData[name] !== undefined && filterData[name] !== "" && filterData[name] !== null;
254
+ })
255
+ .map(function (formField) { return _this.filterService.createFilterTokens(formField, filterData[formField.name]); });
256
+ };
257
+ ExclusionsListComponent.prototype.getFilterQuery = function () {
258
+ var _this = this;
259
+ var filterData = this.currentListParams.filterData;
260
+ var dateFields = ["startDate", "endDate"];
261
+ var filterQuery = this.filterFields
262
+ .filter(function (_a) {
263
+ var name = _a.name;
264
+ return !dateFields.includes(name);
265
+ })
266
+ .filter(function (_a) {
267
+ var name = _a.name;
268
+ return filterData[name] !== undefined && filterData[name] !== "" && filterData[name] !== null;
269
+ })
270
+ .map(function (formField) { return _this.filterService.createFilterString(formField, filterData[formField.name]); })
271
+ .join(" and ");
272
+ var dateQuery;
273
+ if (filterData.startDate && filterData.endDate) {
274
+ var startDate = moment(filterData.startDate).format(ExclusionsListComponent_1.DATE_FORMAT);
275
+ var endDate = moment(filterData.endDate).format(ExclusionsListComponent_1.DATE_FORMAT);
276
+ dateQuery = "startDate between '" + startDate + "T00:00:00Z' and '" + endDate + "T23:59:59Z'";
277
+ }
278
+ else if (filterData.startDate) {
279
+ var startDate = moment(filterData.startDate).format(ExclusionsListComponent_1.DATE_FORMAT);
280
+ dateQuery = "startDate >= '" + startDate + "T00:00:00Z'";
281
+ }
282
+ else if (filterData.endDate) {
283
+ var endDate = moment(filterData.endDate).format(ExclusionsListComponent_1.DATE_FORMAT);
284
+ dateQuery = "finishDate <= '" + endDate + "T23:59:59Z'";
285
+ }
286
+ else {
287
+ // Não é necessário nenhuma condição a mais no filtro.
288
+ }
289
+ if (dateQuery) {
290
+ filterQuery += filterQuery ? " and " + dateQuery : dateQuery;
291
+ }
292
+ return filterQuery;
293
+ };
294
+ ExclusionsListComponent.prototype.updateGrid = function (listParams) {
295
+ if (listParams === void 0) { listParams = {}; }
296
+ this.currentListParams = __assign(__assign({}, this.currentListParams), listParams);
297
+ var _a = this.currentListParams, page = _a.page, size = _a.size, sort = _a.sort;
298
+ this.searchTokens = this.getFilterTokens();
299
+ var filterQuery = this.getFilterQuery();
300
+ var displayFields = __spread([
301
+ "recordId",
302
+ "errorMessage"
303
+ ], this.gridColumns.map(function (column) { return column.field; }));
304
+ if (!sort.length) {
305
+ sort.push({ field: 'startDate', order: -1 });
306
+ }
307
+ this.listExclusions({ page: page, size: size, sort: sort, filterQuery: filterQuery, displayFields: displayFields });
308
+ };
309
+ ExclusionsListComponent.prototype.listExclusions = function (params) {
310
+ var _this = this;
311
+ this.showLoader = true;
312
+ this.serverError = false;
313
+ this.changeDetectorRef.detectChanges();
314
+ this.logicalDeleteService
315
+ .listExclusions(this.entityName, params)
316
+ .pipe(takeUntil(this.ngUnsubscribe), catchError(function (err) {
317
+ if (err.status >= HTTP_CODE_SERVER_ERROR_START && err.status < HTTP_CODE_SERVER_ERROR_END) {
318
+ _this.serverError = true;
319
+ }
320
+ throw err;
321
+ }), finalize(function () { return _this.showLoader = false; }))
322
+ .subscribe(function (list) {
323
+ _this.gridData = list.contents;
324
+ _this.totalRecords = list.totalElements;
325
+ });
326
+ };
327
+ ExclusionsListComponent.prototype.focusInput = function (elementId) {
328
+ var element = document.getElementById("" + elementId);
329
+ if (element) {
330
+ element.focus();
331
+ }
332
+ };
333
+ ExclusionsListComponent.prototype.resetGrid = function (listParams) {
334
+ if (listParams) {
335
+ this.currentListParams = __assign(__assign({}, this.currentListParams), listParams);
336
+ }
337
+ this.currentListParams = __assign(__assign({}, this.currentListParams), { page: 0, sort: [] });
338
+ this.table.reset();
339
+ };
340
+ ExclusionsListComponent.prototype.onClickDetails = function (rowData) {
341
+ this.exclusionDetailsComponent.showDetails({
342
+ processId: rowData.id,
343
+ entityDescription: this.entityDescription,
344
+ entityName: this.entityName
345
+ });
346
+ };
347
+ var ExclusionsListComponent_1;
348
+ ExclusionsListComponent.DATE_FORMAT = "YYYY-MM-DD";
349
+ ExclusionsListComponent.ctorParameters = function () { return [
350
+ { type: ActivatedRoute },
351
+ { type: TranslateService },
352
+ { type: FormBuilder },
353
+ { type: ChangeDetectorRef },
354
+ { type: LogicalDeleteService },
355
+ { type: FilterService },
356
+ { type: LogicalDeleteConfigService }
357
+ ]; };
358
+ __decorate([
359
+ ViewChild("exclusionsTable")
360
+ ], ExclusionsListComponent.prototype, "table", void 0);
361
+ __decorate([
362
+ ViewChild(ExclusionDetailsComponent)
363
+ ], ExclusionsListComponent.prototype, "exclusionDetailsComponent", void 0);
364
+ ExclusionsListComponent = ExclusionsListComponent_1 = __decorate([
365
+ Component({
366
+ template: "<div>\n <form [formGroup]=\"filterFormGroup\" autocomplete=\"off\">\n <p-panel\n *sLoadingState=\"showLoader\"\n styleClass=\"form-group\"\n [toggleable]=\"true\"\n [(collapsed)]=\"filtersPanelCollapsed\"\n (onAfterToggle)=\"focusInput('description')\"\n >\n <p-header>\n {{ getFiltersTitle() }}\n <s-token-list\n [tokens]=\"searchTokens\"\n (tokenRemoved)=\"onRemoveToken($event)\"\n [removableTokens]=\"true\"\n ></s-token-list>\n </p-header>\n <div>\n <s-dynamic-form\n [fields]=\"filterFields\"\n [form]=\"filterFormGroup\"\n [errorMessages]=\"{ pattern: getErrorInvalid() }\"\n ></s-dynamic-form>\n </div>\n <p-footer>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <button\n id=\"filter-button\"\n class=\"ui-button\"\n type=\"submit\"\n pButton\n [label]=\"getFilterButtonTitle()\"\n (click)=\"onSearch()\"\n ></button>\n <button\n id=\"clear-button\"\n class=\"ui-button ui-button-link\"\n type=\"button\"\n pButton\n [label]=\"getClearButtonTitle()\"\n (click)=\"onClear()\"\n ></button>\n </div>\n </div>\n </p-footer>\n </p-panel>\n </form>\n <p-panel *sLoadingState=\"showLoader\">\n <p-header>\n {{ getTitle() }}\n </p-header>\n <ng-container>\n <s-empty-state\n *ngIf=\"serverError && !showLoader\"\n iconClass=\"fa fa-exclamation-triangle\"\n title=\"{{ getErrorServerTitle() | translate }}\"\n primaryActionLabel=\"{{ 'error_server_try_again' | translate }}\"\n (primaryAction)=\"resetGrid()\"\n description=\"{{ getErrorServerDescription() | translate }}\"\n ></s-empty-state>\n\n <s-empty-state\n *ngIf=\"!showLoader && !serverError && totalRecords === 0\"\n [title]=\"getEmptyStateTitle()\"\n [showPrimaryAction]=\"false\"\n [description]=\"getEmptyStateDescription()\"\n ></s-empty-state>\n\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <p-table\n #exclusionsTable\n id=\"exclusionsTable\"\n [hidden]=\"totalRecords === 0 || serverError\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [resizableColumns]=\"true\"\n sortMode=\"multiple\"\n [paginator]=\"true\"\n [totalRecords]=\"totalRecords\"\n [rows]=\"10\"\n sortField=\"startDate\"\n sortOrder=\"-1\"\n rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n (onLazyLoad)=\"onGridChange($event)\"\n >\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col\n *ngFor=\"let col of columns\"\n [style.width]=\"col.width\"\n />\n </colgroup>\n </ng-template>\n\n <ng-template\n pTemplate=\"header\"\n let-columns\n >\n <tr>\n <th *ngFor=\"let col of columns\"\n [id]=\"col.field\"\n [pSortableColumn]=\"col.field\"\n [ngStyle]=\"col.style\"\n pResizableColumn\n >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">\n {{ col.header }}\n </span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n <th id=\"action-column\" style=\"width: 100px\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ getActionsColumnLabel() }}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n <s-table-columns\n [columns]=\"columns\"\n [rowValue]=\"rowData\"\n [locale]=\"locale\">\n </s-table-columns>\n <td style=\"width: 100px\">\n <s-button\n id=\"details-button\"\n priority=\"default\"\n [label]=\"getDetailsButtonTitle()\"\n [auxiliary]=\"true\"\n (onClick)=\"onClickDetails(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <s-table-paging\n [table]=\"exclusionsTable\"\n [totalRecords]=\"totalRecords\"\n ></s-table-paging>\n </ng-template>\n </p-table>\n </div>\n </div>\n </ng-container>\n </p-panel>\n</div>\n\n<s-exclusion-details></s-exclusion-details>\n",
367
+ providers: []
368
+ })
369
+ ], ExclusionsListComponent);
370
+ return ExclusionsListComponent;
371
+ }());
372
+ export { ExclusionsListComponent };
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9leGNsdXNpb24tcHJvY2Vzcy1jb21wb25lbnQvIiwic291cmNlcyI6WyJleGNsdXNpb25zLWxpc3QvZXhjbHVzaW9ucy1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLFNBQVMsRUFDVCxTQUFTLEVBR1osTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxJQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FB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QyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0RBQWMsR0FBckIsVUFBc0IsT0FBeUI7UUFDM0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztZQUN2QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDckIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDOUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7SUEzWHVCLG1DQUFXLEdBQUcsWUFBWSxDQUFDOztnQkE0QnZCLGNBQWM7Z0JBQ1YsZ0JBQWdCO2dCQUNkLFdBQVc7Z0JBQ0wsaUJBQWlCO2dCQUNkLG9CQUFvQjtnQkFDM0IsYUFBYTtnQkFDWiwwQkFBMEI7O0lBZC9EO1FBREMsU0FBUyxDQUFDLGlCQUFpQixDQUFDOzBEQUNUO0lBR3BCO1FBREMsU0FBUyxDQUFDLHlCQUF5QixDQUFDOzhFQUN1QjtJQXpCbkQsdUJBQXVCO1FBTG5DLFNBQVMsQ0FBQztZQUNQLDQ5TkFBK0M7WUFFL0MsU0FBUyxFQUFFLEVBQUU7U0FDaEIsQ0FBQztPQUNXLHVCQUF1QixDQThYbkM7SUFBRCw4QkFBQztDQUFBLEFBOVhELElBOFhDO1NBOVhZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge1xuICAgIEVudW1CYWRnZUNvbG9ycyxcbiAgICBFbnVtQ29sdW1uRmllbGRUeXBlLFxuICAgIEZpZWxkVHlwZSxcbiAgICBGb3JtRmllbGQsXG4gICAgSVRva2VuLFxuICAgIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9uc1xufSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMgfSBmcm9tIFwiLi4vZW51bXMvZW51bS1leGNsdXNpb24tcHJvY2Vzcy1zdGF0dXNcIjtcbmltcG9ydCB7IEV4Y2x1c2lvblByb2Nlc3MgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBMb2dpY2FsRGVsZXRlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBMaXN0UGFyYW1zIH0gZnJvbSBcIi4uL21vZGVscy9saXN0LXBhcmFtc1wiO1xuaW1wb3J0IHsgTG9naWNhbERlbGV0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbG9naWNhbC1kZWxldGUtY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCB7IEV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQgfSBmcm9tIFwiLi4vZXhjbHVzaW9uLWRldGFpbHNcIjtcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZmlsdGVyLnNlcnZpY2VcIjtcblxuY29uc3QgSFRUUF9DT0RFX1NFUlZFUl9FUlJPUl9TVEFSVCA9IDUwMDtcbmNvbnN0IEhUVFBfQ09ERV9TRVJWRVJfRVJST1JfRU5EID0gNjAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V4Y2x1c2lvbnMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW10sXG4gICAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBFeGNsdXNpb25zTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95ICB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBEQVRFX0ZPUk1BVCA9IFwiWVlZWS1NTS1ERFwiO1xuXG4gICAgcHVibGljIGxvY2FsZSE6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucztcbiAgICBwdWJsaWMgZW50aXR5TmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBlbnRpdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBwcm9jZXNzSWQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBjdXJyZW50TGlzdFBhcmFtczogTGlzdFBhcmFtcyA9IHsgcGFnZTogMCwgc2l6ZTogMTAsIHNvcnQ6IFtdLCBmaWx0ZXJEYXRhOiB7fSB9O1xuICAgIHB1YmxpYyBncmlkRGF0YTogRXhjbHVzaW9uUHJvY2Vzc1tdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W107XG4gICAgcHVibGljIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgdG90YWxSZWNvcmRzID0gMDtcblxuICAgIHB1YmxpYyBmaWx0ZXJGaWVsZHM6IEZvcm1GaWVsZFtdO1xuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgZmlsdGVyc1BhbmVsQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICBwdWJsaWMgc2VhcmNoVG9rZW5zOiBJVG9rZW5bXSA9IFtdO1xuICAgIHB1YmxpYyBzZXJ2ZXJFcnJvciA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZChcImV4Y2x1c2lvbnNUYWJsZVwiKVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKEV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQpXG4gICAgcHVibGljIGV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQ6IEV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2ljYWxEZWxldGVTZXJ2aWNlOiBMb2dpY2FsRGVsZXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb2plY3RDb25maWdzOiBMb2dpY2FsRGVsZXRlQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmdldEZvcm1CdWlsZGVyKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyRmllbGRzID0gdGhpcy5nZXRGaWx0ZXJGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbnMoKTtcblxuICAgICAgICB0aGlzLnJvdXRlLmRhdGFcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogeyBbY29uZmlnczogc3RyaW5nXTogYW55LCBsb2NhbGVDb25maWc6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBkYXRhLmxvY2FsZUNvbmZpZztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5TmFtZSA9IHBhcmFtcy5lbnRpdHlOYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Jhc2VkT25Sb3V0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocXVlcnlQYXJhbXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXR5RGVzY3JpcHRpb24gPSBxdWVyeVBhcmFtcy5lbnRpdHlEZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NJZCA9IHF1ZXJ5UGFyYW1zLnByb2Nlc3NJZDtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYXNlZE9uUm91dGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd0Jhc2VkT25Sb3V0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5TmFtZSAmJiB0aGlzLmVudGl0eURlc2NyaXB0aW9uICYmIHRoaXMucHJvY2Vzc0lkKSB7XG4gICAgICAgICAgICB0aGlzLmV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQuc2hvd0RldGFpbHMoe1xuICAgICAgICAgICAgICAgIHByb2Nlc3NJZDogdGhpcy5wcm9jZXNzSWQsXG4gICAgICAgICAgICAgICAgZW50aXR5RGVzY3JpcHRpb246IHRoaXMuZW50aXR5RGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtQnVpbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxuICAgICAgICAgICAgc3RhdHVzOiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogW3sgdmFsdWU6IHVuZGVmaW5lZCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxuICAgICAgICAgICAgZW5kRGF0ZTogW3sgdmFsdWU6IHVuZGVmaW5lZCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0R3JpZENvbHVtbnMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXCJkZXNjcmlwdGlvblwiXSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9kZXNjcmlwdGlvbmApLFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudW1Db2x1bW5GaWVsZFR5cGUuU1RSSU5HLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjMwMHB4XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcInN0YXR1c1wiLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcInN0YXR1c1wiXSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9zdGF0dXNgKSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLkVOVU0sXG4gICAgICAgICAgICAgICAgZW51bVByZWZpeDogYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9lbnVtX2V4Y2x1c2lvbl9wcm9jZXNzX3N0YXR1c19gLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMHB4XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uU3RhdHVzVG9vbHRpcCxcbiAgICAgICAgICAgICAgICBiYWRnZUNvbmZpZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlOiBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cy5FUlJPUixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBFbnVtQmFkZ2VDb2xvcnMuUkVEXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1WYWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuUEVORElORyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBFbnVtQmFkZ2VDb2xvcnMuWUVMTE9XXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1WYWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuUFJPQ0VTU0lORyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBFbnVtQmFkZ2VDb2xvcnMuQkxVRVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtVmFsdWU6IEVudW1FeGNsdXNpb25Qcm9jZXNzU3RhdHVzLlNVQ0NFU1MsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogRW51bUJhZGdlQ29sb3JzLkdSRUVOXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcInN0YXJ0RGF0ZVwiLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcInN0YXJ0RGF0ZVwiXSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9zdGFydGApLFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudW1Db2x1bW5GaWVsZFR5cGUuREFURSxcbiAgICAgICAgICAgICAgICBkYXRlRm9ybWF0OiBcIkREL01NL1lZWVkgSEg6bW06c3NcIixcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDBweFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJmaW5pc2hEYXRlXCIsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1wiZmluaXNoRGF0ZVwiXSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9maW5pc2hgKSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLkRBVEUsXG4gICAgICAgICAgICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwcHhcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblN0YXR1c1Rvb2x0aXAocm93VmFsdWU6IEV4Y2x1c2lvblByb2Nlc3MpIHtcbiAgICAgICAgaWYgKHJvd1ZhbHVlLmVycm9yTWVzc2FnZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJvd1ZhbHVlLmVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyRmllbGRzKCkge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvblByZWZpeCA9IHRoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBuYW1lOiBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dHJhbnNsYXRpb25QcmVmaXh9LmxvZ2ljYWxfZGVsZXRlX2Rlc2NyaXB0aW9uYClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGF0dXNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0cmFuc2xhdGlvblByZWZpeH0ubG9naWNhbF9kZWxldGVfc3RhdHVzYCksXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dHJhbnNsYXRpb25QcmVmaXh9LmxvZ2ljYWxfZGVsZXRlX3N0YXR1c2ApLFxuICAgICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dHJhbnNsYXRpb25QcmVmaXh9LmxvZ2ljYWxfZGVsZXRlX2VudW1fZXhjbHVzaW9uX3Byb2Nlc3Nfc3RhdHVzX2Vycm9yYCksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuRVJST1JcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dHJhbnNsYXRpb25QcmVmaXh9LmxvZ2ljYWxfZGVsZXRlX2VudW1fZXhjbHVzaW9uX3Byb2Nlc3Nfc3RhdHVzX3BlbmRpbmdgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cy5QRU5ESU5HXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RyYW5zbGF0aW9uUHJlZml4fS5sb2dpY2FsX2RlbGV0ZV9lbnVtX2V4Y2x1c2lvbl9wcm9jZXNzX3N0YXR1c19wcm9jZXNzaW5nYCksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuUFJPQ0VTU0lOR1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0cmFuc2xhdGlvblByZWZpeH0ubG9naWNhbF9kZWxldGVfZW51bV9leGNsdXNpb25fcHJvY2Vzc19zdGF0dXNfc3VjY2Vzc2ApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1FeGNsdXNpb25Qcm9jZXNzU3RhdHVzLlNVQ0NFU1NcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkRhdGUsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGFydERhdGVcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0cmFuc2xhdGlvblByZWZpeH0ubG9naWNhbF9kZWxldGVfc3RhcnRgKVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5EYXRlLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZW5kRGF0ZVwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RyYW5zbGF0aW9uUHJlZml4fS5sb2dpY2FsX2RlbGV0ZV9maW5pc2hgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RW1wdHlTdGF0ZVRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmxvZ2ljYWxfZGVsZXRlX2VtcHR5X3N0YXRlX3RpdGxlYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVtcHR5U3RhdGVEZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9lbXB0eV9zdGF0ZV9kZXNjcmlwdGlvbmApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9saXN0X3RpdGxlYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERldGFpbHNCdXR0b25UaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9kZXRhaWxzYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpbHRlcnNUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5maWx0ZXJzYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpbHRlckJ1dHRvblRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmZpbHRlcmApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDbGVhckJ1dHRvblRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmNsZWFyYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVycm9ySW52YWxpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5lcnJvcl9pbnZhbGlkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVycm9yU2VydmVyVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0uZXJyb3Jfc2VydmVyX3RpdGxlYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVycm9yU2VydmVyRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0uZXJyb3Jfc2VydmVyX2Rlc2NyaXB0aW9uYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbnNDb2x1bW5MYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5hY3Rpb25zYCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VhcmNoKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJzUGFuZWxDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc2V0R3JpZCh7IGZpbHRlckRhdGEgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICB0aGlzLnJlc2V0R3JpZCh7IGZpbHRlckRhdGEgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlVG9rZW4odG9rZW46IElUb2tlbikge1xuICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQodG9rZW4uaWQpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICB0aGlzLnJlc2V0R3JpZCh7IGZpbHRlckRhdGEgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uR3JpZENoYW5nZShldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQucm93cztcbiAgICAgICAgY29uc3QgcGFnZSA9IGV2ZW50LmZpcnN0IC8gc2l6ZTtcbiAgICAgICAgY29uc3Qgc29ydCA9IGV2ZW50Lm11bHRpU29ydE1ldGEgPyBldmVudC5tdWx0aVNvcnRNZXRhIDogW107XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUdyaWQoeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyVG9rZW5zKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRmllbGRzXG4gICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gZmlsdGVyRGF0YVtuYW1lXSAhPT0gdW5kZWZpbmVkICYmIGZpbHRlckRhdGFbbmFtZV0gIT09IFwiXCIgJiYgZmlsdGVyRGF0YVtuYW1lXSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoZm9ybUZpZWxkID0+IHRoaXMuZmlsdGVyU2VydmljZS5jcmVhdGVGaWx0ZXJUb2tlbnMoZm9ybUZpZWxkLCBmaWx0ZXJEYXRhW2Zvcm1GaWVsZC5uYW1lXSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyUXVlcnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJEYXRhIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xuICAgICAgICBjb25zdCBkYXRlRmllbGRzID0gW1wic3RhcnREYXRlXCIsIFwiZW5kRGF0ZVwiXTtcblxuICAgICAgICBsZXQgZmlsdGVyUXVlcnkgPSB0aGlzLmZpbHRlckZpZWxkc1xuICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+ICFkYXRlRmllbGRzLmluY2x1ZGVzKG5hbWUpKVxuICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IGZpbHRlckRhdGFbbmFtZV0gIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXJEYXRhW25hbWVdICE9PSBcIlwiICYmIGZpbHRlckRhdGFbbmFtZV0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKGZvcm1GaWVsZCA9PiB0aGlzLmZpbHRlclNlcnZpY2UuY3JlYXRlRmlsdGVyU3RyaW5nKGZvcm1GaWVsZCwgZmlsdGVyRGF0YVtmb3JtRmllbGQubmFtZV0pKVxuICAgICAgICAgICAgLmpvaW4oXCIgYW5kIFwiKTtcblxuICAgICAgICBsZXQgZGF0ZVF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIGlmIChmaWx0ZXJEYXRhLnN0YXJ0RGF0ZSAmJiBmaWx0ZXJEYXRhLmVuZERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXJEYXRhLnN0YXJ0RGF0ZSkuZm9ybWF0KEV4Y2x1c2lvbnNMaXN0Q29tcG9uZW50LkRBVEVfRk9STUFUKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQoZmlsdGVyRGF0YS5lbmREYXRlKS5mb3JtYXQoRXhjbHVzaW9uc0xpc3RDb21wb25lbnQuREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgZGF0ZVF1ZXJ5ID0gYHN0YXJ0RGF0ZSBiZXR3ZWVuICcke3N0YXJ0RGF0ZX1UMDA6MDA6MDBaJyBhbmQgJyR7ZW5kRGF0ZX1UMjM6NTk6NTlaJ2A7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyRGF0YS5zdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXJEYXRhLnN0YXJ0RGF0ZSkuZm9ybWF0KEV4Y2x1c2lvbnNMaXN0Q29tcG9uZW50LkRBVEVfRk9STUFUKTtcbiAgICAgICAgICAgIGRhdGVRdWVyeSA9IGBzdGFydERhdGUgPj0gJyR7c3RhcnREYXRlfVQwMDowMDowMFonYDtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJEYXRhLmVuZERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQoZmlsdGVyRGF0YS5lbmREYXRlKS5mb3JtYXQoRXhjbHVzaW9uc0xpc3RDb21wb25lbnQuREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgZGF0ZVF1ZXJ5ID0gYGZpbmlzaERhdGUgPD0gJyR7ZW5kRGF0ZX1UMjM6NTk6NTlaJ2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOw6NvIMOpIG5lY2Vzc8OhcmlvIG5lbmh1bWEgY29uZGnDp8OjbyBhIG1haXMgbm8gZmlsdHJvLlxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGVRdWVyeSkge1xuICAgICAgICAgICAgZmlsdGVyUXVlcnkgKz0gZmlsdGVyUXVlcnkgPyBgIGFuZCAke2RhdGVRdWVyeX1gIDogZGF0ZVF1ZXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlclF1ZXJ5O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlR3JpZChsaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0ge30pIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xuICAgICAgICBjb25zdCB7IHBhZ2UsIHNpemUsIHNvcnQgfSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXM7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hUb2tlbnMgPSB0aGlzLmdldEZpbHRlclRva2VucygpO1xuICAgICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMuZ2V0RmlsdGVyUXVlcnkoKTtcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkcyA9IFtcbiAgICAgICAgICAgIFwicmVjb3JkSWRcIixcbiAgICAgICAgICAgIFwiZXJyb3JNZXNzYWdlXCIsXG4gICAgICAgICAgICAuLi50aGlzLmdyaWRDb2x1bW5zLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpZWxkKVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICghc29ydC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNvcnQucHVzaCh7IGZpZWxkOiAnc3RhcnREYXRlJywgb3JkZXI6IC0xIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0RXhjbHVzaW9ucyh7IHBhZ2UsIHNpemUsIHNvcnQsIGZpbHRlclF1ZXJ5LCBkaXNwbGF5RmllbGRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RXhjbHVzaW9ucyhwYXJhbXM6IGFueSkge1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlcnZlckVycm9yID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5sb2dpY2FsRGVsZXRlU2VydmljZVxuICAgICAgICAgICAgLmxpc3RFeGNsdXNpb25zKHRoaXMuZW50aXR5TmFtZSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPj0gSFRUUF9DT0RFX1NFUlZFUl9FUlJPUl9TVEFSVCAmJiBlcnIuc3RhdHVzIDwgSFRUUF9DT0RFX1NFUlZFUl9FUlJPUl9FTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzSW5wdXQoZWxlbWVudElkOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7ZWxlbWVudElkfWApO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogTGlzdFBhcmFtcykge1xuICAgICAgICBpZiAobGlzdFBhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIHBhZ2U6IDAsIHNvcnQ6IFtdIH07XG4gICAgICAgIHRoaXMudGFibGUucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja0RldGFpbHMocm93RGF0YTogRXhjbHVzaW9uUHJvY2Vzcykge1xuICAgICAgICB0aGlzLmV4Y2x1c2lvbkRldGFpbHNDb21wb25lbnQuc2hvd0RldGFpbHMoe1xuICAgICAgICAgICAgcHJvY2Vzc0lkOiByb3dEYXRhLmlkLFxuICAgICAgICAgICAgZW50aXR5RGVzY3JpcHRpb246IHRoaXMuZW50aXR5RGVzY3JpcHRpb24sXG4gICAgICAgICAgICBlbnRpdHlOYW1lOiB0aGlzLmVudGl0eU5hbWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,50 @@
1
+ import { __decorate } from "tslib";
2
+ import { CommonModule } from "@angular/common";
3
+ import { NgModule } from "@angular/core";
4
+ import { PanelModule } from "primeng/panel";
5
+ import { TableModule as PrimeTableModule } from "primeng/table";
6
+ import { ButtonModule, LoadingStateModule, TableModule, LocaleModule, TokenListModule, DynamicFormModule, EmptyStateModule, ControlErrorsModule, InfoSignModule } from "@seniorsistemas/angular-components";
7
+ import { ExclusionsListComponent } from "./exclusions-list.component";
8
+ import { TranslateModule } from "@ngx-translate/core";
9
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
10
+ import { DialogModule } from "primeng/dialog";
11
+ import { ConfirmDialogModule } from "primeng/confirmdialog";
12
+ import { InputTextModule } from "primeng/inputtext";
13
+ import { ExclusionDetailsModule } from "../exclusion-details";
14
+ import { ExclusionsListFeatureRouting } from "./exclusions-list.routing";
15
+ var ExclusionsListModule = /** @class */ (function () {
16
+ function ExclusionsListModule() {
17
+ }
18
+ ExclusionsListModule = __decorate([
19
+ NgModule({
20
+ imports: [
21
+ FormsModule,
22
+ ReactiveFormsModule,
23
+ TranslateModule,
24
+ CommonModule,
25
+ ControlErrorsModule,
26
+ ButtonModule,
27
+ PanelModule,
28
+ InputTextModule,
29
+ InfoSignModule,
30
+ ConfirmDialogModule,
31
+ DialogModule,
32
+ PrimeTableModule,
33
+ TableModule,
34
+ LoadingStateModule,
35
+ EmptyStateModule,
36
+ DynamicFormModule,
37
+ TokenListModule,
38
+ LocaleModule.forChild(),
39
+ ExclusionDetailsModule,
40
+ ExclusionsListFeatureRouting
41
+ ],
42
+ declarations: [ExclusionsListComponent],
43
+ exports: [ExclusionsListComponent],
44
+ entryComponents: [ExclusionsListComponent]
45
+ })
46
+ ], ExclusionsListModule);
47
+ return ExclusionsListModule;
48
+ }());
49
+ export { ExclusionsListModule };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9ucy1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9leGNsdXNpb24tcHJvY2Vzcy1jb21wb25lbnQvIiwic291cmNlcyI6WyJleGNsdXNpb25zLWxpc3QvZXhjbHVzaW9ucy1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxZQUFZLEVBQ1osZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDakIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUE2QnpFO0lBQUE7SUFBbUMsQ0FBQztJQUF2QixvQkFBb0I7UUEzQmhDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxXQUFXO2dCQUNYLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZixZQUFZO2dCQUNaLG1CQUFtQjtnQkFDbkIsWUFBWTtnQkFDWixXQUFXO2dCQUNYLGVBQWU7Z0JBQ2YsY0FBYztnQkFDZCxtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osZ0JBQWdCO2dCQUNoQixXQUFXO2dCQUNYLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2YsWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsc0JBQXNCO2dCQUN0Qiw0QkFBNEI7YUFDL0I7WUFDRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztZQUNsQyxlQUFlLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztTQUM3QyxDQUFDO09BQ1csb0JBQW9CLENBQUc7SUFBRCwyQkFBQztDQUFBLEFBQXBDLElBQW9DO1NBQXZCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcGFuZWxcIjtcbmltcG9ydCB7IFRhYmxlTW9kdWxlIGFzIFByaW1lVGFibGVNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHtcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIExvY2FsZU1vZHVsZSxcbiAgICBUb2tlbkxpc3RNb2R1bGUsXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgRW1wdHlTdGF0ZU1vZHVsZSxcbiAgICBDb250cm9sRXJyb3JzTW9kdWxlLFxuICAgIEluZm9TaWduTW9kdWxlXG59IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFeGNsdXNpb25zTGlzdENvbXBvbmVudCB9IGZyb20gXCIuL2V4Y2x1c2lvbnMtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvZGlhbG9nXCI7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY29uZmlybWRpYWxvZ1wiO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvaW5wdXR0ZXh0XCI7XG5pbXBvcnQgeyBFeGNsdXNpb25EZXRhaWxzTW9kdWxlIH0gZnJvbSBcIi4uL2V4Y2x1c2lvbi1kZXRhaWxzXCI7XG5pbXBvcnQgeyBFeGNsdXNpb25zTGlzdEZlYXR1cmVSb3V0aW5nIH0gZnJvbSBcIi4vZXhjbHVzaW9ucy1saXN0LnJvdXRpbmdcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQ29udHJvbEVycm9yc01vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBQYW5lbE1vZHVsZSxcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgICAgICBJbmZvU2lnbk1vZHVsZSxcbiAgICAgICAgQ29uZmlybURpYWxvZ01vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBQcmltZVRhYmxlTW9kdWxlLFxuICAgICAgICBUYWJsZU1vZHVsZSxcbiAgICAgICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgICAgICBFbXB0eVN0YXRlTW9kdWxlLFxuICAgICAgICBEeW5hbWljRm9ybU1vZHVsZSxcbiAgICAgICAgVG9rZW5MaXN0TW9kdWxlLFxuICAgICAgICBMb2NhbGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICAgICAgRXhjbHVzaW9uRGV0YWlsc01vZHVsZSxcbiAgICAgICAgRXhjbHVzaW9uc0xpc3RGZWF0dXJlUm91dGluZ1xuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRXhjbHVzaW9uc0xpc3RDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtFeGNsdXNpb25zTGlzdENvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbRXhjbHVzaW9uc0xpc3RDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEV4Y2x1c2lvbnNMaXN0TW9kdWxlIHt9XG4iXX0=