@eui/components 17.0.2-snapshot-1702002797638 → 17.0.2-snapshot-1702373119309
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/EuiDatepickerComponent.html +24 -0
- package/docs/components/EuiPaginatorComponent.html +1 -1
- package/docs/components/EuiTimepickerComponent.html +553 -1
- package/docs/components/EuiTreeListComponent.html +0 -31
- package/docs/components/EuiTreeListItemComponent.html +0 -40
- package/docs/dependencies.html +27 -27
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +3 -3
- package/docs/js/search/search_index.js +2 -2
- package/docs/modules/EuiPaginatorModule.html +1 -4
- package/esm2022/directives/eui-clearable.directive.mjs +3 -3
- package/esm2022/directives/eui-has-permission.directive.mjs +7 -7
- package/esm2022/directives/eui-loading.directive.mjs +3 -3
- package/esm2022/directives/eui-maxlength.directive.mjs +7 -7
- package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +3 -3
- package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
- package/esm2022/directives/eui-scroll-handler.directive.mjs +10 -10
- package/esm2022/directives/eui-smooth-scroll.directive.mjs +10 -10
- package/esm2022/directives/eui-template.directive.mjs +7 -7
- package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +3 -3
- package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
- package/esm2022/eui-alert/eui-alert.component.mjs +6 -6
- package/esm2022/eui-alert/eui-alert.module.mjs +4 -4
- package/esm2022/eui-all/eui-all.module.mjs +4 -4
- package/esm2022/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
- package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
- package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-icon/avatar-icon.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-image/avatar-image.component.mjs +3 -3
- package/esm2022/eui-avatar/avatar-text/avatar-text.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar-list.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.component.mjs +3 -3
- package/esm2022/eui-avatar/eui-avatar.module.mjs +4 -4
- package/esm2022/eui-badge/eui-badge.component.mjs +3 -3
- package/esm2022/eui-badge/eui-badge.module.mjs +4 -4
- package/esm2022/eui-block-content/eui-block-content.component.mjs +3 -3
- package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
- package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
- package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
- package/esm2022/eui-button/eui-button.component.mjs +7 -7
- package/esm2022/eui-button-group/eui-button-group.component.mjs +7 -7
- package/esm2022/eui-buttons/eui-buttons.component.mjs +13 -13
- package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
- package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
- package/esm2022/eui-card/eui-card.component.mjs +4 -4
- package/esm2022/eui-card/eui-card.module.mjs +4 -4
- package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
- package/esm2022/eui-chip-list/eui-chip-list.component.mjs +6 -6
- package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
- package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
- package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +13 -13
- package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +7 -7
- package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +3 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +97 -19
- package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
- package/esm2022/eui-dialog/eui-dialog.component.mjs +9 -9
- package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
- package/esm2022/eui-dialog/services/eui-dialog.service.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.component.mjs +3 -3
- package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
- package/esm2022/eui-disable-content/eui-disable-content.component.mjs +7 -7
- package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
- package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
- package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
- package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
- package/esm2022/eui-dropdown/eui-dropdown.module.mjs +8 -8
- package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
- package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +9 -9
- package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
- package/esm2022/eui-file-upload/eui-file-upload.component.mjs +3 -3
- package/esm2022/eui-file-upload/eui-file-upload.module.mjs +4 -4
- package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +3 -3
- package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
- package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
- package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
- package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
- package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg-button/eui-icon-svg-button.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
- package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
- package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
- package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +3 -3
- package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
- package/esm2022/eui-input-group/eui-input-group.component.mjs +3 -3
- package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-input-number.component.mjs +3 -3
- package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
- package/esm2022/eui-input-number/eui-number-control.directive.mjs +3 -3
- package/esm2022/eui-input-radio/eui-input-radio.component.mjs +3 -3
- package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
- package/esm2022/eui-input-text/eui-input-text.component.mjs +3 -3
- package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
- package/esm2022/eui-label/eui-label.component.mjs +3 -3
- package/esm2022/eui-label/eui-label.module.mjs +4 -4
- package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.component.mjs +3 -3
- package/esm2022/eui-list/eui-list.module.mjs +4 -4
- package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.component.mjs +3 -3
- package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
- package/esm2022/eui-message-box/eui-message-box.component.mjs +6 -6
- package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
- package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +3 -3
- package/esm2022/eui-overlay/eui-overlay.component.mjs +7 -7
- package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +21 -21
- package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +9 -9
- package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
- package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.component.mjs +3 -3
- package/esm2022/eui-page/eui-page.module.mjs +4 -4
- package/esm2022/eui-paginator/eui-paginator.component.mjs +9 -8
- package/esm2022/eui-paginator/eui-paginator.module.mjs +26 -9
- package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.component.mjs +3 -3
- package/esm2022/eui-popover/eui-popover.module.mjs +4 -4
- package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
- package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
- package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +7 -7
- package/esm2022/eui-select/eui-select-control.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-multiple.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select-option.directive.mjs +3 -3
- package/esm2022/eui-select/eui-select.component.mjs +3 -3
- package/esm2022/eui-select/eui-select.module.mjs +4 -4
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
- package/esm2022/eui-skeleton/eui-skeleton.component.mjs +4 -4
- package/esm2022/eui-skeleton/eui-skeleton.module.mjs +4 -4
- package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +3 -3
- package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
- package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
- package/esm2022/eui-table/eui-table.component.mjs +3 -3
- package/esm2022/eui-table/eui-table.module.mjs +4 -4
- package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
- package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
- package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
- package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
- package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
- package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
- package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
- package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +6 -6
- package/esm2022/eui-tabs/eui-tabs.component.mjs +6 -6
- package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
- package/esm2022/eui-textarea/auto-resize.directive.mjs +3 -3
- package/esm2022/eui-textarea/eui-textarea.component.mjs +3 -3
- package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
- package/esm2022/eui-timebar/eui-timebar.component.mjs +7 -7
- package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
- package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +43 -13
- package/esm2022/eui-timepicker/eui-timepicker.module.mjs +4 -4
- package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +7 -7
- package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +7 -7
- package/esm2022/eui-tree/eui-tree.component.mjs +7 -7
- package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +17 -17
- package/esm2022/eui-tree-list/eui-tree-list.component.mjs +5 -7
- package/esm2022/eui-tree-list/eui-tree-list.module.mjs +4 -4
- package/esm2022/eui-tree-list/item-content/item-content.component.mjs +3 -3
- package/esm2022/eui-tree-list/toolbar/toolbar.component.mjs +6 -6
- package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.component.mjs +3 -3
- package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
- package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
- package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
- package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
- package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
- package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +6 -6
- package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
- package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
- package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
- package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
- package/esm2022/externals/quill/quill-editor.component.mjs +3 -3
- package/esm2022/externals/quill/quill.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
- package/esm2022/layout/eui-app/eui-app.component.mjs +7 -7
- package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
- package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +6 -6
- package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
- package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
- package/esm2022/layout/eui-header/header-app/header-app.component.mjs +12 -12
- package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-right-content/header-right-content.component.mjs +3 -3
- package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-header/header.component.mjs +3 -3
- package/esm2022/layout/eui-header/header.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/language-selector.component.mjs +3 -3
- package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
- package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +3 -3
- package/esm2022/layout/eui-layout.module.mjs +4 -4
- package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
- package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +4 -4
- package/esm2022/layout/eui-search/search.component.mjs +3 -3
- package/esm2022/layout/eui-search/search.module.mjs +4 -4
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
- package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
- package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
- package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +3 -3
- package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
- package/esm2022/pipes/eui-is-empty.pipe.mjs +7 -7
- package/esm2022/pipes/eui-truncate.pipe.mjs +7 -7
- package/esm2022/shared/base/base-states.directive.mjs +3 -3
- package/esm2022/shared/base/base.directive.mjs +3 -3
- package/esm2022/shared/eui-common-header/common-header.component.mjs +7 -7
- package/esm2022/shared/eui-expand-content/eui-expand-content.component.mjs +7 -7
- package/esm2022/shared/input.directive.mjs +3 -3
- package/eui-alert/eui-alert.component.d.ts.map +1 -1
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
- package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
- package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
- package/eui-button/eui-button.component.d.ts.map +1 -1
- package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
- package/eui-card/eui-card.component.d.ts.map +1 -1
- package/eui-chip/eui-chip.component.d.ts.map +1 -1
- package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
- package/eui-datepicker/eui-datepicker.component.d.ts +4 -0
- package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
- package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/eui-paginator/eui-paginator.module.d.ts +5 -5
- package/eui-paginator/eui-paginator.module.d.ts.map +1 -1
- package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
- package/eui-timepicker/eui-timepicker.component.d.ts +12 -0
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list-item.component.d.ts +1 -1
- package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list.component.d.ts +1 -1
- package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
- package/fesm2022/eui-components-directives.mjs +67 -67
- package/fesm2022/eui-components-eui-alert.mjs +10 -10
- package/fesm2022/eui-components-eui-all.mjs +4 -4
- package/fesm2022/eui-components-eui-autocomplete.mjs +13 -13
- package/fesm2022/eui-components-eui-avatar.mjs +22 -22
- package/fesm2022/eui-components-eui-badge.mjs +7 -7
- package/fesm2022/eui-components-eui-block-content.mjs +7 -7
- package/fesm2022/eui-components-eui-block-document.mjs +7 -7
- package/fesm2022/eui-components-eui-button-group.mjs +7 -7
- package/fesm2022/eui-components-eui-button.mjs +7 -7
- package/fesm2022/eui-components-eui-buttons.mjs +13 -13
- package/fesm2022/eui-components-eui-card.mjs +47 -47
- package/fesm2022/eui-components-eui-card.mjs.map +1 -1
- package/fesm2022/eui-components-eui-chip-list.mjs +13 -13
- package/fesm2022/eui-components-eui-chip.mjs +7 -7
- package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
- package/fesm2022/eui-components-eui-dashboard-card.mjs +7 -7
- package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -7
- package/fesm2022/eui-components-eui-datepicker.mjs +100 -22
- package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dialog.mjs +19 -19
- package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
- package/fesm2022/eui-components-eui-disable-content.mjs +7 -7
- package/fesm2022/eui-components-eui-discussion-thread.mjs +10 -10
- package/fesm2022/eui-components-eui-dropdown.mjs +20 -20
- package/fesm2022/eui-components-eui-feedback-message.mjs +7 -7
- package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
- package/fesm2022/eui-components-eui-file-upload.mjs +19 -19
- package/fesm2022/eui-components-eui-growl.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-toggle.mjs +7 -7
- package/fesm2022/eui-components-eui-icon.mjs +16 -16
- package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
- package/fesm2022/eui-components-eui-input-group.mjs +7 -7
- package/fesm2022/eui-components-eui-input-number.mjs +10 -10
- package/fesm2022/eui-components-eui-input-radio.mjs +7 -7
- package/fesm2022/eui-components-eui-input-text.mjs +7 -7
- package/fesm2022/eui-components-eui-label.mjs +7 -7
- package/fesm2022/eui-components-eui-list.mjs +13 -13
- package/fesm2022/eui-components-eui-menu.mjs +10 -10
- package/fesm2022/eui-components-eui-message-box.mjs +13 -13
- package/fesm2022/eui-components-eui-overlay.mjs +19 -19
- package/fesm2022/eui-components-eui-page.mjs +55 -55
- package/fesm2022/eui-components-eui-paginator.mjs +32 -14
- package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
- package/fesm2022/eui-components-eui-popover.mjs +10 -10
- package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
- package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
- package/fesm2022/eui-components-eui-select.mjs +19 -19
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
- package/fesm2022/eui-components-eui-skeleton.mjs +8 -8
- package/fesm2022/eui-components-eui-skeleton.mjs.map +1 -1
- package/fesm2022/eui-components-eui-slide-toggle.mjs +7 -7
- package/fesm2022/eui-components-eui-table.mjs +34 -34
- package/fesm2022/eui-components-eui-tabs.mjs +22 -22
- package/fesm2022/eui-components-eui-textarea.mjs +10 -10
- package/fesm2022/eui-components-eui-timebar.mjs +7 -7
- package/fesm2022/eui-components-eui-timeline.mjs +10 -10
- package/fesm2022/eui-components-eui-timepicker.mjs +46 -16
- package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tree-list.mjs +33 -35
- package/fesm2022/eui-components-eui-tree-list.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tree.mjs +21 -21
- package/fesm2022/eui-components-eui-wizard.mjs +13 -13
- package/fesm2022/eui-components-externals-charts.mjs +7 -7
- package/fesm2022/eui-components-externals-eui-editor.mjs +25 -25
- package/fesm2022/eui-components-externals-quill.mjs +7 -7
- package/fesm2022/eui-components-layout.mjs +229 -229
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/fesm2022/eui-components-pipes.mjs +14 -14
- package/fesm2022/eui-components-shared-base.mjs +6 -6
- package/fesm2022/eui-components-shared.mjs +17 -17
- package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
- package/layout/eui-app/eui-app.component.d.ts.map +1 -1
- package/layout/eui-header/header-user-profile/header-user-profile.component.d.ts.map +1 -1
- package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
- package/package.json +7 -7
@@ -882,10 +882,10 @@ export class EuiTreeComponent {
|
|
882
882
|
checkIfCurrentScrollable(scrolled) {
|
883
883
|
return scrolled.getElementRef().nativeElement === this.cdkScrollableRef.getElementRef().nativeElement;
|
884
884
|
}
|
885
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
886
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", 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 path: 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 children: getTreeItem(treeRunTimeItemModel?.path)?.children\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) - var(--eui-base-spacing-xl));position:absolute;top:var(--eui-base-spacing-xl)}.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));top:0}.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--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 }); }
|
885
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
|
886
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", 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 path: 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 children: getTreeItem(treeRunTimeItemModel?.path)?.children\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) - var(--eui-base-spacing-xl));position:absolute;top:var(--eui-base-spacing-xl)}.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));top:0}.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--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 }); }
|
887
887
|
}
|
888
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeComponent, decorators: [{
|
889
889
|
type: Component,
|
890
890
|
args: [{ selector: 'eui-tree', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 path: 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 children: getTreeItem(treeRunTimeItemModel?.path)?.children\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) - var(--eui-base-spacing-xl));position:absolute;top:var(--eui-base-spacing-xl)}.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));top:0}.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--last:before{height:auto;top:var(--eui-base-spacing-m)}\n"] }]
|
891
891
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ScrollDispatcher }], propDecorators: { cssClasses: [{
|
@@ -944,8 +944,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
944
944
|
type: Output
|
945
945
|
}] } });
|
946
946
|
export class EuiTreeModule {
|
947
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
948
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
947
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
948
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeModule, declarations: [EuiTreeComponent], imports: [CommonModule,
|
949
949
|
RouterModule,
|
950
950
|
FormsModule,
|
951
951
|
TranslateModule,
|
@@ -958,7 +958,7 @@ export class EuiTreeModule {
|
|
958
958
|
EuiChipModule,
|
959
959
|
EuiDropdownModule,
|
960
960
|
ScrollingModule], exports: [EuiTreeComponent] }); }
|
961
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
961
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeModule, imports: [CommonModule,
|
962
962
|
RouterModule,
|
963
963
|
FormsModule,
|
964
964
|
TranslateModule,
|
@@ -972,7 +972,7 @@ export class EuiTreeModule {
|
|
972
972
|
EuiDropdownModule,
|
973
973
|
ScrollingModule] }); }
|
974
974
|
}
|
975
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
975
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeModule, decorators: [{
|
976
976
|
type: NgModule,
|
977
977
|
args: [{
|
978
978
|
imports: [
|
@@ -56,7 +56,6 @@ export class EuiTreeListItemComponent {
|
|
56
56
|
this.elementRef = elementRef;
|
57
57
|
this.baseStatesDirective = baseStatesDirective;
|
58
58
|
this.tabIndex = '0';
|
59
|
-
this.ariaRole = 'treeitem';
|
60
59
|
this.e2eAttr = 'eui-tree-list-item';
|
61
60
|
this.subLinks = [];
|
62
61
|
this.toggled = new EventEmitter();
|
@@ -65,6 +64,7 @@ export class EuiTreeListItemComponent {
|
|
65
64
|
this.hasSub = false;
|
66
65
|
// custom content
|
67
66
|
this.hasCustomContent = false;
|
67
|
+
this.ariaRole = 'treeitem';
|
68
68
|
this._active = false;
|
69
69
|
this._expanded = false;
|
70
70
|
this._alwaysExpanded = false;
|
@@ -199,10 +199,10 @@ export class EuiTreeListItemComponent {
|
|
199
199
|
.join(' ')
|
200
200
|
.trim();
|
201
201
|
}
|
202
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
203
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
202
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemComponent, deps: [{ token: forwardRef(() => EuiTreeListComponent), host: true, optional: true }, { token: i1.Router }, { token: i0.ElementRef }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
203
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: EuiTreeListItemComponent, selector: "eui-tree-list-item", inputs: { e2eAttr: "e2eAttr", id: "id", label: "label", linkUrl: "linkUrl", subLabel: "subLabel", active: "active", expanded: "expanded", alwaysExpanded: "alwaysExpanded", url: "url", isDisplaySubLinksOnHover: "isDisplaySubLinksOnHover", subLinks: "subLinks", isNavigateOnlyOnLabelClick: "isNavigateOnlyOnLabelClick", isVisible: "isVisible", ariaLabel: "ariaLabel" }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.cssClasses", "attr.tabindex": "this.tabIndex", "attr.data-e2e": "this.e2eAttr", "attr.id": "this.id", "attr.aria-label": "this.ariaLabel", "attr.role": "this.ariaRole" } }, queries: [{ propertyName: "customLabel", first: true, predicate: i0.forwardRef(() => EuiTreeListItemLabelTagDirective), descendants: true }, { propertyName: "customDetailContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemDetailsContentTagDirective), descendants: true }, { propertyName: "customSubContainerContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemSubContainerContentTagDirective), descendants: true }, { propertyName: "subTreeList", predicate: i0.forwardRef(() => EuiTreeListComponent), descendants: true }, { propertyName: "customContent", predicate: i0.forwardRef(() => EuiTreeListItemContentComponent) }], viewQueries: [{ propertyName: "focusable", first: true, predicate: ["focusable"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiInfo", "euiInfo", "euiSuccess", "euiSuccess", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\">\n\n <ng-container *ngIf=\"hasCustomContent; else noCustomContent\">\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-container>\n\n <ng-template #noCustomContent>\n <div class=\"eui-u-flex\">\n <eui-label *ngIf=\"!customLabel\">\n {{label}}\n <eui-label *ngIf=\"subLabel\" euiSublabel>{{subLabel}}</eui-label>\n </eui-label>\n\n <eui-label *ngIf=\"customLabel\">\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"customDetailContent\">\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"customSubContainerContent\">\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-template [ngIf]=\"expanded || alwaysExpanded\">\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n <button *ngIf=\"hasSub && !alwaysExpanded\" euiButton euiIconButton euiBasicButton euiRounded euiPrimary euiSizeS\n aria-label=\"Expand - collapse button icon\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"expanded ? true : undefined\">\n <ng-container *ngIf=\"expanded\">\n <eui-icon-svg icon=\"eui-chevron-up\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n <ng-container *ngIf=\"!expanded\">\n <eui-icon-svg icon=\"eui-chevron-forward\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.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: i5.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: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
204
204
|
}
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemComponent, decorators: [{
|
206
206
|
type: Component,
|
207
207
|
args: [{ selector: 'eui-tree-list-item', encapsulation: ViewEncapsulation.None, hostDirectives: [
|
208
208
|
{
|
@@ -223,9 +223,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
223
223
|
}], tabIndex: [{
|
224
224
|
type: HostBinding,
|
225
225
|
args: ['attr.tabindex']
|
226
|
-
}], ariaRole: [{
|
227
|
-
type: HostBinding,
|
228
|
-
args: ['attr.role']
|
229
226
|
}], e2eAttr: [{
|
230
227
|
type: HostBinding,
|
231
228
|
args: ['attr.data-e2e']
|
@@ -283,30 +280,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
283
280
|
}], customContent: [{
|
284
281
|
type: ContentChildren,
|
285
282
|
args: [forwardRef(() => EuiTreeListItemContentComponent), { descendants: false }]
|
283
|
+
}], ariaRole: [{
|
284
|
+
type: HostBinding,
|
285
|
+
args: ['attr.role']
|
286
286
|
}] } });
|
287
287
|
/* eslint-disable */
|
288
288
|
export class EuiTreeListItemLabelTagDirective {
|
289
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
290
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
289
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemLabelTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
290
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: EuiTreeListItemLabelTagDirective, selector: "eui-tree-list-item-label", ngImport: i0 }); }
|
291
291
|
}
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemLabelTagDirective, decorators: [{
|
293
293
|
type: Directive,
|
294
294
|
args: [{ selector: 'eui-tree-list-item-label' }]
|
295
295
|
}] });
|
296
296
|
export class EuiTreeListItemDetailsContentTagDirective {
|
297
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
298
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
297
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemDetailsContentTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
298
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: EuiTreeListItemDetailsContentTagDirective, selector: "eui-tree-list-item-details", ngImport: i0 }); }
|
299
299
|
}
|
300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemDetailsContentTagDirective, decorators: [{
|
301
301
|
type: Directive,
|
302
302
|
args: [{ selector: 'eui-tree-list-item-details' }]
|
303
303
|
}] });
|
304
304
|
export class EuiTreeListItemSubContainerContentTagDirective {
|
305
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
306
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
305
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemSubContainerContentTagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
306
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: EuiTreeListItemSubContainerContentTagDirective, selector: "eui-tree-list-item-sub-container", ngImport: i0 }); }
|
307
307
|
}
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeListItemSubContainerContentTagDirective, decorators: [{
|
309
309
|
type: Directive,
|
310
310
|
args: [{ selector: 'eui-tree-list-item-sub-container' }]
|
311
311
|
}] });
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10cmVlLWxpc3QvZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS10cmVlLWxpc3QvZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFhN0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVlELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBbUI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMs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QW9CO0FBRXBCLE1BQU0sT0FBTyxnQ0FBZ0M7aUlBQWhDLGdDQUFnQztxSEFBaEMsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFOztBQUduRCxNQUFNLE9BQU8seUNBQXlDO2lJQUF6Qyx5Q0FBeUM7cUhBQXpDLHlDQUF5Qzs7MkZBQXpDLHlDQUF5QztrQkFEckQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTs7QUFHckQsTUFBTSxPQUFPLDhDQUE4QztpSUFBOUMsOENBQThDO3FIQUE5Qyw4Q0FBOEM7OzJGQUE5Qyw4Q0FBOEM7a0JBRDFELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsa0NBQWtDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvY29yZSc7XG5cbmltcG9ydCB7IEV1aVRyZWVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ldWktdHJlZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb25zdW1lRXZlbnQsIHVuaXF1ZUlkIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEV1aVRyZWVMaXN0SXRlbUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2l0ZW0tY29udGVudC9pdGVtLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdHJlZS1saXN0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdHJlZS1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ2V1aVByaW1hcnknLCAnZXVpU2Vjb25kYXJ5JywgJ2V1aUluZm8nLCAnZXVpU3VjY2VzcycsICdldWlXYXJuaW5nJywgJ2V1aURhbmdlcicsICdldWlBY2NlbnQnLCAnZXVpVmFyaWFudCddLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRyZWVMaXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDc3NDbGFzc2VzKCk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYkluZGV4ID0gJzAnO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgYXJpYVJvbGUgPSAndHJlZWl0ZW0nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpXG4gICAgQElucHV0KClcbiAgICBlMmVBdHRyID0gJ2V1aS10cmVlLWxpc3QtaXRlbSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua1VybDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YkxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gICAgfVxuICAgIHNldCBhY3RpdmUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cbiAgICBzZXQgZXhwYW5kZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9leHBhbmRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsd2F5c0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWx3YXlzRXhwYW5kZWQ7XG4gICAgfVxuICAgIHNldCBhbHdheXNFeHBhbmRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2Fsd2F5c0V4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyO1xuICAgIH1cbiAgICBzZXQgaXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KCkgc3ViTGlua3M6IFV4TGlua0xlZ2FjeVtdID0gW107XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNOYXZpZ2F0ZU9ubHlPbkxhYmVsQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc05hdmlnYXRlT25seU9uTGFiZWxDbGljaztcbiAgICB9XG4gICAgc2V0IGlzTmF2aWdhdGVPbmx5T25MYWJlbENsaWNrKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNOYXZpZ2F0ZU9ubHlPbkxhYmVsQ2xpY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgdG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpVHJlZUxpc3RJdGVtQ29tcG9uZW50PigpO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlO1xuICAgIH1cbiAgICBzZXQgaXNWaXNpYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgICBpc0hvdmVyZWQgPSBmYWxzZTtcbiAgICB0cmVlTGlzdENvbXBvbmVudDogRXVpVHJlZUxpc3RDb21wb25lbnQ7XG5cbiAgICAvLyB0cmVlIHN0YXRlc1xuICAgIGhhc1N1YiA9IGZhbHNlO1xuXG4gICAgLy8gY3VzdG9tIGNvbnRlbnRcbiAgICBoYXNDdXN0b21Db250ZW50ID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGUnKSBmb2N1c2FibGU6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVRyZWVMaXN0SXRlbUxhYmVsVGFnRGlyZWN0aXZlKSlcbiAgICBjdXN0b21MYWJlbDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbUxhYmVsVGFnRGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlUcmVlTGlzdEl0ZW1EZXRhaWxzQ29udGVudFRhZ0RpcmVjdGl2ZSkpXG4gICAgY3VzdG9tRGV0YWlsQ29udGVudDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbURldGFpbHNDb250ZW50VGFnRGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlUcmVlTGlzdEl0ZW1TdWJDb250YWluZXJDb250ZW50VGFnRGlyZWN0aXZlKSlcbiAgICBjdXN0b21TdWJDb250YWluZXJDb250ZW50OiBRdWVyeUxpc3Q8RXVpVHJlZUxpc3RJdGVtU3ViQ29udGFpbmVyQ29udGVudFRhZ0RpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVHJlZUxpc3RDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgc3ViVHJlZUxpc3Q6IFF1ZXJ5TGlzdDxFdWlUcmVlTGlzdENvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVHJlZUxpc3RJdGVtQ29udGVudENvbXBvbmVudCksIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgY3VzdG9tQ29udGVudDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbUNvbnRlbnRDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9hbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzRGlzcGxheVN1YkxpbmtzT25Ib3ZlciA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzTmF2aWdhdGVPbmx5T25MYWJlbENsaWNrID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNWaXNpYmxlID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBFdWlUcmVlTGlzdENvbXBvbmVudCkpIHRyZWVMaXN0Q29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHRoaXMudHJlZUxpc3RDb21wb25lbnQgPSB0cmVlTGlzdENvbXBvbmVudCBhcyBFdWlUcmVlTGlzdENvbXBvbmVudDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuYXJpYUxhYmVsID0gdGhpcy5sYWJlbCA/IHRoaXMubGFiZWwgOiAnQ3VzdG9tIGNvbnRlbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHRyZWUgaXRlbSBjYW4gYmUgYXJpYS1vd25lZCBieSBhIHBhcmVudCB0cmVlIGZvciBXQUktQVJJQSBhdHRyaWJ1dGVzOlxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSB1bmlxdWVJZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0dGluZyB0cmVlIHN0YXRlc1xuICAgICAgICBpZiAodGhpcy5zdWJUcmVlTGlzdC5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuaGFzU3ViID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNraW5nIGlmIGN1c3RvbUNvbnRlbnQgc2V0XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUNvbnRlbnQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0N1c3RvbUNvbnRlbnQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgYW55IGNoaWxkIHRyZWUtbGlzdCBpcyBub24tZm9jdXNhYmxlIGFuZCB0aGF0IGl0IGhhcyB0aGUgcm9sZSBvZiBhIFdBSS1BUklBIGdyb3VwOlxuICAgICAgICBpZiAodGhpcy5zdWJUcmVlTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zdWJUcmVlTGlzdC5mb3JFYWNoKChzdWJ0cmVlOiBFdWlUcmVlTGlzdENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnRyZWUuZGlzYWJsZUZvY3VzKCk7XG4gICAgICAgICAgICAgICAgc3VidHJlZS5hcmlhUm9sZSA9ICdncm91cCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgdGhpcy50b2dnbGVkLm5leHQodGhpcyk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgY2FzZSAxMzogLy8gRU5URVJcbiAgICAgICAgICAgIGNhc2UgMzI6IC8vIFNQQUNFXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM3OiAvLyBBUlJPVyBMRUZUXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM4OiAvLyBBUlJPVyBVUFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVMaXN0Q29tcG9uZW50LmZvY3VzT25QcmV2aW91c1RyZWVJdGVtKHRoaXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVGb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMzk6IC8vIEFSUk9XIFJJR0hUXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDA6IC8vIEFSUk9XIERPV05cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c09uTmV4dFRyZWVJdGVtKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlRm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZpc2libGVTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHN0YXRlO1xuXG4gICAgICAgIGlmICh0aGlzLnN1YlRyZWVMaXN0ICYmIHRoaXMuc3ViVHJlZUxpc3QubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1YlRyZWVMaXN0LnRvQXJyYXkoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZXRWaXNpYmxlU3RhdGUoc3RhdGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RXhwYW5kZWRTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gc3RhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuc3ViVHJlZUxpc3QubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1YlRyZWVMaXN0LnRvQXJyYXkoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZXRFeHBhbmRlZFN0YXRlKHN0YXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRm9jdXMoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50cmVlTGlzdENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy50cmVlTGlzdENvbXBvbmVudC5kaXNhYmxlRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c09uTGFzdEV4cGFuZGVkVHJlZUl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RFeHBhbmRlZCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdHJlZS1saXN0LWl0ZW0taGVhZGVyX19jb250ZW50Jyk7XG4gICAgICAgIGlmIChsYXN0RXhwYW5kZWQgJiYgbGFzdEV4cGFuZGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBsYXN0RXhwYW5kZWRbbGFzdEV4cGFuZGVkLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb2N1c09uTmV4dFRyZWVJdGVtKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCAmJiB0aGlzLnN1YlRyZWVMaXN0ICYmIHRoaXMuc3ViVHJlZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zdWJUcmVlTGlzdC5maXJzdC5mb2N1cygpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmVlTGlzdENvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUxpc3RDb21wb25lbnQuZm9jdXNPbk5leHRUcmVlSXRlbSh0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGlzYWJsZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVuYWJsZUZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktdHJlZS1saXN0LWl0ZW0nKSxcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID8gJ2V1aS10cmVlLWxpc3QtaXRlbS0tYWN0aXZlJyA6ICcnLFxuICAgICAgICAgICAgIXRoaXMuaXNWaXNpYmxlID8gJ2V1aS10cmVlLWxpc3QtaXRlbS0taGlkZGVuJyA6ICcnLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS10cmVlLWxpc3QtaXRlbS1sYWJlbCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUcmVlTGlzdEl0ZW1MYWJlbFRhZ0RpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpLXRyZWUtbGlzdC1pdGVtLWRldGFpbHMnIH0pXG5leHBvcnQgY2xhc3MgRXVpVHJlZUxpc3RJdGVtRGV0YWlsc0NvbnRlbnRUYWdEaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS10cmVlLWxpc3QtaXRlbS1zdWItY29udGFpbmVyJyB9KVxuZXhwb3J0IGNsYXNzIEV1aVRyZWVMaXN0SXRlbVN1YkNvbnRhaW5lckNvbnRlbnRUYWdEaXJlY3RpdmUge31cbi8qIGVzbGludC1lbmFibGUgKi9cbiIsIjxkaXYgY2xhc3M9XCJldWktdHJlZS1saXN0LWl0ZW0taGVhZGVyXCI+XG4gICAgPGRpdlxuICAgICAgICAjZm9jdXNhYmxlXG4gICAgICAgIGNsYXNzPVwiZXVpLXRyZWUtbGlzdC1pdGVtLWhlYWRlcl9fY29udGVudFwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgbGFiZWwgfX0ge3sgc3ViTGFiZWwgfX1cIj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ3VzdG9tQ29udGVudDsgZWxzZSBub0N1c3RvbUNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS10cmVlLWxpc3QtaXRlbS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJpZ2h0Q29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI25vQ3VzdG9tQ29udGVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPGV1aS1sYWJlbCAqbmdJZj1cIiFjdXN0b21MYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7e2xhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1sYWJlbCAqbmdJZj1cInN1YkxhYmVsXCIgZXVpU3VibGFiZWw+e3tzdWJMYWJlbH19PC9ldWktbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9ldWktbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLWxhYmVsICpuZ0lmPVwiY3VzdG9tTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11LWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS10cmVlLWxpc3QtaXRlbS1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyaWdodENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21EZXRhaWxDb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdHJlZS1saXN0LWl0ZW0taGVhZGVyX19kZXRhaWxzLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS10cmVlLWxpc3QtaXRlbS1kZXRhaWxzXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TdWJDb250YWluZXJDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS10cmVlLWxpc3QtaXRlbS1zdWItY29udGFpbmVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJleHBhbmRlZCB8fCBhbHdheXNFeHBhbmRlZFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmlnaHRDb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJldWktdHJlZS1saXN0LWl0ZW0taGVhZGVyX19jb250ZW50LXJpZ2h0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10cmVlLWxpc3QtaXRlbS1oZWFkZXJfX2NvbnRlbnQtZXhwYW5kLXRvZ2dsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGFzU3ViICYmICFhbHdheXNFeHBhbmRlZFwiIGV1aUJ1dHRvbiBldWlJY29uQnV0dG9uIGV1aUJhc2ljQnV0dG9uIGV1aVJvdW5kZWQgZXVpUHJpbWFyeSBldWlTaXplU1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFeHBhbmQgLSBjb2xsYXBzZSBidXR0b24gaWNvblwiIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZXhwYW5kZWQgPyB0cnVlIDogdW5kZWZpbmVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLXVwXCIgZmlsbENvbG9yPVwiZ3JleS0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLWZvcndhcmRcIiBmaWxsQ29sb3I9XCJncmV5LTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10cmVlLWxpc3QvZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS10cmVlLWxpc3QvZXVpLXRyZWUtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFhN0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVdELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBbUI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMs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QW9CO0FBRXBCLE1BQU0sT0FBTyxnQ0FBZ0M7aUlBQWhDLGdDQUFnQztxSEFBaEMsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFOztBQUduRCxNQUFNLE9BQU8seUNBQXlDO2lJQUF6Qyx5Q0FBeUM7cUhBQXpDLHlDQUF5Qzs7MkZBQXpDLHlDQUF5QztrQkFEckQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTs7QUFHckQsTUFBTSxPQUFPLDhDQUE4QztpSUFBOUMsOENBQThDO3FIQUE5Qyw4Q0FBOEM7OzJGQUE5Qyw4Q0FBOEM7a0JBRDFELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsa0NBQWtDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvY29yZSc7XG5cbmltcG9ydCB7IEV1aVRyZWVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ldWktdHJlZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb25zdW1lRXZlbnQsIHVuaXF1ZUlkIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEV1aVRyZWVMaXN0SXRlbUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2l0ZW0tY29udGVudC9pdGVtLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdHJlZS1saXN0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdHJlZS1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ2V1aVByaW1hcnknLCAnZXVpU2Vjb25kYXJ5JywgJ2V1aUluZm8nLCAnZXVpU3VjY2VzcycsICdldWlXYXJuaW5nJywgJ2V1aURhbmdlcicsICdldWlBY2NlbnQnLCAnZXVpVmFyaWFudCddLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRyZWVMaXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDc3NDbGFzc2VzKCk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYkluZGV4ID0gJzAnO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpXG4gICAgQElucHV0KClcbiAgICBlMmVBdHRyID0gJ2V1aS10cmVlLWxpc3QtaXRlbSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua1VybDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YkxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gICAgfVxuICAgIHNldCBhY3RpdmUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cbiAgICBzZXQgZXhwYW5kZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9leHBhbmRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsd2F5c0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWx3YXlzRXhwYW5kZWQ7XG4gICAgfVxuICAgIHNldCBhbHdheXNFeHBhbmRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2Fsd2F5c0V4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyO1xuICAgIH1cbiAgICBzZXQgaXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNEaXNwbGF5U3ViTGlua3NPbkhvdmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KCkgc3ViTGlua3M6IFV4TGlua0xlZ2FjeVtdID0gW107XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNOYXZpZ2F0ZU9ubHlPbkxhYmVsQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc05hdmlnYXRlT25seU9uTGFiZWxDbGljaztcbiAgICB9XG4gICAgc2V0IGlzTmF2aWdhdGVPbmx5T25MYWJlbENsaWNrKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNOYXZpZ2F0ZU9ubHlPbkxhYmVsQ2xpY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgdG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpVHJlZUxpc3RJdGVtQ29tcG9uZW50PigpO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlO1xuICAgIH1cbiAgICBzZXQgaXNWaXNpYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgICBpc0hvdmVyZWQgPSBmYWxzZTtcbiAgICB0cmVlTGlzdENvbXBvbmVudDogRXVpVHJlZUxpc3RDb21wb25lbnQ7XG5cbiAgICAvLyB0cmVlIHN0YXRlc1xuICAgIGhhc1N1YiA9IGZhbHNlO1xuXG4gICAgLy8gY3VzdG9tIGNvbnRlbnRcbiAgICBoYXNDdXN0b21Db250ZW50ID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdmb2N1c2FibGUnKSBmb2N1c2FibGU6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVRyZWVMaXN0SXRlbUxhYmVsVGFnRGlyZWN0aXZlKSlcbiAgICBjdXN0b21MYWJlbDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbUxhYmVsVGFnRGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlUcmVlTGlzdEl0ZW1EZXRhaWxzQ29udGVudFRhZ0RpcmVjdGl2ZSkpXG4gICAgY3VzdG9tRGV0YWlsQ29udGVudDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbURldGFpbHNDb250ZW50VGFnRGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlUcmVlTGlzdEl0ZW1TdWJDb250YWluZXJDb250ZW50VGFnRGlyZWN0aXZlKSlcbiAgICBjdXN0b21TdWJDb250YWluZXJDb250ZW50OiBRdWVyeUxpc3Q8RXVpVHJlZUxpc3RJdGVtU3ViQ29udGFpbmVyQ29udGVudFRhZ0RpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVHJlZUxpc3RDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgc3ViVHJlZUxpc3Q6IFF1ZXJ5TGlzdDxFdWlUcmVlTGlzdENvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVHJlZUxpc3RJdGVtQ29udGVudENvbXBvbmVudCksIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgY3VzdG9tQ29udGVudDogUXVlcnlMaXN0PEV1aVRyZWVMaXN0SXRlbUNvbnRlbnRDb21wb25lbnQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSBwcm90ZWN0ZWQgYXJpYVJvbGUgPSAndHJlZWl0ZW0nO1xuICAgIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2V4cGFuZGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfYWx3YXlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0Rpc3BsYXlTdWJMaW5rc09uSG92ZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc05hdmlnYXRlT25seU9uTGFiZWxDbGljayA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzVmlzaWJsZSA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gRXVpVHJlZUxpc3RDb21wb25lbnQpKSB0cmVlTGlzdENvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICB0aGlzLnRyZWVMaXN0Q29tcG9uZW50ID0gdHJlZUxpc3RDb21wb25lbnQgYXMgRXVpVHJlZUxpc3RDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYXJpYUxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmFyaWFMYWJlbCA9IHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogJ0N1c3RvbSBjb250ZW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSB0cmVlIGl0ZW0gY2FuIGJlIGFyaWEtb3duZWQgYnkgYSBwYXJlbnQgdHJlZSBmb3IgV0FJLUFSSUEgYXR0cmlidXRlczpcbiAgICAgICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gdW5pcXVlSWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldHRpbmcgdHJlZSBzdGF0ZXNcbiAgICAgICAgaWYgKHRoaXMuc3ViVHJlZUxpc3QubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1N1YiA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVja2luZyBpZiBjdXN0b21Db250ZW50IHNldFxuICAgICAgICBpZiAodGhpcy5jdXN0b21Db250ZW50Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFueSBjaGlsZCB0cmVlLWxpc3QgaXMgbm9uLWZvY3VzYWJsZSBhbmQgdGhhdCBpdCBoYXMgdGhlIHJvbGUgb2YgYSBXQUktQVJJQSBncm91cDpcbiAgICAgICAgaWYgKHRoaXMuc3ViVHJlZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViVHJlZUxpc3QuZm9yRWFjaCgoc3VidHJlZTogRXVpVHJlZUxpc3RDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJ0cmVlLmRpc2FibGVGb2N1cygpO1xuICAgICAgICAgICAgICAgIHN1YnRyZWUuYXJpYVJvbGUgPSAnZ3JvdXAnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgICAgIHRoaXMudG9nZ2xlZC5uZXh0KHRoaXMpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgMTM6IC8vIEVOVEVSXG4gICAgICAgICAgICBjYXNlIDMyOiAvLyBTUEFDRVxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzNzogLy8gQVJST1cgTEVGVFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzODogLy8gQVJST1cgVVBcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlTGlzdENvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlTGlzdENvbXBvbmVudC5mb2N1c09uUHJldmlvdXNUcmVlSXRlbSh0aGlzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlRm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM5OiAvLyBBUlJPVyBSSUdIVFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDQwOiAvLyBBUlJPVyBET1dOXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNPbk5leHRUcmVlSXRlbSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWaXNpYmxlU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBzdGF0ZTtcblxuICAgICAgICBpZiAodGhpcy5zdWJUcmVlTGlzdCAmJiB0aGlzLnN1YlRyZWVMaXN0Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zdWJUcmVlTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc2V0VmlzaWJsZVN0YXRlKHN0YXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldEV4cGFuZGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IHN0YXRlO1xuXG4gICAgICAgIGlmICh0aGlzLnN1YlRyZWVMaXN0Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zdWJUcmVlTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc2V0RXhwYW5kZWRTdGF0ZShzdGF0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzYWJsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudHJlZUxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUxpc3RDb21wb25lbnQuZGlzYWJsZUZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNPbkxhc3RFeHBhbmRlZFRyZWVJdGVtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0RXhwYW5kZWQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRyZWUtbGlzdC1pdGVtLWhlYWRlcl9fY29udGVudCcpO1xuICAgICAgICBpZiAobGFzdEV4cGFuZGVkICYmIGxhc3RFeHBhbmRlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gbGFzdEV4cGFuZGVkW2xhc3RFeHBhbmRlZC5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9jdXNPbk5leHRUcmVlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQgJiYgdGhpcy5zdWJUcmVlTGlzdCAmJiB0aGlzLnN1YlRyZWVMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3ViVHJlZUxpc3QuZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHJlZUxpc3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVMaXN0Q29tcG9uZW50LmZvY3VzT25OZXh0VHJlZUl0ZW0odGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRpc2FibGVGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzYWJsZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbmFibGVGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzYWJsZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLXRyZWUtbGlzdC1pdGVtJyksXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA/ICdldWktdHJlZS1saXN0LWl0ZW0tLWFjdGl2ZScgOiAnJyxcbiAgICAgICAgICAgICF0aGlzLmlzVmlzaWJsZSA/ICdldWktdHJlZS1saXN0LWl0ZW0tLWhpZGRlbicgOiAnJyxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktdHJlZS1saXN0LWl0ZW0tbGFiZWwnIH0pXG5leHBvcnQgY2xhc3MgRXVpVHJlZUxpc3RJdGVtTGFiZWxUYWdEaXJlY3RpdmUge31cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS10cmVlLWxpc3QtaXRlbS1kZXRhaWxzJyB9KVxuZXhwb3J0IGNsYXNzIEV1aVRyZWVMaXN0SXRlbURldGFpbHNDb250ZW50VGFnRGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktdHJlZS1saXN0LWl0ZW0tc3ViLWNvbnRhaW5lcicgfSlcbmV4cG9ydCBjbGFzcyBFdWlUcmVlTGlzdEl0ZW1TdWJDb250YWluZXJDb250ZW50VGFnRGlyZWN0aXZlIHt9XG4vKiBlc2xpbnQtZW5hYmxlICovXG4iLCI8ZGl2IGNsYXNzPVwiZXVpLXRyZWUtbGlzdC1pdGVtLWhlYWRlclwiPlxuICAgIDxkaXZcbiAgICAgICAgI2ZvY3VzYWJsZVxuICAgICAgICBjbGFzcz1cImV1aS10cmVlLWxpc3QtaXRlbS1oZWFkZXJfX2NvbnRlbnRcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGxhYmVsIH19IHt7IHN1YkxhYmVsIH19XCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0N1c3RvbUNvbnRlbnQ7IGVsc2Ugbm9DdXN0b21Db250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktdHJlZS1saXN0LWl0ZW0tY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyaWdodENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub0N1c3RvbUNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxldWktbGFiZWwgKm5nSWY9XCIhY3VzdG9tTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3tsYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDxldWktbGFiZWwgKm5nSWY9XCJzdWJMYWJlbFwiIGV1aVN1YmxhYmVsPnt7c3ViTGFiZWx9fTwvZXVpLWxhYmVsPlxuICAgICAgICAgICAgICAgIDwvZXVpLWxhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGV1aS1sYWJlbCAqbmdJZj1cImN1c3RvbUxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktdHJlZS1saXN0LWl0ZW0tbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWxhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmlnaHRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRGV0YWlsQ29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRyZWUtbGlzdC1pdGVtLWhlYWRlcl9fZGV0YWlscy1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktdHJlZS1saXN0LWl0ZW0tZGV0YWlsc1wiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU3ViQ29udGFpbmVyQ29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWktdHJlZS1saXN0LWl0ZW0tc3ViLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwiZXhwYW5kZWQgfHwgYWx3YXlzRXhwYW5kZWRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JpZ2h0Q29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXRyZWUtbGlzdC1pdGVtLWhlYWRlcl9fY29udGVudC1yaWdodC1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdHJlZS1saXN0LWl0ZW0taGVhZGVyX19jb250ZW50LWV4cGFuZC10b2dnbGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImhhc1N1YiAmJiAhYWx3YXlzRXhwYW5kZWRcIiBldWlCdXR0b24gZXVpSWNvbkJ1dHRvbiBldWlCYXNpY0J1dHRvbiBldWlSb3VuZGVkIGV1aVByaW1hcnkgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRXhwYW5kIC0gY29sbGFwc2UgYnV0dG9uIGljb25cIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImV4cGFuZGVkID8gdHJ1ZSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi11cFwiIGZpbGxDb2xvcj1cImdyZXktMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFleHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1mb3J3YXJkXCIgZmlsbENvbG9yPVwiZ3JleS0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|