@sumaris-net/ngx-components 18.23.13 → 18.23.15
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/doc/changelog.md +6 -0
- package/esm2022/src/app/admin/users/person.service.mjs +139 -2
- package/esm2022/src/app/admin/users/users.mjs +3 -3
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +3 -3
- package/esm2022/src/app/core/services/account.service.mjs +28 -7
- package/esm2022/src/app/core/services/model/account.model.mjs +1 -1
- package/esm2022/src/app/social/message/message.service.mjs +2 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +58 -23
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/users/person.service.d.ts +19 -1
- package/src/app/core/account/account.page.d.ts +1 -1
- package/src/app/core/menu/menu.service.d.ts +1 -1
- package/src/app/core/services/account.service.d.ts +28 -6
- package/src/app/core/services/model/account.model.d.ts +1 -1
- package/src/assets/manifest.json +1 -1
- package/esm2022/src/app/admin/users/testing/person.testing.sevice.mjs +0 -128
- package/src/app/admin/users/testing/person.testing.sevice.d.ts +0 -17
package/doc/changelog.md
CHANGED
|
@@ -2079,3 +2079,9 @@ enh: Environment: add useHash property to configure Angular router to use hash U
|
|
|
2079
2079
|
|
|
2080
2080
|
# 18.23.12
|
|
2081
2081
|
- enh(account) Add avatar edition (enable by a config option)
|
|
2082
|
+
|
|
2083
|
+
# 18.23.14
|
|
2084
|
+
- enh(account-service) Add service options (new injection token), to be able to change graphql default queries
|
|
2085
|
+
|
|
2086
|
+
# 18.23.15
|
|
2087
|
+
- enh(entity-metadata-component) Fix avatar background color
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { Directive, inject, InjectionToken } from '@angular/core';
|
|
1
|
+
import { Directive, Injectable, inject, Inject, InjectionToken, Optional } from '@angular/core';
|
|
2
|
+
import { Person } from '../../core/services/model/person.model';
|
|
2
3
|
import { StatusIds } from '../../core/services/model/model.enum';
|
|
4
|
+
import { PersonFilter } from './person.filter';
|
|
3
5
|
import { BaseEntityService, } from '../../core/services/base-entity-service.class';
|
|
4
6
|
import { isNotEmptyArray } from '../../shared/functions';
|
|
5
7
|
import { NetworkService } from '../../core/services/network.service';
|
|
6
8
|
import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
|
|
7
9
|
import { ENVIRONMENT } from '../../../environments/environment.class';
|
|
10
|
+
import { gql } from 'apollo-angular';
|
|
8
11
|
import * as i0 from "@angular/core";
|
|
9
12
|
import * as i1 from "../../core/graphql/graphql.service";
|
|
10
13
|
import * as i2 from "../../core/services/platform.service";
|
|
11
14
|
export const APP_PERSON_SERVICE = new InjectionToken('PersonService');
|
|
15
|
+
export const APP_PERSON_SERVICE_OPTIONS = new InjectionToken('PersonServiceOptions');
|
|
12
16
|
// This class is under GPLv3 license
|
|
13
17
|
export class AbstractPersonService extends BaseEntityService {
|
|
14
18
|
dataType;
|
|
@@ -86,4 +90,137 @@ export class AbstractPersonService extends BaseEntityService {
|
|
|
86
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractPersonService, decorators: [{
|
|
87
91
|
type: Directive
|
|
88
92
|
}], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: undefined }, { type: undefined }, { type: undefined }] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFZakUsT0FBTyxFQUlMLGlCQUFpQixHQUVsQixNQUFNLCtDQUErQyxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7OztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsZUFBZSxDQUFDLENBQUM7QUFvQ2hHLG9DQUFvQztBQUVwQyxNQUFNLE9BQWdCLHFCQVVwQixTQUFRLGlCQUF1QztJQVNuQztJQUNBO0lBQ0E7SUFSRixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFN0MsWUFDRSxPQUF1QixFQUN2QixRQUF5QixFQUNmLFFBQXFCLEVBQ3JCLFVBQXVCLEVBQ3ZCLE9BQVU7UUFFcEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUo5QyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBRztRQUlwQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixNQUF5QixFQUN6QixhQUE2QixFQUM3QixNQUFtQixFQUNuQixJQUF1RDtRQUV2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBVyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVTLEtBQUssQ0FBQyxjQUFjLENBQzVCLE1BQWMsRUFDZCxJQUFZLEVBQ1osTUFBZSxFQUNmLGFBQTZCLEVBQzdCLE1BQW1CLEVBQ25CLElBQXVEO1FBRXZELE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUc7WUFDakIsTUFBTSxFQUFFLE1BQU0sSUFBSyxJQUFJLENBQUMsYUFBd0I7WUFDaEQsYUFBYSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsb0JBQW9CO1lBQ3pELE1BQU0sRUFBRyxNQUFjLElBQUssTUFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsTUFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQzlGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQztRQUNqRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQVcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFrQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFTLENBQUM7UUFFNUQsMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkQsSUFBSSxVQUFVLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBVSxFQUNWLE1BQW1CLEVBQ25CLE1BQXlCLEVBQ3pCLGFBQTZCLEVBQzdCLElBQWlDO1FBRWpDLElBQUssS0FBYSxFQUFFLEVBQUUsSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFTLENBQUM7UUFDaEUsS0FBSyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQzNFLE1BQU0sQ0FBQyxHQUFJLE1BQWMsSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFJLE1BQWMsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FDakIsQ0FBQyxFQUNELENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDaEIsTUFBTSxFQUNOLGFBQWEsRUFDYjtZQUNFLEdBQUksTUFBYztZQUNsQixVQUFVLEVBQUUsS0FBZTtZQUMzQixTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3hFLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVk7U0FDbEMsRUFDRDtZQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzFDLEdBQUksSUFBWTtTQUNWLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUErQjtRQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUksSUFBWSxFQUFFLENBQUMsQ0FBQztRQUMxSSxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUUsRUFBRSxFQUFFLEVBQVUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUErQjtRQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFJLElBQVksRUFBRSxDQUFDLENBQUM7UUFDL0gsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFFLEVBQUUsTUFBTSxFQUFVLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQWU7UUFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBeEhtQixxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1xuICBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyxcbiAgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIExvYWRSZXN1bHQsXG4gIFN1Z2dlc3RTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4vcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge1xuICBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyxcbiAgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gIEJhc2VFbnRpdHlTZXJ2aWNlLFxuICBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfUEVSU09OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcnNvblNlcnZpY2U8YW55LCBhbnk+PignUGVyc29uU2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25TZXJ2aWNlPFxuICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXIgPSBQZXJzb25GaWx0ZXIsXG4gIElEID0gbnVtYmVyLFxuICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuPiBleHRlbmRzIElFbnRpdGllc1NlcnZpY2U8RSwgRiwgV08+LFxuICAgIFN1Z2dlc3RTZXJ2aWNlPEUsIEY+LFxuICAgIElTdGFydGFibGVTZXJ2aWNlIHtcbiAgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogTE8gJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj47XG5cbiAgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPjtcblxuICBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj47XG5cbiAgY291bnRBbGwoZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0cz86IExPKTogUHJvbWlzZTxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8XG4gIFQgZXh0ZW5kcyBQZXJzb248YW55PixcbiAgUSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyA9IEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyxcbiAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4+IGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2VPcHRpb25zPFQsIG51bWJlciwgUSwgTSwgUz4ge31cblxuLy8gVGhpcyBjbGFzcyBpcyB1bmRlciBHUEx2MyBsaWNlbnNlXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBlcnNvblNlcnZpY2U8XG4gICAgRSBleHRlbmRzIFBlcnNvbjxFPiA9IFBlcnNvbjxhbnk+LFxuICAgIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXI8RiwgRT4gPSBQZXJzb25GaWx0ZXI8YW55LCBFPixcbiAgICBRIGV4dGVuZHMgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzID0gQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICAgIE0gZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zLFxuICAgIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gICAgV08gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4gPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4sXG4gICAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuICAgIE8gZXh0ZW5kcyBBYnN0cmFjdFBlcnNvblNlcnZpY2VPcHRpb25zPEUsIFEsIE0sIFM+ID0gQWJzdHJhY3RQZXJzb25TZXJ2aWNlT3B0aW9uczxFLCBRLCBNLCBTPixcbiAgPlxuICBleHRlbmRzIEJhc2VFbnRpdHlTZXJ2aWNlPEUsIEYsIG51bWJlciwgV08sIExPPlxuICBpbXBsZW1lbnRzIElQZXJzb25TZXJ2aWNlPEUsIEY+XG57XG4gIHByb3RlY3RlZCBuZXR3b3JrID0gaW5qZWN0KE5ldHdvcmtTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGVudGl0aWVzID0gaW5qZWN0KEVudGl0aWVzU3RvcmFnZSk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gRSxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IE9cbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgcGxhdGZvcm0sIGRhdGFUeXBlLCBmaWx0ZXJUeXBlLCBvcHRpb25zKTtcblxuICAgIC8vIGZvciBERVYgb25seSAtLS0tLVxuICAgIHRoaXMuX2RlYnVnID0gIWluamVjdChFTlZJUk9OTUVOVCkucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IGtleW9mIEUgfCBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgJiB7IGRlYnVnPzogYm9vbGVhbiB9XG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxFPj4ge1xuICAgIGNvbnN0IG9mZmxpbmUgPSB0aGlzLm5ldHdvcmsub2ZmbGluZSAmJiAoIW9wdHMgfHwgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ25ldHdvcmstb25seScpO1xuICAgIGlmIChvZmZsaW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsTG9jYWxseShvZmZzZXQsIHNpemUsIHNvcnRCeSBhcyBzdHJpbmcsIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5IGFzIGFueSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZEFsbExvY2FsbHkoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgZGVidWc/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PEU+PiB7XG4gICAgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmaWx0ZXIpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQgfHwgMCxcbiAgICAgIHNpemU6IHNpemUgfHwgMTAwLFxuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgKHRoaXMuZGVmYXVsdFNvcnRCeSBhcyBzdHJpbmcpLFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyOiAoZmlsdGVyIGFzIGFueSkgJiYgKGZpbHRlciBhcyBhbnkpLmFzRmlsdGVyRm4gPyAoZmlsdGVyIGFzIGFueSkuYXNGaWx0ZXJGbigpIDogZmlsdGVyLFxuICAgIH07XG5cbiAgICBjb25zdCB0eXBlbmFtZSA9ICh0aGlzLmRhdGFUeXBlIGFzIGFueSkuVFlQRU5BTUUgfHwgbmV3IHRoaXMuZGF0YVR5cGUoKS5fX3R5cGVuYW1lIHx8ICdQZXJzb25WTyc7XG4gICAgY29uc3QgeyBkYXRhLCB0b3RhbCB9ID0gYXdhaXQgdGhpcy5lbnRpdGllcy5sb2FkQWxsPEU+KHR5cGVuYW1lLCB2YXJpYWJsZXMpO1xuXG4gICAgY29uc3QgZW50aXRpZXMgPSB0aGlzLmZyb21PYmplY3RzKGRhdGEsIG9wdHMgYXMgYW55KTtcbiAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8RT4gPSB7IGRhdGE6IGVudGl0aWVzLCB0b3RhbCB9IGFzIGFueTtcblxuICAgIC8vIEFkZCBmZXRjaCBtb3JlIGZ1bmN0aW9uXG4gICAgY29uc3QgbmV4dE9mZnNldCA9IChvZmZzZXQgfHwgMCkgKyBlbnRpdGllcy5sZW5ndGg7XG4gICAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgICAgcmVzLmZldGNoTW9yZSA9ICgpID0+IHRoaXMubG9hZEFsbExvY2FsbHkobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBzb3J0Qnk/OiBrZXlvZiBFIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uc1xuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8RT4+IHtcbiAgICBpZiAoKHZhbHVlIGFzIGFueSk/LmlkICE9IG51bGwpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfSBhcyBhbnk7XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonICYmIHZhbHVlKSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZiA9IChmaWx0ZXIgYXMgYW55KSB8fCB7fTtcbiAgICBzb3J0QnkgPSAoc29ydEJ5IGFzIGFueSkgfHwgZi5zZWFyY2hBdHRyaWJ1dGUgfHwgKGYuc2VhcmNoQXR0cmlidXRlcyAmJiBmLnNlYXJjaEF0dHJpYnV0ZXNbMF0pO1xuICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAwLFxuICAgICAgIXZhbHVlID8gMzAgOiAxMCxcbiAgICAgIHNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB7XG4gICAgICAgIC4uLihmaWx0ZXIgYXMgYW55KSxcbiAgICAgICAgc2VhcmNoVGV4dDogdmFsdWUgYXMgc3RyaW5nLFxuICAgICAgICBzdGF0dXNJZHM6IChmICYmIGYuc3RhdHVzSWRzKSB8fCBbU3RhdHVzSWRzLkVOQUJMRSwgU3RhdHVzSWRzLlRFTVBPUkFSWV0sXG4gICAgICAgIHVzZXJQcm9maWxlczogZiAmJiBmLnVzZXJQcm9maWxlcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHdpdGhUb3RhbDogdHJ1ZSAvKiBuZWVkIGJ5IGF1dG9jb21wbGV0ZSAqLyxcbiAgICAgICAgLi4uKG9wdHMgYXMgYW55KSxcbiAgICAgIH0gYXMgYW55XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUlkKGlkOiBudW1iZXIsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgaW5jbHVkZWRJZHM6IFtpZF0gfSBhcyBhbnksIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4uKG9wdHMgYXMgYW55KSB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyAoZGF0YVswXSBhcyBhbnkpIDogKHsgaWQgfSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBhc3luYyBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgcHVia2V5IH0gYXMgYW55LCB7IHdpdGhUb3RhbDogZmFsc2UsIC4uLihvcHRzIGFzIGFueSkgfSk7XG4gICAgY29uc3Qgc291cmNlID0gaXNOb3RFbXB0eUFycmF5KGRhdGEpID8gKGRhdGFbMF0gYXMgYW55KSA6ICh7IHB1YmtleSB9IGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc09iamVjdChzb3VyY2U6IEUgfCBhbnkpOiBhbnkge1xuICAgIHJldHVybiBzdXBlci5hc09iamVjdChzb3VyY2UpO1xuICB9XG59XG4iXX0=
|
|
93
|
+
/* ------------------------------------
|
|
94
|
+
* Default GraphQL (from former testing service)
|
|
95
|
+
* ------------------------------------*/
|
|
96
|
+
export const PersonFragments = {
|
|
97
|
+
lightPerson: gql `
|
|
98
|
+
fragment LightPersonFragment on PersonVO {
|
|
99
|
+
id
|
|
100
|
+
firstName
|
|
101
|
+
lastName
|
|
102
|
+
avatar
|
|
103
|
+
department {
|
|
104
|
+
id
|
|
105
|
+
label
|
|
106
|
+
name
|
|
107
|
+
__typename
|
|
108
|
+
}
|
|
109
|
+
__typename
|
|
110
|
+
}
|
|
111
|
+
`,
|
|
112
|
+
person: gql `
|
|
113
|
+
fragment PersonFragment on PersonVO {
|
|
114
|
+
id
|
|
115
|
+
firstName
|
|
116
|
+
lastName
|
|
117
|
+
email
|
|
118
|
+
pubkey
|
|
119
|
+
avatar
|
|
120
|
+
statusId
|
|
121
|
+
updateDate
|
|
122
|
+
creationDate
|
|
123
|
+
profiles
|
|
124
|
+
username
|
|
125
|
+
usernameExtranet
|
|
126
|
+
department {
|
|
127
|
+
id
|
|
128
|
+
label
|
|
129
|
+
name
|
|
130
|
+
logo
|
|
131
|
+
__typename
|
|
132
|
+
}
|
|
133
|
+
__typename
|
|
134
|
+
}
|
|
135
|
+
`,
|
|
136
|
+
personFilter: gql `
|
|
137
|
+
fragment PersonFilterFragment on PersonFilterVO {
|
|
138
|
+
email
|
|
139
|
+
pubkey
|
|
140
|
+
searchText
|
|
141
|
+
statusIds
|
|
142
|
+
userProfiles
|
|
143
|
+
includedIds
|
|
144
|
+
excludedIds
|
|
145
|
+
searchAttribute
|
|
146
|
+
searchAttributes
|
|
147
|
+
}
|
|
148
|
+
`,
|
|
149
|
+
};
|
|
150
|
+
const DefaultPersonQueries = {
|
|
151
|
+
loadAll: gql `
|
|
152
|
+
query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
|
|
153
|
+
data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
|
|
154
|
+
...PersonFragment
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
${PersonFragments.person}
|
|
158
|
+
`,
|
|
159
|
+
loadAllWithTotal: gql `
|
|
160
|
+
query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
|
|
161
|
+
data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
|
|
162
|
+
...PersonFragment
|
|
163
|
+
}
|
|
164
|
+
total: personsCount(filter: $filter)
|
|
165
|
+
}
|
|
166
|
+
${PersonFragments.person}
|
|
167
|
+
`,
|
|
168
|
+
};
|
|
169
|
+
const DefaultPersonMutations = {
|
|
170
|
+
saveAll: gql `
|
|
171
|
+
mutation savePersons($data: [PersonVOInput]) {
|
|
172
|
+
data: savePersons(persons: $data) {
|
|
173
|
+
...PersonFragment
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
${PersonFragments.person}
|
|
177
|
+
`,
|
|
178
|
+
deleteAll: gql `
|
|
179
|
+
mutation deletePersons($ids: [Int]) {
|
|
180
|
+
deletePersons(ids: $ids)
|
|
181
|
+
}
|
|
182
|
+
`,
|
|
183
|
+
};
|
|
184
|
+
export class PersonService extends AbstractPersonService {
|
|
185
|
+
constructor(graphql, platform, options) {
|
|
186
|
+
super(graphql, platform, Person, PersonFilter, {
|
|
187
|
+
queries: { ...DefaultPersonQueries, ...(options?.queries || {}) },
|
|
188
|
+
mutations: { ...DefaultPersonMutations, ...(options?.mutations || {}) },
|
|
189
|
+
subscriptions: options?.subscriptions,
|
|
190
|
+
defaultSortBy: 'lastName',
|
|
191
|
+
defaultSortDirection: 'asc',
|
|
192
|
+
watchQueriesDeletePolicy: 'refetch-queries',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/* -- protected methods -- */
|
|
196
|
+
asObject(source) {
|
|
197
|
+
if (!source)
|
|
198
|
+
return undefined;
|
|
199
|
+
if (!(source instanceof Person)) {
|
|
200
|
+
source = Person.fromObject(source);
|
|
201
|
+
}
|
|
202
|
+
const target = source.asObject();
|
|
203
|
+
// Not known in server GraphQL schema
|
|
204
|
+
delete target.mainProfile;
|
|
205
|
+
target.department = source.department?.asObject();
|
|
206
|
+
return target;
|
|
207
|
+
}
|
|
208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }, { token: APP_PERSON_SERVICE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
209
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, providedIn: 'root' });
|
|
210
|
+
}
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, decorators: [{
|
|
212
|
+
type: Injectable,
|
|
213
|
+
args: [{ providedIn: 'root' }]
|
|
214
|
+
}], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: undefined, decorators: [{
|
|
215
|
+
type: Optional
|
|
216
|
+
}, {
|
|
217
|
+
type: Inject,
|
|
218
|
+
args: [APP_PERSON_SERVICE_OPTIONS]
|
|
219
|
+
}] }] });
|
|
220
|
+
export function providePersonService() {
|
|
221
|
+
return {
|
|
222
|
+
provide: APP_PERSON_SERVICE,
|
|
223
|
+
useExisting: PersonService,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUUxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBV2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBSUwsaUJBQWlCLEdBRWxCLE1BQU0sK0NBQStDLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsZUFBZSxDQUFDLENBQUM7QUEwQ2hHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUF1QixzQkFBc0IsQ0FBQyxDQUFDO0FBRTNHLG9DQUFvQztBQUVwQyxNQUFNLE9BQWdCLHFCQVVwQixTQUFRLGlCQUF1QztJQVNuQztJQUNBO0lBQ0E7SUFSRixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxD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O1lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakMscUNBQXFDO1FBQ3JDLE9BQVEsTUFBYyxDQUFDLFdBQVcsQ0FBQztRQUVsQyxNQUFjLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFM0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0EvQlUsYUFBYSwrRUFJRiwwQkFBMEI7NEdBSnJDLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUs3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQjs7QUE4QmxELE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBaUI7UUFDZixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFdBQVcsRUFBRSxhQUFhO0tBQzNCLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1xuICBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyxcbiAgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIExvYWRSZXN1bHQsXG4gIFN1Z2dlc3RTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4vcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge1xuICBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyxcbiAgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gIEJhc2VFbnRpdHlTZXJ2aWNlLFxuICBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBBUFBfUEVSU09OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcnNvblNlcnZpY2U8YW55LCBhbnk+PignUGVyc29uU2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25TZXJ2aWNlPFxuICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXIgPSBQZXJzb25GaWx0ZXIsXG4gIElEID0gbnVtYmVyLFxuICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuPiBleHRlbmRzIElFbnRpdGllc1NlcnZpY2U8RSwgRiwgV08+LFxuICAgIFN1Z2dlc3RTZXJ2aWNlPEUsIEY+LFxuICAgIElTdGFydGFibGVTZXJ2aWNlIHtcbiAgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogTE8gJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj47XG5cbiAgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPjtcblxuICBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj47XG5cbiAgY291bnRBbGwoZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0cz86IExPKTogUHJvbWlzZTxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8XG4gIFQgZXh0ZW5kcyBQZXJzb248YW55PixcbiAgUSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyA9IEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyxcbiAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4+IGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2VPcHRpb25zPFQsIG51bWJlciwgUSwgTSwgUz4ge31cblxuLy8gQWxsb3cgYXBwcyB0byBvdmVycmlkZSBHcmFwaFFMIG9wZXJhdGlvbnMgdXNlZCBieSBQZXJzb25TZXJ2aWNlXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvblNlcnZpY2VPcHRpb25zIHtcbiAgcXVlcmllcz86IFBhcnRpYWw8QmFzZUVudGl0eUdyYXBocWxRdWVyaWVzPjtcbiAgbXV0YXRpb25zPzogUGFydGlhbDxCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucz47XG4gIHN1YnNjcmlwdGlvbnM/OiBQYXJ0aWFsPEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucz47XG59XG5leHBvcnQgY29uc3QgQVBQX1BFUlNPTl9TRVJWSUNFX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UGVyc29uU2VydmljZU9wdGlvbnM+KCdQZXJzb25TZXJ2aWNlT3B0aW9ucycpO1xuXG4vLyBUaGlzIGNsYXNzIGlzIHVuZGVyIEdQTHYzIGxpY2Vuc2VcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UGVyc29uU2VydmljZTxcbiAgICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gICAgRiBleHRlbmRzIFBlcnNvbkZpbHRlcjxGLCBFPiA9IFBlcnNvbkZpbHRlcjxhbnksIEU+LFxuICAgIFEgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFF1ZXJpZXMgPSBCYXNlRW50aXR5R3JhcGhxbFF1ZXJpZXMsXG4gICAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gICAgUyBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucyA9IEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucyxcbiAgICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgICBMTyBleHRlbmRzIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+ID0gRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM8RT4sXG4gICAgTyBleHRlbmRzIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8RSwgUSwgTSwgUz4gPSBBYnN0cmFjdFBlcnNvblNlcnZpY2VPcHRpb25zPEUsIFEsIE0sIFM+LFxuICA+XG4gIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8RSwgRiwgbnVtYmVyLCBXTywgTE8+XG4gIGltcGxlbWVudHMgSVBlcnNvblNlcnZpY2U8RSwgRj5cbntcbiAgcHJvdGVjdGVkIG5ldHdvcmsgPSBpbmplY3QoTmV0d29ya1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZW50aXRpZXMgPSBpbmplY3QoRW50aXRpZXNTdG9yYWdlKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgcGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZGF0YVR5cGU6IG5ldyAoKSA9PiBFLFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcgKCkgPT4gRixcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogT1xuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgZGF0YVR5cGUsIGZpbHRlclR5cGUsIG9wdGlvbnMpO1xuXG4gICAgLy8gZm9yIERFViBvbmx5IC0tLS0tXG4gICAgdGhpcy5fZGVidWcgPSAhaW5qZWN0KEVOVklST05NRU5UKS5wcm9kdWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgRSB8IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgZGVidWc/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PEU+PiB7XG4gICAgY29uc3Qgb2ZmbGluZSA9IHRoaXMubmV0d29yay5vZmZsaW5lICYmICghb3B0cyB8fCBvcHRzLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jyk7XG4gICAgaWYgKG9mZmxpbmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGxMb2NhbGx5KG9mZnNldCwgc2l6ZSwgc29ydEJ5IGFzIHN0cmluZywgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnkgYXMgYW55LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkQWxsTG9jYWxseShcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8Rj4sXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zICYgeyBkZWJ1Zz86IGJvb2xlYW4gfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8RT4+IHtcbiAgICBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGZpbHRlcik7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCB8fCAwLFxuICAgICAgc2l6ZTogc2l6ZSB8fCAxMDAsXG4gICAgICBzb3J0Qnk6IHNvcnRCeSB8fCAodGhpcy5kZWZhdWx0U29ydEJ5IGFzIHN0cmluZyksXG4gICAgICBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uIHx8IHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24sXG4gICAgICBmaWx0ZXI6IChmaWx0ZXIgYXMgYW55KSAmJiAoZmlsdGVyIGFzIGFueSkuYXNGaWx0ZXJGbiA/IChmaWx0ZXIgYXMgYW55KS5hc0ZpbHRlckZuKCkgOiBmaWx0ZXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHR5cGVuYW1lID0gKHRoaXMuZGF0YVR5cGUgYXMgYW55KS5UWVBFTkFNRSB8fCBuZXcgdGhpcy5kYXRhVHlwZSgpLl9fdHlwZW5hbWUgfHwgJ1BlcnNvblZPJztcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsIH0gPSBhd2FpdCB0aGlzLmVudGl0aWVzLmxvYWRBbGw8RT4odHlwZW5hbWUsIHZhcmlhYmxlcyk7XG5cbiAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuZnJvbU9iamVjdHMoZGF0YSwgb3B0cyBhcyBhbnkpO1xuICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxFPiA9IHsgZGF0YTogZW50aXRpZXMsIHRvdGFsIH0gYXMgYW55O1xuXG4gICAgLy8gQWRkIGZldGNoIG1vcmUgZnVuY3Rpb25cbiAgICBjb25zdCBuZXh0T2Zmc2V0ID0gKG9mZnNldCB8fCAwKSArIGVudGl0aWVzLmxlbmd0aDtcbiAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICByZXMuZmV0Y2hNb3JlID0gKCkgPT4gdGhpcy5sb2FkQWxsTG9jYWxseShuZXh0T2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGFzeW5jIHN1Z2dlc3QoXG4gICAgdmFsdWU6IGFueSxcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIHNvcnRCeT86IGtleW9mIEUgfCBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zXG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxFPj4ge1xuICAgIGlmICgodmFsdWUgYXMgYW55KT8uaWQgIT0gbnVsbCkgcmV0dXJuIHsgZGF0YTogW3ZhbHVlXSB9IGFzIGFueTtcbiAgICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicgJiYgdmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmID0gKGZpbHRlciBhcyBhbnkpIHx8IHt9O1xuICAgIHNvcnRCeSA9IChzb3J0QnkgYXMgYW55KSB8fCBmLnNlYXJjaEF0dHJpYnV0ZSB8fCAoZi5zZWFyY2hBdHRyaWJ1dGVzICYmIGYuc2VhcmNoQXR0cmlidXRlc1swXSk7XG4gICAgcmV0dXJuIHRoaXMubG9hZEFsbChcbiAgICAgIDAsXG4gICAgICAhdmFsdWUgPyAzMCA6IDEwLFxuICAgICAgc29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHtcbiAgICAgICAgLi4uKGZpbHRlciBhcyBhbnkpLFxuICAgICAgICBzZWFyY2hUZXh0OiB2YWx1ZSBhcyBzdHJpbmcsXG4gICAgICAgIHN0YXR1c0lkczogKGYgJiYgZi5zdGF0dXNJZHMpIHx8IFtTdGF0dXNJZHMuRU5BQkxFLCBTdGF0dXNJZHMuVEVNUE9SQVJZXSxcbiAgICAgICAgdXNlclByb2ZpbGVzOiBmICYmIGYudXNlclByb2ZpbGVzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgd2l0aFRvdGFsOiB0cnVlIC8qIG5lZWQgYnkgYXV0b2NvbXBsZXRlICovLFxuICAgICAgICAuLi4ob3B0cyBhcyBhbnkpLFxuICAgICAgfSBhcyBhbnlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBpbmNsdWRlZElkczogW2lkXSB9IGFzIGFueSwgeyB3aXRoVG90YWw6IGZhbHNlLCAuLi4ob3B0cyBhcyBhbnkpIH0pO1xuICAgIGNvbnN0IHNvdXJjZSA9IGlzTm90RW1wdHlBcnJheShkYXRhKSA/IChkYXRhWzBdIGFzIGFueSkgOiAoeyBpZCB9IGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeVB1YmtleShwdWJrZXk6IHN0cmluZywgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBwdWJrZXkgfSBhcyBhbnksIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4uKG9wdHMgYXMgYW55KSB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyAoZGF0YVswXSBhcyBhbnkpIDogKHsgcHVia2V5IH0gYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyBhcyBhbnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogRSB8IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHN1cGVyLmFzT2JqZWN0KHNvdXJjZSk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEZWZhdWx0IEdyYXBoUUwgKGZyb20gZm9ybWVyIHRlc3Rpbmcgc2VydmljZSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBsaWdodFBlcnNvbjogZ3FsYFxuICAgIGZyYWdtZW50IExpZ2h0UGVyc29uRnJhZ21lbnQgb24gUGVyc29uVk8ge1xuICAgICAgaWRcbiAgICAgIGZpcnN0TmFtZVxuICAgICAgbGFzdE5hbWVcbiAgICAgIGF2YXRhclxuICAgICAgZGVwYXJ0bWVudCB7XG4gICAgICAgIGlkXG4gICAgICAgIGxhYmVsXG4gICAgICAgIG5hbWVcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb246IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgICBpZFxuICAgICAgZmlyc3ROYW1lXG4gICAgICBsYXN0TmFtZVxuICAgICAgZW1haWxcbiAgICAgIHB1YmtleVxuICAgICAgYXZhdGFyXG4gICAgICBzdGF0dXNJZFxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBwcm9maWxlc1xuICAgICAgdXNlcm5hbWVcbiAgICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICAgIGRlcGFydG1lbnQge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb25GaWx0ZXI6IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GaWx0ZXJGcmFnbWVudCBvbiBQZXJzb25GaWx0ZXJWTyB7XG4gICAgICBlbWFpbFxuICAgICAgcHVia2V5XG4gICAgICBzZWFyY2hUZXh0XG4gICAgICBzdGF0dXNJZHNcbiAgICAgIHVzZXJQcm9maWxlc1xuICAgICAgaW5jbHVkZWRJZHNcbiAgICAgIGV4Y2x1ZGVkSWRzXG4gICAgICBzZWFyY2hBdHRyaWJ1dGVcbiAgICAgIHNlYXJjaEF0dHJpYnV0ZXNcbiAgICB9XG4gIGAsXG59O1xuXG5jb25zdCBEZWZhdWx0UGVyc29uUXVlcmllczogQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzID0ge1xuICBsb2FkQWxsOiBncWxgXG4gICAgcXVlcnkgUGVyc29ucygkb2Zmc2V0OiBJbnQsICRzaXplOiBJbnQsICRzb3J0Qnk6IFN0cmluZywgJHNvcnREaXJlY3Rpb246IFN0cmluZywgJGZpbHRlcjogUGVyc29uRmlsdGVyVk9JbnB1dCkge1xuICAgICAgZGF0YTogcGVyc29ucyhmaWx0ZXI6ICRmaWx0ZXIsIG9mZnNldDogJG9mZnNldCwgc2l6ZTogJHNpemUsIHNvcnRCeTogJHNvcnRCeSwgc29ydERpcmVjdGlvbjogJHNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxuXG4gIGxvYWRBbGxXaXRoVG90YWw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zV2l0aFRvdGFsKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KSB7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbikge1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgdG90YWw6IHBlcnNvbnNDb3VudChmaWx0ZXI6ICRmaWx0ZXIpXG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1cbiAgYCxcbn07XG5cbmNvbnN0IERlZmF1bHRQZXJzb25NdXRhdGlvbnM6IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0ge1xuICBzYXZlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gc2F2ZVBlcnNvbnMoJGRhdGE6IFtQZXJzb25WT0lucHV0XSkge1xuICAgICAgZGF0YTogc2F2ZVBlcnNvbnMocGVyc29uczogJGRhdGEpIHtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxuICBkZWxldGVBbGw6IGdxbGBcbiAgICBtdXRhdGlvbiBkZWxldGVQZXJzb25zKCRpZHM6IFtJbnRdKSB7XG4gICAgICBkZWxldGVQZXJzb25zKGlkczogJGlkcylcbiAgICB9XG4gIGAsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvblNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFBlcnNvblNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IGltcGxlbWVudHMgSVBlcnNvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1BFUlNPTl9TRVJWSUNFX09QVElPTlMpIG9wdGlvbnM/OiBQZXJzb25TZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgUGVyc29uLCBQZXJzb25GaWx0ZXIsIHtcbiAgICAgIHF1ZXJpZXM6IHsgLi4uRGVmYXVsdFBlcnNvblF1ZXJpZXMsIC4uLihvcHRpb25zPy5xdWVyaWVzIHx8IHt9KSB9LFxuICAgICAgbXV0YXRpb25zOiB7IC4uLkRlZmF1bHRQZXJzb25NdXRhdGlvbnMsIC4uLihvcHRpb25zPy5tdXRhdGlvbnMgfHwge30pIH0sXG4gICAgICBzdWJzY3JpcHRpb25zOiBvcHRpb25zPy5zdWJzY3JpcHRpb25zIGFzIGFueSxcbiAgICAgIGRlZmF1bHRTb3J0Qnk6ICdsYXN0TmFtZScsXG4gICAgICBkZWZhdWx0U29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgICB3YXRjaFF1ZXJpZXNEZWxldGVQb2xpY3k6ICdyZWZldGNoLXF1ZXJpZXMnLFxuICAgIH0pO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogUGVyc29uIHwgYW55KTogYW55IHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIFBlcnNvbikpIHtcbiAgICAgIHNvdXJjZSA9IFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IHNvdXJjZS5hc09iamVjdCgpO1xuXG4gICAgLy8gTm90IGtub3duIGluIHNlcnZlciBHcmFwaFFMIHNjaGVtYVxuICAgIGRlbGV0ZSAodGFyZ2V0IGFzIGFueSkubWFpblByb2ZpbGU7XG5cbiAgICAodGFyZ2V0IGFzIGFueSkuZGVwYXJ0bWVudCA9IHNvdXJjZS5kZXBhcnRtZW50Py5hc09iamVjdCgpO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBlcnNvblNlcnZpY2UoKSB7XG4gIHJldHVybiA8UHJvdmlkZXI+e1xuICAgIHByb3ZpZGU6IEFQUF9QRVJTT05fU0VSVklDRSxcbiAgICB1c2VFeGlzdGluZzogUGVyc29uU2VydmljZSxcbiAgfVxufVxuIl19
|