@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-combo-box.js","sources":["../../src/components/eui-combo-box.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isEqual } from '@ember/utils';\nimport 'ember-basic-dropdown/styles';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport pipe from 'ember-composable-helpers/helpers/pipe';\nimport queue from 'ember-composable-helpers/helpers/queue';\nimport PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';\nimport { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiComboBoxCreateOption from './eui-combo-box/create-option.gts';\nimport EuiComboBoxGroup from './eui-combo-box/group.gts';\nimport EuiComboBoxNoMatchesMessage from './eui-combo-box/no-matches-message.gts';\nimport EuiComboBoxOptions from './eui-combo-box/options.gts';\nimport EuiComboBoxSearchMessage from './eui-combo-box/search-message.gts';\nimport EuiComboBoxTrigger from './eui-combo-box/trigger.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\n\ninterface PromiseProxy<T> extends Promise<T> {\n content: any;\n}\n\ninterface Select {\n selected: any;\n actions: {\n search: (str: string) => void;\n };\n}\n\nexport interface EuiComboBoxSignature {\n Element: HTMLDivElement;\n Args: {\n singleSelection?:\n | boolean\n | {\n asPlainText?: boolean;\n };\n onCreateOption?: (search: string) => boolean | undefined;\n options: any[];\n search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;\n searchField?: string;\n isInvalid?: boolean;\n fullWidth?: boolean;\n searchMessage?: string;\n searchEnabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n readOnly?: boolean;\n searchMessageComponent?: any;\n compressed?: boolean;\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n onClose?: (e: Event) => void;\n onOpen?: (e: Event) => void;\n renderInPlace?: boolean;\n customOptionText?: string;\n loadingMessage?: any;\n selectedItemComponent?: any;\n beforeOptionsComponent?: any;\n placeholderComponent?: any;\n afterOptionsComponent?: any;\n searchPlaceholder?: any;\n dropdownClass?: string;\n selectedOptions?: any[];\n onChange: (selected: any[]) => void;\n placeholder?: string;\n extra?: any;\n closeOnSelect?: boolean;\n autoFocus?: boolean;\n defaultHighlighted?: any;\n matchTriggerWidth?: boolean;\n tabindex?: number;\n initiallyOpen?: boolean;\n horizontalPosition?: string;\n verticalPosition?: string;\n destination?: string;\n preventScroll?: boolean;\n noMatchesMessage?: string;\n noMatchesMessageComponent?: any;\n };\n Blocks: {\n default: [any, number, Select];\n };\n}\n\ninterface Sliceable<T> {\n slice(): T[];\n}\n\nconst isSliceable = <T,>(coll: any): coll is Sliceable<T> => {\n return isArray(coll);\n};\n\nexport const toPlainArray = <T,>(collection: T[] | Sliceable<T>): T[] => {\n if (isSliceable<T>(collection)) {\n return collection.slice();\n } else {\n return collection;\n }\n};\n\nexport default class EuiComboBoxComponent extends Component<EuiComboBoxSignature> {\n @service declare euiI18n: EuiI18n;\n\n @tracked select: any = null;\n @tracked private _resolvedOptions?: any[];\n @tracked searchText = '';\n @tracked private _searchResult?: any[];\n\n private _filterResultsCache: {\n results: any[];\n options: any[];\n searchText: string;\n } = { results: [], options: [], searchText: this.searchText };\n\n get loadingMessage() {\n return (\n this.args.loadingMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.loadingMessage',\n 'Loading options...'\n )\n );\n }\n\n get noMatchesMessage() {\n return (\n this.args.noMatchesMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.noMatchesMessage',\n 'No results found'\n )\n );\n }\n\n get searchMessage() {\n return (\n this.args.searchMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.searchMessage',\n 'Type to search'\n )\n );\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n <PowerSelectMultiple\n ...attributes\n @onChange={{pipe this.onChange @onChange}}\n @onFocus={{@onFocus}}\n @onBlur={{@onBlur}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n @placeholderComponent={{@placeholderComponent}}\n @searchMessage={{this.searchMessage}}\n @searchMessageComponent={{if\n @searchMessageComponent\n @searchMessageComponent\n EuiComboBoxSearchMessage\n }}\n @noMatchesMessage={{this.noMatchesMessage}}\n @matchTriggerWidth={{@matchTriggerWidth}}\n @options={{this.options}}\n @selected={{@selectedOptions}}\n @closeOnSelect={{@closeOnSelect}}\n @defaultHighlighted={{@defaultHighlighted}}\n @searchField={{@searchField}}\n @searchEnabled={{argOrDefault @searchEnabled true}}\n @tabindex={{@tabindex}}\n @initiallyOpened={{and (not @isDisabled) @autoFocus}}\n @triggerComponent={{component\n EuiComboBoxTrigger\n fullWidth=@fullWidth\n compressed=@compressed\n isInvalid=@isInvalid\n singleSelection=@singleSelection\n onClose=@removeTag\n onCreateOption=(if @onCreateOption this.onCreateOption)\n isLoading=@isLoading\n autoFocus=(and (not @isDisabled) @autoFocus)\n icon=@triggerIcon\n }}\n @matcher={{@matcher}}\n @initiallyOpen={{@initiallyOpen}}\n @typeAheadOptionMatcher={{@typeAheadOptionMatcher}}\n @buildSelection={{this.buildSelection}}\n @search={{@search}}\n @onInput={{@onInput}}\n @onKeydown={{@onKeydown}}\n @scrollTo={{this.scrollTo}}\n @registerAPI={{queue this.registerAPI (optional @registerApi)}}\n @horizontalPosition={{@horizontalPosition}}\n @destination={{@destination}}\n @preventScroll={{@preventScroll}}\n @renderInPlace={{@renderInPlace}}\n @verticalPosition={{@verticalPosition}}\n @disabled={{@isDisabled}}\n @calculatePosition={{@calculatePosition}}\n @eventType={{@eventType}}\n @ariaLabel={{@ariaLabel}}\n @ariaLabelledBy={{@ariaLabelledBy}}\n @required={{@required}}\n @triggerRole={{@triggerRole}}\n @title={{@title}}\n @triggerId={{@triggerId}}\n @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}}\n @loadingMessage={{this.loadingMessage}}\n @selectedItemComponent={{@selectedItemComponent}}\n @beforeOptionsComponent={{@beforeOptionsComponent}}\n @afterOptionsComponent={{@afterOptionsComponent}}\n @placeholder={{@placeholder}}\n @searchPlaceholder={{@searchPlaceholder}}\n @optionsComponent={{component\n EuiComboBoxOptions\n rowHeight=@rowHeight\n class=@optionsClass\n }}\n @extra={{@extra}}\n @groupComponent={{component EuiComboBoxGroup}}\n @triggerClass={{classNames\n \"euiComboBox\"\n (if @compressed \"euiComboBox--compressed\")\n (if @fullWidth \"euiComboBox--fullWidth\")\n (if @isDisabled \"euiComboBox-isDisabled\")\n (if @isInvalid \"euiComboBox-isInvalid\")\n (if this.select.isOpen \"euiComboBox-isOpen\")\n }}\n @noMatchesMessageComponent={{if\n @onCreateOption\n (component\n EuiComboBoxCreateOption\n customOptionText=@customOptionText\n onCreateOption=this.onCreateOption\n select=this.select\n )\n (component EuiComboBoxNoMatchesMessage)\n }}\n @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen euiComboBoxOptionsList__rowWrap {{@dropdownClass}}\"\n as |option i|\n >\n {{yield option i}}\n </PowerSelectMultiple>\n </template>\n\n //This is to allow scrolling between virtualized groups\n @cached\n get opts() {\n return this.results.reduce((acc, curr) => {\n if (emberPowerSelectIsGroup([curr])) {\n acc.push(curr, ...curr.options);\n } else {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n @cached\n get options(): any[] {\n if (this._resolvedOptions) return toPlainArray(this._resolvedOptions);\n\n if (this.args.options) {\n return toPlainArray(this.args.options);\n } else {\n return [];\n }\n }\n\n @cached\n get results(): any[] {\n if (this.searchText.length > 0) {\n if (this.args.search) {\n return toPlainArray(this._searchResult || this.options);\n } else {\n if (\n this._filterResultsCache.options === this.options &&\n this._filterResultsCache.searchText === this.searchText\n ) {\n // This is an optimization to avoid filtering several times, which may be a bit expensive\n // if there are many options, if neither the options nor the searchtext have changed\n return this._filterResultsCache.results;\n }\n\n //@ts-ignore\n let results = this._filter(this.options, this.searchText);\n //eslint-disable-next-line\n this._filterResultsCache = {\n results,\n options: this.options,\n searchText: this.searchText\n };\n\n return results;\n }\n } else {\n return this.options;\n }\n }\n\n @action\n scrollTo(option: any, select: { results: []; uniqueId: string }): void {\n let optionsList = document.querySelector(\n `[aria-controls=\"ember-power-select-trigger-${select.uniqueId}\"]`\n ) as HTMLElement;\n\n if (!optionsList) {\n return;\n }\n\n let index = this.opts.indexOf(option);\n\n if (index === -1) {\n return;\n }\n\n let optionElement = optionsList.querySelector(\n `[data-option-index=\"${index}\"]`\n ) as HTMLElement;\n\n if (!optionElement) {\n return;\n }\n\n let optionTopScroll = optionElement.offsetTop;\n let optionBottomScroll = optionTopScroll + optionElement.offsetHeight;\n\n if (optionBottomScroll > optionsList.offsetHeight + optionsList.scrollTop) {\n optionsList.scrollTop = optionBottomScroll - optionsList.offsetHeight;\n } else if (optionTopScroll < optionsList.scrollTop) {\n optionsList.scrollTop = optionTopScroll;\n }\n }\n\n @action\n registerAPI(select: Select) {\n this.select = select;\n }\n\n @action\n onChange(selected: any[]) {\n if (this.args.singleSelection) {\n return selected.length > 0 ? [selected[selected.length - 1]] : [];\n }\n\n return selected;\n }\n\n @action\n onCreateOption() {\n let option;\n\n if (\n this.args.onCreateOption &&\n typeof this.args.onCreateOption === 'function'\n ) {\n // The `onCreateOption` function can be used to sanitize the input or explicitly return `false` to reject the input\n option = this.args.onCreateOption(this.select.searchText);\n\n if (option === false) {\n return;\n }\n }\n\n let search = option || this.select.searchText;\n\n this.select.actions.search('');\n this.select.actions.close();\n\n return search;\n }\n\n @action\n buildSelection(option: any, select: Select) {\n let newSelection = (select.selected || []).slice(0);\n let idx = -1;\n\n for (let i = 0; i < newSelection.length; i++) {\n if (isEqual(newSelection[i], option)) {\n idx = i;\n\n break;\n }\n }\n\n if (idx > -1) {\n newSelection.splice(idx, 1);\n } else {\n newSelection.push(option);\n }\n\n if (this.args.singleSelection && newSelection.length === 0) {\n select.actions.search('');\n }\n\n if (select?.selected?.length < newSelection.length) {\n select.actions.search('');\n }\n\n return newSelection;\n }\n}\n"],"names":["isSliceable","coll","isArray","toPlainArray","collection","slice","EuiComboBoxComponent","Component","g","prototype","service","i","void 0","tracked","_filterResultsCache","results","options","searchText","loadingMessage","args","euiI18n","lookupToken","noMatchesMessage","searchMessage","setComponentTemplate","precompileTemplate","strictMode","scope","PowerSelectMultiple","pipe","EuiComboBoxSearchMessage","argOrDefault","and","not","EuiComboBoxTrigger","queue","optional","EuiComboBoxOptions","EuiComboBoxGroup","classNames","EuiComboBoxCreateOption","EuiComboBoxNoMatchesMessage","opts","reduce","acc","curr","emberPowerSelectIsGroup","push","n","cached","_resolvedOptions","length","search","_searchResult","_filter","scrollTo","option","select","optionsList","document","querySelector","uniqueId","index","indexOf","optionElement","optionTopScroll","offsetTop","optionBottomScroll","offsetHeight","scrollTop","action","registerAPI","onChange","selected","singleSelection","onCreateOption","actions","close","buildSelection","newSelection","idx","isEqual","splice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-combo-box.js","sources":["../../src/components/eui-combo-box.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isEqual } from '@ember/utils';\nimport 'ember-basic-dropdown/styles';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\nimport PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';\nimport { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiComboBoxCreateOption from './eui-combo-box/create-option.gts';\nimport EuiComboBoxGroup from './eui-combo-box/group.gts';\nimport EuiComboBoxNoMatchesMessage from './eui-combo-box/no-matches-message.gts';\nimport EuiComboBoxOptions from './eui-combo-box/options.gts';\nimport EuiComboBoxSearchMessage from './eui-combo-box/search-message.gts';\nimport EuiComboBoxTrigger from './eui-combo-box/trigger.gts';\n\nimport type EuiI18n from '../services/eui-i18n';\n\ninterface PromiseProxy<T> extends Promise<T> {\n content: any;\n}\n\ninterface Select {\n selected: any;\n actions: {\n search: (str: string) => void;\n };\n}\n\nexport interface EuiComboBoxSignature {\n Element: HTMLDivElement;\n Args: {\n singleSelection?:\n | boolean\n | {\n asPlainText?: boolean;\n };\n onCreateOption?: (search: string) => boolean | undefined;\n options: any[];\n search?: (term: string, select: Select) => any[] | PromiseProxy<any[]>;\n searchField?: string;\n isInvalid?: boolean;\n fullWidth?: boolean;\n searchMessage?: string;\n searchEnabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isDisabled?: boolean;\n readOnly?: boolean;\n searchMessageComponent?: any;\n compressed?: boolean;\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n onClose?: (e: Event) => void;\n onOpen?: (e: Event) => void;\n renderInPlace?: boolean;\n customOptionText?: string;\n loadingMessage?: any;\n selectedItemComponent?: any;\n beforeOptionsComponent?: any;\n placeholderComponent?: any;\n afterOptionsComponent?: any;\n searchPlaceholder?: any;\n dropdownClass?: string;\n selectedOptions?: any[];\n onChange: (selected: any[]) => void;\n placeholder?: string;\n extra?: any;\n closeOnSelect?: boolean;\n autoFocus?: boolean;\n defaultHighlighted?: any;\n matchTriggerWidth?: boolean;\n tabindex?: number;\n initiallyOpen?: boolean;\n horizontalPosition?: string;\n verticalPosition?: string;\n destination?: string;\n preventScroll?: boolean;\n noMatchesMessage?: string;\n noMatchesMessageComponent?: any;\n };\n Blocks: {\n default: [any, number, Select];\n };\n}\n\ninterface Sliceable<T> {\n slice(): T[];\n}\n\nconst isSliceable = <T,>(coll: any): coll is Sliceable<T> => {\n return isArray(coll);\n};\n\nexport const toPlainArray = <T,>(collection: T[] | Sliceable<T>): T[] => {\n if (isSliceable<T>(collection)) {\n return collection.slice();\n } else {\n return collection;\n }\n};\n\nexport default class EuiComboBoxComponent extends Component<EuiComboBoxSignature> {\n @service declare euiI18n: EuiI18n;\n\n @tracked select: any = null;\n @tracked private _resolvedOptions?: any[];\n @tracked searchText = '';\n @tracked private _searchResult?: any[];\n\n private _filterResultsCache: {\n results: any[];\n options: any[];\n searchText: string;\n } = { results: [], options: [], searchText: this.searchText };\n\n get loadingMessage() {\n return (\n this.args.loadingMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.loadingMessage',\n 'Loading options...'\n )\n );\n }\n\n get noMatchesMessage() {\n return (\n this.args.noMatchesMessage ||\n this.euiI18n.lookupToken(\n 'euiComboBox.noMatchesMessage',\n 'No results found'\n )\n );\n }\n\n get searchMessage() {\n return (\n this.args.searchMessage ||\n this.euiI18n.lookupToken('euiComboBox.searchMessage', 'Type to search')\n );\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n <PowerSelectMultiple\n ...attributes\n @onChange={{this.onChange}}\n @onFocus={{@onFocus}}\n @onBlur={{@onBlur}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n @placeholderComponent={{@placeholderComponent}}\n @searchMessage={{this.searchMessage}}\n @searchMessageComponent={{if\n @searchMessageComponent\n @searchMessageComponent\n EuiComboBoxSearchMessage\n }}\n @noMatchesMessage={{this.noMatchesMessage}}\n @matchTriggerWidth={{@matchTriggerWidth}}\n @options={{this.options}}\n @selected={{@selectedOptions}}\n @closeOnSelect={{@closeOnSelect}}\n @defaultHighlighted={{@defaultHighlighted}}\n @searchField={{@searchField}}\n @searchEnabled={{argOrDefault @searchEnabled true}}\n @tabindex={{@tabindex}}\n @initiallyOpened={{and (not @isDisabled) @autoFocus}}\n @triggerComponent={{component\n EuiComboBoxTrigger\n fullWidth=@fullWidth\n compressed=@compressed\n isInvalid=@isInvalid\n singleSelection=@singleSelection\n onClose=@removeTag\n onCreateOption=(if @onCreateOption this.onCreateOption)\n isLoading=@isLoading\n autoFocus=(and (not @isDisabled) @autoFocus)\n icon=@triggerIcon\n }}\n @matcher={{@matcher}}\n @initiallyOpen={{@initiallyOpen}}\n @typeAheadOptionMatcher={{@typeAheadOptionMatcher}}\n @buildSelection={{this.buildSelection}}\n @search={{@search}}\n @onInput={{@onInput}}\n @onKeydown={{@onKeydown}}\n @scrollTo={{this.scrollTo}}\n @registerAPI={{queue this.registerAPI (optional @registerApi)}}\n @horizontalPosition={{@horizontalPosition}}\n @destination={{@destination}}\n @preventScroll={{@preventScroll}}\n @renderInPlace={{@renderInPlace}}\n @verticalPosition={{@verticalPosition}}\n @disabled={{@isDisabled}}\n @calculatePosition={{@calculatePosition}}\n @eventType={{@eventType}}\n @ariaLabel={{@ariaLabel}}\n @ariaLabelledBy={{@ariaLabelledBy}}\n @required={{@required}}\n @triggerRole={{@triggerRole}}\n @title={{@title}}\n @triggerId={{@triggerId}}\n @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}}\n @loadingMessage={{this.loadingMessage}}\n @selectedItemComponent={{@selectedItemComponent}}\n @beforeOptionsComponent={{@beforeOptionsComponent}}\n @afterOptionsComponent={{@afterOptionsComponent}}\n @placeholder={{@placeholder}}\n @searchPlaceholder={{@searchPlaceholder}}\n @optionsComponent={{component\n EuiComboBoxOptions\n rowHeight=@rowHeight\n class=@optionsClass\n }}\n @extra={{@extra}}\n @groupComponent={{component EuiComboBoxGroup}}\n @triggerClass={{classNames\n \"euiComboBox\"\n (if @compressed \"euiComboBox--compressed\")\n (if @fullWidth \"euiComboBox--fullWidth\")\n (if @isDisabled \"euiComboBox-isDisabled\")\n (if @isInvalid \"euiComboBox-isInvalid\")\n (if this.select.isOpen \"euiComboBox-isOpen\")\n }}\n @noMatchesMessageComponent={{if\n @onCreateOption\n (component\n EuiComboBoxCreateOption\n customOptionText=@customOptionText\n onCreateOption=this.onCreateOption\n select=this.select\n )\n (component EuiComboBoxNoMatchesMessage)\n }}\n @dropdownClass=\"euiComboBoxOptionsList euiPanel euiPanel--borderRadiusMedium euiPanel--noShadow euiPanel--plain euiPopover__panel-isAttached euiPopover__panel euiPopover__panel-noArrow euiPopover__panel--bottom euiPopover__panel-isOpen euiComboBoxOptionsList__rowWrap {{@dropdownClass}}\"\n as |option i|\n >\n {{yield option i}}\n </PowerSelectMultiple>\n </template>\n\n //This is to allow scrolling between virtualized groups\n @cached\n get opts() {\n return this.results.reduce((acc, curr) => {\n if (emberPowerSelectIsGroup([curr])) {\n acc.push(curr, ...curr.options);\n } else {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n @cached\n get options(): any[] {\n if (this._resolvedOptions) return toPlainArray(this._resolvedOptions);\n\n if (this.args.options) {\n return toPlainArray(this.args.options);\n } else {\n return [];\n }\n }\n\n @cached\n get results(): any[] {\n if (this.searchText.length > 0) {\n if (this.args.search) {\n return toPlainArray(this._searchResult || this.options);\n } else {\n if (\n this._filterResultsCache.options === this.options &&\n this._filterResultsCache.searchText === this.searchText\n ) {\n // This is an optimization to avoid filtering several times, which may be a bit expensive\n // if there are many options, if neither the options nor the searchtext have changed\n return this._filterResultsCache.results;\n }\n\n //@ts-ignore\n let results = this._filter(this.options, this.searchText);\n //eslint-disable-next-line\n this._filterResultsCache = {\n results,\n options: this.options,\n searchText: this.searchText\n };\n\n return results;\n }\n } else {\n return this.options;\n }\n }\n\n @action\n scrollTo(option: any, select: { results: []; uniqueId: string }): void {\n let optionsList = document.querySelector(\n `[aria-controls=\"ember-power-select-trigger-${select.uniqueId}\"]`\n ) as HTMLElement;\n\n if (!optionsList) {\n return;\n }\n\n let index = this.opts.indexOf(option);\n\n if (index === -1) {\n return;\n }\n\n let optionElement = optionsList.querySelector(\n `[data-option-index=\"${index}\"]`\n ) as HTMLElement;\n\n if (!optionElement) {\n return;\n }\n\n let optionTopScroll = optionElement.offsetTop;\n let optionBottomScroll = optionTopScroll + optionElement.offsetHeight;\n\n if (optionBottomScroll > optionsList.offsetHeight + optionsList.scrollTop) {\n optionsList.scrollTop = optionBottomScroll - optionsList.offsetHeight;\n } else if (optionTopScroll < optionsList.scrollTop) {\n optionsList.scrollTop = optionTopScroll;\n }\n }\n\n @action\n registerAPI(select: Select) {\n this.select = select;\n }\n\n @action\n onChange(selected: any[]) {\n if (this.args.singleSelection) {\n return selected.length > 0 ? [selected[selected.length - 1]] : [];\n }\n\n this.args.onChange(selected);\n }\n\n @action\n onCreateOption() {\n let option;\n\n if (\n this.args.onCreateOption &&\n typeof this.args.onCreateOption === 'function'\n ) {\n // The `onCreateOption` function can be used to sanitize the input or explicitly return `false` to reject the input\n option = this.args.onCreateOption(this.select.searchText);\n\n if (option === false) {\n return;\n }\n }\n\n let search = option || this.select.searchText;\n\n this.select.actions.search('');\n this.select.actions.close();\n\n return search;\n }\n\n @action\n buildSelection(option: any, select: Select) {\n let newSelection = (select.selected || []).slice(0);\n let idx = -1;\n\n for (let i = 0; i < newSelection.length; i++) {\n if (isEqual(newSelection[i], option)) {\n idx = i;\n\n break;\n }\n }\n\n if (idx > -1) {\n newSelection.splice(idx, 1);\n } else {\n newSelection.push(option);\n }\n\n if (this.args.singleSelection && newSelection.length === 0) {\n select.actions.search('');\n }\n\n if (select?.selected?.length < newSelection.length) {\n select.actions.search('');\n }\n\n return newSelection;\n }\n}\n"],"names":["isSliceable","coll","isArray","toPlainArray","collection","slice","EuiComboBoxComponent","Component","g","prototype","service","i","void 0","tracked","_filterResultsCache","results","options","searchText","loadingMessage","args","euiI18n","lookupToken","noMatchesMessage","searchMessage","setComponentTemplate","precompileTemplate","strictMode","scope","PowerSelectMultiple","EuiComboBoxSearchMessage","argOrDefault","and","not","EuiComboBoxTrigger","queue","optional","EuiComboBoxOptions","EuiComboBoxGroup","classNames","EuiComboBoxCreateOption","EuiComboBoxNoMatchesMessage","opts","reduce","acc","curr","emberPowerSelectIsGroup","push","n","cached","_resolvedOptions","length","search","_searchResult","_filter","scrollTo","option","select","optionsList","document","querySelector","uniqueId","index","indexOf","optionElement","optionTopScroll","offsetTop","optionBottomScroll","offsetHeight","scrollTop","action","registerAPI","onChange","selected","singleSelection","onCreateOption","actions","close","buildSelection","newSelection","idx","isEqual","splice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiGA,MAAMA,cAAmBC,IAAS,IAAqB;EACrD,OAAOC,OAAQ,CAAAD,IAAA,CAAA;AACjB,CAAA;AAEaE,MAAAA,YAAe,GAAKC,UAAiC,IAAA;AAChE,EAAA,IAAIJ,WAAA,CAAeI,UAAa,CAAA,EAAA;AAC9B,IAAA,OAAOA,WAAWC,KAAK,EAAA;AACzB,GAAO,MAAA;AACL,IAAA,OAAOD,UAAA;AACT;AACF;AAEe,MAAME,6BAA6BC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACzDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAEAI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAsB,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAC3BI,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACAI,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqB,EAAG;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACxBI,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAEOE,EAAAA,mBAAA,GAIJ;AAAEC,IAAAA,OAAA,EAAS,EAAE;AAAEC,IAAAA,OAAA,EAAS,EAAE;IAAEC,UAAY,EAAA,IAAI,CAACA;GAAa;EAE9D,IAAIC,cAAiBA,GAAA;AACnB,IAAA,OACE,IAAI,CAACC,IAAI,CAACD,cAAc,IACxB,IAAI,CAACE,OAAO,CAACC,WAAW,CACtB,8BACA,oBAEJ,CAAA;AACF;EAEA,IAAIC,gBAAmBA,GAAA;AACrB,IAAA,OACE,IAAI,CAACH,IAAI,CAACG,gBAAgB,IAC1B,IAAI,CAACF,OAAO,CAACC,WAAW,CACtB,gCACA,kBAEJ,CAAA;AACF;EAEA,IAAIE,aAAgBA,GAAA;AAClB,IAAA,OACE,IAAI,CAACJ,IAAI,CAACI,aAAa,IACvB,IAAI,CAACH,OAAO,CAACC,WAAW,CAAC,6BAA6B,gBACxD,CAAA;AACF;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAkGA,0lGAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,mBAAA;kCAAAC,sBAAA;QAAAC,YAAA;QAAAC,GAAA;QAAAC,GAAA;4BAAAC,2BAAA;QAAAC,KAAA;QAAAC,QAAA;4BAAAC,2BAAA;QAAAC,gBAAA;QAAAC,UAAA;iCAAAC,8BAAA;AAAAC,qCAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AAEV;EACA,IACIC,IAAOA,GAAA;IACT,OAAO,IAAI,CAAC1B,OAAO,CAAC2B,MAAM,CAAC,CAACC,GAAK,EAAAC,IAAA,KAAA;AAC/B,MAAA,IAAIC,uBAAwB,CAAA,CAACD,IAAA,CAAK,CAAG,EAAA;QACnCD,GAAA,CAAIG,IAAI,CAACF,IAAS,EAAA,GAAAA,IAAA,CAAK5B,OAAO,CAAA;AAChC,OAAO,MAAA;AACL2B,QAAAA,GAAA,CAAIG,IAAI,CAACF,IAAA,CAAA;AACX;AAEA,MAAA,OAAOD,GAAA;KACT,EAAG,EAAE,CAAA;AACP;AAAA,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,MAAA,EAAA,CAXCuC,MAAA,CAAA,CAAA;AAAA;EAaD,IACIhC,OAAAA,GAAiB;IACnB,IAAI,IAAI,CAACiC,gBAAgB,EAAE,OAAO9C,YAAa,CAAA,IAAI,CAAC8C,gBAAgB,CAAA;AAEpE,IAAA,IAAI,IAAI,CAAC9B,IAAI,CAACH,OAAO,EAAE;AACrB,MAAA,OAAOb,YAAa,CAAA,IAAI,CAACgB,IAAI,CAACH,OAAO,CAAA;AACvC,KAAO,MAAA;AACL,MAAA,OAAO,EAAE;AACX;AACF;AAAA,EAAA;IAAA+B,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,SAAA,EAAA,CATCuC,MAAA,CAAA,CAAA;AAAA;EAWD,IACIjC,OAAAA,GAAiB;AACnB,IAAA,IAAI,IAAI,CAACE,UAAU,CAACiC,MAAM,GAAG,CAAG,EAAA;AAC9B,MAAA,IAAI,IAAI,CAAC/B,IAAI,CAACgC,MAAM,EAAE;QACpB,OAAOhD,aAAa,IAAI,CAACiD,aAAa,IAAI,IAAI,CAACpC,OAAO,CAAA;AACxD,OAAO,MAAA;AACL,QAAA,IACE,IAAI,CAACF,mBAAmB,CAACE,OAAO,KAAK,IAAI,CAACA,OAAO,IACjD,IAAI,CAACF,mBAAmB,CAACG,UAAU,KAAK,IAAI,CAACA,UAAU,EACvD;AACA;AACA;AACA,UAAA,OAAO,IAAI,CAACH,mBAAmB,CAACC,OAAO;AACzC;AAEA;AACA,QAAA,IAAIA,OAAA,GAAU,IAAI,CAACsC,OAAO,CAAC,IAAI,CAACrC,OAAO,EAAE,IAAI,CAACC,UAAU,CAAA;AACxD;QACA,IAAI,CAACH,mBAAmB,GAAG;UACzBC,OAAA;UACAC,OAAS,EAAA,IAAI,CAACA,OAAO;UACrBC,UAAY,EAAA,IAAI,CAACA;SACnB;AAEA,QAAA,OAAOF,OAAA;AACT;AACF,KAAO,MAAA;MACL,OAAO,IAAI,CAACC,OAAO;AACrB;AACF;AAAA,EAAA;IAAA+B,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,SAAA,EAAA,CA7BCuC,MAAA,CAAA,CAAA;AAAA;AAgCDM,EAAAA,QAASA,CAAAC,MAAW,EAAEC,MAAyC,EAAQ;IACrE,IAAIC,WAAc,GAAAC,QAAA,CAASC,aAAa,CACtC,CAAA,2CAAA,EAA8CH,MAAA,CAAOI,QAAQ,CAAA,EAAA,CAAI,CAC9D;IAEL,IAAI,CAACH,WAAa,EAAA;AAChB,MAAA;AACF;IAEA,IAAII,QAAQ,IAAI,CAACpB,IAAI,CAACqB,OAAO,CAACP,MAAA,CAAA;AAE9B,IAAA,IAAIM,KAAA,KAAU,EAAI,EAAA;AAChB,MAAA;AACF;IAEA,IAAIE,aAAA,GAAgBN,WAAY,CAAAE,aAAa,CAC3C,CAAA,oBAAA,EAAuBE,KAAA,CAAA,EAAA,CAAS,CAC7B;IAEL,IAAI,CAACE,aAAe,EAAA;AAClB,MAAA;AACF;AAEA,IAAA,IAAIC,eAAA,GAAkBD,cAAcE,SAAS;AAC7C,IAAA,IAAIC,kBAAA,GAAqBF,eAAkB,GAAAD,aAAA,CAAcI,YAAY;IAErE,IAAID,qBAAqBT,WAAY,CAAAU,YAAY,GAAGV,WAAA,CAAYW,SAAS,EAAE;AACzEX,MAAAA,WAAA,CAAYW,SAAS,GAAGF,kBAAqB,GAAAT,WAAA,CAAYU,YAAY;AACvE,KAAA,MAAO,IAAIH,eAAA,GAAkBP,WAAY,CAAAW,SAAS,EAAE;MAClDX,WAAA,CAAYW,SAAS,GAAGJ,eAAA;AAC1B;AACF;AAAA,EAAA;IAAAjB,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,UAAA,EAAA,CAhCC4D,MAAA,CAAA,CAAA;AAAA;EAmCDC,WAAYA,CAAAd,MAAc,EAAE;IAC1B,IAAI,CAACA,MAAM,GAAGA,MAAA;AAChB;AAAA,EAAA;IAAAT,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,aAAA,EAAA,CAHC4D,MAAA,CAAA,CAAA;AAAA;EAMDE,QAASA,CAAAC,QAAe,EAAE;AACxB,IAAA,IAAI,IAAI,CAACrD,IAAI,CAACsD,eAAe,EAAE;AAC7B,MAAA,OAAOD,QAAA,CAAStB,MAAM,GAAG,CAAI,GAAA,CAACsB,QAAQ,CAACA,QAAA,CAAStB,MAAM,GAAG,CAAE,CAAA,CAAC,GAAG,EAAE;AACnE;AAEA,IAAA,IAAI,CAAC/B,IAAI,CAACoD,QAAQ,CAACC,QAAA,CAAA;AACrB;AAAA,EAAA;IAAAzB,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,UAAA,EAAA,CAPC4D,MAAA,CAAA,CAAA;AAAA;AAUDK,EAAAA,cAAiBA,GAAA;AACf,IAAA,IAAInB,MAAA;AAEJ,IAAA,IACE,IAAI,CAACpC,IAAI,CAACuD,cAAc,IACxB,OAAO,IAAI,CAACvD,IAAI,CAACuD,cAAc,KAAK,UACpC,EAAA;AACA;AACAnB,MAAAA,MAAS,GAAA,IAAI,CAACpC,IAAI,CAACuD,cAAc,CAAC,IAAI,CAAClB,MAAM,CAACvC,UAAU,CAAA;MAExD,IAAIsC,WAAW,KAAO,EAAA;AACpB,QAAA;AACF;AACF;IAEA,IAAIJ,SAASI,MAAU,IAAA,IAAI,CAACC,MAAM,CAACvC,UAAU;IAE7C,IAAI,CAACuC,MAAM,CAACmB,OAAO,CAACxB,MAAM,CAAC,EAAA,CAAA;AAC3B,IAAA,IAAI,CAACK,MAAM,CAACmB,OAAO,CAACC,KAAK,EAAA;AAEzB,IAAA,OAAOzB,MAAA;AACT;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,gBAAA,EAAA,CAtBC4D,MAAA,CAAA,CAAA;AAAA;AAyBDQ,EAAAA,cAAAA,CAAetB,MAAW,EAAEC,MAAc,EAAE;AAC1C,IAAA,IAAIsB,YAAA,GAAe,CAACtB,MAAO,CAAAgB,QAAQ,IAAI,EAAE,EAAEnE,KAAK,CAAC,CAAA,CAAA;IACjD,IAAI0E,MAAM,EAAC;AAEX,IAAA,KAAK,IAAIpE,CAAI,GAAA,CAAA,EAAGA,IAAImE,YAAa,CAAA5B,MAAM,EAAEvC,CAAK,EAAA,EAAA;MAC5C,IAAIqE,OAAQ,CAAAF,YAAY,CAACnE,CAAA,CAAE,EAAE4C,MAAS,CAAA,EAAA;AACpCwB,QAAAA,GAAM,GAAApE,CAAA;AAEN,QAAA;AACF;AACF;AAEA,IAAA,IAAIoE,GAAA,GAAM,EAAI,EAAA;AACZD,MAAAA,YAAa,CAAAG,MAAM,CAACF,GAAK,EAAA,CAAA,CAAA;AAC3B,KAAO,MAAA;AACLD,MAAAA,YAAA,CAAahC,IAAI,CAACS,MAAA,CAAA;AACpB;IAEA,IAAI,IAAI,CAACpC,IAAI,CAACsD,eAAe,IAAIK,YAAA,CAAa5B,MAAM,KAAK,CAAG,EAAA;AAC1DM,MAAAA,MAAO,CAAAmB,OAAO,CAACxB,MAAM,CAAC,EAAA,CAAA;AACxB;IAEA,IAAIK,MAAQ,EAAAgB,QAAA,EAAUtB,MAAS,GAAA4B,YAAA,CAAa5B,MAAM,EAAE;AAClDM,MAAAA,MAAO,CAAAmB,OAAO,CAACxB,MAAM,CAAC,EAAA,CAAA;AACxB;AAEA,IAAA,OAAO2B,YAAA;AACT;AAAA,EAAA;IAAA/B,CAAA,CAAA,IAAA,CAAAtC,SAAA,EAAA,gBAAA,EAAA,CA5BC4D,MAAA,CAAA,CAAA;AAAA;AA6BH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-context-menu-item.js","sources":["../../src/components/eui-context-menu-item.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\n\nimport type { layoutAlignMapping, sizeMapping } from '../utils/css-mappings/eui-context-menu-item.ts';\nimport type { EuiIconSignature } from './eui-icon';\n\nexport interface EuiContextMenuItemSignature {\n Element: HTMLAnchorElement | HTMLButtonElement;\n Args: {\n layoutAlign?: keyof typeof layoutAlignMapping;\n disabled?: boolean;\n size?: keyof typeof sizeMapping;\n href?: string;\n target?: string;\n isLoading?: boolean;\n icon: EuiIconSignature['Args']['type'];\n iconClasses?: string;\n hasPanel?: boolean;\n };\n\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiContextMenuItemComponent extends Component<EuiContextMenuItemSignature> {\n @tracked link: HTMLAnchorElement | HTMLButtonElement | null = null;\n\n @action\n registerLink(e: HTMLAnchorElement | HTMLButtonElement) {\n this.link = e;\n }\n\n <template>\n {{#let\n (classNames\n \"euiContextMenuItem\"\n componentName=\"EuiContextMenuItem\"\n disabled=@disabled\n layoutAlign=(argOrDefault @layoutAlign \"center\")\n size=@size\n )\n as |classes|\n }}\n {{#if (and @href (not @disabled))}}\n <a\n class={{classes}}\n href={{@href}}\n target={{@target}}\n {{didInsert this.registerLink}}\n ...attributes\n />\n\n {{else}}\n <button\n class={{classes}}\n disabled={{@disabled}}\n type=\"button\"\n {{didInsert this.registerLink}}\n ...attributes\n />\n {{/if}}\n {{/let}}\n\n {{! shared code that will be rendered inside the button or anchor }}\n {{#if this.link}}\n {{#in-element this.link}}\n <span\n class={{classNames\n \"euiContextMenu__itemLayout\"\n componentName=\"EuiContextMenuItem\"\n layoutAlign=(argOrDefault @layoutAlign \"center\")\n }}\n >\n {{#if @isLoading}}\n {{! spinner is not part of eui spec }}\n <EuiLoadingSpinner class=\"euiContextMenu__icon\" />\n {{else}}\n <EuiIcon\n @iconClasses={{concat \"euiContextMenu__icon \" @iconClasses}}\n @type={{@icon}}\n @size=\"m\"\n @color=\"inherit\"\n />\n {{/if}}\n <span class=\"euiContextMenuItem__text\">\n {{yield}}\n </span>\n {{#if @hasPanel}}\n <EuiIcon\n @type=\"arrowRight\"\n @size=\"m\"\n class=\"euiContextMenu__arrow\"\n />\n {{/if}}\n </span>\n {{/in-element}}\n {{/if}}\n </template>\n}\n"],"names":["EuiContextMenuItemComponent","Component","g","prototype","tracked","i","void 0","registerLink","e","link","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","and","not","didInsert","EuiLoadingSpinner","EuiIcon","concat"],"mappings":";;;;;;;;;;;;;;AAmCe,MAAMA,oCAAoCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAChEC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6D,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-context-menu-item.js","sources":["../../src/components/eui-context-menu-item.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, not } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\n\nimport type { layoutAlignMapping, sizeMapping } from '../utils/css-mappings/eui-context-menu-item.ts';\nimport type { EuiIconSignature } from './eui-icon';\n\nexport interface EuiContextMenuItemSignature {\n Element: HTMLAnchorElement | HTMLButtonElement;\n Args: {\n layoutAlign?: keyof typeof layoutAlignMapping;\n disabled?: boolean;\n size?: keyof typeof sizeMapping;\n href?: string;\n target?: string;\n isLoading?: boolean;\n icon: EuiIconSignature['Args']['type'];\n iconClasses?: string;\n hasPanel?: boolean;\n };\n\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiContextMenuItemComponent extends Component<EuiContextMenuItemSignature> {\n @tracked link: HTMLAnchorElement | HTMLButtonElement | null = null;\n\n @action\n registerLink(e: HTMLAnchorElement | HTMLButtonElement) {\n this.link = e;\n }\n\n <template>\n {{#let\n (classNames\n \"euiContextMenuItem\"\n componentName=\"EuiContextMenuItem\"\n disabled=@disabled\n layoutAlign=(argOrDefault @layoutAlign \"center\")\n size=@size\n )\n as |classes|\n }}\n {{#if (and @href (not @disabled))}}\n <a\n class={{classes}}\n href={{@href}}\n target={{@target}}\n {{didInsert this.registerLink}}\n ...attributes\n />\n\n {{else}}\n <button\n class={{classes}}\n disabled={{@disabled}}\n type=\"button\"\n {{didInsert this.registerLink}}\n ...attributes\n />\n {{/if}}\n {{/let}}\n\n {{! shared code that will be rendered inside the button or anchor }}\n {{#if this.link}}\n {{#in-element this.link}}\n <span\n class={{classNames\n \"euiContextMenu__itemLayout\"\n componentName=\"EuiContextMenuItem\"\n layoutAlign=(argOrDefault @layoutAlign \"center\")\n }}\n >\n {{#if @isLoading}}\n {{! spinner is not part of eui spec }}\n <EuiLoadingSpinner class=\"euiContextMenu__icon\" />\n {{else}}\n <EuiIcon\n @iconClasses={{concat \"euiContextMenu__icon \" @iconClasses}}\n @type={{@icon}}\n @size=\"m\"\n @color=\"inherit\"\n />\n {{/if}}\n <span class=\"euiContextMenuItem__text\">\n {{yield}}\n </span>\n {{#if @hasPanel}}\n <EuiIcon\n @type=\"arrowRight\"\n @size=\"m\"\n class=\"euiContextMenu__arrow\"\n />\n {{/if}}\n </span>\n {{/in-element}}\n {{/if}}\n </template>\n}\n"],"names":["EuiContextMenuItemComponent","Component","g","prototype","tracked","i","void 0","registerLink","e","link","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","and","not","didInsert","EuiLoadingSpinner","EuiIcon","concat"],"mappings":";;;;;;;;;;;;;;AAmCe,MAAMA,oCAAoCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAChEC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6D,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAGnEC,YAAaA,CAAAC,CAAwC,EAAE;IACrD,IAAI,CAACC,IAAI,GAAGD,CAAA;AACd;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAP,SAAA,EAAA,cAAA,EAAA,CAHCQ,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAiEA,y4CAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,YAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,iBAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -13,7 +13,7 @@ class EuiCopyComponent extends Component {
|
|
|
13
13
|
return this.args.beforeMessage;
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
#tooltipText = (i(this, "tooltipText"),
|
|
16
|
+
#tooltipText = (i(this, "tooltipText"), void 0);
|
|
17
17
|
copy() {
|
|
18
18
|
const isCopied = copyToClipboard(this.args.textToCopy);
|
|
19
19
|
if (isCopied) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-copy.js","sources":["../../src/components/eui-copy.gts"],"sourcesContent":["import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\n\nimport { copyToClipboard } from \"../utils/copy-to-clipboard.ts\";\nimport EuiToolTip from \"./eui-tool-tip.gts\";\n\nimport type { EuiToolTipSignature } from \"./eui-tool-tip\";\n\ntype EuiCopyArgs = {\n /**\n * Text that will be copied to clipboard when copy function is executed.\n */\n textToCopy: string;\n /**\n * Tooltip message displayed before copy function is called.\n */\n beforeMessage?: string;\n /**\n * Tooltip message displayed after copy function is called that lets the user know that\n * 'textToCopy' has been copied to the clipboard.\n */\n afterMessage?: string;\n\n /**\n * The element that will be used as the anchor for the tooltip.\n * Defaults to the child element of EuiCopy.\n */\n anchor?: HTMLElement;\n};\n\nexport interface EuiCopySignature {\n Element: EuiToolTipSignature[\"Element\"];\n Args: EuiCopyArgs;\n Blocks: {\n default: [() => void];\n };\n}\n\nexport default class EuiCopyComponent extends Component<EuiCopySignature> {\n @tracked tooltipText = this.args.beforeMessage;\n\n @action\n copy() {\n const isCopied = copyToClipboard(this.args.textToCopy);\n\n if (isCopied) {\n this.tooltipText = this.args.afterMessage;\n }\n }\n\n @action\n resetTooltipText(): void {\n this.tooltipText = this.args.beforeMessage;\n }\n\n <template>\n <EuiToolTip\n @content={{this.tooltipText}}\n @onMouseOut={{this.resetTooltipText}}\n ...attributes\n >\n <:anchor>\n {{yield this.copy}}\n </:anchor>\n </EuiToolTip>\n </template>\n}\n"],"names":["EuiCopyComponent","Component","g","prototype","tracked","args","beforeMessage","i","void 0","copy","isCopied","copyToClipboard","textToCopy","tooltipText","afterMessage","n","action","resetTooltipText","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip"],"mappings":";;;;;;;;;AAuCe,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CACrDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAsB,IAAI,CAACC,IAAI,CAACC,aAAa;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-copy.js","sources":["../../src/components/eui-copy.gts"],"sourcesContent":["import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\n\nimport { copyToClipboard } from \"../utils/copy-to-clipboard.ts\";\nimport EuiToolTip from \"./eui-tool-tip.gts\";\n\nimport type { EuiToolTipSignature } from \"./eui-tool-tip\";\n\ntype EuiCopyArgs = {\n /**\n * Text that will be copied to clipboard when copy function is executed.\n */\n textToCopy: string;\n /**\n * Tooltip message displayed before copy function is called.\n */\n beforeMessage?: string;\n /**\n * Tooltip message displayed after copy function is called that lets the user know that\n * 'textToCopy' has been copied to the clipboard.\n */\n afterMessage?: string;\n\n /**\n * The element that will be used as the anchor for the tooltip.\n * Defaults to the child element of EuiCopy.\n */\n anchor?: HTMLElement;\n};\n\nexport interface EuiCopySignature {\n Element: EuiToolTipSignature[\"Element\"];\n Args: EuiCopyArgs;\n Blocks: {\n default: [() => void];\n };\n}\n\nexport default class EuiCopyComponent extends Component<EuiCopySignature> {\n @tracked tooltipText = this.args.beforeMessage;\n\n @action\n copy() {\n const isCopied = copyToClipboard(this.args.textToCopy);\n\n if (isCopied) {\n this.tooltipText = this.args.afterMessage;\n }\n }\n\n @action\n resetTooltipText(): void {\n this.tooltipText = this.args.beforeMessage;\n }\n\n <template>\n <EuiToolTip\n @content={{this.tooltipText}}\n @onMouseOut={{this.resetTooltipText}}\n ...attributes\n >\n <:anchor>\n {{yield this.copy}}\n </:anchor>\n </EuiToolTip>\n </template>\n}\n"],"names":["EuiCopyComponent","Component","g","prototype","tracked","args","beforeMessage","i","void 0","copy","isCopied","copyToClipboard","textToCopy","tooltipText","afterMessage","n","action","resetTooltipText","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip"],"mappings":";;;;;;;;;AAuCe,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CACrDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAsB,IAAI,CAACC,IAAI,CAACC,aAAa;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAC,MAAA;AAG9CC,EAAAA,IAAOA,GAAA;IACL,MAAMC,WAAWC,eAAgB,CAAA,IAAI,CAACN,IAAI,CAACO,UAAU,CAAA;AAErD,IAAA,IAAIF,QAAU,EAAA;AACZ,MAAA,IAAI,CAACG,WAAW,GAAG,IAAI,CAACR,IAAI,CAACS,YAAY;AAC3C;AACF;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,MAAA,EAAA,CAPCa,MAAA,CAAA,CAAA;AAAA;AAUDC,EAAAA,gBAAAA,GAAyB;AACvB,IAAA,IAAI,CAACJ,WAAW,GAAG,IAAI,CAACR,IAAI,CAACC,aAAa;AAC5C;AAAA,EAAA;IAAAS,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,kBAAA,EAAA,CAHCa,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAUA,6LAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
import templateOnly from '@ember/component/template-only';
|
|
10
10
|
|
|
11
|
-
const EuiDescribedFormGroup = setComponentTemplate(precompileTemplate("\n <div role=\"group\" class={{classNames \"euiDescribedFormGroup\" (if @fullWidth \"euiDescribedFormGroup--fullWidth\")}} ...attributes>\n <EuiFlexGroup @gutterSize={{argOrDefault @gutterSize \"l\"}}>\n <EuiFlexItem @grow={{@descriptionFlexItemProps.grow}}>\n <EuiTitle class=\"euiDescribedFormGroup__title\" @size={{@titleSize}} @tagName={{@titleTagName}}>\n {{yield to=\"title\"}}\n </EuiTitle>\n <EuiText class=\"euiDescribedFormGroup__description\" @size=\"s\" @color=\"subdued\">\n {{yield to=\"description\"}}\n </EuiText>\n </EuiFlexItem>\n <EuiFlexItem class={{classNames \"euiDescribedFormGroup__fields\" componentName=\"EuiDescribedFormGroup\" paddingSize=(argOrDefault @titleSize \"xs\")}} @grow={{@fieldFlexItemProps.grow}}>\n {{yield}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </div>\n ", {
|
|
11
|
+
const EuiDescribedFormGroup = setComponentTemplate(precompileTemplate("\n <div role=\"group\" class={{classNames \"euiDescribedFormGroup\" (if @fullWidth \"euiDescribedFormGroup--fullWidth\")}} ...attributes>\n <EuiFlexGroup @gutterSize={{argOrDefault @gutterSize \"l\"}}>\n <EuiFlexItem @grow={{@descriptionFlexItemProps.grow}} class={{@descriptionFlexItemProps.class}}>\n <EuiTitle class=\"euiDescribedFormGroup__title\" @size={{@titleSize}} @tagName={{@titleTagName}}>\n {{yield to=\"title\"}}\n </EuiTitle>\n <EuiText class=\"euiDescribedFormGroup__description\" @size=\"s\" @color=\"subdued\">\n {{yield to=\"description\"}}\n </EuiText>\n </EuiFlexItem>\n <EuiFlexItem class={{classNames \"euiDescribedFormGroup__fields\" @fieldFlexItemProps.class componentName=\"EuiDescribedFormGroup\" paddingSize=(argOrDefault @titleSize \"xs\")}} @grow={{@fieldFlexItemProps.grow}}>\n {{yield}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </div>\n ", {
|
|
12
12
|
strictMode: true,
|
|
13
13
|
scope: () => ({
|
|
14
14
|
classNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-described-form-group.js","sources":["../../src/components/eui-described-form-group.gts"],"sourcesContent":["import argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { EuiFlexGroupSignature } from './eui-flex-group';\nimport type { EuiFlexItemSignature } from './eui-flex-item';\nimport type { EuiTitleSignature } from './eui-title';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiDescribedFormGroupSignature {\n Element: HTMLDivElement;\n Args: {\n fullWidth?: boolean;\n gutterSize?: EuiFlexGroupSignature['Args']['gutterSize'];\n titleSize?: EuiTitleSignature['Args']['size'];\n titleTagName?: EuiTitleSignature['Args']['tagName'];\n fieldFlexItemProps?: {\n grow?: EuiFlexItemSignature['Args']['grow'];\n };\n descriptionFlexItemProps?: {\n grow?: EuiFlexItemSignature['Args']['grow'];\n };\n };\n Blocks: {\n default: [];\n title?: [];\n description?: [];\n };\n}\n\nconst EuiDescribedFormGroup: TemplateOnlyComponent<EuiDescribedFormGroupSignature> =\n <template>\n <div\n role=\"group\"\n class={{classNames\n \"euiDescribedFormGroup\"\n (if @fullWidth \"euiDescribedFormGroup--fullWidth\")\n }}\n ...attributes\n >\n <EuiFlexGroup @gutterSize={{argOrDefault @gutterSize \"l\"}}>\n <EuiFlexItem
|
|
1
|
+
{"version":3,"file":"eui-described-form-group.js","sources":["../../src/components/eui-described-form-group.gts"],"sourcesContent":["import argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { EuiFlexGroupSignature } from './eui-flex-group';\nimport type { EuiFlexItemSignature } from './eui-flex-item';\nimport type { EuiTitleSignature } from './eui-title';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiDescribedFormGroupSignature {\n Element: HTMLDivElement;\n Args: {\n fullWidth?: boolean;\n gutterSize?: EuiFlexGroupSignature['Args']['gutterSize'];\n titleSize?: EuiTitleSignature['Args']['size'];\n titleTagName?: EuiTitleSignature['Args']['tagName'];\n fieldFlexItemProps?: {\n grow?: EuiFlexItemSignature['Args']['grow'];\n class?: string;\n };\n descriptionFlexItemProps?: {\n grow?: EuiFlexItemSignature['Args']['grow'];\n class?: string;\n };\n };\n Blocks: {\n default: [];\n title?: [];\n description?: [];\n };\n}\n\nconst EuiDescribedFormGroup: TemplateOnlyComponent<EuiDescribedFormGroupSignature> =\n <template>\n <div\n role=\"group\"\n class={{classNames\n \"euiDescribedFormGroup\"\n (if @fullWidth \"euiDescribedFormGroup--fullWidth\")\n }}\n ...attributes\n >\n <EuiFlexGroup @gutterSize={{argOrDefault @gutterSize \"l\"}}>\n <EuiFlexItem\n @grow={{@descriptionFlexItemProps.grow}}\n class={{@descriptionFlexItemProps.class}}\n >\n <EuiTitle\n class=\"euiDescribedFormGroup__title\"\n @size={{@titleSize}}\n @tagName={{@titleTagName}}\n >\n {{yield to=\"title\"}}\n </EuiTitle>\n <EuiText\n class=\"euiDescribedFormGroup__description\"\n @size=\"s\"\n @color=\"subdued\"\n >\n {{yield to=\"description\"}}\n </EuiText>\n </EuiFlexItem>\n <EuiFlexItem\n class={{classNames\n \"euiDescribedFormGroup__fields\"\n @fieldFlexItemProps.class\n componentName=\"EuiDescribedFormGroup\"\n paddingSize=(argOrDefault @titleSize \"xs\")\n }}\n @grow={{@fieldFlexItemProps.grow}}\n >\n {{yield}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </div>\n </template>;\n\nexport default EuiDescribedFormGroup;\n"],"names":["EuiDescribedFormGroup","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","EuiFlexGroup","argOrDefault","EuiFlexItem","EuiTitle","EuiText","templateOnly"],"mappings":";;;;;;;;;;AAmCA,MAAMA,qBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA0CA,k9BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,YAAA;IAAAC,YAAA;IAAAC,WAAA;IAAAC,QAAA;AAAAC,aAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -6,7 +6,7 @@ import { action } from '@ember/object';
|
|
|
6
6
|
import { guidFor } from '@ember/object/internals';
|
|
7
7
|
import didInsert from '@ember/render-modifiers/modifiers/did-insert';
|
|
8
8
|
import { later } from '@ember/runloop';
|
|
9
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
9
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
10
10
|
import onKey from 'ember-keyboard/modifiers/on-key';
|
|
11
11
|
import { eq, or, not, and } from 'ember-truth-helpers';
|
|
12
12
|
import argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.js';
|
|
@@ -32,77 +32,77 @@ class EuiDualRangeComponent extends Component {
|
|
|
32
32
|
static {
|
|
33
33
|
g(this.prototype, "min", [argOrDefaultDecorator(0)]);
|
|
34
34
|
}
|
|
35
|
-
#min = (i(this, "min"),
|
|
35
|
+
#min = (i(this, "min"), void 0); // Defaults
|
|
36
36
|
static {
|
|
37
37
|
g(this.prototype, "max", [argOrDefaultDecorator(100)]);
|
|
38
38
|
}
|
|
39
|
-
#max = (i(this, "max"),
|
|
39
|
+
#max = (i(this, "max"), void 0);
|
|
40
40
|
static {
|
|
41
41
|
g(this.prototype, "step", [argOrDefaultDecorator(1)]);
|
|
42
42
|
}
|
|
43
|
-
#step = (i(this, "step"),
|
|
43
|
+
#step = (i(this, "step"), void 0);
|
|
44
44
|
static {
|
|
45
45
|
g(this.prototype, "fullWidth", [argOrDefaultDecorator(false)]);
|
|
46
46
|
}
|
|
47
|
-
#fullWidth = (i(this, "fullWidth"),
|
|
47
|
+
#fullWidth = (i(this, "fullWidth"), void 0);
|
|
48
48
|
static {
|
|
49
49
|
g(this.prototype, "compressed", [argOrDefaultDecorator(false)]);
|
|
50
50
|
}
|
|
51
|
-
#compressed = (i(this, "compressed"),
|
|
51
|
+
#compressed = (i(this, "compressed"), void 0);
|
|
52
52
|
static {
|
|
53
53
|
g(this.prototype, "showLabels", [argOrDefaultDecorator(false)]);
|
|
54
54
|
}
|
|
55
|
-
#showLabels = (i(this, "showLabels"),
|
|
55
|
+
#showLabels = (i(this, "showLabels"), void 0);
|
|
56
56
|
static {
|
|
57
57
|
g(this.prototype, "showInput", [argOrDefaultDecorator(false)]);
|
|
58
58
|
}
|
|
59
|
-
#showInput = (i(this, "showInput"),
|
|
59
|
+
#showInput = (i(this, "showInput"), void 0);
|
|
60
60
|
static {
|
|
61
61
|
g(this.prototype, "showRange", [argOrDefaultDecorator(true)]);
|
|
62
62
|
}
|
|
63
|
-
#showRange = (i(this, "showRange"),
|
|
63
|
+
#showRange = (i(this, "showRange"), void 0);
|
|
64
64
|
static {
|
|
65
65
|
g(this.prototype, "showTicks", [argOrDefaultDecorator(false)]);
|
|
66
66
|
}
|
|
67
|
-
#showTicks = (i(this, "showTicks"),
|
|
67
|
+
#showTicks = (i(this, "showTicks"), void 0);
|
|
68
68
|
static {
|
|
69
69
|
g(this.prototype, "levels", [argOrDefaultDecorator([])]);
|
|
70
70
|
}
|
|
71
|
-
#levels = (i(this, "levels"),
|
|
71
|
+
#levels = (i(this, "levels"), void 0);
|
|
72
72
|
static {
|
|
73
73
|
g(this.prototype, "id", [tracked], function () {
|
|
74
74
|
return this.args.id || guidFor({});
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
#id = (i(this, "id"),
|
|
77
|
+
#id = (i(this, "id"), void 0); //State
|
|
78
78
|
static {
|
|
79
79
|
g(this.prototype, "hasFocus", [tracked], function () {
|
|
80
80
|
return false;
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
-
#hasFocus = (i(this, "hasFocus"),
|
|
83
|
+
#hasFocus = (i(this, "hasFocus"), void 0);
|
|
84
84
|
static {
|
|
85
85
|
g(this.prototype, "rangeSliderRefAvailable", [tracked], function () {
|
|
86
86
|
return false;
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
|
-
#rangeSliderRefAvailable = (i(this, "rangeSliderRefAvailable"),
|
|
89
|
+
#rangeSliderRefAvailable = (i(this, "rangeSliderRefAvailable"), void 0);
|
|
90
90
|
static {
|
|
91
91
|
g(this.prototype, "isPopoverOpen", [tracked], function () {
|
|
92
92
|
return false;
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
#isPopoverOpen = (i(this, "isPopoverOpen"),
|
|
95
|
+
#isPopoverOpen = (i(this, "isPopoverOpen"), void 0);
|
|
96
96
|
static {
|
|
97
97
|
g(this.prototype, "rangeWidth", [tracked]);
|
|
98
98
|
}
|
|
99
|
-
#rangeWidth = (i(this, "rangeWidth"),
|
|
99
|
+
#rangeWidth = (i(this, "rangeWidth"), void 0);
|
|
100
100
|
static {
|
|
101
101
|
g(this.prototype, "isVisible", [tracked], function () {
|
|
102
102
|
return true;
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
#isVisible = (i(this, "isVisible"),
|
|
105
|
+
#isVisible = (i(this, "isVisible"), void 0);
|
|
106
106
|
///
|
|
107
107
|
preventPopoverClose = false;
|
|
108
108
|
rangeSliderRef = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-dual-range.js","sources":["../../src/components/eui-dual-range.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { later } from '@ember/runloop';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport castTo from '../helpers/cast-to.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { keys } from '../utils/keys.ts';\nimport { isWithinRange } from '../utils/number/index.ts';\nimport { EUI_THUMB_SIZE } from '../utils/range/index.ts';\nimport EuiFormControlLayoutDelimited from './eui-form-control-layout-delimited.gts';\nimport EuiInputPopover from './eui-input-popover.gts';\nimport EuiRangeHighlight from './eui-range-highlight.gts';\nimport EuiRangeInput from './eui-range-input.gts';\nimport EuiRangeLabel from './eui-range-label.gts';\nimport EuiRangeSlider from './eui-range-slider.gts';\nimport EuiRangeThumb from './eui-range-thumb.gts';\nimport EuiRangeTrack from './eui-range-track.gts';\nimport EuiRangeWrapper from './eui-range-wrapper.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { EuiRangeArgs } from './eui-range';\nimport type {\n EuiRangeInputArgs,\n EuiRangeInputSignature\n} from './eui-range-input';\nimport type { EuiRangeLevel } from './eui-range-levels';\nimport type { EuiRangeTick } from './eui-range-ticks';\n\nexport type ValueMember = number | string;\n\nexport interface EuiDualRangeArgs {\n value: [ValueMember, ValueMember];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onChange: (\n values: [ValueMember, ValueMember],\n isValid: boolean,\n event: Event | MouseEvent | KeyboardEvent\n ) => void;\n fullWidth?: boolean;\n isInvalid?: boolean;\n /**\n * Create colored indicators for certain intervals\n */\n levels?: EuiRangeLevel[];\n /**\n * Shows static min/max labels on the sides of the range slider\n */\n showLabels?: boolean;\n /**\n * Pass `true` to displays an extra input control for direct manipulation.\n * Pass `'inputWithPopover'` to only show the input but show the range in a dropdown.\n */\n showInput?: EuiRangeArgs['showInput'];\n /**\n * Modifies the number of tick marks and at what interval\n */\n tickInterval?: number;\n /**\n * Specified ticks at specified values\n */\n ticks?: EuiRangeTick[];\n /**\n * Creates an input group with element(s) coming before input. Will only show if `showInput = inputWithPopover`.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n /**\n * Creates an input group with element(s) coming after input. Will only show if `showInput = inputWithPopover`.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n /**\n * Intended to be uses with aria attributes. Some attributes may be overwritten.\n */\n minInputProps?: Partial<EuiRangeInputArgs>;\n\n /**\n * Intended to be uses with aria attributes. Some attributes may be overwritten.\n */\n maxInputProps?: Partial<EuiRangeInputArgs>;\n\n readOnly?: boolean;\n\n disabled?: boolean;\n\n isPrependProvided?: boolean;\n\n isAppendProvided?: boolean;\n\n isFakeMaxBlock?: boolean;\n\n isFakeMinBlock?: boolean;\n\n disable?: boolean;\n\n ariaDescribedby?: string;\n\n ariaLabel?: string;\n\n name?: string;\n\n id?: string;\n\n compressed?: boolean;\n\n showRange?: boolean;\n\n showTicks?: boolean;\n\n step?: number;\n\n min?: number;\n\n max?: number;\n}\n\nexport interface EuiDualRangeSignature {\n Element: EuiRangeInputSignature['Element'];\n Args: EuiDualRangeArgs;\n Blocks: {\n prepend: EuiRangeInputSignature['Blocks']['prepend'];\n append: EuiRangeInputSignature['Blocks']['append'];\n min: [number?];\n max: [number?];\n };\n}\n\nexport default class EuiDualRangeComponent extends Component<EuiDualRangeSignature> {\n // Defaults\n @argOrDefaultDecorator(0) min!: number;\n @argOrDefaultDecorator(100) max!: number;\n @argOrDefaultDecorator(1) step!: number;\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator(false) showLabels!: boolean;\n @argOrDefaultDecorator(false) showInput!: boolean | string;\n @argOrDefaultDecorator(true) showRange!: boolean;\n @argOrDefaultDecorator(false) showTicks!: boolean;\n @argOrDefaultDecorator([]) levels!: EuiRangeLevel[];\n\n //State\n @tracked id: string = this.args.id || guidFor({});\n @tracked hasFocus = false;\n @tracked rangeSliderRefAvailable = false;\n @tracked isPopoverOpen = false;\n @tracked rangeWidth: number | undefined;\n @tracked isVisible = true;\n ///\n\n preventPopoverClose = false;\n rangeSliderRef: HTMLInputElement | null = null;\n\n @action\n didInsertRangeSlider(ref: HTMLInputElement | null): void {\n this.rangeSliderRef = ref;\n\n this.rangeSliderRefAvailable = !!ref;\n this.rangeWidth = ref ? ref.clientWidth : undefined;\n\n if (this.rangeSliderRef?.clientWidth && !this.isVisible) {\n this.isVisible = true;\n }\n }\n\n get lowerValue(): ValueMember {\n return this.args.value ? this.args.value[0] : this.min;\n }\n\n get upperValue(): ValueMember {\n return this.args.value ? this.args.value[1] : this.max;\n }\n\n get lowerValueIsValid(): boolean {\n return isWithinRange(this.min, this.upperValue, this.lowerValue);\n }\n\n get upperValueIsValid(): boolean {\n return isWithinRange(this.lowerValue, this.max, this.upperValue);\n }\n\n get isValid(): boolean {\n return this.lowerValueIsValid && this.upperValueIsValid;\n }\n\n @action\n _determineInvalidThumbMovement(\n newVal: ValueMember,\n lower: ValueMember,\n upper: ValueMember,\n e: Event\n ): void {\n // If the values are invalid, find whether the new value is in the upper\n // or lower half and move the appropriate handle to the new value,\n // while the other handle gets moved to the opposite bound (if invalid)\n const lowerHalf = Math.abs(this.max - this.min) / 2 + this.min;\n const newValIsLow = isWithinRange(this.min, lowerHalf, newVal);\n\n if (newValIsLow) {\n lower = newVal;\n upper = !this.upperValueIsValid ? this.max : upper;\n } else {\n lower = !this.lowerValueIsValid ? this.min : lower;\n upper = newVal;\n }\n\n this._handleOnChange(lower, upper, e);\n }\n\n @action\n _determineValidThumbMovement(\n newVal: ValueMember,\n lower: ValueMember,\n upper: ValueMember,\n e: Event\n ): void {\n // Lower thumb targeted or right-moving swap has occurred\n if (\n Math.abs((lower as number) - (newVal as number)) <\n Math.abs((upper as number) - (newVal as number))\n ) {\n lower = newVal;\n }\n // Upper thumb targeted or left-moving swap has occurred\n else {\n upper = newVal;\n }\n\n this._handleOnChange(lower, upper, e);\n }\n\n @action\n _determineThumbMovement(newVal: number, e: Event): void {\n // Determine thumb movement based on slider interaction\n if (!this.isValid) {\n // Non-standard positioning follows\n this._determineInvalidThumbMovement(\n newVal,\n this.lowerValue,\n this.upperValue,\n e\n );\n } else {\n // Standard positioning based on click event proximity to thumb locations\n this._determineValidThumbMovement(\n newVal,\n this.lowerValue,\n this.upperValue,\n e\n );\n }\n }\n\n @action\n _handleOnChange(lower: ValueMember, upper: ValueMember, e: Event): void {\n const isValid =\n isWithinRange(this.min, upper, lower) &&\n isWithinRange(lower, this.max, upper);\n\n this.args.onChange([lower, upper], isValid, e);\n }\n\n @action\n handleSliderChange(e: Event): void {\n this._determineThumbMovement(\n Number((e.currentTarget as HTMLInputElement).value),\n e\n );\n }\n\n @action\n _resetToRangeEnds(e: KeyboardEvent): void {\n // Arbitrary decision to pass `min` instead of `max`. Result is the same.\n this._determineInvalidThumbMovement(\n this.min,\n this.lowerValue,\n this.upperValue,\n e\n );\n }\n\n @action\n _isDirectionalKeyPress(event: KeyboardEvent): boolean {\n return (\n [\n keys.ARROW_UP,\n keys.ARROW_RIGHT,\n keys.ARROW_DOWN,\n keys.ARROW_LEFT\n ].indexOf(event.key as keys) > -1\n );\n }\n\n @action\n handleInputKeyDown(e: KeyboardEvent): void {\n // Relevant only when initial values are both `''` and `showInput` is set\n if (this._isDirectionalKeyPress(e) && !this.isValid) {\n e.preventDefault();\n this._resetToRangeEnds(e);\n }\n }\n\n @action\n handleLowerInputChange(e: Event): void {\n this._handleOnChange(\n (e.target as HTMLInputElement).value,\n this.upperValue,\n e\n );\n }\n\n @action\n handleUpperInputChange(e: Event): void {\n this._handleOnChange(\n this.lowerValue,\n (e.target as HTMLInputElement).value,\n e\n );\n }\n\n @action\n _handleKeyDown(value: ValueMember, event: KeyboardEvent): number {\n let newVal = Number(value);\n let stepRemainder = 0;\n const step = this.args.step || 1;\n\n switch (event.key) {\n case keys.ARROW_UP:\n case keys.ARROW_RIGHT:\n event.preventDefault();\n newVal += step;\n stepRemainder = (newVal - this.min) % step;\n\n if (step !== 1 && stepRemainder > 0) {\n newVal = newVal - stepRemainder;\n }\n\n break;\n case keys.ARROW_DOWN:\n case keys.ARROW_LEFT:\n event.preventDefault();\n newVal -= step;\n stepRemainder = (newVal - this.min) % step;\n\n if (step !== 1 && stepRemainder > 0) {\n newVal = newVal + (step - stepRemainder);\n }\n\n break;\n }\n\n return newVal;\n }\n\n @action\n handleLowerKeyDown(event: KeyboardEvent): void {\n let lower = this.lowerValue;\n\n switch (event.key) {\n case keys.TAB:\n return;\n default:\n if (!this.lowerValueIsValid) {\n // Relevant only when initial value is `''` and `showInput` is not set\n event.preventDefault();\n this._resetToRangeEnds(event);\n\n return;\n }\n\n lower = this._handleKeyDown(lower, event);\n }\n\n if (lower >= (this.upperValue as number) || lower < this.min) return;\n this._handleOnChange(lower, this.upperValue, event);\n }\n\n @action\n handleUpperKeyDown(event: KeyboardEvent): void {\n let upper = this.upperValue;\n\n switch (event.key) {\n case keys.TAB:\n return;\n default:\n if (!this.upperValueIsValid) {\n // Relevant only when initial value is `''` and `showInput` is not set\n event.preventDefault();\n this._resetToRangeEnds(event);\n\n return;\n }\n\n upper = this._handleKeyDown(upper, event);\n }\n\n if (upper <= (this.lowerValue as number) || upper > this.max) return;\n this._handleOnChange(this.lowerValue, upper, event);\n }\n\n @action\n calculateThumbPositionStyle(value: number, width?: number): { left: string } {\n // Calculate the left position based on value\n const decimal = (value - this.min) / (this.max - this.min);\n // Must be between 0-100%\n let valuePosition = decimal <= 1 ? decimal : 1;\n\n valuePosition = valuePosition >= 0 ? valuePosition : 0;\n\n const trackWidth =\n this.args.showInput === 'inputWithPopover' && !!width\n ? width\n : this.rangeSliderRef?.clientWidth;\n\n let thumbToTrackRatio = 0;\n\n if (trackWidth) {\n thumbToTrackRatio = EUI_THUMB_SIZE / trackWidth;\n } else {\n thumbToTrackRatio = EUI_THUMB_SIZE / 1;\n }\n\n const trackPositionScale = (1 - thumbToTrackRatio) * 100;\n\n return { left: `${valuePosition * trackPositionScale}%` };\n }\n\n @action\n setPreventPopoverClose(value: boolean): void {\n this.preventPopoverClose = value;\n }\n\n get calculateLowerValueThumbPositionStyle(): { left: string } {\n return this.calculateThumbPositionStyle(\n Number(this.lowerValue) || this.min,\n this.rangeWidth\n );\n }\n\n get calculateUpperValueThumbPositionStyle(): { left: string } {\n return this.calculateThumbPositionStyle(\n Number(this.upperValue) || this.max,\n this.rangeWidth\n );\n }\n\n @action\n toggleHasFocus(): void {\n this.hasFocus = !this.hasFocus;\n }\n\n @action\n onThumbFocus(e: FocusEvent): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.hasFocus = true;\n }\n\n @action\n onThumbBlur(e: FocusEvent): void {\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.hasFocus = false;\n }\n\n @action\n onInputFocus(e: FocusEvent): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.preventPopoverClose = true;\n this.isPopoverOpen = true;\n }\n\n @action\n onInputBlur(e: FocusEvent): void {\n later(\n this,\n () => {\n // Safari does not recognize any focus-related eventing for input[type=range]\n // making it impossible to capture its state using active/focus/relatedTarget\n // Instead, a prevention flag is set on mousedown, with a waiting period here.\n // Mousedown is viable because in the popover case, it is inaccessible via keyboard (intentionally)\n if (this.preventPopoverClose) {\n this.preventPopoverClose = false;\n\n return;\n }\n\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.closePopover();\n },\n 200\n );\n }\n\n @action\n closePopover(): void {\n this.preventPopoverClose = false;\n this.isPopoverOpen = false;\n }\n\n @action\n onResize(width?: number): void {\n this.rangeWidth = width;\n }\n\n get digitTolerance(): number {\n return Math.max(String(this.min).length, String(this.max).length);\n }\n\n get showInputOnly(): boolean {\n return this.showInput === 'inputWithPopover';\n }\n\n get canShowDropdown(): boolean {\n return this.showInputOnly && !this.args.readOnly && !this.args.disabled;\n }\n\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (and (not (argOrDefault @isFakeMaxBlock false)) (has-block \"max\"))\n (and (not (argOrDefault @isFakeMinBlock false)) (has-block \"min\"))\n as |hasPrepend hasAppend hasMaxBlock hasMinBlock|\n }}\n {{#if this.showInputOnly}}\n <EuiInputPopover\n class=\"euiRange__popover\"\n @fullWidth={{this.fullWidth}}\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{this.closePopover}}\n @disableFocusTrap={{true}}\n @onPanelResize={{this.onResize}}\n >\n <:input>\n <EuiFormControlLayoutDelimited\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:startControl as |classes|>\n <EuiRangeInput\n class={{classes}}\n @digitTolerance={{this.digitTolerance}}\n @side=\"min\"\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n @step={{this.step}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleLowerInputChange}}\n @name=\"{{@name}}-minValue\"\n @readOnly={{@readOnly}}\n @autoSize={{false}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{hasAppend}}\n @isAppendProvided={{hasPrepend}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleLowerInputChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:startControl>\n <:endControl as |classes|>\n <EuiRangeInput\n class={{classes}}\n @digitTolerance={{this.digitTolerance}}\n @side=\"max\"\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @name=\"{{@name}}-maxValue\"\n @readOnly={{@readOnly}}\n @autoSize={{false}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{hasAppend}}\n @isAppendProvided={{hasPrepend}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleUpperInputChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:endControl>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayoutDelimited>\n </:input>\n <:content>\n <EuiRangeWrapper\n class=\"euiDualRange\"\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{if (eq this.showInput true) \"true\" \"false\"}}\n @compressed={{this.compressed}}\n @disabled={{@disabled}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleSliderChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{this.compressed}}\n @hasFocus={{this.hasFocus}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.lowerValue to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo this.upperValue to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n class=\"euiDualRange__slider\"\n aria-hidden=\"true\"\n @id={{this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleSliderChange}}\n @showTicks={{this.showTicks}}\n @hasFocus={{this.hasFocus}}\n tabindex=\"-1\"\n @showRange={{this.showRange}}\n ...attributes\n {{didInsert this.didInsertRangeSlider}}\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleSliderChange}}\n />\n {{#if this.rangeSliderRefAvailable}}\n <EuiRangeThumb\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n {{!@glint-expect-error}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateLowerValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{onKey \"_all\" this.handleLowerKeyDown}}\n />\n <EuiRangeThumb\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n {{!@glint-expect-error}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateUpperValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{onKey \"_all\" this.handleUpperKeyDown}}\n />\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n </EuiRangeWrapper>\n </:content>\n </EuiInputPopover>\n {{else}}\n <EuiRangeWrapper\n class=\"euiDualRange\"\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n >\n {{#if this.showInput}}\n <EuiRangeInput\n @digitTolerance={{this.digitTolerance}}\n @side=\"min\"\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n @step={{this.step}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleLowerInputChange}}\n @name=\"{{@name}}-minValue\"\n @readOnly={{@readOnly}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{false}}\n @isAppendProvided={{false}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleLowerInputChange}}\n />\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{/if}}\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{if (eq this.showInput true) \"true\" \"false\"}}\n @compressed={{this.compressed}}\n @disabled={{@disabled}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleSliderChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{this.compressed}}\n @hasFocus={{this.hasFocus}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.lowerValue to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo this.upperValue to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n class=\"euiDualRange__slider\"\n aria-hidden=\"true\"\n @id={{this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleSliderChange}}\n @showTicks={{this.showTicks}}\n @hasFocus={{this.hasFocus}}\n tabindex=\"-1\"\n @showRange={{this.showRange}}\n ...attributes\n {{didInsert this.didInsertRangeSlider}}\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleSliderChange}}\n />\n {{#if this.rangeSliderRefAvailable}}\n <EuiRangeThumb\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n {{!@glint-expect-error}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateLowerValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{!@glint-expect-error}}\n {{on \"click\" this.handleLowerKeyDown}}\n />\n <EuiRangeThumb\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n {{!@glint-expect-error}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateUpperValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{on \"keydown\" this.handleUpperKeyDown}}\n />\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if this.showInput}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{! maxinput }}\n <EuiRangeInput\n @digitTolerance={{this.digitTolerance}}\n @side=\"max\"\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @name=\"{{@name}}-maxValue\"\n @readOnly={{@readOnly}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @controlOnly={{this.showInputOnly}}\n @isPrependProvided={{false}}\n @isAppendProvided={{false}}\n @disable={{@disable}}\n ...attributes\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleUpperInputChange}}\n />\n {{/if}}\n </EuiRangeWrapper>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiDualRangeComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","args","id","guidFor","preventPopoverClose","rangeSliderRef","didInsertRangeSlider","ref","rangeSliderRefAvailable","rangeWidth","clientWidth","undefined","isVisible","n","action","lowerValue","value","min","upperValue","max","lowerValueIsValid","isWithinRange","upperValueIsValid","isValid","_determineInvalidThumbMovement","newVal","lower","upper","e","lowerHalf","Math","abs","newValIsLow","_handleOnChange","_determineValidThumbMovement","_determineThumbMovement","onChange","handleSliderChange","Number","currentTarget","_resetToRangeEnds","_isDirectionalKeyPress","event","keys","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","ARROW_LEFT","indexOf","key","handleInputKeyDown","preventDefault","handleLowerInputChange","target","handleUpperInputChange","_handleKeyDown","stepRemainder","step","handleLowerKeyDown","TAB","handleUpperKeyDown","calculateThumbPositionStyle","width","decimal","valuePosition","trackWidth","showInput","thumbToTrackRatio","EUI_THUMB_SIZE","trackPositionScale","left","setPreventPopoverClose","calculateLowerValueThumbPositionStyle","calculateUpperValueThumbPositionStyle","toggleHasFocus","hasFocus","onThumbFocus","onFocus","onThumbBlur","onBlur","onInputFocus","isPopoverOpen","onInputBlur","later","closePopover","onResize","digitTolerance","String","length","showInputOnly","canShowDropdown","readOnly","disabled","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","not","EuiInputPopover","EuiFormControlLayoutDelimited","or","EuiRangeInput","castTo","on","fn","onKey","optional","EuiRangeWrapper","EuiRangeLabel","EuiRangeTrack","eq","EuiRangeHighlight","EuiRangeSlider","didInsert","EuiRangeThumb","simpleStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-dual-range.js","sources":["../../src/components/eui-dual-range.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { later } from '@ember/runloop';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport castTo from '../helpers/cast-to.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { keys } from '../utils/keys.ts';\nimport { isWithinRange } from '../utils/number/index.ts';\nimport { EUI_THUMB_SIZE } from '../utils/range/index.ts';\nimport EuiFormControlLayoutDelimited from './eui-form-control-layout-delimited.gts';\nimport EuiInputPopover from './eui-input-popover.gts';\nimport EuiRangeHighlight from './eui-range-highlight.gts';\nimport EuiRangeInput from './eui-range-input.gts';\nimport EuiRangeLabel from './eui-range-label.gts';\nimport EuiRangeSlider from './eui-range-slider.gts';\nimport EuiRangeThumb from './eui-range-thumb.gts';\nimport EuiRangeTrack from './eui-range-track.gts';\nimport EuiRangeWrapper from './eui-range-wrapper.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { EuiRangeArgs } from './eui-range';\nimport type {\n EuiRangeInputArgs,\n EuiRangeInputSignature\n} from './eui-range-input';\nimport type { EuiRangeLevel } from './eui-range-levels';\nimport type { EuiRangeTick } from './eui-range-ticks';\n\nexport type ValueMember = number | string;\n\nexport interface EuiDualRangeArgs {\n value: [ValueMember, ValueMember];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onChange: (\n values: [ValueMember, ValueMember],\n isValid: boolean,\n event: Event | MouseEvent | KeyboardEvent\n ) => void;\n fullWidth?: boolean;\n isInvalid?: boolean;\n /**\n * Create colored indicators for certain intervals\n */\n levels?: EuiRangeLevel[];\n /**\n * Shows static min/max labels on the sides of the range slider\n */\n showLabels?: boolean;\n /**\n * Pass `true` to displays an extra input control for direct manipulation.\n * Pass `'inputWithPopover'` to only show the input but show the range in a dropdown.\n */\n showInput?: EuiRangeArgs['showInput'];\n /**\n * Modifies the number of tick marks and at what interval\n */\n tickInterval?: number;\n /**\n * Specified ticks at specified values\n */\n ticks?: EuiRangeTick[];\n /**\n * Creates an input group with element(s) coming before input. Will only show if `showInput = inputWithPopover`.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n /**\n * Creates an input group with element(s) coming after input. Will only show if `showInput = inputWithPopover`.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n /**\n * Intended to be uses with aria attributes. Some attributes may be overwritten.\n */\n minInputProps?: Partial<EuiRangeInputArgs>;\n\n /**\n * Intended to be uses with aria attributes. Some attributes may be overwritten.\n */\n maxInputProps?: Partial<EuiRangeInputArgs>;\n\n readOnly?: boolean;\n\n disabled?: boolean;\n\n isPrependProvided?: boolean;\n\n isAppendProvided?: boolean;\n\n isFakeMaxBlock?: boolean;\n\n isFakeMinBlock?: boolean;\n\n disable?: boolean;\n\n ariaDescribedby?: string;\n\n ariaLabel?: string;\n\n name?: string;\n\n id?: string;\n\n compressed?: boolean;\n\n showRange?: boolean;\n\n showTicks?: boolean;\n\n step?: number;\n\n min?: number;\n\n max?: number;\n}\n\nexport interface EuiDualRangeSignature {\n Element: EuiRangeInputSignature['Element'];\n Args: EuiDualRangeArgs;\n Blocks: {\n prepend: EuiRangeInputSignature['Blocks']['prepend'];\n append: EuiRangeInputSignature['Blocks']['append'];\n min: [number?];\n max: [number?];\n };\n}\n\nexport default class EuiDualRangeComponent extends Component<EuiDualRangeSignature> {\n // Defaults\n @argOrDefaultDecorator(0) min!: number;\n @argOrDefaultDecorator(100) max!: number;\n @argOrDefaultDecorator(1) step!: number;\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator(false) showLabels!: boolean;\n @argOrDefaultDecorator(false) showInput!: boolean | string;\n @argOrDefaultDecorator(true) showRange!: boolean;\n @argOrDefaultDecorator(false) showTicks!: boolean;\n @argOrDefaultDecorator([]) levels!: EuiRangeLevel[];\n\n //State\n @tracked id: string = this.args.id || guidFor({});\n @tracked hasFocus = false;\n @tracked rangeSliderRefAvailable = false;\n @tracked isPopoverOpen = false;\n @tracked rangeWidth: number | undefined;\n @tracked isVisible = true;\n ///\n\n preventPopoverClose = false;\n rangeSliderRef: HTMLInputElement | null = null;\n\n @action\n didInsertRangeSlider(ref: HTMLInputElement | null): void {\n this.rangeSliderRef = ref;\n\n this.rangeSliderRefAvailable = !!ref;\n this.rangeWidth = ref ? ref.clientWidth : undefined;\n\n if (this.rangeSliderRef?.clientWidth && !this.isVisible) {\n this.isVisible = true;\n }\n }\n\n get lowerValue(): ValueMember {\n return this.args.value ? this.args.value[0] : this.min;\n }\n\n get upperValue(): ValueMember {\n return this.args.value ? this.args.value[1] : this.max;\n }\n\n get lowerValueIsValid(): boolean {\n return isWithinRange(this.min, this.upperValue, this.lowerValue);\n }\n\n get upperValueIsValid(): boolean {\n return isWithinRange(this.lowerValue, this.max, this.upperValue);\n }\n\n get isValid(): boolean {\n return this.lowerValueIsValid && this.upperValueIsValid;\n }\n\n @action\n _determineInvalidThumbMovement(\n newVal: ValueMember,\n lower: ValueMember,\n upper: ValueMember,\n e: Event\n ): void {\n // If the values are invalid, find whether the new value is in the upper\n // or lower half and move the appropriate handle to the new value,\n // while the other handle gets moved to the opposite bound (if invalid)\n const lowerHalf = Math.abs(this.max - this.min) / 2 + this.min;\n const newValIsLow = isWithinRange(this.min, lowerHalf, newVal);\n\n if (newValIsLow) {\n lower = newVal;\n upper = !this.upperValueIsValid ? this.max : upper;\n } else {\n lower = !this.lowerValueIsValid ? this.min : lower;\n upper = newVal;\n }\n\n this._handleOnChange(lower, upper, e);\n }\n\n @action\n _determineValidThumbMovement(\n newVal: ValueMember,\n lower: ValueMember,\n upper: ValueMember,\n e: Event\n ): void {\n // Lower thumb targeted or right-moving swap has occurred\n if (\n Math.abs((lower as number) - (newVal as number)) <\n Math.abs((upper as number) - (newVal as number))\n ) {\n lower = newVal;\n }\n // Upper thumb targeted or left-moving swap has occurred\n else {\n upper = newVal;\n }\n\n this._handleOnChange(lower, upper, e);\n }\n\n @action\n _determineThumbMovement(newVal: number, e: Event): void {\n // Determine thumb movement based on slider interaction\n if (!this.isValid) {\n // Non-standard positioning follows\n this._determineInvalidThumbMovement(\n newVal,\n this.lowerValue,\n this.upperValue,\n e\n );\n } else {\n // Standard positioning based on click event proximity to thumb locations\n this._determineValidThumbMovement(\n newVal,\n this.lowerValue,\n this.upperValue,\n e\n );\n }\n }\n\n @action\n _handleOnChange(lower: ValueMember, upper: ValueMember, e: Event): void {\n const isValid =\n isWithinRange(this.min, upper, lower) &&\n isWithinRange(lower, this.max, upper);\n\n this.args.onChange([lower, upper], isValid, e);\n }\n\n @action\n handleSliderChange(e: Event): void {\n this._determineThumbMovement(\n Number((e.currentTarget as HTMLInputElement).value),\n e\n );\n }\n\n @action\n _resetToRangeEnds(e: KeyboardEvent): void {\n // Arbitrary decision to pass `min` instead of `max`. Result is the same.\n this._determineInvalidThumbMovement(\n this.min,\n this.lowerValue,\n this.upperValue,\n e\n );\n }\n\n @action\n _isDirectionalKeyPress(event: KeyboardEvent): boolean {\n return (\n [\n keys.ARROW_UP,\n keys.ARROW_RIGHT,\n keys.ARROW_DOWN,\n keys.ARROW_LEFT\n ].indexOf(event.key as keys) > -1\n );\n }\n\n @action\n handleInputKeyDown(e: KeyboardEvent): void {\n // Relevant only when initial values are both `''` and `showInput` is set\n if (this._isDirectionalKeyPress(e) && !this.isValid) {\n e.preventDefault();\n this._resetToRangeEnds(e);\n }\n }\n\n @action\n handleLowerInputChange(e: Event): void {\n this._handleOnChange(\n (e.target as HTMLInputElement).value,\n this.upperValue,\n e\n );\n }\n\n @action\n handleUpperInputChange(e: Event): void {\n this._handleOnChange(\n this.lowerValue,\n (e.target as HTMLInputElement).value,\n e\n );\n }\n\n @action\n _handleKeyDown(value: ValueMember, event: KeyboardEvent): number {\n let newVal = Number(value);\n let stepRemainder = 0;\n const step = this.args.step || 1;\n\n switch (event.key) {\n case keys.ARROW_UP:\n case keys.ARROW_RIGHT:\n event.preventDefault();\n newVal += step;\n stepRemainder = (newVal - this.min) % step;\n\n if (step !== 1 && stepRemainder > 0) {\n newVal = newVal - stepRemainder;\n }\n\n break;\n case keys.ARROW_DOWN:\n case keys.ARROW_LEFT:\n event.preventDefault();\n newVal -= step;\n stepRemainder = (newVal - this.min) % step;\n\n if (step !== 1 && stepRemainder > 0) {\n newVal = newVal + (step - stepRemainder);\n }\n\n break;\n }\n\n return newVal;\n }\n\n @action\n handleLowerKeyDown(event: KeyboardEvent): void {\n let lower = this.lowerValue;\n\n switch (event.key) {\n case keys.TAB:\n return;\n default:\n if (!this.lowerValueIsValid) {\n // Relevant only when initial value is `''` and `showInput` is not set\n event.preventDefault();\n this._resetToRangeEnds(event);\n\n return;\n }\n\n lower = this._handleKeyDown(lower, event);\n }\n\n if (lower >= (this.upperValue as number) || lower < this.min) return;\n this._handleOnChange(lower, this.upperValue, event);\n }\n\n @action\n handleUpperKeyDown(event: KeyboardEvent): void {\n let upper = this.upperValue;\n\n switch (event.key) {\n case keys.TAB:\n return;\n default:\n if (!this.upperValueIsValid) {\n // Relevant only when initial value is `''` and `showInput` is not set\n event.preventDefault();\n this._resetToRangeEnds(event);\n\n return;\n }\n\n upper = this._handleKeyDown(upper, event);\n }\n\n if (upper <= (this.lowerValue as number) || upper > this.max) return;\n this._handleOnChange(this.lowerValue, upper, event);\n }\n\n @action\n calculateThumbPositionStyle(value: number, width?: number): { left: string } {\n // Calculate the left position based on value\n const decimal = (value - this.min) / (this.max - this.min);\n // Must be between 0-100%\n let valuePosition = decimal <= 1 ? decimal : 1;\n\n valuePosition = valuePosition >= 0 ? valuePosition : 0;\n\n const trackWidth =\n this.args.showInput === 'inputWithPopover' && !!width\n ? width\n : this.rangeSliderRef?.clientWidth;\n\n let thumbToTrackRatio = 0;\n\n if (trackWidth) {\n thumbToTrackRatio = EUI_THUMB_SIZE / trackWidth;\n } else {\n thumbToTrackRatio = EUI_THUMB_SIZE / 1;\n }\n\n const trackPositionScale = (1 - thumbToTrackRatio) * 100;\n\n return { left: `${valuePosition * trackPositionScale}%` };\n }\n\n @action\n setPreventPopoverClose(value: boolean): void {\n this.preventPopoverClose = value;\n }\n\n get calculateLowerValueThumbPositionStyle(): { left: string } {\n return this.calculateThumbPositionStyle(\n Number(this.lowerValue) || this.min,\n this.rangeWidth\n );\n }\n\n get calculateUpperValueThumbPositionStyle(): { left: string } {\n return this.calculateThumbPositionStyle(\n Number(this.upperValue) || this.max,\n this.rangeWidth\n );\n }\n\n @action\n toggleHasFocus(): void {\n this.hasFocus = !this.hasFocus;\n }\n\n @action\n onThumbFocus(e: FocusEvent): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.hasFocus = true;\n }\n\n @action\n onThumbBlur(e: FocusEvent): void {\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.hasFocus = false;\n }\n\n @action\n onInputFocus(e: FocusEvent): void {\n if (this.args.onFocus) {\n this.args.onFocus(e);\n }\n\n this.preventPopoverClose = true;\n this.isPopoverOpen = true;\n }\n\n @action\n onInputBlur(e: FocusEvent): void {\n later(\n this,\n () => {\n // Safari does not recognize any focus-related eventing for input[type=range]\n // making it impossible to capture its state using active/focus/relatedTarget\n // Instead, a prevention flag is set on mousedown, with a waiting period here.\n // Mousedown is viable because in the popover case, it is inaccessible via keyboard (intentionally)\n if (this.preventPopoverClose) {\n this.preventPopoverClose = false;\n\n return;\n }\n\n if (this.args.onBlur) {\n this.args.onBlur(e);\n }\n\n this.closePopover();\n },\n 200\n );\n }\n\n @action\n closePopover(): void {\n this.preventPopoverClose = false;\n this.isPopoverOpen = false;\n }\n\n @action\n onResize(width?: number): void {\n this.rangeWidth = width;\n }\n\n get digitTolerance(): number {\n return Math.max(String(this.min).length, String(this.max).length);\n }\n\n get showInputOnly(): boolean {\n return this.showInput === 'inputWithPopover';\n }\n\n get canShowDropdown(): boolean {\n return this.showInputOnly && !this.args.readOnly && !this.args.disabled;\n }\n\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (and (not (argOrDefault @isFakeMaxBlock false)) (has-block \"max\"))\n (and (not (argOrDefault @isFakeMinBlock false)) (has-block \"min\"))\n as |hasPrepend hasAppend hasMaxBlock hasMinBlock|\n }}\n {{#if this.showInputOnly}}\n <EuiInputPopover\n class=\"euiRange__popover\"\n @fullWidth={{this.fullWidth}}\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{this.closePopover}}\n @disableFocusTrap={{true}}\n @onPanelResize={{this.onResize}}\n >\n <:input>\n <EuiFormControlLayoutDelimited\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:startControl as |classes|>\n <EuiRangeInput\n class={{classes}}\n @digitTolerance={{this.digitTolerance}}\n @side=\"min\"\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n @step={{this.step}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleLowerInputChange}}\n @name=\"{{@name}}-minValue\"\n @readOnly={{@readOnly}}\n @autoSize={{false}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{hasAppend}}\n @isAppendProvided={{hasPrepend}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleLowerInputChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:startControl>\n <:endControl as |classes|>\n <EuiRangeInput\n class={{classes}}\n @digitTolerance={{this.digitTolerance}}\n @side=\"max\"\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @name=\"{{@name}}-maxValue\"\n @readOnly={{@readOnly}}\n @autoSize={{false}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{hasAppend}}\n @isAppendProvided={{hasPrepend}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on\n \"focus\"\n (if\n this.canShowDropdown this.onInputFocus (optional @onFocus)\n )\n }}\n {{on\n \"blur\"\n (if\n this.canShowDropdown this.onInputBlur (optional @onBlur)\n )\n }}\n {{on \"input\" this.handleUpperInputChange}}\n >\n <:prepend as |classes|>\n {{yield classes to=\"prepend\"}}\n </:prepend>\n <:append as |classes|>\n {{yield classes to=\"append\"}}\n </:append>\n </EuiRangeInput>\n </:endControl>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayoutDelimited>\n </:input>\n <:content>\n <EuiRangeWrapper\n class=\"euiDualRange\"\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n >\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{if (eq this.showInput true) \"true\" \"false\"}}\n @compressed={{this.compressed}}\n @disabled={{@disabled}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleSliderChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{this.compressed}}\n @hasFocus={{this.hasFocus}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.lowerValue to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo this.upperValue to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n class=\"euiDualRange__slider\"\n aria-hidden=\"true\"\n @id={{this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleSliderChange}}\n @showTicks={{this.showTicks}}\n @hasFocus={{this.hasFocus}}\n tabindex=\"-1\"\n @showRange={{this.showRange}}\n ...attributes\n {{didInsert this.didInsertRangeSlider}}\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleSliderChange}}\n />\n {{#if this.rangeSliderRefAvailable}}\n <EuiRangeThumb\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n {{!@glint-expect-error}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateLowerValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{onKey \"_all\" this.handleLowerKeyDown}}\n />\n <EuiRangeThumb\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n {{!@glint-expect-error}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateUpperValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{onKey \"_all\" this.handleUpperKeyDown}}\n />\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n </EuiRangeWrapper>\n </:content>\n </EuiInputPopover>\n {{else}}\n <EuiRangeWrapper\n class=\"euiDualRange\"\n @fullWidth={{this.fullWidth}}\n @compressed={{this.compressed}}\n >\n {{#if this.showInput}}\n <EuiRangeInput\n @digitTolerance={{this.digitTolerance}}\n @side=\"min\"\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n @step={{this.step}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleLowerInputChange}}\n @name=\"{{@name}}-minValue\"\n @readOnly={{@readOnly}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @isPrependProvided={{false}}\n @isAppendProvided={{false}}\n @controlOnly={{true}}\n @disable={{@disable}}\n ...attributes\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleLowerInputChange}}\n />\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{/if}}\n {{#if this.showLabels}}\n <EuiRangeLabel @side=\"min\" @disabled={{@disabled}}>\n {{#if hasMinBlock}}\n {{yield this.min to=\"min\"}}\n {{else}}\n {{this.min}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n <EuiRangeTrack\n aria-hidden={{if (eq this.showInput true) \"true\" \"false\"}}\n @compressed={{this.compressed}}\n @disabled={{@disabled}}\n @max={{this.max}}\n @min={{this.min}}\n @step={{this.step}}\n @showTicks={{this.showTicks}}\n @tickInterval={{@tickInterval}}\n @ticks={{@ticks}}\n @levels={{this.levels}}\n @onChange={{this.handleSliderChange}}\n @value={{@value}}\n >\n {{#if (and this.showRange this.isValid)}}\n <EuiRangeHighlight\n @compressed={{this.compressed}}\n @hasFocus={{this.hasFocus}}\n @showTicks={{this.showTicks}}\n {{!@glint-expect-error}}\n @min={{castTo this.min to=\"number\"}}\n {{!@glint-expect-error}}\n @max={{castTo this.max to=\"number\"}}\n {{!@glint-expect-error}}\n @lowerValue={{castTo this.lowerValue to=\"number\"}}\n {{!@glint-expect-error}}\n @upperValue={{castTo this.upperValue to=\"number\"}}\n />\n {{/if}}\n <EuiRangeSlider\n class=\"euiDualRange__slider\"\n aria-hidden=\"true\"\n @id={{this.id}}\n @name={{@name}}\n @min={{this.min}}\n @max={{this.max}}\n @step={{this.step}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @onChange={{this.handleSliderChange}}\n @showTicks={{this.showTicks}}\n @hasFocus={{this.hasFocus}}\n tabindex=\"-1\"\n @showRange={{this.showRange}}\n ...attributes\n {{didInsert this.didInsertRangeSlider}}\n {{on \"mousedown\" (fn this.setPreventPopoverClose true)}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleSliderChange}}\n />\n {{#if this.rangeSliderRefAvailable}}\n <EuiRangeThumb\n @min={{this.min}}\n {{!@glint-expect-error}}\n @max={{castTo this.upperValue to=\"number\"}}\n {{!@glint-expect-error}}\n @value={{this.lowerValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateLowerValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{!@glint-expect-error}}\n {{on \"click\" this.handleLowerKeyDown}}\n />\n <EuiRangeThumb\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n {{!@glint-expect-error}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @showTicks={{this.showTicks}}\n @showInput={{not this.showInput}}\n aria-describedby={{@ariaDescribedby}}\n aria-label={{@ariaLabel}}\n {{simpleStyle this.calculateUpperValueThumbPositionStyle}}\n {{on \"focus\" this.onThumbFocus}}\n {{on \"blur\" this.onThumbBlur}}\n {{on \"keydown\" this.handleUpperKeyDown}}\n />\n {{/if}}\n </EuiRangeTrack>\n {{#if this.showLabels}}\n <EuiRangeLabel @disabled={{@disabled}}>\n {{#if hasMaxBlock}}\n {{yield this.max to=\"max\"}}\n {{else}}\n {{this.max}}\n {{/if}}\n </EuiRangeLabel>\n {{/if}}\n {{#if this.showInput}}\n <div class=\"euiRange__horizontalSpacer\"></div>\n {{! maxinput }}\n <EuiRangeInput\n @digitTolerance={{this.digitTolerance}}\n @side=\"max\"\n {{!@glint-expect-error}}\n @min={{castTo this.lowerValue to=\"number\"}}\n @max={{this.max}}\n @step={{this.step}}\n @value={{this.upperValue}}\n @disabled={{@disabled}}\n @compressed={{this.compressed}}\n @name=\"{{@name}}-maxValue\"\n @readOnly={{@readOnly}}\n @fullWidth={{this.fullWidth}}\n @isInvalid={{@isInvalid}}\n @controlOnly={{this.showInputOnly}}\n @isPrependProvided={{false}}\n @isAppendProvided={{false}}\n @disable={{@disable}}\n ...attributes\n {{onKey \"_all\" this.handleInputKeyDown}}\n {{on \"focus\" (optional @onFocus)}}\n {{on \"blur\" (optional @onBlur)}}\n {{on \"input\" this.handleUpperInputChange}}\n />\n {{/if}}\n </EuiRangeWrapper>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiDualRangeComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","args","id","guidFor","preventPopoverClose","rangeSliderRef","didInsertRangeSlider","ref","rangeSliderRefAvailable","rangeWidth","clientWidth","undefined","isVisible","n","action","lowerValue","value","min","upperValue","max","lowerValueIsValid","isWithinRange","upperValueIsValid","isValid","_determineInvalidThumbMovement","newVal","lower","upper","e","lowerHalf","Math","abs","newValIsLow","_handleOnChange","_determineValidThumbMovement","_determineThumbMovement","onChange","handleSliderChange","Number","currentTarget","_resetToRangeEnds","_isDirectionalKeyPress","event","keys","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","ARROW_LEFT","indexOf","key","handleInputKeyDown","preventDefault","handleLowerInputChange","target","handleUpperInputChange","_handleKeyDown","stepRemainder","step","handleLowerKeyDown","TAB","handleUpperKeyDown","calculateThumbPositionStyle","width","decimal","valuePosition","trackWidth","showInput","thumbToTrackRatio","EUI_THUMB_SIZE","trackPositionScale","left","setPreventPopoverClose","calculateLowerValueThumbPositionStyle","calculateUpperValueThumbPositionStyle","toggleHasFocus","hasFocus","onThumbFocus","onFocus","onThumbBlur","onBlur","onInputFocus","isPopoverOpen","onInputBlur","later","closePopover","onResize","digitTolerance","String","length","showInputOnly","canShowDropdown","readOnly","disabled","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","not","EuiInputPopover","EuiFormControlLayoutDelimited","or","EuiRangeInput","castTo","on","fn","onKey","optional","EuiRangeWrapper","EuiRangeLabel","EuiRangeTrack","eq","EuiRangeHighlight","EuiRangeSlider","didInsert","EuiRangeThumb","simpleStyle"],"mappings":"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"}
|
|
@@ -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 { or, and } from 'ember-truth-helpers';
|
|
4
4
|
import randomId from '../-private/random-id.js';
|
|
5
5
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-field-number.js","sources":["../../src/components/eui-field-number.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { and, 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 validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { CommonArgs } from './common.ts';\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { IconType } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport type EuiFieldNumberArgs = CommonArgs & {\n id?: string;\n icon?: IconType;\n isInvalid?: boolean;\n fullWidth?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n min?: number | string;\n max?: number | string;\n value?: number | string;\n disabled?: boolean;\n\n /**\n * Specifies the granularity that the value must adhere to.\n * Accepts a `number` or the string `'any'` for no stepping to allow for any value.\n * Defaults to `1`\n */\n step?: number | 'any';\n inputRef?: (ele: Element) => void;\n\n /**\n * Creates an input group with element(s) coming before input.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n\n /**\n * Creates an input group with element(s) coming after input.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n\n /**\n * Completely removes form control layout wrapper and ignores\n * icon, prepend, and append. Best used inside EuiFormControlLayoutDelimited.\n */\n controlOnly?: boolean;\n\n /**\n * when `true` creates a shorter height input\n */\n compressed?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n};\n\nexport interface EuiFieldNumberSignature {\n Element: HTMLInputElement;\n Args: EuiFieldNumberArgs;\n Blocks: {\n default: [string];\n prepend: [string];\n append: [string];\n };\n}\n\nconst EuiFieldNumber: TemplateOnlyComponent<EuiFieldNumberSignature> =\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldNumber--withIcon\")\n (if @fullWidth \"euiFieldNumber--fullWidth\")\n (if @compressed \"euiFieldNumber--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\")\n (if @isLoading \"euiFieldNumber--isLoading\")\n \"euiFieldNumber\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{@id}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldNumber;\n"],"names":["EuiFieldNumber","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AA2EA,MAAMA,cACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAmEA,qkDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-field-number.js","sources":["../../src/components/eui-field-number.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, 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 validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { CommonArgs } from './common.ts';\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { IconType } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport type EuiFieldNumberArgs = CommonArgs & {\n id?: string;\n icon?: IconType;\n isInvalid?: boolean;\n fullWidth?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n min?: number | string;\n max?: number | string;\n value?: number | string;\n disabled?: boolean;\n\n /**\n * Specifies the granularity that the value must adhere to.\n * Accepts a `number` or the string `'any'` for no stepping to allow for any value.\n * Defaults to `1`\n */\n step?: number | 'any';\n inputRef?: (ele: Element) => void;\n\n /**\n * Creates an input group with element(s) coming before input.\n * `string` | `Component` or an array of these\n */\n prepend?: EuiFormControlLayoutSignature['Blocks']['prepend'];\n\n /**\n * Creates an input group with element(s) coming after input.\n * `string` | `Component` or an array of these\n */\n append?: EuiFormControlLayoutSignature['Blocks']['append'];\n\n /**\n * Completely removes form control layout wrapper and ignores\n * icon, prepend, and append. Best used inside EuiFormControlLayoutDelimited.\n */\n controlOnly?: boolean;\n\n /**\n * when `true` creates a shorter height input\n */\n compressed?: boolean;\n\n isPrependProvided?: boolean;\n isAppendProvided?: boolean;\n\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n};\n\nexport interface EuiFieldNumberSignature {\n Element: HTMLInputElement;\n Args: EuiFieldNumberArgs;\n Blocks: {\n default: [string];\n prepend: [string];\n append: [string];\n };\n}\n\nconst EuiFieldNumber: TemplateOnlyComponent<EuiFieldNumberSignature> =\n <template>\n {{#let\n (and (argOrDefault @isPrependProvided true) (has-block \"prepend\"))\n (and (argOrDefault @isAppendProvided true) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldNumber--withIcon\")\n (if @fullWidth \"euiFieldNumber--fullWidth\")\n (if @compressed \"euiFieldNumber--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldNumber--inGroup\")\n (if @isLoading \"euiFieldNumber--isLoading\")\n \"euiFieldNumber\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{@id}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{@value}}\n min={{@min}}\n max={{@max}}\n disabled={{@disabled}}\n step={{@step}}\n type=\"number\"\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldNumber;\n"],"names":["EuiFieldNumber","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AA2EA,MAAMA,cACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAmEA,qkDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
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 optional from 'ember-composable-helpers/helpers/optional';
|
|
4
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
5
5
|
import { or, eq, not, and } from 'ember-truth-helpers';
|
|
6
6
|
import randomId from '../-private/random-id.js';
|
|
7
7
|
import argOrDefault from '../helpers/arg-or-default.js';
|