@mozaic-ds/angular 0.24.0-beta.12 → 0.24.0-beta.13
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/adeo/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/adeo/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/adeo/assets/tokens/bricoman/js/tokens.js +1 -1
- package/adeo/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/adeo/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/adeo/components/card/card.component.d.ts +11 -0
- package/adeo/components/card/card.module.d.ts +8 -0
- package/adeo/components/card/index.d.ts +3 -0
- package/adeo/components/card/model/card.d.ts +1 -0
- package/adeo/components/card/public-api.d.ts +1 -0
- package/adeo/components/dropdown/dropdown.component.d.ts +5 -8
- package/adeo/components/header/header.component.d.ts +6 -4
- package/adeo/components/listbox/listbox.component.d.ts +6 -6
- package/adeo/components/notification/notification-container.component.d.ts +14 -4
- package/adeo/components/notification/notification.d.ts +3 -0
- package/adeo/components/notification/notification.service.d.ts +1 -0
- package/adeo/components/phone-number/phone-number.component.d.ts +4 -12
- package/adeo/components/public-api.d.ts +1 -0
- package/adeo/components/tabs/tab.component.d.ts +4 -2
- package/adeo/components/tabs/tabs.component.d.ts +1 -1
- package/adeo/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/adeo/esm2020/components/card/card.component.mjs +27 -0
- package/adeo/esm2020/components/card/card.module.mjs +18 -0
- package/adeo/esm2020/components/card/index.mjs +4 -0
- package/adeo/esm2020/components/card/model/card.mjs +2 -0
- package/adeo/esm2020/components/card/public-api.mjs +2 -0
- package/adeo/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/adeo/esm2020/components/header/header.component.mjs +12 -12
- package/adeo/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/adeo/esm2020/components/notification/notification-animation.mjs +7 -4
- package/adeo/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/adeo/esm2020/components/notification/notification.mjs +1 -1
- package/adeo/esm2020/components/notification/notification.service.mjs +6 -3
- package/adeo/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/adeo/esm2020/components/public-api.mjs +2 -1
- package/adeo/esm2020/components/tabs/tab.component.mjs +7 -6
- package/adeo/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/adeo/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/package.json +1 -1
- package/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/assets/tokens/bricoman/js/tokens.js +1 -1
- package/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Italic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Italic.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Light.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Light.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-LightItalic.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Regular.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-Regular.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBold.woff2 +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff +0 -0
- package/bricoman/assets/fonts/LeroyMerlinSans-Web-SemiBoldItalic.woff2 +0 -0
- package/bricoman/assets/tokens/bricoman/js/tokens.js +1 -1
- package/bricoman/assets/tokens/bricoman/js/tokensObject.js +15 -15
- package/bricoman/assets/tokens/bricoman/scss/_tokens.scss +3 -3
- package/bricoman/components/card/card.component.d.ts +11 -0
- package/bricoman/components/card/card.module.d.ts +8 -0
- package/bricoman/components/card/index.d.ts +3 -0
- package/bricoman/components/card/model/card.d.ts +1 -0
- package/bricoman/components/card/public-api.d.ts +1 -0
- package/bricoman/components/dropdown/dropdown.component.d.ts +5 -8
- package/bricoman/components/header/header.component.d.ts +6 -4
- package/bricoman/components/listbox/listbox.component.d.ts +6 -6
- package/bricoman/components/notification/notification-container.component.d.ts +14 -4
- package/bricoman/components/notification/notification.d.ts +3 -0
- package/bricoman/components/notification/notification.service.d.ts +1 -0
- package/bricoman/components/phone-number/phone-number.component.d.ts +4 -12
- package/bricoman/components/public-api.d.ts +1 -0
- package/bricoman/components/tabs/tab.component.d.ts +4 -2
- package/bricoman/components/tabs/tabs.component.d.ts +1 -1
- package/bricoman/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/bricoman/esm2020/components/card/card.component.mjs +27 -0
- package/bricoman/esm2020/components/card/card.module.mjs +18 -0
- package/bricoman/esm2020/components/card/index.mjs +4 -0
- package/bricoman/esm2020/components/card/model/card.mjs +2 -0
- package/bricoman/esm2020/components/card/public-api.mjs +2 -0
- package/bricoman/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/bricoman/esm2020/components/header/header.component.mjs +12 -12
- package/bricoman/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/bricoman/esm2020/components/notification/notification-animation.mjs +7 -4
- package/bricoman/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/bricoman/esm2020/components/notification/notification.mjs +1 -1
- package/bricoman/esm2020/components/notification/notification.service.mjs +6 -3
- package/bricoman/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/bricoman/esm2020/components/public-api.mjs +2 -1
- package/bricoman/esm2020/components/tabs/tab.component.mjs +7 -6
- package/bricoman/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/bricoman/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/package.json +1 -1
- package/components/card/card.component.d.ts +11 -0
- package/components/card/card.module.d.ts +8 -0
- package/components/card/index.d.ts +3 -0
- package/components/card/model/card.d.ts +1 -0
- package/components/card/public-api.d.ts +1 -0
- package/components/dropdown/dropdown.component.d.ts +5 -8
- package/components/header/header.component.d.ts +6 -4
- package/components/listbox/listbox.component.d.ts +6 -6
- package/components/notification/notification-container.component.d.ts +14 -4
- package/components/notification/notification.d.ts +3 -0
- package/components/notification/notification.service.d.ts +1 -0
- package/components/phone-number/phone-number.component.d.ts +4 -12
- package/components/public-api.d.ts +1 -0
- package/components/tabs/tab.component.d.ts +4 -2
- package/components/tabs/tabs.component.d.ts +1 -1
- package/esm2020/components/action-bar/action-bar.component.mjs +3 -3
- package/esm2020/components/card/card.component.mjs +27 -0
- package/esm2020/components/card/card.module.mjs +18 -0
- package/esm2020/components/card/index.mjs +4 -0
- package/esm2020/components/card/model/card.mjs +2 -0
- package/esm2020/components/card/public-api.mjs +2 -0
- package/esm2020/components/dropdown/dropdown.component.mjs +16 -46
- package/esm2020/components/header/header.component.mjs +12 -12
- package/esm2020/components/listbox/listbox.component.mjs +22 -28
- package/esm2020/components/notification/notification-animation.mjs +7 -4
- package/esm2020/components/notification/notification-container.component.mjs +63 -13
- package/esm2020/components/notification/notification.mjs +1 -1
- package/esm2020/components/notification/notification.service.mjs +6 -3
- package/esm2020/components/phone-number/phone-number.component.mjs +15 -68
- package/esm2020/components/public-api.mjs +2 -1
- package/esm2020/components/tabs/tab.component.mjs +7 -6
- package/esm2020/components/tabs/tabs.component.mjs +8 -4
- package/fesm2015/mozaic-ds-angular.mjs +188 -176
- package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/fesm2020/mozaic-ds-angular.mjs +180 -171
- package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/adeo/assets/tokens/adeo/android/colors.xml +0 -494
- package/adeo/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/adeo/assets/tokens/bricoman/android/colors.xml +0 -486
- package/adeo/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/adeo/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/adeo/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
- package/assets/tokens/adeo/android/colors.xml +0 -494
- package/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/assets/tokens/bricoman/android/colors.xml +0 -486
- package/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
- package/bricoman/assets/tokens/adeo/android/colors.xml +0 -494
- package/bricoman/assets/tokens/adeo/android/font_dimens.xml +0 -18
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.h +0 -502
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.m +0 -514
- package/bricoman/assets/tokens/adeo/ios/StyleDictionaryColor.swift +0 -497
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.h +0 -69
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.m +0 -70
- package/bricoman/assets/tokens/adeo/ios/StyleDictionarySize.swift +0 -71
- package/bricoman/assets/tokens/bricoman/android/colors.xml +0 -486
- package/bricoman/assets/tokens/bricoman/android/font_dimens.xml +0 -18
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.h +0 -494
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.m +0 -506
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionaryColor.swift +0 -489
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.h +0 -69
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.m +0 -70
- package/bricoman/assets/tokens/bricoman/ios/StyleDictionarySize.swift +0 -71
|
@@ -4,14 +4,6 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "../icon/icon.component";
|
|
6
6
|
export class ListboxComponent {
|
|
7
|
-
set isOpen(value) {
|
|
8
|
-
if (value !== this._isOpen.getValue()) {
|
|
9
|
-
this._isOpen.next(value);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
get isOpen() {
|
|
13
|
-
return this._isOpen.getValue();
|
|
14
|
-
}
|
|
15
7
|
constructor(eRef) {
|
|
16
8
|
this.eRef = eRef;
|
|
17
9
|
this.listboxItems = [];
|
|
@@ -25,6 +17,24 @@ export class ListboxComponent {
|
|
|
25
17
|
this.destroyed = new Subject();
|
|
26
18
|
this._isOpen = new BehaviorSubject(false);
|
|
27
19
|
}
|
|
20
|
+
get isOpen() {
|
|
21
|
+
return this._isOpen.getValue();
|
|
22
|
+
}
|
|
23
|
+
set isOpen(value) {
|
|
24
|
+
if (value !== this._isOpen.getValue()) {
|
|
25
|
+
this._isOpen.next(value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
clickout(event) {
|
|
29
|
+
if (this.contentElementRef?.nativeElement?.firstChild) {
|
|
30
|
+
const listboxHtmlElementContainsClickTarget = this.listboxElementRef?.nativeElement.contains(event.target);
|
|
31
|
+
const contentContainsClickTarget = this.contentElementRef.nativeElement.firstChild?.contains(event.target);
|
|
32
|
+
if ((!listboxHtmlElementContainsClickTarget && !contentContainsClickTarget) ||
|
|
33
|
+
this.disabled) {
|
|
34
|
+
this.closeListbox();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
28
38
|
ngOnInit() {
|
|
29
39
|
this._isOpen
|
|
30
40
|
.pipe(distinctUntilChanged(), filter((isOpen) => isOpen), takeUntil(this.destroyed))
|
|
@@ -37,18 +47,6 @@ export class ListboxComponent {
|
|
|
37
47
|
this.closeListbox();
|
|
38
48
|
});
|
|
39
49
|
}
|
|
40
|
-
clickout(event) {
|
|
41
|
-
if (this.listboxElementRef &&
|
|
42
|
-
this.contentElementRef &&
|
|
43
|
-
this.contentElementRef.nativeElement.firstChild) {
|
|
44
|
-
const listboxHtmlElementContainsClickTarget = this.listboxElementRef && this.listboxElementRef.nativeElement.contains(event.target);
|
|
45
|
-
const contentContainsClickTarget = this.contentElementRef.nativeElement.firstChild.contains(event.target);
|
|
46
|
-
if ((!listboxHtmlElementContainsClickTarget && !contentContainsClickTarget) ||
|
|
47
|
-
this.disabled) {
|
|
48
|
-
this.closeListbox();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
50
|
ngAfterViewInit() {
|
|
53
51
|
fromEvent(window, 'resize')
|
|
54
52
|
.pipe(takeUntil(this.destroyed))
|
|
@@ -78,7 +76,7 @@ export class ListboxComponent {
|
|
|
78
76
|
});
|
|
79
77
|
}
|
|
80
78
|
openListbox() {
|
|
81
|
-
if (this.contentElementRef
|
|
79
|
+
if (this.contentElementRef?.nativeElement?.firstChild) {
|
|
82
80
|
this.isOpen = true;
|
|
83
81
|
this.isOpenChange.emit(this.isOpen);
|
|
84
82
|
const listBox = this.listboxElementRef.nativeElement;
|
|
@@ -190,7 +188,7 @@ export class ListboxComponent {
|
|
|
190
188
|
}
|
|
191
189
|
setClassObjectTile(item) {
|
|
192
190
|
return {
|
|
193
|
-
'is-disabled': item.disabled
|
|
191
|
+
'is-disabled': item.disabled ?? this.disabled,
|
|
194
192
|
};
|
|
195
193
|
}
|
|
196
194
|
getInputName() {
|
|
@@ -209,8 +207,6 @@ export class ListboxComponent {
|
|
|
209
207
|
getItems() {
|
|
210
208
|
const hasNestedArray = this.listboxItems.filter(Array.isArray).length;
|
|
211
209
|
if (hasNestedArray === 0) {
|
|
212
|
-
const listItems = [];
|
|
213
|
-
listItems.push(this.listboxItems);
|
|
214
210
|
return [this.listboxItems];
|
|
215
211
|
}
|
|
216
212
|
return this.listboxItems;
|
|
@@ -221,9 +217,7 @@ export class ListboxComponent {
|
|
|
221
217
|
ngOnDestroy() {
|
|
222
218
|
if (this.listboxElementRef) {
|
|
223
219
|
const mozListbox = this.listboxElementRef.nativeElement;
|
|
224
|
-
|
|
225
|
-
mozListbox.parentNode.removeChild(mozListbox);
|
|
226
|
-
}
|
|
220
|
+
mozListbox?.parentNode?.removeChild(mozListbox);
|
|
227
221
|
}
|
|
228
222
|
this.destroyed.next(null);
|
|
229
223
|
this.destroyed.complete();
|
|
@@ -272,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
272
266
|
type: HostListener,
|
|
273
267
|
args: ['document:click', ['$event']]
|
|
274
268
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saXN0Ym94L2xpc3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUXBHLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCLElBQ0ksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQVFELFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFuQ3BCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsU0FBSSxHQUFVLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQWEsS0FBSyxDQUFDO1FBT3pCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksWUFB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U0FBUztzQkFBekIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVxQyxpQkFBaUI7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDRSxpQkFBaUI7c0JBQTVELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFHdEMsTUFBTTtzQkFEVCxLQUFLO2dCQTBDTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3Rib3hJdGVtLCBUeXBlIH0gZnJvbSAnLi9tb2RlbC9saXN0Ym94LWl0ZW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmcm9tRXZlbnQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otbGlzdGJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0Ym94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdGJveC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdGJveENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0Ym94SXRlbXM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSXRlbXM6IExpc3Rib3hJdGVtW10gfCBMaXN0Ym94SXRlbSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIHR5cGU/OiBUeXBlID0gJ29wdGlvbnMnO1xuICBASW5wdXQoKSBwdWJsaWMgb3ZlcmxheT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgd2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyB3aXRob3V0T3ZlcmZsb3c/OiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbXNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGlzT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdsaXN0Ym94JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGxpc3Rib3hFbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb250ZW50RWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KClcbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5faXNPcGVuLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW4uZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1dWlkID0gTWF0aC5yYW5kb20oKTtcbiAgcHVibGljIG9yaWdpbmFsUGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9pc09wZW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZVJlZjogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pc09wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKGlzT3BlbikgPT4gaXNPcGVuKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbkxpc3Rib3goKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5faXNPcGVuXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgZmlsdGVyKChpc09wZW4pID0+ICFpc09wZW4pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmxpc3Rib3hFbGVtZW50UmVmICYmXG4gICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmICYmXG4gICAgICB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZFxuICAgICkge1xuICAgICAgY29uc3QgbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCA9XG4gICAgICAgIHRoaXMubGlzdGJveEVsZW1lbnRSZWYgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICBjb25zdCBjb250ZW50Q29udGFpbnNDbGlja1RhcmdldCA9IHRoaXMuY29udGVudEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkLmNvbnRhaW5zKFxuICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgICghbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCAmJiAhY29udGVudENvbnRhaW5zQ2xpY2tUYXJnZXQpIHx8XG4gICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXJzKHRoaXMuZVJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIGFkZFNjcm9sbExpc3RlbmVycyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICB0aGlzLmFkZFNjcm9sbExpc3RlbmVycyhlbGVtZW50LnBhcmVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGwoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTGlzdGJveCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50RWxlbWVudFJlZiAmJiB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgICBjb25zdCBsaXN0Qm94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgY29udGVudEVsZW1lbnQgPSB0aGlzLmNvbnRlbnRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICAgIGNvbnN0IGlucHV0UmVjdCA9IGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgbGlzdEJveFJlY3QgPSBsaXN0Qm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgbGlzdEJveC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdEJveEhlaWdodCA9IGxpc3RCb3guZmlyc3RDaGlsZC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGxpc3RCb3hCb3R0b20gPSBpbnB1dFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyBsaXN0Qm94SGVpZ2h0O1xuICAgICAgICBpZiAobGlzdEJveEJvdHRvbSA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgIGxpc3RCb3guc3R5bGUudG9wID0gaW5wdXRSZWN0LnRvcCAtIGxpc3RCb3hIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH0sIDEpO1xuICAgICAgbGlzdEJveC5zdHlsZS50b3AgPSBpbnB1dFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyAncHgnO1xuICAgICAgbGlzdEJveC5zdHlsZS5sZWZ0ID0gaW5wdXRSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArICdweCc7XG4gICAgICBsaXN0Qm94LnN0eWxlLm1heEhlaWdodCA9IHRoaXMubWF4SGVpZ2h0O1xuICAgICAgbGlzdEJveC5zdHlsZS5tYXhXaWR0aCA9IHRoaXMubWF4V2lkdGg7XG4gICAgICBsaXN0Qm94LnN0eWxlLnpJbmRleCA9ICcyMDAwMDAwMDAwJztcbiAgICAgIGlmICh0aGlzLndpdGhvdXRPdmVyZmxvdykge1xuICAgICAgICBpZiAobGlzdEJveFJlY3QucmlnaHQgPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgIGxpc3RCb3guc3R5bGUubGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gbGlzdEJveFJlY3Qud2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qm94UmVjdC5ib3R0b20gPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLnRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGxpc3RCb3hSZWN0LmhlaWdodCArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdvcHRpb25zJykge1xuICAgICAgICBsaXN0Qm94LnN0eWxlLndpZHRoID0gaW5wdXRSZWN0LndpZHRoICsgJ3B4JztcbiAgICAgIH1cbiAgICAgIHRoaXMub3JpZ2luYWxQYXJlbnQgPSBsaXN0Qm94LnBhcmVudEVsZW1lbnQ7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpc3RCb3gpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUxpc3Rib3goKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICBpZiAodGhpcy5vcmlnaW5hbFBhcmVudCAmJiB0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50LmFwcGVuZENoaWxkKHRoaXMubGlzdGJveEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtRXZlbnQobGlzdGJveEl0ZW06IExpc3Rib3hJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5kZXggPSAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pLmZpbmRJbmRleChcbiAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSBsaXN0Ym94SXRlbS52YWx1ZVxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5wdXNoKGxpc3Rib3hJdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gbGlzdGJveEl0ZW07XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhY3Rpb25zJykge1xuICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICB9XG4gICAgdGhpcy5pdGVtc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQobGlzdGJveEl0ZW06IExpc3Rib3hJdGVtKTogYm9vbGVhbiB7XG4gICAgbGV0IGxpc3RCb3hJdGVtRm91bmRlZDtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgbGlzdEJveEl0ZW1Gb3VuZGVkID1cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zICYmXG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkuZmluZChcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IGxpc3Rib3hJdGVtLnZhbHVlXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3RCb3hJdGVtRm91bmRlZCA9XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgJiYgKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbSkudmFsdWUpID09IGxpc3Rib3hJdGVtLnZhbHVlIHx8XG4gICAgICAgIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBsaXN0Qm94SXRlbUZvdW5kZWQgIT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSb2xlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnR5cGUgIT09ICdvcHRpb25zJyA/ICdsaXN0Ym94JyA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZUxpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnb3B0aW9ucycgPyAnbGlzdGJveCcgOiAnZ3JvdXAnO1xuICB9XG5cbiAgcHVibGljIHN0eWxlT2JqZWN0KCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICctLWxpc3Rib3gtbWF4d2lkdGgnOiB0aGlzLm1heFdpZHRoLFxuICAgICAgJy0tbGlzdGJveC13aWR0aCc6IHRoaXMud2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbGFzc09iamVjdCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnbWMtbGlzdGJveC0tb3B0aW9ucyc6IHRoaXMudHlwZSA9PT0gJ29wdGlvbnMnLFxuICAgICAgJ21jLWxpc3Rib3gtLWFjdGlvbnMnOiB0aGlzLnR5cGUgPT09ICdhY3Rpb25zJyxcbiAgICAgICdtYy1saXN0Ym94LS1vdmVybGF5JzogdGhpcy5vdmVybGF5LFxuICAgICAgJ21jLWxpc3Rib3gtLW11bHRpJzogdGhpcy5tdWx0aXBsZSxcbiAgICAgICdpcy1vcGVuJzogdGhpcy5pc09wZW4sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbGFzc09iamVjdElucHV0KCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtYy1jaGVja2JveF9faW5wdXQnOiB0aGlzLm11bHRpcGxlLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5wdXRUeXBlKCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyAnY2hlY2tib3gnIDogJ3JhZGlvJztcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGVtSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBsaXN0Ym94SXRlbS0ke2luZGV4ICsgdGhpcy51dWlkfWA7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3NPYmplY3RUaWxlKGl0ZW06IExpc3Rib3hJdGVtKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2lzLWRpc2FibGVkJzogaXRlbS5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5wdXROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZSA/IGBsaXN0Ym94cmFkaW8tJHt0aGlzLnV1aWR9YCA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRhcmdldC5zY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGFyZ2V0LnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCBvZmZzZXRIZWlnaHQgPSB0YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGlzQXRFbmQgPSBzY3JvbGxUb3AgKyBvZmZzZXRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0O1xuXG4gICAgaWYgKGlzQXRFbmQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRW5kLmVtaXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEl0ZW1zKCk6IExpc3Rib3hJdGVtW11bXSB7XG4gICAgY29uc3QgaGFzTmVzdGVkQXJyYXkgPSB0aGlzLmxpc3Rib3hJdGVtcy5maWx0ZXIoQXJyYXkuaXNBcnJheSkubGVuZ3RoO1xuXG4gICAgaWYgKGhhc05lc3RlZEFycmF5ID09PSAwKSB7XG4gICAgICBjb25zdCBsaXN0SXRlbXMgPSBbXTtcbiAgICAgIGxpc3RJdGVtcy5wdXNoKHRoaXMubGlzdGJveEl0ZW1zKTtcblxuICAgICAgcmV0dXJuIFt0aGlzLmxpc3Rib3hJdGVtc107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBtb3pMaXN0Ym94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKG1vekxpc3Rib3ggJiYgbW96TGlzdGJveC5wYXJlbnROb2RlKSB7XG4gICAgICAgIG1vekxpc3Rib3gucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtb3pMaXN0Ym94KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dChudWxsKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtbGlzdGJveF9fY29udGFpbmVyXCI+XG4gIDxkaXYgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JlZmVyZW5jZV1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2ICNsaXN0Ym94PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnb3B0aW9ucyc7IGVsc2UgYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJjbGFzc09iamVjdCgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZU9iamVjdCgpXCJcbiAgICAgICAgICBbYXR0ci5yb2xlXT1cImdldFJvbGUoKVwiXG4gICAgICAgICAgKHNjcm9sbCk9XCJzY3JvbGxFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm1jLWxpc3Rib3hfX2xpc3RcIiBbYXR0ci5yb2xlXT1cImdldFJvbGVMaXN0KClcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3hfX3RpbGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZXRDbGFzc09iamVjdFRpbGUobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpc3Rib3hJdGVtIG9mIGxpc3Rib3hJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X19pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0uY291bnRyeUNvZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxhZyBmbGFnOnt7IGxpc3Rib3hJdGVtLmNvdW50cnlDb2RlIH19XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIi0tQ291bnRyeUZsYWdJY29uLWhlaWdodDogMXJlbVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3hfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBbaWRdPVwic2V0SXRlbUlkKGkpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZ2V0SW5wdXRUeXBlKClcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldElucHV0TmFtZSgpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjbGFzc09iamVjdElucHV0KClcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJsaXN0Ym94SXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInNldEl0ZW1JZChpKVwiIGNsYXNzPVwibWMtbGlzdGJveF9fbGFiZWxcIj57eyBsaXN0Ym94SXRlbS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2FjdGlvbnM+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAjbGlzdGJveFxuICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19jb250YWluZXJcIlxuICAgICAgICAgIFthdHRyLnJvbGVdPVwiZ2V0Um9sZSgpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFJvbGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0IG9mIGdldEl0ZW1zKCk7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fbGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0Ym94SXRlbSBvZiBsaXN0OyBsZXQgaiA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fdGlsZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRpc2FibGVkJzogbGlzdGJveEl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwibGlzdGJveEl0ZW0gJiYgbGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJsaXN0Ym94SXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJsaXN0Ym94SXRlbS5kYW5nZXIgPyB7IGZpbGw6ICcjQzYxMTEyJyB9IDogeyBmaWxsOiAnIzcxNzA2QicgfVwiXG4gICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2l0ZW1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsaXN0Ym94SXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtZGFuZ2VyJzogbGlzdGJveEl0ZW0uZGFuZ2VyLCAnaXMtZGlzYWJsZWQnOiBsaXN0Ym94SXRlbS5kaXNhYmxlZCB9XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRJdGVtRXZlbnQobGlzdGJveEl0ZW0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGxpc3Rib3hJdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9saXN0Ym94L2xpc3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUXBHLE1BQU0sT0FBTyxnQkFBZ0I7SUF5QjNCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUF4QnBCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsU0FBSSxHQUFVLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQWEsS0FBSyxDQUFDO1FBT3pCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSzlDLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoQyxDQUFDO0lBRXhDLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFD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QUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdGJveEl0ZW0sIFR5cGUgfSBmcm9tICcuL21vZGVsL2xpc3Rib3gtaXRlbSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1saXN0Ym94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0Ym94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Ym94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdGJveEl0ZW1zOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlPzogVHlwZSA9ICdvcHRpb25zJztcbiAgQElucHV0KCkgcHVibGljIG92ZXJsYXk/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1heEhlaWdodD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHdpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgd2l0aG91dE92ZXJmbG93PzogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcHVibGljIGl0ZW1zU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPExpc3Rib3hJdGVtW10gfCBMaXN0Ym94SXRlbT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzY3JvbGxFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdGJveCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsaXN0Ym94RWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY29udGVudEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyB1dWlkID0gTWF0aC5yYW5kb20oKTtcbiAgcHVibGljIG9yaWdpbmFsUGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9pc09wZW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZVJlZjogRWxlbWVudFJlZikge31cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5faXNPcGVuLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jb250ZW50RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZCkge1xuICAgICAgY29uc3QgbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCA9IHRoaXMubGlzdGJveEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXG4gICAgICAgIGV2ZW50LnRhcmdldFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRDb250YWluc0NsaWNrVGFyZ2V0ID0gdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ/LmNvbnRhaW5zKFxuICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgICghbGlzdGJveEh0bWxFbGVtZW50Q29udGFpbnNDbGlja1RhcmdldCAmJiAhY29udGVudENvbnRhaW5zQ2xpY2tUYXJnZXQpIHx8XG4gICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2lzT3BlblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigoaXNPcGVuKSA9PiBpc09wZW4pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuTGlzdGJveCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9pc09wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKGlzT3BlbikgPT4gIWlzT3BlbiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmFkZFNjcm9sbExpc3RlbmVycyh0aGlzLmVSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTY3JvbGxMaXN0ZW5lcnMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgICB9KTtcbiAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcnMoZWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbkxpc3Rib3goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGVudEVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgY29uc3QgbGlzdEJveCA9IHRoaXMubGlzdGJveEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5jb250ZW50RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XG4gICAgICBjb25zdCBpbnB1dFJlY3QgPSBjb250ZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGxpc3RCb3hSZWN0ID0gbGlzdEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGxpc3RCb3guc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RCb3hIZWlnaHQgPSBsaXN0Qm94LmZpcnN0Q2hpbGQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBsaXN0Qm94Qm90dG9tID0gaW5wdXRSZWN0LmJvdHRvbSArIHdpbmRvdy5zY3JvbGxZICsgbGlzdEJveEhlaWdodDtcbiAgICAgICAgaWYgKGxpc3RCb3hCb3R0b20gPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLnRvcCA9IGlucHV0UmVjdC50b3AgLSBsaXN0Qm94SGVpZ2h0ICsgd2luZG93LnNjcm9sbFkgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9LCAxKTtcbiAgICAgIGxpc3RCb3guc3R5bGUudG9wID0gaW5wdXRSZWN0LmJvdHRvbSArIHdpbmRvdy5zY3JvbGxZICsgJ3B4JztcbiAgICAgIGxpc3RCb3guc3R5bGUubGVmdCA9IGlucHV0UmVjdC5sZWZ0ICsgd2luZG93LnNjcm9sbFggKyAncHgnO1xuICAgICAgbGlzdEJveC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLm1heEhlaWdodDtcbiAgICAgIGxpc3RCb3guc3R5bGUubWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xuICAgICAgbGlzdEJveC5zdHlsZS56SW5kZXggPSAnMjAwMDAwMDAwMCc7XG4gICAgICBpZiAodGhpcy53aXRob3V0T3ZlcmZsb3cpIHtcbiAgICAgICAgaWYgKGxpc3RCb3hSZWN0LnJpZ2h0ID4gd2luZG93LmlubmVyV2lkdGgpIHtcbiAgICAgICAgICBsaXN0Qm94LnN0eWxlLmxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGxpc3RCb3hSZWN0LndpZHRoICsgJ3B4JztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEJveFJlY3QuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgbGlzdEJveC5zdHlsZS50b3AgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBsaXN0Qm94UmVjdC5oZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50eXBlID09PSAnb3B0aW9ucycpIHtcbiAgICAgICAgbGlzdEJveC5zdHlsZS53aWR0aCA9IGlucHV0UmVjdC53aWR0aCArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gbGlzdEJveC5wYXJlbnRFbGVtZW50O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaXN0Qm94KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VMaXN0Ym94KCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgaWYgKHRoaXMub3JpZ2luYWxQYXJlbnQgJiYgdGhpcy5saXN0Ym94RWxlbWVudFJlZikge1xuICAgICAgdGhpcy5vcmlnaW5hbFBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmxpc3Rib3hFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5vcmlnaW5hbFBhcmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtOiBMaXN0Ym94SXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5maW5kSW5kZXgoXG4gICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gbGlzdGJveEl0ZW0udmFsdWVcbiAgICAgICk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkucHVzaChsaXN0Ym94SXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGxpc3Rib3hJdGVtO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSAnYWN0aW9ucycpIHtcbiAgICAgIHRoaXMuY2xvc2VMaXN0Ym94KCk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXNTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGVja2VkKGxpc3Rib3hJdGVtOiBMaXN0Ym94SXRlbSk6IGJvb2xlYW4ge1xuICAgIGxldCBsaXN0Qm94SXRlbUZvdW5kZWQ7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGxpc3RCb3hJdGVtRm91bmRlZCA9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJlxuICAgICAgICAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pLmZpbmQoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSBsaXN0Ym94SXRlbS52YWx1ZVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0Qm94SXRlbUZvdW5kZWQgPVxuICAgICAgICAodGhpcy5zZWxlY3RlZEl0ZW1zICYmICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW0pLnZhbHVlKSA9PSBsaXN0Ym94SXRlbS52YWx1ZSB8fFxuICAgICAgICBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdEJveEl0ZW1Gb3VuZGVkICE9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy50eXBlICE9PSAnb3B0aW9ucycgPyAnbGlzdGJveCcgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFJvbGVMaXN0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ29wdGlvbnMnID8gJ2xpc3Rib3gnIDogJ2dyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBzdHlsZU9iamVjdCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnLS1saXN0Ym94LW1heHdpZHRoJzogdGhpcy5tYXhXaWR0aCxcbiAgICAgICctLWxpc3Rib3gtd2lkdGgnOiB0aGlzLndpZHRoLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xhc3NPYmplY3QoKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ21jLWxpc3Rib3gtLW9wdGlvbnMnOiB0aGlzLnR5cGUgPT09ICdvcHRpb25zJyxcbiAgICAgICdtYy1saXN0Ym94LS1hY3Rpb25zJzogdGhpcy50eXBlID09PSAnYWN0aW9ucycsXG4gICAgICAnbWMtbGlzdGJveC0tb3ZlcmxheSc6IHRoaXMub3ZlcmxheSxcbiAgICAgICdtYy1saXN0Ym94LS1tdWx0aSc6IHRoaXMubXVsdGlwbGUsXG4gICAgICAnaXMtb3Blbic6IHRoaXMuaXNPcGVuLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xhc3NPYmplY3RJbnB1dCgpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAnbWMtY2hlY2tib3hfX2lucHV0JzogdGhpcy5tdWx0aXBsZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldElucHV0VHlwZSgpOiBPYmplY3Qge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gJ2NoZWNrYm94JyA6ICdyYWRpbyc7XG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbUlkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgbGlzdGJveEl0ZW0tJHtpbmRleCArIHRoaXMudXVpZH1gO1xuICB9XG5cbiAgcHVibGljIHNldENsYXNzT2JqZWN0VGlsZShpdGVtOiBMaXN0Ym94SXRlbSk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdpcy1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQgPz8gdGhpcy5kaXNhYmxlZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldElucHV0TmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gIXRoaXMubXVsdGlwbGUgPyBgbGlzdGJveHJhZGlvLSR7dGhpcy51dWlkfWAgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbEV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRhcmdldC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBpc0F0RW5kID0gc2Nyb2xsVG9wICsgb2Zmc2V0SGVpZ2h0ID49IHNjcm9sbEhlaWdodDtcblxuICAgIGlmIChpc0F0RW5kKSB7XG4gICAgICB0aGlzLnNjcm9sbEVuZC5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtcygpOiBMaXN0Ym94SXRlbVtdW10ge1xuICAgIGNvbnN0IGhhc05lc3RlZEFycmF5ID0gdGhpcy5saXN0Ym94SXRlbXMuZmlsdGVyKEFycmF5LmlzQXJyYXkpLmxlbmd0aDtcblxuICAgIGlmIChoYXNOZXN0ZWRBcnJheSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFt0aGlzLmxpc3Rib3hJdGVtc107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3Rib3hFbGVtZW50UmVmKSB7XG4gICAgICBjb25zdCBtb3pMaXN0Ym94ID0gdGhpcy5saXN0Ym94RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgbW96TGlzdGJveD8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobW96TGlzdGJveCk7XG4gICAgfVxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQobnVsbCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWxpc3Rib3hfX2NvbnRhaW5lclwiPlxuICA8ZGl2ICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyZWZlcmVuY2VdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiAjbGlzdGJveD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ29wdGlvbnMnOyBlbHNlIGFjdGlvbnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY2xhc3NPYmplY3QoKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwic3R5bGVPYmplY3QoKVwiXG4gICAgICAgICAgW2F0dHIucm9sZV09XCJnZXRSb2xlKClcIlxuICAgICAgICAgIChzY3JvbGwpPVwic2Nyb2xsRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJtYy1saXN0Ym94X19saXN0XCIgW2F0dHIucm9sZV09XCJnZXRSb2xlTGlzdCgpXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X190aWxlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2V0Q2xhc3NPYmplY3RUaWxlKGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaXN0Ym94SXRlbSBvZiBsaXN0Ym94SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveF9faWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICA+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtLmNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsYWcgZmxhZzp7eyBsaXN0Ym94SXRlbS5jb3VudHJ5Q29kZSB9fVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCItLUNvdW50cnlGbGFnSWNvbi1oZWlnaHQ6IDFyZW1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cInNldEl0ZW1JZChpKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZEl0ZW1FdmVudChsaXN0Ym94SXRlbSlcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cImdldElucHV0VHlwZSgpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJnZXRJbnB1dE5hbWUoKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2xhc3NPYmplY3RJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwibGlzdGJveEl0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJzZXRJdGVtSWQoaSlcIiBjbGFzcz1cIm1jLWxpc3Rib3hfX2xhYmVsXCI+e3sgbGlzdGJveEl0ZW0ubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNhY3Rpb25zPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2xpc3Rib3hcbiAgICAgICAgICBjbGFzcz1cIm1jLWxpc3Rib3gtb3B0aW9uc19fY29udGFpbmVyXCJcbiAgICAgICAgICBbYXR0ci5yb2xlXT1cImdldFJvbGUoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRSb2xlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGlzdCBvZiBnZXRJdGVtcygpOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX2xpc3RcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGlzdGJveEl0ZW0gb2YgbGlzdDsgbGV0IGogPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1saXN0Ym94LW9wdGlvbnNfX3RpbGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kaXNhYmxlZCc6IGxpc3Rib3hJdGVtLmRpc2FibGVkIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3Rib3hJdGVtICYmIGxpc3Rib3hJdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19pY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwibGlzdGJveEl0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibGlzdGJveEl0ZW0uZGFuZ2VyID8geyBmaWxsOiAnI0M2MTExMicgfSA6IHsgZmlsbDogJyM3MTcwNkInIH1cIlxuICAgICAgICAgICAgICA+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtbGlzdGJveC1vcHRpb25zX19pdGVtXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdGJveEl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWRhbmdlcic6IGxpc3Rib3hJdGVtLmRhbmdlciwgJ2lzLWRpc2FibGVkJzogbGlzdGJveEl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkSXRlbUV2ZW50KGxpc3Rib3hJdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBsaXN0Ym94SXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { animate, group, query, style, transition, trigger } from '@angular/animations';
|
|
2
2
|
export const NotificationAnimation = trigger('fadeIn', [
|
|
3
3
|
transition(':enter', [
|
|
4
|
-
style({ opacity:
|
|
5
|
-
animate('300ms ease-out', style({ transform: 'translateY(0)' })),
|
|
4
|
+
style({ opacity: 0, transform: 'translateY({{enterOffsetY}}%)' }),
|
|
5
|
+
animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),
|
|
6
6
|
]),
|
|
7
7
|
transition(':leave', [
|
|
8
8
|
group([
|
|
@@ -12,10 +12,13 @@ export const NotificationAnimation = trigger('fadeIn', [
|
|
|
12
12
|
query('.mc-notification__message', [animate('200ms', style({ opacity: 0, height: 0 }))], {
|
|
13
13
|
optional: true,
|
|
14
14
|
}),
|
|
15
|
+
query('.mc-notification-closable__close', [animate('0ms', style({ opacity: 0, height: 0 }))], {
|
|
16
|
+
optional: true,
|
|
17
|
+
}),
|
|
15
18
|
query(':self', [
|
|
16
|
-
animate('300ms', style({ opacity: 0, height: 0,
|
|
19
|
+
animate('300ms', style({ opacity: 0, height: 0, transform: 'translateY({{leaveOffsetY}}%)' })),
|
|
17
20
|
]),
|
|
18
21
|
]),
|
|
19
22
|
]),
|
|
20
23
|
]);
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUU7SUFDckQsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQzdFLENBQUM7SUFDRixVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQztZQUNKLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JGLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztZQUNGLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZGLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztZQUNGLEtBQUssQ0FDSCxrQ0FBa0MsRUFDbEMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNsRDtnQkFDRSxRQUFRLEVBQUUsSUFBSTthQUNmLENBQ0Y7WUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNiLE9BQU8sQ0FDTCxPQUFPLEVBQ1AsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxDQUFDLENBQzdFO2FBQ0YsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgZ3JvdXAsIHF1ZXJ5LCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uQW5pbWF0aW9uID0gdHJpZ2dlcignZmFkZUluJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKHt7ZW50ZXJPZmZzZXRZfX0lKScgfSksXG4gICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKSxcbiAgXSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICBncm91cChbXG4gICAgICBxdWVyeSgnLm1jLW5vdGlmaWNhdGlvbl9fdGl0bGUnLCBbYW5pbWF0ZSgnMjAwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9KSldLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgfSksXG4gICAgICBxdWVyeSgnLm1jLW5vdGlmaWNhdGlvbl9fbWVzc2FnZScsIFthbmltYXRlKCcyMDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwIH0pKV0sIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICB9KSxcbiAgICAgIHF1ZXJ5KFxuICAgICAgICAnLm1jLW5vdGlmaWNhdGlvbi1jbG9zYWJsZV9fY2xvc2UnLFxuICAgICAgICBbYW5pbWF0ZSgnMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAgfSkpXSxcbiAgICAgICAge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgcXVlcnkoJzpzZWxmJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICczMDBtcycsXG4gICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoe3tsZWF2ZU9mZnNldFl9fSUpJyB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0pLFxuXSk7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { NOTIFICATION_CONFIG } from './notification';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Inject, Input, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, timer } from 'rxjs';
|
|
3
|
+
import { NOTIFICATION_CONFIG, } from './notification';
|
|
4
4
|
import { NotificationAnimation } from './notification-animation';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
@@ -8,31 +8,81 @@ import * as i2 from "./notification.component";
|
|
|
8
8
|
import * as i3 from "./notification-title";
|
|
9
9
|
import * as i4 from "./notification-message";
|
|
10
10
|
export class NotificationContainerComponent {
|
|
11
|
-
constructor(notificationConfig) {
|
|
11
|
+
constructor(notificationConfig, renderer, elt) {
|
|
12
12
|
this.notificationConfig = notificationConfig;
|
|
13
|
+
this.renderer = renderer;
|
|
14
|
+
this.elt = elt;
|
|
15
|
+
this.position = 'top-right';
|
|
16
|
+
this.animationPosition = 'top';
|
|
17
|
+
this.enterOffsetY = 0;
|
|
18
|
+
this.leaveOffsetY = 0;
|
|
13
19
|
this._notifications = new BehaviorSubject([]);
|
|
20
|
+
this.calculatePosition();
|
|
14
21
|
}
|
|
15
22
|
get notifications() {
|
|
16
23
|
return this._notifications.asObservable();
|
|
17
24
|
}
|
|
18
25
|
add(notification) {
|
|
19
26
|
this._notifications.next([...this._notifications.value, notification]);
|
|
20
|
-
this.
|
|
27
|
+
this.autoRemove(notification);
|
|
21
28
|
}
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
calculatePosition() {
|
|
30
|
+
switch (this.position) {
|
|
31
|
+
case 'top-right':
|
|
32
|
+
this.setPosition(0, 'auto', 'auto', 0);
|
|
33
|
+
break;
|
|
34
|
+
case 'top-left':
|
|
35
|
+
this.setPosition(0, 'auto', 0, 'auto');
|
|
36
|
+
break;
|
|
37
|
+
case 'bottom-right':
|
|
38
|
+
this.setPosition('auto', 0, 'auto', 0);
|
|
39
|
+
break;
|
|
40
|
+
case 'bottom-left':
|
|
41
|
+
this.setPosition('auto', 0, 0, 'auto');
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
if (this.position.includes('top')) {
|
|
45
|
+
this.renderer.setStyle(this.elt.nativeElement, 'flex-direction', 'column');
|
|
46
|
+
this.enterOffsetY = 100;
|
|
47
|
+
this.leaveOffsetY = -100;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.renderer.setStyle(this.elt.nativeElement, 'flex-direction', 'column-reverse');
|
|
51
|
+
this.enterOffsetY = -100;
|
|
52
|
+
this.leaveOffsetY = 100;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
setPosition(top, bottom, left, right) {
|
|
56
|
+
this.renderer.setStyle(this.elt.nativeElement, 'top', top);
|
|
57
|
+
this.renderer.setStyle(this.elt.nativeElement, 'bottom', bottom);
|
|
58
|
+
this.renderer.setStyle(this.elt.nativeElement, 'left', left);
|
|
59
|
+
this.renderer.setStyle(this.elt.nativeElement, 'right', right);
|
|
60
|
+
}
|
|
61
|
+
autoRemove(notification) {
|
|
62
|
+
const duration = notification?.duration !== undefined
|
|
63
|
+
? notification.duration
|
|
64
|
+
: this.notificationConfig.duration;
|
|
65
|
+
if (duration > 0) {
|
|
66
|
+
timer(duration).subscribe(() => this.remove(notification));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
remove(notification) {
|
|
70
|
+
const isExist = this._notifications.value.includes(notification);
|
|
71
|
+
if (isExist) {
|
|
24
72
|
const newState = this._notifications.value.filter((n) => n !== notification);
|
|
25
73
|
this._notifications.next(newState);
|
|
26
|
-
}
|
|
74
|
+
}
|
|
27
75
|
}
|
|
28
76
|
}
|
|
29
|
-
NotificationContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationContainerComponent, deps: [{ token: NOTIFICATION_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
NotificationContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationContainerComponent, selector: "moz-notification-container", ngImport: i0, template: "<ng-container *ngFor=\"let notification of notifications | async\">\n <moz-notification size=\"s\" [type]=\"notification.type\" @fadeIn>\n <h3 mozNotificationTitle *ngIf=\"notification.title\">{{ notification.title }}</h3>\n <p mozNotificationMessage *ngIf=\"notification.message\">{{ notification.message }}</p>\n </moz-notification>\n</ng-container>\n", styles: [":host{position:fixed;
|
|
77
|
+
NotificationContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationContainerComponent, deps: [{ token: NOTIFICATION_CONFIG }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
NotificationContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationContainerComponent, selector: "moz-notification-container", inputs: { position: "position" }, ngImport: i0, template: "<ng-container *ngFor=\"let notification of notifications | async\">\n <moz-notification size=\"s\" [type]=\"notification.type\" [@fadeIn]=\"{ value: null, params: { enterOffsetY, leaveOffsetY}}\" [closable]=\"!!notification.closable\" (closeEvent)=\" remove(notification)\">\n <h3 mozNotificationTitle *ngIf=\"notification.title\">{{ notification.title }}</h3>\n <p mozNotificationMessage *ngIf=\"notification.message\">{{ notification.message }}</p>\n </moz-notification>\n</ng-container>\n", styles: [":host{position:fixed;display:flex;flex-direction:column;gap:1rem;width:20rem;margin:1.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.NotificationComponent, selector: "moz-notification", inputs: ["type", "size", "closable"], outputs: ["closeEvent"] }, { kind: "component", type: i3.NotificationTitleComponent, selector: "[mozNotificationTitle]" }, { kind: "component", type: i4.NotificationMessageComponent, selector: "[mozNotificationMessage]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [NotificationAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationContainerComponent, decorators: [{
|
|
32
80
|
type: Component,
|
|
33
|
-
args: [{ selector: 'moz-notification-container', changeDetection: ChangeDetectionStrategy.OnPush, animations: [NotificationAnimation], template: "<ng-container *ngFor=\"let notification of notifications | async\">\n <moz-notification size=\"s\" [type]=\"notification.type\" @fadeIn>\n <h3 mozNotificationTitle *ngIf=\"notification.title\">{{ notification.title }}</h3>\n <p mozNotificationMessage *ngIf=\"notification.message\">{{ notification.message }}</p>\n </moz-notification>\n</ng-container>\n", styles: [":host{position:fixed;
|
|
81
|
+
args: [{ selector: 'moz-notification-container', changeDetection: ChangeDetectionStrategy.OnPush, animations: [NotificationAnimation], template: "<ng-container *ngFor=\"let notification of notifications | async\">\n <moz-notification size=\"s\" [type]=\"notification.type\" [@fadeIn]=\"{ value: null, params: { enterOffsetY, leaveOffsetY}}\" [closable]=\"!!notification.closable\" (closeEvent)=\" remove(notification)\">\n <h3 mozNotificationTitle *ngIf=\"notification.title\">{{ notification.title }}</h3>\n <p mozNotificationMessage *ngIf=\"notification.message\">{{ notification.message }}</p>\n </moz-notification>\n</ng-container>\n", styles: [":host{position:fixed;display:flex;flex-direction:column;gap:1rem;width:20rem;margin:1.5rem}\n"] }]
|
|
34
82
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
35
83
|
type: Inject,
|
|
36
84
|
args: [NOTIFICATION_CONFIG]
|
|
37
|
-
}] }]; }
|
|
38
|
-
|
|
85
|
+
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { position: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}] } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFHTCxtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBU2pFLE1BQU0sT0FBTyw4QkFBOEI7SUFPekMsWUFDZ0Qsa0JBQXNDLEVBQzVFLFFBQW1CLEVBQ25CLEdBQWU7UUFGdUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUM1RSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFUVCxhQUFRLEdBQTBCLFdBQVcsQ0FBQztRQUM5RCxzQkFBaUIsR0FBcUIsS0FBSyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ0EsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFPeEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFj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QyxZQUEwQjtRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakUsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7OzRIQS9FVSw4QkFBOEIsa0JBUS9CLG1CQUFtQjtnSEFSbEIsOEJBQThCLG9HQ3hCM0MscWZBTUEsdXZCRGdCYyxDQUFDLHFCQUFxQixDQUFDOzRGQUV4Qiw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OzBCQVVoQyxNQUFNOzJCQUFDLG1CQUFtQjs2RkFQYixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbixcbiAgTm90aWZpY2F0aW9uQ29uZmlnLFxuICBOT1RJRklDQVRJT05fQ09ORklHLFxuICBOb3RpZmljYXRpb25EaXJlY3Rpb24sXG59IGZyb20gJy4vbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkFuaW1hdGlvbiB9IGZyb20gJy4vbm90aWZpY2F0aW9uLWFuaW1hdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1ub3RpZmljYXRpb24tY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbTm90aWZpY2F0aW9uQW5pbWF0aW9uXSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIHBvc2l0aW9uOiBOb3RpZmljYXRpb25EaXJlY3Rpb24gPSAndG9wLXJpZ2h0JztcbiAgYW5pbWF0aW9uUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAndG9wJztcbiAgZW50ZXJPZmZzZXRZID0gMDtcbiAgbGVhdmVPZmZzZXRZID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpY2F0aW9uW10+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE5PVElGSUNBVElPTl9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uQ29uZmlnOiBOb3RpZmljYXRpb25Db25maWcsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWx0OiBFbGVtZW50UmVmXG4gICkge1xuICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbm90aWZpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGQobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pIHtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zLm5leHQoWy4uLnRoaXMuX25vdGlmaWNhdGlvbnMudmFsdWUsIG5vdGlmaWNhdGlvbl0pO1xuICAgIHRoaXMuYXV0b1JlbW92ZShub3RpZmljYXRpb24pO1xuICB9XG5cbiAgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uKSB7XG4gICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKDAsICdhdXRvJywgJ2F1dG8nLCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oMCwgJ2F1dG8nLCAwLCAnYXV0bycpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oJ2F1dG8nLCAwLCAnYXV0bycsIDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbignYXV0bycsIDAsIDAsICdhdXRvJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCd0b3AnKSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsdC5uYXRpdmVFbGVtZW50LCAnZmxleC1kaXJlY3Rpb24nLCAnY29sdW1uJyk7XG4gICAgICB0aGlzLmVudGVyT2Zmc2V0WSA9IDEwMDtcbiAgICAgIHRoaXMubGVhdmVPZmZzZXRZID0gLTEwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsdC5uYXRpdmVFbGVtZW50LCAnZmxleC1kaXJlY3Rpb24nLCAnY29sdW1uLXJldmVyc2UnKTtcbiAgICAgIHRoaXMuZW50ZXJPZmZzZXRZID0gLTEwMDtcbiAgICAgIHRoaXMubGVhdmVPZmZzZXRZID0gMTAwO1xuICAgIH1cbiAgfVxuXG4gIHNldFBvc2l0aW9uKFxuICAgIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICAgIGJvdHRvbTogbnVtYmVyIHwgc3RyaW5nLFxuICAgIGxlZnQ6IG51bWJlciB8IHN0cmluZyxcbiAgICByaWdodDogbnVtYmVyIHwgc3RyaW5nXG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbHQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHRvcCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsdC5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYm90dG9tKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWx0Lm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgbGVmdCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsdC5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCByaWdodCk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9SZW1vdmUobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9XG4gICAgICBub3RpZmljYXRpb24/LmR1cmF0aW9uICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBub3RpZmljYXRpb24uZHVyYXRpb25cbiAgICAgICAgOiB0aGlzLm5vdGlmaWNhdGlvbkNvbmZpZy5kdXJhdGlvbjtcbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICB0aW1lcihkdXJhdGlvbikuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVtb3ZlKG5vdGlmaWNhdGlvbikpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBpc0V4aXN0ID0gdGhpcy5fbm90aWZpY2F0aW9ucy52YWx1ZS5pbmNsdWRlcyhub3RpZmljYXRpb24pO1xuICAgIGlmIChpc0V4aXN0KSB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMuX25vdGlmaWNhdGlvbnMudmFsdWUuZmlsdGVyKChuKSA9PiBuICE9PSBub3RpZmljYXRpb24pO1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5uZXh0KG5ld1N0YXRlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5vdGlmaWNhdGlvbiBvZiBub3RpZmljYXRpb25zIHwgYXN5bmNcIj5cbiAgPG1vei1ub3RpZmljYXRpb24gc2l6ZT1cInNcIiBbdHlwZV09XCJub3RpZmljYXRpb24udHlwZVwiIFtAZmFkZUluXT1cInsgdmFsdWU6IG51bGwsIHBhcmFtczogeyBlbnRlck9mZnNldFksIGxlYXZlT2Zmc2V0WX19XCIgW2Nsb3NhYmxlXT1cIiEhbm90aWZpY2F0aW9uLmNsb3NhYmxlXCIgKGNsb3NlRXZlbnQpPVwiIHJlbW92ZShub3RpZmljYXRpb24pXCI+XG4gICAgPGgzIG1vek5vdGlmaWNhdGlvblRpdGxlICpuZ0lmPVwibm90aWZpY2F0aW9uLnRpdGxlXCI+e3sgbm90aWZpY2F0aW9uLnRpdGxlIH19PC9oMz5cbiAgICA8cCBtb3pOb3RpZmljYXRpb25NZXNzYWdlICpuZ0lmPVwibm90aWZpY2F0aW9uLm1lc3NhZ2VcIj57eyBub3RpZmljYXRpb24ubWVzc2FnZSB9fTwvcD5cbiAgPC9tb3otbm90aWZpY2F0aW9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -5,4 +5,4 @@ export class NotificationConfigFactory {
|
|
|
5
5
|
return { duration: 3000, ...config };
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBaUIvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIscUJBQXFCLENBQUMsQ0FBQztBQUVqRyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBc0MsRUFBRTtRQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblR5cGUgPSAnaW5mb3JtYXRpb24nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Rhbmdlcic7XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25EaXJlY3Rpb24gPSAndG9wLXJpZ2h0JyB8ICd0b3AtbGVmdCcgfCAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCc7XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblNpemUgPSAnbScgfCAncyc7XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbiA9IHtcbiAgdHlwZT86IE5vdGlmaWNhdGlvblR5cGU7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGNsb3NhYmxlPzogYm9vbGVhbjtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25Db25maWcgPSB7IGR1cmF0aW9uOiBudW1iZXIgfTtcblxuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tm90aWZpY2F0aW9uQ29uZmlnPignTk9USUZJQ0FUSU9OX0NPTkZJRycpO1xuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29uZmlnRmFjdG9yeSB7XG4gIHN0YXRpYyBjcmVhdGUoY29uZmlnOiBQYXJ0aWFsPE5vdGlmaWNhdGlvbkNvbmZpZz4gPSB7fSk6IE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gICAgcmV0dXJuIHsgZHVyYXRpb246IDMwMDAsIC4uLmNvbmZpZyB9O1xuICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,10 @@ import { Inject, Injectable, } from '@angular/core';
|
|
|
3
3
|
import { NotificationContainerComponent } from './notification-container.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class NotificationService {
|
|
6
|
+
set direction(value) {
|
|
7
|
+
this.container.instance.position = value;
|
|
8
|
+
this.container.instance.calculatePosition();
|
|
9
|
+
}
|
|
6
10
|
constructor(applicationRef, componentFactoryResolver, injector, document) {
|
|
7
11
|
this.applicationRef = applicationRef;
|
|
8
12
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
@@ -16,8 +20,7 @@ export class NotificationService {
|
|
|
16
20
|
}
|
|
17
21
|
createContainer() {
|
|
18
22
|
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(NotificationContainerComponent);
|
|
19
|
-
|
|
20
|
-
return componentRef;
|
|
23
|
+
return componentFactory.create(this.injector);
|
|
21
24
|
}
|
|
22
25
|
appendNotificationContainerToBody(componentRef) {
|
|
23
26
|
const componentHostView = componentRef.hostView;
|
|
@@ -37,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
37
40
|
type: Inject,
|
|
38
41
|
args: [DOCUMENT]
|
|
39
42
|
}] }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFLTCxNQUFNLEVBQ04sVUFBVSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtwRixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLElBQUksU0FBUyxDQUFDLEtBQWdFO1FBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBR0QsWUFDbUIsY0FBOEIsRUFDOUIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ0EsUUFBa0I7UUFIcEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNBLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sR0FBRyxDQUFDLFlBQTBCO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FDNUUsOEJBQThCLENBQy9CLENBQUM7UUFDRixPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLGlDQUFpQyxDQUN2QyxZQUEwRDtRQUUxRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxRQUFvQyxDQUFDO1FBQzVFLE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O2lIQW5DVSxtQkFBbUIsZ0hBV3BCLFFBQVE7cUhBWFAsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBWUksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgc2V0IGRpcmVjdGlvbih2YWx1ZTogJ3RvcC1yaWdodCcgfCAndG9wLWxlZnQnIHwgJ2JvdHRvbS1yaWdodCcgfCAnYm90dG9tLWxlZnQnKSB7XG4gICAgdGhpcy5jb250YWluZXIuaW5zdGFuY2UucG9zaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLmNvbnRhaW5lci5pbnN0YW5jZS5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyITogQ29tcG9uZW50UmVmPE5vdGlmaWNhdGlvbkNvbnRhaW5lckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudFxuICApIHtcbiAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMuY3JlYXRlQ29udGFpbmVyKCk7XG4gICAgdGhpcy5hcHBlbmROb3RpZmljYXRpb25Db250YWluZXJUb0JvZHkodGhpcy5jb250YWluZXIpO1xuICB9XG5cbiAgcHVibGljIGFkZChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgIHRoaXMuY29udGFpbmVyLmluc3RhbmNlLmFkZChub3RpZmljYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb250YWluZXIoKTogQ29tcG9uZW50UmVmPE5vdGlmaWNhdGlvbkNvbnRhaW5lckNvbXBvbmVudD4ge1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgIE5vdGlmaWNhdGlvbkNvbnRhaW5lckNvbXBvbmVudFxuICAgICk7XG4gICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmROb3RpZmljYXRpb25Db250YWluZXJUb0JvZHkoXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Tm90aWZpY2F0aW9uQ29udGFpbmVyQ29tcG9uZW50PlxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRIb3N0VmlldyA9IGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG4gICAgY29uc3QgY29tcG9uZW50SHRtbEVsZW1lbnQgPSBjb21wb25lbnRIb3N0Vmlldy5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudEhvc3RWaWV3KTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29tcG9uZW50SHRtbEVsZW1lbnQpO1xuICB9XG59XG4iXX0=
|