@skyux/flyout 8.7.0 → 9.0.0-alpha.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/modules/flyout/flyout-adapter.service.mjs +69 -0
- package/esm2022/lib/modules/flyout/flyout-instance.mjs +122 -0
- package/esm2022/lib/modules/flyout/flyout-iterator.component.mjs +51 -0
- package/esm2022/lib/modules/flyout/flyout-media-query.service.mjs +68 -0
- package/esm2022/lib/modules/flyout/flyout.component.mjs +526 -0
- package/{esm2020 → esm2022}/lib/modules/flyout/flyout.module.mjs +21 -21
- package/esm2022/lib/modules/flyout/flyout.service.mjs +168 -0
- package/esm2022/lib/modules/shared/sky-flyout-resources.module.mjs +54 -0
- package/fesm2022/skyux-flyout.mjs +1098 -0
- package/{fesm2020 → fesm2022}/skyux-flyout.mjs.map +1 -1
- package/lib/modules/flyout/flyout-iterator.component.d.ts +1 -1
- package/package.json +16 -22
- package/esm2020/lib/modules/flyout/flyout-adapter.service.mjs +0 -72
- package/esm2020/lib/modules/flyout/flyout-instance.mjs +0 -119
- package/esm2020/lib/modules/flyout/flyout-iterator.component.mjs +0 -56
- package/esm2020/lib/modules/flyout/flyout-media-query.service.mjs +0 -71
- package/esm2020/lib/modules/flyout/flyout.component.mjs +0 -513
- package/esm2020/lib/modules/flyout/flyout.service.mjs +0 -167
- package/esm2020/lib/modules/shared/sky-flyout-resources.module.mjs +0 -54
- package/fesm2015/skyux-flyout.mjs +0 -1091
- package/fesm2015/skyux-flyout.mjs.map +0 -1
- package/fesm2020/skyux-flyout.mjs +0 -1087
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-before-close-handler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config-internal.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-permalink.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-flyout.mjs +0 -0
|
@@ -1,167 +0,0 @@
|
|
|
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_removeListeners;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Injectable, } from '@angular/core';
|
|
4
|
-
import { NavigationStart } from '@angular/router';
|
|
5
|
-
import { Subject, fromEvent } from 'rxjs';
|
|
6
|
-
import { take, takeUntil, takeWhile } from 'rxjs/operators';
|
|
7
|
-
import { SkyFlyoutComponent } from './flyout.component';
|
|
8
|
-
import { SkyFlyoutMessageType } from './types/flyout-message-type';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@skyux/core";
|
|
11
|
-
import * as i2 from "@angular/router";
|
|
12
|
-
/**
|
|
13
|
-
* Launches flyouts and provides a common look and feel.
|
|
14
|
-
* This service dynamically generates the flyout component and appends it directly to the
|
|
15
|
-
* document's `body` element. The `SkyFlyoutInstance` class watches for and triggers flyout events.
|
|
16
|
-
*/
|
|
17
|
-
export class SkyFlyoutService {
|
|
18
|
-
constructor(coreAdapter, windowRef, dynamicComponentService, router, ngZone) {
|
|
19
|
-
_SkyFlyoutService_instances.add(this);
|
|
20
|
-
_SkyFlyoutService_host.set(this, void 0);
|
|
21
|
-
_SkyFlyoutService_removeAfterClosed.set(this, false);
|
|
22
|
-
_SkyFlyoutService_isOpening.set(this, false);
|
|
23
|
-
_SkyFlyoutService_ngUnsubscribe.set(this, new Subject());
|
|
24
|
-
_SkyFlyoutService_coreAdapter.set(this, void 0);
|
|
25
|
-
_SkyFlyoutService_windowRef.set(this, void 0);
|
|
26
|
-
_SkyFlyoutService_dynamicComponentService.set(this, void 0);
|
|
27
|
-
_SkyFlyoutService_router.set(this, void 0);
|
|
28
|
-
_SkyFlyoutService_ngZone.set(this, void 0);
|
|
29
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_coreAdapter, coreAdapter, "f");
|
|
30
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_windowRef, windowRef, "f");
|
|
31
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_dynamicComponentService, dynamicComponentService, "f");
|
|
32
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_router, router, "f");
|
|
33
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_ngZone, ngZone, "f");
|
|
34
|
-
}
|
|
35
|
-
ngOnDestroy() {
|
|
36
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeListeners).call(this);
|
|
37
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
|
|
38
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Closes the flyout. This method also removes the flyout's HTML elements from the DOM.
|
|
43
|
-
* @param args Arguments used when closing the flyout.
|
|
44
|
-
*/
|
|
45
|
-
close(args) {
|
|
46
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f") && !__classPrivateFieldGet(this, _SkyFlyoutService_isOpening, "f")) {
|
|
47
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance.messageStream.next({
|
|
48
|
-
type: SkyFlyoutMessageType.Close,
|
|
49
|
-
data: {
|
|
50
|
-
ignoreBeforeClose: args ? args.ignoreBeforeClose : false,
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Opens a flyout and displays the specified component.
|
|
57
|
-
* @param component Specifies the component to render.
|
|
58
|
-
* @param config Specifies the flyout configuration passed to the specified component's constructor.
|
|
59
|
-
*/
|
|
60
|
-
open(component, config) {
|
|
61
|
-
// isOpening flag will prevent close() from firing when open() is also fired.
|
|
62
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_isOpening, true, "f");
|
|
63
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_windowRef, "f").nativeWindow.setTimeout(() => {
|
|
64
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_isOpening, false, "f");
|
|
65
|
-
});
|
|
66
|
-
if (!__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
|
|
67
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_host, __classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_createHostComponent).call(this), "f");
|
|
68
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_router, "f").events
|
|
69
|
-
.pipe(takeWhile(() => __classPrivateFieldGet(this, _SkyFlyoutService_host, "f") !== undefined))
|
|
70
|
-
.subscribe((event) => {
|
|
71
|
-
if (event instanceof NavigationStart) {
|
|
72
|
-
this.close();
|
|
73
|
-
// Sanity check - if the host still exists after animations should have completed - remove host
|
|
74
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_ngZone, "f").onStable.pipe(take(1)).subscribe(() => {
|
|
75
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
|
|
76
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
const flyout = __classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance.attach(component, config);
|
|
83
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_addListeners).call(this, flyout);
|
|
84
|
-
return flyout;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
_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() {
|
|
88
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_host, __classPrivateFieldGet(this, _SkyFlyoutService_dynamicComponentService, "f").createComponent(SkyFlyoutComponent), "f");
|
|
89
|
-
return __classPrivateFieldGet(this, _SkyFlyoutService_host, "f");
|
|
90
|
-
}, _SkyFlyoutService_removeHostComponent = function _SkyFlyoutService_removeHostComponent() {
|
|
91
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
|
|
92
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_dynamicComponentService, "f").removeComponent(__classPrivateFieldGet(this, _SkyFlyoutService_host, "f"));
|
|
93
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_host, undefined, "f");
|
|
94
|
-
}
|
|
95
|
-
}, _SkyFlyoutService_addListeners = function _SkyFlyoutService_addListeners(flyout) {
|
|
96
|
-
/* istanbul ignore else */
|
|
97
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")) {
|
|
98
|
-
const flyoutInstance = __classPrivateFieldGet(this, _SkyFlyoutService_host, "f").instance;
|
|
99
|
-
let doClose = false;
|
|
100
|
-
/**
|
|
101
|
-
* Handles when to close a flyout.
|
|
102
|
-
* Note: We're using `mouseup` in order to capture the parent of certain targets that will be
|
|
103
|
-
* deleted immediately after being clicked. If we use `click`, the event is fired after the
|
|
104
|
-
* element is removed from the DOM making it impossible to check the parent's z-index
|
|
105
|
-
* relative to the flyout's container.
|
|
106
|
-
*/
|
|
107
|
-
fromEvent(document, 'mouseup')
|
|
108
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
|
|
109
|
-
.subscribe((event) => {
|
|
110
|
-
doClose = false;
|
|
111
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_host, "f")?.instance.isDragging) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (flyoutInstance.flyoutRef?.nativeElement.contains(event.target)) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const isAbove = event.target === document || !event.target
|
|
118
|
-
? false
|
|
119
|
-
: __classPrivateFieldGet(this, _SkyFlyoutService_coreAdapter, "f").isTargetAboveElement(event.target, flyoutInstance.flyoutRef?.nativeElement);
|
|
120
|
-
/* istanbul ignore else */
|
|
121
|
-
if (!isAbove) {
|
|
122
|
-
doClose = true;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
/**
|
|
126
|
-
* Check if we should close the flyout specifically on a `click` event so that we can keep
|
|
127
|
-
* it open when consumers fire another `click` event on a trigger button. Since the consumer
|
|
128
|
-
* will likely use a `click` event to open the flyout, we want to wait for that event to fire
|
|
129
|
-
* before determining if the flyout should be closed.
|
|
130
|
-
*/
|
|
131
|
-
fromEvent(document, 'click')
|
|
132
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
|
|
133
|
-
.subscribe(() => {
|
|
134
|
-
if (doClose) {
|
|
135
|
-
this.close();
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_removeAfterClosed, false, "f");
|
|
139
|
-
flyoutInstance.messageStream
|
|
140
|
-
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f")))
|
|
141
|
-
.subscribe((message) => {
|
|
142
|
-
if (message.type === SkyFlyoutMessageType.Close) {
|
|
143
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_removeAfterClosed, true, "f");
|
|
144
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_isOpening, false, "f");
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
flyout.closed.pipe(take(1)).subscribe(() => {
|
|
148
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeListeners).call(this);
|
|
149
|
-
if (__classPrivateFieldGet(this, _SkyFlyoutService_removeAfterClosed, "f")) {
|
|
150
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_instances, "m", _SkyFlyoutService_removeHostComponent).call(this);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
}, _SkyFlyoutService_removeListeners = function _SkyFlyoutService_removeListeners() {
|
|
155
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f").next(true);
|
|
156
|
-
__classPrivateFieldGet(this, _SkyFlyoutService_ngUnsubscribe, "f").unsubscribe();
|
|
157
|
-
__classPrivateFieldSet(this, _SkyFlyoutService_ngUnsubscribe, new Subject(), "f");
|
|
158
|
-
};
|
|
159
|
-
SkyFlyoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i1.SkyAppWindowRef }, { token: i1.SkyDynamicComponentService }, { token: i2.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
160
|
-
SkyFlyoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutService, providedIn: 'any' });
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutService, decorators: [{
|
|
162
|
-
type: Injectable,
|
|
163
|
-
args: [{
|
|
164
|
-
providedIn: 'any',
|
|
165
|
-
}]
|
|
166
|
-
}], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i1.SkyAppWindowRef }, { type: i1.SkyDynamicComponentService }, { type: i2.Router }, { type: i0.NgZone }]; } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZmx5b3V0L3NyYy9saWIvbW9kdWxlcy9mbHlvdXQvZmx5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsVUFBVSxHQUlYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQU8xRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUVuRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQVkzQixZQUNFLFdBQWtDLEVBQ2xDLFNBQTBCLEVBQzFCLHVCQUFtRCxFQUNuRCxNQUFjLEVBQ2QsTUFBYzs7UUFoQmhCLHlDQUFvRDtRQUNwRCw4Q0FBcUIsS0FBSyxFQUFDO1FBQzNCLHNDQUFhLEtBQUssRUFBQztRQUNuQiwwQ0FBaUIsSUFBSSxPQUFPLEVBQVcsRUFBQztRQUV4QyxnREFBb0M7UUFDcEMsOENBQTRCO1FBQzVCLDREQUFxRDtRQUNyRCwyQ0FBZ0I7UUFDaEIsMkNBQWdCO1FBU2QsdUJBQUEsSUFBSSxpQ0FBZ0IsV0FBVyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwrQkFBYyxTQUFTLE1BQUEsQ0FBQztRQUM1Qix1QkFBQSxJQUFJLDZDQUE0Qix1QkFBdUIsTUFBQSxDQUFDO1FBQ3hELHVCQUFBLElBQUksNEJBQVcsTUFBTSxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFB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LElBQUksdUNBQXNCLEtBQUssTUFBQSxDQUFDO1FBQ2hDLGNBQWMsQ0FBQyxhQUFhO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSx1Q0FBZSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFO1lBQ3ZDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQy9DLHVCQUFBLElBQUksdUNBQXNCLElBQUksTUFBQSxDQUFDO2dCQUMvQix1QkFBQSxJQUFJLCtCQUFjLEtBQUssTUFBQSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pDLHVCQUFBLElBQUksc0VBQWlCLE1BQXJCLElBQUksQ0FBbUIsQ0FBQztZQUN4QixJQUFJLHVCQUFBLElBQUksMkNBQW1CLEVBQUU7Z0JBQzNCLHVCQUFBLElBQUksMEVBQXFCLE1BQXpCLElBQUksQ0FBdUIsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0lBR0MsdUJBQUEsSUFBSSx1Q0FBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQix1QkFBQSxJQUFJLHVDQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsdUJBQUEsSUFBSSxtQ0FBa0IsSUFBSSxPQUFPLEVBQVcsTUFBQSxDQUFDO0FBQy9DLENBQUM7NkdBcExVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsS0FBSzsyRkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWYsXG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rmx5b3V0SW5zdGFuY2UgfSBmcm9tICcuL2ZseW91dC1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRDb21wb25lbnQgfSBmcm9tICcuL2ZseW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0Q2xvc2VBcmdzIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtY2xvc2UtYXJncyc7XG5pbXBvcnQgeyBTa3lGbHlvdXRDb25maWcgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1jb25maWcnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5Rmx5b3V0TWVzc2FnZVR5cGUgfSBmcm9tICcuL3R5cGVzL2ZseW91dC1tZXNzYWdlLXR5cGUnO1xuXG4vKipcbiAqIExhdW5jaGVzIGZseW91dHMgYW5kIHByb3ZpZGVzIGEgY29tbW9uIGxvb2sgYW5kIGZlZWwuXG4gKiBUaGlzIHNlcnZpY2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVzIHRoZSBmbHlvdXQgY29tcG9uZW50IGFuZCBhcHBlbmRzIGl0IGRpcmVjdGx5IHRvIHRoZVxuICogZG9jdW1lbnQncyBgYm9keWAgZWxlbWVudC4gVGhlIGBTa3lGbHlvdXRJbnN0YW5jZWAgY2xhc3Mgd2F0Y2hlcyBmb3IgYW5kIHRyaWdnZXJzIGZseW91dCBldmVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZseW91dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAjaG9zdDogQ29tcG9uZW50UmVmPFNreUZseW91dENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gICNyZW1vdmVBZnRlckNsb3NlZCA9IGZhbHNlO1xuICAjaXNPcGVuaW5nID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI3dpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmO1xuICAjZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICAjcm91dGVyOiBSb3V0ZXI7XG4gICNuZ1pvbmU6IE5nWm9uZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb3JlQWRhcHRlcjogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICByb3V0ZXI6IFJvdXRlcixcbiAgICBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlciA9IGNvcmVBZGFwdGVyO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICAgIHRoaXMuI3JvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLiNuZ1pvbmUgPSBuZ1pvbmU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgaWYgKHRoaXMuI2hvc3QpIHtcbiAgICAgIHRoaXMuI3JlbW92ZUhvc3RDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBmbHlvdXQuIFRoaXMgbWV0aG9kIGFsc28gcmVtb3ZlcyB0aGUgZmx5b3V0J3MgSFRNTCBlbGVtZW50cyBmcm9tIHRoZSBET00uXG4gICAqIEBwYXJhbSBhcmdzIEFyZ3VtZW50cyB1c2VkIHdoZW4gY2xvc2luZyB0aGUgZmx5b3V0LlxuICAgKi9cbiAgcHVibGljIGNsb3NlKGFyZ3M/OiBTa3lGbHlvdXRDbG9zZUFyZ3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaG9zdCAmJiAhdGhpcy4jaXNPcGVuaW5nKSB7XG4gICAgICB0aGlzLiNob3N0Lmluc3RhbmNlLm1lc3NhZ2VTdHJlYW0ubmV4dCh7XG4gICAgICAgIHR5cGU6IFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaWdub3JlQmVmb3JlQ2xvc2U6IGFyZ3MgPyBhcmdzLmlnbm9yZUJlZm9yZUNsb3NlIDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBmbHlvdXQgYW5kIGRpc3BsYXlzIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gY29tcG9uZW50IFNwZWNpZmllcyB0aGUgY29tcG9uZW50IHRvIHJlbmRlci5cbiAgICogQHBhcmFtIGNvbmZpZyBTcGVjaWZpZXMgdGhlIGZseW91dCBjb25maWd1cmF0aW9uIHBhc3NlZCB0byB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yLlxuICAgKi9cbiAgcHVibGljIG9wZW48VD4oXG4gICAgY29tcG9uZW50OiBUeXBlPFQ+LFxuICAgIGNvbmZpZz86IFNreUZseW91dENvbmZpZ1xuICApOiBTa3lGbHlvdXRJbnN0YW5jZTxUPiB7XG4gICAgLy8gaXNPcGVuaW5nIGZsYWcgd2lsbCBwcmV2ZW50IGNsb3NlKCkgZnJvbSBmaXJpbmcgd2hlbiBvcGVuKCkgaXMgYWxzbyBmaXJlZC5cbiAgICB0aGlzLiNpc09wZW5pbmcgPSB0cnVlO1xuICAgIHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNpc09wZW5pbmcgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy4jaG9zdCkge1xuICAgICAgdGhpcy4jaG9zdCA9IHRoaXMuI2NyZWF0ZUhvc3RDb21wb25lbnQoKTtcblxuICAgICAgdGhpcy4jcm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy4jaG9zdCAhPT0gdW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcblxuICAgICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIC0gaWYgdGhlIGhvc3Qgc3RpbGwgZXhpc3RzIGFmdGVyIGFuaW1hdGlvbnMgc2hvdWxkIGhhdmUgY29tcGxldGVkIC0gcmVtb3ZlIGhvc3RcbiAgICAgICAgICAgIHRoaXMuI25nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLiNob3N0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jcmVtb3ZlSG9zdENvbXBvbmVudCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZseW91dCA9IHRoaXMuI2hvc3QuaW5zdGFuY2UuYXR0YWNoKGNvbXBvbmVudCwgY29uZmlnKTtcblxuICAgIHRoaXMuI2FkZExpc3RlbmVycyhmbHlvdXQpO1xuXG4gICAgcmV0dXJuIGZseW91dDtcbiAgfVxuXG4gICNjcmVhdGVIb3N0Q29tcG9uZW50KCk6IENvbXBvbmVudFJlZjxTa3lGbHlvdXRDb21wb25lbnQ+IHtcbiAgICB0aGlzLiNob3N0ID1cbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChTa3lGbHlvdXRDb21wb25lbnQpO1xuICAgIHJldHVybiB0aGlzLiNob3N0O1xuICB9XG5cbiAgI3JlbW92ZUhvc3RDb21wb25lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2hvc3QpIHtcbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudCh0aGlzLiNob3N0KTtcbiAgICAgIHRoaXMuI2hvc3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2FkZExpc3RlbmVyczxUPihmbHlvdXQ6IFNreUZseW91dEluc3RhbmNlPFQ+KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jaG9zdCkge1xuICAgICAgY29uc3QgZmx5b3V0SW5zdGFuY2UgPSB0aGlzLiNob3N0Lmluc3RhbmNlO1xuXG4gICAgICBsZXQgZG9DbG9zZSA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZXMgd2hlbiB0byBjbG9zZSBhIGZseW91dC5cbiAgICAgICAqIE5vdGU6IFdlJ3JlIHVzaW5nIGBtb3VzZXVwYCBpbiBvcmRlciB0byBjYXB0dXJlIHRoZSBwYXJlbnQgb2YgY2VydGFpbiB0YXJnZXRzIHRoYXQgd2lsbCBiZVxuICAgICAgICogZGVsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBiZWluZyBjbGlja2VkLiBJZiB3ZSB1c2UgYGNsaWNrYCwgdGhlIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZVxuICAgICAgICogZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTSBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBjaGVjayB0aGUgcGFyZW50J3Mgei1pbmRleFxuICAgICAgICogcmVsYXRpdmUgdG8gdGhlIGZseW91dCdzIGNvbnRhaW5lci5cbiAgICAgICAqL1xuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2V1cCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgZG9DbG9zZSA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHRoaXMuI2hvc3Q/Lmluc3RhbmNlLmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmx5b3V0SW5zdGFuY2UuZmx5b3V0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc0Fib3ZlID1cbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gZG9jdW1lbnQgfHwgIWV2ZW50LnRhcmdldFxuICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgIDogdGhpcy4jY29yZUFkYXB0ZXIuaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICBldmVudC50YXJnZXQsXG4gICAgICAgICAgICAgICAgICBmbHlvdXRJbnN0YW5jZS5mbHlvdXRSZWY/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoIWlzQWJvdmUpIHtcbiAgICAgICAgICAgIGRvQ2xvc2UgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIC8qKlxuICAgICAgICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNsb3NlIHRoZSBmbHlvdXQgc3BlY2lmaWNhbGx5IG9uIGEgYGNsaWNrYCBldmVudCBzbyB0aGF0IHdlIGNhbiBrZWVwXG4gICAgICAgKiBpdCBvcGVuIHdoZW4gY29uc3VtZXJzIGZpcmUgYW5vdGhlciBgY2xpY2tgIGV2ZW50IG9uIGEgdHJpZ2dlciBidXR0b24uIFNpbmNlIHRoZSBjb25zdW1lclxuICAgICAgICogd2lsbCBsaWtlbHkgdXNlIGEgYGNsaWNrYCBldmVudCB0byBvcGVuIHRoZSBmbHlvdXQsIHdlIHdhbnQgdG8gd2FpdCBmb3IgdGhhdCBldmVudCB0byBmaXJlXG4gICAgICAgKiBiZWZvcmUgZGV0ZXJtaW5pbmcgaWYgdGhlIGZseW91dCBzaG91bGQgYmUgY2xvc2VkLlxuICAgICAgICovXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKGRvQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLiNyZW1vdmVBZnRlckNsb3NlZCA9IGZhbHNlO1xuICAgICAgZmx5b3V0SW5zdGFuY2UubWVzc2FnZVN0cmVhbVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreUZseW91dE1lc3NhZ2UpID0+IHtcbiAgICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBTa3lGbHlvdXRNZXNzYWdlVHlwZS5DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy4jcmVtb3ZlQWZ0ZXJDbG9zZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy4jaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgZmx5b3V0LmNsb3NlZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3JlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy4jcmVtb3ZlQWZ0ZXJDbG9zZWQpIHtcbiAgICAgICAgICB0aGlzLiNyZW1vdmVIb3N0Q29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KHRydWUpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgfVxufVxuIl19
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
3
|
-
* The contents of this file were automatically generated by
|
|
4
|
-
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-flyout' schematic.
|
|
5
|
-
* To update this file, simply rerun the command.
|
|
6
|
-
*/
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
const RESOURCES = {
|
|
11
|
-
'EN-US': {
|
|
12
|
-
skyux_flyout_close: { message: 'Close flyout' },
|
|
13
|
-
skyux_flyout_iterator_previous_button: { message: 'Previous' },
|
|
14
|
-
skyux_flyout_iterator_next_button: { message: 'Next' },
|
|
15
|
-
skyux_flyout_permalink_button: { message: 'View record' },
|
|
16
|
-
skyux_flyout_primary_action_button: { message: 'Create list' },
|
|
17
|
-
skyux_flyout_resize_handle: {
|
|
18
|
-
message: 'Resize the flyout window. Press the enter or space key to activate, then use left arrow key to expand the flyout window and right arrow key to shrink the flyout window. Press the enter, space, or tab key to deactivate.',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
export class SkyFlyoutResourcesProvider {
|
|
23
|
-
getString(localeInfo, name) {
|
|
24
|
-
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Import into any component library module that needs to use resource strings.
|
|
29
|
-
*/
|
|
30
|
-
export class SkyFlyoutResourcesModule {
|
|
31
|
-
}
|
|
32
|
-
SkyFlyoutResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
33
|
-
SkyFlyoutResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutResourcesModule, exports: [SkyI18nModule] });
|
|
34
|
-
SkyFlyoutResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutResourcesModule, providers: [
|
|
35
|
-
{
|
|
36
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
37
|
-
useClass: SkyFlyoutResourcesProvider,
|
|
38
|
-
multi: true,
|
|
39
|
-
},
|
|
40
|
-
], imports: [SkyI18nModule] });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyFlyoutResourcesModule, decorators: [{
|
|
42
|
-
type: NgModule,
|
|
43
|
-
args: [{
|
|
44
|
-
exports: [SkyI18nModule],
|
|
45
|
-
providers: [
|
|
46
|
-
{
|
|
47
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
48
|
-
useClass: SkyFlyoutResourcesProvider,
|
|
49
|
-
multi: true,
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
}]
|
|
53
|
-
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWZseW91dC1yZXNvdXJjZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NreS1mbHlvdXQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1Asa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQy9DLHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUM5RCxpQ0FBaUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDdEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO1FBQ3pELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtRQUM5RCwwQkFBMEIsRUFBRTtZQUMxQixPQUFPLEVBQ0wsNE5BQTROO1NBQy9OO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLDBCQUEwQjtJQUM5QixTQUFTLENBQ2QsVUFBNEIsRUFDNUIsSUFBWTtRQUVaLE9BQU8scUJBQXFCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFXSCxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsWUFUekIsYUFBYTtzSEFTWix3QkFBd0IsYUFSeEI7UUFDVDtZQUNFLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsWUFQUyxhQUFhOzJGQVNaLHdCQUF3QjtrQkFWcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWZseW91dCcgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICBTa3lBcHBMb2NhbGVJbmZvLFxuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyLFxuICBnZXRMaWJTdHJpbmdGb3JMb2NhbGUsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiB7IFtsb2NhbGU6IHN0cmluZ106IFNreUxpYlJlc291cmNlcyB9ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfZmx5b3V0X2Nsb3NlOiB7IG1lc3NhZ2U6ICdDbG9zZSBmbHlvdXQnIH0sXG4gICAgc2t5dXhfZmx5b3V0X2l0ZXJhdG9yX3ByZXZpb3VzX2J1dHRvbjogeyBtZXNzYWdlOiAnUHJldmlvdXMnIH0sXG4gICAgc2t5dXhfZmx5b3V0X2l0ZXJhdG9yX25leHRfYnV0dG9uOiB7IG1lc3NhZ2U6ICdOZXh0JyB9LFxuICAgIHNreXV4X2ZseW91dF9wZXJtYWxpbmtfYnV0dG9uOiB7IG1lc3NhZ2U6ICdWaWV3IHJlY29yZCcgfSxcbiAgICBza3l1eF9mbHlvdXRfcHJpbWFyeV9hY3Rpb25fYnV0dG9uOiB7IG1lc3NhZ2U6ICdDcmVhdGUgbGlzdCcgfSxcbiAgICBza3l1eF9mbHlvdXRfcmVzaXplX2hhbmRsZToge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ1Jlc2l6ZSB0aGUgZmx5b3V0IHdpbmRvdy4gUHJlc3MgdGhlIGVudGVyIG9yIHNwYWNlIGtleSB0byBhY3RpdmF0ZSwgdGhlbiB1c2UgbGVmdCBhcnJvdyBrZXkgdG8gZXhwYW5kIHRoZSBmbHlvdXQgd2luZG93IGFuZCByaWdodCBhcnJvdyBrZXkgdG8gc2hyaW5rIHRoZSBmbHlvdXQgd2luZG93LiBQcmVzcyB0aGUgZW50ZXIsIHNwYWNlLCBvciB0YWIga2V5IHRvIGRlYWN0aXZhdGUuJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNsYXNzIFNreUZseW91dFJlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5Rmx5b3V0UmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGbHlvdXRSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
|