@ember-eui/core 12.0.1 → 12.0.2
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/declarations/components/common.d.ts +1 -1
- package/declarations/components/common.d.ts.map +1 -1
- package/declarations/components/eui-accordion.d.ts.map +1 -1
- package/declarations/components/eui-badge.d.ts.map +1 -1
- package/declarations/components/eui-button-group-button.d.ts.map +1 -1
- package/declarations/components/eui-combo-box.d.ts +1 -1
- package/declarations/components/eui-combo-box.d.ts.map +1 -1
- package/declarations/components/eui-described-form-group.d.ts +2 -0
- package/declarations/components/eui-described-form-group.d.ts.map +1 -1
- package/declarations/components/eui-dual-range.d.ts.map +1 -1
- package/declarations/components/eui-header-section-item-button.d.ts.map +1 -1
- package/declarations/components/eui-list-group-item.d.ts.map +1 -1
- package/declarations/components/eui-loading-content.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
- package/declarations/components/eui-markdown-format.d.ts.map +1 -1
- package/declarations/components/eui-notification-event-messages.d.ts.map +1 -1
- package/declarations/components/eui-page-header-content.d.ts.map +1 -1
- package/declarations/components/eui-popover.d.ts.map +1 -1
- package/declarations/components/eui-range.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/index.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/index.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/time-options.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/time-options.d.ts.map +1 -1
- package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
- package/declarations/utils/common.d.ts +42 -0
- package/declarations/utils/common.d.ts.map +1 -0
- package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js +63 -0
- package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js.map +1 -0
- package/dist/components/common.js +1 -19
- package/dist/components/common.js.map +1 -1
- package/dist/components/eui-accordion.js +9 -9
- package/dist/components/eui-accordion.js.map +1 -1
- package/dist/components/eui-auto-sizer.js +2 -2
- package/dist/components/eui-auto-sizer.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-bottom-bar.js +1 -1
- package/dist/components/eui-bottom-bar.js.map +1 -1
- package/dist/components/eui-breadcrumbs.js +2 -2
- package/dist/components/eui-breadcrumbs.js.map +1 -1
- package/dist/components/eui-button-group-button.js +7 -3
- package/dist/components/eui-button-group-button.js.map +1 -1
- package/dist/components/eui-card-select.js +1 -1
- package/dist/components/eui-card-select.js.map +1 -1
- package/dist/components/eui-card.js +2 -2
- package/dist/components/eui-card.js.map +1 -1
- package/dist/components/eui-checkbox.js +1 -1
- package/dist/components/eui-checkbox.js.map +1 -1
- package/dist/components/eui-code-block.js +7 -7
- package/dist/components/eui-code-block.js.map +1 -1
- package/dist/components/eui-code.js +2 -2
- package/dist/components/eui-code.js.map +1 -1
- package/dist/components/eui-collapsible-nav.js +1 -1
- package/dist/components/eui-collapsible-nav.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js +1 -1
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/options.js +1 -1
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box/trigger.js +1 -1
- 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 +9 -11
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-context-menu-item.js +1 -1
- package/dist/components/eui-context-menu-item.js.map +1 -1
- package/dist/components/eui-copy.js +1 -1
- package/dist/components/eui-copy.js.map +1 -1
- package/dist/components/eui-described-form-group.js +1 -1
- package/dist/components/eui-described-form-group.js.map +1 -1
- package/dist/components/eui-dual-range.js +17 -17
- package/dist/components/eui-dual-range.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 +3 -3
- 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 +6 -6
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-flyout.js +2 -2
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-global-toast-list.js +4 -4
- package/dist/components/eui-global-toast-list.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-section-item-button.js +3 -3
- package/dist/components/eui-header-section-item-button.js.map +1 -1
- package/dist/components/eui-i18n.js +1 -1
- package/dist/components/eui-i18n.js.map +1 -1
- package/dist/components/eui-icon.js +2 -2
- package/dist/components/eui-icon.js.map +1 -1
- package/dist/components/eui-image.js +2 -2
- package/dist/components/eui-image.js.map +1 -1
- package/dist/components/eui-inner-text.js +2 -2
- package/dist/components/eui-inner-text.js.map +1 -1
- package/dist/components/eui-input-popover.js +9 -9
- package/dist/components/eui-input-popover.js.map +1 -1
- package/dist/components/eui-list-group-item.js +1 -4
- package/dist/components/eui-list-group-item.js.map +1 -1
- package/dist/components/eui-loading-content.js +17 -5
- package/dist/components/eui-loading-content.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js +2 -2
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor.js +16 -16
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format.js +1 -1
- package/dist/components/eui-markdown-format.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-event-messages.js +4 -2
- package/dist/components/eui-notification-event-messages.js.map +1 -1
- package/dist/components/eui-notification-event-meta.js +2 -2
- package/dist/components/eui-notification-event-meta.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 +1 -1
- package/dist/components/eui-overlay-mask.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-template.js +3 -3
- package/dist/components/eui-page-template.js.map +1 -1
- package/dist/components/eui-popover.js +22 -22
- package/dist/components/eui-popover.js.map +1 -1
- package/dist/components/eui-portal.js +1 -1
- package/dist/components/eui-portal.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-ticks.js +1 -1
- package/dist/components/eui-range-ticks.js.map +1 -1
- package/dist/components/eui-range-track.js +1 -1
- package/dist/components/eui-range-track.js.map +1 -1
- package/dist/components/eui-range.js +15 -15
- 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-show-for.js +1 -1
- package/dist/components/eui-show-for.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 +1 -1
- package/dist/components/eui-side-nav.js.map +1 -1
- package/dist/components/eui-step-horizontal.js +1 -1
- package/dist/components/eui-step-horizontal.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +3 -3
- 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 +8 -8
- 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 +2 -2
- 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 +2 -2
- 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/relative-tab.js +4 -4
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +4 -4
- 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.js +2 -2
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/date-utils.js +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 +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 +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 +1 -1
- package/dist/components/eui-super-date-picker/utils/time-options.js.map +1 -1
- package/dist/components/eui-super-date-picker.js +13 -13
- package/dist/components/eui-super-date-picker.js.map +1 -1
- package/dist/components/eui-tabbed-content.js +4 -4
- package/dist/components/eui-tabbed-content.js.map +1 -1
- package/dist/components/eui-text-area.js +1 -1
- package/dist/components/eui-text-area.js.map +1 -1
- package/dist/components/eui-tool-tip.js +9 -9
- package/dist/components/eui-tool-tip.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/use-state.js +1 -1
- package/dist/helpers/use-state.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-toaster.js +1 -1
- package/dist/services/eui-toaster.js.map +1 -1
- package/package.json +9 -123
- package/dist/_app_/utils/accesibility/accessible-click-keys.js +0 -1
- package/dist/_app_/utils/accesibility/cascading-menu-keys.js +0 -1
- package/dist/_app_/utils/accesibility/combo-box-keys.js +0 -1
- package/dist/_app_/utils/accesibility/index.js +0 -1
- package/dist/_app_/utils/breakpoint.js +0 -1
- package/dist/_app_/utils/browser/browser.js +0 -1
- package/dist/_app_/utils/browser/index.js +0 -1
- package/dist/_app_/utils/code/utils.js +0 -1
- package/dist/_app_/utils/color/color_palette.js +0 -1
- package/dist/_app_/utils/color/eui_palettes.js +0 -1
- package/dist/_app_/utils/color/index.js +0 -1
- package/dist/_app_/utils/copy-to-clipboard.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-accordion.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-avatar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-badge-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-beta-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-bottom-bar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-empty.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-group-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-call-out.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-card-select.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-card.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-code-block.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-collapsible-nav-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-comment-event.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-comment-timeline-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-context-menu-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-described-form-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-description-list.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-empty-prompt.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-file-picker.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-grid.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flyout.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-form-control-layout-clear-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-form-row.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-global-toast-list.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-links.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-section-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-section.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-health.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-horizontal-rule.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-image.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-link.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-list-group-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-list-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-loading-spinner.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-modal.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-notification-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-body.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-content-body.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-content.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-header.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-side-bar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-panel.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover-footer.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover-title.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-progress-data.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-progress.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-highlight.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-input.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-levels.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-selectable-list-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-spacer.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-stat.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-step-number.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-tabs.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-align.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-area.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-color.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-title.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-toast.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-tool-tip.js +0 -1
- package/dist/_app_/utils/css-mappings/index.js +0 -1
- package/dist/_app_/utils/detect-element-resize.js +0 -1
- package/dist/_app_/utils/index.js +0 -1
- package/dist/_app_/utils/keys.js +0 -1
- package/dist/_app_/utils/markdown/markdown-actions.js +0 -1
- package/dist/_app_/utils/markdown/markdown-modes.js +0 -1
- package/dist/_app_/utils/markdown/markdown-types.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-add-components/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-add-components/processor.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-checkbox/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-checkbox/parser.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/parser.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/plugin.js +0 -1
- package/dist/_app_/utils/markdown/plugins/to-dom.js +0 -1
- package/dist/_app_/utils/markdown/remark/remark-prismjs.js +0 -1
- package/dist/_app_/utils/maybe-unwrap-proxy.js +0 -1
- package/dist/_app_/utils/number/index.js +0 -1
- package/dist/_app_/utils/number/number.js +0 -1
- package/dist/_app_/utils/popover/index.js +0 -1
- package/dist/_app_/utils/popover/types.js +0 -1
- package/dist/_app_/utils/predicate/common_predicates.js +0 -1
- package/dist/_app_/utils/predicate/index.js +0 -1
- package/dist/_app_/utils/predicate/lodash_predicates.js +0 -1
- package/dist/_app_/utils/range/index.js +0 -1
- package/dist/_app_/utils/timer.js +0 -1
- package/dist/_app_/utils/transition.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-page-template.js","sources":["../../src/components/eui-page-template.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport style from 'ember-style-modifier/modifiers/style';\n// import { tabbable } from 'tabbable';\n// import {\n// anchorPositionMapping,\n// displayMapping\n// } from '../../utils/css-mappings/eui-popover.ts';\n// import { paddingSizeMapping } from '../../utils/css-mappings/eui-panel.ts';\n// import { scheduleOnce, later, cancel } from '@ember/runloop';\n// import { assert } from '@ember/debug';\n// import { htmlSafe } from '@ember/template';\nimport { and, eq,or } from 'ember-truth-helpers';\n\n// import { action } from '@ember/object';\n// import { tracked } from '@glimmer/tracking';\n// import {\n// getTransitionTimings,\n// getWaitDuration,\n// performOnFrame\n// } from '../../utils/transition';\n// import { findPopoverPosition, getElementZIndex } from '../../utils/popover';\n// import { EuiPopoverPosition } from '../../utils/popover/types';\n// import { cascadingMenuKeys } from '../../utils/accesibility';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBottomBar from './eui-bottom-bar.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiPage from './eui-page.gts';\nimport EuiPageBody from './eui-page-body.gts';\nimport EuiPageContent from './eui-page-content.gts';\nimport EuiPageContentBody from './eui-page-content-body.gts';\nimport EuiPageHeader from './eui-page-header.gts';\nimport EuiPageSideBar from './eui-page-side-bar.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiPageBodySignature } from './eui-page-body';\nimport type { EuiPageContentSignature } from './eui-page-content';\nimport type { EuiPageContentBodySignature } from './eui-page-content-body';\nimport type { EuiPageHeaderSignature } from './eui-page-header';\nimport type { EuiPageSideBarSignature } from './eui-page-side-bar';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\nconst BREAKPOINTS: EuiBreakpointSize[] = ['m', 'l', 'xl'];\n\ninterface NormalProps {\n className?: string;\n}\n\nexport type EuiPageTemplateProps = {\n template?: (typeof TEMPLATES)[number];\n\n pageBodyProps: NormalProps & EuiPageBodySignature['Args'];\n pageContentProps: NormalProps & EuiPageContentSignature['Args'];\n pageContentBodyProps: NormalProps & EuiPageContentBodySignature['Args'];\n\n pageHeader: NormalProps & EuiPageHeaderSignature['Args'];\n\n pageSideBarProps: NormalProps & EuiPageSideBarSignature['Args'];\n\n /**\n * Adds a bottom bar to the page template\n */\n bottomBar?: any;\n\n /**\n * Adds a bottom bar to the page template\n */\n hasBottomBarBlock?: boolean;\n\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n restrictWidth?: boolean | number | string;\n\n grow?: boolean;\n paddingSize?: EuiPageSideBarSignature['Args']['paddingSize'];\n hasPageSideBarBlock?: boolean;\n hasPageHeaderPageTitleBlock?: boolean;\n hasPageHeaderDefaultBlock?: boolean;\n hasPageHeaderRightSideItemsBlock?: boolean;\n hasPageHeaderDescriptionBlock?: boolean;\n hasPageHeader?: boolean;\n hasPageContent?: boolean;\n hasPageContentBody?: boolean;\n};\n\nexport interface EuiPageTemplateSignature {\n Element: HTMLElement;\n Args: EuiPageTemplateProps;\n Blocks: {\n default: [];\n pageSideBar: [];\n pageHeaderPageTitle: [];\n pageHeaderDefault: [];\n pageHeaderDescription: [];\n pageHeaderRightSideItems: EuiPageHeaderSignature['Blocks']['rightSideItems'];\n bottomBar: [];\n };\n}\n\nexport default class EuiPageTemplate extends Component<EuiPageTemplateSignature> {\n // Defaults\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n @tracked isWithinBreakpoints = false;\n\n setIsWithinBreakpoints = (value: boolean) => {\n this.isWithinBreakpoints = value;\n };\n\n get minHeight() {\n const minHeight = this.args.minHeight ?? 460;\n\n if (typeof this.args.minHeight === 'number') {\n return `${minHeight}px`;\n }\n\n return minHeight;\n }\n\n get restrictWidth() {\n const width = this.args.restrictWidth ?? true;\n\n if (typeof this.args.restrictWidth === 'number') {\n return `${width}px`;\n }\n\n return width;\n }\n\n get classes() {\n return `euiPageTemplate ${this.fullHeightClass}`;\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-fullHeight ' : '';\n }\n\n get yScrollClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-yScroll ' : '';\n }\n\n get canFullHeight() {\n return (\n this.isWithinBreakpoints &&\n (this.template === 'default' || this.template === 'empty')\n );\n }\n\n get pageBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageBodyProps?.className}`;\n }\n\n get pageContentPropsClass() {\n return `${this.yScrollClass} ${this.args.pageContentProps?.className}`;\n }\n\n get pageContentBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageContentBodyProps?.className}`;\n }\n\n <template>\n {{#let\n (argOrDefault @grow true)\n (argOrDefault @paddingSize \"l\")\n (and (argOrDefault @hasBottomBarBlock true) (has-block \"bottomBar\"))\n (and (argOrDefault @hasPageSideBarBlock true) (has-block \"pageSideBar\"))\n (and\n (argOrDefault @hasPageHeaderPageTitleBlock true)\n (has-block \"pageHeaderPageTitle\")\n )\n (and\n (argOrDefault @hasPageHeaderDefaultBlock true)\n (has-block \"pageHeaderDefault\")\n )\n (and\n (argOrDefault @hasPageHeaderRightSideItemsBlock true)\n (has-block \"pageHeaderRightSideItems\")\n )\n (and\n (argOrDefault @hasPageHeaderDescriptionBlock true)\n (has-block \"pageHeaderDescription\")\n )\n (modifier\n useIsWithinBreakpoints\n sizes=BREAKPOINTS\n isActive=true\n setIsWithinBreakpointsValue=this.setIsWithinBreakpoints\n )\n as |grow paddingSize hasBottomBarBlock hasPageSideBarBlock hasPageHeaderPageTitleBlock hasPageHeaderDefaultBlock hasPageHeaderRightSideItemsBlock hasPageHeaderDescriptionBlock isWithinBreakpointsModifier|\n }}\n {{#let\n (or\n @pageHeader\n hasPageHeaderPageTitleBlock\n hasPageHeaderDefaultBlock\n hasPageHeaderRightSideItemsBlock\n hasPageHeaderDescriptionBlock\n )\n as |hasPageHeader|\n }}\n {{#if (eq this.template \"centeredBody\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @restrictWidth={{false}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize=\"none\"\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageBody>\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasBorder={{@pageContentProps.hasBorder}}\n @hasShadow={{@pageContentProps.hasShadow}}\n @color={{@pageContentProps.color}}\n @borderRadius={{@pageContentProps.borderRadius}}\n @grow={{@pageContentProps.grow}}\n @role={{@pageContentProps.role}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"centeredContent\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n {{!template-lint-disable}}\n <EuiPageContent\n role={{null}}\n @borderRadius=\"none\"\n @hasShadow={{false}}\n @paddingSize={{paddingSize}}\n style=\"display: flex\"\n >\n {{!template-lint-enable}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"empty\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar @sticky={{true}} @paddingSize={{paddingSize}}>\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n @restrictWidth={{false}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n @restrictWidth={{false}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize=\"none\"\n class={{this.pageBodyPropsClass}}\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n @tagName=\"div\"\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasShadow={{false}}\n @hasBorder={{false}}\n @color=\"transparent\"\n @borderRadius=\"none\"\n @paddingSize=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{if hasPageHeader false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"plain\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{/if}}\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","BREAKPOINTS","EuiPageTemplate","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","setIsWithinBreakpoints","value","isWithinBreakpoints","minHeight","args","restrictWidth","width","classes","fullHeightClass","fullHeight","canFullHeight","yScrollClass","template","pageBodyPropsClass","pageBodyProps","className","pageContentPropsClass","pageContentProps","pageContentBodyPropsClass","pageContentBodyProps","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","useIsWithinBreakpoints","or","eq","EuiPage","style","inlineStyles","EuiPageSideBar","EuiPageBody","EuiPageHeader","EuiPageContent","EuiPageContentBody","EuiFlexGroup","EuiFlexItem","classNames","EuiBottomBar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-page-template.js","sources":["../../src/components/eui-page-template.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport style from 'ember-style-modifier/modifiers/style';\n// import { tabbable } from 'tabbable';\n// import {\n// anchorPositionMapping,\n// displayMapping\n// } from '../../utils/css-mappings/eui-popover.ts';\n// import { paddingSizeMapping } from '../../utils/css-mappings/eui-panel.ts';\n// import { scheduleOnce, later, cancel } from '@ember/runloop';\n// import { assert } from '@ember/debug';\n// import { htmlSafe } from '@ember/template';\nimport { and, eq,or } from 'ember-truth-helpers';\n\n// import { action } from '@ember/object';\n// import { tracked } from '@glimmer/tracking';\n// import {\n// getTransitionTimings,\n// getWaitDuration,\n// performOnFrame\n// } from '../../utils/transition';\n// import { findPopoverPosition, getElementZIndex } from '../../utils/popover';\n// import { EuiPopoverPosition } from '../../utils/popover/types';\n// import { cascadingMenuKeys } from '../../utils/accesibility';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBottomBar from './eui-bottom-bar.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiPage from './eui-page.gts';\nimport EuiPageBody from './eui-page-body.gts';\nimport EuiPageContent from './eui-page-content.gts';\nimport EuiPageContentBody from './eui-page-content-body.gts';\nimport EuiPageHeader from './eui-page-header.gts';\nimport EuiPageSideBar from './eui-page-side-bar.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiPageBodySignature } from './eui-page-body';\nimport type { EuiPageContentSignature } from './eui-page-content';\nimport type { EuiPageContentBodySignature } from './eui-page-content-body';\nimport type { EuiPageHeaderSignature } from './eui-page-header';\nimport type { EuiPageSideBarSignature } from './eui-page-side-bar';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\nconst BREAKPOINTS: EuiBreakpointSize[] = ['m', 'l', 'xl'];\n\ninterface NormalProps {\n className?: string;\n}\n\nexport type EuiPageTemplateProps = {\n template?: (typeof TEMPLATES)[number];\n\n pageBodyProps: NormalProps & EuiPageBodySignature['Args'];\n pageContentProps: NormalProps & EuiPageContentSignature['Args'];\n pageContentBodyProps: NormalProps & EuiPageContentBodySignature['Args'];\n\n pageHeader: NormalProps & EuiPageHeaderSignature['Args'];\n\n pageSideBarProps: NormalProps & EuiPageSideBarSignature['Args'];\n\n /**\n * Adds a bottom bar to the page template\n */\n bottomBar?: any;\n\n /**\n * Adds a bottom bar to the page template\n */\n hasBottomBarBlock?: boolean;\n\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n restrictWidth?: boolean | number | string;\n\n grow?: boolean;\n paddingSize?: EuiPageSideBarSignature['Args']['paddingSize'];\n hasPageSideBarBlock?: boolean;\n hasPageHeaderPageTitleBlock?: boolean;\n hasPageHeaderDefaultBlock?: boolean;\n hasPageHeaderRightSideItemsBlock?: boolean;\n hasPageHeaderDescriptionBlock?: boolean;\n hasPageHeader?: boolean;\n hasPageContent?: boolean;\n hasPageContentBody?: boolean;\n};\n\nexport interface EuiPageTemplateSignature {\n Element: HTMLElement;\n Args: EuiPageTemplateProps;\n Blocks: {\n default: [];\n pageSideBar: [];\n pageHeaderPageTitle: [];\n pageHeaderDefault: [];\n pageHeaderDescription: [];\n pageHeaderRightSideItems: EuiPageHeaderSignature['Blocks']['rightSideItems'];\n bottomBar: [];\n };\n}\n\nexport default class EuiPageTemplate extends Component<EuiPageTemplateSignature> {\n // Defaults\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n @tracked isWithinBreakpoints = false;\n\n setIsWithinBreakpoints = (value: boolean) => {\n this.isWithinBreakpoints = value;\n };\n\n get minHeight() {\n const minHeight = this.args.minHeight ?? 460;\n\n if (typeof this.args.minHeight === 'number') {\n return `${minHeight}px`;\n }\n\n return minHeight;\n }\n\n get restrictWidth() {\n const width = this.args.restrictWidth ?? true;\n\n if (typeof this.args.restrictWidth === 'number') {\n return `${width}px`;\n }\n\n return width;\n }\n\n get classes() {\n return `euiPageTemplate ${this.fullHeightClass}`;\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-fullHeight ' : '';\n }\n\n get yScrollClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-yScroll ' : '';\n }\n\n get canFullHeight() {\n return (\n this.isWithinBreakpoints &&\n (this.template === 'default' || this.template === 'empty')\n );\n }\n\n get pageBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageBodyProps?.className}`;\n }\n\n get pageContentPropsClass() {\n return `${this.yScrollClass} ${this.args.pageContentProps?.className}`;\n }\n\n get pageContentBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageContentBodyProps?.className}`;\n }\n\n <template>\n {{#let\n (argOrDefault @grow true)\n (argOrDefault @paddingSize \"l\")\n (and (argOrDefault @hasBottomBarBlock true) (has-block \"bottomBar\"))\n (and (argOrDefault @hasPageSideBarBlock true) (has-block \"pageSideBar\"))\n (and\n (argOrDefault @hasPageHeaderPageTitleBlock true)\n (has-block \"pageHeaderPageTitle\")\n )\n (and\n (argOrDefault @hasPageHeaderDefaultBlock true)\n (has-block \"pageHeaderDefault\")\n )\n (and\n (argOrDefault @hasPageHeaderRightSideItemsBlock true)\n (has-block \"pageHeaderRightSideItems\")\n )\n (and\n (argOrDefault @hasPageHeaderDescriptionBlock true)\n (has-block \"pageHeaderDescription\")\n )\n (modifier\n useIsWithinBreakpoints\n sizes=BREAKPOINTS\n isActive=true\n setIsWithinBreakpointsValue=this.setIsWithinBreakpoints\n )\n as |grow paddingSize hasBottomBarBlock hasPageSideBarBlock hasPageHeaderPageTitleBlock hasPageHeaderDefaultBlock hasPageHeaderRightSideItemsBlock hasPageHeaderDescriptionBlock isWithinBreakpointsModifier|\n }}\n {{#let\n (or\n @pageHeader\n hasPageHeaderPageTitleBlock\n hasPageHeaderDefaultBlock\n hasPageHeaderRightSideItemsBlock\n hasPageHeaderDescriptionBlock\n )\n as |hasPageHeader|\n }}\n {{#if (eq this.template \"centeredBody\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @restrictWidth={{false}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize=\"none\"\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageBody>\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasBorder={{@pageContentProps.hasBorder}}\n @hasShadow={{@pageContentProps.hasShadow}}\n @color={{@pageContentProps.color}}\n @borderRadius={{@pageContentProps.borderRadius}}\n @grow={{@pageContentProps.grow}}\n @role={{@pageContentProps.role}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"centeredContent\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n {{!template-lint-disable}}\n <EuiPageContent\n role={{null}}\n @borderRadius=\"none\"\n @hasShadow={{false}}\n @paddingSize={{paddingSize}}\n style=\"display: flex\"\n >\n {{!template-lint-enable}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"empty\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar @sticky={{true}} @paddingSize={{paddingSize}}>\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n @restrictWidth={{false}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n @restrictWidth={{false}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize=\"none\"\n class={{this.pageBodyPropsClass}}\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n @tagName=\"div\"\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasShadow={{false}}\n @hasBorder={{false}}\n @color=\"transparent\"\n @borderRadius=\"none\"\n @paddingSize=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{if hasPageHeader false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"plain\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{/if}}\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","BREAKPOINTS","EuiPageTemplate","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","setIsWithinBreakpoints","value","isWithinBreakpoints","minHeight","args","restrictWidth","width","classes","fullHeightClass","fullHeight","canFullHeight","yScrollClass","template","pageBodyPropsClass","pageBodyProps","className","pageContentPropsClass","pageContentProps","pageContentBodyPropsClass","pageContentBodyProps","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","useIsWithinBreakpoints","or","eq","EuiPage","style","inlineStyles","EuiPageSideBar","EuiPageBody","EuiPageHeader","EuiPageContent","EuiPageContentBody","EuiFlexGroup","EuiFlexItem","classNames","EuiBottomBar"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
|
7
7
|
import didUpdate from '@ember/render-modifiers/modifiers/did-update';
|
|
8
8
|
import { cancel, later, scheduleOnce } from '@ember/runloop';
|
|
9
9
|
import { htmlSafe } from '@ember/template';
|
|
10
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
10
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
11
11
|
import { focusTrap } from 'ember-focus-trap';
|
|
12
12
|
import onKey from 'ember-keyboard/modifiers/on-key';
|
|
13
13
|
import { and, not, or } from 'ember-truth-helpers';
|
|
@@ -84,95 +84,95 @@ class EuiPopoverComponent extends Component {
|
|
|
84
84
|
static {
|
|
85
85
|
g(this.prototype, "isOpen", [argOrDefaultDecorator(false)]);
|
|
86
86
|
}
|
|
87
|
-
#isOpen = (i(this, "isOpen"),
|
|
87
|
+
#isOpen = (i(this, "isOpen"), void 0); // Defaults
|
|
88
88
|
static {
|
|
89
89
|
g(this.prototype, "ownFocus", [argOrDefaultDecorator(true)]);
|
|
90
90
|
}
|
|
91
|
-
#ownFocus = (i(this, "ownFocus"),
|
|
91
|
+
#ownFocus = (i(this, "ownFocus"), void 0);
|
|
92
92
|
static {
|
|
93
93
|
g(this.prototype, "anchorPosition", [argOrDefaultDecorator('downCenter')]);
|
|
94
94
|
}
|
|
95
|
-
#anchorPosition = (i(this, "anchorPosition"),
|
|
95
|
+
#anchorPosition = (i(this, "anchorPosition"), void 0);
|
|
96
96
|
static {
|
|
97
97
|
g(this.prototype, "panelPaddingSize", [argOrDefaultDecorator('m')]);
|
|
98
98
|
}
|
|
99
|
-
#panelPaddingSize = (i(this, "panelPaddingSize"),
|
|
99
|
+
#panelPaddingSize = (i(this, "panelPaddingSize"), void 0);
|
|
100
100
|
static {
|
|
101
101
|
g(this.prototype, "hasArrow", [argOrDefaultDecorator(true)]);
|
|
102
102
|
}
|
|
103
|
-
#hasArrow = (i(this, "hasArrow"),
|
|
103
|
+
#hasArrow = (i(this, "hasArrow"), void 0);
|
|
104
104
|
static {
|
|
105
105
|
g(this.prototype, "display", [argOrDefaultDecorator('inlineBlock')]);
|
|
106
106
|
}
|
|
107
|
-
#display = (i(this, "display"),
|
|
107
|
+
#display = (i(this, "display"), void 0);
|
|
108
108
|
static {
|
|
109
109
|
g(this.prototype, "shouldSelfFocus", [argOrDefaultDecorator(true)]);
|
|
110
110
|
}
|
|
111
|
-
#shouldSelfFocus = (i(this, "shouldSelfFocus"),
|
|
111
|
+
#shouldSelfFocus = (i(this, "shouldSelfFocus"), void 0);
|
|
112
112
|
static {
|
|
113
113
|
g(this.prototype, "isFocusTrapPaused", [argOrDefaultDecorator(false)]);
|
|
114
114
|
}
|
|
115
|
-
#isFocusTrapPaused = (i(this, "isFocusTrapPaused"),
|
|
115
|
+
#isFocusTrapPaused = (i(this, "isFocusTrapPaused"), void 0);
|
|
116
116
|
static {
|
|
117
117
|
g(this.prototype, "prevIsOpen", [tracked]);
|
|
118
118
|
}
|
|
119
|
-
#prevIsOpen = (i(this, "prevIsOpen"),
|
|
119
|
+
#prevIsOpen = (i(this, "prevIsOpen"), void 0); //State
|
|
120
120
|
static {
|
|
121
121
|
g(this.prototype, "suppressingPopover", [tracked]);
|
|
122
122
|
}
|
|
123
|
-
#suppressingPopover = (i(this, "suppressingPopover"),
|
|
123
|
+
#suppressingPopover = (i(this, "suppressingPopover"), void 0);
|
|
124
124
|
static {
|
|
125
125
|
g(this.prototype, "isClosing", [tracked], function () {
|
|
126
126
|
return false;
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
|
-
#isClosing = (i(this, "isClosing"),
|
|
129
|
+
#isClosing = (i(this, "isClosing"), void 0);
|
|
130
130
|
static {
|
|
131
131
|
g(this.prototype, "isOpening", [tracked], function () {
|
|
132
132
|
return false;
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
#isOpening = (i(this, "isOpening"),
|
|
135
|
+
#isOpening = (i(this, "isOpening"), void 0);
|
|
136
136
|
static {
|
|
137
137
|
g(this.prototype, "popoverStyles", [tracked], function () {
|
|
138
138
|
return {};
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
|
-
#popoverStyles = (i(this, "popoverStyles"),
|
|
141
|
+
#popoverStyles = (i(this, "popoverStyles"), void 0);
|
|
142
142
|
static {
|
|
143
143
|
g(this.prototype, "arrowStyles", [tracked], function () {
|
|
144
144
|
return {};
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
|
-
#arrowStyles = (i(this, "arrowStyles"),
|
|
147
|
+
#arrowStyles = (i(this, "arrowStyles"), void 0);
|
|
148
148
|
static {
|
|
149
149
|
g(this.prototype, "arrowPosition", [tracked], function () {
|
|
150
150
|
return null;
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
|
-
#arrowPosition = (i(this, "arrowPosition"),
|
|
153
|
+
#arrowPosition = (i(this, "arrowPosition"), void 0);
|
|
154
154
|
static {
|
|
155
155
|
g(this.prototype, "openPosition", [tracked], function () {
|
|
156
156
|
return null;
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
|
-
#openPosition = (i(this, "openPosition"),
|
|
159
|
+
#openPosition = (i(this, "openPosition"), void 0);
|
|
160
160
|
static {
|
|
161
161
|
g(this.prototype, "isOpenStable", [tracked], function () {
|
|
162
162
|
return false;
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
#isOpenStable = (i(this, "isOpenStable"),
|
|
165
|
+
#isOpenStable = (i(this, "isOpenStable"), void 0);
|
|
166
166
|
static {
|
|
167
167
|
g(this.prototype, "isCurrentlyOpen", [tracked]);
|
|
168
168
|
}
|
|
169
|
-
#isCurrentlyOpen = (i(this, "isCurrentlyOpen"),
|
|
169
|
+
#isCurrentlyOpen = (i(this, "isCurrentlyOpen"), void 0);
|
|
170
170
|
static {
|
|
171
171
|
g(this.prototype, "popoverHost", [tracked], function () {
|
|
172
172
|
return null;
|
|
173
173
|
});
|
|
174
174
|
}
|
|
175
|
-
#popoverHost = (i(this, "popoverHost"),
|
|
175
|
+
#popoverHost = (i(this, "popoverHost"), void 0);
|
|
176
176
|
///
|
|
177
177
|
respositionTimeout = null;
|
|
178
178
|
closingTransitionTimeout = null;
|
|
@@ -184,13 +184,13 @@ class EuiPopoverComponent extends Component {
|
|
|
184
184
|
return null;
|
|
185
185
|
});
|
|
186
186
|
}
|
|
187
|
-
#button = (i(this, "button"),
|
|
187
|
+
#button = (i(this, "button"), void 0);
|
|
188
188
|
static {
|
|
189
189
|
g(this.prototype, "panel", [tracked], function () {
|
|
190
190
|
return null;
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
|
-
#panel = (i(this, "panel"),
|
|
193
|
+
#panel = (i(this, "panel"), void 0);
|
|
194
194
|
constructor(owner, args) {
|
|
195
195
|
super(owner, args);
|
|
196
196
|
assert(`Must provide closePopover function`, this.args.closePopover);
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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 '@nullvoxpopuli/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 {\n findPopoverPosition,\n getElementZIndex\n} 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,7 +16,7 @@ class EuiPortal extends Component {
|
|
|
16
16
|
static {
|
|
17
17
|
g(this.prototype, "portalNode", [tracked]);
|
|
18
18
|
}
|
|
19
|
-
#portalNode = (i(this, "portalNode"),
|
|
19
|
+
#portalNode = (i(this, "portalNode"), void 0);
|
|
20
20
|
constructor(owner, args) {
|
|
21
21
|
super(owner, args);
|
|
22
22
|
const {
|