@eui/components 17.0.0-rc.6 → 17.0.0-rc.8
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 +143 -17
- 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 +31 -19
- 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 +17 -74
- 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 +63 -639
- package/docs/components/EuiBlockContentComponent.html +4 -4
- package/docs/components/EuiBlockDocumentComponent.html +21 -728
- 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 +71 -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 +3 -3
- package/docs/components/EuiDashboardCardComponent.html +7 -7
- 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 +8 -8
- 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 +103 -968
- package/docs/components/EuiMenuItemComponent.html +76 -7
- 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 +220 -229
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +35 -1
- package/docs/modules/EuiAlertModule.html +4 -1
- package/docs/modules/EuiAllModule.html +0 -6
- package/docs/modules/EuiAppModule.html +0 -6
- package/docs/modules/EuiAppSidebarModule.html +4 -28
- package/docs/modules/EuiAppToolbarModule.html +4 -28
- package/docs/modules/EuiAvatarModule.html +7 -28
- package/docs/modules/EuiBadgeModule.html +11 -1
- package/docs/modules/EuiChartsModule.html +4 -28
- package/docs/modules/EuiFieldsetModule.html +3 -0
- package/docs/modules/EuiHeaderModule.html +4 -28
- package/docs/modules/EuiLayoutModule.html +0 -6
- package/docs/modules/EuiPageModule.html +4 -28
- package/docs/modules/EuiSidebarMenuModule.html +4 -28
- package/docs/modules/EuiSkeletonModule.html +4 -28
- package/docs/modules/EuiTimebarModule.html +10 -0
- package/docs/modules/EuiToolbarModule.html +4 -28
- package/docs/modules/EuiUserProfileModule.html +4 -28
- package/docs/modules.html +0 -12
- package/esm2022/eui-alert/eui-alert.component.mjs +75 -80
- package/esm2022/eui-alert/eui-alert.module.mjs +49 -0
- package/esm2022/eui-alert/index.mjs +2 -1
- package/esm2022/eui-all/eui-all.module.mjs +1 -6
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +49 -77
- package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +1 -4
- package/esm2022/eui-avatar/eui-avatar-list.component.mjs +1 -4
- package/esm2022/eui-avatar/eui-avatar.component.mjs +20 -39
- package/esm2022/eui-avatar/eui-avatar.module.mjs +5 -2
- package/esm2022/eui-badge/eui-badge.component.mjs +40 -35
- package/esm2022/eui-badge/eui-badge.module.mjs +19 -0
- package/esm2022/eui-badge/index.mjs +2 -1
- package/esm2022/eui-block-content/eui-block-content.component.mjs +10 -17
- package/esm2022/eui-block-document/eui-block-document.component.mjs +15 -20
- package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +6 -2
- package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +6 -9
- package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +23 -33
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +22 -39
- package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +28 -4
- package/esm2022/eui-menu/eui-menu.component.mjs +51 -56
- package/esm2022/eui-menu/models/eui-menu-item.model.mjs +2 -12
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +1 -1
- 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/eui-tree/eui-tree.component.mjs +1 -1
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +2 -2
- package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +1 -1
- package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +1 -1
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +1 -1
- package/eui-alert/eui-alert.component.d.ts +13 -23
- package/eui-alert/eui-alert.component.d.ts.map +1 -1
- package/eui-alert/eui-alert.module.d.ts +14 -0
- package/eui-alert/eui-alert.module.d.ts.map +1 -0
- package/eui-alert/index.d.ts +1 -0
- package/eui-alert/index.d.ts.map +1 -1
- 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 +35 -19
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/eui-avatar/avatar-badge/avatar-badge.component.d.ts +0 -1
- package/eui-avatar/avatar-badge/avatar-badge.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar-list.component.d.ts +0 -1
- package/eui-avatar/eui-avatar-list.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar.component.d.ts +10 -10
- package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar.module.d.ts +2 -1
- package/eui-avatar/eui-avatar.module.d.ts.map +1 -1
- package/eui-badge/eui-badge.component.d.ts +8 -14
- package/eui-badge/eui-badge.component.d.ts.map +1 -1
- package/eui-badge/eui-badge.module.d.ts +10 -0
- package/eui-badge/eui-badge.module.d.ts.map +1 -0
- package/eui-badge/index.d.ts +1 -0
- package/eui-badge/index.d.ts.map +1 -1
- package/eui-block-content/eui-block-content.component.d.ts +2 -3
- package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
- package/eui-block-document/eui-block-document.component.d.ts +3 -7
- package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
- package/eui-card/components/eui-card-content/eui-card-content.component.d.ts +1 -0
- package/eui-card/components/eui-card-content/eui-card-content.component.d.ts.map +1 -1
- package/eui-dashboard-button/eui-dashboard-button.component.d.ts +1 -2
- package/eui-dashboard-button/eui-dashboard-button.component.d.ts.map +1 -1
- package/eui-dashboard-card/eui-dashboard-card.component.d.ts +9 -7
- package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
- package/eui-fieldset/eui-fieldset.component.d.ts +12 -8
- package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
- package/eui-fieldset/eui-fieldset.module.d.ts +2 -1
- package/eui-fieldset/eui-fieldset.module.d.ts.map +1 -1
- package/eui-menu/eui-menu-item.component.d.ts +7 -1
- package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
- package/eui-menu/eui-menu.component.d.ts +16 -19
- package/eui-menu/eui-menu.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-alert.mjs +103 -68
- package/fesm2022/eui-components-eui-alert.mjs.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 +49 -75
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-avatar.mjs +22 -45
- package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
- package/fesm2022/eui-components-eui-badge.mjs +42 -22
- package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
- package/fesm2022/eui-components-eui-block-content.mjs +9 -16
- package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
- package/fesm2022/eui-components-eui-block-document.mjs +14 -19
- package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
- package/fesm2022/eui-components-eui-card.mjs +5 -1
- package/fesm2022/eui-components-eui-card.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dashboard-button.mjs +5 -8
- package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dashboard-card.mjs +22 -32
- package/fesm2022/eui-components-eui-dashboard-card.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-fieldset.mjs +23 -40
- package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +74 -69
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-overlay.mjs +6 -2
- 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-eui-tree.mjs +1 -1
- package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +5 -5
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +7 -13
- 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
@@ -2,9 +2,11 @@ import { Component, Input, NgModule, ViewChild, ViewEncapsulation, } from '@angu
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
4
4
|
import { formatNumber } from '@eui/core';
|
5
|
+
import { EuiIconModule } from '@eui/components/eui-icon';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
import * as i1 from "@eui/core";
|
7
8
|
import * as i2 from "@angular/common";
|
9
|
+
import * as i3 from "@eui/components/eui-icon";
|
8
10
|
export class EuiTimebarItemUI {
|
9
11
|
}
|
10
12
|
export class EuiTimebarComponent {
|
@@ -48,7 +50,7 @@ export class EuiTimebarComponent {
|
|
48
50
|
this.isSomeStepsAreGrouped = false;
|
49
51
|
this.extraTimelineLabelSpace = 21;
|
50
52
|
this.e2eAttr = 'eui-timebar';
|
51
|
-
this.dateFormat = '
|
53
|
+
this.dateFormat = 'yyyy-MM-dd';
|
52
54
|
this._isShowLegend = false;
|
53
55
|
this._isShowLegendAsIndex = true;
|
54
56
|
this._isShowCurrentDateMarker = false;
|
@@ -279,11 +281,11 @@ export class EuiTimebarComponent {
|
|
279
281
|
}
|
280
282
|
}
|
281
283
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.EuiAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
282
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110);color:var(--eui-base-color-info-110-contrast)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110);color:var(--eui-base-color-success-110-contrast)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-warning-110-contrast)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110);color:var(--eui-base-color-danger-110-contrast)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-warning-100-contrast)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-grey-100)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110);color:var(--eui-base-color-grey-100)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
|
284
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row eui-u-flex\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row eui-u-flex\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);margin-left:-2px;position:absolute;top:calc(-1 * var(--eui-base-spacing-m) - var(--eui-base-spacing-2xs))}.eui-timebar__current-date-marker-step{bottom:calc(-1 * var(--eui-base-spacing-m) - 2px);color:var(--eui-base-color-danger-100);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.eui-timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.eui-timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.eui-timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.eui-timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
|
283
285
|
}
|
284
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarComponent, decorators: [{
|
285
287
|
type: Component,
|
286
|
-
args: [{ selector: 'eui-timebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110);color:var(--eui-base-color-info-110-contrast)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110);color:var(--eui-base-color-success-110-contrast)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-warning-110-contrast)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110);color:var(--eui-base-color-danger-110-contrast)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-warning-100-contrast)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110);color:var(--eui-base-color-grey-100)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110);color:var(--eui-base-color-grey-100)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"] }]
|
288
|
+
args: [{ selector: 'eui-timebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"row eui-u-flex\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row eui-u-flex\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);margin-left:-2px;position:absolute;top:calc(-1 * var(--eui-base-spacing-m) - var(--eui-base-spacing-2xs))}.eui-timebar__current-date-marker-step{bottom:calc(-1 * var(--eui-base-spacing-m) - 2px);color:var(--eui-base-color-danger-100);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}.eui-timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.eui-timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.eui-timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.eui-timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.eui-timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"] }]
|
287
289
|
}], ctorParameters: () => [{ type: i1.EuiAppShellService }, { type: i0.ChangeDetectorRef }], propDecorators: { container: [{
|
288
290
|
type: ViewChild,
|
289
291
|
args: ['container']
|
@@ -312,15 +314,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
312
314
|
}] } });
|
313
315
|
export class EuiTimebarModule {
|
314
316
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
315
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, declarations: [EuiTimebarComponent], imports: [CommonModule], exports: [EuiTimebarComponent] }); }
|
316
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, imports: [CommonModule] }); }
|
317
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, declarations: [EuiTimebarComponent], imports: [CommonModule, EuiIconModule], exports: [EuiTimebarComponent] }); }
|
318
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, imports: [CommonModule, EuiIconModule] }); }
|
317
319
|
}
|
318
320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTimebarModule, decorators: [{
|
319
321
|
type: NgModule,
|
320
322
|
args: [{
|
321
|
-
imports: [CommonModule],
|
323
|
+
imports: [CommonModule, EuiIconModule],
|
322
324
|
exports: [EuiTimebarComponent],
|
323
325
|
declarations: [EuiTimebarComponent],
|
324
326
|
}]
|
325
327
|
}] });
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0NBUzVCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQXFCNUIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFL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dCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSwgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdZWVlZLU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hc1NlcnZpY2UuYnJlYWtwb2ludHMkLnN1YnNjcmliZSgoYmtwcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkJyZWFrcG9pbnRDaGFuZ2UoYmtwcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOdWxsSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zb3J0SXRlbXMoKTtcblxuICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RlcFR5cGVDbGFzcyA9ICcnO1xuICAgICAgICAgICAgbGV0IHRvb2x0aXBDb2xvciA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKGl0ZW0uc3RlcFR5cGUpIHtcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzID0gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS5zdGVwVHlwZTtcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IgPSBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IC9eXFxkK1xcLlxcZCskLy50ZXN0KGl0ZW0ubGFiZWwpIHx8IC9eXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCk7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0ubGFiZWwgPSBmb3JtYXROdW1iZXIoaXRlbS5sYWJlbCwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXNVSS5wdXNoKHtcbiAgICAgICAgICAgICAgICBwZXJjOiB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UoaXRlbS5kYXRlLCBzdGFydERhdGUsIGVuZERhdGUpLFxuICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgc3RlcFR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLmN1cnJlbnREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLm1hcmtlZFBlcmMgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UodGhpcy5tYXJrZWREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwgJiYgdGhpcy5lbmRMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCB8fCB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTEwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYWxpemUgYXR0cmlidXRlc1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgIHRoaXMuaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkID0gdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBPdmVybGFwcGluZ0xhYmVscygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXNbJ21hcmtlZERhdGUnXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShjaGFuZ2UuY3VycmVudFZhbHVlIGFzIERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkJyZWFrcG9pbnRDaGFuZ2UoYmtwczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChia3BzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4O1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IEV1aVRpbWViYXJJdGVtVUkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtLmxhYmVsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmVOdWxsSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXRlbXNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICAgICAgLy8gU29ydCBieSBhc2NlbmRpbmcgZGF0ZTpcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnNvcnQoKGE6IEV1aVRpbWViYXJJdGVtLCBiOiBFdWlUaW1lYmFySXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhICYmIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBmbGV4LWNvbnRhaW5lclwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19zdGFydC1sYWJlbFwiPlxuICAgICAgICB7eyBzdGFydExhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJcIiBbc3R5bGUubWFyZ2luQm90dG9tLnB4XT1cImV4dHJhVGltZWxpbmVMYWJlbFNwYWNlXCIgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJjdXJyZW50UGVyYyA+PSAxMDAgPyAxMDAgOiBjdXJyZW50UGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hcmtlZERhdGVcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCIgW3N0eWxlLndpZHRoLiVdPVwibWFya2VkUGVyYyA+PSAxMDAgPyAxMDAgOiBtYXJrZWRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtXCIgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbS0td2l0aC1lbmQtZGF0ZV09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmdyb3VwRW5kRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZWJhcl9fZ3JvdXBlZF9fc3RlcF09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVwiPnt7IGl0ZW0uZ3JvdXBMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIiB0aXRsZT1cInt7IGl0ZW0uaXRlbS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1jaXJjbGVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1hcmtlZERhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrZWREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX2VuZC1sYWJlbFwiPlxuICAgICAgICB7eyBlbmRMYWJlbCB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGZsZXgtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tZncgdXgtaWNvbi1jaXJjbGUgZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWljb24tLXt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93TGVnZW5kR2VuZXJhdGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbCB8fCBpdGVtLmlzR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwSW5kZXggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVuZExhYmVsXCIgY2xhc3M9XCJjb2wtMlwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxnQkFBZ0I7Q0FTNUI7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBcUI1QixJQUNJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQW1CO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQ0ksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDSSx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksdUJBQXVCLENBQUMsS0FBbUI7UUFDM0MsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUNJLGdDQUFnQztRQUNoQyxPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxnQ0FBZ0MsQ0FBQyxLQUFtQjtRQUNwRCxJQUFJLENBQUMsaUNBQWlDLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQ0ksd0JBQXdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLHdCQUF3QixDQUFDLEtBQW1CO1FBQzVDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBS0QsWUFDWSxTQUE2QixFQUM3QixFQUFxQjtRQURyQixjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWpFakMsWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR3pCLHVCQUFrQixHQUFHLFFBQVEsQ0FBQztRQUs5QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFHcEIsWUFBTyxHQUFHLGFBQWEsQ0FBQztRQUt4QixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBUTNCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBUXRCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQVE1Qiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFRakMsc0NBQWlDLEdBQUcsS0FBSyxDQUFDO1FBUTFDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUVoQyxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG9FQUFvRTtJQUsvRixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsTUFBTSxTQUFTLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4QixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDO1lBRTFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixhQUFhLEdBQUcscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDdEQsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEM7WUFFRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzRSxJQUFJLFFBQVEsRUFBRTtnQkFDVixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVDO1lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUM7Z0JBQzdELElBQUk7Z0JBQ0osYUFBYTtnQkFDYixZQUFZO2FBQ2YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRGLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7U0FDckM7YUFBTTtZQUNILElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDO2FBQ3RDO1NBQ0o7UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDL0MsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sRUFBRTtZQUNULE1BQU0sTUFBTSxHQUFpQixPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsTUFBTSxTQUFTLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzNDLE1BQU0sT0FBTyxHQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsWUFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDL0Y7U0FDSjtJQUNMLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELGtCQUFrQixDQUFDLElBQVM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO2FBQU07WUFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMvQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRVMsZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hCLENBQUMsRUFBRSxDQUFDO2lCQUNQO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFUyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFpQixFQUFFLENBQWlCLEVBQUUsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNSLG1IQUFtSDtvQkFDbkgsOERBQThEO29CQUM5RCxPQUFZLENBQUMsQ0FBQyxJQUFJLEdBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztpQkFDcEM7cUJBQU07b0JBQ0gsT0FBTyxDQUFDLENBQUM7aUJBQ1o7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVTLHNCQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQyxpQ0FBaUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFckIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO2dCQUNyRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUN0RCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BELG1EQUFtRDtnQkFDbkQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUNyRSxJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvQixJQUFJLGNBQWMsRUFBRTt3QkFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDN0QsSUFBSSxRQUFRLElBQUksaUJBQWlCLEVBQUU7NEJBQy9CLHFCQUFxQjs0QkFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtnQ0FDeEMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDOzZCQUMvQjtpQ0FBTTtnQ0FDSCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLHVCQUF1QixJQUFJLENBQUMsRUFBRTtvQ0FDN0QsdUJBQXVCLEdBQUcsZUFBZSxDQUFDO29DQUMxQyxlQUFlLEdBQUcsdUJBQXVCLENBQUM7aUNBQzdDO2dDQUNELGVBQWUsR0FBRyxDQUFDLENBQUM7NkJBQ3ZCOzRCQUVELGVBQWUsRUFBRSxDQUFDOzRCQUVsQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtnQ0FDNUIsY0FBYyxDQUFDLFVBQVUsR0FBRyxlQUFlLEdBQUcsZUFBZSxDQUFDO2dDQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO29DQUM3QixjQUFjLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FBQztpQ0FDeEU7cUNBQU07b0NBQ0gsY0FBYyxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lDQUN0QztnQ0FDRCxlQUFlLEVBQUUsQ0FBQzs2QkFDckI7NEJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQ0FDN0IsY0FBYyxDQUFDLFVBQVUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUM7NkJBQzNFO2lDQUFNO2dDQUNILGNBQWMsQ0FBQyxVQUFVLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzZCQUMvQzs0QkFDRCxjQUFjLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUMvQyxjQUFjLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOzRCQUVwRCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzs0QkFDeEIsTUFBTSxDQUFDLFVBQVUsR0FBRyxlQUFlLEdBQUcsZUFBZSxDQUFDOzRCQUN0RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO3lCQUNyQzs2QkFBTTs0QkFDSCxjQUFjLEdBQUcsTUFBTSxDQUFDO3lCQUMzQjtxQkFDSjt5QkFBTTt3QkFDSCxjQUFjLEdBQUcsTUFBTSxDQUFDO3FCQUMzQjtpQkFDSjtnQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzNCO1NBQ0o7SUFDTCxDQUFDO0lBRVMsYUFBYTtRQUNuQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzVCO1NBQ0o7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFUyxnQ0FBZ0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUM5QixjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3JFO2FBQ0o7WUFFRCxJQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3JCLDZDQUE2QztnQkFDN0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGNBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQyxtREFBbUQ7YUFDMUc7U0FDSjtJQUNMLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxJQUFVLEVBQUUsU0FBZSxFQUFFLE9BQWEsRUFBRSxrQkFBa0IsR0FBRyxLQUFLO1FBQ2hHLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUU7WUFDOUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUU1RyxJQUFJLGtCQUFrQixFQUFFO2dCQUNwQiw0REFBNEQ7Z0JBQzVELG1FQUFtRTtnQkFDbkUsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFO29CQUNsQixJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRTt3QkFDdkMsVUFBVSxHQUFHLEdBQUcsQ0FBQztxQkFDcEI7eUJBQU07d0JBQ0gsVUFBVSxHQUFHLEdBQUcsQ0FBQztxQkFDcEI7aUJBQ0o7cUJBQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFO29CQUN4QixJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRTt3QkFDdkMsVUFBVSxHQUFHLENBQUMsQ0FBQztxQkFDbEI7eUJBQU07d0JBQ0gsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNuQjtpQkFDSjthQUNKO1lBRUQsT0FBTyxVQUFVLENBQUM7U0FDckI7YUFBTTtZQUNILE9BQU8sQ0FBQyxDQUFDO1NBQ1o7SUFDTCxDQUFDO2lJQWxUUSxtQkFBbUI7cUhBQW5CLG1CQUFtQiw4akJDekNoQyw0eFJBc0pBOzsyRkQ3R2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGFBQWEsaUJBR1IsaUJBQWlCLENBQUMsSUFBSTt1SEFnQmIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNiLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRixZQUFZO3NCQURmLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVNGLHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQ0FBZ0M7c0JBRG5DLEtBQUs7Z0JBU0Ysd0JBQXdCO3NCQUQzQixLQUFLOztBQXFRVixNQUFNLE9BQU8sZ0JBQWdCO2lJQUFoQixnQkFBZ0I7a0lBQWhCLGdCQUFnQixpQkExVGhCLG1CQUFtQixhQXNUbEIsWUFBWSxFQUFFLGFBQWEsYUF0VDVCLG1CQUFtQjtrSUEwVG5CLGdCQUFnQixZQUpmLFlBQVksRUFBRSxhQUFhOzsyRkFJNUIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIGZvcm1hdE51bWJlciB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlJY29uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hc1NlcnZpY2UuYnJlYWtwb2ludHMkLnN1YnNjcmliZSgoYmtwcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkJyZWFrcG9pbnRDaGFuZ2UoYmtwcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOdWxsSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zb3J0SXRlbXMoKTtcblxuICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RlcFR5cGVDbGFzcyA9ICcnO1xuICAgICAgICAgICAgbGV0IHRvb2x0aXBDb2xvciA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKGl0ZW0uc3RlcFR5cGUpIHtcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzID0gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS5zdGVwVHlwZTtcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IgPSBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IC9eXFxkK1xcLlxcZCskLy50ZXN0KGl0ZW0ubGFiZWwpIHx8IC9eXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCk7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0ubGFiZWwgPSBmb3JtYXROdW1iZXIoaXRlbS5sYWJlbCwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXNVSS5wdXNoKHtcbiAgICAgICAgICAgICAgICBwZXJjOiB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UoaXRlbS5kYXRlLCBzdGFydERhdGUsIGVuZERhdGUpLFxuICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgc3RlcFR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLmN1cnJlbnREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLm1hcmtlZFBlcmMgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UodGhpcy5tYXJrZWREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwgJiYgdGhpcy5lbmRMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCB8fCB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTEwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYWxpemUgYXR0cmlidXRlc1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgIHRoaXMuaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkID0gdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBPdmVybGFwcGluZ0xhYmVscygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXNbJ21hcmtlZERhdGUnXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShjaGFuZ2UuY3VycmVudFZhbHVlIGFzIERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkJyZWFrcG9pbnRDaGFuZ2UoYmtwczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChia3BzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4O1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IEV1aVRpbWViYXJJdGVtVUkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtLmxhYmVsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmVOdWxsSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXRlbXNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICAgICAgLy8gU29ydCBieSBhc2NlbmRpbmcgZGF0ZTpcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnNvcnQoKGE6IEV1aVRpbWViYXJJdGVtLCBiOiBFdWlUaW1lYmFySXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhICYmIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEV1aUljb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBldWktdS1mbGV4XCIgI2NvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhcnRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX3N0YXJ0LWxhYmVsXCI+XG4gICAgICAgIHt7IHN0YXJ0TGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwie3sgdGltZWJhckNvbHVtbkNsYXNzIH19XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhclwiIFtzdHlsZS5tYXJnaW5Cb3R0b20ucHhdPVwiZXh0cmFUaW1lbGluZUxhYmVsU3BhY2VcIiBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTaG93Q3VycmVudERhdGVNYXJrZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtcHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cImN1cnJlbnRQZXJjID49IDEwMCA/IDEwMCA6IGN1cnJlbnRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFya2VkRGF0ZVwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtcHJvZ3Jlc3NcIiBbc3R5bGUud2lkdGguJV09XCJtYXJrZWRQZXJjID49IDEwMCA/IDEwMCA6IG1hcmtlZFBlcmNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVUk7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uaXNHcm91cGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zdGVwVHlwZUNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cIml0ZW0ucGVyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLS13aXRoLWN1cnJlbnQtZGF0ZS1tYXJrZXJdPVwiaXNTaG93Q3VycmVudERhdGVNYXJrZXIgfHwgbWFya2VkRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1kYXRlLWl0ZW1cIiBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtLS13aXRoLWVuZC1kYXRlXT1cIml0ZW0uZ3JvdXBFbmREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZ3JvdXBFbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX2dyb3VwZWRfX3N0ZXBdPVwiaXRlbS5ncm91cEVuZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBbc3R5bGUubGVmdC4lXT1cIml0ZW0ucGVyY1wiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLmdyb3VwTGFiZWwgfX1cIj57eyBpdGVtLmdyb3VwTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pc0dyb3VwZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN0ZXBUeXBlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtLXdpdGgtY3VycmVudC1kYXRlLW1hcmtlcl09XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlciB8fCBtYXJrZWREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCIgdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJjdXJyZW50UGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjdXJyZW50RGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJsb2NhdGlvblwiIHNldD1cInNoYXJwXCIgc2l6ZT1cIm1cIiBmaWxsQ29sb3I9XCJkYW5nZXItMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWxsaXBzZVwiIHNldD1cImV1aVwiIHNpemU9XCJzXCIgZmlsbENvbG9yPVwiZGFuZ2VyLTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtYXJrZWREYXRlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cIm1hcmtlZFBlcmNcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgbWFya2VkRGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJsb2NhdGlvblwiIHNldD1cInNoYXJwXCIgc2l6ZT1cIm1cIiBmaWxsQ29sb3I9XCJkYW5nZXItMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVsbGlwc2VcIiBzZXQ9XCJldWlcIiBzaXplPVwic1wiIGZpbGxDb2xvcj1cImRhbmdlci0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZW5kTGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19lbmQtbGFiZWxcIj5cbiAgICAgICAge3sgZW5kTGFiZWwgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvdyBldWktdS1mbGV4XCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVsbGlwc2VcIiBzZXQ9XCJldWlcIiBzaXplPVwic1wiIGZpbGxDb2xvcj1cInt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pbmRleC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBpdGVtLml0ZW0uZGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX08L3N0cm9uZz4gLSB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVUk7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsIHx8IGl0ZW0uaXNHcm91cGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBJbmRleCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBpdGVtLml0ZW0uZGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX08L3N0cm9uZz4gLSB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZW5kTGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -827,7 +827,7 @@ export class EuiTreeComponent {
|
|
827
827
|
return scrolled.getElementRef().nativeElement === this.cdkScrollableRef.getElementRef().nativeElement;
|
828
828
|
}
|
829
829
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTreeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
|
830
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiTreeComponent, selector: "eui-tree", inputs: { e2eAttr: "e2eAttr", nodes: "nodes", nodeTemplateRef: "nodeTemplateRef", nodeContentMetadataTemplateRef: "nodeContentMetadataTemplateRef", rightContextMenuTemplateRef: "rightContextMenuTemplateRef", expandedIconClass: "expandedIconClass", collapsedIconClass: "collapsedIconClass", expandedSvgIconClass: "expandedSvgIconClass", collapsedSvgIconClass: "collapsedSvgIconClass", isClickTogglingNode: "isClickTogglingNode", isMultiselect: "isMultiselect", isSingleSelect: "isSingleSelect", isRecursiveSelection: "isRecursiveSelection", isRecursiveParentSelection: "isRecursiveParentSelection", showUnderlinedLinks: "showUnderlinedLinks", showLines: "showLines", autoTranslate: "autoTranslate", highlightPath: "highlightPath" }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", nodeToggle: "nodeToggle" }, host: { properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, viewQueries: [{ propertyName: "cdkScrollableRef", first: true, predicate: ["cdkScrollableRef"], descendants: true, read: CdkScrollable }, { propertyName: "treeComponentInstance", first: true, predicate: ["treeComponentInstance"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"eui-tree__wrapper\" cdkScrollable #cdkScrollableRef>\n <cdk-tree\n #treeComponentInstance\n [dataSource]=\"cdkArrayDataSource\"\n [treeControl]=\"cdkTreeControl\"\n [trackBy]=\"trackBy\"\n *ngIf=\"renderTree\"\n class=\"eui-cdk-tree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeRunTimeItemModel\" class=\"eui-cdk-nested-tree-node\">\n <li *ngIf=\"treeRunTimeItemModel\"\n class=\"eui-tree-node\"\n [class.eui-tree-node--first]=\"treeRunTimeItemModel?.path === '0'\"\n [class.eui-tree-node--last]=\"treeRunTimeItemModel.last\"\n title=\"{{\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\"\n (click)=\"onNodeClick(treeRunTimeItemModel)\">\n <div class=\"eui-tree-node-wrapper__container\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeRunTimeItemModel?.path)?.node,\n onSelect: onSelectFn(treeRunTimeItemModel.path),\n id: uid + treeRunTimeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let treeRunTimeItemModel; when: hasChild\"\n class=\"eui-cdk-nested-tree-node eui-cdk-nested-tree-node--with-child\">\n <li\n class=\"eui-tree-node eui-tree-node--with-child\"\n [class.eui-tree-node--first]=\"treeRunTimeItemModel?.path === '0'\"\n [class.eui-tree-node--last]=\"treeRunTimeItemModel.last\"\n *ngIf=\"treeRunTimeItemModel\"\n title=\"{{\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div\n class=\"eui-tree-node-wrapper\">\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeRunTimeItemModel)\" class=\"eui-tree-node-wrapper__container\">\n <!-- Expand/collapse action button -->\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeS\n type=\"button\"\n [attr.aria-label]=\"'Toggle ' + getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeRunTimeItemModel)\"\n cdkTreeNodeToggle\n class=\"eui-tree-node__button\">\n <span\n euiIcon\n *ngIf=\"!cdkTreeControl.isExpanded(treeRunTimeItemModel) && collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span\n euiIcon\n *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel) && expandedIconClass\"\n [iconClass]=\"expandedIconClass\"></span>\n <eui-icon-svg\n *ngIf=\"!cdkTreeControl.isExpanded(treeRunTimeItemModel) && !collapsedIconClass\"\n [icon]=\"expandedSvgIconClass\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel) && !expandedIconClass\"\n [icon]=\"collapsedSvgIconClass\"></eui-icon-svg>\n </button>\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeRunTimeItemModel.path)?.node,\n onSelect: onSelectFn(treeRunTimeItemModel.path),\n id: uid + treeRunTimeItemModel.path,\n path: treeRunTimeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=\"id\" let-path=\"path\">\n <ng-container *ngIf=\"node\">\n <div class=\"eui-tree-node-wrapper__container-left\" [class.eui-tree-node-wrapper__container-left--selected]=\"node?.isSelected\">\n <!--input checkbox area-->\n <input\n euiInputCheckBox\n *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{ id }}\"\n [checked]=\"!!node?.isSelected\"\n [indeterminate]=\"!!node?.isIndeterminate\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-m\" />\n\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass || 'primary'\"\n iconClass=\"{{ node?.treeContentBlock?.iconClass }}\"\n euiSizeS\n class=\"eui-u-mr-xs\">\n </eui-icon>\n </ng-container>\n <ng-container *ngIf=\"node?.treeContentBlock?.iconSvgName\">\n <eui-icon-svg\n icon=\"{{ node?.treeContentBlock?.iconSvgName }}\"\n fillColor=\"{{ node?.treeContentBlock?.iconTypeClass || 'grey-100' }}\"\n size=\"s\"\n class=\"eui-u-mr-xs\">\n </eui-icon-svg>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.chips\">\n <eui-chip\n *ngFor=\"let chip of node.treeContentBlock.chips\"\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-mr-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--badge (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM [euiVariant]=\"node?.treeContentBlock?.typeClass || 'primary'\" class=\"eui-u-flex-no-shrink eui-u-mr-xs\">\n {{ node?.treeContentBlock?.typeLabel }}\n </eui-badge>\n </ng-container>\n </div>\n\n <!--label area-->\n <div class=\"eui-tree-node-wrapper__container-middle\">\n <label\n *ngIf=\"!node?.treeContentBlock?.url && !node?.treeContentBlock?.urlExternal\"\n euiLabel\n for=\"{{ id }}\"\n class=\"eui-u-text-truncate eui-u-p-2xs\"\n [class.eui-label--selected]=\"\n highlightPath\n ? getRunTimeSelectionRecursiveState(path)?.selectionRecursiveState === 'indeterminate' || node?.isSelected\n : node?.isSelected\n \"\n [class.eui-u-cursor-pointer]=\"node?.selectable\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </label>\n <label *ngIf=\"node?.treeContentBlock?.url\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-p-2xs\">\n <a\n class=\"eui-u-text-link\"\n [class.eui-u-text-link-standalone]=\"!showUnderlinedLinks\"\n [routerLink]=\"node?.treeContentBlock?.url\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-p-2xs\">\n <a\n class=\"eui-u-text-link-external\"\n [class.eui-u-text-link-external-standalone]=\"!showUnderlinedLinks\"\n href=\"{{ node?.treeContentBlock?.urlExternal }}\"\n target=\"{{ node?.treeContentBlock?.urlExternalTarget || 'blank' }}\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n </div>\n\n <div *ngIf=\"node?.treeContentBlock?.rightContent\" class=\"eui-tree-node-wrapper__container-right\">\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node.treeContentBlock.rightContent?.badges\">\n <eui-badge euiSizeM euiOutline [euiVariant]=\"badge.typeClass || 'secondary'\" class=\"eui-u-ml-xs\">\n <span euiLabel>{{ badge.label }}</span>\n </eui-badge>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngFor=\"let chip of node.treeContentBlock.rightContent?.chips\">\n <eui-chip\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-ml-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--Context menu-->\n <ng-container *ngIf=\"node.treeContentBlock.rightContent?.contextMenuMetaData && rightContextMenuTemplateRef\">\n <eui-dropdown class=\"eui-u-ml-xs\">\n <button euiButton euiSizeS euiRounded euiIconButton euiBasicButton euiSecondary [attr.aria-label]=\"'Options menu'\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-template\n [ngTemplateOutlet]=\"rightContextMenuTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.rightContent?.contextMenuMetaData,\n metadata: node?.treeContentBlock?.rightContent?.contextMenuMetaData\n }\">\n </ng-template>\n </eui-dropdown-content>\n </eui-dropdown>\n </ng-container>\n </div>\n\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container\n *ngIf=\"node.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: { expanded: false }\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button\n euiButton\n euiBasicButton\n euiIconButton\n euiRounded\n euiSizeS\n type=\"button\"\n aria-label=\"expand collapse tree item\"\n (click)=\"metaDataContainer.expanded = !metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\" class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template\n [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.metadata,\n metadata: node?.treeContentBlock?.metadata\n }\">\n </ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: [".eui-tree{display:flex;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.eui-tree .eui-tree__wrapper{display:flex;list-style:none;margin:0;overflow-y:auto;padding:var(--eui-base-spacing-2xs);position:relative;width:100%}.eui-tree .eui-tree__wrapper::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tree .eui-tree__wrapper .eui-cdk-tree{display:flex;flex-direction:column;width:100%}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node{display:flex;width:auto}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node:not(.eui-cdk-nested-tree-node--with-child){padding-inline-start:var(--eui-base-spacing-xl)}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node--with-child{display:flex;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node{display:flex;flex-direction:column;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node__metacontent{display:flex}.eui-tree .eui-tree__wrapper .eui-tree-node__button{margin-left:calc(-1 * var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-2xs)}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper:hover{background-color:var(--eui-base-color-grey-5)}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container{align-items:center;display:flex;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-left{align-items:center;display:flex;justify-content:flex-start}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-middle{align-items:center;display:flex;justify-content:flex-start;overflow:hidden;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-right{align-items:center;display:flex;justify-content:flex-end;margin-left:auto}.eui-tree:not(.eui-tree--with-children) .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node{padding-inline-start:2px}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul{padding-inline-start:var(--eui-base-spacing-s)}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul:before{border-left:1px solid var(--eui-base-color-grey-20);content:\"\";height:calc(100% - var(--eui-base-spacing-m));position:absolute;top:0}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul:first-child:before{height:calc(100% - var(--eui-base-spacing-m) - var(--eui-base-spacing-2xs))}.eui-tree.eui-tree--show-lines.eui-tree--with-children li{padding-inline-start:var(--eui-base-spacing-s);position:relative}.eui-tree.eui-tree--show-lines.eui-tree--with-children li:before:not(.eui-tree-node--first){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)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node:not(.eui-tree-node--with-child):before{position:relative;left:0;display:inline-flex;width:var(--eui-base-spacing-2xl);border-bottom:1px solid var(--eui-base-color-grey-20);content:\"\";margin-left:calc(-2 * var(--eui-base-spacing-l) + var(--eui-base-spacing-2xs));top:var(--eui-base-spacing-m)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node.eui-tree-node--with-child:before{position:absolute;left:calc(1 * var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));display:inline-flex;width:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-20);border-left:1px solid var(--eui-base-color-grey-20);content:\"\";margin-left:calc(-2 * var(--eui-base-spacing-l) + var(--eui-base-spacing-2xs));top:var(--eui-base-spacing-m)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node.eui-tree-node--with-child .eui-tree-node__button{background:var(--eui-base-color-grey-2);z-index:1}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node--last:before{height:auto;top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.EuiInputCheckboxComponent, selector: "input[euiInputCheckBox]", inputs: ["indeterminate", "isInvalid", "styleClass", "checked", "id"], outputs: ["indeterminateChange"] }, { kind: "directive", type: i5.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i5.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i5.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i5.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i5.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i8.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i9.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["aria-label"] }, { kind: "component", type: i10.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i11.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i11.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "directive", type: i1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
830
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiTreeComponent, selector: "eui-tree", inputs: { e2eAttr: "e2eAttr", nodes: "nodes", nodeTemplateRef: "nodeTemplateRef", nodeContentMetadataTemplateRef: "nodeContentMetadataTemplateRef", rightContextMenuTemplateRef: "rightContextMenuTemplateRef", expandedIconClass: "expandedIconClass", collapsedIconClass: "collapsedIconClass", expandedSvgIconClass: "expandedSvgIconClass", collapsedSvgIconClass: "collapsedSvgIconClass", isClickTogglingNode: "isClickTogglingNode", isMultiselect: "isMultiselect", isSingleSelect: "isSingleSelect", isRecursiveSelection: "isRecursiveSelection", isRecursiveParentSelection: "isRecursiveParentSelection", showUnderlinedLinks: "showUnderlinedLinks", showLines: "showLines", autoTranslate: "autoTranslate", highlightPath: "highlightPath" }, outputs: { selectionChange: "selectionChange", nodeClick: "nodeClick", nodeToggle: "nodeToggle" }, host: { properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, viewQueries: [{ propertyName: "cdkScrollableRef", first: true, predicate: ["cdkScrollableRef"], descendants: true, read: CdkScrollable }, { propertyName: "treeComponentInstance", first: true, predicate: ["treeComponentInstance"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"eui-tree__wrapper\" cdkScrollable #cdkScrollableRef>\n <cdk-tree\n #treeComponentInstance\n [dataSource]=\"cdkArrayDataSource\"\n [treeControl]=\"cdkTreeControl\"\n [trackBy]=\"trackBy\"\n *ngIf=\"renderTree\"\n class=\"eui-cdk-tree\">\n <!-- There are two states of generic cdk-nested-tree-node declarations.\n First one is without child. No sub rendering.\n -->\n <cdk-nested-tree-node *cdkTreeNodeDef=\"let treeRunTimeItemModel\" class=\"eui-cdk-nested-tree-node\">\n <li *ngIf=\"treeRunTimeItemModel\"\n class=\"eui-tree-node\"\n [class.eui-tree-node--first]=\"treeRunTimeItemModel?.path === '0'\"\n [class.eui-tree-node--last]=\"treeRunTimeItemModel.last\"\n title=\"{{\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div class=\"eui-tree-node-wrapper\"\n (click)=\"onNodeClick(treeRunTimeItemModel)\">\n <div class=\"eui-tree-node-wrapper__container\">\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeRunTimeItemModel?.path)?.node,\n onSelect: onSelectFn(treeRunTimeItemModel.path),\n id: uid + treeRunTimeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n </li>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let treeRunTimeItemModel; when: hasChild\"\n class=\"eui-cdk-nested-tree-node eui-cdk-nested-tree-node--with-child\">\n <li\n class=\"eui-tree-node eui-tree-node--with-child\"\n [class.eui-tree-node--first]=\"treeRunTimeItemModel?.path === '0'\"\n [class.eui-tree-node--last]=\"treeRunTimeItemModel.last\"\n *ngIf=\"treeRunTimeItemModel\"\n title=\"{{\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.tooltipLabel ||\n getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\n }}\">\n <div\n class=\"eui-tree-node-wrapper\">\n <!--Here wraps the node, and listen for node clicks.-->\n <div (click)=\"onNodeClick(treeRunTimeItemModel)\" class=\"eui-tree-node-wrapper__container\">\n <!-- Expand/collapse action button -->\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeS\n type=\"button\"\n [attr.aria-label]=\"'Toggle ' + getTreeItem(treeRunTimeItemModel?.path)?.node?.treeContentBlock?.label\"\n (click)=\"onNodeToggle(treeRunTimeItemModel)\"\n cdkTreeNodeToggle\n class=\"eui-tree-node__button\">\n <span\n euiIcon\n *ngIf=\"!cdkTreeControl.isExpanded(treeRunTimeItemModel) && collapsedIconClass\"\n [iconClass]=\"collapsedIconClass\"></span>\n <span\n euiIcon\n *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel) && expandedIconClass\"\n [iconClass]=\"expandedIconClass\"></span>\n <eui-icon-svg\n *ngIf=\"!cdkTreeControl.isExpanded(treeRunTimeItemModel) && !collapsedIconClass\"\n [icon]=\"expandedSvgIconClass\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel) && !expandedIconClass\"\n [icon]=\"collapsedSvgIconClass\"></eui-icon-svg>\n </button>\n <!--\n Renders node in default or provided template's context.\n Generates onSelect with onSelectFn for developers to send the events from their custom check events.\n Provides id to be used on generic template\n -->\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplateRef || nodeTemplateDefault\"\n [ngTemplateOutletContext]=\"{\n $implicit: getTreeItem(treeRunTimeItemModel.path)?.node,\n onSelect: onSelectFn(treeRunTimeItemModel.path),\n id: uid + treeRunTimeItemModel.path,\n path: treeRunTimeItemModel.path\n }\">\n </ng-container>\n </div>\n </div>\n <!--uses cdkTreeNodeOutlet to render children nodes, CdkTreeControl is used to control isExpanded state.-->\n <ul class=\"eui-tree-node\" *ngIf=\"cdkTreeControl.isExpanded(treeRunTimeItemModel)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </ul>\n </li>\n </cdk-nested-tree-node>\n </cdk-tree>\n</ul>\n\n<ng-template #nodeTemplateDefault let-node let-onSelect=\"onSelect\" let-id=\"id\" let-path=\"path\">\n <ng-container *ngIf=\"node\">\n <div class=\"eui-tree-node-wrapper__container-left\" [class.eui-tree-node-wrapper__container-left--selected]=\"node?.isSelected\">\n <!--input checkbox area-->\n <input\n euiInputCheckBox\n *ngIf=\"node && node.selectable\"\n type=\"checkbox\"\n id=\"{{ id }}\"\n [checked]=\"!!node?.isSelected\"\n [indeterminate]=\"!!node?.isIndeterminate\"\n (change)=\"onSelect($event)\"\n class=\"eui-u-mr-m\" />\n\n <!--icon area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.iconClass\">\n <eui-icon\n [euiVariant]=\"node?.treeContentBlock?.iconTypeClass || 'primary'\"\n iconClass=\"{{ node?.treeContentBlock?.iconClass }}\"\n euiSizeS\n class=\"eui-u-mr-xs\">\n </eui-icon>\n </ng-container>\n <ng-container *ngIf=\"node?.treeContentBlock?.iconSvgName\">\n <eui-icon-svg\n icon=\"{{ node?.treeContentBlock?.iconSvgName }}\"\n fillColor=\"{{ node?.treeContentBlock?.iconTypeClass || 'grey-100' }}\"\n size=\"s\"\n class=\"eui-u-mr-xs\">\n </eui-icon-svg>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.chips\">\n <eui-chip\n *ngFor=\"let chip of node.treeContentBlock.chips\"\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-mr-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--badge (typeLabel & typeClass) area-->\n <ng-container *ngIf=\"node?.treeContentBlock?.typeLabel\" [ngSwitch]=\"node?.treeContentBlock?.typeClass\">\n <eui-badge euiSizeM [euiVariant]=\"node?.treeContentBlock?.typeClass || 'primary'\" class=\"eui-u-flex-no-shrink eui-u-mr-xs\">\n {{ node?.treeContentBlock?.typeLabel }}\n </eui-badge>\n </ng-container>\n </div>\n\n <!--label area-->\n <div class=\"eui-tree-node-wrapper__container-middle\">\n <label\n *ngIf=\"!node?.treeContentBlock?.url && !node?.treeContentBlock?.urlExternal\"\n euiLabel\n for=\"{{ id }}\"\n class=\"eui-u-text-truncate eui-u-p-2xs\"\n [class.eui-label--selected]=\"\n highlightPath\n ? getRunTimeSelectionRecursiveState(path)?.selectionRecursiveState === 'indeterminate' || node?.isSelected\n : node?.isSelected\n \"\n [class.eui-u-cursor-pointer]=\"node?.selectable\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </label>\n <label *ngIf=\"node?.treeContentBlock?.url\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-p-2xs\">\n <a\n class=\"eui-u-text-link\"\n [class.eui-u-text-link-standalone]=\"!showUnderlinedLinks\"\n [routerLink]=\"node?.treeContentBlock?.url\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n <label *ngIf=\"node?.treeContentBlock?.urlExternal\" euiLabel for=\"{{ id }}\" class=\"eui-u-text-truncate eui-u-p-2xs\">\n <a\n class=\"eui-u-text-link-external\"\n [class.eui-u-text-link-external-standalone]=\"!showUnderlinedLinks\"\n href=\"{{ node?.treeContentBlock?.urlExternal }}\"\n target=\"{{ node?.treeContentBlock?.urlExternalTarget || 'blank' }}\">\n {{ autoTranslate ? (node?.treeContentBlock?.label | translate) : node?.treeContentBlock?.label }}\n </a>\n </label>\n </div>\n\n <div *ngIf=\"node?.treeContentBlock?.rightContent\" class=\"eui-tree-node-wrapper__container-right\">\n <!--badges area-->\n <ng-container *ngFor=\"let badge of node.treeContentBlock.rightContent?.badges\">\n <eui-badge euiSizeM euiOutline [euiVariant]=\"badge.typeClass || 'secondary'\" class=\"eui-u-ml-xs\">\n <span euiLabel>{{ badge.label }}</span>\n </eui-badge>\n </ng-container>\n\n <!--chips area-->\n <ng-container *ngFor=\"let chip of node.treeContentBlock.rightContent?.chips\">\n <eui-chip\n euiSizeXS\n [euiVariant]=\"chip.typeClass || 'secondary'\"\n [euiOutline]=\"chip.isOutline\"\n class=\"eui-chip--rounded eui-u-mb-none eui-u-ml-xs\">\n <span euiLabel>{{ chip.label }}</span>\n </eui-chip>\n </ng-container>\n\n <!--Context menu-->\n <ng-container *ngIf=\"node.treeContentBlock.rightContent?.contextMenuMetaData && rightContextMenuTemplateRef\">\n <eui-dropdown class=\"eui-u-ml-xs\">\n <button euiButton euiSizeS euiRounded euiIconButton euiBasicButton euiSecondary [attr.aria-label]=\"'Options menu'\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-template\n [ngTemplateOutlet]=\"rightContextMenuTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.rightContent?.contextMenuMetaData,\n metadata: node?.treeContentBlock?.rightContent?.contextMenuMetaData\n }\">\n </ng-template>\n </eui-dropdown-content>\n </eui-dropdown>\n </ng-container>\n </div>\n\n <!--metadata, uses the help of ng template to generate dynamic expand variable without handling state -->\n <ng-container\n *ngIf=\"node.treeContentBlock?.metadata && nodeContentMetadataTemplateRef\"\n [ngTemplateOutlet]=\"nodeContentMetadataContainer\"\n [ngTemplateOutletContext]=\"{\n $implicit: { expanded: false }\n }\">\n </ng-container>\n <ng-template #nodeContentMetadataContainer let-metaDataContainer>\n <button\n euiButton\n euiBasicButton\n euiIconButton\n euiRounded\n euiSizeS\n type=\"button\"\n aria-label=\"expand collapse tree item\"\n (click)=\"metaDataContainer.expanded = !metaDataContainer.expanded\">\n <eui-icon-svg [icon]=\"metaDataContainer.expanded ? 'eui-chevron-down' : 'eui-chevron-forward'\"></eui-icon-svg>\n </button>\n <div *ngIf=\"metaDataContainer.expanded\" class=\"eui-tree-node__metacontent\">\n <!--passing metadata of the node content to provided template-ref:nodeContentMetadataTemplateRef-->\n <ng-template\n [ngTemplateOutlet]=\"nodeContentMetadataTemplateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: node?.treeContentBlock?.metadata,\n metadata: node?.treeContentBlock?.metadata\n }\">\n </ng-template>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: [".eui-tree{display:flex;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.eui-tree .eui-tree__wrapper{display:flex;list-style:none;margin:0;overflow-y:auto;padding:var(--eui-base-spacing-2xs);position:relative;width:100%}.eui-tree .eui-tree__wrapper::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-tree .eui-tree__wrapper::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-tree .eui-tree__wrapper .eui-cdk-tree{display:flex;flex-direction:column;width:100%}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node{display:flex;width:auto}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node:not(.eui-cdk-nested-tree-node--with-child){padding-inline-start:var(--eui-base-spacing-xl)}.eui-tree .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node--with-child{display:flex;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node{display:flex;flex-direction:column;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node__metacontent{display:flex}.eui-tree .eui-tree__wrapper .eui-tree-node__button{margin-left:calc(-1 * var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-2xs)}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper:hover{background-color:var(--eui-base-color-grey-5)}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container{align-items:center;display:flex;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-left{align-items:center;display:flex;justify-content:flex-start}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-middle{align-items:center;display:flex;justify-content:flex-start;overflow:hidden;width:100%}.eui-tree .eui-tree__wrapper .eui-tree-node-wrapper__container-right{align-items:center;display:flex;justify-content:flex-end;margin-left:auto}.eui-tree:not(.eui-tree--with-children) .eui-tree__wrapper .eui-cdk-tree .eui-cdk-nested-tree-node{padding-inline-start:2px}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul{padding-inline-start:var(--eui-base-spacing-s)}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul:before{border-left:1px solid var(--eui-base-color-grey-20);content:\"\";height:calc(100% - var(--eui-base-spacing-m));position:absolute;top:0}.eui-tree.eui-tree--show-lines.eui-tree--with-children ul:first-child:before{height:calc(100% - var(--eui-base-spacing-m) - var(--eui-base-spacing-2xs))}.eui-tree.eui-tree--show-lines.eui-tree--with-children li{padding-inline-start:var(--eui-base-spacing-s);position:relative}.eui-tree.eui-tree--show-lines.eui-tree--with-children li:before:not(.eui-tree-node--first){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)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node:not(.eui-tree-node--with-child):before{position:relative;left:0;display:inline-flex;width:var(--eui-base-spacing-2xl);border-bottom:1px solid var(--eui-base-color-grey-20);content:\"\";margin-left:calc(-2 * var(--eui-base-spacing-l) + var(--eui-base-spacing-2xs));top:var(--eui-base-spacing-m)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node.eui-tree-node--with-child:before{position:absolute;left:calc(1 * var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));display:inline-flex;width:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-20);border-left:1px solid var(--eui-base-color-grey-20);content:\"\";margin-left:calc(-2 * var(--eui-base-spacing-l) + var(--eui-base-spacing-2xs));top:var(--eui-base-spacing-m)}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node.eui-tree-node--with-child .eui-tree-node__button{background:var(--eui-base-color-grey-2);z-index:1}.eui-tree.eui-tree--show-lines.eui-tree--with-children li.eui-tree-node--last:before{height:auto;top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.EuiInputCheckboxComponent, selector: "input[euiInputCheckBox]", inputs: ["indeterminate", "isInvalid", "styleClass", "checked", "id"], outputs: ["indeterminateChange"] }, { kind: "directive", type: i5.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i5.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i5.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i5.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i5.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i8.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i9.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }, { kind: "component", type: i10.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i11.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i11.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "directive", type: i1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
831
831
|
}
|
832
832
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiTreeComponent, decorators: [{
|
833
833
|
type: Component,
|
@@ -44,11 +44,11 @@ export class EuiAppSidebarComponent {
|
|
44
44
|
}
|
45
45
|
}
|
46
46
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiAppSidebarComponent, deps: [{ token: i1.EuiAppShellService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiAppSidebarComponent, selector: "eui-app-sidebar", host: { listeners: { "body:click": "close()" }, properties: { "class": "this.string" } }, ngImport: i0, template: "<div class=\"eui-app-sidebar-content\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" role=\"complementary\">\n <ng-content select=\"eui-app-sidebar-header-user-profile\"></ng-content>\n <ng-content select=\"eui-app-sidebar-header\"></ng-content>\n <ng-content select=\"eui-app-sidebar-body\"></ng-content>\n <ng-content select=\"eui-app-sidebar-footer\"></ng-content>\n <ng-content select=\"eui-app-sidebar-drawer\"></ng-content>\n</div>\n", styles: [".eui-app-sidebar{background-color:var(--eui-base-color-grey-2);height:100%;left:0;position:fixed;top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));transition:top .1s ease,width .1s ease-in,margin-left .1s ease-in-out;width:var(--eui-app-sidebar-width);box-shadow:var(--eui-base-shadow-10);z-index:var(--eui-base-z-index-sidebar)}.eui-app.ff.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:calc(var(--eui-app-sidebar-width-close-active) + 16px)}.modal-open .eui-app-sidebar{z-index:auto}.eui-app-sidebar-content{border-right:1px solid var(--eui-base-color-grey-5);box-shadow:0 8px 10px #b7c0cebf;display:flex;flex-direction:column;height:100%;max-height:calc(100% - (var(--eui-app-header-height) + var(--eui-app-toolbar-height)));overflow:hidden;position:relative}.eui-app-sidebar-header{align-items:center;background-color:var(--eui-base-color-grey-
|
47
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: EuiAppSidebarComponent, selector: "eui-app-sidebar", host: { listeners: { "body:click": "close()" }, properties: { "class": "this.string" } }, ngImport: i0, template: "<div class=\"eui-app-sidebar-content\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" role=\"complementary\">\n <ng-content select=\"eui-app-sidebar-header-user-profile\"></ng-content>\n <ng-content select=\"eui-app-sidebar-header\"></ng-content>\n <ng-content select=\"eui-app-sidebar-body\"></ng-content>\n <ng-content select=\"eui-app-sidebar-footer\"></ng-content>\n <ng-content select=\"eui-app-sidebar-drawer\"></ng-content>\n</div>\n", styles: [".eui-app-sidebar{background-color:var(--eui-base-color-grey-2);height:100%;left:0;position:fixed;top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));transition:top .1s ease,width .1s ease-in,margin-left .1s ease-in-out;width:var(--eui-app-sidebar-width);box-shadow:var(--eui-base-shadow-10);z-index:var(--eui-base-z-index-sidebar)}.eui-app.ff.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:calc(var(--eui-app-sidebar-width-close-active) + 16px)}.modal-open .eui-app-sidebar{z-index:auto}.eui-app-sidebar-content{border-right:1px solid var(--eui-base-color-grey-5);box-shadow:0 8px 10px #b7c0cebf;display:flex;flex-direction:column;height:100%;max-height:calc(100% - (var(--eui-app-header-height) + var(--eui-app-toolbar-height)));overflow:hidden;position:relative}.eui-app-sidebar-header{align-items:center;background-color:var(--eui-base-color-grey-5);border-bottom:1px solid var(--eui-base-color-grey-10);display:flex;width:100%}.eui-app-sidebar-body{display:flex;height:100%;max-height:calc(100% - (var(--eui-app-sidebar-header-height) + var(--eui-app-sidebar-footer-height)));overflow-x:hidden;overflow-y:scroll}.eui-app-sidebar-body::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-app-sidebar-body::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-app-sidebar-body::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-app-sidebar-body::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-body{max-height:100%}.eui-app-sidebar-footer{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:var(--eui-base-spacing-xs)}.eui-app-sidebar-menu{display:flex;height:100%;width:100%}@media screen and (max-width: 767px){.eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.eui-app-sidebar-body{max-height:100%}.sidebar--close .eui-app-sidebar{box-shadow:none!important;margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--open .eui-app-sidebar{display:initial;margin-left:0;width:75%}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.eui-app-sidebar-body{max-height:100%}.sidebar--close .eui-app-sidebar{box-shadow:none!important;margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--open .eui-app-sidebar{display:initial;margin-left:0;width:50%}.sidebar--hidden.sidebar--open .eui-app-sidebar{box-shadow:var(--eui-base-shadow-4);width:var(--eui-app-sidebar-width-active)}}@media screen and (min-width: 996px){.sidebar--hover .eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:var(--eui-app-sidebar-width-close)}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-header{display:none}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-footer{text-indent:-9999px}.sidebar--hidden.sidebar--close .eui-app-sidebar{margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--hidden.sidebar--open .eui-app-sidebar{box-shadow:var(--eui-base-shadow-4);display:initial;margin-left:0;width:var(--eui-app-sidebar-width-active);z-index:var(--eui-base-z-index-sidebar)}}.eui-app-sidebar-drawer{display:none}.eui-app.sidebar--open.md .eui-app-sidebar-drawer,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer{background:var(--eui-base-color-grey-5);border-top:1px solid var(--eui-base-color-grey-15);display:flex;height:100%;position:fixed;top:100vh;transition:top .25s ease-in-out}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content{height:calc(100% - 8rem);overflow-y:auto;padding:var(--eui-base-spacing-s);width:100%}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb:hover,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-track,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-app.sidebar--open.md .eui-app-sidebar-drawer--expanded,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer--expanded{top:8rem}.eui-app.sidebar--close.md .eui-app-sidebar-drawer,.eui-app.sidebar--close.xs .eui-app-sidebar-drawer{position:fixed;top:100vh}@media screen and (max-width: 767px){.eui-app-sidebar-drawer,.eui-app-sidebar-drawer--expanded{width:75%}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app-sidebar-drawer,.eui-app-sidebar-drawer--expanded{width:50%}}\n"], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
48
48
|
}
|
49
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EuiAppSidebarComponent, decorators: [{
|
50
50
|
type: Component,
|
51
|
-
args: [{ selector: 'eui-app-sidebar', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-app-sidebar-content\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" role=\"complementary\">\n <ng-content select=\"eui-app-sidebar-header-user-profile\"></ng-content>\n <ng-content select=\"eui-app-sidebar-header\"></ng-content>\n <ng-content select=\"eui-app-sidebar-body\"></ng-content>\n <ng-content select=\"eui-app-sidebar-footer\"></ng-content>\n <ng-content select=\"eui-app-sidebar-drawer\"></ng-content>\n</div>\n", styles: [".eui-app-sidebar{background-color:var(--eui-base-color-grey-2);height:100%;left:0;position:fixed;top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));transition:top .1s ease,width .1s ease-in,margin-left .1s ease-in-out;width:var(--eui-app-sidebar-width);box-shadow:var(--eui-base-shadow-10);z-index:var(--eui-base-z-index-sidebar)}.eui-app.ff.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:calc(var(--eui-app-sidebar-width-close-active) + 16px)}.modal-open .eui-app-sidebar{z-index:auto}.eui-app-sidebar-content{border-right:1px solid var(--eui-base-color-grey-5);box-shadow:0 8px 10px #b7c0cebf;display:flex;flex-direction:column;height:100%;max-height:calc(100% - (var(--eui-app-header-height) + var(--eui-app-toolbar-height)));overflow:hidden;position:relative}.eui-app-sidebar-header{align-items:center;background-color:var(--eui-base-color-grey-
|
51
|
+
args: [{ selector: 'eui-app-sidebar', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-app-sidebar-content\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" role=\"complementary\">\n <ng-content select=\"eui-app-sidebar-header-user-profile\"></ng-content>\n <ng-content select=\"eui-app-sidebar-header\"></ng-content>\n <ng-content select=\"eui-app-sidebar-body\"></ng-content>\n <ng-content select=\"eui-app-sidebar-footer\"></ng-content>\n <ng-content select=\"eui-app-sidebar-drawer\"></ng-content>\n</div>\n", styles: [".eui-app-sidebar{background-color:var(--eui-base-color-grey-2);height:100%;left:0;position:fixed;top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));transition:top .1s ease,width .1s ease-in,margin-left .1s ease-in-out;width:var(--eui-app-sidebar-width);box-shadow:var(--eui-base-shadow-10);z-index:var(--eui-base-z-index-sidebar)}.eui-app.ff.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:calc(var(--eui-app-sidebar-width-close-active) + 16px)}.modal-open .eui-app-sidebar{z-index:auto}.eui-app-sidebar-content{border-right:1px solid var(--eui-base-color-grey-5);box-shadow:0 8px 10px #b7c0cebf;display:flex;flex-direction:column;height:100%;max-height:calc(100% - (var(--eui-app-header-height) + var(--eui-app-toolbar-height)));overflow:hidden;position:relative}.eui-app-sidebar-header{align-items:center;background-color:var(--eui-base-color-grey-5);border-bottom:1px solid var(--eui-base-color-grey-10);display:flex;width:100%}.eui-app-sidebar-body{display:flex;height:100%;max-height:calc(100% - (var(--eui-app-sidebar-header-height) + var(--eui-app-sidebar-footer-height)));overflow-x:hidden;overflow-y:scroll}.eui-app-sidebar-body::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-app-sidebar-body::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-app-sidebar-body::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-app-sidebar-body::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-body{max-height:100%}.eui-app-sidebar-footer{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:var(--eui-base-spacing-xs)}.eui-app-sidebar-menu{display:flex;height:100%;width:100%}@media screen and (max-width: 767px){.eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.eui-app-sidebar-body{max-height:100%}.sidebar--close .eui-app-sidebar{box-shadow:none!important;margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--open .eui-app-sidebar{display:initial;margin-left:0;width:75%}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.eui-app-sidebar-body{max-height:100%}.sidebar--close .eui-app-sidebar{box-shadow:none!important;margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--open .eui-app-sidebar{display:initial;margin-left:0;width:50%}.sidebar--hidden.sidebar--open .eui-app-sidebar{box-shadow:var(--eui-base-shadow-4);width:var(--eui-app-sidebar-width-active)}}@media screen and (min-width: 996px){.sidebar--hover .eui-app-sidebar{z-index:var(--eui-base-z-index-sidebar)}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar{width:var(--eui-app-sidebar-width-close)}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-header{display:none}.sidebar--close:not(.sidebar--hover) .eui-app-sidebar-footer{text-indent:-9999px}.sidebar--hidden.sidebar--close .eui-app-sidebar{margin-left:calc(var(--eui-app-sidebar-width-active) * -1)}.sidebar--hidden.sidebar--open .eui-app-sidebar{box-shadow:var(--eui-base-shadow-4);display:initial;margin-left:0;width:var(--eui-app-sidebar-width-active);z-index:var(--eui-base-z-index-sidebar)}}.eui-app-sidebar-drawer{display:none}.eui-app.sidebar--open.md .eui-app-sidebar-drawer,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer{background:var(--eui-base-color-grey-5);border-top:1px solid var(--eui-base-color-grey-15);display:flex;height:100%;position:fixed;top:100vh;transition:top .25s ease-in-out}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content{height:calc(100% - 8rem);overflow-y:auto;padding:var(--eui-base-spacing-s);width:100%}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb:hover,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-app.sidebar--open.md .eui-app-sidebar-drawer-content::-webkit-scrollbar-track,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-app.sidebar--open.md .eui-app-sidebar-drawer--expanded,.eui-app.sidebar--open.xs .eui-app-sidebar-drawer--expanded{top:8rem}.eui-app.sidebar--close.md .eui-app-sidebar-drawer,.eui-app.sidebar--close.xs .eui-app-sidebar-drawer{position:fixed;top:100vh}@media screen and (max-width: 767px){.eui-app-sidebar-drawer,.eui-app-sidebar-drawer--expanded{width:75%}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app-sidebar-drawer,.eui-app-sidebar-drawer--expanded{width:50%}}\n"] }]
|
52
52
|
}], ctorParameters: () => [{ type: i1.EuiAppShellService, decorators: [{
|
53
53
|
type: Optional
|
54
54
|
}] }], propDecorators: { string: [{
|