@eui/components 17.0.0-rc.7 → 17.0.1-snapshot-1700608878397
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/docs/components/ChartComponent.html +2 -2
- package/docs/components/CollapsedBreadcrumbComponent.html +2 -2
- package/docs/components/EuiAlertComponent.html +2 -2
- package/docs/components/EuiAppBreadcrumbComponent.html +2 -2
- package/docs/components/EuiAppComponent.html +2 -2
- package/docs/components/EuiAppFooterComponent.html +2 -2
- package/docs/components/EuiAppHeaderComponent.html +2 -2
- package/docs/components/EuiAppSidebarBodyComponent.html +2 -2
- package/docs/components/EuiAppSidebarComponent.html +2 -2
- package/docs/components/EuiAppSidebarDrawerComponent.html +2 -2
- package/docs/components/EuiAppSidebarFooterComponent.html +2 -2
- package/docs/components/EuiAppSidebarHeaderComponent.html +2 -2
- package/docs/components/EuiAppSidebarHeaderUserProfileComponent.html +2 -2
- package/docs/components/EuiAppSidebarMenuComponent.html +4 -4
- package/docs/components/EuiAppToolbarComponent.html +2 -2
- package/docs/components/EuiAppTopMessageComponent.html +2 -2
- package/docs/components/EuiAutocompleteAsyncTestComponent.html +2 -2
- package/docs/components/EuiAutocompleteChipsAsyncTestComponent.html +2 -2
- package/docs/components/EuiAutocompleteChipsTestComponent.html +2 -2
- package/docs/components/EuiAutocompleteComponent.html +3 -3
- package/docs/components/EuiAutocompleteOptionComponent.html +2 -2
- package/docs/components/EuiAutocompleteOptionGroupComponent.html +2 -2
- package/docs/components/EuiAutocompleteTestComponent.html +2 -2
- package/docs/components/EuiAvatarBadgeComponent.html +2 -2
- package/docs/components/EuiAvatarComponent.html +2 -2
- package/docs/components/EuiAvatarIconComponent.html +2 -2
- package/docs/components/EuiAvatarImageComponent.html +2 -2
- package/docs/components/EuiAvatarListComponent.html +2 -2
- package/docs/components/EuiAvatarTextComponent.html +2 -2
- package/docs/components/EuiBadgeComponent.html +2 -2
- package/docs/components/EuiBlockContentComponent.html +2 -2
- package/docs/components/EuiBlockDocumentComponent.html +3 -3
- package/docs/components/EuiBreadcrumbComponent.html +2 -2
- package/docs/components/EuiBreadcrumbItemComponent.html +2 -2
- package/docs/components/EuiButtonComponent.html +2 -2
- package/docs/components/EuiButtonGroupComponent.html +2 -2
- package/docs/components/EuiButtonsComponent.html +2 -2
- package/docs/components/EuiCardComponent.html +2 -2
- package/docs/components/EuiCardContentComponent.html +2 -2
- package/docs/components/EuiCardFooterActionButtonsComponent.html +2 -2
- package/docs/components/EuiCardFooterActionIconsComponent.html +2 -2
- package/docs/components/EuiCardFooterComponent.html +2 -2
- package/docs/components/EuiCardFooterMenuContentComponent.html +2 -2
- package/docs/components/EuiCardHeaderBodyComponent.html +2 -2
- package/docs/components/EuiCardHeaderComponent.html +2 -2
- package/docs/components/EuiCardHeaderLeftContentComponent.html +2 -2
- package/docs/components/EuiCardHeaderRightContentComponent.html +2 -2
- package/docs/components/EuiCardHeaderSubtitleComponent.html +2 -2
- package/docs/components/EuiCardHeaderTitleComponent.html +2 -2
- package/docs/components/EuiCardMediaComponent.html +2 -2
- package/docs/components/EuiChipComponent.html +2 -2
- package/docs/components/EuiChipListComponent.html +2 -2
- package/docs/components/EuiCommonHeaderComponent.html +2 -2
- package/docs/components/EuiDashboardButtonComponent.html +2 -2
- package/docs/components/EuiDashboardCardComponent.html +2 -2
- package/docs/components/EuiDateRangeSelectorComponent.html +2 -2
- package/docs/components/EuiDatepickerComponent.html +2 -2
- package/docs/components/EuiDialogComponent.html +2 -2
- package/docs/components/EuiDialogContainerComponent.html +3 -3
- package/docs/components/EuiDimmerComponent.html +2 -2
- package/docs/components/EuiDisableContentComponent.html +2 -2
- package/docs/components/EuiDiscussionThreadComponent.html +2 -2
- package/docs/components/EuiDiscussionThreadItemComponent.html +2 -2
- package/docs/components/EuiDropdownComponent.html +2 -2
- package/docs/components/EuiDropdownItemComponent.html +2 -2
- package/docs/components/EuiEditorComponent.html +2 -2
- package/docs/components/EuiEditorCountersComponent.html +2 -2
- package/docs/components/EuiEditorHtmlViewComponent.html +2 -2
- package/docs/components/EuiEditorImageDialogComponent.html +2 -2
- package/docs/components/EuiEditorJsonViewComponent.html +2 -2
- package/docs/components/EuiExpandContentComponent.html +2 -2
- package/docs/components/EuiFeedbackMessageComponent.html +2 -2
- package/docs/components/EuiFieldsetComponent.html +2 -2
- package/docs/components/EuiFilePreviewComponent.html +2 -2
- package/docs/components/EuiFileUploadComponent.html +2 -2
- package/docs/components/EuiFileUploadProgressComponent.html +2 -2
- package/docs/components/EuiFooterComponent.html +2 -2
- package/docs/components/EuiGrowlComponent.html +2 -2
- package/docs/components/EuiHeaderAppComponent.html +2 -2
- package/docs/components/EuiHeaderAppNameComponent.html +2 -2
- package/docs/components/EuiHeaderAppNameLogoComponent.html +2 -2
- package/docs/components/EuiHeaderAppSubtitleComponent.html +2 -2
- package/docs/components/EuiHeaderComponent.html +2 -2
- package/docs/components/EuiHeaderEnvironmentComponent.html +2 -2
- package/docs/components/EuiHeaderLogoComponent.html +2 -2
- package/docs/components/EuiHeaderRightContentComponent.html +2 -2
- package/docs/components/EuiHeaderUserProfileComponent.html +2 -2
- package/docs/components/EuiIconColorComponent.html +2 -2
- package/docs/components/EuiIconComponent.html +2 -2
- package/docs/components/EuiIconSvgButtonComponent.html +2 -2
- package/docs/components/EuiIconSvgComponent.html +2 -2
- package/docs/components/EuiIconToggleComponent.html +2 -2
- package/docs/components/EuiInputCheckboxComponent.html +2 -2
- package/docs/components/EuiInputGroupComponent.html +2 -2
- package/docs/components/EuiInputNumberComponent.html +2 -2
- package/docs/components/EuiInputRadioComponent.html +2 -2
- package/docs/components/EuiInputTextComponent.html +2 -2
- package/docs/components/EuiLabelComponent.html +2 -2
- package/docs/components/EuiLanguageSelectorComponent.html +2 -2
- package/docs/components/EuiListComponent.html +2 -2
- package/docs/components/EuiListItemComponent.html +2 -2
- package/docs/components/EuiMenuComponent.html +8 -8
- package/docs/components/EuiMenuItemComponent.html +75 -6
- package/docs/components/EuiMessageBoxComponent.html +2 -2
- package/docs/components/EuiModalSelectorComponent.html +2 -2
- package/docs/components/EuiNotificationItemComponent.html +2 -2
- package/docs/components/EuiNotificationItemV2Component.html +2 -2
- package/docs/components/EuiNotificationsComponent.html +2 -2
- package/docs/components/EuiNotificationsV2Component.html +2 -2
- package/docs/components/EuiOverlayBodyComponent.html +2 -2
- package/docs/components/EuiOverlayComponent.html +71 -2
- package/docs/components/EuiOverlayFooterComponent.html +2 -2
- package/docs/components/EuiOverlayHeaderComponent.html +2 -2
- package/docs/components/EuiOverlayHeaderTitleComponent.html +2 -2
- package/docs/components/EuiPageBreadcrumbComponent.html +2 -2
- package/docs/components/EuiPageColumnComponent.html +2 -2
- package/docs/components/EuiPageColumnsComponent.html +2 -2
- package/docs/components/EuiPageComponent.html +2 -2
- package/docs/components/EuiPageContentComponent.html +2 -2
- package/docs/components/EuiPageFooterComponent.html +2 -2
- package/docs/components/EuiPageHeaderComponent.html +2 -2
- package/docs/components/EuiPageHeroHeaderComponent.html +2 -2
- package/docs/components/EuiPageTopContentComponent.html +2 -2
- package/docs/components/EuiPaginatorComponent.html +2 -2
- package/docs/components/EuiPopoverComponent.html +2 -2
- package/docs/components/EuiProgressBarComponent.html +2 -2
- package/docs/components/EuiProgressCircleComponent.html +2 -2
- package/docs/components/EuiResizableComponent.html +2 -2
- package/docs/components/EuiSearchComponent.html +2 -2
- package/docs/components/EuiSelectComponent.html +2 -2
- package/docs/components/EuiSidebarMenuComponent.html +5 -5
- package/docs/components/EuiSidebarToggleComponent.html +2 -2
- package/docs/components/EuiSkeletonComponent.html +2 -2
- package/docs/components/EuiSlideToggleComponent.html +2 -2
- package/docs/components/EuiSlideToggleTestComponent.html +2 -2
- package/docs/components/EuiTabComponent.html +2 -2
- package/docs/components/EuiTabContentComponent.html +2 -2
- package/docs/components/EuiTabLabelComponent.html +2 -2
- package/docs/components/EuiTableComponent.html +2 -2
- package/docs/components/EuiTableExpandableRowComponent.html +2 -2
- package/docs/components/EuiTableFilterComponent.html +2 -2
- package/docs/components/EuiTableSelectableHeaderComponent.html +2 -2
- package/docs/components/EuiTableSelectableRowComponent.html +2 -2
- package/docs/components/EuiTableSortableColComponent.html +2 -2
- package/docs/components/EuiTabsComponent.html +2 -2
- package/docs/components/EuiTextareaComponent.html +2 -2
- package/docs/components/EuiTimebarComponent.html +4 -4
- package/docs/components/EuiTimelineComponent.html +2 -2
- package/docs/components/EuiTimelineItemComponent.html +2 -2
- package/docs/components/EuiTimepickerComponent.html +2 -2
- package/docs/components/EuiToolbarAppComponent.html +2 -2
- package/docs/components/EuiToolbarCenterComponent.html +2 -2
- package/docs/components/EuiToolbarComponent.html +2 -2
- package/docs/components/EuiToolbarEnvironmentComponent.html +2 -2
- package/docs/components/EuiToolbarItemComponent.html +2 -2
- package/docs/components/EuiToolbarItemsComponent.html +2 -2
- package/docs/components/EuiToolbarLogoComponent.html +2 -2
- package/docs/components/EuiToolbarMenuComponent.html +6 -6
- package/docs/components/EuiTooltipContainerComponent.html +2 -2
- package/docs/components/EuiTreeComponent.html +2 -2
- package/docs/components/EuiTreeListComponent.html +2 -2
- package/docs/components/EuiTreeListItemComponent.html +2 -2
- package/docs/components/EuiTreeListItemContentComponent.html +2 -2
- package/docs/components/EuiTreeListToolbarComponent.html +2 -2
- package/docs/components/EuiUserProfileCardComponent.html +2 -2
- package/docs/components/EuiUserProfileComponent.html +2 -2
- package/docs/components/EuiUserProfileMenuComponent.html +2 -2
- package/docs/components/EuiUserProfileMenuItemComponent.html +2 -2
- package/docs/components/EuiWizardComponent.html +2 -2
- package/docs/components/EuiWizardStepComponent.html +2 -2
- package/docs/components/QuillEditorComponent.html +2 -2
- package/docs/dependencies.html +2 -2
- package/docs/index.html +4 -4
- package/docs/js/menu-wc.js +12 -52
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +0 -1
- package/docs/modules/EuiAllModule.html +0 -6
- package/docs/modules/EuiAppModule.html +0 -6
- package/docs/modules/EuiLayoutModule.html +0 -6
- package/docs/modules/EuiTimebarModule.html +10 -0
- package/docs/modules.html +0 -12
- package/esm2022/eui-all/eui-all.module.mjs +1 -6
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +4 -3
- package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +24 -4
- package/esm2022/eui-menu/eui-menu.component.mjs +2 -2
- package/esm2022/eui-menu/models/eui-menu-item.model.mjs +2 -12
- package/esm2022/eui-overlay/eui-overlay.component.mjs +6 -2
- package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +2 -2
- package/esm2022/eui-tabs/eui-tabs.component.mjs +2 -2
- package/esm2022/eui-timebar/eui-timebar.component.mjs +9 -7
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +2 -2
- package/eui-all/eui-all.module.d.ts +4 -5
- package/eui-all/eui-all.module.d.ts.map +1 -1
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/eui-menu/eui-menu-item.component.d.ts +3 -1
- package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
- package/eui-menu/models/eui-menu-item.model.d.ts +1 -35
- package/eui-menu/models/eui-menu-item.model.d.ts.map +1 -1
- package/eui-overlay/eui-overlay.component.d.ts +1 -0
- package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
- package/eui-timebar/eui-timebar.component.d.ts +2 -1
- package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-all.mjs +0 -5
- package/fesm2022/eui-components-eui-all.mjs.map +1 -1
- package/fesm2022/eui-components-eui-autocomplete.mjs +3 -2
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-block-document.mjs +2 -2
- package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dialog.mjs +2 -2
- package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +27 -18
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-overlay.mjs +5 -1
- package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tabs.mjs +4 -4
- package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timebar.mjs +8 -6
- package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +2 -2
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +8 -14
- package/docs/classes/EuiMenuItem.html +0 -933
- package/docs/components/EuiUxTreeComponent.html +0 -3171
- package/docs/components/EuiUxTreeNodeComponent.html +0 -2433
- package/docs/components/EuiUxTreeToolbarComponent.html +0 -1040
- package/docs/directives/EuiUxTreeToolbarFilterButtonsTagDirective.html +0 -172
- package/docs/modules/EuiUxTreeModule.html +0 -210
- package/esm2022/eui-ux-tree/eui-components-eui-ux-tree.mjs +0 -5
- package/esm2022/eui-ux-tree/eui-ux-tree-node.component.mjs +0 -347
- package/esm2022/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.mjs +0 -126
- package/esm2022/eui-ux-tree/eui-ux-tree.component.mjs +0 -490
- package/esm2022/eui-ux-tree/eui-ux-tree.module.mjs +0 -54
- package/esm2022/eui-ux-tree/index.mjs +0 -5
- package/eui-ux-tree/eui-components-eui-ux-tree.d.ts.map +0 -1
- package/eui-ux-tree/eui-ux-tree-node.component.d.ts +0 -80
- package/eui-ux-tree/eui-ux-tree-node.component.d.ts.map +0 -1
- package/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.d.ts +0 -44
- package/eui-ux-tree/eui-ux-tree-toolbar/eui-ux-tree-toolbar.component.d.ts.map +0 -1
- package/eui-ux-tree/eui-ux-tree.component.d.ts +0 -114
- package/eui-ux-tree/eui-ux-tree.component.d.ts.map +0 -1
- package/eui-ux-tree/eui-ux-tree.module.d.ts +0 -19
- package/eui-ux-tree/eui-ux-tree.module.d.ts.map +0 -1
- package/eui-ux-tree/index.d.ts +0 -5
- package/eui-ux-tree/index.d.ts.map +0 -1
- package/eui-ux-tree/package.json +0 -3
- package/fesm2022/eui-components-eui-ux-tree.mjs +0 -1004
- package/fesm2022/eui-components-eui-ux-tree.mjs.map +0 -1
@@ -1,490 +0,0 @@
|
|
1
|
-
/* eslint-disable */
|
2
|
-
import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';
|
3
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
4
|
-
import { EuiUxTreeNodeComponent } from './eui-ux-tree-node.component';
|
5
|
-
import { EuiTemplateDirective } from '@eui/components/directives';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "@angular/common";
|
8
|
-
import * as i2 from "@angular/cdk/scrolling";
|
9
|
-
import * as i3 from "./eui-ux-tree-node.component";
|
10
|
-
import * as i4 from "./eui-ux-tree-toolbar/eui-ux-tree-toolbar.component";
|
11
|
-
import * as i5 from "@ngx-translate/core";
|
12
|
-
export class EuiUxTreeComponent {
|
13
|
-
constructor(cd) {
|
14
|
-
this.cd = cd;
|
15
|
-
this.collapsedIconClass = 'eui-icon eui-icon-plus-circle';
|
16
|
-
this.expandedIconClass = 'eui-icon eui-icon-minus-circle';
|
17
|
-
this.e2eAttr = 'ux-tree';
|
18
|
-
this.nodeClick = new EventEmitter();
|
19
|
-
this.nodeToggle = new EventEmitter();
|
20
|
-
// TODO: for eUI 14 remove the [] type
|
21
|
-
this.selectionChange = new EventEmitter();
|
22
|
-
this.filter = new EventEmitter();
|
23
|
-
this.allSelected = false;
|
24
|
-
this.nbNodes = 0;
|
25
|
-
this.visibleNodes = [];
|
26
|
-
this.filterValue = '';
|
27
|
-
this._isShowToolbar = false;
|
28
|
-
this._isExpanded = false;
|
29
|
-
this._isMultiselect = false;
|
30
|
-
this._isRecursiveSelection = false;
|
31
|
-
this._isClickTogglingNode = false;
|
32
|
-
this._isShowActiveNode = false;
|
33
|
-
this._isHideToggles = false;
|
34
|
-
this._isHideLines = false;
|
35
|
-
this._isClickSelectingNode = false;
|
36
|
-
this._showFilteredChildren = false;
|
37
|
-
this._expandFilteredChildren = false;
|
38
|
-
this._highlightPath = false;
|
39
|
-
this._autoTranslate = true;
|
40
|
-
this._hasLabels = true;
|
41
|
-
this._hasSelectAll = false;
|
42
|
-
this._hasSelectAllFiltered = false;
|
43
|
-
this._isRecursiveParentSelection = true;
|
44
|
-
}
|
45
|
-
get isShowToolbar() {
|
46
|
-
return this._isShowToolbar;
|
47
|
-
}
|
48
|
-
set isShowToolbar(value) {
|
49
|
-
this._isShowToolbar = coerceBooleanProperty(value);
|
50
|
-
}
|
51
|
-
get isExpanded() {
|
52
|
-
return this._isExpanded;
|
53
|
-
}
|
54
|
-
set isExpanded(value) {
|
55
|
-
this._isExpanded = coerceBooleanProperty(value);
|
56
|
-
}
|
57
|
-
get isMultiselect() {
|
58
|
-
return this._isMultiselect;
|
59
|
-
}
|
60
|
-
set isMultiselect(value) {
|
61
|
-
this._isMultiselect = coerceBooleanProperty(value);
|
62
|
-
}
|
63
|
-
get isRecursiveSelection() {
|
64
|
-
return this._isRecursiveSelection;
|
65
|
-
}
|
66
|
-
set isRecursiveSelection(value) {
|
67
|
-
this._isRecursiveSelection = coerceBooleanProperty(value);
|
68
|
-
}
|
69
|
-
get isClickTogglingNode() {
|
70
|
-
return this._isClickTogglingNode;
|
71
|
-
}
|
72
|
-
set isClickTogglingNode(value) {
|
73
|
-
this._isClickTogglingNode = coerceBooleanProperty(value);
|
74
|
-
}
|
75
|
-
get isShowActiveNode() {
|
76
|
-
return this._isShowActiveNode;
|
77
|
-
}
|
78
|
-
set isShowActiveNode(value) {
|
79
|
-
this._isShowActiveNode = coerceBooleanProperty(value);
|
80
|
-
}
|
81
|
-
get isHideToggles() {
|
82
|
-
return this._isHideToggles;
|
83
|
-
}
|
84
|
-
set isHideToggles(value) {
|
85
|
-
this._isHideToggles = coerceBooleanProperty(value);
|
86
|
-
}
|
87
|
-
get isHideLines() {
|
88
|
-
return this._isHideLines;
|
89
|
-
}
|
90
|
-
set isHideLines(value) {
|
91
|
-
this._isHideLines = coerceBooleanProperty(value);
|
92
|
-
}
|
93
|
-
get isClickSelectingNode() {
|
94
|
-
return this._isClickSelectingNode;
|
95
|
-
}
|
96
|
-
set isClickSelectingNode(value) {
|
97
|
-
this._isClickSelectingNode = coerceBooleanProperty(value);
|
98
|
-
}
|
99
|
-
get showFilteredChildren() {
|
100
|
-
return this._showFilteredChildren;
|
101
|
-
}
|
102
|
-
set showFilteredChildren(value) {
|
103
|
-
this._showFilteredChildren = coerceBooleanProperty(value);
|
104
|
-
}
|
105
|
-
get expandFilteredChildren() {
|
106
|
-
return this._expandFilteredChildren;
|
107
|
-
}
|
108
|
-
set expandFilteredChildren(value) {
|
109
|
-
this._expandFilteredChildren = coerceBooleanProperty(value);
|
110
|
-
}
|
111
|
-
get highlightPath() {
|
112
|
-
return this._highlightPath;
|
113
|
-
}
|
114
|
-
set highlightPath(value) {
|
115
|
-
this._highlightPath = coerceBooleanProperty(value);
|
116
|
-
}
|
117
|
-
get autoTranslate() {
|
118
|
-
return this._autoTranslate;
|
119
|
-
}
|
120
|
-
set autoTranslate(value) {
|
121
|
-
this._autoTranslate = coerceBooleanProperty(value);
|
122
|
-
}
|
123
|
-
get hasLabels() {
|
124
|
-
return this._hasLabels;
|
125
|
-
}
|
126
|
-
set hasLabels(value) {
|
127
|
-
this._hasLabels = coerceBooleanProperty(value);
|
128
|
-
}
|
129
|
-
get hasSelectAll() {
|
130
|
-
return this._hasSelectAll;
|
131
|
-
}
|
132
|
-
set hasSelectAll(value) {
|
133
|
-
this._hasSelectAll = coerceBooleanProperty(value);
|
134
|
-
}
|
135
|
-
get hasSelectAllFiltered() {
|
136
|
-
return this._hasSelectAllFiltered;
|
137
|
-
}
|
138
|
-
set hasSelectAllFiltered(value) {
|
139
|
-
this._hasSelectAllFiltered = coerceBooleanProperty(value);
|
140
|
-
}
|
141
|
-
get isRecursiveParentSelection() {
|
142
|
-
return this._isRecursiveParentSelection;
|
143
|
-
}
|
144
|
-
set isRecursiveParentSelection(value) {
|
145
|
-
this._isRecursiveParentSelection = coerceBooleanProperty(value);
|
146
|
-
}
|
147
|
-
get isMinimumOneSelected() {
|
148
|
-
return this.getSelectedNodes().length > 0 && !this.allSelected;
|
149
|
-
}
|
150
|
-
get isAllSelected() {
|
151
|
-
return this.getSelectedNodes().length === this.nbNodes;
|
152
|
-
}
|
153
|
-
ngOnChanges(changes) {
|
154
|
-
if (changes && changes['nodes']) {
|
155
|
-
this.visibleNodes = this.visible(this.nodes);
|
156
|
-
}
|
157
|
-
}
|
158
|
-
ngOnInit() {
|
159
|
-
this.getNbNodes(this.nodes);
|
160
|
-
}
|
161
|
-
ngAfterContentInit() {
|
162
|
-
if (this.isExpanded) {
|
163
|
-
this.setNodesExpandedState(this.nodes, true);
|
164
|
-
}
|
165
|
-
this.setParentNode(this.nodes, null);
|
166
|
-
this.templates.forEach((item) => {
|
167
|
-
if (item.getType() === 'nodeContent') {
|
168
|
-
this.nodeContentTemplate = item.template;
|
169
|
-
}
|
170
|
-
});
|
171
|
-
}
|
172
|
-
visible(nodes) {
|
173
|
-
if (this.hasSelectAllFiltered) {
|
174
|
-
return this.getVisibleNodesRecursive(nodes);
|
175
|
-
}
|
176
|
-
else {
|
177
|
-
return nodes.filter((n) => n.visible);
|
178
|
-
}
|
179
|
-
}
|
180
|
-
getNbNodes(nodes) {
|
181
|
-
nodes.forEach((node) => {
|
182
|
-
this.nbNodes++;
|
183
|
-
if (node.hasChildren) {
|
184
|
-
node.children.forEach((link) => {
|
185
|
-
this.getNbNodes([link]);
|
186
|
-
});
|
187
|
-
}
|
188
|
-
});
|
189
|
-
}
|
190
|
-
onSelectAllChange(e) {
|
191
|
-
this.allSelected = e.target.checked;
|
192
|
-
if (!e.target.check) {
|
193
|
-
this.resetSelection();
|
194
|
-
}
|
195
|
-
if (this.hasSelectAllFiltered) {
|
196
|
-
this.setNodesSelectedFilteredState(this.visibleNodes, e.target.checked);
|
197
|
-
}
|
198
|
-
else {
|
199
|
-
this.setNodesSelectedState(this.nodes, e.target.checked);
|
200
|
-
}
|
201
|
-
}
|
202
|
-
getSelectedNodes() {
|
203
|
-
if (this.filterValue !== '' && this.allSelected && this.hasSelectAllFiltered) {
|
204
|
-
return this.visibleNodes;
|
205
|
-
}
|
206
|
-
else {
|
207
|
-
return this.getSelectedNodesRecursive(this.nodes);
|
208
|
-
}
|
209
|
-
}
|
210
|
-
onNodeToggle(UxLinkLegacy) {
|
211
|
-
this.nodeToggle.emit(UxLinkLegacy);
|
212
|
-
}
|
213
|
-
onNodeClick(UxLinkLegacy) {
|
214
|
-
if (!UxLinkLegacy.disabled) {
|
215
|
-
this.nodeClick.emit(UxLinkLegacy);
|
216
|
-
if (this.isClickTogglingNode && UxLinkLegacy.hasChildren) {
|
217
|
-
this.onNodeToggle(UxLinkLegacy);
|
218
|
-
}
|
219
|
-
if (!this.isMultiselect && this.isShowActiveNode) {
|
220
|
-
this.setNodesSelectedState(this.nodes, false);
|
221
|
-
UxLinkLegacy.selected = true;
|
222
|
-
}
|
223
|
-
}
|
224
|
-
}
|
225
|
-
onExpandAll(event) {
|
226
|
-
this.setNodesExpandedState(this.nodes, true);
|
227
|
-
}
|
228
|
-
onCollapseAll(event) {
|
229
|
-
this.setNodesExpandedState(this.nodes, false);
|
230
|
-
}
|
231
|
-
onSelectionChange(UxLinkLegacy) {
|
232
|
-
if (!UxLinkLegacy.selected) {
|
233
|
-
this.allSelected = false;
|
234
|
-
}
|
235
|
-
this.selectionChange.next(UxLinkLegacy);
|
236
|
-
}
|
237
|
-
onFilter(filterValue) {
|
238
|
-
if (filterValue !== '') {
|
239
|
-
this.setNodesVisibleState(this.nodes, false);
|
240
|
-
if (!this.expandFilteredChildren) {
|
241
|
-
this.nodes.forEach((node) => {
|
242
|
-
this.isFilterMatched(node, filterValue);
|
243
|
-
});
|
244
|
-
}
|
245
|
-
if (this.expandFilteredChildren) {
|
246
|
-
this.nodes.forEach((node) => {
|
247
|
-
this.isFilterMatchedExpand(node, filterValue);
|
248
|
-
});
|
249
|
-
this.setNodesVisibleState(this.nodes, true);
|
250
|
-
}
|
251
|
-
if (this.showFilteredChildren) {
|
252
|
-
this.nodes.forEach((node) => {
|
253
|
-
this.isVisibleChildren(node, filterValue);
|
254
|
-
});
|
255
|
-
}
|
256
|
-
if (!this.expandFilteredChildren) {
|
257
|
-
this.setNodesExpandedState(this.nodes, true);
|
258
|
-
}
|
259
|
-
this.visibleNodes = this.visible(this.nodes);
|
260
|
-
}
|
261
|
-
else {
|
262
|
-
this.setNodesVisibleState(this.nodes, true);
|
263
|
-
this.visibleNodes = this.visible(this.nodes);
|
264
|
-
this.virtualScrolling?.scrollToIndex(0);
|
265
|
-
}
|
266
|
-
if (this.hasSelectAllFiltered) {
|
267
|
-
this.setNodesSelectedFilteredState(this.visibleNodes, this.allSelected);
|
268
|
-
this.filterValue = filterValue;
|
269
|
-
this.cd.detectChanges();
|
270
|
-
}
|
271
|
-
this.filter.emit(filterValue);
|
272
|
-
}
|
273
|
-
isFilterMatchedExpand(node, filterValue) {
|
274
|
-
node['highlighted'] = false;
|
275
|
-
if (node.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {
|
276
|
-
node.expanded = true;
|
277
|
-
node['highlighted'] = true;
|
278
|
-
}
|
279
|
-
else {
|
280
|
-
node.expanded = false;
|
281
|
-
node['highlighted'] = false;
|
282
|
-
}
|
283
|
-
if (node.children) {
|
284
|
-
node.children.forEach((childrenNode) => {
|
285
|
-
this.isFilterMatchedExpand(childrenNode, filterValue);
|
286
|
-
if (childrenNode.expanded) {
|
287
|
-
node.expanded = true;
|
288
|
-
node['highlighted'] = true;
|
289
|
-
}
|
290
|
-
});
|
291
|
-
}
|
292
|
-
}
|
293
|
-
trackByFn(index, item) {
|
294
|
-
return item.id;
|
295
|
-
}
|
296
|
-
checkForChildren() {
|
297
|
-
return !this.nodes.some((node) => node.hasChildren);
|
298
|
-
}
|
299
|
-
resetSelection() {
|
300
|
-
this.resetNode(this.nodes);
|
301
|
-
// TODO: investigate if we can emit null instead of []
|
302
|
-
this.selectionChange.emit([]);
|
303
|
-
}
|
304
|
-
resetNode(nodes) {
|
305
|
-
nodes.forEach((node) => {
|
306
|
-
node.selected = false;
|
307
|
-
if (node.children && node.children.length > 0) {
|
308
|
-
this.resetNode(node.children);
|
309
|
-
}
|
310
|
-
});
|
311
|
-
}
|
312
|
-
isVisibleChildren(node, filterValue) {
|
313
|
-
if (node.parent && node.parent.visible === true && node.parent.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {
|
314
|
-
node.visible = true;
|
315
|
-
}
|
316
|
-
if (node.children) {
|
317
|
-
node.children.forEach((childrenNode) => {
|
318
|
-
this.isVisibleChildren(childrenNode, filterValue);
|
319
|
-
});
|
320
|
-
}
|
321
|
-
}
|
322
|
-
getSelectedNodesRecursive(nodes) {
|
323
|
-
return (nodes || []).reduce((acc, node) => {
|
324
|
-
if (node.hasChildren) {
|
325
|
-
return node.selected && !node.indeterminate
|
326
|
-
? [...acc, node, ...this.getSelectedNodesRecursive(node.children)]
|
327
|
-
: [...acc, ...this.getSelectedNodesRecursive(node.children)];
|
328
|
-
}
|
329
|
-
else {
|
330
|
-
return node.selected ? [...acc, node] : [...acc];
|
331
|
-
}
|
332
|
-
}, []);
|
333
|
-
}
|
334
|
-
getVisibleNodesRecursive(nodes) {
|
335
|
-
return (nodes || []).reduce((acc, node) => {
|
336
|
-
if (node.hasChildren) {
|
337
|
-
return node.visible
|
338
|
-
? [...acc, node, ...this.getVisibleNodesRecursive(node.children)]
|
339
|
-
: [...acc, ...this.getVisibleNodesRecursive(node.children)];
|
340
|
-
}
|
341
|
-
else {
|
342
|
-
return node.visible ? [...acc, node] : [...acc];
|
343
|
-
}
|
344
|
-
}, []);
|
345
|
-
}
|
346
|
-
isFilterMatched(node, filterValue) {
|
347
|
-
if (node.label?.toUpperCase().indexOf(filterValue?.toUpperCase()) !== -1) {
|
348
|
-
this.virtualScrolling?.scrollToIndex(0);
|
349
|
-
node.visible = true;
|
350
|
-
}
|
351
|
-
else {
|
352
|
-
node.visible = false;
|
353
|
-
}
|
354
|
-
if (node.children) {
|
355
|
-
node.children.forEach((childrenNode) => {
|
356
|
-
this.isFilterMatched(childrenNode, filterValue);
|
357
|
-
if (childrenNode.visible) {
|
358
|
-
node.visible = true;
|
359
|
-
}
|
360
|
-
});
|
361
|
-
}
|
362
|
-
}
|
363
|
-
setNodesExpandedState(nodes, expanded) {
|
364
|
-
nodes.forEach((node) => {
|
365
|
-
node.expanded = expanded;
|
366
|
-
if (node.children) {
|
367
|
-
this.setNodesExpandedState(node.children, expanded);
|
368
|
-
}
|
369
|
-
});
|
370
|
-
}
|
371
|
-
setNodesVisibleState(nodes, visible) {
|
372
|
-
nodes.forEach((node) => {
|
373
|
-
node.visible = visible;
|
374
|
-
if (node.children) {
|
375
|
-
this.setNodesVisibleState(node.children, visible);
|
376
|
-
}
|
377
|
-
});
|
378
|
-
}
|
379
|
-
setNodesSelectedState(nodes, selected) {
|
380
|
-
nodes.forEach((node) => {
|
381
|
-
node.selected = selected;
|
382
|
-
if (node.children) {
|
383
|
-
this.setNodesSelectedState(node.children, selected);
|
384
|
-
}
|
385
|
-
if (this.hasSelectAll) {
|
386
|
-
this.selectionChange.emit(node);
|
387
|
-
}
|
388
|
-
});
|
389
|
-
}
|
390
|
-
setNodesSelectedFilteredState(nodes, selected) {
|
391
|
-
nodes.forEach((node) => {
|
392
|
-
if (node.visible) {
|
393
|
-
node.selected = selected;
|
394
|
-
if (node.children) {
|
395
|
-
this.setNodesSelectedFilteredState(node.children, selected);
|
396
|
-
}
|
397
|
-
if (this.hasSelectAllFiltered) {
|
398
|
-
this.selectionChange.emit(node);
|
399
|
-
}
|
400
|
-
}
|
401
|
-
});
|
402
|
-
}
|
403
|
-
setParentNode(nodes, parentNode) {
|
404
|
-
nodes.forEach((node) => {
|
405
|
-
if (parentNode) {
|
406
|
-
node.parent = parentNode;
|
407
|
-
}
|
408
|
-
if (node.children) {
|
409
|
-
this.setParentNode(node.children, node);
|
410
|
-
}
|
411
|
-
});
|
412
|
-
}
|
413
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiUxTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
414
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiUxTreeComponent, selector: "eui-ux-tree", inputs: { nodes: "nodes", collapseAllLabel: "collapseAllLabel", expandAllLabel: "expandAllLabel", filterLabel: "filterLabel", collapsedIconClass: "collapsedIconClass", expandedIconClass: "expandedIconClass", setFilterValue: "setFilterValue", e2eAttr: "e2eAttr", isShowToolbar: "isShowToolbar", isExpanded: "isExpanded", isMultiselect: "isMultiselect", isRecursiveSelection: "isRecursiveSelection", isClickTogglingNode: "isClickTogglingNode", isShowActiveNode: "isShowActiveNode", isHideToggles: "isHideToggles", isHideLines: "isHideLines", isClickSelectingNode: "isClickSelectingNode", showFilteredChildren: "showFilteredChildren", expandFilteredChildren: "expandFilteredChildren", highlightPath: "highlightPath", autoTranslate: "autoTranslate", hasLabels: "hasLabels", hasSelectAll: "hasSelectAll", hasSelectAllFiltered: "hasSelectAllFiltered", isRecursiveParentSelection: "isRecursiveParentSelection" }, outputs: { nodeClick: "nodeClick", nodeToggle: "nodeToggle", selectionChange: "selectionChange", filter: "filter" }, queries: [{ propertyName: "templateVariable", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "virtualScrolling", first: true, predicate: ["virtualScrolling"], descendants: true }, { propertyName: "treeNodes", predicate: EuiUxTreeNodeComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<eui-ux-tree-toolbar\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n</eui-ux-tree-toolbar>\n\n<div class=\"eui-u-flex\" *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n</div>\n<ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>\n\n<ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox--selected:after{background:transparent;color:var(--eui-color-white);height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");position:absolute!important}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;position:relative;left:4px;bottom:2px}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-grey-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0!important;padding:0!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-wrapper.ux-tree__node--selected .ux-tree__node-label{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{line-height:normal;margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{line-height:normal;margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto;margin-right:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox+label:after{content:none!important}.ux-a-toolbar-filter{display:flex;padding-bottom:var(--eui-base-spacing-m);position:relative;width:100%}.ux-a-toolbar-filter-content{align-items:center;display:flex;flex-grow:1}.ux-a-toolbar-filter-sub-content{margin-left:auto}.ux-a-toolbar-filter-trigger-wrapper{display:flex;flex-shrink:0}.ux-a-toolbar-filter-trigger{margin-right:var(--eui-base-spacing-xs)}.ux-a-toolbar-filter-trigger.ux-button{border-color:var(--eui-base-color-grey-20)!important;box-shadow:none}.eui-t-compact .ux-a-toolbar-filter-trigger.ux-button.ux-button--outline{padding:8px var(--eui-base-spacing-m)}.ux-a-toolbar-filter-trigger .eui-icon{font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter{margin-right:var(--eui-base-spacing-xs);position:relative;width:100%}.ux-a-toolbar-filter-filter .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter-input{width:100%;width:calc(100% - 36px)!important}.ux-a-toolbar-filter-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{border:1px solid var(--eui-base-color-grey-20);box-shadow:none}.eui-t-compact .ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{padding:8px var(--eui-base-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i3.EuiUxTreeNodeComponent, selector: "eui-ux-tree-node", inputs: ["expandedIconClass", "collapsedIconClass", "templateVariable", "node", "nodeContentTemplate", "e2eAttr", "isFirst", "isLast", "isRootNode", "isClickTogglingNode", "isMultiselect", "isRecursiveSelection", "isRecursiveParentSelection", "isShowActiveNode", "isHideToggles", "isClickSelectingNode", "highlightPath", "autoTranslate", "hasSelectAll"], outputs: ["nodeClick", "nodeToggle", "selectionChange"] }, { kind: "component", type: i4.EuiUxTreeToolbarComponent, selector: "eui-ux-tree-toolbar", inputs: ["isVisible", "filterLabel", "expandAllLabel", "collapseAllLabel", "isFilterVisible", "isToggleVisible", "isToggleExpanded", "filterValue", "hasLabels", "e2eAttr"], outputs: ["filter", "expandAll", "collapseAll"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
415
|
-
}
|
416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiUxTreeComponent, decorators: [{
|
417
|
-
type: Component,
|
418
|
-
args: [{ selector: 'eui-ux-tree', encapsulation: ViewEncapsulation.None, template: "<eui-ux-tree-toolbar\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n</eui-ux-tree-toolbar>\n\n<div class=\"eui-u-flex\" *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n</div>\n<ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>\n\n<ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <eui-ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </eui-ux-tree-node>\n </ul>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ux-tree,.ux-tree ul{list-style:none;margin:0 0 0 var(--eui-base-spacing-xs);padding:0;position:relative}.ux-tree ul{margin-left:var(--eui-base-spacing-m)}ul.ux-tree:before{content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute}.ux-tree:before,.ux-tree ul:before{border-left:1px solid var(--eui-base-color-grey-20);bottom:0;content:\"\";display:block;height:calc(100% - 12px);left:0;position:absolute;top:0;width:0}.ux-tree li{cursor:pointer;line-height:calc(1.75 * var(--eui-base-spacing-m));margin:0;padding:0 0 0 var(--eui-base-spacing-s);position:relative}.ux-tree li:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-xl)}.ux-tree li.ux-tree__node--expandable:before{border-top:1px solid var(--eui-base-color-grey-20);content:\"\";display:block;height:0;left:0;position:absolute;top:var(--eui-base-spacing-m);width:var(--eui-base-spacing-s)}.ux-tree li.ux-tree__node--disabled{pointer-events:none;cursor:none}.ux-tree li.last-child:before{bottom:0;height:auto;top:var(--eui-base-spacing-m)}.ux-tree--onelevel .ux-tree__node{padding:0}.ux-tree__node-wrapper{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-wrapper .ux-tree__parent{margin-left:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree--onelevel .ux-tree__node-wrapper .ux-tree__leaf{margin-left:var(--eui-base-spacing-xs)!important;margin-right:var(--eui-base-spacing-xs)}.ux-tree__node-wrapper .ux-tree__custom-content{align-items:center;display:inline-flex}.ux-tree__node-wrapper .ux-tree__custom-content.ux-tree__leaf{margin-left:var(--eui-base-spacing-l)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox--selected:after{background:transparent;color:var(--eui-color-white);height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");position:absolute!important}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;position:relative;left:4px;bottom:2px}.ux-tree__node-label{margin-left:var(--eui-base-spacing-xl);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label.ux-tree__node-label-parent{margin-left:0}.ux-tree__node-label:focus,.ux-tree__node-label:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node--selected .ux-tree__node-label{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-label-wrapped{margin-left:var(--eui-base-spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-tree__node-label-wrapped:focus,.ux-tree__node-label-wrapped:hover{color:var(--eui-base-color-primary-100);text-decoration:underline}.ux-tree__node-label-wrapped .ux-tree__node-label--highlighted{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree__node--selected .ux-tree__node-label-wrapped{background-color:var(--eui-base-color-primary-5)}.ux-tree__node-toggle-icon{color:var(--eui-base-color-primary-100)}.ux-tree__node-toggle-icon .ux-button__icon{font-size:var(--eui-base-font-size-xl)!important}.ux-tree__node-type{align-items:center;background-color:var(--eui-base-color-grey-80);color:var(--eui-base-color-white);display:inline-flex;font-size:var(--eui-base-font-size-s);height:var(--eui-base-spacing-m);margin:var(--eui-base-spacing-2xs) 0 0 var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-2xs);text-decoration:none}.ux-tree__node-type.ux-tree__node-type-parent{margin-left:var(--eui-base-spacing-xs)}.ux-tree__node-icon{color:var(--eui-base-color-grey-90);display:inline-flex}.ux-tree__node-type--primary{background-color:var(--eui-base-color-primary-100)}.ux-tree__node-type--info{background-color:var(--eui-base-color-info-100)}.ux-tree__node-type--success{background-color:var(--eui-base-color-success-100)}.ux-tree__node-type--warning{background-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-grey-100)}.ux-tree__node-type--danger{background-color:var(--eui-base-color-danger-100)}.ux-tree__node-badge{margin-left:var(--eui-base-spacing-xs);min-width:var(--eui-base-spacing-xl)}.ux-tree__node-metacontent-toggle{display:flex;font-size:var(--eui-base-font-size);margin-left:var(--eui-base-spacing-s);padding:0 var(--eui-base-spacing-3xs);box-shadow:var(--eui-base-shadow-1)}.ux-tree__node-metacontent{background-color:var(--eui-base-color-grey-5);margin-left:var(--eui-base-spacing-xl);padding:var(--eui-base-spacing-m)}.ux-tree__node-checkbox-label{margin:0!important;padding:0!important}.ux-tree__node-checkbox-label:after{left:12px!important}.ux-tree__node-checkbox-label--onelevel{margin:0 auto!important}.ux-tree--multiselect .ux-tree__node-wrapper{margin:3px 0}.ux-tree--multiselect .ux-tree__node-wrapper.ux-tree__node--selected .ux-tree__node-label{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.ux-tree--multiselect .ux-tree__node-label{margin-left:0;padding-left:var(--eui-base-spacing-s);padding-right:var(--eui-base-spacing-s)}.ux-tree--multiselect .ux-tree__node .ux-tree__parent{line-height:normal;margin-left:0}.ux-tree--multiselect .ux-tree__node .ux-tree__leaf{line-height:normal;margin-left:var(--eui-base-spacing-xl)}.ux-tree--onelevel{margin:0}.ux-tree--onelevel:before{border-left:none}.ux-tree--onelevel .ux-tree__node:before{border-top:none}.ux-tree--hidelines{margin:0}.ux-tree--hidelines .ux-tree__nodes:before{border-left:none}.ux-tree--hidelines .ux-tree__node:before{display:none}.ux-tree--hidelines:before{border-left:none}.ux-tree__virtual-scrolling__container{height:200px}.ux-tree__virtual-scrolling__item{height:30px}.ux-tree__toolbar{margin-bottom:var(--eui-base-spacing-m)}.ux-tree__toolbar-trigger{float:left;margin-right:var(--eui-base-spacing-xs)}.ux-tree__toolbar-filter{float:left;position:relative}.ux-tree__toolbar-filter-input{min-width:100px}.ux-tree__toolbar-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox{clip:auto;margin-right:var(--eui-base-spacing-2xs)}.ux-tree__node-wrapper input[type=checkbox].ux-input__checkbox+label:after{content:none!important}.ux-a-toolbar-filter{display:flex;padding-bottom:var(--eui-base-spacing-m);position:relative;width:100%}.ux-a-toolbar-filter-content{align-items:center;display:flex;flex-grow:1}.ux-a-toolbar-filter-sub-content{margin-left:auto}.ux-a-toolbar-filter-trigger-wrapper{display:flex;flex-shrink:0}.ux-a-toolbar-filter-trigger{margin-right:var(--eui-base-spacing-xs)}.ux-a-toolbar-filter-trigger.ux-button{border-color:var(--eui-base-color-grey-20)!important;box-shadow:none}.eui-t-compact .ux-a-toolbar-filter-trigger.ux-button.ux-button--outline{padding:8px var(--eui-base-spacing-m)}.ux-a-toolbar-filter-trigger .eui-icon{font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter{margin-right:var(--eui-base-spacing-xs);position:relative;width:100%}.ux-a-toolbar-filter-filter .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-xl)}.ux-a-toolbar-filter-filter-input{width:100%;width:calc(100% - 36px)!important}.ux-a-toolbar-filter-filter-input-search-icon{position:absolute;right:var(--eui-base-spacing-s);top:var(--eui-base-spacing-s)}.ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{border:1px solid var(--eui-base-color-grey-20);box-shadow:none}.eui-t-compact .ux-a-toolbar-filter uxtoolbarfilterbuttons .ux-dropdown-button{padding:8px var(--eui-base-spacing-s)}\n"] }]
|
419
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { nodes: [{
|
420
|
-
type: Input
|
421
|
-
}], collapseAllLabel: [{
|
422
|
-
type: Input
|
423
|
-
}], expandAllLabel: [{
|
424
|
-
type: Input
|
425
|
-
}], filterLabel: [{
|
426
|
-
type: Input
|
427
|
-
}], collapsedIconClass: [{
|
428
|
-
type: Input
|
429
|
-
}], expandedIconClass: [{
|
430
|
-
type: Input
|
431
|
-
}], setFilterValue: [{
|
432
|
-
type: Input
|
433
|
-
}], e2eAttr: [{
|
434
|
-
type: Input
|
435
|
-
}], nodeClick: [{
|
436
|
-
type: Output
|
437
|
-
}], nodeToggle: [{
|
438
|
-
type: Output
|
439
|
-
}], selectionChange: [{
|
440
|
-
type: Output
|
441
|
-
}], filter: [{
|
442
|
-
type: Output
|
443
|
-
}], templateVariable: [{
|
444
|
-
type: ContentChild,
|
445
|
-
args: [TemplateRef]
|
446
|
-
}], templates: [{
|
447
|
-
type: ContentChildren,
|
448
|
-
args: [EuiTemplateDirective]
|
449
|
-
}], treeNodes: [{
|
450
|
-
type: ViewChildren,
|
451
|
-
args: [EuiUxTreeNodeComponent]
|
452
|
-
}], virtualScrolling: [{
|
453
|
-
type: ViewChild,
|
454
|
-
args: ['virtualScrolling']
|
455
|
-
}], isShowToolbar: [{
|
456
|
-
type: Input
|
457
|
-
}], isExpanded: [{
|
458
|
-
type: Input
|
459
|
-
}], isMultiselect: [{
|
460
|
-
type: Input
|
461
|
-
}], isRecursiveSelection: [{
|
462
|
-
type: Input
|
463
|
-
}], isClickTogglingNode: [{
|
464
|
-
type: Input
|
465
|
-
}], isShowActiveNode: [{
|
466
|
-
type: Input
|
467
|
-
}], isHideToggles: [{
|
468
|
-
type: Input
|
469
|
-
}], isHideLines: [{
|
470
|
-
type: Input
|
471
|
-
}], isClickSelectingNode: [{
|
472
|
-
type: Input
|
473
|
-
}], showFilteredChildren: [{
|
474
|
-
type: Input
|
475
|
-
}], expandFilteredChildren: [{
|
476
|
-
type: Input
|
477
|
-
}], highlightPath: [{
|
478
|
-
type: Input
|
479
|
-
}], autoTranslate: [{
|
480
|
-
type: Input
|
481
|
-
}], hasLabels: [{
|
482
|
-
type: Input
|
483
|
-
}], hasSelectAll: [{
|
484
|
-
type: Input
|
485
|
-
}], hasSelectAllFiltered: [{
|
486
|
-
type: Input
|
487
|
-
}], isRecursiveParentSelection: [{
|
488
|
-
type: Input
|
489
|
-
}] } });
|
490
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXV4LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXV4LXRyZWUvZXVpLXV4LXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXV4LXRyZWUvZXVpLXV4LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FFcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxrQkFBa0I7SUFxQjNCLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBaEJoQyx1QkFBa0IsR0FBRywrQkFBK0IsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxnQ0FBZ0MsQ0FBQztRQUVyRCxZQUFPLEdBQUcsU0FBUyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDeEQsc0NBQXNDO1FBQzVCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDeEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFTdkMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsRUFB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QkFBc0I7c0JBRHpCLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixZQUFZO3NCQURmLEtBQUs7Z0JBU0Ysb0JBQW9CO3NCQUR2QixLQUFLO2dCQVNGLDBCQUEwQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXhMaW5rTGVnYWN5IH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG5pbXBvcnQgeyBFdWlVeFRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdXgtdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdXgtdHJlZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS11eC10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlVeFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgbm9kZXM6IFV4TGlua0xlZ2FjeVtdO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlQWxsTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBleHBhbmRBbGxMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbHRlckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY29sbGFwc2VkSWNvbkNsYXNzID0gJ2V1aS1pY29uIGV1aS1pY29uLXBsdXMtY2lyY2xlJztcbiAgICBASW5wdXQoKSBleHBhbmRlZEljb25DbGFzcyA9ICdldWktaWNvbiBldWktaWNvbi1taW51cy1jaXJjbGUnO1xuICAgIEBJbnB1dCgpIHNldEZpbHRlclZhbHVlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICd1eC10cmVlJztcblxuICAgIEBPdXRwdXQoKSBub2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFV4TGlua0xlZ2FjeT4oKTtcbiAgICBAT3V0cHV0KCkgbm9kZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXhMaW5rTGVnYWN5PigpO1xuICAgIC8vIFRPRE86IGZvciBlVUkgMTQgcmVtb3ZlIHRoZSBbXSB0eXBlXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXhMaW5rTGVnYWN5IHwgW10+KCk7XG4gICAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVWYXJpYWJsZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIEBWaWV3Q2hpbGRyZW4oRXVpVXhUcmVlTm9kZUNvbXBvbmVudCkgdHJlZU5vZGVzOiBRdWVyeUxpc3Q8RXVpVXhUcmVlTm9kZUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgndmlydHVhbFNjcm9sbGluZycpIHB1YmxpYyB2aXJ0dWFsU2Nyb2xsaW5nOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHB1YmxpYyBhbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYk5vZGVzID0gMDtcbiAgICBwdWJsaWMgdmlzaWJsZU5vZGVzID0gW107XG4gICAgcHVibGljIG5vZGVDb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGZpbHRlclZhbHVlID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dUb29sYmFyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93VG9vbGJhcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd1Rvb2xiYXIodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dUb29sYmFyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93VG9vbGJhciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0V4cGFuZGVkO1xuICAgIH1cbiAgICBzZXQgaXNFeHBhbmRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNdWx0aXNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTXVsdGlzZWxlY3Q7XG4gICAgfVxuICAgIHNldCBpc011bHRpc2VsZWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNdWx0aXNlbGVjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTXVsdGlzZWxlY3QgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlY3Vyc2l2ZVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVjdXJzaXZlU2VsZWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNSZWN1cnNpdmVTZWxlY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlY3Vyc2l2ZVNlbGVjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVjdXJzaXZlU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDbGlja1RvZ2dsaW5nTm9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ2xpY2tUb2dnbGluZ05vZGU7XG4gICAgfVxuICAgIHNldCBpc0NsaWNrVG9nZ2xpbmdOb2RlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDbGlja1RvZ2dsaW5nTm9kZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzQ2xpY2tUb2dnbGluZ05vZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dBY3RpdmVOb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93QWN0aXZlTm9kZTtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0FjdGl2ZU5vZGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dBY3RpdmVOb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93QWN0aXZlTm9kZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGlkZVRvZ2dsZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGVUb2dnbGVzO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlVG9nZ2xlcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGlkZVRvZ2dsZXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hpZGVUb2dnbGVzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIaWRlTGluZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGVMaW5lcztcbiAgICB9XG4gICAgc2V0IGlzSGlkZUxpbmVzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIaWRlTGluZXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0hpZGVMaW5lcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ2xpY2tTZWxlY3RpbmdOb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDbGlja1NlbGVjdGluZ05vZGU7XG4gICAgfVxuICAgIHNldCBpc0NsaWNrU2VsZWN0aW5nTm9kZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ2xpY2tTZWxlY3RpbmdOb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDbGlja1NlbGVjdGluZ05vZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93RmlsdGVyZWRDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dGaWx0ZXJlZENoaWxkcmVuO1xuICAgIH1cbiAgICBzZXQgc2hvd0ZpbHRlcmVkQ2hpbGRyZW4odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9zaG93RmlsdGVyZWRDaGlsZHJlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dGaWx0ZXJlZENoaWxkcmVuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXhwYW5kRmlsdGVyZWRDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZEZpbHRlcmVkQ2hpbGRyZW47XG4gICAgfVxuICAgIHNldCBleHBhbmRGaWx0ZXJlZENoaWxkcmVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kRmlsdGVyZWRDaGlsZHJlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2V4cGFuZEZpbHRlcmVkQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoaWdobGlnaHRQYXRoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0UGF0aDtcbiAgICB9XG4gICAgc2V0IGhpZ2hsaWdodFBhdGgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXRoID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGlnaGxpZ2h0UGF0aCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGF1dG9UcmFuc2xhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvVHJhbnNsYXRlO1xuICAgIH1cbiAgICBzZXQgYXV0b1RyYW5zbGF0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2F1dG9UcmFuc2xhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hdXRvVHJhbnNsYXRlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNMYWJlbHM7XG4gICAgfVxuICAgIHNldCBoYXNMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNMYWJlbHMgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1NlbGVjdEFsbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1NlbGVjdEFsbDtcbiAgICB9XG4gICAgc2V0IGhhc1NlbGVjdEFsbCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1NlbGVjdEFsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1NlbGVjdEFsbEZpbHRlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzU2VsZWN0QWxsRmlsdGVyZWQ7XG4gICAgfVxuICAgIHNldCBoYXNTZWxlY3RBbGxGaWx0ZXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1NlbGVjdEFsbEZpbHRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzU2VsZWN0QWxsRmlsdGVyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVjdXJzaXZlUGFyZW50U2VsZWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVjdXJzaXZlUGFyZW50U2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgIGdldCBpc01pbmltdW1PbmVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWxsU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGVkTm9kZXMoKS5sZW5ndGggPT09IHRoaXMubmJOb2RlcztcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ25vZGVzJ10pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZU5vZGVzID0gdGhpcy52aXNpYmxlKHRoaXMubm9kZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0TmJOb2Rlcyh0aGlzLm5vZGVzKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRQYXJlbnROb2RlKHRoaXMubm9kZXMsIG51bGwpO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ25vZGVDb250ZW50Jykge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZpc2libGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogVXhMaW5rTGVnYWN5W10ge1xuXG4gICAgICAgIGlmKHRoaXMuaGFzU2VsZWN0QWxsRmlsdGVyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZpc2libGVOb2Rlc1JlY3Vyc2l2ZShub2Rlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChuKSA9PiBuLnZpc2libGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TmJOb2Rlcyhub2RlczogVXhMaW5rTGVnYWN5W10pOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uYk5vZGVzKys7XG4gICAgICAgICAgICBpZiAobm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgobGluazogVXhMaW5rTGVnYWN5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmJOb2RlcyhbbGlua10pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSBlLnRhcmdldC5jaGVja2VkO1xuICAgICAgICBpZiAoIWUudGFyZ2V0LmNoZWNrKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzU2VsZWN0ZWRGaWx0ZXJlZFN0YXRlKHRoaXMudmlzaWJsZU5vZGVzLCBlLnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKHRoaXMubm9kZXMsIGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlbGVjdGVkTm9kZXMoKTogVXhMaW5rTGVnYWN5W10ge1xuXG4gICAgICAgICAgaWYodGhpcy5maWx0ZXJWYWx1ZSAhPT0gJycgJiYgdGhpcy5hbGxTZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlTm9kZXM7XG4gICAgICAgICAgfSAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RlZE5vZGVzUmVjdXJzaXZlKHRoaXMubm9kZXMpO1xuICAgICAgICAgIH1cblxuICAgIH1cblxuICAgIHB1YmxpYyBvbk5vZGVUb2dnbGUoVXhMaW5rTGVnYWN5OiBVeExpbmtMZWdhY3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2RlVG9nZ2xlLmVtaXQoVXhMaW5rTGVnYWN5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ob2RlQ2xpY2soVXhMaW5rTGVnYWN5OiBVeExpbmtMZWdhY3kpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFVeExpbmtMZWdhY3kuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoVXhMaW5rTGVnYWN5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ2xpY2tUb2dnbGluZ05vZGUgJiYgVXhMaW5rTGVnYWN5Lmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5vZGVUb2dnbGUoVXhMaW5rTGVnYWN5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5pc011bHRpc2VsZWN0ICYmIHRoaXMuaXNTaG93QWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKHRoaXMubm9kZXMsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBVeExpbmtMZWdhY3kuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwYW5kQWxsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE5vZGVzRXhwYW5kZWRTdGF0ZSh0aGlzLm5vZGVzLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db2xsYXBzZUFsbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXROb2Rlc0V4cGFuZGVkU3RhdGUodGhpcy5ub2RlcywgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShVeExpbmtMZWdhY3k6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICBpZiAoIVV4TGlua0xlZ2FjeS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQoVXhMaW5rTGVnYWN5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaWx0ZXIoZmlsdGVyVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNWaXNpYmxlU3RhdGUodGhpcy5ub2RlcywgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kRmlsdGVyZWRDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyTWF0Y2hlZChub2RlLCBmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZEZpbHRlcmVkQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlck1hdGNoZWRFeHBhbmQobm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNWaXNpYmxlU3RhdGUodGhpcy5ub2RlcywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dGaWx0ZXJlZENoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlQ2hpbGRyZW4obm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kRmlsdGVyZWRDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLnZpc2libGUodGhpcy5ub2Rlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzVmlzaWJsZVN0YXRlKHRoaXMubm9kZXMsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLnZpc2libGUodGhpcy5ub2Rlcyk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxpbmc/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmhhc1NlbGVjdEFsbEZpbHRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldE5vZGVzU2VsZWN0ZWRGaWx0ZXJlZFN0YXRlKHRoaXMudmlzaWJsZU5vZGVzLCB0aGlzLmFsbFNlbGVjdGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmFsdWUgID0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoZmlsdGVyVmFsdWUpO1xuICAgIH1cblxuICAgIGlzRmlsdGVyTWF0Y2hlZEV4cGFuZChub2RlOiBVeExpbmtMZWdhY3ksIGZpbHRlclZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbm9kZVsnaGlnaGxpZ2h0ZWQnXSA9IGZhbHNlO1xuICAgICAgICBpZiAobm9kZS5sYWJlbC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoZmlsdGVyVmFsdWUudG9VcHBlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIG5vZGVbJ2hpZ2hsaWdodGVkJ10gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbm9kZVsnaGlnaGxpZ2h0ZWQnXSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW5Ob2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlck1hdGNoZWRFeHBhbmQoY2hpbGRyZW5Ob2RlLCBmaWx0ZXJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5Ob2RlLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlWydoaWdobGlnaHRlZCddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogVXhMaW5rTGVnYWN5KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrRm9yQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5ub2Rlcy5zb21lKChub2RlKSA9PiBub2RlLmhhc0NoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXROb2RlKHRoaXMubm9kZXMpO1xuICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZW1pdCBudWxsIGluc3RlYWQgb2YgW11cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldE5vZGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogdm9pZCB7XG4gICAgICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldE5vZGUobm9kZS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlQ2hpbGRyZW4obm9kZTogVXhMaW5rTGVnYWN5LCBmaWx0ZXJWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC52aXNpYmxlID09PSB0cnVlICYmIG5vZGUucGFyZW50LmxhYmVsLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZS50b1VwcGVyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIG5vZGUudmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZHJlbk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmlzaWJsZUNoaWxkcmVuKGNoaWxkcmVuTm9kZSwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkTm9kZXNSZWN1cnNpdmUobm9kZXM6IFV4TGlua0xlZ2FjeVtdKTogVXhMaW5rTGVnYWN5W10ge1xuICAgICAgICByZXR1cm4gKG5vZGVzIHx8IFtdKS5yZWR1Y2UoKGFjYywgbm9kZSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5zZWxlY3RlZCAmJiAhbm9kZS5pbmRldGVybWluYXRlXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLmFjYywgbm9kZSwgLi4udGhpcy5nZXRTZWxlY3RlZE5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXVxuICAgICAgICAgICAgICAgICAgICA6IFsuLi5hY2MsIC4uLnRoaXMuZ2V0U2VsZWN0ZWROb2Rlc1JlY3Vyc2l2ZShub2RlLmNoaWxkcmVuKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLnNlbGVjdGVkID8gWy4uLmFjYywgbm9kZV0gOiBbLi4uYWNjXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGVzOiBVeExpbmtMZWdhY3lbXSk6IFV4TGlua0xlZ2FjeVtdIHtcbiAgICAgICAgcmV0dXJuIChub2RlcyB8fCBbXSkucmVkdWNlKChhY2MsIG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICA/IFsuLi5hY2MsIG5vZGUsIC4uLnRoaXMuZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXVxuICAgICAgICAgICAgICAgICAgICA6IFsuLi5hY2MsIC4uLnRoaXMuZ2V0VmlzaWJsZU5vZGVzUmVjdXJzaXZlKG5vZGUuY2hpbGRyZW4pXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmlzaWJsZSA/IFsuLi5hY2MsIG5vZGVdIDogWy4uLmFjY107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsdGVyTWF0Y2hlZChub2RlOiBVeExpbmtMZWdhY3ksIGZpbHRlclZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vZGUubGFiZWw/LnRvVXBwZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZT8udG9VcHBlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxpbmc/LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgICAgICBub2RlLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZHJlbk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyTWF0Y2hlZChjaGlsZHJlbk5vZGUsIGZpbHRlclZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbk5vZGUudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc0V4cGFuZGVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBleHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNFeHBhbmRlZFN0YXRlKG5vZGUuY2hpbGRyZW4sIGV4cGFuZGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc1Zpc2libGVTdGF0ZShub2RlczogVXhMaW5rTGVnYWN5W10sIHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgbm9kZS52aXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb2Rlc1Zpc2libGVTdGF0ZShub2RlLmNoaWxkcmVuLCB2aXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXROb2Rlc1NlbGVjdGVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBub2RlLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Tm9kZXNTZWxlY3RlZFN0YXRlKG5vZGUuY2hpbGRyZW4sIHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdEFsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuICAgIHByaXZhdGUgc2V0Tm9kZXNTZWxlY3RlZEZpbHRlcmVkU3RhdGUobm9kZXM6IFV4TGlua0xlZ2FjeVtdLCBzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZihub2RlLnZpc2libGUpe1xuICAgICAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb2Rlc1NlbGVjdGVkRmlsdGVyZWRTdGF0ZShub2RlLmNoaWxkcmVuLCBzZWxlY3RlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RBbGxGaWx0ZXJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFyZW50Tm9kZShub2RlczogVXhMaW5rTGVnYWN5W10sIHBhcmVudE5vZGU6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJlbnROb2RlKG5vZGUuY2hpbGRyZW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4vKiBlc2xpbnQtZW5hYmxlICovXG4iLCI8ZXVpLXV4LXRyZWUtdG9vbGJhclxuICAgICpuZ0lmPVwiaXNTaG93VG9vbGJhclwiXG4gICAgW2lzVmlzaWJsZV09XCJpc1Nob3dUb29sYmFyXCJcbiAgICBbaXNUb2dnbGVWaXNpYmxlXT1cIiFpc0hpZGVUb2dnbGVzXCJcbiAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgIFtmaWx0ZXJWYWx1ZV09XCJzZXRGaWx0ZXJWYWx1ZVwiXG4gICAgKGV4cGFuZEFsbCk9XCJvbkV4cGFuZEFsbCgkZXZlbnQpXCJcbiAgICAoY29sbGFwc2VBbGwpPVwib25Db2xsYXBzZUFsbCgkZXZlbnQpXCJcbiAgICBmaWx0ZXJMYWJlbD1cInt7IGZpbHRlckxhYmVsIH19XCJcbiAgICBbZXhwYW5kQWxsTGFiZWxdPVwiZXhwYW5kQWxsTGFiZWwgPyBleHBhbmRBbGxMYWJlbCA6IG51bGxcIlxuICAgIGNvbGxhcHNlQWxsTGFiZWw9XCJ7eyBjb2xsYXBzZUFsbExhYmVsIH19XCJcbiAgICBbaXNUb2dnbGVFeHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgICBbaGFzTGFiZWxzXT1cImhhc0xhYmVsc1wiXG4gICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX0tYS10b29sYmFyLWZpbHRlclwiPlxuPC9ldWktdXgtdHJlZS10b29sYmFyPlxuXG48ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiICpuZ0lmPVwiaGFzU2VsZWN0QWxsIHx8IGhhc1NlbGVjdEFsbEZpbHRlcmVkXCI+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGNsYXNzPVwidXgtaW5wdXRfX2NoZWNrYm94XCJcbiAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIlxuICAgICAgICBbY2hlY2tlZF09XCJpc01pbmltdW1PbmVTZWxlY3RlZCA/ICdjaGVja2VkJyA6IG51bGxcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInV4LXRyZWVfX25vZGUtY2hlY2tib3gtbGFiZWxcIlxuICAgICAgICBbY2xhc3MuY2hlY2tib3gtbGFiZWwtaW5kZXRlcm1pbmF0ZV09XCJpc01pbmltdW1PbmVTZWxlY3RlZCAmJiAhaXNBbGxTZWxlY3RlZFwiXG4gICAgICAgIGZvcj1cInNlbGVjdEFsbFwiXG4gICAgICAgIFtjbGFzcy51eC10cmVlX19ub2RlLWNoZWNrYm94LWxhYmVsLS1vbmVsZXZlbF09XCJjaGVja0ZvckNoaWxkcmVuKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhbGxTZWxlY3RlZCAmJiAhaXNNaW5pbXVtT25lU2VsZWN0ZWQgJiYgIWlzQWxsU2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIHt7ICdldWkudXh0cmVlLlNFTEVDVC1BTEwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWxsU2VsZWN0ZWQgfHwgaXNNaW5pbXVtT25lU2VsZWN0ZWQgfHwgaXNBbGxTZWxlY3RlZFwiPlxuICAgICAgICAgICAge3sgJ2V1aS51eHRyZWUuVU5TRUxFQ1QtQUxMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xhYmVsPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwibm9kZXMubGVuZ3RoID4gNTAwICYmICFoYXNTZWxlY3RBbGwgJiYgIWhhc1NlbGVjdEFsbEZpbHRlcmVkOyBlbHNlIG5vVmlydHVhbFNjcm9sbFwiPlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgICAgI3ZpcnR1YWxTY3JvbGxpbmdcbiAgICAgICAgaXRlbVNpemU9XCIzMFwiXG4gICAgICAgIGNsYXNzPVwidXgtdHJlZV9fdmlydHVhbC1zY3JvbGxpbmdfX2NvbnRhaW5lclwiXG4gICAgICAgIG1pbkJ1ZmZlclB4PVwiMjAwMFwiXG4gICAgICAgIG1heEJ1ZmZlclB4PVwiMjQwMFwiPlxuICAgICAgICA8ZGl2ICpjZGtWaXJ0dWFsRm9yPVwibGV0IG5vZGUgb2YgdmlzaWJsZU5vZGVzOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBjbGFzcz1cInV4LXRyZWVfX3ZpcnR1YWwtc2Nyb2xsaW5nX19pdGVtXCI+XG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cInV4LXRyZWVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy51eC10cmVlLS1oaWRlbGluZXNdPVwiaXNIaWRlTGluZXNcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy51eC10cmVlLS1tdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudXgtdHJlZS0tb25lbGV2ZWxdPVwiY2hlY2tGb3JDaGlsZHJlbigpXCJcbiAgICAgICAgICAgICAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktdXgtdHJlZS1ub2RlXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAobm9kZUNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAobm9kZVRvZ2dsZSk9XCJvbk5vZGVUb2dnbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1Jvb3ROb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNNdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmVjdXJzaXZlU2VsZWN0aW9uXT1cImlzUmVjdXJzaXZlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzQ2xpY2tUb2dnbGluZ05vZGVdPVwiaXNDbGlja1RvZ2dsaW5nTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkSWNvbkNsYXNzPVwie3sgZXhwYW5kZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWRJY29uQ2xhc3M9XCJ7eyBjb2xsYXBzZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVWYXJpYWJsZV09XCJ0ZW1wbGF0ZVZhcmlhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVDb250ZW50VGVtcGxhdGVdPVwibm9kZUNvbnRlbnRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1Nob3dBY3RpdmVOb2RlXT1cImlzU2hvd0FjdGl2ZU5vZGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b1RyYW5zbGF0ZV09XCJhdXRvVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzSGlkZVRvZ2dsZXNdPVwiaXNIaWRlVG9nZ2xlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NsaWNrU2VsZWN0aW5nTm9kZV09XCJpc0NsaWNrU2VsZWN0aW5nTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRQYXRoXT1cImhpZ2hsaWdodFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICBbaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb25dPVwiaXNSZWN1cnNpdmVQYXJlbnRTZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8L2V1aS11eC10cmVlLW5vZGU+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI25vVmlydHVhbFNjcm9sbD5cbiAgICA8dWxcbiAgICAgICAgY2xhc3M9XCJ1eC10cmVlXCJcbiAgICAgICAgW2NsYXNzLnV4LXRyZWUtLWhpZGVsaW5lc109XCJpc0hpZGVMaW5lc1wiXG4gICAgICAgIFtjbGFzcy51eC10cmVlLS1tdWx0aXNlbGVjdF09XCJpc011bHRpc2VsZWN0XCJcbiAgICAgICAgW2NsYXNzLnV4LXRyZWUtLW9uZWxldmVsXT1cImNoZWNrRm9yQ2hpbGRyZW4oKVwiXG4gICAgICAgIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCI+XG4gICAgICAgIDxldWktdXgtdHJlZS1ub2RlXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgKG5vZGVDbGljayk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChub2RlVG9nZ2xlKT1cIm9uTm9kZVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaXNSb290Tm9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc011bHRpc2VsZWN0XT1cImlzTXVsdGlzZWxlY3RcIlxuICAgICAgICAgICAgW2lzUmVjdXJzaXZlU2VsZWN0aW9uXT1cImlzUmVjdXJzaXZlU2VsZWN0aW9uXCJcbiAgICAgICAgICAgIFtpc0NsaWNrVG9nZ2xpbmdOb2RlXT1cImlzQ2xpY2tUb2dnbGluZ05vZGVcIlxuICAgICAgICAgICAgZXhwYW5kZWRJY29uQ2xhc3M9XCJ7eyBleHBhbmRlZEljb25DbGFzcyB9fVwiXG4gICAgICAgICAgICBjb2xsYXBzZWRJY29uQ2xhc3M9XCJ7eyBjb2xsYXBzZWRJY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW3RlbXBsYXRlVmFyaWFibGVdPVwidGVtcGxhdGVWYXJpYWJsZVwiXG4gICAgICAgICAgICBbbm9kZUNvbnRlbnRUZW1wbGF0ZV09XCJub2RlQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtpc1Nob3dBY3RpdmVOb2RlXT1cImlzU2hvd0FjdGl2ZU5vZGVcIlxuICAgICAgICAgICAgW2F1dG9UcmFuc2xhdGVdPVwiYXV0b1RyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaXNIaWRlVG9nZ2xlc109XCJpc0hpZGVUb2dnbGVzXCJcbiAgICAgICAgICAgIFtpc0NsaWNrU2VsZWN0aW5nTm9kZV09XCJpc0NsaWNrU2VsZWN0aW5nTm9kZVwiXG4gICAgICAgICAgICBbaGlnaGxpZ2h0UGF0aF09XCJoaWdobGlnaHRQYXRoXCJcbiAgICAgICAgICAgIFtpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvbl09XCJpc1JlY3Vyc2l2ZVBhcmVudFNlbGVjdGlvblwiPlxuICAgICAgICA8L2V1aS11eC10cmVlLW5vZGU+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|