@ember-eui/core 12.0.1 → 12.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/common.d.ts +1 -1
- package/declarations/components/common.d.ts.map +1 -1
- package/declarations/components/eui-accordion.d.ts.map +1 -1
- package/declarations/components/eui-badge.d.ts.map +1 -1
- package/declarations/components/eui-button-group-button.d.ts.map +1 -1
- package/declarations/components/eui-combo-box.d.ts +1 -1
- package/declarations/components/eui-combo-box.d.ts.map +1 -1
- package/declarations/components/eui-described-form-group.d.ts +2 -0
- package/declarations/components/eui-described-form-group.d.ts.map +1 -1
- package/declarations/components/eui-dual-range.d.ts.map +1 -1
- package/declarations/components/eui-header-section-item-button.d.ts.map +1 -1
- package/declarations/components/eui-list-group-item.d.ts.map +1 -1
- package/declarations/components/eui-loading-content.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
- package/declarations/components/eui-markdown-format.d.ts.map +1 -1
- package/declarations/components/eui-notification-event-messages.d.ts.map +1 -1
- package/declarations/components/eui-page-header-content.d.ts.map +1 -1
- package/declarations/components/eui-popover.d.ts.map +1 -1
- package/declarations/components/eui-range.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/index.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/index.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/utils/time-options.d.ts +1 -0
- package/declarations/components/eui-super-date-picker/utils/time-options.d.ts.map +1 -1
- package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
- package/declarations/utils/common.d.ts +42 -0
- package/declarations/utils/common.d.ts.map +1 -0
- package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js +63 -0
- package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js.map +1 -0
- package/dist/components/common.js +1 -19
- package/dist/components/common.js.map +1 -1
- package/dist/components/eui-accordion.js +9 -9
- package/dist/components/eui-accordion.js.map +1 -1
- package/dist/components/eui-auto-sizer.js +2 -2
- package/dist/components/eui-auto-sizer.js.map +1 -1
- package/dist/components/eui-badge.js +1 -1
- package/dist/components/eui-badge.js.map +1 -1
- package/dist/components/eui-bottom-bar.js +1 -1
- package/dist/components/eui-bottom-bar.js.map +1 -1
- package/dist/components/eui-breadcrumbs.js +2 -2
- package/dist/components/eui-breadcrumbs.js.map +1 -1
- package/dist/components/eui-button-group-button.js +7 -3
- package/dist/components/eui-button-group-button.js.map +1 -1
- package/dist/components/eui-card-select.js +1 -1
- package/dist/components/eui-card-select.js.map +1 -1
- package/dist/components/eui-card.js +2 -2
- package/dist/components/eui-card.js.map +1 -1
- package/dist/components/eui-checkbox.js +1 -1
- package/dist/components/eui-checkbox.js.map +1 -1
- package/dist/components/eui-code-block.js +7 -7
- package/dist/components/eui-code-block.js.map +1 -1
- package/dist/components/eui-code.js +2 -2
- package/dist/components/eui-code.js.map +1 -1
- package/dist/components/eui-collapsible-nav.js +1 -1
- package/dist/components/eui-collapsible-nav.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js +1 -1
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/options.js +1 -1
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box/trigger.js +1 -1
- package/dist/components/eui-combo-box/trigger.js.map +1 -1
- package/dist/components/eui-combo-box-pill.js +1 -1
- package/dist/components/eui-combo-box-pill.js.map +1 -1
- package/dist/components/eui-combo-box.js +9 -11
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-context-menu-item.js +1 -1
- package/dist/components/eui-context-menu-item.js.map +1 -1
- package/dist/components/eui-copy.js +1 -1
- package/dist/components/eui-copy.js.map +1 -1
- package/dist/components/eui-described-form-group.js +1 -1
- package/dist/components/eui-described-form-group.js.map +1 -1
- package/dist/components/eui-dual-range.js +17 -17
- package/dist/components/eui-dual-range.js.map +1 -1
- package/dist/components/eui-field-number.js +1 -1
- package/dist/components/eui-field-number.js.map +1 -1
- package/dist/components/eui-field-password.js +1 -1
- package/dist/components/eui-field-password.js.map +1 -1
- package/dist/components/eui-field-search.js +3 -3
- package/dist/components/eui-field-search.js.map +1 -1
- package/dist/components/eui-field-text.js +1 -1
- package/dist/components/eui-field-text.js.map +1 -1
- package/dist/components/eui-file-picker.js +6 -6
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-flyout.js +2 -2
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-global-toast-list.js +4 -4
- package/dist/components/eui-global-toast-list.js.map +1 -1
- package/dist/components/eui-header-links.js +1 -1
- package/dist/components/eui-header-links.js.map +1 -1
- package/dist/components/eui-header-section-item-button.js +3 -3
- package/dist/components/eui-header-section-item-button.js.map +1 -1
- package/dist/components/eui-i18n.js +1 -1
- package/dist/components/eui-i18n.js.map +1 -1
- package/dist/components/eui-icon.js +2 -2
- package/dist/components/eui-icon.js.map +1 -1
- package/dist/components/eui-image.js +2 -2
- package/dist/components/eui-image.js.map +1 -1
- package/dist/components/eui-inner-text.js +2 -2
- package/dist/components/eui-inner-text.js.map +1 -1
- package/dist/components/eui-input-popover.js +9 -9
- package/dist/components/eui-input-popover.js.map +1 -1
- package/dist/components/eui-list-group-item.js +1 -4
- package/dist/components/eui-list-group-item.js.map +1 -1
- package/dist/components/eui-loading-content.js +17 -5
- package/dist/components/eui-loading-content.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js +2 -2
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor.js +16 -16
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format.js +1 -1
- package/dist/components/eui-markdown-format.js.map +1 -1
- package/dist/components/eui-modal.js +1 -1
- package/dist/components/eui-modal.js.map +1 -1
- package/dist/components/eui-notification-event-messages.js +4 -2
- package/dist/components/eui-notification-event-messages.js.map +1 -1
- package/dist/components/eui-notification-event-meta.js +2 -2
- package/dist/components/eui-notification-event-meta.js.map +1 -1
- package/dist/components/eui-notification-event.js +1 -1
- package/dist/components/eui-notification-event.js.map +1 -1
- package/dist/components/eui-overlay-mask.js +1 -1
- package/dist/components/eui-overlay-mask.js.map +1 -1
- package/dist/components/eui-page-header-content.js +4 -4
- package/dist/components/eui-page-header-content.js.map +1 -1
- package/dist/components/eui-page-template.js +3 -3
- package/dist/components/eui-page-template.js.map +1 -1
- package/dist/components/eui-popover.js +22 -22
- package/dist/components/eui-popover.js.map +1 -1
- package/dist/components/eui-portal.js +1 -1
- package/dist/components/eui-portal.js.map +1 -1
- package/dist/components/eui-radio.js +1 -1
- package/dist/components/eui-radio.js.map +1 -1
- package/dist/components/eui-range-ticks.js +1 -1
- package/dist/components/eui-range-ticks.js.map +1 -1
- package/dist/components/eui-range-track.js +1 -1
- package/dist/components/eui-range-track.js.map +1 -1
- package/dist/components/eui-range.js +15 -15
- package/dist/components/eui-range.js.map +1 -1
- package/dist/components/eui-select.js +1 -1
- package/dist/components/eui-select.js.map +1 -1
- package/dist/components/eui-show-for.js +1 -1
- package/dist/components/eui-show-for.js.map +1 -1
- package/dist/components/eui-side-nav-item.js +1 -1
- package/dist/components/eui-side-nav-item.js.map +1 -1
- package/dist/components/eui-side-nav.js +1 -1
- package/dist/components/eui-side-nav.js.map +1 -1
- package/dist/components/eui-step-horizontal.js +1 -1
- package/dist/components/eui-step-horizontal.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +3 -3
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js +8 -8
- package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +2 -2
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +2 -2
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +4 -4
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +4 -4
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +2 -2
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/date-utils.js +1 -1
- package/dist/components/eui-super-date-picker/utils/date-utils.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/index.js +1 -1
- package/dist/components/eui-super-date-picker/utils/index.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/pretty-duration.js +1 -1
- package/dist/components/eui-super-date-picker/utils/pretty-duration.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/quick-select.js +1 -1
- package/dist/components/eui-super-date-picker/utils/quick-select.js.map +1 -1
- package/dist/components/eui-super-date-picker/utils/time-options.js +1 -1
- package/dist/components/eui-super-date-picker/utils/time-options.js.map +1 -1
- package/dist/components/eui-super-date-picker.js +13 -13
- package/dist/components/eui-super-date-picker.js.map +1 -1
- package/dist/components/eui-tabbed-content.js +4 -4
- package/dist/components/eui-tabbed-content.js.map +1 -1
- package/dist/components/eui-text-area.js +1 -1
- package/dist/components/eui-text-area.js.map +1 -1
- package/dist/components/eui-tool-tip.js +9 -9
- package/dist/components/eui-tool-tip.js.map +1 -1
- package/dist/helpers/get-eui-config.js +1 -1
- package/dist/helpers/get-eui-config.js.map +1 -1
- package/dist/helpers/use-state.js +1 -1
- package/dist/helpers/use-state.js.map +1 -1
- package/dist/services/eui-config.js +1 -1
- package/dist/services/eui-config.js.map +1 -1
- package/dist/services/eui-toaster.js +1 -1
- package/dist/services/eui-toaster.js.map +1 -1
- package/package.json +9 -123
- package/dist/_app_/utils/accesibility/accessible-click-keys.js +0 -1
- package/dist/_app_/utils/accesibility/cascading-menu-keys.js +0 -1
- package/dist/_app_/utils/accesibility/combo-box-keys.js +0 -1
- package/dist/_app_/utils/accesibility/index.js +0 -1
- package/dist/_app_/utils/breakpoint.js +0 -1
- package/dist/_app_/utils/browser/browser.js +0 -1
- package/dist/_app_/utils/browser/index.js +0 -1
- package/dist/_app_/utils/code/utils.js +0 -1
- package/dist/_app_/utils/color/color_palette.js +0 -1
- package/dist/_app_/utils/color/eui_palettes.js +0 -1
- package/dist/_app_/utils/color/index.js +0 -1
- package/dist/_app_/utils/copy-to-clipboard.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-accordion.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-avatar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-badge-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-beta-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-bottom-bar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-empty.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-group-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-call-out.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-card-select.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-card.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-code-block.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-collapsible-nav-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-comment-event.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-comment-timeline-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-context-menu-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-described-form-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-description-list.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-empty-prompt.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-file-picker.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-grid.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flex-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-flyout.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-form-control-layout-clear-button.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-form-row.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-global-toast-list.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-links.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-section-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header-section.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-header.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-health.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-horizontal-rule.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-icon.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-image.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-link.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-list-group-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-list-group.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-loading-spinner.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-modal.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-notification-badge.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-body.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-content-body.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-content.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-header.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page-side-bar.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-page.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-panel.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover-footer.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover-title.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-popover.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-progress-data.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-progress.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-highlight.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-input.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-range-levels.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-selectable-list-item.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-spacer.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-stat.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-step-number.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-tabs.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-align.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-area.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text-color.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-text.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-title.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-toast.js +0 -1
- package/dist/_app_/utils/css-mappings/eui-tool-tip.js +0 -1
- package/dist/_app_/utils/css-mappings/index.js +0 -1
- package/dist/_app_/utils/detect-element-resize.js +0 -1
- package/dist/_app_/utils/index.js +0 -1
- package/dist/_app_/utils/keys.js +0 -1
- package/dist/_app_/utils/markdown/markdown-actions.js +0 -1
- package/dist/_app_/utils/markdown/markdown-modes.js +0 -1
- package/dist/_app_/utils/markdown/markdown-types.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-add-components/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-add-components/processor.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-checkbox/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-checkbox/parser.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/index.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/parser.js +0 -1
- package/dist/_app_/utils/markdown/plugins/markdown-tooltip/plugin.js +0 -1
- package/dist/_app_/utils/markdown/plugins/to-dom.js +0 -1
- package/dist/_app_/utils/markdown/remark/remark-prismjs.js +0 -1
- package/dist/_app_/utils/maybe-unwrap-proxy.js +0 -1
- package/dist/_app_/utils/number/index.js +0 -1
- package/dist/_app_/utils/number/number.js +0 -1
- package/dist/_app_/utils/popover/index.js +0 -1
- package/dist/_app_/utils/popover/types.js +0 -1
- package/dist/_app_/utils/predicate/common_predicates.js +0 -1
- package/dist/_app_/utils/predicate/index.js +0 -1
- package/dist/_app_/utils/predicate/lodash_predicates.js +0 -1
- package/dist/_app_/utils/range/index.js +0 -1
- package/dist/_app_/utils/timer.js +0 -1
- package/dist/_app_/utils/transition.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-accordion.js","sources":["../../src/components/eui-accordion.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport queue from 'ember-composable-helpers/helpers/queue';\nimport { element } from 'ember-element-helper';\nimport set from 'ember-set-helper/helpers/set';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\n\nimport type { paddingMapping } from '../utils/css-mappings/eui-accordion.ts';\nimport type { CommonArgs } from './common.ts';\n\ntype EuiAccordionPaddingSize = keyof typeof paddingMapping;\n\ntype AccordionArgs = {\n id?: string;\n\n element?: 'div' | 'fieldset';\n /**\n * Class that will apply to the trigger for the accordion.\n */\n buttonClassName?: string;\n\n buttonProps?: CommonArgs;\n\n /**\n * Applied to the main button receiving the `onToggle` event.\n * Anything other than the default `button` does not support removing the arrow display (for accessibility of focus).\n */\n buttonElement?: 'div' | 'legend' | 'button';\n /**\n * Extra props to pass to the EuiButtonIcon containing the arrow.\n */\n arrowProps?: {\n className?: string;\n };\n\n /**\n * Class that will apply to the trigger content for the accordion.\n */\n buttonContentClassName?: string;\n /**\n * The content of the clickable trigger\n */\n buttonContent?: Component;\n /**\n * Will appear right aligned against the button. Useful for separate actions like deletions.\n */\n extraAction?: Component | boolean;\n /**\n * The accordion will start in the open state.\n */\n initialIsOpen?: boolean;\n /**\n * Optional callback method called on open and close with a single `isOpen` parameter\n */\n onToggle?: (isOpen: boolean) => void;\n /**\n * The padding around the exposed accordion content.\n */\n paddingSize?: EuiAccordionPaddingSize;\n /**\n * Placement of the arrow indicator, or 'none' to hide it.\n */\n arrowDisplay?: 'left' | 'right' | 'none';\n /**\n * Control the opening of accordion via prop\n */\n forceState?: 'closed' | 'open';\n /**\n * Change `extraAction` and children into a loading spinner\n */\n isLoading?: boolean;\n /**\n * Choose whether the loading message replaces the content. Customize the message by passing a node\n */\n isLoadingMessage?: boolean | Component;\n\n isOpen?: boolean;\n\n childClassName?: string;\n triggerClassName?: string;\n childContentClassName?: string;\n};\n\nexport interface EuiAccordionSignature {\n Element: any;\n Args: AccordionArgs;\n Blocks: {\n buttonContent: [boolean | undefined];\n content: [];\n extraAction: [boolean | undefined];\n };\n}\n\nexport default class EuiAccordionAccordionComponent extends Component<EuiAccordionSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isLoading!: boolean;\n @argOrDefaultDecorator(false) isLoadingMessage!: boolean;\n @argOrDefaultDecorator(false) initialIsOpen!: boolean;\n @argOrDefaultDecorator('none') paddingSize!: EuiAccordionPaddingSize;\n @argOrDefaultDecorator('left') arrowDisplay!: AccordionArgs['arrowDisplay'];\n\n @tracked _opened;\n @tracked childWrapper: HTMLDivElement | null = null;\n @tracked childContent: HTMLDivElement | null = null;\n\n constructor(owner: Owner, args: AccordionArgs) {\n super(owner, args);\n\n this._opened = this.args.forceState\n ? this.args.forceState === 'open'\n : this.args.initialIsOpen;\n }\n\n get buttonElement() {\n return this.args.element === 'fieldset' ? 'legend' : 'button';\n }\n\n get buttonElementIsFocusable() {\n return this.buttonElement === 'button';\n }\n\n get _arrowDisplay() {\n return this.arrowDisplay === 'none' && !this.buttonElementIsFocusable\n ? 'left'\n : this.arrowDisplay;\n }\n\n get isOpen(): boolean | undefined {\n return this.args.forceState\n ? this.args.forceState === 'open'\n : this._opened;\n }\n\n get hasLoadingMessage(): boolean {\n return this.isLoadingMessage && this.isLoadingMessage !== true;\n }\n\n get buttonClasses(): string {\n return [\n 'euiAccordion__button',\n this.args.buttonClassName,\n this.args.buttonProps?.className\n ].join(' ');\n }\n\n get buttonContentClasses(): string {\n return [\n 'euiAccordion__buttonContent',\n this.args.buttonContentClassName\n ].join(' ');\n }\n\n get childContentStyle(): string | ReturnType<typeof htmlSafe> {\n return this._opened ? '' : htmlSafe(`height: 0px;`);\n }\n\n setChildContentHeight = () => {\n const { forceState } = this.args;\n\n requestAnimationFrame(() => {\n const height =\n this.childContent && (forceState ? forceState === 'open' : this._opened)\n ? this.childContent.clientHeight\n : 0;\n\n this.childWrapper &&\n this.childWrapper.setAttribute('style', `height: ${height}px`);\n });\n };\n\n @action\n onToggle(): void {\n if (this.args.forceState) {\n this.args.onToggle?.(this.args.forceState === 'open' ? false : true);\n } else {\n this._opened = !this._opened;\n\n if (this._opened && this.childWrapper) {\n this.childWrapper.focus();\n }\n\n this.args.onToggle?.(this._opened);\n }\n }\n\n <template>\n {{#let (argOrDefault @element \"div\") as |tagName|}}\n {{#if tagName}}\n {{#let\n (element tagName) (element this.buttonElement)\n as |Accordion ButtonElement|\n }}\n {{#if (and Accordion ButtonElement)}}\n <Accordion\n class={{classNames\n (if this.isOpen \"euiAccordion-isOpen\")\n componentName=\"EuiAccordion\"\n }}\n ...attributes\n >\n <div\n class={{classNames\n \"euiAccordion__triggerWrapper\"\n @triggerClassName\n }}\n >\n {{#if (eq this._arrowDisplay \"left\")}}\n <EuiButtonIcon\n class={{classNames\n \"euiAccordion__iconButton\"\n (if this.isOpen \"euiAccordion__iconButton-isOpen\")\n (if\n (eq this._arrowDisplay \"right\")\n \"euiAccordion__iconButton--right\"\n )\n (if @arrowProps.className @arrowProps.className)\n }}\n @iconType=\"arrowRight\"\n {{on \"click\" this.onToggle}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n tabindex={{if this.buttonElementIsFocusable \"-1\" \"0\"}}\n />\n {{/if}}\n <ButtonElement\n type=\"button\"\n id={{argOrDefault @buttonProps.id (randomId)}}\n class={{this.buttonClasses}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n aria-labelledby={{argOrDefault @buttonProps.id (randomId)}}\n {{on \"click\" this.onToggle}}\n >\n <span class={{this.buttonContentClasses}}>\n {{yield this.isOpen to=\"buttonContent\"}}\n </span>\n </ButtonElement>\n {{#if\n (and\n @extraAction (has-block \"extraAction\") (not this.isLoading)\n )\n }}\n <div class=\"euiAccordion__optionalAction\">\n {{yield this.isOpen to=\"extraAction\"}}\n </div>\n {{else if this.isLoading}}\n <div class=\"euiAccordion__optionalAction\">\n <EuiLoadingSpinner />\n </div>\n {{/if}}\n {{#if (eq this._arrowDisplay \"right\")}}\n <EuiButtonIcon\n @color=\"text\"\n class={{classNames\n \"euiAccordion__iconButton\"\n (if this.isOpen \"euiAccordion__iconButton-isOpen\")\n (if\n (eq this._arrowDisplay \"right\")\n \"euiAccordion__iconButton--right\"\n )\n (if @arrowProps.className @arrowProps.className)\n }}\n @iconType=\"arrowRight\"\n {{on \"click\" this.onToggle}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n tabindex={{if this.buttonElementIsFocusable \"-1\" \"0\"}}\n />\n {{/if}}\n </div>\n <div\n class=\"euiAccordion__childWrapper\"\n style={{this.childContentStyle}}\n id={{@id}}\n {{didInsert (set this \"childWrapper\")}}\n tabindex=\"-1\"\n role=\"region\"\n >\n <div\n class={{classNames\n (if this.isLoading \"euiAccordion__children-isLoading\")\n @childClassName\n }}\n {{didInsert\n (queue (set this \"childContent\") this.setChildContentHeight)\n }}\n {{resizeObserver onResize=this.setChildContentHeight}}\n {{didUpdate this.setChildContentHeight @forceState}}\n >\n {{#if (and this.isLoading this.isLoadingMessage)}}\n <EuiLoadingSpinner class=\"euiAccordion__spinner\" />\n <span>\n {{#if this.hasLoadingMessage}}\n {{this.isLoadingMessage}}\n {{else}}\n {{! <EuiI18n @token=\"euiAccordion.isLoading\" @default=\"Loading\" /> }}\n Loading...\n {{/if}}\n </span>\n {{else}}\n <div\n class={{classNames\n componentName=\"EuiAccordion\"\n paddingSize=this.paddingSize\n }}\n >\n {{yield to=\"content\"}}\n </div>\n {{/if}}\n </div>\n </div>\n </Accordion>\n {{/if}}\n {{/let}}\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiAccordionAccordionComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","constructor","owner","args","_opened","forceState","initialIsOpen","buttonElement","element","buttonElementIsFocusable","_arrowDisplay","arrowDisplay","isOpen","hasLoadingMessage","isLoadingMessage","buttonClasses","buttonClassName","buttonProps","className","join","buttonContentClasses","buttonContentClassName","childContentStyle","htmlSafe","setChildContentHeight","requestAnimationFrame","height","childContent","clientHeight","childWrapper","setAttribute","onToggle","focus","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","classNames","eq","EuiButtonIcon","on","randomId","not","EuiLoadingSpinner","didInsert","set","queue","resizeObserver","didUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-accordion.js","sources":["../../src/components/eui-accordion.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\nimport { element } from 'ember-element-helper';\nimport set from 'ember-set-helper/helpers/set';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\n\nimport type { paddingMapping } from '../utils/css-mappings/eui-accordion.ts';\nimport type { CommonArgs } from './common.ts';\n\ntype EuiAccordionPaddingSize = keyof typeof paddingMapping;\n\ntype AccordionArgs = {\n id?: string;\n\n element?: 'div' | 'fieldset';\n /**\n * Class that will apply to the trigger for the accordion.\n */\n buttonClassName?: string;\n\n buttonProps?: CommonArgs;\n\n /**\n * Applied to the main button receiving the `onToggle` event.\n * Anything other than the default `button` does not support removing the arrow display (for accessibility of focus).\n */\n buttonElement?: 'div' | 'legend' | 'button';\n /**\n * Extra props to pass to the EuiButtonIcon containing the arrow.\n */\n arrowProps?: {\n className?: string;\n };\n\n /**\n * Class that will apply to the trigger content for the accordion.\n */\n buttonContentClassName?: string;\n /**\n * The content of the clickable trigger\n */\n buttonContent?: Component;\n /**\n * Will appear right aligned against the button. Useful for separate actions like deletions.\n */\n extraAction?: Component | boolean;\n /**\n * The accordion will start in the open state.\n */\n initialIsOpen?: boolean;\n /**\n * Optional callback method called on open and close with a single `isOpen` parameter\n */\n onToggle?: (isOpen: boolean) => void;\n /**\n * The padding around the exposed accordion content.\n */\n paddingSize?: EuiAccordionPaddingSize;\n /**\n * Placement of the arrow indicator, or 'none' to hide it.\n */\n arrowDisplay?: 'left' | 'right' | 'none';\n /**\n * Control the opening of accordion via prop\n */\n forceState?: 'closed' | 'open';\n /**\n * Change `extraAction` and children into a loading spinner\n */\n isLoading?: boolean;\n /**\n * Choose whether the loading message replaces the content. Customize the message by passing a node\n */\n isLoadingMessage?: boolean | Component;\n\n isOpen?: boolean;\n\n childClassName?: string;\n triggerClassName?: string;\n childContentClassName?: string;\n};\n\nexport interface EuiAccordionSignature {\n Element: any;\n Args: AccordionArgs;\n Blocks: {\n buttonContent: [boolean | undefined];\n content: [];\n extraAction: [boolean | undefined];\n };\n}\n\nexport default class EuiAccordionAccordionComponent extends Component<EuiAccordionSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isLoading!: boolean;\n @argOrDefaultDecorator(false) isLoadingMessage!: boolean;\n @argOrDefaultDecorator(false) initialIsOpen!: boolean;\n @argOrDefaultDecorator('none') paddingSize!: EuiAccordionPaddingSize;\n @argOrDefaultDecorator('left') arrowDisplay!: AccordionArgs['arrowDisplay'];\n\n @tracked _opened;\n @tracked childWrapper: HTMLDivElement | null = null;\n @tracked childContent: HTMLDivElement | null = null;\n\n constructor(owner: Owner, args: AccordionArgs) {\n super(owner, args);\n\n this._opened = this.args.forceState\n ? this.args.forceState === 'open'\n : this.args.initialIsOpen;\n }\n\n get buttonElement() {\n return this.args.element === 'fieldset' ? 'legend' : 'button';\n }\n\n get buttonElementIsFocusable() {\n return this.buttonElement === 'button';\n }\n\n get _arrowDisplay() {\n return this.arrowDisplay === 'none' && !this.buttonElementIsFocusable\n ? 'left'\n : this.arrowDisplay;\n }\n\n get isOpen(): boolean | undefined {\n return this.args.forceState\n ? this.args.forceState === 'open'\n : this._opened;\n }\n\n get hasLoadingMessage(): boolean {\n return this.isLoadingMessage && this.isLoadingMessage !== true;\n }\n\n get buttonClasses(): string {\n return [\n 'euiAccordion__button',\n this.args.buttonClassName,\n this.args.buttonProps?.className\n ].join(' ');\n }\n\n get buttonContentClasses(): string {\n return [\n 'euiAccordion__buttonContent',\n this.args.buttonContentClassName\n ].join(' ');\n }\n\n get childContentStyle(): string | ReturnType<typeof htmlSafe> {\n return this._opened ? '' : htmlSafe(`height: 0px;`);\n }\n\n setChildContentHeight = () => {\n const { forceState } = this.args;\n\n requestAnimationFrame(() => {\n const height =\n this.childContent && (forceState ? forceState === 'open' : this._opened)\n ? this.childContent.clientHeight\n : 0;\n\n this.childWrapper &&\n this.childWrapper.setAttribute('style', `height: ${height}px`);\n });\n };\n\n @action\n onToggle(): void {\n if (this.args.forceState) {\n this.args.onToggle?.(this.args.forceState === 'open' ? false : true);\n } else {\n this._opened = !this._opened;\n\n if (this._opened && this.childWrapper) {\n this.childWrapper.focus();\n }\n\n this.args.onToggle?.(this._opened);\n }\n }\n\n <template>\n {{#let (argOrDefault @element \"div\") as |tagName|}}\n {{#if tagName}}\n {{#let\n (element tagName) (element this.buttonElement)\n as |Accordion ButtonElement|\n }}\n {{#if (and Accordion ButtonElement)}}\n <Accordion\n class={{classNames\n (if this.isOpen \"euiAccordion-isOpen\")\n componentName=\"EuiAccordion\"\n }}\n ...attributes\n >\n <div\n class={{classNames\n \"euiAccordion__triggerWrapper\"\n @triggerClassName\n }}\n >\n {{#if (eq this._arrowDisplay \"left\")}}\n <EuiButtonIcon\n class={{classNames\n \"euiAccordion__iconButton\"\n (if this.isOpen \"euiAccordion__iconButton-isOpen\")\n (if\n (eq this._arrowDisplay \"right\")\n \"euiAccordion__iconButton--right\"\n )\n (if @arrowProps.className @arrowProps.className)\n }}\n @iconType=\"arrowRight\"\n {{on \"click\" this.onToggle}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n tabindex={{if this.buttonElementIsFocusable \"-1\" \"0\"}}\n />\n {{/if}}\n <ButtonElement\n type=\"button\"\n id={{argOrDefault @buttonProps.id (randomId)}}\n class={{this.buttonClasses}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n aria-labelledby={{argOrDefault @buttonProps.id (randomId)}}\n {{on \"click\" this.onToggle}}\n >\n <span class={{this.buttonContentClasses}}>\n {{yield this.isOpen to=\"buttonContent\"}}\n </span>\n </ButtonElement>\n {{#if\n (and\n @extraAction (has-block \"extraAction\") (not this.isLoading)\n )\n }}\n <div class=\"euiAccordion__optionalAction\">\n {{yield this.isOpen to=\"extraAction\"}}\n </div>\n {{else if this.isLoading}}\n <div class=\"euiAccordion__optionalAction\">\n <EuiLoadingSpinner />\n </div>\n {{/if}}\n {{#if (eq this._arrowDisplay \"right\")}}\n <EuiButtonIcon\n @color=\"text\"\n class={{classNames\n \"euiAccordion__iconButton\"\n (if this.isOpen \"euiAccordion__iconButton-isOpen\")\n (if\n (eq this._arrowDisplay \"right\")\n \"euiAccordion__iconButton--right\"\n )\n (if @arrowProps.className @arrowProps.className)\n }}\n @iconType=\"arrowRight\"\n {{on \"click\" this.onToggle}}\n aria-controls={{@id}}\n aria-expanded={{this.isOpen}}\n tabindex={{if this.buttonElementIsFocusable \"-1\" \"0\"}}\n />\n {{/if}}\n </div>\n <div\n class=\"euiAccordion__childWrapper\"\n style={{this.childContentStyle}}\n id={{@id}}\n {{didInsert (set this \"childWrapper\")}}\n tabindex=\"-1\"\n role=\"region\"\n >\n <div\n class={{classNames\n (if this.isLoading \"euiAccordion__children-isLoading\")\n @childClassName\n }}\n {{didInsert\n (queue (set this \"childContent\") this.setChildContentHeight)\n }}\n {{resizeObserver onResize=this.setChildContentHeight}}\n {{didUpdate this.setChildContentHeight @forceState}}\n >\n {{#if (and this.isLoading this.isLoadingMessage)}}\n <EuiLoadingSpinner class=\"euiAccordion__spinner\" />\n <span>\n {{#if this.hasLoadingMessage}}\n {{this.isLoadingMessage}}\n {{else}}\n {{! <EuiI18n @token=\"euiAccordion.isLoading\" @default=\"Loading\" /> }}\n Loading...\n {{/if}}\n </span>\n {{else}}\n <div\n class={{classNames\n componentName=\"EuiAccordion\"\n paddingSize=this.paddingSize\n }}\n >\n {{yield to=\"content\"}}\n </div>\n {{/if}}\n </div>\n </div>\n </Accordion>\n {{/if}}\n {{/let}}\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiAccordionAccordionComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","constructor","owner","args","_opened","forceState","initialIsOpen","buttonElement","element","buttonElementIsFocusable","_arrowDisplay","arrowDisplay","isOpen","hasLoadingMessage","isLoadingMessage","buttonClasses","buttonClassName","buttonProps","className","join","buttonContentClasses","buttonContentClassName","childContentStyle","htmlSafe","setChildContentHeight","requestAnimationFrame","height","childContent","clientHeight","childWrapper","setAttribute","onToggle","focus","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","classNames","eq","EuiButtonIcon","on","randomId","not","EuiLoadingSpinner","didInsert","set","queue","resizeObserver","didUpdate"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA6Ge,MAAMA,uCAAuCC,SAAU,CAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CAEnEC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA,EADvB;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,kBAAA,EAAA,CAECC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,eAAA,EAAA,CACtBC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,aAAA,EAAA,CACtBC,qBAAsB,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,cAAA,EAAA,CACtBC,qBAAsB,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAEtBI,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CACAI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA8C,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CACnDI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA8C,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,aAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,cAAA,CAAA,EAAAC,MAAA;AAEpDE,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAmB,EAAE;AAC7C,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;IAEb,IAAI,CAACC,OAAO,GAAG,IAAI,CAACD,IAAI,CAACE,UAAU,GAC/B,IAAI,CAACF,IAAI,CAACE,UAAU,KAAK,MAAA,GACzB,IAAI,CAACF,IAAI,CAACG,aAAa;AAC7B;EAEA,IAAIC,aAAgBA,GAAA;IAClB,OAAO,IAAI,CAACJ,IAAI,CAACK,OAAO,KAAK,aAAa,QAAW,GAAA,QAAA;AACvD;EAEA,IAAIC,wBAA2BA,GAAA;AAC7B,IAAA,OAAO,IAAI,CAACF,aAAa,KAAK,QAAA;AAChC;EAEA,IAAIG,aAAgBA,GAAA;AAClB,IAAA,OAAO,IAAI,CAACC,YAAY,KAAK,MAAU,IAAA,CAAC,IAAI,CAACF,wBAAwB,GACjE,MACA,GAAA,IAAI,CAACE,YAAY;AACvB;EAEA,IAAIC,MAAUA,GAAoB;AAChC,IAAA,OAAO,IAAI,CAACT,IAAI,CAACE,UAAU,GACvB,IAAI,CAACF,IAAI,CAACE,UAAU,KAAK,MACzB,GAAA,IAAI,CAACD,OAAO;AAClB;EAEA,IAAIS,iBAAAA,GAA6B;IAC/B,OAAO,IAAI,CAACC,gBAAgB,IAAI,IAAI,CAACA,gBAAgB,KAAK,IAAA;AAC5D;EAEA,IAAIC,aAAAA,GAAwB;IAC1B,OAAO,CACL,sBAAA,EACA,IAAI,CAACZ,IAAI,CAACa,eAAe,EACzB,IAAI,CAACb,IAAI,CAACc,WAAW,EAAEC,SAAA,CACxB,CAACC,IAAI,CAAC,GAAA,CAAA;AACT;EAEA,IAAIC,oBAAAA,GAA+B;AACjC,IAAA,OAAO,CACL,6BAAA,EACA,IAAI,CAACjB,IAAI,CAACkB,sBAAsB,CACjC,CAACF,IAAI,CAAC,GAAA,CAAA;AACT;EAEA,IAAIG,iBAAqBA,GAAqC;IAC5D,OAAO,IAAI,CAAClB,OAAO,GAAG,KAAKmB,QAAS,CAAA,CAAA,YAAA,CAAc,CAAA;AACpD;EAEAC,qBAAwB,GAAAA,MAAA;IACtB,MAAM;AAAEnB,MAAAA;KAAY,GAAG,IAAI,CAACF,IAAI;AAEhCsB,IAAAA,qBAAsB,CAAA,MAAA;MACpB,MAAMC,SACJ,IAAI,CAACC,YAAY,KAAKtB,aAAaA,UAAe,KAAA,MAAA,GAAS,IAAI,CAACD,OAAO,CACnE,GAAA,IAAI,CAACuB,YAAY,CAACC,YAAY,GAC9B,CAAA;AAEN,MAAA,IAAI,CAACC,YAAY,IACf,IAAI,CAACA,YAAY,CAACC,YAAY,CAAC,SAAS,CAAWJ,QAAAA,EAAAA,MAAA,IAAU,CAAA;AACjE,KAAA,CAAA;GACA;AAGFK,EAAAA,QAAAA,GAAiB;AACf,IAAA,IAAI,IAAI,CAAC5B,IAAI,CAACE,UAAU,EAAE;AACxB,MAAA,IAAI,CAACF,IAAI,CAAC4B,QAAQ,GAAG,IAAI,CAAC5B,IAAI,CAACE,UAAU,KAAK,MAAA,GAAS,KAAQ,GAAA,IAAA,CAAA;AACjE,KAAO,MAAA;AACL,MAAA,IAAI,CAACD,OAAO,GAAG,CAAC,IAAI,CAACA,OAAO;AAE5B,MAAA,IAAI,IAAI,CAACA,OAAO,IAAI,IAAI,CAACyB,YAAY,EAAE;AACrC,QAAA,IAAI,CAACA,YAAY,CAACG,KAAK,EAAA;AACzB;MAEA,IAAI,CAAC7B,IAAI,CAAC4B,QAAQ,GAAG,IAAI,CAAC3B,OAAO,CAAA;AACnC;AACF;AAAA,EAAA;IAAA6B,CAAA,CAAA,IAAA,CAAArC,SAAA,EAAA,UAAA,EAAA,CAbCsC,MAAA,CAAA,CAAA;AAAA;AAeD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAmIA,6sHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAA/B,OAAA;QAAAgC,GAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,aAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,iBAAA;QAAAC,SAAA;QAAAC,GAAA;QAAAC,KAAA;wBAAAC,cAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -15,11 +15,11 @@ class EuiAutoSizerComponent extends Component {
|
|
|
15
15
|
static {
|
|
16
16
|
g(this.prototype, "height", [tracked]);
|
|
17
17
|
}
|
|
18
|
-
#height = (i(this, "height"),
|
|
18
|
+
#height = (i(this, "height"), void 0);
|
|
19
19
|
static {
|
|
20
20
|
g(this.prototype, "width", [tracked]);
|
|
21
21
|
}
|
|
22
|
-
#width = (i(this, "width"),
|
|
22
|
+
#width = (i(this, "width"), void 0);
|
|
23
23
|
get disableHeight() {
|
|
24
24
|
return this.args.disableHeight ?? false;
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-auto-sizer.js","sources":["../../src/components/eui-auto-sizer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport style from 'ember-style-modifier/modifiers/style';\n\nimport createDetectElementResize from '../utils/detect-element-resize';\n\ntype Size = {\n height: number;\n width: number;\n};\n\ninterface EuiAutoSizerComponentArgs {\n /** Function responsible for rendering children.*/\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n className?: string;\n\n /** Default height to use for initial render; useful for SSR */\n defaultHeight?: number;\n\n /** Default width to use for initial render; useful for SSR */\n defaultWidth?: number;\n\n /** Disable dynamic :height property */\n disableHeight?: boolean;\n\n /** Disable dynamic :width property */\n disableWidth?: boolean;\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n nonce?: string;\n\n /** Callback to be invoked on-resize */\n onResize?: (size: Size) => void;\n\n /** Optional inline style */\n style?: Record<string, string>;\n}\n\ntype ResizeHandler = (element: HTMLElement, onResize: () => void) => void;\n\ntype DetectElementResize = {\n addResizeListener: ResizeHandler;\n removeResizeListener: ResizeHandler;\n};\n\ntype DynamicStyle = {\n outerStyle: {\n height?: number | string;\n width?: number | string;\n overflow?: string;\n };\n childStyle?: {\n height?: number | string;\n width?: number | string;\n };\n};\n\nexport interface EuiAutoSizerSignature {\n Args: EuiAutoSizerComponentArgs;\n Element: HTMLDivElement;\n Blocks: {\n default: [DynamicStyle['childStyle']];\n };\n}\n\nexport default class EuiAutoSizerComponent extends Component<EuiAutoSizerSignature> {\n _autoSizer?: HTMLElement;\n _parentNode?: HTMLElement;\n _window?: any; // uses any instead of Window because Flow doesn't have window type\n _detectElementResize?: DetectElementResize;\n\n @tracked height: number | undefined;\n @tracked width: number | undefined;\n\n get disableHeight() {\n return this.args.disableHeight ?? false;\n }\n\n get disableWidth() {\n return this.args.disableWidth ?? false;\n }\n\n get style() {\n let style: DynamicStyle = {\n outerStyle: { overflow: 'visible' },\n childStyle: {}\n };\n\n if (!this.disableHeight) {\n style.outerStyle.height = `0px`;\n\n if (style.childStyle) {\n style.childStyle.height = `${this.height}px`;\n }\n }\n\n if (!this.disableWidth) {\n style.outerStyle.width = `0px`;\n\n if (style.childStyle) {\n style.childStyle.width = `${this.width}px`;\n }\n }\n\n return style;\n }\n\n setup() {\n const { nonce } = this.args;\n\n if (\n this._autoSizer &&\n this._autoSizer.parentNode &&\n this._autoSizer.parentNode.ownerDocument &&\n this._autoSizer.parentNode.ownerDocument.defaultView &&\n this._autoSizer.parentNode instanceof\n this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement\n ) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n this._window = this._autoSizer.parentNode.ownerDocument.defaultView;\n\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(\n nonce,\n this._window\n );\n this._detectElementResize?.addResizeListener(\n this._parentNode,\n this._onResize\n );\n\n this._onResize();\n }\n }\n\n _onResize = () => {\n const { disableHeight, disableWidth } = this;\n\n if (this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n const height = this._parentNode.offsetHeight || 0;\n const width = this._parentNode.offsetWidth || 0;\n\n const win = this._window || window;\n const style = win.getComputedStyle(this._parentNode) || {};\n const paddingLeft = parseInt(style.paddingLeft, 10) || 0;\n const paddingRight = parseInt(style.paddingRight, 10) || 0;\n const paddingTop = parseInt(style.paddingTop, 10) || 0;\n const paddingBottom = parseInt(style.paddingBottom, 10) || 0;\n\n const newHeight = height - paddingTop - paddingBottom;\n const newWidth = width - paddingLeft - paddingRight;\n\n if (\n (!disableHeight && this.height !== newHeight) ||\n (!disableWidth && this.width !== newWidth)\n ) {\n this.height = height - paddingTop - paddingBottom;\n this.width = width - paddingLeft - paddingRight;\n\n this.args.onResize?.({ height, width });\n }\n }\n };\n\n setRef = (ele: HTMLElement) => {\n this._autoSizer = ele;\n this.setup();\n };\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(\n this._parentNode,\n this._onResize\n );\n }\n }\n\n <template>\n <div\n {{didInsert this.setRef}}\n {{style this.style.outerStyle}}\n ...attributes\n >\n {{yield this.style.childStyle}}\n </div>\n </template>\n}\n"],"names":["EuiAutoSizerComponent","Component","_autoSizer","_parentNode","_window","_detectElementResize","g","prototype","tracked","i","void 0","disableHeight","args","disableWidth","style","outerStyle","overflow","childStyle","height","width","setup","nonce","parentNode","ownerDocument","defaultView","HTMLElement","createDetectElementResize","addResizeListener","_onResize","offsetHeight","offsetWidth","win","window","getComputedStyle","paddingLeft","parseInt","paddingRight","paddingTop","paddingBottom","newHeight","newWidth","onResize","setRef","ele","willDestroy","removeResizeListener","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert"],"mappings":";;;;;;;;;AAoEe,MAAMA,8BAA8BC,SAAU,CAAA;EAC3DC,UAAA;EACAC,WAAA;EACAC,OAAA;EACAC,oBAAA;AAA2C,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAE1CC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-auto-sizer.js","sources":["../../src/components/eui-auto-sizer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport style from 'ember-style-modifier/modifiers/style';\n\nimport createDetectElementResize from '../utils/detect-element-resize';\n\ntype Size = {\n height: number;\n width: number;\n};\n\ninterface EuiAutoSizerComponentArgs {\n /** Function responsible for rendering children.*/\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n className?: string;\n\n /** Default height to use for initial render; useful for SSR */\n defaultHeight?: number;\n\n /** Default width to use for initial render; useful for SSR */\n defaultWidth?: number;\n\n /** Disable dynamic :height property */\n disableHeight?: boolean;\n\n /** Disable dynamic :width property */\n disableWidth?: boolean;\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n nonce?: string;\n\n /** Callback to be invoked on-resize */\n onResize?: (size: Size) => void;\n\n /** Optional inline style */\n style?: Record<string, string>;\n}\n\ntype ResizeHandler = (element: HTMLElement, onResize: () => void) => void;\n\ntype DetectElementResize = {\n addResizeListener: ResizeHandler;\n removeResizeListener: ResizeHandler;\n};\n\ntype DynamicStyle = {\n outerStyle: {\n height?: number | string;\n width?: number | string;\n overflow?: string;\n };\n childStyle?: {\n height?: number | string;\n width?: number | string;\n };\n};\n\nexport interface EuiAutoSizerSignature {\n Args: EuiAutoSizerComponentArgs;\n Element: HTMLDivElement;\n Blocks: {\n default: [DynamicStyle['childStyle']];\n };\n}\n\nexport default class EuiAutoSizerComponent extends Component<EuiAutoSizerSignature> {\n _autoSizer?: HTMLElement;\n _parentNode?: HTMLElement;\n _window?: any; // uses any instead of Window because Flow doesn't have window type\n _detectElementResize?: DetectElementResize;\n\n @tracked height: number | undefined;\n @tracked width: number | undefined;\n\n get disableHeight() {\n return this.args.disableHeight ?? false;\n }\n\n get disableWidth() {\n return this.args.disableWidth ?? false;\n }\n\n get style() {\n let style: DynamicStyle = {\n outerStyle: { overflow: 'visible' },\n childStyle: {}\n };\n\n if (!this.disableHeight) {\n style.outerStyle.height = `0px`;\n\n if (style.childStyle) {\n style.childStyle.height = `${this.height}px`;\n }\n }\n\n if (!this.disableWidth) {\n style.outerStyle.width = `0px`;\n\n if (style.childStyle) {\n style.childStyle.width = `${this.width}px`;\n }\n }\n\n return style;\n }\n\n setup() {\n const { nonce } = this.args;\n\n if (\n this._autoSizer &&\n this._autoSizer.parentNode &&\n this._autoSizer.parentNode.ownerDocument &&\n this._autoSizer.parentNode.ownerDocument.defaultView &&\n this._autoSizer.parentNode instanceof\n this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement\n ) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n this._window = this._autoSizer.parentNode.ownerDocument.defaultView;\n\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(\n nonce,\n this._window\n );\n this._detectElementResize?.addResizeListener(\n this._parentNode,\n this._onResize\n );\n\n this._onResize();\n }\n }\n\n _onResize = () => {\n const { disableHeight, disableWidth } = this;\n\n if (this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n const height = this._parentNode.offsetHeight || 0;\n const width = this._parentNode.offsetWidth || 0;\n\n const win = this._window || window;\n const style = win.getComputedStyle(this._parentNode) || {};\n const paddingLeft = parseInt(style.paddingLeft, 10) || 0;\n const paddingRight = parseInt(style.paddingRight, 10) || 0;\n const paddingTop = parseInt(style.paddingTop, 10) || 0;\n const paddingBottom = parseInt(style.paddingBottom, 10) || 0;\n\n const newHeight = height - paddingTop - paddingBottom;\n const newWidth = width - paddingLeft - paddingRight;\n\n if (\n (!disableHeight && this.height !== newHeight) ||\n (!disableWidth && this.width !== newWidth)\n ) {\n this.height = height - paddingTop - paddingBottom;\n this.width = width - paddingLeft - paddingRight;\n\n this.args.onResize?.({ height, width });\n }\n }\n };\n\n setRef = (ele: HTMLElement) => {\n this._autoSizer = ele;\n this.setup();\n };\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(\n this._parentNode,\n this._onResize\n );\n }\n }\n\n <template>\n <div\n {{didInsert this.setRef}}\n {{style this.style.outerStyle}}\n ...attributes\n >\n {{yield this.style.childStyle}}\n </div>\n </template>\n}\n"],"names":["EuiAutoSizerComponent","Component","_autoSizer","_parentNode","_window","_detectElementResize","g","prototype","tracked","i","void 0","disableHeight","args","disableWidth","style","outerStyle","overflow","childStyle","height","width","setup","nonce","parentNode","ownerDocument","defaultView","HTMLElement","createDetectElementResize","addResizeListener","_onResize","offsetHeight","offsetWidth","win","window","getComputedStyle","paddingLeft","parseInt","paddingRight","paddingTop","paddingBottom","newHeight","newWidth","onResize","setRef","ele","willDestroy","removeResizeListener","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { hash } from '@ember/helper';
|
|
2
2
|
import { on } from '@ember/modifier';
|
|
3
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
3
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
4
4
|
import { not, or, and } from 'ember-truth-helpers';
|
|
5
5
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
6
6
|
import classNames from '../helpers/class-names.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-badge.js","sources":["../../src/components/eui-badge.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport EuiIcon from './eui-icon.gts';\n\nimport type {
|
|
1
|
+
{"version":3,"file":"eui-badge.js","sources":["../../src/components/eui-badge.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport EuiIcon from './eui-icon.gts';\n\nimport type {\n colorMapping,\n EuiBadgeColorType\n} from '../utils/css-mappings/eui-badge.ts';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiBadgeSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: {\n color?: keyof typeof colorMapping | EuiBadgeColorType | string;\n iconType?: EuiIconSignature['Args']['type'];\n iconSide?: 'left' | 'right';\n iconOnClick?: () => void;\n iconOnClickAriaLabel?: string;\n iconUseSvg?: boolean;\n isDisabled?: boolean;\n onClick?: () => void;\n onClickAriaLabel?: string;\n href?: string;\n target?: string;\n closeButtonProps?: {\n tabIndex?: number;\n dataSelectedIconIndex?: number;\n iconClasses?: string;\n };\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiBadge: TemplateOnlyComponent<EuiBadgeSignature> = <template>\n {{#if (and (or @onClick @href) (not @iconType))}}\n {{#if @onClick}}\n <button\n type=\"button\"\n class={{classNames\n \"euiBadge-isClickable\"\n (if @isDisabled \"euiBadge-isDisabled\")\n componentName=\"EuiBadge\"\n color=(argOrDefault @color \"default\")\n }}\n aria-label={{@onClickAriaLabel}}\n disabled={{@isDisabled}}\n ...attributes\n {{simpleStyle\n (inlineStyles\n componentName=\"EuiBadge\"\n componentArgs=(hash badgeColor=(argOrDefault @color \"default\"))\n )\n }}\n {{on \"click\" (optional @onClick)}}\n >\n <span class=\"euiBadge__content\">\n <span class=\"euiBadge__text\">\n {{yield}}\n </span>\n </span>\n </button>\n {{else}}\n <a\n class={{classNames\n \"euiBadge-isClickable\"\n (if @isDisabled \"euiBadge-isDisabled\")\n componentName=\"EuiBadge\"\n color=(argOrDefault @color \"default\")\n }}\n target={{@target}}\n href={{@href}}\n aria-label={{if @onClick @onClickAriaLabel}}\n disabled={{@isDisabled}}\n ...attributes\n {{simpleStyle\n (inlineStyles\n componentName=\"EuiBadge\"\n componentArgs=(hash badgeColor=(argOrDefault @color \"default\"))\n )\n }}\n >\n <span class=\"euiBadge__content\">\n <span class=\"euiBadge__text\">\n {{yield}}\n </span>\n </span>\n </a>\n {{/if}}\n {{else if @iconType}}\n <span\n class={{classNames\n (if @isDisabled \"euiBadge-isDisabled\")\n componentName=\"EuiBadge\"\n iconSide=(argOrDefault @iconSide \"left\")\n color=(argOrDefault @color \"default\")\n }}\n ...attributes\n {{simpleStyle\n (inlineStyles\n componentName=\"EuiBadge\"\n componentArgs=(hash badgeColor=(argOrDefault @color \"default\"))\n )\n }}\n >\n <span class=\"euiBadge__content\">\n {{#if (has-block)}}\n {{#if @onClick}}\n <button\n class=\"euiBadge__childButton\"\n type=\"button\"\n disabled={{@isDisabled}}\n {{on \"click\" (optional @onClick)}}\n >\n {{yield}}\n </button>\n {{else if @href}}\n <a\n class=\"euiBadge__childButton\"\n href={{@href}}\n disabled={{@isDisabled}}\n >\n {{yield}}\n </a>\n {{else}}\n <span class=\"euiBadge__text\">\n {{yield}}\n </span>\n {{/if}}\n {{/if}}\n {{#if @iconOnClick}}\n {{! template-lint-disable }}\n <button\n type=\"button\"\n class=\"euiBadge__iconButton\"\n aria-label={{@iconOnClickAriaLabel}}\n disabled={{@isDisabled}}\n title={{@iconOnClickAriaLabel}}\n tabindex={{@closeButtonProps.tabIndex}}\n data-selected-index={{@closeButtonProps.dataSelectedIconIndex}}\n {{on \"click\" (optional @iconOnClick)}}\n >\n <EuiIcon\n @color=\"inherit\"\n @iconClasses={{classNames\n \"euiBadge__icon\"\n @closeButtonProps.iconClasses\n }}\n @type={{@iconType}}\n @useSvg={{@iconUseSvg}}\n @size={{if (has-block) \"s\" \"m\"}}\n />\n </button>\n {{! tempalte-lint-enable}}\n {{else}}\n <EuiIcon\n @color=\"inherit\"\n @type={{@iconType}}\n @useSvg={{@iconUseSvg}}\n @size={{if (has-block) \"s\" \"m\"}}\n @iconClasses=\"euiBadge__icon\"\n />\n {{/if}}\n </span>\n </span>\n {{else}}\n <span\n class={{classNames\n (if @isDisabled \"euiBadge-isDisabled\")\n componentName=\"EuiBadge\"\n iconSide=(argOrDefault @iconSide \"left\")\n color=(argOrDefault @color \"default\")\n }}\n ...attributes\n {{simpleStyle\n (inlineStyles\n componentName=\"EuiBadge\"\n componentArgs=(hash badgeColor=(argOrDefault @color \"default\"))\n )\n }}\n >\n <span class=\"euiBadge__content\">\n <span class=\"euiBadge__text\">\n {{yield}}\n </span>\n </span>\n </span>\n {{/if}}\n</template>;\n\nexport default EuiBadge;\n"],"names":["EuiBadge","setComponentTemplate","precompileTemplate","strictMode","scope","and","or","not","classNames","argOrDefault","simpleStyle","inlineStyles","hash","on","optional","EuiIcon","templateOnly"],"mappings":";;;;;;;;;;;;;AA4CA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA0J3D,w9GAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,EAAA;IAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,WAAA;IAAAC,YAAA;IAAAC,IAAA;IAAAC,EAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -36,7 +36,7 @@ class EuiBottomBarComponent extends Component {
|
|
|
36
36
|
static {
|
|
37
37
|
g(this.prototype, "dimensions", [tracked]);
|
|
38
38
|
}
|
|
39
|
-
#dimensions = (i(this, "dimensions"),
|
|
39
|
+
#dimensions = (i(this, "dimensions"), void 0);
|
|
40
40
|
get affordForDisplacement() {
|
|
41
41
|
return this.position !== 'fixed' ? false : this.args.affordForDisplacement ?? true;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-bottom-bar.js","sources":["../../src/components/eui-bottom-bar.gts"],"sourcesContent":["import GlimmerComponent from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { modifier } from 'ember-modifier';\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 resizeObserver from '../modifiers/resize-observer.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport EuiPortal from './eui-portal.gts';\n\nexport interface EuiButtomBarArgs {\n affordForDisplacement?: boolean;\n bodyClassName?: string;\n position?: 'fixed' | 'static' | 'sticky';\n usePortal?: boolean;\n paddingSize?: 'none' | 's' | 'm' | 'l';\n landmarkHeading?: string;\n top?: number;\n right?: number;\n left?: number;\n bottom?: number;\n}\n\nconst updateDisplacementModifier = modifier(function (\n _element: Element,\n _pos: unknown[],\n {\n affordForDisplacement,\n usePortal,\n bodyClassName,\n dimensions\n }: {\n affordForDisplacement: boolean;\n usePortal: boolean;\n bodyClassName?: string;\n dimensions?: { height: number };\n }\n) {\n if (affordForDisplacement && usePortal && dimensions) {\n document.body.style.paddingBottom = `${dimensions.height}px`;\n }\n\n if (bodyClassName) {\n document.body.classList.add(bodyClassName);\n }\n\n return () => {\n if (affordForDisplacement && usePortal) {\n document.body.style.paddingBottom = '';\n }\n\n if (bodyClassName) {\n document.body.classList.remove(bodyClassName);\n }\n };\n});\n\nexport interface EuiBottomBarSignature {\n Element: HTMLElement;\n Args: EuiButtomBarArgs;\n Blocks: { default: [] };\n}\n\nexport default class EuiBottomBarComponent extends GlimmerComponent<EuiBottomBarSignature> {\n @tracked dimensions: { height: number; width: number } | undefined;\n\n get affordForDisplacement(): boolean {\n return this.position !== 'fixed'\n ? false\n : this.args.affordForDisplacement ?? true;\n }\n\n get usePortal(): boolean {\n return this.position !== 'fixed' ? false : true;\n }\n\n get position(): string {\n return this.args.position || 'fixed';\n }\n\n get top(): number {\n return this.args.top ? this.args.top : 0;\n }\n\n get right(): number {\n return this.args.right ? this.args.right : 0;\n }\n\n get left(): number {\n return this.args.left ? this.args.left : 0;\n }\n\n get bottom(): number {\n return this.args.bottom ? this.args.bottom : 0;\n }\n\n get bottomBarStyles(): string {\n if (this.position === 'fixed') {\n return `left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;\n } else {\n return `top:${this.top}px;left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;\n }\n }\n\n <template>\n {{#if this.usePortal}}\n <EuiPortal>\n <section\n style={{this.bottomBarStyles}}\n {{resizeObserver onResize=(set this \"dimensions\")}}\n class={{classNames\n componentName=\"EuiBottomBar\"\n paddingSize=(argOrDefault @paddingSize \"m\")\n positionType=(argOrDefault this.position \"fixed\")\n }}\n {{updateDisplacementModifier\n affordForDisplacement=this.affordForDisplacement\n usePortal=this.usePortal\n dimensions=this.dimensions\n bodyClassName=@bodyClassName\n }}\n ...attributes\n >\n {{yield}}\n </section>\n </EuiPortal>\n {{else}}\n <section\n style={{this.bottomBarStyles}}\n {{resizeObserver onResize=(set this \"dimensions\")}}\n class={{classNames\n componentName=\"EuiBottomBar\"\n paddingSize=(argOrDefault @paddingSize \"m\")\n positionType=(argOrDefault this.position \"fixed\")\n }}\n aria-label={{if\n @landmarkHeading\n @landmarkHeading\n \"Page level controls\"\n }}\n {{updateDisplacementModifier\n affordForDisplacement=this.affordForDisplacement\n usePortal=this.usePortal\n dimensions=this.dimensions\n bodyClassName=@bodyClassName\n }}\n ...attributes\n >\n <div {{screenReaderOnly}}>\n <h2>\n {{if @landmarkHeading @landmarkHeading \"Page level controls\"}}\n </h2>\n </div>\n {{yield}}\n </section>\n <div {{screenReaderOnly}}>\n <p aria-live=\"assertive\">\n {{#if @landmarkHeading}}\n There is a new region landmark called\n {{@landmarkHeading}}\n with page level controls at the end of the document.\n {{else}}\n There is a new region landmark with page level controls at the end\n of the document.\n {{/if}}\n </p>\n </div>\n {{/if}}\n </template>\n}\n"],"names":["updateDisplacementModifier","modifier","_element","_pos","affordForDisplacement","usePortal","bodyClassName","dimensions","document","body","style","paddingBottom","height","classList","add","remove","EuiBottomBarComponent","GlimmerComponent","g","prototype","tracked","i","void 0","position","args","top","right","left","bottom","bottomBarStyles","setComponentTemplate","precompileTemplate","strictMode","scope","EuiPortal","classNames","argOrDefault","resizeObserver","set","screenReaderOnly"],"mappings":";;;;;;;;;;;;;AAyBA,MAAMA,6BAA6BC,QAAS,CAAA,UAC1CC,QAAiB,EACjBC,IAAe,EACf;EACEC,qBAAqB;EACrBC,SAAS;EACTC,aAAa;AACbC,EAAAA;AAMD,CAAA,EAAA;AAED,EAAA,IAAIH,qBAAA,IAAyBC,aAAaE,UAAY,EAAA;IACpDC,QAAA,CAASC,IAAI,CAACC,KAAK,CAACC,aAAa,GAAG,CAAGJ,EAAAA,UAAW,CAAAK,MAAM,CAAI,EAAA,CAAA;AAC9D;AAEA,EAAA,IAAIN,aAAe,EAAA;IACjBE,QAAA,CAASC,IAAI,CAACI,SAAS,CAACC,GAAG,CAACR,aAAA,CAAA;AAC9B;AAEA,EAAA,OAAO,MAAA;IACL,IAAIF,yBAAyBC,SAAW,EAAA;AACtCG,MAAAA,QAAA,CAASC,IAAI,CAACC,KAAK,CAACC,aAAa,GAAG,EAAA;AACtC;AAEA,IAAA,IAAIL,aAAe,EAAA;MACjBE,QAAA,CAASC,IAAI,CAACI,SAAS,CAACE,MAAM,CAACT,aAAA,CAAA;AACjC;GACF;AACF,CAAA,CAAA;AAQe,MAAMU,8BAA8BC,SAAiB,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACjEC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-bottom-bar.js","sources":["../../src/components/eui-bottom-bar.gts"],"sourcesContent":["import GlimmerComponent from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { modifier } from 'ember-modifier';\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 resizeObserver from '../modifiers/resize-observer.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport EuiPortal from './eui-portal.gts';\n\nexport interface EuiButtomBarArgs {\n affordForDisplacement?: boolean;\n bodyClassName?: string;\n position?: 'fixed' | 'static' | 'sticky';\n usePortal?: boolean;\n paddingSize?: 'none' | 's' | 'm' | 'l';\n landmarkHeading?: string;\n top?: number;\n right?: number;\n left?: number;\n bottom?: number;\n}\n\nconst updateDisplacementModifier = modifier(function (\n _element: Element,\n _pos: unknown[],\n {\n affordForDisplacement,\n usePortal,\n bodyClassName,\n dimensions\n }: {\n affordForDisplacement: boolean;\n usePortal: boolean;\n bodyClassName?: string;\n dimensions?: { height: number };\n }\n) {\n if (affordForDisplacement && usePortal && dimensions) {\n document.body.style.paddingBottom = `${dimensions.height}px`;\n }\n\n if (bodyClassName) {\n document.body.classList.add(bodyClassName);\n }\n\n return () => {\n if (affordForDisplacement && usePortal) {\n document.body.style.paddingBottom = '';\n }\n\n if (bodyClassName) {\n document.body.classList.remove(bodyClassName);\n }\n };\n});\n\nexport interface EuiBottomBarSignature {\n Element: HTMLElement;\n Args: EuiButtomBarArgs;\n Blocks: { default: [] };\n}\n\nexport default class EuiBottomBarComponent extends GlimmerComponent<EuiBottomBarSignature> {\n @tracked dimensions: { height: number; width: number } | undefined;\n\n get affordForDisplacement(): boolean {\n return this.position !== 'fixed'\n ? false\n : this.args.affordForDisplacement ?? true;\n }\n\n get usePortal(): boolean {\n return this.position !== 'fixed' ? false : true;\n }\n\n get position(): string {\n return this.args.position || 'fixed';\n }\n\n get top(): number {\n return this.args.top ? this.args.top : 0;\n }\n\n get right(): number {\n return this.args.right ? this.args.right : 0;\n }\n\n get left(): number {\n return this.args.left ? this.args.left : 0;\n }\n\n get bottom(): number {\n return this.args.bottom ? this.args.bottom : 0;\n }\n\n get bottomBarStyles(): string {\n if (this.position === 'fixed') {\n return `left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;\n } else {\n return `top:${this.top}px;left:${this.left}px;right:${this.right}px;bottom:${this.bottom}px`;\n }\n }\n\n <template>\n {{#if this.usePortal}}\n <EuiPortal>\n <section\n style={{this.bottomBarStyles}}\n {{resizeObserver onResize=(set this \"dimensions\")}}\n class={{classNames\n componentName=\"EuiBottomBar\"\n paddingSize=(argOrDefault @paddingSize \"m\")\n positionType=(argOrDefault this.position \"fixed\")\n }}\n {{updateDisplacementModifier\n affordForDisplacement=this.affordForDisplacement\n usePortal=this.usePortal\n dimensions=this.dimensions\n bodyClassName=@bodyClassName\n }}\n ...attributes\n >\n {{yield}}\n </section>\n </EuiPortal>\n {{else}}\n <section\n style={{this.bottomBarStyles}}\n {{resizeObserver onResize=(set this \"dimensions\")}}\n class={{classNames\n componentName=\"EuiBottomBar\"\n paddingSize=(argOrDefault @paddingSize \"m\")\n positionType=(argOrDefault this.position \"fixed\")\n }}\n aria-label={{if\n @landmarkHeading\n @landmarkHeading\n \"Page level controls\"\n }}\n {{updateDisplacementModifier\n affordForDisplacement=this.affordForDisplacement\n usePortal=this.usePortal\n dimensions=this.dimensions\n bodyClassName=@bodyClassName\n }}\n ...attributes\n >\n <div {{screenReaderOnly}}>\n <h2>\n {{if @landmarkHeading @landmarkHeading \"Page level controls\"}}\n </h2>\n </div>\n {{yield}}\n </section>\n <div {{screenReaderOnly}}>\n <p aria-live=\"assertive\">\n {{#if @landmarkHeading}}\n There is a new region landmark called\n {{@landmarkHeading}}\n with page level controls at the end of the document.\n {{else}}\n There is a new region landmark with page level controls at the end\n of the document.\n {{/if}}\n </p>\n </div>\n {{/if}}\n </template>\n}\n"],"names":["updateDisplacementModifier","modifier","_element","_pos","affordForDisplacement","usePortal","bodyClassName","dimensions","document","body","style","paddingBottom","height","classList","add","remove","EuiBottomBarComponent","GlimmerComponent","g","prototype","tracked","i","void 0","position","args","top","right","left","bottom","bottomBarStyles","setComponentTemplate","precompileTemplate","strictMode","scope","EuiPortal","classNames","argOrDefault","resizeObserver","set","screenReaderOnly"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { fn } from '@ember/helper';
|
|
|
4
4
|
import { on } from '@ember/modifier';
|
|
5
5
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
6
6
|
import { throttle } from '@ember/runloop';
|
|
7
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
7
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
8
8
|
import sub from 'ember-math-helpers/helpers/sub';
|
|
9
9
|
import { modifier } from 'ember-modifier';
|
|
10
10
|
import { not, and, eq } from 'ember-truth-helpers';
|
|
@@ -71,7 +71,7 @@ class EuiBreadcrumbs extends Component {
|
|
|
71
71
|
static {
|
|
72
72
|
g(this.prototype, "currentBreakpoint", [tracked]);
|
|
73
73
|
}
|
|
74
|
-
#currentBreakpoint = (i(this, "currentBreakpoint"),
|
|
74
|
+
#currentBreakpoint = (i(this, "currentBreakpoint"), void 0);
|
|
75
75
|
constructor(owner, args) {
|
|
76
76
|
super(owner, args);
|
|
77
77
|
this.currentBreakpoint = getBreakpoint(typeof window === 'undefined' ? -Infinity : window.innerWidth);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-breadcrumbs.js","sources":["../../src/components/eui-breadcrumbs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { throttle } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport sub from 'ember-math-helpers/helpers/sub';\nimport { modifier } from 'ember-modifier';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\nimport useState from '../helpers/use-state.ts';\nimport { getBreakpoint } from '../utils/breakpoint.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiInnerText from './eui-inner-text.gts';\nimport EuiLink from './eui-link.gts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiBreadcrumbResponsiveMaxCount = {\n /**\n * Any of the following keys are allowed: `'xs' | 's' | 'm' | 'l' | 'xl'`\n * Omitting a key will display all breadcrumbs at that breakpoint\n */\n [key in EuiBreakpointSize]?: number;\n};\n\nconst responsiveDefault: EuiBreadcrumbResponsiveMaxCount = {\n xs: 1,\n s: 2,\n m: 4\n};\n\nexport type EuiBreadcrumb = {\n /**\n * Visible label of the breadcrumb\n */\n text: string;\n href?: string;\n onClick?: (e: MouseEvent) => void;\n\n className?: string;\n /**\n * Force a max-width on the breadcrumb text\n */\n truncate?: boolean;\n\n ellipsis?: boolean;\n\n color?: string;\n\n 'aria-current': string;\n};\n\nconst onWindowResizeModifier = modifier(\n (\n _ele: HTMLElement,\n _pos,\n {\n functionToCallOnWindowResize\n }: { functionToCallOnWindowResize: () => void }\n ) => {\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n return () => {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n };\n }\n);\n\nconst limitedBreadcrumbs = (max: number, breadcrumbs: EuiBreadcrumb[]) => {\n const breadcrumbsAtStart = [];\n const breadcrumbsAtEnd = [];\n const limit = Math.min(max, breadcrumbs.length);\n const start = Math.floor(limit / 2);\n const overflowBreadcrumbs = breadcrumbs.slice(\n start,\n start + breadcrumbs.length - limit\n );\n\n if (\n overflowBreadcrumbs.length &&\n overflowBreadcrumbs[overflowBreadcrumbs.length - 1]\n ) {\n overflowBreadcrumbs[overflowBreadcrumbs.length - 1]!['aria-current'] =\n 'false';\n }\n\n for (let i = 0; i < limit; i++) {\n // We'll alternate with displaying breadcrumbs at the end and at the start, but be biased\n // towards breadcrumbs the end so that if max is an odd number, we'll have one more\n // breadcrumb visible at the end than at the beginning.\n const isEven = i % 2 === 0;\n\n // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a\n // half-iteration.\n const normalizedIndex = Math.floor(i * 0.5);\n const indexOfBreadcrumb = isEven\n ? breadcrumbs.length - 1 - normalizedIndex\n : normalizedIndex;\n const breadcrumb = breadcrumbs[indexOfBreadcrumb];\n\n if (isEven && breadcrumb) {\n breadcrumbsAtEnd.unshift(breadcrumb);\n } else if (breadcrumb) {\n breadcrumbsAtStart.push(breadcrumb);\n }\n }\n\n if (max < breadcrumbs.length) {\n breadcrumbsAtStart.push({ ellipsis: true } as EuiBreadcrumb);\n }\n\n return {\n breadcrumbs: [...breadcrumbsAtStart, ...breadcrumbsAtEnd],\n overflowBreadcrumbs\n };\n};\n\ninterface EuiBreadcrumbsComponentArgs {\n /**\n * Hides extra (above the max) breadcrumbs under a collapsed item as the window gets smaller.\n * Pass a custom #EuiBreadcrumbResponsiveMaxCount object to change the number of breadcrumbs to show at the particular breakpoints.\n *\n * Pass `false` to turn this behavior off.\n *\n * Default: `{ xs: 1, s: 2, m: 4 }`\n */\n responsive?: boolean | EuiBreadcrumbResponsiveMaxCount;\n\n /**\n * Forces all breadcrumbs to single line and\n * truncates each breadcrumb to a particular width,\n * except for the last item\n */\n truncate?: boolean;\n\n /**\n * Collapses the inner items past the maximum set here\n * into a single ellipses item.\n * Omitting or passing a `0` value will show all breadcrumbs.\n */\n max?: number | null;\n\n /**\n * The array of individual #EuiBreadcrumb items\n */\n breadcrumbs: EuiBreadcrumb[];\n}\n\nexport interface EuiBreadcrumbsSignature {\n Element: HTMLElement;\n Args: EuiBreadcrumbsComponentArgs;\n Blocks: { default: [] };\n}\n\nexport default class EuiBreadcrumbs extends Component<EuiBreadcrumbsSignature> {\n @tracked currentBreakpoint;\n\n constructor(owner: Owner, args: EuiBreadcrumbsComponentArgs) {\n super(owner, args);\n this.currentBreakpoint = getBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth\n );\n }\n\n functionToCallOnWindowResize = () => {\n throttle(() => {\n const newBreakpoint = getBreakpoint(window.innerWidth);\n\n if (newBreakpoint !== this.currentBreakpoint) {\n this.currentBreakpoint = newBreakpoint;\n }\n }, 50);\n };\n\n get responsiveObject() {\n return typeof this.args.responsive === 'object'\n ? this.args.responsive\n : responsiveDefault;\n }\n\n get max() {\n if (this.args.max === null) {\n return null;\n }\n\n return this.args.max ?? 5;\n }\n\n get truncate() {\n return this.args.truncate ?? true;\n }\n\n get calculatedMax(): EuiBreadcrumbsComponentArgs['max'] {\n // The max property collapses any breadcrumbs past the max quantity.\n // This is the same behavior we want for responsiveness.\n // So calculate the max value based on the combination of `max` and `responsive`\n let calculatedMax: EuiBreadcrumbsComponentArgs['max'] = this.max;\n\n // Set the calculated max to the number associated with the currentBreakpoint key if it exists\n if (\n this.args.responsive &&\n this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize]\n ) {\n calculatedMax =\n this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize];\n }\n\n // Final check is to make sure max is used over a larger breakpoint value\n if (this.max && calculatedMax) {\n calculatedMax = this.max < calculatedMax ? this.max : calculatedMax;\n }\n\n return calculatedMax;\n }\n\n @cached\n get limitedBreadcrumbs() {\n const calculatedMax = this.calculatedMax;\n\n return calculatedMax\n ? limitedBreadcrumbs(calculatedMax, this.args.breadcrumbs)\n : {\n breadcrumbs: this.args.breadcrumbs,\n overflowBreadcrumbs: [] as EuiBreadcrumb[]\n };\n }\n\n <template>\n <nav\n {{onWindowResizeModifier\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n }}\n class={{classNames\n \"euiBreadcrumbs\"\n (if this.truncate \"euiBreadcrumbs--truncate\")\n }}\n ...attributes\n >\n <ol class=\"euiBreadcrumbs__list\">\n\n {{#each this.limitedBreadcrumbs.breadcrumbs as |breadcrumb index|}}\n\n {{#if breadcrumb.ellipsis}}\n {{#let (useState false) as |popOverState|}}\n <li class=\"euiBreadcrumb euiBreadcrumb--collapsed\">\n <EuiPopover\n @isOpen={{popOverState.value}}\n @closePopover={{fn popOverState.setState false}}\n >\n <:button>\n <EuiLink\n class=\"euiBreadcrumb__content\"\n @color=\"subdued\"\n aria-label=\"See collapsed breadcrumbs\"\n title=\"See collapsed breadcrumbs\"\n {{on \"click\" (fn popOverState.setState true)}}\n >\n …<EuiIcon @type=\"arrowDown\" @size=\"s\" />\n </EuiLink>\n </:button>\n <:content>\n <EuiBreadcrumbs\n class=\"euiBreadcrumbs__inPopover\"\n @breadcrumbs={{this.limitedBreadcrumbs.overflowBreadcrumbs}}\n @responsive={{false}}\n @truncate={{false}}\n @max={{0}}\n />\n </:content>\n </EuiPopover>\n\n </li>\n\n {{/let}}\n {{else}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (eq index (sub this.limitedBreadcrumbs.breadcrumbs.length 1))\n (if (eq innerText \"\") undefined innerText)\n as |isLastBreadcrumb title|\n }}\n <li\n class={{classNames\n \"euiBreadcrumb\"\n (if isLastBreadcrumb \"euiBreadcrumb--last\")\n (if breadcrumb.truncate \"euiBreadcrumb--truncate\")\n }}\n >\n {{#if (and (not breadcrumb.href) (not breadcrumb.onClick))}}\n <span\n {{didInsert setInnerTextRef}}\n title={{title}}\n class={{classNames\n \"euiBreadcrumb__content\"\n breadcrumb.className\n }}\n aria-current={{if isLastBreadcrumb \"page\" undefined}}\n >\n {{breadcrumb.text}}\n </span>\n {{else}}\n <EuiLink\n {{didInsert setInnerTextRef}}\n @color={{if\n breadcrumb.color\n breadcrumb.color\n (if isLastBreadcrumb \"text\" \"subdued\")\n }}\n @href={{breadcrumb.href}}\n title={{title}}\n class={{classNames\n \"euiBreadcrumb__content\"\n breadcrumb.className\n }}\n {{on \"click\" (optional breadcrumb.onClick)}}\n aria-current={{if isLastBreadcrumb \"page\" undefined}}\n >\n {{breadcrumb.text}}\n </EuiLink>\n {{/if}}\n\n </li>\n {{/let}}\n </EuiInnerText>\n {{/if}}\n\n {{/each}}\n\n </ol>\n </nav>\n </template>\n}\n"],"names":["responsiveDefault","xs","s","m","onWindowResizeModifier","modifier","_ele","_pos","functionToCallOnWindowResize","window","addEventListener","removeEventListener","limitedBreadcrumbs","max","breadcrumbs","breadcrumbsAtStart","breadcrumbsAtEnd","limit","Math","min","length","start","floor","overflowBreadcrumbs","slice","i","isEven","normalizedIndex","indexOfBreadcrumb","breadcrumb","unshift","push","ellipsis","EuiBreadcrumbs","Component","g","prototype","tracked","void 0","constructor","owner","args","currentBreakpoint","getBreakpoint","Infinity","innerWidth","throttle","newBreakpoint","responsiveObject","responsive","truncate","calculatedMax","n","cached","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","useState","EuiPopover","fn","EuiLink","on","EuiIcon","EuiInnerText","eq","sub","and","not","didInsert","optional"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-breadcrumbs.js","sources":["../../src/components/eui-breadcrumbs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { throttle } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport sub from 'ember-math-helpers/helpers/sub';\nimport { modifier } from 'ember-modifier';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\nimport useState from '../helpers/use-state.ts';\nimport { getBreakpoint } from '../utils/breakpoint.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiInnerText from './eui-inner-text.gts';\nimport EuiLink from './eui-link.gts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiBreadcrumbResponsiveMaxCount = {\n /**\n * Any of the following keys are allowed: `'xs' | 's' | 'm' | 'l' | 'xl'`\n * Omitting a key will display all breadcrumbs at that breakpoint\n */\n [key in EuiBreakpointSize]?: number;\n};\n\nconst responsiveDefault: EuiBreadcrumbResponsiveMaxCount = {\n xs: 1,\n s: 2,\n m: 4\n};\n\nexport type EuiBreadcrumb = {\n /**\n * Visible label of the breadcrumb\n */\n text: string;\n href?: string;\n onClick?: (e: MouseEvent) => void;\n\n className?: string;\n /**\n * Force a max-width on the breadcrumb text\n */\n truncate?: boolean;\n\n ellipsis?: boolean;\n\n color?: string;\n\n 'aria-current': string;\n};\n\nconst onWindowResizeModifier = modifier(\n (\n _ele: HTMLElement,\n _pos,\n {\n functionToCallOnWindowResize\n }: { functionToCallOnWindowResize: () => void }\n ) => {\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n return () => {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n };\n }\n);\n\nconst limitedBreadcrumbs = (max: number, breadcrumbs: EuiBreadcrumb[]) => {\n const breadcrumbsAtStart = [];\n const breadcrumbsAtEnd = [];\n const limit = Math.min(max, breadcrumbs.length);\n const start = Math.floor(limit / 2);\n const overflowBreadcrumbs = breadcrumbs.slice(\n start,\n start + breadcrumbs.length - limit\n );\n\n if (\n overflowBreadcrumbs.length &&\n overflowBreadcrumbs[overflowBreadcrumbs.length - 1]\n ) {\n overflowBreadcrumbs[overflowBreadcrumbs.length - 1]!['aria-current'] =\n 'false';\n }\n\n for (let i = 0; i < limit; i++) {\n // We'll alternate with displaying breadcrumbs at the end and at the start, but be biased\n // towards breadcrumbs the end so that if max is an odd number, we'll have one more\n // breadcrumb visible at the end than at the beginning.\n const isEven = i % 2 === 0;\n\n // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a\n // half-iteration.\n const normalizedIndex = Math.floor(i * 0.5);\n const indexOfBreadcrumb = isEven\n ? breadcrumbs.length - 1 - normalizedIndex\n : normalizedIndex;\n const breadcrumb = breadcrumbs[indexOfBreadcrumb];\n\n if (isEven && breadcrumb) {\n breadcrumbsAtEnd.unshift(breadcrumb);\n } else if (breadcrumb) {\n breadcrumbsAtStart.push(breadcrumb);\n }\n }\n\n if (max < breadcrumbs.length) {\n breadcrumbsAtStart.push({ ellipsis: true } as EuiBreadcrumb);\n }\n\n return {\n breadcrumbs: [...breadcrumbsAtStart, ...breadcrumbsAtEnd],\n overflowBreadcrumbs\n };\n};\n\ninterface EuiBreadcrumbsComponentArgs {\n /**\n * Hides extra (above the max) breadcrumbs under a collapsed item as the window gets smaller.\n * Pass a custom #EuiBreadcrumbResponsiveMaxCount object to change the number of breadcrumbs to show at the particular breakpoints.\n *\n * Pass `false` to turn this behavior off.\n *\n * Default: `{ xs: 1, s: 2, m: 4 }`\n */\n responsive?: boolean | EuiBreadcrumbResponsiveMaxCount;\n\n /**\n * Forces all breadcrumbs to single line and\n * truncates each breadcrumb to a particular width,\n * except for the last item\n */\n truncate?: boolean;\n\n /**\n * Collapses the inner items past the maximum set here\n * into a single ellipses item.\n * Omitting or passing a `0` value will show all breadcrumbs.\n */\n max?: number | null;\n\n /**\n * The array of individual #EuiBreadcrumb items\n */\n breadcrumbs: EuiBreadcrumb[];\n}\n\nexport interface EuiBreadcrumbsSignature {\n Element: HTMLElement;\n Args: EuiBreadcrumbsComponentArgs;\n Blocks: { default: [] };\n}\n\nexport default class EuiBreadcrumbs extends Component<EuiBreadcrumbsSignature> {\n @tracked currentBreakpoint;\n\n constructor(owner: Owner, args: EuiBreadcrumbsComponentArgs) {\n super(owner, args);\n this.currentBreakpoint = getBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth\n );\n }\n\n functionToCallOnWindowResize = () => {\n throttle(() => {\n const newBreakpoint = getBreakpoint(window.innerWidth);\n\n if (newBreakpoint !== this.currentBreakpoint) {\n this.currentBreakpoint = newBreakpoint;\n }\n }, 50);\n };\n\n get responsiveObject() {\n return typeof this.args.responsive === 'object'\n ? this.args.responsive\n : responsiveDefault;\n }\n\n get max() {\n if (this.args.max === null) {\n return null;\n }\n\n return this.args.max ?? 5;\n }\n\n get truncate() {\n return this.args.truncate ?? true;\n }\n\n get calculatedMax(): EuiBreadcrumbsComponentArgs['max'] {\n // The max property collapses any breadcrumbs past the max quantity.\n // This is the same behavior we want for responsiveness.\n // So calculate the max value based on the combination of `max` and `responsive`\n let calculatedMax: EuiBreadcrumbsComponentArgs['max'] = this.max;\n\n // Set the calculated max to the number associated with the currentBreakpoint key if it exists\n if (\n this.args.responsive &&\n this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize]\n ) {\n calculatedMax =\n this.responsiveObject[this.currentBreakpoint as EuiBreakpointSize];\n }\n\n // Final check is to make sure max is used over a larger breakpoint value\n if (this.max && calculatedMax) {\n calculatedMax = this.max < calculatedMax ? this.max : calculatedMax;\n }\n\n return calculatedMax;\n }\n\n @cached\n get limitedBreadcrumbs() {\n const calculatedMax = this.calculatedMax;\n\n return calculatedMax\n ? limitedBreadcrumbs(calculatedMax, this.args.breadcrumbs)\n : {\n breadcrumbs: this.args.breadcrumbs,\n overflowBreadcrumbs: [] as EuiBreadcrumb[]\n };\n }\n\n <template>\n <nav\n {{onWindowResizeModifier\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n }}\n class={{classNames\n \"euiBreadcrumbs\"\n (if this.truncate \"euiBreadcrumbs--truncate\")\n }}\n ...attributes\n >\n <ol class=\"euiBreadcrumbs__list\">\n\n {{#each this.limitedBreadcrumbs.breadcrumbs as |breadcrumb index|}}\n\n {{#if breadcrumb.ellipsis}}\n {{#let (useState false) as |popOverState|}}\n <li class=\"euiBreadcrumb euiBreadcrumb--collapsed\">\n <EuiPopover\n @isOpen={{popOverState.value}}\n @closePopover={{fn popOverState.setState false}}\n >\n <:button>\n <EuiLink\n class=\"euiBreadcrumb__content\"\n @color=\"subdued\"\n aria-label=\"See collapsed breadcrumbs\"\n title=\"See collapsed breadcrumbs\"\n {{on \"click\" (fn popOverState.setState true)}}\n >\n …<EuiIcon @type=\"arrowDown\" @size=\"s\" />\n </EuiLink>\n </:button>\n <:content>\n <EuiBreadcrumbs\n class=\"euiBreadcrumbs__inPopover\"\n @breadcrumbs={{this.limitedBreadcrumbs.overflowBreadcrumbs}}\n @responsive={{false}}\n @truncate={{false}}\n @max={{0}}\n />\n </:content>\n </EuiPopover>\n\n </li>\n\n {{/let}}\n {{else}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (eq index (sub this.limitedBreadcrumbs.breadcrumbs.length 1))\n (if (eq innerText \"\") undefined innerText)\n as |isLastBreadcrumb title|\n }}\n <li\n class={{classNames\n \"euiBreadcrumb\"\n (if isLastBreadcrumb \"euiBreadcrumb--last\")\n (if breadcrumb.truncate \"euiBreadcrumb--truncate\")\n }}\n >\n {{#if (and (not breadcrumb.href) (not breadcrumb.onClick))}}\n <span\n {{didInsert setInnerTextRef}}\n title={{title}}\n class={{classNames\n \"euiBreadcrumb__content\"\n breadcrumb.className\n }}\n aria-current={{if isLastBreadcrumb \"page\" undefined}}\n >\n {{breadcrumb.text}}\n </span>\n {{else}}\n <EuiLink\n {{didInsert setInnerTextRef}}\n @color={{if\n breadcrumb.color\n breadcrumb.color\n (if isLastBreadcrumb \"text\" \"subdued\")\n }}\n @href={{breadcrumb.href}}\n title={{title}}\n class={{classNames\n \"euiBreadcrumb__content\"\n breadcrumb.className\n }}\n {{on \"click\" (optional breadcrumb.onClick)}}\n aria-current={{if isLastBreadcrumb \"page\" undefined}}\n >\n {{breadcrumb.text}}\n </EuiLink>\n {{/if}}\n\n </li>\n {{/let}}\n </EuiInnerText>\n {{/if}}\n\n {{/each}}\n\n </ol>\n </nav>\n </template>\n}\n"],"names":["responsiveDefault","xs","s","m","onWindowResizeModifier","modifier","_ele","_pos","functionToCallOnWindowResize","window","addEventListener","removeEventListener","limitedBreadcrumbs","max","breadcrumbs","breadcrumbsAtStart","breadcrumbsAtEnd","limit","Math","min","length","start","floor","overflowBreadcrumbs","slice","i","isEven","normalizedIndex","indexOfBreadcrumb","breadcrumb","unshift","push","ellipsis","EuiBreadcrumbs","Component","g","prototype","tracked","void 0","constructor","owner","args","currentBreakpoint","getBreakpoint","Infinity","innerWidth","throttle","newBreakpoint","responsiveObject","responsive","truncate","calculatedMax","n","cached","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","useState","EuiPopover","fn","EuiLink","on","EuiIcon","EuiInnerText","eq","sub","and","not","didInsert","optional"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+BA,MAAMA,iBAAqD,GAAA;AACzDC,EAAAA,EAAI,EAAA,CAAA;AACJC,EAAAA,CAAG,EAAA,CAAA;AACHC,EAAAA,CAAG,EAAA;AACL,CAAA;AAuBA,MAAMC,yBAAyBC,QAC7B,CAAA,CACEC,IACA,EAAAC,IAAA,EACA;AACEC,EAAAA;AAC6C,CAAA,KAAA;AAE/CC,EAAAA,MAAO,CAAAC,gBAAgB,CAAC,QAAU,EAAAF,4BAAA,CAAA;AAElC,EAAA,OAAO,MAAA;AACLC,IAAAA,MAAO,CAAAE,mBAAmB,CAAC,QAAU,EAAAH,4BAAA,CAAA;GACvC;AACF,CAAA,CAAA;AAGF,MAAMI,kBAAqB,GAAAA,CAACC,GAAW,EAAEC,WAAa,KAAA;EACpD,MAAMC,qBAAqB,EAAE;EAC7B,MAAMC,mBAAmB,EAAE;EAC3B,MAAMC,QAAQC,IAAK,CAAAC,GAAG,CAACN,GAAA,EAAKC,YAAYM,MAAM,CAAA;EAC9C,MAAMC,KAAQ,GAAAH,IAAA,CAAKI,KAAK,CAACL,KAAQ,GAAA,CAAA,CAAA;AACjC,EAAA,MAAMM,mBAAA,GAAsBT,YAAYU,KAAK,CAC3CH,OACAA,KAAQ,GAAAP,WAAA,CAAYM,MAAM,GAAGH,KAAA,CAAA;AAG/B,EAAA,IACEM,mBAAA,CAAoBH,MAAM,IAC1BG,mBAAmB,CAACA,mBAAoB,CAAAH,MAAM,GAAG,CAAA,CAAE,EACnD;IACAG,mBAAmB,CAACA,oBAAoBH,MAAM,GAAG,EAAE,CAAE,eAAe,GAClE,OAAA;AACJ;EAEA,KAAK,IAAIK,CAAA,GAAI,CAAG,EAAAA,CAAA,GAAIR,OAAOQ,CAAK,EAAA,EAAA;AAC9B;AACA;AACA;AACA,IAAA,MAAMC,MAAA,GAASD,IAAI,CAAM,KAAA,CAAA;AAEzB;AACA;IACA,MAAME,eAAkB,GAAAT,IAAA,CAAKI,KAAK,CAACG,CAAI,GAAA,GAAA,CAAA;AACvC,IAAA,MAAMG,oBAAoBF,MACtB,GAAAZ,WAAA,CAAYM,MAAM,GAAG,IAAIO,eACzB,GAAAA,eAAA;AACJ,IAAA,MAAME,UAAA,GAAaf,WAAW,CAACc,iBAAkB,CAAA;IAEjD,IAAIF,UAAUG,UAAY,EAAA;AACxBb,MAAAA,gBAAA,CAAiBc,OAAO,CAACD,UAAA,CAAA;KAC3B,MAAO,IAAIA,UAAY,EAAA;AACrBd,MAAAA,kBAAA,CAAmBgB,IAAI,CAACF,UAAA,CAAA;AAC1B;AACF;AAEA,EAAA,IAAIhB,GAAA,GAAMC,WAAY,CAAAM,MAAM,EAAE;IAC5BL,kBAAA,CAAmBgB,IAAI,CAAC;AAAEC,MAAAA,QAAU,EAAA;AAAK,KAAK,CAAA;AAChD;EAEA,OAAO;AACLlB,IAAAA,WAAa,EAAA,CAAI,GAAAC,kBAAA,EAAuB,GAAAC,gBAAA,CAAiB;AACzDO,IAAAA;GACF;AACF,CAAA;AAuCe,MAAMU,uBAAuBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,mBAAA,EAAA,CACnDC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,kBAAA,IAAAZ,CAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,EAAAa,MAAA;AAEDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAiC,EAAE;AAC3D,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;AACb,IAAA,IAAI,CAACC,iBAAiB,GAAGC,aACvB,CAAA,OAAOlC,WAAW,WAAc,GAAA,CAACmC,QAAW,GAAAnC,MAAA,CAAOoC,UAAU,CAAA;AAEjE;EAEArC,4BAA+B,GAAAA,MAAA;AAC7BsC,IAAAA,QAAS,CAAA,MAAA;AACP,MAAA,MAAMC,aAAA,GAAgBJ,aAAc,CAAAlC,MAAA,CAAOoC,UAAU,CAAA;AAErD,MAAA,IAAIE,aAAkB,KAAA,IAAI,CAACL,iBAAiB,EAAE;QAC5C,IAAI,CAACA,iBAAiB,GAAGK,aAAA;AAC3B;KACC,EAAA,EAAA,CAAA;GACH;EAEF,IAAIC,gBAAmBA,GAAA;AACrB,IAAA,OAAO,OAAO,IAAI,CAACP,IAAI,CAACQ,UAAU,KAAK,QAAA,GACnC,IAAI,CAACR,IAAI,CAACQ,UAAU,GACpBjD,iBAAA;AACN;EAEA,IAAIa,GAAMA,GAAA;AACR,IAAA,IAAI,IAAI,CAAC4B,IAAI,CAAC5B,GAAG,KAAK,IAAM,EAAA;AAC1B,MAAA,OAAO,IAAA;AACT;AAEA,IAAA,OAAO,IAAI,CAAC4B,IAAI,CAAC5B,GAAG,IAAI,CAAA;AAC1B;EAEA,IAAIqC,QAAWA,GAAA;AACb,IAAA,OAAO,IAAI,CAACT,IAAI,CAACS,QAAQ,IAAI,IAAA;AAC/B;EAEA,IAAIC,aAAAA,GAAoD;AACtD;AACA;AACA;AACA,IAAA,IAAIA,aAAoD,GAAA,IAAI,CAACtC,GAAG;AAEhE;AACA,IAAA,IACE,IAAI,CAAC4B,IAAI,CAACQ,UAAU,IACpB,IAAI,CAACD,gBAAgB,CAAC,IAAI,CAACN,iBAAiB,CAAsB,EAClE;MACAS,aACE,GAAA,IAAI,CAACH,gBAAgB,CAAC,IAAI,CAACN,iBAAiB,CAAsB;AACtE;AAEA;AACA,IAAA,IAAI,IAAI,CAAC7B,GAAG,IAAIsC,aAAe,EAAA;MAC7BA,aAAgB,GAAA,IAAI,CAACtC,GAAG,GAAGsC,gBAAgB,IAAI,CAACtC,GAAG,GAAGsC,aAAA;AACxD;AAEA,IAAA,OAAOA,aAAA;AACT;EAEA,IACIvC,kBAAqBA,GAAA;AACvB,IAAA,MAAMuC,aAAA,GAAgB,IAAI,CAACA,aAAa;AAExC,IAAA,OAAOA,aAAA,GACHvC,mBAAmBuC,aAAe,EAAA,IAAI,CAACV,IAAI,CAAC3B,WAAW,CACvD,GAAA;AACEA,MAAAA,WAAA,EAAa,IAAI,CAAC2B,IAAI,CAAC3B,WAAW;AAClCS,MAAAA,mBAAA,EAAqB;KACvB;AACN;AAAA,EAAA;IAAA6B,CAAA,CAAA,IAAA,CAAAhB,SAAA,EAAA,oBAAA,EAAA,CAVCiB,MAAA,CAAA,CAAA;AAAA;AAYD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAuGA,8oFAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAtD,sBAAA;QAAAuD,QAAA;oBAAAC,mBAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,EAAA;QAAAC,OAAA;QAAA/B,cAAA;sBAAAgC,QAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { fn } from '@ember/helper';
|
|
2
2
|
import { on } from '@ember/modifier';
|
|
3
3
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
4
|
-
import noop from 'ember-composable-helpers/helpers/noop';
|
|
5
4
|
import { eq, and, notEq } from 'ember-truth-helpers';
|
|
6
5
|
import randomId from '../-private/random-id.js';
|
|
7
6
|
import classNames from '../helpers/class-names.js';
|
|
@@ -11,7 +10,12 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
11
10
|
import { setComponentTemplate } from '@ember/component';
|
|
12
11
|
import templateOnly from '@ember/component/template-only';
|
|
13
12
|
|
|
14
|
-
const
|
|
13
|
+
const handleClick = (isNotLabel, onChange, id) => {
|
|
14
|
+
if (isNotLabel) {
|
|
15
|
+
onChange(id);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const EuiButtonGroupButton = setComponentTemplate(precompileTemplate("\n {{#let (if @isDisabled \"button\" @element) (randomId) (classNames (if @isSelected \"euiButtonGroupButton-isSelected\") (if @isIconOnly \"euiButtonGroupButton-isIconOnly\")) as |element newId classes|}}\n {{#let (notEq @element \"label\") as |isNotLabel|}}\n <EuiInnerText as |setInnerTextRef innerText|>\n <EuiButton @baseClassName=\"euiButtonGroupButton\" class={{classes}} @element={{element}} @fill={{and (notEq @size \"compressed\") @isSelected}} @isDisabled={{@isDisabled}} @size={{if (eq @size \"compressed\") \"s\" @size}} @color={{@color}} @contentClasses={{@contentClasses}} @iconSide={{@iconSide}} @iconType={{@iconType}} @iconSize={{@iconSize}} @iconClasses={{@iconClasses}} @isLoading={{@isLoading}} @textClasses={{classNames @textClasses (if @isIconOnly \"euiScreenReaderOnly\" \"euiButtonGroupButton__textShift\")}} @isSelected={{if isNotLabel @isSelected}} type={{if isNotLabel @type}} for={{if (eq element \"label\") newId}} id={{if isNotLabel newId}} title={{innerText}} {{on \"click\" (fn handleClick isNotLabel @onChange @id)}} {{didInsert setInnerTextRef}} ...attributes>\n {{#if (eq element \"label\")}}\n <input id={{newId}} class=\"euiScreenReaderOnly\" name={{@name}} checked={{@isSelected}} disabled={{@isDisabled}} value={{@value}} type=\"radio\" {{on \"change\" (fn @onChange @id @value)}} />\n {{/if}}\n {{@label}}\n </EuiButton>\n </EuiInnerText>\n {{/let}}\n {{/let}}\n ", {
|
|
15
19
|
strictMode: true,
|
|
16
20
|
scope: () => ({
|
|
17
21
|
randomId,
|
|
@@ -23,7 +27,7 @@ const EuiButtonGroupButton = setComponentTemplate(precompileTemplate("\n {{#l
|
|
|
23
27
|
eq,
|
|
24
28
|
on,
|
|
25
29
|
fn,
|
|
26
|
-
|
|
30
|
+
handleClick,
|
|
27
31
|
didInsert
|
|
28
32
|
})
|
|
29
33
|
}), templateOnly());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-button-group-button.js","sources":["../../src/components/eui-button-group-button.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport
|
|
1
|
+
{"version":3,"file":"eui-button-group-button.js","sources":["../../src/components/eui-button-group-button.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, eq, notEq } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButton from './eui-button.gts';\nimport EuiInnerText from './eui-inner-text.gts';\n\nimport type { EuiButtonSignature } from './eui-button';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiButtonGroupButtonSignature {\n Element: EuiButtonSignature['Element'];\n Args: {\n id: string;\n value?: string;\n element?: 'label' | 'button';\n name?: string;\n label?: string;\n isDisabled?: boolean;\n isSelected?: boolean;\n isIconOnly?: boolean;\n size?: EuiButtonSignature['Args']['size'];\n color?: EuiButtonSignature['Args']['color'];\n contentClasses?: EuiButtonSignature['Args']['contentClasses'];\n iconSide?: EuiButtonSignature['Args']['iconSide'];\n iconType?: EuiButtonSignature['Args']['iconType'];\n iconSize?: EuiButtonSignature['Args']['iconSize'];\n iconClasses?: EuiButtonSignature['Args']['iconClasses'];\n isLoading?: EuiButtonSignature['Args']['isLoading'];\n textClasses?: EuiButtonSignature['Args']['textClasses'];\n type?: EuiButtonSignature['Args']['type'];\n onChange: (id: string, value?: string) => void;\n };\n}\n\nconst handleClick = (\n isNotLabel: boolean,\n onChange: (id: string, value?: string) => void,\n id: string\n) => {\n if (isNotLabel) {\n onChange(id);\n }\n};\n\nconst EuiButtonGroupButton: TemplateOnlyComponent<EuiButtonGroupButtonSignature> =\n <template>\n {{#let\n (if @isDisabled \"button\" @element)\n (randomId)\n (classNames\n (if @isSelected \"euiButtonGroupButton-isSelected\")\n (if @isIconOnly \"euiButtonGroupButton-isIconOnly\")\n )\n as |element newId classes|\n }}\n {{#let (notEq @element \"label\") as |isNotLabel|}}\n <EuiInnerText as |setInnerTextRef innerText|>\n <EuiButton\n @baseClassName=\"euiButtonGroupButton\"\n class={{classes}}\n @element={{element}}\n @fill={{and (notEq @size \"compressed\") @isSelected}}\n @isDisabled={{@isDisabled}}\n @size={{if (eq @size \"compressed\") \"s\" @size}}\n @color={{@color}}\n @contentClasses={{@contentClasses}}\n @iconSide={{@iconSide}}\n @iconType={{@iconType}}\n @iconSize={{@iconSize}}\n @iconClasses={{@iconClasses}}\n @isLoading={{@isLoading}}\n @textClasses={{classNames\n @textClasses\n (if\n @isIconOnly\n \"euiScreenReaderOnly\"\n \"euiButtonGroupButton__textShift\"\n )\n }}\n @isSelected={{if isNotLabel @isSelected}}\n type={{if isNotLabel @type}}\n for={{if (eq element \"label\") newId}}\n id={{if isNotLabel newId}}\n title={{innerText}}\n {{on \"click\" (fn handleClick isNotLabel @onChange @id)}}\n {{didInsert setInnerTextRef}}\n ...attributes\n >\n {{#if (eq element \"label\")}}\n <input\n id={{newId}}\n class=\"euiScreenReaderOnly\"\n name={{@name}}\n checked={{@isSelected}}\n disabled={{@isDisabled}}\n value={{@value}}\n type=\"radio\"\n {{on \"change\" (fn @onChange @id @value)}}\n />\n {{/if}}\n {{@label}}\n </EuiButton>\n </EuiInnerText>\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiButtonGroupButton;\n"],"names":["handleClick","isNotLabel","onChange","id","EuiButtonGroupButton","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","notEq","EuiInnerText","EuiButton","and","eq","on","fn","didInsert","templateOnly"],"mappings":";;;;;;;;;;;;AAuCA,MAAMA,WAAc,GAAAA,CAClBC,UAAmB,EACnBC,QAA8C,EAC9CC,EAAU,KAAA;AAEV,EAAA,IAAIF,UAAY,EAAA;IACdC,QAAS,CAAAC,EAAA,CAAA;AACX;AACF,CAAA;AAEA,MAAMC,oBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA4DA,69CAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,KAAA;kBAAAC,QAAA;IAAAC,SAAA;IAAAC,GAAA;IAAAC,EAAA;IAAAC,EAAA;IAAAC,EAAA;IAAAjB,WAAA;AAAAkB,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { on } from '@ember/modifier';
|
|
3
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
3
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
4
4
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
5
5
|
import classNames from '../helpers/class-names.js';
|
|
6
6
|
import EuiButtonEmpty from './eui-button-empty.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-card-select.js","sources":["../../src/components/eui-card-select.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\n\nimport type { EuiButtonEmptySignature } from './eui-button-empty';\n\nexport type EuiCardSelectProps = {\n /**\n * Is in the selected state\n */\n isSelected?: boolean;\n isDisabled?: boolean;\n buttonId?: string;\n color?: EuiButtonEmptySignature['Args']['color'];\n isLoading?: EuiButtonEmptySignature['Args']['isLoading'];\n href?: EuiButtonEmptySignature['Args']['href'];\n iconSide?: EuiButtonEmptySignature['Args']['iconSide'];\n flush?: EuiButtonEmptySignature['Args']['flush'];\n type?: EuiButtonEmptySignature['Args']['type'];\n onClick?: (e: MouseEvent) => void;\n};\n\nexport function euiCardSelectableColor(\n color: string | undefined,\n isSelected: boolean | undefined\n): string {\n let calculatedColor;\n\n if (color) {\n calculatedColor = color;\n } else if (isSelected) {\n calculatedColor = 'success';\n } else {\n calculatedColor = 'text';\n }\n\n return calculatedColor;\n}\n\nexport interface EuiCardSelectSignature {\n Element: EuiButtonEmptySignature['Element'];\n Args: EuiCardSelectProps;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiCardSelectComponent extends Component<EuiCardSelectSignature> {\n get selectColorClass() {\n return `euiCardSelect--${euiCardSelectableColor(\n this.args.color,\n this.args.isSelected\n )}`;\n }\n\n <template>\n <EuiButtonEmpty\n class={{classNames this.selectColorClass componentName=\"EuiCardSelect\"}}\n id={{@buttonId}}\n @color={{argOrDefault @color \"text\"}}\n @size=\"xs\"\n @isDisabled={{@isDisabled}}\n @iconType={{if @isSelected \"check\" undefined}}\n @isLoading={{@isLoading}}\n @href={{@href}}\n @iconSide={{@iconSide}}\n @flush={{@flush}}\n @type={{@type}}\n role=\"switch\"\n aria-checked={{@isSelected}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n {{#if (has-block)}}\n {{yield}}\n {{else if @isSelected}}\n Selected\n {{else if @isDisabled}}\n Unavailable\n {{else}}\n Select\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["euiCardSelectableColor","color","isSelected","calculatedColor","EuiCardSelectComponent","Component","selectColorClass","args","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","classNames","argOrDefault","on","optional"],"mappings":";;;;;;;;;AA2BO,SAASA,sBAAAA,CACdC,KAAyB,EACzBC,UAA+B,EACxB;AACP,EAAA,IAAIC,eAAA;AAEJ,EAAA,IAAIF,KAAO,EAAA;AACTE,IAAAA,eAAkB,GAAAF,KAAA;GACpB,MAAO,IAAIC,UAAY,EAAA;AACrBC,IAAAA,eAAkB,GAAA,SAAA;AACpB,GAAO,MAAA;AACLA,IAAAA,eAAkB,GAAA,MAAA;AACpB;AAEA,EAAA,OAAOA,eAAA;AACT;AAUe,MAAMC,+BAA+BC,SAAU,CAAA;EAC5D,IAAIC,gBAAmBA,GAAA;AACrB,IAAA,OAAO,CAAkBN,eAAAA,EAAAA,sBACvB,CAAA,IAAI,CAACO,IAAI,CAACN,KAAK,EACf,IAAI,CAACM,IAAI,CAACL,UAAU,EACnB,CAAA;AACL;AAEA,EAAA;IAAAM,oBAAA,CAAAC,kBAAA,CA4BA,upBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,UAAA;QAAAC,YAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-card-select.js","sources":["../../src/components/eui-card-select.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\n\nimport type { EuiButtonEmptySignature } from './eui-button-empty';\n\nexport type EuiCardSelectProps = {\n /**\n * Is in the selected state\n */\n isSelected?: boolean;\n isDisabled?: boolean;\n buttonId?: string;\n color?: EuiButtonEmptySignature['Args']['color'];\n isLoading?: EuiButtonEmptySignature['Args']['isLoading'];\n href?: EuiButtonEmptySignature['Args']['href'];\n iconSide?: EuiButtonEmptySignature['Args']['iconSide'];\n flush?: EuiButtonEmptySignature['Args']['flush'];\n type?: EuiButtonEmptySignature['Args']['type'];\n onClick?: (e: MouseEvent) => void;\n};\n\nexport function euiCardSelectableColor(\n color: string | undefined,\n isSelected: boolean | undefined\n): string {\n let calculatedColor;\n\n if (color) {\n calculatedColor = color;\n } else if (isSelected) {\n calculatedColor = 'success';\n } else {\n calculatedColor = 'text';\n }\n\n return calculatedColor;\n}\n\nexport interface EuiCardSelectSignature {\n Element: EuiButtonEmptySignature['Element'];\n Args: EuiCardSelectProps;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiCardSelectComponent extends Component<EuiCardSelectSignature> {\n get selectColorClass() {\n return `euiCardSelect--${euiCardSelectableColor(\n this.args.color,\n this.args.isSelected\n )}`;\n }\n\n <template>\n <EuiButtonEmpty\n class={{classNames this.selectColorClass componentName=\"EuiCardSelect\"}}\n id={{@buttonId}}\n @color={{argOrDefault @color \"text\"}}\n @size=\"xs\"\n @isDisabled={{@isDisabled}}\n @iconType={{if @isSelected \"check\" undefined}}\n @isLoading={{@isLoading}}\n @href={{@href}}\n @iconSide={{@iconSide}}\n @flush={{@flush}}\n @type={{@type}}\n role=\"switch\"\n aria-checked={{@isSelected}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n {{#if (has-block)}}\n {{yield}}\n {{else if @isSelected}}\n Selected\n {{else if @isDisabled}}\n Unavailable\n {{else}}\n Select\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["euiCardSelectableColor","color","isSelected","calculatedColor","EuiCardSelectComponent","Component","selectColorClass","args","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","classNames","argOrDefault","on","optional"],"mappings":";;;;;;;;;AA2BO,SAASA,sBAAAA,CACdC,KAAyB,EACzBC,UAA+B,EACxB;AACP,EAAA,IAAIC,eAAA;AAEJ,EAAA,IAAIF,KAAO,EAAA;AACTE,IAAAA,eAAkB,GAAAF,KAAA;GACpB,MAAO,IAAIC,UAAY,EAAA;AACrBC,IAAAA,eAAkB,GAAA,SAAA;AACpB,GAAO,MAAA;AACLA,IAAAA,eAAkB,GAAA,MAAA;AACpB;AAEA,EAAA,OAAOA,eAAA;AACT;AAUe,MAAMC,+BAA+BC,SAAU,CAAA;EAC5D,IAAIC,gBAAmBA,GAAA;AACrB,IAAA,OAAO,CAAkBN,eAAAA,EAAAA,sBACvB,CAAA,IAAI,CAACO,IAAI,CAACN,KAAK,EACf,IAAI,CAACM,IAAI,CAACL,UAAU,EACnB,CAAA;AACL;AAEA,EAAA;IAAAM,oBAAA,CAAAC,kBAAA,CA4BA,upBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,UAAA;QAAAC,YAAA;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 { element } from 'ember-element-helper';
|
|
7
7
|
import set from 'ember-set-helper/helpers/set';
|
|
8
8
|
import { notEq, eq, or, not, and } from 'ember-truth-helpers';
|
|
@@ -25,7 +25,7 @@ class EuiCardComponent extends Component {
|
|
|
25
25
|
return null;
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
#link = (i(this, "link"),
|
|
28
|
+
#link = (i(this, "link"), void 0);
|
|
29
29
|
outerOnClick = e => {
|
|
30
30
|
if (this.link && this.link !== e.target) {
|
|
31
31
|
this.link.click();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-card.js","sources":["../../src/components/eui-card.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 { element } from 'ember-element-helper';\nimport set from 'ember-set-helper/helpers/set';\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiBetaBadge from './eui-beta-badge.gts';\nimport { euiCardSelectableColor } from './eui-card-select.gts';\nimport EuiCardSelect from './eui-card-select.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { EuiCardSelectProps } from './eui-card-select';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiPanelSignature } from './eui-panel';\nimport type { EuiTitleSignature } from './eui-title';\n\ntype EuiCardComponentArgs = {\n footer?: string;\n selectable?: EuiCardSelectProps;\n /**\n * Class that will apply to the card top section.\n */\n topClassName?: string;\n\n /**\n * Class that will apply to the card content section.\n */\n contentClassName?: string;\n\n /**\n * Class that will apply to the card footer section.\n */\n footerClassName?: string;\n\n target?: string;\n\n betaBadgeProps?: {\n label: string;\n title?: string;\n tooltipContent?: string;\n };\n\n description?: string;\n\n /**\n * The title of the card.\n */\n title?: string;\n titleSize?: EuiTitleSignature['Args']['size'];\n\n /**\n * The title element. Will wrap the title in a heading tag.\n */\n titleElement?: string;\n\n href?: string;\n\n onClick?: (e: MouseEvent) => void;\n\n isDisabled?: boolean;\n\n textAlign?: 'left' | 'center' | 'right';\n\n image?: string;\n icon?: string;\n layout?: 'horizontal' | 'vertical';\n\n display?: EuiPanelSignature['Args']['color'];\n paddingSize?: EuiPanelSignature['Args']['paddingSize'];\n\n iconSize?: EuiIconSignature['Args']['size'];\n};\n\nexport interface EuiCardSignature {\n Element: EuiPanelSignature['Element'];\n Args: EuiCardComponentArgs;\n Blocks: {\n icon: ['euiCard__icon'];\n title: [() => void];\n description: [];\n body: [];\n footer: [];\n };\n}\n\nexport default class EuiCardComponent extends Component<EuiCardSignature> {\n @tracked link: HTMLAnchorElement | HTMLButtonElement | null = null;\n\n outerOnClick = (e: MouseEvent) => {\n if (this.link && this.link !== e.target) {\n this.link.click();\n }\n };\n\n get selectableColorClass() {\n const selectable = this.args.selectable;\n\n return selectable\n ? `euiCard--isSelectable--${euiCardSelectableColor(\n selectable.color,\n selectable.isSelected\n )}`\n : undefined;\n }\n\n get topClasses(): string {\n return ['euiCard__top', this.args.topClassName].join(' ');\n }\n\n get contentClasses(): string {\n return ['euiCard__content', this.args.contentClassName].join(' ');\n }\n\n get footerClasses(): string {\n return ['euiCard__footer', this.args.footerClassName].join(' ');\n }\n\n <template>\n {{#let\n (if @selectable (randomId))\n (and\n (not @isDisabled)\n (or @onClick @href (and @selectable (not @selectable.isDisabled)))\n )\n (argOrDefault @titleElement \"span\")\n (argOrDefault @layout \"vertical\")\n as |selectableId isClickable titleElement layout|\n }}\n <EuiPanel\n class={{classNames\n (if (eq layout \"horizontal\") \"euiCard--horizontal\")\n (if isClickable \"euiCard--isClickable\")\n (if @betaBadgeProps.label \"euiCard--hasBetaBadge\")\n (if\n @icon \"euiCard--hasIcon\" (if (has-block \"icon\") \"euiCard--hasIcon\")\n )\n (if @selectable \"euiCard--isSelectable\")\n (if (and @selectable @selectable.isSelected) \"euiCard-isSelected\")\n (if @isDisabled \"euiCard-isDisabled\")\n this.selectableColorClass\n componentName=\"EuiCard\"\n textAlign=(argOrDefault @textAlign \"center\")\n }}\n @color={{if @isDisabled \"subdued\" @display}}\n @onClick={{if isClickable this.outerOnClick}}\n @hasShadow={{if (or @isDisabled @display) true}}\n @hasBorder={{if @display true undefined}}\n @paddingSize={{@paddingSize}}\n ...attributes\n >\n\n {{#if (or (has-block \"icon\") (or @image @icon))}}\n <div class={{this.topClasses}}>\n {{#if (has-block \"icon\")}}\n {{yield \"euiCard__icon\" to=\"icon\"}}\n {{else}}\n {{#if (or @image @icon)}}\n {{#if (and @image (notEq layout \"horizontal\"))}}\n <div class=\"euiCard__image\">\n <img src={{@image}} alt=\"card-top\" />\n </div>\n {{/if}}\n {{#if @icon}}\n <EuiIcon\n @iconClasses=\"euiCard__icon\"\n @type={{@icon}}\n @size={{@iconSize}}\n />\n {{/if}}\n {{/if}}\n {{/if}}\n </div>\n {{/if}}\n\n <div class={{this.contentClasses}}>\n <EuiTitle\n class=\"euiCard__title\"\n @size={{argOrDefault @titleSize \"s\"}}\n >\n {{#if (has-block \"title\")}}\n {{yield (set this \"link\") to=\"title\"}}\n {{else if (and (not @isDisabled) @href)}}\n <a\n class=\"euiCard__titleAnchor\"\n target={{@target}}\n disabled={{@isDisabled}}\n href={{@href}}\n {{didInsert (set this \"link\")}}\n >\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n\n </a>\n {{else if (or @isDisabled @onClick)}}\n <button\n type=\"button\"\n class=\"euiCard__titleButton\"\n disabled={{@isDisabled}}\n {{didInsert (set this \"link\")}}\n {{on \"click\" (optional @onClick)}}\n >\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n </button>\n {{else}}\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n {{/if}}\n </EuiTitle>\n {{#if (or @description (has-block \"description\"))}}\n <EuiText @grow={{true}} @size=\"s\" class=\"euiCard__description\">\n {{#if (has-block \"description\")}}\n <p>{{yield to=\"description\"}}</p>\n {{else}}\n <p>{{@description}}</p>\n {{/if}}\n </EuiText>\n {{/if}}\n {{yield to=\"body\"}}\n </div>\n {{#if @betaBadgeProps.label}}\n <span class=\"euiCard__betaBadgeWrapper\">\n <EuiBetaBadge\n class=\"euiCard__betaBadge\"\n @label={{@betaBadgeProps.label}}\n @title={{@betaBadgeProps.title}}\n @tooltipContent={{@betaBadgeProps.tooltipContent}}\n />\n </span>\n {{/if}}\n {{#if (and (eq layout \"vertical\") (or (has-block \"footer\") @footer))}}\n <div class={{this.footerClasses}}>\n {{#if (has-block \"footer\")}}\n {{yield to=\"footer\"}}\n {{else}}\n {{@footer}}\n {{/if}}\n </div>\n {{/if}}\n {{#if @selectable}}\n <EuiCardSelect\n @type={{@selectable.type}}\n @buttonId={{selectableId}}\n @isSelected={{@selectable.isSelected}}\n @isDisabled={{@selectable.isDisabled}}\n @color={{@selectable.color}}\n @isLoading={{@selectable.isLoading}}\n @href={{@selectable.href}}\n @iconSide={{@selectable.iconSide}}\n @flush={{@selectable.flush}}\n {{didInsert (set this \"link\")}}\n @onClick={{optional @selectable.onClick}}\n />\n {{/if}}\n </EuiPanel>\n {{/let}}\n </template>\n}\n"],"names":["EuiCardComponent","Component","g","prototype","tracked","i","void 0","outerOnClick","e","link","target","click","selectableColorClass","selectable","args","euiCardSelectableColor","color","isSelected","undefined","topClasses","topClassName","join","contentClasses","contentClassName","footerClasses","footerClassName","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","and","not","or","argOrDefault","EuiPanel","classNames","eq","notEq","EuiIcon","EuiTitle","set","didInsert","element","on","optional","EuiText","EuiBetaBadge","EuiCardSelect"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+Fe,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CACrDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6D,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,SAAA;EAEnEC,YAAA,GAAgBC,CAAG,IAAA;IACjB,IAAI,IAAI,CAACC,IAAI,IAAI,IAAI,CAACA,IAAI,KAAKD,CAAE,CAAAE,MAAM,EAAE;AACvC,MAAA,IAAI,CAACD,IAAI,CAACE,KAAK,EAAA;AACjB;GACA;EAEF,IAAIC,oBAAuBA,GAAA;AACzB,IAAA,MAAMC,UAAa,GAAA,IAAI,CAACC,IAAI,CAACD,UAAU;AAEvC,IAAA,OAAOA,UACH,GAAA,CAA0BE,uBAAAA,EAAAA,sBACxB,CAAAF,UAAA,CAAWG,KAAK,EAChBH,UAAW,CAAAI,UAAU,CACrB,CAAA,CAAC,GACHC,SAAA;AACN;EAEA,IAAIC,UAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,cAAA,EAAgB,IAAI,CAACL,IAAI,CAACM,YAAY,CAAC,CAACC,IAAI,CAAC,GAAA,CAAA;AACvD;EAEA,IAAIC,cAAAA,GAAyB;AAC3B,IAAA,OAAO,CAAC,kBAAA,EAAoB,IAAI,CAACR,IAAI,CAACS,gBAAgB,CAAC,CAACF,IAAI,CAAC,GAAA,CAAA;AAC/D;EAEA,IAAIG,aAAAA,GAAwB;AAC1B,IAAA,OAAO,CAAC,iBAAA,EAAmB,IAAI,CAACV,IAAI,CAACW,eAAe,CAAC,CAACJ,IAAI,CAAC,GAAA,CAAA;AAC7D;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CA0JA,y0JAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,EAAA;QAAAC,QAAA;iBAAAC,gBAAA;QAAAC,YAAA;AAAAC,uBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-card.js","sources":["../../src/components/eui-card.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 { element } from 'ember-element-helper';\nimport set from 'ember-set-helper/helpers/set';\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiBetaBadge from './eui-beta-badge.gts';\nimport { euiCardSelectableColor } from './eui-card-select.gts';\nimport EuiCardSelect from './eui-card-select.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { EuiCardSelectProps } from './eui-card-select';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiPanelSignature } from './eui-panel';\nimport type { EuiTitleSignature } from './eui-title';\n\ntype EuiCardComponentArgs = {\n footer?: string;\n selectable?: EuiCardSelectProps;\n /**\n * Class that will apply to the card top section.\n */\n topClassName?: string;\n\n /**\n * Class that will apply to the card content section.\n */\n contentClassName?: string;\n\n /**\n * Class that will apply to the card footer section.\n */\n footerClassName?: string;\n\n target?: string;\n\n betaBadgeProps?: {\n label: string;\n title?: string;\n tooltipContent?: string;\n };\n\n description?: string;\n\n /**\n * The title of the card.\n */\n title?: string;\n titleSize?: EuiTitleSignature['Args']['size'];\n\n /**\n * The title element. Will wrap the title in a heading tag.\n */\n titleElement?: string;\n\n href?: string;\n\n onClick?: (e: MouseEvent) => void;\n\n isDisabled?: boolean;\n\n textAlign?: 'left' | 'center' | 'right';\n\n image?: string;\n icon?: string;\n layout?: 'horizontal' | 'vertical';\n\n display?: EuiPanelSignature['Args']['color'];\n paddingSize?: EuiPanelSignature['Args']['paddingSize'];\n\n iconSize?: EuiIconSignature['Args']['size'];\n};\n\nexport interface EuiCardSignature {\n Element: EuiPanelSignature['Element'];\n Args: EuiCardComponentArgs;\n Blocks: {\n icon: ['euiCard__icon'];\n title: [() => void];\n description: [];\n body: [];\n footer: [];\n };\n}\n\nexport default class EuiCardComponent extends Component<EuiCardSignature> {\n @tracked link: HTMLAnchorElement | HTMLButtonElement | null = null;\n\n outerOnClick = (e: MouseEvent) => {\n if (this.link && this.link !== e.target) {\n this.link.click();\n }\n };\n\n get selectableColorClass() {\n const selectable = this.args.selectable;\n\n return selectable\n ? `euiCard--isSelectable--${euiCardSelectableColor(\n selectable.color,\n selectable.isSelected\n )}`\n : undefined;\n }\n\n get topClasses(): string {\n return ['euiCard__top', this.args.topClassName].join(' ');\n }\n\n get contentClasses(): string {\n return ['euiCard__content', this.args.contentClassName].join(' ');\n }\n\n get footerClasses(): string {\n return ['euiCard__footer', this.args.footerClassName].join(' ');\n }\n\n <template>\n {{#let\n (if @selectable (randomId))\n (and\n (not @isDisabled)\n (or @onClick @href (and @selectable (not @selectable.isDisabled)))\n )\n (argOrDefault @titleElement \"span\")\n (argOrDefault @layout \"vertical\")\n as |selectableId isClickable titleElement layout|\n }}\n <EuiPanel\n class={{classNames\n (if (eq layout \"horizontal\") \"euiCard--horizontal\")\n (if isClickable \"euiCard--isClickable\")\n (if @betaBadgeProps.label \"euiCard--hasBetaBadge\")\n (if\n @icon \"euiCard--hasIcon\" (if (has-block \"icon\") \"euiCard--hasIcon\")\n )\n (if @selectable \"euiCard--isSelectable\")\n (if (and @selectable @selectable.isSelected) \"euiCard-isSelected\")\n (if @isDisabled \"euiCard-isDisabled\")\n this.selectableColorClass\n componentName=\"EuiCard\"\n textAlign=(argOrDefault @textAlign \"center\")\n }}\n @color={{if @isDisabled \"subdued\" @display}}\n @onClick={{if isClickable this.outerOnClick}}\n @hasShadow={{if (or @isDisabled @display) true}}\n @hasBorder={{if @display true undefined}}\n @paddingSize={{@paddingSize}}\n ...attributes\n >\n\n {{#if (or (has-block \"icon\") (or @image @icon))}}\n <div class={{this.topClasses}}>\n {{#if (has-block \"icon\")}}\n {{yield \"euiCard__icon\" to=\"icon\"}}\n {{else}}\n {{#if (or @image @icon)}}\n {{#if (and @image (notEq layout \"horizontal\"))}}\n <div class=\"euiCard__image\">\n <img src={{@image}} alt=\"card-top\" />\n </div>\n {{/if}}\n {{#if @icon}}\n <EuiIcon\n @iconClasses=\"euiCard__icon\"\n @type={{@icon}}\n @size={{@iconSize}}\n />\n {{/if}}\n {{/if}}\n {{/if}}\n </div>\n {{/if}}\n\n <div class={{this.contentClasses}}>\n <EuiTitle\n class=\"euiCard__title\"\n @size={{argOrDefault @titleSize \"s\"}}\n >\n {{#if (has-block \"title\")}}\n {{yield (set this \"link\") to=\"title\"}}\n {{else if (and (not @isDisabled) @href)}}\n <a\n class=\"euiCard__titleAnchor\"\n target={{@target}}\n disabled={{@isDisabled}}\n href={{@href}}\n {{didInsert (set this \"link\")}}\n >\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n\n </a>\n {{else if (or @isDisabled @onClick)}}\n <button\n type=\"button\"\n class=\"euiCard__titleButton\"\n disabled={{@isDisabled}}\n {{didInsert (set this \"link\")}}\n {{on \"click\" (optional @onClick)}}\n >\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n </button>\n {{else}}\n {{#if (notEq titleElement \"span\")}}\n {{#let (element titleElement) as |TitleElement|}}\n <TitleElement>{{@title}}</TitleElement>\n {{/let}}\n {{else}}\n <span>{{@title}}</span>\n {{/if}}\n {{/if}}\n </EuiTitle>\n {{#if (or @description (has-block \"description\"))}}\n <EuiText @grow={{true}} @size=\"s\" class=\"euiCard__description\">\n {{#if (has-block \"description\")}}\n <p>{{yield to=\"description\"}}</p>\n {{else}}\n <p>{{@description}}</p>\n {{/if}}\n </EuiText>\n {{/if}}\n {{yield to=\"body\"}}\n </div>\n {{#if @betaBadgeProps.label}}\n <span class=\"euiCard__betaBadgeWrapper\">\n <EuiBetaBadge\n class=\"euiCard__betaBadge\"\n @label={{@betaBadgeProps.label}}\n @title={{@betaBadgeProps.title}}\n @tooltipContent={{@betaBadgeProps.tooltipContent}}\n />\n </span>\n {{/if}}\n {{#if (and (eq layout \"vertical\") (or (has-block \"footer\") @footer))}}\n <div class={{this.footerClasses}}>\n {{#if (has-block \"footer\")}}\n {{yield to=\"footer\"}}\n {{else}}\n {{@footer}}\n {{/if}}\n </div>\n {{/if}}\n {{#if @selectable}}\n <EuiCardSelect\n @type={{@selectable.type}}\n @buttonId={{selectableId}}\n @isSelected={{@selectable.isSelected}}\n @isDisabled={{@selectable.isDisabled}}\n @color={{@selectable.color}}\n @isLoading={{@selectable.isLoading}}\n @href={{@selectable.href}}\n @iconSide={{@selectable.iconSide}}\n @flush={{@selectable.flush}}\n {{didInsert (set this \"link\")}}\n @onClick={{optional @selectable.onClick}}\n />\n {{/if}}\n </EuiPanel>\n {{/let}}\n </template>\n}\n"],"names":["EuiCardComponent","Component","g","prototype","tracked","i","void 0","outerOnClick","e","link","target","click","selectableColorClass","selectable","args","euiCardSelectableColor","color","isSelected","undefined","topClasses","topClassName","join","contentClasses","contentClassName","footerClasses","footerClassName","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","and","not","or","argOrDefault","EuiPanel","classNames","eq","notEq","EuiIcon","EuiTitle","set","didInsert","element","on","optional","EuiText","EuiBetaBadge","EuiCardSelect"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+Fe,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CACrDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6D,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAEnEC,YAAA,GAAgBC,CAAG,IAAA;IACjB,IAAI,IAAI,CAACC,IAAI,IAAI,IAAI,CAACA,IAAI,KAAKD,CAAE,CAAAE,MAAM,EAAE;AACvC,MAAA,IAAI,CAACD,IAAI,CAACE,KAAK,EAAA;AACjB;GACA;EAEF,IAAIC,oBAAuBA,GAAA;AACzB,IAAA,MAAMC,UAAa,GAAA,IAAI,CAACC,IAAI,CAACD,UAAU;AAEvC,IAAA,OAAOA,UACH,GAAA,CAA0BE,uBAAAA,EAAAA,sBACxB,CAAAF,UAAA,CAAWG,KAAK,EAChBH,UAAW,CAAAI,UAAU,CACrB,CAAA,CAAC,GACHC,SAAA;AACN;EAEA,IAAIC,UAAAA,GAAqB;AACvB,IAAA,OAAO,CAAC,cAAA,EAAgB,IAAI,CAACL,IAAI,CAACM,YAAY,CAAC,CAACC,IAAI,CAAC,GAAA,CAAA;AACvD;EAEA,IAAIC,cAAAA,GAAyB;AAC3B,IAAA,OAAO,CAAC,kBAAA,EAAoB,IAAI,CAACR,IAAI,CAACS,gBAAgB,CAAC,CAACF,IAAI,CAAC,GAAA,CAAA;AAC/D;EAEA,IAAIG,aAAAA,GAAwB;AAC1B,IAAA,OAAO,CAAC,iBAAA,EAAmB,IAAI,CAACV,IAAI,CAACW,eAAe,CAAC,CAACJ,IAAI,CAAC,GAAA,CAAA;AAC7D;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CA0JA,y0JAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,EAAA;QAAAC,QAAA;iBAAAC,gBAAA;QAAAC,YAAA;AAAAC,uBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
2
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
2
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
3
3
|
import { modifier } from 'ember-modifier';
|
|
4
4
|
import { or, not, and } from 'ember-truth-helpers';
|
|
5
5
|
import randomId from '../-private/random-id.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-checkbox.js","sources":["../../src/components/eui-checkbox.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { modifier } from 'ember-modifier';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nconst indeterminateModifier = modifier(function invalidateIndeterminate(\n element: HTMLInputElement,\n [indeterminate]: [boolean?]\n) {\n if (element) {\n element.indeterminate = indeterminate!;\n }\n});\n\nexport interface EuiCheckboxSignature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n icon?: boolean;\n compressed?: boolean;\n label?: string;\n labelProps?: {\n className?: string;\n };\n containerClass?: string;\n className?: string;\n inputRef?: (element: HTMLInputElement) => void;\n isFakeLabelBlock?: boolean;\n id?: string;\n name?: string;\n };\n Blocks: {\n label?: [];\n };\n}\n\nconst EuiCheckbox: TemplateOnlyComponent<EuiCheckboxSignature> = <template>\n {{#let\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n (argOrDefault @id (randomId))\n as |hasLabelBlock id|\n }}\n {{#let\n (classNames\n (if @icon \"euiCheckbox--withIcon\")\n (if (not (or hasLabelBlock @label)) \"euiCheckbox--noLabel\")\n (if @compressed \"euiCheckbox--compressed\")\n \"euiCheckbox\"\n @className\n @containerClass\n )\n as |classes|\n }}\n <div class={{classes}}>\n <input\n class=\"euiCheckbox__input\"\n type=\"checkbox\"\n id={{id}}\n checked={{@checked}}\n disabled={{@disabled}}\n name={{@name}}\n ...attributes\n {{indeterminateModifier @indeterminate}}\n {{didInsert (optional @inputRef)}}\n />\n <div class=\"euiCheckbox__square\"></div>\n {{#if (or hasLabelBlock @label)}}\n <label\n class={{classNames \"euiCheckbox__label\" @labelProps.className}}\n for={{id}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </label>\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiCheckbox;\n"],"names":["indeterminateModifier","modifier","invalidateIndeterminate","element","indeterminate","EuiCheckbox","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;;AAYA,MAAMA,qBAAA,GAAwBC,QAAS,CAAA,SAASC,uBAC9CA,CAAAC,OAAyB,EACzB,CAACC,aAAiB,CAAS,EAAA;AAE3B,EAAA,IAAID,OAAS,EAAA;IACXA,OAAA,CAAQC,aAAa,GAAGA,aAAA;AAC1B;AACF,CAAA,CAAA;AA0BA,MAAMC,WAA2D,GAAAC,oBAAA,CAAAC,kBAAA,CA6CjE,ygCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAf,qBAAA;IAAAgB,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-checkbox.js","sources":["../../src/components/eui-checkbox.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { modifier } from 'ember-modifier';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nconst indeterminateModifier = modifier(function invalidateIndeterminate(\n element: HTMLInputElement,\n [indeterminate]: [boolean?]\n) {\n if (element) {\n element.indeterminate = indeterminate!;\n }\n});\n\nexport interface EuiCheckboxSignature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n icon?: boolean;\n compressed?: boolean;\n label?: string;\n labelProps?: {\n className?: string;\n };\n containerClass?: string;\n className?: string;\n inputRef?: (element: HTMLInputElement) => void;\n isFakeLabelBlock?: boolean;\n id?: string;\n name?: string;\n };\n Blocks: {\n label?: [];\n };\n}\n\nconst EuiCheckbox: TemplateOnlyComponent<EuiCheckboxSignature> = <template>\n {{#let\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n (argOrDefault @id (randomId))\n as |hasLabelBlock id|\n }}\n {{#let\n (classNames\n (if @icon \"euiCheckbox--withIcon\")\n (if (not (or hasLabelBlock @label)) \"euiCheckbox--noLabel\")\n (if @compressed \"euiCheckbox--compressed\")\n \"euiCheckbox\"\n @className\n @containerClass\n )\n as |classes|\n }}\n <div class={{classes}}>\n <input\n class=\"euiCheckbox__input\"\n type=\"checkbox\"\n id={{id}}\n checked={{@checked}}\n disabled={{@disabled}}\n name={{@name}}\n ...attributes\n {{indeterminateModifier @indeterminate}}\n {{didInsert (optional @inputRef)}}\n />\n <div class=\"euiCheckbox__square\"></div>\n {{#if (or hasLabelBlock @label)}}\n <label\n class={{classNames \"euiCheckbox__label\" @labelProps.className}}\n for={{id}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </label>\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiCheckbox;\n"],"names":["indeterminateModifier","modifier","invalidateIndeterminate","element","indeterminate","EuiCheckbox","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;;AAYA,MAAMA,qBAAA,GAAwBC,QAAS,CAAA,SAASC,uBAC9CA,CAAAC,OAAyB,EACzB,CAACC,aAAiB,CAAS,EAAA;AAE3B,EAAA,IAAID,OAAS,EAAA;IACXA,OAAA,CAAQC,aAAa,GAAGA,aAAA;AAC1B;AACF,CAAA,CAAA;AA0BA,MAAMC,WAA2D,GAAAC,oBAAA,CAAAC,kBAAA,CA6CjE,ygCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAf,qBAAA;IAAAgB,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|