@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
|
@@ -90,35 +90,35 @@ class EuiCodeBlockComponent extends Component {
|
|
|
90
90
|
static {
|
|
91
91
|
g(this.prototype, "codeTarget", [tracked]);
|
|
92
92
|
}
|
|
93
|
-
#codeTarget = (i(this, "codeTarget"),
|
|
93
|
+
#codeTarget = (i(this, "codeTarget"), void 0); //fake element where yield writes to, so we can observe and clone a highlighted version to code and codeFullSceen
|
|
94
94
|
static {
|
|
95
95
|
g(this.prototype, "code", [tracked]);
|
|
96
96
|
}
|
|
97
|
-
#code = (i(this, "code"),
|
|
97
|
+
#code = (i(this, "code"), void 0); //<code> Element for non fullscreen
|
|
98
98
|
static {
|
|
99
99
|
g(this.prototype, "codeFullScreen", [tracked]);
|
|
100
100
|
}
|
|
101
|
-
#codeFullScreen = (i(this, "codeFullScreen"),
|
|
101
|
+
#codeFullScreen = (i(this, "codeFullScreen"), void 0); //<code> Element for fullscreen modal
|
|
102
102
|
static {
|
|
103
103
|
g(this.prototype, "wrapperRef", [tracked]);
|
|
104
104
|
}
|
|
105
|
-
#wrapperRef = (i(this, "wrapperRef"),
|
|
105
|
+
#wrapperRef = (i(this, "wrapperRef"), void 0);
|
|
106
106
|
static {
|
|
107
107
|
g(this.prototype, "tabIndex", [tracked], function () {
|
|
108
108
|
return 1;
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
#tabIndex = (i(this, "tabIndex"),
|
|
111
|
+
#tabIndex = (i(this, "tabIndex"), void 0);
|
|
112
112
|
static {
|
|
113
113
|
g(this.prototype, "isFullScreen", [tracked], function () {
|
|
114
114
|
return false;
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
|
-
#isFullScreen = (i(this, "isFullScreen"),
|
|
117
|
+
#isFullScreen = (i(this, "isFullScreen"), void 0);
|
|
118
118
|
static {
|
|
119
119
|
g(this.prototype, "data", [tracked]);
|
|
120
120
|
}
|
|
121
|
-
#data = (i(this, "data"),
|
|
121
|
+
#data = (i(this, "data"), void 0);
|
|
122
122
|
get language() {
|
|
123
123
|
return checkSupportedLanguage(this.args.language || '');
|
|
124
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-code-block.js","sources":["../../src/components/eui-code-block.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not,or } from 'ember-truth-helpers';\n\nimport Controls from '../components/eui-code-block/controls.gts';\nimport FullScreenDisplay from '../components/eui-code-block/full-screen-display.gts';\nimport VirtualizedCodeBlock from '../components/eui-code-block/virtualized.gts';\nimport EuiInnerText from '../components/eui-inner-text.gts';\nimport classNames from '../helpers/class-names.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport {\n checkSupportedLanguage,\n getHtmlContent,\n highlightByLine\n} from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\ninterface LineNumbersConfig {\n start?: number;\n highlight?: string;\n show?: boolean;\n}\n\nexport type PaddingSize = 'none' | 's' | 'm' | 'l';\nexport type FontSize = 's' | 'm' | 'l';\n\nconst fontSizeToRowHeightMap = {\n s: 18,\n m: 21,\n l: 24\n};\n\nexport type EuiCodeBlockArgs = EuiCodeSharedProps & {\n paddingSize?: PaddingSize;\n fontSize?: FontSize;\n\n /**\n * Specify how `white-space` inside the element is handled.\n * `pre` respects line breaks/white space but doesn't force them to wrap the line\n * `pre-wrap` respects line breaks/white space but does force them to wrap the line when necessary.\n */\n whiteSpace?: 'pre' | 'pre-wrap';\n\n /**\n * Displays an icon button to copy the code snippet to the clipboard.\n */\n isCopyable?: boolean;\n\n /**\n * Displays line numbers.\n * Optionally accepts a configuration object for setting the starting number and visual highlighting ranges:\n * `{ start: 100, highlight: '1, 5-10, 20-30, 40' }`\n */\n lineNumbers?: boolean | LineNumbersConfig;\n\n /**\n * Sets the maximum container height.\n * Accepts a pixel value (`300`) or a percentage (`'100%'`)\n * Ensure the container has calcuable height when using a percentage\n */\n overflowHeight?: number | string;\n\n /**\n * Renders code block lines virtually.\n * Useful for improving load times of large code blocks.\n *\n * When using this configuration, `overflowHeight` is required and\n * `whiteSpace` can only be `pre`.\n */\n isVirtualized?: boolean;\n};\n\nexport interface EuiCodeBlockSignature {\n Element: HTMLElement;\n Args: EuiCodeBlockArgs;\n Blocks: {\n default: [];\n };\n}\n\ninterface LineNumbersFinal {\n start: number;\n show: boolean;\n highlight?: string;\n}\n\nconst highlightTargetModifier = modifier(\n (\n _e,\n _pos: unknown[],\n {\n element: targetEle,\n language = 'text',\n lineNumbersConfig = { start: 1, show: false },\n onChange\n }: {\n element: Element | undefined;\n language: EuiCodeSharedProps['language'];\n lineNumbersConfig: LineNumbersFinal;\n onChange: ({\n data,\n element\n }: {\n data: RefractorNode[];\n element: HTMLElement;\n }) => void;\n }\n ) => {\n let observer: undefined | MutationObserver;\n\n const getHighlighedHtml = () => {\n const html = (targetEle?.textContent ? targetEle.textContent : '').trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlightByLine(html, language, lineNumbersConfig);\n }\n\n return {\n data,\n element: getHtmlContent(data).element\n };\n };\n\n const setupObserver = () => {\n const newObserver = new MutationObserver((mutationsList) => {\n if (mutationsList.length) {\n onChange(getHighlighedHtml());\n }\n });\n\n if (targetEle) {\n onChange(getHighlighedHtml());\n newObserver.observe(targetEle, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n\n return newObserver;\n };\n\n if (targetEle) {\n observer = setupObserver();\n }\n\n return () => {\n observer?.disconnect();\n };\n }\n);\n\nconst cleanTextHelper = helper(function ([text]: [string]) {\n return text?.replace(/[\\r\\n?]{2}|\\n\\n/g, '\\n') || '';\n});\n\nconst textToCopyHelper = helper(function (\n _pos,\n {\n isVirtualized,\n element,\n innerText\n }: {\n isVirtualized: boolean;\n element: HTMLElement | undefined;\n innerText: string;\n }\n) {\n if (element) {\n return isVirtualized\n ? element.textContent\n ? element.textContent\n : ''\n : innerText;\n }\n\n return '';\n});\n\nexport default class EuiCodeBlockComponent extends Component<EuiCodeBlockSignature> {\n //fake element where yield writes to, so we can observe and clone a highlighted version to code and codeFullSceen\n @tracked codeTarget?: HTMLElement;\n //<code> Element for non fullscreen\n @tracked code?: HTMLElement;\n //<code> Element for fullscreen modal\n @tracked codeFullScreen?: HTMLElement;\n @tracked wrapperRef?: HTMLElement;\n @tracked tabIndex = 1;\n @tracked isFullScreen = false;\n @tracked data?: { data: RefractorNode[]; element: HTMLElement };\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n get transparentBackground() {\n return this.args.transparentBackground ?? false;\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get fontSize() {\n return this.args.fontSize ?? 's';\n }\n\n get isCopyable() {\n return this.args.isCopyable ?? false;\n }\n\n get whiteSpace() {\n return this.args.whiteSpace ?? 'pre-wrap';\n }\n\n get isVirtualized() {\n return !!(this.args.isVirtualized && Array.isArray(this.data?.data));\n }\n\n get lineNumbers() {\n return this.args.lineNumbers ?? false;\n }\n\n get lineNumbersConfig() {\n const { lineNumbers } = this;\n const config = typeof lineNumbers === 'object' ? lineNumbers : {};\n\n return lineNumbers\n ? { start: 1, show: true, ...config }\n : { start: 1, show: false };\n }\n\n get optionalStyles() {\n const overflowHeight = this.args.overflowHeight;\n\n if (overflowHeight) {\n const property =\n typeof overflowHeight === 'string' ? 'height' : 'maxHeight';\n\n return {\n [property]:\n typeof overflowHeight === 'string'\n ? overflowHeight\n : `${overflowHeight}px`\n };\n }\n\n return {};\n }\n\n get showCopyButton() {\n return this.isCopyable && true;\n }\n\n get rowHeight() {\n return fontSizeToRowHeightMap[this.fontSize];\n }\n\n get showFullScreenButton() {\n return !!this.args.overflowHeight;\n }\n\n constructor(owner: Owner, args: EuiCodeBlockArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n }\n\n @action\n toggleFullScreen() {\n this.isFullScreen = !this.isFullScreen;\n }\n\n @action\n closeFullScreen(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.isFullScreen = false;\n }\n\n @action\n doesOverflow() {\n if (!this.wrapperRef) return;\n\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } =\n this.wrapperRef;\n const doesOverflow =\n scrollHeight > clientHeight || scrollWidth > clientWidth;\n\n this.tabIndex = doesOverflow ? 0 : -1;\n }\n\n @action\n updateCode(resp: { data: RefractorNode[]; element: HTMLElement }) {\n const render = () => {\n const code = this.code;\n const codeFullScreen = this.codeFullScreen;\n\n if (code && !this.isFullScreen) {\n this.data = resp;\n code.innerHTML = resp.element.innerHTML;\n }\n\n if (codeFullScreen && this.isFullScreen) {\n this.data = resp;\n codeFullScreen.innerHTML = resp.element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n <template>\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (classNames\n \"euiCodeBlock\"\n (if\n (or this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasControl\"\n )\n (if\n (and this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasBothControls\"\n )\n (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\")\n )\n (classNames\n \"euiCodeBlock__pre\"\n (if\n (or (eq this.whiteSpace \"pre\") this.isVirtualized)\n \"euiCodeBlock__pre--whiteSpacePre\"\n )\n (if\n (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized))\n \"euiCodeBlock__pre--whiteSpacePreWrap\"\n )\n (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")\n )\n as |wrapperClasses preClasses|\n }}\n <div\n class={{classNames\n wrapperClasses\n (if\n this.transparentBackground \"euiCodeBlock--transparentBackground\"\n )\n componentName=\"EuiCodeBlock\"\n fontSize=this.fontSize\n paddingSize=this.paddingSize\n }}\n {{style this.optionalStyles}}\n {{highlightTargetModifier\n element=this.codeTarget\n language=this.language\n lineNumbersConfig=this.lineNumbersConfig\n onChange=this.updateCode\n }}\n >\n {{#if this.isVirtualized}}\n {{!virtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{this.rowHeight}}\n />\n {{else}}\n {{!template-lint-disable}}\n <pre\n class={{preClasses}}\n {{style this.optionalStyles}}\n tabindex={{this.tabIndex}}\n {{didInsert (set this \"wrapperRef\")}}\n {{resizeObserver onResize=this.doesOverflow}}\n {{mutationObserver\n onMutation=this.doesOverflow\n observerOptions=(hash subtree=true childList=true)\n }}\n {{didInsert setInnerTextRef}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"code\")}}\n ...attributes\n ></code></pre>\n\n {{/if}}\n\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @showCopyButton={{this.showCopyButton}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{fontSizeToRowHeightMap.l}}\n />\n {{else}}\n <pre\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"codeFullScreen\")}}\n ></code></pre>\n {{/if}}\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @showCopyButton={{this.showCopyButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n </template>\n}\n"],"names":["fontSizeToRowHeightMap","s","m","l","highlightTargetModifier","modifier","_e","_pos","element","targetEle","language","lineNumbersConfig","start","show","onChange","observer","getHighlighedHtml","html","textContent","trim","data","highlightByLine","getHtmlContent","setupObserver","newObserver","MutationObserver","mutationsList","length","observe","characterData","subtree","childList","disconnect","cleanTextHelper","helper","text","replace","textToCopyHelper","isVirtualized","innerText","EuiCodeBlockComponent","Component","g","prototype","tracked","i","void 0","checkSupportedLanguage","args","transparentBackground","paddingSize","fontSize","isCopyable","whiteSpace","Array","isArray","lineNumbers","config","optionalStyles","overflowHeight","property","showCopyButton","rowHeight","showFullScreenButton","constructor","owner","codeTarget","document","createElement","toggleFullScreen","isFullScreen","n","action","closeFullScreen","e","preventDefault","stopPropagation","doesOverflow","wrapperRef","clientWidth","clientHeight","scrollWidth","scrollHeight","tabIndex","updateCode","resp","render","code","codeFullScreen","innerHTML","scheduleOnce","setComponentTemplate","precompileTemplate","strictMode","scope","EuiInnerText","classNames","or","and","eq","not","style","VirtualizedCodeBlock","onKey","didInsert","set","resizeObserver","mutationObserver","hash","Controls","FullScreenDisplay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-code-block.js","sources":["../../src/components/eui-code-block.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not,or } from 'ember-truth-helpers';\n\nimport Controls from '../components/eui-code-block/controls.gts';\nimport FullScreenDisplay from '../components/eui-code-block/full-screen-display.gts';\nimport VirtualizedCodeBlock from '../components/eui-code-block/virtualized.gts';\nimport EuiInnerText from '../components/eui-inner-text.gts';\nimport classNames from '../helpers/class-names.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport {\n checkSupportedLanguage,\n getHtmlContent,\n highlightByLine\n} from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\ninterface LineNumbersConfig {\n start?: number;\n highlight?: string;\n show?: boolean;\n}\n\nexport type PaddingSize = 'none' | 's' | 'm' | 'l';\nexport type FontSize = 's' | 'm' | 'l';\n\nconst fontSizeToRowHeightMap = {\n s: 18,\n m: 21,\n l: 24\n};\n\nexport type EuiCodeBlockArgs = EuiCodeSharedProps & {\n paddingSize?: PaddingSize;\n fontSize?: FontSize;\n\n /**\n * Specify how `white-space` inside the element is handled.\n * `pre` respects line breaks/white space but doesn't force them to wrap the line\n * `pre-wrap` respects line breaks/white space but does force them to wrap the line when necessary.\n */\n whiteSpace?: 'pre' | 'pre-wrap';\n\n /**\n * Displays an icon button to copy the code snippet to the clipboard.\n */\n isCopyable?: boolean;\n\n /**\n * Displays line numbers.\n * Optionally accepts a configuration object for setting the starting number and visual highlighting ranges:\n * `{ start: 100, highlight: '1, 5-10, 20-30, 40' }`\n */\n lineNumbers?: boolean | LineNumbersConfig;\n\n /**\n * Sets the maximum container height.\n * Accepts a pixel value (`300`) or a percentage (`'100%'`)\n * Ensure the container has calcuable height when using a percentage\n */\n overflowHeight?: number | string;\n\n /**\n * Renders code block lines virtually.\n * Useful for improving load times of large code blocks.\n *\n * When using this configuration, `overflowHeight` is required and\n * `whiteSpace` can only be `pre`.\n */\n isVirtualized?: boolean;\n};\n\nexport interface EuiCodeBlockSignature {\n Element: HTMLElement;\n Args: EuiCodeBlockArgs;\n Blocks: {\n default: [];\n };\n}\n\ninterface LineNumbersFinal {\n start: number;\n show: boolean;\n highlight?: string;\n}\n\nconst highlightTargetModifier = modifier(\n (\n _e,\n _pos: unknown[],\n {\n element: targetEle,\n language = 'text',\n lineNumbersConfig = { start: 1, show: false },\n onChange\n }: {\n element: Element | undefined;\n language: EuiCodeSharedProps['language'];\n lineNumbersConfig: LineNumbersFinal;\n onChange: ({\n data,\n element\n }: {\n data: RefractorNode[];\n element: HTMLElement;\n }) => void;\n }\n ) => {\n let observer: undefined | MutationObserver;\n\n const getHighlighedHtml = () => {\n const html = (targetEle?.textContent ? targetEle.textContent : '').trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlightByLine(html, language, lineNumbersConfig);\n }\n\n return {\n data,\n element: getHtmlContent(data).element\n };\n };\n\n const setupObserver = () => {\n const newObserver = new MutationObserver((mutationsList) => {\n if (mutationsList.length) {\n onChange(getHighlighedHtml());\n }\n });\n\n if (targetEle) {\n onChange(getHighlighedHtml());\n newObserver.observe(targetEle, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n\n return newObserver;\n };\n\n if (targetEle) {\n observer = setupObserver();\n }\n\n return () => {\n observer?.disconnect();\n };\n }\n);\n\nconst cleanTextHelper = helper(function ([text]: [string]) {\n return text?.replace(/[\\r\\n?]{2}|\\n\\n/g, '\\n') || '';\n});\n\nconst textToCopyHelper = helper(function (\n _pos,\n {\n isVirtualized,\n element,\n innerText\n }: {\n isVirtualized: boolean;\n element: HTMLElement | undefined;\n innerText: string;\n }\n) {\n if (element) {\n return isVirtualized\n ? element.textContent\n ? element.textContent\n : ''\n : innerText;\n }\n\n return '';\n});\n\nexport default class EuiCodeBlockComponent extends Component<EuiCodeBlockSignature> {\n //fake element where yield writes to, so we can observe and clone a highlighted version to code and codeFullSceen\n @tracked codeTarget?: HTMLElement;\n //<code> Element for non fullscreen\n @tracked code?: HTMLElement;\n //<code> Element for fullscreen modal\n @tracked codeFullScreen?: HTMLElement;\n @tracked wrapperRef?: HTMLElement;\n @tracked tabIndex = 1;\n @tracked isFullScreen = false;\n @tracked data?: { data: RefractorNode[]; element: HTMLElement };\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n get transparentBackground() {\n return this.args.transparentBackground ?? false;\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get fontSize() {\n return this.args.fontSize ?? 's';\n }\n\n get isCopyable() {\n return this.args.isCopyable ?? false;\n }\n\n get whiteSpace() {\n return this.args.whiteSpace ?? 'pre-wrap';\n }\n\n get isVirtualized() {\n return !!(this.args.isVirtualized && Array.isArray(this.data?.data));\n }\n\n get lineNumbers() {\n return this.args.lineNumbers ?? false;\n }\n\n get lineNumbersConfig() {\n const { lineNumbers } = this;\n const config = typeof lineNumbers === 'object' ? lineNumbers : {};\n\n return lineNumbers\n ? { start: 1, show: true, ...config }\n : { start: 1, show: false };\n }\n\n get optionalStyles() {\n const overflowHeight = this.args.overflowHeight;\n\n if (overflowHeight) {\n const property =\n typeof overflowHeight === 'string' ? 'height' : 'maxHeight';\n\n return {\n [property]:\n typeof overflowHeight === 'string'\n ? overflowHeight\n : `${overflowHeight}px`\n };\n }\n\n return {};\n }\n\n get showCopyButton() {\n return this.isCopyable && true;\n }\n\n get rowHeight() {\n return fontSizeToRowHeightMap[this.fontSize];\n }\n\n get showFullScreenButton() {\n return !!this.args.overflowHeight;\n }\n\n constructor(owner: Owner, args: EuiCodeBlockArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n }\n\n @action\n toggleFullScreen() {\n this.isFullScreen = !this.isFullScreen;\n }\n\n @action\n closeFullScreen(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.isFullScreen = false;\n }\n\n @action\n doesOverflow() {\n if (!this.wrapperRef) return;\n\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } =\n this.wrapperRef;\n const doesOverflow =\n scrollHeight > clientHeight || scrollWidth > clientWidth;\n\n this.tabIndex = doesOverflow ? 0 : -1;\n }\n\n @action\n updateCode(resp: { data: RefractorNode[]; element: HTMLElement }) {\n const render = () => {\n const code = this.code;\n const codeFullScreen = this.codeFullScreen;\n\n if (code && !this.isFullScreen) {\n this.data = resp;\n code.innerHTML = resp.element.innerHTML;\n }\n\n if (codeFullScreen && this.isFullScreen) {\n this.data = resp;\n codeFullScreen.innerHTML = resp.element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n <template>\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{! DO NOT FORMAT AT ALL, PRE TAGS RESPECT WHITESPACE LITERALLY }}\n {{#if this.codeTarget}}\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n <EuiInnerText as |setInnerTextRef innerText|>\n {{#let\n (classNames\n \"euiCodeBlock\"\n (if\n (or this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasControl\"\n )\n (if\n (and this.showCopyButton this.showFullScreenButton)\n \"euiCodeBlock--hasBothControls\"\n )\n (if this.lineNumbersConfig.show \"euiCodeBlock--hasLineNumbers\")\n )\n (classNames\n \"euiCodeBlock__pre\"\n (if\n (or (eq this.whiteSpace \"pre\") this.isVirtualized)\n \"euiCodeBlock__pre--whiteSpacePre\"\n )\n (if\n (and (eq this.whiteSpace \"pre-wrap\") (not this.isVirtualized))\n \"euiCodeBlock__pre--whiteSpacePreWrap\"\n )\n (if this.isVirtualized \"euiCodeBlock__pre--isVirtualized\")\n )\n as |wrapperClasses preClasses|\n }}\n <div\n class={{classNames\n wrapperClasses\n (if\n this.transparentBackground \"euiCodeBlock--transparentBackground\"\n )\n componentName=\"EuiCodeBlock\"\n fontSize=this.fontSize\n paddingSize=this.paddingSize\n }}\n {{style this.optionalStyles}}\n {{highlightTargetModifier\n element=this.codeTarget\n language=this.language\n lineNumbersConfig=this.lineNumbersConfig\n onChange=this.updateCode\n }}\n >\n {{#if this.isVirtualized}}\n {{!virtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{this.rowHeight}}\n />\n {{else}}\n {{!template-lint-disable}}\n <pre\n class={{preClasses}}\n {{style this.optionalStyles}}\n tabindex={{this.tabIndex}}\n {{didInsert (set this \"wrapperRef\")}}\n {{resizeObserver onResize=this.doesOverflow}}\n {{mutationObserver\n onMutation=this.doesOverflow\n observerOptions=(hash subtree=true childList=true)\n }}\n {{didInsert setInnerTextRef}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"code\")}}\n ...attributes\n ></code></pre>\n\n {{/if}}\n\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @showCopyButton={{this.showCopyButton}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n\n {{#if this.isFullScreen}}\n <FullScreenDisplay class={{wrapperClasses}}>\n {{#if this.isVirtualized}}\n <VirtualizedCodeBlock\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n @language={{this.language}}\n @data={{this.data.data}}\n @rowHeight={{fontSizeToRowHeightMap.l}}\n />\n {{else}}\n <pre\n class={{preClasses}}\n tabindex=\"0\"\n {{onKey \"Escape\" this.closeFullScreen}}\n ><code\n class=\"euiCodeBlock__code\"\n data-code-language={{this.language}}\n {{didInsert (set this \"codeFullScreen\")}}\n ></code></pre>\n {{/if}}\n <Controls\n @isFullScreen={{this.isFullScreen}}\n @showFullScreenButton={{this.showFullScreenButton}}\n @showCopyButton={{this.showCopyButton}}\n @toggleFullScreen={{this.toggleFullScreen}}\n @textToCopy={{textToCopyHelper\n isVirtualized=this.isVirtualized\n innerText=(cleanTextHelper innerText)\n element=this.data.element\n }}\n />\n </FullScreenDisplay>\n {{/if}}\n </div>\n {{/let}}\n </EuiInnerText>\n </template>\n}\n"],"names":["fontSizeToRowHeightMap","s","m","l","highlightTargetModifier","modifier","_e","_pos","element","targetEle","language","lineNumbersConfig","start","show","onChange","observer","getHighlighedHtml","html","textContent","trim","data","highlightByLine","getHtmlContent","setupObserver","newObserver","MutationObserver","mutationsList","length","observe","characterData","subtree","childList","disconnect","cleanTextHelper","helper","text","replace","textToCopyHelper","isVirtualized","innerText","EuiCodeBlockComponent","Component","g","prototype","tracked","i","void 0","checkSupportedLanguage","args","transparentBackground","paddingSize","fontSize","isCopyable","whiteSpace","Array","isArray","lineNumbers","config","optionalStyles","overflowHeight","property","showCopyButton","rowHeight","showFullScreenButton","constructor","owner","codeTarget","document","createElement","toggleFullScreen","isFullScreen","n","action","closeFullScreen","e","preventDefault","stopPropagation","doesOverflow","wrapperRef","clientWidth","clientHeight","scrollWidth","scrollHeight","tabIndex","updateCode","resp","render","code","codeFullScreen","innerHTML","scheduleOnce","setComponentTemplate","precompileTemplate","strictMode","scope","EuiInnerText","classNames","or","and","eq","not","style","VirtualizedCodeBlock","onKey","didInsert","set","resizeObserver","mutationObserver","hash","Controls","FullScreenDisplay"],"mappings":"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"}
|
|
@@ -17,11 +17,11 @@ class EuiCodeComponent extends Component {
|
|
|
17
17
|
static {
|
|
18
18
|
g(this.prototype, "codeTarget", [tracked]);
|
|
19
19
|
}
|
|
20
|
-
#codeTarget = (i(this, "codeTarget"),
|
|
20
|
+
#codeTarget = (i(this, "codeTarget"), void 0);
|
|
21
21
|
static {
|
|
22
22
|
g(this.prototype, "code", [tracked]);
|
|
23
23
|
}
|
|
24
|
-
#code = (i(this, "code"),
|
|
24
|
+
#code = (i(this, "code"), void 0);
|
|
25
25
|
observer = null;
|
|
26
26
|
constructor(owner, args) {
|
|
27
27
|
super(owner, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-code.js","sources":["../../src/components/eui-code.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { highlight } from 'refractor';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { checkSupportedLanguage,getHtmlContent } from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\nexport type EuiCodeArgs = EuiCodeSharedProps & {\n //comments\n};\n\nexport interface EuiCodeSignature {\n Args: EuiCodeArgs;\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\n\nexport default class EuiCodeComponent extends Component<EuiCodeSignature> {\n @tracked codeTarget: HTMLElement;\n @tracked code: undefined | HTMLElement;\n observer: MutationObserver | null = null;\n\n constructor(owner: Owner, args: EuiCodeArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n this.setupObserver();\n }\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.update();\n });\n\n if (this.codeTarget) {\n this.update();\n this.observer.observe(this.codeTarget, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n @action\n update() {\n const render = () => {\n const html = (\n this.codeTarget?.textContent ? this.codeTarget.textContent : ''\n ).trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlight(html, this.language);\n }\n\n const code = this.code;\n\n if (code) {\n code.innerHTML = getHtmlContent(data).element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n\n <template>\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n <code\n class={{classNames\n \"euiCode\"\n (if @transparentBackground \"euiCode--transparentBackground\")\n }}\n data-code-language={{argOrDefault @language \"text\"}}\n {{didInsert (set this \"code\")}}\n {{didInsert this.update}}\n {{didUpdate this.update this.language}}\n {{didUpdate this.update this.language}}\n ...attributes\n ></code>\n </template>\n}\n"],"names":["EuiCodeComponent","Component","g","prototype","tracked","i","void 0","observer","constructor","owner","args","codeTarget","document","createElement","setupObserver","language","checkSupportedLanguage","disconnect","MutationObserver","mutationsList","length","update","observe","characterData","subtree","childList","render","html","textContent","trim","data","highlight","code","innerHTML","getHtmlContent","element","scheduleOnce","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","didInsert","set","didUpdate"],"mappings":";;;;;;;;;;;;;;;AA8Be,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACrDC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-code.js","sources":["../../src/components/eui-code.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { highlight } from 'refractor';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { checkSupportedLanguage,getHtmlContent } from '../utils/code/utils.ts';\n\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\n\nexport type EuiCodeArgs = EuiCodeSharedProps & {\n //comments\n};\n\nexport interface EuiCodeSignature {\n Args: EuiCodeArgs;\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\n\nexport default class EuiCodeComponent extends Component<EuiCodeSignature> {\n @tracked codeTarget: HTMLElement;\n @tracked code: undefined | HTMLElement;\n observer: MutationObserver | null = null;\n\n constructor(owner: Owner, args: EuiCodeArgs) {\n super(owner, args);\n this.codeTarget = document.createElement('div');\n this.setupObserver();\n }\n\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.update();\n });\n\n if (this.codeTarget) {\n this.update();\n this.observer.observe(this.codeTarget, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n @action\n update() {\n const render = () => {\n const html = (\n this.codeTarget?.textContent ? this.codeTarget.textContent : ''\n ).trim();\n\n let data: RefractorNode[];\n\n if (typeof html !== 'string') {\n data = [];\n } else {\n data = highlight(html, this.language);\n }\n\n const code = this.code;\n\n if (code) {\n code.innerHTML = getHtmlContent(data).element.innerHTML;\n }\n };\n\n scheduleOnce('afterRender', this, render);\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n\n <template>\n {{#in-element this.codeTarget}}\n {{yield}}\n {{/in-element}}\n <code\n class={{classNames\n \"euiCode\"\n (if @transparentBackground \"euiCode--transparentBackground\")\n }}\n data-code-language={{argOrDefault @language \"text\"}}\n {{didInsert (set this \"code\")}}\n {{didInsert this.update}}\n {{didUpdate this.update this.language}}\n {{didUpdate this.update this.language}}\n ...attributes\n ></code>\n </template>\n}\n"],"names":["EuiCodeComponent","Component","g","prototype","tracked","i","void 0","observer","constructor","owner","args","codeTarget","document","createElement","setupObserver","language","checkSupportedLanguage","disconnect","MutationObserver","mutationsList","length","update","observe","characterData","subtree","childList","render","html","textContent","trim","data","highlight","code","innerHTML","getHtmlContent","element","scheduleOnce","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","didInsert","set","didUpdate"],"mappings":";;;;;;;;;;;;;;;AA8Be,MAAMA,yBAAyBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACrDC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CACAC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;AACDC,EAAAA,QAAU,GAA0B,IAAK;AAEzCC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAiB,EAAE;AAC3C,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;IACb,IAAI,CAACC,UAAU,GAAGC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA;IACzC,IAAI,CAACC,aAAa,EAAA;AACpB;EAEA,IAAIC,QAAWA,GAAA;IACb,OAAOC,uBAAuB,IAAI,CAACN,IAAI,CAACK,QAAQ,IAAI,EAAA,CAAA;AACtD;AAEAD,EAAAA,aAAgBA,GAAA;AACd,IAAA,IAAI,CAACP,QAAQ,EAAEU,UAAA,EAAA;AACf,IAAA,IAAI,CAACV,QAAQ,GAAG,IAAIW,iBAAkBC,aAAA,IAAA;MACpC,IAAIA,aAAc,CAAAC,MAAM,EAAE,IAAI,CAACC,MAAM,EAAA;AACvC,KAAA,CAAA;IAEA,IAAI,IAAI,CAACV,UAAU,EAAE;MACnB,IAAI,CAACU,MAAM,EAAA;MACX,IAAI,CAACd,QAAQ,CAACe,OAAO,CAAC,IAAI,CAACX,UAAU,EAAE;AACrCY,QAAAA,aAAe,EAAA,IAAA;AACfC,QAAAA,OAAS,EAAA,IAAA;AACTC,QAAAA,SAAW,EAAA;AACb,OAAA,CAAA;AACF;AACF;AAGAJ,EAAAA,MAASA,GAAA;IACP,MAAMK,MAAS,GAAAA,MAAA;AACb,MAAA,MAAMC,IAAO,GAAA,CACX,IAAI,CAAChB,UAAU,EAAEiB,WAAA,GAAc,IAAI,CAACjB,UAAU,CAACiB,WAAW,GAAG,EAC/D,EAAEC,IAAI,EAAA;AAEN,MAAA,IAAIC,IAAM;AAEV,MAAA,IAAI,OAAOH,SAAS,QAAU,EAAA;AAC5BG,QAAAA,IAAA,GAAO,EAAE;AACX,OAAO,MAAA;QACLA,IAAA,GAAOC,SAAU,CAAAJ,IAAA,EAAM,IAAI,CAACZ,QAAQ,CAAA;AACtC;AAEA,MAAA,MAAMiB,IAAA,GAAO,IAAI,CAACA,IAAI;AAEtB,MAAA,IAAIA,IAAM,EAAA;QACRA,IAAA,CAAKC,SAAS,GAAGC,cAAA,CAAeJ,IAAM,CAAA,CAAAK,OAAO,CAACF,SAAS;AACzD;KACF;AAEAG,IAAAA,YAAa,CAAA,aAAA,EAAe,IAAI,EAAEV,MAAA,CAAA;AACpC;AAAA,EAAA;IAAAW,CAAA,CAAA,IAAA,CAAAlC,SAAA,EAAA,QAAA,EAAA,CAvBCmC,MAAA,CAAA,CAAA;AAAA;AAyBDC,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AACN,IAAA,IAAI,CAAChC,QAAQ,EAAEU,UAAA,EAAA;AACjB;AAEA,EAAA;IAAAuB,oBAAA,CAAAC,kBAAA,CAgBA,qZAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,YAAA;QAAAC,SAAA;QAAAC,GAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -48,7 +48,7 @@ class EuiCollapsibleNavComponent extends Component {
|
|
|
48
48
|
return isWithinMinBreakpoint(typeof window === 'undefined' ? -Infinity : window.innerWidth, this.dockedBreakpoint);
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
-
#windowIsLargeEnoughToPush = (i(this, "windowIsLargeEnoughToPush"),
|
|
51
|
+
#windowIsLargeEnoughToPush = (i(this, "windowIsLargeEnoughToPush"), void 0);
|
|
52
52
|
get isDocked() {
|
|
53
53
|
return this.args.isDocked ?? false;
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-collapsible-nav.js","sources":["../../src/components/eui-collapsible-nav.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { modifier as modBuilder } from 'ember-modifier';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport EuiFlyout from './eui-flyout.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiFlyoutSignature } from './eui-flyout';\nimport type { ModifierLike } from '@glint/template';\n\nexport type EuiCollapsibleNavArgs = {\n id?: string;\n /**\n * ReactNode to render as this component's content\n */\n children?: Component;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n as: string;\n\n size?: EuiFlyoutSignature['Args']['size'];\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n onClose: EuiFlyoutSignature['Args']['onClose'];\n};\n\nconst triggerHandlersModifier = modBuilder(\n (\n element: Element,\n _pos,\n { flyoutID, isOpen }: { flyoutID: string; isOpen: boolean }\n ) => {\n element.setAttribute('aria-controls', flyoutID);\n element.setAttribute('aria-expanded', isOpen ? 'true' : '');\n element.setAttribute('aria-pressed', isOpen ? 'true' : '');\n\n const fn = (e: Event) => {\n e.stopImmediatePropagation();\n };\n\n element.addEventListener('touchend', fn);\n element.addEventListener('mouseup', fn, true);\n\n return () => {\n element.removeEventListener('touchend', fn);\n element.removeEventListener('mouseup', fn, true);\n };\n }\n);\n\nconst onWindowResizeModifier = modBuilder(\n (\n _ele: HTMLElement,\n _pos,\n {\n isDocked = false,\n functionToCallOnWindowResize\n }: { isDocked?: boolean; functionToCallOnWindowResize: () => void }\n ) => {\n if (isDocked) {\n window.addEventListener('resize', functionToCallOnWindowResize);\n }\n\n return () => {\n if (isDocked) {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n }\n };\n }\n);\n\nexport interface EuiCollapsibleNavSignature {\n Element: EuiFlyoutSignature['Element'];\n Args: EuiCollapsibleNavArgs;\n Blocks: {\n default: [];\n button: [\n ModifierLike<{\n Element: Element;\n }>\n ];\n content: [];\n };\n}\nexport default class EuiCollapsibleNavComponent extends Component<EuiCollapsibleNavSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.dockedBreakpoint\n );\n\n get isDocked() {\n return this.args.isDocked ?? false;\n }\n\n get navIsDocked() {\n return this.isDocked && this.windowIsLargeEnoughToPush;\n }\n\n get dockedBreakpoint() {\n return this.args.dockedBreakpoint ?? 'l';\n }\n\n get showButtonIfDocked() {\n return this.args.showButtonIfDocked ?? false;\n }\n\n get as() {\n return this.args.as ?? 'nav';\n }\n\n get size() {\n if (this.args.size && typeof this.args.size !== 'string') {\n return `${this.args.size}px`;\n }\n\n return this.args.size ?? '320px';\n }\n\n get side() {\n return this.args.side ?? 'left';\n }\n\n get role() {\n return this.args.role ?? null;\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? true;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'outside';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'none';\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.dockedBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n <template>\n <span\n {{onWindowResizeModifier\n isDocked=this.isDocked\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n }}\n ></span>\n {{#let (argOrDefault @id (randomId)) as |flyoutID|}}\n\n {{#if (not (and this.navIsDocked (not this.showButtonIfDocked)))}}\n {{yield\n (modifier triggerHandlersModifier isOpen=@isOpen flyoutID=flyoutID)\n to=\"button\"\n }}\n {{/if}}\n\n {{#if (or @isOpen this.navIsDocked)}}\n <EuiFlyout\n id={{flyoutID}}\n class=\"euiCollapsibleNav\"\n @as={{this.as}}\n @size={{this.size}}\n @side={{this.side}}\n @role={{this.role}}\n @ownFocus={{this.ownFocus}}\n @outsideClickCloses={{this.outsideClickCloses}}\n @closeButtonPosition={{this.closeButtonPosition}}\n @paddingSize={{this.paddingSize}}\n @type={{if this.navIsDocked \"push\" \"overlay\"}}\n @hideCloseButton={{this.navIsDocked}}\n @pushMinBreakpoint={{this.dockedBreakpoint}}\n @onClose={{@onClose}}\n ...attributes\n >\n {{yield to=\"content\"}}\n </EuiFlyout>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["triggerHandlersModifier","modBuilder","element","_pos","flyoutID","isOpen","setAttribute","fn","e","stopImmediatePropagation","addEventListener","removeEventListener","onWindowResizeModifier","_ele","isDocked","functionToCallOnWindowResize","window","EuiCollapsibleNavComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","dockedBreakpoint","i","void 0","args","navIsDocked","windowIsLargeEnoughToPush","showButtonIfDocked","as","size","side","role","ownFocus","outsideClickCloses","closeButtonPosition","paddingSize","throttle","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","randomId","not","and","or","EuiFlyout"],"mappings":";;;;;;;;;;;;;;AA2DA,MAAMA,uBAAA,GAA0BC,SAC9B,CACEC,SACAC,IACA,EAAA;EAAEC,QAAQ;AAAEC,EAAAA;AAA+C,CAAA,KAAA;AAE3DH,EAAAA,OAAQ,CAAAI,YAAY,CAAC,eAAiB,EAAAF,QAAA,CAAA;EACtCF,OAAA,CAAQI,YAAY,CAAC,eAAiB,EAAAD,MAAA,GAAS,MAAS,GAAA,EAAA,CAAA;EACxDH,OAAA,CAAQI,YAAY,CAAC,cAAgB,EAAAD,MAAA,GAAS,MAAS,GAAA,EAAA,CAAA;EAEvD,MAAME,EAAA,GAAMC,CAAG,IAAA;IACbA,CAAA,CAAEC,wBAAwB,EAAA;GAC5B;AAEAP,EAAAA,OAAQ,CAAAQ,gBAAgB,CAAC,UAAY,EAAAH,EAAA,CAAA;EACrCL,OAAQ,CAAAQ,gBAAgB,CAAC,SAAA,EAAWH,EAAI,EAAA,IAAA,CAAA;AAExC,EAAA,OAAO,MAAA;AACLL,IAAAA,OAAQ,CAAAS,mBAAmB,CAAC,UAAY,EAAAJ,EAAA,CAAA;IACxCL,OAAQ,CAAAS,mBAAmB,CAAC,SAAA,EAAWJ,EAAI,EAAA,IAAA,CAAA;GAC7C;AACF,CAAA,CAAA;AAGF,MAAMK,sBAAA,GAAyBX,QAC7B,CAAA,CACEY,IAAM,EACNV,MACA;AACEW,EAAAA,QAAA,GAAW,KAAK;AAChBC,EAAAA;AACiE,CAAA,KAAA;AAEnE,EAAA,IAAID,QAAU,EAAA;AACZE,IAAAA,MAAO,CAAAN,gBAAgB,CAAC,QAAU,EAAAK,4BAAA,CAAA;AACpC;AAEA,EAAA,OAAO,MAAA;AACL,IAAA,IAAID,QAAU,EAAA;AACZE,MAAAA,MAAO,CAAAL,mBAAmB,CAAC,QAAU,EAAAI,4BAAA,CAAA;AACvC;GACF;AACF,CAAA,CAAA;AAgBa,MAAME,mCAAmCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,2BAAA,EAAA,CAC/DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAoCC,qBACnC,CAAA,OAAON,MAAW,KAAA,WAAA,GAAc,CAACO,QAAA,GAAWP,MAAO,CAAAQ,UAAU,EAC7D,IAAI,CAACC,gBAAgB,CACrB;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,0BAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"eui-collapsible-nav.js","sources":["../../src/components/eui-collapsible-nav.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { modifier as modBuilder } from 'ember-modifier';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport EuiFlyout from './eui-flyout.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiFlyoutSignature } from './eui-flyout';\nimport type { ModifierLike } from '@glint/template';\n\nexport type EuiCollapsibleNavArgs = {\n id?: string;\n /**\n * ReactNode to render as this component's content\n */\n children?: Component;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n as: string;\n\n size?: EuiFlyoutSignature['Args']['size'];\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n onClose: EuiFlyoutSignature['Args']['onClose'];\n};\n\nconst triggerHandlersModifier = modBuilder(\n (\n element: Element,\n _pos,\n { flyoutID, isOpen }: { flyoutID: string; isOpen: boolean }\n ) => {\n element.setAttribute('aria-controls', flyoutID);\n element.setAttribute('aria-expanded', isOpen ? 'true' : '');\n element.setAttribute('aria-pressed', isOpen ? 'true' : '');\n\n const fn = (e: Event) => {\n e.stopImmediatePropagation();\n };\n\n element.addEventListener('touchend', fn);\n element.addEventListener('mouseup', fn, true);\n\n return () => {\n element.removeEventListener('touchend', fn);\n element.removeEventListener('mouseup', fn, true);\n };\n }\n);\n\nconst onWindowResizeModifier = modBuilder(\n (\n _ele: HTMLElement,\n _pos,\n {\n isDocked = false,\n functionToCallOnWindowResize\n }: { isDocked?: boolean; functionToCallOnWindowResize: () => void }\n ) => {\n if (isDocked) {\n window.addEventListener('resize', functionToCallOnWindowResize);\n }\n\n return () => {\n if (isDocked) {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n }\n };\n }\n);\n\nexport interface EuiCollapsibleNavSignature {\n Element: EuiFlyoutSignature['Element'];\n Args: EuiCollapsibleNavArgs;\n Blocks: {\n default: [];\n button: [\n ModifierLike<{\n Element: Element;\n }>\n ];\n content: [];\n };\n}\nexport default class EuiCollapsibleNavComponent extends Component<EuiCollapsibleNavSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.dockedBreakpoint\n );\n\n get isDocked() {\n return this.args.isDocked ?? false;\n }\n\n get navIsDocked() {\n return this.isDocked && this.windowIsLargeEnoughToPush;\n }\n\n get dockedBreakpoint() {\n return this.args.dockedBreakpoint ?? 'l';\n }\n\n get showButtonIfDocked() {\n return this.args.showButtonIfDocked ?? false;\n }\n\n get as() {\n return this.args.as ?? 'nav';\n }\n\n get size() {\n if (this.args.size && typeof this.args.size !== 'string') {\n return `${this.args.size}px`;\n }\n\n return this.args.size ?? '320px';\n }\n\n get side() {\n return this.args.side ?? 'left';\n }\n\n get role() {\n return this.args.role ?? null;\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? true;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'outside';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'none';\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.dockedBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n <template>\n <span\n {{onWindowResizeModifier\n isDocked=this.isDocked\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n }}\n ></span>\n {{#let (argOrDefault @id (randomId)) as |flyoutID|}}\n\n {{#if (not (and this.navIsDocked (not this.showButtonIfDocked)))}}\n {{yield\n (modifier triggerHandlersModifier isOpen=@isOpen flyoutID=flyoutID)\n to=\"button\"\n }}\n {{/if}}\n\n {{#if (or @isOpen this.navIsDocked)}}\n <EuiFlyout\n id={{flyoutID}}\n class=\"euiCollapsibleNav\"\n @as={{this.as}}\n @size={{this.size}}\n @side={{this.side}}\n @role={{this.role}}\n @ownFocus={{this.ownFocus}}\n @outsideClickCloses={{this.outsideClickCloses}}\n @closeButtonPosition={{this.closeButtonPosition}}\n @paddingSize={{this.paddingSize}}\n @type={{if this.navIsDocked \"push\" \"overlay\"}}\n @hideCloseButton={{this.navIsDocked}}\n @pushMinBreakpoint={{this.dockedBreakpoint}}\n @onClose={{@onClose}}\n ...attributes\n >\n {{yield to=\"content\"}}\n </EuiFlyout>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["triggerHandlersModifier","modBuilder","element","_pos","flyoutID","isOpen","setAttribute","fn","e","stopImmediatePropagation","addEventListener","removeEventListener","onWindowResizeModifier","_ele","isDocked","functionToCallOnWindowResize","window","EuiCollapsibleNavComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","dockedBreakpoint","i","void 0","args","navIsDocked","windowIsLargeEnoughToPush","showButtonIfDocked","as","size","side","role","ownFocus","outsideClickCloses","closeButtonPosition","paddingSize","throttle","n","action","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","randomId","not","and","or","EuiFlyout"],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ class EuiAccordionAccordionComponent extends Component {
|
|
|
19
19
|
static {
|
|
20
20
|
g(this.prototype, "euiI18n", [inject]);
|
|
21
21
|
}
|
|
22
|
-
#euiI18n = (i(this, "euiI18n"),
|
|
22
|
+
#euiI18n = (i(this, "euiI18n"), void 0);
|
|
23
23
|
_regex = /\{\s*(.*?)\s*\}/g;
|
|
24
24
|
get formattedString() {
|
|
25
25
|
let str = unwrap(this.args.customOptionText || this.euiI18n.lookupToken('euiComboBox.customOptionText', 'Add <strong>{searchText}</strong> as custom option'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-option.js","sources":["../../../src/components/eui-combo-box/create-option.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { get } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiI18n from '../../services/eui-i18n';\n\nfunction unwrap(input: string) {\n if (isHTMLSafe(input)) {\n return input.toString();\n }\n\n return input;\n}\n\nexport interface EuiComboBoxCreateOptionSignature {\n Args: {\n customOptionText?: string;\n select: { searchText: string };\n onCreateOption: () => void;\n };\n}\n\nexport default class EuiAccordionAccordionComponent extends Component<EuiComboBoxCreateOptionSignature> {\n @service declare euiI18n: EuiI18n;\n\n _regex = /\\{\\s*(.*?)\\s*\\}/g;\n\n get formattedString(): ReturnType<typeof htmlSafe> {\n let str = unwrap(\n this.args.customOptionText ||\n this.euiI18n.lookupToken(\n 'euiComboBox.customOptionText',\n 'Add <strong>{searchText}</strong> as custom option'\n )\n );\n\n let context = {\n searchText: this.args.select.searchText\n };\n\n return htmlSafe(\n str.replace(this._regex, (_s, p1, p2) => {\n return get(context, p1 || p2);\n })\n );\n }\n\n <template>\n <div\n role=\"button\"\n class=\"euiComboBoxOptionsList__rowWrap\"\n {{on \"click\" @onCreateOption}}\n >\n <EuiText class=\"euiComboBoxOptionsList__empty\" @size=\"xs\">\n <div class=\"euiComboBoxOption__contentWrapper\">\n <p class=\"euiComboBoxOption__emptyStateText\">\n {{this.formattedString}}\n </p>\n <EuiBadge\n @iconType=\"returnKey\"\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n />\n </div>\n </EuiText>\n </div>\n </template>\n}\n"],"names":["unwrap","input","isHTMLSafe","toString","EuiAccordionAccordionComponent","Component","g","prototype","service","i","void 0","_regex","formattedString","str","args","customOptionText","euiI18n","lookupToken","context","searchText","select","htmlSafe","replace","_s","p1","p2","get","setComponentTemplate","precompileTemplate","strictMode","scope","on","EuiText","EuiBadge"],"mappings":";;;;;;;;;;;AAWA,SAASA,MAAAA,CAAOC,KAAa,EAAA;AAC3B,EAAA,IAAIC,WAAWD,KAAQ,CAAA,EAAA;AACrB,IAAA,OAAOA,MAAME,QAAQ,EAAA;AACvB;AAEA,EAAA,OAAOF,KAAA;AACT;AAUe,MAAMG,uCAAuCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACnEC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"create-option.js","sources":["../../../src/components/eui-combo-box/create-option.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { get } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiI18n from '../../services/eui-i18n';\n\nfunction unwrap(input: string) {\n if (isHTMLSafe(input)) {\n return input.toString();\n }\n\n return input;\n}\n\nexport interface EuiComboBoxCreateOptionSignature {\n Args: {\n customOptionText?: string;\n select: { searchText: string };\n onCreateOption: () => void;\n };\n}\n\nexport default class EuiAccordionAccordionComponent extends Component<EuiComboBoxCreateOptionSignature> {\n @service declare euiI18n: EuiI18n;\n\n _regex = /\\{\\s*(.*?)\\s*\\}/g;\n\n get formattedString(): ReturnType<typeof htmlSafe> {\n let str = unwrap(\n this.args.customOptionText ||\n this.euiI18n.lookupToken(\n 'euiComboBox.customOptionText',\n 'Add <strong>{searchText}</strong> as custom option'\n )\n );\n\n let context = {\n searchText: this.args.select.searchText\n };\n\n return htmlSafe(\n str.replace(this._regex, (_s, p1, p2) => {\n return get(context, p1 || p2);\n })\n );\n }\n\n <template>\n <div\n role=\"button\"\n class=\"euiComboBoxOptionsList__rowWrap\"\n {{on \"click\" @onCreateOption}}\n >\n <EuiText class=\"euiComboBoxOptionsList__empty\" @size=\"xs\">\n <div class=\"euiComboBoxOption__contentWrapper\">\n <p class=\"euiComboBoxOption__emptyStateText\">\n {{this.formattedString}}\n </p>\n <EuiBadge\n @iconType=\"returnKey\"\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n />\n </div>\n </EuiText>\n </div>\n </template>\n}\n"],"names":["unwrap","input","isHTMLSafe","toString","EuiAccordionAccordionComponent","Component","g","prototype","service","i","void 0","_regex","formattedString","str","args","customOptionText","euiI18n","lookupToken","context","searchText","select","htmlSafe","replace","_s","p1","p2","get","setComponentTemplate","precompileTemplate","strictMode","scope","on","EuiText","EuiBadge"],"mappings":";;;;;;;;;;;AAWA,SAASA,MAAAA,CAAOC,KAAa,EAAA;AAC3B,EAAA,IAAIC,WAAWD,KAAQ,CAAA,EAAA;AACrB,IAAA,OAAOA,MAAME,QAAQ,EAAA;AACvB;AAEA,EAAA,OAAOF,KAAA;AACT;AAUe,MAAMG,uCAAuCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACnEC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAEDC,EAAAA,MAAA,GAAS,kBAAmB;EAE5B,IAAIC,eAAAA,GAA+C;IACjD,IAAIC,GAAM,GAAAb,MAAA,CACR,IAAI,CAACc,IAAI,CAACC,gBAAgB,IACxB,IAAI,CAACC,OAAO,CAACC,WAAW,CACtB,8BACA,EAAA,8DAAA,CAAA,CAAA;AAIN,IAAA,IAAIC,OAAU,GAAA;AACZC,MAAAA,UAAA,EAAY,IAAI,CAACL,IAAI,CAACM,MAAM,CAACD;KAC/B;AAEA,IAAA,OAAOE,QAAA,CACLR,GAAI,CAAAS,OAAO,CAAC,IAAI,CAACX,MAAM,EAAE,CAACY,EAAA,EAAIC,EAAI,EAAAC,EAAA,KAAA;AAChC,MAAA,OAAOC,GAAA,CAAIR,SAASM,EAAM,IAAAC,EAAA,CAAA;AAC5B,KAAA,CAAA,CAAA;AAEJ;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAmBA,sfAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;iBAAAC,gBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -21,7 +21,7 @@ class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {
|
|
|
21
21
|
static {
|
|
22
22
|
g(this.prototype, "euiConfig", [inject]);
|
|
23
23
|
}
|
|
24
|
-
#euiConfig = (i(this, "euiConfig"),
|
|
24
|
+
#euiConfig = (i(this, "euiConfig"), void 0);
|
|
25
25
|
_optionsCache = [];
|
|
26
26
|
get flattedOptions() {
|
|
27
27
|
if (this._optionsCache !== this.args.options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sources":["../../../src/components/eui-combo-box/options.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\n//@ts-expect-error\nimport VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';\nimport EmberPowerSelectOptions from 'ember-power-select/components/power-select/options';\nimport emberPowerSelectIsGroupHelper, {\n emberPowerSelectIsGroup\n} from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiFlexGroup from '../eui-flex-group.gts';\nimport EuiFlexItem from '../eui-flex-item.gts';\nimport EuiLoadingSpinner from '../eui-loading-spinner.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiConfigService from '../../services/eui-config';\nimport emberPowerSelectIsEqual from 'ember-power-select/helpers/ember-power-select-is-equal';\n\nexport default class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {\n @service declare euiConfig: EuiConfigService;\n _optionsCache: any[] = [];\n\n get flattedOptions() {\n if (this._optionsCache !== this.args.options) {\n this._optionsCache = this.args.options;\n\n return this.args.options?.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 return this._optionsCache;\n }\n\n _optionFromIndex(index: string) {\n let parts = index.split('.');\n let option = this.flattedOptions.at?.(parseInt(parts[0]!, 10));\n\n for (let i = 1; i < parts.length; i++) {\n option = option.options[parseInt(parts[i]!, 10)];\n }\n\n return option;\n }\n\n get configRowHeight() {\n return (\n (this.euiConfig.getConfig('euiComboBoxOptionsHeight') as number) || 29\n );\n }\n\n get rowHeight() {\n //@ts-expect-error\n return this.args.rowHeight ?? this.configRowHeight;\n }\n\n get rowHeightString() {\n return htmlSafe(`height:${this.rowHeight}px;`);\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n {{#let (component (EnsureSafeComponentHelper @groupComponent)) as |Group|}}\n {{#if @select.loading}}\n <EuiText @size=\"xs\" class=\"euiComboBoxOptionsList__empty\">\n <EuiFlexGroup\n @gutterSize=\"s\"\n @justifyContent=\"center\"\n @responsive={{false}}\n >\n <EuiFlexItem @grow={{false}}>\n <EuiLoadingSpinner @size=\"m\" />\n </EuiFlexItem>\n <EuiFlexItem @grow={{false}}>\n {{@loadingMessage}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </EuiText>\n {{else}}\n {{! template-lint-disable }}\n <VerticalCollection\n @items={{this.flattedOptions}}\n @tagName=\"div\"\n @estimateHeight={{this.rowHeight}}\n @staticHeight={{true}}\n @bufferSize={{3}}\n style=\"max-height: 200px; overflow-y: auto;\"\n role=\"listbox\"\n aria-controls=\"ember-power-select-trigger-{{@select.uniqueId}}\"\n class={{@class}}\n {{didInsert this.addHandlers}}\n {{willDestroy this.removeHandlers}}\n ...attributes\n as |opt index|\n >\n {{! template-lint-enable }}\n {{#if (emberPowerSelectIsGroupHelper opt)}}\n <Group\n @group={{opt}}\n @select={{@select}}\n @extra={{@extra}}\n style={{this.rowHeightString}}\n data-option-index=\"{{index}}\"\n />\n {{else}}\n <li\n style={{this.rowHeightString}}\n class=\"euiFilterSelectItem\n {{if\n (eq opt @select.highlighted)\n ' euiFilterSelectItem-isFocused'\n }}\"\n aria-selected=\"{{emberPowerSelectIsEqual opt @select.selected}}\"\n aria-disabled={{if opt.disabled \"true\"}}\n aria-current=\"{{eq opt @select.highlighted}}\"\n data-option-index=\"{{index}}\"\n role=\"option\"\n tabindex={{if opt.disabled \"-1\" \"0\"}}\n >\n <span class=\"euiComboBoxOption__contentWrapper\">\n <span class=\"euiComboBoxOption__content\">\n {{yield opt index @select}}\n </span>\n {{#if (and (eq opt @select.highlighted) (not opt.disabled))}}\n <EuiBadge\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n @iconType=\"returnKey\"\n aria-hidden=\"true\"\n />\n {{/if}}\n </span>\n </li>\n {{/if}}\n </VerticalCollection>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiComboBoxOptionsComponent","EmberPowerSelectOptions","g","prototype","service","i","void 0","_optionsCache","flattedOptions","args","options","reduce","acc","curr","emberPowerSelectIsGroup","push","_optionFromIndex","index","parts","split","option","at","parseInt","length","configRowHeight","euiConfig","getConfig","rowHeight","rowHeightString","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","EuiText","EuiFlexGroup","EuiFlexItem","EuiLoadingSpinner","VerticalCollection","didInsert","willDestroy","emberPowerSelectIsGroupHelper","eq","emberPowerSelectIsEqual","and","not","EuiBadge"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBe,MAAMA,2BAAoC,SAAAC,uBAAA,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACtDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"options.js","sources":["../../../src/components/eui-combo-box/options.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\n//@ts-expect-error\nimport VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';\nimport EmberPowerSelectOptions from 'ember-power-select/components/power-select/options';\nimport emberPowerSelectIsGroupHelper, {\n emberPowerSelectIsGroup\n} from 'ember-power-select/helpers/ember-power-select-is-group';\nimport { and, eq, not } from 'ember-truth-helpers';\n\nimport EuiBadge from '../eui-badge.gts';\nimport EuiFlexGroup from '../eui-flex-group.gts';\nimport EuiFlexItem from '../eui-flex-item.gts';\nimport EuiLoadingSpinner from '../eui-loading-spinner.gts';\nimport EuiText from '../eui-text.gts';\n\nimport type EuiConfigService from '../../services/eui-config';\nimport emberPowerSelectIsEqual from 'ember-power-select/helpers/ember-power-select-is-equal';\n\nexport default class EuiComboBoxOptionsComponent extends EmberPowerSelectOptions {\n @service declare euiConfig: EuiConfigService;\n _optionsCache: any[] = [];\n\n get flattedOptions() {\n if (this._optionsCache !== this.args.options) {\n this._optionsCache = this.args.options;\n\n return this.args.options?.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 return this._optionsCache;\n }\n\n _optionFromIndex(index: string) {\n let parts = index.split('.');\n let option = this.flattedOptions.at?.(parseInt(parts[0]!, 10));\n\n for (let i = 1; i < parts.length; i++) {\n option = option.options[parseInt(parts[i]!, 10)];\n }\n\n return option;\n }\n\n get configRowHeight() {\n return (\n (this.euiConfig.getConfig('euiComboBoxOptionsHeight') as number) || 29\n );\n }\n\n get rowHeight() {\n //@ts-expect-error\n return this.args.rowHeight ?? this.configRowHeight;\n }\n\n get rowHeightString() {\n return htmlSafe(`height:${this.rowHeight}px;`);\n }\n\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n {{#let (component (EnsureSafeComponentHelper @groupComponent)) as |Group|}}\n {{#if @select.loading}}\n <EuiText @size=\"xs\" class=\"euiComboBoxOptionsList__empty\">\n <EuiFlexGroup\n @gutterSize=\"s\"\n @justifyContent=\"center\"\n @responsive={{false}}\n >\n <EuiFlexItem @grow={{false}}>\n <EuiLoadingSpinner @size=\"m\" />\n </EuiFlexItem>\n <EuiFlexItem @grow={{false}}>\n {{@loadingMessage}}\n </EuiFlexItem>\n </EuiFlexGroup>\n </EuiText>\n {{else}}\n {{! template-lint-disable }}\n <VerticalCollection\n @items={{this.flattedOptions}}\n @tagName=\"div\"\n @estimateHeight={{this.rowHeight}}\n @staticHeight={{true}}\n @bufferSize={{3}}\n style=\"max-height: 200px; overflow-y: auto;\"\n role=\"listbox\"\n aria-controls=\"ember-power-select-trigger-{{@select.uniqueId}}\"\n class={{@class}}\n {{didInsert this.addHandlers}}\n {{willDestroy this.removeHandlers}}\n ...attributes\n as |opt index|\n >\n {{! template-lint-enable }}\n {{#if (emberPowerSelectIsGroupHelper opt)}}\n <Group\n @group={{opt}}\n @select={{@select}}\n @extra={{@extra}}\n style={{this.rowHeightString}}\n data-option-index=\"{{index}}\"\n />\n {{else}}\n <li\n style={{this.rowHeightString}}\n class=\"euiFilterSelectItem\n {{if\n (eq opt @select.highlighted)\n ' euiFilterSelectItem-isFocused'\n }}\"\n aria-selected=\"{{emberPowerSelectIsEqual opt @select.selected}}\"\n aria-disabled={{if opt.disabled \"true\"}}\n aria-current=\"{{eq opt @select.highlighted}}\"\n data-option-index=\"{{index}}\"\n role=\"option\"\n tabindex={{if opt.disabled \"-1\" \"0\"}}\n >\n <span class=\"euiComboBoxOption__contentWrapper\">\n <span class=\"euiComboBoxOption__content\">\n {{yield opt index @select}}\n </span>\n {{#if (and (eq opt @select.highlighted) (not opt.disabled))}}\n <EuiBadge\n class=\"euiComboBoxOption__enterBadge\"\n @color=\"hollow\"\n @iconType=\"returnKey\"\n aria-hidden=\"true\"\n />\n {{/if}}\n </span>\n </li>\n {{/if}}\n </VerticalCollection>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["EuiComboBoxOptionsComponent","EmberPowerSelectOptions","g","prototype","service","i","void 0","_optionsCache","flattedOptions","args","options","reduce","acc","curr","emberPowerSelectIsGroup","push","_optionFromIndex","index","parts","split","option","at","parseInt","length","configRowHeight","euiConfig","getConfig","rowHeight","rowHeightString","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","EuiText","EuiFlexGroup","EuiFlexItem","EuiLoadingSpinner","VerticalCollection","didInsert","willDestroy","emberPowerSelectIsGroupHelper","eq","emberPowerSelectIsEqual","and","not","EuiBadge"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBe,MAAMA,2BAAoC,SAAAC,uBAAA,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACtDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AACDC,EAAAA,aAAe,GAAQ,EAAE;EAEzB,IAAIC,cAAiBA,GAAA;IACnB,IAAI,IAAI,CAACD,aAAa,KAAK,IAAI,CAACE,IAAI,CAACC,OAAO,EAAE;AAC5C,MAAA,IAAI,CAACH,aAAa,GAAG,IAAI,CAACE,IAAI,CAACC,OAAO;AAEtC,MAAA,OAAO,IAAI,CAACD,IAAI,CAACC,OAAO,EAAEC,MAAA,CAAO,CAACC,GAAK,EAAAC,IAAA,KAAA;AACrC,QAAA,IAAIC,uBAAwB,CAAA,CAACD,IAAA,CAAK,CAAG,EAAA;UACnCD,GAAA,CAAIG,IAAI,CAACF,IAAS,EAAA,GAAAA,IAAA,CAAKH,OAAO,CAAA;AAChC,SAAO,MAAA;AACLE,UAAAA,GAAA,CAAIG,IAAI,CAACF,IAAA,CAAA;AACX;AAEA,QAAA,OAAOD,GAAA;OACT,EAAG,EAAE,CAAA;AACP;IAEA,OAAO,IAAI,CAACL,aAAa;AAC3B;EAEAS,gBAAiBA,CAAAC,KAAa,EAAE;AAC9B,IAAA,IAAIC,KAAA,GAAQD,KAAM,CAAAE,KAAK,CAAC,GAAA,CAAA;AACxB,IAAA,IAAIC,MAAA,GAAS,IAAI,CAACZ,cAAc,CAACa,EAAE,GAAGC,QAAS,CAAAJ,KAAK,CAAC,CAAA,CAAE,EAAG,EAAA,CAAA,CAAA;AAE1D,IAAA,KAAK,IAAIb,CAAI,GAAA,CAAA,EAAGA,IAAIa,KAAM,CAAAK,MAAM,EAAElB,CAAK,EAAA,EAAA;AACrCe,MAAAA,MAAS,GAAAA,MAAA,CAAOV,OAAO,CAACY,QAAA,CAASJ,KAAK,CAACb,CAAA,CAAE,EAAG,EAAI,CAAA,CAAA;AAClD;AAEA,IAAA,OAAOe,MAAA;AACT;EAEA,IAAII,eAAkBA,GAAA;IACpB,OACG,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,0BAAA,CAAA,IAA0C,EACtE;AACF;EAEA,IAAIC,SAAYA,GAAA;AACd;IACA,OAAO,IAAI,CAAClB,IAAI,CAACkB,SAAS,IAAI,IAAI,CAACH,eAAe;AACpD;EAEA,IAAII,eAAkBA,GAAA;AACpB,IAAA,OAAOC,QAAA,CAAS,CAAA,OAAA,EAAU,IAAI,CAACF,SAAS,KAAK,CAAA;AAC/C;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CA6EA,mvEAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,yBAAA;iBAAAC,gBAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,iBAAA;QAAAC,kBAAA;QAAAC,SAAA;QAAAC,WAAA;QAAAC,6BAAA;QAAAC,EAAA;QAAAC,uBAAA;QAAAC,GAAA;QAAAC,GAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -2,7 +2,7 @@ import { array, fn } from '@ember/helper';
|
|
|
2
2
|
import { on } from '@ember/modifier';
|
|
3
3
|
import didUpdate from '@ember/render-modifiers/modifiers/did-update';
|
|
4
4
|
import { EnsureSafeComponentHelper } from '@embroider/util';
|
|
5
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
5
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
6
6
|
import EmberPowerSelectMultipleTrigger from 'ember-power-select/components/power-select-multiple/trigger';
|
|
7
7
|
import { not, or, and } from 'ember-truth-helpers';
|
|
8
8
|
import argOrDefault from '../../helpers/arg-or-default.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sources":["../../../src/components/eui-combo-box/trigger.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport EmberPowerSelectMultipleTrigger from 'ember-power-select/components/power-select-multiple/trigger';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../../helpers/arg-or-default.ts';\nimport classNames from '../../helpers/class-names.ts';\nimport EuiComboBoxPill from '../eui-combo-box-pill.gts';\nimport EuiFormControlLayout from '../eui-form-control-layout.gts';\nimport EuiComboBoxTriggerInput from './trigger/input.gts';\n\nexport default class EuiComboBoxTriggerComponent extends EmberPowerSelectMultipleTrigger {\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n <EuiFormControlLayout\n @icon={{argOrDefault @icon \"arrowDown\"}}\n @iconSide=\"right\"\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @clear={{if\n (and @select.selected @allowClear)\n (fn @select.actions.select (array))\n }}\n @isLoading={{@isLoading}}\n @disabled={{@select.disabled}}\n >\n <:field>\n {{! template-lint-disable }}\n <ul\n id=\"ember-power-select-multiple-options-{{@select.uniqueId}}\"\n class={{classNames\n \"euiComboBox__inputWrap ember-power-select-multiple-options\"\n (if @compressed \"euiComboBox__inputWrap--compressed\")\n (if @fullWidth \"euiComboBox__inputWrap--fullWidth\")\n (if @singleSelection \"euiComboBox__inputWrap--noWrap\")\n (if @isLoading \"euiComboBox__inputWrap--isLoading\")\n (if @allowClear \"euiComboBox__inputWrap-isClearable\")\n }}\n ...attributes\n {{didUpdate this.openChanged @select.isOpen}}\n {{on \"touchstart\" this.chooseOption}}\n {{on \"mousedown\" this.chooseOption}}\n >\n {{! template-lint-enable }}\n {{#if\n (or\n (and @singleSelection (not @select.searchText))\n (not @singleSelection)\n )\n }}\n {{#each @select.selected as |opt idx|}}\n {{#if @selectedItemComponent}}\n {{#let\n (component\n (EnsureSafeComponentHelper @selectedItemComponent)\n extra=@extra\n option=opt\n select=@select\n )\n as |SelectedItemComponent|\n }}\n <SelectedItemComponent />\n {{/let}}\n {{else}}\n <EuiComboBoxPill\n class=\"ember-power-select-multiple-option\n {{if\n opt.disabled\n 'ember-power-select-multiple-option--disabled'\n }}\"\n @option={{opt}}\n @onClose={{if\n (or @select.disabled @singleSelection)\n false\n (if @onClose (fn (optional @onClose) opt) true)\n }}\n @dataSelectedIconIndex={{idx}}\n @color={{opt.color}}\n @asPlainText={{@singleSelection.asPlainText}}\n >\n {{yield opt @select}}\n </EuiComboBoxPill>\n {{/if}}\n {{else}}{{#if (and @placeholder (not @searchEnabled))}}\n <span class=\"ember-power-select-placeholder\">\n {{@placeholder}}\n </span>\n {{/if}}{{/each}}\n {{/if}}\n {{#if @searchEnabled}}\n {{#if (and this.maybePlaceholder (not @select.searchText))}}\n <p class=\"euiComboBoxPlaceholder\">\n {{this.maybePlaceholder}}\n </p>\n {{/if}}\n {{#let\n (component\n EuiComboBoxTriggerInput\n select=@select\n ariaActiveDescendant=@ariaActiveDescendant\n ariaLabelledBy=@ariaLabelledBy\n ariaLabel=@ariaLabel\n listboxId=@listboxId\n tabindex=@tabindex\n buildSelection=@buildSelection\n placeholder=@placeholder\n placeholderComponent=@placeholderComponent\n searchField=@searchField\n onFocus=@onFocus\n isInvalid=@isInvalid\n onBlur=@onBlur\n onKeydown=@onKeydown\n onInput=@onInput\n onCreateOption=@onCreateOption\n )\n as |InputComponent|\n }}\n {{#let\n (component\n (EnsureSafeComponentHelper @placeholderComponent)\n select=@select\n placeholder=@placeholder\n isMultipleWithSearch=true\n inputComponent=InputComponent\n displayPlaceholder=(and\n (not @select.searchText) (not @select.selected)\n )\n )\n as |PlaceholderComponent|\n }}\n <PlaceholderComponent />\n {{/let}}\n {{/let}}\n {{else}}\n {{! template-lint-disable }}\n <div\n class=\"euiComboBox__input\"\n style=\"font-size: 14px; display: inline-block;\"\n ></div>\n {{! template-lint-enable }}\n {{/if}}\n </ul>\n </:field>\n </EuiFormControlLayout>\n </template>\n}\n"],"names":["EuiComboBoxTriggerComponent","EmberPowerSelectMultipleTrigger","setComponentTemplate","precompileTemplate","strictMode","scope","EuiFormControlLayout","argOrDefault","and","fn","array","classNames","didUpdate","on","or","not","EnsureSafeComponentHelper","EuiComboBoxPill","optional","EuiComboBoxTriggerInput"],"mappings":";;;;;;;;;;;;;;;AAgBe,MAAMA,2BAAoC,SAAAC,+BAAA,CAAA;AACvD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAqIA,0hHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,oBAAA;QAAAC,YAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,KAAA;QAAAC,UAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,yBAAA;QAAAC,eAAA;QAAAC,QAAA;AAAAC,iCAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"trigger.js","sources":["../../../src/components/eui-combo-box/trigger.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport EmberPowerSelectMultipleTrigger from 'ember-power-select/components/power-select-multiple/trigger';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../../helpers/arg-or-default.ts';\nimport classNames from '../../helpers/class-names.ts';\nimport EuiComboBoxPill from '../eui-combo-box-pill.gts';\nimport EuiFormControlLayout from '../eui-form-control-layout.gts';\nimport EuiComboBoxTriggerInput from './trigger/input.gts';\n\nexport default class EuiComboBoxTriggerComponent extends EmberPowerSelectMultipleTrigger {\n <template>\n {{! @glint-nocheck: not typesafe yet }}\n <EuiFormControlLayout\n @icon={{argOrDefault @icon \"arrowDown\"}}\n @iconSide=\"right\"\n @fullWidth={{@fullWidth}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @clear={{if\n (and @select.selected @allowClear)\n (fn @select.actions.select (array))\n }}\n @isLoading={{@isLoading}}\n @disabled={{@select.disabled}}\n >\n <:field>\n {{! template-lint-disable }}\n <ul\n id=\"ember-power-select-multiple-options-{{@select.uniqueId}}\"\n class={{classNames\n \"euiComboBox__inputWrap ember-power-select-multiple-options\"\n (if @compressed \"euiComboBox__inputWrap--compressed\")\n (if @fullWidth \"euiComboBox__inputWrap--fullWidth\")\n (if @singleSelection \"euiComboBox__inputWrap--noWrap\")\n (if @isLoading \"euiComboBox__inputWrap--isLoading\")\n (if @allowClear \"euiComboBox__inputWrap-isClearable\")\n }}\n ...attributes\n {{didUpdate this.openChanged @select.isOpen}}\n {{on \"touchstart\" this.chooseOption}}\n {{on \"mousedown\" this.chooseOption}}\n >\n {{! template-lint-enable }}\n {{#if\n (or\n (and @singleSelection (not @select.searchText))\n (not @singleSelection)\n )\n }}\n {{#each @select.selected as |opt idx|}}\n {{#if @selectedItemComponent}}\n {{#let\n (component\n (EnsureSafeComponentHelper @selectedItemComponent)\n extra=@extra\n option=opt\n select=@select\n )\n as |SelectedItemComponent|\n }}\n <SelectedItemComponent />\n {{/let}}\n {{else}}\n <EuiComboBoxPill\n class=\"ember-power-select-multiple-option\n {{if\n opt.disabled\n 'ember-power-select-multiple-option--disabled'\n }}\"\n @option={{opt}}\n @onClose={{if\n (or @select.disabled @singleSelection)\n false\n (if @onClose (fn (optional @onClose) opt) true)\n }}\n @dataSelectedIconIndex={{idx}}\n @color={{opt.color}}\n @asPlainText={{@singleSelection.asPlainText}}\n >\n {{yield opt @select}}\n </EuiComboBoxPill>\n {{/if}}\n {{else}}{{#if (and @placeholder (not @searchEnabled))}}\n <span class=\"ember-power-select-placeholder\">\n {{@placeholder}}\n </span>\n {{/if}}{{/each}}\n {{/if}}\n {{#if @searchEnabled}}\n {{#if (and this.maybePlaceholder (not @select.searchText))}}\n <p class=\"euiComboBoxPlaceholder\">\n {{this.maybePlaceholder}}\n </p>\n {{/if}}\n {{#let\n (component\n EuiComboBoxTriggerInput\n select=@select\n ariaActiveDescendant=@ariaActiveDescendant\n ariaLabelledBy=@ariaLabelledBy\n ariaLabel=@ariaLabel\n listboxId=@listboxId\n tabindex=@tabindex\n buildSelection=@buildSelection\n placeholder=@placeholder\n placeholderComponent=@placeholderComponent\n searchField=@searchField\n onFocus=@onFocus\n isInvalid=@isInvalid\n onBlur=@onBlur\n onKeydown=@onKeydown\n onInput=@onInput\n onCreateOption=@onCreateOption\n )\n as |InputComponent|\n }}\n {{#let\n (component\n (EnsureSafeComponentHelper @placeholderComponent)\n select=@select\n placeholder=@placeholder\n isMultipleWithSearch=true\n inputComponent=InputComponent\n displayPlaceholder=(and\n (not @select.searchText) (not @select.selected)\n )\n )\n as |PlaceholderComponent|\n }}\n <PlaceholderComponent />\n {{/let}}\n {{/let}}\n {{else}}\n {{! template-lint-disable }}\n <div\n class=\"euiComboBox__input\"\n style=\"font-size: 14px; display: inline-block;\"\n ></div>\n {{! template-lint-enable }}\n {{/if}}\n </ul>\n </:field>\n </EuiFormControlLayout>\n </template>\n}\n"],"names":["EuiComboBoxTriggerComponent","EmberPowerSelectMultipleTrigger","setComponentTemplate","precompileTemplate","strictMode","scope","EuiFormControlLayout","argOrDefault","and","fn","array","classNames","didUpdate","on","or","not","EnsureSafeComponentHelper","EuiComboBoxPill","optional","EuiComboBoxTriggerInput"],"mappings":";;;;;;;;;;;;;;;AAgBe,MAAMA,2BAAoC,SAAAC,+BAAA,CAAA;AACvD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAqIA,0hHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,oBAAA;QAAAC,YAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,KAAA;QAAAC,UAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,yBAAA;QAAAC,eAAA;QAAAC,QAAA;AAAAC,iCAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fn, hash } from '@ember/helper';
|
|
2
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
2
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
3
3
|
import classNames from '../helpers/class-names.js';
|
|
4
4
|
import EuiBadge from './eui-badge.js';
|
|
5
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-combo-box-pill.js","sources":["../../src/components/eui-combo-box-pill.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\n\nimport classNames from '../helpers/class-names.ts';\nimport EuiBadge from './eui-badge.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiComboBoxPill {\n Element: EuiBadgeSignature['Element'];\n Args: {\n /**\n * The color of the pill\n */\n asPlainText?: boolean;\n\n onClose?: (option: unknown) => void;\n\n color?: EuiBadgeSignature['Args']['color'];\n\n dataSelectedIconIndex?: number;\n\n iconOnClickAriaLabel?: string;\n\n option?: unknown;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiComboBoxPill: TemplateOnlyComponent<EuiComboBoxPill> = <template>\n {{#let\n (classNames\n \"euiComboBoxPill\" (if @asPlainText \"euiComboBoxPill--plainText\")\n )\n (optional @onClose)\n as |classes onClose|\n }}\n {{#if @onClose}}\n <EuiBadge\n class={{classes}}\n @closeButtonProps={{hash\n tabIndex=-1\n dataSelectedIconIndex=@dataSelectedIconIndex\n }}\n @color={{@color}}\n @iconOnClick={{fn onClose @option}}\n @iconOnClickAriaLabel={{@iconOnClickAriaLabel}}\n @iconSide=\"right\"\n @iconType=\"cross\"\n ...attributes\n >\n {{yield}}\n </EuiBadge>\n {{else if @asPlainText}}\n <span class={{classes}}>\n {{yield}}\n </span>\n {{else}}\n <EuiBadge\n class={{classes}}\n @color={{@color}}\n @closeButtonProps={{hash dataSelectedIconIndex=@dataSelectedIconIndex}}\n ...attributes\n >\n {{yield}}\n </EuiBadge>\n {{/if}}\n {{/let}}\n</template>;\n\nexport default EuiComboBoxPill;\n"],"names":["EuiComboBoxPill","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","optional","EuiBadge","hash","fn","templateOnly"],"mappings":";;;;;;;;AAkCA,MAAMA,eAA0D,GAAAC,oBAAA,CAAAC,kBAAA,CAuChE,oxBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"eui-combo-box-pill.js","sources":["../../src/components/eui-combo-box-pill.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\n\nimport classNames from '../helpers/class-names.ts';\nimport EuiBadge from './eui-badge.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiComboBoxPill {\n Element: EuiBadgeSignature['Element'];\n Args: {\n /**\n * The color of the pill\n */\n asPlainText?: boolean;\n\n onClose?: (option: unknown) => void;\n\n color?: EuiBadgeSignature['Args']['color'];\n\n dataSelectedIconIndex?: number;\n\n iconOnClickAriaLabel?: string;\n\n option?: unknown;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiComboBoxPill: TemplateOnlyComponent<EuiComboBoxPill> = <template>\n {{#let\n (classNames\n \"euiComboBoxPill\" (if @asPlainText \"euiComboBoxPill--plainText\")\n )\n (optional @onClose)\n as |classes onClose|\n }}\n {{#if @onClose}}\n <EuiBadge\n class={{classes}}\n @closeButtonProps={{hash\n tabIndex=-1\n dataSelectedIconIndex=@dataSelectedIconIndex\n }}\n @color={{@color}}\n @iconOnClick={{fn onClose @option}}\n @iconOnClickAriaLabel={{@iconOnClickAriaLabel}}\n @iconSide=\"right\"\n @iconType=\"cross\"\n ...attributes\n >\n {{yield}}\n </EuiBadge>\n {{else if @asPlainText}}\n <span class={{classes}}>\n {{yield}}\n </span>\n {{else}}\n <EuiBadge\n class={{classes}}\n @color={{@color}}\n @closeButtonProps={{hash dataSelectedIconIndex=@dataSelectedIconIndex}}\n ...attributes\n >\n {{yield}}\n </EuiBadge>\n {{/if}}\n {{/let}}\n</template>;\n\nexport default EuiComboBoxPill;\n"],"names":["EuiComboBoxPill","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","optional","EuiBadge","hash","fn","templateOnly"],"mappings":";;;;;;;;AAkCA,MAAMA,eAA0D,GAAAC,oBAAA,CAAAC,kBAAA,CAuChE,oxBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -5,9 +5,8 @@ import { action } from '@ember/object';
|
|
|
5
5
|
import { inject } from '@ember/service';
|
|
6
6
|
import { isEqual } from '@ember/utils';
|
|
7
7
|
import 'ember-basic-dropdown/styles';
|
|
8
|
-
import optional from 'ember-composable-helpers/helpers/optional';
|
|
9
|
-
import
|
|
10
|
-
import queue from 'ember-composable-helpers/helpers/queue';
|
|
8
|
+
import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
|
|
9
|
+
import queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';
|
|
11
10
|
import PowerSelectMultiple from 'ember-power-select/components/power-select-multiple';
|
|
12
11
|
import { emberPowerSelectIsGroup } from 'ember-power-select/helpers/ember-power-select-is-group';
|
|
13
12
|
import { not, and } from 'ember-truth-helpers';
|
|
@@ -37,27 +36,27 @@ class EuiComboBoxComponent extends Component {
|
|
|
37
36
|
static {
|
|
38
37
|
g(this.prototype, "euiI18n", [inject]);
|
|
39
38
|
}
|
|
40
|
-
#euiI18n = (i(this, "euiI18n"),
|
|
39
|
+
#euiI18n = (i(this, "euiI18n"), void 0);
|
|
41
40
|
static {
|
|
42
41
|
g(this.prototype, "select", [tracked], function () {
|
|
43
42
|
return null;
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
|
-
#select = (i(this, "select"),
|
|
45
|
+
#select = (i(this, "select"), void 0);
|
|
47
46
|
static {
|
|
48
47
|
g(this.prototype, "_resolvedOptions", [tracked]);
|
|
49
48
|
}
|
|
50
|
-
#_resolvedOptions = (i(this, "_resolvedOptions"),
|
|
49
|
+
#_resolvedOptions = (i(this, "_resolvedOptions"), void 0);
|
|
51
50
|
static {
|
|
52
51
|
g(this.prototype, "searchText", [tracked], function () {
|
|
53
52
|
return '';
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
|
-
#searchText = (i(this, "searchText"),
|
|
55
|
+
#searchText = (i(this, "searchText"), void 0);
|
|
57
56
|
static {
|
|
58
57
|
g(this.prototype, "_searchResult", [tracked]);
|
|
59
58
|
}
|
|
60
|
-
#_searchResult = (i(this, "_searchResult"),
|
|
59
|
+
#_searchResult = (i(this, "_searchResult"), void 0);
|
|
61
60
|
_filterResultsCache = {
|
|
62
61
|
results: [],
|
|
63
62
|
options: [],
|
|
@@ -73,11 +72,10 @@ class EuiComboBoxComponent extends Component {
|
|
|
73
72
|
return this.args.searchMessage || this.euiI18n.lookupToken('euiComboBox.searchMessage', 'Type to search');
|
|
74
73
|
}
|
|
75
74
|
static {
|
|
76
|
-
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n <PowerSelectMultiple ...attributes @onChange={{
|
|
75
|
+
setComponentTemplate(precompileTemplate("\n {{!-- @glint-nocheck: not typesafe yet --}}\n <PowerSelectMultiple ...attributes @onChange={{this.onChange}} @onFocus={{@onFocus}} @onBlur={{@onBlur}} @onOpen={{@onOpen}} @onClose={{@onClose}} @placeholderComponent={{@placeholderComponent}} @searchMessage={{this.searchMessage}} @searchMessageComponent={{if @searchMessageComponent @searchMessageComponent EuiComboBoxSearchMessage}} @noMatchesMessage={{this.noMatchesMessage}} @matchTriggerWidth={{@matchTriggerWidth}} @options={{this.options}} @selected={{@selectedOptions}} @closeOnSelect={{@closeOnSelect}} @defaultHighlighted={{@defaultHighlighted}} @searchField={{@searchField}} @searchEnabled={{argOrDefault @searchEnabled true}} @tabindex={{@tabindex}} @initiallyOpened={{and (not @isDisabled) @autoFocus}} @triggerComponent={{component EuiComboBoxTrigger fullWidth=@fullWidth compressed=@compressed isInvalid=@isInvalid singleSelection=@singleSelection onClose=@removeTag onCreateOption=(if @onCreateOption this.onCreateOption) isLoading=@isLoading autoFocus=(and (not @isDisabled) @autoFocus) icon=@triggerIcon}} @matcher={{@matcher}} @initiallyOpen={{@initiallyOpen}} @typeAheadOptionMatcher={{@typeAheadOptionMatcher}} @buildSelection={{this.buildSelection}} @search={{@search}} @onInput={{@onInput}} @onKeydown={{@onKeydown}} @scrollTo={{this.scrollTo}} @registerAPI={{queue this.registerAPI (optional @registerApi)}} @horizontalPosition={{@horizontalPosition}} @destination={{@destination}} @preventScroll={{@preventScroll}} @renderInPlace={{@renderInPlace}} @verticalPosition={{@verticalPosition}} @disabled={{@isDisabled}} @calculatePosition={{@calculatePosition}} @eventType={{@eventType}} @ariaLabel={{@ariaLabel}} @ariaLabelledBy={{@ariaLabelledBy}} @required={{@required}} @triggerRole={{@triggerRole}} @title={{@title}} @triggerId={{@triggerId}} @allowClear={{and (argOrDefault @isClearable true) (not @isDisabled)}} @loadingMessage={{this.loadingMessage}} @selectedItemComponent={{@selectedItemComponent}} @beforeOptionsComponent={{@beforeOptionsComponent}} @afterOptionsComponent={{@afterOptionsComponent}} @placeholder={{@placeholder}} @searchPlaceholder={{@searchPlaceholder}} @optionsComponent={{component EuiComboBoxOptions rowHeight=@rowHeight class=@optionsClass}} @extra={{@extra}} @groupComponent={{component EuiComboBoxGroup}} @triggerClass={{classNames \"euiComboBox\" (if @compressed \"euiComboBox--compressed\") (if @fullWidth \"euiComboBox--fullWidth\") (if @isDisabled \"euiComboBox-isDisabled\") (if @isInvalid \"euiComboBox-isInvalid\") (if this.select.isOpen \"euiComboBox-isOpen\")}} @noMatchesMessageComponent={{if @onCreateOption (component EuiComboBoxCreateOption customOptionText=@customOptionText onCreateOption=this.onCreateOption select=this.select) (component EuiComboBoxNoMatchesMessage)}} @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}}\" as |option i|>\n {{yield option i}}\n </PowerSelectMultiple>\n ", {
|
|
77
76
|
strictMode: true,
|
|
78
77
|
scope: () => ({
|
|
79
78
|
PowerSelectMultiple,
|
|
80
|
-
pipe,
|
|
81
79
|
EuiComboBoxSearchMessage: SearchMessageComponent,
|
|
82
80
|
argOrDefault,
|
|
83
81
|
and,
|
|
@@ -179,7 +177,7 @@ class EuiComboBoxComponent extends Component {
|
|
|
179
177
|
if (this.args.singleSelection) {
|
|
180
178
|
return selected.length > 0 ? [selected[selected.length - 1]] : [];
|
|
181
179
|
}
|
|
182
|
-
|
|
180
|
+
this.args.onChange(selected);
|
|
183
181
|
}
|
|
184
182
|
static {
|
|
185
183
|
n(this.prototype, "onChange", [action]);
|