@ecodev/natural 51.0.0 → 53.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/classes/abstract-controller.mjs +13 -13
- package/esm2022/lib/classes/abstract-detail.mjs +16 -8
- package/esm2022/lib/classes/abstract-list.mjs +8 -9
- package/esm2022/lib/classes/abstract-navigable-list.mjs +4 -4
- package/esm2022/lib/classes/providers.mjs +13 -0
- package/esm2022/lib/directives/http-prefix.directive.mjs +3 -2
- package/esm2022/lib/modules/alert/confirm.component.mjs +5 -4
- package/esm2022/lib/modules/alert/public-api.mjs +1 -2
- package/esm2022/lib/modules/avatar/component/avatar.component.mjs +8 -8
- package/esm2022/lib/modules/avatar/public-api.mjs +1 -2
- package/esm2022/lib/modules/avatar/service/avatar.service.mjs +1 -1
- package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +29 -11
- package/esm2022/lib/modules/columns-picker/public-api.mjs +1 -2
- package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +3 -2
- package/esm2022/lib/modules/common/directives/src-density.directive.mjs +5 -3
- package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +6 -3
- package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +6 -3
- package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +3 -2
- package/esm2022/lib/modules/common/pipes/swiss-date.pipe.mjs +3 -2
- package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +3 -2
- package/esm2022/lib/modules/common/public-api.mjs +2 -2
- package/esm2022/lib/modules/common/services/seo.provider.mjs +23 -0
- package/esm2022/lib/modules/detail-header/detail-header.component.mjs +12 -9
- package/esm2022/lib/modules/detail-header/public-api.mjs +1 -2
- package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +3 -2
- package/esm2022/lib/modules/dialog-trigger/public-api.mjs +1 -2
- package/esm2022/lib/modules/dropdown-components/public-api.mjs +1 -2
- package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +31 -17
- package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +12 -9
- package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +22 -9
- package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +22 -9
- package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +23 -10
- package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +23 -11
- package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +10 -8
- package/esm2022/lib/modules/file/component/file.component.mjs +22 -13
- package/esm2022/lib/modules/file/file-drop.directive.mjs +3 -2
- package/esm2022/lib/modules/file/file-select.directive.mjs +3 -2
- package/esm2022/lib/modules/file/public-api.mjs +1 -2
- package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +11 -8
- package/esm2022/lib/modules/fixed-button/public-api.mjs +1 -2
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +14 -13
- package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +1 -2
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +31 -13
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +4 -3
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +6 -5
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +4 -3
- package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +1 -2
- package/esm2022/lib/modules/icon/icon.directive.mjs +11 -7
- package/esm2022/lib/modules/icon/icon.module.mjs +31 -41
- package/esm2022/lib/modules/icon/public-api.mjs +2 -2
- package/esm2022/lib/modules/logger/error-handler.mjs +3 -3
- package/esm2022/lib/modules/logger/error.module.mjs +14 -28
- package/esm2022/lib/modules/logger/public-api.mjs +2 -2
- package/esm2022/lib/modules/matomo/public-api.mjs +1 -2
- package/esm2022/lib/modules/panels/panels.component.mjs +3 -3
- package/esm2022/lib/modules/panels/panels.module.mjs +8 -31
- package/esm2022/lib/modules/panels/public-api.mjs +2 -2
- package/esm2022/lib/modules/relations/public-api.mjs +1 -2
- package/esm2022/lib/modules/relations/relations.component.mjs +29 -12
- package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +7 -6
- package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +6 -5
- package/esm2022/lib/modules/search/group/group.component.mjs +9 -7
- package/esm2022/lib/modules/search/input/input.component.mjs +29 -14
- package/esm2022/lib/modules/search/public-api.mjs +1 -2
- package/esm2022/lib/modules/search/search/search.component.mjs +23 -8
- package/esm2022/lib/modules/select/public-api.mjs +1 -2
- package/esm2022/lib/modules/select/select/select.component.mjs +42 -16
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +24 -9
- package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +27 -10
- package/esm2022/lib/modules/sidenav/public-api.mjs +1 -2
- package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +3 -2
- package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +8 -7
- package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +3 -3
- package/esm2022/lib/modules/stamp/public-api.mjs +1 -2
- package/esm2022/lib/modules/stamp/stamp.component.mjs +8 -7
- package/esm2022/lib/modules/table-button/public-api.mjs +1 -2
- package/esm2022/lib/modules/table-button/table-button.component.mjs +10 -8
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ecodev-natural.mjs +949 -1290
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/classes/abstract-controller.d.ts +12 -6
- package/lib/classes/abstract-detail.d.ts +5 -6
- package/lib/classes/abstract-list.d.ts +6 -7
- package/lib/classes/abstract-navigable-list.d.ts +2 -2
- package/lib/classes/providers.d.ts +5 -0
- package/lib/directives/http-prefix.directive.d.ts +1 -1
- package/lib/modules/alert/confirm.component.d.ts +1 -1
- package/lib/modules/alert/public-api.d.ts +0 -1
- package/lib/modules/avatar/component/avatar.component.d.ts +3 -3
- package/lib/modules/avatar/public-api.d.ts +0 -1
- package/lib/modules/avatar/service/avatar.service.d.ts +2 -2
- package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -1
- package/lib/modules/columns-picker/public-api.d.ts +0 -1
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +1 -1
- package/lib/modules/common/directives/src-density.directive.d.ts +1 -1
- package/lib/modules/common/pipes/capitalize.pipe.d.ts +1 -1
- package/lib/modules/common/pipes/ellipsis.pipe.d.ts +1 -1
- package/lib/modules/common/pipes/enum.pipe.d.ts +1 -1
- package/lib/modules/common/pipes/swiss-date.pipe.d.ts +1 -1
- package/lib/modules/common/pipes/time-ago.pipe.d.ts +1 -1
- package/lib/modules/common/public-api.d.ts +1 -1
- package/lib/modules/common/services/seo.provider.d.ts +6 -0
- package/lib/modules/detail-header/detail-header.component.d.ts +1 -1
- package/lib/modules/detail-header/public-api.d.ts +0 -1
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +1 -1
- package/lib/modules/dialog-trigger/public-api.d.ts +0 -1
- package/lib/modules/dropdown-components/public-api.d.ts +0 -1
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +2 -3
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +1 -1
- package/lib/modules/file/component/file.component.d.ts +3 -3
- package/lib/modules/file/file-drop.directive.d.ts +1 -1
- package/lib/modules/file/file-select.directive.d.ts +1 -1
- package/lib/modules/file/public-api.d.ts +0 -1
- package/lib/modules/fixed-button/fixed-button.component.d.ts +1 -1
- package/lib/modules/fixed-button/public-api.d.ts +0 -1
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
- package/lib/modules/fixed-button-detail/public-api.d.ts +0 -1
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +1 -1
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +1 -1
- package/lib/modules/hierarchic-selector/public-api.d.ts +0 -1
- package/lib/modules/icon/icon.directive.d.ts +3 -3
- package/lib/modules/icon/icon.module.d.ts +5 -13
- package/lib/modules/icon/public-api.d.ts +1 -1
- package/lib/modules/logger/error-handler.d.ts +2 -2
- package/lib/modules/logger/error.module.d.ts +2 -9
- package/lib/modules/logger/public-api.d.ts +1 -1
- package/lib/modules/matomo/public-api.d.ts +0 -1
- package/lib/modules/panels/panels.component.d.ts +1 -2
- package/lib/modules/panels/panels.module.d.ts +2 -12
- package/lib/modules/panels/public-api.d.ts +1 -1
- package/lib/modules/relations/public-api.d.ts +0 -1
- package/lib/modules/relations/relations.component.d.ts +1 -1
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +1 -1
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +1 -1
- package/lib/modules/search/group/group.component.d.ts +1 -1
- package/lib/modules/search/input/input.component.d.ts +1 -1
- package/lib/modules/search/public-api.d.ts +0 -1
- package/lib/modules/search/search/search.component.d.ts +1 -1
- package/lib/modules/select/public-api.d.ts +0 -1
- package/lib/modules/select/select/select.component.d.ts +1 -1
- package/lib/modules/select/select-enum/select-enum.component.d.ts +1 -1
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +1 -1
- package/lib/modules/sidenav/public-api.d.ts +0 -1
- package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +1 -1
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
- package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +1 -1
- package/lib/modules/stamp/public-api.d.ts +0 -1
- package/lib/modules/stamp/stamp.component.d.ts +1 -1
- package/lib/modules/table-button/public-api.d.ts +0 -1
- package/lib/modules/table-button/table-button.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2022/lib/modules/alert/alert.module.mjs +0 -20
- package/esm2022/lib/modules/avatar/avatar.module.mjs +0 -19
- package/esm2022/lib/modules/columns-picker/columns-picker.module.mjs +0 -48
- package/esm2022/lib/modules/common/common-module.mjs +0 -54
- package/esm2022/lib/modules/detail-header/detail-header.module.mjs +0 -22
- package/esm2022/lib/modules/dialog-trigger/dialog-trigger.module.mjs +0 -19
- package/esm2022/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +0 -90
- package/esm2022/lib/modules/file/file.module.mjs +0 -25
- package/esm2022/lib/modules/fixed-button/fixed-button.module.mjs +0 -22
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +0 -20
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +0 -79
- package/esm2022/lib/modules/matomo/matomo-module.module.mjs +0 -12
- package/esm2022/lib/modules/relations/relations.module.mjs +0 -60
- package/esm2022/lib/modules/search/search.module.mjs +0 -90
- package/esm2022/lib/modules/select/select.module.mjs +0 -70
- package/esm2022/lib/modules/sidenav/sidenav.module.mjs +0 -25
- package/esm2022/lib/modules/stamp/stamp-module.module.mjs +0 -20
- package/esm2022/lib/modules/table-button/table-button.module.mjs +0 -22
- package/lib/modules/alert/alert.module.d.ts +0 -11
- package/lib/modules/avatar/avatar.module.d.ts +0 -8
- package/lib/modules/columns-picker/columns-picker.module.d.ts +0 -15
- package/lib/modules/common/common-module.d.ts +0 -18
- package/lib/modules/detail-header/detail-header.module.d.ts +0 -12
- package/lib/modules/dialog-trigger/dialog-trigger.module.d.ts +0 -9
- package/lib/modules/dropdown-components/natural-dropdown-components.module.d.ts +0 -24
- package/lib/modules/file/file.module.d.ts +0 -14
- package/lib/modules/fixed-button/fixed-button.module.d.ts +0 -12
- package/lib/modules/fixed-button-detail/fixed-button-detail.module.d.ts +0 -10
- package/lib/modules/hierarchic-selector/hierarchic-selector.module.d.ts +0 -23
- package/lib/modules/matomo/matomo-module.module.d.ts +0 -6
- package/lib/modules/relations/relations.module.d.ts +0 -18
- package/lib/modules/search/search.module.d.ts +0 -23
- package/lib/modules/select/select.module.d.ts +0 -22
- package/lib/modules/sidenav/sidenav.module.d.ts +0 -13
- package/lib/modules/stamp/stamp-module.module.d.ts +0 -9
- package/lib/modules/table-button/table-button.module.d.ts +0 -12
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Use
|
|
6
|
-
* import { takeUntil } from 'rxjs/operators';
|
|
7
|
-
* .pipe(takeUntil(this.ngUnsubscribe)) as first pipe on observables that should be destroyed on component destroy
|
|
8
|
-
*/
|
|
9
4
|
export class NaturalAbstractController {
|
|
10
5
|
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* Usage:
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { takeUntil } from 'rxjs/operators';
|
|
11
|
+
* .pipe(takeUntil(this.ngUnsubscribe)) // as first pipe on observables that should be destroyed on component destroy
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Instead of this, you should create the observable in the constructor or field initializers and use
|
|
15
|
+
* Angular native `.pipe(takeUntilDestroyed())`. And most likely subscribe at a later point. We keep this method until
|
|
16
|
+
* all existing usages (typically in `ngOnInit()`) are migrated away.
|
|
17
|
+
*/
|
|
11
18
|
this.ngUnsubscribe = new Subject();
|
|
12
19
|
}
|
|
13
20
|
ngOnDestroy() {
|
|
14
21
|
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
15
22
|
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
16
23
|
}
|
|
17
|
-
back() {
|
|
18
|
-
// This is bad, but we don't want to force the injection of document in ,
|
|
19
|
-
// all our child classes. And hopefully this particular method is only called
|
|
20
|
-
// by a user-interaction, so not used in SSR
|
|
21
|
-
// eslint-disable-next-line no-restricted-globals
|
|
22
|
-
window.history.back();
|
|
23
|
-
}
|
|
24
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalAbstractController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
25
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: NaturalAbstractController, ngImport: i0 }); }
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalAbstractController, decorators: [{
|
|
28
28
|
type: Directive
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUc3QixNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRUk7Ozs7Ozs7Ozs7O1dBV0c7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBTTFEO0lBSlUsV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdEQUF3RDtJQUMzRixDQUFDOzhHQWxCUSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVXNhZ2U6XG4gICAgICpcbiAgICAgKiBgYGB0c1xuICAgICAqIGltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbiAgICAgKiAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkgLy8gYXMgZmlyc3QgcGlwZSBvbiBvYnNlcnZhYmxlcyB0aGF0IHNob3VsZCBiZSBkZXN0cm95ZWQgb24gY29tcG9uZW50IGRlc3Ryb3lcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIEluc3RlYWQgb2YgdGhpcywgeW91IHNob3VsZCBjcmVhdGUgdGhlIG9ic2VydmFibGUgaW4gdGhlIGNvbnN0cnVjdG9yIG9yIGZpZWxkIGluaXRpYWxpemVycyBhbmQgdXNlXG4gICAgICogQW5ndWxhciBuYXRpdmUgYC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKWAuIEFuZCBtb3N0IGxpa2VseSBzdWJzY3JpYmUgYXQgYSBsYXRlciBwb2ludC4gV2Uga2VlcCB0aGlzIG1ldGhvZCB1bnRpbFxuICAgICAqIGFsbCBleGlzdGluZyB1c2FnZXMgKHR5cGljYWxseSBpbiBgbmdPbkluaXQoKWApIGFyZSBtaWdyYXRlZCBhd2F5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTsgLy8gdW5zdWJzY3JpYmUgZXZlcnlib2R5XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpOyAvLyBjb21wbGV0ZSB0aGUgc3RyZWFtLCBiZWNhdXNlIHdlIHdpbGwgbmV2ZXIgZW1pdCBhZ2FpblxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
2
|
import { UntypedFormGroup } from '@angular/forms';
|
|
3
3
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
4
|
import { kebabCase, merge, mergeWith, omit } from 'lodash-es';
|
|
@@ -11,11 +11,10 @@ import { EMPTY, endWith, last, switchMap } from 'rxjs';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
// @dynamic
|
|
13
13
|
export class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
14
|
-
constructor(key, service
|
|
14
|
+
constructor(key, service) {
|
|
15
15
|
super();
|
|
16
16
|
this.key = key;
|
|
17
17
|
this.service = service;
|
|
18
|
-
this.injector = injector;
|
|
19
18
|
/**
|
|
20
19
|
* Empty placeholder for data retrieved by the server
|
|
21
20
|
*/
|
|
@@ -31,9 +30,18 @@ export class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
|
31
30
|
* semantic of data on other tab, like relations that list other objects)
|
|
32
31
|
*/
|
|
33
32
|
this.showFabButton = true;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Injected service
|
|
35
|
+
*/
|
|
36
|
+
this.alertService = inject(NaturalAlertService);
|
|
37
|
+
/**
|
|
38
|
+
* Injected service
|
|
39
|
+
*/
|
|
40
|
+
this.router = inject(Router);
|
|
41
|
+
/**
|
|
42
|
+
* Injected service
|
|
43
|
+
*/
|
|
44
|
+
this.route = inject(ActivatedRoute);
|
|
37
45
|
}
|
|
38
46
|
ngOnInit() {
|
|
39
47
|
if (!this.isPanel) {
|
|
@@ -154,5 +162,5 @@ export class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
|
154
162
|
}
|
|
155
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
|
|
156
164
|
type: Directive
|
|
157
|
-
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHN0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFakUsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFjVCxTQUFRLG9CQUFvQjtJQW9DNUIsWUFDdUIsR0FBVyxFQUNkLE9BQWlCLEVBQ2QsUUFBa0I7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFKVyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwQ3pDOztXQUVHO1FBQ2EsU0FBSSxHQUFRO1lBQ3hCLEtBQUssRUFBRSxFQUFF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QzVFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDekIsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDZEQUE2RDtJQUNuRCxVQUFVLENBQUMsS0FBK0I7UUFDaEQsT0FBTztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDSCw2REFBNkQ7SUFDbkQsVUFBVSxDQUFDLEtBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsU0FBUyxDQUFDLEtBQTRCO1FBQzVDLE9BQU87SUFDWCxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVO1FBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBN01RLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2tlYmFiQ2FzZSwgbWVyZ2UsIG1lcmdlV2l0aCwgb21pdH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vbW9kdWxlcy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0UGFuZWx9IGZyb20gJy4uL21vZHVsZXMvcGFuZWxzL2Fic3RyYWN0LXBhbmVsJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7RXh0cmFjdFRjcmVhdGUsIEV4dHJhY3RUb25lLCBFeHRyYWN0VHVwZGF0ZSwgTGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtpZlZhbGlkLCB2YWxpZGF0ZUFsbEZvcm1Db250cm9sc30gZnJvbSAnLi92YWxpZGF0b3JzJztcbmltcG9ydCB7bWVyZ2VPdmVycmlkZUFycmF5fSBmcm9tICcuL3V0aWxpdHknO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7UXVlcnlWYXJpYWJsZXN9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0VNUFRZLCBlbmRXaXRoLCBsYXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0RGV0YWlsPFxuICAgICAgICBUU2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZTxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPExpdGVyYWw+LFxuICAgICAgICAgICAgUXVlcnlWYXJpYWJsZXMsXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0UGFuZWxcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8qKlxuICAgICAqIEVtcHR5IHBsYWNlaG9sZGVyIGZvciBkYXRhIHJldHJpZXZlZCBieSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGRhdGE6IGFueSA9IHtcbiAgICAgICAgbW9kZWw6IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHRoYXQgbWFuYWdlcyB0aGUgZGF0YSBmcm9tIHRoZSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IC8gaGlkZXMgdGhlIGJvdHRvbSBmYWIgYnV0dG9uIChtb3N0bHkgdG8gaGlkZSBpdCB3aGVuIHdlIGFyZSBvbiBvdGhlciB0YWJzIHdoZXJlIHNlbWFudGljIG9mIGJ1dHRvbiBjYW4gY29uZmxpY3Qgd2l0aCAuLi5cbiAgICAgKiBzZW1hbnRpYyBvZiBkYXRhIG9uIG90aGVyIHRhYiwgbGlrZSByZWxhdGlvbnMgdGhhdCBsaXN0IG90aGVyIG9iamVjdHMpXG4gICAgICovXG4gICAgcHVibGljIHNob3dGYWJCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RlZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuICAgICAgICB0aGlzLnJvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICB0aGlzLnJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHttb2RlbDogdGhpcy5zZXJ2aWNlLmdldENvbnNvbGlkYXRlZEZvckNsaWVudCgpfSwgZGF0YVt0aGlzLmtleV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHRoaXMuZGF0YSwgb21pdChkYXRhLCBbdGhpcy5rZXldKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmFiQnV0dG9uID0gaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShub3cgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5tb2RlbC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZlZhbGlkKHRoaXMuZm9ybSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVRvRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgcG9zdFVwZGF0ZSA9IChtb2RlbDogRXh0cmFjdFR1cGRhdGU8VFNlcnZpY2U+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgTWlzIMOgIGpvdXJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0VXBkYXRlKG1vZGVsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChub3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlTm93KHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlKHJlZGlyZWN0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB2YWxpZGF0ZUFsbEZvcm1Db250cm9scyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Ub0RhdGEoKTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5kYXRhLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgQ3LDqcOpYCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3N0Q3JlYXRlKG1vZGVsKS5waXBlKGVuZFdpdGgobW9kZWwpLCBsYXN0KCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0VXJsID0gdGhpcy5wYW5lbERhdGE/LmNvbmZpZy5wYXJhbXMubmV4dFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1VybCA9IG9sZFVybC5yZXBsYWNlKCcvbmV3JywgJy8nICsgbW9kZWwuaWQpICsgKG5leHRVcmwgPyAnLycgKyBuZXh0VXJsIDogJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5ld1VybCk7IC8vIHJlcGxhY2UgL25ldyBieSAvMTIzXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uJywgbW9kZWwuaWRdLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZShyZWRpcmVjdGlvblJvdXRlPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlXG4gICAgICAgICAgICAuY29uZmlybShcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgU3VwcHJlc3Npb25gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGNldCDDqWzDqW1lbnQgP2AsXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZURlbGV0ZSh0aGlzLmRhdGEubW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZGVsZXRlKFt0aGlzLmRhdGEubW9kZWxdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBTdXBwcmltw6lgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUGFuZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFNlcnZpY2U/LmdvVG9QZW51bHRpbWF0ZVBhbmVsKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRSb3V0ZSA9IFsnLi4vLi4vJyArIGtlYmFiQ2FzZSh0aGlzLmtleSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVkaXJlY3Rpb25Sb3V0ZSA/IHJlZGlyZWN0aW9uUm91dGUgOiBkZWZhdWx0Um91dGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBwb3N0VXBkYXRlKG1vZGVsOiBFeHRyYWN0VHVwZGF0ZTxUU2VydmljZT4pOiB2b2lkIHtcbiAgICAgICAgLy8gbm9vcFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgc3Vic2NyaWJlZCB0byBpbW1lZGlhdGVseSBhbmQgdGhlXG4gICAgICogcmVkaXJlY3QgbmF2aWdhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIGFmdGVyIHRoZSBvYnNlcnZhYmxlIGNvbXBsZXRlcy5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIHBvc3RDcmVhdGUobW9kZWw6IEV4dHJhY3RUY3JlYXRlPFRTZXJ2aWNlPik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBwcmVEZWxldGUobW9kZWw6IEV4dHJhY3RUb25lPFRTZXJ2aWNlPik6IHZvaWQge1xuICAgICAgICAvLyBub29wXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnNlcnZpY2UuZ2V0Rm9ybUdyb3VwKHRoaXMuZGF0YS5tb2RlbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgdmFsdWVzIG9mIGZvcm0gaW50byBgdGhpcy5kYXRhLm1vZGVsYC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybVRvRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2VXaXRoKHRoaXMuZGF0YS5tb2RlbCwgdGhpcy5mb3JtLnZhbHVlLCBtZXJnZU92ZXJyaWRlQXJyYXkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
165
|
+
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }]; } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHN0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFakUsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFjVCxTQUFRLG9CQUFvQjtJQW9DNUIsWUFBc0MsR0FBVyxFQUFrQixPQUFpQjtRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUQwQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQWtCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFqQ3BGOztXQUVHO1FBQ2EsU0FBSSxHQUFRO1lBQ3hCLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGOztXQUVHO1FB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QUNOO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDZEQUE2RDtJQUNuRCxVQUFVLENBQUMsS0FBK0I7UUFDaEQsT0FBTztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDSCw2REFBNkQ7SUFDbkQsVUFBVSxDQUFDLEtBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsU0FBUyxDQUFDLEtBQTRCO1FBQzVDLE9BQU87SUFDWCxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVO1FBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBck1RLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtrZWJhYkNhc2UsIG1lcmdlLCBtZXJnZVdpdGgsIG9taXR9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge05hdHVyYWxBbGVydFNlcnZpY2V9IGZyb20gJy4uL21vZHVsZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdFBhbmVsfSBmcm9tICcuLi9tb2R1bGVzL3BhbmVscy9hYnN0cmFjdC1wYW5lbCc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvYWJzdHJhY3QtbW9kZWwuc2VydmljZSc7XG5pbXBvcnQge0V4dHJhY3RUY3JlYXRlLCBFeHRyYWN0VG9uZSwgRXh0cmFjdFR1cGRhdGUsIExpdGVyYWx9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB7ZmluYWxpemV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aWZWYWxpZCwgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHN9IGZyb20gJy4vdmFsaWRhdG9ycyc7XG5pbXBvcnQge21lcmdlT3ZlcnJpZGVBcnJheX0gZnJvbSAnLi91dGlsaXR5JztcbmltcG9ydCB7UGFnaW5hdGVkRGF0YX0gZnJvbSAnLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1F1ZXJ5VmFyaWFibGVzfSBmcm9tICcuL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuaW1wb3J0IHtFTVBUWSwgZW5kV2l0aCwgbGFzdCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBYnN0cmFjdERldGFpbDxcbiAgICAgICAgVFNlcnZpY2UgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2U8XG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTxMaXRlcmFsPixcbiAgICAgICAgICAgIFF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgdW5rbm93bixcbiAgICAgICAgICAgIGFueVxuICAgICAgICA+LFxuICAgID5cbiAgICBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdFBhbmVsXG4gICAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgICAvKipcbiAgICAgKiBFbXB0eSBwbGFjZWhvbGRlciBmb3IgZGF0YSByZXRyaWV2ZWQgYnkgdGhlIHNlcnZlclxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBkYXRhOiBhbnkgPSB7XG4gICAgICAgIG1vZGVsOiB7fSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0aGF0IG1hbmFnZXMgdGhlIGRhdGEgZnJvbSB0aGUgY29udHJvbGxlclxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyAvIGhpZGVzIHRoZSBib3R0b20gZmFiIGJ1dHRvbiAobW9zdGx5IHRvIGhpZGUgaXQgd2hlbiB3ZSBhcmUgb24gb3RoZXIgdGFicyB3aGVyZSBzZW1hbnRpYyBvZiBidXR0b24gY2FuIGNvbmZsaWN0IHdpdGggLi4uXG4gICAgICogc2VtYW50aWMgb2YgZGF0YSBvbiBvdGhlciB0YWIsIGxpa2UgcmVsYXRpb25zIHRoYXQgbGlzdCBvdGhlciBvYmplY3RzKVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93RmFiQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEluamVjdGVkIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAgIC8qKlxuICAgICAqIEluamVjdGVkIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBtZXJnZSh7bW9kZWw6IHRoaXMuc2VydmljZS5nZXRDb25zb2xpZGF0ZWRGb3JDbGllbnQoKX0sIGRhdGFbdGhpcy5rZXldKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBtZXJnZSh0aGlzLmRhdGEsIG9taXQoZGF0YSwgW3RoaXMua2V5XSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVRhYihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0ZhYkJ1dHRvbiA9IGluZGV4ID09PSAwO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUobm93ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEubW9kZWwuaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbGlkYXRlQWxsRm9ybUNvbnRyb2xzKHRoaXMuZm9ybSk7XG5cbiAgICAgICAgaWZWYWxpZCh0aGlzLmZvcm0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Ub0RhdGEoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvc3RVcGRhdGUgPSAobW9kZWw6IEV4dHJhY3RUdXBkYXRlPFRTZXJ2aWNlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oJGxvY2FsaXplYE1pcyDDoCBqb3VyYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUobW9kZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zdFVwZGF0ZShtb2RlbCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAobm93KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZU5vdyh0aGlzLmRhdGEubW9kZWwpLnN1YnNjcmliZShwb3N0VXBkYXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLmRhdGEubW9kZWwpLnN1YnNjcmliZShwb3N0VXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZShyZWRpcmVjdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtVG9EYXRhKCk7XG4gICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlKHRoaXMuZGF0YS5tb2RlbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oJGxvY2FsaXplYENyw6nDqWApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zdENyZWF0ZShtb2RlbCkucGlwZShlbmRXaXRoKG1vZGVsKSwgbGFzdCgpKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAobW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUGFuZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvbGRVcmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IHRoaXMucGFuZWxEYXRhPy5jb25maWcucGFyYW1zLm5leHRSb3V0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdVcmwgPSBvbGRVcmwucmVwbGFjZSgnL25ldycsICcvJyArIG1vZGVsLmlkKSArIChuZXh0VXJsID8gJy8nICsgbmV4dFVybCA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChuZXdVcmwpOyAvLyByZXBsYWNlIC9uZXcgYnkgLzEyM1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLicsIG1vZGVsLmlkXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmZvcm0uZW5hYmxlKCkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocmVkaXJlY3Rpb25Sb3V0ZT86IHVua25vd25bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZVxuICAgICAgICAgICAgLmNvbmZpcm0oXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByZXNzaW9uYCxcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgVm91bGV6LXZvdXMgc3VwcHJpbWVyIGTDqWZpbml0aXZlbWVudCBjZXQgw6lsw6ltZW50ID9gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBTdXBwcmltZXIgZMOpZmluaXRpdmVtZW50YCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChjb25maXJtZWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVEZWxldGUodGhpcy5kYXRhLm1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShbdGhpcy5kYXRhLm1vZGVsXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgU3VwcHJpbcOpYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxTZXJ2aWNlPy5nb1RvUGVudWx0aW1hdGVQYW5lbCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0Um91dGUgPSBbJy4uLy4uLycgKyBrZWJhYkNhc2UodGhpcy5rZXkpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKHJlZGlyZWN0aW9uUm91dGUgPyByZWRpcmVjdGlvblJvdXRlIDogZGVmYXVsdFJvdXRlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmZvcm0uZW5hYmxlKCkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgcG9zdFVwZGF0ZShtb2RlbDogRXh0cmFjdFR1cGRhdGU8VFNlcnZpY2U+KTogdm9pZCB7XG4gICAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGJlIHN1YnNjcmliZWQgdG8gaW1tZWRpYXRlbHkgYW5kIHRoZVxuICAgICAqIHJlZGlyZWN0IG5hdmlnYXRpb24gd2lsbCBvbmx5IGhhcHBlbiBhZnRlciB0aGUgb2JzZXJ2YWJsZSBjb21wbGV0ZXMuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBwb3N0Q3JlYXRlKG1vZGVsOiBFeHRyYWN0VGNyZWF0ZTxUU2VydmljZT4pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgcHJlRGVsZXRlKG1vZGVsOiBFeHRyYWN0VG9uZTxUU2VydmljZT4pOiB2b2lkIHtcbiAgICAgICAgLy8gbm9vcFxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5zZXJ2aWNlLmdldEZvcm1Hcm91cCh0aGlzLmRhdGEubW9kZWwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlIHZhbHVlcyBvZiBmb3JtIGludG8gYHRoaXMuZGF0YS5tb2RlbGAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1Ub0RhdGEoKTogdm9pZCB7XG4gICAgICAgIG1lcmdlV2l0aCh0aGlzLmRhdGEubW9kZWwsIHRoaXMuZm9ybS52YWx1ZSwgbWVyZ2VPdmVycmlkZUFycmF5KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Directive, inject, Input } from '@angular/core';
|
|
3
3
|
import { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';
|
|
4
4
|
import { defaults, isEmpty, isEqual, pick } from 'lodash-es';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
@@ -29,10 +29,9 @@ function unwrapNavigable(item) {
|
|
|
29
29
|
*/
|
|
30
30
|
// @dynamic
|
|
31
31
|
export class NaturalAbstractList extends NaturalAbstractPanel {
|
|
32
|
-
constructor(service
|
|
32
|
+
constructor(service) {
|
|
33
33
|
super();
|
|
34
34
|
this.service = service;
|
|
35
|
-
this.injector = injector;
|
|
36
35
|
/**
|
|
37
36
|
* Wherever search should be loaded from url/storage and persisted in it too.
|
|
38
37
|
*/
|
|
@@ -81,10 +80,10 @@ export class NaturalAbstractList extends NaturalAbstractPanel {
|
|
|
81
80
|
pageIndex: 0,
|
|
82
81
|
pageSize: 25,
|
|
83
82
|
};
|
|
84
|
-
this.router =
|
|
85
|
-
this.route =
|
|
86
|
-
this.alertService =
|
|
87
|
-
this.persistenceService =
|
|
83
|
+
this.router = inject(Router);
|
|
84
|
+
this.route = inject(ActivatedRoute);
|
|
85
|
+
this.alertService = inject(NaturalAlertService);
|
|
86
|
+
this.persistenceService = inject(NaturalPersistenceService);
|
|
88
87
|
}
|
|
89
88
|
/**
|
|
90
89
|
* Variables that are always forced on a list, in addition to whatever the end-user might select
|
|
@@ -423,7 +422,7 @@ export class NaturalAbstractList extends NaturalAbstractPanel {
|
|
|
423
422
|
}
|
|
424
423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalAbstractList, decorators: [{
|
|
425
424
|
type: Directive
|
|
426
|
-
}], ctorParameters: function () { return [{ type: undefined }
|
|
425
|
+
}], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { persistSearch: [{
|
|
427
426
|
type: Input
|
|
428
427
|
}], availableColumns: [{
|
|
429
428
|
type: Input
|
|
@@ -432,4 +431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
432
431
|
}], forcedVariables: [{
|
|
433
432
|
type: Input
|
|
434
433
|
}] } });
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQVksS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQUMsY0FBYyxFQUFRLGFBQWEsRUFBb0IsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9HLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBSTdELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxpQkFBaUIsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUNILDRCQUE0QixFQUk1QixZQUFZLEdBQ2YsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUtqRCxTQUFTLGVBQWUsQ0FBQyxJQUFvQjtJQUN6QyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksZUFBZSxJQUFJLElBQUksRUFB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QUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDbkY7SUFDTCxDQUFDOzhHQW5pQlEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7b0hBeUJVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBS1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQWlCVSxlQUFlO3NCQUE5QixLQUFLO2dCQTRFSyxlQUFlO3NCQUR6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFnZUV2ZW50fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIERhdGEsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FeHRyYXMsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtkZWZhdWx0cywgaXNFbXB0eSwgaXNFcXVhbCwgcGlja30gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge05hdHVyYWxBbGVydFNlcnZpY2V9IGZyb20gJy4uL21vZHVsZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdFBhbmVsfSBmcm9tICcuLi9tb2R1bGVzL3BhbmVscy9hYnN0cmFjdC1wYW5lbCc7XG5pbXBvcnQge3RvR3JhcGhRTERvY3RyaW5lRmlsdGVyfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUnO1xuaW1wb3J0IHtmcm9tVXJsLCB0b1VybH0gZnJvbSAnLi4vbW9kdWxlcy9zZWFyY2gvY2xhc3Nlcy91cmwnO1xuaW1wb3J0IHtOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC90eXBlcy9mYWNldCc7XG5pbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0LW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbERhdGFTb3VyY2UsIFBhZ2luYXRlZERhdGF9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgICBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyLFxuICAgIFBhZ2luYXRpb25JbnB1dCxcbiAgICBRdWVyeVZhcmlhYmxlcyxcbiAgICBTb3J0aW5nLFxuICAgIFNvcnRpbmdPcmRlcixcbn0gZnJvbSAnLi9xdWVyeS12YXJpYWJsZS1tYW5hZ2VyJztcbmltcG9ydCB7RXh0cmFjdFRhbGwsIEV4dHJhY3RWYWxsLCBMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge05hdmlnYWJsZUl0ZW19IGZyb20gJy4vYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QnO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdmFpbGFibGVDb2x1bW59IGZyb20gJy4uL21vZHVsZXMvY29sdW1ucy1waWNrZXIvdHlwZXMnO1xuXG50eXBlIE1heWJlTmF2aWdhYmxlID0gTGl0ZXJhbCB8IE5hdmlnYWJsZUl0ZW08TGl0ZXJhbD47XG5cbmZ1bmN0aW9uIHVud3JhcE5hdmlnYWJsZShpdGVtOiBNYXliZU5hdmlnYWJsZSk6IExpdGVyYWwge1xuICAgIGlmICgnaXRlbScgaW4gaXRlbSAmJiAnaGFzTmF2aWdhdGlvbicgaW4gaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgaGVscHMgbWFuYWdpbmcgYSBsaXN0IG9mIHBhZ2luYXRlZCBpdGVtcyB0aGF0IGNhbiBiZSBmaWx0ZXJlZCxcbiAqIHNlbGVjdGVkLCBhbmQgdGhlbiBidWxrIGFjdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBvbiBzZWxlY3Rpb24uXG4gKlxuICogQ29tcG9uZW50cyBpbmhlcml0aW5nIGZyb20gdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcyBzdGFuZGFsb25lIHdpdGggaW5wdXQgYXR0cmlidXRlcy5cbiAqXG4gKiBVc2FnZSA6XG4gKiA8bmF0dXJhbC1teS1saXN0aW5nIFtmb3JjZWRWYXJpYWJsZXNdPVwie2ZpbHRlcjouLi59XCIgW3NlbGVjdGVkQ29sdW1uc109XCJbJ2NvbDEnXVwiIFtwZXJzaXN0U2VhcmNoXT1cImZhbHNlXCI+XG4gKi9cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBYnN0cmFjdExpc3Q8XG4gICAgICAgIFRTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlPFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTxMaXRlcmFsPixcbiAgICAgICAgICAgIFF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgICAgIC8vIEluIG1vc3QgY2FzZSB0aGlzIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkIGJ5IGluaGVyaXRpbmcgY2xhc3Nlcy5cbiAgICAgICAgLy8gSXQgc2hvdWxkIG9ubHkgYmUgc3BlY2lmaWVkIHRvIG92ZXJyaWRlIGRlZmF1bHQgaWYgdGhlIHNlcnZpY2UgaXRlbXMgYXJlXG4gICAgICAgIC8vIG1hcHBlZCB0byBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgbGlrZSBpbiBOYXR1cmFsQWJzdHJhY3ROYXZpZ2FibGVMaXN0XG4gICAgICAgIFRhbGwgZXh0ZW5kcyBQYWdpbmF0ZWREYXRhPE1heWJlTmF2aWdhYmxlPiA9IEV4dHJhY3RUYWxsPFRTZXJ2aWNlPixcbiAgICA+XG4gICAgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RQYW5lbFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKipcbiAgICAgKiBXaGVyZXZlciBzZWFyY2ggc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHVybC9zdG9yYWdlIGFuZCBwZXJzaXN0ZWQgaW4gaXQgdG9vLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwZXJzaXN0U2VhcmNoID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgY29sdW1ucyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gdGhlIGVuZC11c2VyIHRvIHNlbGVjdCBmcm9tLCB2aWEgYDxuYXR1cmFsLWNvbHVtbnMtcGlja2VyPmBcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYXZhaWxhYmxlQ29sdW1uczogQXZhaWxhYmxlQ29sdW1uW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENvbHVtbnMgbGlzdCBhZnRlciBpbnRlcmFjdGlvbiB3aXRoIGA8bmF0dXJhbC1jb2x1bW5zLXBpY2tlcj5gXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbnNGb3JUYWJsZTogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IGNvbHVtbiBzZWxlY3Rpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhcHBlbmVkIGFmdGVyIGA8bmF0dXJhbC1jb2x1bW5zLXBpY2tlcj5gIGluaXRpYWxpemF0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWZhdWx0U2VsZWN0ZWRDb2x1bW5zOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVmlzaWJsZSAoY2hlY2tlZCkgY29sdW1uc1xuICAgICAqXG4gICAgICogSW5zdGVhZCBvZiB1c2luZyB0aGlzLCB5b3Ugc2hvdWxkIGNvbnNpZGVyIGNvcnJlY3RseSBjb25maWd1cmluZyBgQXZhaWxhYmxlQ29sdW1uLmNoZWNrZWRgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZENvbHVtbnM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFNvdXJjZSBvZiB0aGUgbGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhU291cmNlPzogTmF0dXJhbERhdGFTb3VyY2U8VGFsbD47XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gZm9yIGJ1bGsgYWN0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8RXh0cmFjdFRhbGw8VFNlcnZpY2U+WydpdGVtcyddWzBdPih0cnVlLCBbXSk7XG5cbiAgICAvKipcbiAgICAgKiBOZXh0IGV4ZWN1dGVkIGFjdGlvbiBmcm9tIGJ1bGsgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBidWxrQWN0aW9uU2VsZWN0ZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ2VudHJhbGlzYXRpb24gb2YgcXVlcnkgdmFyaWFibGVzXG4gICAgICovXG4gICAgcHVibGljIHZhcmlhYmxlc01hbmFnZXI6IE5hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXI8RXh0cmFjdFZhbGw8VFNlcnZpY2U+PiA9IG5ldyBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyPFxuICAgICAgICBFeHRyYWN0VmFsbDxUU2VydmljZT5cbiAgICA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBuYXR1cmFsLXNlYXJjaCBmYWNldHNcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF0dXJhbFNlYXJjaEZhY2V0czogTmF0dXJhbFNlYXJjaEZhY2V0cyA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogUmVzdWx0IG9mIGEgc2VhcmNoIChjYW4gYmUgcHJvdmlkZWQgYXMgaW5wdXQgZm9yIGluaXRpYWxpc2F0aW9uKVxuICAgICAqL1xuICAgIHB1YmxpYyBuYXR1cmFsU2VhcmNoU2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgPSBbW11dO1xuXG4gICAgLyoqXG4gICAgICogRGF0YSBhdHRyaWJ1dGUgcHJvdmlkZWQgYnkgYWN0aXZhdGVkIHJvdXRlIHNuYXBzaG90XG4gICAgICovXG4gICAgcHVibGljIHJvdXRlRGF0YT86IERhdGE7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHBhZ2Ugc2l6ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFnZVNpemVPcHRpb25zID0gWzUsIDI1LCA1MCwgMTAwLCAyMDBdO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBwYWdpbmF0aW9uIHNldHVwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRQYWdpbmF0aW9uOiBSZXF1aXJlZDxQYWdpbmF0aW9uSW5wdXQ+ID0ge1xuICAgICAgICBvZmZzZXQ6IG51bGwsXG4gICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgcGFnZVNpemU6IDI1LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHNvcnRpbmdcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVmYXVsdFNvcnRpbmc/OiBBcnJheTxTb3J0aW5nPjtcblxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcjtcbiAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIHBlcnNpc3RlbmNlU2VydmljZTogTmF0dXJhbFBlcnNpc3RlbmNlU2VydmljZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogVFNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIgPSBpbmplY3Rvci5nZXQoUm91dGVyKTtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IGluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuICAgICAgICB0aGlzLnBlcnNpc3RlbmNlU2VydmljZSA9IGluamVjdG9yLmdldChOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYXJpYWJsZXMgdGhhdCBhcmUgYWx3YXlzIGZvcmNlZCBvbiBhIGxpc3QsIGluIGFkZGl0aW9uIHRvIHdoYXRldmVyIHRoZSBlbmQtdXNlciBtaWdodCBzZWxlY3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZm9yY2VkVmFyaWFibGVzKHZhcmlhYmxlczogUXVlcnlWYXJpYWJsZXMgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh2YXJpYWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGb3JjZWRWYXJpYWJsZXModmFyaWFibGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGNoYW5nZSwgY2hlY2sgRG9jdW1lbnRzQ29tcG9uZW50IHRoYXQgb3ZlcnJpZGVzIHRoaXMgZnVuY3Rpb24gd2l0aG91dCBjYWxsaW5nIHN1cGVyLm5nT25Jbml0KCkuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlRGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcblxuICAgICAgICB0aGlzLmluaXRGcm9tUm91dGUoKTtcbiAgICAgICAgdGhpcy5pbml0RnJvbVBlcnNpc3RlZCgpO1xuXG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5kZWZhdWx0cygncGFnaW5hdGlvbicsIHtwYWdpbmF0aW9uOiB0aGlzLmRlZmF1bHRQYWdpbmF0aW9ufSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuZGVmYXVsdHMoJ3NvcnRpbmcnLCB7c29ydGluZzogdGhpcy5kZWZhdWx0U29ydGluZ30gYXMgRXh0cmFjdFZhbGw8VFNlcnZpY2U+KTtcblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTmF0dXJhbERhdGFTb3VyY2U8VGFsbD4odGhpcy5nZXREYXRhT2JzZXJ2YWJsZSgpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcblxuICAgICAgICAvLyBVcGRhdGUgbmF0dXJhbCBzZWFyY2ggd2hlbiBoaXN0b3J5IGNoYW5nZXMgKGJhY2svZm9yd2FyZCBidXR0b25zKVxuICAgICAgICAvLyBIaXN0b3J5IHN0YXRlIGlzIGRldGVjdGFibGUgb25seSBvbiBOYXZpZ2F0aW9uU3RhcnQgKHBvcHN0YXRlIHRyaWdnZXIpXG4gICAgICAgIC8vIEJ1dCB3ZSBuZWVkIHBhcmFtZXRlcnMgZnJvbSB1cmwgYWZ0ZXIgTmF2aWdhdGlvbkVuZC4gU28gcHJvY2VlZCBpbiB0d28gc3RlcHMgd2l0aCBhIGZsYWcuXG4gICAgICAgIGxldCBpc1BvcFN0YXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0ICYmIGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzUG9wU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGlzUG9wU3RhdGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaXNQb3BTdGF0ZSA9IGZhbHNlOyAvLyByZXNldCBmbGFnXG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyA9IGZyb21VcmwodGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0RnJvbVVybCgnbnMnLCB0aGlzLnJvdXRlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJzaXN0IHNlYXJjaCBhbmQgdGhlbiBsYXVuY2ggd2hhdGV2ZXIgaXMgcmVxdWlyZWQgdG8gcmVmcmVzaCB0aGUgbGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWFyY2goXG4gICAgICAgIG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyxcbiAgICAgICAgbmF2aWdhdGlvbkV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMsXG4gICAgICAgIHJlc2V0UGFnaW5hdGlvbiA9IHRydWUsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgaW5kZXggdG8gcmVzdGFydCB0aGUgcGFnaW5hdGlvbiAocHJlc2VydmUgcGFnZVNpemUpXG5cbiAgICAgICAgaWYgKHJlc2V0UGFnaW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLm1lcmdlKCdwYWdpbmF0aW9uJywge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHBpY2sodGhpcy5kZWZhdWx0UGFnaW5hdGlvbiwgWydvZmZzZXQnLCAncGFnZUluZGV4J10pLFxuICAgICAgICAgICAgfSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGVyc2lzdCBpZiBhY3RpdmF0ZWRcbiAgICAgICAgLy8gVHdvIHBhcmFsbGVsIG5hdmlnYXRpb25zIGNvbmZsaWN0LiBXZSBmaXJzdCBwZXJzaXN0IHRoZSBzZWFyY2gsIHRoZW4gdGhlIHBhZ2luYXRpb25cbiAgICAgICAgaWYgKHRoaXMucGVyc2lzdFNlYXJjaCAmJiAhdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdChcbiAgICAgICAgICAgICAgICAnbnMnLFxuICAgICAgICAgICAgICAgIHRvVXJsKG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKSxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmFnZUtleSgpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMuZ2V0UGFnaW5hdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uKHBhZ2luYXRpb24sIHByb21pc2UsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZWFyY2hBbmRSZWZyZXNoTGlzdChuYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHNvcnRpbmcgdmFyaWFibGVzIGZvciBxdWVyeSBhbmQgcGVyc2lzdCB0aGUgbmV3IHZhbHVlIGluIHVybCBhbmQgbG9jYWwgc3RvcmFnZVxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG5vdCBwZXJzaXN0ZWRcbiAgICAgKiBAcGFyYW0gc29ydGluZ0V2ZW50cyBMaXN0IG9mIG1hdGVyaWFsIHNvcnRpbmcgZXZlbnRzXG4gICAgICovXG4gICAgcHVibGljIHNvcnRpbmcoc29ydGluZ0V2ZW50czogKFNvcnQgJiBQYXJ0aWFsPFBpY2s8U29ydGluZywgJ251bGxBc0hpZ2hlc3QnIHwgJ2VtcHR5U3RyaW5nQXNIaWdoZXN0Jz4+KVtdKTogdm9pZCB7XG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgaW5kZXggdG8gcmVzdGFydCB0aGUgcGFnaW5hdGlvbiAocHJlc2VydmUgcGFnZVNpemUpXG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5tZXJnZSgncGFnaW5hdGlvbicsIHtcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHBpY2sodGhpcy5kZWZhdWx0UGFnaW5hdGlvbiwgWydvZmZzZXQnLCAncGFnZUluZGV4J10pLFxuICAgICAgICB9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG5cbiAgICAgICAgLy8gUHJlc2VydmUgb25seSBzb3J0aW5nIGV2ZW50cyB3aXRoIGRpcmVjdGlvbiBhbmQgY29udmVydCBpbnRvIG5hdHVyYWwvZ3JhcGhxbCBTb3J0aW5nIHR5cGVcbiAgICAgICAgbGV0IHNvcnRpbmc6IFNvcnRpbmdbXSA9IHNvcnRpbmdFdmVudHNcbiAgICAgICAgICAgIC5maWx0ZXIoZSA9PiAhIWUuZGlyZWN0aW9uKVxuICAgICAgICAgICAgLm1hcChzb3J0aW5nRXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHM6IFNvcnRpbmcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBzb3J0aW5nRXZlbnQuYWN0aXZlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoc29ydGluZ0V2ZW50LmRpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgICAgICAgICAgICAgcy5vcmRlciA9IFNvcnRpbmdPcmRlci5BU0M7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3J0aW5nRXZlbnQuZGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgICAgICAgcy5vcmRlciA9IFNvcnRpbmdPcmRlci5ERVNDO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnbnVsbEFzSGlnaGVzdCcgaW4gc29ydGluZ0V2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHMubnVsbEFzSGlnaGVzdCA9IHNvcnRpbmdFdmVudC5udWxsQXNIaWdoZXN0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnZW1wdHlTdHJpbmdBc0hpZ2hlc3QnIGluIHNvcnRpbmdFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICBzLmVtcHR5U3RyaW5nQXNIaWdoZXN0ID0gc29ydGluZ0V2ZW50LmVtcHR5U3RyaW5nQXNIaWdoZXN0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRW1wdHkgc29ydGluZyBmYWxsYmFja3Mgb24gZGVmYXVsdFxuICAgICAgICBpZiAoc29ydGluZy5sZW5ndGggPT09IDAgJiYgdGhpcy5kZWZhdWx0U29ydGluZykge1xuICAgICAgICAgICAgc29ydGluZyA9IHRoaXMuZGVmYXVsdFNvcnRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgc29ydGluZyBhcyBzZWFyY2ggdmFyaWFibGVcbiAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnc29ydGluZycsIHtzb3J0aW5nOiBzb3J0aW5nfSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuXG4gICAgICAgIGlmICh0aGlzLnBlcnNpc3RTZWFyY2ggJiYgIXRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgLy8gSWYgc29ydGluZyBpcyBlcXVhbCB0byBkZWZhdWx0IHNvcnRpbmcsIG51bGxpZnkgaXQgdG8gcmVtb3ZlIGZyb20gcGVyc2lzdGVuY2UgKHVybCBhbmQgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3QoXG4gICAgICAgICAgICAgICAgJ3NvJyxcbiAgICAgICAgICAgICAgICBpc0VxdWFsKHNvcnRpbmcsIHRoaXMuZGVmYXVsdFNvcnRpbmcpID8gbnVsbCA6IHNvcnRpbmcsXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN0b3JhZ2VLZXkoKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLmdldFBhZ2luYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbihwYWdpbmF0aW9uLCBwcm9taXNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBjdXJyZW50IHBhZ2luYXRpb24sIGVpdGhlciB0aGUgdXNlciBkZWZpbmVkIG9uZSwgb3IgdGhlIGRlZmF1bHQgb25lXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQYWdpbmF0aW9uKCk6IFBhZ2luYXRpb25JbnB1dCB7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb25DaGFubmVsOiBQYXJ0aWFsPEV4dHJhY3RWYWxsPFRTZXJ2aWNlPj4gfCB1bmRlZmluZWQgPSB0aGlzLnZhcmlhYmxlc01hbmFnZXIuZ2V0KCdwYWdpbmF0aW9uJyk7XG5cbiAgICAgICAgaWYgKHBhZ2luYXRpb25DaGFubmVsICYmIHBhZ2luYXRpb25DaGFubmVsLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIC8vIFRoZSBjYXN0IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGJlY2F1c2UgVHlwZXNjcmlwdCBjb3JyZWN0bHkgbmFycm93IGRvd24gdGhlIHR5cGUgdG8gYFBhZ2luYXRpb25JbnB1dGBcbiAgICAgICAgICAgIC8vIGJ1dCBzb21laG93IHN0aWxsIGdldCBjb25mdXNlZCB3aGVuIHJldHVybmluZyBpdFxuICAgICAgICAgICAgcmV0dXJuIHBhZ2luYXRpb25DaGFubmVsLnBhZ2luYXRpb24gYXMgUGFnaW5hdGlvbklucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBhZ2luYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHBhZ2luYXRpb24gdmFyaWFibGVzIGZvciBxdWVyeSBhbmQgcGVyc2lzdCBpbiB1cmwgYW5kIGxvY2FsIHN0b3JhZ2UgdGhlIG5ldyB2YWx1ZVxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIG5vdCBwZXJzaXN0ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCBOYXR1cmFsIG9yIFBhZ2luYXRvciBQYWdlRXZlbnRcbiAgICAgKiBAcGFyYW0gZGVmZXIgUHJvbWlzZSAodXN1YWxseSBhIHJvdXRlIHByb21pc2UpIHRoYXQgZGVmZXJzIHRoZSByZWRpcmVjdGlvbiBmcm9tIHRoaXMgY2FsbCB0byBwcmV2ZW50IHJvdXRlIG5hdmlnYXRpb24gY29sbGlzaW9uXG4gICAgICogQHBhcmFtIG5hdmlnYXRpb25FeHRyYXMgQW5ndWxhciByb3V0ZXIgbmF2aWdhdGlvbiBvcHRpb25zLiBJcyByZWxldmFudCBvbmx5IGlmIHBlcnNpc3RTZWFyY2ggaXMgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBwYWdpbmF0aW9uKFxuICAgICAgICBldmVudDogUGFnaW5hdGlvbklucHV0IHwgUGFnZUV2ZW50LFxuICAgICAgICBkZWZlcj86IFByb21pc2U8dW5rbm93bj4sXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IHZvaWQge1xuICAgICAgICBsZXQgcGFnaW5hdGlvbjogUGFnaW5hdGlvbklucHV0ID0gdGhpcy5kZWZhdWx0UGFnaW5hdGlvbjtcbiAgICAgICAgbGV0IGZvclBlcnNpc3RlbmNlOiBQYWdpbmF0aW9uSW5wdXQgfCBudWxsID0gbnVsbDtcblxuICAgICAgICAvLyBDb252ZXJ0IHRvIG5hdHVyYWwvZ3JhcGhxbCBmb3JtYXQsIGFkZGluZyBtaXNzaW5nIGF0dHJpYnV0ZXNcbiAgICAgICAgbGV0IG5hdHVyYWxFdmVudDogUGFnaW5hdGlvbklucHV0ID0gcGljayhldmVudCwgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0UGFnaW5hdGlvbikpOyAvLyBvYmplY3Qgd2l0aCBvbmx5IFBhZ2luYXRpb25JbnB1dCBhdHRyaWJ1dGVzXG4gICAgICAgIG5hdHVyYWxFdmVudCA9IGRlZmF1bHRzKG5hdHVyYWxFdmVudCwgdGhpcy5kZWZhdWx0UGFnaW5hdGlvbik7IC8vIERlZmF1bHQgd2l0aCBjb250cm9sbGVyIHZhbHVlc1xuXG4gICAgICAgIGlmICghaXNFcXVhbChuYXR1cmFsRXZlbnQsIHRoaXMuZGVmYXVsdFBhZ2luYXRpb24pKSB7XG4gICAgICAgICAgICBwYWdpbmF0aW9uID0gZm9yUGVyc2lzdGVuY2UgPSBuYXR1cmFsRXZlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCdwYWdpbmF0aW9uJywge3BhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG5cbiAgICAgICAgdGhpcy5wZXJzaXN0UGFnaW5hdGlvbihmb3JQZXJzaXN0ZW5jZSwgZGVmZXIsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwZXJzaXN0UGFnaW5hdGlvbihcbiAgICAgICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbklucHV0IHwgbnVsbCxcbiAgICAgICAgZGVmZXI/OiBQcm9taXNlPHVua25vd24+LFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGVyc2lzdFNlYXJjaCAmJiAhdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICAvLyBEZWNsYXJlIHBlcnNpc3QgZnVuY3Rpb25cbiAgICAgICAgICAgIGNvbnN0IHBlcnNpc3QgPSAodmFsdWU6IFBhZ2luYXRpb25JbnB1dCB8IG51bGwpOiBQcm9taXNlPGJvb2xlYW4+ID0+XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdCgncGEnLCB2YWx1ZSwgdGhpcy5yb3V0ZSwgdGhpcy5nZXRTdG9yYWdlS2V5KCksIG5hdmlnYXRpb25FeHRyYXMpO1xuXG4gICAgICAgICAgICAvLyBDYWxsIGZ1bmN0aW9uIGRpcmVjdGx5IG9yIHdoZW4gcHJvbWlzZSBpcyByZXNvbHZlZFxuICAgICAgICAgICAgaWYgKGRlZmVyKSB7XG4gICAgICAgICAgICAgICAgZGVmZXIudGhlbigoKSA9PiBwZXJzaXN0KHBhZ2luYXRpb24pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVyc2lzdChwYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZT8uZGF0YT8uaXRlbXMuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5hdmlnYWJsZShyb3cpO1xuICAgICAgICAgICAgICAgIGlmICh1bndyYXBwZWQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHVud3JhcHBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgICAgIGxldCBudW1Sb3dzID0gMDtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlPy5kYXRhPy5pdGVtcy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bndyYXBwZWQgPSB1bndyYXBOYXZpZ2FibGUocm93KTtcbiAgICAgICAgICAgIGlmICh1bndyYXBwZWQuaWQpIHtcbiAgICAgICAgICAgICAgICBudW1Sb3dzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBhIGJ1bGsgYWN0aW9uIGlzIHNlbGVjdGVkXG4gICAgICovXG4gICAgcHVibGljIGJ1bGtBY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5idWxrQWN0aW9uU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIGV4ZWN1dGUgYSBidWxrIGFjdGlvbiB3aXRob3V0IHNlbGVjdGluZyBvbmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKHRoaXMuYnVsa0FjdGlvblNlbGVjdGVkIGluIHRoaXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBleGVjdXRlIGEgYnVsayBhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdDogJyArIHRoaXMuYnVsa0FjdGlvblNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICh0aGlzIGFzIGFueSlbdGhpcy5idWxrQWN0aW9uU2VsZWN0ZWRdKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gbm9uLXBhbmVsIGNvbnRleHQsIGhlYWRlciBpcyBhbHdheXMgdmlzaWJsZS5cbiAgICAgKiBJbiBwYW5lbCBjb250ZXh0LCBoZWFkZXIgaXMgaGlkZGVuIHdoZW4gbm8gcmVzdWx0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFuZWwgfHwgKHRoaXMuaXNQYW5lbCAmJiB0aGlzLnNob3dUYWJsZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggaXMgdmlzaWJsZSBpbiBtb3N0IGNhc2VzLCBidXQgaGlkZGVuIG9uIGEgcGFuZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1NlYXJjaCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFuZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGFibGUgc2hvdWxkIGJlIHNob3duIG9ubHkgd2hlbiB0aGVyZSBpcyBkYXRhXG4gICAgICovXG4gICAgcHVibGljIHNob3dUYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kYXRhU291cmNlICYmICEhdGhpcy5kYXRhU291cmNlLmRhdGEgJiYgdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBObyByZXN1bHRzIGlzIHNob3duIHdoZW4gdGhlcmUgaXMgbm8gaXRlbXMsIGJ1dCBvbmx5IGluIG5vbi1wYW5lbCBjb250ZXh0IG9ubHkuXG4gICAgICogSW4gcGFuZWxzIHdlIHdhbnQgZGlzY3JldGUgbW9kZSwgdGhlcmUgaXMgbm8gc2VhcmNoIGFuZCBubyBcIm5vLXJlc3VsdHNcIlxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93Tm9SZXN1bHRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNQYW5lbCAmJiAhIXRoaXMuZGF0YVNvdXJjZSAmJiAhIXRoaXMuZGF0YVNvdXJjZS5kYXRhICYmIHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIGZyb20gcm91dGUuXG4gICAgICpcbiAgICAgKiBVc2VzIGRhdGEgcHJvdmlkZWQgYnkgcm91dGVyIHN1Y2ggYXM6XG4gICAgICpcbiAgICAgKiAtIGByb3V0ZS5kYXRhLmZvcmNlZFZhcmlhYmxlc2BcbiAgICAgKiAtIGByb3V0ZS5kYXRhLmF2YWlsYWJsZUNvbHVtbnNgXG4gICAgICogLSBgcm91dGUuZGF0YS5zZWxlY3RlZENvbHVtbnNgXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRGcm9tUm91dGUoKTogdm9pZCB7XG4gICAgICAgIC8vIFZhcmlhYmxlc1xuICAgICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcmNlZFZhcmlhYmxlcykge1xuICAgICAgICAgICAgdGhpcy5hcHBseUZvcmNlZFZhcmlhYmxlcyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZm9yY2VkVmFyaWFibGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEF2YWlsYWJsZSBjb2x1bW5zXG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuYXZhaWxhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVDb2x1bW5zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmF2YWlsYWJsZUNvbHVtbnM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb2x1bW5zXG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuc2VsZWN0ZWRDb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5zZWxlY3RlZENvbHVtbnM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGF0YU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxUYWxsPiB7XG4gICAgICAgIC8vIEhlcmUgdGhlIGNhc3RpbmcgaXMgYSBiaXQgdW5mb3J0dW5hdGUgYnV0IHJlcXVpcmVkIGJlY2F1c2UgTmF0dXJhbEFic3RyYWN0TmF2aWdhYmxlTGlzdFxuICAgICAgICAvLyBicmVha3MgdGhlIGRhdGEgc3RydWN0dXJlIGNvbnZlbnRpb24gKGJ5IHdyYXBwaW5nIGl0ZW1zIGluIGEgc3RydWN0dXJlKS4gSWRlYWxseSB3ZSBzaG91bGQgcmVtb3ZlXG4gICAgICAgIC8vIHRoZSBjYXN0aW5nIGFuZCByZXNvbHZlIHRoaW5ncyBpbiBhIGJldHRlciB3YXksIGJ1dCB0aGF0J3MgdG9vIG11Y2ggd29yayBmb3Igbm93XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC53YXRjaEFsbCh0aGlzLnZhcmlhYmxlc01hbmFnZXIgYXMgdW5rbm93biBhcyBhbnkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlPFRhbGw+O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RnJvbVBlcnNpc3RlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcnNpc3RTZWFyY2ggfHwgdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9yYWdlS2V5ID0gdGhpcy5nZXRTdG9yYWdlS2V5KCk7XG5cbiAgICAgICAgLy8gUGFnaW5hdGlvbiA6IHBhXG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLnBlcnNpc3RlbmNlU2VydmljZS5nZXQoJ3BhJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmIChwYWdpbmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCdwYWdpbmF0aW9uJywge3BhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTb3J0aW5nIDogc29cbiAgICAgICAgY29uc3Qgc29ydGluZyA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLmdldCgnc28nLCB0aGlzLnJvdXRlLCBzdG9yYWdlS2V5KTtcbiAgICAgICAgaWYgKHNvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3NvcnRpbmcnLCB7c29ydGluZ30gYXMgRXh0cmFjdFZhbGw8VFNlcnZpY2U+KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbHVtbnNcbiAgICAgICAgY29uc3QgcGVyc2lzdGVkQ29sdW1ucyA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLmdldCgnY29sJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgcGVyc2lzdGVkQ29sdW1ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gcGVyc2lzdGVkQ29sdW1ucy5zcGxpdCgnLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTmF0dXJhbCBzZWFyY2ggOiBuc1xuICAgICAgICB0aGlzLm5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zID0gZnJvbVVybCh0aGlzLnBlcnNpc3RlbmNlU2VydmljZS5nZXQoJ25zJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSkpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlYXJjaEFuZFJlZnJlc2hMaXN0KHRoaXMubmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMsIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZWFyY2hBbmRSZWZyZXNoTGlzdChcbiAgICAgICAgbmF0dXJhbFNlYXJjaFNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zLFxuICAgICAgICBpZ25vcmVFbXB0eUZpbHRlciA9IGZhbHNlLFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0b0dyYXBoUUxEb2N0cmluZUZpbHRlcih0aGlzLm5hdHVyYWxTZWFyY2hGYWNldHMsIG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKTtcblxuICAgICAgICBpZiAoaWdub3JlRW1wdHlGaWx0ZXIgJiYgaXNFbXB0eShmaWx0ZXIpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCduYXR1cmFsLXNlYXJjaCcsIHtmaWx0ZXJ9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGN1cnJlbnQgdXJsIGV4Y2x1ZGluZyBsYXN0IHJvdXRlIHBhcmFtZXRlcnM7XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFN0b3JhZ2VLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XG4gICAgICAgIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzW3VybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzLmxlbmd0aCAtIDFdLnBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcmV0dXJuIHVybFRyZWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYnVsa2REZWxldGVDb25maXJtYXRpb24oKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsZXJ0U2VydmljZS5jb25maXJtKFxuICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByZXNzaW9uYCxcbiAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGxlcyDDqWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzID9gLFxuICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBtdWx0aXBsZSBpdGVtcyBhdCBvbmNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGJ1bGtEZWxldGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICB0aGlzLmJ1bGtkRGVsZXRlQ29uZmlybWF0aW9uKCkuc3Vic2NyaWJlKGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmJ1bGtBY3Rpb25TZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgLy8gQXNzdW1lIHRoYXQgb3VyIG9iamVjdHMgaGF2ZSBJRC4gVGhpcyBpcyB0cnVlIGluIGFsbW9zdCBhbGwgY2FzZXMuIEJ1dCBpZlxuICAgICAgICAgICAgICAgIC8vIGl0IGlzIG5vdCwgbGlrZSBBdHRyaWJ1dGVSZXBvcnRDb21wb25lbnQsIHRoZW4gdGhlIGluaGVyaXRpbmcgY2xhc3MgbXVzdFxuICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNhbGwgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgYXMge2lkOiBzdHJpbmd9W107XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKHNlbGVjdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgU3VwcHJpbcOpYCk7XG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWJqZWN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlGb3JjZWRWYXJpYWJsZXModmFyaWFibGVzOiBRdWVyeVZhcmlhYmxlcyk6IHZvaWQge1xuICAgICAgICBpZiAodmFyaWFibGVzLmZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnZm9yY2VkLWZpbHRlcicsIHtmaWx0ZXI6IHZhcmlhYmxlcy5maWx0ZXJ9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFyaWFibGVzLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3BhZ2luYXRpb24nLCB7cGFnaW5hdGlvbjogdmFyaWFibGVzLnBhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFyaWFibGVzLnNvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3NvcnRpbmcnLCB7c29ydGluZzogdmFyaWFibGVzLnNvcnRpbmd9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnNGb3JUYWJsZSA9IGNvbHVtbnM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBlcnNpc3RTZWFyY2ggfHwgdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZmlyc3Qgc2VsZWN0aW9uIHdlIHJlY2VpdmUgaXMgdGhlIGRlZmF1bHQgb25lIG1hZGUgYnkgYDxuYXR1cmFsLWNvbHVtbnMtcGlja2VyPmBcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRTZWxlY3RlZENvbHVtbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkQ29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBQZXJzaXN0IG9ubHkgaWYgd2FudGVkIGNvbHVtbnMgYXJlIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgc2VsZWN0aW9uXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlzRXF1YWwodGhpcy5kZWZhdWx0U2VsZWN0ZWRDb2x1bW5zLCBjb2x1bW5zKSA/IG51bGwgOiBjb2x1bW5zLmpvaW4oJywnKTtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3QoJ2NvbCcsIHZhbHVlLCB0aGlzLnJvdXRlLCB0aGlzLmdldFN0b3JhZ2VLZXkoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHMUUsT0FBTyxFQUFDLGNBQWMsRUFBUSxhQUFhLEVBQW9CLGVBQWUsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRyxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzNELE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUk3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsaUJBQWlCLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFDSCw0QkFBNEIsRUFJNUIsWUFBWSxHQUNmLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLakQsU0FBUyxlQUFlLENBQUMsSUFBb0I7SUFDekMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLGVBQWUsSUFB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QUFHLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7OEdBOWhCUSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzs2RkF5QlUsYUFBYTtzQkFBNUIsS0FBSztnQkFLVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBaUJVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBdUVLLGVBQWU7c0JBRHpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NlbGVjdGlvbk1vZGVsfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFnZUV2ZW50fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIERhdGEsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FeHRyYXMsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtkZWZhdWx0cywgaXNFbXB0eSwgaXNFcXVhbCwgcGlja30gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge05hdHVyYWxBbGVydFNlcnZpY2V9IGZyb20gJy4uL21vZHVsZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdFBhbmVsfSBmcm9tICcuLi9tb2R1bGVzL3BhbmVscy9hYnN0cmFjdC1wYW5lbCc7XG5pbXBvcnQge3RvR3JhcGhRTERvY3RyaW5lRmlsdGVyfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUnO1xuaW1wb3J0IHtmcm9tVXJsLCB0b1VybH0gZnJvbSAnLi4vbW9kdWxlcy9zZWFyY2gvY2xhc3Nlcy91cmwnO1xuaW1wb3J0IHtOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC90eXBlcy9mYWNldCc7XG5pbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0LW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbERhdGFTb3VyY2UsIFBhZ2luYXRlZERhdGF9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgICBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyLFxuICAgIFBhZ2luYXRpb25JbnB1dCxcbiAgICBRdWVyeVZhcmlhYmxlcyxcbiAgICBTb3J0aW5nLFxuICAgIFNvcnRpbmdPcmRlcixcbn0gZnJvbSAnLi9xdWVyeS12YXJpYWJsZS1tYW5hZ2VyJztcbmltcG9ydCB7RXh0cmFjdFRhbGwsIEV4dHJhY3RWYWxsLCBMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge05hdmlnYWJsZUl0ZW19IGZyb20gJy4vYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QnO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdmFpbGFibGVDb2x1bW59IGZyb20gJy4uL21vZHVsZXMvY29sdW1ucy1waWNrZXIvdHlwZXMnO1xuXG50eXBlIE1heWJlTmF2aWdhYmxlID0gTGl0ZXJhbCB8IE5hdmlnYWJsZUl0ZW08TGl0ZXJhbD47XG5cbmZ1bmN0aW9uIHVud3JhcE5hdmlnYWJsZShpdGVtOiBNYXliZU5hdmlnYWJsZSk6IExpdGVyYWwge1xuICAgIGlmICgnaXRlbScgaW4gaXRlbSAmJiAnaGFzTmF2aWdhdGlvbicgaW4gaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgaGVscHMgbWFuYWdpbmcgYSBsaXN0IG9mIHBhZ2luYXRlZCBpdGVtcyB0aGF0IGNhbiBiZSBmaWx0ZXJlZCxcbiAqIHNlbGVjdGVkLCBhbmQgdGhlbiBidWxrIGFjdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBvbiBzZWxlY3Rpb24uXG4gKlxuICogQ29tcG9uZW50cyBpbmhlcml0aW5nIGZyb20gdGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcyBzdGFuZGFsb25lIHdpdGggaW5wdXQgYXR0cmlidXRlcy5cbiAqXG4gKiBVc2FnZSA6XG4gKiA8bmF0dXJhbC1teS1saXN0aW5nIFtmb3JjZWRWYXJpYWJsZXNdPVwie2ZpbHRlcjouLi59XCIgW3NlbGVjdGVkQ29sdW1uc109XCJbJ2NvbDEnXVwiIFtwZXJzaXN0U2VhcmNoXT1cImZhbHNlXCI+XG4gKi9cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBYnN0cmFjdExpc3Q8XG4gICAgICAgIFRTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlPFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTxMaXRlcmFsPixcbiAgICAgICAgICAgIFF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgICAgIC8vIEluIG1vc3QgY2FzZSB0aGlzIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkIGJ5IGluaGVyaXRpbmcgY2xhc3Nlcy5cbiAgICAgICAgLy8gSXQgc2hvdWxkIG9ubHkgYmUgc3BlY2lmaWVkIHRvIG92ZXJyaWRlIGRlZmF1bHQgaWYgdGhlIHNlcnZpY2UgaXRlbXMgYXJlXG4gICAgICAgIC8vIG1hcHBlZCB0byBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgbGlrZSBpbiBOYXR1cmFsQWJzdHJhY3ROYXZpZ2FibGVMaXN0XG4gICAgICAgIFRhbGwgZXh0ZW5kcyBQYWdpbmF0ZWREYXRhPE1heWJlTmF2aWdhYmxlPiA9IEV4dHJhY3RUYWxsPFRTZXJ2aWNlPixcbiAgICA+XG4gICAgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RQYW5lbFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKipcbiAgICAgKiBXaGVyZXZlciBzZWFyY2ggc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHVybC9zdG9yYWdlIGFuZCBwZXJzaXN0ZWQgaW4gaXQgdG9vLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwZXJzaXN0U2VhcmNoID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgY29sdW1ucyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gdGhlIGVuZC11c2VyIHRvIHNlbGVjdCBmcm9tLCB2aWEgYDxuYXR1cmFsLWNvbHVtbnMtcGlja2VyPmBcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYXZhaWxhYmxlQ29sdW1uczogQXZhaWxhYmxlQ29sdW1uW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENvbHVtbnMgbGlzdCBhZnRlciBpbnRlcmFjdGlvbiB3aXRoIGA8bmF0dXJhbC1jb2x1bW5zLXBpY2tlcj5gXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbnNGb3JUYWJsZTogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IGNvbHVtbiBzZWxlY3Rpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhcHBlbmVkIGFmdGVyIGA8bmF0dXJhbC1jb2x1bW5zLXBpY2tlcj5gIGluaXRpYWxpemF0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWZhdWx0U2VsZWN0ZWRDb2x1bW5zOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVmlzaWJsZSAoY2hlY2tlZCkgY29sdW1uc1xuICAgICAqXG4gICAgICogSW5zdGVhZCBvZiB1c2luZyB0aGlzLCB5b3Ugc2hvdWxkIGNvbnNpZGVyIGNvcnJlY3RseSBjb25maWd1cmluZyBgQXZhaWxhYmxlQ29sdW1uLmNoZWNrZWRgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZENvbHVtbnM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFNvdXJjZSBvZiB0aGUgbGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhU291cmNlPzogTmF0dXJhbERhdGFTb3VyY2U8VGFsbD47XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gZm9yIGJ1bGsgYWN0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8RXh0cmFjdFRhbGw8VFNlcnZpY2U+WydpdGVtcyddWzBdPih0cnVlLCBbXSk7XG5cbiAgICAvKipcbiAgICAgKiBOZXh0IGV4ZWN1dGVkIGFjdGlvbiBmcm9tIGJ1bGsgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBidWxrQWN0aW9uU2VsZWN0ZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ2VudHJhbGlzYXRpb24gb2YgcXVlcnkgdmFyaWFibGVzXG4gICAgICovXG4gICAgcHVibGljIHZhcmlhYmxlc01hbmFnZXI6IE5hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXI8RXh0cmFjdFZhbGw8VFNlcnZpY2U+PiA9IG5ldyBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyPFxuICAgICAgICBFeHRyYWN0VmFsbDxUU2VydmljZT5cbiAgICA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBuYXR1cmFsLXNlYXJjaCBmYWNldHNcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF0dXJhbFNlYXJjaEZhY2V0czogTmF0dXJhbFNlYXJjaEZhY2V0cyA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogUmVzdWx0IG9mIGEgc2VhcmNoIChjYW4gYmUgcHJvdmlkZWQgYXMgaW5wdXQgZm9yIGluaXRpYWxpc2F0aW9uKVxuICAgICAqL1xuICAgIHB1YmxpYyBuYXR1cmFsU2VhcmNoU2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgPSBbW11dO1xuXG4gICAgLyoqXG4gICAgICogRGF0YSBhdHRyaWJ1dGUgcHJvdmlkZWQgYnkgYWN0aXZhdGVkIHJvdXRlIHNuYXBzaG90XG4gICAgICovXG4gICAgcHVibGljIHJvdXRlRGF0YT86IERhdGE7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHBhZ2Ugc2l6ZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFnZVNpemVPcHRpb25zID0gWzUsIDI1LCA1MCwgMTAwLCAyMDBdO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBwYWdpbmF0aW9uIHNldHVwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRQYWdpbmF0aW9uOiBSZXF1aXJlZDxQYWdpbmF0aW9uSW5wdXQ+ID0ge1xuICAgICAgICBvZmZzZXQ6IG51bGwsXG4gICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgcGFnZVNpemU6IDI1LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHNvcnRpbmdcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVmYXVsdFNvcnRpbmc/OiBBcnJheTxTb3J0aW5nPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydFNlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEFsZXJ0U2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcnNpc3RlbmNlU2VydmljZSA9IGluamVjdChOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogVFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYXJpYWJsZXMgdGhhdCBhcmUgYWx3YXlzIGZvcmNlZCBvbiBhIGxpc3QsIGluIGFkZGl0aW9uIHRvIHdoYXRldmVyIHRoZSBlbmQtdXNlciBtaWdodCBzZWxlY3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZm9yY2VkVmFyaWFibGVzKHZhcmlhYmxlczogUXVlcnlWYXJpYWJsZXMgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh2YXJpYWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGb3JjZWRWYXJpYWJsZXModmFyaWFibGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGNoYW5nZSwgY2hlY2sgRG9jdW1lbnRzQ29tcG9uZW50IHRoYXQgb3ZlcnJpZGVzIHRoaXMgZnVuY3Rpb24gd2l0aG91dCBjYWxsaW5nIHN1cGVyLm5nT25Jbml0KCkuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlRGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcblxuICAgICAgICB0aGlzLmluaXRGcm9tUm91dGUoKTtcbiAgICAgICAgdGhpcy5pbml0RnJvbVBlcnNpc3RlZCgpO1xuXG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5kZWZhdWx0cygncGFnaW5hdGlvbicsIHtwYWdpbmF0aW9uOiB0aGlzLmRlZmF1bHRQYWdpbmF0aW9ufSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuZGVmYXVsdHMoJ3NvcnRpbmcnLCB7c29ydGluZzogdGhpcy5kZWZhdWx0U29ydGluZ30gYXMgRXh0cmFjdFZhbGw8VFNlcnZpY2U+KTtcblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTmF0dXJhbERhdGFTb3VyY2U8VGFsbD4odGhpcy5nZXREYXRhT2JzZXJ2YWJsZSgpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcblxuICAgICAgICAvLyBVcGRhdGUgbmF0dXJhbCBzZWFyY2ggd2hlbiBoaXN0b3J5IGNoYW5nZXMgKGJhY2svZm9yd2FyZCBidXR0b25zKVxuICAgICAgICAvLyBIaXN0b3J5IHN0YXRlIGlzIGRldGVjdGFibGUgb25seSBvbiBOYXZpZ2F0aW9uU3RhcnQgKHBvcHN0YXRlIHRyaWdnZXIpXG4gICAgICAgIC8vIEJ1dCB3ZSBuZWVkIHBhcmFtZXRlcnMgZnJvbSB1cmwgYWZ0ZXIgTmF2aWdhdGlvbkVuZC4gU28gcHJvY2VlZCBpbiB0d28gc3RlcHMgd2l0aCBhIGZsYWcuXG4gICAgICAgIGxldCBpc1BvcFN0YXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0ICYmIGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzUG9wU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGlzUG9wU3RhdGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaXNQb3BTdGF0ZSA9IGZhbHNlOyAvLyByZXNldCBmbGFnXG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyA9IGZyb21VcmwodGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0RnJvbVVybCgnbnMnLCB0aGlzLnJvdXRlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJzaXN0IHNlYXJjaCBhbmQgdGhlbiBsYXVuY2ggd2hhdGV2ZXIgaXMgcmVxdWlyZWQgdG8gcmVmcmVzaCB0aGUgbGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWFyY2goXG4gICAgICAgIG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyxcbiAgICAgICAgbmF2aWdhdGlvbkV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMsXG4gICAgICAgIHJlc2V0UGFnaW5hdGlvbiA9IHRydWUsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgaW5kZXggdG8gcmVzdGFydCB0aGUgcGFnaW5hdGlvbiAocHJlc2VydmUgcGFnZVNpemUpXG5cbiAgICAgICAgaWYgKHJlc2V0UGFnaW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLm1lcmdlKCdwYWdpbmF0aW9uJywge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHBpY2sodGhpcy5kZWZhdWx0UGFnaW5hdGlvbiwgWydvZmZzZXQnLCAncGFnZUluZGV4J10pLFxuICAgICAgICAgICAgfSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGVyc2lzdCBpZiBhY3RpdmF0ZWRcbiAgICAgICAgLy8gVHdvIHBhcmFsbGVsIG5hdmlnYXRpb25zIGNvbmZsaWN0LiBXZSBmaXJzdCBwZXJzaXN0IHRoZSBzZWFyY2gsIHRoZW4gdGhlIHBhZ2luYXRpb25cbiAgICAgICAgaWYgKHRoaXMucGVyc2lzdFNlYXJjaCAmJiAhdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdChcbiAgICAgICAgICAgICAgICAnbnMnLFxuICAgICAgICAgICAgICAgIHRvVXJsKG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKSxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmFnZUtleSgpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMuZ2V0UGFnaW5hdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uKHBhZ2luYXRpb24sIHByb21pc2UsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZWFyY2hBbmRSZWZyZXNoTGlzdChuYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHNvcnRpbmcgdmFyaWFibGVzIGZvciBxdWVyeSBhbmQgcGVyc2lzdCB0aGUgbmV3IHZhbHVlIGluIHVybCBhbmQgbG9jYWwgc3RvcmFnZVxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG5vdCBwZXJzaXN0ZWRcbiAgICAgKiBAcGFyYW0gc29ydGluZ0V2ZW50cyBMaXN0IG9mIG1hdGVyaWFsIHNvcnRpbmcgZXZlbnRzXG4gICAgICovXG4gICAgcHVibGljIHNvcnRpbmcoc29ydGluZ0V2ZW50czogKFNvcnQgJiBQYXJ0aWFsPFBpY2s8U29ydGluZywgJ251bGxBc0hpZ2hlc3QnIHwgJ2VtcHR5U3RyaW5nQXNIaWdoZXN0Jz4+KVtdKTogdm9pZCB7XG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgaW5kZXggdG8gcmVzdGFydCB0aGUgcGFnaW5hdGlvbiAocHJlc2VydmUgcGFnZVNpemUpXG4gICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5tZXJnZSgncGFnaW5hdGlvbicsIHtcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHBpY2sodGhpcy5kZWZhdWx0UGFnaW5hdGlvbiwgWydvZmZzZXQnLCAncGFnZUluZGV4J10pLFxuICAgICAgICB9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG5cbiAgICAgICAgLy8gUHJlc2VydmUgb25seSBzb3J0aW5nIGV2ZW50cyB3aXRoIGRpcmVjdGlvbiBhbmQgY29udmVydCBpbnRvIG5hdHVyYWwvZ3JhcGhxbCBTb3J0aW5nIHR5cGVcbiAgICAgICAgbGV0IHNvcnRpbmc6IFNvcnRpbmdbXSA9IHNvcnRpbmdFdmVudHNcbiAgICAgICAgICAgIC5maWx0ZXIoZSA9PiAhIWUuZGlyZWN0aW9uKVxuICAgICAgICAgICAgLm1hcChzb3J0aW5nRXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHM6IFNvcnRpbmcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBzb3J0aW5nRXZlbnQuYWN0aXZlLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoc29ydGluZ0V2ZW50LmRpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgICAgICAgICAgICAgcy5vcmRlciA9IFNvcnRpbmdPcmRlci5BU0M7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3J0aW5nRXZlbnQuZGlyZWN0aW9uID09PSAnZGVzYycpIHtcbiAgICAgICAgICAgICAgICAgICAgcy5vcmRlciA9IFNvcnRpbmdPcmRlci5ERVNDO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnbnVsbEFzSGlnaGVzdCcgaW4gc29ydGluZ0V2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHMubnVsbEFzSGlnaGVzdCA9IHNvcnRpbmdFdmVudC5udWxsQXNIaWdoZXN0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgnZW1wdHlTdHJpbmdBc0hpZ2hlc3QnIGluIHNvcnRpbmdFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICBzLmVtcHR5U3RyaW5nQXNIaWdoZXN0ID0gc29ydGluZ0V2ZW50LmVtcHR5U3RyaW5nQXNIaWdoZXN0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRW1wdHkgc29ydGluZyBmYWxsYmFja3Mgb24gZGVmYXVsdFxuICAgICAgICBpZiAoc29ydGluZy5sZW5ndGggPT09IDAgJiYgdGhpcy5kZWZhdWx0U29ydGluZykge1xuICAgICAgICAgICAgc29ydGluZyA9IHRoaXMuZGVmYXVsdFNvcnRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgc29ydGluZyBhcyBzZWFyY2ggdmFyaWFibGVcbiAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnc29ydGluZycsIHtzb3J0aW5nOiBzb3J0aW5nfSBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuXG4gICAgICAgIGlmICh0aGlzLnBlcnNpc3RTZWFyY2ggJiYgIXRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgLy8gSWYgc29ydGluZyBpcyBlcXVhbCB0byBkZWZhdWx0IHNvcnRpbmcsIG51bGxpZnkgaXQgdG8gcmVtb3ZlIGZyb20gcGVyc2lzdGVuY2UgKHVybCBhbmQgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3QoXG4gICAgICAgICAgICAgICAgJ3NvJyxcbiAgICAgICAgICAgICAgICBpc0VxdWFsKHNvcnRpbmcsIHRoaXMuZGVmYXVsdFNvcnRpbmcpID8gbnVsbCA6IHNvcnRpbmcsXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN0b3JhZ2VLZXkoKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLmdldFBhZ2luYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbihwYWdpbmF0aW9uLCBwcm9taXNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBjdXJyZW50IHBhZ2luYXRpb24sIGVpdGhlciB0aGUgdXNlciBkZWZpbmVkIG9uZSwgb3IgdGhlIGRlZmF1bHQgb25lXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQYWdpbmF0aW9uKCk6IFBhZ2luYXRpb25JbnB1dCB7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb25DaGFubmVsOiBQYXJ0aWFsPEV4dHJhY3RWYWxsPFRTZXJ2aWNlPj4gfCB1bmRlZmluZWQgPSB0aGlzLnZhcmlhYmxlc01hbmFnZXIuZ2V0KCdwYWdpbmF0aW9uJyk7XG5cbiAgICAgICAgaWYgKHBhZ2luYXRpb25DaGFubmVsICYmIHBhZ2luYXRpb25DaGFubmVsLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIC8vIFRoZSBjYXN0IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGJlY2F1c2UgVHlwZXNjcmlwdCBjb3JyZWN0bHkgbmFycm93IGRvd24gdGhlIHR5cGUgdG8gYFBhZ2luYXRpb25JbnB1dGBcbiAgICAgICAgICAgIC8vIGJ1dCBzb21laG93IHN0aWxsIGdldCBjb25mdXNlZCB3aGVuIHJldHVybmluZyBpdFxuICAgICAgICAgICAgcmV0dXJuIHBhZ2luYXRpb25DaGFubmVsLnBhZ2luYXRpb24gYXMgUGFnaW5hdGlvbklucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBhZ2luYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHBhZ2luYXRpb24gdmFyaWFibGVzIGZvciBxdWVyeSBhbmQgcGVyc2lzdCBpbiB1cmwgYW5kIGxvY2FsIHN0b3JhZ2UgdGhlIG5ldyB2YWx1ZVxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIG5vdCBwZXJzaXN0ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCBOYXR1cmFsIG9yIFBhZ2luYXRvciBQYWdlRXZlbnRcbiAgICAgKiBAcGFyYW0gZGVmZXIgUHJvbWlzZSAodXN1YWxseSBhIHJvdXRlIHByb21pc2UpIHRoYXQgZGVmZXJzIHRoZSByZWRpcmVjdGlvbiBmcm9tIHRoaXMgY2FsbCB0byBwcmV2ZW50IHJvdXRlIG5hdmlnYXRpb24gY29sbGlzaW9uXG4gICAgICogQHBhcmFtIG5hdmlnYXRpb25FeHRyYXMgQW5ndWxhciByb3V0ZXIgbmF2aWdhdGlvbiBvcHRpb25zLiBJcyByZWxldmFudCBvbmx5IGlmIHBlcnNpc3RTZWFyY2ggaXMgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBwYWdpbmF0aW9uKFxuICAgICAgICBldmVudDogUGFnaW5hdGlvbklucHV0IHwgUGFnZUV2ZW50LFxuICAgICAgICBkZWZlcj86IFByb21pc2U8dW5rbm93bj4sXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IHZvaWQge1xuICAgICAgICBsZXQgcGFnaW5hdGlvbjogUGFnaW5hdGlvbklucHV0ID0gdGhpcy5kZWZhdWx0UGFnaW5hdGlvbjtcbiAgICAgICAgbGV0IGZvclBlcnNpc3RlbmNlOiBQYWdpbmF0aW9uSW5wdXQgfCBudWxsID0gbnVsbDtcblxuICAgICAgICAvLyBDb252ZXJ0IHRvIG5hdHVyYWwvZ3JhcGhxbCBmb3JtYXQsIGFkZGluZyBtaXNzaW5nIGF0dHJpYnV0ZXNcbiAgICAgICAgbGV0IG5hdHVyYWxFdmVudDogUGFnaW5hdGlvbklucHV0ID0gcGljayhldmVudCwgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0UGFnaW5hdGlvbikpOyAvLyBvYmplY3Qgd2l0aCBvbmx5IFBhZ2luYXRpb25JbnB1dCBhdHRyaWJ1dGVzXG4gICAgICAgIG5hdHVyYWxFdmVudCA9IGRlZmF1bHRzKG5hdHVyYWxFdmVudCwgdGhpcy5kZWZhdWx0UGFnaW5hdGlvbik7IC8vIERlZmF1bHQgd2l0aCBjb250cm9sbGVyIHZhbHVlc1xuXG4gICAgICAgIGlmICghaXNFcXVhbChuYXR1cmFsRXZlbnQsIHRoaXMuZGVmYXVsdFBhZ2luYXRpb24pKSB7XG4gICAgICAgICAgICBwYWdpbmF0aW9uID0gZm9yUGVyc2lzdGVuY2UgPSBuYXR1cmFsRXZlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCdwYWdpbmF0aW9uJywge3BhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG5cbiAgICAgICAgdGhpcy5wZXJzaXN0UGFnaW5hdGlvbihmb3JQZXJzaXN0ZW5jZSwgZGVmZXIsIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwZXJzaXN0UGFnaW5hdGlvbihcbiAgICAgICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbklucHV0IHwgbnVsbCxcbiAgICAgICAgZGVmZXI/OiBQcm9taXNlPHVua25vd24+LFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGVyc2lzdFNlYXJjaCAmJiAhdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICAvLyBEZWNsYXJlIHBlcnNpc3QgZnVuY3Rpb25cbiAgICAgICAgICAgIGNvbnN0IHBlcnNpc3QgPSAodmFsdWU6IFBhZ2luYXRpb25JbnB1dCB8IG51bGwpOiBQcm9taXNlPGJvb2xlYW4+ID0+XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdCgncGEnLCB2YWx1ZSwgdGhpcy5yb3V0ZSwgdGhpcy5nZXRTdG9yYWdlS2V5KCksIG5hdmlnYXRpb25FeHRyYXMpO1xuXG4gICAgICAgICAgICAvLyBDYWxsIGZ1bmN0aW9uIGRpcmVjdGx5IG9yIHdoZW4gcHJvbWlzZSBpcyByZXNvbHZlZFxuICAgICAgICAgICAgaWYgKGRlZmVyKSB7XG4gICAgICAgICAgICAgICAgZGVmZXIudGhlbigoKSA9PiBwZXJzaXN0KHBhZ2luYXRpb24pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVyc2lzdChwYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZT8uZGF0YT8uaXRlbXMuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcE5hdmlnYWJsZShyb3cpO1xuICAgICAgICAgICAgICAgIGlmICh1bndyYXBwZWQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHVud3JhcHBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgICAgIGxldCBudW1Sb3dzID0gMDtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlPy5kYXRhPy5pdGVtcy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bndyYXBwZWQgPSB1bndyYXBOYXZpZ2FibGUocm93KTtcbiAgICAgICAgICAgIGlmICh1bndyYXBwZWQuaWQpIHtcbiAgICAgICAgICAgICAgICBudW1Sb3dzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBhIGJ1bGsgYWN0aW9uIGlzIHNlbGVjdGVkXG4gICAgICovXG4gICAgcHVibGljIGJ1bGtBY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5idWxrQWN0aW9uU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIGV4ZWN1dGUgYSBidWxrIGFjdGlvbiB3aXRob3V0IHNlbGVjdGluZyBvbmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKHRoaXMuYnVsa0FjdGlvblNlbGVjdGVkIGluIHRoaXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBleGVjdXRlIGEgYnVsayBhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdDogJyArIHRoaXMuYnVsa0FjdGlvblNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICh0aGlzIGFzIGFueSlbdGhpcy5idWxrQWN0aW9uU2VsZWN0ZWRdKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gbm9uLXBhbmVsIGNvbnRleHQsIGhlYWRlciBpcyBhbHdheXMgdmlzaWJsZS5cbiAgICAgKiBJbiBwYW5lbCBjb250ZXh0LCBoZWFkZXIgaXMgaGlkZGVuIHdoZW4gbm8gcmVzdWx0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFuZWwgfHwgKHRoaXMuaXNQYW5lbCAmJiB0aGlzLnNob3dUYWJsZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggaXMgdmlzaWJsZSBpbiBtb3N0IGNhc2VzLCBidXQgaGlkZGVuIG9uIGEgcGFuZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1NlYXJjaCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzUGFuZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGFibGUgc2hvdWxkIGJlIHNob3duIG9ubHkgd2hlbiB0aGVyZSBpcyBkYXRhXG4gICAgICovXG4gICAgcHVibGljIHNob3dUYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kYXRhU291cmNlICYmICEhdGhpcy5kYXRhU291cmNlLmRhdGEgJiYgdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBObyByZXN1bHRzIGlzIHNob3duIHdoZW4gdGhlcmUgaXMgbm8gaXRlbXMsIGJ1dCBvbmx5IGluIG5vbi1wYW5lbCBjb250ZXh0IG9ubHkuXG4gICAgICogSW4gcGFuZWxzIHdlIHdhbnQgZGlzY3JldGUgbW9kZSwgdGhlcmUgaXMgbm8gc2VhcmNoIGFuZCBubyBcIm5vLXJlc3VsdHNcIlxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93Tm9SZXN1bHRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNQYW5lbCAmJiAhIXRoaXMuZGF0YVNvdXJjZSAmJiAhIXRoaXMuZGF0YVNvdXJjZS5kYXRhICYmIHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIGZyb20gcm91dGUuXG4gICAgICpcbiAgICAgKiBVc2VzIGRhdGEgcHJvdmlkZWQgYnkgcm91dGVyIHN1Y2ggYXM6XG4gICAgICpcbiAgICAgKiAtIGByb3V0ZS5kYXRhLmZvcmNlZFZhcmlhYmxlc2BcbiAgICAgKiAtIGByb3V0ZS5kYXRhLmF2YWlsYWJsZUNvbHVtbnNgXG4gICAgICogLSBgcm91dGUuZGF0YS5zZWxlY3RlZENvbHVtbnNgXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRGcm9tUm91dGUoKTogdm9pZCB7XG4gICAgICAgIC8vIFZhcmlhYmxlc1xuICAgICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmZvcmNlZFZhcmlhYmxlcykge1xuICAgICAgICAgICAgdGhpcy5hcHBseUZvcmNlZFZhcmlhYmxlcyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZm9yY2VkVmFyaWFibGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEF2YWlsYWJsZSBjb2x1bW5zXG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuYXZhaWxhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVDb2x1bW5zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmF2YWlsYWJsZUNvbHVtbnM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb2x1bW5zXG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuc2VsZWN0ZWRDb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5zZWxlY3RlZENvbHVtbnM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGF0YU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxUYWxsPiB7XG4gICAgICAgIC8vIEhlcmUgdGhlIGNhc3RpbmcgaXMgYSBiaXQgdW5mb3J0dW5hdGUgYnV0IHJlcXVpcmVkIGJlY2F1c2UgTmF0dXJhbEFic3RyYWN0TmF2aWdhYmxlTGlzdFxuICAgICAgICAvLyBicmVha3MgdGhlIGRhdGEgc3RydWN0dXJlIGNvbnZlbnRpb24gKGJ5IHdyYXBwaW5nIGl0ZW1zIGluIGEgc3RydWN0dXJlKS4gSWRlYWxseSB3ZSBzaG91bGQgcmVtb3ZlXG4gICAgICAgIC8vIHRoZSBjYXN0aW5nIGFuZCByZXNvbHZlIHRoaW5ncyBpbiBhIGJldHRlciB3YXksIGJ1dCB0aGF0J3MgdG9vIG11Y2ggd29yayBmb3Igbm93XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC53YXRjaEFsbCh0aGlzLnZhcmlhYmxlc01hbmFnZXIgYXMgdW5rbm93biBhcyBhbnkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlPFRhbGw+O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RnJvbVBlcnNpc3RlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcnNpc3RTZWFyY2ggfHwgdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9yYWdlS2V5ID0gdGhpcy5nZXRTdG9yYWdlS2V5KCk7XG5cbiAgICAgICAgLy8gUGFnaW5hdGlvbiA6IHBhXG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLnBlcnNpc3RlbmNlU2VydmljZS5nZXQoJ3BhJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmIChwYWdpbmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCdwYWdpbmF0aW9uJywge3BhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTb3J0aW5nIDogc29cbiAgICAgICAgY29uc3Qgc29ydGluZyA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLmdldCgnc28nLCB0aGlzLnJvdXRlLCBzdG9yYWdlS2V5KTtcbiAgICAgICAgaWYgKHNvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3NvcnRpbmcnLCB7c29ydGluZ30gYXMgRXh0cmFjdFZhbGw8VFNlcnZpY2U+KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbHVtbnNcbiAgICAgICAgY29uc3QgcGVyc2lzdGVkQ29sdW1ucyA9IHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLmdldCgnY29sJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgcGVyc2lzdGVkQ29sdW1ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gcGVyc2lzdGVkQ29sdW1ucy5zcGxpdCgnLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTmF0dXJhbCBzZWFyY2ggOiBuc1xuICAgICAgICB0aGlzLm5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zID0gZnJvbVVybCh0aGlzLnBlcnNpc3RlbmNlU2VydmljZS5nZXQoJ25zJywgdGhpcy5yb3V0ZSwgc3RvcmFnZUtleSkpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlYXJjaEFuZFJlZnJlc2hMaXN0KHRoaXMubmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMsIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZWFyY2hBbmRSZWZyZXNoTGlzdChcbiAgICAgICAgbmF0dXJhbFNlYXJjaFNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zLFxuICAgICAgICBpZ25vcmVFbXB0eUZpbHRlciA9IGZhbHNlLFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0b0dyYXBoUUxEb2N0cmluZUZpbHRlcih0aGlzLm5hdHVyYWxTZWFyY2hGYWNldHMsIG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKTtcblxuICAgICAgICBpZiAoaWdub3JlRW1wdHlGaWx0ZXIgJiYgaXNFbXB0eShmaWx0ZXIpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCduYXR1cmFsLXNlYXJjaCcsIHtmaWx0ZXJ9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGN1cnJlbnQgdXJsIGV4Y2x1ZGluZyBsYXN0IHJvdXRlIHBhcmFtZXRlcnM7XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFN0b3JhZ2VLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XG4gICAgICAgIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzW3VybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzLmxlbmd0aCAtIDFdLnBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcmV0dXJuIHVybFRyZWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYnVsa2REZWxldGVDb25maXJtYXRpb24oKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsZXJ0U2VydmljZS5jb25maXJtKFxuICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByZXNzaW9uYCxcbiAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGxlcyDDqWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzID9gLFxuICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBtdWx0aXBsZSBpdGVtcyBhdCBvbmNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGJ1bGtEZWxldGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICB0aGlzLmJ1bGtkRGVsZXRlQ29uZmlybWF0aW9uKCkuc3Vic2NyaWJlKGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmJ1bGtBY3Rpb25TZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgLy8gQXNzdW1lIHRoYXQgb3VyIG9iamVjdHMgaGF2ZSBJRC4gVGhpcyBpcyB0cnVlIGluIGFsbW9zdCBhbGwgY2FzZXMuIEJ1dCBpZlxuICAgICAgICAgICAgICAgIC8vIGl0IGlzIG5vdCwgbGlrZSBBdHRyaWJ1dGVSZXBvcnRDb21wb25lbnQsIHRoZW4gdGhlIGluaGVyaXRpbmcgY2xhc3MgbXVzdFxuICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNhbGwgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgYXMge2lkOiBzdHJpbmd9W107XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKHNlbGVjdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgU3VwcHJpbcOpYCk7XG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWJqZWN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlGb3JjZWRWYXJpYWJsZXModmFyaWFibGVzOiBRdWVyeVZhcmlhYmxlcyk6IHZvaWQge1xuICAgICAgICBpZiAodmFyaWFibGVzLmZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnZm9yY2VkLWZpbHRlcicsIHtmaWx0ZXI6IHZhcmlhYmxlcy5maWx0ZXJ9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFyaWFibGVzLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3BhZ2luYXRpb24nLCB7cGFnaW5hdGlvbjogdmFyaWFibGVzLnBhZ2luYXRpb259IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFyaWFibGVzLnNvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ3NvcnRpbmcnLCB7c29ydGluZzogdmFyaWFibGVzLnNvcnRpbmd9IGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnNGb3JUYWJsZSA9IGNvbHVtbnM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBlcnNpc3RTZWFyY2ggfHwgdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZmlyc3Qgc2VsZWN0aW9uIHdlIHJlY2VpdmUgaXMgdGhlIGRlZmF1bHQgb25lIG1hZGUgYnkgYDxuYXR1cmFsLWNvbHVtbnMtcGlja2VyPmBcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRTZWxlY3RlZENvbHVtbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkQ29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBQZXJzaXN0IG9ubHkgaWYgd2FudGVkIGNvbHVtbnMgYXJlIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgc2VsZWN0aW9uXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlzRXF1YWwodGhpcy5kZWZhdWx0U2VsZWN0ZWRDb2x1bW5zLCBjb2x1bW5zKSA/IG51bGwgOiBjb2x1bW5zLmpvaW4oJywnKTtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3QoJ2NvbCcsIHZhbHVlLCB0aGlzLnJvdXRlLCB0aGlzLmdldFN0b3JhZ2VLZXkoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -11,8 +11,8 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
* @dynamic
|
|
12
12
|
*/
|
|
13
13
|
export class NaturalAbstractNavigableList extends NaturalAbstractList {
|
|
14
|
-
constructor(service
|
|
15
|
-
super(service
|
|
14
|
+
constructor(service) {
|
|
15
|
+
super(service);
|
|
16
16
|
/**
|
|
17
17
|
* Name of filter for child items to access ancestor item
|
|
18
18
|
*/
|
|
@@ -125,7 +125,7 @@ export class NaturalAbstractNavigableList extends NaturalAbstractList {
|
|
|
125
125
|
}
|
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalAbstractNavigableList, decorators: [{
|
|
127
127
|
type: Directive
|
|
128
|
-
}], ctorParameters: function () { return [{ type: undefined }
|
|
128
|
+
}], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { ancestorRelationName: [{
|
|
129
129
|
type: Input
|
|
130
130
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvY2xhc3Nlcy9hYnN0cmFjdC1uYXZpZ2FibGUtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsNEJBQTRCLEVBQWlCLE1BQU0sMEJBQTBCLENBQUM7QUFFdEYsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7QUFZdkM7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sNEJBY1QsU0FBUSxtQkFBOEY7SUFZdEcsWUFBbUIsT0FBaUIsRUFBRSxRQUFrQjtRQUNwRCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBVjdCOztXQUVHO1FBQ2EseUJBQW9CLEdBQUcsUUFBUSxDQUFDO1FBRXhDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUVyQyxnQkFBVyxHQUFxQixFQUFFLENBQUM7SUFJMUMsQ0FBQztJQUVlLFFBQVE7UUFDcEIsZ0ZBQWdGO1FBQ2hGLHlEQUF5RDtRQUN6RCxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLHNEQUFzRDtZQUN0RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZCxPQUFPO2FBQ1Y7WUFFRCxJQUFJLHdCQUF3QixHQUFlLElBQUksQ0FBQztZQUVoRCxpREFBaUQ7WUFDakQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2Qs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T0FFRztJQUNJLFlBQVksQ0FBQyxRQUE2QjtRQUM3QyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sYUFBYSxDQUFDLElBQW9CO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRCxJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7OEdBMUpRLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxTQUFTO29IQXFCVSxvQkFBb0I7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi9tb2R1bGVzL3NlYXJjaC90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0LW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RMaXN0fSBmcm9tICcuL2Fic3RyYWN0LWxpc3QnO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7TmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlciwgUXVlcnlWYXJpYWJsZXN9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0V4dHJhY3RUYWxsLCBFeHRyYWN0VGFsbE9uZSwgRXh0cmFjdFZhbGwsIExpdGVyYWx9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB7Zmlyc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG50eXBlIEJyZWFkY3J1bWJJdGVtID0ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufSAmIExpdGVyYWw7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYWJsZUl0ZW08VD4gPSB7XG4gICAgaXRlbTogVDtcbiAgICBoYXNOYXZpZ2F0aW9uOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGhlbHBzIG1hbmFnaW5nIGEgbGlzdCBvZiBwYWdpbmF0ZWQgaXRlbXMgdGhhdCBjYW4gYmUgZmlsdGVyZWQsXG4gKiBzZWxlY3RlZCwgYW5kIHRoZW4gYnVsayBhY3Rpb25zIGNhbiBiZSBwZXJmb3JtZWQgb24gc2VsZWN0aW9uLlxuICpcbiAqIEBkeW5hbWljXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxBYnN0cmFjdE5hdmlnYWJsZUxpc3Q8XG4gICAgICAgIFRTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlPFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTx7aWQ6IHN0cmluZ30+LFxuICAgICAgICAgICAgUXVlcnlWYXJpYWJsZXMsXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnlcbiAgICAgICAgPixcbiAgICA+XG4gICAgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RMaXN0PFRTZXJ2aWNlLCBQYWdpbmF0ZWREYXRhPE5hdmlnYWJsZUl0ZW08RXh0cmFjdFRhbGw8VFNlcnZpY2U+WydpdGVtcyddWzBdPj4+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgZmlsdGVyIGZvciBjaGlsZCBpdGVtcyB0byBhY2Nlc3MgYW5jZXN0b3IgaXRlbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhbmNlc3RvclJlbGF0aW9uTmFtZSA9ICdwYXJlbnQnO1xuXG4gICAgcHJpdmF0ZSBvbGRBbmNlcnRvcklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBicmVhZGNydW1iczogQnJlYWRjcnVtYkl0ZW1bXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNlcnZpY2U6IFRTZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoc2VydmljZSwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSW4gZmFjdCwgXCJuYVwiIGFuZCBcIm5zXCIga2V5IG1heSBleGlzdCBhdCB0aGUgc2FtZSB0aW1lIGluIHVybCAoYnV0IHNob3VsZG4ndCkuXG4gICAgICAgIC8vIFdoZW4gdGhpcyBoYXBwZW5zLCBvbiBwYWdlIHJlbG9hZCwgc2VhcmNoIGlzIHByaW9yaXR5LlxuICAgICAgICAvLyBcIm5hXCIgaXMgYSB0cmFpbGluZyBwYXJhbSwgYW5kIHNob3VsZCBiZSBjb25zaWRlcmVkIG9ubHkgd2hlbiB0aGVyZSBpcyBubyBzZWFyY2hcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICAvLyBcIm5zXCIgc3RhbmRzIGZvciBuYXR1cmFsLXNlYXJjaCB0byBiZSBzaG9ydGVyIGluIHVybFxuICAgICAgICAgICAgaWYgKHBhcmFtc1snbnMnXSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IG5hdmlnYXRpb25Db25kaXRpb25WYWx1ZTogYW55IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgICAgIC8vIFwibmFcIiBzdGFuZHMgZm9yIFwibmF2aWdhdGlvblwiIChyZWxhdGlvbikgaW4gdXJsXG4gICAgICAgICAgICBpZiAocGFyYW1zWyduYSddKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbkNvbmRpdGlvblZhbHVlID0ge2hhdmU6IHt2YWx1ZXM6IFtwYXJhbXNbJ25hJ11dfX07XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldE9uZShwYXJhbXNbJ25hJ10pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyBjYXN0aW5nIHNob3VsZCBkaXNhcHBlYXIgYW5kIGluc3RlYWQgdGhpcyBjbGFzcyBzaG91bGQgZW5mb3JjZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2VydmljZSB0byBzdXBwb3J0IFRvbmUgd2l0aCBhIG5ldyBnZW5lcmljXG4gICAgICAgICAgICAgICAgICAgIChhbmNlc3RvcjogQnJlYWRjcnVtYkl0ZW0pID0+ICh0aGlzLmJyZWFkY3J1bWJzID0gdGhpcy5nZXRCcmVhZGNydW1iKGFuY2VzdG9yKSksXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FuY2VzdG9yQ2hhbmdlZCA9IHBhcmFtc1snbmEnXSAhPT0gdGhpcy5vbGRBbmNlcnRvcklkO1xuICAgICAgICAgICAgICAgIHRoaXMub2xkQW5jZXJ0b3JJZCA9IHBhcmFtc1snbmEnXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU2VhcmNoKGhhc0FuY2VzdG9yQ2hhbmdlZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5hdmlnYXRpb25Db25kaXRpb25WYWx1ZSA9IHtlbXB0eToge319O1xuICAgICAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uOiBMaXRlcmFsID0ge307XG4gICAgICAgICAgICBjb25kaXRpb25bdGhpcy5hbmNlc3RvclJlbGF0aW9uTmFtZV0gPSBuYXZpZ2F0aW9uQ29uZGl0aW9uVmFsdWU7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IFF1ZXJ5VmFyaWFibGVzID0ge2ZpbHRlcjoge2dyb3VwczogW3tjb25kaXRpb25zOiBbY29uZGl0aW9uXX1dfX07XG5cbiAgICAgICAgICAgIC8vIHRvZG8gOiBjaGVjayB3aHkgd2l0aG91dCBcImFzIFZhbGxcIiBpdCBlcnJvcnMuIFZhbGwgaXMgc3VwcG9zZWQgdG8gYmUgUXVlcnlWYXJpYWJsZXMsIGFuZCBmaWx0ZXIgdG9vLlxuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnbmF2aWdhdGlvbicsIHZhcmlhYmxlcyBhcyBFeHRyYWN0VmFsbDxUU2VydmljZT4pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXREYXRhT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFBhZ2luYXRlZERhdGE8TmF2aWdhYmxlSXRlbTxFeHRyYWN0VGFsbE9uZTxUU2VydmljZT4+Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLndhdGNoQWxsKHRoaXMudmFyaWFibGVzTWFuYWdlciBhcyB1bmtub3duIGFzIGFueSkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gT24gZWFjaCBkYXRhIGFycml2aW5nLCB3ZSBxdWVyeSBjaGlsZHJlbiBjb3VudCB0byBzaG93L2hpZGUgY2hldnJvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5hdmlnYWJsZUl0ZW1zOiBOYXZpZ2FibGVJdGVtPEV4dHJhY3RUYWxsT25lPFRTZXJ2aWNlPj5bXSA9IHJlc3VsdC5pdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hdmlnYWJsZUl0ZW06IE5hdmlnYWJsZUl0ZW08RXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+PiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0gYXMgRXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzTmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uOiBMaXRlcmFsID0ge307XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvblt0aGlzLmFuY2VzdG9yUmVsYXRpb25OYW1lXSA9IHtoYXZlOiB7dmFsdWVzOiBbaXRlbS5pZF19fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBRdWVyeVZhcmlhYmxlcyA9IHtmaWx0ZXI6IHtncm91cHM6IFt7Y29uZGl0aW9uczogW2NvbmRpdGlvbl19XX19O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF2bSA9IG5ldyBOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIHF2bS5zZXQoJ3ZhcmlhYmxlcycsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvdW50KHF2bSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGNvdW50ID0+IChuYXZpZ2FibGVJdGVtLmhhc05hdmlnYXRpb24gPSBjb3VudCA+IDApKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmF2aWdhYmxlSXRlbTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5hdmlnYWJsZVJlc3VsdDogUGFnaW5hdGVkRGF0YTxOYXZpZ2FibGVJdGVtPEV4dHJhY3RUYWxsT25lPFRTZXJ2aWNlPj4+ID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBuYXZpZ2FibGVJdGVtcyxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdmlnYWJsZVJlc3VsdDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xhdGVTZWFyY2hBbmRSZWZyZXNoTGlzdChuYXR1cmFsU2VhcmNoU2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xlYXIgbmF2aWdhdGlvbiBmaWx0ZXIgaWYgdGhlcmUgaXMgYSBzZWFyY2hcbiAgICAgICAgaWYgKG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zLnNvbWUocyA9PiBzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVzTWFuYWdlci5zZXQoJ25hdmlnYXRpb24nLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnRyYW5zbGF0ZVNlYXJjaEFuZFJlZnJlc2hMaXN0KG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJTZWFyY2gocmVzZXRQYWdpbmF0aW9uID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zID0gW1tdXTtcbiAgICAgICAgc3VwZXIuc2VhcmNoKFtbXV0sIHVuZGVmaW5lZCwgcmVzZXRQYWdpbmF0aW9uKTtcbiAgICAgICAgdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdEluU3RvcmFnZSgnbnMnLCBudWxsLCB0aGlzLmdldFN0b3JhZ2VLZXkoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNlYXJjaChcbiAgICAgICAgbmF0dXJhbFNlYXJjaFNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zLFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICAgICAgcmVzZXRQYWdpbmF0aW9uID0gdHJ1ZSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gbmEgc3RhbmRzIGZvciBuYXZpZ2F0aW9uXG4gICAgICAgIHRoaXMucGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RJblVybCgnbmEnLCBudWxsLCB0aGlzLnJvdXRlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnNlYXJjaChuYXR1cmFsU2VhcmNoU2VsZWN0aW9ucywgbmF2aWdhdGlvbkV4dHJhcywgcmVzZXRQYWdpbmF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGFuIGFycmF5IGZvciByb3V0ZXIgbGluayB1c2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDaGlsZExpbmsoYW5jZXN0b3I6IHtpZDogc3RyaW5nfSB8IG51bGwpOiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ10ge1xuICAgICAgICBpZiAoYW5jZXN0b3IgJiYgYW5jZXN0b3IuaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBbJy4nLCB7bmE6IGFuY2VzdG9yLmlkfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWycuJywge31dO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVwdGggaXMgbGltaXRlZCBieSBxdWVyaWVzXG4gICAgICogQHBhcmFtIGl0ZW0gd2l0aCBhbiBhbmNlc3RvciByZWxhdGlvbiAobXVzdCBtYXRjaCBhbmNlc3RvclJlbGF0aW9uTmFtZSBhdHRyaWJ1dGUpXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEJyZWFkY3J1bWIoaXRlbTogQnJlYWRjcnVtYkl0ZW0pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICAgICAgY29uc3QgYW5jZXN0b3IgPSBpdGVtW3RoaXMuYW5jZXN0b3JSZWxhdGlvbk5hbWVdO1xuICAgICAgICBpZiAoYW5jZXN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJyZWFkY3J1bWIoYW5jZXN0b3IpLmNvbmNhdChbaXRlbV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtpdGVtXTtcbiAgICB9XG59XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvY2xhc3Nlcy9hYnN0cmFjdC1uYXZpZ2FibGUtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsNEJBQTRCLEVBQWlCLE1BQU0sMEJBQTBCLENBQUM7QUFFdEYsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7QUFZdkM7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sNEJBY1QsU0FBUSxtQkFBOEY7SUFZdEcsWUFBbUIsT0FBaUI7UUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBVm5COztXQUVHO1FBQ2EseUJBQW9CLEdBQUcsUUFBUSxDQUFDO1FBRXhDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUVyQyxnQkFBVyxHQUFxQixFQUFFLENBQUM7SUFJMUMsQ0FBQztJQUVlLFFBQVE7UUFDcEIsZ0ZBQWdGO1FBQ2hGLHlEQUF5RDtRQUN6RCxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLHNEQUFzRDtZQUN0RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZCxPQUFPO2FBQ1Y7WUFFRCxJQUFJLHdCQUF3QixHQUFlLElBQUksQ0FBQztZQUVoRCxpREFBaUQ7WUFDakQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2Qsd0JBQXdCLEdBQUcsRUFBQyxJQUFJ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QUE2QjtRQUM3QyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sYUFBYSxDQUFDLElBQW9CO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRCxJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7OEdBMUpRLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxTQUFTOzZGQXFCVSxvQkFBb0I7c0JBQW5DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyTGlua30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbFNlYXJjaFNlbGVjdGlvbnN9IGZyb20gJy4uL21vZHVsZXMvc2VhcmNoL3R5cGVzL3ZhbHVlcyc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvYWJzdHJhY3QtbW9kZWwuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdExpc3R9IGZyb20gJy4vYWJzdHJhY3QtbGlzdCc7XG5pbXBvcnQge1BhZ2luYXRlZERhdGF9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyLCBRdWVyeVZhcmlhYmxlc30gZnJvbSAnLi9xdWVyeS12YXJpYWJsZS1tYW5hZ2VyJztcbmltcG9ydCB7RXh0cmFjdFRhbGwsIEV4dHJhY3RUYWxsT25lLCBFeHRyYWN0VmFsbCwgTGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtmaXJzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbnR5cGUgQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59ICYgTGl0ZXJhbDtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlSXRlbTxUPiA9IHtcbiAgICBpdGVtOiBUO1xuICAgIGhhc05hdmlnYXRpb246IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaGVscHMgbWFuYWdpbmcgYSBsaXN0IG9mIHBhZ2luYXRlZCBpdGVtcyB0aGF0IGNhbiBiZSBmaWx0ZXJlZCxcbiAqIHNlbGVjdGVkLCBhbmQgdGhlbiBidWxrIGFjdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBvbiBzZWxlY3Rpb24uXG4gKlxuICogQGR5bmFtaWNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0TmF2aWdhYmxlTGlzdDxcbiAgICAgICAgVFNlcnZpY2UgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2U8XG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPHtpZDogc3RyaW5nfT4sXG4gICAgICAgICAgICBRdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIGFueSxcbiAgICAgICAgICAgIGFueVxuICAgICAgICA+LFxuICAgID5cbiAgICBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdExpc3Q8VFNlcnZpY2UsIFBhZ2luYXRlZERhdGE8TmF2aWdhYmxlSXRlbTxFeHRyYWN0VGFsbDxUU2VydmljZT5bJ2l0ZW1zJ11bMF0+Pj5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiBmaWx0ZXIgZm9yIGNoaWxkIGl0ZW1zIHRvIGFjY2VzcyBhbmNlc3RvciBpdGVtXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGFuY2VzdG9yUmVsYXRpb25OYW1lID0gJ3BhcmVudCc7XG5cbiAgICBwcml2YXRlIG9sZEFuY2VydG9ySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGJyZWFkY3J1bWJzOiBCcmVhZGNydW1iSXRlbVtdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmljZTogVFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoc2VydmljZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJbiBmYWN0LCBcIm5hXCIgYW5kIFwibnNcIiBrZXkgbWF5IGV4aXN0IGF0IHRoZSBzYW1lIHRpbWUgaW4gdXJsIChidXQgc2hvdWxkbid0KS5cbiAgICAgICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIG9uIHBhZ2UgcmVsb2FkLCBzZWFyY2ggaXMgcHJpb3JpdHkuXG4gICAgICAgIC8vIFwibmFcIiBpcyBhIHRyYWlsaW5nIHBhcmFtLCBhbmQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgb25seSB3aGVuIHRoZXJlIGlzIG5vIHNlYXJjaFxuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgICAgIC8vIFwibnNcIiBzdGFuZHMgZm9yIG5hdHVyYWwtc2VhcmNoIHRvIGJlIHNob3J0ZXIgaW4gdXJsXG4gICAgICAgICAgICBpZiAocGFyYW1zWyducyddKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgbmF2aWdhdGlvbkNvbmRpdGlvblZhbHVlOiBhbnkgfCBudWxsID0gbnVsbDtcblxuICAgICAgICAgICAgLy8gXCJuYVwiIHN0YW5kcyBmb3IgXCJuYXZpZ2F0aW9uXCIgKHJlbGF0aW9uKSBpbiB1cmxcbiAgICAgICAgICAgIGlmIChwYXJhbXNbJ25hJ10pIHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uQ29uZGl0aW9uVmFsdWUgPSB7aGF2ZToge3ZhbHVlczogW3BhcmFtc1snbmEnXV19fTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T25lKHBhcmFtc1snbmEnXSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGNhc3Rpbmcgc2hvdWxkIGRpc2FwcGVhciBhbmQgaW5zdGVhZCB0aGlzIGNsYXNzIHNob3VsZCBlbmZvcmNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzZXJ2aWNlIHRvIHN1cHBvcnQgVG9uZSB3aXRoIGEgbmV3IGdlbmVyaWNcbiAgICAgICAgICAgICAgICAgICAgKGFuY2VzdG9yOiBCcmVhZGNydW1iSXRlbSkgPT4gKHRoaXMuYnJlYWRjcnVtYnMgPSB0aGlzLmdldEJyZWFkY3J1bWIoYW5jZXN0b3IpKSxcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQW5jZXN0b3JDaGFuZ2VkID0gcGFyYW1zWyduYSddICE9PSB0aGlzLm9sZEFuY2VydG9ySWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5vbGRBbmNlcnRvcklkID0gcGFyYW1zWyduYSddO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2goaGFzQW5jZXN0b3JDaGFuZ2VkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbkNvbmRpdGlvblZhbHVlID0ge2VtcHR5OiB7fX07XG4gICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1icyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb246IExpdGVyYWwgPSB7fTtcbiAgICAgICAgICAgIGNvbmRpdGlvblt0aGlzLmFuY2VzdG9yUmVsYXRpb25OYW1lXSA9IG5hdmlnYXRpb25Db25kaXRpb25WYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlczogUXVlcnlWYXJpYWJsZXMgPSB7ZmlsdGVyOiB7Z3JvdXBzOiBbe2NvbmRpdGlvbnM6IFtjb25kaXRpb25dfV19fTtcblxuICAgICAgICAgICAgLy8gdG9kbyA6IGNoZWNrIHdoeSB3aXRob3V0IFwiYXMgVmFsbFwiIGl0IGVycm9ycy4gVmFsbCBpcyBzdXBwb3NlZCB0byBiZSBRdWVyeVZhcmlhYmxlcywgYW5kIGZpbHRlciB0b28uXG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlc01hbmFnZXIuc2V0KCduYXZpZ2F0aW9uJywgdmFyaWFibGVzIGFzIEV4dHJhY3RWYWxsPFRTZXJ2aWNlPik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldERhdGFPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UGFnaW5hdGVkRGF0YTxOYXZpZ2FibGVJdGVtPEV4dHJhY3RUYWxsT25lPFRTZXJ2aWNlPj4+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2Uud2F0Y2hBbGwodGhpcy52YXJpYWJsZXNNYW5hZ2VyIGFzIHVua25vd24gYXMgYW55KS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBPbiBlYWNoIGRhdGEgYXJyaXZpbmcsIHdlIHF1ZXJ5IGNoaWxkcmVuIGNvdW50IHRvIHNob3cvaGlkZSBjaGV2cm9uXG4gICAgICAgICAgICAgICAgY29uc3QgbmF2aWdhYmxlSXRlbXM6IE5hdmlnYWJsZUl0ZW08RXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+PltdID0gcmVzdWx0Lml0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmF2aWdhYmxlSXRlbTogTmF2aWdhYmxlSXRlbTxFeHRyYWN0VGFsbE9uZTxUU2VydmljZT4+ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogaXRlbSBhcyBFeHRyYWN0VGFsbE9uZTxUU2VydmljZT4sXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNOYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb246IExpdGVyYWwgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uW3RoaXMuYW5jZXN0b3JSZWxhdGlvbk5hbWVdID0ge2hhdmU6IHt2YWx1ZXM6IFtpdGVtLmlkXX19O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IFF1ZXJ5VmFyaWFibGVzID0ge2ZpbHRlcjoge2dyb3VwczogW3tjb25kaXRpb25zOiBbY29uZGl0aW9uXX1dfX07XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcXZtID0gbmV3IE5hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgcXZtLnNldCgndmFyaWFibGVzJywgdmFyaWFibGVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAuY291bnQocXZtKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoY291bnQgPT4gKG5hdmlnYWJsZUl0ZW0uaGFzTmF2aWdhdGlvbiA9IGNvdW50ID4gMCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuYXZpZ2FibGVJdGVtO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbmF2aWdhYmxlUmVzdWx0OiBQYWdpbmF0ZWREYXRhPE5hdmlnYWJsZUl0ZW08RXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+Pj4gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IG5hdmlnYWJsZUl0ZW1zLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmF2aWdhYmxlUmVzdWx0O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zbGF0ZVNlYXJjaEFuZFJlZnJlc2hMaXN0KG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ucyk6IHZvaWQge1xuICAgICAgICAvLyBDbGVhciBuYXZpZ2F0aW9uIGZpbHRlciBpZiB0aGVyZSBpcyBhIHNlYXJjaFxuICAgICAgICBpZiAobmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMuc29tZShzID0+IHMubGVuZ3RoKSkge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgnbmF2aWdhdGlvbicsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1icyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIudHJhbnNsYXRlU2VhcmNoQW5kUmVmcmVzaExpc3QobmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclNlYXJjaChyZXNldFBhZ2luYXRpb24gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMgPSBbW11dO1xuICAgICAgICBzdXBlci5zZWFyY2goW1tdXSwgdW5kZWZpbmVkLCByZXNldFBhZ2luYXRpb24pO1xuICAgICAgICB0aGlzLnBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0SW5TdG9yYWdlKCducycsIG51bGwsIHRoaXMuZ2V0U3RvcmFnZUtleSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VhcmNoKFxuICAgICAgICBuYXR1cmFsU2VhcmNoU2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMsXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICAgICByZXNldFBhZ2luYXRpb24gPSB0cnVlLFxuICAgICk6IHZvaWQge1xuICAgICAgICAvLyBuYSBzdGFuZHMgZm9yIG5hdmlnYXRpb25cbiAgICAgICAgdGhpcy5wZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdEluVXJsKCduYScsIG51bGwsIHRoaXMucm91dGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgc3VwZXIuc2VhcmNoKG5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zLCBuYXZpZ2F0aW9uRXh0cmFzLCByZXNldFBhZ2luYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgZm9yIHJvdXRlciBsaW5rIHVzYWdlXG4gICAgICovXG4gICAgcHVibGljIGdldENoaWxkTGluayhhbmNlc3Rvcjoge2lkOiBzdHJpbmd9IHwgbnVsbCk6IFJvdXRlckxpbmtbJ3JvdXRlckxpbmsnXSB7XG4gICAgICAgIGlmIChhbmNlc3RvciAmJiBhbmNlc3Rvci5pZCkge1xuICAgICAgICAgICAgcmV0dXJuIFsnLicsIHtuYTogYW5jZXN0b3IuaWR9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbJy4nLCB7fV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXB0aCBpcyBsaW1pdGVkIGJ5IHF1ZXJpZXNcbiAgICAgKiBAcGFyYW0gaXRlbSB3aXRoIGFuIGFuY2VzdG9yIHJlbGF0aW9uIChtdXN0IG1hdGNoIGFuY2VzdG9yUmVsYXRpb25OYW1lIGF0dHJpYnV0ZSlcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0QnJlYWRjcnVtYihpdGVtOiBCcmVhZGNydW1iSXRlbSk6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgICAgICBjb25zdCBhbmNlc3RvciA9IGl0ZW1bdGhpcy5hbmNlc3RvclJlbGF0aW9uTmFtZV07XG4gICAgICAgIGlmIChhbmNlc3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJlYWRjcnVtYihhbmNlc3RvcikuY29uY2F0KFtpdGVtXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW2l0ZW1dO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { importProvidersFrom } from '@angular/core';
|
|
2
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
3
|
+
import { localStorageProvider, sessionStorageProvider } from '../modules/common/services/memory-storage';
|
|
4
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
5
|
+
/**
|
|
6
|
+
* Minimal, global providers for Natural to work
|
|
7
|
+
*/
|
|
8
|
+
export const naturalProviders = [
|
|
9
|
+
importProvidersFrom([MatDialogModule, MatSnackBarModule]),
|
|
10
|
+
sessionStorageProvider,
|
|
11
|
+
localStorageProvider,
|
|
12
|
+
];
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQW1DO0lBQzVELG1CQUFtQixDQUFDLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDekQsc0JBQXNCO0lBQ3RCLG9CQUFvQjtDQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvbkNvbmZpZywgaW1wb3J0UHJvdmlkZXJzRnJvbX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7bG9jYWxTdG9yYWdlUHJvdmlkZXIsIHNlc3Npb25TdG9yYWdlUHJvdmlkZXJ9IGZyb20gJy4uL21vZHVsZXMvY29tbW9uL3NlcnZpY2VzL21lbW9yeS1zdG9yYWdlJztcbmltcG9ydCB7TWF0U25hY2tCYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbi8qKlxuICogTWluaW1hbCwgZ2xvYmFsIHByb3ZpZGVycyBmb3IgTmF0dXJhbCB0byB3b3JrXG4gKi9cbmV4cG9ydCBjb25zdCBuYXR1cmFsUHJvdmlkZXJzOiBBcHBsaWNhdGlvbkNvbmZpZ1sncHJvdmlkZXJzJ10gPSBbXG4gICAgaW1wb3J0UHJvdmlkZXJzRnJvbShbTWF0RGlhbG9nTW9kdWxlLCBNYXRTbmFja0Jhck1vZHVsZV0pLFxuICAgIHNlc3Npb25TdG9yYWdlUHJvdmlkZXIsXG4gICAgbG9jYWxTdG9yYWdlUHJvdmlkZXIsXG5dO1xuIl19
|
|
@@ -34,12 +34,13 @@ export class NaturalHttpPrefixDirective extends NaturalAbstractController {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalHttpPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
37
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: NaturalHttpPrefixDirective, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
37
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalHttpPrefixDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[naturalHttpPrefix]',
|
|
43
|
+
standalone: true,
|
|
43
44
|
}]
|
|
44
45
|
}], ctorParameters: function () { return []; }, propDecorators: { naturalHttpPrefix: [{
|
|
45
46
|
type: Input
|
|
@@ -47,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
47
48
|
type: HostListener,
|
|
48
49
|
args: ['ngModelChange', ['$event']]
|
|
49
50
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wcmVmaXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2RpcmVjdGl2ZXMvaHR0cC1wcmVmaXguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFekU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBb0I7SUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpGLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDcEMsT0FBTyxTQUFTLEdBQUcsS0FBSyxDQUFDO0tBQzVCO1NBQU07UUFDSCxPQUFPLEtBQUssQ0FBQztLQUNoQjtBQUNMLENBQUM7QUFFRDs7R0FFRztBQUtILE1BQU0sT0FBTywwQkFBMkIsU0FBUSx5QkFBeUI7SUFHckU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUhJLHNCQUFpQixHQUEyQixJQUFJLENBQUM7SUFJakUsQ0FBQztJQUdNLE9BQU8sQ0FBQyxNQUFjO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQztZQUNwRCxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7U0FDSjtJQUNMLENBQUM7OEdBZlEsMEJBQTBCO2tHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25COzBFQUVtQixpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJ9IGZyb20gJy4uL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5cbi8qKlxuICogTmVlZCB0byBhZGQgIGh0dHA6Ly8gcHJlZml4IGlmIHdlIGRvbid0IGhhdmUgcHJlZml4IGFscmVhZHkgQU5EIHdlIGRvbid0IGhhdmUgcGFydCBvZiBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlSHR0cFByZWZpeCh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBsZXRlUHJlZml4ID0gL14oaHR0cHM/KTpcXC9cXC8vaS50ZXN0KHZhbHVlKTtcbiAgICBjb25zdCBzdGFydGluZ1ByZWZpeCA9ICdodHRwczovLycuaW5kZXhPZih2YWx1ZSkgPT09IDAgfHwgJ2h0dHA6Ly8nLmluZGV4T2YodmFsdWUpID09PSAwO1xuXG4gICAgaWYgKCFjb21wbGV0ZVByZWZpeCAmJiAhc3RhcnRpbmdQcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuICdodHRwOi8vJyArIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgb25seSBzdXBwb3J0cyBSZWFjdGl2ZUZvcm1zIGR1ZSB0byBuZ01vZGVsL25nQ29udHJvbCBlbmNhcHN1bGF0aW9uIGFuZCBjaGFuZ2VzIGVtaXNzaW9ucy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmF0dXJhbEh0dHBQcmVmaXhdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSHR0cFByZWZpeERpcmVjdGl2ZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYXR1cmFsSHR0cFByZWZpeDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbmdNb2RlbENoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGh0dHBpemUoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0dXJhbEh0dHBQcmVmaXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZW5zdXJlSHR0cFByZWZpeCgkZXZlbnQpIHx8ICRldmVudDtcbiAgICAgICAgICAgIGlmICgkZXZlbnQgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsSHR0cFByZWZpeC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|