@mediusinc/mng-commons-audit 3.0.0-rc.0 → 3.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -4
- package/assets/i18n/en.json +39 -21
- package/assets/i18n/sl.json +41 -14
- package/esm2022/lib/api/models/entityChange.mjs +9 -9
- package/esm2022/lib/api/models/guiEntityModel.mjs +9 -9
- package/esm2022/lib/api/models/guiPropertyModel.mjs +14 -9
- package/esm2022/lib/api/models/guiPropertyType.mjs +12 -12
- package/esm2022/lib/api/models/guiRelationModel.mjs +9 -9
- package/esm2022/lib/api/models/revEntityWithChangesDto.mjs +9 -9
- package/esm2022/lib/api/models/revEntityWithStateDto.mjs +9 -9
- package/esm2022/lib/api/models/revisionType.mjs +8 -8
- package/esm2022/lib/api/services/audit-revisions-api.service.mjs +42 -21
- package/esm2022/lib/api/services/audit.service.mjs +45 -0
- package/esm2022/lib/audit.routes.mjs +26 -10
- package/esm2022/lib/components/entity-changes-field/entity-changes-field.component.mjs +82 -37
- package/esm2022/lib/components/pages/audit/audit-page.component.mjs +12 -0
- package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.mjs +122 -32
- package/esm2022/lib/components/pages/revisions/audit-revisions-page.component.mjs +52 -47
- package/esm2022/lib/models/config.model.mjs +2 -0
- package/esm2022/lib/models/entity-revision-change-state.model.mjs +8 -0
- package/esm2022/lib/models/entity-revision-changes.model.mjs +8 -0
- package/esm2022/lib/models/new-filter-match-type.model.mjs +19 -0
- package/esm2022/lib/models/rev-entity-detailed.model.mjs +9 -0
- package/esm2022/lib/models/rev-entity.model.mjs +8 -0
- package/esm2022/lib/models/revEntityWithId.model.mjs +10 -0
- package/esm2022/lib/service/module-config.token.mjs +3 -0
- package/esm2022/lib/utils/audit.util.mjs +214 -0
- package/fesm2022/mediusinc-mng-commons-audit.mjs +682 -490
- package/fesm2022/mediusinc-mng-commons-audit.mjs.map +1 -1
- package/lib/api/models/entityChange.d.ts +3 -3
- package/lib/api/models/guiEntityModel.d.ts +3 -3
- package/lib/api/models/guiPropertyModel.d.ts +6 -5
- package/lib/api/models/guiPropertyType.d.ts +1 -1
- package/lib/api/models/guiRelationModel.d.ts +1 -1
- package/lib/api/models/revEntityWithChangesDto.d.ts +3 -3
- package/lib/api/models/revEntityWithStateDto.d.ts +3 -3
- package/lib/api/models/revisionType.d.ts +1 -1
- package/lib/api/services/audit-revisions-api.service.d.ts +18 -11
- package/lib/api/services/audit.service.d.ts +20 -0
- package/lib/audit.routes.d.ts +3 -2
- package/lib/components/entity-changes-field/entity-changes-field.component.d.ts +14 -8
- package/lib/components/pages/audit/audit-page.component.d.ts +5 -0
- package/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.d.ts +22 -12
- package/lib/components/pages/revisions/audit-revisions-page.component.d.ts +13 -9
- package/lib/models/config.model.d.ts +4 -0
- package/lib/models/entity-revision-change-state.model.d.ts +6 -0
- package/lib/models/entity-revision-changes.model.d.ts +5 -0
- package/lib/models/new-filter-match-type.model.d.ts +17 -0
- package/lib/models/rev-entity-detailed.model.d.ts +10 -0
- package/lib/models/rev-entity.model.d.ts +6 -0
- package/lib/models/revEntityWithId.model.d.ts +4 -0
- package/lib/service/module-config.token.d.ts +3 -0
- package/lib/utils/audit.util.d.ts +13 -0
- package/package.json +2 -3
- package/esm2022/lib/api/models/index.mjs +0 -12
- package/esm2022/lib/api/models/revEntityChangeDto.mjs +0 -52
- package/esm2022/lib/api/models/revEntityDto.mjs +0 -42
- package/esm2022/lib/api/models/revisionTypeEnumDto.mjs +0 -20
- package/esm2022/lib/api/services/audit-entity-revisions-api.service.mjs +0 -47
- package/esm2022/lib/components/pages/entity-revisions/entity-dropdown-page.component.mjs +0 -32
- package/esm2022/lib/models/entity-changes.model.mjs +0 -8
- package/lib/api/models/index.d.ts +0 -11
- package/lib/api/models/revEntityChangeDto.d.ts +0 -25
- package/lib/api/models/revEntityDto.d.ts +0 -20
- package/lib/api/models/revisionTypeEnumDto.d.ts +0 -5
- package/lib/api/services/audit-entity-revisions-api.service.d.ts +0 -14
- package/lib/components/pages/entity-revisions/entity-dropdown-page.component.d.ts +0 -12
- package/lib/models/entity-changes.model.d.ts +0 -4
|
@@ -1,75 +1,80 @@
|
|
|
1
1
|
import { AsyncPipe, JsonPipe, NgIf } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, Injector, inject, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { RouterOutlet } from '@angular/router';
|
|
4
|
-
import {
|
|
5
|
+
import { combineLatest, throwError } from 'rxjs';
|
|
5
6
|
import { map } from 'rxjs/operators';
|
|
6
|
-
import { AMngTableviewRouteComponent, MediusQueryResult, MngTableviewComponent, MngTableviewRouteComponent,
|
|
7
|
-
import {
|
|
7
|
+
import { AMngTableviewRouteComponent, ActionEditorDescriptor, ActionEditorSubmitDescriptor, ActionEditorSubmitTypeEnum, ActionPositionEnum, EditorDescriptor, MediusQueryResult, MngErrorInternal, MngTableviewComponent, MngTableviewRouteComponent, TableFilterDisplayEnum, TableviewActionDefaultCategories, TableviewDataProvider, TableviewDescriptor, TableviewEditorTypeEnum } from '@mediusinc/mng-commons';
|
|
8
|
+
import { MngRevEntityWithChangesDto } from '../../../api/models/revEntityWithChangesDto';
|
|
8
9
|
import { MngAuditRevisionsApiService } from '../../../api/services/audit-revisions-api.service';
|
|
10
|
+
import { MngAuditService } from '../../../api/services/audit.service';
|
|
11
|
+
import { MngRevEntityDetailed } from '../../../models/rev-entity-detailed.model';
|
|
12
|
+
import { MngRevEntity } from '../../../models/rev-entity.model';
|
|
13
|
+
import { AuditUtil } from '../../../utils/audit.util';
|
|
14
|
+
import { EntityChangesFieldComponent } from '../../entity-changes-field/entity-changes-field.component';
|
|
9
15
|
import * as i0 from "@angular/core";
|
|
10
16
|
export class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent {
|
|
11
17
|
constructor() {
|
|
12
18
|
super(...arguments);
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
19
|
+
this.destroyRef = inject(DestroyRef);
|
|
20
|
+
this.injector = inject(Injector);
|
|
21
|
+
this.auditService = inject(MngAuditService);
|
|
22
|
+
this.revisisonsApiService = inject(MngAuditRevisionsApiService);
|
|
23
|
+
this.showTableview = signal(false);
|
|
15
24
|
}
|
|
16
25
|
ngOnInit() {
|
|
17
|
-
this.
|
|
18
|
-
next:
|
|
19
|
-
this.revModel =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.descriptorCreated.next(true);
|
|
26
|
+
this.auditService.revModel$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
27
|
+
next: model => {
|
|
28
|
+
this.revModel = model;
|
|
29
|
+
super.ngOnInit();
|
|
30
|
+
setTimeout(() => this.showTableview.set(true));
|
|
23
31
|
}
|
|
24
32
|
});
|
|
25
33
|
}
|
|
26
34
|
createTableviewDescriptor() {
|
|
27
35
|
if (this.revModel) {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
else if (property.propertyType === GuiPropertyType.Number) {
|
|
36
|
-
desc.addColumn(property.resolvedPropertyName).asNumber();
|
|
37
|
-
}
|
|
38
|
-
else if (property.propertyType === GuiPropertyType.Boolean) {
|
|
39
|
-
desc.addColumn(property.resolvedPropertyName).asBoolean();
|
|
40
|
-
}
|
|
41
|
-
else if (property.propertyType === GuiPropertyType.LocalDate) {
|
|
42
|
-
desc.addColumn(property.resolvedPropertyName).asDate('dd. MMM yyyy');
|
|
43
|
-
}
|
|
44
|
-
else if (property.propertyType === GuiPropertyType.OffsetDateTime) {
|
|
45
|
-
desc.addColumn(property.resolvedPropertyName).asDate('dd. MMM yyyy HH:mm');
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
// string / wildcard
|
|
49
|
-
desc.addColumn(property.resolvedPropertyName);
|
|
50
|
-
}
|
|
36
|
+
const idProperty = this.revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];
|
|
37
|
+
const desc = new TableviewDescriptor(MngRevEntity, idProperty, undefined, this.revModel.entityName);
|
|
38
|
+
const detailsDescriptor = new EditorDescriptor(MngRevEntityWithChangesDto, 'revEntity.' + idProperty, undefined, TableviewEditorTypeEnum.Details);
|
|
39
|
+
if (this.revModel.properties) {
|
|
40
|
+
AuditUtil.addColumnsFromModel(desc.table, this.revModel.properties);
|
|
41
|
+
AuditUtil.addFieldsFromModel(detailsDescriptor, this.revModel.properties);
|
|
51
42
|
}
|
|
43
|
+
detailsDescriptor.addField('entityNameChangesMap').asCustomComponent(EntityChangesFieldComponent, ['field-no-label'], { injector: this.injector }).withDisabled();
|
|
44
|
+
desc.withDetailsDescriptor(detailsDescriptor); // MngRevEntity is extended by MngRevEntityWithChangesDto, so no real harm here
|
|
45
|
+
desc.table.withFilterDisplay(TableFilterDisplayEnum.Row);
|
|
52
46
|
return desc;
|
|
53
47
|
}
|
|
54
|
-
return new TableviewDescriptor(
|
|
48
|
+
return new TableviewDescriptor(MngRevEntity);
|
|
55
49
|
}
|
|
56
50
|
createTableviewDataProvider() {
|
|
57
51
|
if (this.revModel) {
|
|
58
|
-
|
|
59
|
-
return new TableviewDataProvider(ObjectSerializer.get().findType(this.revModel.entityName + 'Dto'), MngAuditRevisionsApiService).withGetAll((qp, service) => service
|
|
60
|
-
? service.getRevisionCount().pipe(switchMap(revisionsCount => {
|
|
61
|
-
allDataCount = revisionsCount;
|
|
62
|
-
return service.getRevisionList();
|
|
63
|
-
}), map(values => MediusQueryResult.fromArray(values, allDataCount)))
|
|
64
|
-
: of(MediusQueryResult.fromArray([], 0)));
|
|
52
|
+
return new TableviewDataProvider(MngRevEntity).withGetAll(qp => combineLatest([this.revisisonsApiService.getRevisionCount(qp), this.revisisonsApiService.getRevisionList(qp)]).pipe(map(([count, values]) => MediusQueryResult.fromArray(values, count))));
|
|
65
53
|
}
|
|
66
|
-
return new TableviewDataProvider(
|
|
54
|
+
return new TableviewDataProvider(MngRevEntity);
|
|
55
|
+
}
|
|
56
|
+
createActionDescriptors() {
|
|
57
|
+
const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'revision-details')
|
|
58
|
+
.withPosition(ActionPositionEnum.RowClick)
|
|
59
|
+
.withRouteTrigger(':itemId')
|
|
60
|
+
.withTableviewCategory(TableviewActionDefaultCategories.DETAILS)
|
|
61
|
+
.withFetchFunction(ctx => ctx.parameters.itemId
|
|
62
|
+
? this.revisisonsApiService.getAllChangesForRevision(ctx.parameters.itemId).pipe(map(item => {
|
|
63
|
+
const revEntityWithChanges = new MngRevEntityDetailed();
|
|
64
|
+
revEntityWithChanges.rev = ctx.parameters.itemId;
|
|
65
|
+
revEntityWithChanges.revEntity = item.revEntity;
|
|
66
|
+
revEntityWithChanges.entityNameChangesMap = item.entityNameChangesMap;
|
|
67
|
+
return revEntityWithChanges;
|
|
68
|
+
}))
|
|
69
|
+
: throwError(() => new MngErrorInternal('No revision id provided for fetch function')));
|
|
70
|
+
detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);
|
|
71
|
+
return [detailsAction];
|
|
67
72
|
}
|
|
68
73
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MngAuditRevisionsPageComponent, isStandalone: true, selector: "mng-audit-revisions-page", usesInheritance: true, ngImport: i0, template: "<
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MngAuditRevisionsPageComponent, isStandalone: true, selector: "mng-audit-revisions-page", usesInheritance: true, ngImport: i0, template: "<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: ["descriptor", "dataProvider", "actions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
75
|
}
|
|
71
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuditRevisionsPageComponent, decorators: [{
|
|
72
77
|
type: Component,
|
|
73
|
-
args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<
|
|
78
|
+
args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-tableview-route *ngIf=\"showTableview()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n" }]
|
|
74
79
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFHM0IsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQWlCLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOztBQVM5RixNQUFNLE9BQU8sOEJBQStCLFNBQVEsMkJBQXlDO0lBUDdGOztRQVNXLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FB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QUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQ3ZCLFlBQVksR0FBRyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQ25FO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMvQyxDQUFDO1NBQ0w7UUFDRCxPQUFPLElBQUkscUJBQXFCLENBQUMsRUFBd0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBM0RRLDhCQUE4QjtrR0FBOUIsOEJBQThCLDJHQzdCM0Msd0xBR0EsNENEdUJjLElBQUksd0ZBQXlCLFNBQVMsOENBQWlELDBCQUEwQjs7MkZBR2xILDhCQUE4QjtrQkFQMUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sMEJBQTBCLFdBRTNCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixDQUFDLG1CQUMzRyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIEpzb25QaXBlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG9mLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG4gICAgQ2xhc3NUeXBlLFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nVGFibGV2aWV3Q29tcG9uZW50LFxuICAgIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LFxuICAgIE9iamVjdFNlcmlhbGl6ZXIsXG4gICAgVGFibGV2aWV3RGF0YVByb3ZpZGVyLFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3Jcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucyc7XG5cbmltcG9ydCB7R3VpRW50aXR5TW9kZWwsIEd1aVByb3BlcnR5VHlwZX0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge01uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nSWYsIE1uZ1RhYmxldmlld0NvbXBvbmVudCwgQXN5bmNQaXBlLCBNbmdUYWJsZXZpZXdDb21wb25lbnQsIFJvdXRlck91dGxldCwgSnNvblBpcGUsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8YW55LCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZXZNb2RlbCE6IEd1aUVudGl0eU1vZGVsO1xuICAgIHB1YmxpYyBkZXNjcmlwdG9yQ3JlYXRlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBhdWRpdFJldmlzaW9uQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXVkaXRSZXZpc2lvbkFwaVNlcnZpY2UuZ2V0UmV2TW9kZWwoKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmV2TW9kZWwgPSByZXZNb2RlbDtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlciA9IHRoaXMuY3JlYXRlVGFibGV2aWV3RGF0YVByb3ZpZGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yQ3JlYXRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVGFibGV2aWV3RGVzY3JpcHRvcigpOiBUYWJsZXZpZXdEZXNjcmlwdG9yPHVua25vd24+IHtcbiAgICAgICAgaWYgKHRoaXMucmV2TW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBuZXcgVGFibGV2aWV3RGVzY3JpcHRvcihPYmplY3RTZXJpYWxpemVyLmdldCgpLmZpbmRUeXBlKHRoaXMucmV2TW9kZWwuZW50aXR5TmFtZSEgKyAnRHRvJykpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB0aGlzLnJldk1vZGVsLnByb3BlcnRpZXMhKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gR3VpUHJvcGVydHlUeXBlLkVudW0pIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzYy5hZGRDb2x1bW4ocHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUhKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFzRW51bShPYmplY3RTZXJpYWxpemVyLmdldCgpLmZpbmRFbnVtKHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lISkpXG4gICAgICAgICAgICAgICAgICAgICAgICAud2l0aEZpbHRlckxvb2t1cEVudW0ocHJvcGVydHkucG9zc2libGVFbnVtVmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gR3VpUHJvcGVydHlUeXBlLk51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICBkZXNjLmFkZENvbHVtbihwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSEpLmFzTnVtYmVyKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IEd1aVByb3BlcnR5VHlwZS5Cb29sZWFuKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc2MuYWRkQ29sdW1uKHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lISkuYXNCb29sZWFuKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IEd1aVByb3BlcnR5VHlwZS5Mb2NhbERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzYy5hZGRDb2x1bW4ocHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUhKS5hc0RhdGUoJ2RkLiBNTU0geXl5eScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkucHJvcGVydHlUeXBlID09PSBHdWlQcm9wZXJ0eVR5cGUuT2Zmc2V0RGF0ZVRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzYy5hZGRDb2x1bW4ocHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUhKS5hc0RhdGUoJ2RkLiBNTU0geXl5eSBISDptbScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0cmluZyAvIHdpbGRjYXJkXG4gICAgICAgICAgICAgICAgICAgIGRlc2MuYWRkQ29sdW1uKHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lISk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yPHVua25vd24+KHt9IGFzIENsYXNzVHlwZTx1bmtub3duPik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPHVua25vd24sIGFueT4ge1xuICAgICAgICBpZiAodGhpcy5yZXZNb2RlbCkge1xuICAgICAgICAgICAgbGV0IGFsbERhdGFDb3VudCA9IDA7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxldmlld0RhdGFQcm92aWRlcihPYmplY3RTZXJpYWxpemVyLmdldCgpLmZpbmRUeXBlKHRoaXMucmV2TW9kZWwuZW50aXR5TmFtZSEgKyAnRHRvJyksIE1uZ0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZSkud2l0aEdldEFsbCgocXAsIHNlcnZpY2UpID0+XG4gICAgICAgICAgICAgICAgc2VydmljZVxuICAgICAgICAgICAgICAgICAgICA/IHNlcnZpY2UuZ2V0UmV2aXNpb25Db3VudCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXZpc2lvbnNDb3VudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxEYXRhQ291bnQgPSByZXZpc2lvbnNDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldFJldmlzaW9uTGlzdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHZhbHVlcyA9PiBNZWRpdXNRdWVyeVJlc3VsdC5mcm9tQXJyYXkodmFsdWVzLCBhbGxEYXRhQ291bnQpKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBvZihNZWRpdXNRdWVyeVJlc3VsdC5mcm9tQXJyYXkoW10sIDApKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFRhYmxldmlld0RhdGFQcm92aWRlcih7fSBhcyBDbGFzc1R5cGU8dW5rbm93bj4pO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkZXNjcmlwdG9yQ3JlYXRlZCB8IGFzeW5jXCI+XG4gICAgPG1uZy10YWJsZXZpZXctcm91dGUgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvclwiIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiPjwvbW5nLXRhYmxldmlldy1yb3V0ZT5cbjwvZGl2PlxuIl19
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBMEIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFDSCwyQkFBMkIsRUFFM0Isc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUMxQixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FB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QkFBb0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxvQkFBb0IsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RFLE9BQU8sb0JBQW9CLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQ0w7WUFDSCxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsNENBQTRDLENBQUMsQ0FBQyxDQUM3RixDQUFDO1FBQ04sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXZFUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwyR0M1QzNDLDJKQUNBLDRDRHdDYyxJQUFJLDZGQUFtRiwwQkFBMEI7OzJGQUdsSCw4QkFBOEI7a0JBUDFDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDBCQUEwQixXQUUzQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxtQkFDM0csdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBKc29uUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgSW5qZWN0b3IsIE9uSW5pdCwgV3JpdGFibGVTaWduYWwsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLFxuICAgIEFjdGlvblBvc2l0aW9uRW51bSxcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIElUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgTWVkaXVzUXVlcnlSZXN1bHQsXG4gICAgTW5nRXJyb3JJbnRlcm5hbCxcbiAgICBNbmdUYWJsZXZpZXdDb21wb25lbnQsXG4gICAgTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsXG4gICAgVGFibGVGaWx0ZXJEaXNwbGF5RW51bSxcbiAgICBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyxcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXIsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvcixcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7TW5nQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7TW5nQXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge01uZ1JldkVudGl0eURldGFpbGVkfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmV2LWVudGl0eS1kZXRhaWxlZC5tb2RlbCc7XG5pbXBvcnQge01uZ1JldkVudGl0eX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jldi1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtBdWRpdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2F1ZGl0LnV0aWwnO1xuaW1wb3J0IHtFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXZpc2lvbnMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nSWYsIE1uZ1RhYmxldmlld0NvbXBvbmVudCwgQXN5bmNQaXBlLCBNbmdUYWJsZXZpZXdDb21wb25lbnQsIFJvdXRlck91dGxldCwgSnNvblBpcGUsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8TW5nUmV2RW50aXR5LCB1bmtub3duPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlID0gaW5qZWN0KE1uZ0F1ZGl0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZXZpc2lzb25zQXBpU2VydmljZSA9IGluamVjdChNbmdBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZXZNb2RlbD86IE1uZ0d1aUVudGl0eU1vZGVsRHRvO1xuICAgIHB1YmxpYyBzaG93VGFibGV2aWV3OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdWRpdFNlcnZpY2UucmV2TW9kZWwkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiBtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZNb2RlbCA9IG1vZGVsO1xuICAgICAgICAgICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KHRydWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxNbmdSZXZFbnRpdHk+IHtcbiAgICAgICAgaWYgKHRoaXMucmV2TW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkUHJvcGVydHkgPSB0aGlzLnJldk1vZGVsLnByb3BlcnRpZXM/LmZpbHRlcihwcm9wID0+IHByb3AuaXNJZCkubWFwKHByb3AgPT4gcHJvcC5yZXNvbHZlZFByb3BlcnR5TmFtZSlbMF07XG4gICAgICAgICAgICBjb25zdCBkZXNjID0gbmV3IFRhYmxldmlld0Rlc2NyaXB0b3IoTW5nUmV2RW50aXR5LCBpZFByb3BlcnR5LCB1bmRlZmluZWQsIHRoaXMucmV2TW9kZWwuZW50aXR5TmFtZSk7XG4gICAgICAgICAgICBjb25zdCBkZXRhaWxzRGVzY3JpcHRvciA9IG5ldyBFZGl0b3JEZXNjcmlwdG9yKE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvLCAncmV2RW50aXR5LicgKyBpZFByb3BlcnR5LCB1bmRlZmluZWQsIFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzYy50YWJsZSwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgICBBdWRpdFV0aWwuYWRkRmllbGRzRnJvbU1vZGVsPE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvPihkZXRhaWxzRGVzY3JpcHRvciwgdGhpcy5yZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGV0YWlsc0Rlc2NyaXB0b3IuYWRkRmllbGQoJ2VudGl0eU5hbWVDaGFuZ2VzTWFwJykuYXNDdXN0b21Db21wb25lbnQoRW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50LCBbJ2ZpZWxkLW5vLWxhYmVsJ10sIHtpbmplY3RvcjogdGhpcy5pbmplY3Rvcn0pLndpdGhEaXNhYmxlZCgpO1xuXG4gICAgICAgICAgICBkZXNjLndpdGhEZXRhaWxzRGVzY3JpcHRvcihkZXRhaWxzRGVzY3JpcHRvciBhcyBFZGl0b3JEZXNjcmlwdG9yPE1uZ1JldkVudGl0eT4pOyAvLyBNbmdSZXZFbnRpdHkgaXMgZXh0ZW5kZWQgYnkgTW5nUmV2RW50aXR5V2l0aENoYW5nZXNEdG8sIHNvIG5vIHJlYWwgaGFybSBoZXJlXG4gICAgICAgICAgICBkZXNjLnRhYmxlLndpdGhGaWx0ZXJEaXNwbGF5KFRhYmxlRmlsdGVyRGlzcGxheUVudW0uUm93KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9yKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPE1uZ1JldkVudGl0eSwgdW5rbm93bj4ge1xuICAgICAgICBpZiAodGhpcy5yZXZNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXIoTW5nUmV2RW50aXR5KS53aXRoR2V0QWxsKHFwID0+XG4gICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkNvdW50KHFwKSwgdGhpcy5yZXZpc2lzb25zQXBpU2VydmljZS5nZXRSZXZpc2lvbkxpc3QocXApXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbY291bnQsIHZhbHVlc10pID0+IE1lZGl1c1F1ZXJ5UmVzdWx0LmZyb21BcnJheSh2YWx1ZXMsIGNvdW50KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVGFibGV2aWV3RGF0YVByb3ZpZGVyKE1uZ1JldkVudGl0eSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8TW5nUmV2RW50aXR5Pj4ge1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsICdyZXZpc2lvbi1kZXRhaWxzJylcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKVxuICAgICAgICAgICAgLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQnKVxuICAgICAgICAgICAgLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKVxuICAgICAgICAgICAgLndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PlxuICAgICAgICAgICAgICAgIGN0eC5wYXJhbWV0ZXJzLml0ZW1JZFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmV2aXNpc29uc0FwaVNlcnZpY2UuZ2V0QWxsQ2hhbmdlc0ZvclJldmlzaW9uKGN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aENoYW5nZXMgPSBuZXcgTW5nUmV2RW50aXR5RGV0YWlsZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldiA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldkVudGl0eVdpdGhDaGFuZ2VzLnJldkVudGl0eSA9IGl0ZW0ucmV2RW50aXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aENoYW5nZXMuZW50aXR5TmFtZUNoYW5nZXNNYXAgPSBpdGVtLmVudGl0eU5hbWVDaGFuZ2VzTWFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldkVudGl0eVdpdGhDaGFuZ2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aHJvd0Vycm9yKCgpID0+IG5ldyBNbmdFcnJvckludGVybmFsKCdObyByZXZpc2lvbiBpZCBwcm92aWRlZCBmb3IgZmV0Y2ggZnVuY3Rpb24nKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGRldGFpbHNBY3Rpb24ud2l0aEVkaXRvckFjdGlvbnMoW25ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yKGRldGFpbHNBY3Rpb24sIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbCldKTtcbiAgICAgICAgcmV0dXJuIFtkZXRhaWxzQWN0aW9uXTtcbiAgICB9XG59XG4iLCI8bW5nLXRhYmxldmlldy1yb3V0ZSAqbmdJZj1cInNob3dUYWJsZXZpZXcoKVwiIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3JcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiIFthY3Rpb25zXT1cImFjdGlvbnNcIj48L21uZy10YWJsZXZpZXctcm91dGU+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1uZ0F1ZGl0TW9kdWxlQ29uZmlnIHtcbiAgICBhcGlCYXNlUGF0aENvbmZpZ0tleTogc3RyaW5nO1xuICAgIGFwaVNlcnZpY2VCYXNlUGF0aD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { TypeName } from '@mediusinc/mng-commons';
|
|
3
|
+
export let MngEntityRevisionChangeState = class MngEntityRevisionChangeState {
|
|
4
|
+
};
|
|
5
|
+
MngEntityRevisionChangeState = __decorate([
|
|
6
|
+
TypeName('MngEntityRevisionChangeState')
|
|
7
|
+
], MngEntityRevisionChangeState);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJldmlzaW9uLWNoYW5nZS1zdGF0ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL2VudGl0eS1yZXZpc2lvbi1jaGFuZ2Utc3RhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUt6QyxXQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtDQUl4QyxDQUFBO0FBSlksNEJBQTRCO0lBRHhDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQztHQUM1Qiw0QkFBNEIsQ0FJeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGVOYW1lfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdSZXZpc2lvblR5cGVEdG99IGZyb20gJy4uL2FwaS9tb2RlbHMvcmV2aXNpb25UeXBlJztcblxuQFR5cGVOYW1lKCdNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlJylcbmV4cG9ydCBjbGFzcyBNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlIHtcbiAgICByZXZUeXBlPzogTW5nUmV2aXNpb25UeXBlRHRvO1xuICAgIGNvbG9yPzogJ2dyZWVuJyB8ICdyZWQnO1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { TypeName } from '@mediusinc/mng-commons';
|
|
3
|
+
export let MngEntityRevisionChanges = class MngEntityRevisionChanges {
|
|
4
|
+
};
|
|
5
|
+
MngEntityRevisionChanges = __decorate([
|
|
6
|
+
TypeName('MngEntityChanges')
|
|
7
|
+
], MngEntityRevisionChanges);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJldmlzaW9uLWNoYW5nZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9lbnRpdHktcmV2aXNpb24tY2hhbmdlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBS3pDLFdBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO0NBR3BDLENBQUE7QUFIWSx3QkFBd0I7SUFEcEMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO0dBQ2hCLHdCQUF3QixDQUdwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZU5hbWV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ0VudGl0eVJldmlzaW9uQ2hhbmdlU3RhdGV9IGZyb20gJy4vZW50aXR5LXJldmlzaW9uLWNoYW5nZS1zdGF0ZS5tb2RlbCc7XG5cbkBUeXBlTmFtZSgnTW5nRW50aXR5Q2hhbmdlcycpXG5leHBvcnQgY2xhc3MgTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VzIHtcbiAgICBlbnRpdHlUeXBlPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZVtdO1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export var NewMediusFilterMatchType;
|
|
2
|
+
(function (NewMediusFilterMatchType) {
|
|
3
|
+
NewMediusFilterMatchType["Equals"] = "eq";
|
|
4
|
+
NewMediusFilterMatchType["NotEquals"] = "ne";
|
|
5
|
+
NewMediusFilterMatchType["Between"] = "bt";
|
|
6
|
+
NewMediusFilterMatchType["Contains"] = "cn";
|
|
7
|
+
NewMediusFilterMatchType["NotContains"] = "nc";
|
|
8
|
+
NewMediusFilterMatchType["StartsWith"] = "sw";
|
|
9
|
+
NewMediusFilterMatchType["EndsWith"] = "ew";
|
|
10
|
+
NewMediusFilterMatchType["In"] = "in";
|
|
11
|
+
NewMediusFilterMatchType["NotIn"] = "ni";
|
|
12
|
+
NewMediusFilterMatchType["LessThan"] = "lt";
|
|
13
|
+
NewMediusFilterMatchType["LessThanOrEqualTo"] = "le";
|
|
14
|
+
NewMediusFilterMatchType["GreaterThan"] = "gt";
|
|
15
|
+
NewMediusFilterMatchType["GreaterThanOrEqualTo"] = "ge";
|
|
16
|
+
NewMediusFilterMatchType["Exists"] = "ex";
|
|
17
|
+
NewMediusFilterMatchType["DoesNotExist"] = "nx";
|
|
18
|
+
})(NewMediusFilterMatchType || (NewMediusFilterMatchType = {}));
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWZpbHRlci1tYXRjaC10eXBlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvbmV3LWZpbHRlci1tYXRjaC10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHdCQWdCWDtBQWhCRCxXQUFZLHdCQUF3QjtJQUNoQyx5Q0FBYSxDQUFBO0lBQ2IsNENBQWdCLENBQUE7SUFDaEIsMENBQWMsQ0FBQTtJQUNkLDJDQUFlLENBQUE7SUFDZiw4Q0FBa0IsQ0FBQTtJQUNsQiw2Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBZSxDQUFBO0lBQ2YscUNBQVMsQ0FBQTtJQUNULHdDQUFZLENBQUE7SUFDWiwyQ0FBZSxDQUFBO0lBQ2Ysb0RBQXdCLENBQUE7SUFDeEIsOENBQWtCLENBQUE7SUFDbEIsdURBQTJCLENBQUE7SUFDM0IseUNBQWEsQ0FBQTtJQUNiLCtDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFoQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQWdCbkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBOZXdNZWRpdXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgIEVxdWFscyA9ICdlcScsXG4gICAgTm90RXF1YWxzID0gJ25lJyxcbiAgICBCZXR3ZWVuID0gJ2J0JyxcbiAgICBDb250YWlucyA9ICdjbicsXG4gICAgTm90Q29udGFpbnMgPSAnbmMnLFxuICAgIFN0YXJ0c1dpdGggPSAnc3cnLFxuICAgIEVuZHNXaXRoID0gJ2V3JyxcbiAgICBJbiA9ICdpbicsXG4gICAgTm90SW4gPSAnbmknLFxuICAgIExlc3NUaGFuID0gJ2x0JyxcbiAgICBMZXNzVGhhbk9yRXF1YWxUbyA9ICdsZScsXG4gICAgR3JlYXRlclRoYW4gPSAnZ3QnLFxuICAgIEdyZWF0ZXJUaGFuT3JFcXVhbFRvID0gJ2dlJyxcbiAgICBFeGlzdHMgPSAnZXgnLFxuICAgIERvZXNOb3RFeGlzdCA9ICdueCdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { TypeName } from '@mediusinc/mng-commons';
|
|
3
|
+
import { MngRevEntity } from './rev-entity.model';
|
|
4
|
+
export let MngRevEntityDetailed = class MngRevEntityDetailed extends MngRevEntity {
|
|
5
|
+
};
|
|
6
|
+
MngRevEntityDetailed = __decorate([
|
|
7
|
+
TypeName('MngRevEntityDetailed')
|
|
8
|
+
], MngRevEntityDetailed);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2LWVudGl0eS1kZXRhaWxlZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3Jldi1lbnRpdHktZGV0YWlsZWQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHekMsV0FBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSxZQUFZO0NBR3JELENBQUE7QUFIWSxvQkFBb0I7SUFEaEMsUUFBUSxDQUFDLHNCQUFzQixDQUFDO0dBQ3BCLG9CQUFvQixDQUdoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZU5hbWV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMnO1xuXG5pbXBvcnQge01uZ0VudGl0eUNoYW5nZUR0b30gZnJvbSAnLi4vYXBpL21vZGVscy9lbnRpdHlDaGFuZ2UnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHl9IGZyb20gJy4vcmV2LWVudGl0eS5tb2RlbCc7XG5cbkBUeXBlTmFtZSgnTW5nUmV2RW50aXR5RGV0YWlsZWQnKVxuZXhwb3J0IGNsYXNzIE1uZ1JldkVudGl0eURldGFpbGVkIGV4dGVuZHMgTW5nUmV2RW50aXR5IHtcbiAgICByZXZFbnRpdHk/OiB7W2tleTogc3RyaW5nXTogdW5rbm93bn07XG4gICAgZW50aXR5TmFtZUNoYW5nZXNNYXA/OiB7W2tleTogc3RyaW5nXTogQXJyYXk8TW5nRW50aXR5Q2hhbmdlRHRvPn07XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { TypeName } from '@mediusinc/mng-commons';
|
|
3
|
+
export let MngRevEntity = class MngRevEntity {
|
|
4
|
+
};
|
|
5
|
+
MngRevEntity = __decorate([
|
|
6
|
+
TypeName('MngRevEntity')
|
|
7
|
+
], MngRevEntity);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2LWVudGl0eS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3Jldi1lbnRpdHkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBUyxRQUFRLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRCxXQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0NBSXhCLENBQUE7QUFKWSxZQUFZO0lBRHhCLFFBQVEsQ0FBQyxjQUFjLENBQUM7R0FDWixZQUFZLENBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJZFR5cGUsIFR5cGVOYW1lfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuQFR5cGVOYW1lKCdNbmdSZXZFbnRpdHknKVxuZXhwb3J0IGNsYXNzIE1uZ1JldkVudGl0eSB7XG4gICAgcmV2PzogSWRUeXBlOyAvLyB1c3VhbGx5IGEgbnVtYmVyXG4gICAgcmV2VXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgdGltZXN0YW1wPzogRGF0ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ObjectSerializer, TypeName } from '@mediusinc/mng-commons';
|
|
3
|
+
import { MngRevEntityWithStateDto } from '../api/models/revEntityWithStateDto';
|
|
4
|
+
export let MngRevEntityWithId = class MngRevEntityWithId extends MngRevEntityWithStateDto {
|
|
5
|
+
};
|
|
6
|
+
MngRevEntityWithId = __decorate([
|
|
7
|
+
TypeName('MngRevEntityWithId')
|
|
8
|
+
], MngRevEntityWithId);
|
|
9
|
+
ObjectSerializer.get().registerType(MngRevEntityWithId);
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2RW50aXR5V2l0aElkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvcmV2RW50aXR5V2l0aElkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsV0FBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBbUIsU0FBUSx3QkFBd0I7Q0FFL0QsQ0FBQTtBQUZZLGtCQUFrQjtJQUQ5QixRQUFRLENBQUMsb0JBQW9CLENBQUM7R0FDbEIsa0JBQWtCLENBRTlCO0FBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFNlcmlhbGl6ZXIsIFR5cGVOYW1lfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoU3RhdGVEdG99IGZyb20gJy4uL2FwaS9tb2RlbHMvcmV2RW50aXR5V2l0aFN0YXRlRHRvJztcblxuQFR5cGVOYW1lKCdNbmdSZXZFbnRpdHlXaXRoSWQnKVxuZXhwb3J0IGNsYXNzIE1uZ1JldkVudGl0eVdpdGhJZCBleHRlbmRzIE1uZ1JldkVudGl0eVdpdGhTdGF0ZUR0byB7XG4gICAgbWVyZ2VkSWQ/OiBzdHJpbmc7XG59XG5cbk9iamVjdFNlcmlhbGl6ZXIuZ2V0KCkucmVnaXN0ZXJUeXBlKE1uZ1JldkVudGl0eVdpdGhJZCk7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const MNG_AUDIT_MODULE_CONFIG_IT = new InjectionToken('MngAuditModuleConfig');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWNvbmZpZy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZS9tb2R1bGUtY29uZmlnLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQXVCLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNbmdBdWRpdE1vZHVsZUNvbmZpZ30gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZy5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBNTkdfQVVESVRfTU9EVUxFX0NPTkZJR19JVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNbmdBdWRpdE1vZHVsZUNvbmZpZz4oJ01uZ0F1ZGl0TW9kdWxlQ29uZmlnJyk7XG4iXX0=
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { MediusFilterMatchType, ObjectSerializer } from '@mediusinc/mng-commons';
|
|
3
|
+
import { MngGuiPropertyTypeDto } from '../api/models/guiPropertyType';
|
|
4
|
+
import { MngRevisionTypeDto } from '../api/models/revisionType';
|
|
5
|
+
import { NewMediusFilterMatchType } from '../models/new-filter-match-type.model';
|
|
6
|
+
export class AuditUtil {
|
|
7
|
+
static addColumnsFromModel(descriptor, properties, modelType = undefined, addFilters = true, addSorts = true) {
|
|
8
|
+
for (const property of properties) {
|
|
9
|
+
if (!property.resolvedPropertyName) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const columnPrepend = modelType ? `${modelType}.` : '';
|
|
13
|
+
const isEnum = property.propertyType === MngGuiPropertyTypeDto.Enum;
|
|
14
|
+
let column = null;
|
|
15
|
+
if (isEnum) {
|
|
16
|
+
if (!property.possibleEnumValues) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const enumType = AuditUtil.findEnumType(property);
|
|
20
|
+
if (enumType) {
|
|
21
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asEnum(enumType);
|
|
22
|
+
if (addFilters) {
|
|
23
|
+
column.withFilterLookupEnum(property.possibleEnumValues);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName);
|
|
28
|
+
if (addFilters) {
|
|
29
|
+
(column?.withFilterLookup()).withLookup(() => of(property.possibleEnumValues ?? []));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.Number) {
|
|
34
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asNumber();
|
|
35
|
+
}
|
|
36
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {
|
|
37
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asBoolean();
|
|
38
|
+
}
|
|
39
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {
|
|
40
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy');
|
|
41
|
+
}
|
|
42
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {
|
|
43
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).asDate('dd. MM yyyy HH:mm');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// string / wildcard
|
|
47
|
+
column = descriptor.addColumn(columnPrepend + property.resolvedPropertyName).withTitle(AuditUtil.getPropertyTitleKey(property, modelType));
|
|
48
|
+
}
|
|
49
|
+
column.withTitle(AuditUtil.getPropertyTitleKey(property, modelType));
|
|
50
|
+
if (!isEnum && addFilters) {
|
|
51
|
+
column?.withFilter();
|
|
52
|
+
}
|
|
53
|
+
if (addSorts) {
|
|
54
|
+
column?.withSort();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return descriptor;
|
|
58
|
+
}
|
|
59
|
+
static getPropertyTitleKey(property, modelType = undefined) {
|
|
60
|
+
if (modelType === 'revEntity') {
|
|
61
|
+
return 'MngRevEntity.properties.' + property.resolvedPropertyName;
|
|
62
|
+
}
|
|
63
|
+
return property.resolvedPropertyName ?? '';
|
|
64
|
+
}
|
|
65
|
+
static addFieldsFromModel(descriptor, properties, modelType = 'revEntity') {
|
|
66
|
+
for (const property of properties) {
|
|
67
|
+
if (!property.resolvedPropertyName) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const fieldPrepend = `${modelType}.`;
|
|
71
|
+
if (property.propertyType === MngGuiPropertyTypeDto.Enum) {
|
|
72
|
+
const enumType = AuditUtil.findEnumType(property);
|
|
73
|
+
if (enumType) {
|
|
74
|
+
if (!property.possibleEnumValues) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
descriptor.addFieldLookupEnum(fieldPrepend + property.resolvedPropertyName, enumType, property.possibleEnumValues).withDisabled();
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
descriptor.addField(fieldPrepend + property.resolvedPropertyName).withLabel(AuditUtil.getPropertyTitleKey(property, modelType));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.Number) {
|
|
84
|
+
descriptor
|
|
85
|
+
.addField(fieldPrepend + property.resolvedPropertyName)
|
|
86
|
+
.withLabel(AuditUtil.getPropertyTitleKey(property, modelType))
|
|
87
|
+
.asNumber()
|
|
88
|
+
.withDisabled();
|
|
89
|
+
}
|
|
90
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.Boolean) {
|
|
91
|
+
descriptor
|
|
92
|
+
.addField(fieldPrepend + property.resolvedPropertyName)
|
|
93
|
+
.withLabel(AuditUtil.getPropertyTitleKey(property, modelType))
|
|
94
|
+
.withDisabled();
|
|
95
|
+
}
|
|
96
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.LocalDate) {
|
|
97
|
+
descriptor
|
|
98
|
+
.addField(fieldPrepend + property.resolvedPropertyName)
|
|
99
|
+
.withLabel(AuditUtil.getPropertyTitleKey(property, modelType))
|
|
100
|
+
.asDatePicker('dd. MMM yyyy')
|
|
101
|
+
.withDisabled();
|
|
102
|
+
}
|
|
103
|
+
else if (property.propertyType === MngGuiPropertyTypeDto.OffsetDateTime) {
|
|
104
|
+
descriptor
|
|
105
|
+
.addField(fieldPrepend + property.resolvedPropertyName)
|
|
106
|
+
.withLabel(AuditUtil.getPropertyTitleKey(property, modelType))
|
|
107
|
+
.asDatePicker('dd. MM yy', undefined, undefined, true, false)
|
|
108
|
+
.withDisabled();
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// string / wildcard
|
|
112
|
+
descriptor
|
|
113
|
+
.addField(fieldPrepend + property.resolvedPropertyName)
|
|
114
|
+
.withLabel(AuditUtil.getPropertyTitleKey(property, modelType))
|
|
115
|
+
.withDisabled();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return descriptor;
|
|
119
|
+
}
|
|
120
|
+
static buildDescriptorForEntityRevision(descriptor, revModel, entityModel) {
|
|
121
|
+
descriptor.addColumn('revType').withTitle('MngEntityRevisionChangeState.properties.revType').asEnum(MngRevisionTypeDto).withFilter();
|
|
122
|
+
descriptor.addFieldLookupEnum('revType', MngRevisionTypeDto).withLabel('MngEntityRevisionChangeState.properties.revType');
|
|
123
|
+
if (revModel.properties) {
|
|
124
|
+
AuditUtil.addColumnsFromModel(descriptor.table, revModel.properties, 'revEntity');
|
|
125
|
+
AuditUtil.addFieldsFromModel(descriptor.detailsEditor, revModel.properties, 'revEntity');
|
|
126
|
+
}
|
|
127
|
+
if (entityModel.properties) {
|
|
128
|
+
AuditUtil.addColumnsFromModel(descriptor.table, entityModel.properties, 'entityState');
|
|
129
|
+
AuditUtil.addFieldsFromModel(descriptor.detailsEditor, entityModel.properties, 'entityState');
|
|
130
|
+
}
|
|
131
|
+
return descriptor;
|
|
132
|
+
}
|
|
133
|
+
static findEnumType(property) {
|
|
134
|
+
if (!property.enumClassSimpleName) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
let enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName);
|
|
138
|
+
if (!enumType) {
|
|
139
|
+
enumType = ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto');
|
|
140
|
+
}
|
|
141
|
+
return enumType;
|
|
142
|
+
}
|
|
143
|
+
static extractPropertyName(fullPropertyName) {
|
|
144
|
+
if (fullPropertyName?.includes('entityState.')) {
|
|
145
|
+
return fullPropertyName.replace('entityState.', '');
|
|
146
|
+
}
|
|
147
|
+
else if (fullPropertyName?.includes('revEntity.')) {
|
|
148
|
+
return fullPropertyName?.replace('revEntity.', '');
|
|
149
|
+
}
|
|
150
|
+
return fullPropertyName;
|
|
151
|
+
}
|
|
152
|
+
static appendMediusQueryParamsToUrl(queryParams) {
|
|
153
|
+
let url = `?firstResult=${queryParams.itemsOffset}&maxResults=${queryParams.itemsPerPage}`;
|
|
154
|
+
if (queryParams.sortProperty && queryParams.sortProperty.length > 0) {
|
|
155
|
+
url += '&sorts=';
|
|
156
|
+
const sortingQPs = [];
|
|
157
|
+
for (let i = 0; i < queryParams.sortProperty.length; i++) {
|
|
158
|
+
sortingQPs.push(`${queryParams.sortAsc?.[i] ?? true ? 'asc' : 'desc'}:${this.extractPropertyName(queryParams.sortProperty[i])}`);
|
|
159
|
+
}
|
|
160
|
+
url += sortingQPs.join(',');
|
|
161
|
+
}
|
|
162
|
+
if (queryParams.filterParams && queryParams.filterParams.length > 0) {
|
|
163
|
+
const filterQPs = [];
|
|
164
|
+
for (const mfp of queryParams.filterParams) {
|
|
165
|
+
switch (mfp.filterMatchType) {
|
|
166
|
+
case MediusFilterMatchType.Equals: {
|
|
167
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Equals}:${mfp.filterValue}`);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
case MediusFilterMatchType.NotEquals: {
|
|
171
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotEquals}:${mfp.filterValue}`);
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case MediusFilterMatchType.FromTo: {
|
|
175
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Between}:${mfp.filterValue},${mfp.filterValueTo}`);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case MediusFilterMatchType.Contains: {
|
|
179
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Contains}:${mfp.filterValue}`);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case MediusFilterMatchType.StartsWith: {
|
|
183
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.StartsWith}:${mfp.filterValue}`);
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
case MediusFilterMatchType.EndsWith: {
|
|
187
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.EndsWith}:${mfp.filterValue}`);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case MediusFilterMatchType.In: {
|
|
191
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.In}:${mfp.filterValue}`);
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case MediusFilterMatchType.NotIn: {
|
|
195
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotIn}:${mfp.filterValue}`);
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
case MediusFilterMatchType.SmallerThan: {
|
|
199
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.LessThan}:${mfp.filterValue}`);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
case MediusFilterMatchType.GreaterThan: {
|
|
203
|
+
filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.GreaterThan}:${mfp.filterValue}`);
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
url += '&';
|
|
209
|
+
url += filterQPs.join('&');
|
|
210
|
+
}
|
|
211
|
+
return url;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvYXVkaXQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFJSCxxQkFBcUIsRUFFckIsZ0JBQWdCLEVBR25CLE1BQU0sd0JBQXdCLENBQUM7QUFJaEMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFL0UsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsbUJBQW1CLENBQzdCLFVBQThCLEVBQzlCLFVBQW9DLEVBQ3BDLFlBQXFELFNBQVMsRUFDOUQsVUFBVSxHQUFHLElBQUksRUFDakIsUUFBUSxHQUFHLElBQUk7UUFFZixLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFO2dCQUNoQyxTQUFTO2FBQ1o7WUFFRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUV2RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxLQUFLLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUNwRSxJQUFJLE1BQU0sR0FBdUMsSUFBSSxDQUFDO1lBQ3RELElBQUksTUFBTSxFQUFFO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUU7b0JBQzlCLFNBQVM7aUJBQ1o7Z0JBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxR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QUFLLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7d0JBQ3ZILE1BQU07cUJBQ1Q7aUJBQ0o7YUFDSjtZQUNELEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDWCxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQ29sdW1uRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpbHRlckxvb2t1cERlc2NyaXB0b3IsXG4gICAgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLFxuICAgIE1lZGl1c1F1ZXJ5UGFyYW0sXG4gICAgT2JqZWN0U2VyaWFsaXplcixcbiAgICBUYWJsZURlc2NyaXB0b3IsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvclxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zJztcblxuaW1wb3J0IHtNbmdHdWlFbnRpdHlNb2RlbER0b30gZnJvbSAnLi4vYXBpL21vZGVscy9ndWlFbnRpdHlNb2RlbCc7XG5pbXBvcnQge01uZ0d1aVByb3BlcnR5TW9kZWxEdG99IGZyb20gJy4uL2FwaS9tb2RlbHMvZ3VpUHJvcGVydHlNb2RlbCc7XG5pbXBvcnQge01uZ0d1aVByb3BlcnR5VHlwZUR0b30gZnJvbSAnLi4vYXBpL21vZGVscy9ndWlQcm9wZXJ0eVR5cGUnO1xuaW1wb3J0IHtNbmdSZXZFbnRpdHlXaXRoU3RhdGVEdG99IGZyb20gJy4uL2FwaS9tb2RlbHMvcmV2RW50aXR5V2l0aFN0YXRlRHRvJztcbmltcG9ydCB7TW5nUmV2aXNpb25UeXBlRHRvfSBmcm9tICcuLi9hcGkvbW9kZWxzL3JldmlzaW9uVHlwZSc7XG5pbXBvcnQge05ld01lZGl1c0ZpbHRlck1hdGNoVHlwZX0gZnJvbSAnLi4vbW9kZWxzL25ldy1maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBdWRpdFV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkQ29sdW1uc0Zyb21Nb2RlbDxUPihcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9yPFQ+LFxuICAgICAgICBwcm9wZXJ0aWVzOiBNbmdHdWlQcm9wZXJ0eU1vZGVsRHRvW10sXG4gICAgICAgIG1vZGVsVHlwZTogJ3JldkVudGl0eScgfCAnZW50aXR5U3RhdGUnIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgICAgICBhZGRGaWx0ZXJzID0gdHJ1ZSxcbiAgICAgICAgYWRkU29ydHMgPSB0cnVlXG4gICAgKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBpZiAoIXByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbHVtblByZXBlbmQgPSBtb2RlbFR5cGUgPyBgJHttb2RlbFR5cGV9LmAgOiAnJztcblxuICAgICAgICAgICAgY29uc3QgaXNFbnVtID0gcHJvcGVydHkucHJvcGVydHlUeXBlID09PSBNbmdHdWlQcm9wZXJ0eVR5cGVEdG8uRW51bTtcbiAgICAgICAgICAgIGxldCBjb2x1bW46IENvbHVtbkRlc2NyaXB0b3I8c3RyaW5nLCBUPiB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGlzRW51bSkge1xuICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHkucG9zc2libGVFbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGVudW1UeXBlID0gQXVkaXRVdGlsLmZpbmRFbnVtVHlwZShwcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgaWYgKGVudW1UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkuYXNFbnVtKGVudW1UeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFkZEZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi53aXRoRmlsdGVyTG9va3VwRW51bShwcm9wZXJ0eS5wb3NzaWJsZUVudW1WYWx1ZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gZGVzY3JpcHRvci5hZGRDb2x1bW4oY29sdW1uUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFkZEZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb2x1bW4/LndpdGhGaWx0ZXJMb29rdXAoKSBhcyBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPHN0cmluZz4pLndpdGhMb29rdXAoKCkgPT4gb2YocHJvcGVydHkucG9zc2libGVFbnVtVmFsdWVzID8/IFtdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gTW5nR3VpUHJvcGVydHlUeXBlRHRvLk51bWJlcikge1xuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkuYXNOdW1iZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkucHJvcGVydHlUeXBlID09PSBNbmdHdWlQcm9wZXJ0eVR5cGVEdG8uQm9vbGVhbikge1xuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkuYXNCb29sZWFuKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gTW5nR3VpUHJvcGVydHlUeXBlRHRvLkxvY2FsRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkuYXNEYXRlKCdkZC4gTU0geXl5eScpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IE1uZ0d1aVByb3BlcnR5VHlwZUR0by5PZmZzZXREYXRlVGltZSkge1xuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkuYXNEYXRlKCdkZC4gTU0geXl5eSBISDptbScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBzdHJpbmcgLyB3aWxkY2FyZFxuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGRlc2NyaXB0b3IuYWRkQ29sdW1uKGNvbHVtblByZXBlbmQgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZSkud2l0aFRpdGxlKEF1ZGl0VXRpbC5nZXRQcm9wZXJ0eVRpdGxlS2V5KHByb3BlcnR5LCBtb2RlbFR5cGUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29sdW1uLndpdGhUaXRsZShBdWRpdFV0aWwuZ2V0UHJvcGVydHlUaXRsZUtleShwcm9wZXJ0eSwgbW9kZWxUeXBlKSk7XG5cbiAgICAgICAgICAgIGlmICghaXNFbnVtICYmIGFkZEZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4/LndpdGhGaWx0ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhZGRTb3J0cykge1xuICAgICAgICAgICAgICAgIGNvbHVtbj8ud2l0aFNvcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFByb3BlcnR5VGl0bGVLZXkocHJvcGVydHk6IE1uZ0d1aVByb3BlcnR5TW9kZWxEdG8sIG1vZGVsVHlwZTogJ3JldkVudGl0eScgfCAnZW50aXR5U3RhdGUnIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChtb2RlbFR5cGUgPT09ICdyZXZFbnRpdHknKSB7XG4gICAgICAgICAgICByZXR1cm4gJ01uZ1JldkVudGl0eS5wcm9wZXJ0aWVzLicgKyBwcm9wZXJ0eS5yZXNvbHZlZFByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUgPz8gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhZGRGaWVsZHNGcm9tTW9kZWw8VD4oXG4gICAgICAgIGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4sXG4gICAgICAgIHByb3BlcnRpZXM6IE1uZ0d1aVByb3BlcnR5TW9kZWxEdG9bXSxcbiAgICAgICAgbW9kZWxUeXBlOiAncmV2RW50aXR5JyB8ICdlbnRpdHlTdGF0ZScgPSAncmV2RW50aXR5J1xuICAgICk6IEVkaXRvckRlc2NyaXB0b3I8VD4ge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmICghcHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZmllbGRQcmVwZW5kID0gYCR7bW9kZWxUeXBlfS5gO1xuXG4gICAgICAgICAgICBpZiAocHJvcGVydHkucHJvcGVydHlUeXBlID09PSBNbmdHdWlQcm9wZXJ0eVR5cGVEdG8uRW51bSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudW1UeXBlID0gQXVkaXRVdGlsLmZpbmRFbnVtVHlwZShwcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgaWYgKGVudW1UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHkucG9zc2libGVFbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuYWRkRmllbGRMb29rdXBFbnVtKGZpZWxkUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lLCBlbnVtVHlwZSwgcHJvcGVydHkucG9zc2libGVFbnVtVmFsdWVzKS53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmFkZEZpZWxkKGZpZWxkUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKS53aXRoTGFiZWwoQXVkaXRVdGlsLmdldFByb3BlcnR5VGl0bGVLZXkocHJvcGVydHksIG1vZGVsVHlwZSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkucHJvcGVydHlUeXBlID09PSBNbmdHdWlQcm9wZXJ0eVR5cGVEdG8uTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgICAgICAuYWRkRmllbGQoZmllbGRQcmVwZW5kICsgcHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoTGFiZWwoQXVkaXRVdGlsLmdldFByb3BlcnR5VGl0bGVLZXkocHJvcGVydHksIG1vZGVsVHlwZSkpXG4gICAgICAgICAgICAgICAgICAgIC5hc051bWJlcigpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoRGlzYWJsZWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkucHJvcGVydHlUeXBlID09PSBNbmdHdWlQcm9wZXJ0eVR5cGVEdG8uQm9vbGVhbikge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICAgICAgLmFkZEZpZWxkKGZpZWxkUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgICAgICAgICAud2l0aExhYmVsKEF1ZGl0VXRpbC5nZXRQcm9wZXJ0eVRpdGxlS2V5KHByb3BlcnR5LCBtb2RlbFR5cGUpKVxuICAgICAgICAgICAgICAgICAgICAud2l0aERpc2FibGVkKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gTW5nR3VpUHJvcGVydHlUeXBlRHRvLkxvY2FsRGF0ZSkge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICAgICAgLmFkZEZpZWxkKGZpZWxkUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgICAgICAgICAud2l0aExhYmVsKEF1ZGl0VXRpbC5nZXRQcm9wZXJ0eVRpdGxlS2V5KHByb3BlcnR5LCBtb2RlbFR5cGUpKVxuICAgICAgICAgICAgICAgICAgICAuYXNEYXRlUGlja2VyKCdkZC4gTU1NIHl5eXknKVxuICAgICAgICAgICAgICAgICAgICAud2l0aERpc2FibGVkKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gTW5nR3VpUHJvcGVydHlUeXBlRHRvLk9mZnNldERhdGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgICAgICAuYWRkRmllbGQoZmllbGRQcmVwZW5kICsgcHJvcGVydHkucmVzb2x2ZWRQcm9wZXJ0eU5hbWUpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoTGFiZWwoQXVkaXRVdGlsLmdldFByb3BlcnR5VGl0bGVLZXkocHJvcGVydHksIG1vZGVsVHlwZSkpXG4gICAgICAgICAgICAgICAgICAgIC5hc0RhdGVQaWNrZXIoJ2RkLiBNTSB5eScsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLndpdGhEaXNhYmxlZCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBzdHJpbmcgLyB3aWxkY2FyZFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICAgICAgLmFkZEZpZWxkKGZpZWxkUHJlcGVuZCArIHByb3BlcnR5LnJlc29sdmVkUHJvcGVydHlOYW1lKVxuICAgICAgICAgICAgICAgICAgICAud2l0aExhYmVsKEF1ZGl0VXRpbC5nZXRQcm9wZXJ0eVRpdGxlS2V5KHByb3BlcnR5LCBtb2RlbFR5cGUpKVxuICAgICAgICAgICAgICAgICAgICAud2l0aERpc2FibGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBidWlsZERlc2NyaXB0b3JGb3JFbnRpdHlSZXZpc2lvbihcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxNbmdSZXZFbnRpdHlXaXRoU3RhdGVEdG8+LFxuICAgICAgICByZXZNb2RlbDogTW5nR3VpRW50aXR5TW9kZWxEdG8sXG4gICAgICAgIGVudGl0eU1vZGVsOiBNbmdHdWlFbnRpdHlNb2RlbER0b1xuICAgICk6IFRhYmxldmlld0Rlc2NyaXB0b3I8TW5nUmV2RW50aXR5V2l0aFN0YXRlRHRvPiB7XG4gICAgICAgIGRlc2NyaXB0b3IuYWRkQ29sdW1uKCdyZXZUeXBlJykud2l0aFRpdGxlKCdNbmdFbnRpdHlSZXZpc2lvbkNoYW5nZVN0YXRlLnByb3BlcnRpZXMucmV2VHlwZScpLmFzRW51bShNbmdSZXZpc2lvblR5cGVEdG8pLndpdGhGaWx0ZXIoKTtcbiAgICAgICAgZGVzY3JpcHRvci5hZGRGaWVsZExvb2t1cEVudW0oJ3JldlR5cGUnLCBNbmdSZXZpc2lvblR5cGVEdG8pLndpdGhMYWJlbCgnTW5nRW50aXR5UmV2aXNpb25DaGFuZ2VTdGF0ZS5wcm9wZXJ0aWVzLnJldlR5cGUnKTtcblxuICAgICAgICBpZiAocmV2TW9kZWwucHJvcGVydGllcykge1xuICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzY3JpcHRvci50YWJsZSwgcmV2TW9kZWwucHJvcGVydGllcywgJ3JldkVudGl0eScpO1xuICAgICAgICAgICAgQXVkaXRVdGlsLmFkZEZpZWxkc0Zyb21Nb2RlbChkZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsIHJldk1vZGVsLnByb3BlcnRpZXMsICdyZXZFbnRpdHknKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50aXR5TW9kZWwucHJvcGVydGllcykge1xuICAgICAgICAgICAgQXVkaXRVdGlsLmFkZENvbHVtbnNGcm9tTW9kZWwoZGVzY3JpcHRvci50YWJsZSwgZW50aXR5TW9kZWwucHJvcGVydGllcywgJ2VudGl0eVN0YXRlJyk7XG4gICAgICAgICAgICBBdWRpdFV0aWwuYWRkRmllbGRzRnJvbU1vZGVsKGRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvciwgZW50aXR5TW9kZWwucHJvcGVydGllcywgJ2VudGl0eVN0YXRlJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmaW5kRW51bVR5cGUocHJvcGVydHk6IE1uZ0d1aVByb3BlcnR5TW9kZWxEdG8pIHtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbnVtQ2xhc3NTaW1wbGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVudW1UeXBlID0gT2JqZWN0U2VyaWFsaXplci5nZXQoKS5maW5kRW51bShwcm9wZXJ0eS5lbnVtQ2xhc3NTaW1wbGVOYW1lKTtcbiAgICAgICAgaWYgKCFlbnVtVHlwZSkge1xuICAgICAgICAgICAgZW51bVR5cGUgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpLmZpbmRFbnVtKHByb3BlcnR5LmVudW1DbGFzc1NpbXBsZU5hbWUgKyAnRHRvJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1UeXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGV4dHJhY3RQcm9wZXJ0eU5hbWUoZnVsbFByb3BlcnR5TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGZ1bGxQcm9wZXJ0eU5hbWU/LmluY2x1ZGVzKCdlbnRpdHlTdGF0ZS4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bGxQcm9wZXJ0eU5hbWUucmVwbGFjZSgnZW50aXR5U3RhdGUuJywgJycpO1xuICAgICAgICB9IGVsc2UgaWYgKGZ1bGxQcm9wZXJ0eU5hbWU/LmluY2x1ZGVzKCdyZXZFbnRpdHkuJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmdWxsUHJvcGVydHlOYW1lPy5yZXBsYWNlKCdyZXZFbnRpdHkuJywgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdWxsUHJvcGVydHlOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXBwZW5kTWVkaXVzUXVlcnlQYXJhbXNUb1VybChxdWVyeVBhcmFtczogTWVkaXVzUXVlcnlQYXJhbSk6IHN0cmluZyB7XG4gICAgICAgIGxldCB1cmwgPSBgP2ZpcnN0UmVzdWx0PSR7cXVlcnlQYXJhbXMuaXRlbXNPZmZzZXR9Jm1heFJlc3VsdHM9JHtxdWVyeVBhcmFtcy5pdGVtc1BlclBhZ2V9YDtcbiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zLnNvcnRQcm9wZXJ0eSAmJiBxdWVyeVBhcmFtcy5zb3J0UHJvcGVydHkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdXJsICs9ICcmc29ydHM9JztcbiAgICAgICAgICAgIGNvbnN0IHNvcnRpbmdRUHMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcXVlcnlQYXJhbXMuc29ydFByb3BlcnR5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgc29ydGluZ1FQcy5wdXNoKGAke3F1ZXJ5UGFyYW1zLnNvcnRBc2M/LltpXSA/PyB0cnVlID8gJ2FzYycgOiAnZGVzYyd9OiR7dGhpcy5leHRyYWN0UHJvcGVydHlOYW1lKHF1ZXJ5UGFyYW1zLnNvcnRQcm9wZXJ0eVtpXSl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cmwgKz0gc29ydGluZ1FQcy5qb2luKCcsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zLmZpbHRlclBhcmFtcyAmJiBxdWVyeVBhcmFtcy5maWx0ZXJQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUVBzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1mcCBvZiBxdWVyeVBhcmFtcy5maWx0ZXJQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKG1mcC5maWx0ZXJNYXRjaFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRUHMucHVzaChgJHt0aGlzLmV4dHJhY3RQcm9wZXJ0eU5hbWUobWZwLnByb3BlcnR5KX09JHtOZXdNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzfToke21mcC5maWx0ZXJWYWx1ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEVxdWFsczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUVBzLnB1c2goYCR7dGhpcy5leHRyYWN0UHJvcGVydHlOYW1lKG1mcC5wcm9wZXJ0eSl9PSR7TmV3TWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEVxdWFsc306JHttZnAuZmlsdGVyVmFsdWV9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXNlIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Gcm9tVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclFQcy5wdXNoKGAke3RoaXMuZXh0cmFjdFByb3BlcnR5TmFtZShtZnAucHJvcGVydHkpfT0ke05ld01lZGl1c0ZpbHRlck1hdGNoVHlwZS5CZXR3ZWVufToke21mcC5maWx0ZXJWYWx1ZX0sJHttZnAuZmlsdGVyVmFsdWVUb31gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkNvbnRhaW5zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRUHMucHVzaChgJHt0aGlzLmV4dHJhY3RQcm9wZXJ0eU5hbWUobWZwLnByb3BlcnR5KX09JHtOZXdNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuQ29udGFpbnN9OiR7bWZwLmZpbHRlclZhbHVlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUVBzLnB1c2goYCR7dGhpcy5leHRyYWN0UHJvcGVydHlOYW1lKG1mcC5wcm9wZXJ0eSl9PSR7TmV3TWVkaXVzRmlsdGVyTWF0Y2hUeXBlLlN0YXJ0c1dpdGh9OiR7bWZwLmZpbHRlclZhbHVlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRW5kc1dpdGg6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclFQcy5wdXNoKGAke3RoaXMuZXh0cmFjdFByb3BlcnR5TmFtZShtZnAucHJvcGVydHkpfT0ke05ld01lZGl1c0ZpbHRlck1hdGNoVHlwZS5FbmRzV2l0aH06JHttZnAuZmlsdGVyVmFsdWV9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXNlIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Jbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUVBzLnB1c2goYCR7dGhpcy5leHRyYWN0UHJvcGVydHlOYW1lKG1mcC5wcm9wZXJ0eSl9PSR7TmV3TWVkaXVzRmlsdGVyTWF0Y2hUeXBlLklufToke21mcC5maWx0ZXJWYWx1ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEluOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRUHMucHVzaChgJHt0aGlzLmV4dHJhY3RQcm9wZXJ0eU5hbWUobWZwLnByb3BlcnR5KX09JHtOZXdNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuTm90SW59OiR7bWZwLmZpbHRlclZhbHVlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FzZSBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU21hbGxlclRoYW46IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclFQcy5wdXNoKGAke3RoaXMuZXh0cmFjdFByb3BlcnR5TmFtZShtZnAucHJvcGVydHkpfT0ke05ld01lZGl1c0ZpbHRlck1hdGNoVHlwZS5MZXNzVGhhbn06JHttZnAuZmlsdGVyVmFsdWV9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXNlIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5HcmVhdGVyVGhhbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUVBzLnB1c2goYCR7dGhpcy5leHRyYWN0UHJvcGVydHlOYW1lKG1mcC5wcm9wZXJ0eSl9PSR7TmV3TWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkdyZWF0ZXJUaGFufToke21mcC5maWx0ZXJWYWx1ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXJsICs9ICcmJztcbiAgICAgICAgICAgIHVybCArPSBmaWx0ZXJRUHMuam9pbignJicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIl19
|