@agorapulse/ui-components 18.0.13 → 18.0.15
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/agorapulse-ui-components-18.0.15.tgz +0 -0
- package/avatar/avatar.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/esm2022/add-comment/add-comment.component.mjs +3 -3
- package/esm2022/checkbox/checkbox.component.mjs +5 -4
- package/esm2022/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/labels/label-list.component.mjs +3 -3
- package/esm2022/labels-selector/labels-selector.component.mjs +3 -3
- package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +3 -3
- package/esm2022/modal/modal.component.mjs +3 -3
- package/esm2022/nav-selector/directives/nav-selector-popover-trigger.directive.mjs +71 -0
- package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +15 -12
- package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +17 -14
- package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +38 -94
- package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +2 -2
- package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.mjs +6 -6
- package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.mjs +12 -9
- package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +14 -0
- package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover.component.mjs +127 -0
- package/esm2022/nav-selector/nav-selector.component.mjs +45 -23
- package/esm2022/nav-selector/nav-selector.mjs +1 -1
- package/esm2022/nav-selector/nav-selector.state.mjs +35 -11
- package/esm2022/nav-selector/utils/leaf.utils.mjs +12 -3
- package/esm2022/nav-selector/utils/nav-selector.accessibility.mjs +22 -14
- package/esm2022/nav-selector/utils/nav-selector.builder.mjs +4 -2
- package/esm2022/nav-selector/utils/nav-selector.filter.mjs +49 -11
- package/esm2022/nav-selector/utils/nav-selector.folding.mjs +26 -23
- package/esm2022/nav-selector/utils/nav-selector.merger.mjs +76 -0
- package/esm2022/nav-selector/utils/nav-selector.minifying.mjs +14 -9
- package/esm2022/nav-selector/utils/nav-selector.multi-select.mjs +2 -2
- package/esm2022/nav-selector/utils/nav-selector.single-select.mjs +46 -23
- package/esm2022/neo-datepicker/neo-datepicker.component.mjs +3 -3
- package/esm2022/notification/notification.component.mjs +3 -3
- package/esm2022/paginator/paginator-button/paginator-button.component.mjs +2 -2
- package/esm2022/password-input/password-input.component.mjs +3 -3
- package/esm2022/popmenu/popmenu.component.mjs +3 -3
- package/esm2022/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +3 -3
- package/esm2022/stepper/stepper.component.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +4 -3
- package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-datepicker.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-modal.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +599 -238
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-notification.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-paginator.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-password-input.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-popmenu.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-stepper.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
- package/nav-selector/directives/nav-selector-popover-trigger.directive.d.ts +25 -0
- package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +1 -1
- package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +5 -20
- package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +1 -1
- package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.d.ts +1 -1
- package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +6 -0
- package/nav-selector/nav-selector-popover/nav-selector-popover.component.d.ts +39 -0
- package/nav-selector/nav-selector.component.d.ts +6 -4
- package/nav-selector/nav-selector.d.ts +6 -0
- package/nav-selector/nav-selector.state.d.ts +3 -2
- package/nav-selector/utils/leaf.utils.d.ts +15 -2
- package/nav-selector/utils/nav-selector.accessibility.d.ts +1 -1
- package/nav-selector/utils/nav-selector.filter.d.ts +3 -1
- package/nav-selector/utils/nav-selector.folding.d.ts +6 -3
- package/nav-selector/utils/nav-selector.merger.d.ts +23 -0
- package/nav-selector/utils/nav-selector.minifying.d.ts +4 -2
- package/nav-selector/utils/nav-selector.single-select.d.ts +2 -0
- package/package.json +1 -1
- package/agorapulse-ui-components-18.0.13.tgz +0 -0
|
@@ -6,11 +6,13 @@ import { apChevronDown, apChevronUp, apErrorFill, apFeatureLock, SymbolComponent
|
|
|
6
6
|
import { apMore } from '@agorapulse/ui-symbol/icons';
|
|
7
7
|
import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
|
|
8
8
|
import { NgTemplateOutlet } from '@angular/common';
|
|
9
|
-
import { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, input, signal, viewChild } from '@angular/core';
|
|
10
|
-
import {
|
|
9
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked, viewChild, } from '@angular/core';
|
|
10
|
+
import { NavSelectorPopoverTriggerDirective } from '../directives/nav-selector-popover-trigger.directive';
|
|
11
11
|
import { TreeNodeAccessibilityDirective } from '../directives/tree-node-accessibility.directive';
|
|
12
12
|
import { NavSelectorLeafDetailComponent } from '../nav-selector-leaf-detail/nav-selector-leaf-detail.component';
|
|
13
13
|
import { NavSelectorLeafDetailsComponent } from '../nav-selector-leaf-details/nav-selector-leaf-details.component';
|
|
14
|
+
import { NavSelectorPopoverItemComponent } from '../nav-selector-popover/nav-selector-popover-item.component';
|
|
15
|
+
import { NavSelectorPopoverComponent } from '../nav-selector-popover/nav-selector-popover.component';
|
|
14
16
|
import { NavSelectorLeafPresenter } from './nav-selector-leaf.presenter';
|
|
15
17
|
import * as i0 from "@angular/core";
|
|
16
18
|
import * as i1 from "./nav-selector-leaf.presenter";
|
|
@@ -20,11 +22,8 @@ export class NavSelectorLeafComponent {
|
|
|
20
22
|
leaf = input.required();
|
|
21
23
|
initial = computed(() => this.leaf().alias[0].toUpperCase());
|
|
22
24
|
foldSymbol = computed(() => (this.leaf().folded ? 'chevron-down' : 'chevron-up'));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
onlyButtonDisplayed = computed(() => this.navSelectorLeafPresenter.isMultipleModeEnabled() &&
|
|
26
|
-
(this.hovering() || this.leaf().accessibility.tabIndex === 0) &&
|
|
27
|
-
this.leaf().selectable);
|
|
25
|
+
focused = signal(false);
|
|
26
|
+
detailSelected = computed(() => this.leaf().details.some(({ selected }) => selected));
|
|
28
27
|
aliasEl = viewChild('alias');
|
|
29
28
|
aliasBoundedClientRect = signal({
|
|
30
29
|
offsetWidth: 0,
|
|
@@ -42,26 +41,24 @@ export class NavSelectorLeafComponent {
|
|
|
42
41
|
if (disableReason) {
|
|
43
42
|
content.push(disableReason);
|
|
44
43
|
}
|
|
45
|
-
if (this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
if (this.navSelectorLeafPresenter.isMultipleModeEnabled()) {
|
|
45
|
+
if (this.leaf().displayFeatureLocked) {
|
|
46
|
+
content.push(this.navSelectorLeafPresenter.texts().featureLocked);
|
|
47
|
+
}
|
|
48
|
+
if (this.leaf().displayTokenInvalid) {
|
|
49
|
+
content.push(this.navSelectorLeafPresenter.texts().tokenInvalid);
|
|
50
|
+
}
|
|
50
51
|
}
|
|
51
52
|
return content.join('<br>');
|
|
52
53
|
});
|
|
53
54
|
tooltipDisabled = computed(() => !this.tooltipContent().length || this.leaf().detailsDisplayable);
|
|
54
|
-
minifiedEl = viewChild('minified');
|
|
55
|
-
menuEl = viewChild('menuContainer');
|
|
56
|
-
menuTriggerEl = viewChild('menuTrigger');
|
|
57
|
-
actionMenuTriggerEl = viewChild('actionMenuTrigger');
|
|
58
55
|
foldedWithDelay = signal(false);
|
|
59
56
|
network = computed(() => (this.leaf().network ? this.leaf().network : undefined));
|
|
60
57
|
constructor(el, navSelectorLeafPresenter) {
|
|
61
58
|
this.el = el;
|
|
62
59
|
this.navSelectorLeafPresenter = navSelectorLeafPresenter;
|
|
63
60
|
afterNextRender(() => {
|
|
64
|
-
this.maxHeight.set(`${this.el.nativeElement.
|
|
61
|
+
this.maxHeight.set(`${this.el.nativeElement.clientHeight * this.leaf().details.length}px`);
|
|
65
62
|
const el = this.aliasEl()?.nativeElement;
|
|
66
63
|
if (el) {
|
|
67
64
|
this.aliasBoundedClientRect.set({
|
|
@@ -73,74 +70,42 @@ export class NavSelectorLeafComponent {
|
|
|
73
70
|
}
|
|
74
71
|
});
|
|
75
72
|
effect(() => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
73
|
+
const folded = this.leaf().folded;
|
|
74
|
+
untracked(() => {
|
|
75
|
+
if (folded) {
|
|
76
|
+
setTimeout(() => this.foldedWithDelay.set(true), 150);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.foldedWithDelay.set(false);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
83
|
}
|
|
84
84
|
animationState = computed(() => (this.leaf().folded ? 'collapsed' : 'expanded'));
|
|
85
85
|
maxHeight = signal('0px');
|
|
86
|
-
onClick(
|
|
87
|
-
|
|
88
|
-
this.navSelectorLeafPresenter.
|
|
86
|
+
onClick(event) {
|
|
87
|
+
event.stopImmediatePropagation();
|
|
88
|
+
this.navSelectorLeafPresenter.selectLeaf(this.leaf());
|
|
89
89
|
}
|
|
90
90
|
toggleFolding(event) {
|
|
91
91
|
event.stopImmediatePropagation();
|
|
92
92
|
this.navSelectorLeafPresenter.onLeafToggleFolding(this.leaf());
|
|
93
93
|
}
|
|
94
|
-
mouseEntered() {
|
|
95
|
-
this.hovering.set(true);
|
|
96
|
-
const menuTrigger = this.menuTriggerEl();
|
|
97
|
-
if (menuTrigger && this.leaf().detailsDisplayable) {
|
|
98
|
-
menuTrigger.openMenu();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
mouseLeft($event) {
|
|
102
|
-
this.hovering.set(false);
|
|
103
|
-
const menuTrigger = this.menuTriggerEl();
|
|
104
|
-
if (menuTrigger) {
|
|
105
|
-
setTimeout(() => {
|
|
106
|
-
this.tryCloseMenu(menuTrigger, $event);
|
|
107
|
-
}, 100);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
mouseEnteredMenu() {
|
|
111
|
-
this.hoveringMenu.set(true);
|
|
112
|
-
}
|
|
113
|
-
mouseLeftMenu(menuTrigger, $event) {
|
|
114
|
-
this.hoveringMenu.set(false);
|
|
115
|
-
this.tryCloseMenu(menuTrigger, $event);
|
|
116
|
-
}
|
|
117
|
-
menuOpened() {
|
|
118
|
-
if (!this.leaf().detailsDisplayable) {
|
|
119
|
-
this.menuTriggerEl()?.closeMenu();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
onActionButtonClick($event) {
|
|
123
|
-
$event.stopImmediatePropagation();
|
|
124
|
-
}
|
|
125
|
-
onActionButtonKeyDownSpaceOrEnter($event) {
|
|
126
|
-
$event.stopImmediatePropagation();
|
|
127
|
-
this.actionMenuTriggerEl()?.openMenu();
|
|
128
|
-
}
|
|
129
94
|
selectOnly(event) {
|
|
130
95
|
event.stopImmediatePropagation();
|
|
131
96
|
this.navSelectorLeafPresenter.selectOnlyLeaf(this.leaf());
|
|
132
97
|
}
|
|
133
98
|
onCheckboxToggle() {
|
|
134
|
-
this.navSelectorLeafPresenter.
|
|
99
|
+
this.navSelectorLeafPresenter.selectLeaf(this.leaf());
|
|
135
100
|
}
|
|
136
|
-
onSpaceOrEnterPressed(
|
|
137
|
-
|
|
101
|
+
onSpaceOrEnterPressed(event) {
|
|
102
|
+
event.stopImmediatePropagation();
|
|
138
103
|
if (document.activeElement === this.el.nativeElement.querySelector('.nav-selector-leaf')) {
|
|
139
104
|
if (this.leaf().foldable) {
|
|
140
|
-
this.toggleFolding(
|
|
105
|
+
this.toggleFolding(event);
|
|
141
106
|
}
|
|
142
107
|
else {
|
|
143
|
-
this.navSelectorLeafPresenter.
|
|
108
|
+
this.navSelectorLeafPresenter.selectLeaf(this.leaf());
|
|
144
109
|
}
|
|
145
110
|
}
|
|
146
111
|
}
|
|
@@ -152,27 +117,8 @@ export class NavSelectorLeafComponent {
|
|
|
152
117
|
event.stopImmediatePropagation();
|
|
153
118
|
this.navSelectorLeafPresenter.unfold(this.leaf());
|
|
154
119
|
}
|
|
155
|
-
tryCloseMenu(menuTrigger, $event) {
|
|
156
|
-
if (!this.hoveringMenu()) {
|
|
157
|
-
const minifiedEl = this.minifiedEl();
|
|
158
|
-
const minifiedBoundedClientRect = minifiedEl.nativeElement.getBoundingClientRect();
|
|
159
|
-
const mouseHoveringLeaf = this.mouseIsHovering($event, minifiedBoundedClientRect);
|
|
160
|
-
const menuEl = this.menuEl();
|
|
161
|
-
const menuBoundedClientRect = menuEl.nativeElement.getBoundingClientRect();
|
|
162
|
-
const mouseHoveringMenu = this.mouseIsHovering($event, menuBoundedClientRect);
|
|
163
|
-
if (!mouseHoveringLeaf && !mouseHoveringMenu) {
|
|
164
|
-
menuTrigger.closeMenu();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
mouseIsHovering($event, boundingClientRect) {
|
|
169
|
-
return (boundingClientRect.left <= $event.clientX &&
|
|
170
|
-
$event.clientX <= boundingClientRect.right &&
|
|
171
|
-
boundingClientRect.top <= $event.clientY &&
|
|
172
|
-
$event.clientY <= boundingClientRect.bottom);
|
|
173
|
-
}
|
|
174
120
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorLeafComponent, deps: [{ token: i0.ElementRef }, { token: i1.NavSelectorLeafPresenter }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NavSelectorLeafComponent, isStandalone: true, selector: "ap-nav-selector-leaf", inputs: { leaf: { classPropertyName: "leaf", publicName: "leaf", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, listeners: { "mouseenter": "mouseEntered()", "mouseleave": "mouseLeft($event)", "keydown.arrowLeft": "fold($event)", "keydown.arrowRight": "unfold($event)" }, properties: { "class.minified": "!navSelectorLeafPresenter.expanded()" } }, providers: [withSymbols(apErrorFill, apFeatureLock, apChevronDown, apChevronUp, apMore), NavSelectorLeafPresenter], viewQueries: [{ propertyName: "aliasEl", first: true, predicate: ["alias"], descendants: true, isSignal: true }, { propertyName: "minifiedEl", first: true, predicate: ["minified"], descendants: true, isSignal: true }, { propertyName: "menuEl", first: true, predicate: ["menuContainer"], descendants: true, isSignal: true }, { propertyName: "menuTriggerEl", first: true, predicate: ["menuTrigger"], descendants: true, isSignal: true }, { propertyName: "actionMenuTriggerEl", first: true, predicate: ["actionMenuTrigger"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (navSelectorLeafPresenter.expandedAfterDelay()) {\n <div\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n role=\"treeitem\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\"\n (change)=\"onCheckboxToggle()\" />\n }\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <span\n #alias\n class=\"caption\">\n {{ leaf().alias }}\n </span>\n\n @if (onlyButtonDisplayed()) {\n <a\n class=\"standalone\"\n role=\"button\"\n [attr.aria-label]=\"'Select only ' + leaf().alias\"\n [attr.tabindex]=\"leaf().accessibility.tabIndex\"\n (keydown.space)=\"selectOnly($event)\"\n (keydown.enter)=\"selectOnly($event)\"\n (click)=\"selectOnly($event)\">\n {{ navSelectorLeafPresenter.texts().only }}\n </a>\n } @else {\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [background]=\"false\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n\n @let actionProjection = navSelectorLeafPresenter.leafActionProjection();\n @if (actionProjection?.length) {\n <ap-symbol\n #actionMenuTrigger=\"matMenuTrigger\"\n class=\"actions-menu\"\n size=\"sm\"\n symbolId=\"more\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Action menu ' + leaf().alias\"\n [matMenuTriggerFor]=\"actionMenu\"\n (click)=\"onActionButtonClick($event)\"\n (keydown.space)=\"onActionButtonKeyDownSpaceOrEnter($event)\"\n (keydown.enter)=\"onActionButtonKeyDownSpaceOrEnter($event)\" />\n\n <mat-menu #actionMenu=\"matMenu\">\n @for (action of actionProjection; track action) {\n <button mat-menu-item>\n <ng-container\n [ngTemplateOutlet]=\"action\"\n [ngTemplateOutletContext]=\"{\n uid: leaf().uid\n }\" />\n </button>\n }\n </mat-menu>\n }\n\n @if (leaf().foldable) {\n <ap-symbol\n class=\"folding-button\"\n size=\"sm\"\n role=\"button\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Toggle ' + leaf().alias\"\n [symbolId]=\"foldSymbol()\"\n (click)=\"toggleFolding($event)\"\n (keydown.space)=\"toggleFolding($event)\"\n (keydown.enter)=\"toggleFolding($event)\" />\n }\n }\n </div>\n\n <div\n class=\"details-container\"\n [@accordion]=\"{\n value: animationState(),\n params: {\n maxHeight: maxHeight()\n }\n }\">\n @if (!foldedWithDelay()) {\n <ap-nav-selector-leaf-details [details]=\"leaf().details\" [leaf]=\"leaf()\"/>\n }\n </div>\n} @else {\n <div\n #menuTrigger=\"matMenuTrigger\"\n #minified\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [matMenuTriggerFor]=\"menu\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (menuOpened)=\"menuOpened()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\" />\n }\n\n <div class=\"avatar-container\">\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <div class=\"status\">\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [notif]=\"true\"\n [background]=\"true\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n </div>\n <mat-menu\n #menu=\"matMenu\"\n class=\"nav-selector-leaf-menu\"\n xPosition=\"after\"\n [hasBackdrop]=\"false\">\n <div\n #menuContainer\n [class.not-displayable]=\"!leaf().detailsDisplayable\"\n (mouseenter)=\"mouseEnteredMenu()\"\n (mouseleave)=\"mouseLeftMenu(menuTrigger, $event)\">\n <button mat-menu-item>\n <span class=\"caption-bold\">{{ leaf().alias }}</span>\n </button>\n @for (detail of leaf().details; track detail.uid) {\n <button\n mat-menu-item\n [class.selected]=\"detail.selected\">\n <ap-nav-selector-leaf-detail\n [embedded]=\"true\"\n [detail]=\"detail\" />\n </button>\n }\n </div>\n </mat-menu>\n </div>\n}\n", styles: [":host{display:flex;gap:2px;flex-shrink:0;align-self:stretch;flex-direction:column}:host .details-container{align-self:stretch}:host .nav-selector-leaf{position:relative;display:flex;padding:0 var(--ref-spacing-xxs);height:36px;align-items:center;gap:var(--ref-spacing-xxs);flex-shrink:0;flex-grow:1;align-self:stretch}:host .caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;flex:1 0 0;overflow:hidden;color:var(--ref-color-grey-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-regular);line-height:var(--ref-font-line-height-xs)}:host ap-symbol[symbol-id=error_fill]{color:var(--ref-color-red-100)}:host ap-symbol[symbol-id=feature-lock]{color:var(--ref-color-purple-100)}:host ap-symbol[symbol-id=chevron-down],:host ap-symbol[symbol-id=chevron-up]{color:var(--ref-color-grey-80)}:host .folding-button,:host .actions-menu{display:flex;width:24px;height:24px;justify-content:center;align-items:center;flex-shrink:0}:host .folding-button:hover,:host .actions-menu:hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .folding-button:active,:host .actions-menu:active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-40)}:host .folding-button:focus,:host .actions-menu:focus{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector-leaf:not(.disabled){cursor:pointer}:host .nav-selector-leaf:not(.disabled):hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10)}:host .nav-selector-leaf:not(.disabled):active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):focus{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):focus-within{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled).selected{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled).selected:focus{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.feature-locked{border-radius:var(--ref-border-radius-sm)}:host .nav-selector-leaf.feature-locked:hover{background:var(--ref-color-purple-10)}:host .nav-selector-leaf.feature-locked:active{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:focus{background:var(--ref-color-purple-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-purple-100)}:host .nav-selector-leaf.feature-locked.selected{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked.selected:focus{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.disabled{opacity:.5}:host .status{position:absolute;right:-4px;top:-6px}:host .avatar-container{position:relative}:host.minified .nav-selector-leaf{gap:var(--ref-spacing-xxxs);justify-content:center}:host.minified ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}::ng-deep .nav-selector-leaf-menu{position:absolute;left:55px;top:-20%;width:225px}::ng-deep .nav-selector-leaf-menu .not-displayable{display:none}::ng-deep .nav-selector-leaf-menu .caption-bold{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}::ng-deep .nav-selector-leaf-menu.mat-mdc-menu-panel:not(.pop-menu) .mat-mdc-menu-item.selected{background:var(--ref-color-electric-blue-20)}::ng-deep .nav-selector-leaf-menu.mat-mdc-menu-panel:not(.pop-menu) .mat-mdc-menu-item ap-symbol{padding-right:0}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "ap-avatar", inputs: ["profilePicture", "alt", "network", "size", "username", "showInitials", "bigNetwork", "anonymous", "online", "youtubeAvatarMode", "rounded"] }, { kind: "component", type: CounterComponent, selector: "ap-counter", inputs: ["color", "size", "background", "notif"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "component", type: NavSelectorLeafDetailsComponent, selector: "ap-nav-selector-leaf-details", inputs: ["leaf", "details"] }, { kind: "component", type: CheckboxComponent, selector: "ap-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "disabled", "indeterminate", "checked", "required", "name"], outputs: ["change"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: NavSelectorLeafDetailComponent, selector: "ap-nav-selector-leaf-detail", inputs: ["detail", "embedded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TreeNodeAccessibilityDirective, selector: "[apTreeNodeAccessibility]", inputs: ["apTreeNodeAccessibility"] }], animations: [
|
|
121
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NavSelectorLeafComponent, isStandalone: true, selector: "ap-nav-selector-leaf", inputs: { leaf: { classPropertyName: "leaf", publicName: "leaf", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, listeners: { "keydown.arrowLeft": "fold($event)", "keydown.arrowRight": "unfold($event)" }, properties: { "class.minified": "!navSelectorLeafPresenter.expanded()" } }, providers: [withSymbols(apErrorFill, apFeatureLock, apChevronDown, apChevronUp, apMore), NavSelectorLeafPresenter], viewQueries: [{ propertyName: "aliasEl", first: true, predicate: ["alias"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (navSelectorLeafPresenter.expandedAfterDelay()) {\n <div\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [attr.aria-selected]=\"leaf().selected\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [class.multiple-mode]=\"navSelectorLeafPresenter.isMultipleModeEnabled()\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [class.actions-displayable]=\"leaf().actionsDisplayable && leaf().detailsDisplayable\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (focusin)=\"focused.set(true)\"\n (focusout)=\"focused.set(false)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [aria-label]=\"leaf().alias\"\n [disabled]=\"!leaf().selectable\"\n (change)=\"onCheckboxToggle()\" />\n }\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <span\n #alias\n class=\"caption\">\n {{ leaf().alias }}\n </span>\n\n <a\n class=\"standalone only-button\"\n role=\"button\"\n [attr.aria-label]=\"'Select only ' + leaf().alias\"\n [attr.tabindex]=\"leaf().accessibility.tabIndex\"\n (keydown.space)=\"selectOnly($event)\"\n (keydown.enter)=\"selectOnly($event)\"\n (click)=\"selectOnly($event)\">\n {{ navSelectorLeafPresenter.texts().only }}\n </a>\n\n @let actionProjection = navSelectorLeafPresenter.leafActionProjection();\n @if (actionProjection?.length) {\n <ap-symbol\n class=\"actions-menu\"\n size=\"sm\"\n symbolId=\"more\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Action menu ' + leaf().alias\"\n [apNavSelectorPopoverTrigger]=\"popover\"\n [apNavSelectorPopoverTriggerMode]=\"{ click: true, keyboard: ['Space', 'Enter'] }\" />\n\n <ap-nav-selector-popover\n #popover\n placement=\"bottom_start\">\n @for (action of actionProjection; track action) {\n <ng-template #item>\n <ng-container\n [ngTemplateOutlet]=\"action\"\n [ngTemplateOutletContext]=\"{\n uid: leaf().uid\n }\" />\n </ng-template>\n }\n </ap-nav-selector-popover>\n }\n\n @if (leaf().foldable) {\n <ap-symbol\n class=\"folding-button\"\n size=\"sm\"\n role=\"button\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Toggle ' + leaf().alias\"\n [symbolId]=\"foldSymbol()\"\n (click)=\"toggleFolding($event)\"\n (keydown.space)=\"toggleFolding($event)\"\n (keydown.enter)=\"toggleFolding($event)\" />\n }\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [background]=\"false\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n\n <div\n class=\"details-container\"\n [@accordion]=\"{\n value: animationState(),\n params: {\n maxHeight: maxHeight()\n }\n }\">\n @if (!foldedWithDelay()) {\n <ap-nav-selector-leaf-details\n [details]=\"leaf().details\"\n [leaf]=\"leaf()\" />\n }\n </div>\n} @else {\n <div\n #minified\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [apNavSelectorPopoverTrigger]=\"minifiedPopover\"\n [apNavSelectorPopoverDisabled]=\"!leaf().detailsDisplayable\"\n [apNavSelectorPopoverTriggerMode]=\"{ click: false, hover: true }\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected || detailSelected()\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\" />\n }\n\n <div class=\"avatar-container\">\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <div class=\"status\">\n @if (leaf().displayCounter) {\n <ap-counter\n class=\"counter-override\"\n color=\"orange\"\n size=\"normal\"\n [notif]=\"true\"\n [background]=\"true\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n </div>\n\n <ap-nav-selector-popover\n #minifiedPopover\n [popoverTitle]=\"leaf().alias\"\n [offset]=\"{ mainAxis: 0, crossAxis: -36.5 }\"\n placement=\"right\">\n @for (detail of leaf().details; track detail.uid) {\n <ap-nav-selector-popover-item item [selected]=\"detail.selected\">\n <ap-nav-selector-leaf-detail\n [embedded]=\"true\"\n [detail]=\"detail\" />\n </ap-nav-selector-popover-item>\n }\n </ap-nav-selector-popover>\n </div>\n}\n", styles: [":host{display:flex;flex-shrink:0;align-self:stretch;flex-direction:column}:host .details-container{align-self:stretch}:host .nav-selector-leaf{position:relative;display:flex;padding:0 var(--ref-spacing-xxs);height:36px;align-items:center;gap:var(--ref-spacing-xxs);flex-shrink:0;flex-grow:1;align-self:stretch}:host .nav-selector-leaf ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}:host .caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;flex:1 0 0;overflow:hidden;color:var(--ref-color-grey-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-regular);line-height:var(--ref-font-line-height-xs)}:host ap-symbol[symbol-id=error_fill]{color:var(--ref-color-red-100)}:host ap-symbol[symbol-id=feature-lock]{color:var(--ref-color-purple-100)}:host ap-symbol[symbol-id=chevron-down],:host ap-symbol[symbol-id=chevron-up]{color:var(--ref-color-grey-80)}:host .folding-button,:host .actions-menu{display:none;width:24px;height:24px;justify-content:center;align-items:center;flex-shrink:0}:host .folding-button:hover,:host .actions-menu:hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .folding-button:active,:host .folding-button.nav-selector-popover-trigger--active,:host .actions-menu:active,:host .actions-menu.nav-selector-popover-trigger--active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-40)}:host .folding-button:focus-visible,:host .actions-menu:focus-visible{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error){cursor:pointer}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):focus-visible{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):focus-within{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:not(.multiple-mode){border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:not(.multiple-mode) .caption{color:var(--ref-color-electric-blue-150)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected.multiple-mode .caption{color:var(--ref-color-grey-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected .caption{overflow:hidden;text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:focus-visible{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:hover ap-counter,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-within ap-counter,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-visible ap-counter{display:none}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:hover .only-button,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-within .only-button,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-visible .only-button{display:flex}:host .nav-selector-leaf.feature-locked:not(.multiple-mode){border-radius:var(--ref-border-radius-sm);outline:none}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):hover{background:var(--ref-color-purple-10)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):active{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):focus-visible{background:var(--ref-color-purple-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-purple-100)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected .caption{overflow:hidden;color:var(--ref-color-purple-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected:focus-visible{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible ap-counter,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within ap-counter,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover ap-counter{display:none}:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible .folding-button,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within .folding-button,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover .folding-button{display:flex}:host .nav-selector-leaf.feature-locked.multiple-mode ap-avatar,:host .nav-selector-leaf.feature-locked.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.feature-locked.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.token-error.multiple-mode ap-avatar,:host .nav-selector-leaf.token-error.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.token-error.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.disabled.multiple-mode ap-avatar,:host .nav-selector-leaf.disabled.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.disabled.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.disabled ap-avatar,:host .nav-selector-leaf.disabled .caption{opacity:.5}:host .nav-selector-leaf.disabled .caption{color:var(--ref-color-grey-40)}:host .status{position:absolute;right:-4px;top:-6px}:host .avatar-container{position:relative}:host.minified .counter-override{background-color:var(--ref-color-orange-150)}:host.minified .nav-selector-leaf{gap:var(--ref-spacing-xxxs);padding:var(--ref-spacing-xxxs);justify-content:center}:host.minified ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}:host .only-button{display:none;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}::ng-deep .nav-selector-leaf-menu{position:absolute;left:55px;top:-20%;width:225px}::ng-deep .nav-selector-leaf-menu .not-displayable{display:none}::ng-deep .nav-selector-leaf-menu .caption-bold{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "ap-avatar", inputs: ["profilePicture", "alt", "network", "size", "username", "showInitials", "bigNetwork", "anonymous", "online", "youtubeAvatarMode", "rounded"] }, { kind: "component", type: CounterComponent, selector: "ap-counter", inputs: ["color", "size", "background", "notif"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "component", type: NavSelectorLeafDetailsComponent, selector: "ap-nav-selector-leaf-details", inputs: ["leaf", "details"] }, { kind: "component", type: CheckboxComponent, selector: "ap-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "disabled", "indeterminate", "checked", "required", "name"], outputs: ["change"] }, { kind: "directive", type: TooltipDirective, selector: "[apTooltip]", inputs: ["apTooltip", "apTooltipPosition", "apTooltipShowDelay", "apTooltipHideDelay", "apTooltipDuration", "apTooltipDisabled", "apTooltipTruncatedTextOnly", "apTooltipTemplateContext", "apTooltipVirtualScrollElement"] }, { kind: "component", type: NavSelectorLeafDetailComponent, selector: "ap-nav-selector-leaf-detail", inputs: ["detail", "embedded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TreeNodeAccessibilityDirective, selector: "[apTreeNodeAccessibility]", inputs: ["apTreeNodeAccessibility"] }, { kind: "component", type: NavSelectorPopoverComponent, selector: "ap-nav-selector-popover", inputs: ["placement", "popoverTitle", "offset"] }, { kind: "directive", type: NavSelectorPopoverTriggerDirective, selector: "[apNavSelectorPopoverTrigger]", inputs: ["apNavSelectorPopoverTrigger", "apNavSelectorPopoverTriggerMode", "apNavSelectorPopoverDisabled"] }, { kind: "component", type: NavSelectorPopoverItemComponent, selector: "ap-nav-selector-popover-item", inputs: ["selected"] }], animations: [
|
|
176
122
|
/**
|
|
177
123
|
* Overflow hidden is put only during the animation and on the collapsed state because if it is put on the expanded state then children’s border will be cut (hover / focus)
|
|
178
124
|
*/
|
|
@@ -202,18 +148,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
202
148
|
NavSelectorLeafDetailsComponent,
|
|
203
149
|
CheckboxComponent,
|
|
204
150
|
TooltipDirective,
|
|
205
|
-
MatMenu,
|
|
206
|
-
MatMenuTrigger,
|
|
207
|
-
MatMenuItem,
|
|
208
151
|
NavSelectorLeafDetailComponent,
|
|
209
152
|
NavSelectorLeafDetailComponent,
|
|
210
153
|
NgTemplateOutlet,
|
|
211
154
|
TreeNodeAccessibilityDirective,
|
|
155
|
+
NavSelectorPopoverComponent,
|
|
156
|
+
NavSelectorPopoverTriggerDirective,
|
|
157
|
+
NavSelectorPopoverItemComponent,
|
|
212
158
|
], providers: [withSymbols(apErrorFill, apFeatureLock, apChevronDown, apChevronUp, apMore), NavSelectorLeafPresenter], host: {
|
|
213
159
|
'[class.minified]': '!navSelectorLeafPresenter.expanded()',
|
|
214
160
|
role: 'treeitem',
|
|
215
|
-
'(mouseenter)': 'mouseEntered()',
|
|
216
|
-
'(mouseleave)': 'mouseLeft($event)',
|
|
217
161
|
'(keydown.arrowLeft)': 'fold($event)',
|
|
218
162
|
'(keydown.arrowRight)': 'unfold($event)',
|
|
219
163
|
}, animations: [
|
|
@@ -235,6 +179,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
235
179
|
animate('250ms cubic-bezier(.4, 0, .3, 1)', keyframes([style({ overflow: 'hidden', maxHeight: '{{maxHeight}}' }), style({ maxHeight: 0 })])),
|
|
236
180
|
]),
|
|
237
181
|
]),
|
|
238
|
-
], template: "@if (navSelectorLeafPresenter.expandedAfterDelay()) {\n <div\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n role=\"treeitem\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\"\n (change)=\"onCheckboxToggle()\" />\n }\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <span\n #alias\n class=\"caption\">\n {{ leaf().alias }}\n </span>\n\n @if (onlyButtonDisplayed()) {\n <a\n class=\"standalone\"\n role=\"button\"\n [attr.aria-label]=\"'Select only ' + leaf().alias\"\n [attr.tabindex]=\"leaf().accessibility.tabIndex\"\n (keydown.space)=\"selectOnly($event)\"\n (keydown.enter)=\"selectOnly($event)\"\n (click)=\"selectOnly($event)\">\n {{ navSelectorLeafPresenter.texts().only }}\n </a>\n } @else {\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [background]=\"false\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n\n @let actionProjection = navSelectorLeafPresenter.leafActionProjection();\n @if (actionProjection?.length) {\n <ap-symbol\n #actionMenuTrigger=\"matMenuTrigger\"\n class=\"actions-menu\"\n size=\"sm\"\n symbolId=\"more\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Action menu ' + leaf().alias\"\n [matMenuTriggerFor]=\"actionMenu\"\n (click)=\"onActionButtonClick($event)\"\n (keydown.space)=\"onActionButtonKeyDownSpaceOrEnter($event)\"\n (keydown.enter)=\"onActionButtonKeyDownSpaceOrEnter($event)\" />\n\n <mat-menu #actionMenu=\"matMenu\">\n @for (action of actionProjection; track action) {\n <button mat-menu-item>\n <ng-container\n [ngTemplateOutlet]=\"action\"\n [ngTemplateOutletContext]=\"{\n uid: leaf().uid\n }\" />\n </button>\n }\n </mat-menu>\n }\n\n @if (leaf().foldable) {\n <ap-symbol\n class=\"folding-button\"\n size=\"sm\"\n role=\"button\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Toggle ' + leaf().alias\"\n [symbolId]=\"foldSymbol()\"\n (click)=\"toggleFolding($event)\"\n (keydown.space)=\"toggleFolding($event)\"\n (keydown.enter)=\"toggleFolding($event)\" />\n }\n }\n </div>\n\n <div\n class=\"details-container\"\n [@accordion]=\"{\n value: animationState(),\n params: {\n maxHeight: maxHeight()\n }\n }\">\n @if (!foldedWithDelay()) {\n <ap-nav-selector-leaf-details [details]=\"leaf().details\" [leaf]=\"leaf()\"/>\n }\n </div>\n} @else {\n <div\n #menuTrigger=\"matMenuTrigger\"\n #minified\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [matMenuTriggerFor]=\"menu\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (menuOpened)=\"menuOpened()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\" />\n }\n\n <div class=\"avatar-container\">\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <div class=\"status\">\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [notif]=\"true\"\n [background]=\"true\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n </div>\n <mat-menu\n #menu=\"matMenu\"\n class=\"nav-selector-leaf-menu\"\n xPosition=\"after\"\n [hasBackdrop]=\"false\">\n <div\n #menuContainer\n [class.not-displayable]=\"!leaf().detailsDisplayable\"\n (mouseenter)=\"mouseEnteredMenu()\"\n (mouseleave)=\"mouseLeftMenu(menuTrigger, $event)\">\n <button mat-menu-item>\n <span class=\"caption-bold\">{{ leaf().alias }}</span>\n </button>\n @for (detail of leaf().details; track detail.uid) {\n <button\n mat-menu-item\n [class.selected]=\"detail.selected\">\n <ap-nav-selector-leaf-detail\n [embedded]=\"true\"\n [detail]=\"detail\" />\n </button>\n }\n </div>\n </mat-menu>\n </div>\n}\n", styles: [":host{display:flex;gap:2px;flex-shrink:0;align-self:stretch;flex-direction:column}:host .details-container{align-self:stretch}:host .nav-selector-leaf{position:relative;display:flex;padding:0 var(--ref-spacing-xxs);height:36px;align-items:center;gap:var(--ref-spacing-xxs);flex-shrink:0;flex-grow:1;align-self:stretch}:host .caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;flex:1 0 0;overflow:hidden;color:var(--ref-color-grey-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-regular);line-height:var(--ref-font-line-height-xs)}:host ap-symbol[symbol-id=error_fill]{color:var(--ref-color-red-100)}:host ap-symbol[symbol-id=feature-lock]{color:var(--ref-color-purple-100)}:host ap-symbol[symbol-id=chevron-down],:host ap-symbol[symbol-id=chevron-up]{color:var(--ref-color-grey-80)}:host .folding-button,:host .actions-menu{display:flex;width:24px;height:24px;justify-content:center;align-items:center;flex-shrink:0}:host .folding-button:hover,:host .actions-menu:hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .folding-button:active,:host .actions-menu:active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-40)}:host .folding-button:focus,:host .actions-menu:focus{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector-leaf:not(.disabled){cursor:pointer}:host .nav-selector-leaf:not(.disabled):hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10)}:host .nav-selector-leaf:not(.disabled):active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):focus{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):focus-within{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled).selected{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled).selected:focus{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.feature-locked{border-radius:var(--ref-border-radius-sm)}:host .nav-selector-leaf.feature-locked:hover{background:var(--ref-color-purple-10)}:host .nav-selector-leaf.feature-locked:active{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:focus{background:var(--ref-color-purple-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-purple-100)}:host .nav-selector-leaf.feature-locked.selected{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked.selected:focus{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.disabled{opacity:.5}:host .status{position:absolute;right:-4px;top:-6px}:host .avatar-container{position:relative}:host.minified .nav-selector-leaf{gap:var(--ref-spacing-xxxs);justify-content:center}:host.minified ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}::ng-deep .nav-selector-leaf-menu{position:absolute;left:55px;top:-20%;width:225px}::ng-deep .nav-selector-leaf-menu .not-displayable{display:none}::ng-deep .nav-selector-leaf-menu .caption-bold{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}::ng-deep .nav-selector-leaf-menu.mat-mdc-menu-panel:not(.pop-menu) .mat-mdc-menu-item.selected{background:var(--ref-color-electric-blue-20)}::ng-deep .nav-selector-leaf-menu.mat-mdc-menu-panel:not(.pop-menu) .mat-mdc-menu-item ap-symbol{padding-right:0}\n"] }]
|
|
182
|
+
], template: "@if (navSelectorLeafPresenter.expandedAfterDelay()) {\n <div\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [attr.aria-selected]=\"leaf().selected\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [class.multiple-mode]=\"navSelectorLeafPresenter.isMultipleModeEnabled()\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [class.actions-displayable]=\"leaf().actionsDisplayable && leaf().detailsDisplayable\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (focusin)=\"focused.set(true)\"\n (focusout)=\"focused.set(false)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [aria-label]=\"leaf().alias\"\n [disabled]=\"!leaf().selectable\"\n (change)=\"onCheckboxToggle()\" />\n }\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <span\n #alias\n class=\"caption\">\n {{ leaf().alias }}\n </span>\n\n <a\n class=\"standalone only-button\"\n role=\"button\"\n [attr.aria-label]=\"'Select only ' + leaf().alias\"\n [attr.tabindex]=\"leaf().accessibility.tabIndex\"\n (keydown.space)=\"selectOnly($event)\"\n (keydown.enter)=\"selectOnly($event)\"\n (click)=\"selectOnly($event)\">\n {{ navSelectorLeafPresenter.texts().only }}\n </a>\n\n @let actionProjection = navSelectorLeafPresenter.leafActionProjection();\n @if (actionProjection?.length) {\n <ap-symbol\n class=\"actions-menu\"\n size=\"sm\"\n symbolId=\"more\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Action menu ' + leaf().alias\"\n [apNavSelectorPopoverTrigger]=\"popover\"\n [apNavSelectorPopoverTriggerMode]=\"{ click: true, keyboard: ['Space', 'Enter'] }\" />\n\n <ap-nav-selector-popover\n #popover\n placement=\"bottom_start\">\n @for (action of actionProjection; track action) {\n <ng-template #item>\n <ng-container\n [ngTemplateOutlet]=\"action\"\n [ngTemplateOutletContext]=\"{\n uid: leaf().uid\n }\" />\n </ng-template>\n }\n </ap-nav-selector-popover>\n }\n\n @if (leaf().foldable) {\n <ap-symbol\n class=\"folding-button\"\n size=\"sm\"\n role=\"button\"\n [tabindex]=\"leaf().accessibility.tabIndex\"\n [attr.aria-label]=\"'Toggle ' + leaf().alias\"\n [symbolId]=\"foldSymbol()\"\n (click)=\"toggleFolding($event)\"\n (keydown.space)=\"toggleFolding($event)\"\n (keydown.enter)=\"toggleFolding($event)\" />\n }\n @if (leaf().displayCounter) {\n <ap-counter\n color=\"orange\"\n size=\"normal\"\n [background]=\"false\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n\n <div\n class=\"details-container\"\n [@accordion]=\"{\n value: animationState(),\n params: {\n maxHeight: maxHeight()\n }\n }\">\n @if (!foldedWithDelay()) {\n <ap-nav-selector-leaf-details\n [details]=\"leaf().details\"\n [leaf]=\"leaf()\" />\n }\n </div>\n} @else {\n <div\n #minified\n class=\"nav-selector-leaf\"\n apTooltipPosition=\"right\"\n [apNavSelectorPopoverTrigger]=\"minifiedPopover\"\n [apNavSelectorPopoverDisabled]=\"!leaf().detailsDisplayable\"\n [apNavSelectorPopoverTriggerMode]=\"{ click: false, hover: true }\"\n [class.feature-locked]=\"leaf().displayFeatureLocked\"\n [class.selected]=\"leaf().selected || detailSelected()\"\n [class.token-error]=\"leaf().displayTokenInvalid\"\n [class.disabled]=\"leaf().disabled\"\n [apTooltip]=\"tooltipContent()\"\n [apTooltipDisabled]=\"tooltipDisabled()\"\n [apTreeNodeAccessibility]=\"leaf()\"\n (keydown.space)=\"onSpaceOrEnterPressed($event)\"\n (keydown.enter)=\"onSpaceOrEnterPressed($event)\"\n (click)=\"onClick($event)\">\n @if (navSelectorLeafPresenter.isMultipleModeEnabled()) {\n <ap-checkbox\n [name]=\"leaf().uid\"\n [checked]=\"leaf().selected\"\n [disabled]=\"!leaf().selectable\" />\n }\n\n <div class=\"avatar-container\">\n <ap-avatar\n size=\"24\"\n [profilePicture]=\"leaf().pictureUrl ?? undefined\"\n [network]=\"$any(leaf().network)\"\n [showInitials]=\"initial()\" />\n\n <div class=\"status\">\n @if (leaf().displayCounter) {\n <ap-counter\n class=\"counter-override\"\n color=\"orange\"\n size=\"normal\"\n [notif]=\"true\"\n [background]=\"true\">\n {{ leaf().counter }}\n </ap-counter>\n }\n @if (leaf().displayTokenInvalid) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"error_fill\" />\n }\n @if (leaf().displayFeatureLocked) {\n <ap-symbol\n size=\"sm\"\n symbolId=\"feature-lock\" />\n }\n </div>\n </div>\n\n <ap-nav-selector-popover\n #minifiedPopover\n [popoverTitle]=\"leaf().alias\"\n [offset]=\"{ mainAxis: 0, crossAxis: -36.5 }\"\n placement=\"right\">\n @for (detail of leaf().details; track detail.uid) {\n <ap-nav-selector-popover-item item [selected]=\"detail.selected\">\n <ap-nav-selector-leaf-detail\n [embedded]=\"true\"\n [detail]=\"detail\" />\n </ap-nav-selector-popover-item>\n }\n </ap-nav-selector-popover>\n </div>\n}\n", styles: [":host{display:flex;flex-shrink:0;align-self:stretch;flex-direction:column}:host .details-container{align-self:stretch}:host .nav-selector-leaf{position:relative;display:flex;padding:0 var(--ref-spacing-xxs);height:36px;align-items:center;gap:var(--ref-spacing-xxs);flex-shrink:0;flex-grow:1;align-self:stretch}:host .nav-selector-leaf ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}:host .caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;flex:1 0 0;overflow:hidden;color:var(--ref-color-grey-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-regular);line-height:var(--ref-font-line-height-xs)}:host ap-symbol[symbol-id=error_fill]{color:var(--ref-color-red-100)}:host ap-symbol[symbol-id=feature-lock]{color:var(--ref-color-purple-100)}:host ap-symbol[symbol-id=chevron-down],:host ap-symbol[symbol-id=chevron-up]{color:var(--ref-color-grey-80)}:host .folding-button,:host .actions-menu{display:none;width:24px;height:24px;justify-content:center;align-items:center;flex-shrink:0}:host .folding-button:hover,:host .actions-menu:hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .folding-button:active,:host .folding-button.nav-selector-popover-trigger--active,:host .actions-menu:active,:host .actions-menu.nav-selector-popover-trigger--active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-40)}:host .folding-button:focus-visible,:host .actions-menu:focus-visible{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error){cursor:pointer}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):hover{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):active{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):focus-visible{outline:none;border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error):focus-within{border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:not(.multiple-mode){border-radius:var(--ref-border-radius-sm);background:var(--ref-color-electric-blue-20)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:not(.multiple-mode) .caption{color:var(--ref-color-electric-blue-150)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected.multiple-mode .caption{color:var(--ref-color-grey-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected .caption{overflow:hidden;text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).selected:focus-visible{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:hover ap-counter,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-within ap-counter,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-visible ap-counter{display:none}:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:hover .only-button,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-within .only-button,:host .nav-selector-leaf:not(.disabled):not(.feature-locked):not(.multiple-mode.token-error).multiple-mode:focus-visible .only-button{display:flex}:host .nav-selector-leaf.feature-locked:not(.multiple-mode){border-radius:var(--ref-border-radius-sm);outline:none}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):hover{background:var(--ref-color-purple-10)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):active{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode):focus-visible{background:var(--ref-color-purple-10);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-purple-100)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected{background:var(--ref-color-purple-20)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected .caption{overflow:hidden;color:var(--ref-color-purple-100);text-overflow:ellipsis;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}:host .nav-selector-leaf.feature-locked:not(.multiple-mode).selected:focus-visible{box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible ap-counter,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within ap-counter,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover ap-counter{display:none}:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-visible .folding-button,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):focus-within .folding-button,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover .actions-menu,:host .nav-selector-leaf.actions-displayable:not(.feature-locked):not(.disabled):not(.token-error):hover .folding-button{display:flex}:host .nav-selector-leaf.feature-locked.multiple-mode ap-avatar,:host .nav-selector-leaf.feature-locked.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.feature-locked.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.token-error.multiple-mode ap-avatar,:host .nav-selector-leaf.token-error.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.token-error.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.disabled.multiple-mode ap-avatar,:host .nav-selector-leaf.disabled.multiple-mode .caption{opacity:.5}:host .nav-selector-leaf.disabled.multiple-mode .caption{color:var(--ref-color-grey-40)}:host .nav-selector-leaf.disabled ap-avatar,:host .nav-selector-leaf.disabled .caption{opacity:.5}:host .nav-selector-leaf.disabled .caption{color:var(--ref-color-grey-40)}:host .status{position:absolute;right:-4px;top:-6px}:host .avatar-container{position:relative}:host.minified .counter-override{background-color:var(--ref-color-orange-150)}:host.minified .nav-selector-leaf{gap:var(--ref-spacing-xxxs);padding:var(--ref-spacing-xxxs);justify-content:center}:host.minified ::ng-deep ap-checkbox .checkbox .checkbox-container{padding:0}:host .only-button{display:none;font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}::ng-deep .nav-selector-leaf-menu{position:absolute;left:55px;top:-20%;width:225px}::ng-deep .nav-selector-leaf-menu .not-displayable{display:none}::ng-deep .nav-selector-leaf-menu .caption-bold{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--ref-font-size-xs);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-xs)}\n"] }]
|
|
239
183
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NavSelectorLeafPresenter }] });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLWxlYWYvbmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLWxlYWYvbmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVJLE9BQU8sRUFBRSxPQUFPLEVBQUUs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Q0osQ0FBQzt5QkFDTCxDQUFDO3FCQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IENvdW50ZXJDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2NvdW50ZXInO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBhcENoZXZyb25Eb3duLCBhcENoZXZyb25VcCwgYXBFcnJvckZpbGwsIGFwRmVhdHVyZUxvY2ssIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgYXBNb3JlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sL2ljb25zJztcbmltcG9ydCB7IGFuaW1hdGUsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5wdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFRyZWVOb2RlQWNjZXNzaWJpbGl0eURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdHJlZS1ub2RlLWFjY2Vzc2liaWxpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEludGVybmFsTmF2U2VsZWN0b3JMZWFmIH0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yTGVhZkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4uL25hdi1zZWxlY3Rvci1sZWFmLWRldGFpbC9uYXYtc2VsZWN0b3ItbGVhZi1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtc2VsZWN0b3ItbGVhZi1kZXRhaWxzL25hdi1zZWxlY3Rvci1sZWFmLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yTGVhZlByZXNlbnRlciB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWxlYWYucHJlc2VudGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1uYXYtc2VsZWN0b3ItbGVhZicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi1zZWxlY3Rvci1sZWFmLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXYtc2VsZWN0b3ItbGVhZi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgICAgIENvdW50ZXJDb21wb25lbnQsXG4gICAgICAgIFN5bWJvbENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JMZWFmRGV0YWlsc0NvbXBvbmVudCxcbiAgICAgICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIE1hdE1lbnUsXG4gICAgICAgIE1hdE1lbnVUcmlnZ2VyLFxuICAgICAgICBNYXRNZW51SXRlbSxcbiAgICAgICAgTmF2U2VsZWN0b3JMZWFmRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICBOYXZTZWxlY3RvckxlYWZEZXRhaWxDb21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRyZWVOb2RlQWNjZXNzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW3dpdGhTeW1ib2xzKGFwRXJyb3JGaWxsLCBhcEZlYXR1cmVMb2NrLCBhcENoZXZyb25Eb3duLCBhcENoZXZyb25VcCwgYXBNb3JlKSwgTmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MubWluaWZpZWRdJzogJyFuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuZXhwYW5kZWQoKScsXG4gICAgICAgIHJvbGU6ICd0cmVlaXRlbScsXG4gICAgICAgICcobW91c2VlbnRlciknOiAnbW91c2VFbnRlcmVkKCknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ21vdXNlTGVmdCgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93TGVmdCknOiAnZm9sZCgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93UmlnaHQpJzogJ3VuZm9sZCgkZXZlbnQpJyxcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE92ZXJmbG93IGhpZGRlbiBpcyBwdXQgb25seSBkdXJpbmcgdGhlIGFuaW1hdGlvbiBhbmQgb24gdGhlIGNvbGxhcHNlZCBzdGF0ZSBiZWNhdXNlIGlmIGl0IGlzIHB1dCBvbiB0aGUgZXhwYW5kZWQgc3RhdGUgdGhlbiBjaGlsZHJlbuKAmXMgYm9yZGVyIHdpbGwgYmUgY3V0IChob3ZlciAvIGZvY3VzKVxuICAgICAgICAgKi9cbiAgICAgICAgdHJpZ2dlcignYWNjb3JkaW9uJywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2NvbGxhcHNlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdleHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICdpbml0aWFsJyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA9PiBleHBhbmRlZCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4zLCAxKScsIHN0eWxlKHsgb3ZlcmZsb3c6ICdoaWRkZW4nLCBtYXhIZWlnaHQ6ICd7e21heEhlaWdodH19JyB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkID0+IGNvbGxhcHNlZCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAnMjUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMywgMSknLFxuICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZXMoW3N0eWxlKHsgb3ZlcmZsb3c6ICdoaWRkZW4nLCBtYXhIZWlnaHQ6ICd7e21heEhlaWdodH19JyB9KSwgc3R5bGUoeyBtYXhIZWlnaHQ6IDAgfSldKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2U2VsZWN0b3JMZWFmQ29tcG9uZW50IHtcbiAgICBsZWFmID0gaW5wdXQucmVxdWlyZWQ8SW50ZXJuYWxOYXZTZWxlY3RvckxlYWY+KCk7XG5cbiAgICBpbml0aWFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sZWFmKCkuYWxpYXNbMF0udG9VcHBlckNhc2UoKSk7XG4gICAgZm9sZFN5bWJvbCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmxlYWYoKS5mb2xkZWQgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXVwJykpO1xuXG4gICAgaG92ZXJpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIGhvdmVyaW5nTWVudSA9IHNpZ25hbChmYWxzZSk7XG4gICAgb25seUJ1dHRvbkRpc3BsYXllZCA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuaXNNdWx0aXBsZU1vZGVFbmFibGVkKCkgJiZcbiAgICAgICAgICAgICh0aGlzLmhvdmVyaW5nKCkgfHwgdGhpcy5sZWFmKCkuYWNjZXNzaWJpbGl0eS50YWJJbmRleCA9PT0gMCkgJiZcbiAgICAgICAgICAgIHRoaXMubGVhZigpLnNlbGVjdGFibGVcbiAgICApO1xuXG4gICAgYWxpYXNFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignYWxpYXMnKTtcbiAgICBhbGlhc0JvdW5kZWRDbGllbnRSZWN0ID0gc2lnbmFsPHtcbiAgICAgICAgb2Zmc2V0V2lkdGg6IG51bWJlcjtcbiAgICAgICAgb2Zmc2V0SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIHNjcm9sbFdpZHRoOiBudW1iZXI7XG4gICAgICAgIHNjcm9sbEhlaWdodDogbnVtYmVyO1xuICAgIH0+KHtcbiAgICAgICAgb2Zmc2V0V2lkdGg6IDAsXG4gICAgICAgIG9mZnNldEhlaWdodDogMCxcbiAgICAgICAgc2Nyb2xsV2lkdGg6IDAsXG4gICAgICAgIHNjcm9sbEhlaWdodDogMCxcbiAgICB9KTtcblxuICAgIHRvb2x0aXBDb250ZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gW107XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLmFsaWFzQm91bmRlZENsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKCF0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5leHBhbmRlZCgpIHx8IGVsLm9mZnNldFdpZHRoIDwgZWwuc2Nyb2xsV2lkdGggfHwgZWwub2Zmc2V0SGVpZ2h0IDwgZWwuc2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgICAgICBjb250ZW50LnB1c2godGhpcy5sZWFmKCkuYWxpYXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlzYWJsZVJlYXNvbiA9IHRoaXMubGVhZigpLmRpc2FibGVSZWFzb247XG4gICAgICAgIGlmIChkaXNhYmxlUmVhc29uKSB7XG4gICAgICAgICAgICBjb250ZW50LnB1c2goZGlzYWJsZVJlYXNvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sZWFmKCkuZGlzcGxheUZlYXR1cmVMb2NrZWQpIHtcbiAgICAgICAgICAgIGNvbnRlbnQucHVzaCh0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci50ZXh0cygpLmZlYXR1cmVMb2NrZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubGVhZigpLmRpc3BsYXlUb2tlbkludmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnRlbnQucHVzaCh0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci50ZXh0cygpLnRva2VuSW52YWxpZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGVudC5qb2luKCc8YnI+Jyk7XG4gICAgfSk7XG4gICAgdG9vbHRpcERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMudG9vbHRpcENvbnRlbnQoKS5sZW5ndGggfHwgdGhpcy5sZWFmKCkuZGV0YWlsc0Rpc3BsYXlhYmxlKTtcblxuICAgIG1pbmlmaWVkRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ21pbmlmaWVkJyk7XG4gICAgbWVudUVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdtZW51Q29udGFpbmVyJyk7XG5cbiAgICBtZW51VHJpZ2dlckVsID0gdmlld0NoaWxkPE1hdE1lbnVUcmlnZ2VyPignbWVudVRyaWdnZXInKTtcbiAgICBhY3Rpb25NZW51VHJpZ2dlckVsID0gdmlld0NoaWxkPE1hdE1lbnVUcmlnZ2VyPignYWN0aW9uTWVudVRyaWdnZXInKTtcblxuICAgIGZvbGRlZFdpdGhEZWxheSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBuZXR3b3JrID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMubGVhZigpLm5ldHdvcmsgPyB0aGlzLmxlYWYoKS5uZXR3b3JrIDogdW5kZWZpbmVkKSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIG5hdlNlbGVjdG9yTGVhZlByZXNlbnRlcjogTmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyXG4gICAgKSB7XG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1heEhlaWdodC5zZXQoYCR7dGhpcy5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodH1weGApO1xuXG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuYWxpYXNFbCgpPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlhc0JvdW5kZWRDbGllbnRSZWN0LnNldCh7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFdpZHRoOiBlbC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0SGVpZ2h0OiBlbC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoOiBlbC5zY3JvbGxXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBlbC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sZWFmKCkuZm9sZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2xkZWRXaXRoRGVsYXkuc2V0KHRydWUpLCAxNTApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sZGVkV2l0aERlbGF5LnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFuaW1hdGlvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMubGVhZigpLmZvbGRlZCA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJykpO1xuXG4gICAgbWF4SGVpZ2h0ID0gc2lnbmFsKCcwcHgnKTtcblxuICAgIG9uQ2xpY2soJGV2ZW50OiBFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLm9uTGVhZkNsaWNrZWQodGhpcy5sZWFmKCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZUZvbGRpbmcoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5vbkxlYWZUb2dnbGVGb2xkaW5nKHRoaXMubGVhZigpKTtcbiAgICB9XG5cbiAgICBtb3VzZUVudGVyZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCBtZW51VHJpZ2dlciA9IHRoaXMubWVudVRyaWdnZXJFbCgpO1xuICAgICAgICBpZiAobWVudVRyaWdnZXIgJiYgdGhpcy5sZWFmKCkuZGV0YWlsc0Rpc3BsYXlhYmxlKSB7XG4gICAgICAgICAgICBtZW51VHJpZ2dlci5vcGVuTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW91c2VMZWZ0KCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmhvdmVyaW5nLnNldChmYWxzZSk7XG4gICAgICAgIGNvbnN0IG1lbnVUcmlnZ2VyID0gdGhpcy5tZW51VHJpZ2dlckVsKCk7XG4gICAgICAgIGlmIChtZW51VHJpZ2dlcikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50cnlDbG9zZU1lbnUobWVudVRyaWdnZXIsICRldmVudCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW91c2VFbnRlcmVkTWVudSgpIHtcbiAgICAgICAgdGhpcy5ob3ZlcmluZ01lbnUuc2V0KHRydWUpO1xuICAgIH1cblxuICAgIG1vdXNlTGVmdE1lbnUobWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyLCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5ob3ZlcmluZ01lbnUuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy50cnlDbG9zZU1lbnUobWVudVRyaWdnZXIsICRldmVudCk7XG4gICAgfVxuXG4gICAgbWVudU9wZW5lZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxlYWYoKS5kZXRhaWxzRGlzcGxheWFibGUpIHtcbiAgICAgICAgICAgIHRoaXMubWVudVRyaWdnZXJFbCgpPy5jbG9zZU1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aW9uQnV0dG9uQ2xpY2soJGV2ZW50OiBFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25BY3Rpb25CdXR0b25LZXlEb3duU3BhY2VPckVudGVyKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmFjdGlvbk1lbnVUcmlnZ2VyRWwoKT8ub3Blbk1lbnUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RPbmx5KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuc2VsZWN0T25seUxlYWYodGhpcy5sZWFmKCkpO1xuICAgIH1cblxuICAgIG9uQ2hlY2tib3hUb2dnbGUoKSB7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLm9uTGVhZkNsaWNrZWQodGhpcy5sZWFmKCkpO1xuICAgIH1cblxuICAgIG9uU3BhY2VPckVudGVyUHJlc3NlZCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubmF2LXNlbGVjdG9yLWxlYWYnKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubGVhZigpLmZvbGRhYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVGb2xkaW5nKCRldmVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLm9uTGVhZkNsaWNrZWQodGhpcy5sZWFmKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9sZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmZvbGQodGhpcy5sZWFmKCkpO1xuICAgIH1cblxuICAgIHVuZm9sZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLnVuZm9sZCh0aGlzLmxlYWYoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cnlDbG9zZU1lbnUobWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyLCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhvdmVyaW5nTWVudSgpKSB7XG4gICAgICAgICAgICBjb25zdCBtaW5pZmllZEVsID0gdGhpcy5taW5pZmllZEVsKCkgYXMgRWxlbWVudFJlZjtcbiAgICAgICAgICAgIGNvbnN0IG1pbmlmaWVkQm91bmRlZENsaWVudFJlY3QgPSBtaW5pZmllZEVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBtb3VzZUhvdmVyaW5nTGVhZiA9IHRoaXMubW91c2VJc0hvdmVyaW5nKCRldmVudCwgbWluaWZpZWRCb3VuZGVkQ2xpZW50UmVjdCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVFbCA9IHRoaXMubWVudUVsKCkgYXMgRWxlbWVudFJlZjtcbiAgICAgICAgICAgIGNvbnN0IG1lbnVCb3VuZGVkQ2xpZW50UmVjdCA9IG1lbnVFbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgbW91c2VIb3ZlcmluZ01lbnUgPSB0aGlzLm1vdXNlSXNIb3ZlcmluZygkZXZlbnQsIG1lbnVCb3VuZGVkQ2xpZW50UmVjdCk7XG5cbiAgICAgICAgICAgIGlmICghbW91c2VIb3ZlcmluZ0xlYWYgJiYgIW1vdXNlSG92ZXJpbmdNZW51KSB7XG4gICAgICAgICAgICAgICAgbWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlSXNIb3ZlcmluZygkZXZlbnQ6IE1vdXNlRXZlbnQsIGJvdW5kaW5nQ2xpZW50UmVjdDogeyB0b3A6IG51bWJlcjsgcmlnaHQ6IG51bWJlcjsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBib3VuZGluZ0NsaWVudFJlY3QubGVmdCA8PSAkZXZlbnQuY2xpZW50WCAmJlxuICAgICAgICAgICAgJGV2ZW50LmNsaWVudFggPD0gYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0ICYmXG4gICAgICAgICAgICBib3VuZGluZ0NsaWVudFJlY3QudG9wIDw9ICRldmVudC5jbGllbnRZICYmXG4gICAgICAgICAgICAkZXZlbnQuY2xpZW50WSA8PSBib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiQGlmIChuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuZXhwYW5kZWRBZnRlckRlbGF5KCkpIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibmF2LXNlbGVjdG9yLWxlYWZcIlxuICAgICAgICBhcFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgICAgW2FwVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudCgpXCJcbiAgICAgICAgW2FwVG9vbHRpcERpc2FibGVkXT1cInRvb2x0aXBEaXNhYmxlZCgpXCJcbiAgICAgICAgW2NsYXNzLmZlYXR1cmUtbG9ja2VkXT1cImxlYWYoKS5kaXNwbGF5RmVhdHVyZUxvY2tlZFwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJsZWFmKCkuc2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MudG9rZW4tZXJyb3JdPVwibGVhZigpLmRpc3BsYXlUb2tlbkludmFsaWRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibGVhZigpLmRpc2FibGVkXCJcbiAgICAgICAgW2FwVHJlZU5vZGVBY2Nlc3NpYmlsaXR5XT1cImxlYWYoKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uU3BhY2VPckVudGVyUHJlc3NlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TcGFjZU9yRW50ZXJQcmVzc2VkKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIEBpZiAobmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICA8YXAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJsZWFmKCkudWlkXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsZWFmKCkuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhbGVhZigpLnNlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGVja2JveFRvZ2dsZSgpXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8YXAtYXZhdGFyXG4gICAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgICAgW3Byb2ZpbGVQaWN0dXJlXT1cImxlYWYoKS5waWN0dXJlVXJsID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbmV0d29ya109XCIkYW55KGxlYWYoKS5uZXR3b3JrKVwiXG4gICAgICAgICAgICBbc2hvd0luaXRpYWxzXT1cImluaXRpYWwoKVwiIC8+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICNhbGlhc1xuICAgICAgICAgICAgY2xhc3M9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICB7eyBsZWFmKCkuYWxpYXMgfX1cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIEBpZiAob25seUJ1dHRvbkRpc3BsYXllZCgpKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhbmRhbG9uZVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VsZWN0IG9ubHkgJyArIGxlYWYoKS5hbGlhc1wiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwibGVhZigpLmFjY2Vzc2liaWxpdHkudGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNlbGVjdE9ubHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VsZWN0T25seSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0T25seSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAge3sgbmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLnRleHRzKCkub25seSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAobGVhZigpLmRpc3BsYXlDb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgPGFwLWNvdW50ZXJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJvcmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibm9ybWFsXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbGVhZigpLmNvdW50ZXIgfX1cbiAgICAgICAgICAgICAgICA8L2FwLWNvdW50ZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5VG9rZW5JbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImVycm9yX2ZpbGxcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChsZWFmKCkuZGlzcGxheUZlYXR1cmVMb2NrZWQpIHtcbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiZmVhdHVyZS1sb2NrXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGxldCBhY3Rpb25Qcm9qZWN0aW9uID0gbmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmxlYWZBY3Rpb25Qcm9qZWN0aW9uKCk7XG4gICAgICAgICAgICBAaWYgKGFjdGlvblByb2plY3Rpb24/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgI2FjdGlvbk1lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbnMtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwibW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJsZWFmKCkuYWNjZXNzaWJpbGl0eS50YWJJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FjdGlvbiBtZW51ICcgKyBsZWFmKCkuYWxpYXNcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uTWVudVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbkFjdGlvbkJ1dHRvbktleURvd25TcGFjZU9yRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWN0aW9uQnV0dG9uS2V5RG93blNwYWNlT3JFbnRlcigkZXZlbnQpXCIgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjYWN0aW9uTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvblByb2plY3Rpb247IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpZDogbGVhZigpLnVpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChsZWFmKCkuZm9sZGFibGUpIHtcbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9sZGluZy1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImxlYWYoKS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVG9nZ2xlICcgKyBsZWFmKCkuYWxpYXNcIlxuICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiZm9sZFN5bWJvbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZvbGRpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInRvZ2dsZUZvbGRpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZUZvbGRpbmcoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWxzLWNvbnRhaW5lclwiXG4gICAgICAgIFtAYWNjb3JkaW9uXT1cIntcbiAgICAgICAgICAgIHZhbHVlOiBhbmltYXRpb25TdGF0ZSgpLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XCI+XG4gICAgICAgIEBpZiAoIWZvbGRlZFdpdGhEZWxheSgpKSB7XG4gICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWxlYWYtZGV0YWlscyBbZGV0YWlsc109XCJsZWFmKCkuZGV0YWlsc1wiICBbbGVhZl09XCJsZWFmKClcIi8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgI21lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxuICAgICAgICAjbWluaWZpZWRcbiAgICAgICAgY2xhc3M9XCJuYXYtc2VsZWN0b3ItbGVhZlwiXG4gICAgICAgIGFwVG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgIFtjbGFzcy5mZWF0dXJlLWxvY2tlZF09XCJsZWFmKCkuZGlzcGxheUZlYXR1cmVMb2NrZWRcIlxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibGVhZigpLnNlbGVjdGVkXCJcbiAgICAgICAgW2NsYXNzLnRva2VuLWVycm9yXT1cImxlYWYoKS5kaXNwbGF5VG9rZW5JbnZhbGlkXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImxlYWYoKS5kaXNhYmxlZFwiXG4gICAgICAgIFthcFRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnQoKVwiXG4gICAgICAgIFthcFRvb2x0aXBEaXNhYmxlZF09XCJ0b29sdGlwRGlzYWJsZWQoKVwiXG4gICAgICAgIFthcFRyZWVOb2RlQWNjZXNzaWJpbGl0eV09XCJsZWFmKClcIlxuICAgICAgICAobWVudU9wZW5lZCk9XCJtZW51T3BlbmVkKClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvblNwYWNlT3JFbnRlclByZXNzZWQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uU3BhY2VPckVudGVyUHJlc3NlZCgkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICBAaWYgKG5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5pc011bHRpcGxlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgICAgICAgPGFwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW25hbWVdPVwibGVhZigpLnVpZFwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibGVhZigpLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWxlYWYoKS5zZWxlY3RhYmxlXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YXAtYXZhdGFyXG4gICAgICAgICAgICAgICAgc2l6ZT1cIjI0XCJcbiAgICAgICAgICAgICAgICBbcHJvZmlsZVBpY3R1cmVdPVwibGVhZigpLnBpY3R1cmVVcmwgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICBbbmV0d29ya109XCIkYW55KGxlYWYoKS5uZXR3b3JrKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJbml0aWFsc109XCJpbml0aWFsKClcIiAvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgICAgQGlmIChsZWFmKCkuZGlzcGxheUNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwLWNvdW50ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwib3JhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vdGlmXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGVhZigpLmNvdW50ZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hcC1jb3VudGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5VG9rZW5JbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImVycm9yX2ZpbGxcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5RmVhdHVyZUxvY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJmZWF0dXJlLWxvY2tcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1tZW51XG4gICAgICAgICAgICAjbWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtc2VsZWN0b3ItbGVhZi1tZW51XCJcbiAgICAgICAgICAgIHhQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgICAgIFtoYXNCYWNrZHJvcF09XCJmYWxzZVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICNtZW51Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgW2NsYXNzLm5vdC1kaXNwbGF5YWJsZV09XCIhbGVhZigpLmRldGFpbHNEaXNwbGF5YWJsZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlcmVkTWVudSgpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJtb3VzZUxlZnRNZW51KG1lbnVUcmlnZ2VyLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24tYm9sZFwiPnt7IGxlYWYoKS5hbGlhcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAZm9yIChkZXRhaWwgb2YgbGVhZigpLmRldGFpbHM7IHRyYWNrIGRldGFpbC51aWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImRldGFpbC5zZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1sZWFmLWRldGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWJlZGRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGV0YWlsXT1cImRldGFpbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1tZW51PlxuICAgIDwvZGl2PlxufVxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLWxlYWYvbmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLWxlYWYvbmF2LXNlbGVjdG9yLWxlYWYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFF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b3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IENvdW50ZXJDb21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2NvdW50ZXInO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBhcENoZXZyb25Eb3duLCBhcENoZXZyb25VcCwgYXBFcnJvckZpbGwsIGFwRmVhdHVyZUxvY2ssIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgYXBNb3JlIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sL2ljb25zJztcbmltcG9ydCB7IGFuaW1hdGUsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbnB1dCxcbiAgICBzaWduYWwsXG4gICAgdW50cmFja2VkLFxuICAgIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9uYXYtc2VsZWN0b3ItcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUcmVlTm9kZUFjY2Vzc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RyZWUtbm9kZS1hY2Nlc3NpYmlsaXR5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiB9IGZyb20gJy4uL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckxlYWZEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtc2VsZWN0b3ItbGVhZi1kZXRhaWwvbmF2LXNlbGVjdG9yLWxlYWYtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckxlYWZEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yLWxlYWYtZGV0YWlscy9uYXYtc2VsZWN0b3ItbGVhZi1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclBvcG92ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yLXBvcG92ZXIvbmF2LXNlbGVjdG9yLXBvcG92ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yLXBvcG92ZXIvbmF2LXNlbGVjdG9yLXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yTGVhZlByZXNlbnRlciB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWxlYWYucHJlc2VudGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1uYXYtc2VsZWN0b3ItbGVhZicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi1zZWxlY3Rvci1sZWFmLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXYtc2VsZWN0b3ItbGVhZi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgICAgIENvdW50ZXJDb21wb25lbnQsXG4gICAgICAgIFN5bWJvbENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JMZWFmRGV0YWlsc0NvbXBvbmVudCxcbiAgICAgICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIE5hdlNlbGVjdG9yTGVhZkRldGFpbENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JMZWFmRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUcmVlTm9kZUFjY2Vzc2liaWxpdHlEaXJlY3RpdmUsXG4gICAgICAgIE5hdlNlbGVjdG9yUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgTmF2U2VsZWN0b3JQb3BvdmVySXRlbUNvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW3dpdGhTeW1ib2xzKGFwRXJyb3JGaWxsLCBhcEZlYXR1cmVMb2NrLCBhcENoZXZyb25Eb3duLCBhcENoZXZyb25VcCwgYXBNb3JlKSwgTmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MubWluaWZpZWRdJzogJyFuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuZXhwYW5kZWQoKScsXG4gICAgICAgIHJvbGU6ICd0cmVlaXRlbScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0xlZnQpJzogJ2ZvbGQoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd1JpZ2h0KSc6ICd1bmZvbGQoJGV2ZW50KScsXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPdmVyZmxvdyBoaWRkZW4gaXMgcHV0IG9ubHkgZHVyaW5nIHRoZSBhbmltYXRpb24gYW5kIG9uIHRoZSBjb2xsYXBzZWQgc3RhdGUgYmVjYXVzZSBpZiBpdCBpcyBwdXQgb24gdGhlIGV4cGFuZGVkIHN0YXRlIHRoZW4gY2hpbGRyZW7igJlzIGJvcmRlciB3aWxsIGJlIGN1dCAoaG92ZXIgLyBmb2N1cylcbiAgICAgICAgICovXG4gICAgICAgIHRyaWdnZXIoJ2FjY29yZGlvbicsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdjb2xsYXBzZWQnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnZXhwYW5kZWQnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnaW5pdGlhbCcsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPT4gZXhwYW5kZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMywgMSknLCBzdHlsZSh7IG92ZXJmbG93OiAnaGlkZGVuJywgbWF4SGVpZ2h0OiAne3ttYXhIZWlnaHR9fScgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA9PiBjb2xsYXBzZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgJzI1MG1zIGN1YmljLWJlemllciguNCwgMCwgLjMsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVzKFtzdHlsZSh7IG92ZXJmbG93OiAnaGlkZGVuJywgbWF4SGVpZ2h0OiAne3ttYXhIZWlnaHR9fScgfSksIHN0eWxlKHsgbWF4SGVpZ2h0OiAwIH0pXSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdlNlbGVjdG9yTGVhZkNvbXBvbmVudCB7XG4gICAgbGVhZiA9IGlucHV0LnJlcXVpcmVkPEludGVybmFsTmF2U2VsZWN0b3JMZWFmPigpO1xuXG4gICAgaW5pdGlhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubGVhZigpLmFsaWFzWzBdLnRvVXBwZXJDYXNlKCkpO1xuICAgIGZvbGRTeW1ib2wgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5sZWFmKCkuZm9sZGVkID8gJ2NoZXZyb24tZG93bicgOiAnY2hldnJvbi11cCcpKTtcblxuICAgIGZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgZGV0YWlsU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxlYWYoKS5kZXRhaWxzLnNvbWUoKHsgc2VsZWN0ZWQgfSkgPT4gc2VsZWN0ZWQpKTtcblxuICAgIGFsaWFzRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2FsaWFzJyk7XG4gICAgYWxpYXNCb3VuZGVkQ2xpZW50UmVjdCA9IHNpZ25hbDx7XG4gICAgICAgIG9mZnNldFdpZHRoOiBudW1iZXI7XG4gICAgICAgIG9mZnNldEhlaWdodDogbnVtYmVyO1xuICAgICAgICBzY3JvbGxXaWR0aDogbnVtYmVyO1xuICAgICAgICBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcbiAgICB9Pih7XG4gICAgICAgIG9mZnNldFdpZHRoOiAwLFxuICAgICAgICBvZmZzZXRIZWlnaHQ6IDAsXG4gICAgICAgIHNjcm9sbFdpZHRoOiAwLFxuICAgICAgICBzY3JvbGxIZWlnaHQ6IDAsXG4gICAgfSk7XG5cbiAgICB0b29sdGlwQ29udGVudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IFtdO1xuXG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5hbGlhc0JvdW5kZWRDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmICghdGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIuZXhwYW5kZWQoKSB8fCBlbC5vZmZzZXRXaWR0aCA8IGVsLnNjcm9sbFdpZHRoIHx8IGVsLm9mZnNldEhlaWdodCA8IGVsLnNjcm9sbEhlaWdodCkge1xuICAgICAgICAgICAgY29udGVudC5wdXNoKHRoaXMubGVhZigpLmFsaWFzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVSZWFzb24gPSB0aGlzLmxlYWYoKS5kaXNhYmxlUmVhc29uO1xuICAgICAgICBpZiAoZGlzYWJsZVJlYXNvbikge1xuICAgICAgICAgICAgY29udGVudC5wdXNoKGRpc2FibGVSZWFzb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sZWFmKCkuZGlzcGxheUZlYXR1cmVMb2NrZWQpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50LnB1c2godGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIudGV4dHMoKS5mZWF0dXJlTG9ja2VkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMubGVhZigpLmRpc3BsYXlUb2tlbkludmFsaWQpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50LnB1c2godGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIudGV4dHMoKS50b2tlbkludmFsaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQuam9pbignPGJyPicpO1xuICAgIH0pO1xuICAgIHRvb2x0aXBEaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLnRvb2x0aXBDb250ZW50KCkubGVuZ3RoIHx8IHRoaXMubGVhZigpLmRldGFpbHNEaXNwbGF5YWJsZSk7XG5cbiAgICBmb2xkZWRXaXRoRGVsYXkgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgbmV0d29yayA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmxlYWYoKS5uZXR3b3JrID8gdGhpcy5sZWFmKCkubmV0d29yayA6IHVuZGVmaW5lZCkpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXI6IE5hdlNlbGVjdG9yTGVhZlByZXNlbnRlclxuICAgICkge1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tYXhIZWlnaHQuc2V0KGAke3RoaXMuZWwubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgKiB0aGlzLmxlYWYoKS5kZXRhaWxzLmxlbmd0aH1weGApO1xuICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLmFsaWFzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxpYXNCb3VuZGVkQ2xpZW50UmVjdC5zZXQoe1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldEhlaWdodDogZWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogZWwuc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEhlaWdodDogZWwuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9sZGVkID0gdGhpcy5sZWFmKCkuZm9sZGVkO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2xkZWRXaXRoRGVsYXkuc2V0KHRydWUpLCAxNTApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sZGVkV2l0aERlbGF5LnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFuaW1hdGlvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMubGVhZigpLmZvbGRlZCA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJykpO1xuXG4gICAgbWF4SGVpZ2h0ID0gc2lnbmFsKCcwcHgnKTtcblxuICAgIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5zZWxlY3RMZWFmKHRoaXMubGVhZigpKTtcbiAgICB9XG5cbiAgICB0b2dnbGVGb2xkaW5nKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5uYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIub25MZWFmVG9nZ2xlRm9sZGluZyh0aGlzLmxlYWYoKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0T25seShldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLnNlbGVjdE9ubHlMZWFmKHRoaXMubGVhZigpKTtcbiAgICB9XG5cbiAgICBvbkNoZWNrYm94VG9nZ2xlKCkge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5zZWxlY3RMZWFmKHRoaXMubGVhZigpKTtcbiAgICB9XG5cbiAgICBvblNwYWNlT3JFbnRlclByZXNzZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXYtc2VsZWN0b3ItbGVhZicpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sZWFmKCkuZm9sZGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUZvbGRpbmcoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5zZWxlY3RMZWFmKHRoaXMubGVhZigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvbGQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci5mb2xkKHRoaXMubGVhZigpKTtcbiAgICB9XG5cbiAgICB1bmZvbGQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yTGVhZlByZXNlbnRlci51bmZvbGQodGhpcy5sZWFmKCkpO1xuICAgIH1cbn1cbiIsIkBpZiAobmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmV4cGFuZGVkQWZ0ZXJEZWxheSgpKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm5hdi1zZWxlY3Rvci1sZWFmXCJcbiAgICAgICAgYXBUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwibGVhZigpLnNlbGVjdGVkXCJcbiAgICAgICAgW2FwVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudCgpXCJcbiAgICAgICAgW2FwVG9vbHRpcERpc2FibGVkXT1cInRvb2x0aXBEaXNhYmxlZCgpXCJcbiAgICAgICAgW2NsYXNzLm11bHRpcGxlLW1vZGVdPVwibmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpXCJcbiAgICAgICAgW2NsYXNzLmZlYXR1cmUtbG9ja2VkXT1cImxlYWYoKS5kaXNwbGF5RmVhdHVyZUxvY2tlZFwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJsZWFmKCkuc2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MudG9rZW4tZXJyb3JdPVwibGVhZigpLmRpc3BsYXlUb2tlbkludmFsaWRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibGVhZigpLmRpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzLmFjdGlvbnMtZGlzcGxheWFibGVdPVwibGVhZigpLmFjdGlvbnNEaXNwbGF5YWJsZSAmJiBsZWFmKCkuZGV0YWlsc0Rpc3BsYXlhYmxlXCJcbiAgICAgICAgW2FwVHJlZU5vZGVBY2Nlc3NpYmlsaXR5XT1cImxlYWYoKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uU3BhY2VPckVudGVyUHJlc3NlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TcGFjZU9yRW50ZXJQcmVzc2VkKCRldmVudClcIlxuICAgICAgICAoZm9jdXNpbik9XCJmb2N1c2VkLnNldCh0cnVlKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJmb2N1c2VkLnNldChmYWxzZSlcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIEBpZiAobmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICA8YXAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJsZWFmKCkudWlkXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsZWFmKCkuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImxlYWYoKS5hbGlhc1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFsZWFmKCkuc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94VG9nZ2xlKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDxhcC1hdmF0YXJcbiAgICAgICAgICAgIHNpemU9XCIyNFwiXG4gICAgICAgICAgICBbcHJvZmlsZVBpY3R1cmVdPVwibGVhZigpLnBpY3R1cmVVcmwgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtuZXR3b3JrXT1cIiRhbnkobGVhZigpLm5ldHdvcmspXCJcbiAgICAgICAgICAgIFtzaG93SW5pdGlhbHNdPVwiaW5pdGlhbCgpXCIgLz5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgI2FsaWFzXG4gICAgICAgICAgICBjbGFzcz1cImNhcHRpb25cIj5cbiAgICAgICAgICAgIHt7IGxlYWYoKS5hbGlhcyB9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwic3RhbmRhbG9uZSBvbmx5LWJ1dHRvblwiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbGVjdCBvbmx5ICcgKyBsZWFmKCkuYWxpYXNcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwibGVhZigpLmFjY2Vzc2liaWxpdHkudGFiSW5kZXhcIlxuICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2VsZWN0T25seSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlbGVjdE9ubHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0T25seSgkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyBuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIudGV4dHMoKS5vbmx5IH19XG4gICAgICAgIDwvYT5cblxuICAgICAgICBAbGV0IGFjdGlvblByb2plY3Rpb24gPSBuYXZTZWxlY3RvckxlYWZQcmVzZW50ZXIubGVhZkFjdGlvblByb2plY3Rpb24oKTtcbiAgICAgICAgQGlmIChhY3Rpb25Qcm9qZWN0aW9uPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbnMtbWVudVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBzeW1ib2xJZD1cIm1vcmVcIlxuICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJsZWFmKCkuYWNjZXNzaWJpbGl0eS50YWJJbmRleFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWN0aW9uIG1lbnUgJyArIGxlYWYoKS5hbGlhc1wiXG4gICAgICAgICAgICAgICAgW2FwTmF2U2VsZWN0b3JQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyXCJcbiAgICAgICAgICAgICAgICBbYXBOYXZTZWxlY3RvclBvcG92ZXJUcmlnZ2VyTW9kZV09XCJ7IGNsaWNrOiB0cnVlLCBrZXlib2FyZDogWydTcGFjZScsICdFbnRlciddIH1cIiAvPlxuXG4gICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAjcG9wb3ZlclxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbV9zdGFydFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25Qcm9qZWN0aW9uOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlkOiBsZWFmKCkudWlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hcC1uYXYtc2VsZWN0b3ItcG9wb3Zlcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAobGVhZigpLmZvbGRhYmxlKSB7XG4gICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb2xkaW5nLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwibGVhZigpLmFjY2Vzc2liaWxpdHkudGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbGVhZigpLmFsaWFzXCJcbiAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiZm9sZFN5bWJvbCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRm9sZGluZygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJ0b2dnbGVGb2xkaW5nKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZUZvbGRpbmcoJGV2ZW50KVwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChsZWFmKCkuZGlzcGxheUNvdW50ZXIpIHtcbiAgICAgICAgICAgIDxhcC1jb3VudGVyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJvcmFuZ2VcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAge3sgbGVhZigpLmNvdW50ZXIgfX1cbiAgICAgICAgICAgIDwvYXAtY291bnRlcj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5VG9rZW5JbnZhbGlkKSB7XG4gICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImVycm9yX2ZpbGxcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAobGVhZigpLmRpc3BsYXlGZWF0dXJlTG9ja2VkKSB7XG4gICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImZlYXR1cmUtbG9ja1wiIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWxzLWNvbnRhaW5lclwiXG4gICAgICAgIFtAYWNjb3JkaW9uXT1cIntcbiAgICAgICAgICAgIHZhbHVlOiBhbmltYXRpb25TdGF0ZSgpLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XCI+XG4gICAgICAgIEBpZiAoIWZvbGRlZFdpdGhEZWxheSgpKSB7XG4gICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWxlYWYtZGV0YWlsc1xuICAgICAgICAgICAgICAgIFtkZXRhaWxzXT1cImxlYWYoKS5kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICBbbGVhZl09XCJsZWFmKClcIiAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59IEBlbHNlIHtcbiAgICA8ZGl2XG4gICAgICAgICNtaW5pZmllZFxuICAgICAgICBjbGFzcz1cIm5hdi1zZWxlY3Rvci1sZWFmXCJcbiAgICAgICAgYXBUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgIFthcE5hdlNlbGVjdG9yUG9wb3ZlclRyaWdnZXJdPVwibWluaWZpZWRQb3BvdmVyXCJcbiAgICAgICAgW2FwTmF2U2VsZWN0b3JQb3BvdmVyRGlzYWJsZWRdPVwiIWxlYWYoKS5kZXRhaWxzRGlzcGxheWFibGVcIlxuICAgICAgICBbYXBOYXZTZWxlY3RvclBvcG92ZXJUcmlnZ2VyTW9kZV09XCJ7IGNsaWNrOiBmYWxzZSwgaG92ZXI6IHRydWUgfVwiXG4gICAgICAgIFtjbGFzcy5mZWF0dXJlLWxvY2tlZF09XCJsZWFmKCkuZGlzcGxheUZlYXR1cmVMb2NrZWRcIlxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwibGVhZigpLnNlbGVjdGVkIHx8IGRldGFpbFNlbGVjdGVkKClcIlxuICAgICAgICBbY2xhc3MudG9rZW4tZXJyb3JdPVwibGVhZigpLmRpc3BsYXlUb2tlbkludmFsaWRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibGVhZigpLmRpc2FibGVkXCJcbiAgICAgICAgW2FwVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudCgpXCJcbiAgICAgICAgW2FwVG9vbHRpcERpc2FibGVkXT1cInRvb2x0aXBEaXNhYmxlZCgpXCJcbiAgICAgICAgW2FwVHJlZU5vZGVBY2Nlc3NpYmlsaXR5XT1cImxlYWYoKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uU3BhY2VPckVudGVyUHJlc3NlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TcGFjZU9yRW50ZXJQcmVzc2VkKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIEBpZiAobmF2U2VsZWN0b3JMZWFmUHJlc2VudGVyLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICA8YXAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJsZWFmKCkudWlkXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsZWFmKCkuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhbGVhZigpLnNlbGVjdGFibGVcIiAvPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxhcC1hdmF0YXJcbiAgICAgICAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgICAgICAgIFtwcm9maWxlUGljdHVyZV09XCJsZWFmKCkucGljdHVyZVVybCA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgIFtuZXR3b3JrXT1cIiRhbnkobGVhZigpLm5ldHdvcmspXCJcbiAgICAgICAgICAgICAgICBbc2hvd0luaXRpYWxzXT1cImluaXRpYWwoKVwiIC8+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5Q291bnRlcikge1xuICAgICAgICAgICAgICAgICAgICA8YXAtY291bnRlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyLW92ZXJyaWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwib3JhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vdGlmXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGVhZigpLmNvdW50ZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hcC1jb3VudGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5VG9rZW5JbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xJZD1cImVycm9yX2ZpbGxcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGxlYWYoKS5kaXNwbGF5RmVhdHVyZUxvY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJmZWF0dXJlLWxvY2tcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLXBvcG92ZXJcbiAgICAgICAgICAgICNtaW5pZmllZFBvcG92ZXJcbiAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwibGVhZigpLmFsaWFzXCJcbiAgICAgICAgICAgIFtvZmZzZXRdPVwieyBtYWluQXhpczogMCwgY3Jvc3NBeGlzOiAtMzYuNSB9XCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICBAZm9yIChkZXRhaWwgb2YgbGVhZigpLmRldGFpbHM7IHRyYWNrIGRldGFpbC51aWQpIHtcbiAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLXBvcG92ZXItaXRlbSBpdGVtIFtzZWxlY3RlZF09XCJkZXRhaWwuc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1sZWFmLWRldGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgW2VtYmVkZGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbF09XCJkZXRhaWxcIiAvPlxuICAgICAgICAgICAgICAgIDwvYXAtbmF2LXNlbGVjdG9yLXBvcG92ZXItaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9hcC1uYXYtc2VsZWN0b3ItcG9wb3Zlcj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ export class NavSelectorLeafPresenter {
|
|
|
11
11
|
constructor(navSelectorState) {
|
|
12
12
|
this.navSelectorState = navSelectorState;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
selectLeaf(leaf) {
|
|
15
15
|
this.navSelectorState.onLeafClicked(leaf);
|
|
16
16
|
}
|
|
17
17
|
onLeafToggleFolding(leaf) {
|
|
@@ -32,4 +32,4 @@ export class NavSelectorLeafPresenter {
|
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorLeafPresenter, decorators: [{
|
|
33
33
|
type: Injectable
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.NavSelectorState }] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLWxlYWYucHJlc2VudGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLWxlYWYvbmF2LXNlbGVjdG9yLWxlYWYucHJlc2VudGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLckQsTUFBTSxPQUFPLHdCQUF3QjtJQU9iO0lBTnBCLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RCxxQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN0RixvQkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUNwRixrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUVoRixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsVUFBVSxDQUFDLElBQTZCO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQTZCO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQTZCO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxJQUE2QjtRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBNkI7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO3VHQTNCUSx3QkFBd0I7MkdBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiB9IGZyb20gJy4uL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclN0YXRlIH0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yLnN0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5hdlNlbGVjdG9yTGVhZlByZXNlbnRlciB7XG4gICAgZXhwYW5kZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSk7XG4gICAgdGV4dHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudGV4dHMoKSk7XG4gICAgaXNNdWx0aXBsZU1vZGVFbmFibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5uYXZTZWxlY3RvclN0YXRlLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpKTtcbiAgICBsZWFmQWN0aW9uUHJvamVjdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5sZWFmQWN0aW9uUHJvamVjdGlvbigpKTtcbiAgICBleHBhbmRlZEFmdGVyRGVsYXkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWRBZnRlckRlbGF5KCkpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuYXZTZWxlY3RvclN0YXRlOiBOYXZTZWxlY3RvclN0YXRlKSB7fVxuXG4gICAgc2VsZWN0TGVhZihsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUub25MZWFmQ2xpY2tlZChsZWFmKTtcbiAgICB9XG5cbiAgICBvbkxlYWZUb2dnbGVGb2xkaW5nKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5vbkxlYWZUb2dnbGVGb2xkaW5nKGxlYWYpO1xuICAgIH1cblxuICAgIHNlbGVjdE9ubHlMZWFmKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5zZWxlY3RPbmx5TGVhZihsZWFmKTtcbiAgICB9XG5cbiAgICBmb2xkKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5mb2xkKGxlYWYpO1xuICAgIH1cblxuICAgIHVuZm9sZChsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudW5mb2xkKGxlYWYpO1xuICAgIH1cbn1cbiJdfQ==
|