@ember-eui/core 11.0.3 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/declarations/-private/random-id.d.ts +0 -1
- package/declarations/-private/random-id.d.ts.map +1 -1
- package/declarations/components/eui-accordion.d.ts +2 -1
- package/declarations/components/eui-accordion.d.ts.map +1 -1
- package/declarations/components/eui-breadcrumbs.d.ts +2 -1
- package/declarations/components/eui-breadcrumbs.d.ts.map +1 -1
- package/declarations/components/eui-code-block/virtualized.d.ts +1 -1
- package/declarations/components/eui-code-block.d.ts +2 -1
- package/declarations/components/eui-code-block.d.ts.map +1 -1
- package/declarations/components/eui-code.d.ts +2 -1
- package/declarations/components/eui-code.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/options.d.ts +1 -1
- package/declarations/components/eui-combo-box/options.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/trigger/input.d.ts +1 -1
- package/declarations/components/eui-combo-box/trigger/input.d.ts.map +1 -1
- package/declarations/components/eui-form-control-layout-custom-icon.d.ts +1 -1
- package/declarations/components/eui-global-toast-list.d.ts +2 -1
- package/declarations/components/eui-global-toast-list.d.ts.map +1 -1
- package/declarations/components/eui-hide-for.d.ts.map +1 -1
- package/declarations/components/eui-i18n.d.ts +1 -1
- package/declarations/components/eui-icon.d.ts +1 -0
- package/declarations/components/eui-icon.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor-toolbar.d.ts +1 -1
- package/declarations/components/eui-markdown-editor.d.ts +3 -2
- package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
- package/declarations/components/eui-page-header-content.d.ts +1 -1
- package/declarations/components/eui-popover.d.ts +2 -1
- package/declarations/components/eui-popover.d.ts.map +1 -1
- package/declarations/components/eui-portal.d.ts +2 -1
- package/declarations/components/eui-portal.d.ts.map +1 -1
- package/declarations/components/eui-range-track.d.ts +1 -1
- package/declarations/components/eui-show-for.d.ts +1 -1
- package/declarations/components/eui-show-for.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-content.d.ts +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts.map +1 -1
- package/declarations/components/eui-tabbed-content.d.ts +2 -1
- package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
- package/declarations/components/eui-tool-tip-popover.d.ts +2 -1
- package/declarations/components/eui-tool-tip-popover.d.ts.map +1 -1
- package/declarations/components.d.ts +148 -148
- package/declarations/helpers/arg-or-default.d.ts +1 -1
- package/declarations/helpers/eui-page-restrict-width.d.ts +1 -1
- package/declarations/helpers/eui-palette.d.ts +1 -1
- package/declarations/helpers/get-range-tick.d.ts +2 -2
- package/declarations/helpers/hex-to-rgb.d.ts +1 -1
- package/declarations/helpers/is-color-dark.d.ts +1 -1
- package/declarations/helpers/is-item-open.d.ts +1 -1
- package/declarations/helpers/is-valid-hex.d.ts +1 -1
- package/declarations/helpers/nullish.d.ts +1 -1
- package/declarations/helpers/starts-with.d.ts +1 -1
- package/declarations/helpers/to-initials.d.ts +1 -1
- package/declarations/helpers/type-of.d.ts +3 -3
- package/declarations/helpers/type-of.d.ts.map +1 -1
- package/declarations/helpers/use-state.d.ts +1 -1
- package/declarations/modifiers/screen-reader-only.d.ts +1 -1
- package/declarations/modifiers/simple-style.d.ts +1 -1
- package/declarations/modifiers/validatable-control.d.ts +1 -1
- package/declarations/utils/markdown/markdown-modes.d.ts.map +1 -1
- package/dist/-private/random-id.js.map +1 -1
- package/dist/components/common.js.map +1 -1
- package/dist/components/eui-accordion.js +14 -14
- package/dist/components/eui-accordion.js.map +1 -1
- package/dist/components/eui-auto-sizer.js +31 -31
- package/dist/components/eui-auto-sizer.js.map +1 -1
- package/dist/components/eui-avatar.js +2 -2
- package/dist/components/eui-avatar.js.map +1 -1
- package/dist/components/eui-badge-group.js.map +1 -1
- package/dist/components/eui-badge.js +1 -1
- package/dist/components/eui-badge.js.map +1 -1
- package/dist/components/eui-beta-badge.js +1 -1
- package/dist/components/eui-beta-badge.js.map +1 -1
- package/dist/components/eui-bottom-bar.js +13 -13
- package/dist/components/eui-bottom-bar.js.map +1 -1
- package/dist/components/eui-breadcrumbs.js +40 -42
- package/dist/components/eui-breadcrumbs.js.map +1 -1
- package/dist/components/eui-button-content.js.map +1 -1
- package/dist/components/eui-button-empty.js +1 -1
- package/dist/components/eui-button-empty.js.map +1 -1
- package/dist/components/eui-button-group-button.js +1 -1
- package/dist/components/eui-button-group-button.js.map +1 -1
- package/dist/components/eui-button-group.js +1 -1
- package/dist/components/eui-button-group.js.map +1 -1
- package/dist/components/eui-button-icon.js +1 -1
- package/dist/components/eui-button-icon.js.map +1 -1
- package/dist/components/eui-button.js +2 -2
- package/dist/components/eui-button.js.map +1 -1
- package/dist/components/eui-call-out.js +1 -1
- package/dist/components/eui-call-out.js.map +1 -1
- package/dist/components/eui-card-select.js +8 -8
- package/dist/components/eui-card-select.js.map +1 -1
- package/dist/components/eui-card.js +6 -6
- package/dist/components/eui-card.js.map +1 -1
- package/dist/components/eui-checkable-card.js.map +1 -1
- package/dist/components/eui-checkbox-group.js +1 -1
- package/dist/components/eui-checkbox-group.js.map +1 -1
- package/dist/components/eui-checkbox.js +4 -4
- package/dist/components/eui-checkbox.js.map +1 -1
- package/dist/components/eui-code-block/controls.js.map +1 -1
- package/dist/components/eui-code-block/full-screen-display.js.map +1 -1
- package/dist/components/eui-code-block/virtualized.js +9 -9
- package/dist/components/eui-code-block/virtualized.js.map +1 -1
- package/dist/components/eui-code-block.js +71 -71
- package/dist/components/eui-code-block.js.map +1 -1
- package/dist/components/eui-code.js +16 -16
- package/dist/components/eui-code.js.map +1 -1
- package/dist/components/eui-collapsible-nav-group.js +1 -1
- package/dist/components/eui-collapsible-nav-group.js.map +1 -1
- package/dist/components/eui-collapsible-nav.js +21 -22
- package/dist/components/eui-collapsible-nav.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js +9 -9
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/group.js.map +1 -1
- package/dist/components/eui-combo-box/no-matches-message.js.map +1 -1
- package/dist/components/eui-combo-box/options.js +32 -16
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box/search-message.js.map +1 -1
- package/dist/components/eui-combo-box/trigger/input.js +20 -19
- package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
- package/dist/components/eui-combo-box/trigger.js +2 -2
- package/dist/components/eui-combo-box/trigger.js.map +1 -1
- package/dist/components/eui-combo-box-pill.js +1 -1
- package/dist/components/eui-combo-box-pill.js.map +1 -1
- package/dist/components/eui-combo-box.js +58 -60
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-comment-list.js.map +1 -1
- package/dist/components/eui-comment-timeline.js +1 -1
- package/dist/components/eui-comment-timeline.js.map +1 -1
- package/dist/components/eui-comment.js +1 -1
- package/dist/components/eui-comment.js.map +1 -1
- package/dist/components/eui-confirm-modal.js.map +1 -1
- package/dist/components/eui-context-menu-item.js +4 -4
- package/dist/components/eui-context-menu-item.js.map +1 -1
- package/dist/components/eui-context-menu-panel.js.map +1 -1
- package/dist/components/eui-copy.js +3 -3
- package/dist/components/eui-copy.js.map +1 -1
- package/dist/components/eui-described-form-group.js.map +1 -1
- package/dist/components/eui-description-list-description.js.map +1 -1
- package/dist/components/eui-description-list-title.js.map +1 -1
- package/dist/components/eui-description-list.js.map +1 -1
- package/dist/components/eui-dual-range.js +110 -110
- package/dist/components/eui-dual-range.js.map +1 -1
- package/dist/components/eui-empty-prompt.js +1 -1
- package/dist/components/eui-empty-prompt.js.map +1 -1
- package/dist/components/eui-field-number.js +1 -1
- package/dist/components/eui-field-number.js.map +1 -1
- package/dist/components/eui-field-password.js +1 -1
- package/dist/components/eui-field-password.js.map +1 -1
- package/dist/components/eui-field-search.js +26 -26
- package/dist/components/eui-field-search.js.map +1 -1
- package/dist/components/eui-field-text.js +1 -1
- package/dist/components/eui-field-text.js.map +1 -1
- package/dist/components/eui-file-picker.js +16 -16
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-flex-grid.js.map +1 -1
- package/dist/components/eui-flex-group.js.map +1 -1
- package/dist/components/eui-flex-item.js.map +1 -1
- package/dist/components/eui-flyout-body.js.map +1 -1
- package/dist/components/eui-flyout-footer.js.map +1 -1
- package/dist/components/eui-flyout-header.js.map +1 -1
- package/dist/components/eui-flyout.js +35 -36
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-form-control-layout-clear-button.js.map +1 -1
- package/dist/components/eui-form-control-layout-custom-icon.js.map +1 -1
- package/dist/components/eui-form-control-layout-delimited.js +1 -1
- package/dist/components/eui-form-control-layout-delimited.js.map +1 -1
- package/dist/components/eui-form-control-layout-icons.js +1 -1
- package/dist/components/eui-form-control-layout-icons.js.map +1 -1
- package/dist/components/eui-form-control-layout.js +1 -1
- package/dist/components/eui-form-control-layout.js.map +1 -1
- package/dist/components/eui-form-error-text.js.map +1 -1
- package/dist/components/eui-form-fieldset.js.map +1 -1
- package/dist/components/eui-form-help-text.js.map +1 -1
- package/dist/components/eui-form-label.js.map +1 -1
- package/dist/components/eui-form-legend.js.map +1 -1
- package/dist/components/eui-form-row.js +4 -4
- package/dist/components/eui-form-row.js.map +1 -1
- package/dist/components/eui-form.js +1 -1
- package/dist/components/eui-form.js.map +1 -1
- package/dist/components/eui-global-toast-list.js +43 -43
- package/dist/components/eui-global-toast-list.js.map +1 -1
- package/dist/components/eui-header-alert.js.map +1 -1
- package/dist/components/eui-header-breadcrumbs.js.map +1 -1
- package/dist/components/eui-header-link.js.map +1 -1
- package/dist/components/eui-header-links.js +1 -1
- package/dist/components/eui-header-links.js.map +1 -1
- package/dist/components/eui-header-logo.js.map +1 -1
- package/dist/components/eui-header-section-item-button.js +6 -6
- package/dist/components/eui-header-section-item-button.js.map +1 -1
- package/dist/components/eui-header-section-item.js.map +1 -1
- package/dist/components/eui-header-section.js.map +1 -1
- package/dist/components/eui-header.js +2 -2
- package/dist/components/eui-header.js.map +1 -1
- package/dist/components/eui-health.js.map +1 -1
- package/dist/components/eui-hide-for.js.map +1 -1
- package/dist/components/eui-horizontal-rule.js.map +1 -1
- package/dist/components/eui-i18n/render.js.map +1 -1
- package/dist/components/eui-i18n.js +3 -3
- package/dist/components/eui-i18n.js.map +1 -1
- package/dist/components/eui-icon-tip.js.map +1 -1
- package/dist/components/eui-icon.js +43 -37
- package/dist/components/eui-icon.js.map +1 -1
- package/dist/components/eui-image.js +8 -8
- package/dist/components/eui-image.js.map +1 -1
- package/dist/components/eui-inner-text.js +11 -11
- package/dist/components/eui-inner-text.js.map +1 -1
- package/dist/components/eui-input-popover.js +32 -32
- package/dist/components/eui-input-popover.js.map +1 -1
- package/dist/components/eui-key-pad-menu-item.js +3 -3
- package/dist/components/eui-key-pad-menu-item.js.map +1 -1
- package/dist/components/eui-key-pad-menu.js.map +1 -1
- package/dist/components/eui-link.js +1 -1
- package/dist/components/eui-link.js.map +1 -1
- package/dist/components/eui-list-group-item.js +4 -1
- package/dist/components/eui-list-group-item.js.map +1 -1
- package/dist/components/eui-list-group.js +1 -1
- package/dist/components/eui-list-group.js.map +1 -1
- package/dist/components/eui-loading-content.js +1 -1
- package/dist/components/eui-loading-content.js.map +1 -1
- package/dist/components/eui-loading-logo.js.map +1 -1
- package/dist/components/eui-loading-spinner.js.map +1 -1
- package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer/icons/markdown-logo.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js +3 -3
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor-text-area.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar.js +9 -11
- package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
- package/dist/components/eui-markdown-editor.js +115 -117
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-checkbox.js +7 -7
- package/dist/components/eui-markdown-format/markdown-checkbox.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code-block.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-tooltip.js.map +1 -1
- package/dist/components/eui-markdown-format.js +14 -16
- package/dist/components/eui-markdown-format.js.map +1 -1
- package/dist/components/eui-modal-body.js.map +1 -1
- package/dist/components/eui-modal-footer.js.map +1 -1
- package/dist/components/eui-modal-header-title.js.map +1 -1
- package/dist/components/eui-modal-header.js.map +1 -1
- package/dist/components/eui-modal.js +1 -1
- package/dist/components/eui-modal.js.map +1 -1
- package/dist/components/eui-notification-badge.js.map +1 -1
- package/dist/components/eui-notification-event-messages.js.map +1 -1
- package/dist/components/eui-notification-event-meta.js +1 -1
- package/dist/components/eui-notification-event-meta.js.map +1 -1
- package/dist/components/eui-notification-event-read-button.js.map +1 -1
- package/dist/components/eui-notification-event-read-icon.js.map +1 -1
- package/dist/components/eui-notification-event.js +1 -1
- package/dist/components/eui-notification-event.js.map +1 -1
- package/dist/components/eui-overlay-mask.js +6 -6
- package/dist/components/eui-overlay-mask.js.map +1 -1
- package/dist/components/eui-page-body.js.map +1 -1
- package/dist/components/eui-page-content-body.js.map +1 -1
- package/dist/components/eui-page-content-header-section.js.map +1 -1
- package/dist/components/eui-page-content-header.js.map +1 -1
- package/dist/components/eui-page-content.js.map +1 -1
- package/dist/components/eui-page-header-content.js +4 -4
- package/dist/components/eui-page-header-content.js.map +1 -1
- package/dist/components/eui-page-header-section.js.map +1 -1
- package/dist/components/eui-page-header.js +1 -1
- package/dist/components/eui-page-header.js.map +1 -1
- package/dist/components/eui-page-side-bar.js.map +1 -1
- package/dist/components/eui-page-template.js +12 -12
- package/dist/components/eui-page-template.js.map +1 -1
- package/dist/components/eui-page.js.map +1 -1
- package/dist/components/eui-pagination/button-wrapper.js.map +1 -1
- package/dist/components/eui-pagination/next-button.js +1 -1
- package/dist/components/eui-pagination/next-button.js.map +1 -1
- package/dist/components/eui-pagination/previous-button.js +1 -1
- package/dist/components/eui-pagination/previous-button.js.map +1 -1
- package/dist/components/eui-pagination-button.js.map +1 -1
- package/dist/components/eui-pagination.js +39 -39
- package/dist/components/eui-pagination.js.map +1 -1
- package/dist/components/eui-panel.js +1 -1
- package/dist/components/eui-panel.js.map +1 -1
- package/dist/components/eui-popover-footer.js.map +1 -1
- package/dist/components/eui-popover-title.js.map +1 -1
- package/dist/components/eui-popover.js +126 -126
- package/dist/components/eui-popover.js.map +1 -1
- package/dist/components/eui-portal.js +8 -8
- package/dist/components/eui-portal.js.map +1 -1
- package/dist/components/eui-progress.js +1 -1
- package/dist/components/eui-progress.js.map +1 -1
- package/dist/components/eui-radio-group.js +2 -2
- package/dist/components/eui-radio-group.js.map +1 -1
- package/dist/components/eui-radio.js +1 -1
- package/dist/components/eui-radio.js.map +1 -1
- package/dist/components/eui-range-highlight.js.map +1 -1
- package/dist/components/eui-range-input.js +1 -1
- package/dist/components/eui-range-input.js.map +1 -1
- package/dist/components/eui-range-label.js.map +1 -1
- package/dist/components/eui-range-levels.js +7 -7
- package/dist/components/eui-range-levels.js.map +1 -1
- package/dist/components/eui-range-slider.js.map +1 -1
- package/dist/components/eui-range-thumb.js.map +1 -1
- package/dist/components/eui-range-ticks.js +6 -6
- package/dist/components/eui-range-ticks.js.map +1 -1
- package/dist/components/eui-range-tooltip.js +20 -20
- package/dist/components/eui-range-tooltip.js.map +1 -1
- package/dist/components/eui-range-track.js +49 -49
- package/dist/components/eui-range-track.js.map +1 -1
- package/dist/components/eui-range-wrapper.js.map +1 -1
- package/dist/components/eui-range.js +26 -26
- package/dist/components/eui-range.js.map +1 -1
- package/dist/components/eui-select.js +1 -1
- package/dist/components/eui-select.js.map +1 -1
- package/dist/components/eui-selectable-list-item.js +1 -1
- package/dist/components/eui-selectable-list-item.js.map +1 -1
- package/dist/components/eui-show-for.js +8 -8
- package/dist/components/eui-show-for.js.map +1 -1
- package/dist/components/eui-side-nav-item/button.js.map +1 -1
- package/dist/components/eui-side-nav-item.js +1 -1
- package/dist/components/eui-side-nav-item.js.map +1 -1
- package/dist/components/eui-side-nav.js +4 -4
- package/dist/components/eui-side-nav.js.map +1 -1
- package/dist/components/eui-spacer.js.map +1 -1
- package/dist/components/eui-split-panel/inner.js.map +1 -1
- package/dist/components/eui-split-panel/outer.js +1 -1
- package/dist/components/eui-split-panel/outer.js.map +1 -1
- package/dist/components/eui-stat/description.js +1 -0
- package/dist/components/eui-stat/description.js.map +1 -1
- package/dist/components/eui-stat/title.js.map +1 -1
- package/dist/components/eui-stat.js +5 -5
- package/dist/components/eui-stat.js.map +1 -1
- package/dist/components/eui-step-horizontal.js.map +1 -1
- package/dist/components/eui-step-number.js +1 -1
- package/dist/components/eui-step-number.js.map +1 -1
- package/dist/components/eui-step.js.map +1 -1
- package/dist/components/eui-steps-horizontal.js.map +1 -1
- package/dist/components/eui-steps.js.map +1 -1
- package/dist/components/eui-sub-steps.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +27 -27
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js +73 -73
- package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +6 -6
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +5 -5
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/now-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +27 -27
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-date-picker-range.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +25 -25
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +9 -9
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-super-update-button.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/date-utils.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/index.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/pretty-duration.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/quick-select.js +1 -1
- package/dist/components/eui-super-date-picker/utils/quick-select.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/time-options.js.map +1 -1
- package/dist/components/eui-super-date-picker.js +34 -34
- package/dist/components/eui-super-date-picker.js.map +1 -1
- package/dist/components/eui-switch.js +4 -4
- package/dist/components/eui-switch.js.map +1 -1
- package/dist/components/eui-tab.js +1 -1
- package/dist/components/eui-tab.js.map +1 -1
- package/dist/components/eui-tabbed-content.js +31 -31
- package/dist/components/eui-tabbed-content.js.map +1 -1
- package/dist/components/eui-tabs.js.map +1 -1
- package/dist/components/eui-text-align.js.map +1 -1
- package/dist/components/eui-text-area.js.map +1 -1
- package/dist/components/eui-text-color.js.map +1 -1
- package/dist/components/eui-text.js +1 -1
- package/dist/components/eui-text.js.map +1 -1
- package/dist/components/eui-title.js.map +1 -1
- package/dist/components/eui-toast.js.map +1 -1
- package/dist/components/eui-tool-tip-popover.js +5 -5
- package/dist/components/eui-tool-tip-popover.js.map +1 -1
- package/dist/components/eui-tool-tip.js +44 -46
- package/dist/components/eui-tool-tip.js.map +1 -1
- package/dist/components/text-block.js.map +1 -1
- package/dist/helpers/arg-or-default.js.map +1 -1
- package/dist/helpers/cast-to.js.map +1 -1
- package/dist/helpers/class-names.js.map +1 -1
- package/dist/helpers/eui-page-restrict-width.js.map +1 -1
- package/dist/helpers/eui-palette.js +1 -1
- package/dist/helpers/eui-palette.js.map +1 -1
- package/dist/helpers/get-eui-config.js +1 -1
- package/dist/helpers/get-eui-config.js.map +1 -1
- package/dist/helpers/get-range-tick.js.map +1 -1
- package/dist/helpers/hex-to-rgb.js.map +1 -1
- package/dist/helpers/inline-styles.js.map +1 -1
- package/dist/helpers/is-color-dark.js.map +1 -1
- package/dist/helpers/is-item-open.js.map +1 -1
- package/dist/helpers/is-valid-hex.js.map +1 -1
- package/dist/helpers/is-within-number.js.map +1 -1
- package/dist/helpers/merge.js.map +1 -1
- package/dist/helpers/nullish.js.map +1 -1
- package/dist/helpers/starts-with.js.map +1 -1
- package/dist/helpers/to-initials.js.map +1 -1
- package/dist/helpers/type-of.js.map +1 -1
- package/dist/helpers/use-state.js +1 -1
- package/dist/helpers/use-state.js.map +1 -1
- package/dist/i18n/util.js.map +1 -1
- package/dist/modifiers/mutation-observer.js.map +1 -1
- package/dist/modifiers/outside-click-detector.js +4 -0
- package/dist/modifiers/outside-click-detector.js.map +1 -1
- package/dist/modifiers/resize-observer.js +3 -0
- package/dist/modifiers/resize-observer.js.map +1 -1
- package/dist/modifiers/screen-reader-only.js.map +1 -1
- package/dist/modifiers/simple-style.js.map +1 -1
- package/dist/modifiers/use-is-within-breakpoints.js.map +1 -1
- package/dist/modifiers/validatable-control.js.map +1 -1
- package/dist/services/eui-config.js +1 -1
- package/dist/services/eui-config.js.map +1 -1
- package/dist/services/eui-i18n.js.map +1 -1
- package/dist/services/eui-toaster.js +1 -1
- package/dist/services/eui-toaster.js.map +1 -1
- package/dist/utils/accesibility/accessible-click-keys.js +1 -1
- package/dist/utils/accesibility/accessible-click-keys.js.map +1 -1
- package/dist/utils/accesibility/cascading-menu-keys.js +1 -1
- package/dist/utils/accesibility/cascading-menu-keys.js.map +1 -1
- package/dist/utils/accesibility/combo-box-keys.js +1 -1
- package/dist/utils/accesibility/combo-box-keys.js.map +1 -1
- package/dist/utils/breakpoint.js.map +1 -1
- package/dist/utils/browser/browser.js.map +1 -1
- package/dist/utils/code/utils.js.map +1 -1
- package/dist/utils/color/color_palette.js.map +1 -1
- package/dist/utils/color/eui_palettes.js.map +1 -1
- package/dist/utils/copy-to-clipboard.js.map +1 -1
- package/dist/utils/css-mappings/eui-accordion.js.map +1 -1
- package/dist/utils/css-mappings/eui-avatar.js +1 -1
- package/dist/utils/css-mappings/eui-avatar.js.map +1 -1
- package/dist/utils/css-mappings/eui-badge-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-beta-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-bottom-bar.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-empty.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-group-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-call-out.js.map +1 -1
- package/dist/utils/css-mappings/eui-card-select.js.map +1 -1
- package/dist/utils/css-mappings/eui-card.js.map +1 -1
- package/dist/utils/css-mappings/eui-code-block.js.map +1 -1
- package/dist/utils/css-mappings/eui-collapsible-nav-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-comment-event.js.map +1 -1
- package/dist/utils/css-mappings/eui-comment-timeline-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-context-menu-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-described-form-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-description-list.js.map +1 -1
- package/dist/utils/css-mappings/eui-empty-prompt.js.map +1 -1
- package/dist/utils/css-mappings/eui-file-picker.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-grid.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-flyout.js.map +1 -1
- package/dist/utils/css-mappings/eui-form-control-layout-clear-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-form-row.js.map +1 -1
- package/dist/utils/css-mappings/eui-global-toast-list.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-links.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-section-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-section.js.map +1 -1
- package/dist/utils/css-mappings/eui-header.js.map +1 -1
- package/dist/utils/css-mappings/eui-health.js.map +1 -1
- package/dist/utils/css-mappings/eui-horizontal-rule.js.map +1 -1
- package/dist/utils/css-mappings/eui-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-image.js.map +1 -1
- package/dist/utils/css-mappings/eui-link.js.map +1 -1
- package/dist/utils/css-mappings/eui-list-group-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-list-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-loading-spinner.js.map +1 -1
- package/dist/utils/css-mappings/eui-modal.js.map +1 -1
- package/dist/utils/css-mappings/eui-notification-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-body.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-content-body.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-content.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-header.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-side-bar.js.map +1 -1
- package/dist/utils/css-mappings/eui-page.js.map +1 -1
- package/dist/utils/css-mappings/eui-panel.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover-footer.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover-title.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover.js.map +1 -1
- package/dist/utils/css-mappings/eui-progress-data.js.map +1 -1
- package/dist/utils/css-mappings/eui-progress.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-highlight.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-input.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-levels.js.map +1 -1
- package/dist/utils/css-mappings/eui-selectable-list-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-spacer.js.map +1 -1
- package/dist/utils/css-mappings/eui-stat.js.map +1 -1
- package/dist/utils/css-mappings/eui-step-number.js.map +1 -1
- package/dist/utils/css-mappings/eui-tabs.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-align.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-area.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-color.js.map +1 -1
- package/dist/utils/css-mappings/eui-text.js.map +1 -1
- package/dist/utils/css-mappings/eui-title.js.map +1 -1
- package/dist/utils/css-mappings/eui-toast.js.map +1 -1
- package/dist/utils/css-mappings/eui-tool-tip.js.map +1 -1
- package/dist/utils/css-mappings/index.js +140 -140
- package/dist/utils/css-mappings/index.js.map +1 -1
- package/dist/utils/detect-element-resize.js.map +1 -1
- package/dist/utils/keys.js.map +1 -1
- package/dist/utils/markdown/markdown-actions.js +1 -0
- package/dist/utils/markdown/markdown-actions.js.map +1 -1
- package/dist/utils/markdown/markdown-modes.js.map +1 -1
- package/dist/utils/markdown/markdown-types.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-add-components/processor.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-checkbox/parser.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-tooltip/parser.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-tooltip/plugin.js.map +1 -1
- package/dist/utils/markdown/plugins/to-dom.js.map +1 -1
- package/dist/utils/markdown/remark/remark-prismjs.js.map +1 -1
- package/dist/utils/maybe-unwrap-proxy.js.map +1 -1
- package/dist/utils/number/number.js.map +1 -1
- package/dist/utils/popover/index.js +1 -4
- package/dist/utils/popover/index.js.map +1 -1
- package/dist/utils/predicate/common_predicates.js.map +1 -1
- package/dist/utils/predicate/lodash_predicates.js.map +1 -1
- package/dist/utils/timer.js +4 -1
- package/dist/utils/timer.js.map +1 -1
- package/dist/utils/transition.js.map +1 -1
- package/package.json +63 -46
- package/declarations/modifiers/open-collapsible-nav.d.ts +0 -9
- package/declarations/modifiers/open-collapsible-nav.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport { anchorPositionMapping, displayMapping } from '../utils/css-mappings/eui-popover.ts';\nimport { findPopoverPosition, getElementZIndex } from '../utils/popover/index.ts';\nimport { getTransitionTimings, getWaitDuration, performOnFrame } from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\nexport type PopoverAnchorPosition = 'upCenter' | 'upLeft' | 'upRight' | 'downCenter' | 'downLeft' | 'downRight' | 'leftCenter' | 'leftUp' | 'leftDown' | 'rightCenter' | 'rightUp' | 'rightDown';\nexport type EuiPopoverArgs = {\n /**\n * Class name passed to the direct parent of the button\n */ anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */ anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */ attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */ button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */ closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */ container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */ display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */ hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */ initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */ insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */ isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */ ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */ panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */ panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */ panelStyle?: {\n [i: string]: string;\n };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */ shouldAccountForOtherPopovers?: boolean;\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */ repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */ zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */ onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */ offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */ buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */ arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */ ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */ ariaLabelledBy?: string;\n tabindex?: string | number;\n shouldSelfFocus?: boolean;\n isFocusTrapPaused?: boolean;\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\nexport function getPopoverPositionFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match1 = anchorPosition1.match(/^(.*?)[A-Z]/);\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1] as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['up'];\n}\nexport function getPopoverAlignFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match1 = anchorPosition1.match(/([A-Z].*)/);\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1]?.toLowerCase() as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['left'];\n}\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\nfunction getElementFromInitialFocus(initialFocus1?: FocusTarget): HTMLElement | null {\n const initialFocusType1 = typeof initialFocus1;\n if (initialFocusType1 === 'string') {\n return document.querySelector(initialFocus1 as string);\n }\n if (initialFocusType1 === 'function') {\n return (initialFocus1 as () => HTMLElement | null)();\n }\n return initialFocus1 as HTMLElement | null;\n}\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false)\n isOpen: boolean;\n @argOrDefaultDecorator(true)\n ownFocus: boolean;\n @argOrDefaultDecorator('downCenter')\n anchorPosition: PopoverAnchorPosition;\n @argOrDefaultDecorator('m')\n panelPaddingSize: PanelPaddingSize;\n @argOrDefaultDecorator(true)\n hasArrow: boolean;\n @argOrDefaultDecorator('inlineBlock')\n display: string;\n @argOrDefaultDecorator(true)\n shouldSelfFocus: boolean;\n @argOrDefaultDecorator(false)\n isFocusTrapPaused: boolean;\n //State\n @tracked\n prevIsOpen: boolean | undefined;\n @tracked\n suppressingPopover: boolean | undefined;\n @tracked\n isClosing = false;\n @tracked\n isOpening = false;\n @tracked\n popoverStyles: CssProps = {};\n @tracked\n arrowStyles: CssProps | undefined = {};\n @tracked\n arrowPosition: EuiPopoverPosition | null = null;\n @tracked\n openPosition: EuiPopoverPosition | null = null;\n @tracked\n isOpenStable = false;\n @tracked\n isCurrentlyOpen: boolean | undefined;\n @tracked\n popoverHost?: HTMLElement | null = null;\n ///\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked\n button: HTMLElement | null = null;\n @tracked\n panel: HTMLElement | null = null;\n constructor(owner1: unknown, args1: EuiPopoverArgs){\n super(owner1, args1);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n return undefined;\n }\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n @action\n onEscapeKey(event1: Event, ekEvent1?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent1?.stopPropagation();\n ekEvent1?.stopImmediatePropagation();\n event1.preventDefault();\n event1.stopPropagation();\n this.closePopover();\n }\n }\n @action\n onKeyDown(event1: KeyboardEvent, ekEvent1: EmberKeyboardEvent): void {\n if (event1.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event1 as unknown as Event, ekEvent1 as unknown as Event);\n }\n }\n @action\n onClickOutside(event1: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event1);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event1.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(()=>{\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n // If we've already focused on something inside the panel, everything's fine.\n if (this.hasSetInitialFocus && this.panel.contains(document.activeElement)) {\n return;\n }\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget1;\n if (this.args.initialFocus != null) {\n focusTarget1 = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems1 = tabbable(this.panel);\n if (tabbableItems1.length) {\n focusTarget1 = tabbableItems1[0];\n }\n }\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget1 == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility1 = window.getComputedStyle(this.panel).opacity;\n if (panelVisibility1 === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget1 = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility1 = window.getComputedStyle(focusTarget1).visibility;\n if (visibility1 === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n if (focusTarget1 != null) {\n this.hasSetInitialFocus = true;\n focusTarget1.focus();\n }\n });\n }\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(()=>{\n this.isOpening = true;\n });\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch: durationMatch1, delayMatch: delayMatch1 } = Array.prototype.slice.call(this.panel ? this.panel.children : []).reduce(({ durationMatch: durationMatch1, delayMatch: delayMatch1 }: {\n durationMatch: number;\n delayMatch: number;\n }, element1: HTMLElement)=>{\n const transitionTimings1 = getTransitionTimings(element1);\n return {\n durationMatch: Math.max(durationMatch1, transitionTimings1.durationMatch),\n delayMatch: Math.max(delayMatch1, transitionTimings1.delayMatch)\n };\n }, {\n durationMatch: 0,\n delayMatch: 0\n });\n this.respositionTimeout = later(this, ()=>{\n this.isOpenStable = true;\n const fn1 = (): void =>{\n this.positionPopoverFixed();\n this.updateFocus();\n };\n scheduleOnce('afterRender', this, fn1);\n }, durationMatch1 + delayMatch1);\n }\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n checkIfPopoverIsInsideAnotherPopover(ele1: HTMLElement) {\n const otherPopover1 = ele1.closest<HTMLDivElement>('div.euiPopover__panel');\n this.popoverHost = otherPopover1;\n }\n @action\n didInsertPopover(ele1: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n const fn1 = (): void =>this.onOpenPopover();\n scheduleOnce('afterRender', this, fn1);\n }\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele1);\n }\n this.updateFocus();\n }\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(this, ()=>{\n this.isClosing = false;\n }, 250);\n }\n this.prevIsOpen = this.args.isOpen;\n }\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n this.popoverHost = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n @action\n onMutation(records1: MutationRecord[]): void {\n const waitDuration1 = getWaitDuration(records1);\n this.positionPopoverFixed();\n performOnFrame(waitDuration1, this.positionPopoverFixed);\n }\n @action\n positionPopover(allowEnforcePosition1: boolean): void {\n if (this.button == null || this.panel == null) return;\n let position1 = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition1 = undefined;\n if (allowEnforcePosition1 && this.isOpenStable && this.openPosition != null) {\n position1 = this.openPosition;\n forcePosition1 = true;\n }\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos1(ele1: HTMLElement): [number, number] {\n let currTop1 = 0;\n let currLeft1 = 0;\n if (ele1.offsetParent) {\n do {\n currTop1 += ele1.offsetTop;\n currLeft1 += ele1.offsetLeft;\n }while ((ele1 = ele1.offsetParent as HTMLElement))\n } else {\n currTop1 = ele1.offsetTop;\n currLeft1 = ele1.offsetLeft;\n }\n return [\n currTop1,\n currLeft1\n ];\n }\n const { top: top1, left: left1, position: foundPosition1, arrow: arrow1, anchorBoundingBox: anchorBoundingBox1 } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position: position1,\n forcePosition: forcePosition1,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset: !this.args.attachToAnchor && this.hasArrow ? 16 + (this.args.offset || 0) : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp1 } = this.args;\n const zIndex1 = zIndexProp1 == null ? getElementZIndex(this.button, this.panel) + 2000 : zIndexProp1;\n const popoverStyles1 = {\n top: top1,\n left: this.args.attachToAnchor && anchorBoundingBox1 ? anchorBoundingBox1.left : left1,\n zIndex: zIndex1\n };\n const willRenderArrow1 = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles1 = willRenderArrow1 ? arrow1 : undefined;\n const arrowPosition1 = foundPosition1;\n this.popoverStyles = popoverStyles1;\n this.arrowStyles = arrowStyles1;\n this.arrowPosition = arrowPosition1;\n this.openPosition = foundPosition1;\n }\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles: arrowStyles1 } = this;\n return arrowStyles1 ? htmlSafe(`top: ${arrowStyles1?.top}px; left: ${arrowStyles1?.left}px;`) : undefined;\n }\n get _popoverStyles(): {\n [i: string]: string;\n } {\n const { panelStyle: panelStyle1 } = this.args;\n const { popoverStyles: popoverStyles1 } = this;\n return {\n ...panelStyle1,\n top: `${popoverStyles1.top}px`,\n left: `${popoverStyles1.left}px`,\n zIndex: `${popoverStyles1.zIndex}`\n };\n }\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n return '-1';\n }\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n @action\n registerButton(btn1: HTMLDivElement): void {\n this.button = btn1;\n this.args.buttonRef?.(btn1);\n }\n @action\n registerPanel(panel1: HTMLElement): void {\n this.panel = panel1;\n this.args.panelRef?.(panel1);\n if (panel1 === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n static{\n template(`\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IGNvbmNhdCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCBkaWRVcGRhdGUgZnJvbSAnQGVtYmVyL3JlbmRlci1tb2RpZmllcnMvbW9kaWZpZXJzL2RpZC11cGRhdGUnO1xuaW1wb3J0IHsgY2FuY2VsLCBsYXRlciwgc2NoZWR1bGVPbmNlIH0gZnJvbSAnQGVtYmVyL3J1bmxvb3AnO1xuaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuXG5pbXBvcnQgb3B0aW9uYWwgZnJvbSAnZW1iZXItY29tcG9zYWJsZS1oZWxwZXJzL2hlbHBlcnMvb3B0aW9uYWwnO1xuaW1wb3J0IHsgZm9jdXNUcmFwIH0gZnJvbSAnZW1iZXItZm9jdXMtdHJhcCc7XG5pbXBvcnQgb25LZXkgZnJvbSAnZW1iZXIta2V5Ym9hcmQvbW9kaWZpZXJzL29uLWtleSc7XG5pbXBvcnQgeyBhbmQsIG5vdCwgb3IgfSBmcm9tICdlbWJlci10cnV0aC1oZWxwZXJzJztcbmltcG9ydCB7IHRhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuXG5pbXBvcnQgcmFuZG9tSWQgZnJvbSAnLi4vLXByaXZhdGUvcmFuZG9tLWlkLnRzJztcbmltcG9ydCB7IGFyZ09yRGVmYXVsdERlY29yYXRvciB9IGZyb20gJy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnLi4vaGVscGVycy9jbGFzcy1uYW1lcy50cyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnLi4vaGVscGVycy9tZXJnZS50cyc7XG5pbXBvcnQgbXV0YXRpb25PYnNlcnZlciBmcm9tICcuLi9tb2RpZmllcnMvbXV0YXRpb24tb2JzZXJ2ZXIudHMnO1xuaW1wb3J0IG91dHNpZGVDbGlja0RldGVjdG9yIGZyb20gJy4uL21vZGlmaWVycy9vdXRzaWRlLWNsaWNrLWRldGVjdG9yLnRzJztcbmltcG9ydCBzY3JlZW5SZWFkZXJPbmx5IGZyb20gJy4uL21vZGlmaWVycy9zY3JlZW4tcmVhZGVyLW9ubHkudHMnO1xuaW1wb3J0IHNpbXBsZVN0eWxlIGZyb20gJy4uL21vZGlmaWVycy9zaW1wbGUtc3R5bGUudHMnO1xuaW1wb3J0IHsgY2FzY2FkaW5nTWVudUtleXMgfSBmcm9tICcuLi91dGlscy9hY2Nlc2liaWxpdHkvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgYW5jaG9yUG9zaXRpb25NYXBwaW5nLFxuICBkaXNwbGF5TWFwcGluZ1xufSBmcm9tICcuLi91dGlscy9jc3MtbWFwcGluZ3MvZXVpLXBvcG92ZXIudHMnO1xuaW1wb3J0IHsgZmluZFBvcG92ZXJQb3NpdGlvbiwgZ2V0RWxlbWVudFpJbmRleCB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNpdGlvblRpbWluZ3MsXG4gIGdldFdhaXREdXJhdGlvbixcbiAgcGVyZm9ybU9uRnJhbWVcbn0gZnJvbSAnLi4vdXRpbHMvdHJhbnNpdGlvbi50cyc7XG5pbXBvcnQgRXVpUGFuZWwgZnJvbSAnLi9ldWktcGFuZWwuZ3RzJztcbmltcG9ydCBFdWlQb3J0YWwgZnJvbSAnLi9ldWktcG9ydGFsLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgcGFkZGluZ1NpemVNYXBwaW5nIH0gZnJvbSAnLi4vdXRpbHMvY3NzLW1hcHBpbmdzL2V1aS1wYW5lbC50cyc7XG5pbXBvcnQgdHlwZSB7IEV1aVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBFbWJlcktleWJvYXJkRXZlbnQgfSBmcm9tICdlbWJlci1rZXlib2FyZC9tb2RpZmllcnMvb24ta2V5JztcblxudHlwZSBQYW5lbFBhZGRpbmdTaXplID0ga2V5b2YgdHlwZW9mIHBhZGRpbmdTaXplTWFwcGluZztcblxuZXhwb3J0IHR5cGUgUG9wb3ZlckFuY2hvclBvc2l0aW9uID1cbiAgfCAndXBDZW50ZXInXG4gIHwgJ3VwTGVmdCdcbiAgfCAndXBSaWdodCdcbiAgfCAnZG93bkNlbnRlcidcbiAgfCAnZG93bkxlZnQnXG4gIHwgJ2Rvd25SaWdodCdcbiAgfCAnbGVmdENlbnRlcidcbiAgfCAnbGVmdFVwJ1xuICB8ICdsZWZ0RG93bidcbiAgfCAncmlnaHRDZW50ZXInXG4gIHwgJ3JpZ2h0VXAnXG4gIHwgJ3JpZ2h0RG93bic7XG5cbmV4cG9ydCB0eXBlIEV1aVBvcG92ZXJBcmdzID0ge1xuICAvKipcbiAgICogQ2xhc3MgbmFtZSBwYXNzZWQgdG8gdGhlIGRpcmVjdCBwYXJlbnQgb2YgdGhlIGJ1dHRvblxuICAgKi9cbiAgYW5jaG9yQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxpZ25tZW50IG9mIHRoZSBwb3BvdmVyIGFuZCBhcnJvdyByZWxhdGl2ZSB0byB0aGUgYnV0dG9uXG4gICAqL1xuICBhbmNob3JQb3NpdGlvbj86IFBvcG92ZXJBbmNob3JQb3NpdGlvbjtcbiAgLyoqXG4gICAqIFN0eWxlIGFuZCBwb3NpdGlvbiBhbHRlcmF0aW9uIGZvciBhcnJvdy1sZXNzLCBsZWZ0LWFsaWduZWRcbiAgICogYXR0YWNobWVudC4gSW50ZW5kZWQgZm9yIHVzZSB3aXRoIGlucHV0cyBhcyBhbmNob3JzLCBlLmcuXG4gICAqIEV1aUlucHV0UG9wb3ZlclxuICAgKi9cbiAgYXR0YWNoVG9BbmNob3I_OiBib29sZWFuO1xuICAvKipcbiAgICogVHJpZ2dlcmluZyBlbGVtZW50IGZvciB3aGljaCB0byBhbGlnbiB0aGUgcG9wb3ZlciB0b1xuICAgKi9cbiAgYnV0dG9uPzogQ29tcG9uZW50O1xuICBidXR0b25SZWY_OiAoZTogSFRNTERpdkVsZW1lbnQpID0-IHVua25vd247XG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBoYW5kbGUgaGlkaW5nIG9mIHRoZSBwb3BvdmVyXG4gICAqL1xuICBjbG9zZVBvcG92ZXI6ICgpID0-IHZvaWQ7XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgcG9wb3ZlcidzIHBvc2l0aW9uIHdpdGhpbiB0aGlzIGVsZW1lbnRcbiAgICovXG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xuICAvKipcbiAgICogQ1NTIGRpc3BsYXkgdHlwZSBmb3IgYm90aCB0aGUgcG9wb3ZlciBhbmQgYW5jaG9yXG4gICAqL1xuICBkaXNwbGF5Pzoga2V5b2YgdHlwZW9mIGRpc3BsYXlNYXBwaW5nO1xuICAvKipcbiAgICogU2hvdyBhcnJvdyBpbmRpY2F0aW5nIHRvIG9yaWdpbmF0aW5nIGJ1dHRvblxuICAgKi9cbiAgaGFzQXJyb3c_OiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoYXQgZWxlbWVudCBzaG91bGQgaW5pdGlhbGx5IGhhdmUgZm9jdXM7IENhbiBiZSBhIERPTVxuICAgKiBub2RlLCBvciBhIHNlbGVjdG9yIHN0cmluZyAod2hpY2ggd2lsbCBiZSBwYXNzZWQgdG9cbiAgICogZG9jdW1lbnQucXVlcnlTZWxlY3RvcigpIHRvIGZpbmQgdGhlIERPTSBub2RlKSwgb3IgYSBmdW5jdGlvbiB0aGF0XG4gICAqIHJldHVybnMgYSBET00gbm9kZVxuICAgKi9cbiAgaW5pdGlhbEZvY3VzPzogRm9jdXNUYXJnZXQgfCBmYWxzZTtcbiAgLyoqXG4gICAqIFBhc3NlZCBkaXJlY3RseSB0byBFdWlQb3J0YWwgZm9yIERPTSBwb3NpdGlvbmluZy4gQm90aCBwcm9wZXJ0aWVzIGFyZVxuICAgKiByZXF1aXJlZCBpZiBwcm9wIGlzIHNwZWNpZmllZFxuICAgKi9cbiAgaW5zZXJ0Pzoge1xuICAgIHNpYmxpbmc6IEhUTUxFbGVtZW50O1xuICAgIHBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcic7XG4gIH07XG4gIC8qKlxuICAgKiBWaXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBwb3BvdmVyXG4gICAqL1xuICBpc09wZW4_OiBib29sZWFuO1xuICAvKipcbiAgICogVHJhcHMgdGFiIGZvY3VzIHdpdGhpbiB0aGUgcG9wb3ZlciBjb250ZW50c1xuICAgKi9cbiAgb3duRm9jdXM_OiBib29sZWFuO1xuICAvKipcbiAgICogQ3VzdG9tIGNsYXNzIGFkZGVkIHRvIHRoZSBFdWlQYW5lbCBjb250YWluaW5nIHRoZSBwb3BvdmVyIGNvbnRlbnRzXG4gICAqL1xuICBwYW5lbENsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV1aVBhbmVsIHBhZGRpbmcgb24gYWxsIHNpZGVzXG4gICAqL1xuICBwYW5lbFBhZGRpbmdTaXplPzogUGFuZWxQYWRkaW5nU2l6ZTtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIERPTSBgc3R5bGVgIGF0dHJpYnV0ZS4gUGFzc2VkIHRvIHRoZSBFdWlQYW5lbFxuICAgKi9cbiAgcGFuZWxTdHlsZT86IHsgW2k6IHN0cmluZ106IHN0cmluZyB9O1xuICBwYW5lbFJlZj86IChlOiBIVE1MRWxlbWVudCB8IG51bGwpID0-IHVua25vd247XG4gIHBvcG92ZXJSZWY_OiAoZTogSFRNTEVsZW1lbnQpID0-IHVua25vd247XG5cbiAgLyoqXG4gICAqIHdoZW4gbm90IGBmYWxzZWAsIHRoZSBwb3BvdmVyIHdpbGwgY2hlY2sgaWYgdGhpcyBwb3BvdmVyIGlzIGluc2lkZSBhbm90aGVyIHBvcG92ZXIgYW5kIGlmIHNvLiB3aWxsIHJlcG9zaXRpb24gaXRzZWxmIHRvIGJlIGluc2lkZSB0aGUgb3RoZXIgcG9wb3ZlclxuICAgKi9cbiAgc2hvdWxkQWNjb3VudEZvck90aGVyUG9wb3ZlcnM_OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgdGhlIHBvcG92ZXIncyBwb3NpdGlvbiBpcyByZS1jYWxjdWxhdGVkIHdoZW4gdGhlIHVzZXJcbiAgICogc2Nyb2xscywgdGhpcyBzdXBwb3J0cyBoYXZpbmcgZml4ZWQtcG9zaXRpb24gcG9wb3ZlciBhbmNob3JzXG4gICAqL1xuICByZXBvc2l0aW9uT25TY3JvbGw_OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgcG9wb3ZlciBjb250ZW50IGluaGVyaXRzIHRoZSB6LWluZGV4IG9mIHRoZSBhbmNob3JcbiAgICogY29tcG9uZW50OyBwYXNzIGB6SW5kZXhgIHRvIG92ZXJyaWRlXG4gICAqL1xuICB6SW5kZXg_OiBudW1iZXI7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiBjYWxsYmFjayBmb3Igd2hlbiB0aGUgZm9jdXMgdHJhcCBpcyBkZWFjdGl2YXRlZFxuICAgKi9cbiAgb25UcmFwRGVhY3RpdmF0aW9uPzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIERpc3RhbmNlIGF3YXkgZnJvbSB0aGUgYW5jaG9yIHRoYXQgdGhlIHBvcG92ZXIgd2lsbCByZW5kZXJcbiAgICovXG4gIG9mZnNldD86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1pbmltdW0gZGlzdGFuY2UgYmV0d2VlbiB0aGUgcG9wb3ZlciBhbmQgdGhlIGJvdW5kaW5nIGNvbnRhaW5lcjtcbiAgICogUGFzcyBhbiBhcnJheSBvZiA0IHZhbHVlcyB0byBhZGp1c3QgZWFjaCBzaWRlIGRpZmZlcmVudGx5OiBgW3RvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdF1gXG4gICAqIERlZmF1bHQgaXMgMTZcbiAgICovXG4gIGJ1ZmZlcj86IG51bWJlciB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogRWxlbWVudCB0byBwYXNzIGFzIHRoZSBjaGlsZCBlbGVtZW50IG9mIHRoZSBhcnJvdztcbiAgICogVXNlIGNhc2UgaXMgdHlwaWNhbGx5IGxpbWl0ZWQgdG8gYW4gYWNjb21wYW55aW5nIGBFdWlCZWFjb25gXG4gICAqL1xuICBhcnJvd0NoaWxkcmVuPzogQ29tcG9uZW50O1xuICAvKipcbiAgICogUHJvdmlkZSBhIG5hbWUgdG8gdGhlIHBvcG92ZXIgcGFuZWxcbiAgICovXG4gIGFyaWFMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIG9wdGlvbiB0byBgYXJpYS1sYWJlbGAgdGhhdCB0YWtlcyBhbiBgaWRgLlxuICAgKiBVc3VhbGx5IHRha2VzIHRoZSBgaWRgIG9mIHRoZSBwb3BvdmVyIHRpdGxlXG4gICAqL1xuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcblxuICB0YWJpbmRleD86IHN0cmluZyB8IG51bWJlcjtcblxuICBzaG91bGRTZWxmRm9jdXM_OiBib29sZWFuO1xuXG4gIGlzRm9jdXNUcmFwUGF1c2VkPzogYm9vbGVhbjtcblxuICBmb2N1c1RyYXBPcHRpb25zPzoge1xuICAgIG9uQ2xpY2tPdXRzaWRlPzogKGU6IEV2ZW50KSA9PiB2b2lkO1xuICB9O1xuXG4gIG11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zPzoge1xuICAgIGF0dHJpYnV0ZXM_OiBib29sZWFuO1xuICAgIGNoaWxkTGlzdD86IGJvb2xlYW47XG4gICAgY2hhcmFjdGVyRGF0YT86IGJvb2xlYW47XG4gICAgc3VidHJlZT86IGJvb2xlYW47XG4gIH07XG59O1xuXG50eXBlIEFuY2hvclBvc2l0aW9uID0gJ3VwJyB8ICdyaWdodCcgfCAnZG93bicgfCAnbGVmdCc7XG5cbmNvbnN0IGFuY2hvclBvc2l0aW9uVG9Qb3BvdmVyUG9zaXRpb25NYXA6IHtcbiAgW3Bvc2l0aW9uIGluIEFuY2hvclBvc2l0aW9uXTogRXVpUG9wb3ZlclBvc2l0aW9uO1xufSA9IHtcbiAgdXA6ICd0b3AnLFxuICByaWdodDogJ3JpZ2h0JyxcbiAgZG93bjogJ2JvdHRvbScsXG4gIGxlZnQ6ICdsZWZ0J1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvcG92ZXJQb3NpdGlvbkZyb21BbmNob3JQb3NpdGlvbihcbiAgYW5jaG9yUG9zaXRpb246IFBvcG92ZXJBbmNob3JQb3NpdGlvblxuKTogRXVpUG9wb3ZlclBvc2l0aW9uIHtcbiAgLy8gbWFwcyB0aGUgYW5jaG9yIHBvc2l0aW9uIHRvIHRoZSBtYXRjaGluZyBwb3BvdmVyIHBvc2l0aW9uXG4gIC8vIGUuZy4gXCJ1cExlZnRcIiAtPiBcInRvcFwiLCBcImRvd25SaWdodFwiIC0-IFwiYm90dG9tXCJcblxuICAvLyBleHRyYWN0IHRoZSBmaXJzdCBwb3NpdGlvbmFsIHdvcmQgZnJvbSBhbmNob3JQb3NpdGlvbjpcbiAgLy8gc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgKFwiIF4gXCIpIG9mIGFuY2hvclBvc2l0aW9uIGFuZFxuICAvLyBjYXB0dXJlcyBhbGwgb2YgdGhlIGNoYXJhY3RlcnMgKFwiICguKj8pIFwiKSB1bnRpbCB0aGVcbiAgLy8gZmlyc3QgY2FwaXRhbCBsZXR0ZXIgKFwiIFtBLVpdIFwiKSBpcyBlbmNvdW50ZXJlZFxuICBjb25zdCBtYXRjaCA9IGFuY2hvclBvc2l0aW9uLm1hdGNoKC9eKC4qPylbQS1aXS8pO1xuXG4gIGlmIChtYXRjaD8ubGVuZ3RoICYmIG1hdGNoLmxlbmd0aCA-IDEpIHtcbiAgICByZXR1cm4gYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcFttYXRjaFsxXSBhcyBBbmNob3JQb3NpdGlvbl07XG4gIH1cblxuICByZXR1cm4gYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcFsndXAnXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvcG92ZXJBbGlnbkZyb21BbmNob3JQb3NpdGlvbihcbiAgYW5jaG9yUG9zaXRpb246IFBvcG92ZXJBbmNob3JQb3NpdGlvblxuKTogRXVpUG9wb3ZlclBvc2l0aW9uIHtcbiAgLy8gbWFwcyB0aGUgZ3Jhdml0eSB0byB0aGUgbWF0Y2hpbmcgcG9wb3ZlciBwb3NpdGlvblxuICAvLyBlLmcuIFwidXBMZWZ0XCIgLT4gXCJsZWZ0XCIsIFwicmlnaHREb3duXCIgLT4gXCJib3R0b21cIlxuXG4gIC8vIGV4dHJhY3QgdGhlIHNlY29uZCBwb3NpdGlvbmFsIHdvcmQgZnJvbSBhbmNob3JQb3NpdGlvbjpcbiAgLy8gc3RhcnRzIGEgY2FwdHVyZSBncm91cCBhdCB0aGUgZmlyc3QgY2FwaXRhbCBsZXR0ZXJcbiAgLy8gYW5kIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgYWZ0ZXIgaXRcbiAgY29uc3QgbWF0Y2ggPSBhbmNob3JQb3NpdGlvbi5tYXRjaCgvKFtBLVpdLiopLyk7XG5cbiAgLy8gdGhpcyBwZXJmb3JtcyB0d28gdGFza3M6XG4gIC8vIDEuIG5vcm1hbGl6ZXMgdGhlIGFsaWduIHBvc2l0aW9uIGJ5IGxvd2VyY2FzaW5nIGl0XG4gIC8vIDIuIGBjZW50ZXJgIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGxvb2t1cCBtYXAgd2hpY2ggY29udmVydHMgaXQgdG8gYHVuZGVmaW5lZGAgbWVhbmluZyBubyBhbGlnblxuICBpZiAobWF0Y2g_Lmxlbmd0aCAmJiBtYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIGFuY2hvclBvc2l0aW9uVG9Qb3BvdmVyUG9zaXRpb25NYXBbXG4gICAgICBtYXRjaFsxXT8udG9Mb3dlckNhc2UoKSBhcyBBbmNob3JQb3NpdGlvblxuICAgIF07XG4gIH1cblxuICByZXR1cm4gYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcFsnbGVmdCddO1xufVxuXG5leHBvcnQgY29uc3QgQU5DSE9SX1BPU0lUSU9OUyA9IE9iamVjdC5rZXlzKGFuY2hvclBvc2l0aW9uTWFwcGluZyk7XG5leHBvcnQgY29uc3QgRElTUExBWSA9IE9iamVjdC5rZXlzKGRpc3BsYXlNYXBwaW5nKTtcbmV4cG9ydCB0eXBlIEZvY3VzVGFyZ2V0ID0gSFRNTEVsZW1lbnQgfCBzdHJpbmcgfCAoKCkgPT4gSFRNTEVsZW1lbnQpO1xuXG5jb25zdCBERUZBVUxUX1BPUE9WRVJfU1RZTEVTID0ge1xuICB0b3A6IDUwLFxuICBsZWZ0OiA1MFxufTtcblxuZnVuY3Rpb24gZ2V0RWxlbWVudEZyb21Jbml0aWFsRm9jdXMoXG4gIGluaXRpYWxGb2N1cz86IEZvY3VzVGFyZ2V0XG4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBpbml0aWFsRm9jdXNUeXBlID0gdHlwZW9mIGluaXRpYWxGb2N1cztcblxuICBpZiAoaW5pdGlhbEZvY3VzVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihpbml0aWFsRm9jdXMgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGlmIChpbml0aWFsRm9jdXNUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIChpbml0aWFsRm9jdXMgYXMgKCkgPT4gSFRNTEVsZW1lbnQgfCBudWxsKSgpO1xuICB9XG5cbiAgcmV0dXJuIGluaXRpYWxGb2N1cyBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG59XG5cbnR5cGUgQ3NzUHJvcHMgPSB7XG4gIHRvcD86IG51bWJlcjtcbiAgbGVmdD86IG51bWJlcjtcbiAgcmlnaHQ_OiBudW1iZXI7XG4gIGJvdHRvbT86IG51bWJlcjtcbiAgekluZGV4PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFdWlQb3BvdmVyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IEV1aVBvcG92ZXJBcmdzO1xuICBCbG9ja3M6IHtcbiAgICBidXR0b246IFtdO1xuICAgIGNvbnRlbnQ6IFtdO1xuICAgIGFycm93Q2hpbGRyZW46IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PEV1aVBvcG92ZXJTaWduYXR1cmU-IHtcbiAgLy8gRGVmYXVsdHNcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcihmYWxzZSkgaXNPcGVuITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcih0cnVlKSBvd25Gb2N1cyE6IGJvb2xlYW47XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoJ2Rvd25DZW50ZXInKSBhbmNob3JQb3NpdGlvbiE6IFBvcG92ZXJBbmNob3JQb3NpdGlvbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcignbScpIHBhbmVsUGFkZGluZ1NpemUhOiBQYW5lbFBhZGRpbmdTaXplO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKHRydWUpIGhhc0Fycm93ITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcignaW5saW5lQmxvY2snKSBkaXNwbGF5ITogc3RyaW5nO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKHRydWUpIHNob3VsZFNlbGZGb2N1cyE6IGJvb2xlYW47XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoZmFsc2UpIGlzRm9jdXNUcmFwUGF1c2VkITogYm9vbGVhbjtcblxuICAvL1N0YXRlXG4gIEB0cmFja2VkIHByZXZJc09wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEB0cmFja2VkIHN1cHByZXNzaW5nUG9wb3ZlcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQHRyYWNrZWQgaXNDbG9zaW5nID0gZmFsc2U7XG4gIEB0cmFja2VkIGlzT3BlbmluZyA9IGZhbHNlO1xuICBAdHJhY2tlZCBwb3BvdmVyU3R5bGVzOiBDc3NQcm9wcyA9IHt9O1xuICBAdHJhY2tlZCBhcnJvd1N0eWxlczogQ3NzUHJvcHMgfCB1bmRlZmluZWQgPSB7fTtcbiAgQHRyYWNrZWQgYXJyb3dQb3NpdGlvbjogRXVpUG9wb3ZlclBvc2l0aW9uIHwgbnVsbCA9IG51bGw7XG4gIEB0cmFja2VkIG9wZW5Qb3NpdGlvbjogRXVpUG9wb3ZlclBvc2l0aW9uIHwgbnVsbCA9IG51bGw7XG4gIEB0cmFja2VkIGlzT3BlblN0YWJsZSA9IGZhbHNlO1xuICBAdHJhY2tlZCBpc0N1cnJlbnRseU9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEB0cmFja2VkIHBvcG92ZXJIb3N0PzogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgLy8vXG5cbiAgcHJpdmF0ZSByZXNwb3NpdGlvblRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIGxhdGVyPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsb3NpbmdUcmFuc2l0aW9uVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2xvc2luZ1RyYW5zaXRpb25BbmltYXRpb25GcmFtZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBoYXNTZXRJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQHRyYWNrZWQgYnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBAdHJhY2tlZCBwYW5lbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihvd25lcjogdW5rbm93biwgYXJnczogRXVpUG9wb3ZlckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgYXNzZXJ0KGBNdXN0IHByb3ZpZGUgY2xvc2VQb3BvdmVyIGZ1bmN0aW9uYCwgdGhpcy5hcmdzLmNsb3NlUG9wb3Zlcik7XG4gICAgdGhpcy5wcmV2SXNPcGVuID0gdGhpcy5pc09wZW47XG4gICAgdGhpcy5zdXBwcmVzc2luZ1BvcG92ZXIgPSB0aGlzLmlzT3BlbjtcbiAgICB0aGlzLmlzQ3VycmVudGx5T3BlbiA9IHRoaXMuaXNPcGVuO1xuICB9XG5cbiAgZ2V0IGluc2VydCgpIHtcbiAgICBpZiAodGhpcy5hcmdzLmluc2VydCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncy5pbnNlcnQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvdWxkQWNjb3VudEZvck90aGVyUG9wb3ZlcnMpIHtcbiAgICAgIGlmICh0aGlzLnBvcG92ZXJIb3N0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2libGluZzogdGhpcy5wb3BvdmVySG9zdC5jaGlsZHJlblswXSBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICBwb3NpdGlvbjogJ2FmdGVyJ1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBAYWN0aW9uXG4gIGNsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuYXJncy5jbG9zZVBvcG92ZXIoKTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uRXNjYXBlS2V5KGV2ZW50OiBFdmVudCwgZWtFdmVudD86IEVtYmVyS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgZWtFdmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBla0V2ZW50Py5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGVrRXZlbnQ6IEVtYmVyS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09IGNhc2NhZGluZ01lbnVLZXlzLkVTQ0FQRSkge1xuICAgICAgdGhpcy5vbkVzY2FwZUtleShldmVudCBhcyB1bmtub3duIGFzIEV2ZW50LCBla0V2ZW50IGFzIHVua25vd24gYXMgRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25DbGlja091dHNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXJncy5mb2N1c1RyYXBPcHRpb25zPy5vbkNsaWNrT3V0c2lkZSkge1xuICAgICAgdGhpcy5hcmdzLmZvY3VzVHJhcE9wdGlvbnMub25DbGlja091dHNpZGUoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbmx5IGNsb3NlIHRoZSBwb3BvdmVyIGlmIHRoZSBldmVudCBzb3VyY2UgaXNuJ3QgdGhlIGFuY2hvciBidXR0b25cbiAgICAgIC8vIG90aGVyd2lzZSwgaXQgaXMgdXAgdG8gdGhlIGFuY2hvciB0byB0b2dnbGUgdGhlIHBvcG92ZXIncyBvcGVuIHN0YXR1c1xuICAgICAgaWYgKHRoaXMuYnV0dG9uICYmIHRoaXMuYnV0dG9uLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVGb2N1cygpOiB2b2lkIHtcbiAgICAvLyBXYWl0IGZvciB0aGUgRE9NIHRvIHVwZGF0ZS5cbiAgICB0aGlzLnVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIGlmICghdGhpcy5vd25Gb2N1cyB8fCAhdGhpcy5wYW5lbCB8fCB0aGlzLmFyZ3MuaW5pdGlhbEZvY3VzID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZm9jdXNlZCBvbiBzb21ldGhpbmcgaW5zaWRlIHRoZSBwYW5lbCwgZXZlcnl0aGluZydzIGZpbmUuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaGFzU2V0SW5pdGlhbEZvY3VzICYmXG4gICAgICAgIHRoaXMucGFuZWwuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudClcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBsZXQncyBmb2N1cyB0aGUgZmlyc3QgdGFiYmFibGUgaXRlbSBhbmQgZXhwZWRpdGUgaW5wdXQgZnJvbSB0aGUgdXNlci5cbiAgICAgIGxldCBmb2N1c1RhcmdldDtcblxuICAgICAgaWYgKHRoaXMuYXJncy5pbml0aWFsRm9jdXMgIT0gbnVsbCkge1xuICAgICAgICBmb2N1c1RhcmdldCA9IGdldEVsZW1lbnRGcm9tSW5pdGlhbEZvY3VzKHRoaXMuYXJncy5pbml0aWFsRm9jdXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGFiYmFibGVJdGVtcyA9IHRhYmJhYmxlKHRoaXMucGFuZWwpO1xuXG4gICAgICAgIGlmICh0YWJiYWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGZvY3VzVGFyZ2V0ID0gdGFiYmFibGVJdGVtc1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyB0aGVyZSdzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgcG9wb3ZlciBjb250ZW50IGJlY29taW5nIHZpc2libGUgYW5kIHRoaXMgZnVuY3Rpb24gY2FsbFxuICAgICAgLy8gaWYgdGhlIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSB5ZXQgKGR1ZSB0byBjc3Mgc3R5bGluZykgdGhlbiBpdCBjYW4ndCBhY2NlcHQgZm9jdXNcbiAgICAgIC8vIHNvIHdhaXQgZm9yIGFub3RoZXIgcmVuZGVyIGFuZCB0cnkgYWdhaW5cbiAgICAgIGlmIChmb2N1c1RhcmdldCA9PSBudWxsKSB7XG4gICAgICAgIC8vIHRoZXJlIGlzbid0IGEgZm9jdXMgdGFyZ2V0LCBvbmUgb2YgdHdvIHJlYXNvbnM6XG4gICAgICAgIC8vICMxIGlzIHRoZSB3aG9sZSBwYW5lbCBoaWRkZW4_IElmIHNvLCBzY2hlZHVsZSBhbm90aGVyIGNoZWNrXG4gICAgICAgIC8vICMyIHBhbmVsIGlzIHZpc2libGUgYnV0IG5vIHRhYmJhYmxlcyBleGlzdCwgbW92ZSBmb2N1cyB0byB0aGUgcGFuZWxcbiAgICAgICAgY29uc3QgcGFuZWxWaXNpYmlsaXR5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5wYW5lbCkub3BhY2l0eTtcblxuICAgICAgICBpZiAocGFuZWxWaXNpYmlsaXR5ID09PSAnMCcpIHtcbiAgICAgICAgICAvLyAjMVxuICAgICAgICAgIHRoaXMudXBkYXRlRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyAjMlxuICAgICAgICAgIGZvY3VzVGFyZ2V0ID0gdGhpcy5wYW5lbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZm91bmQgYW4gZWxlbWVudCB0byBmb2N1cywgYnV0IGlzIGl0IHZpc2libGU_XG4gICAgICAgIGNvbnN0IHZpc2liaWxpdHkgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmb2N1c1RhcmdldCkudmlzaWJpbGl0eTtcblxuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAvLyBub3QgdmlzaWJsZSwgY2hlY2sgYWdhaW4gbmV4dCByZW5kZXIgZnJhbWVcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZvY3VzVGFyZ2V0ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5oYXNTZXRJbml0aWFsRm9jdXMgPSB0cnVlO1xuICAgICAgICBmb2N1c1RhcmdldC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgQGFjdGlvblxuICBvbk9wZW5Qb3BvdmVyKCk6IHZvaWQge1xuICAgIGNhbmNlbCh0aGlzLmNsb3NpbmdUcmFuc2l0aW9uVGltZW91dCBhcyBSZXR1cm5UeXBlPHR5cGVvZiBsYXRlcj4pO1xuICAgIC8vIFdlIG5lZWQgdG8gc2V0IHRoaXMgc3RhdGUgYSBiZWF0IGFmdGVyIHRoZSByZW5kZXIgdGFrZXMgcGxhY2UsIHNvIHRoYXQgdGhlIENTU1xuICAgIC8vIHRyYW5zaXRpb24gY2FuIHRha2UgZWZmZWN0LlxuICAgIHRoaXMuY2xvc2luZ1RyYW5zaXRpb25BbmltYXRpb25GcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5pc09wZW5pbmcgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgLy8gZm9yIGVhY2ggY2hpbGQgZWxlbWVudCBvZiBgdGhpcy5wYW5lbGAsIGZpbmQgYW55IHRyYW5zaXRpb24gZHVyYXRpb24gd2Ugc2hvdWxkIHdhaXQgZm9yIGJlZm9yZSBzdGFiaWxpemluZ1xuICAgIGNvbnN0IHsgZHVyYXRpb25NYXRjaCwgZGVsYXlNYXRjaCB9ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlXG4gICAgICAuY2FsbCh0aGlzLnBhbmVsID8gdGhpcy5wYW5lbC5jaGlsZHJlbiA6IFtdKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGR1cmF0aW9uTWF0Y2gsXG4gICAgICAgICAgICBkZWxheU1hdGNoXG4gICAgICAgICAgfTogeyBkdXJhdGlvbk1hdGNoOiBudW1iZXI7IGRlbGF5TWF0Y2g6IG51bWJlciB9LFxuICAgICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyYW5zaXRpb25UaW1pbmdzID0gZ2V0VHJhbnNpdGlvblRpbWluZ3MoZWxlbWVudCk7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZHVyYXRpb25NYXRjaDogTWF0aC5tYXgoXG4gICAgICAgICAgICAgIGR1cmF0aW9uTWF0Y2gsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25UaW1pbmdzLmR1cmF0aW9uTWF0Y2hcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkZWxheU1hdGNoOiBNYXRoLm1heChkZWxheU1hdGNoLCB0cmFuc2l0aW9uVGltaW5ncy5kZWxheU1hdGNoKVxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHsgZHVyYXRpb25NYXRjaDogMCwgZGVsYXlNYXRjaDogMCB9XG4gICAgICApO1xuXG4gICAgdGhpcy5yZXNwb3NpdGlvblRpbWVvdXQgPSBsYXRlcihcbiAgICAgIHRoaXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuU3RhYmxlID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBmbiA9ICgpOiB2b2lkID0-IHtcbiAgICAgICAgICB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkKCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjaGVkdWxlT25jZSgnYWZ0ZXJSZW5kZXInLCB0aGlzLCBmbik7XG4gICAgICB9LFxuICAgICAgZHVyYXRpb25NYXRjaCArIGRlbGF5TWF0Y2hcbiAgICApO1xuICB9XG5cbiAgZ2V0IHNob3VsZEFjY291bnRGb3JPdGhlclBvcG92ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLmFyZ3Muc2hvdWxkQWNjb3VudEZvck90aGVyUG9wb3ZlcnMgPz8gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrSWZQb3BvdmVySXNJbnNpZGVBbm90aGVyUG9wb3ZlcihlbGU6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgb3RoZXJQb3BvdmVyID0gZWxlLmNsb3Nlc3Q8SFRNTERpdkVsZW1lbnQ-KCdkaXYuZXVpUG9wb3Zlcl9fcGFuZWwnKTtcblxuICAgIHRoaXMucG9wb3Zlckhvc3QgPSBvdGhlclBvcG92ZXI7XG4gIH1cblxuICBAYWN0aW9uXG4gIGRpZEluc2VydFBvcG92ZXIoZWxlOiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1cHByZXNzaW5nUG9wb3Zlcikge1xuICAgICAgLy8gY29tcG9uZW50IHdhcyBjcmVhdGVkIHdpdGggaXNPcGVuPXRydWU7IG5vdyB0aGF0IGl0J3MgaW5zZXJ0ZWRcbiAgICAgIC8vIHN0b3Agc3VwcHJlc3NpbmcgYW5kIHN0YXJ0IG9wZW5pbmdcbiAgICAgIHRoaXMuc3VwcHJlc3NpbmdQb3BvdmVyID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3BlbmluZyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZuID0gKCk6IHZvaWQgPT4gdGhpcy5vbk9wZW5Qb3BvdmVyKCk7XG5cbiAgICAgIHNjaGVkdWxlT25jZSgnYWZ0ZXJSZW5kZXInLCB0aGlzLCBmbik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXJncy5yZXBvc2l0aW9uT25TY3JvbGwpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG91bGRBY2NvdW50Rm9yT3RoZXJQb3BvdmVycykge1xuICAgICAgdGhpcy5jaGVja0lmUG9wb3ZlcklzSW5zaWRlQW5vdGhlclBvcG92ZXIoZWxlKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XG4gIH1cblxuICBAYWN0aW9uXG4gIGRpZFVwZGF0ZVJlcG9zaXRpb25PblNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hcmdzLnJlcG9zaXRpb25PblNjcm9sbCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMucG9zaXRpb25Qb3BvdmVyRml4ZWQsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBkaWRVcGRhdGVJc09wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5pc0N1cnJlbnRseU9wZW4gPSB0aGlzLmlzT3BlbjtcblxuICAgIGlmICghdGhpcy5wcmV2SXNPcGVuICYmIHRoaXMuYXJncy5pc09wZW4pIHtcbiAgICAgIHRoaXMub25PcGVuUG9wb3ZlcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZJc09wZW4gJiYgIXRoaXMuYXJncy5pc09wZW4pIHtcbiAgICAgIC8vIElmIHRoZSB1c2VyIGhhcyBqdXN0IGNsb3NlZCB0aGUgcG9wb3ZlciwgcXVldWUgdXAgdGhlIHJlbW92YWwgb2YgdGhlIGNvbnRlbnQgYWZ0ZXIgdGhlXG4gICAgICAvLyB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlLlxuICAgICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5pc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2luZ1RyYW5zaXRpb25UaW1lb3V0ID0gbGF0ZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0-IHtcbiAgICAgICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICAyNTBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5wcmV2SXNPcGVuID0gdGhpcy5hcmdzLmlzT3BlbjtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxEZXN0cm95KCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMucG9zaXRpb25Qb3BvdmVyRml4ZWQsIHRydWUpO1xuICAgIHRoaXMucG9wb3Zlckhvc3QgPSBudWxsO1xuICAgIGNhbmNlbCh0aGlzLnJlc3Bvc2l0aW9uVGltZW91dCBhcyBSZXR1cm5UeXBlPHR5cGVvZiBsYXRlcj4pO1xuICAgIGNhbmNlbCh0aGlzLmNsb3NpbmdUcmFuc2l0aW9uVGltZW91dCBhcyBSZXR1cm5UeXBlPHR5cGVvZiBsYXRlcj4pO1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuY2xvc2luZ1RyYW5zaXRpb25BbmltYXRpb25GcmFtZSBhcyBudW1iZXIpO1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlRm9jdXNBbmltYXRpb25GcmFtZSBhcyBudW1iZXIpO1xuICB9XG5cbiAgQGFjdGlvblxuICBvbk11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBjb25zdCB3YWl0RHVyYXRpb24gPSBnZXRXYWl0RHVyYXRpb24ocmVjb3Jkcyk7XG5cbiAgICB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkKCk7XG5cbiAgICBwZXJmb3JtT25GcmFtZSh3YWl0RHVyYXRpb24sIHRoaXMucG9zaXRpb25Qb3BvdmVyRml4ZWQpO1xuICB9XG5cbiAgQGFjdGlvblxuICBwb3NpdGlvblBvcG92ZXIoYWxsb3dFbmZvcmNlUG9zaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5idXR0b24gPT0gbnVsbCB8fCB0aGlzLnBhbmVsID09IG51bGwpIHJldHVybjtcblxuICAgIGxldCBwb3NpdGlvbiA9IGdldFBvcG92ZXJQb3NpdGlvbkZyb21BbmNob3JQb3NpdGlvbih0aGlzLmFuY2hvclBvc2l0aW9uKTtcbiAgICBsZXQgZm9yY2VQb3NpdGlvbiA9IHVuZGVmaW5lZDtcblxuICAgIGlmIChcbiAgICAgIGFsbG93RW5mb3JjZVBvc2l0aW9uICYmXG4gICAgICB0aGlzLmlzT3BlblN0YWJsZSAmJlxuICAgICAgdGhpcy5vcGVuUG9zaXRpb24gIT0gbnVsbFxuICAgICkge1xuICAgICAgcG9zaXRpb24gPSB0aGlzLm9wZW5Qb3NpdGlvbjtcbiAgICAgIGZvcmNlUG9zaXRpb24gPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gdGhlIG9mZnNldFBhcmVudCwgd2hpY2ggY291bGQgYmUgdGhlIGRvY3VtZW50XG4gICAgZnVuY3Rpb24gZ2V0UG9zKGVsZTogSFRNTEVsZW1lbnQpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgIGxldCBjdXJyVG9wID0gMDtcbiAgICAgIGxldCBjdXJyTGVmdCA9IDA7XG5cbiAgICAgIGlmIChlbGUub2Zmc2V0UGFyZW50KSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjdXJyVG9wICs9IGVsZS5vZmZzZXRUb3A7XG4gICAgICAgICAgY3VyckxlZnQgKz0gZWxlLm9mZnNldExlZnQ7XG4gICAgICAgIH0gd2hpbGUgKChlbGUgPSBlbGUub2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyVG9wID0gZWxlLm9mZnNldFRvcDtcbiAgICAgICAgY3VyckxlZnQgPSBlbGUub2Zmc2V0TGVmdDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtjdXJyVG9wLCBjdXJyTGVmdF07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgdG9wLFxuICAgICAgbGVmdCxcbiAgICAgIHBvc2l0aW9uOiBmb3VuZFBvc2l0aW9uLFxuICAgICAgYXJyb3csXG4gICAgICBhbmNob3JCb3VuZGluZ0JveFxuICAgIH0gPSBmaW5kUG9wb3ZlclBvc2l0aW9uKHtcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5hcmdzLmNvbnRhaW5lcixcbiAgICAgIGhvc3Q6IHRoaXMuc2hvdWxkQWNjb3VudEZvck90aGVyUG9wb3ZlcnMgPyB0aGlzLnBvcG92ZXJIb3N0IDogbnVsbCxcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgZm9yY2VQb3NpdGlvbixcbiAgICAgIGFsaWduOiBnZXRQb3BvdmVyQWxpZ25Gcm9tQW5jaG9yUG9zaXRpb24odGhpcy5hbmNob3JQb3NpdGlvbiksXG4gICAgICBhbmNob3I6IHRoaXMuYnV0dG9uLFxuICAgICAgcG9wb3ZlcjogdGhpcy5wYW5lbCxcbiAgICAgIG9mZnNldDpcbiAgICAgICAgIXRoaXMuYXJncy5hdHRhY2hUb0FuY2hvciAmJiB0aGlzLmhhc0Fycm93XG4gICAgICAgICAgPyAxNiArICh0aGlzLmFyZ3Mub2Zmc2V0IHx8IDApXG4gICAgICAgICAgOiA4ICsgKHRoaXMuYXJncy5vZmZzZXQgfHwgMCksXG4gICAgICBhcnJvd0NvbmZpZzoge1xuICAgICAgICBhcnJvd1dpZHRoOiAyNCxcbiAgICAgICAgYXJyb3dCdWZmZXI6IDEwXG4gICAgICB9LFxuICAgICAgcmV0dXJuQm91bmRpbmdCb3g6IHRoaXMuYXJncy5hdHRhY2hUb0FuY2hvcixcbiAgICAgIGJ1ZmZlcjogdGhpcy5hcmdzLmJ1ZmZlclxuICAgIH0pO1xuXG4gICAgLy8gdGhlIHBvcG92ZXIncyB6LWluZGV4IG11c3QgaW5oZXJpdCBmcm9tIHRoZSBidXR0b25cbiAgICAvLyB0aGlzIGtlZXBzIGEgYnV0dG9uJ3MgcG9wb3ZlciB1bmRlciBhIGZseW91dCB0aGF0IHdvdWxkIGNvdmVyIHRoZSBidXR0b25cbiAgICAvLyBidXQgYSBwb3BvdmVyIHRyaWdnZXJlZCBpbnNpZGUgYSBmbHlvdXQgd2lsbCBhcHBlYXIgb3ZlciB0aGF0IGZseW91dFxuICAgIGNvbnN0IHsgekluZGV4OiB6SW5kZXhQcm9wIH0gPSB0aGlzLmFyZ3M7XG4gICAgY29uc3QgekluZGV4ID1cbiAgICAgIHpJbmRleFByb3AgPT0gbnVsbFxuICAgICAgICA_IGdldEVsZW1lbnRaSW5kZXgodGhpcy5idXR0b24sIHRoaXMucGFuZWwpICsgMjAwMFxuICAgICAgICA6IHpJbmRleFByb3A7XG5cbiAgICBjb25zdCBwb3BvdmVyU3R5bGVzID0ge1xuICAgICAgdG9wLFxuICAgICAgbGVmdDpcbiAgICAgICAgdGhpcy5hcmdzLmF0dGFjaFRvQW5jaG9yICYmIGFuY2hvckJvdW5kaW5nQm94XG4gICAgICAgICAgPyBhbmNob3JCb3VuZGluZ0JveC5sZWZ0XG4gICAgICAgICAgOiBsZWZ0LFxuICAgICAgekluZGV4XG4gICAgfTtcblxuICAgIGNvbnN0IHdpbGxSZW5kZXJBcnJvdyA9ICF0aGlzLmFyZ3MuYXR0YWNoVG9BbmNob3IgJiYgdGhpcy5oYXNBcnJvdztcbiAgICBjb25zdCBhcnJvd1N0eWxlcyA9IHdpbGxSZW5kZXJBcnJvdyA_IGFycm93IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFycm93UG9zaXRpb24gPSBmb3VuZFBvc2l0aW9uO1xuXG4gICAgdGhpcy5wb3BvdmVyU3R5bGVzID0gcG9wb3ZlclN0eWxlcztcbiAgICB0aGlzLmFycm93U3R5bGVzID0gYXJyb3dTdHlsZXM7XG4gICAgdGhpcy5hcnJvd1Bvc2l0aW9uID0gYXJyb3dQb3NpdGlvbjtcbiAgICB0aGlzLm9wZW5Qb3NpdGlvbiA9IGZvdW5kUG9zaXRpb247XG4gIH1cblxuICBnZXQgX2Fycm93U3R5bGVzKCk6IFJldHVyblR5cGU8dHlwZW9mIGh0bWxTYWZlPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBhcnJvd1N0eWxlcyB9ID0gdGhpcztcblxuICAgIHJldHVybiBhcnJvd1N0eWxlc1xuICAgICAgPyBodG1sU2FmZShgdG9wOiAke2Fycm93U3R5bGVzPy50b3B9cHg7IGxlZnQ6ICR7YXJyb3dTdHlsZXM_LmxlZnR9cHg7YClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IF9wb3BvdmVyU3R5bGVzKCk6IHsgW2k6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCB7IHBhbmVsU3R5bGUgfSA9IHRoaXMuYXJncztcbiAgICBjb25zdCB7IHBvcG92ZXJTdHlsZXMgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFuZWxTdHlsZSxcbiAgICAgIHRvcDogYCR7cG9wb3ZlclN0eWxlcy50b3B9cHhgLFxuICAgICAgbGVmdDogYCR7cG9wb3ZlclN0eWxlcy5sZWZ0fXB4YCxcbiAgICAgIHpJbmRleDogYCR7cG9wb3ZlclN0eWxlcy56SW5kZXh9YFxuICAgIH07XG4gIH1cblxuICBnZXQgdGFiaW5kZXgoKSB7XG4gICAgaWYgKHRoaXMub3duRm9jdXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmFyZ3MudGFiaW5kZXggPz8gJzAnO1xuICAgIH1cblxuICAgIHJldHVybiAnLTEnO1xuICB9XG5cbiAgQGFjdGlvblxuICBwb3NpdGlvblBvcG92ZXJGaXhlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uUG9wb3Zlcih0cnVlKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgcG9zaXRpb25Qb3BvdmVyRmx1aWQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvblBvcG92ZXIoZmFsc2UpO1xuICB9XG5cbiAgQGFjdGlvblxuICByZWdpc3RlckJ1dHRvbihidG46IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5idXR0b24gPSBidG47XG4gICAgdGhpcy5hcmdzLmJ1dHRvblJlZj8uKGJ0bik7XG4gIH1cblxuICBAYWN0aW9uXG4gIHJlZ2lzdGVyUGFuZWwocGFuZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYW5lbCA9IHBhbmVsO1xuICAgIHRoaXMuYXJncy5wYW5lbFJlZj8uKHBhbmVsKTtcblxuICAgIGlmIChwYW5lbCA9PT0gbnVsbCkge1xuICAgICAgLy8gcGFuZWwgaGFzIHVubW91bnRlZCwgcmVzdG9yZSB0aGUgc3RhdGUgZGVmYXVsdHNcbiAgICAgIHRoaXMucG9wb3ZlclN0eWxlcyA9IERFRkFVTFRfUE9QT1ZFUl9TVFlMRVM7XG4gICAgICB0aGlzLmFycm93U3R5bGVzID0ge307XG4gICAgICB0aGlzLmFycm93UG9zaXRpb24gPSBudWxsO1xuICAgICAgdGhpcy5vcGVuUG9zaXRpb24gPSBudWxsO1xuICAgICAgdGhpcy5pc09wZW5TdGFibGUgPSBmYWxzZTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZsdWlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcGFuZWwgaXMgY29taW5nIGludG8gZXhpc3RlbmNlXG4gICAgICB0aGlzLnBvc2l0aW9uUG9wb3ZlckZsdWlkKCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5wb3NpdGlvblBvcG92ZXJGbHVpZCk7XG4gICAgfVxuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2xldFxuICAgICAgKHJhbmRvbUlkKVxuICAgICAgKGNsYXNzTmFtZXNcbiAgICAgICAgKGlmIHRoaXMuaXNPcGVuaW5nIFwiZXVpUG9wb3Zlci1pc09wZW5cIilcbiAgICAgICAgcG9zaXRpb249dGhpcy5hbmNob3JQb3NpdGlvblxuICAgICAgICBkaXNwbGF5PXRoaXMuZGlzcGxheVxuICAgICAgICBjb21wb25lbnROYW1lPVwiRXVpUG9wb3ZlclwiXG4gICAgICApXG4gICAgICAoY2xhc3NOYW1lc1xuICAgICAgICBcImV1aVBvcG92ZXJfX3BhbmVsXCJcbiAgICAgICAgKGNvbmNhdCBcImV1aVBvcG92ZXJfX3BhbmVsLS1cIiB0aGlzLmFycm93UG9zaXRpb24pXG4gICAgICAgIChpZiB0aGlzLmlzT3BlbmluZyBcImV1aVBvcG92ZXJfX3BhbmVsLWlzT3BlblwiKVxuICAgICAgICAoaWZcbiAgICAgICAgICAob3IgKG5vdCB0aGlzLmhhc0Fycm93KSBAYXR0YWNoVG9BbmNob3IpIFwiZXVpUG9wb3Zlcl9fcGFuZWwtbm9BcnJvd1wiXG4gICAgICAgIClcbiAgICAgICAgKGlmIEBhdHRhY2hUb0FuY2hvciBcImV1aVBvcG92ZXJfX3BhbmVsLWlzQXR0YWNoZWRcIilcbiAgICAgICAgQHBhbmVsQ2xhc3NOYW1lXG4gICAgICApXG4gICAgICBhcyB8ZGVzY3JpcHRpb25JZCBjbGFzc2VzIHBhbmVsQ2xhc3Nlc3xcbiAgICB9fVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz17e2NsYXNzZXN9fVxuICAgICAgICB7e29uS2V5IFwiX2FsbFwiIHRoaXMub25LZXlEb3duIHByaW9yaXR5PTF9fVxuICAgICAgICB7e2RpZEluc2VydCB0aGlzLmRpZEluc2VydFBvcG92ZXJ9fVxuICAgICAgICB7e2RpZFVwZGF0ZSB0aGlzLmRpZFVwZGF0ZUlzT3BlbiBAaXNPcGVufX1cbiAgICAgICAge3tkaWRVcGRhdGUgdGhpcy5kaWRVcGRhdGVSZXBvc2l0aW9uT25TY3JvbGwgQHJlcG9zaXRpb25PblNjcm9sbH19XG4gICAgICAgIHt7ZGlkSW5zZXJ0IChvcHRpb25hbCBAcG9wb3ZlclJlZil9fVxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICA-XG5cbiAgICAgICAge3shIGJ1dHRvbiB9fVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJldWlQb3BvdmVyX19hbmNob3Ige3tAYW5jaG9yQ2xhc3NOYW1lfX1cIlxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMucmVnaXN0ZXJCdXR0b259fVxuICAgICAgICA-XG4gICAgICAgICAge3t5aWVsZCB0bz1cImJ1dHRvblwifX1cbiAgICAgICAgPC9kaXY-XG5cbiAgICAgICAge3shIGNvbnRlbnQgfX1cbiAgICAgICAge3sjaWZcbiAgICAgICAgICAoYW5kXG4gICAgICAgICAgICAobm90IHRoaXMuc3VwcHJlc3NpbmdQb3BvdmVyKVxuICAgICAgICAgICAgKG9yIHRoaXMuaXNDdXJyZW50bHlPcGVuIHRoaXMuaXNDbG9zaW5nKVxuICAgICAgICAgIClcbiAgICAgICAgfX1cbiAgICAgICAgICA8RXVpUG9ydGFsIEBpbnNlcnQ9e3t0aGlzLmluc2VydH19PlxuICAgICAgICAgICAge3sjbGV0IChyYW5kb21JZCkgYXMgfHBhbmVsSWR8fX1cbiAgICAgICAgICAgICAgPEV1aVBhbmVsXG4gICAgICAgICAgICAgICAgaWQ9e3twYW5lbElkfX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3BhbmVsQ2xhc3Nlc319XG4gICAgICAgICAgICAgICAgYXJpYS1saXZlPXt7aWYgdGhpcy5vd25Gb2N1cyBcIm9mZlwiIFwiYXNzZXJ0aXZlXCJ9fVxuICAgICAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3tAYXJpYUxhYmVsfX1cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3tAYXJpYUxhYmVsbGVkQnl9fVxuICAgICAgICAgICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXt7aWYgdGhpcy5vd25Gb2N1cyBkZXNjcmlwdGlvbklkfX1cbiAgICAgICAgICAgICAgICB0YWJpbmRleD17e3RoaXMudGFiaW5kZXh9fVxuICAgICAgICAgICAgICAgIEBoYXNTaGFkb3c9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7dGhpcy5wYW5lbFBhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICB7e3NpbXBsZVN0eWxlIHRoaXMuX3BvcG92ZXJTdHlsZXN9fVxuICAgICAgICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMucmVnaXN0ZXJQYW5lbH19XG4gICAgICAgICAgICAgICAge3tvdXRzaWRlQ2xpY2tEZXRlY3RvciBvbk91dHNpZGVDbGljaz10aGlzLm9uQ2xpY2tPdXRzaWRlfX1cbiAgICAgICAgICAgICAgICB7e29uS2V5IFwiRXNjYXBlXCIgdGhpcy5vbkVzY2FwZUtleX19XG4gICAgICAgICAgICAgICAge3tmb2N1c1RyYXBcbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPShub3RcbiAgICAgICAgICAgICAgICAgICAgKG9yXG4gICAgICAgICAgICAgICAgICAgICAgKG5vdCB0aGlzLm93bkZvY3VzKSAobm90IHRoaXMuaXNPcGVuU3RhYmxlKSB0aGlzLmlzQ2xvc2luZ1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBzaG91bGRTZWxmRm9jdXM9dGhpcy5zaG91bGRTZWxmRm9jdXNcbiAgICAgICAgICAgICAgICAgIGlzUGF1c2VkPXRoaXMuaXNGb2N1c1RyYXBQYXVzZWRcbiAgICAgICAgICAgICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9KG1lcmdlXG4gICAgICAgICAgICAgICAgICAgIChoYXNoXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRm9jdXNPbkRlYWN0aXZhdGU9dGhpcy5pc09wZW5TdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRm9jdXM9KG9yIEBpbml0aWFsRm9jdXMgdGhpcy5wYW5lbClcbiAgICAgICAgICAgICAgICAgICAgICBvbkRlYWN0aXZhdGU9KG9wdGlvbmFsIEBvblRyYXBEZWFjdGl2YXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgcHJldmVudFNjcm9sbD10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM9dHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrRm9jdXM9KGNvbmNhdCBcIiNcIiBwYW5lbElkKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIEBmb2N1c1RyYXBPcHRpb25zXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y29uY2F0XG4gICAgICAgICAgICAgICAgICAgIFwiZXVpUG9wb3Zlcl9fcGFuZWxBcnJvdyBldWlQb3BvdmVyX19wYW5lbEFycm93LS1cIlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFycm93UG9zaXRpb25cbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBzdHlsZT17e3RoaXMuX2Fycm93U3R5bGVzfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiYXJyb3dDaGlsZHJlblwifX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7eyNpZiB0aGlzLm93bkZvY3VzfX1cbiAgICAgICAgICAgICAgICAgIDxwIGlkPXt7ZGVzY3JpcHRpb25JZH19IHt7c2NyZWVuUmVhZGVyT25seX19PlxuICAgICAgICAgICAgICAgICAgICBZb3UgYXJlIGluIGEgZGlhbG9nLiBUbyBjbG9zZSB0aGlzIGRpYWxvZywgaGl0IGVzY2FwZS5cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAge3ttdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICAgICAgICAgIG9uTXV0YXRpb249dGhpcy5vbk11dGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyT3B0aW9ucz0obWVyZ2VcbiAgICAgICAgICAgICAgICAgICAgICAoaGFzaFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcz10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZExpc3Q9dHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YT10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJ0cmVlPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgQG11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImNvbnRlbnRcIn19XG4gICAgICAgICAgICAgICAgPC9kaXY-XG4gICAgICAgICAgICAgIDwvRXVpUGFuZWw-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"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition1","match1","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus1","initialFocusType1","document","querySelector","EuiPopoverComponent","Component","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner1","args1","assert","args","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event1","ekEvent1","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","initialFocus","activeElement","focusTarget1","tabbableItems1","tabbable","panelVisibility1","getComputedStyle","opacity","visibility1","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","durationMatch1","delayMatch","delayMatch1","Array","slice","call","reduce","element1","transitionTimings1","getTransitionTimings","Math","max","later","isOpenStable","fn1","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele1","otherPopover1","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records1","waitDuration1","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition1","position1","anchorPosition","forcePosition1","openPosition","top1","left1","foundPosition1","arrow","arrow1","anchorBoundingBox","anchorBoundingBox1","findPopoverPosition","container","host","forcePosition","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp1","zIndex1","getElementZIndex","popoverStyles1","willRenderArrow1","arrowStyles1","arrowPosition1","popoverStyles","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","panelStyle1","tabindex","positionPopoverFluid","registerButton","btn1","buttonRef","registerPanel","panel1","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqMA,MAAMA,qCAEF;AACFC,EAAAA,EAAA,EAAI,KAAA;AACJC,EAAAA,KAAA,EAAO,OAAA;AACPC,EAAAA,IAAA,EAAM,QAAA;AACNC,EAAAA,IAAA,EAAM,MAAA;AACR,CAAA,CAAA;AAEO,SAASC,oCACdC,CAAAA,eAAqC,EACpC;AACD;AACA;AAEA;AACA;AACA;AACA;AACA,EAAA,MAAMC,MAAA,GAAQD,eAAA,CAAeE,KAAK,CAAC,aAAA,CAAA,CAAA;EAEnC,IAAID,MAAA,EAAOE,MAAA,IAAUF,MAAA,CAAME,MAAM,GAAG,CAAG,EAAA;AACrC,IAAA,OAAOT,kCAAkC,CAACO,MAAK,CAAC,EAAE,CAAmB,CAAA;AACvE,GAAA;EAEA,OAAOP,kCAAkC,CAAC,IAAK,CAAA,CAAA;AACjD,CAAA;AAEO,SAASU,iCACdJ,CAAAA,eAAqC,EACpC;AACD;AACA;AAEA;AACA;AACA;AACA,EAAA,MAAMC,MAAA,GAAQD,eAAA,CAAeE,KAAK,CAAC,WAAA,CAAA,CAAA;AAEnC;AACA;AACA;EACA,IAAID,MAAA,EAAOE,MAAA,IAAUF,MAAA,CAAME,MAAM,GAAG,CAAG,EAAA;AACrC,IAAA,OAAOT,kCAAkC,CACvCO,MAAK,CAAC,CAAE,CAAA,EAAEI,WAAA,EACX,CAAA,CAAA;AACH,GAAA;EAEA,OAAOX,kCAAkC,CAAC,MAAO,CAAA,CAAA;AACnD,CAAA;MAEaY,gBAAA,GAAmBC,MAAA,CAAOC,IAAI,CAACC,qBAAA,EAAA;MAC/BC,OAAA,GAAUH,MAAA,CAAOC,IAAI,CAACG,cAAA,EAAA;AAGnC,MAAMC,sBAAA,GAAyB;AAC7BC,EAAAA,GAAA,EAAK,EAAA;AACLf,EAAAA,IAAA,EAAM,EAAA;AACR,CAAA,CAAA;AAEA,SAASgB,0BAAAA,CACPC,aAA0B,EACP;EACnB,MAAMC,iBAAA,GAAmB,OAAOD,aAAA,CAAA;EAEhC,IAAIC,iBAAA,KAAqB,QAAU,EAAA;AACjC,IAAA,OAAOC,QAAA,CAASC,aAAa,CAACH,aAAsB,CAAA,CAAA;AACtD,GAAA;EAEA,IAAIC,iBAAA,KAAqB,UAAY,EAAA;AACnC,IAAA,OAAQD,aAAA,EAAwC,CAAA;AAClD,GAAA;AAEA,EAAA,OAAOA,aAAA,CAAA;AACT,CAAA;AAoBe,MAAMI,mBAAA,SAA4BC,SAAA,CAAU;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAExDC,qBAAA,CAAsB,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAAH,IAAA,EAAA,QAAA,CAAA,EAAAI,MAAA,EADvB;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CAECC,qBAAA,CAAsB,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAAH,IAAA,eAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,gBAAA,EAAA,CACtBC,qBAAA,CAAsB,YAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,eAAA,IAAAC,CAAA,CAAAH,IAAA,qBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CACtBC,qBAAA,CAAsB,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,iBAAA,IAAAC,CAAA,CAAAH,IAAA,uBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACtBC,qBAAA,CAAsB,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAAH,IAAA,eAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACtBC,qBAAA,CAAsB,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAAH,IAAA,cAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CACtBC,qBAAA,CAAsB,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,gBAAA,IAAAC,CAAA,CAAAH,IAAA,sBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CACtBC,qBAAA,CAAsB,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,kBAAA,IAAAC,CAAA,CAAAH,IAAA,wBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,iBAGtBI,OAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAF,CAAA,CAAAH,IAAA,EAAA,YAAA,CAAA,EAAAI,MAAA,EADD;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,yBAECI,OAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,mBAAA,IAAAF,CAAA,CAAAH,IAAA,yBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,gBACAI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAoB,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAAH,IAAA,gBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,gBACpBI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAoB,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAAH,IAAA,gBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,oBACpBI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkC,EAAC,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,cAAA,IAAAF,CAAA,CAAAH,IAAA,oBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,kBACnCI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4C,EAAC,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,YAAA,IAAAF,CAAA,CAAAH,IAAA,kBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,oBAC7CI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAmD,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,cAAA,IAAAF,CAAA,CAAAH,IAAA,oBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,mBACnDI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAkD,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,aAAA,IAAAF,CAAA,CAAAH,IAAA,mBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,mBAClDI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAuB,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,aAAA,IAAAF,CAAA,CAAAH,IAAA,mBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,sBACvBI,OAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,gBAAA,IAAAF,CAAA,CAAAH,IAAA,sBAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,kBACAI,OAAA,CAAA,EAAA,YAAA;MAAA,OAA2C,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,YAAA,IAAAF,CAAA,CAAAH,IAAA,kBAAAI,KAAA,CAAA,EAAA;AAC5C;AAEQE,EAAAA,kBAAA,GAAsD,IAAA,CAAA;AACtDC,EAAAA,wBAAA,GAA4D,IAAA,CAAA;EAC5DC,+BAAA,CAAA;EACAC,yBAAA,CAAA;AACAC,EAAAA,kBAAA,GAA8B,KAAA,CAAA;AAAM,EAAA;AAAAX,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,aAC3CI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAqC,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAAA,IAAAF,CAAA,CAAAH,IAAA,aAAAI,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,YACrCI,OAAA,CAAA,EAAA,YAAA;MAAA,OAAoC,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAF,CAAA,CAAAH,IAAA,YAAAI,KAAA,CAAA,EAAA;EAErCO,WAAYC,CAAAA,MAAc,EAAEC,KAAoB,EAAE;IAChD,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AACbC,IAAAA,MAAA,CAAQ,CAAmC,kCAAA,CAAA,EAAE,IAAI,CAACC,IAAI,CAACC,YAAY,CAAA,CAAA;AACnE,IAAA,IAAI,CAACC,UAAU,GAAG,IAAI,CAACC,MAAM,CAAA;AAC7B,IAAA,IAAI,CAACC,kBAAkB,GAAG,IAAI,CAACD,MAAM,CAAA;AACrC,IAAA,IAAI,CAACE,eAAe,GAAG,IAAI,CAACF,MAAM,CAAA;AACpC,GAAA;AAEA,EAAA,IAAIG,SAAS;AACX,IAAA,IAAI,IAAI,CAACN,IAAI,CAACM,MAAM,EAAE;AACpB,MAAA,OAAO,IAAI,CAACN,IAAI,CAACM,MAAM,CAAA;AACzB,KAAA;IAEA,IAAI,IAAI,CAACC,6BAA6B,EAAE;MACtC,IAAI,IAAI,CAACC,WAAW,EAAE;QACpB,OAAO;AACLC,UAAAA,OAAA,EAAS,IAAI,CAACD,WAAW,CAACE,QAAQ,CAAC,CAAM,CAAA;AACzCC,UAAAA,QAAA,EAAU,OAAA;AACZ,SAAA,CAAA;AACF,OAAA;AACF,KAAA;AAEA,IAAA,OAAOC,SAAA,CAAA;AACT,GAAA;AAGAX,EAAAA,YAAAA,GAAqB;IACnB,IAAI,IAAI,CAACE,MAAM,EAAE;MACf,IAAI,CAACH,IAAI,CAACC,YAAY,EAAA,CAAA;AACxB,KAAA;AACF,GAAA;AAAA,EAAA;AAAAY,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,mBALC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;EAQDC,WAAYC,CAAAA,MAAY,EAAEC,QAA4B,EAAQ;IAC5D,IAAI,IAAI,CAACd,MAAM,EAAE;AACfc,MAAAA,QAAA,EAASC,eAAA,EAAA,CAAA;AACTD,MAAAA,QAAA,EAASE,wBAAA,EAAA,CAAA;AACTH,MAAAA,MAAA,CAAMI,cAAc,EAAA,CAAA;AACpBJ,MAAAA,MAAA,CAAME,eAAe,EAAA,CAAA;AACrB,MAAA,IAAI,CAACjB,YAAY,EAAA,CAAA;AACnB,KAAA;AACF,GAAA;AAAA,EAAA;AAAAY,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,kBATC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;EAYDO,SAAUL,CAAAA,MAAoB,EAAEC,QAA2B,EAAQ;AACjE,IAAA,IAAID,MAAA,CAAMM,GAAG,KAAKC,iBAAA,CAAkBC,MAAM,EAAE;AAC1C,MAAA,IAAI,CAACT,WAAW,CAACC,MAAA,EAA2BC,QAAsB,CAAA,CAAA;AACpE,KAAA;AACF,GAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,gBALC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAQDW,EAAAA,cAAAA,CAAeT,MAAY,EAAQ;AACjC,IAAA,IAAI,IAAI,CAAChB,IAAI,CAAC0B,gBAAgB,EAAED,cAAA,EAAgB;AAC9C,MAAA,IAAI,CAACzB,IAAI,CAAC0B,gBAAgB,CAACD,cAAc,CAACT,MAAA,CAAA,CAAA;KACrC,MAAA;AACL;AACA;AACA,MAAA,IAAI,IAAI,CAACW,MAAM,IAAI,IAAI,CAACA,MAAM,CAACC,QAAQ,CAACZ,MAAA,CAAMa,MAAU,MAAU,KAAO,EAAA;AACvE,QAAA,IAAI,CAAC5B,YAAY,EAAA,CAAA;AACnB,OAAA;AACF,KAAA;AACF,GAAA;AAAA,EAAA;AAAAY,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,qBAXC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAaDgB,EAAAA,WAAAA,GAAoB;AAClB;AACA,IAAA,IAAI,CAACpC,yBAAyB,GAAGqC,MAAA,CAAOC,qBAAqB,CAAC,MAAA;AAC5D,MAAA,IAAI,CAAC,IAAI,CAACC,QAAQ,IAAI,CAAC,IAAI,CAACC,KAAK,IAAI,IAAI,CAAClC,IAAI,CAACmC,YAAY,KAAK,KAAO,EAAA;AACrE,QAAA,OAAA;AACF,OAAA;AAEA;AACA,MAAA,IACE,IAAI,CAACxC,kBAAkB,IACvB,IAAI,CAACuC,KAAK,CAACN,QAAQ,CAAChD,QAAA,CAASwD,aAAa,CAC1C,EAAA;AACA,QAAA,OAAA;AACF,OAAA;AAEA;AACA,MAAA,IAAIC,YAAA,CAAA;AAEJ,MAAA,IAAI,IAAI,CAACrC,IAAI,CAACmC,YAAY,IAAI,IAAM,EAAA;AAClCE,QAAAA,YAAA,GAAc5D,0BAAA,CAA2B,IAAI,CAACuB,IAAI,CAACmC,YAAY,CAAA,CAAA;OAC1D,MAAA;AACL,QAAA,MAAMG,cAAA,GAAgBC,QAAA,CAAS,IAAI,CAACL,KAAK,CAAA,CAAA;QAEzC,IAAII,cAAA,CAAcxE,MAAM,EAAE;UACxBuE,YAAA,GAAcC,cAAa,CAAC,CAAE,CAAA,CAAA;AAChC,SAAA;AACF,OAAA;AAEA;AACA;AACA;MACA,IAAID,YAAA,IAAe,IAAM,EAAA;AACvB;AACA;AACA;QACA,MAAMG,gBAAA,GAAkBT,MAAA,CAAOU,gBAAgB,CAAC,IAAI,CAACP,KAAK,CAAA,CAAEQ,OAAO,CAAA;QAEnE,IAAIF,gBAAA,KAAoB,GAAK,EAAA;AAC3B;AACA,UAAA,IAAI,CAACV,WAAW,EAAA,CAAA;SACX,MAAA;AACL;UACAO,YAAA,GAAc,IAAI,CAACH,KAAK,CAAA;AAC1B,SAAA;OACK,MAAA;AACL;QACA,MAAMS,WAAA,GAAaZ,MAAA,CAAOU,gBAAgB,CAACJ,YAAA,EAAaO,UAAU,CAAA;QAElE,IAAID,WAAA,KAAe,QAAU,EAAA;AAC3B;AACA,UAAA,IAAI,CAACb,WAAW,EAAA,CAAA;AAClB,SAAA;AACF,OAAA;MAEA,IAAIO,YAAA,IAAe,IAAM,EAAA;QACvB,IAAI,CAAC1C,kBAAkB,GAAG,IAAA,CAAA;AAC1B0C,QAAAA,YAAA,CAAYQ,KAAK,EAAA,CAAA;AACnB,OAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA;AAGAC,EAAAA,aAAAA,GAAsB;IACpBC,MAAA,CAAO,IAAI,CAACvD,wBAA8C,CAAA,CAAA;AAC1D;AACA;AACA,IAAA,IAAI,CAACC,+BAA+B,GAAGsC,MAAA,CAAOC,qBAAqB,CAAC,MAAA;MAClE,IAAI,CAACgB,SAAS,GAAG,IAAA,CAAA;AACnB,KAAA,CAAA,CAAA;AAEA;IACA,MAAM;AAAEC,MAAAA,aAAA,EAAAC,cAAa;AAAEC,MAAAA,UAAA,EAAAC,WAAAA;KAAY,GAAGC,KAAA,CAAMnE,SAAS,CAACoE,KAAK,CACxDC,IAAI,CAAC,IAAI,CAACrB,KAAK,GAAG,IAAI,CAACA,KAAK,CAACxB,QAAQ,GAAG,EAAE,CAAA,CAC1C8C,MAAM,CACL,CACE;AACEP,MAAAA,aAAA,EAAAC,cAAa;AACbC,MAAAA,UAAA,EAAAC,WAAAA;AAC8C,KAAA,EAChDK,QAAS,KAAA;AAET,MAAA,MAAMC,kBAAA,GAAoBC,oBAAA,CAAqBF,QAAA,CAAA,CAAA;MAE/C,OAAO;QACLR,aAAA,EAAeW,IAAA,CAAKC,GAAG,CACrBX,cAAA,EACAQ,kBAAA,CAAkBT,aAAa,CAAA;QAEjCE,UAAA,EAAYS,IAAA,CAAKC,GAAG,CAACT,WAAA,EAAYM,kBAAA,CAAkBP,UAAU,CAAA;AAC/D,OAAA,CAAA;KAEF,EAAA;AAAEF,MAAAA,aAAA,EAAe,CAAA;AAAGE,MAAAA,UAAA,EAAY,CAAA;AAAE,KAAA,CAAA,CAAA;AAGtC,IAAA,IAAI,CAAC5D,kBAAkB,GAAGuE,KAAA,CACxB,IAAI,EACJ,MAAA;MACE,IAAI,CAACC,YAAY,GAAG,IAAA,CAAA;MAEpB,MAAMC,GAAA,GAAKA,MAAQ;AACjB,QAAA,IAAI,CAACC,oBAAoB,EAAA,CAAA;AACzB,QAAA,IAAI,CAACnC,WAAW,EAAA,CAAA;AAClB,OAAA,CAAA;AAEAoC,MAAAA,YAAA,CAAa,aAAA,EAAe,IAAI,EAAEF,GAAA,CAAA,CAAA;KAEpCd,EAAAA,cAAA,GAAgBE,WAAA,CAAA,CAAA;AAEpB,GAAA;AAAA,EAAA;AAAAvC,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,oBA/CC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAiDD,EAAA,IAAIP,gCAAgC;AAClC,IAAA,OAAO,IAAI,CAACP,IAAI,CAACO,6BAA6B,IAAI,IAAA,CAAA;AACpD,GAAA;AAEA4D,EAAAA,oCAAAA,CAAqCC,IAAgB,EAAE;AACrD,IAAA,MAAMC,aAAA,GAAeD,IAAA,CAAIE,OAAO,CAAiB,uBAAA,CAAA,CAAA;IAEjD,IAAI,CAAC9D,WAAW,GAAG6D,aAAA,CAAA;AACrB,GAAA;AAGAE,EAAAA,gBAAAA,CAAiBH,IAAmB,EAAQ;IAC1C,IAAI,IAAI,CAAChE,kBAAkB,EAAE;AAC3B;AACA;MACA,IAAI,CAACA,kBAAkB,GAAG,KAAA,CAAA;MAC1B,IAAI,CAAC4C,SAAS,GAAG,IAAA,CAAA;AAEjB,MAAA,MAAMgB,GAAA,GAAKA,MAAY,IAAI,CAAClB,aAAa,EAAA,CAAA;AAEzCoB,MAAAA,YAAA,CAAa,aAAA,EAAe,IAAI,EAAEF,GAAA,CAAA,CAAA;AACpC,KAAA;AAEA,IAAA,IAAI,IAAI,CAAChE,IAAI,CAACwE,kBAAkB,EAAE;AAChCzC,MAAAA,MAAA,CAAO0C,gBAAgB,CAAC,UAAU,IAAI,CAACR,oBAAoB,EAAE,IAAA,CAAA,CAAA;AAC/D,KAAA;IAEA,IAAI,IAAI,CAAC1D,6BAA6B,EAAE;MACtC,IAAI,CAAC4D,oCAAoC,CAACC,IAAA,CAAA,CAAA;AAC5C,KAAA;AAEA,IAAA,IAAI,CAACtC,WAAW,EAAA,CAAA;AAClB,GAAA;AAAA,EAAA;AAAAjB,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,uBAtBC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAyBD4D,EAAAA,2BAAAA,GAAoC;AAClC,IAAA,IAAI,IAAI,CAAC1E,IAAI,CAACwE,kBAAkB,EAAE;AAChCzC,MAAAA,MAAA,CAAO0C,gBAAgB,CAAC,UAAU,IAAI,CAACR,oBAAoB,EAAE,IAAA,CAAA,CAAA;KACxD,MAAA;AACLlC,MAAAA,MAAA,CAAO4C,mBAAmB,CAAC,UAAU,IAAI,CAACV,oBAAoB,EAAE,IAAA,CAAA,CAAA;AAClE,KAAA;AACF,GAAA;AAAA,EAAA;AAAApD,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,kCAPC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUD8D,EAAAA,eAAAA,GAAwB;AACtB,IAAA,IAAI,CAACvE,eAAe,GAAG,IAAI,CAACF,MAAM,CAAA;IAElC,IAAI,CAAC,IAAI,CAACD,UAAU,IAAI,IAAI,CAACF,IAAI,CAACG,MAAM,EAAE;AACxC,MAAA,IAAI,CAAC2C,aAAa,EAAA,CAAA;AACpB,KAAA;IAEA,IAAI,IAAI,CAAC5C,UAAU,IAAI,CAAC,IAAI,CAACF,IAAI,CAACG,MAAM,EAAE;AACxC;AACA;MACA,IAAI,CAAC0E,SAAS,GAAG,IAAA,CAAA;MACjB,IAAI,CAAC7B,SAAS,GAAG,KAAA,CAAA;AACjB,MAAA,IAAI,CAACxD,wBAAwB,GAAGsE,KAAA,CAC9B,IAAI,EACJ,MAAA;QACE,IAAI,CAACe,SAAS,GAAG,KAAA,CAAA;OAEnB,EAAA,GAAA,CAAA,CAAA;AAEJ,KAAA;AAEA,IAAA,IAAI,CAAC3E,UAAU,GAAG,IAAI,CAACF,IAAI,CAACG,MAAM,CAAA;AACpC,GAAA;AAAA,EAAA;AAAAU,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,sBAvBC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAyBDgE,EAAAA,WAAAA,GAAoB;AAClB,IAAA,KAAK,CAACA,WAAA,EAAA,CAAA;AACN/C,IAAAA,MAAA,CAAO4C,mBAAmB,CAAC,UAAU,IAAI,CAACV,oBAAoB,EAAE,IAAA,CAAA,CAAA;IAChE,IAAI,CAACzD,WAAW,GAAG,IAAA,CAAA;IACnBuC,MAAA,CAAO,IAAI,CAACxD,kBAAwC,CAAA,CAAA;IACpDwD,MAAA,CAAO,IAAI,CAACvD,wBAA8C,CAAA,CAAA;IAC1DuF,oBAAA,CAAqB,IAAI,CAACtF,+BAAyC,CAAA,CAAA;IACnEsF,oBAAA,CAAqB,IAAI,CAACrF,yBAAmC,CAAA,CAAA;AAC/D,GAAA;AAGAsF,EAAAA,UAAAA,CAAWC,QAAyB,EAAQ;AAC1C,IAAA,MAAMC,aAAA,GAAeC,eAAA,CAAgBF,QAAA,CAAA,CAAA;AAErC,IAAA,IAAI,CAAChB,oBAAoB,EAAA,CAAA;AAEzBmB,IAAAA,cAAA,CAAeF,aAAA,EAAc,IAAI,CAACjB,oBAAoB,CAAA,CAAA;AACxD,GAAA;AAAA,EAAA;AAAApD,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,iBAPC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUDuE,EAAAA,eAAAA,CAAgBC,qBAA6B,EAAQ;IACnD,IAAI,IAAI,CAAC3D,MAAM,IAAI,QAAQ,IAAI,CAACO,KAAK,IAAI,IAAM,EAAA,OAAA;AAE/C,IAAA,IAAIqD,SAAA,GAAW7H,oCAAA,CAAqC,IAAI,CAAC8H,cAAc,CAAA,CAAA;IACvE,IAAIC,cAAA,GAAgB7E,SAAA,CAAA;IAEpB,IACE0E,qBAAA,IACA,IAAI,CAACvB,YAAY,IACjB,IAAI,CAAC2B,YAAY,IAAI,IACrB,EAAA;MACAH,SAAA,GAAW,IAAI,CAACG,YAAY,CAAA;AAC5BD,MAAAA,cAAA,GAAgB,IAAA,CAAA;AAClB,KAAA;IAoBA,MAAM;AACJjH,MAAAA,GAAA,EAAAmH,IAAG;AACHlI,MAAAA,IAAA,EAAAmI,KAAI;AACJjF,MAAAA,QAAA,EAAUkF,cAAa;AACvBC,MAAAA,KAAA,EAAAC,MAAK;AACLC,MAAAA,iBAAA,EAAAC,kBAAAA;KACD,GAAGC,mBAAA,CAAoB;AACtBC,MAAAA,SAAA,EAAW,IAAI,CAACnG,IAAI,CAACmG,SAAS;MAC9BC,IAAA,EAAM,IAAI,CAAC7F,6BAA6B,GAAG,IAAI,CAACC,WAAW,GAAG,IAAA;AAC9DG,MAAAA,QAAA,EAAA4E,SAAA;AACAc,MAAAA,aAAA,EAAAZ,cAAA;AACAa,MAAAA,KAAA,EAAOvI,iCAAA,CAAkC,IAAI,CAACyH,cAAc,CAAA;MAC5De,MAAA,EAAQ,IAAI,CAAC5E,MAAM;MACnB6E,OAAA,EAAS,IAAI,CAACtE,KAAK;AACnBuE,MAAAA,MAAA,EACE,CAAC,IAAI,CAACzG,IAAI,CAAC0G,cAAc,IAAI,IAAI,CAACC,QAAQ,GACtC,EAAM,IAAA,IAAI,CAAC3G,IAAI,CAACyG,MAAM,IAAI,CAAC,CAC3B,GAAA,CAAA,IAAK,IAAI,CAACzG,IAAI,CAACyG,MAAM,IAAI,CAAC,CAAA;AAChCG,MAAAA,WAAA,EAAa;AACXC,QAAAA,UAAA,EAAY,EAAA;AACZC,QAAAA,WAAA,EAAa,EAAA;AACf,OAAA;AACAC,MAAAA,iBAAA,EAAmB,IAAI,CAAC/G,IAAI,CAAC0G,cAAc;AAC3CM,MAAAA,MAAA,EAAQ,IAAI,CAAChH,IAAI,CAACgH,MAAAA;AACpB,KAAA,CAAA,CAAA;AAEA;AACA;AACA;IACA,MAAM;AAAEC,MAAAA,MAAA,EAAQC,WAAAA;KAAY,GAAG,IAAI,CAAClH,IAAI,CAAA;AACxC,IAAA,MAAMmH,OAAA,GACJD,WAAA,IAAc,IAAA,GACVE,gBAAA,CAAiB,IAAI,CAACzF,MAAM,EAAE,IAAI,CAACO,KAAK,CAAA,GAAI,OAC5CgF,WAAA,CAAA;AAEN,IAAA,MAAMG,cAAA,GAAgB;AACpB7I,MAAAA,GAAA,EAAAmH,IAAA;AACAlI,MAAAA,IAAA,EACE,IAAI,CAACuC,IAAI,CAAC0G,cAAc,IAAIT,kBAAA,GACxBA,kBAAA,CAAkBxI,IAAI,GACtBmI,KAAA;AACNqB,MAAAA,MAAA,EAAAE,OAAAA;AACF,KAAA,CAAA;IAEA,MAAMG,gBAAA,GAAkB,CAAC,IAAI,CAACtH,IAAI,CAAC0G,cAAc,IAAI,IAAI,CAACC,QAAQ,CAAA;AAClE,IAAA,MAAMY,YAAA,GAAcD,gBAAA,GAAkBvB,MAAA,GAAQnF,SAAA,CAAA;IAC9C,MAAM4G,cAAA,GAAgB3B,cAAA,CAAA;IAEtB,IAAI,CAAC4B,aAAa,GAAGJ,cAAA,CAAA;IACrB,IAAI,CAACK,WAAW,GAAGH,YAAA,CAAA;IACnB,IAAI,CAACI,aAAa,GAAGH,cAAA,CAAA;IACrB,IAAI,CAAC9B,YAAY,GAAGG,cAAA,CAAA;AACtB,GAAA;AAAA,EAAA;AAAAhF,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,sBAtFC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAwFD,EAAA,IAAI8G,eAAwD;IAC1D,MAAM;AAAEF,MAAAA,WAAA,EAAAH,YAAAA;AAAW,KAAE,GAAG,IAAI,CAAA;AAE5B,IAAA,OAAOA,YAAA,GACHM,QAAA,CAAU,QAAON,YAAA,EAAa/I,GAAI,CAAA,UAAA,EAAY+I,YAAA,EAAa9J,IAAK,CAAA,GAAA,CAAI,IACpEmD,SAAA,CAAA;AACN,GAAA;AAEA,EAAA,IAAIkH,iBAA0C;IAC5C,MAAM;AAAEC,MAAAA,UAAA,EAAAC,WAAAA;KAAY,GAAG,IAAI,CAAChI,IAAI,CAAA;IAChC,MAAM;AAAEyH,MAAAA,aAAA,EAAAJ,cAAAA;AAAa,KAAE,GAAG,IAAI,CAAA;IAE9B,OAAO;AACL,MAAA,GAAGW,WAAU;AACbxJ,MAAAA,GAAA,EAAM,CAAA,EAAE6I,cAAA,CAAc7I,GAAI,CAAG,EAAA,CAAA;AAC7Bf,MAAAA,IAAA,EAAO,CAAA,EAAE4J,cAAA,CAAc5J,IAAK,CAAG,EAAA,CAAA;AAC/BwJ,MAAAA,MAAA,EAAS,CAAA,EAAEI,cAAA,CAAcJ,MAAO,CAAA,CAAA;AAClC,KAAA,CAAA;AACF,GAAA;AAEA,EAAA,IAAIgB,WAAW;IACb,IAAI,IAAI,CAAChG,QAAQ,EAAE;AACjB,MAAA,OAAO,IAAI,CAACjC,IAAI,CAACiI,QAAQ,IAAI,GAAA,CAAA;AAC/B,KAAA;IAEA,OAAO,IAAA,CAAA;AACT,GAAA;AAGAhE,EAAAA,oBAAAA,GAA6B;IAC3B,IAAI,CAACoB,eAAe,CAAC,IAAA,CAAA,CAAA;AACvB,GAAA;AAAA,EAAA;AAAAxE,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,2BAHC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMDoH,EAAAA,oBAAAA,GAA6B;IAC3B,IAAI,CAAC7C,eAAe,CAAC,KAAA,CAAA,CAAA;AACvB,GAAA;AAAA,EAAA;AAAAxE,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,2BAHC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMDqH,EAAAA,cAAAA,CAAeC,IAAmB,EAAQ;IACxC,IAAI,CAACzG,MAAM,GAAGyG,IAAA,CAAA;AACd,IAAA,IAAI,CAACpI,IAAI,CAACqI,SAAS,GAAGD,IAAA,CAAA,CAAA;AACxB,GAAA;AAAA,EAAA;AAAAvH,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,qBAJC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAODwH,EAAAA,aAAAA,CAAcC,MAAkB,EAAQ;IACtC,IAAI,CAACrG,KAAK,GAAGqG,MAAA,CAAA;AACb,IAAA,IAAI,CAACvI,IAAI,CAACwI,QAAQ,GAAGD,MAAA,CAAA,CAAA;IAErB,IAAIA,MAAA,KAAU,IAAM,EAAA;AAClB;MACA,IAAI,CAACd,aAAa,GAAGlJ,sBAAA,CAAA;MACrB,IAAI,CAACmJ,WAAW,GAAG,EAAC,CAAA;MACpB,IAAI,CAACC,aAAa,GAAG,IAAA,CAAA;MACrB,IAAI,CAACjC,YAAY,GAAG,IAAA,CAAA;MACpB,IAAI,CAAC3B,YAAY,GAAG,KAAA,CAAA;AACpBhC,MAAAA,MAAA,CAAO4C,mBAAmB,CAAC,QAAU,EAAA,IAAI,CAACuD,oBAAoB,CAAA,CAAA;KACzD,MAAA;AACL;AACA,MAAA,IAAI,CAACA,oBAAoB,EAAA,CAAA;AACzBnG,MAAAA,MAAA,CAAO0C,gBAAgB,CAAC,QAAU,EAAA,IAAI,CAACyD,oBAAoB,CAAA,CAAA;AAC7D,KAAA;AACF,GAAA;AAAA,EAAA;AAAArH,IAAAA,CAAA,CAAA5B,IAAA,CAAAC,SAAA,oBAlBC4B,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAoBD,EAAA;IAAA2H,oBAAA,CAAAC,kBAAA,CA0HA,22FAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;QAAAC,UAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,KAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,WAAA;8BAAAC,oBAAA;QAAAC,SAAA;QAAAC,KAAA;QAAAC,IAAA;QAAAC,gBAAA;AAAAC,QAAAA,gBAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport {\n anchorPositionMapping,\n displayMapping\n} from '../utils/css-mappings/eui-popover.ts';\nimport { findPopoverPosition, getElementZIndex } from '../utils/popover/index.ts';\nimport {\n getTransitionTimings,\n getWaitDuration,\n performOnFrame\n} from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\n\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\n\nexport type PopoverAnchorPosition =\n | 'upCenter'\n | 'upLeft'\n | 'upRight'\n | 'downCenter'\n | 'downLeft'\n | 'downRight'\n | 'leftCenter'\n | 'leftUp'\n | 'leftDown'\n | 'rightCenter'\n | 'rightUp'\n | 'rightDown';\n\nexport type EuiPopoverArgs = {\n /**\n * Class name passed to the direct parent of the button\n */\n anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */\n anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */\n attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */\n button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */\n closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */\n container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */\n display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */\n hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */\n initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */\n insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */\n isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */\n ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */\n panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */\n panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */\n panelStyle?: { [i: string]: string };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */\n shouldAccountForOtherPopovers?: boolean;\n\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */\n repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */\n zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */\n onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */\n offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */\n buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */\n arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */\n ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */\n ariaLabelledBy?: string;\n\n tabindex?: string | number;\n\n shouldSelfFocus?: boolean;\n\n isFocusTrapPaused?: boolean;\n\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\n\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\n\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\n\nexport function getPopoverPositionFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match = anchorPosition.match(/^(.*?)[A-Z]/);\n\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[match[1] as AnchorPosition];\n }\n\n return anchorPositionToPopoverPositionMap['up'];\n}\n\nexport function getPopoverAlignFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match = anchorPosition.match(/([A-Z].*)/);\n\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[\n match[1]?.toLowerCase() as AnchorPosition\n ];\n }\n\n return anchorPositionToPopoverPositionMap['left'];\n}\n\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\n\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\n\nfunction getElementFromInitialFocus(\n initialFocus?: FocusTarget\n): HTMLElement | null {\n const initialFocusType = typeof initialFocus;\n\n if (initialFocusType === 'string') {\n return document.querySelector(initialFocus as string);\n }\n\n if (initialFocusType === 'function') {\n return (initialFocus as () => HTMLElement | null)();\n }\n\n return initialFocus as HTMLElement | null;\n}\n\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\n\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\n\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isOpen!: boolean;\n @argOrDefaultDecorator(true) ownFocus!: boolean;\n @argOrDefaultDecorator('downCenter') anchorPosition!: PopoverAnchorPosition;\n @argOrDefaultDecorator('m') panelPaddingSize!: PanelPaddingSize;\n @argOrDefaultDecorator(true) hasArrow!: boolean;\n @argOrDefaultDecorator('inlineBlock') display!: string;\n @argOrDefaultDecorator(true) shouldSelfFocus!: boolean;\n @argOrDefaultDecorator(false) isFocusTrapPaused!: boolean;\n\n //State\n @tracked prevIsOpen: boolean | undefined;\n @tracked suppressingPopover: boolean | undefined;\n @tracked isClosing = false;\n @tracked isOpening = false;\n @tracked popoverStyles: CssProps = {};\n @tracked arrowStyles: CssProps | undefined = {};\n @tracked arrowPosition: EuiPopoverPosition | null = null;\n @tracked openPosition: EuiPopoverPosition | null = null;\n @tracked isOpenStable = false;\n @tracked isCurrentlyOpen: boolean | undefined;\n @tracked popoverHost?: HTMLElement | null = null;\n ///\n\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked button: HTMLElement | null = null;\n @tracked panel: HTMLElement | null = null;\n\n constructor(owner: Owner, args: EuiPopoverArgs) {\n super(owner, args);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n\n return undefined;\n }\n\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n\n @action\n onEscapeKey(event: Event, ekEvent?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent?.stopPropagation();\n ekEvent?.stopImmediatePropagation();\n event.preventDefault();\n event.stopPropagation();\n this.closePopover();\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent, ekEvent: EmberKeyboardEvent): void {\n if (event.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event as unknown as Event, ekEvent as unknown as Event);\n }\n }\n\n @action\n onClickOutside(event: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n\n // If we've already focused on something inside the panel, everything's fine.\n if (\n this.hasSetInitialFocus &&\n this.panel.contains(document.activeElement)\n ) {\n return;\n }\n\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget;\n\n if (this.args.initialFocus != null) {\n focusTarget = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems = tabbable(this.panel);\n\n if (tabbableItems.length) {\n focusTarget = tabbableItems[0];\n }\n }\n\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility = window.getComputedStyle(this.panel).opacity;\n\n if (panelVisibility === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility = window.getComputedStyle(focusTarget).visibility;\n\n if (visibility === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n\n if (focusTarget != null) {\n this.hasSetInitialFocus = true;\n focusTarget.focus();\n }\n });\n }\n\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(() => {\n this.isOpening = true;\n });\n\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch, delayMatch } = Array.prototype.slice\n .call(this.panel ? this.panel.children : [])\n .reduce(\n (\n {\n durationMatch,\n delayMatch\n }: { durationMatch: number; delayMatch: number },\n element: HTMLElement\n ) => {\n const transitionTimings = getTransitionTimings(element);\n\n return {\n durationMatch: Math.max(\n durationMatch,\n transitionTimings.durationMatch\n ),\n delayMatch: Math.max(delayMatch, transitionTimings.delayMatch)\n };\n },\n { durationMatch: 0, delayMatch: 0 }\n );\n\n this.respositionTimeout = later(\n this,\n () => {\n this.isOpenStable = true;\n\n const fn = (): void => {\n this.positionPopoverFixed();\n this.updateFocus();\n };\n\n scheduleOnce('afterRender', this, fn);\n },\n durationMatch + delayMatch\n );\n }\n\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n\n checkIfPopoverIsInsideAnotherPopover(ele: HTMLElement) {\n const otherPopover = ele.closest<HTMLDivElement>('div.euiPopover__panel');\n\n this.popoverHost = otherPopover;\n }\n\n @action\n didInsertPopover(ele: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n\n const fn = (): void => this.onOpenPopover();\n\n scheduleOnce('afterRender', this, fn);\n }\n\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele);\n }\n\n this.updateFocus();\n }\n\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(\n this,\n () => {\n this.isClosing = false;\n },\n 250\n );\n }\n\n this.prevIsOpen = this.args.isOpen;\n }\n\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n this.popoverHost = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n\n @action\n onMutation(records: MutationRecord[]): void {\n const waitDuration = getWaitDuration(records);\n\n this.positionPopoverFixed();\n\n performOnFrame(waitDuration, this.positionPopoverFixed);\n }\n\n @action\n positionPopover(allowEnforcePosition: boolean): void {\n if (this.button == null || this.panel == null) return;\n\n let position = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition = undefined;\n\n if (\n allowEnforcePosition &&\n this.isOpenStable &&\n this.openPosition != null\n ) {\n position = this.openPosition;\n forcePosition = true;\n }\n\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos(ele: HTMLElement): [number, number] {\n let currTop = 0;\n let currLeft = 0;\n\n if (ele.offsetParent) {\n do {\n currTop += ele.offsetTop;\n currLeft += ele.offsetLeft;\n } while ((ele = ele.offsetParent as HTMLElement));\n } else {\n currTop = ele.offsetTop;\n currLeft = ele.offsetLeft;\n }\n\n return [currTop, currLeft];\n }\n\n const {\n top,\n left,\n position: foundPosition,\n arrow,\n anchorBoundingBox\n } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position,\n forcePosition,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset:\n !this.args.attachToAnchor && this.hasArrow\n ? 16 + (this.args.offset || 0)\n : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp } = this.args;\n const zIndex =\n zIndexProp == null\n ? getElementZIndex(this.button, this.panel) + 2000\n : zIndexProp;\n\n const popoverStyles = {\n top,\n left:\n this.args.attachToAnchor && anchorBoundingBox\n ? anchorBoundingBox.left\n : left,\n zIndex\n };\n\n const willRenderArrow = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles = willRenderArrow ? arrow : undefined;\n const arrowPosition = foundPosition;\n\n this.popoverStyles = popoverStyles;\n this.arrowStyles = arrowStyles;\n this.arrowPosition = arrowPosition;\n this.openPosition = foundPosition;\n }\n\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles } = this;\n\n return arrowStyles\n ? htmlSafe(`top: ${arrowStyles?.top}px; left: ${arrowStyles?.left}px;`)\n : undefined;\n }\n\n get _popoverStyles(): { [i: string]: string } {\n const { panelStyle } = this.args;\n const { popoverStyles } = this;\n\n return {\n ...panelStyle,\n top: `${popoverStyles.top}px`,\n left: `${popoverStyles.left}px`,\n zIndex: `${popoverStyles.zIndex}`\n };\n }\n\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n\n return '-1';\n }\n\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n\n @action\n registerButton(btn: HTMLDivElement): void {\n this.button = btn;\n this.args.buttonRef?.(btn);\n }\n\n @action\n registerPanel(panel: HTMLElement): void {\n this.panel = panel;\n this.args.panelRef?.(panel);\n\n if (panel === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n\n <template>\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n </template>\n}\n"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus","initialFocusType","document","querySelector","EuiPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner","args","assert","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event","ekEvent","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","activeElement","focusTarget","tabbableItems","tabbable","panelVisibility","getComputedStyle","opacity","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","delayMatch","Array","slice","call","reduce","element","transitionTimings","getTransitionTimings","Math","max","later","isOpenStable","fn","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele","otherPopover","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records","waitDuration","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition","forcePosition","openPosition","foundPosition","arrow","anchorBoundingBox","findPopoverPosition","container","host","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp","getElementZIndex","popoverStyles","willRenderArrow","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","tabindex","positionPopoverFluid","registerButton","btn","buttonRef","registerPanel","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
|
|
@@ -16,11 +16,11 @@ class EuiPortal extends Component {
|
|
|
16
16
|
static {
|
|
17
17
|
g(this.prototype, "portalNode", [tracked]);
|
|
18
18
|
}
|
|
19
|
-
#portalNode = (i(this, "portalNode"),
|
|
20
|
-
constructor(
|
|
21
|
-
super(
|
|
19
|
+
#portalNode = (i(this, "portalNode"), undefined);
|
|
20
|
+
constructor(owner, args) {
|
|
21
|
+
super(owner, args);
|
|
22
22
|
const {
|
|
23
|
-
insert
|
|
23
|
+
insert
|
|
24
24
|
} = this.args;
|
|
25
25
|
this.portalNode = document.createElement('div');
|
|
26
26
|
this.portalNode.id = `${guidFor({})}-portal`;
|
|
@@ -29,10 +29,10 @@ class EuiPortal extends Component {
|
|
|
29
29
|
} else {
|
|
30
30
|
// inserting before or after an element
|
|
31
31
|
const {
|
|
32
|
-
sibling
|
|
33
|
-
position
|
|
34
|
-
} =
|
|
35
|
-
|
|
32
|
+
sibling,
|
|
33
|
+
position
|
|
34
|
+
} = insert;
|
|
35
|
+
sibling.insertAdjacentElement(insertPositions[position], this.portalNode);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
willDestroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-portal.js","sources":["../../src/components/eui-portal.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"eui-portal.js","sources":["../../src/components/eui-portal.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { isBlank } from '@ember/utils';\nimport type Owner from '@ember/owner';\n\nimport { keysOf } from './common.ts';\n\ninterface InsertPositionsMap {\n [key: string]: string;\n}\n\nexport const insertPositions: InsertPositionsMap = {\n after: 'afterend',\n before: 'beforebegin'\n};\n\nexport const INSERT_POSITIONS: EuiPortalInsertPosition[] =\n keysOf(insertPositions);\n\ntype EuiPortalInsertPosition = keyof typeof insertPositions;\n\nexport interface EuiPortalArgs {\n insert?: { sibling: HTMLElement; position: EuiPortalInsertPosition };\n portalRef?: (ref: HTMLDivElement | null) => void;\n}\n\nexport interface EuiPortalSignature {\n Args: EuiPortalArgs;\n Element: HTMLDivElement;\n Blocks: { default: [] };\n}\n\nexport default class EuiPortal extends Component<EuiPortalSignature> {\n @tracked portalNode!: HTMLElement;\n\n constructor(owner: Owner, args: EuiPortalArgs) {\n super(owner, args);\n\n const { insert } = this.args;\n\n this.portalNode = document.createElement('div');\n this.portalNode.id = `${guidFor({})}-portal`;\n\n if (isBlank(this.args.insert)) {\n document.body.appendChild(this.portalNode);\n } else {\n // inserting before or after an element\n const { sibling, position } = insert!;\n\n sibling.insertAdjacentElement(\n insertPositions[position] as InsertPosition,\n this.portalNode\n );\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.portalNode.parentNode) {\n this.portalNode.parentNode.removeChild(this.portalNode);\n }\n }\n\n <template>\n {{#if this.portalNode}}\n {{#in-element this.portalNode}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </template>\n}\n"],"names":["insertPositions","after","before","INSERT_POSITIONS","keysOf","EuiPortal","Component","g","prototype","tracked","i","void 0","constructor","owner","args","insert","portalNode","document","createElement","id","guidFor","isBlank","body","appendChild","sibling","position","insertAdjacentElement","willDestroy","parentNode","removeChild","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;;;AAYO,MAAMA,eAAsC,GAAA;AACjDC,EAAAA,KAAO,EAAA,UAAA;AACPC,EAAAA,MAAQ,EAAA;AACV;MAEaC,gBACX,GAAAC,MAAA,CAAOJ,eAAiB;AAeX,MAAMK,kBAAkBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAC9CC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,SAAA;AAEDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAmB,EAAE;AAC7C,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;IAEb,MAAM;AAAEC,MAAAA;KAAQ,GAAG,IAAI,CAACD,IAAI;IAE5B,IAAI,CAACE,UAAU,GAAGC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA;IACzC,IAAI,CAACF,UAAU,CAACG,EAAE,GAAG,CAAGC,EAAAA,OAAQ,CAAA,EAAI,CAAA,CAAQ,OAAA,CAAA;IAE5C,IAAIC,QAAQ,IAAI,CAACP,IAAI,CAACC,MAAM,CAAG,EAAA;MAC7BE,QAAA,CAASK,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,UAAU,CAAA;AAC3C,KAAO,MAAA;AACL;MACA,MAAM;QAAEQ,OAAO;AAAEC,QAAAA;OAAU,GAAGV,MAAA;MAE9BS,OAAQ,CAAAE,qBAAqB,CAC3B1B,eAAe,CAACyB,SAAS,EACzB,IAAI,CAACT,UAAU,CAAA;AAEnB;AACF;AAEAW,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AAEN,IAAA,IAAI,IAAI,CAACX,UAAU,CAACY,UAAU,EAAE;MAC9B,IAAI,CAACZ,UAAU,CAACY,UAAU,CAACC,WAAW,CAAC,IAAI,CAACb,UAAU,CAAA;AACxD;AACF;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAMA,iIAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { and, eq, or } from 'ember-truth-helpers';
|
|
2
2
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
3
3
|
import classNames from '../helpers/class-names.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-progress.js","sources":["../../src/components/eui-progress.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"eui-progress.js","sources":["../../src/components/eui-progress.gts"],"sourcesContent":["import { and,eq, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type {\n colorToClassMap,\n positionsToClassMap,\n sizeToClassMapping} from '../utils/css-mappings/eui-progress.ts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiProgressSignature {\n Element: HTMLDivElement | HTMLProgressElement;\n Args: {\n max?: number;\n value?: number;\n size?: keyof typeof sizeToClassMapping;\n position?: keyof typeof positionsToClassMap;\n color?: keyof typeof colorToClassMap;\n labelClasses?: string;\n valueText?: string | boolean;\n label?: string;\n };\n Blocks: {\n label?: [];\n valueText?: [];\n };\n}\n\nconst EuiProgress: TemplateOnlyComponent<EuiProgressSignature> = <template>\n {{#if @max}}\n {{#if (or (has-block \"label\") (has-block \"valueText\") @valueText)}}\n <div\n class={{classNames\n (if (eq @size \"l\") \"euiProgress__data--l\")\n componentName=\"EuiProgressData\"\n color=(argOrDefault @color \"success\")\n }}\n >\n {{#if (has-block \"label\")}}\n <span class=\"euiProgress__label\">\n {{yield to=\"label\"}}\n </span>\n {{/if}}\n {{#if (or (has-block \"valueText\") @valueText)}}\n <span class=\"euiProgress__valueText {{@labelClasses}}\">\n {{#if (eq @valueText true)}}\n {{@value}}\n {{else}}\n {{yield to=\"valueText\"}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n <progress\n class={{classNames\n \"euiProgress--native\"\n componentName=\"EuiProgress\"\n size=(argOrDefault @size \"m\")\n position=(argOrDefault @position \"static\")\n color=(argOrDefault @color \"success\")\n }}\n max={{@max}}\n value={{@value}}\n aria-hidden={{and\n (has-block \"label\")\n (or @valueText (has-block \"valueText\"))\n }}\n ...attributes\n ></progress>\n {{else}}\n <div\n class={{classNames\n \"euiProgress--indeterminate\"\n componentName=\"EuiProgress\"\n size=(argOrDefault @size \"m\")\n position=(argOrDefault @position \"static\")\n color=(argOrDefault @color \"success\")\n }}\n ...attributes\n ></div>\n {{/if}}\n</template>;\n\nexport default EuiProgress;\n"],"names":["EuiProgress","setComponentTemplate","precompileTemplate","strictMode","scope","or","classNames","eq","argOrDefault","and","templateOnly"],"mappings":";;;;;;;AA6BA,MAAMA,WAA2D,GAAAC,oBAAA,CAAAC,kBAAA,CAsDjE,00CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,YAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fn, get, concat } from '@ember/helper';
|
|
2
2
|
import { on } from '@ember/modifier';
|
|
3
|
-
import {
|
|
3
|
+
import { or, eq } from 'ember-truth-helpers';
|
|
4
4
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
5
5
|
import EuiFormFieldset from './eui-form-fieldset.js';
|
|
6
6
|
import EuiRadio from './eui-radio.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-radio-group.js","sources":["../../src/components/eui-radio-group.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"eui-radio-group.js","sources":["../../src/components/eui-radio-group.gts"],"sourcesContent":["import { concat, fn,get } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport { eq, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiFormFieldset from './eui-form-fieldset.gts';\nimport EuiRadio from './eui-radio.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiRadioGroupSignature {\n Element: HTMLDivElement;\n Args: {\n idSelected: string;\n options: Array<{\n id: string;\n label: string;\n value?: string;\n disabled?: boolean;\n className?: string;\n }>;\n name?: string;\n legend?: string;\n compressed?: boolean;\n disabled?: boolean;\n onChange: (id: string, value?: string) => void;\n valueKey?: string;\n labelKey?: string;\n formId?: string;\n };\n}\n\nconst EuiRadioGroup: TemplateOnlyComponent<EuiRadioGroupSignature> = <template>\n {{#let\n (argOrDefault @valueKey \"id\") (argOrDefault @labelKey \"label\")\n as |valueKey labelKey|\n }}\n {{#if @legend}}\n <EuiFormFieldset @legend={{@legend}} @compressed={{@compressed}}>\n {{#each @options key=\"id\" as |option|}}\n <EuiRadio\n class={{concat \"euiRadioGroup__item\" option.className}}\n form={{@formId}}\n @checked={{eq @idSelected (get option valueKey)}}\n @disabled={{or @disabled option.disabled}}\n @compressed={{@compressed}}\n {{!@glint-expect-error}}\n @label={{get option labelKey}}\n {{!@glint-expect-error}}\n {{on \"change\" (fn @onChange (get option valueKey) option.value)}}\n />\n {{/each}}\n </EuiFormFieldset>\n {{else}}\n <div ...attributes>\n {{#each @options key=\"id\" as |option|}}\n <EuiRadio\n class={{concat \"euiRadioGroup__item\" option.className}}\n form={{@formId}}\n @name={{@name}}\n @checked={{eq @idSelected (get option valueKey)}}\n @disabled={{or @disabled option.disabled}}\n @compressed={{@compressed}}\n {{!@glint-expect-error}}\n @label={{get option labelKey}}\n {{!@glint-expect-error}}\n {{on \"change\" (fn @onChange (get option valueKey) option.value)}}\n />\n {{/each}}\n </div>\n {{/if}}\n {{/let}}\n</template>;\n\nexport default EuiRadioGroup;\n"],"names":["EuiRadioGroup","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","EuiFormFieldset","EuiRadio","concat","eq","get","or","on","fn","templateOnly"],"mappings":";;;;;;;;;;AAiCA,MAAMA,aAA+D,GAAAC,oBAAA,CAAAC,kBAAA,CAwCrE,gsCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,eAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,GAAA;IAAAC,EAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
2
2
|
import optional from 'ember-composable-helpers/helpers/optional';
|
|
3
|
-
import {
|
|
3
|
+
import { or, not, and } from 'ember-truth-helpers';
|
|
4
4
|
import randomId from '../-private/random-id.js';
|
|
5
5
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
6
6
|
import classNames from '../helpers/class-names.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-radio.js","sources":["../../src/components/eui-radio.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"eui-radio.js","sources":["../../src/components/eui-radio.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiRadioSignature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n name?: string;\n label?: string;\n labelProps?: {\n className?: string;\n };\n compressed?: boolean;\n containerClass?: string;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakeLabelBlock?: boolean;\n id?: string;\n };\n Blocks: {\n label: [];\n };\n}\n\nconst EuiRadio: TemplateOnlyComponent<EuiRadioSignature> = <template>\n {{#let\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n (argOrDefault @id (randomId))\n as |hasLabelBlock id|\n }}\n {{#let\n (classNames\n @containerClass\n (if (not (or hasLabelBlock @label)) \"euiRadio--noLabel\")\n (if @compressed \"euiRadio--compressed\")\n \"euiRadio\"\n )\n as |classes|\n }}\n <div class={{classes}}>\n <input\n class=\"euiRadio__input\"\n type=\"radio\"\n id={{id}}\n checked={{@checked}}\n disabled={{@disabled}}\n name={{@name}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n <div class=\"euiRadio__circle\"></div>\n {{#if (or hasLabelBlock @label)}}\n <label\n class={{classNames \"euiRadio__label\" @labelProps.className}}\n for={{id}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </label>\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiRadio;\n"],"names":["EuiRadio","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;AAgCA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA0C3D,25BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-range-highlight.js","sources":["../../src/components/eui-range-highlight.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"eui-range-highlight.js","sources":["../../src/components/eui-range-highlight.gts"],"sourcesContent":["import { hash } from '@ember/helper';\n\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiRangeHighlightSignature {\n Element: HTMLDivElement;\n Args: {\n showTicks?: boolean;\n compressed?: boolean;\n hasFocus?: boolean;\n lowerValue?: number;\n min?: number;\n max?: number;\n upperValue?: number;\n };\n}\n\nconst EuiRangeHighlight: TemplateOnlyComponent<EuiRangeHighlightSignature> =\n <template>\n <div\n class={{classNames\n \"euiRangeHighlight\"\n (if @showTicks \"euiRangeHighlight--hasTicks\")\n (if @compressed \"euiRangeHighlight--compressed\")\n }}\n ...attributes\n >\n <div\n class={{classNames\n \"euiRangeHighlight__progress\"\n (if @hasFocus \"euiRangeHighlight__progress--hasFocus\")\n }}\n {{simpleStyle\n (inlineStyles\n componentName=\"EuiRangeHighlight\"\n componentArgs=(hash\n lowerValue=@lowerValue min=@min max=@max upperValue=@upperValue\n )\n )\n }}\n ></div>\n </div>\n </template>;\n\nexport default EuiRangeHighlight;\n"],"names":["EuiRangeHighlight","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","simpleStyle","inlineStyles","hash","templateOnly"],"mappings":";;;;;;;;AAqBA,MAAMA,iBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAwBA,kdAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,YAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hash } from '@ember/helper';
|
|
2
|
-
import {
|
|
2
|
+
import { eq, and } from 'ember-truth-helpers';
|
|
3
3
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
4
4
|
import castTo from '../helpers/cast-to.js';
|
|
5
5
|
import inlineStyles from '../helpers/inline-styles.js';
|