@dsivd/prestations-ng 16.0.0-rc.9 → 16.0.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/CHANGELOG.md +96 -2
- package/dsivd-prestations-ng-v16.0.0.tgz +0 -0
- package/esm2020/foehn-dropdown-menu/dropdown-menu-group.type.mjs +3 -0
- package/esm2020/foehn-dropdown-menu/dropdown-menu-item.type.mjs +6 -0
- package/esm2020/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +212 -0
- package/esm2020/foehn-dropdown-menu/foehn-dropdown-menu.module.mjs +21 -0
- package/esm2020/foehn-form/foehn-form.component.mjs +3 -3
- package/esm2020/foehn-header/foehn-header.component.mjs +21 -4
- package/esm2020/foehn-header/foehn-header.module.mjs +16 -4
- package/esm2020/foehn-input/foehn-input-prefixed-text.component.mjs +116 -0
- package/esm2020/foehn-input/foehn-input.module.mjs +10 -5
- package/esm2020/foehn-input-date-time/foehn-input-date-time.component.mjs +5 -16
- package/esm2020/foehn-input-time/foehn-input-time.component.mjs +8 -16
- package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +19 -5
- package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +2 -3
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +15 -13
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +15 -13
- package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +2 -3
- package/esm2020/gesdem/gesdem-handler.service.mjs +5 -5
- package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +32 -10
- package/esm2020/gesdem-error/gesdem-error.component.mjs +16 -2
- package/esm2020/index.mjs +7 -1
- package/esm2020/sdk-date/date.helper.mjs +10 -1
- package/esm2020/sdk-dictionary/default-dictionary.mjs +4 -2
- package/fesm2015/dsivd-prestations-ng.mjs +485 -79
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +482 -77
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-dropdown-menu/dropdown-menu-group.type.d.ts +5 -0
- package/foehn-dropdown-menu/dropdown-menu-item.type.d.ts +7 -0
- package/foehn-dropdown-menu/foehn-dropdown-menu.component.d.ts +42 -0
- package/foehn-dropdown-menu/foehn-dropdown-menu.module.d.ts +11 -0
- package/foehn-header/foehn-header.component.d.ts +2 -0
- package/foehn-header/foehn-header.module.d.ts +2 -1
- package/foehn-input/foehn-input-prefixed-text.component.d.ts +26 -0
- package/foehn-input/foehn-input.module.d.ts +9 -8
- package/foehn-input-date-time/foehn-input-date-time.component.d.ts +1 -0
- package/foehn-input-time/foehn-input-time.component.d.ts +1 -0
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +6 -2
- package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +0 -1
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +3 -1
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +3 -1
- package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +0 -1
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +6 -2
- package/gesdem-error/gesdem-error.component.d.ts +1 -0
- package/index.d.ts +5 -0
- package/package.json +1 -1
- package/sdk-date/date.helper.d.ts +1 -0
- package/dsivd-prestations-ng-v16.0.0-rc.9.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -37,8 +37,24 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
37
37
|
- added field `isComment: boolean`, used to display comments without a label below the other elements of the section
|
|
38
38
|
|
|
39
39
|
- [foehn-simple-navigation.component.html](projects/prestations-ng/src/foehn-navigation/foehn-simple-navigation/foehn-simple-navigation.component.html)
|
|
40
|
-
|
|
40
|
+
- added simple navigation bar, used in list detail pages because the foehn-navigation does not properly fit in this type of pages
|
|
41
41
|
|
|
42
|
+
- [foehn-form.component.html](projects/prestations-ng/src/foehn-form/foehn-form.component.html)
|
|
43
|
+
- added accessibility on form (`aria-live="polite"` and `aria-atomic="false"`)
|
|
44
|
+
|
|
45
|
+
- [foehn-dropdown-menu](projects/prestations-ng/src/foehn-dropdown-menu/foehn-dropdown-menu.component.ts)
|
|
46
|
+
- added a dropdown menu or group menu component
|
|
47
|
+
|
|
48
|
+
- New [dropdown menu documentation](https://dsi-vd.github.io/prestations-ng/dropdown-menu) page
|
|
49
|
+
|
|
50
|
+
- [foehn-dropdown-menu](projects/prestations-ng/src/foehn-dropdown-menu/foehn-dropdown-menu.component.ts)
|
|
51
|
+
- `@Input() id: string` used to identify dropdown-menu
|
|
52
|
+
- `@Input() model: DropdownMenuGroup[]` used to display dropdown-menu
|
|
53
|
+
- `@Input() btnCssClass = 'btn-secondary'` used to define the CSS class of the dropdown menu button, by default is a secondary button
|
|
54
|
+
|
|
55
|
+
- [DropdownMenuGroup](projects/prestations-ng/src/foehn-dropdown-menu/dropdown-menu-group.type.ts)
|
|
56
|
+
- [DropdownMenuItem](projects/prestations-ng/src/foehn-dropdown-menu/dropdown-menu-item.type.ts)
|
|
57
|
+
- Classes used to define dropdown-menu model
|
|
42
58
|
|
|
43
59
|
### Updated
|
|
44
60
|
|
|
@@ -46,7 +62,24 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
46
62
|
- added a `<legend>` to describe the selected items
|
|
47
63
|
- defaults to `foehn-multiselect-autocomplete.selected-items-list-legend` from `default-dictionary.ts`
|
|
48
64
|
- can be overriden on each component with `@Input() selectedItemsListLegend`
|
|
49
|
-
- selected pills now have the color `primary`instead of `danger`
|
|
65
|
+
- selected pills now have the color `primary` instead of `danger`
|
|
66
|
+
|
|
67
|
+
- [gesdem-confirmation.component.ts](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.ts)
|
|
68
|
+
- allow to override button "Se déconnecter" (label + link) (when user is connected)
|
|
69
|
+
- via `@Input() closeButtonConnectedText` + `@Input() closeHrefConnected`
|
|
70
|
+
- via route data : `closeButtonConnectedText` + `closeHrefConnected`
|
|
71
|
+
- default value for label is `gesdem-confirmation.exit-button-connected` from dictionary
|
|
72
|
+
- default value for link is `/100018/logout`
|
|
73
|
+
|
|
74
|
+
- [demo-accessibility-page.component.html](src/app/demo-accessibility-page/demo-accessibility-page.component.html)
|
|
75
|
+
- updated accessibility page to include dropdown menu
|
|
76
|
+
|
|
77
|
+
- [foehn-header.component.html](projects/prestations-ng/src/foehn-header/foehn-header.component.html)
|
|
78
|
+
- [foehn-header.component.ts](projects/prestations-ng/src/foehn-header/foehn-header.component.ts)
|
|
79
|
+
- updated header to include new dropdown menu
|
|
80
|
+
|
|
81
|
+
- [gesdem-handler.service.ts](projects/prestations-ng/src/gesdem/gesdem-handler.service.ts)
|
|
82
|
+
- do not display a success message when downloading the PDF
|
|
50
83
|
|
|
51
84
|
### Removed
|
|
52
85
|
|
|
@@ -64,6 +97,67 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
64
97
|
- [gesdem-loader.guard](projects/prestations-ng/src/gesdem/gesdem-loader.guard.ts)
|
|
65
98
|
- removed `GesdemLoaderGuard` service extending `CanActivate` and replaced it by `CanActivateFn` function
|
|
66
99
|
|
|
100
|
+
|
|
101
|
+
## [15.5.15]
|
|
102
|
+
|
|
103
|
+
### Fixed
|
|
104
|
+
|
|
105
|
+
- [foehn-input-date-time.ts](projects/prestations-ng/src/foehn-input-date-time/foehn-input-date-time.component.ts)
|
|
106
|
+
- fixed time input (hours and seconds) not accepting 0 as number value
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
|
|
110
|
+
- [date-helper.ts](projects/prestations-ng/src/sdk-date/date.helper.ts)
|
|
111
|
+
- added `leftPad` function taken from `FoehnDateTimeComponent` and `FoehnTimeComponent` and fixed not adding 0 on empty string
|
|
112
|
+
|
|
113
|
+
### Updated
|
|
114
|
+
|
|
115
|
+
- [foehn-input-time.ts](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.ts)
|
|
116
|
+
- [foehn-input-date-time.ts](projects/prestations-ng/src/foehn-input-date-time/foehn-input-date-time.component.ts)
|
|
117
|
+
- now uses `leftPad` function from `DateHelper`
|
|
118
|
+
|
|
119
|
+
## [15.5.14]
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
|
|
123
|
+
- [foehn-input-time.ts](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.ts)
|
|
124
|
+
- fixed model not being updated properly
|
|
125
|
+
|
|
126
|
+
- [foehn-input-prefixed-text.ts](projects/prestations-ng/src/foehn-input/foehn-input-prefixed-text.component.ts)
|
|
127
|
+
- fixed model not being updated properly when prefix changes
|
|
128
|
+
|
|
129
|
+
## [15.5.13]
|
|
130
|
+
|
|
131
|
+
**Version has been deprecated**
|
|
132
|
+
|
|
133
|
+
## [15.5.12]
|
|
134
|
+
|
|
135
|
+
### Added
|
|
136
|
+
|
|
137
|
+
- [foehn-input-prefixed-text.ts](projects/prestations-ng/src/foehn-input/foehn-input-prefixed-text.component.ts)
|
|
138
|
+
- new text input to request a text with a read-only prefix
|
|
139
|
+
- `@Input prefix: string` : the read-only prefix
|
|
140
|
+
- `@Input() prefixColClass = 'col-md-4'` : the class applied to the foehn-input-text of the prefix part
|
|
141
|
+
- `@Input() textColClass = 'col-md-8'` : the class applied to the foehn-input-text of the user text part
|
|
142
|
+
|
|
143
|
+
- [gesdem-confirmation.component.ts](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.ts)
|
|
144
|
+
- go to top of the page when component initializes (same as [abstract-page-component.ts](projects/prestations-ng/src/abstract-page-component.ts)).
|
|
145
|
+
|
|
146
|
+
### Fixed
|
|
147
|
+
|
|
148
|
+
- [multi-upload.service.ts](projects/prestations-ng/src/foehn-upload/foehn-multi-upload/multi-upload.service.ts)
|
|
149
|
+
- [bo-multi-upload.service.ts](projects/prestations-ng/src/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.ts)
|
|
150
|
+
- timestamp used in document `key` for multiple uploads is now generated when calling `mapToDocumentReference` (not when service is created).
|
|
151
|
+
|
|
152
|
+
## [15.5.10]
|
|
153
|
+
|
|
154
|
+
### Added
|
|
155
|
+
|
|
156
|
+
- [foehn-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.ts)
|
|
157
|
+
- [foehn-bo-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.ts)
|
|
158
|
+
- added `@Input() maxSimultaneousSelectedFiles = 50;`
|
|
159
|
+
- prevents the upload of more than `maxSimultaneousSelectedFiles` files at once and display an alert from default-dictionary.ts (`foehn-uploader.max-upload-selection-reached`)
|
|
160
|
+
|
|
67
161
|
## [15.5.9]
|
|
68
162
|
|
|
69
163
|
### Updated
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class DropdownMenuGroup {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1ncm91cC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRyb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS1ncm91cC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7Q0FHN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcm9wZG93bk1lbnVJdGVtIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWl0ZW0udHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1lbnVHcm91cCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaXRlbXM6IERyb3Bkb3duTWVudUl0ZW1bXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class DropdownMenuItem {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.target = '_self';
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LWl0ZW0udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBS0ksV0FBTSxHQUE2QyxPQUFPLENBQUM7SUFDL0QsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERyb3Bkb3duTWVudUl0ZW0ge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICAgIGhyZWY/OiBzdHJpbmc7XG4gICAgdGFyZ2V0PzogJ19zZWxmJyB8ICdfYmxhbmsnIHwgJ19wYXJlbnQnIHwgJ190b3AnID0gJ19zZWxmJztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Component, HostBinding, HostListener, Input, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { first } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../sdk-dictionary/sdk-dictionary.pipe";
|
|
7
|
+
export class FoehnDropdownMenuComponent {
|
|
8
|
+
constructor(router) {
|
|
9
|
+
this.router = router;
|
|
10
|
+
this.btnCssClass = 'btn-secondary';
|
|
11
|
+
this.isDropdownVisible = false;
|
|
12
|
+
this.currentItemGlobalIndex = -1;
|
|
13
|
+
this.popupPosition = {
|
|
14
|
+
top: 0,
|
|
15
|
+
left: 0
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
handleKeyboardUpEvent(event) {
|
|
19
|
+
if (this.isDropdownVisible && event.key === 'Escape') {
|
|
20
|
+
this.resetDropdown();
|
|
21
|
+
this.buttonTrigger.nativeElement.focus();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
handleKeyboardDownEvent(event) {
|
|
25
|
+
if (this.isDropdownVisible) {
|
|
26
|
+
this.onKeyDownInner(event);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.hostId = this.buildId();
|
|
31
|
+
}
|
|
32
|
+
handleFocusIn() {
|
|
33
|
+
clearTimeout(this.closeDropdownTimer);
|
|
34
|
+
}
|
|
35
|
+
handleFocusOut() {
|
|
36
|
+
clearTimeout(this.closeDropdownTimer);
|
|
37
|
+
this.closeDropdownTimer = setTimeout(() => {
|
|
38
|
+
this.resetDropdown();
|
|
39
|
+
}, 50);
|
|
40
|
+
}
|
|
41
|
+
buildId(suffix = '') {
|
|
42
|
+
const baseId = this.id;
|
|
43
|
+
if (!baseId) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return `${baseId}${suffix}`;
|
|
47
|
+
}
|
|
48
|
+
toggleDropdownVisibility() {
|
|
49
|
+
this.isDropdownVisible = !this.isDropdownVisible;
|
|
50
|
+
if (this.isDropdownVisible) {
|
|
51
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
52
|
+
this.selectedFocusList.changes.pipe(first()).subscribe(() => {
|
|
53
|
+
this.entryPoint.nativeElement.focus();
|
|
54
|
+
// Need setTimeout to be sure we have latest position for calculations
|
|
55
|
+
setTimeout(() => this.calculatePopupPosition());
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.resetDropdown();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
resetDropdown() {
|
|
63
|
+
this.isDropdownVisible = false;
|
|
64
|
+
this.currentItemGlobalIndex = -1;
|
|
65
|
+
}
|
|
66
|
+
onKeyDownInner(keyEvent) {
|
|
67
|
+
// IE doesn't support keyEvent.code, and has different values
|
|
68
|
+
// in keyEvent.key (Down instead of ArrowDown for instance), hence the multi-support.
|
|
69
|
+
let ie11CompatibleCode = keyEvent.code || keyEvent.key;
|
|
70
|
+
if (keyEvent.shiftKey) {
|
|
71
|
+
ie11CompatibleCode = `Shift+${ie11CompatibleCode}`;
|
|
72
|
+
}
|
|
73
|
+
switch (ie11CompatibleCode) {
|
|
74
|
+
case 'Down':
|
|
75
|
+
case 'ArrowDown':
|
|
76
|
+
case 'Tab':
|
|
77
|
+
this.focusNextElement(true);
|
|
78
|
+
break;
|
|
79
|
+
case 'Up':
|
|
80
|
+
case 'ArrowUp':
|
|
81
|
+
case 'Shift+Tab':
|
|
82
|
+
this.focusNextElement(false);
|
|
83
|
+
break;
|
|
84
|
+
case 'Home':
|
|
85
|
+
this.focusFirstElement();
|
|
86
|
+
break;
|
|
87
|
+
case 'End':
|
|
88
|
+
this.focusLastElement();
|
|
89
|
+
break;
|
|
90
|
+
case 'Space':
|
|
91
|
+
case 'Spacebar':
|
|
92
|
+
case 'Enter':
|
|
93
|
+
this.selectCurrentFocusItem();
|
|
94
|
+
break;
|
|
95
|
+
default:
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
keyEvent.preventDefault();
|
|
99
|
+
keyEvent.stopPropagation();
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
focusNextElement(down) {
|
|
103
|
+
if (this.elementsDisplayed()) {
|
|
104
|
+
const step = down ? 1 : -1;
|
|
105
|
+
this.currentItemGlobalIndex += step;
|
|
106
|
+
const MAX_INDEX = this.selectedFocusList.length - 1;
|
|
107
|
+
if (this.currentItemGlobalIndex < 0) {
|
|
108
|
+
this.currentItemGlobalIndex = MAX_INDEX;
|
|
109
|
+
}
|
|
110
|
+
else if (this.currentItemGlobalIndex > MAX_INDEX) {
|
|
111
|
+
this.currentItemGlobalIndex = 0;
|
|
112
|
+
}
|
|
113
|
+
const nextLiElement = this.selectedFocusList.get(this.currentItemGlobalIndex).nativeElement;
|
|
114
|
+
// Check if li contains a link and focus it
|
|
115
|
+
if (nextLiElement.firstElementChild.tagName === 'A') {
|
|
116
|
+
nextLiElement.firstElementChild.focus();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
// Focus li-group-title
|
|
120
|
+
nextLiElement.focus();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
focusFirstElement() {
|
|
124
|
+
this.currentItemGlobalIndex = -1;
|
|
125
|
+
this.focusNextElement(true);
|
|
126
|
+
}
|
|
127
|
+
focusLastElement() {
|
|
128
|
+
this.currentItemGlobalIndex = -1;
|
|
129
|
+
this.focusNextElement(false);
|
|
130
|
+
}
|
|
131
|
+
selectCurrentFocusItem() {
|
|
132
|
+
const currentFocusedElement = document.activeElement;
|
|
133
|
+
if (!!currentFocusedElement && currentFocusedElement.tagName === 'A') {
|
|
134
|
+
if (currentFocusedElement.getAttribute('use-router') === 'true') {
|
|
135
|
+
this.router.navigate([
|
|
136
|
+
currentFocusedElement.getAttribute('href')
|
|
137
|
+
]);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
if (!!currentFocusedElement.getAttribute('target')) {
|
|
141
|
+
window.open(currentFocusedElement.getAttribute('href'), currentFocusedElement.getAttribute('target'));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
window.open(currentFocusedElement.getAttribute('href'), '_self');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
elementsDisplayed() {
|
|
150
|
+
return this.selectedFocusList && !!this.selectedFocusList.length;
|
|
151
|
+
}
|
|
152
|
+
calculatePopupPosition() {
|
|
153
|
+
const screenWidth = window.innerWidth - 20;
|
|
154
|
+
const screenHeight = window.innerHeight - 20;
|
|
155
|
+
if (this.entryPoint) {
|
|
156
|
+
const popupBoundingRect = this.entryPoint.nativeElement.getBoundingClientRect();
|
|
157
|
+
const triggerButtonBoundingRect = this.buttonTrigger.nativeElement.getBoundingClientRect();
|
|
158
|
+
const calculatedWidth = triggerButtonBoundingRect.x + popupBoundingRect.width;
|
|
159
|
+
const calculatedHeight = triggerButtonBoundingRect.y +
|
|
160
|
+
triggerButtonBoundingRect.height +
|
|
161
|
+
popupBoundingRect.height;
|
|
162
|
+
if (calculatedWidth > screenWidth) {
|
|
163
|
+
this.popupPosition.left =
|
|
164
|
+
-popupBoundingRect.width + triggerButtonBoundingRect.width;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.popupPosition.left = 0;
|
|
168
|
+
}
|
|
169
|
+
if (calculatedHeight > screenHeight) {
|
|
170
|
+
this.popupPosition.top =
|
|
171
|
+
-triggerButtonBoundingRect.height -
|
|
172
|
+
popupBoundingRect.height;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.popupPosition.top = 0;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
FoehnDropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
FoehnDropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: { id: "id", label: "label", model: "model", btnCssClass: "btnCssClass" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "buttonTrigger", first: true, predicate: ["buttonTrigger"], descendants: true, static: true }, { propertyName: "entryPoint", first: true, predicate: ["entryPoint"], descendants: true }, { propertyName: "selectedFocusList", predicate: ["selectedFocusList"], descendants: true }], ngImport: i0, template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ababab!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-lighter);outline:none}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] });
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuComponent, decorators: [{
|
|
183
|
+
type: Component,
|
|
184
|
+
args: [{ selector: 'foehn-dropdown-menu', template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ababab!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-lighter);outline:none}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"] }]
|
|
185
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { selectedFocusList: [{
|
|
186
|
+
type: ViewChildren,
|
|
187
|
+
args: ['selectedFocusList']
|
|
188
|
+
}], buttonTrigger: [{
|
|
189
|
+
type: ViewChild,
|
|
190
|
+
args: ['buttonTrigger', { static: true }]
|
|
191
|
+
}], entryPoint: [{
|
|
192
|
+
type: ViewChild,
|
|
193
|
+
args: ['entryPoint']
|
|
194
|
+
}], id: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], label: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], model: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], btnCssClass: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], hostId: [{
|
|
203
|
+
type: HostBinding,
|
|
204
|
+
args: ['attr.id']
|
|
205
|
+
}], handleKeyboardUpEvent: [{
|
|
206
|
+
type: HostListener,
|
|
207
|
+
args: ['keyup', ['$event']]
|
|
208
|
+
}], handleKeyboardDownEvent: [{
|
|
209
|
+
type: HostListener,
|
|
210
|
+
args: ['keydown', ['$event']]
|
|
211
|
+
}] } });
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9mb2Vobi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kcm9wZG93bi1tZW51L2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjdkMsTUFBTSxPQUFPLDBCQUEwQjtJQWdDbkMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFabEMsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFLOUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBS2xCLDJCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsR0FBRyxFQUFFLENBQUM7WUFDTixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUM7SUFDTixDQUFDO0lBR0QscUJBQXFCLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUdELHVCQUF1QixDQUFDLEtBQW9CO1FBQ3hDLElBQUksSUFBSSxD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O2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxXQUFXO3VCQUFDLFNBQVM7Z0JBa0J0QixxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyx1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEcm9wZG93bk1lbnVHcm91cCB9IGZyb20gJy4vZHJvcGRvd24tbWVudS1ncm91cC50eXBlJztcblxuaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgICBsZWZ0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tZHJvcGRvd24tbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCdzZWxlY3RlZEZvY3VzTGlzdCcpXG4gICAgc2VsZWN0ZWRGb2N1c0xpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvblRyaWdnZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGJ1dHRvblRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeVBvaW50JylcbiAgICBlbnRyeVBvaW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RlbDogRHJvcGRvd25NZW51R3JvdXBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgYnRuQ3NzQ2xhc3MgPSAnYnRuLXNlY29uZGFyeSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNsb3NlRHJvcGRvd25UaW1lcjogYW55O1xuICAgIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGxlZnQ6IDBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRVcEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXREcm9wZG93bigpO1xuICAgICAgICAgICAgdGhpcy5idXR0b25UcmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bklubmVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RJZCA9IHRoaXMuYnVpbGRJZCgpO1xuICAgIH1cblxuICAgIGhhbmRsZUZvY3VzSW4oKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgfVxuXG4gICAgaGFuZGxlRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93blRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0RHJvcGRvd24oKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQ7XG4gICAgICAgIGlmICghYmFzZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtiYXNlSWR9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICB0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93blZpc2libGUgPSAhdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZTtcblxuICAgICAgICBpZiAodGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIC8vIE5lZWQgc2V0VGltZW91dCB0byBiZSBzdXJlIHdlIGhhdmUgbGF0ZXN0IHBvc2l0aW9uIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldERyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldERyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duSW5uZXIoa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGtleUV2ZW50LmNvZGUsIGFuZCBoYXMgZGlmZmVyZW50IHZhbHVlc1xuICAgICAgICAvLyBpbiBrZXlFdmVudC5rZXkgKERvd24gaW5zdGVhZCBvZiBBcnJvd0Rvd24gZm9yIGluc3RhbmNlKSwgaGVuY2UgdGhlIG11bHRpLXN1cHBvcnQuXG4gICAgICAgIGxldCBpZTExQ29tcGF0aWJsZUNvZGUgPSBrZXlFdmVudC5jb2RlIHx8IGtleUV2ZW50LmtleTtcbiAgICAgICAgaWYgKGtleUV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBpZTExQ29tcGF0aWJsZUNvZGUgPSBgU2hpZnQrJHtpZTExQ29tcGF0aWJsZUNvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGllMTFDb21wYXRpYmxlQ29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgIGNhc2UgJ1NoaWZ0K1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0xhc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDdXJyZW50Rm9jdXNJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAga2V5RXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudChkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzRGlzcGxheWVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBkb3duID8gMSA6IC0xO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ICs9IHN0ZXA7XG5cbiAgICAgICAgICAgIGNvbnN0IE1BWF9JTkRFWCA9IHRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gTUFYX0lOREVYO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPiBNQVhfSU5ERVgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0TGlFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5nZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4XG4gICAgICAgICAgICApLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBsaSBjb250YWlucyBhIGxpbmsgYW5kIGZvY3VzIGl0XG4gICAgICAgICAgICBpZiAobmV4dExpRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgICAgICBuZXh0TGlFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgbGktZ3JvdXAtdGl0bGVcbiAgICAgICAgICAgIG5leHRMaUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNGaXJzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0xhc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEN1cnJlbnRGb2N1c0l0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCEhY3VycmVudEZvY3VzZWRFbGVtZW50ICYmIGN1cnJlbnRGb2N1c2VkRWxlbWVudC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd1c2Utcm91dGVyJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghIWN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdfc2VsZidcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRzRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdCAmJiAhIXRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIDIwO1xuICAgICAgICBjb25zdCBzY3JlZW5IZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSAyMDtcblxuICAgICAgICBpZiAodGhpcy5lbnRyeVBvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBwb3B1cEJvdW5kaW5nUmVjdCA9IHRoaXMuZW50cnlQb2ludC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdCA9IHRoaXMuYnV0dG9uVHJpZ2dlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlZFdpZHRoID1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0LnggKyBwb3B1cEJvdW5kaW5nUmVjdC53aWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRIZWlnaHQgPVxuICAgICAgICAgICAgICAgIHRyaWdnZXJCdXR0b25Cb3VuZGluZ1JlY3QueSArXG4gICAgICAgICAgICAgICAgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgIHBvcHVwQm91bmRpbmdSZWN0LmhlaWdodDtcblxuICAgICAgICAgICAgaWYgKGNhbGN1bGF0ZWRXaWR0aCA+IHNjcmVlbldpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uLmxlZnQgPVxuICAgICAgICAgICAgICAgICAgICAtcG9wdXBCb3VuZGluZ1JlY3Qud2lkdGggKyB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0LndpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHVwUG9zaXRpb24ubGVmdCA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkSGVpZ2h0ID4gc2NyZWVuSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uLnRvcCA9XG4gICAgICAgICAgICAgICAgICAgIC10cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0LmhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgIHBvcHVwQm91bmRpbmdSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uLnRvcCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmF2XG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnTmF2Q29udGFpbmVyJylcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2ZvZWhuLWRyb3Bkb3duLW1lbnUuYXJpYS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZElkKCdUcmlnZ2VyQnV0dG9uJylcIlxuICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYnRuQ3NzQ2xhc3NcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd25WaXNpYmlsaXR5KClcIlxuICAgICAgICAoZm9jdXNpbik9XCJoYW5kbGVGb2N1c0luKClcIlxuICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlRm9jdXNPdXQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwidHJ1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNEcm9wZG93blZpc2libGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidkcm9wZG93bi1tZW51LWxpc3QnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCBudWxsXCJcbiAgICAgICAgI2J1dHRvblRyaWdnZXJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LWNvbnRhaW5lclwiICpuZ0lmPVwiISFtb2RlbCAmJiBpc0Ryb3Bkb3duVmlzaWJsZVwiPlxuICAgICAgICA8dWxcbiAgICAgICAgICAgIGlkPVwiZHJvcGRvd24tbWVudS1saXN0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicGFyZW50LWxpc3QgbGlzdC1ncm91cFwiXG4gICAgICAgICAgICAoZm9jdXNpbik9XCJoYW5kbGVGb2N1c0luKClcIlxuICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImhhbmRsZUZvY3VzT3V0KClcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwicG9wdXBQb3NpdGlvbi5sZWZ0XCJcbiAgICAgICAgICAgIFtzdHlsZS50b3AucHhdPVwicG9wdXBQb3NpdGlvbi50b3BcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAjZW50cnlQb2ludFxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBtb2RlbDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWdyb3VwLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBpdGVtLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCInc2VwYXJhdG9yJ1wiXG4gICAgICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICNzZWxlY3RlZEZvY3VzTGlzdFxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nICpuZ0lmPVwiISFncm91cC50aXRsZVwiPnt7IGdyb3VwLnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjaGlsZC1saXN0IGxpc3QtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzZWxlY3RlZEZvY3VzTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbUxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JvdXAudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGl0ZW0tZGl2aWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidzZXBhcmF0b3InXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuaXRlbXM7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdGVkRm9jdXNMaXN0XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtTGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjaXRlbUxpbmsgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGFcbiAgICAgICAgKm5nSWY9XCIhIWl0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICBbYXR0ci51c2Utcm91dGVyXT1cInRydWVcIlxuICAgID48L2E+XG4gICAgPGFcbiAgICAgICAgKm5nSWY9XCIhaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFthdHRyLmhyZWZdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgW2F0dHIudXNlLXJvdXRlcl09XCJmYWxzZVwiXG4gICAgPjwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterLink } from '@angular/router';
|
|
5
|
+
import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
|
|
6
|
+
import { FoehnDropdownMenuComponent } from './foehn-dropdown-menu.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class FoehnDropdownMenuModule {
|
|
9
|
+
}
|
|
10
|
+
FoehnDropdownMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
FoehnDropdownMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuModule, declarations: [FoehnDropdownMenuComponent], imports: [CommonModule, FormsModule, SdkDictionaryModule, RouterLink], exports: [FoehnDropdownMenuComponent] });
|
|
12
|
+
FoehnDropdownMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuModule, imports: [CommonModule, FormsModule, SdkDictionaryModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnDropdownMenuModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [CommonModule, FormsModule, SdkDictionaryModule, RouterLink],
|
|
17
|
+
declarations: [FoehnDropdownMenuComponent],
|
|
18
|
+
exports: [FoehnDropdownMenuComponent]
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZHJvcGRvd24tbWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9mb2Vobi1kcm9wZG93bi1tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBSGpCLDBCQUEwQixhQUQvQixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsYUFFMUQsMEJBQTBCO3FIQUUzQix1QkFBdUIsWUFKdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7MkZBSS9DLHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsQ0FBQztvQkFDckUsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgU2RrRGljdGlvbmFyeU1vZHVsZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5Lm1vZHVsZSc7XG5pbXBvcnQgeyBGb2VobkRyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tZHJvcGRvd24tbWVudS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTZGtEaWN0aW9uYXJ5TW9kdWxlLCBSb3V0ZXJMaW5rXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtGb2VobkRyb3Bkb3duTWVudUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0ZvZWhuRHJvcGRvd25NZW51Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkRyb3Bkb3duTWVudU1vZHVsZSB7fVxuIl19
|
|
@@ -119,10 +119,10 @@ export class FoehnFormComponent {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
FoehnFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
FoehnFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FoehnFormComponent, selector: "foehn-form", inputs: { shouldDisplayAlertSummary: "shouldDisplayAlertSummary" }, queries: [{ propertyName: "childrenInputComponents", predicate: FoehnInputComponent, descendants: true }], viewQueries: [{ propertyName: "ngFormComponent", first: true, predicate: NgForm, descendants: true, static: true }], ngImport: i0, template: "<form id=\"foehn_formContainer\">\n <foehn-validation-alert-summary\n [form]=\"this\"\n ></foehn-validation-alert-summary>\n\n <ng-content></ng-content>\n</form>\n", dependencies: [{ kind: "component", type: i1.FoehnValidationAlertSummaryComponent, selector: "foehn-validation-alert-summary", inputs: ["form"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
122
|
+
FoehnFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FoehnFormComponent, selector: "foehn-form", inputs: { shouldDisplayAlertSummary: "shouldDisplayAlertSummary" }, queries: [{ propertyName: "childrenInputComponents", predicate: FoehnInputComponent, descendants: true }], viewQueries: [{ propertyName: "ngFormComponent", first: true, predicate: NgForm, descendants: true, static: true }], ngImport: i0, template: "<form id=\"foehn_formContainer\" aria-live=\"polite\" aria-atomic=\"false\">\n <foehn-validation-alert-summary\n [form]=\"this\"\n ></foehn-validation-alert-summary>\n\n <ng-content></ng-content>\n</form>\n", dependencies: [{ kind: "component", type: i1.FoehnValidationAlertSummaryComponent, selector: "foehn-validation-alert-summary", inputs: ["form"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FoehnFormComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
125
|
-
args: [{ selector: 'foehn-form', template: "<form id=\"foehn_formContainer\">\n <foehn-validation-alert-summary\n [form]=\"this\"\n ></foehn-validation-alert-summary>\n\n <ng-content></ng-content>\n</form>\n" }]
|
|
125
|
+
args: [{ selector: 'foehn-form', template: "<form id=\"foehn_formContainer\" aria-live=\"polite\" aria-atomic=\"false\">\n <foehn-validation-alert-summary\n [form]=\"this\"\n ></foehn-validation-alert-summary>\n\n <ng-content></ng-content>\n</form>\n" }]
|
|
126
126
|
}], ctorParameters: function () { return []; }, propDecorators: { shouldDisplayAlertSummary: [{
|
|
127
127
|
type: Input
|
|
128
128
|
}], ngFormComponent: [{
|
|
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
132
132
|
type: ContentChildren,
|
|
133
133
|
args: [FoehnInputComponent, { descendants: true }]
|
|
134
134
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZm9ybS9mb2Vobi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7SUFnQjNCO1FBZEEsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBU3pCLHVCQUFrQixHQUFjLEVBQUUsQ0FBQztRQU12QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3JELHNCQUFzQixDQUN6QixDQUFDO1FBQ0YsMERBQTBEO1FBQzFELElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUMzRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FDeEMsQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQStCLEtBQUs7UUFDdEMsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0Is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UUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0dBbkpRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhKQU9WLG1CQUFtQixpR0FIekIsTUFBTSw4REN4QnJCLHFMQU9BOzJGRGFhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDSSxZQUFZOzBFQUt0Qix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSzNCLHVCQUF1QjtzQkFGOUIsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZm9ybS9yZWdpc3Rlci1uZy1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkRGlzcGxheUFsZXJ0U3VtbWFyeSA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKE5nRm9ybSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBuZ0Zvcm1Db21wb25lbnQ6IE5nRm9ybTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRm9laG5JbnB1dENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBjaGlsZHJlbklucHV0Q29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj47XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWROZ01vZGVsczogTmdNb2RlbFtdID0gW107XG4gICAgcHJpdmF0ZSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlOiBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgUmVnaXN0ZXJOZ01vZGVsU2VydmljZVxuICAgICAgICApO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbiA9IHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZS51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHNTdWJqZWN0LnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHRoaXMudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXNldChyZXNldENoaWxkcmVuVmFsdWVzOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHJlc2V0Q2hpbGRyZW5WYWx1ZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiB0aGlzLmdldEFsbENvbXBvbmVudHMoKSkge1xuICAgICAgICAgICAgICAgIGMucmVzZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROZ01vZGVscyA9IHRoaXMuZ2V0QWxsTmF0aXZlTW9kZWxzKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHRvQmVSZWdpc3RlcmVkOiBhbnlbXSA9IFtdO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCB0b0JlRGVsZXRlZDogYW55W10gPSBbXTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5mb3JFYWNoKG5nID0+IHtcbiAgICAgICAgICAgIGlmICghY3VycmVudE5nTW9kZWxzLmluY2x1ZGVzKG5nKSkge1xuICAgICAgICAgICAgICAgIHRvQmVEZWxldGVkLnB1c2gobmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY3VycmVudE5nTW9kZWxzLmZvckVhY2gobmcgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5pbmNsdWRlcyhuZykpIHtcbiAgICAgICAgICAgICAgICB0b0JlUmVnaXN0ZXJlZC5wdXNoKG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdG9CZURlbGV0ZWQuZm9yRWFjaChuZyA9PiB0aGlzLmRlbGV0ZU5nTW9kZWwobmcpKTtcbiAgICAgICAgdG9CZVJlZ2lzdGVyZWQuZm9yRWFjaChuZyA9PiB0aGlzLnJlZ2lzdGVyTmdNb2RlbChuZykpO1xuICAgIH1cblxuICAgIGdldEFsbE5hdGl2ZU1vZGVscygpOiBOZ01vZGVsW10ge1xuICAgICAgICBjb25zdCBtb2RlbHM6IE5nTW9kZWxbXSA9IFtdO1xuICAgICAgICB0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLmdldE5hdGl2ZUlucHV0TGlzdCgpLmZvckVhY2gobSA9PiB7XG4gICAgICAgICAgICAgICAgbW9kZWxzLnB1c2gobSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtb2RlbHM7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBnZXRBbGxDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TWVBbmRTdWJDb21wb25lbnRzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZ2V0QWxsQ29tcG9uZW50cygpLnNvbWUoaSA9PiBpLmhhc0Vycm9ycygpKTtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0SW5FcnJvcigpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgYWxsQ29tcG9uZW50czogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSB0aGlzLmdldEFsbENvbXBvbmVudHMoKTtcblxuICAgICAgICBpZiAoYWxsQ29tcG9uZW50cyAmJiBhbGxDb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29tcG9uZW50SW5FcnJvciA9IGFsbENvbXBvbmVudHMuZmluZChjb21wb25lbnQgPT5cbiAgICAgICAgICAgICAgICBjb21wb25lbnQuaGFzRXJyb3JzKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZmlyc3RDb21wb25lbnRJbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb21wb25lbnRJbkVycm9yLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0KCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBhbGxDb21wb25lbnRzOiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSA9IHRoaXMuZ2V0QWxsQ29tcG9uZW50cygpO1xuXG4gICAgICAgIGlmIChhbGxDb21wb25lbnRzICYmIGFsbENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYWxsQ29tcG9uZW50c1swXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNFcnJvclN1bW1hcnkoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldFRpbWVvdXQgdG8gaW1wcm92ZSB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIHNvbWUgc2NyZWVuIHJlYWRlcnMuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JTdW1tYXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yLXN1bW1hcnknKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yU3VtbWFyeSkge1xuICAgICAgICAgICAgICAgIGVycm9yU3VtbWFyeS5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgIGVycm9yU3VtbWFyeS5mb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBlcnJvciBzdW1tYXJ5LCBvciBpZiB0aGUgZXJyb3Igc3VtbWFyeSBkb2Vzbid0IGNvbnRhaW4gYW55IGNvbXBhdGlibGUgZXJyb3IuXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0SW5FcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbChuZzogTmdNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5wdXNoKG5nKTtcbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuYWRkQ29udHJvbChuZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVOZ01vZGVsKG5nOiBOZ01vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuaW5kZXhPZihuZyk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmdGb3JtQ29tcG9uZW50LnJlbW92ZUNvbnRyb2wobmcpO1xuICAgIH1cbn1cbiIsIjxmb3JtIGlkPVwiZm9laG5fZm9ybUNvbnRhaW5lclwiPlxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0LXN1bW1hcnlcbiAgICAgICAgW2Zvcm1dPVwidGhpc1wiXG4gICAgPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydC1zdW1tYXJ5PlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mb3JtPlxuIl19
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZm9ybS9mb2Vobi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7SUFnQjNCO1FBZEEsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBU3pCLHVCQUFrQixHQUFjLEVBQUUsQ0FBQztRQU12QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3JELHNCQUFzQixDQUN6QixDQUFDO1FBQ0YsMERBQTBEO1FBQzFELElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUMzRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FDeEMsQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQStCLEtBQUs7UUFDdEMsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0Is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UUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0dBbkpRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDhKQU9WLG1CQUFtQixpR0FIekIsTUFBTSw4REN4QnJCLGdPQU9BOzJGRGFhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDSSxZQUFZOzBFQUt0Qix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSzNCLHVCQUF1QjtzQkFGOUIsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZm9ybS9yZWdpc3Rlci1uZy1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkRGlzcGxheUFsZXJ0U3VtbWFyeSA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKE5nRm9ybSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBuZ0Zvcm1Db21wb25lbnQ6IE5nRm9ybTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRm9laG5JbnB1dENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBjaGlsZHJlbklucHV0Q29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj47XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWROZ01vZGVsczogTmdNb2RlbFtdID0gW107XG4gICAgcHJpdmF0ZSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlOiBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgUmVnaXN0ZXJOZ01vZGVsU2VydmljZVxuICAgICAgICApO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbiA9IHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZS51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHNTdWJqZWN0LnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHRoaXMudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXNldChyZXNldENoaWxkcmVuVmFsdWVzOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHJlc2V0Q2hpbGRyZW5WYWx1ZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiB0aGlzLmdldEFsbENvbXBvbmVudHMoKSkge1xuICAgICAgICAgICAgICAgIGMucmVzZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROZ01vZGVscyA9IHRoaXMuZ2V0QWxsTmF0aXZlTW9kZWxzKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHRvQmVSZWdpc3RlcmVkOiBhbnlbXSA9IFtdO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCB0b0JlRGVsZXRlZDogYW55W10gPSBbXTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5mb3JFYWNoKG5nID0+IHtcbiAgICAgICAgICAgIGlmICghY3VycmVudE5nTW9kZWxzLmluY2x1ZGVzKG5nKSkge1xuICAgICAgICAgICAgICAgIHRvQmVEZWxldGVkLnB1c2gobmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY3VycmVudE5nTW9kZWxzLmZvckVhY2gobmcgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5pbmNsdWRlcyhuZykpIHtcbiAgICAgICAgICAgICAgICB0b0JlUmVnaXN0ZXJlZC5wdXNoKG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdG9CZURlbGV0ZWQuZm9yRWFjaChuZyA9PiB0aGlzLmRlbGV0ZU5nTW9kZWwobmcpKTtcbiAgICAgICAgdG9CZVJlZ2lzdGVyZWQuZm9yRWFjaChuZyA9PiB0aGlzLnJlZ2lzdGVyTmdNb2RlbChuZykpO1xuICAgIH1cblxuICAgIGdldEFsbE5hdGl2ZU1vZGVscygpOiBOZ01vZGVsW10ge1xuICAgICAgICBjb25zdCBtb2RlbHM6IE5nTW9kZWxbXSA9IFtdO1xuICAgICAgICB0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLmdldE5hdGl2ZUlucHV0TGlzdCgpLmZvckVhY2gobSA9PiB7XG4gICAgICAgICAgICAgICAgbW9kZWxzLnB1c2gobSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtb2RlbHM7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBnZXRBbGxDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TWVBbmRTdWJDb21wb25lbnRzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZ2V0QWxsQ29tcG9uZW50cygpLnNvbWUoaSA9PiBpLmhhc0Vycm9ycygpKTtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0SW5FcnJvcigpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgYWxsQ29tcG9uZW50czogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSB0aGlzLmdldEFsbENvbXBvbmVudHMoKTtcblxuICAgICAgICBpZiAoYWxsQ29tcG9uZW50cyAmJiBhbGxDb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Q29tcG9uZW50SW5FcnJvciA9IGFsbENvbXBvbmVudHMuZmluZChjb21wb25lbnQgPT5cbiAgICAgICAgICAgICAgICBjb21wb25lbnQuaGFzRXJyb3JzKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZmlyc3RDb21wb25lbnRJbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb21wb25lbnRJbkVycm9yLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0KCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBhbGxDb21wb25lbnRzOiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSA9IHRoaXMuZ2V0QWxsQ29tcG9uZW50cygpO1xuXG4gICAgICAgIGlmIChhbGxDb21wb25lbnRzICYmIGFsbENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYWxsQ29tcG9uZW50c1swXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNFcnJvclN1bW1hcnkoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldFRpbWVvdXQgdG8gaW1wcm92ZSB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIHNvbWUgc2NyZWVuIHJlYWRlcnMuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JTdW1tYXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yLXN1bW1hcnknKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yU3VtbWFyeSkge1xuICAgICAgICAgICAgICAgIGVycm9yU3VtbWFyeS5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgIGVycm9yU3VtbWFyeS5mb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBlcnJvciBzdW1tYXJ5LCBvciBpZiB0aGUgZXJyb3Igc3VtbWFyeSBkb2Vzbid0IGNvbnRhaW4gYW55IGNvbXBhdGlibGUgZXJyb3IuXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0SW5FcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbChuZzogTmdNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5wdXNoKG5nKTtcbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuYWRkQ29udHJvbChuZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVOZ01vZGVsKG5nOiBOZ01vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuaW5kZXhPZihuZyk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmdGb3JtQ29tcG9uZW50LnJlbW92ZUNvbnRyb2wobmcpO1xuICAgIH1cbn1cbiIsIjxmb3JtIGlkPVwiZm9laG5fZm9ybUNvbnRhaW5lclwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYXRvbWljPVwiZmFsc2VcIj5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydC1zdW1tYXJ5XG4gICAgICAgIFtmb3JtXT1cInRoaXNcIlxuICAgID48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnQtc3VtbWFyeT5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZm9ybT5cbiJdfQ==
|