@ember-eui/core 12.0.1 → 12.0.3
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-step.d.ts +3 -3
- package/declarations/components/eui-step.d.ts.map +1 -1
- package/declarations/components/eui-steps.d.ts +1 -3
- package/declarations/components/eui-steps.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 +12 -16
- 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-step.js.map +1 -1
- package/dist/components/eui-steps.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-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import { on } from '@ember/modifier';
|
|
|
5
5
|
import { action } from '@ember/object';
|
|
6
6
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
7
7
|
import { inject } from '@ember/service';
|
|
8
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
9
|
-
import queue from 'ember-composable-helpers/helpers/queue';
|
|
8
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
9
|
+
import queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';
|
|
10
10
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
11
11
|
import classNames from '../helpers/class-names.js';
|
|
12
12
|
import Timer from '../utils/timer.js';
|
|
@@ -20,7 +20,7 @@ class EuiGlobalToastList extends Component {
|
|
|
20
20
|
static {
|
|
21
21
|
g(this.prototype, "euiToaster", [inject]);
|
|
22
22
|
}
|
|
23
|
-
#euiToaster = (i(this, "euiToaster"),
|
|
23
|
+
#euiToaster = (i(this, "euiToaster"), void 0);
|
|
24
24
|
dismissTimeoutIds = [];
|
|
25
25
|
toastIdToTimerMap = {};
|
|
26
26
|
isScrollingToBottom = false;
|
|
@@ -36,7 +36,7 @@ class EuiGlobalToastList extends Component {
|
|
|
36
36
|
return {};
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
#toastIdToDismissedMap = (i(this, "toastIdToDismissedMap"),
|
|
39
|
+
#toastIdToDismissedMap = (i(this, "toastIdToDismissedMap"), void 0);
|
|
40
40
|
startScrollingToBottom() {
|
|
41
41
|
this.isScrollingToBottom = true;
|
|
42
42
|
const scrollToBottom = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-global-toast-list.js","sources":["../../src/components/eui-global-toast-list.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { get } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { inject as service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport queue from 'ember-composable-helpers/helpers/queue';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport Timer from '../utils/timer.ts';\nimport EuiToast from './eui-toast.gts';\n\nimport type EuiToasterService from '../services/eui-toaster';\nimport type {\n EuiToastProps,\n EuiToastPropsWithId\n} from '../services/eui-toaster';\nimport type { sideMapping } from '../utils/css-mappings/eui-global-toast-list.ts';\n\ntype EuiToastSide = keyof typeof sideMapping;\n\ntype GlobalToastListArgs = {\n dismissToast?: (this: EuiGlobalToastList, toast: EuiToastProps) => void;\n toastLifeTimeMs: number;\n\n /*\n Determines which side of the browser window the toasts should appear\n Default: 'right'\n\n */\n side?: EuiToastSide;\n};\n\nconst TOAST_FADE_OUT_MS = 250;\n\nexport interface EuiGlobalToastListItemSignature {\n Element: HTMLDivElement;\n Args: GlobalToastListArgs;\n}\n\nexport default class EuiGlobalToastList extends Component<EuiGlobalToastListItemSignature> {\n @service declare euiToaster: EuiToasterService;\n\n dismissTimeoutIds: number[] = [];\n toastIdToTimerMap: { [toastId: string]: Timer } = {};\n\n isScrollingToBottom = false;\n isScrolledToBottom = true;\n isUserInteracting = false;\n\n // See [Return Value](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#Return_value)\n // for information on initial value of 0\n isScrollingAnimationFrame = 0;\n startScrollingAnimationFrame = 0;\n\n listElement: Element | null = null;\n @tracked toastIdToDismissedMap: {\n [toastId: string]: boolean;\n } = {};\n\n startScrollingToBottom(): void {\n this.isScrollingToBottom = true;\n\n const scrollToBottom = () => {\n // Although we cancel the requestAnimationFrame in componentWillUnmount,\n // it's possible for this.listElement to become null in the meantime\n if (!this.listElement) {\n return;\n }\n\n const position = this.listElement.scrollTop;\n const destination =\n this.listElement.scrollHeight - this.listElement.clientHeight;\n const distanceToDestination = destination - position;\n\n if (distanceToDestination < 5) {\n this.listElement.scrollTop = destination;\n this.isScrollingToBottom = false;\n this.isScrolledToBottom = true;\n\n return;\n }\n\n this.listElement.scrollTop = position + distanceToDestination * 0.25;\n\n if (this.isScrollingToBottom) {\n this.isScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n };\n\n this.startScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n\n @action\n didInsertToast(toast: EuiToastPropsWithId): void {\n this.scheduleToastForDismissal(toast);\n\n if (!this.isUserInteracting) {\n // If the user has scrolled up the toast list then we don't want to annoy them by scrolling\n // all the way back to the bottom.\n if (this.isScrolledToBottom) {\n this.startScrollingToBottom();\n }\n }\n }\n\n @action\n onMouseEnter(): void {\n // Stop scrolling to bottom if we're in mid-scroll, because the user wants to interact with\n // the list.\n this.isScrollingToBottom = false;\n this.isUserInteracting = true;\n\n // Don't let toasts dismiss themselves while the user is interacting with them.\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.pause();\n }\n }\n }\n\n @action\n onMouseLeave(): void {\n this.isUserInteracting = false;\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.resume();\n }\n }\n }\n\n @action\n onScroll(): void {\n if (this.listElement) {\n this.isScrolledToBottom =\n this.listElement.scrollHeight - this.listElement.scrollTop ===\n this.listElement.clientHeight;\n }\n }\n\n scheduleAllToastsForDismissal(): void {\n this.euiToaster.toasts.forEach((toast) => {\n if (!this.toastIdToTimerMap[toast.id]) {\n this.scheduleToastForDismissal(toast);\n }\n });\n }\n\n @action\n scheduleToastForDismissal(toast: EuiToastPropsWithId): void {\n // Start fading the toast out once its lifetime elapses.\n this.toastIdToTimerMap[toast.id] = new Timer(\n this.dismissToast.bind(this, toast),\n toast.toastLifeTimeMs != null\n ? toast.toastLifeTimeMs\n : this.args.toastLifeTimeMs\n );\n }\n\n @action\n dismissToast(toast: EuiToastPropsWithId): void {\n // Remove the toast after it's done fading out.\n this.dismissTimeoutIds.push(\n window.setTimeout(() => {\n // Because this is wrapped in a setTimeout, and because React does not guarantee when\n // state updates happen, it is possible to double-dismiss a toast\n // including by double-clicking the \"x\" button on the toast\n // so, first check to make sure we haven't already dismissed this toast\n if (this.toastIdToTimerMap.hasOwnProperty(toast.id)) {\n if (this.args.dismissToast) {\n this.args.dismissToast.apply(this, [toast]);\n }\n\n this.toastIdToTimerMap[toast.id]!.clear();\n delete this.toastIdToTimerMap[toast.id];\n\n delete this.toastIdToDismissedMap[toast.id];\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap\n };\n this.euiToaster.remove(toast);\n }\n }, TOAST_FADE_OUT_MS)\n );\n\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap,\n [toast.id]: true\n };\n }\n\n constructor(owner: Owner, args: GlobalToastListArgs) {\n super(owner, args);\n this.scheduleAllToastsForDismissal();\n }\n\n @action\n didInsert(element: Element): void {\n this.listElement = element;\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.isScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.isScrollingAnimationFrame);\n }\n\n if (this.startScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.startScrollingAnimationFrame);\n }\n\n this.dismissTimeoutIds.forEach(clearTimeout);\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.clear();\n }\n }\n }\n\n <template>\n <div\n aria-live=\"polite\"\n role=\"region\"\n class={{classNames\n componentName=\"EuiGlobalToastList\"\n side=(argOrDefault @side \"right\")\n }}\n style={{unless this.euiToaster.toasts.length \"padding:0px;\"}}\n {{didInsert this.didInsert}}\n {{on \"scroll\" this.onScroll}}\n {{on \"mouseenter\" this.onMouseEnter}}\n {{on \"mouseleave\" this.onMouseLeave}}\n ...attributes\n >\n {{#each this.euiToaster.toasts as |toast|}}\n <EuiToast\n class={{classNames\n \"euiGlobalToastListItem\"\n (if\n (get this.toastIdToDismissedMap toast.id)\n \"euiGlobalToastListItem-isDismissed\"\n )\n }}\n @title={{toast.title}}\n @useMarkdownFormat={{toast.useMarkdownFormat}}\n @body={{toast.body}}\n @color={{toast.color}}\n @iconType={{toast.iconType}}\n @onClose={{queue\n (fn this.dismissToast toast)\n (optional toast.onClose)\n }}\n {{didInsert (fn this.didInsertToast toast)}}\n {{on \"focus\" this.onMouseEnter}}\n {{on \"blur\" this.onMouseLeave}}\n />\n {{/each}}\n </div>\n </template>\n}\n"],"names":["TOAST_FADE_OUT_MS","EuiGlobalToastList","Component","g","prototype","service","i","void 0","dismissTimeoutIds","toastIdToTimerMap","isScrollingToBottom","isScrolledToBottom","isUserInteracting","isScrollingAnimationFrame","startScrollingAnimationFrame","listElement","tracked","startScrollingToBottom","scrollToBottom","position","scrollTop","destination","scrollHeight","clientHeight","distanceToDestination","window","requestAnimationFrame","didInsertToast","toast","scheduleToastForDismissal","n","action","onMouseEnter","toastId","hasOwnProperty","timer","pause","onMouseLeave","resume","onScroll","scheduleAllToastsForDismissal","euiToaster","toasts","forEach","id","Timer","dismissToast","bind","toastLifeTimeMs","args","push","setTimeout","apply","clear","toastIdToDismissedMap","remove","constructor","owner","didInsert","element","willDestroy","cancelAnimationFrame","clearTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","on","EuiToast","get","queue","fn","optional"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-global-toast-list.js","sources":["../../src/components/eui-global-toast-list.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { get } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { inject as service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport Timer from '../utils/timer.ts';\nimport EuiToast from './eui-toast.gts';\n\nimport type EuiToasterService from '../services/eui-toaster';\nimport type {\n EuiToastProps,\n EuiToastPropsWithId\n} from '../services/eui-toaster';\nimport type { sideMapping } from '../utils/css-mappings/eui-global-toast-list.ts';\n\ntype EuiToastSide = keyof typeof sideMapping;\n\ntype GlobalToastListArgs = {\n dismissToast?: (this: EuiGlobalToastList, toast: EuiToastProps) => void;\n toastLifeTimeMs: number;\n\n /*\n Determines which side of the browser window the toasts should appear\n Default: 'right'\n\n */\n side?: EuiToastSide;\n};\n\nconst TOAST_FADE_OUT_MS = 250;\n\nexport interface EuiGlobalToastListItemSignature {\n Element: HTMLDivElement;\n Args: GlobalToastListArgs;\n}\n\nexport default class EuiGlobalToastList extends Component<EuiGlobalToastListItemSignature> {\n @service declare euiToaster: EuiToasterService;\n\n dismissTimeoutIds: number[] = [];\n toastIdToTimerMap: { [toastId: string]: Timer } = {};\n\n isScrollingToBottom = false;\n isScrolledToBottom = true;\n isUserInteracting = false;\n\n // See [Return Value](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#Return_value)\n // for information on initial value of 0\n isScrollingAnimationFrame = 0;\n startScrollingAnimationFrame = 0;\n\n listElement: Element | null = null;\n @tracked toastIdToDismissedMap: {\n [toastId: string]: boolean;\n } = {};\n\n startScrollingToBottom(): void {\n this.isScrollingToBottom = true;\n\n const scrollToBottom = () => {\n // Although we cancel the requestAnimationFrame in componentWillUnmount,\n // it's possible for this.listElement to become null in the meantime\n if (!this.listElement) {\n return;\n }\n\n const position = this.listElement.scrollTop;\n const destination =\n this.listElement.scrollHeight - this.listElement.clientHeight;\n const distanceToDestination = destination - position;\n\n if (distanceToDestination < 5) {\n this.listElement.scrollTop = destination;\n this.isScrollingToBottom = false;\n this.isScrolledToBottom = true;\n\n return;\n }\n\n this.listElement.scrollTop = position + distanceToDestination * 0.25;\n\n if (this.isScrollingToBottom) {\n this.isScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n };\n\n this.startScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n\n @action\n didInsertToast(toast: EuiToastPropsWithId): void {\n this.scheduleToastForDismissal(toast);\n\n if (!this.isUserInteracting) {\n // If the user has scrolled up the toast list then we don't want to annoy them by scrolling\n // all the way back to the bottom.\n if (this.isScrolledToBottom) {\n this.startScrollingToBottom();\n }\n }\n }\n\n @action\n onMouseEnter(): void {\n // Stop scrolling to bottom if we're in mid-scroll, because the user wants to interact with\n // the list.\n this.isScrollingToBottom = false;\n this.isUserInteracting = true;\n\n // Don't let toasts dismiss themselves while the user is interacting with them.\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.pause();\n }\n }\n }\n\n @action\n onMouseLeave(): void {\n this.isUserInteracting = false;\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.resume();\n }\n }\n }\n\n @action\n onScroll(): void {\n if (this.listElement) {\n this.isScrolledToBottom =\n this.listElement.scrollHeight - this.listElement.scrollTop ===\n this.listElement.clientHeight;\n }\n }\n\n scheduleAllToastsForDismissal(): void {\n this.euiToaster.toasts.forEach((toast) => {\n if (!this.toastIdToTimerMap[toast.id]) {\n this.scheduleToastForDismissal(toast);\n }\n });\n }\n\n @action\n scheduleToastForDismissal(toast: EuiToastPropsWithId): void {\n // Start fading the toast out once its lifetime elapses.\n this.toastIdToTimerMap[toast.id] = new Timer(\n this.dismissToast.bind(this, toast),\n toast.toastLifeTimeMs != null\n ? toast.toastLifeTimeMs\n : this.args.toastLifeTimeMs\n );\n }\n\n @action\n dismissToast(toast: EuiToastPropsWithId): void {\n // Remove the toast after it's done fading out.\n this.dismissTimeoutIds.push(\n window.setTimeout(() => {\n // Because this is wrapped in a setTimeout, and because React does not guarantee when\n // state updates happen, it is possible to double-dismiss a toast\n // including by double-clicking the \"x\" button on the toast\n // so, first check to make sure we haven't already dismissed this toast\n if (this.toastIdToTimerMap.hasOwnProperty(toast.id)) {\n if (this.args.dismissToast) {\n this.args.dismissToast.apply(this, [toast]);\n }\n\n this.toastIdToTimerMap[toast.id]!.clear();\n delete this.toastIdToTimerMap[toast.id];\n\n delete this.toastIdToDismissedMap[toast.id];\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap\n };\n this.euiToaster.remove(toast);\n }\n }, TOAST_FADE_OUT_MS)\n );\n\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap,\n [toast.id]: true\n };\n }\n\n constructor(owner: Owner, args: GlobalToastListArgs) {\n super(owner, args);\n this.scheduleAllToastsForDismissal();\n }\n\n @action\n didInsert(element: Element): void {\n this.listElement = element;\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.isScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.isScrollingAnimationFrame);\n }\n\n if (this.startScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.startScrollingAnimationFrame);\n }\n\n this.dismissTimeoutIds.forEach(clearTimeout);\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.clear();\n }\n }\n }\n\n <template>\n <div\n aria-live=\"polite\"\n role=\"region\"\n class={{classNames\n componentName=\"EuiGlobalToastList\"\n side=(argOrDefault @side \"right\")\n }}\n style={{unless this.euiToaster.toasts.length \"padding:0px;\"}}\n {{didInsert this.didInsert}}\n {{on \"scroll\" this.onScroll}}\n {{on \"mouseenter\" this.onMouseEnter}}\n {{on \"mouseleave\" this.onMouseLeave}}\n ...attributes\n >\n {{#each this.euiToaster.toasts as |toast|}}\n <EuiToast\n class={{classNames\n \"euiGlobalToastListItem\"\n (if\n (get this.toastIdToDismissedMap toast.id)\n \"euiGlobalToastListItem-isDismissed\"\n )\n }}\n @title={{toast.title}}\n @useMarkdownFormat={{toast.useMarkdownFormat}}\n @body={{toast.body}}\n @color={{toast.color}}\n @iconType={{toast.iconType}}\n @onClose={{queue\n (fn this.dismissToast toast)\n (optional toast.onClose)\n }}\n {{didInsert (fn this.didInsertToast toast)}}\n {{on \"focus\" this.onMouseEnter}}\n {{on \"blur\" this.onMouseLeave}}\n />\n {{/each}}\n </div>\n </template>\n}\n"],"names":["TOAST_FADE_OUT_MS","EuiGlobalToastList","Component","g","prototype","service","i","void 0","dismissTimeoutIds","toastIdToTimerMap","isScrollingToBottom","isScrolledToBottom","isUserInteracting","isScrollingAnimationFrame","startScrollingAnimationFrame","listElement","tracked","startScrollingToBottom","scrollToBottom","position","scrollTop","destination","scrollHeight","clientHeight","distanceToDestination","window","requestAnimationFrame","didInsertToast","toast","scheduleToastForDismissal","n","action","onMouseEnter","toastId","hasOwnProperty","timer","pause","onMouseLeave","resume","onScroll","scheduleAllToastsForDismissal","euiToaster","toasts","forEach","id","Timer","dismissToast","bind","toastLifeTimeMs","args","push","setTimeout","apply","clear","toastIdToDismissedMap","remove","constructor","owner","didInsert","element","willDestroy","cancelAnimationFrame","clearTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","on","EuiToast","get","queue","fn","optional"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-header-links.js","sources":["../../src/components/eui-header-links.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { gutterSizeMapping } from '../utils/css-mappings/eui-header-links.ts';\nimport type { EuiHideForSignature } from './eui-hide-for';\nimport type { EuiPopoverSignature } from './eui-popover';\n\nexport interface EuiHeaderLinkSignature {\n Args: {\n popoverBreakpoints?: EuiHideForSignature['Args']['sizes'];\n gutterSize?: keyof typeof gutterSizeMapping;\n panelPaddingSize?: EuiPopoverSignature['Args']['panelPaddingSize'];\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiHeaderLinksComponent extends Component<EuiHeaderLinkSignature> {\n @tracked pop1 = false;\n\n get popoverBreakpoints() {\n return this.args.popoverBreakpoints || ['xs', 's'];\n }\n\n get hasMobileVersion() {\n return this.popoverBreakpoints?.length > 0;\n }\n\n <template>\n <nav class=\"euiHeaderLinks\">\n <EuiHideFor @sizes={{this.popoverBreakpoints}}>\n <div\n class={{classNames\n \"euiHeaderLinks__list\"\n componentName=\"EuiHeaderLinks\"\n gutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </EuiHideFor>\n\n {{#if this.hasMobileVersion}}\n <EuiShowFor @sizes={{this.popoverBreakpoints}}>\n <EuiPopover\n @isOpen={{this.pop1}}\n @anchorPosition=\"downRight\"\n @panelPaddingSize={{argOrDefault @panelPaddingSize \"none\"}}\n @closePopover={{set this \"pop1\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @color=\"text\"\n {{on \"click\" (set this \"pop1\" true)}}\n >\n <EuiIcon @type=\"apps\" />\n </EuiButtonEmpty>\n </:button>\n <:content>\n <div\n class={{classNames\n \"euiHeaderLinks__mobileList\"\n componentName=\"EuiHeaderLinks\"\n mobileGutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </:content>\n </EuiPopover>\n </EuiShowFor>\n {{/if}}\n </nav>\n </template>\n}\n"],"names":["EuiHeaderLinksComponent","Component","g","prototype","tracked","i","void 0","popoverBreakpoints","args","hasMobileVersion","length","setComponentTemplate","precompileTemplate","strictMode","scope","EuiHideFor","classNames","argOrDefault","EuiShowFor","EuiPopover","set","EuiButtonEmpty","on","EuiIcon"],"mappings":";;;;;;;;;;;;;;;AA6Be,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAC5DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAe,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-header-links.js","sources":["../../src/components/eui-header-links.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { gutterSizeMapping } from '../utils/css-mappings/eui-header-links.ts';\nimport type { EuiHideForSignature } from './eui-hide-for';\nimport type { EuiPopoverSignature } from './eui-popover';\n\nexport interface EuiHeaderLinkSignature {\n Args: {\n popoverBreakpoints?: EuiHideForSignature['Args']['sizes'];\n gutterSize?: keyof typeof gutterSizeMapping;\n panelPaddingSize?: EuiPopoverSignature['Args']['panelPaddingSize'];\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiHeaderLinksComponent extends Component<EuiHeaderLinkSignature> {\n @tracked pop1 = false;\n\n get popoverBreakpoints() {\n return this.args.popoverBreakpoints || ['xs', 's'];\n }\n\n get hasMobileVersion() {\n return this.popoverBreakpoints?.length > 0;\n }\n\n <template>\n <nav class=\"euiHeaderLinks\">\n <EuiHideFor @sizes={{this.popoverBreakpoints}}>\n <div\n class={{classNames\n \"euiHeaderLinks__list\"\n componentName=\"EuiHeaderLinks\"\n gutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </EuiHideFor>\n\n {{#if this.hasMobileVersion}}\n <EuiShowFor @sizes={{this.popoverBreakpoints}}>\n <EuiPopover\n @isOpen={{this.pop1}}\n @anchorPosition=\"downRight\"\n @panelPaddingSize={{argOrDefault @panelPaddingSize \"none\"}}\n @closePopover={{set this \"pop1\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @color=\"text\"\n {{on \"click\" (set this \"pop1\" true)}}\n >\n <EuiIcon @type=\"apps\" />\n </EuiButtonEmpty>\n </:button>\n <:content>\n <div\n class={{classNames\n \"euiHeaderLinks__mobileList\"\n componentName=\"EuiHeaderLinks\"\n mobileGutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </:content>\n </EuiPopover>\n </EuiShowFor>\n {{/if}}\n </nav>\n </template>\n}\n"],"names":["EuiHeaderLinksComponent","Component","g","prototype","tracked","i","void 0","popoverBreakpoints","args","hasMobileVersion","length","setComponentTemplate","precompileTemplate","strictMode","scope","EuiHideFor","classNames","argOrDefault","EuiShowFor","EuiPopover","set","EuiButtonEmpty","on","EuiIcon"],"mappings":";;;;;;;;;;;;;;;AA6Be,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAC5DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAe,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAEtB,IAAIC,kBAAqBA,GAAA;IACvB,OAAO,IAAI,CAACC,IAAI,CAACD,kBAAkB,IAAI,CAAC,IAAA,EAAM,GAAA,CAAI;AACpD;EAEA,IAAIE,gBAAmBA,GAAA;AACrB,IAAA,OAAO,IAAI,CAACF,kBAAkB,EAAEG,MAAS,GAAA,CAAA;AAC3C;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6CA,0lCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,mBAAA;QAAAC,UAAA;QAAAC,YAAA;oBAAAC,mBAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { tracked } from '@glimmer/tracking';
|
|
3
3
|
import { on } from '@ember/modifier';
|
|
4
4
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
5
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
5
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
6
6
|
import { eq } from 'ember-truth-helpers';
|
|
7
7
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
8
8
|
import EuiButtonEmpty from './eui-button-empty.js';
|
|
@@ -116,11 +116,11 @@ class EuiHeaderSectionItemButtonComponent extends Component {
|
|
|
116
116
|
static {
|
|
117
117
|
g(this.prototype, "buttonRef", [tracked]);
|
|
118
118
|
}
|
|
119
|
-
#buttonRef = (i(this, "buttonRef"),
|
|
119
|
+
#buttonRef = (i(this, "buttonRef"), void 0);
|
|
120
120
|
static {
|
|
121
121
|
g(this.prototype, "animationTargetRef", [tracked]);
|
|
122
122
|
}
|
|
123
|
-
#animationTargetRef = (i(this, "animationTargetRef"),
|
|
123
|
+
#animationTargetRef = (i(this, "animationTargetRef"), void 0);
|
|
124
124
|
setAnimationTargetRef = ele => {
|
|
125
125
|
this.animationTargetRef = ele;
|
|
126
126
|
this.args.ref?.({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type {
|
|
1
|
+
{"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { colorMapping } from '../utils/css-mappings/eui-notification-badge.ts';\nimport type { EuiHideForBreakpoints } from './eui-hide-for';\n\nconst keyframes: Keyframe[] = [\n { transform: 'rotate(0)', offset: 0, easing: 'ease-in-out' },\n {\n transform: 'rotate(30deg)',\n offset: 0.01,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.03,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(34deg)',\n offset: 0.05,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-32deg)',\n offset: 0.07,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(30deg)',\n offset: 0.09,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.11,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(26deg)',\n offset: 0.13,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-24deg)',\n offset: 0.15,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(22deg)',\n offset: 0.17,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-20deg)',\n offset: 0.19,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(18deg)',\n offset: 0.21,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-16deg)',\n offset: 0.23,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(14deg)',\n offset: 0.25,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-12deg)',\n offset: 0.27,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(10deg)',\n offset: 0.29,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-8deg)',\n offset: 0.31,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(6deg)',\n offset: 0.33,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-4deg)',\n offset: 0.35,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(2deg)',\n offset: 0.37,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-1deg)',\n offset: 0.39,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(1deg)',\n offset: 0.41,\n easing: 'ease-in-out'\n },\n { transform: 'rotate(0)', offset: 0.43, easing: 'ease-in-out' },\n { transform: 'rotate(0)', offset: 1, easing: 'ease-in-out' }\n];\n\nexport interface EuiHeaderSectionItemButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement;\n Args: {\n ref?: (api: { euiAnimate: () => void }) => void;\n disabled?: boolean;\n href?: string;\n onClick?: (event: MouseEvent) => void;\n notification?: boolean | number;\n notificationColor?: keyof typeof colorMapping;\n };\n Blocks: { default: [] };\n}\n\nconst sizes: EuiHideForBreakpoints[] = ['xs'];\n\nexport default class EuiHeaderSectionItemButtonComponent extends Component<EuiHeaderSectionItemButtonSignature> {\n @tracked buttonRef: HTMLButtonElement | HTMLAnchorElement | undefined;\n @tracked animationTargetRef: HTMLSpanElement | undefined;\n\n setAnimationTargetRef = (ele: HTMLSpanElement) => {\n this.animationTargetRef = ele;\n this.args.ref?.({ euiAnimate: this.animate });\n };\n\n animate = () => {\n this.animationTargetRef?.animate(keyframes, { duration: 5000 });\n };\n\n setButtonRef = (ele: HTMLButtonElement | HTMLAnchorElement) => {\n this.buttonRef = ele;\n };\n\n <template>\n <EuiButtonEmpty\n class=\"euiHeaderSectionItemButton\"\n @isDisabled={{@disabled}}\n @href={{@href}}\n @color=\"text\"\n {{didInsert this.setButtonRef}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n <span\n {{didInsert this.setAnimationTargetRef}}\n class=\"euiHeaderSectionItemButton__content\"\n >\n {{yield}}\n </span>\n {{#if @notification}}\n {{#if (eq @notification true)}}\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n {{else if @notification}}\n <EuiHideFor @sizes={{sizes}}>\n <EuiNotificationBadge\n class=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--badge\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n >\n {{@notification}}\n </EuiNotificationBadge>\n </EuiHideFor>\n <EuiShowFor @sizes={{sizes}}>\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n </EuiShowFor>\n {{/if}}\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["keyframes","transform","offset","easing","sizes","EuiHeaderSectionItemButtonComponent","Component","g","prototype","tracked","i","void 0","setAnimationTargetRef","ele","animationTargetRef","args","ref","euiAnimate","animate","duration","setButtonRef","buttonRef","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","didInsert","on","optional","eq","EuiIcon","argOrDefault","EuiHideFor","EuiNotificationBadge","EuiShowFor"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ class EuiI18nComponent extends Component {
|
|
|
13
13
|
static {
|
|
14
14
|
g(this.prototype, "euiI18n", [inject]);
|
|
15
15
|
}
|
|
16
|
-
#euiI18n = (i(this, "euiI18n"),
|
|
16
|
+
#euiI18n = (i(this, "euiI18n"), void 0);
|
|
17
17
|
get lookupToken() {
|
|
18
18
|
const lookupToken = this.euiI18n._lookupToken;
|
|
19
19
|
return lookupToken({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-i18n.js","sources":["../../src/components/eui-i18n.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { inject as service } from '@ember/service';\nimport { ensureSafeComponent } from '@embroider/util';\n\nimport { notEq } from 'ember-truth-helpers';\n\nimport typeOf from '../helpers/type-of.ts';\nimport Render from './eui-i18n/render.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface Args {\n tokens?: string[];\n defaults?: string[];\n token?: string;\n default?: string;\n values?: { [key: string]: any };\n i18n?: { mapping: { [key: string]: any }; renderComponent?: typeof Render };\n}\n\nexport interface EuiI18nSignature {\n Args: Args;\n Blocks: {\n default: [WithBoundArgs<typeof Render, 'token'>];\n };\n}\n\nexport default class EuiI18nComponent extends Component<EuiI18nSignature> {\n @service declare euiI18n: EuiI18n;\n\n get lookupToken() {\n const lookupToken = this.euiI18n._lookupToken;\n\n return lookupToken({\n token: this.args.token!,\n i18nMapping: this.args.i18n?.mapping,\n valueDefault: this.args.default!,\n values: this.args.values\n });\n }\n\n get customComponent(): typeof Render | undefined {\n if (!this.args.i18n?.renderComponent) return undefined;\n\n return ensureSafeComponent(this.args.i18n?.renderComponent, this);\n }\n\n <template>\n {{#let this.lookupToken as |result|}}\n {{#if this.customComponent}}\n {{#each\n (if (notEq (typeOf result) \"array\") (array result) result)\n as |token|\n }}\n {{yield (component this.customComponent token=token)}}\n {{/each}}\n {{else}}\n {{#each\n (if (notEq (typeOf result) \"array\") (array result) result)\n as |token|\n }}\n {{yield (component Render token=token)}}\n {{/each}}\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiI18nComponent","Component","g","prototype","service","i","void 0","lookupToken","euiI18n","_lookupToken","token","args","i18nMapping","i18n","mapping","valueDefault","default","values","customComponent","renderComponent","undefined","ensureSafeComponent","setComponentTemplate","precompileTemplate","strictMode","scope","notEq","typeOf","array","Render"],"mappings":";;;;;;;;;;;AA6Be,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACrDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-i18n.js","sources":["../../src/components/eui-i18n.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { inject as service } from '@ember/service';\nimport { ensureSafeComponent } from '@embroider/util';\n\nimport { notEq } from 'ember-truth-helpers';\n\nimport typeOf from '../helpers/type-of.ts';\nimport Render from './eui-i18n/render.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface Args {\n tokens?: string[];\n defaults?: string[];\n token?: string;\n default?: string;\n values?: { [key: string]: any };\n i18n?: { mapping: { [key: string]: any }; renderComponent?: typeof Render };\n}\n\nexport interface EuiI18nSignature {\n Args: Args;\n Blocks: {\n default: [WithBoundArgs<typeof Render, 'token'>];\n };\n}\n\nexport default class EuiI18nComponent extends Component<EuiI18nSignature> {\n @service declare euiI18n: EuiI18n;\n\n get lookupToken() {\n const lookupToken = this.euiI18n._lookupToken;\n\n return lookupToken({\n token: this.args.token!,\n i18nMapping: this.args.i18n?.mapping,\n valueDefault: this.args.default!,\n values: this.args.values\n });\n }\n\n get customComponent(): typeof Render | undefined {\n if (!this.args.i18n?.renderComponent) return undefined;\n\n return ensureSafeComponent(this.args.i18n?.renderComponent, this);\n }\n\n <template>\n {{#let this.lookupToken as |result|}}\n {{#if this.customComponent}}\n {{#each\n (if (notEq (typeOf result) \"array\") (array result) result)\n as |token|\n }}\n {{yield (component this.customComponent token=token)}}\n {{/each}}\n {{else}}\n {{#each\n (if (notEq (typeOf result) \"array\") (array result) result)\n as |token|\n }}\n {{yield (component Render token=token)}}\n {{/each}}\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiI18nComponent","Component","g","prototype","service","i","void 0","lookupToken","euiI18n","_lookupToken","token","args","i18nMapping","i18n","mapping","valueDefault","default","values","customComponent","renderComponent","undefined","ensureSafeComponent","setComponentTemplate","precompileTemplate","strictMode","scope","notEq","typeOf","array","Render"],"mappings":";;;;;;;;;;;AA6Be,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACrDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;EAED,IAAIC,WAAcA,GAAA;AAChB,IAAA,MAAMA,WAAc,GAAA,IAAI,CAACC,OAAO,CAACC,YAAY;AAE7C,IAAA,OAAOF,WAAY,CAAA;AACjBG,MAAAA,KAAA,EAAO,IAAI,CAACC,IAAI,CAACD,KAAK;AACtBE,MAAAA,WAAA,EAAa,IAAI,CAACD,IAAI,CAACE,IAAI,EAAEC,OAAA;AAC7BC,MAAAA,YAAA,EAAc,IAAI,CAACJ,IAAI,CAACK,OAAO;AAC/BC,MAAAA,MAAA,EAAQ,IAAI,CAACN,IAAI,CAACM;AACpB,KAAA,CAAA;AACF;EAEA,IAAIC,eAAAA,GAA6C;IAC/C,IAAI,CAAC,IAAI,CAACP,IAAI,CAACE,IAAI,EAAEM,iBAAiB,OAAOC,SAAA;IAE7C,OAAOC,mBAAA,CAAoB,IAAI,CAACV,IAAI,CAACE,IAAI,EAAEM,iBAAiB,IAAI,CAAA;AAClE;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAkBA,odAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,MAAA;QAAAC,KAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -26,11 +26,11 @@ class EuiIcon extends Component {
|
|
|
26
26
|
static {
|
|
27
27
|
g(this.prototype, "euiConfig", [inject]);
|
|
28
28
|
}
|
|
29
|
-
#euiConfig = (i(this, "euiConfig"),
|
|
29
|
+
#euiConfig = (i(this, "euiConfig"), void 0);
|
|
30
30
|
static {
|
|
31
31
|
g(this.prototype, "size", [argOrDefaultDecorator('m')]);
|
|
32
32
|
}
|
|
33
|
-
#size = (i(this, "size"),
|
|
33
|
+
#size = (i(this, "size"), void 0);
|
|
34
34
|
get useImage() {
|
|
35
35
|
const {
|
|
36
36
|
type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-icon.js","sources":["../../src/components/eui-icon.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\n\nimport svgJar from 'ember-svg-jar/helpers/svg-jar';\nimport { and, not } from 'ember-truth-helpers';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport {\n colorToClassMap,\n typeToPathMap\n} from '../utils/css-mappings/eui-icon.ts';\nimport { keysOf } from './common.ts';\n\nimport type EuiConfigService from '../services/eui-config';\nimport type { sizeToClassNameMap } from '../utils/css-mappings/eui-icon.ts';\nimport type { CommonArgs } from './common.ts';\nimport type { ComponentLike } from '@glint/template';\n\nexport const TYPES = keysOf(typeToPathMap);\n\nexport type EuiIconType = keyof typeof typeToPathMap;\n\nexport type IconType = EuiIconType | string | ComponentLike;\n\nexport const COLORS: NamedColor[] = keysOf(colorToClassMap);\n\ntype NamedColor = keyof typeof colorToClassMap;\n\nfunction isNamedColor(name: NamedColor | string): name is NamedColor {\n return Object.prototype.hasOwnProperty.call(colorToClassMap, name);\n}\n\n// We accept arbitrary color strings, which are impossible to type.\ntype IconColor = string | NamedColor;\n\nexport type IconSize = keyof typeof sizeToClassNameMap;\n\nexport type EuiIconArgs = CommonArgs & {\n /**\n * `Enum` is any of the named icons listed in the docs, `string` is usually a URL to an SVG file, and `elementType` is any Ember Icon SVG component\n */\n type: IconType;\n\n /**\n * One of EUI's color palette or a valid CSS color value https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.\n * Note that coloring only works if your SVG is removed of fill attributes.\n */\n color?: IconColor;\n /**\n * Note that every size other than `original` assumes the provided SVG sits on a square viewbox.\n */\n size?: IconSize;\n\n /**\n * If the type is not a named eui icon, render as Svg, not as img.\n */\n useSvg?: boolean;\n\n /**\n * Descriptive title for naming the icon based on its use\n */\n title?: string;\n /**\n * A unique identifier for the title element\n */\n titleId?: string;\n\n tabIndex?: unknown;\n\n /**\n * Its value should be one or more element IDs\n */\n 'aria-labelledby'?: string;\n\n /**\n * Callback when the icon has been loaded & rendered\n */\n onIconLoad?: () => void;\n\n /**\n * When you want to render a component instead of an SVG\n */\n useComponent?: boolean;\n\n /**\n * Classes to pass to the icon\n */\n iconClasses?: string;\n};\n\nexport interface EuiIconSignature {\n Element: HTMLImageElement | Element;\n Args: EuiIconArgs;\n}\n\nfunction isEuiIconType(x: EuiIconArgs['type']): x is EuiIconType {\n return (\n typeof x === 'string' &&\n Object.prototype.hasOwnProperty.call(typeToPathMap, x)\n );\n}\n\nexport default class EuiIcon extends Component<EuiIconSignature> {\n @service declare euiConfig: EuiConfigService;\n\n @argOrDefaultDecorator('m') size!: IconSize;\n\n get useImage(): boolean {\n const { type } = this.args;\n\n return typeof type === 'string' && !isEuiIconType(type) && !this.useSvg;\n }\n\n get useSvg(): boolean {\n return (\n this.args.useSvg ??\n (this.euiConfig.getConfig('euiIcon.useSvg') as boolean) ??\n false\n );\n }\n\n get icon(): IconType | ComponentLike | undefined {\n const { type } = this.args;\n\n if (type === null) {\n return undefined;\n }\n\n //We should probably find a better way to always\n if (isEuiIconType(type)) {\n return this.getEuiIconSvgPath(type);\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n return undefined;\n }\n\n get emptyIcon(): string {\n return this.getEuiIconSvgPath('empty');\n }\n\n getEuiIconSvgPath(type: EuiIconType): string {\n return typeToPathMap[type];\n }\n\n get isAppIcon(): string | boolean {\n const { type } = this.args;\n\n return (\n type &&\n typeof type === 'string' &&\n (/.+App$/.test(type) || /.+Job$/.test(type) || type === 'dataVisualizer')\n );\n }\n\n get appIconHasColor() {\n return this.args.color && this.args.color !== 'default';\n }\n\n get focusable(): string {\n const { tabIndex } = this.args;\n\n return tabIndex == null || tabIndex === -1 ? 'false' : 'true';\n }\n\n get optionalCustomStyles(): ReturnType<typeof htmlSafe> | string {\n const { color } = this.args;\n\n if (color && typeof color === 'string') {\n if (!isNamedColor(color)) {\n return htmlSafe(`fill: ${color}`);\n }\n }\n\n return '';\n }\n\n get optionalColorClass(): NamedColor | string {\n const { color } = this.args;\n\n if (color && typeof color === 'string') {\n if (isNamedColor(color)) {\n return colorToClassMap[color];\n } else {\n return 'euiIcon--customColor';\n }\n }\n\n return '';\n }\n\n // If it's an empty icon, or if there is no aria-label, aria-labelledby, or title it gets aria-hidden true\n get isAriaHidden(): boolean {\n const { icon } = this;\n\n return (\n icon === 'empty' ||\n !(this.args['aria-label'], this.args['aria-labelledby'], this.args.title)\n );\n }\n\n get titleId(): string | undefined {\n const { title } = this.args;\n let titleId;\n\n // If no aria-label or aria-labelledby is provided but there's a title, a titleId is generated\n // The svg aria-labelledby attribute gets this titleId\n // The svg title element gets this titleId as an id\n if (!this.args['aria-label'] && !this.args['aria-labelledby'] && title) {\n titleId = guidFor({});\n }\n\n return titleId;\n }\n\n get iconAsString(): string | undefined {\n if (this.icon) {\n return this.icon as any as string;\n }\n\n return undefined;\n }\n\n <template>\n {{#if @useComponent}}\n {{!@glint-expect-error}}\n {{#let (component @type) as |IconComponent|}}\n {{!template-lint-disable}}\n <IconComponent\n class={{classNames\n @iconClasses\n this.optionalColorClass\n (if (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\")\n componentName=\"EuiIcon\"\n size=this.size\n }}\n role=\"image\"\n aria-hidden={{if this.isAriaHidden \"true\"}}\n aria-label={{if @aria-label @aria-label this.titleId}}\n aria-labelledby={{if @aria-labelledby @aria-labelledby this.titleId}}\n {{! @glint-expect-error }}\n tabindex={{@tabIndex}}\n style={{this.optionalCustomStyles}}\n color={{@color}}\n ...attributes\n />\n {{/let}}\n {{else}}\n {{#if this.useImage}}\n <img\n {{! @glint-expect-error }}\n src={{this.icon}}\n class={{classNames\n @iconClasses\n this.optionalColorClass\n (if (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\")\n componentName=\"EuiIcon\"\n size=this.size\n }}\n color={{@color}}\n alt={{if @title @title}}\n {{! @glint-expect-error }}\n tabIndex={{@tabIndex}}\n ...attributes\n />\n {{else}}\n {{#if this.iconAsString}}\n {{svgJar\n this.iconAsString\n class=(classNames\n @iconClasses\n this.optionalColorClass\n (if\n (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\"\n )\n componentName=\"EuiIcon\"\n size=this.size\n )\n color=@color\n role=\"image\"\n aria-hidden=(if this.isAriaHidden \"true\")\n aria-label=(if @aria-label @aria-label this.titleId)\n aria-labelledby=(if @aria-labelledby @aria-labelledby this.titleId)\n tabindex=@tabIndex\n style=this.optionalCustomStyles\n }}\n {{/if}}\n {{/if}}\n {{/if}}\n </template>\n}\n"],"names":["TYPES","keysOf","typeToPathMap","COLORS","colorToClassMap","isNamedColor","name","Object","prototype","hasOwnProperty","call","isEuiIconType","x","EuiIcon","Component","g","service","i","void 0","argOrDefaultDecorator","useImage","type","args","useSvg","euiConfig","getConfig","icon","undefined","getEuiIconSvgPath","emptyIcon","isAppIcon","test","appIconHasColor","color","focusable","tabIndex","optionalCustomStyles","htmlSafe","optionalColorClass","isAriaHidden","title","titleId","guidFor","iconAsString","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","and","not","svgJar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-icon.js","sources":["../../src/components/eui-icon.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\n\nimport svgJar from 'ember-svg-jar/helpers/svg-jar';\nimport { and, not } from 'ember-truth-helpers';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport {\n colorToClassMap,\n typeToPathMap\n} from '../utils/css-mappings/eui-icon.ts';\nimport { keysOf } from './common.ts';\n\nimport type EuiConfigService from '../services/eui-config';\nimport type { sizeToClassNameMap } from '../utils/css-mappings/eui-icon.ts';\nimport type { CommonArgs } from './common.ts';\nimport type { ComponentLike } from '@glint/template';\n\nexport const TYPES = keysOf(typeToPathMap);\n\nexport type EuiIconType = keyof typeof typeToPathMap;\n\nexport type IconType = EuiIconType | string | ComponentLike;\n\nexport const COLORS: NamedColor[] = keysOf(colorToClassMap);\n\ntype NamedColor = keyof typeof colorToClassMap;\n\nfunction isNamedColor(name: NamedColor | string): name is NamedColor {\n return Object.prototype.hasOwnProperty.call(colorToClassMap, name);\n}\n\n// We accept arbitrary color strings, which are impossible to type.\ntype IconColor = string | NamedColor;\n\nexport type IconSize = keyof typeof sizeToClassNameMap;\n\nexport type EuiIconArgs = CommonArgs & {\n /**\n * `Enum` is any of the named icons listed in the docs, `string` is usually a URL to an SVG file, and `elementType` is any Ember Icon SVG component\n */\n type: IconType;\n\n /**\n * One of EUI's color palette or a valid CSS color value https://developer.mozilla.org/en-US/docs/Web/CSS/color_value.\n * Note that coloring only works if your SVG is removed of fill attributes.\n */\n color?: IconColor;\n /**\n * Note that every size other than `original` assumes the provided SVG sits on a square viewbox.\n */\n size?: IconSize;\n\n /**\n * If the type is not a named eui icon, render as Svg, not as img.\n */\n useSvg?: boolean;\n\n /**\n * Descriptive title for naming the icon based on its use\n */\n title?: string;\n /**\n * A unique identifier for the title element\n */\n titleId?: string;\n\n tabIndex?: unknown;\n\n /**\n * Its value should be one or more element IDs\n */\n 'aria-labelledby'?: string;\n\n /**\n * Callback when the icon has been loaded & rendered\n */\n onIconLoad?: () => void;\n\n /**\n * When you want to render a component instead of an SVG\n */\n useComponent?: boolean;\n\n /**\n * Classes to pass to the icon\n */\n iconClasses?: string;\n};\n\nexport interface EuiIconSignature {\n Element: HTMLImageElement | Element;\n Args: EuiIconArgs;\n}\n\nfunction isEuiIconType(x: EuiIconArgs['type']): x is EuiIconType {\n return (\n typeof x === 'string' &&\n Object.prototype.hasOwnProperty.call(typeToPathMap, x)\n );\n}\n\nexport default class EuiIcon extends Component<EuiIconSignature> {\n @service declare euiConfig: EuiConfigService;\n\n @argOrDefaultDecorator('m') size!: IconSize;\n\n get useImage(): boolean {\n const { type } = this.args;\n\n return typeof type === 'string' && !isEuiIconType(type) && !this.useSvg;\n }\n\n get useSvg(): boolean {\n return (\n this.args.useSvg ??\n (this.euiConfig.getConfig('euiIcon.useSvg') as boolean) ??\n false\n );\n }\n\n get icon(): IconType | ComponentLike | undefined {\n const { type } = this.args;\n\n if (type === null) {\n return undefined;\n }\n\n //We should probably find a better way to always\n if (isEuiIconType(type)) {\n return this.getEuiIconSvgPath(type);\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n return undefined;\n }\n\n get emptyIcon(): string {\n return this.getEuiIconSvgPath('empty');\n }\n\n getEuiIconSvgPath(type: EuiIconType): string {\n return typeToPathMap[type];\n }\n\n get isAppIcon(): string | boolean {\n const { type } = this.args;\n\n return (\n type &&\n typeof type === 'string' &&\n (/.+App$/.test(type) || /.+Job$/.test(type) || type === 'dataVisualizer')\n );\n }\n\n get appIconHasColor() {\n return this.args.color && this.args.color !== 'default';\n }\n\n get focusable(): string {\n const { tabIndex } = this.args;\n\n return tabIndex == null || tabIndex === -1 ? 'false' : 'true';\n }\n\n get optionalCustomStyles(): ReturnType<typeof htmlSafe> | string {\n const { color } = this.args;\n\n if (color && typeof color === 'string') {\n if (!isNamedColor(color)) {\n return htmlSafe(`fill: ${color}`);\n }\n }\n\n return '';\n }\n\n get optionalColorClass(): NamedColor | string {\n const { color } = this.args;\n\n if (color && typeof color === 'string') {\n if (isNamedColor(color)) {\n return colorToClassMap[color];\n } else {\n return 'euiIcon--customColor';\n }\n }\n\n return '';\n }\n\n // If it's an empty icon, or if there is no aria-label, aria-labelledby, or title it gets aria-hidden true\n get isAriaHidden(): boolean {\n const { icon } = this;\n\n return (\n icon === 'empty' ||\n !(this.args['aria-label'], this.args['aria-labelledby'], this.args.title)\n );\n }\n\n get titleId(): string | undefined {\n const { title } = this.args;\n let titleId;\n\n // If no aria-label or aria-labelledby is provided but there's a title, a titleId is generated\n // The svg aria-labelledby attribute gets this titleId\n // The svg title element gets this titleId as an id\n if (!this.args['aria-label'] && !this.args['aria-labelledby'] && title) {\n titleId = guidFor({});\n }\n\n return titleId;\n }\n\n get iconAsString(): string | undefined {\n if (this.icon) {\n return this.icon as any as string;\n }\n\n return undefined;\n }\n\n <template>\n {{#if @useComponent}}\n {{!@glint-expect-error}}\n {{#let (component @type) as |IconComponent|}}\n {{!template-lint-disable}}\n <IconComponent\n class={{classNames\n @iconClasses\n this.optionalColorClass\n (if (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\")\n componentName=\"EuiIcon\"\n size=this.size\n }}\n role=\"image\"\n aria-hidden={{if this.isAriaHidden \"true\"}}\n aria-label={{if @aria-label @aria-label this.titleId}}\n aria-labelledby={{if @aria-labelledby @aria-labelledby this.titleId}}\n {{! @glint-expect-error }}\n tabindex={{@tabIndex}}\n style={{this.optionalCustomStyles}}\n color={{@color}}\n ...attributes\n />\n {{/let}}\n {{else}}\n {{#if this.useImage}}\n <img\n {{! @glint-expect-error }}\n src={{this.icon}}\n class={{classNames\n @iconClasses\n this.optionalColorClass\n (if (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\")\n componentName=\"EuiIcon\"\n size=this.size\n }}\n color={{@color}}\n alt={{if @title @title}}\n {{! @glint-expect-error }}\n tabIndex={{@tabIndex}}\n ...attributes\n />\n {{else}}\n {{#if this.iconAsString}}\n {{svgJar\n this.iconAsString\n class=(classNames\n @iconClasses\n this.optionalColorClass\n (if\n (and this.isAppIcon (not this.appIconHasColor)) \"euiIcon--app\"\n )\n componentName=\"EuiIcon\"\n size=this.size\n )\n color=@color\n role=\"image\"\n aria-hidden=(if this.isAriaHidden \"true\")\n aria-label=(if @aria-label @aria-label this.titleId)\n aria-labelledby=(if @aria-labelledby @aria-labelledby this.titleId)\n tabindex=@tabIndex\n style=this.optionalCustomStyles\n }}\n {{/if}}\n {{/if}}\n {{/if}}\n </template>\n}\n"],"names":["TYPES","keysOf","typeToPathMap","COLORS","colorToClassMap","isNamedColor","name","Object","prototype","hasOwnProperty","call","isEuiIconType","x","EuiIcon","Component","g","service","i","void 0","argOrDefaultDecorator","useImage","type","args","useSvg","euiConfig","getConfig","icon","undefined","getEuiIconSvgPath","emptyIcon","isAppIcon","test","appIconHasColor","color","focusable","tabIndex","optionalCustomStyles","htmlSafe","optionalColorClass","isAriaHidden","title","titleId","guidFor","iconAsString","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","and","not","svgJar"],"mappings":"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"}
|
|
@@ -22,11 +22,11 @@ class EuiImage extends Component {
|
|
|
22
22
|
return false;
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
#isFullscreen = (i(this, "isFullscreen"),
|
|
25
|
+
#isFullscreen = (i(this, "isFullscreen"), void 0);
|
|
26
26
|
static {
|
|
27
27
|
g(this.prototype, "size", [argOrDefaultDecorator('original')]);
|
|
28
28
|
}
|
|
29
|
-
#size = (i(this, "size"),
|
|
29
|
+
#size = (i(this, "size"), void 0);
|
|
30
30
|
get sizeClass() {
|
|
31
31
|
return sizeMapping[this.size];
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-image.js","sources":["../../src/components/eui-image.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { htmlSafe } from '@ember/template';\n\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { eq, notEq, or } from 'ember-truth-helpers';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-image.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\n\ntype EuiImageSize = keyof typeof sizeMapping;\n\ntype ImageSize = EuiImageSize | number;\n\ntype FullScreenIconColor = 'light' | 'dark';\n\ntype ImageArgs = {\n /**\n * Separate from the caption is a title on the alt tag itself.\n * This one is required for accessibility.\n */\n alt: string;\n\n /*\n Determines the size of the image itself, can be a number or a string\n Default: 'm'\n */\n size?: ImageSize | number | string;\n\n /**\n * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.\n * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.\n */\n fullScreenIconColor?: FullScreenIconColor;\n\n url: string;\n\n /**\n * Provides the visible caption to the image\n */\n caption?: string;\n /**\n * When set to `true` (default) will apply a slight shadow to the image\n */\n hasShadow?: boolean;\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n allowFullScreen?: boolean;\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n float?: 'left' | 'right' | 'none';\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n margin?: 'none' | 's' | 'm' | 'l' | 'xl';\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n ariaLabel?: string;\n\n src?: string;\n};\n\nexport interface EuiImageSignature {\n Element: HTMLElement;\n Args: ImageArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiImage extends Component<ImageArgs> {\n @tracked isFullscreen = false;\n @argOrDefaultDecorator('original') size!: ImageArgs['size'];\n\n get sizeClass(): string | undefined {\n return sizeMapping[this.size as EuiImageSize];\n }\n\n get sizeStyle(): ReturnType<typeof htmlSafe> | string {\n const size = this.args.size;\n\n if (\n (typeof size === 'string' || typeof size === 'number') &&\n !this.sizeClass\n ) {\n return htmlSafe(\n `max-height:${this.args.size}px; max-width:${this.args.size}px; width:auto;`\n );\n }\n\n return '';\n }\n\n @action\n toggleFullscreen(e: Event): void {\n e.stopPropagation();\n e.preventDefault();\n this.isFullscreen = !this.isFullscreen;\n }\n\n get sizeString() {\n if (typeof this.args.size === 'string') {\n return this.args.size;\n }\n }\n\n <template>\n {{#if @allowFullScreen}}\n <figure\n class={{classNames\n \"euiImage--allowFullScreen\"\n (unless (eq @hasShadow false) \"euiImage--hasShadow\")\n float=@float\n margin=@margin\n componentName=\"EuiImage\"\n size=this.sizeString\n }}\n {{!@glint-expect-error}}\n ...attributes\n >\n\n <button\n class=\"euiImage__button\"\n type=\"button\"\n aria-label={{@ariaLabel}}\n {{on \"click\" this.toggleFullscreen}}\n >\n <img\n src={{or @src @url}}\n class=\"euiImage__img\"\n style={{this.sizeStyle}}\n alt={{@alt}}\n />\n <EuiIcon\n @iconClasses=\"euiImage__icon\"\n @type=\"fullScreen\"\n @color={{if (notEq @fullScreenIconColor \"dark\") \"ghost\"}}\n />\n </button>\n\n {{#if @caption}}\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n {{/if}}\n </figure>\n\n {{else}}\n\n <figure\n class={{classNames\n (unless (eq @hasShadow false) \"euiImage--hasShadow\")\n float=@float\n margin=@margin\n componentName=\"EuiImage\"\n size=this.sizeString\n }}\n {{!@glint-expect-error}}\n ...attributes\n >\n\n <img\n src={{or @src @url}}\n class=\"euiImage__img\"\n style={{this.sizeStyle}}\n alt={{@alt}}\n />\n\n {{#if @caption}}\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n {{/if}}\n </figure>\n\n {{/if}}\n\n {{#if this.isFullscreen}}\n <EuiOverlayMask\n @headerZindexLocation=\"above\"\n @onClick={{this.toggleFullscreen}}\n >\n <figure\n class=\"euiImage euiImage-isFullScreen\"\n {{focusTrap focusTrapOptions=(hash clickOutsideDeactivates=true)}}\n >\n <button\n class=\"euiImage__button\"\n type=\"button\"\n {{on \"click\" this.toggleFullscreen}}\n {{onKey \"Escape\" this.toggleFullscreen}}\n >\n <img\n class=\"euiImage-isFullScreen__img\"\n src={{or @src @url}}\n alt={{@alt}}\n />\n </button>\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n </figure>\n <EuiIcon\n @iconClasses=\"euiImage-isFullScreenCloseIcon\"\n @type=\"cross\"\n @color={{if (notEq @fullScreenIconColor \"dark\") \"ghost\"}}\n />\n </EuiOverlayMask>\n {{/if}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","sizeClass","sizeMapping","size","sizeStyle","args","htmlSafe","toggleFullscreen","e","stopPropagation","preventDefault","isFullscreen","n","action","sizeString","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","on","or","EuiIcon","notEq","EuiOverlayMask","focusTrap","hash","onKey"],"mappings":";;;;;;;;;;;;;;;;;;AAmFe,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-image.js","sources":["../../src/components/eui-image.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { htmlSafe } from '@ember/template';\n\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { eq, notEq, or } from 'ember-truth-helpers';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-image.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\n\ntype EuiImageSize = keyof typeof sizeMapping;\n\ntype ImageSize = EuiImageSize | number;\n\ntype FullScreenIconColor = 'light' | 'dark';\n\ntype ImageArgs = {\n /**\n * Separate from the caption is a title on the alt tag itself.\n * This one is required for accessibility.\n */\n alt: string;\n\n /*\n Determines the size of the image itself, can be a number or a string\n Default: 'm'\n */\n size?: ImageSize | number | string;\n\n /**\n * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.\n * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.\n */\n fullScreenIconColor?: FullScreenIconColor;\n\n url: string;\n\n /**\n * Provides the visible caption to the image\n */\n caption?: string;\n /**\n * When set to `true` (default) will apply a slight shadow to the image\n */\n hasShadow?: boolean;\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n allowFullScreen?: boolean;\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n float?: 'left' | 'right' | 'none';\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n margin?: 'none' | 's' | 'm' | 'l' | 'xl';\n\n /**\n * When set to `true` will make the image clickable to a larger version\n */\n ariaLabel?: string;\n\n src?: string;\n};\n\nexport interface EuiImageSignature {\n Element: HTMLElement;\n Args: ImageArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiImage extends Component<ImageArgs> {\n @tracked isFullscreen = false;\n @argOrDefaultDecorator('original') size!: ImageArgs['size'];\n\n get sizeClass(): string | undefined {\n return sizeMapping[this.size as EuiImageSize];\n }\n\n get sizeStyle(): ReturnType<typeof htmlSafe> | string {\n const size = this.args.size;\n\n if (\n (typeof size === 'string' || typeof size === 'number') &&\n !this.sizeClass\n ) {\n return htmlSafe(\n `max-height:${this.args.size}px; max-width:${this.args.size}px; width:auto;`\n );\n }\n\n return '';\n }\n\n @action\n toggleFullscreen(e: Event): void {\n e.stopPropagation();\n e.preventDefault();\n this.isFullscreen = !this.isFullscreen;\n }\n\n get sizeString() {\n if (typeof this.args.size === 'string') {\n return this.args.size;\n }\n }\n\n <template>\n {{#if @allowFullScreen}}\n <figure\n class={{classNames\n \"euiImage--allowFullScreen\"\n (unless (eq @hasShadow false) \"euiImage--hasShadow\")\n float=@float\n margin=@margin\n componentName=\"EuiImage\"\n size=this.sizeString\n }}\n {{!@glint-expect-error}}\n ...attributes\n >\n\n <button\n class=\"euiImage__button\"\n type=\"button\"\n aria-label={{@ariaLabel}}\n {{on \"click\" this.toggleFullscreen}}\n >\n <img\n src={{or @src @url}}\n class=\"euiImage__img\"\n style={{this.sizeStyle}}\n alt={{@alt}}\n />\n <EuiIcon\n @iconClasses=\"euiImage__icon\"\n @type=\"fullScreen\"\n @color={{if (notEq @fullScreenIconColor \"dark\") \"ghost\"}}\n />\n </button>\n\n {{#if @caption}}\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n {{/if}}\n </figure>\n\n {{else}}\n\n <figure\n class={{classNames\n (unless (eq @hasShadow false) \"euiImage--hasShadow\")\n float=@float\n margin=@margin\n componentName=\"EuiImage\"\n size=this.sizeString\n }}\n {{!@glint-expect-error}}\n ...attributes\n >\n\n <img\n src={{or @src @url}}\n class=\"euiImage__img\"\n style={{this.sizeStyle}}\n alt={{@alt}}\n />\n\n {{#if @caption}}\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n {{/if}}\n </figure>\n\n {{/if}}\n\n {{#if this.isFullscreen}}\n <EuiOverlayMask\n @headerZindexLocation=\"above\"\n @onClick={{this.toggleFullscreen}}\n >\n <figure\n class=\"euiImage euiImage-isFullScreen\"\n {{focusTrap focusTrapOptions=(hash clickOutsideDeactivates=true)}}\n >\n <button\n class=\"euiImage__button\"\n type=\"button\"\n {{on \"click\" this.toggleFullscreen}}\n {{onKey \"Escape\" this.toggleFullscreen}}\n >\n <img\n class=\"euiImage-isFullScreen__img\"\n src={{or @src @url}}\n alt={{@alt}}\n />\n </button>\n <figcaption class=\"euiImage__caption\">\n {{@caption}}\n </figcaption>\n </figure>\n <EuiIcon\n @iconClasses=\"euiImage-isFullScreenCloseIcon\"\n @type=\"cross\"\n @color={{if (notEq @fullScreenIconColor \"dark\") \"ghost\"}}\n />\n </EuiOverlayMask>\n {{/if}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","sizeClass","sizeMapping","size","sizeStyle","args","htmlSafe","toggleFullscreen","e","stopPropagation","preventDefault","isFullscreen","n","action","sizeString","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","on","or","EuiIcon","notEq","EuiOverlayMask","focusTrap","hash","onKey"],"mappings":";;;;;;;;;;;;;;;;;;AAmFe,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAuB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,MAAA,EAAA,CAC7BI,qBAAsB,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAEvB,IAAIE,SAAaA,GAAmB;AAClC,IAAA,OAAOC,WAAW,CAAC,IAAI,CAACC,IAAI,CAAiB;AAC/C;EAEA,IAAIC,SAAaA,GAAqC;AACpD,IAAA,MAAMD,IAAO,GAAA,IAAI,CAACE,IAAI,CAACF,IAAI;AAE3B,IAAA,IACE,CAAC,OAAOA,IAAS,KAAA,QAAA,IAAY,OAAOA,IAAA,KAAS,QAAQ,KACrD,CAAC,IAAI,CAACF,SAAS,EACf;AACA,MAAA,OAAOK,SACL,CAAc,WAAA,EAAA,IAAI,CAACD,IAAI,CAACF,IAAI,CAAA,cAAA,EAAiB,IAAI,CAACE,IAAI,CAACF,IAAI,iBAAiB,CAAA;AAEhF;AAEA,IAAA,OAAO,EAAA;AACT;EAGAI,gBAAAA,CAAiBC,CAAQ,EAAQ;IAC/BA,CAAA,CAAEC,eAAe,EAAA;IACjBD,CAAA,CAAEE,cAAc,EAAA;AAChB,IAAA,IAAI,CAACC,YAAY,GAAG,CAAC,IAAI,CAACA,YAAY;AACxC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAhB,SAAA,EAAA,kBAAA,EAAA,CALCiB,MAAA,CAAA,CAAA;AAAA;EAOD,IAAIC,UAAaA,GAAA;IACf,IAAI,OAAO,IAAI,CAACT,IAAI,CAACF,IAAI,KAAK,QAAU,EAAA;AACtC,MAAA,OAAO,IAAI,CAACE,IAAI,CAACF,IAAI;AACvB;AACF;AAEA,EAAA;IAAAY,oBAAA,CAAAC,kBAAA,CAuGA,2mEAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,KAAA;wBAAAC,uBAAA;QAAAC,SAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -11,13 +11,13 @@ class EuiImage extends Component {
|
|
|
11
11
|
return null;
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
#ref = (i(this, "ref"),
|
|
14
|
+
#ref = (i(this, "ref"), void 0);
|
|
15
15
|
static {
|
|
16
16
|
g(this.prototype, "innerText", [tracked], function () {
|
|
17
17
|
return '';
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
#innerText = (i(this, "innerText"),
|
|
20
|
+
#innerText = (i(this, "innerText"), void 0);
|
|
21
21
|
observer = null;
|
|
22
22
|
get innerTextFallback() {
|
|
23
23
|
return this.args.fallback ?? '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-inner-text.js","sources":["../../src/components/eui-inner-text.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\n\nexport interface EuiInnerTextSignature {\n Args: {\n fallback?: string;\n };\n\n Blocks: {\n default: [(ref: HTMLElement) => void, string];\n };\n}\n\nexport default class EuiImage extends Component<EuiInnerTextSignature> {\n @tracked ref: HTMLElement | null = null;\n @tracked innerText = '';\n observer: MutationObserver | null = null;\n\n get innerTextFallback() {\n return this.args.fallback ?? '';\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.updateInnerText(this.ref);\n });\n\n if (this.ref) {\n this.updateInnerText(this.ref);\n this.observer.observe(this.ref, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n updateInnerText(node: HTMLElement | null) {\n if (!node) return;\n this.setInnerText(\n // Check for `innerText` implementation rather than a simple OR check\n // because in real cases the result of `innerText` could correctly be `null`\n // while the result of `textContent` could correctly be non-`null` due to\n // differing reliance on browser layout calculations.\n // We prefer the result of `innerText`, if available.\n 'innerText' in node\n ? node.innerText\n : (node as HTMLElement).textContent || this.innerTextFallback\n );\n }\n\n setInnerText(text: string) {\n this.innerText = text;\n }\n\n @action\n setRef(ref: HTMLElement): void {\n this.ref = ref;\n this.setupObserver();\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n\n <template>\n {{yield this.setRef this.innerText}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","observer","innerTextFallback","args","fallback","setupObserver","disconnect","MutationObserver","mutationsList","length","updateInnerText","ref","observe","characterData","subtree","childList","node","setInnerText","innerText","textContent","text","setRef","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;AAee,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,KAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkC,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,IAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-inner-text.js","sources":["../../src/components/eui-inner-text.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\n\nexport interface EuiInnerTextSignature {\n Args: {\n fallback?: string;\n };\n\n Blocks: {\n default: [(ref: HTMLElement) => void, string];\n };\n}\n\nexport default class EuiImage extends Component<EuiInnerTextSignature> {\n @tracked ref: HTMLElement | null = null;\n @tracked innerText = '';\n observer: MutationObserver | null = null;\n\n get innerTextFallback() {\n return this.args.fallback ?? '';\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.updateInnerText(this.ref);\n });\n\n if (this.ref) {\n this.updateInnerText(this.ref);\n this.observer.observe(this.ref, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n updateInnerText(node: HTMLElement | null) {\n if (!node) return;\n this.setInnerText(\n // Check for `innerText` implementation rather than a simple OR check\n // because in real cases the result of `innerText` could correctly be `null`\n // while the result of `textContent` could correctly be non-`null` due to\n // differing reliance on browser layout calculations.\n // We prefer the result of `innerText`, if available.\n 'innerText' in node\n ? node.innerText\n : (node as HTMLElement).textContent || this.innerTextFallback\n );\n }\n\n setInnerText(text: string) {\n this.innerText = text;\n }\n\n @action\n setRef(ref: HTMLElement): void {\n this.ref = ref;\n this.setupObserver();\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n\n <template>\n {{yield this.setRef this.innerText}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","observer","innerTextFallback","args","fallback","setupObserver","disconnect","MutationObserver","mutationsList","length","updateInnerText","ref","observe","characterData","subtree","childList","node","setInnerText","innerText","textContent","text","setRef","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;AAee,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,KAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkC,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,IAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACvCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAoB,EAAG;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AACxBC,EAAAA,QAAU,GAA0B,IAAK;EAEzC,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,IAAI,EAAA;AAC/B;AAEAC,EAAAA,aAAgBA,GAAA;AACd,IAAA,IAAI,CAACJ,QAAQ,EAAEK,UAAA,EAAA;AACf,IAAA,IAAI,CAACL,QAAQ,GAAG,IAAIM,iBAAkBC,aAAA,IAAA;MACpC,IAAIA,aAAA,CAAcC,MAAM,EAAE,IAAI,CAACC,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;AACzD,KAAA,CAAA;IAEA,IAAI,IAAI,CAACA,GAAG,EAAE;AACZ,MAAA,IAAI,CAACD,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;MAC7B,IAAI,CAACV,QAAQ,CAACW,OAAO,CAAC,IAAI,CAACD,GAAG,EAAE;AAC9BE,QAAAA,aAAe,EAAA,IAAA;AACfC,QAAAA,OAAS,EAAA,IAAA;AACTC,QAAAA,SAAW,EAAA;AACb,OAAA,CAAA;AACF;AACF;EAEAL,eAAgBA,CAAAM,IAAwB,EAAE;IACxC,IAAI,CAACA,IAAM,EAAA;AACX,IAAA,IAAI,CAACC,YAAY;AACf;AACA;AACA;AACA;AACA;AACA,IAAA,WAAA,IAAeD,IACX,GAAAA,IAAA,CAAKE,SAAS,GACbF,IAAA,CAAqBG,WAAW,IAAI,IAAI,CAACjB,iBAAiB,CAAA;AAEnE;EAEAe,YAAaA,CAAAG,IAAY,EAAE;IACzB,IAAI,CAACF,SAAS,GAAGE,IAAA;AACnB;EAGAC,MAAAA,CAAOV,GAAgB,EAAQ;IAC7B,IAAI,CAACA,GAAG,GAAGA,GAAA;IACX,IAAI,CAACN,aAAa,EAAA;AACpB;AAAA,EAAA;IAAAiB,CAAA,CAAA,IAAA,CAAAzB,SAAA,EAAA,QAAA,EAAA,CAJC0B,MAAA,CAAA,CAAA;AAAA;AAMDC,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AACN,IAAA,IAAI,CAACvB,QAAQ,EAAEK,UAAA,EAAA;AACjB;AAEA,EAAA;IAAAmB,oBAAA,CAAAC,kBAAA,CAEA,gDAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -19,43 +19,43 @@ class EuiInputPopoverComponent extends Component {
|
|
|
19
19
|
static {
|
|
20
20
|
g(this.prototype, "anchorPosition", [argOrDefaultDecorator('downLeft')]);
|
|
21
21
|
}
|
|
22
|
-
#anchorPosition = (i(this, "anchorPosition"),
|
|
22
|
+
#anchorPosition = (i(this, "anchorPosition"), void 0); // Defaults
|
|
23
23
|
static {
|
|
24
24
|
g(this.prototype, "attachToAnchor", [argOrDefaultDecorator(true)]);
|
|
25
25
|
}
|
|
26
|
-
#attachToAnchor = (i(this, "attachToAnchor"),
|
|
26
|
+
#attachToAnchor = (i(this, "attachToAnchor"), void 0);
|
|
27
27
|
static {
|
|
28
28
|
g(this.prototype, "display", [argOrDefaultDecorator('block')]);
|
|
29
29
|
}
|
|
30
|
-
#display = (i(this, "display"),
|
|
30
|
+
#display = (i(this, "display"), void 0);
|
|
31
31
|
static {
|
|
32
32
|
g(this.prototype, "panelPaddingSize", [argOrDefaultDecorator('s')]);
|
|
33
33
|
}
|
|
34
|
-
#panelPaddingSize = (i(this, "panelPaddingSize"),
|
|
34
|
+
#panelPaddingSize = (i(this, "panelPaddingSize"), void 0);
|
|
35
35
|
static {
|
|
36
36
|
g(this.prototype, "fullWidth", [argOrDefaultDecorator(false)]);
|
|
37
37
|
}
|
|
38
|
-
#fullWidth = (i(this, "fullWidth"),
|
|
38
|
+
#fullWidth = (i(this, "fullWidth"), void 0);
|
|
39
39
|
static {
|
|
40
40
|
g(this.prototype, "disableFocusTrap", [argOrDefaultDecorator(false)]);
|
|
41
41
|
}
|
|
42
|
-
#disableFocusTrap = (i(this, "disableFocusTrap"),
|
|
42
|
+
#disableFocusTrap = (i(this, "disableFocusTrap"), void 0);
|
|
43
43
|
static {
|
|
44
44
|
g(this.prototype, "panel", [tracked], function () {
|
|
45
45
|
return null;
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
#panel = (i(this, "panel"),
|
|
48
|
+
#panel = (i(this, "panel"), void 0); //State
|
|
49
49
|
static {
|
|
50
50
|
g(this.prototype, "input", [tracked], function () {
|
|
51
51
|
return null;
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
#input = (i(this, "input"),
|
|
54
|
+
#input = (i(this, "input"), void 0);
|
|
55
55
|
static {
|
|
56
56
|
g(this.prototype, "inputWidth", [tracked]);
|
|
57
57
|
}
|
|
58
|
-
#inputWidth = (i(this, "inputWidth"),
|
|
58
|
+
#inputWidth = (i(this, "inputWidth"), void 0);
|
|
59
59
|
///
|
|
60
60
|
didInsertPanel(panel) {
|
|
61
61
|
this.panel = panel;
|