@skyux/flyout 7.0.0-beta.1 → 7.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,6 @@
1
- import { ApplicationRef, Injectable, NgZone, Optional, } from '@angular/core';
1
+ var _SkyFlyoutService_instances, _SkyFlyoutService_host, _SkyFlyoutService_removeAfterClosed, _SkyFlyoutService_isOpening, _SkyFlyoutService_ngUnsubscribe, _SkyFlyoutService_coreAdapter, _SkyFlyoutService_windowRef, _SkyFlyoutService_dynamicComponentService, _SkyFlyoutService_router, _SkyFlyoutService_ngZone, _SkyFlyoutService_createHostComponent, _SkyFlyoutService_removeHostComponent, _SkyFlyoutService_addListeners, _SkyFlyoutService_removeListners;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { Injectable, NgZone, } from '@angular/core';
2
4
  import { NavigationStart, Router } from '@angular/router';
3
5
  import { SkyAppWindowRef, SkyCoreAdapterService, SkyDynamicComponentService, } from '@skyux/core';
4
6
  import { Subject, fromEvent } from 'rxjs';
@@ -14,28 +16,27 @@ import * as i2 from "@angular/router";
14
16
  * document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.
15
17
  */
16
18
  export class SkyFlyoutService {
17
- constructor(coreAdapter, windowRef, dynamicComponentService, router, _ngZone,
18
- // NOTE: This used to be used for an `applicationRef.tick` which has since been removed.
19
- // We can not remove this due to it being a breaking change for those manually constructing the service.
20
- _applicationRef) {
21
- this.coreAdapter = coreAdapter;
22
- this.windowRef = windowRef;
23
- this.dynamicComponentService = dynamicComponentService;
24
- this.router = router;
25
- this._ngZone = _ngZone;
26
- this._applicationRef = _applicationRef;
27
- this.removeAfterClosed = false;
28
- this.isOpening = false;
29
- this.ngUnsubscribe = new Subject();
30
- /*istanbul ignore if*/
31
- /*eslint-disable-next-line no-empty*/
32
- if (this._applicationRef) {
33
- }
19
+ constructor(coreAdapter, windowRef, dynamicComponentService, router, ngZone) {
20
+ _SkyFlyoutService_instances.add(this);
21
+ _SkyFlyoutService_host.set(this, void 0);
22
+ _SkyFlyoutService_removeAfterClosed.set(this, false);
23
+ _SkyFlyoutService_isOpening.set(this, false);
24
+ _SkyFlyoutService_ngUnsubscribe.set(this, new Subject());
25
+ _SkyFlyoutService_coreAdapter.set(this, void 0);
26
+ _SkyFlyoutService_windowRef.set(this, void 0);
27
+ _SkyFlyoutService_dynamicComponentService.set(this, void 0);
28
+ _SkyFlyoutService_router.set(this, void 0);
29
+ _SkyFlyoutService_ngZone.set(this, void 0);
30
+ __classPrivateFieldSet(this, _SkyFlyoutService_coreAdapter, coreAdapter, "f");
31
+ __classPrivateFieldSet(this, _SkyFlyoutService_windowRef, windowRef, "f");
32
+ __classPrivateFieldSet(this, _SkyFlyoutService_dynamicComponentService, dynamicComponentService, "f");
33
+ __classPrivateFieldSet(this, _SkyFlyoutService_router, router, "f");
34
+ __classPrivateFieldSet(this, _SkyFlyoutService_ngZone, ngZone, "f");
34
35
  }
35
36
  ngOnDestroy() {
36
- this.removeListners();
37
- if (this.host) {
38
- this.removeHostComponent();
37
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeListners).call(this);
38
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
39
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
39
40
  }
40
41
  }
41
42
  /**
@@ -43,8 +44,8 @@ export class SkyFlyoutService {
43
44
  * @param args Arguments used when closing the flyout.
44
45
  */
45
46
  close(args) {
46
- if (this.host && !this.isOpening) {
47
- this.host.instance.messageStream.next({
47
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f") && !__classPrivateFieldGet(this, _SkyFlyoutService_isOpening, "f")) {
48
+ __classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance.messageStream.next({
48
49
  type: SkyFlyoutMessageType.Close,
49
50
  data: {
50
51
  ignoreBeforeClose: args ? args.ignoreBeforeClose : false,
@@ -59,115 +60,109 @@ export class SkyFlyoutService {
59
60
  */
60
61
  open(component, config) {
61
62
  // isOpening flag will prevent close() from firing when open() is also fired.
62
- this.isOpening = true;
63
- this.windowRef.nativeWindow.setTimeout(() => {
64
- this.isOpening = false;
63
+ __classPrivateFieldSet(this, _SkyFlyoutService_isOpening, true, "f");
64
+ __classPrivateFieldGet(this, _SkyFlyoutService_windowRef, "f").nativeWindow.setTimeout(() => {
65
+ __classPrivateFieldSet(this, _SkyFlyoutService_isOpening, false, "f");
65
66
  });
66
- if (!this.host) {
67
- this.host = this.createHostComponent();
68
- this.router.events
69
- .pipe(takeWhile(() => this.host !== undefined))
67
+ if (!__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
68
+ __classPrivateFieldSet(this, _SkyFlyoutService_host, __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_createHostComponent).call(this), "f");
69
+ __classPrivateFieldGet(this, _SkyFlyoutService_router, "f").events
70
+ .pipe(takeWhile(() => __classPrivateFieldGet(this, _SkyFlyoutService_host, "f") !== undefined))
70
71
  .subscribe((event) => {
71
72
  if (event instanceof NavigationStart) {
72
73
  this.close();
73
74
  // Sanity check - if the host still exists after animations should have completed - remove host
74
- this._ngZone.onStable.pipe(take(1)).subscribe(() => {
75
- if (this.host) {
76
- this.removeHostComponent();
75
+ __classPrivateFieldGet(this, _SkyFlyoutService_ngZone, "f").onStable.pipe(take(1)).subscribe(() => {
76
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
77
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
77
78
  }
78
79
  });
79
80
  }
80
81
  });
81
82
  }
82
- const flyout = this.host.instance.attach(component, config);
83
- this.addListeners(flyout);
83
+ const flyout = __classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance.attach(component, config);
84
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_addListeners).call(this, flyout);
84
85
  return flyout;
85
86
  }
86
- createHostComponent() {
87
- this.host =
88
- this.dynamicComponentService.createComponent(SkyFlyoutComponent);
89
- return this.host;
90
- }
91
- removeHostComponent() {
92
- if (this.host) {
93
- this.dynamicComponentService.removeComponent(this.host);
94
- this.host = undefined;
95
- }
96
- }
97
- addListeners(flyout) {
98
- /* istanbul ignore else */
99
- if (this.host) {
100
- const flyoutInstance = this.host.instance;
101
- let doClose = false;
102
- /**
103
- * Handles when to close a flyout.
104
- * Note: We're using `mouseup` in order to capture the parent of certain targets that will be
105
- * deleted immediately after being clicked. If we use `click`, the event is fired after the
106
- * element is removed from the DOM making it impossible to check the parent's z-index
107
- * relative to the flyout's container.
108
- */
109
- fromEvent(document, 'mouseup')
110
- .pipe(takeUntil(this.ngUnsubscribe))
111
- .subscribe((event) => {
112
- doClose = false;
113
- if (this.host.instance.isDragging) {
114
- return;
115
- }
116
- if (flyoutInstance.flyoutRef.nativeElement.contains(event.target)) {
117
- return;
118
- }
119
- const isAbove = event.target === document
120
- ? false
121
- : this.coreAdapter.isTargetAboveElement(event.target, flyoutInstance.flyoutRef.nativeElement);
122
- /* istanbul ignore else */
123
- if (!isAbove) {
124
- doClose = true;
125
- }
126
- });
127
- /**
128
- * Check if we should close the flyout specifically on a `click` event so that we can keep
129
- * it open when consumers fire another `click` event on a trigger button. Since the consumer
130
- * will likely use a `click` event to open the flyout, we want to wait for that event to fire
131
- * before determining if the flyout should be closed.
132
- */
133
- fromEvent(document, 'click')
134
- .pipe(takeUntil(this.ngUnsubscribe))
135
- .subscribe(() => {
136
- if (doClose) {
137
- this.close();
138
- }
139
- });
140
- this.removeAfterClosed = false;
141
- flyoutInstance.messageStream
142
- .pipe(takeUntil(this.ngUnsubscribe))
143
- .subscribe((message) => {
144
- if (message.type === SkyFlyoutMessageType.Close) {
145
- this.removeAfterClosed = true;
146
- this.isOpening = false;
147
- }
148
- });
149
- flyout.closed.pipe(take(1)).subscribe(() => {
150
- this.removeListners();
151
- if (this.removeAfterClosed) {
152
- this.removeHostComponent();
153
- }
154
- });
155
- }
87
+ }
88
+ _SkyFlyoutService_host = new WeakMap(), _SkyFlyoutService_removeAfterClosed = new WeakMap(), _SkyFlyoutService_isOpening = new WeakMap(), _SkyFlyoutService_ngUnsubscribe = new WeakMap(), _SkyFlyoutService_coreAdapter = new WeakMap(), _SkyFlyoutService_windowRef = new WeakMap(), _SkyFlyoutService_dynamicComponentService = new WeakMap(), _SkyFlyoutService_router = new WeakMap(), _SkyFlyoutService_ngZone = new WeakMap(), _SkyFlyoutService_instances = new WeakSet(), _SkyFlyoutService_createHostComponent = function _SkyFlyoutService_createHostComponent() {
89
+ __classPrivateFieldSet(this, _SkyFlyoutService_host, __classPrivateFieldGet(this, _SkyFlyoutService_dynamicComponentService, "f").createComponent(SkyFlyoutComponent), "f");
90
+ return __classPrivateFieldGet(this, _SkyFlyoutService_host, "f");
91
+ }, _SkyFlyoutService_removeHostComponent = function _SkyFlyoutService_removeHostComponent() {
92
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
93
+ __classPrivateFieldGet(this, _SkyFlyoutService_dynamicComponentService, "f").removeComponent(__classPrivateFieldGet(this, _SkyFlyoutService_host, "f"));
94
+ __classPrivateFieldSet(this, _SkyFlyoutService_host, undefined, "f");
156
95
  }
157
- removeListners() {
158
- this.ngUnsubscribe.next(true);
159
- this.ngUnsubscribe.unsubscribe();
160
- this.ngUnsubscribe = new Subject();
96
+ }, _SkyFlyoutService_addListeners = function _SkyFlyoutService_addListeners(flyout) {
97
+ /* istanbul ignore else */
98
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
99
+ const flyoutInstance = __classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance;
100
+ let doClose = false;
101
+ /**
102
+ * Handles when to close a flyout.
103
+ * Note: We're using `mouseup` in order to capture the parent of certain targets that will be
104
+ * deleted immediately after being clicked. If we use `click`, the event is fired after the
105
+ * element is removed from the DOM making it impossible to check the parent's z-index
106
+ * relative to the flyout's container.
107
+ */
108
+ fromEvent(document, 'mouseup')
109
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
110
+ .subscribe((event) => {
111
+ doClose = false;
112
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")?.instance.isDragging) {
113
+ return;
114
+ }
115
+ if (flyoutInstance.flyoutRef?.nativeElement.contains(event.target)) {
116
+ return;
117
+ }
118
+ const isAbove = event.target === document || !event.target
119
+ ? false
120
+ : __classPrivateFieldGet(this, _SkyFlyoutService_coreAdapter, "f").isTargetAboveElement(event.target, flyoutInstance.flyoutRef?.nativeElement);
121
+ /* istanbul ignore else */
122
+ if (!isAbove) {
123
+ doClose = true;
124
+ }
125
+ });
126
+ /**
127
+ * Check if we should close the flyout specifically on a `click` event so that we can keep
128
+ * it open when consumers fire another `click` event on a trigger button. Since the consumer
129
+ * will likely use a `click` event to open the flyout, we want to wait for that event to fire
130
+ * before determining if the flyout should be closed.
131
+ */
132
+ fromEvent(document, 'click')
133
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
134
+ .subscribe(() => {
135
+ if (doClose) {
136
+ this.close();
137
+ }
138
+ });
139
+ __classPrivateFieldSet(this, _SkyFlyoutService_removeAfterClosed, false, "f");
140
+ flyoutInstance.messageStream
141
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
142
+ .subscribe((message) => {
143
+ if (message.type === SkyFlyoutMessageType.Close) {
144
+ __classPrivateFieldSet(this, _SkyFlyoutService_removeAfterClosed, true, "f");
145
+ __classPrivateFieldSet(this, _SkyFlyoutService_isOpening, false, "f");
146
+ }
147
+ });
148
+ flyout.closed.pipe(take(1)).subscribe(() => {
149
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeListners).call(this);
150
+ if (__classPrivateFieldGet(this, _SkyFlyoutService_removeAfterClosed, "f")) {
151
+ __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
152
+ }
153
+ });
161
154
  }
162
- }
163
- SkyFlyoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFlyoutService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i1.SkyAppWindowRef }, { token: i1.SkyDynamicComponentService }, { token: i2.Router }, { token: i0.NgZone }, { token: i0.ApplicationRef, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
155
+ }, _SkyFlyoutService_removeListners = function _SkyFlyoutService_removeListners() {
156
+ __classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f").next(true);
157
+ __classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f").unsubscribe();
158
+ __classPrivateFieldSet(this, _SkyFlyoutService_ngUnsubscribe, new Subject(), "f");
159
+ };
160
+ SkyFlyoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFlyoutService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i1.SkyAppWindowRef }, { token: i1.SkyDynamicComponentService }, { token: i2.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
164
161
  SkyFlyoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFlyoutService, providedIn: 'any' });
165
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyFlyoutService, decorators: [{
166
163
  type: Injectable,
167
164
  args: [{
168
165
  providedIn: 'any',
169
166
  }]
170
- }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i1.SkyAppWindowRef }, { type: i1.SkyDynamicComponentService }, { type: i2.Router }, { type: i0.NgZone }, { type: i0.ApplicationRef, decorators: [{
171
- type: Optional
172
- }] }]; } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZmx5b3V0L3NyYy9saWIvbW9kdWxlcy9mbHlvdXQvZmx5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxVQUFVLEVBQ1YsTUFBTSxFQUVOLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUVuRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUNVLFdBQWtDLEVBQ2xDLFNBQTBCLEVBQzFCLHVCQUFtRCxFQUNuRCxNQUFjLEVBQ0wsT0FBZTtJQUNoQyx3RkFBd0Y7SUFDeEYsd0dBQXdHO0lBQzNFLGVBQWdDO1FBUHJELGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTRCO1FBQ25ELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBR0gsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBWnZELHNCQUFpQixHQUFHLEtB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QUM7WUFFTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQy9CLGNBQWMsQ0FBQyxhQUFhO2lCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFO29CQUMvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO29CQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUM5QyxDQUFDOzs2R0FoTFUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixLQUFLOzJGQUVOLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQWVJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgU2t5QXBwV2luZG93UmVmLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUZseW91dEluc3RhbmNlIH0gZnJvbSAnLi9mbHlvdXQtaW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9mbHlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUZseW91dENsb3NlQXJncyB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LWNsb3NlLWFyZ3MnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0Q29uZmlnIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtY29uZmlnJztcbmltcG9ydCB7IFNreUZseW91dE1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1tZXNzYWdlJztcbmltcG9ydCB7IFNreUZseW91dE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtbWVzc2FnZS10eXBlJztcblxuLyoqXG4gKiBMYXVuY2hlcyBmbHlvdXRzIGFuZCBwcm92aWRlcyBhIGNvbW1vbiBsb29rIGFuZCBmZWVsLlxuICogVGhpcyBzZXJ2aWNlIGR5bmFtaWNhbGx5IGdlbmVyYXRlcyB0aGUgZmx5b3V0IGNvbXBvbmVudCBhbmQgYXBwZW5kcyBpdCBkaXJlY3RseSB0byB0aGVcbiAqIGRvY3VtZW50J3MgYGJvZHlgIGVsZW1lbnQuIFRoZSBgU2t5Rmx5b3V0SW5zdGFuY2VgIGNsYXNzIHdhdGNoZXMgZm9yIGFuZCB0cmlnZ2VycyBmbHlvdXQgZXZlbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGbHlvdXRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBob3N0OiBDb21wb25lbnRSZWY8U2t5Rmx5b3V0Q29tcG9uZW50PjtcbiAgcHJpdmF0ZSByZW1vdmVBZnRlckNsb3NlZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzT3BlbmluZyA9IGZhbHNlO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIHByaXZhdGUgZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgLy8gTk9URTogVGhpcyB1c2VkIHRvIGJlIHVzZWQgZm9yIGFuIGBhcHBsaWNhdGlvblJlZi50aWNrYCB3aGljaCBoYXMgc2luY2UgYmVlbiByZW1vdmVkLlxuICAgIC8vIFdlIGNhbiBub3QgcmVtb3ZlIHRoaXMgZHVlIHRvIGl0IGJlaW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciB0aG9zZSBtYW51YWxseSBjb25zdHJ1Y3RpbmcgdGhlIHNlcnZpY2UuXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfYXBwbGljYXRpb25SZWY/OiBBcHBsaWNhdGlvblJlZlxuICApIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBpZiovXG4gICAgLyplc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHkqL1xuICAgIGlmICh0aGlzLl9hcHBsaWNhdGlvblJlZikge1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RuZXJzKCk7XG4gICAgaWYgKHRoaXMuaG9zdCkge1xuICAgICAgdGhpcy5yZW1vdmVIb3N0Q29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZmx5b3V0LiBUaGlzIG1ldGhvZCBhbHNvIHJlbW92ZXMgdGhlIGZseW91dCdzIEhUTUwgZWxlbWVudHMgZnJvbSB0aGUgRE9NLlxuICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdXNlZCB3aGVuIGNsb3NpbmcgdGhlIGZseW91dC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZShhcmdzPzogU2t5Rmx5b3V0Q2xvc2VBcmdzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9zdCAmJiAhdGhpcy5pc09wZW5pbmcpIHtcbiAgICAgIHRoaXMuaG9zdC5pbnN0YW5jZS5tZXNzYWdlU3RyZWFtLm5leHQoe1xuICAgICAgICB0eXBlOiBTa3lGbHlvdXRNZXNzYWdlVHlwZS5DbG9zZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlnbm9yZUJlZm9yZUNsb3NlOiBhcmdzID8gYXJncy5pZ25vcmVCZWZvcmVDbG9zZSA6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmx5b3V0IGFuZCBkaXNwbGF5cyB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIGNvbXBvbmVudCBTcGVjaWZpZXMgdGhlIGNvbXBvbmVudCB0byByZW5kZXIuXG4gICAqIEBwYXJhbSBjb25maWcgU3BlY2lmaWVzIHRoZSBmbHlvdXQgY29uZmlndXJhdGlvbiBwYXNzZWQgdG8gdGhlIHNwZWNpZmllZCBjb21wb25lbnQncyBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIHB1YmxpYyBvcGVuPFQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUPixcbiAgICBjb25maWc/OiBTa3lGbHlvdXRDb25maWdcbiAgKTogU2t5Rmx5b3V0SW5zdGFuY2U8VD4ge1xuICAgIC8vIGlzT3BlbmluZyBmbGFnIHdpbGwgcHJldmVudCBjbG9zZSgpIGZyb20gZmlyaW5nIHdoZW4gb3BlbigpIGlzIGFsc28gZmlyZWQuXG4gICAgdGhpcy5pc09wZW5pbmcgPSB0cnVlO1xuICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuaG9zdCkge1xuICAgICAgdGhpcy5ob3N0ID0gdGhpcy5jcmVhdGVIb3N0Q29tcG9uZW50KCk7XG5cbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5ob3N0ICE9PSB1bmRlZmluZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgICAgICAgICAvLyBTYW5pdHkgY2hlY2sgLSBpZiB0aGUgaG9zdCBzdGlsbCBleGlzdHMgYWZ0ZXIgYW5pbWF0aW9ucyBzaG91bGQgaGF2ZSBjb21wbGV0ZWQgLSByZW1vdmUgaG9zdFxuICAgICAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlSG9zdENvbXBvbmVudCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZseW91dCA9IHRoaXMuaG9zdC5pbnN0YW5jZS5hdHRhY2goY29tcG9uZW50LCBjb25maWcpO1xuXG4gICAgdGhpcy5hZGRMaXN0ZW5lcnMoZmx5b3V0KTtcblxuICAgIHJldHVybiBmbHlvdXQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUhvc3RDb21wb25lbnQoKTogQ29tcG9uZW50UmVmPFNreUZseW91dENvbXBvbmVudD4ge1xuICAgIHRoaXMuaG9zdCA9XG4gICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChTa3lGbHlvdXRDb21wb25lbnQpO1xuICAgIHJldHVybiB0aGlzLmhvc3Q7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUhvc3RDb21wb25lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG9zdCkge1xuICAgICAgdGhpcy5keW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQodGhpcy5ob3N0KTtcbiAgICAgIHRoaXMuaG9zdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZExpc3RlbmVyczxUPihmbHlvdXQ6IFNreUZseW91dEluc3RhbmNlPFQ+KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5ob3N0KSB7XG4gICAgICBjb25zdCBmbHlvdXRJbnN0YW5jZSA9IHRoaXMuaG9zdC5pbnN0YW5jZTtcblxuICAgICAgbGV0IGRvQ2xvc2UgPSBmYWxzZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBIYW5kbGVzIHdoZW4gdG8gY2xvc2UgYSBmbHlvdXQuXG4gICAgICAgKiBOb3RlOiBXZSdyZSB1c2luZyBgbW91c2V1cGAgaW4gb3JkZXIgdG8gY2FwdHVyZSB0aGUgcGFyZW50IG9mIGNlcnRhaW4gdGFyZ2V0cyB0aGF0IHdpbGwgYmVcbiAgICAgICAqIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYmVpbmcgY2xpY2tlZC4gSWYgd2UgdXNlIGBjbGlja2AsIHRoZSBldmVudCBpcyBmaXJlZCBhZnRlciB0aGVcbiAgICAgICAqIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET00gbWFraW5nIGl0IGltcG9zc2libGUgdG8gY2hlY2sgdGhlIHBhcmVudCdzIHotaW5kZXhcbiAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBmbHlvdXQncyBjb250YWluZXIuXG4gICAgICAgKi9cbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBkb0Nsb3NlID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGhpcy5ob3N0Lmluc3RhbmNlLmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmx5b3V0SW5zdGFuY2UuZmx5b3V0UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzQWJvdmUgPVxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSBkb2N1bWVudFxuICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgIDogdGhpcy5jb3JlQWRhcHRlci5pc1RhcmdldEFib3ZlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgICAgICAgIGZseW91dEluc3RhbmNlLmZseW91dFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKCFpc0Fib3ZlKSB7XG4gICAgICAgICAgICBkb0Nsb3NlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvKipcbiAgICAgICAqIENoZWNrIGlmIHdlIHNob3VsZCBjbG9zZSB0aGUgZmx5b3V0IHNwZWNpZmljYWxseSBvbiBhIGBjbGlja2AgZXZlbnQgc28gdGhhdCB3ZSBjYW4ga2VlcFxuICAgICAgICogaXQgb3BlbiB3aGVuIGNvbnN1bWVycyBmaXJlIGFub3RoZXIgYGNsaWNrYCBldmVudCBvbiBhIHRyaWdnZXIgYnV0dG9uLiBTaW5jZSB0aGUgY29uc3VtZXJcbiAgICAgICAqIHdpbGwgbGlrZWx5IHVzZSBhIGBjbGlja2AgZXZlbnQgdG8gb3BlbiB0aGUgZmx5b3V0LCB3ZSB3YW50IHRvIHdhaXQgZm9yIHRoYXQgZXZlbnQgdG8gZmlyZVxuICAgICAgICogYmVmb3JlIGRldGVybWluaW5nIGlmIHRoZSBmbHlvdXQgc2hvdWxkIGJlIGNsb3NlZC5cbiAgICAgICAqL1xuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKGRvQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbW92ZUFmdGVyQ2xvc2VkID0gZmFsc2U7XG4gICAgICBmbHlvdXRJbnN0YW5jZS5tZXNzYWdlU3RyZWFtXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lGbHlvdXRNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gU2t5Rmx5b3V0TWVzc2FnZVR5cGUuQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWZ0ZXJDbG9zZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBmbHlvdXQuY2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0bmVycygpO1xuICAgICAgICBpZiAodGhpcy5yZW1vdmVBZnRlckNsb3NlZCkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlSG9zdENvbXBvbmVudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KHRydWUpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIH1cbn1cbiJdfQ==
167
+ }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i1.SkyAppWindowRef }, { type: i1.SkyDynamicComponentService }, { type: i2.Router }, { type: i0.NgZone }]; } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZmx5b3V0L3NyYy9saWIvbW9kdWxlcy9mbHlvdXQvZmx5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUVuRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQVkzQixZQUNFLFdBQWtDLEVBQ2xDLFNBQTBCLEVBQzFCLHVCQUFtRCxFQUNuRCxNQUFjLEVBQ2QsTUFBYzs7UUFoQmhCLHlDQUFvRDtRQUNwRCw4Q0FBcUIsS0FBSyxFQUFDO1FBQzNCLHNDQUFhLEtBQUssRUFBQztRQUNuQiwwQ0FBaUIsSUFBSSxPQUFPLEVBQVcsRUFBQztRQUV4QyxnREFBb0M7UUFDcEMsOENBQTRCO1FBQzVCLDREQUFxRDtRQUNyRCwyQ0FBZ0I7UUFDaEIsMkNBQWdCO1FBU2QsdUJBQUEsSUFBSSxpQ0FBZ0IsV0FBVyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwrQkFBYyxTQUFTLE1BQUEsQ0FBQztRQUM1Qix1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bnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWYsXG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rmx5b3V0SW5zdGFuY2UgfSBmcm9tICcuL2ZseW91dC1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRDb21wb25lbnQgfSBmcm9tICcuL2ZseW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0Q2xvc2VBcmdzIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtY2xvc2UtYXJncyc7XG5pbXBvcnQgeyBTa3lGbHlvdXRDb25maWcgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1jb25maWcnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0TWVzc2FnZVR5cGUgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1tZXNzYWdlLXR5cGUnO1xuXG4vKipcbiAqIExhdW5jaGVzIGZseW91dHMgYW5kIHByb3ZpZGVzIGEgY29tbW9uIGxvb2sgYW5kIGZlZWwuXG4gKiBUaGlzIHNlcnZpY2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVzIHRoZSBmbHlvdXQgY29tcG9uZW50IGFuZCBhcHBlbmRzIGl0IGRpcmVjdGx5IHRvIHRoZVxuICogZG9jdW1lbnQncyBgYm9keWAgZWxlbWVudC4gVGhlIGBTa3lGbHlvdXRJbnN0YW5jZWAgY2xhc3Mgd2F0Y2hlcyBmb3IgYW5kIHRyaWdnZXJzIGZseW91dCBldmVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZseW91dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAjaG9zdDogQ29tcG9uZW50UmVmPFNreUZseW91dENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gICNyZW1vdmVBZnRlckNsb3NlZCA9IGZhbHNlO1xuICAjaXNPcGVuaW5nID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI3dpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmO1xuICAjZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICAjcm91dGVyOiBSb3V0ZXI7XG4gICNuZ1pvbmU6IE5nWm9uZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb3JlQWRhcHRlcjogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICByb3V0ZXI6IFJvdXRlcixcbiAgICBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlciA9IGNvcmVBZGFwdGVyO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICAgIHRoaXMuI3JvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLiNuZ1pvbmUgPSBuZ1pvbmU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlTGlzdG5lcnMoKTtcbiAgICBpZiAodGhpcy4jaG9zdCkge1xuICAgICAgdGhpcy4jcmVtb3ZlSG9zdENvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGZseW91dC4gVGhpcyBtZXRob2QgYWxzbyByZW1vdmVzIHRoZSBmbHlvdXQncyBIVE1MIGVsZW1lbnRzIGZyb20gdGhlIERPTS5cbiAgICogQHBhcmFtIGFyZ3MgQXJndW1lbnRzIHVzZWQgd2hlbiBjbG9zaW5nIHRoZSBmbHlvdXQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoYXJncz86IFNreUZseW91dENsb3NlQXJncyk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNob3N0ICYmICF0aGlzLiNpc09wZW5pbmcpIHtcbiAgICAgIHRoaXMuI2hvc3QuaW5zdGFuY2UubWVzc2FnZVN0cmVhbS5uZXh0KHtcbiAgICAgICAgdHlwZTogU2t5Rmx5b3V0TWVzc2FnZVR5cGUuQ2xvc2UsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZ25vcmVCZWZvcmVDbG9zZTogYXJncyA/IGFyZ3MuaWdub3JlQmVmb3JlQ2xvc2UgOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGZseW91dCBhbmQgZGlzcGxheXMgdGhlIHNwZWNpZmllZCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgU3BlY2lmaWVzIHRoZSBjb21wb25lbnQgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0gY29uZmlnIFNwZWNpZmllcyB0aGUgZmx5b3V0IGNvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50J3MgY29uc3RydWN0b3IuXG4gICAqL1xuICBwdWJsaWMgb3BlbjxUPihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgY29uZmlnPzogU2t5Rmx5b3V0Q29uZmlnXG4gICk6IFNreUZseW91dEluc3RhbmNlPFQ+IHtcbiAgICAvLyBpc09wZW5pbmcgZmxhZyB3aWxsIHByZXZlbnQgY2xvc2UoKSBmcm9tIGZpcmluZyB3aGVuIG9wZW4oKSBpcyBhbHNvIGZpcmVkLlxuICAgIHRoaXMuI2lzT3BlbmluZyA9IHRydWU7XG4gICAgdGhpcy4jd2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2lzT3BlbmluZyA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLiNob3N0KSB7XG4gICAgICB0aGlzLiNob3N0ID0gdGhpcy4jY3JlYXRlSG9zdENvbXBvbmVudCgpO1xuXG4gICAgICB0aGlzLiNyb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLiNob3N0ICE9PSB1bmRlZmluZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgICAgICAgICAvLyBTYW5pdHkgY2hlY2sgLSBpZiB0aGUgaG9zdCBzdGlsbCBleGlzdHMgYWZ0ZXIgYW5pbWF0aW9ucyBzaG91bGQgaGF2ZSBjb21wbGV0ZWQgLSByZW1vdmUgaG9zdFxuICAgICAgICAgICAgdGhpcy4jbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuI2hvc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNyZW1vdmVIb3N0Q29tcG9uZW50KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmx5b3V0ID0gdGhpcy4jaG9zdC5pbnN0YW5jZS5hdHRhY2goY29tcG9uZW50LCBjb25maWcpO1xuXG4gICAgdGhpcy4jYWRkTGlzdGVuZXJzKGZseW91dCk7XG5cbiAgICByZXR1cm4gZmx5b3V0O1xuICB9XG5cbiAgI2NyZWF0ZUhvc3RDb21wb25lbnQoKTogQ29tcG9uZW50UmVmPFNreUZseW91dENvbXBvbmVudD4ge1xuICAgIHRoaXMuI2hvc3QgPVxuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KFNreUZseW91dENvbXBvbmVudCk7XG4gICAgcmV0dXJuIHRoaXMuI2hvc3Q7XG4gIH1cblxuICAjcmVtb3ZlSG9zdENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaG9zdCkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuI2hvc3QpO1xuICAgICAgdGhpcy4jaG9zdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjYWRkTGlzdGVuZXJzPFQ+KGZseW91dDogU2t5Rmx5b3V0SW5zdGFuY2U8VD4pOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNob3N0KSB7XG4gICAgICBjb25zdCBmbHlvdXRJbnN0YW5jZSA9IHRoaXMuI2hvc3QuaW5zdGFuY2U7XG5cbiAgICAgIGxldCBkb0Nsb3NlID0gZmFsc2U7XG5cbiAgICAgIC8qKlxuICAgICAgICogSGFuZGxlcyB3aGVuIHRvIGNsb3NlIGEgZmx5b3V0LlxuICAgICAgICogTm90ZTogV2UncmUgdXNpbmcgYG1vdXNldXBgIGluIG9yZGVyIHRvIGNhcHR1cmUgdGhlIHBhcmVudCBvZiBjZXJ0YWluIHRhcmdldHMgdGhhdCB3aWxsIGJlXG4gICAgICAgKiBkZWxldGVkIGltbWVkaWF0ZWx5IGFmdGVyIGJlaW5nIGNsaWNrZWQuIElmIHdlIHVzZSBgY2xpY2tgLCB0aGUgZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlXG4gICAgICAgKiBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGNoZWNrIHRoZSBwYXJlbnQncyB6LWluZGV4XG4gICAgICAgKiByZWxhdGl2ZSB0byB0aGUgZmx5b3V0J3MgY29udGFpbmVyLlxuICAgICAgICovXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICBkb0Nsb3NlID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGhpcy4jaG9zdD8uaW5zdGFuY2UuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmbHlvdXRJbnN0YW5jZS5mbHlvdXRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzQWJvdmUgPVxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSBkb2N1bWVudCB8fCAhZXZlbnQudGFyZ2V0XG4gICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgOiB0aGlzLiNjb3JlQWRhcHRlci5pc1RhcmdldEFib3ZlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgICAgICAgIGZseW91dEluc3RhbmNlLmZseW91dFJlZj8ubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICghaXNBYm92ZSkge1xuICAgICAgICAgICAgZG9DbG9zZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLyoqXG4gICAgICAgKiBDaGVjayBpZiB3ZSBzaG91bGQgY2xvc2UgdGhlIGZseW91dCBzcGVjaWZpY2FsbHkgb24gYSBgY2xpY2tgIGV2ZW50IHNvIHRoYXQgd2UgY2FuIGtlZXBcbiAgICAgICAqIGl0IG9wZW4gd2hlbiBjb25zdW1lcnMgZmlyZSBhbm90aGVyIGBjbGlja2AgZXZlbnQgb24gYSB0cmlnZ2VyIGJ1dHRvbi4gU2luY2UgdGhlIGNvbnN1bWVyXG4gICAgICAgKiB3aWxsIGxpa2VseSB1c2UgYSBgY2xpY2tgIGV2ZW50IHRvIG9wZW4gdGhlIGZseW91dCwgd2Ugd2FudCB0byB3YWl0IGZvciB0aGF0IGV2ZW50IHRvIGZpcmVcbiAgICAgICAqIGJlZm9yZSBkZXRlcm1pbmluZyBpZiB0aGUgZmx5b3V0IHNob3VsZCBiZSBjbG9zZWQuXG4gICAgICAgKi9cbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAoZG9DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI3JlbW92ZUFmdGVyQ2xvc2VkID0gZmFsc2U7XG4gICAgICBmbHlvdXRJbnN0YW5jZS5tZXNzYWdlU3RyZWFtXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5Rmx5b3V0TWVzc2FnZSkgPT4ge1xuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLiNyZW1vdmVBZnRlckNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLiNpc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBmbHlvdXQuY2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jcmVtb3ZlTGlzdG5lcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuI3JlbW92ZUFmdGVyQ2xvc2VkKSB7XG4gICAgICAgICAgdGhpcy4jcmVtb3ZlSG9zdENvbXBvbmVudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlTGlzdG5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KHRydWUpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWNvbmZpZy1pbnRlcm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC90eXBlcy9mbHlvdXQtY29uZmlnLWludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lGbHlvdXRDb25maWcgfSBmcm9tICcuL2ZseW91dC1jb25maWcnO1xuXG4vKipcbiAqIFR5cGUgdG8gcmVwcmVzZW50IHRoZSBmbHlvdXQgY29uZmlndXJhdGlvbiBhZnRlciBkZWZhdWx0IHZhbHVlcyBoYXZlIGJlZW4gYXBwbGllZC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUZseW91dENvbmZpZ0ludGVybmFsIGV4dGVuZHMgU2t5Rmx5b3V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZGVmYXVsdCB3aWR0aCBvZiB0aGUgZmx5b3V0IGNvbnRhaW5lci4gSWYgeW91IGRvIG5vdCBwcm92aWRlIGEgd2lkdGgsXG4gICAqIHRoZSBmbHlvdXQgZGVmYXVsdHMgdG8gaGFsZiB0aGUgd2lkdGggb2YgaXRzIGNvbnRhaW5lci5cbiAgICovXG4gIGRlZmF1bHRXaWR0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gcmVzaXplIHdpZHRoIG9mIHRoZSBmbHlvdXQgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAzMjBcbiAgICovXG4gIG1pbldpZHRoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSByZXNpemUgd2lkdGggb2YgdGhlIGZseW91dCBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0IGRlZmF1bHRXaWR0aFxuICAgKi9cbiAgbWF4V2lkdGg6IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIGFycmF5IG9mIGN1c3RvbSBwcm92aWRlcnMgdG8gcGFzcyB0byB0aGUgY29tcG9uZW50J3MgY29uc3RydWN0b3IuXG4gICAqL1xuICBwcm92aWRlcnM6IGFueVtdO1xufVxuIl19