@ionic/angular 8.7.19-nightly.20260304 → 8.8.1-nightly.20260305
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/common/index.d.ts +1 -0
- package/common/overlays/modal.d.ts +13 -1
- package/common/providers/angular-delegate.d.ts +4 -3
- package/common/types/overlay-options.d.ts +16 -0
- package/directives/proxies.d.ts +14 -2
- package/esm2022/common/index.mjs +1 -1
- package/esm2022/common/overlays/modal.mjs +4 -1
- package/esm2022/common/providers/angular-delegate.mjs +9 -7
- package/esm2022/common/types/overlay-options.mjs +2 -0
- package/esm2022/directives/proxies.mjs +8 -8
- package/esm2022/index.mjs +1 -1
- package/esm2022/providers/modal-controller.mjs +4 -3
- package/esm2022/providers/popover-controller.mjs +4 -3
- package/esm2022/standalone/directives/proxies.mjs +8 -8
- package/esm2022/standalone/index.mjs +1 -1
- package/esm2022/standalone/providers/modal-controller.mjs +4 -3
- package/esm2022/standalone/providers/popover-controller.mjs +4 -3
- package/fesm2022/ionic-angular-common.mjs +11 -6
- package/fesm2022/ionic-angular-common.mjs.map +1 -1
- package/fesm2022/ionic-angular-standalone.mjs +13 -11
- package/fesm2022/ionic-angular-standalone.mjs.map +1 -1
- package/fesm2022/ionic-angular.mjs +13 -11
- package/fesm2022/ionic-angular.mjs.map +1 -1
- package/index.d.ts +2 -1
- package/package.json +2 -2
- package/providers/modal-controller.d.ts +1 -1
- package/providers/popover-controller.d.ts +1 -1
- package/standalone/directives/proxies.d.ts +14 -2
- package/standalone/index.d.ts +2 -1
- package/standalone/providers/modal-controller.d.ts +1 -1
- package/standalone/providers/popover-controller.d.ts +1 -1
package/common/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { Platform } from './providers/platform';
|
|
|
6
6
|
export { AngularDelegate, bindLifecycleEvents, IonModalToken } from './providers/angular-delegate';
|
|
7
7
|
export type { IonicWindow } from './types/interfaces';
|
|
8
8
|
export type { ViewDidEnter, ViewDidLeave, ViewWillEnter, ViewWillLeave } from './types/ionic-lifecycle-hooks';
|
|
9
|
+
export type { ModalOptions, PopoverOptions } from './types/overlay-options';
|
|
9
10
|
export { NavParams } from './directives/navigation/nav-params';
|
|
10
11
|
export { IonModal } from './overlays/modal';
|
|
11
12
|
export { IonPopover } from './overlays/popover';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, TemplateRef } from '@angular/core';
|
|
2
|
-
import type { Components, ModalBreakpointChangeEventDetail } from '@ionic/core/components';
|
|
2
|
+
import type { Components, ModalBreakpointChangeEventDetail, ModalDragEventDetail } from '@ionic/core/components';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare interface IonModal extends Components.IonModal {
|
|
5
5
|
/**
|
|
@@ -22,6 +22,18 @@ export declare interface IonModal extends Components.IonModal {
|
|
|
22
22
|
* Emitted after the modal breakpoint has changed.
|
|
23
23
|
*/
|
|
24
24
|
ionBreakpointDidChange: EventEmitter<CustomEvent<ModalBreakpointChangeEventDetail>>;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted when the sheet or card modal has started being dragged.
|
|
27
|
+
*/
|
|
28
|
+
ionDragStart: EventEmitter<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Emitted while the sheet or card modal is being dragged.
|
|
31
|
+
*/
|
|
32
|
+
ionDragMove: EventEmitter<CustomEvent<ModalDragEventDetail>>;
|
|
33
|
+
/**
|
|
34
|
+
* Emitted when the sheet or card modal has finished being dragged.
|
|
35
|
+
*/
|
|
36
|
+
ionDragEnd: EventEmitter<CustomEvent<ModalDragEventDetail>>;
|
|
25
37
|
/**
|
|
26
38
|
* Emitted after the modal has presented. Shorthand for ionModalDidPresent.
|
|
27
39
|
*/
|
|
@@ -6,7 +6,7 @@ export declare class AngularDelegate {
|
|
|
6
6
|
private zone;
|
|
7
7
|
private applicationRef;
|
|
8
8
|
private config;
|
|
9
|
-
create(environmentInjector: EnvironmentInjector, injector: Injector, elementReferenceKey?: string): AngularFrameworkDelegate;
|
|
9
|
+
create(environmentInjector: EnvironmentInjector, injector: Injector, elementReferenceKey?: string, customInjector?: Injector): AngularFrameworkDelegate;
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AngularDelegate, never>;
|
|
11
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<AngularDelegate>;
|
|
12
12
|
}
|
|
@@ -17,11 +17,12 @@ export declare class AngularFrameworkDelegate implements FrameworkDelegate {
|
|
|
17
17
|
private zone;
|
|
18
18
|
private elementReferenceKey?;
|
|
19
19
|
private enableSignalsSupport?;
|
|
20
|
+
private customInjector?;
|
|
20
21
|
private elRefMap;
|
|
21
22
|
private elEventsMap;
|
|
22
|
-
constructor(environmentInjector: EnvironmentInjector, injector: Injector, applicationRef: ApplicationRef, zone: NgZone, elementReferenceKey?: string | undefined, enableSignalsSupport?: boolean | undefined);
|
|
23
|
+
constructor(environmentInjector: EnvironmentInjector, injector: Injector, applicationRef: ApplicationRef, zone: NgZone, elementReferenceKey?: string | undefined, enableSignalsSupport?: boolean | undefined, customInjector?: Injector | undefined);
|
|
23
24
|
attachViewToDom(container: any, component: any, params?: any, cssClasses?: string[]): Promise<any>;
|
|
24
25
|
removeViewFromDom(_container: any, component: any): Promise<void>;
|
|
25
26
|
}
|
|
26
|
-
export declare const attachView: (zone: NgZone, environmentInjector: EnvironmentInjector, injector: Injector, applicationRef: ApplicationRef, elRefMap: WeakMap<HTMLElement, ComponentRef<any>>, elEventsMap: WeakMap<HTMLElement, () => void>, container: any, component: any, params: any, cssClasses: string[] | undefined, elementReferenceKey: string | undefined, enableSignalsSupport: boolean | undefined) => any;
|
|
27
|
+
export declare const attachView: (zone: NgZone, environmentInjector: EnvironmentInjector, injector: Injector, applicationRef: ApplicationRef, elRefMap: WeakMap<HTMLElement, ComponentRef<any>>, elEventsMap: WeakMap<HTMLElement, () => void>, container: any, component: any, params: any, cssClasses: string[] | undefined, elementReferenceKey: string | undefined, enableSignalsSupport: boolean | undefined, customInjector?: Injector) => any;
|
|
27
28
|
export declare const bindLifecycleEvents: (zone: NgZone, instance: any, element: HTMLElement) => (() => void);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Injector } from '@angular/core';
|
|
2
|
+
import type { ModalOptions as CoreModalOptions, PopoverOptions as CorePopoverOptions } from '@ionic/core/components';
|
|
3
|
+
/**
|
|
4
|
+
* Modal options with Angular-specific injector support.
|
|
5
|
+
* Extends @ionic/core ModalOptions with an optional injector property.
|
|
6
|
+
*/
|
|
7
|
+
export type ModalOptions = CoreModalOptions & {
|
|
8
|
+
injector?: Injector;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Popover options with Angular-specific injector support.
|
|
12
|
+
* Extends @ionic/core PopoverOptions with an optional injector property.
|
|
13
|
+
*/
|
|
14
|
+
export type PopoverOptions = CorePopoverOptions & {
|
|
15
|
+
injector?: Injector;
|
|
16
|
+
};
|
package/directives/proxies.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import type { RangeChangeEventDetail as IIonRangeRangeChangeEventDetail } from '
|
|
|
22
22
|
import type { RangeKnobMoveStartEventDetail as IIonRangeRangeKnobMoveStartEventDetail } from '@ionic/core';
|
|
23
23
|
import type { RangeKnobMoveEndEventDetail as IIonRangeRangeKnobMoveEndEventDetail } from '@ionic/core';
|
|
24
24
|
import type { RefresherEventDetail as IIonRefresherRefresherEventDetail } from '@ionic/core';
|
|
25
|
+
import type { RefresherPullEndEventDetail as IIonRefresherRefresherPullEndEventDetail } from '@ionic/core';
|
|
25
26
|
import type { ItemReorderEventDetail as IIonReorderGroupItemReorderEventDetail } from '@ionic/core';
|
|
26
27
|
import type { ReorderMoveEventDetail as IIonReorderGroupReorderMoveEventDetail } from '@ionic/core';
|
|
27
28
|
import type { ReorderEndEventDetail as IIonReorderGroupReorderEndEventDetail } from '@ionic/core';
|
|
@@ -980,8 +981,19 @@ export declare interface IonRefresher extends Components.IonRefresher {
|
|
|
980
981
|
ionPull: EventEmitter<CustomEvent<void>>;
|
|
981
982
|
/**
|
|
982
983
|
* Emitted when the user begins to start pulling down.
|
|
984
|
+
TODO(FW-7044): Remove this in a major release @deprecated Use `ionPullStart` instead.
|
|
983
985
|
*/
|
|
984
986
|
ionStart: EventEmitter<CustomEvent<void>>;
|
|
987
|
+
/**
|
|
988
|
+
* Emitted when the user begins to start pulling down.
|
|
989
|
+
*/
|
|
990
|
+
ionPullStart: EventEmitter<CustomEvent<void>>;
|
|
991
|
+
/**
|
|
992
|
+
* Emitted when the refresher has returned to the inactive state
|
|
993
|
+
after a pull gesture. This fires whether the refresh completed
|
|
994
|
+
successfully or was canceled.
|
|
995
|
+
*/
|
|
996
|
+
ionPullEnd: EventEmitter<CustomEvent<IIonRefresherRefresherPullEndEventDetail>>;
|
|
985
997
|
}
|
|
986
998
|
export declare class IonRefresherContent {
|
|
987
999
|
protected z: NgZone;
|
|
@@ -1132,7 +1144,7 @@ export declare class IonSegmentView {
|
|
|
1132
1144
|
protected el: HTMLIonSegmentViewElement;
|
|
1133
1145
|
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
1134
1146
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonSegmentView, never>;
|
|
1135
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonSegmentView, "ion-segment-view", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1147
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonSegmentView, "ion-segment-view", never, { "disabled": { "alias": "disabled"; "required": false; }; "swipeGesture": { "alias": "swipeGesture"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1136
1148
|
}
|
|
1137
1149
|
export declare interface IonSegmentView extends Components.IonSegmentView {
|
|
1138
1150
|
/**
|
|
@@ -1176,7 +1188,7 @@ export declare class IonSelectModal {
|
|
|
1176
1188
|
protected el: HTMLIonSelectModalElement;
|
|
1177
1189
|
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
1178
1190
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonSelectModal, never>;
|
|
1179
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonSelectModal, "ion-select-modal", never, { "header": { "alias": "header"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1191
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonSelectModal, "ion-select-modal", never, { "cancelText": { "alias": "cancelText"; "required": false; }; "header": { "alias": "header"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
1180
1192
|
}
|
|
1181
1193
|
export declare interface IonSelectModal extends Components.IonSelectModal {
|
|
1182
1194
|
}
|
package/esm2022/common/index.mjs
CHANGED
|
@@ -17,4 +17,4 @@ export { ProxyCmp } from './utils/proxy';
|
|
|
17
17
|
export { OverlayBaseController } from './utils/overlay';
|
|
18
18
|
export { IonicRouteStrategy } from './utils/routing';
|
|
19
19
|
export { raf } from './utils/util';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21tb24vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFNbkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXRHLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLG1DQUFtQyxHQUNwQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEb21Db250cm9sbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZG9tLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTWVudUNvbnRyb2xsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9tZW51LWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL25hdi1jb250cm9sbGVyJztcblxuZXhwb3J0IHsgQ29uZmlnLCBDb25maWdUb2tlbiB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbmZpZyc7XG5leHBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vcHJvdmlkZXJzL3BsYXRmb3JtJztcblxuZXhwb3J0IHsgQW5ndWxhckRlbGVnYXRlLCBiaW5kTGlmZWN5Y2xlRXZlbnRzLCBJb25Nb2RhbFRva2VuIH0gZnJvbSAnLi9wcm92aWRlcnMvYW5ndWxhci1kZWxlZ2F0ZSc7XG5cbmV4cG9ydCB0eXBlIHsgSW9uaWNXaW5kb3cgfSBmcm9tICcuL3R5cGVzL2ludGVyZmFjZXMnO1xuZXhwb3J0IHR5cGUgeyBWaWV3RGlkRW50ZXIsIFZpZXdEaWRMZWF2ZSwgVmlld1dpbGxFbnRlciwgVmlld1dpbGxMZWF2ZSB9IGZyb20gJy4vdHlwZXMvaW9uaWMtbGlmZWN5Y2xlLWhvb2tzJztcbmV4cG9ydCB0eXBlIHsgTW9kYWxPcHRpb25zLCBQb3BvdmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMvb3ZlcmxheS1vcHRpb25zJztcblxuZXhwb3J0IHsgTmF2UGFyYW1zIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25hdmlnYXRpb24vbmF2LXBhcmFtcyc7XG5cbmV4cG9ydCB7IElvbk1vZGFsIH0gZnJvbSAnLi9vdmVybGF5cy9tb2RhbCc7XG5leHBvcnQgeyBJb25Qb3BvdmVyIH0gZnJvbSAnLi9vdmVybGF5cy9wb3BvdmVyJztcblxuZXhwb3J0IHsgSW9uUm91dGVyT3V0bGV0LCBwcm92aWRlQ29tcG9uZW50SW5wdXRCaW5kaW5nIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25hdmlnYXRpb24vcm91dGVyLW91dGxldCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb250cm9sLXZhbHVlLWFjY2Vzc29ycyc7XG5leHBvcnQgeyBJb25CYWNrQnV0dG9uIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25hdmlnYXRpb24vYmFjay1idXR0b24nO1xuZXhwb3J0IHsgSW9uTmF2IH0gZnJvbSAnLi9kaXJlY3RpdmVzL25hdmlnYXRpb24vbmF2JztcbmV4cG9ydCB7XG4gIFJvdXRlckxpbmtEZWxlZ2F0ZURpcmVjdGl2ZSxcbiAgUm91dGVyTGlua1dpdGhIcmVmRGVsZWdhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlJztcbmV4cG9ydCB7IElvblRhYnMgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi90YWJzJztcblxuZXhwb3J0IHsgUHJveHlDbXAgfSBmcm9tICcuL3V0aWxzL3Byb3h5JztcblxuZXhwb3J0IHsgT3ZlcmxheUJhc2VDb250cm9sbGVyIH0gZnJvbSAnLi91dGlscy9vdmVybGF5JztcbmV4cG9ydCB7IElvbmljUm91dGVTdHJhdGVneSB9IGZyb20gJy4vdXRpbHMvcm91dGluZyc7XG5cbmV4cG9ydCB7IHJhZiB9IGZyb20gJy4vdXRpbHMvdXRpbCc7XG4iXX0=
|
|
@@ -68,6 +68,9 @@ class IonModal {
|
|
|
68
68
|
'willPresent',
|
|
69
69
|
'willDismiss',
|
|
70
70
|
'didDismiss',
|
|
71
|
+
'ionDragStart',
|
|
72
|
+
'ionDragMove',
|
|
73
|
+
'ionDragEnd',
|
|
71
74
|
]);
|
|
72
75
|
}
|
|
73
76
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -97,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
97
100
|
type: ContentChild,
|
|
98
101
|
args: [TemplateRef, { static: false }]
|
|
99
102
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21tb24vc3JjL292ZXJsYXlzL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFJVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxRHhELE1BQU0sWUFBWSxHQUFHO0lBQ25CLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsWUFBWTtJQUNaLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxXQUFXO0lBQ1gsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsUUFBUTtJQUNSLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsTUFBTTtJQUNOLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsYUFBYTtJQUNiLFNBQVM7Q0FDVixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7SUFDcEIsU0FBUztJQUNULFNBQVM7SUFDVCxjQUFjO0lBQ2QsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixzQkFBc0I7Q0FDdkIsQ0FBQztBQVlGLElBT2EsUUFBUTtBQWJyQjs7Ozs7R0FLRztBQUNILE1BT2EsUUFBUTtJQVF3QztJQVAzRCxzQkFBc0I7SUFDd0IsUUFBUSxDQUFtQjtJQUV6RSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRVIsRUFBRSxDQUFjO0lBRTFCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRTFCLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQzFCLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsWUFBWTtZQUNaLGNBQWM7WUFDZCxhQUFhO1lBQ2IsWUFBWTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7MkhBakNVLFFBQVE7K0dBQVIsUUFBUSwrdEJBRUwsV0FBVzs7QUFGZCxRQUFRO0lBakJwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsWUFBWTtRQUNwQixPQUFPLEVBQUUsYUFBYTtLQUN2QixDQUFDO0lBQ0Y7Ozs7O09BS0c7R0FRVSxRQUFRLENBa0NwQjtTQWxDWSxRQUFROzRGQUFSLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLFlBQVk7aUJBQ3JCO3NKQUsrQyxRQUFRO3NCQUFyRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudHMsIE1vZGFsQnJlYWtwb2ludENoYW5nZUV2ZW50RGV0YWlsLCBNb2RhbERyYWdFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi4vdXRpbHMvcHJveHknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLklvbk1vZGFsIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuXG4gICAqKi9cbiAgaW9uTW9kYWxEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuXG4gICAqL1xuICBpb25Nb2RhbFdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25Nb2RhbFdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgbW9kYWwgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvbk1vZGFsRGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGJyZWFrcG9pbnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBpb25CcmVha3BvaW50RGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW9kYWxCcmVha3BvaW50Q2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2hlZXQgb3IgY2FyZCBtb2RhbCBoYXMgc3RhcnRlZCBiZWluZyBkcmFnZ2VkLlxuICAgKi9cbiAgaW9uRHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8dm9pZD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoaWxlIHRoZSBzaGVldCBvciBjYXJkIG1vZGFsIGlzIGJlaW5nIGRyYWdnZWQuXG4gICAqL1xuICBpb25EcmFnTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vZGFsRHJhZ0V2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNoZWV0IG9yIGNhcmQgbW9kYWwgaGFzIGZpbmlzaGVkIGJlaW5nIGRyYWdnZWQuXG4gICAqL1xuICBpb25EcmFnRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW9kYWxEcmFnRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuIFNob3J0aGFuZCBmb3IgaW9uTW9kYWxEaWRQcmVzZW50LlxuICAgKi9cbiAgZGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBtb2RhbCBoYXMgcHJlc2VudGVkLiBTaG9ydGhhbmQgZm9yIGlvbk1vZGFsV2lsbFByZXNlbnQuXG4gICAqL1xuICB3aWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBtb2RhbCBoYXMgZGlzbWlzc2VkLiBTaG9ydGhhbmQgZm9yIGlvbk1vZGFsV2lsbERpc21pc3MuXG4gICAqL1xuICB3aWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGhhcyBkaXNtaXNzZWQuIFNob3J0aGFuZCBmb3IgaW9uTW9kYWxEaWREaXNtaXNzLlxuICAgKi9cbiAgZGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50Pjtcbn1cblxuY29uc3QgTU9EQUxfSU5QVVRTID0gW1xuICAnYW5pbWF0ZWQnLFxuICAna2VlcENvbnRlbnRzTW91bnRlZCcsXG4gICdiYWNrZHJvcEJyZWFrcG9pbnQnLFxuICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgJ2JyZWFrcG9pbnRzJyxcbiAgJ2NhbkRpc21pc3MnLFxuICAnY3NzQ2xhc3MnLFxuICAnZW50ZXJBbmltYXRpb24nLFxuICAnZXhwYW5kVG9TY3JvbGwnLFxuICAnZXZlbnQnLFxuICAnZm9jdXNUcmFwJyxcbiAgJ2hhbmRsZScsXG4gICdoYW5kbGVCZWhhdmlvcicsXG4gICdpbml0aWFsQnJlYWtwb2ludCcsXG4gICdpc09wZW4nLFxuICAna2V5Ym9hcmRDbG9zZScsXG4gICdsZWF2ZUFuaW1hdGlvbicsXG4gICdtb2RlJyxcbiAgJ3ByZXNlbnRpbmdFbGVtZW50JyxcbiAgJ3Nob3dCYWNrZHJvcCcsXG4gICd0cmFuc2x1Y2VudCcsXG4gICd0cmlnZ2VyJyxcbl07XG5cbmNvbnN0IE1PREFMX01FVEhPRFMgPSBbXG4gICdwcmVzZW50JyxcbiAgJ2Rpc21pc3MnLFxuICAnb25EaWREaXNtaXNzJyxcbiAgJ29uV2lsbERpc21pc3MnLFxuICAnc2V0Q3VycmVudEJyZWFrcG9pbnQnLFxuICAnZ2V0Q3VycmVudEJyZWFrcG9pbnQnLFxuXTtcblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBNT0RBTF9JTlBVVFMsXG4gIG1ldGhvZHM6IE1PREFMX01FVEhPRFMsXG59KVxuLyoqXG4gKiBAQ29tcG9uZW50IGV4dGVuZHMgZnJvbSBARGlyZWN0aXZlXG4gKiBzbyBieSBkZWZpbmluZyB0aGUgaW5wdXRzIGhlcmUgd2VcbiAqIGRvIG5vdCBuZWVkIHRvIHJlLWRlZmluZSB0aGVtIGZvciB0aGVcbiAqIGxhenkgbG9hZGVkIHBvcG92ZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lvbi1tb2RhbCcsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogTU9EQUxfSU5QVVRTLFxufSlcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW9uTW9kYWwge1xuICAvLyBUT0RPKEZXLTI4MjcpOiB0eXBlXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiBmYWxzZSB9KSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBpc0NtcE9wZW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcignaW9uTW91bnQnLCAoKSA9PiB7XG4gICAgICB0aGlzLmlzQ21wT3BlbiA9IHRydWU7XG4gICAgICBjLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2RpZERpc21pc3MnLCAoKSA9PiB7XG4gICAgICB0aGlzLmlzQ21wT3BlbiA9IGZhbHNlO1xuICAgICAgYy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFtcbiAgICAgICdpb25Nb2RhbERpZFByZXNlbnQnLFxuICAgICAgJ2lvbk1vZGFsV2lsbFByZXNlbnQnLFxuICAgICAgJ2lvbk1vZGFsV2lsbERpc21pc3MnLFxuICAgICAgJ2lvbk1vZGFsRGlkRGlzbWlzcycsXG4gICAgICAnaW9uQnJlYWtwb2ludERpZENoYW5nZScsXG4gICAgICAnZGlkUHJlc2VudCcsXG4gICAgICAnd2lsbFByZXNlbnQnLFxuICAgICAgJ3dpbGxEaXNtaXNzJyxcbiAgICAgICdkaWREaXNtaXNzJyxcbiAgICAgICdpb25EcmFnU3RhcnQnLFxuICAgICAgJ2lvbkRyYWdNb3ZlJyxcbiAgICAgICdpb25EcmFnRW5kJyxcbiAgICBdKTtcbiAgfVxufVxuIl19
|
|
@@ -10,8 +10,8 @@ class AngularDelegate {
|
|
|
10
10
|
zone = inject(NgZone);
|
|
11
11
|
applicationRef = inject(ApplicationRef);
|
|
12
12
|
config = inject(ConfigToken);
|
|
13
|
-
create(environmentInjector, injector, elementReferenceKey) {
|
|
14
|
-
return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey, this.config.useSetInputAPI ?? false);
|
|
13
|
+
create(environmentInjector, injector, elementReferenceKey, customInjector) {
|
|
14
|
+
return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey, this.config.useSetInputAPI ?? false, customInjector);
|
|
15
15
|
}
|
|
16
16
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
17
|
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate });
|
|
@@ -27,15 +27,17 @@ export class AngularFrameworkDelegate {
|
|
|
27
27
|
zone;
|
|
28
28
|
elementReferenceKey;
|
|
29
29
|
enableSignalsSupport;
|
|
30
|
+
customInjector;
|
|
30
31
|
elRefMap = new WeakMap();
|
|
31
32
|
elEventsMap = new WeakMap();
|
|
32
|
-
constructor(environmentInjector, injector, applicationRef, zone, elementReferenceKey, enableSignalsSupport) {
|
|
33
|
+
constructor(environmentInjector, injector, applicationRef, zone, elementReferenceKey, enableSignalsSupport, customInjector) {
|
|
33
34
|
this.environmentInjector = environmentInjector;
|
|
34
35
|
this.injector = injector;
|
|
35
36
|
this.applicationRef = applicationRef;
|
|
36
37
|
this.zone = zone;
|
|
37
38
|
this.elementReferenceKey = elementReferenceKey;
|
|
38
39
|
this.enableSignalsSupport = enableSignalsSupport;
|
|
40
|
+
this.customInjector = customInjector;
|
|
39
41
|
}
|
|
40
42
|
attachViewToDom(container, component, params, cssClasses) {
|
|
41
43
|
return this.zone.run(() => {
|
|
@@ -54,7 +56,7 @@ export class AngularFrameworkDelegate {
|
|
|
54
56
|
if (this.elementReferenceKey !== undefined) {
|
|
55
57
|
componentProps[this.elementReferenceKey] = container;
|
|
56
58
|
}
|
|
57
|
-
const el = attachView(this.zone, this.environmentInjector, this.injector, this.applicationRef, this.elRefMap, this.elEventsMap, container, component, componentProps, cssClasses, this.elementReferenceKey, this.enableSignalsSupport);
|
|
59
|
+
const el = attachView(this.zone, this.environmentInjector, this.injector, this.applicationRef, this.elRefMap, this.elEventsMap, container, component, componentProps, cssClasses, this.elementReferenceKey, this.enableSignalsSupport, this.customInjector);
|
|
58
60
|
resolve(el);
|
|
59
61
|
});
|
|
60
62
|
});
|
|
@@ -77,7 +79,7 @@ export class AngularFrameworkDelegate {
|
|
|
77
79
|
});
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
|
-
export const attachView = (zone, environmentInjector, injector, applicationRef, elRefMap, elEventsMap, container, component, params, cssClasses, elementReferenceKey, enableSignalsSupport) => {
|
|
82
|
+
export const attachView = (zone, environmentInjector, injector, applicationRef, elRefMap, elEventsMap, container, component, params, cssClasses, elementReferenceKey, enableSignalsSupport, customInjector) => {
|
|
81
83
|
/**
|
|
82
84
|
* Wraps the injector with a custom injector that
|
|
83
85
|
* provides NavParams to the component.
|
|
@@ -101,7 +103,7 @@ export const attachView = (zone, environmentInjector, injector, applicationRef,
|
|
|
101
103
|
}
|
|
102
104
|
const childInjector = Injector.create({
|
|
103
105
|
providers,
|
|
104
|
-
parent: injector,
|
|
106
|
+
parent: customInjector ?? injector,
|
|
105
107
|
});
|
|
106
108
|
const componentRef = createComponent(component, {
|
|
107
109
|
environmentInjector,
|
|
@@ -198,4 +200,4 @@ const getProviders = (params) => {
|
|
|
198
200
|
const provideNavParamsInjectable = (params) => {
|
|
199
201
|
return new NavParams(params);
|
|
200
202
|
};
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1kZWxlZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvcHJvdmlkZXJzL2FuZ3VsYXItZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxlQUFlLEVBRWYsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV2Qyx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFzQixlQUFlLENBQUMsQ0FBQztBQUV0Rix1QkFBdUI7QUFFdkIsTUFDYSxlQUFlO0lBQ2xCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sQ0FDSixtQkFBd0MsRUFDeEMsUUFBa0IsRUFDbEIsbUJBQTRCO1FBRTVCLE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsSUFBSSxFQUNULG1CQUFtQixFQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQ3BDLENBQUM7SUFDSixDQUFDOzJIQWxCVSxlQUFlOytIQUFmLGVBQWU7O1NBQWYsZUFB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QyxNQUE4QixFQUFFLEVBQUU7SUFDcEUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBOZ1pvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRnJhbWV3b3JrRGVsZWdhdGUsXG4gIExJRkVDWUNMRV9ESURfRU5URVIsXG4gIExJRkVDWUNMRV9ESURfTEVBVkUsXG4gIExJRkVDWUNMRV9XSUxMX0VOVEVSLFxuICBMSUZFQ1lDTEVfV0lMTF9MRUFWRSxcbiAgTElGRUNZQ0xFX1dJTExfVU5MT0FELFxufSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgTmF2UGFyYW1zIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL25hdi1wYXJhbXMnO1xuXG5pbXBvcnQgeyBDb25maWdUb2tlbiB9IGZyb20gJy4vY29uZmlnJztcblxuLy8gVG9rZW4gZm9yIGluamVjdGluZyB0aGUgbW9kYWwgZWxlbWVudFxuZXhwb3J0IGNvbnN0IElvbk1vZGFsVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SFRNTElvbk1vZGFsRWxlbWVudD4oJ0lvbk1vZGFsVG9rZW4nKTtcblxuLy8gVE9ETyhGVy0yODI3KTogdHlwZXNcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJEZWxlZ2F0ZSB7XG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIGFwcGxpY2F0aW9uUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQ29uZmlnVG9rZW4pO1xuXG4gIGNyZWF0ZShcbiAgICBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBlbGVtZW50UmVmZXJlbmNlS2V5Pzogc3RyaW5nXG4gICk6IEFuZ3VsYXJGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gICAgcmV0dXJuIG5ldyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUoXG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxuICAgICAgdGhpcy56b25lLFxuICAgICAgZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgIHRoaXMuY29uZmlnLnVzZVNldElucHV0QVBJID8/IGZhbHNlXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQW5ndWxhckZyYW1ld29ya0RlbGVnYXRlIGltcGxlbWVudHMgRnJhbWV3b3JrRGVsZWdhdGUge1xuICBwcml2YXRlIGVsUmVmTWFwID0gbmV3IFdlYWtNYXA8SFRNTEVsZW1lbnQsIENvbXBvbmVudFJlZjxhbnk+PigpO1xuICBwcml2YXRlIGVsRXZlbnRzTWFwID0gbmV3IFdlYWtNYXA8SFRNTEVsZW1lbnQsICgpID0+IHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZUtleT86IHN0cmluZyxcbiAgICBwcml2YXRlIGVuYWJsZVNpZ25hbHNTdXBwb3J0PzogYm9vbGVhblxuICApIHt9XG5cbiAgYXR0YWNoVmlld1RvRG9tKGNvbnRhaW5lcjogYW55LCBjb21wb25lbnQ6IGFueSwgcGFyYW1zPzogYW55LCBjc3NDbGFzc2VzPzogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRQcm9wcyA9IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElvbmljIEFuZ3VsYXIgcGFzc2VzIGEgcmVmZXJlbmNlIHRvIGEgbW9kYWxcbiAgICAgICAgICogb3IgcG9wb3ZlciB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBhXG4gICAgICAgICAqIHZhcmlhYmxlIGluIHRoZSBvdmVybGF5IGNvbXBvbmVudC4gSWZcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBpcyBkZWZpbmVkLCB0aGVuIHdlIHNob3VsZFxuICAgICAgICAgKiBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgdXNpbmdcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBhcyB0aGUga2V5LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcG9uZW50UHJvcHNbdGhpcy5lbGVtZW50UmVmZXJlbmNlS2V5XSA9IGNvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsID0gYXR0YWNoVmlldyhcbiAgICAgICAgICB0aGlzLnpvbmUsXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZixcbiAgICAgICAgICB0aGlzLmVsUmVmTWFwLFxuICAgICAgICAgIHRoaXMuZWxFdmVudHNNYXAsXG4gICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBjb21wb25lbnRQcm9wcyxcbiAgICAgICAgICBjc3NDbGFzc2VzLFxuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgICAgICB0aGlzLmVuYWJsZVNpZ25hbHNTdXBwb3J0XG4gICAgICAgICk7XG4gICAgICAgIHJlc29sdmUoZWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVWaWV3RnJvbURvbShfY29udGFpbmVyOiBhbnksIGNvbXBvbmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZWxSZWZNYXAuZ2V0KGNvbXBvbmVudCk7XG4gICAgICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgIHRoaXMuZWxSZWZNYXAuZGVsZXRlKGNvbXBvbmVudCk7XG4gICAgICAgICAgY29uc3QgdW5iaW5kRXZlbnRzID0gdGhpcy5lbEV2ZW50c01hcC5nZXQoY29tcG9uZW50KTtcbiAgICAgICAgICBpZiAodW5iaW5kRXZlbnRzKSB7XG4gICAgICAgICAgICB1bmJpbmRFdmVudHMoKTtcbiAgICAgICAgICAgIHRoaXMuZWxFdmVudHNNYXAuZGVsZXRlKGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhdHRhY2hWaWV3ID0gKFxuICB6b25lOiBOZ1pvbmUsXG4gIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdG9yOiBJbmplY3RvcixcbiAgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICBlbFJlZk1hcDogV2Vha01hcDxIVE1MRWxlbWVudCwgQ29tcG9uZW50UmVmPGFueT4+LFxuICBlbEV2ZW50c01hcDogV2Vha01hcDxIVE1MRWxlbWVudCwgKCkgPT4gdm9pZD4sXG4gIGNvbnRhaW5lcjogYW55LFxuICBjb21wb25lbnQ6IGFueSxcbiAgcGFyYW1zOiBhbnksXG4gIGNzc0NsYXNzZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICBlbGVtZW50UmVmZXJlbmNlS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGVuYWJsZVNpZ25hbHNTdXBwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBhbnkgPT4ge1xuICAvKipcbiAgICogV3JhcHMgdGhlIGluamVjdG9yIHdpdGggYSBjdXN0b20gaW5qZWN0b3IgdGhhdFxuICAgKiBwcm92aWRlcyBOYXZQYXJhbXMgdG8gdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogTmF2UGFyYW1zIGlzIGEgbGVnYWN5IGZlYXR1cmUgZnJvbSBJb25pYyB2MyB0aGF0IGFsbG93c1xuICAgKiBBbmd1bGFyIGRldmVsb3BlcnMgdG8gcHJvdmlkZSBkYXRhIHRvIGEgY29tcG9uZW50XG4gICAqIGFuZCBhY2Nlc3MgaXQgYnkgcHJvdmlkaW5nIE5hdlBhcmFtcyBhcyBhIGRlcGVuZGVuY3lcbiAgICogaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBUaGUgbW9kZXJuIGFwcHJvYWNoIGlzIHRvIGFjY2VzcyB0aGUgZGF0YSBkaXJlY3RseVxuICAgKiBmcm9tIHRoZSBjb21wb25lbnQncyBjbGFzcyBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0IHByb3ZpZGVycyA9IGdldFByb3ZpZGVycyhwYXJhbXMpO1xuXG4gIC8vIElmIHRoaXMgaXMgYW4gaW9uLW1vZGFsLCBwcm92aWRlIHRoZSBtb2RhbCBlbGVtZW50IGFzIGFuIGluamVjdGFibGVcbiAgLy8gc28gY29tcG9uZW50cyBpbnNpZGUgdGhlIG1vZGFsIGNhbiBpbmplY3QgaXQgZGlyZWN0bHlcbiAgaWYgKGNvbnRhaW5lci50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpb24tbW9kYWwnKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgcHJvdmlkZTogSW9uTW9kYWxUb2tlbixcbiAgICAgIHVzZVZhbHVlOiBjb250YWluZXIsXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjaGlsZEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICBwcm92aWRlcnMsXG4gICAgcGFyZW50OiBpbmplY3RvcixcbiAgfSk7XG5cbiAgY29uc3QgY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50PGFueT4oY29tcG9uZW50LCB7XG4gICAgZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBlbGVtZW50SW5qZWN0b3I6IGNoaWxkSW5qZWN0b3IsXG4gIH0pO1xuXG4gIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICBjb25zdCBob3N0RWxlbWVudCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuXG4gIGlmIChwYXJhbXMpIHtcbiAgICAvKipcbiAgICAgKiBGb3IgbW9kYWxzIGFuZCBwb3BvdmVycywgYSByZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCBpc1xuICAgICAqIGFkZGVkIHRvIGBwYXJhbXNgIGR1cmluZyB0aGUgY2FsbCB0byBhdHRhY2hWaWV3VG9Eb20uIElmXG4gICAgICogYSByZWZlcmVuY2UgdXNpbmcgdGhpcyBuYW1lIGlzIGFscmVhZHkgc2V0LCB0aGlzIG1lYW5zXG4gICAgICogdGhlIGFwcCBpcyB0cnlpbmcgdG8gdXNlIHRoZSBuYW1lIGFzIGEgY29tcG9uZW50IHByb3AsXG4gICAgICogd2hpY2ggd2lsbCBjYXVzZSBjb2xsaXNpb25zLlxuICAgICAqL1xuICAgIGlmIChlbGVtZW50UmVmZXJlbmNlS2V5ICYmIGluc3RhbmNlW2VsZW1lbnRSZWZlcmVuY2VLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBbSW9uaWMgRXJyb3JdOiAke2VsZW1lbnRSZWZlcmVuY2VLZXl9IGlzIGEgcmVzZXJ2ZWQgcHJvcGVydHkgd2hlbiB1c2luZyAke2NvbnRhaW5lci50YWdOYW1lLnRvTG93ZXJDYXNlKCl9LiBSZW5hbWUgb3IgcmVtb3ZlIHRoZSBcIiR7ZWxlbWVudFJlZmVyZW5jZUtleX1cIiBwcm9wZXJ0eSBmcm9tICR7XG4gICAgICAgICAgY29tcG9uZW50Lm5hbWVcbiAgICAgICAgfS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuZ3VsYXIgMTQuMSBhZGRlZCBzdXBwb3J0IGZvciBzZXRJbnB1dFxuICAgICAqIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIE9iamVjdC5hc3NpZ25cbiAgICAgKiBmb3IgQW5ndWxhciAxNC4wLlxuICAgICAqL1xuICAgIGlmIChlbmFibGVTaWduYWxzU3VwcG9ydCA9PT0gdHJ1ZSAmJiBjb21wb25lbnRSZWYuc2V0SW5wdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgeyBtb2RhbCwgcG9wb3ZlciwgLi4ub3RoZXJQYXJhbXMgfSA9IHBhcmFtcztcbiAgICAgIC8qKlxuICAgICAgICogQW55IGtleS92YWx1ZSBwYWlycyBzZXQgaW4gY29tcG9uZW50UHJvcHNcbiAgICAgICAqIG11c3QgYmUgc2V0IGFzIGlucHV0cyBvbiB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAgICovXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdGhlclBhcmFtcykge1xuICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCBvdGhlclBhcmFtc1trZXldKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBVc2luZyBzZXRJbnB1dCB3aWxsIGNhdXNlIGFuIGVycm9yIHdoZW5cbiAgICAgICAqIHNldHRpbmcgbW9kYWwvcG9wb3ZlciBvbiBhIGNvbXBvbmVudCB0aGF0XG4gICAgICAgKiBkb2VzIG5vdCBkZWZpbmUgdGhlbSBhcyBhbiBpbnB1dC4gRm9yIGJhY2t3YXJkc1xuICAgICAgICogY29tcGF0aWJpbGl0eSBwdXJwb3NlcyB3ZSBmYWxsIGJhY2sgdG8gdXNpbmdcbiAgICAgICAqIE9iamVjdC5hc3NpZ24gZm9yIHRoZXNlIHByb3BlcnRpZXMuXG4gICAgICAgKi9cbiAgICAgIGlmIChtb2RhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UsIHsgbW9kYWwgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwb3BvdmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgeyBwb3BvdmVyIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCBwYXJhbXMpO1xuICAgIH1cbiAgfVxuICBpZiAoY3NzQ2xhc3Nlcykge1xuICAgIGZvciAoY29uc3QgY3NzQ2xhc3Mgb2YgY3NzQ2xhc3Nlcykge1xuICAgICAgaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjc3NDbGFzcyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHVuYmluZEV2ZW50cyA9IGJpbmRMaWZlY3ljbGVFdmVudHMoem9uZSwgaW5zdGFuY2UsIGhvc3RFbGVtZW50KTtcbiAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3RFbGVtZW50KTtcblxuICBhcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgZWxSZWZNYXAuc2V0KGhvc3RFbGVtZW50LCBjb21wb25lbnRSZWYpO1xuICBlbEV2ZW50c01hcC5zZXQoaG9zdEVsZW1lbnQsIHVuYmluZEV2ZW50cyk7XG4gIHJldHVybiBob3N0RWxlbWVudDtcbn07XG5cbmNvbnN0IExJRkVDWUNMRVMgPSBbXG4gIExJRkVDWUNMRV9XSUxMX0VOVEVSLFxuICBMSUZFQ1lDTEVfRElEX0VOVEVSLFxuICBMSUZFQ1lDTEVfV0lMTF9MRUFWRSxcbiAgTElGRUNZQ0xFX0RJRF9MRUFWRSxcbiAgTElGRUNZQ0xFX1dJTExfVU5MT0FELFxuXTtcblxuZXhwb3J0IGNvbnN0IGJpbmRMaWZlY3ljbGVFdmVudHMgPSAoem9uZTogTmdab25lLCBpbnN0YW5jZTogYW55LCBlbGVtZW50OiBIVE1MRWxlbWVudCk6ICgoKSA9PiB2b2lkKSA9PiB7XG4gIHJldHVybiB6b25lLnJ1bigoKSA9PiB7XG4gICAgY29uc3QgdW5yZWdpc3RlcnMgPSBMSUZFQ1lDTEVTLmZpbHRlcigoZXZlbnROYW1lKSA9PiB0eXBlb2YgaW5zdGFuY2VbZXZlbnROYW1lXSA9PT0gJ2Z1bmN0aW9uJykubWFwKChldmVudE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXY6IGFueSkgPT4gaW5zdGFuY2VbZXZlbnROYW1lXShldi5kZXRhaWwpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgICByZXR1cm4gKCkgPT4gZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IHVucmVnaXN0ZXJzLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgfSk7XG59O1xuXG5jb25zdCBOYXZQYXJhbXNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdOYXZQYXJhbXNUb2tlbicpO1xuXG5jb25zdCBnZXRQcm92aWRlcnMgPSAocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmF2UGFyYW1zVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogcGFyYW1zLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTmF2UGFyYW1zLFxuICAgICAgdXNlRmFjdG9yeTogcHJvdmlkZU5hdlBhcmFtc0luamVjdGFibGUsXG4gICAgICBkZXBzOiBbTmF2UGFyYW1zVG9rZW5dLFxuICAgIH0sXG4gIF07XG59O1xuXG5jb25zdCBwcm92aWRlTmF2UGFyYW1zSW5qZWN0YWJsZSA9IChwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHtcbiAgcmV0dXJuIG5ldyBOYXZQYXJhbXMocGFyYW1zKTtcbn07XG4iXX0=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1kZWxlZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvcHJvdmlkZXJzL2FuZ3VsYXItZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxlQUFlLEVBRWYsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV2Qyx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFzQixlQUFlLENBQUMsQ0FBQztBQUV0Rix1QkFBdUI7QUFFdkIsTUFDYSxlQUFlO0lBQ2xCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sQ0FDSixtQkFBd0MsRUFDeEMsUUFBa0IsRUFDbEIsbUJBQTRCLEVBQzVCLGNBQXlCO1FBRXpCLE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsSUFBSSxFQUNULG1CQUFtQixFQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxLQUFLLEVBQ25DLGNBQWMsQ0FDZixDQUFDO0lBQ0osQ0FBQzsySEFwQlUsZUFB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QUNsQixVQUFVLEVBQUUsMEJBQTBCO1lBQ3RDLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUFHLENBQUMsTUFBOEIsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudFJlZixcbiAgY3JlYXRlQ29tcG9uZW50LFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBpbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZyYW1ld29ya0RlbGVnYXRlLFxuICBMSUZFQ1lDTEVfRElEX0VOVEVSLFxuICBMSUZFQ1lDTEVfRElEX0xFQVZFLFxuICBMSUZFQ1lDTEVfV0lMTF9FTlRFUixcbiAgTElGRUNZQ0xFX1dJTExfTEVBVkUsXG4gIExJRkVDWUNMRV9XSUxMX1VOTE9BRCxcbn0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IE5hdlBhcmFtcyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtcGFyYW1zJztcblxuaW1wb3J0IHsgQ29uZmlnVG9rZW4gfSBmcm9tICcuL2NvbmZpZyc7XG5cbi8vIFRva2VuIGZvciBpbmplY3RpbmcgdGhlIG1vZGFsIGVsZW1lbnRcbmV4cG9ydCBjb25zdCBJb25Nb2RhbFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPEhUTUxJb25Nb2RhbEVsZW1lbnQ+KCdJb25Nb2RhbFRva2VuJyk7XG5cbi8vIFRPRE8oRlctMjgyNyk6IHR5cGVzXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRGVsZWdhdGUge1xuICBwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENvbmZpZ1Rva2VuKTtcblxuICBjcmVhdGUoXG4gICAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxlbWVudFJlZmVyZW5jZUtleT86IHN0cmluZyxcbiAgICBjdXN0b21JbmplY3Rvcj86IEluamVjdG9yXG4gICk6IEFuZ3VsYXJGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gICAgcmV0dXJuIG5ldyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUoXG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxuICAgICAgdGhpcy56b25lLFxuICAgICAgZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgIHRoaXMuY29uZmlnLnVzZVNldElucHV0QVBJID8/IGZhbHNlLFxuICAgICAgY3VzdG9tSW5qZWN0b3JcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUgaW1wbGVtZW50cyBGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gIHByaXZhdGUgZWxSZWZNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgQ29tcG9uZW50UmVmPGFueT4+KCk7XG4gIHByaXZhdGUgZWxFdmVudHNNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgKCkgPT4gdm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlS2V5Pzogc3RyaW5nLFxuICAgIHByaXZhdGUgZW5hYmxlU2lnbmFsc1N1cHBvcnQ/OiBib29sZWFuLFxuICAgIHByaXZhdGUgY3VzdG9tSW5qZWN0b3I/OiBJbmplY3RvclxuICApIHt9XG5cbiAgYXR0YWNoVmlld1RvRG9tKGNvbnRhaW5lcjogYW55LCBjb21wb25lbnQ6IGFueSwgcGFyYW1zPzogYW55LCBjc3NDbGFzc2VzPzogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRQcm9wcyA9IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElvbmljIEFuZ3VsYXIgcGFzc2VzIGEgcmVmZXJlbmNlIHRvIGEgbW9kYWxcbiAgICAgICAgICogb3IgcG9wb3ZlciB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBhXG4gICAgICAgICAqIHZhcmlhYmxlIGluIHRoZSBvdmVybGF5IGNvbXBvbmVudC4gSWZcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBpcyBkZWZpbmVkLCB0aGVuIHdlIHNob3VsZFxuICAgICAgICAgKiBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgdXNpbmdcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBhcyB0aGUga2V5LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcG9uZW50UHJvcHNbdGhpcy5lbGVtZW50UmVmZXJlbmNlS2V5XSA9IGNvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsID0gYXR0YWNoVmlldyhcbiAgICAgICAgICB0aGlzLnpvbmUsXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZixcbiAgICAgICAgICB0aGlzLmVsUmVmTWFwLFxuICAgICAgICAgIHRoaXMuZWxFdmVudHNNYXAsXG4gICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBjb21wb25lbnRQcm9wcyxcbiAgICAgICAgICBjc3NDbGFzc2VzLFxuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgICAgICB0aGlzLmVuYWJsZVNpZ25hbHNTdXBwb3J0LFxuICAgICAgICAgIHRoaXMuY3VzdG9tSW5qZWN0b3JcbiAgICAgICAgKTtcbiAgICAgICAgcmVzb2x2ZShlbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVZpZXdGcm9tRG9tKF9jb250YWluZXI6IGFueSwgY29tcG9uZW50OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbFJlZk1hcC5nZXQoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5lbFJlZk1hcC5kZWxldGUoY29tcG9uZW50KTtcbiAgICAgICAgICBjb25zdCB1bmJpbmRFdmVudHMgPSB0aGlzLmVsRXZlbnRzTWFwLmdldChjb21wb25lbnQpO1xuICAgICAgICAgIGlmICh1bmJpbmRFdmVudHMpIHtcbiAgICAgICAgICAgIHVuYmluZEV2ZW50cygpO1xuICAgICAgICAgICAgdGhpcy5lbEV2ZW50c01hcC5kZWxldGUoY29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGF0dGFjaFZpZXcgPSAoXG4gIHpvbmU6IE5nWm9uZSxcbiAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gIGVsUmVmTWFwOiBXZWFrTWFwPEhUTUxFbGVtZW50LCBDb21wb25lbnRSZWY8YW55Pj4sXG4gIGVsRXZlbnRzTWFwOiBXZWFrTWFwPEhUTUxFbGVtZW50LCAoKSA9PiB2b2lkPixcbiAgY29udGFpbmVyOiBhbnksXG4gIGNvbXBvbmVudDogYW55LFxuICBwYXJhbXM6IGFueSxcbiAgY3NzQ2xhc3Nlczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIGVsZW1lbnRSZWZlcmVuY2VLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW5hYmxlU2lnbmFsc1N1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIGN1c3RvbUluamVjdG9yPzogSW5qZWN0b3Jcbik6IGFueSA9PiB7XG4gIC8qKlxuICAgKiBXcmFwcyB0aGUgaW5qZWN0b3Igd2l0aCBhIGN1c3RvbSBpbmplY3RvciB0aGF0XG4gICAqIHByb3ZpZGVzIE5hdlBhcmFtcyB0byB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBOYXZQYXJhbXMgaXMgYSBsZWdhY3kgZmVhdHVyZSBmcm9tIElvbmljIHYzIHRoYXQgYWxsb3dzXG4gICAqIEFuZ3VsYXIgZGV2ZWxvcGVycyB0byBwcm92aWRlIGRhdGEgdG8gYSBjb21wb25lbnRcbiAgICogYW5kIGFjY2VzcyBpdCBieSBwcm92aWRpbmcgTmF2UGFyYW1zIGFzIGEgZGVwZW5kZW5jeVxuICAgKiBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIFRoZSBtb2Rlcm4gYXBwcm9hY2ggaXMgdG8gYWNjZXNzIHRoZSBkYXRhIGRpcmVjdGx5XG4gICAqIGZyb20gdGhlIGNvbXBvbmVudCdzIGNsYXNzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3QgcHJvdmlkZXJzID0gZ2V0UHJvdmlkZXJzKHBhcmFtcyk7XG5cbiAgLy8gSWYgdGhpcyBpcyBhbiBpb24tbW9kYWwsIHByb3ZpZGUgdGhlIG1vZGFsIGVsZW1lbnQgYXMgYW4gaW5qZWN0YWJsZVxuICAvLyBzbyBjb21wb25lbnRzIGluc2lkZSB0aGUgbW9kYWwgY2FuIGluamVjdCBpdCBkaXJlY3RseVxuICBpZiAoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lvbi1tb2RhbCcpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICBwcm92aWRlOiBJb25Nb2RhbFRva2VuLFxuICAgICAgdXNlVmFsdWU6IGNvbnRhaW5lcixcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNoaWxkSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgIHByb3ZpZGVycyxcbiAgICBwYXJlbnQ6IGN1c3RvbUluamVjdG9yID8/IGluamVjdG9yLFxuICB9KTtcblxuICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQ8YW55Pihjb21wb25lbnQsIHtcbiAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGVsZW1lbnRJbmplY3RvcjogY2hpbGRJbmplY3RvcixcbiAgfSk7XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIGNvbnN0IGhvc3RFbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgaWYgKHBhcmFtcykge1xuICAgIC8qKlxuICAgICAqIEZvciBtb2RhbHMgYW5kIHBvcG92ZXJzLCBhIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IGlzXG4gICAgICogYWRkZWQgdG8gYHBhcmFtc2AgZHVyaW5nIHRoZSBjYWxsIHRvIGF0dGFjaFZpZXdUb0RvbS4gSWZcbiAgICAgKiBhIHJlZmVyZW5jZSB1c2luZyB0aGlzIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHRoaXMgbWVhbnNcbiAgICAgKiB0aGUgYXBwIGlzIHRyeWluZyB0byB1c2UgdGhlIG5hbWUgYXMgYSBjb21wb25lbnQgcHJvcCxcbiAgICAgKiB3aGljaCB3aWxsIGNhdXNlIGNvbGxpc2lvbnMuXG4gICAgICovXG4gICAgaWYgKGVsZW1lbnRSZWZlcmVuY2VLZXkgJiYgaW5zdGFuY2VbZWxlbWVudFJlZmVyZW5jZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFtJb25pYyBFcnJvcl06ICR7ZWxlbWVudFJlZmVyZW5jZUtleX0gaXMgYSByZXNlcnZlZCBwcm9wZXJ0eSB3aGVuIHVzaW5nICR7Y29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0uIFJlbmFtZSBvciByZW1vdmUgdGhlIFwiJHtlbGVtZW50UmVmZXJlbmNlS2V5fVwiIHByb3BlcnR5IGZyb20gJHtcbiAgICAgICAgICBjb21wb25lbnQubmFtZVxuICAgICAgICB9LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW5ndWxhciAxNC4xIGFkZGVkIHN1cHBvcnQgZm9yIHNldElucHV0XG4gICAgICogc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gT2JqZWN0LmFzc2lnblxuICAgICAqIGZvciBBbmd1bGFyIDE0LjAuXG4gICAgICovXG4gICAgaWYgKGVuYWJsZVNpZ25hbHNTdXBwb3J0ID09PSB0cnVlICYmIGNvbXBvbmVudFJlZi5zZXRJbnB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB7IG1vZGFsLCBwb3BvdmVyLCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xuICAgICAgLyoqXG4gICAgICAgKiBBbnkga2V5L3ZhbHVlIHBhaXJzIHNldCBpbiBjb21wb25lbnRQcm9wc1xuICAgICAgICogbXVzdCBiZSBzZXQgYXMgaW5wdXRzIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICAgKi9cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG90aGVyUGFyYW1zKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIG90aGVyUGFyYW1zW2tleV0pO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFVzaW5nIHNldElucHV0IHdpbGwgY2F1c2UgYW4gZXJyb3Igd2hlblxuICAgICAgICogc2V0dGluZyBtb2RhbC9wb3BvdmVyIG9uIGEgY29tcG9uZW50IHRoYXRcbiAgICAgICAqIGRvZXMgbm90IGRlZmluZSB0aGVtIGFzIGFuIGlucHV0LiBGb3IgYmFja3dhcmRzXG4gICAgICAgKiBjb21wYXRpYmlsaXR5IHB1cnBvc2VzIHdlIGZhbGwgYmFjayB0byB1c2luZ1xuICAgICAgICogT2JqZWN0LmFzc2lnbiBmb3IgdGhlc2UgcHJvcGVydGllcy5cbiAgICAgICAqL1xuICAgICAgaWYgKG1vZGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgeyBtb2RhbCB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBvcG92ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB7IHBvcG92ZXIgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UsIHBhcmFtcyk7XG4gICAgfVxuICB9XG4gIGlmIChjc3NDbGFzc2VzKSB7XG4gICAgZm9yIChjb25zdCBjc3NDbGFzcyBvZiBjc3NDbGFzc2VzKSB7XG4gICAgICBob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKGNzc0NsYXNzKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgdW5iaW5kRXZlbnRzID0gYmluZExpZmVjeWNsZUV2ZW50cyh6b25lLCBpbnN0YW5jZSwgaG9zdEVsZW1lbnQpO1xuICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaG9zdEVsZW1lbnQpO1xuXG4gIGFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICBlbFJlZk1hcC5zZXQoaG9zdEVsZW1lbnQsIGNvbXBvbmVudFJlZik7XG4gIGVsRXZlbnRzTWFwLnNldChob3N0RWxlbWVudCwgdW5iaW5kRXZlbnRzKTtcbiAgcmV0dXJuIGhvc3RFbGVtZW50O1xufTtcblxuY29uc3QgTElGRUNZQ0xFUyA9IFtcbiAgTElGRUNZQ0xFX1dJTExfRU5URVIsXG4gIExJRkVDWUNMRV9ESURfRU5URVIsXG4gIExJRkVDWUNMRV9XSUxMX0xFQVZFLFxuICBMSUZFQ1lDTEVfRElEX0xFQVZFLFxuICBMSUZFQ1lDTEVfV0lMTF9VTkxPQUQsXG5dO1xuXG5leHBvcnQgY29uc3QgYmluZExpZmVjeWNsZUV2ZW50cyA9ICh6b25lOiBOZ1pvbmUsIGluc3RhbmNlOiBhbnksIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogKCgpID0+IHZvaWQpID0+IHtcbiAgcmV0dXJuIHpvbmUucnVuKCgpID0+IHtcbiAgICBjb25zdCB1bnJlZ2lzdGVycyA9IExJRkVDWUNMRVMuZmlsdGVyKChldmVudE5hbWUpID0+IHR5cGVvZiBpbnN0YW5jZVtldmVudE5hbWVdID09PSAnZnVuY3Rpb24nKS5tYXAoKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IChldjogYW55KSA9PiBpbnN0YW5jZVtldmVudE5hbWVdKGV2LmRldGFpbCk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICAgIHJldHVybiAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4gdW5yZWdpc3RlcnMuZm9yRWFjaCgoZm4pID0+IGZuKCkpO1xuICB9KTtcbn07XG5cbmNvbnN0IE5hdlBhcmFtc1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ05hdlBhcmFtc1Rva2VuJyk7XG5cbmNvbnN0IGdldFByb3ZpZGVycyA9IChwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOYXZQYXJhbXNUb2tlbixcbiAgICAgIHVzZVZhbHVlOiBwYXJhbXMsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOYXZQYXJhbXMsXG4gICAgICB1c2VGYWN0b3J5OiBwcm92aWRlTmF2UGFyYW1zSW5qZWN0YWJsZSxcbiAgICAgIGRlcHM6IFtOYXZQYXJhbXNUb2tlbl0sXG4gICAgfSxcbiAgXTtcbn07XG5cbmNvbnN0IHByb3ZpZGVOYXZQYXJhbXNJbmplY3RhYmxlID0gKHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT4ge1xuICByZXR1cm4gbmV3IE5hdlBhcmFtcyhwYXJhbXMpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy90eXBlcy9vdmVybGF5LW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTW9kYWxPcHRpb25zIGFzIENvcmVNb2RhbE9wdGlvbnMsIFBvcG92ZXJPcHRpb25zIGFzIENvcmVQb3BvdmVyT3B0aW9ucyB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG4vKipcbiAqIE1vZGFsIG9wdGlvbnMgd2l0aCBBbmd1bGFyLXNwZWNpZmljIGluamVjdG9yIHN1cHBvcnQuXG4gKiBFeHRlbmRzIEBpb25pYy9jb3JlIE1vZGFsT3B0aW9ucyB3aXRoIGFuIG9wdGlvbmFsIGluamVjdG9yIHByb3BlcnR5LlxuICovXG5leHBvcnQgdHlwZSBNb2RhbE9wdGlvbnMgPSBDb3JlTW9kYWxPcHRpb25zICYge1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xufTtcblxuLyoqXG4gKiBQb3BvdmVyIG9wdGlvbnMgd2l0aCBBbmd1bGFyLXNwZWNpZmljIGluamVjdG9yIHN1cHBvcnQuXG4gKiBFeHRlbmRzIEBpb25pYy9jb3JlIFBvcG92ZXJPcHRpb25zIHdpdGggYW4gb3B0aW9uYWwgaW5qZWN0b3IgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCB0eXBlIFBvcG92ZXJPcHRpb25zID0gQ29yZVBvcG92ZXJPcHRpb25zICYge1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xufTtcbiJdfQ==
|