nxt-pick-datetime 14.0.0 → 16.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/README.md +34 -202
- package/assets/picker.scss +131 -126
- package/esm2020/lib/class/date-time-adapter.class.mjs +5 -20
- package/esm2020/lib/class/date-time-format.class.mjs +3 -3
- package/esm2020/lib/class/date-time.class.mjs +37 -103
- package/esm2020/lib/class/dialog-config.class.mjs +14 -23
- package/esm2020/lib/class/dialog-ref.class.mjs +11 -13
- package/esm2020/lib/date-time/calendar/calendar.component.mjs +97 -96
- package/esm2020/lib/date-time/calendar-body/calendar-body.component.mjs +40 -34
- package/esm2020/lib/date-time/calendar-month-view/calendar-month-view.component.mjs +92 -101
- package/esm2020/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.mjs +85 -86
- package/esm2020/lib/date-time/calendar-year-view/calendar-year-view.component.mjs +80 -87
- package/esm2020/lib/date-time/date-time-inline/date-time-inline.component.mjs +95 -84
- package/esm2020/lib/date-time/date-time-picker/date-time-picker.component.mjs +221 -209
- package/esm2020/lib/date-time/date-time-picker-container/date-time-picker-container.animations.mjs +3 -2
- package/esm2020/lib/date-time/date-time-picker-container/date-time-picker-container.component.mjs +125 -126
- package/esm2020/lib/date-time/date-time-picker-input.directive.mjs +215 -221
- package/esm2020/lib/date-time/date-time-picker-intl.service.mjs +13 -13
- package/esm2020/lib/date-time/date-time-picker-trigger.directive.mjs +21 -19
- package/esm2020/lib/date-time/date-time.module.mjs +79 -68
- package/esm2020/lib/date-time/number-fixed-len.pipe.mjs +10 -13
- package/esm2020/lib/date-time/timer/timer.component.mjs +70 -63
- package/esm2020/lib/date-time/timer-box/timer-box.component.mjs +24 -17
- package/esm2020/lib/dialog/dialog-container/dialog-container.component.mjs +55 -50
- package/esm2020/lib/dialog/dialog.module.mjs +27 -16
- package/esm2020/lib/dialog/dialog.service.mjs +66 -54
- package/esm2020/lib/utils/object.mjs +5 -3
- package/esm2020/moment-adapter/date-time-adapter.class.mjs +26 -21
- package/esm2020/moment-adapter/date-time-format.class.mjs +5 -2
- package/esm2020/moment-adapter/moment-adapter.module.mjs +19 -23
- package/esm2020/moment-adapter/nxt-pick-datetime-moment-adapter.mjs +1 -1
- package/esm2020/moment-adapter/public-api.mjs +3 -2
- package/esm2020/native-adapter/date-time-adapter.class.mjs +41 -19
- package/esm2020/native-adapter/date-time-format.class.mjs +5 -2
- package/esm2020/native-adapter/native-adapter.module.mjs +23 -21
- package/esm2020/native-adapter/nxt-pick-datetime-native-adapter.mjs +1 -1
- package/esm2020/native-adapter/public-api.mjs +2 -2
- package/esm2020/nxt-pick-datetime.mjs +1 -1
- package/esm2020/public-api.mjs +14 -14
- package/fesm2015/nxt-pick-datetime-moment-adapter.mjs +44 -40
- package/fesm2015/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
- package/fesm2015/nxt-pick-datetime-native-adapter.mjs +65 -38
- package/fesm2015/nxt-pick-datetime-native-adapter.mjs.map +1 -1
- package/fesm2015/nxt-pick-datetime.mjs +1492 -1447
- package/fesm2015/nxt-pick-datetime.mjs.map +1 -1
- package/fesm2020/nxt-pick-datetime-moment-adapter.mjs +44 -40
- package/fesm2020/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
- package/fesm2020/nxt-pick-datetime-native-adapter.mjs +65 -38
- package/fesm2020/nxt-pick-datetime-native-adapter.mjs.map +1 -1
- package/fesm2020/nxt-pick-datetime.mjs +1422 -1437
- package/fesm2020/nxt-pick-datetime.mjs.map +1 -1
- package/lib/class/date-time-adapter.class.d.ts +31 -41
- package/lib/class/date-time-format.class.d.ts +3 -3
- package/lib/class/date-time.class.d.ts +39 -51
- package/lib/class/dialog-config.class.d.ts +27 -27
- package/lib/class/dialog-ref.class.d.ts +21 -22
- package/lib/date-time/calendar/calendar.component.d.ts +66 -60
- package/lib/date-time/calendar-body/calendar-body.component.d.ts +22 -20
- package/lib/date-time/calendar-month-view/calendar-month-view.component.d.ts +57 -56
- package/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +58 -52
- package/lib/date-time/calendar-year-view/calendar-year-view.component.d.ts +51 -48
- package/lib/date-time/date-time-inline/date-time-inline.component.d.ts +69 -53
- package/lib/date-time/date-time-picker/date-time-picker.component.d.ts +106 -91
- package/lib/date-time/date-time-picker-container/date-time-picker-container.animations.d.ts +2 -1
- package/lib/date-time/date-time-picker-container/date-time-picker-container.component.d.ts +54 -47
- package/lib/date-time/date-time-picker-input.directive.d.ts +93 -78
- package/lib/date-time/date-time-picker-intl.service.d.ts +11 -11
- package/lib/date-time/date-time-picker-trigger.directive.d.ts +10 -9
- package/lib/date-time/date-time.module.d.ts +4 -4
- package/lib/date-time/number-fixed-len.pipe.d.ts +2 -1
- package/lib/date-time/timer/timer.component.d.ts +32 -30
- package/lib/date-time/timer-box/timer-box.component.d.ts +13 -11
- package/lib/dialog/dialog-container/dialog-container.component.d.ts +40 -27
- package/lib/dialog/dialog.module.d.ts +5 -4
- package/lib/dialog/dialog.service.d.ts +42 -35
- package/lib/utils/object.d.ts +2 -0
- package/moment-adapter/date-time-adapter.class.d.ts +13 -13
- package/moment-adapter/date-time-format.class.d.ts +5 -2
- package/moment-adapter/moment-adapter.module.d.ts +0 -5
- package/moment-adapter/public-api.d.ts +2 -1
- package/native-adapter/date-time-adapter.class.d.ts +7 -7
- package/native-adapter/date-time-format.class.d.ts +5 -2
- package/native-adapter/native-adapter.module.d.ts +0 -5
- package/native-adapter/public-api.d.ts +1 -1
- package/package.json +13 -11
- package/public-api.d.ts +14 -13
|
@@ -5,25 +5,57 @@ import { Component, EventEmitter, HostBinding, HostListener, Inject, Optional, V
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/cdk/a11y";
|
|
7
7
|
import * as i2 from "@angular/cdk/portal";
|
|
8
|
+
/** @internal */
|
|
8
9
|
const zoomFadeIn = {
|
|
9
10
|
opacity: 0,
|
|
10
11
|
transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})'
|
|
11
12
|
};
|
|
13
|
+
/** @internal */
|
|
12
14
|
const zoomFadeInFrom = {
|
|
13
15
|
opacity: 0,
|
|
14
16
|
transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})',
|
|
15
17
|
transformOrigin: '{{ ox }} {{ oy }}'
|
|
16
18
|
};
|
|
17
|
-
|
|
19
|
+
/** @internal */
|
|
20
|
+
export class DialogContainerComponent extends BasePortalOutlet {
|
|
21
|
+
get config() {
|
|
22
|
+
return this._config;
|
|
23
|
+
}
|
|
24
|
+
/** @internal */
|
|
25
|
+
get dialogContainerClass() {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
/** @internal */
|
|
29
|
+
get dialogContainerTabIndex() {
|
|
30
|
+
return -1;
|
|
31
|
+
}
|
|
32
|
+
/** @internal */
|
|
33
|
+
get dialogContainerId() {
|
|
34
|
+
return this._config?.id;
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
get dialogContainerRole() {
|
|
38
|
+
return this._config?.role;
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
get dialogContainerAriaLabelledby() {
|
|
42
|
+
return this.ariaLabelledBy;
|
|
43
|
+
}
|
|
44
|
+
/** @internal */
|
|
45
|
+
get dialogContainerAriaDescribedby() {
|
|
46
|
+
return this._config?.ariaDescribedBy;
|
|
47
|
+
}
|
|
48
|
+
/** @internal */
|
|
49
|
+
get dialogContainerAnimation() {
|
|
50
|
+
return { value: this.state, params: this.params };
|
|
51
|
+
}
|
|
18
52
|
constructor(changeDetector, elementRef, focusTrapFactory, document) {
|
|
19
53
|
super();
|
|
20
54
|
this.changeDetector = changeDetector;
|
|
21
55
|
this.elementRef = elementRef;
|
|
22
56
|
this.focusTrapFactory = focusTrapFactory;
|
|
23
57
|
this.document = document;
|
|
24
|
-
/**
|
|
25
|
-
this.ariaLabelledBy = null;
|
|
26
|
-
/** Emits when an animation state changes. */
|
|
58
|
+
/** Emits when an animation state changes */
|
|
27
59
|
this.animationStateChanged = new EventEmitter();
|
|
28
60
|
this.isAnimating = false;
|
|
29
61
|
this.state = 'enter';
|
|
@@ -35,40 +67,13 @@ export class OwlDialogContainerComponent extends BasePortalOutlet {
|
|
|
35
67
|
oy: '50%',
|
|
36
68
|
scale: 0
|
|
37
69
|
};
|
|
38
|
-
// A variable to hold the focused element before the dialog was open.
|
|
39
|
-
// This would help us to refocus back to element when the dialog was closed.
|
|
40
|
-
this.elementFocusedBeforeDialogWasOpened = null;
|
|
41
|
-
}
|
|
42
|
-
get config() {
|
|
43
|
-
return this._config;
|
|
44
|
-
}
|
|
45
|
-
get owlDialogContainerClass() {
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
get owlDialogContainerTabIndex() {
|
|
49
|
-
return -1;
|
|
50
|
-
}
|
|
51
|
-
get owlDialogContainerId() {
|
|
52
|
-
return this._config.id;
|
|
53
|
-
}
|
|
54
|
-
get owlDialogContainerRole() {
|
|
55
|
-
return this._config.role || null;
|
|
56
|
-
}
|
|
57
|
-
get owlDialogContainerAriaLabelledby() {
|
|
58
|
-
return this.ariaLabelledBy;
|
|
59
|
-
}
|
|
60
|
-
get owlDialogContainerAriaDescribedby() {
|
|
61
|
-
return this._config.ariaDescribedBy || null;
|
|
62
|
-
}
|
|
63
|
-
get owlDialogContainerAnimation() {
|
|
64
|
-
return { value: this.state, params: this.params };
|
|
65
70
|
}
|
|
66
71
|
ngOnInit() { }
|
|
67
72
|
/**
|
|
68
73
|
* Attach a ComponentPortal as content to this dialog container.
|
|
69
74
|
*/
|
|
70
75
|
attachComponentPortal(portal) {
|
|
71
|
-
if (this.portalOutlet
|
|
76
|
+
if (this.portalOutlet?.hasAttached()) {
|
|
72
77
|
throw Error('Attempting to attach dialog content after content is already attached');
|
|
73
78
|
}
|
|
74
79
|
this.savePreviouslyFocusedElement();
|
|
@@ -131,30 +136,30 @@ export class OwlDialogContainerComponent extends BasePortalOutlet {
|
|
|
131
136
|
if (this.document) {
|
|
132
137
|
this.elementFocusedBeforeDialogWasOpened = this.document
|
|
133
138
|
.activeElement;
|
|
134
|
-
Promise.resolve().then(() => this.elementRef.nativeElement.focus());
|
|
139
|
+
Promise.resolve().then(() => this.elementRef.nativeElement.focus()).catch(() => { });
|
|
135
140
|
}
|
|
136
141
|
}
|
|
137
142
|
trapFocus() {
|
|
138
143
|
if (!this.focusTrap) {
|
|
139
144
|
this.focusTrap = this.focusTrapFactory.create(this.elementRef.nativeElement);
|
|
140
145
|
}
|
|
141
|
-
if (this._config
|
|
142
|
-
this.focusTrap
|
|
146
|
+
if (this._config?.autoFocus) {
|
|
147
|
+
this.focusTrap?.focusInitialElementWhenReady().catch(() => { });
|
|
143
148
|
}
|
|
144
149
|
}
|
|
145
150
|
restoreFocus() {
|
|
146
151
|
const toFocus = this.elementFocusedBeforeDialogWasOpened;
|
|
147
|
-
// We need the extra check, because IE can set the `activeElement` to null in some cases.
|
|
148
152
|
if (toFocus && typeof toFocus.focus === 'function') {
|
|
149
153
|
toFocus.focus();
|
|
150
154
|
}
|
|
151
155
|
if (this.focusTrap) {
|
|
152
156
|
this.focusTrap.destroy();
|
|
157
|
+
this.focusTrap = undefined;
|
|
153
158
|
}
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
DialogContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DialogContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
+
DialogContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: DialogContainerComponent, selector: "nxt-dialog-container", host: { listeners: { "@slideModal.start": "onAnimationStart($event)", "@slideModal.done": "onAnimationDone($event)" }, properties: { "class.nxt-dialog-container": "this.dialogContainerClass", "attr.tabindex": "this.dialogContainerTabIndex", "attr.id": "this.dialogContainerId", "attr.role": "this.dialogContainerRole", "attr.aria-labelledby": "this.dialogContainerAriaLabelledby", "attr.aria-describedby": "this.dialogContainerAriaDescribedby", "@slideModal": "this.dialogContainerAnimation" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
|
|
158
163
|
trigger('slideModal', [
|
|
159
164
|
transition('void => enter', [
|
|
160
165
|
style(zoomFadeInFrom),
|
|
@@ -178,9 +183,9 @@ OwlDialogContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
178
183
|
transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
|
|
179
184
|
])
|
|
180
185
|
] });
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DialogContainerComponent, decorators: [{
|
|
182
187
|
type: Component,
|
|
183
|
-
args: [{ selector: '
|
|
188
|
+
args: [{ selector: 'nxt-dialog-container', animations: [
|
|
184
189
|
trigger('slideModal', [
|
|
185
190
|
transition('void => enter', [
|
|
186
191
|
style(zoomFadeInFrom),
|
|
@@ -204,7 +209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
204
209
|
transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
|
|
205
210
|
])
|
|
206
211
|
], template: "<ng-template cdkPortalOutlet></ng-template>\n" }]
|
|
207
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type:
|
|
212
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: Document, decorators: [{
|
|
208
213
|
type: Optional
|
|
209
214
|
}, {
|
|
210
215
|
type: Inject,
|
|
@@ -212,25 +217,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
212
217
|
}] }]; }, propDecorators: { portalOutlet: [{
|
|
213
218
|
type: ViewChild,
|
|
214
219
|
args: [CdkPortalOutlet, { static: true }]
|
|
215
|
-
}],
|
|
220
|
+
}], dialogContainerClass: [{
|
|
216
221
|
type: HostBinding,
|
|
217
|
-
args: ['class.
|
|
218
|
-
}],
|
|
222
|
+
args: ['class.nxt-dialog-container']
|
|
223
|
+
}], dialogContainerTabIndex: [{
|
|
219
224
|
type: HostBinding,
|
|
220
225
|
args: ['attr.tabindex']
|
|
221
|
-
}],
|
|
226
|
+
}], dialogContainerId: [{
|
|
222
227
|
type: HostBinding,
|
|
223
228
|
args: ['attr.id']
|
|
224
|
-
}],
|
|
229
|
+
}], dialogContainerRole: [{
|
|
225
230
|
type: HostBinding,
|
|
226
231
|
args: ['attr.role']
|
|
227
|
-
}],
|
|
232
|
+
}], dialogContainerAriaLabelledby: [{
|
|
228
233
|
type: HostBinding,
|
|
229
234
|
args: ['attr.aria-labelledby']
|
|
230
|
-
}],
|
|
235
|
+
}], dialogContainerAriaDescribedby: [{
|
|
231
236
|
type: HostBinding,
|
|
232
237
|
args: ['attr.aria-describedby']
|
|
233
|
-
}],
|
|
238
|
+
}], dialogContainerAnimation: [{
|
|
234
239
|
type: HostBinding,
|
|
235
240
|
args: ['@slideModal']
|
|
236
241
|
}], onAnimationStart: [{
|
|
@@ -240,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
240
245
|
type: HostListener,
|
|
241
246
|
args: ['@slideModal.done', ['$event']]
|
|
242
247
|
}] } });
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtcGljay1kYXRldGltZS9zcmMvbGliL2RpYWxvZy9kaWFsb2ctY29udGFpbmVyL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LXBpY2stZGF0ZXRpbWUvc3JjL2xpYi9kaWFsb2cvZGlhbG9nLWNvbnRhaW5lci9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFrQixTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFtQyxNQUFNLHFCQUFxQixDQUFBO0FBQ3hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQXFCLFNBQVMsRUFBNkMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7QUFHckwsTUFBTSxVQUFVLEdBQUc7SUFDZixPQUFPLEVBQUUsQ0FBQztJQUNWLFNBQVMsRUFBRSwwREFBMEQ7Q0FDeEUsQ0FBQTtBQUNELE1BQU0sY0FBYyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLDBEQUEwRDtJQUNyRSxlQUFlLEVBQUUsbUJBQW1CO0NBQ3ZDLENBQUE7QUF5Q0QsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQXVFN0QsWUFDWSxjQUFpQyxFQUNqQyxVQUFzQixFQUN0QixnQkFBOEMsRUFHOUMsUUFBYTtRQUVyQixLQUFLLEVBQUUsQ0FB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eEMsdUJBQXVCO3NCQUQxQixXQUFXO3VCQUFDLDRCQUE0QjtnQkFNckMsMEJBQTBCO3NCQUQ3QixXQUFXO3VCQUFDLGVBQWU7Z0JBTXhCLG9CQUFvQjtzQkFEdkIsV0FBVzt1QkFBQyxTQUFTO2dCQU1sQixzQkFBc0I7c0JBRHpCLFdBQVc7dUJBQUMsV0FBVztnQkFNcEIsZ0NBQWdDO3NCQURuQyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFNL0IsaUNBQWlDO3NCQURwQyxXQUFXO3VCQUFDLHVCQUF1QjtnQkFNaEMsMkJBQTJCO3NCQUQ5QixXQUFXO3VCQUFDLGFBQWE7Z0JBaURuQixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT3RDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBhbmltYXRlQ2hpbGQsIEFuaW1hdGlvbkV2ZW50LCBrZXlmcmFtZXMsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksIEZvY3VzVHJhcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgQmFzZVBvcnRhbE91dGxldCwgQ2RrUG9ydGFsT3V0bGV0LCBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT3dsRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3MvZGlhbG9nLWNvbmZpZy5jbGFzcydcblxuY29uc3Qgem9vbUZhZGVJbiA9IHtcbiAgICBvcGFjaXR5OiAwLFxuICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3sgeCB9fSkgdHJhbnNsYXRlWSh7eyB5IH19KSBzY2FsZSh7e3NjYWxlfX0pJ1xufVxuY29uc3Qgem9vbUZhZGVJbkZyb20gPSB7XG4gICAgb3BhY2l0eTogMCxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7IHggfX0pIHRyYW5zbGF0ZVkoe3sgeSB9fSkgc2NhbGUoe3tzY2FsZX19KScsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAne3sgb3ggfX0ge3sgb3kgfX0nXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb3dsLWRpYWxvZy1jb250YWluZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3NsaWRlTW9kYWwnLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICd2b2lkID0+IGVudGVyJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHpvb21GYWRlSW5Gcm9tKSxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJywgc3R5bGUoJyonKSksXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAnMTUwbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJywgb2Zmc2V0OiAwIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMS4wNSknLCBvZmZzZXQ6IDAuMyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKC45NSknLCBvZmZzZXQ6IDAuOCB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJywgb2Zmc2V0OiAxLjAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVDaGlsZCgpXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogJzBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiAnMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG94OiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG95OiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiAxXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAnZW50ZXIgPT4gZXhpdCcsXG4gICAgICAgICAgICAgICAgW2FuaW1hdGVDaGlsZCgpLCBhbmltYXRlKDIwMCwgc3R5bGUoem9vbUZhZGVJbikpXSxcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyB4OiAnMHB4JywgeTogJzBweCcsIG94OiAnNTAlJywgb3k6ICc1MCUnIH0gfVxuICAgICAgICAgICAgKVxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldFxuICAgIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldFxuXG4gICAgLyoqIFRoZSBjbGFzcyB0aGF0IHRyYXBzIGFuZCBtYW5hZ2VzIGZvY3VzIHdpdGhpbiB0aGUgZGlhbG9nLiAqL1xuICAgIHByaXZhdGUgZm9jdXNUcmFwOiBGb2N1c1RyYXBcblxuICAgIC8qKiBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHRoZSBkaWFsb2cncyBsYWJlbC4gKi9cbiAgICBwdWJsaWMgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbiBhbmltYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBwdWJsaWMgYW5pbWF0aW9uU3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKVxuXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2VcblxuICAgIHByaXZhdGUgX2NvbmZpZzogT3dsRGlhbG9nQ29uZmlnXG4gICAgZ2V0IGNvbmZpZygpOiBPd2xEaWFsb2dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0ZTogJ3ZvaWQnIHwgJ2VudGVyJyB8ICdleGl0JyA9ICdlbnRlcidcblxuICAgIC8vIGZvciBhbmltYXRpb24gcHVycG9zZVxuICAgIHByaXZhdGUgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIHg6ICcwcHgnLFxuICAgICAgICB5OiAnMHB4JyxcbiAgICAgICAgb3g6ICc1MCUnLFxuICAgICAgICBveTogJzUwJScsXG4gICAgICAgIHNjYWxlOiAwXG4gICAgfVxuXG4gICAgLy8gQSB2YXJpYWJsZSB0byBob2xkIHRoZSBmb2N1c2VkIGVsZW1lbnQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW4uXG4gICAgLy8gVGhpcyB3b3VsZCBoZWxwIHVzIHRvIHJlZm9jdXMgYmFjayB0byBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyB3YXMgY2xvc2VkLlxuICAgIHByaXZhdGUgZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mub3dsLWRpYWxvZy1jb250YWluZXInKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJUYWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmlkXG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJSb2xlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcucm9sZSB8fCBudWxsXG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpXG4gICAgZ2V0IG93bERpYWxvZ0NvbnRhaW5lckFyaWFMYWJlbGxlZGJ5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbGxlZEJ5XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJBcmlhRGVzY3JpYmVkYnkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbFxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnQHNsaWRlTW9kYWwnKVxuICAgIGdldCBvd2xEaWFsb2dDb250YWluZXJBbmltYXRpb24oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHRoaXMuc3RhdGUsIHBhcmFtczogdGhpcy5wYXJhbXMgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzVHJhcEZhY3Rvcnk6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcigpXG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2ggYSBDb21wb25lbnRQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIGRpYWxvZyBjb250YWluZXIuXG4gICAgICovXG4gICAgcHVibGljIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihcbiAgICAgICAgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD5cbiAgICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICBpZiAodGhpcy5wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ0F0dGVtcHRpbmcgdG8gYXR0YWNoIGRpYWxvZyBjb250ZW50IGFmdGVyIGNvbnRlbnQgaXMgYWxyZWFkeSBhdHRhY2hlZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpXG4gICAgICAgIHJldHVybiB0aGlzLnBvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKVxuICAgIH1cblxuICAgIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihcbiAgICAgICAgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8Qz5cbiAgICApOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJylcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q29uZmlnKGNvbmZpZzogT3dsRGlhbG9nQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZ1xuXG4gICAgICAgIGlmIChjb25maWcuZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlWm9vbU9yaWdpbihjb25maWcuZXZlbnQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdAc2xpZGVNb2RhbC5zdGFydCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQW5pbWF0aW9uU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSB0cnVlXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpXG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignQHNsaWRlTW9kYWwuZG9uZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdlbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMudHJhcEZvY3VzKClcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpXG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSBmYWxzZVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGFydEV4aXRBbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnZXhpdCdcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSBvcmlnaW4gdXNlZCBpbiB0aGUgYHpvb21GYWRlSW5Gcm9tKClgXG4gICAgICogZm9yIGFuaW1hdGlvbiBwdXJwb3NlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVab29tT3JpZ2luKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQuY2xpZW50WFxuICAgICAgICBjb25zdCBjbGllbnRZID0gZXZlbnQuY2xpZW50WVxuXG4gICAgICAgIGNvbnN0IHdoID0gd2luZG93LmlubmVyV2lkdGggLyAyXG4gICAgICAgIGNvbnN0IGhoID0gd2luZG93LmlubmVySGVpZ2h0IC8gMlxuICAgICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHdoXG4gICAgICAgIGNvbnN0IHkgPSBjbGllbnRZIC0gaGhcbiAgICAgICAgY29uc3Qgb3ggPSBjbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGhcbiAgICAgICAgY29uc3Qgb3kgPSBjbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0XG5cbiAgICAgICAgdGhpcy5wYXJhbXMueCA9IGAke3h9cHhgXG4gICAgICAgIHRoaXMucGFyYW1zLnkgPSBgJHt5fXB4YFxuICAgICAgICB0aGlzLnBhcmFtcy5veCA9IGAke294ICogMTAwfSVgXG4gICAgICAgIHRoaXMucGFyYW1zLm95ID0gYCR7b3kgKiAxMDB9JWBcbiAgICAgICAgdGhpcy5wYXJhbXMuc2NhbGUgPSAwXG5cbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZSB0aGUgZm9jdXNlZCBlbGVtZW50IGJlZm9yZSBkaWFsb2cgd2FzIG9wZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkID0gdGhpcy5kb2N1bWVudFxuICAgICAgICAgICAgICAgIC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdHJhcEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcCA9IHRoaXMuZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZFxuXG4gICAgICAgIC8vIFdlIG5lZWQgdGhlIGV4dHJhIGNoZWNrLCBiZWNhdXNlIElFIGNhbiBzZXQgdGhlIGBhY3RpdmVFbGVtZW50YCB0byBudWxsIGluIHNvbWUgY2FzZXMuXG4gICAgICAgIGlmICh0b0ZvY3VzICYmIHR5cGVvZiB0b0ZvY3VzLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZvY3VzLmZvY3VzKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVzdHJveSgpXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1jb250YWluZXIvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGlhbG9nL2RpYWxvZy1jb250YWluZXIvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBa0IsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFbEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBbUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFxQixTQUFTLEVBQTZDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7O0FBTXJMLGdCQUFnQjtBQUNoQixNQUFNLFVBQVUsR0FBRztJQUNmLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLDBEQUEwRDtDQUN4RSxDQUFBO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sY0FBYyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLDBEQUEwRDtJQUNyRSxlQUFlLEVBQUUsbUJBQW1CO0NBQ3ZDLENBQUE7QUFFRCxnQkFBZ0I7QUF3Q2hCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFnQjFELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8s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TDs7MEJBbUZJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsUUFBUTs0Q0FoRnBCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW9DeEMsb0JBQW9CO3NCQUR2QixXQUFXO3VCQUFDLDRCQUE0QjtnQkFPckMsdUJBQXVCO3NCQUQxQixXQUFXO3VCQUFDLGVBQWU7Z0JBT3hCLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxTQUFTO2dCQU9sQixtQkFBbUI7c0JBRHRCLFdBQVc7dUJBQUMsV0FBVztnQkFPcEIsNkJBQTZCO3NCQURoQyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFPL0IsOEJBQThCO3NCQURqQyxXQUFXO3VCQUFDLHVCQUF1QjtnQkFPaEMsd0JBQXdCO3NCQUQzQixXQUFXO3VCQUFDLGFBQWE7Z0JBaUQxQixnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPN0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBBbmltYXRpb25FdmVudCwga2V5ZnJhbWVzLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBDb25maWd1cmFibGVGb2N1c1RyYXAsIENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IEJhc2VQb3J0YWxPdXRsZXQsIENka1BvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzL2RpYWxvZy1jb25maWcuY2xhc3MnXG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB0eXBlIERpYWxvZ0NvbnRhaW5lclN0YXRlID0gJ3ZvaWQnIHwgJ2VudGVyJyB8ICdleGl0J1xuXG4vKiogQGludGVybmFsICovXG5jb25zdCB6b29tRmFkZUluID0ge1xuICAgIG9wYWNpdHk6IDAsXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7eyB4IH19KSB0cmFuc2xhdGVZKHt7IHkgfX0pIHNjYWxlKHt7c2NhbGV9fSknXG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmNvbnN0IHpvb21GYWRlSW5Gcm9tID0ge1xuICAgIG9wYWNpdHk6IDAsXG4gICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7eyB4IH19KSB0cmFuc2xhdGVZKHt7IHkgfX0pIHNjYWxlKHt7c2NhbGV9fSknLFxuICAgIHRyYW5zZm9ybU9yaWdpbjogJ3t7IG94IH19IHt7IG95IH19J1xufVxuXG4vKiogQGludGVybmFsICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ254dC1kaWFsb2ctY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdzbGlkZU1vZGFsJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAndm9pZCA9PiBlbnRlcicsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBzdHlsZSh6b29tRmFkZUluRnJvbSksXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScsIHN0eWxlKCcqJykpLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJzE1MG1zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgxKScsIG9mZnNldDogMCB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEuMDUpJywgb2Zmc2V0OiAwLjMgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSguOTUpJywgb2Zmc2V0OiAwLjggfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgxKScsIG9mZnNldDogMS4wIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlQ2hpbGQoKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6ICcwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogJzBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBveDogJzUwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBveTogJzUwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgJ2VudGVyID0+IGV4aXQnLFxuICAgICAgICAgICAgICAgIFthbmltYXRlQ2hpbGQoKSwgYW5pbWF0ZSgyMDAsIHN0eWxlKHpvb21GYWRlSW4pKV0sXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgeDogJzBweCcsIHk6ICcwcHgnLCBveDogJzUwJScsIG95OiAnNTAlJyB9IH1cbiAgICAgICAgICAgIClcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEJhc2VQb3J0YWxPdXRsZXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHBvcnRhbE91dGxldD86IENka1BvcnRhbE91dGxldFxuXG4gICAgLyoqIFRoZSBjbGFzcyB0aGF0IHRyYXBzIGFuZCBtYW5hZ2VzIGZvY3VzIHdpdGhpbiB0aGUgZGlhbG9nICovXG4gICAgcHJpdmF0ZSBmb2N1c1RyYXA/OiBDb25maWd1cmFibGVGb2N1c1RyYXBcblxuICAgIC8qKiBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHRoZSBkaWFsb2cncyBsYWJlbCAqL1xuICAgIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nXG5cbiAgICAvKiogRW1pdHMgd2hlbiBhbiBhbmltYXRpb24gc3RhdGUgY2hhbmdlcyAqL1xuICAgIHJlYWRvbmx5IGFuaW1hdGlvblN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KClcblxuICAgIGlzQW5pbWF0aW5nID0gZmFsc2VcblxuICAgIHByaXZhdGUgX2NvbmZpZz86IERpYWxvZ0NvbmZpZ1xuICAgIGdldCBjb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRlOiBEaWFsb2dDb250YWluZXJTdGF0ZSA9ICdlbnRlcidcblxuICAgIC8vIGZvciBhbmltYXRpb24gcHVycG9zZVxuICAgIHByaXZhdGUgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIHg6ICcwcHgnLFxuICAgICAgICB5OiAnMHB4JyxcbiAgICAgICAgb3g6ICc1MCUnLFxuICAgICAgICBveTogJzUwJScsXG4gICAgICAgIHNjYWxlOiAwXG4gICAgfVxuXG4gICAgLy8gQSB2YXJpYWJsZSB0byBob2xkIHRoZSBmb2N1c2VkIGVsZW1lbnQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW4uXG4gICAgLy8gVGhpcyB3b3VsZCBoZWxwIHVzIHRvIHJlZm9jdXMgYmFjayB0byBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyB3YXMgY2xvc2VkLlxuICAgIHByaXZhdGUgZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ/OiBIVE1MRWxlbWVudFxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mubnh0LWRpYWxvZy1jb250YWluZXInKVxuICAgIGdldCBkaWFsb2dDb250YWluZXJDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgZGlhbG9nQ29udGFpbmVyVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgZ2V0IGRpYWxvZ0NvbnRhaW5lcklkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5pZFxuICAgIH1cblxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgZ2V0IGRpYWxvZ0NvbnRhaW5lclJvbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWc/LnJvbGVcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpXG4gICAgZ2V0IGRpYWxvZ0NvbnRhaW5lckFyaWFMYWJlbGxlZGJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmlhTGFiZWxsZWRCeVxuICAgIH1cblxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gICAgZ2V0IGRpYWxvZ0NvbnRhaW5lckFyaWFEZXNjcmliZWRieSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uYXJpYURlc2NyaWJlZEJ5XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnQHNsaWRlTW9kYWwnKVxuICAgIGdldCBkaWFsb2dDb250YWluZXJBbmltYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLnN0YXRlLCBwYXJhbXM6IHRoaXMucGFyYW1zIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNUcmFwRmFjdG9yeTogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChET0NVTUVOVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKClcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQXR0YWNoIGEgQ29tcG9uZW50UG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBkaWFsb2cgY29udGFpbmVyLlxuICAgICAqL1xuICAgIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihcbiAgICAgICAgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD5cbiAgICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICBpZiAodGhpcy5wb3J0YWxPdXRsZXQ/Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICdBdHRlbXB0aW5nIHRvIGF0dGFjaCBkaWFsb2cgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQnXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKVxuICAgICAgICByZXR1cm4gdGhpcy5wb3J0YWxPdXRsZXQhLmF0dGFjaENvbXBvbmVudFBvcnRhbChwb3J0YWwpXG4gICAgfVxuXG4gICAgYXR0YWNoVGVtcGxhdGVQb3J0YWw8Qz4oXG4gICAgICAgIF9wb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+XG4gICAgKTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpXG4gICAgfVxuXG4gICAgc2V0Q29uZmlnKGNvbmZpZzogRGlhbG9nQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZ1xuXG4gICAgICAgIGlmIChjb25maWcuZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlWm9vbU9yaWdpbihjb25maWcuZXZlbnQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdAc2xpZGVNb2RhbC5zdGFydCcsIFsnJGV2ZW50J10pXG4gICAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudClcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdAc2xpZGVNb2RhbC5kb25lJywgWyckZXZlbnQnXSlcbiAgICBvbkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1cygpXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3RvcmVGb2N1cygpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlQ2hhbmdlZC5lbWl0KGV2ZW50KVxuICAgICAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2VcbiAgICB9XG5cbiAgICBzdGFydEV4aXRBbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnZXhpdCdcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSBvcmlnaW4gdXNlZCBpbiB0aGUgYHpvb21GYWRlSW5Gcm9tKClgXG4gICAgICogZm9yIGFuaW1hdGlvbiBwdXJwb3NlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVab29tT3JpZ2luKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQuY2xpZW50WFxuICAgICAgICBjb25zdCBjbGllbnRZID0gZXZlbnQuY2xpZW50WVxuXG4gICAgICAgIGNvbnN0IHdoID0gd2luZG93LmlubmVyV2lkdGggLyAyXG4gICAgICAgIGNvbnN0IGhoID0gd2luZG93LmlubmVySGVpZ2h0IC8gMlxuICAgICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHdoXG4gICAgICAgIGNvbnN0IHkgPSBjbGllbnRZIC0gaGhcbiAgICAgICAgY29uc3Qgb3ggPSBjbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGhcbiAgICAgICAgY29uc3Qgb3kgPSBjbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0XG5cbiAgICAgICAgdGhpcy5wYXJhbXMueCA9IGAke3h9cHhgXG4gICAgICAgIHRoaXMucGFyYW1zLnkgPSBgJHt5fXB4YFxuICAgICAgICB0aGlzLnBhcmFtcy5veCA9IGAke294ICogMTAwfSVgXG4gICAgICAgIHRoaXMucGFyYW1zLm95ID0gYCR7b3kgKiAxMDB9JWBcbiAgICAgICAgdGhpcy5wYXJhbXMuc2NhbGUgPSAwXG5cbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZSB0aGUgZm9jdXNlZCBlbGVtZW50IGJlZm9yZSBkaWFsb2cgd2FzIG9wZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkID0gdGhpcy5kb2N1bWVudFxuICAgICAgICAgICAgICAgIC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSkuY2F0Y2goKCkgPT4geyB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFwRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZz8uYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcD8uZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpLmNhdGNoKCgpID0+IHsgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZFxuXG4gICAgICAgIGlmICh0b0ZvY3VzICYmIHR5cGVvZiB0b0ZvY3VzLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZvY3VzLmZvY3VzKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVzdHJveSgpXG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -3,29 +3,40 @@ import { OverlayModule } from '@angular/cdk/overlay';
|
|
|
3
3
|
import { PortalModule } from '@angular/cdk/portal';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { NgModule } from '@angular/core';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { DialogContainerComponent } from './dialog-container/dialog-container.component';
|
|
7
|
+
import { DialogService, NXT_DIALOG_SCROLL_STRATEGY_PROVIDER } from './dialog.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
|
|
9
|
+
/** @internal */
|
|
10
|
+
export class DialogModule {
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
DialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
DialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: DialogModule, declarations: [DialogContainerComponent], imports: [CommonModule,
|
|
14
|
+
A11yModule,
|
|
15
|
+
OverlayModule,
|
|
16
|
+
PortalModule] });
|
|
17
|
+
DialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DialogModule, providers: [
|
|
18
|
+
NXT_DIALOG_SCROLL_STRATEGY_PROVIDER,
|
|
19
|
+
DialogService
|
|
20
|
+
], imports: [CommonModule,
|
|
21
|
+
A11yModule,
|
|
22
|
+
OverlayModule,
|
|
23
|
+
PortalModule] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DialogModule, decorators: [{
|
|
18
25
|
type: NgModule,
|
|
19
26
|
args: [{
|
|
20
|
-
imports: [CommonModule, A11yModule, OverlayModule, PortalModule],
|
|
21
|
-
exports: [],
|
|
22
27
|
declarations: [
|
|
23
|
-
|
|
28
|
+
DialogContainerComponent
|
|
29
|
+
],
|
|
30
|
+
imports: [
|
|
31
|
+
CommonModule,
|
|
32
|
+
A11yModule,
|
|
33
|
+
OverlayModule,
|
|
34
|
+
PortalModule
|
|
24
35
|
],
|
|
25
36
|
providers: [
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
NXT_DIALOG_SCROLL_STRATEGY_PROVIDER,
|
|
38
|
+
DialogService
|
|
28
39
|
]
|
|
29
40
|
}]
|
|
30
41
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BpY2stZGF0ZXRpbWUvc3JjL2xpYi9kaWFsb2cvZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7O0FBRXJGLGdCQUFnQjtBQWdCaEIsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkFiakIsd0JBQXdCLGFBR3hCLFlBQVk7UUFDWixVQUFVO1FBQ1YsYUFBYTtRQUNiLFlBQVk7MEdBT1AsWUFBWSxhQUxWO1FBQ1AsbUNBQW1DO1FBQ25DLGFBQWE7S0FDaEIsWUFSRyxZQUFZO1FBQ1osVUFBVTtRQUNWLGFBQWE7UUFDYixZQUFZOzJGQU9QLFlBQVk7a0JBZnhCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixhQUFhO3dCQUNiLFlBQVk7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLG1DQUFtQzt3QkFDbkMsYUFBYTtxQkFDaEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGFpbmVyL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgTlhUX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIgfSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJ1xuXG4vKiogQGludGVybmFsICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBEaWFsb2dDb250YWluZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBQb3J0YWxNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOWFRfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUixcbiAgICAgICAgRGlhbG9nU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nTW9kdWxlIHsgfVxuIl19
|