@ember-eui/core 11.0.2 → 12.0.0
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/README.md +9 -7
- package/declarations/-private/random-id.d.ts +0 -1
- package/declarations/-private/random-id.d.ts.map +1 -1
- package/declarations/components/eui-accordion.d.ts +2 -1
- package/declarations/components/eui-accordion.d.ts.map +1 -1
- package/declarations/components/eui-breadcrumbs.d.ts +2 -1
- package/declarations/components/eui-breadcrumbs.d.ts.map +1 -1
- package/declarations/components/eui-code-block/virtualized.d.ts +1 -1
- package/declarations/components/eui-code-block.d.ts +2 -1
- package/declarations/components/eui-code-block.d.ts.map +1 -1
- package/declarations/components/eui-code.d.ts +2 -1
- package/declarations/components/eui-code.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/options.d.ts +1 -1
- package/declarations/components/eui-combo-box/options.d.ts.map +1 -1
- package/declarations/components/eui-combo-box/trigger/input.d.ts +1 -1
- package/declarations/components/eui-combo-box/trigger/input.d.ts.map +1 -1
- package/declarations/components/eui-form-control-layout-custom-icon.d.ts +1 -1
- package/declarations/components/eui-global-toast-list.d.ts +2 -1
- package/declarations/components/eui-global-toast-list.d.ts.map +1 -1
- package/declarations/components/eui-hide-for.d.ts.map +1 -1
- package/declarations/components/eui-i18n.d.ts +1 -1
- package/declarations/components/eui-icon.d.ts +1 -0
- package/declarations/components/eui-icon.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor-toolbar.d.ts +4 -3
- package/declarations/components/eui-markdown-editor-toolbar.d.ts.map +1 -1
- package/declarations/components/eui-markdown-editor.d.ts +8 -3
- package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
- package/declarations/components/eui-page-header-content.d.ts +1 -1
- package/declarations/components/eui-popover.d.ts +2 -1
- package/declarations/components/eui-popover.d.ts.map +1 -1
- package/declarations/components/eui-portal.d.ts +2 -1
- package/declarations/components/eui-portal.d.ts.map +1 -1
- package/declarations/components/eui-range-track.d.ts +1 -1
- package/declarations/components/eui-show-for.d.ts +1 -1
- package/declarations/components/eui-show-for.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-content.d.ts +1 -1
- package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts.map +1 -1
- package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts +2 -1
- package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts.map +1 -1
- package/declarations/components/eui-tabbed-content.d.ts +2 -1
- package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
- package/declarations/components/eui-tool-tip-popover.d.ts +2 -1
- package/declarations/components/eui-tool-tip-popover.d.ts.map +1 -1
- package/declarations/components.d.ts +148 -148
- package/declarations/helpers/arg-or-default.d.ts +1 -1
- package/declarations/helpers/eui-page-restrict-width.d.ts +1 -1
- package/declarations/helpers/eui-palette.d.ts +1 -1
- package/declarations/helpers/get-range-tick.d.ts +2 -2
- package/declarations/helpers/hex-to-rgb.d.ts +1 -1
- package/declarations/helpers/is-color-dark.d.ts +1 -1
- package/declarations/helpers/is-item-open.d.ts +1 -1
- package/declarations/helpers/is-valid-hex.d.ts +1 -1
- package/declarations/helpers/nullish.d.ts +1 -1
- package/declarations/helpers/starts-with.d.ts +1 -1
- package/declarations/helpers/to-initials.d.ts +1 -1
- package/declarations/helpers/type-of.d.ts +3 -3
- package/declarations/helpers/type-of.d.ts.map +1 -1
- package/declarations/helpers/use-state.d.ts +1 -1
- package/declarations/modifiers/screen-reader-only.d.ts +1 -1
- package/declarations/modifiers/simple-style.d.ts +1 -1
- package/declarations/modifiers/validatable-control.d.ts +1 -1
- package/declarations/utils/markdown/markdown-actions.d.ts +1 -1
- package/declarations/utils/markdown/markdown-modes.d.ts.map +1 -1
- package/declarations/utils/markdown/markdown-types.d.ts +1 -1
- package/declarations/utils/markdown/markdown-types.d.ts.map +1 -1
- package/dist/-private/random-id.js.map +1 -1
- package/dist/components/common.js.map +1 -1
- package/dist/components/eui-accordion.js +14 -14
- package/dist/components/eui-accordion.js.map +1 -1
- package/dist/components/eui-auto-sizer.js +31 -31
- package/dist/components/eui-auto-sizer.js.map +1 -1
- package/dist/components/eui-avatar.js +2 -2
- package/dist/components/eui-avatar.js.map +1 -1
- package/dist/components/eui-badge-group.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-beta-badge.js +1 -1
- package/dist/components/eui-beta-badge.js.map +1 -1
- package/dist/components/eui-bottom-bar.js +13 -13
- package/dist/components/eui-bottom-bar.js.map +1 -1
- package/dist/components/eui-breadcrumbs.js +40 -42
- package/dist/components/eui-breadcrumbs.js.map +1 -1
- package/dist/components/eui-button-content.js.map +1 -1
- package/dist/components/eui-button-empty.js +1 -1
- package/dist/components/eui-button-empty.js.map +1 -1
- package/dist/components/eui-button-group-button.js +1 -1
- package/dist/components/eui-button-group-button.js.map +1 -1
- package/dist/components/eui-button-group.js +1 -1
- package/dist/components/eui-button-group.js.map +1 -1
- package/dist/components/eui-button-icon.js +1 -1
- package/dist/components/eui-button-icon.js.map +1 -1
- package/dist/components/eui-button.js +2 -2
- package/dist/components/eui-button.js.map +1 -1
- package/dist/components/eui-call-out.js +1 -1
- package/dist/components/eui-call-out.js.map +1 -1
- package/dist/components/eui-card-select.js +8 -8
- package/dist/components/eui-card-select.js.map +1 -1
- package/dist/components/eui-card.js +6 -6
- package/dist/components/eui-card.js.map +1 -1
- package/dist/components/eui-checkable-card.js.map +1 -1
- package/dist/components/eui-checkbox-group.js +1 -1
- package/dist/components/eui-checkbox-group.js.map +1 -1
- package/dist/components/eui-checkbox.js +4 -4
- package/dist/components/eui-checkbox.js.map +1 -1
- package/dist/components/eui-code-block/controls.js.map +1 -1
- package/dist/components/eui-code-block/full-screen-display.js.map +1 -1
- package/dist/components/eui-code-block/virtualized.js +9 -9
- package/dist/components/eui-code-block/virtualized.js.map +1 -1
- package/dist/components/eui-code-block.js +71 -71
- package/dist/components/eui-code-block.js.map +1 -1
- package/dist/components/eui-code.js +16 -16
- package/dist/components/eui-code.js.map +1 -1
- package/dist/components/eui-collapsible-nav-group.js +1 -1
- package/dist/components/eui-collapsible-nav-group.js.map +1 -1
- package/dist/components/eui-collapsible-nav.js +21 -22
- package/dist/components/eui-collapsible-nav.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js +9 -9
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/group.js.map +1 -1
- package/dist/components/eui-combo-box/no-matches-message.js.map +1 -1
- package/dist/components/eui-combo-box/options.js +32 -16
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box/search-message.js.map +1 -1
- package/dist/components/eui-combo-box/trigger/input.js +20 -19
- package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
- package/dist/components/eui-combo-box/trigger.js +2 -2
- 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 +58 -60
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-comment-list.js.map +1 -1
- package/dist/components/eui-comment-timeline.js +1 -1
- package/dist/components/eui-comment-timeline.js.map +1 -1
- package/dist/components/eui-comment.js +1 -1
- package/dist/components/eui-comment.js.map +1 -1
- package/dist/components/eui-confirm-modal.js.map +1 -1
- package/dist/components/eui-context-menu-item.js +4 -4
- package/dist/components/eui-context-menu-item.js.map +1 -1
- package/dist/components/eui-context-menu-panel.js.map +1 -1
- package/dist/components/eui-copy.js +3 -3
- package/dist/components/eui-copy.js.map +1 -1
- package/dist/components/eui-described-form-group.js.map +1 -1
- package/dist/components/eui-description-list-description.js.map +1 -1
- package/dist/components/eui-description-list-title.js.map +1 -1
- package/dist/components/eui-description-list.js.map +1 -1
- package/dist/components/eui-dual-range.js +110 -110
- package/dist/components/eui-dual-range.js.map +1 -1
- package/dist/components/eui-empty-prompt.js +1 -1
- package/dist/components/eui-empty-prompt.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 +26 -26
- 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 +16 -16
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-flex-grid.js.map +1 -1
- package/dist/components/eui-flex-group.js.map +1 -1
- package/dist/components/eui-flex-item.js.map +1 -1
- package/dist/components/eui-flyout-body.js.map +1 -1
- package/dist/components/eui-flyout-footer.js.map +1 -1
- package/dist/components/eui-flyout-header.js.map +1 -1
- package/dist/components/eui-flyout.js +35 -36
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-form-control-layout-clear-button.js.map +1 -1
- package/dist/components/eui-form-control-layout-custom-icon.js.map +1 -1
- package/dist/components/eui-form-control-layout-delimited.js +1 -1
- package/dist/components/eui-form-control-layout-delimited.js.map +1 -1
- package/dist/components/eui-form-control-layout-icons.js +1 -1
- package/dist/components/eui-form-control-layout-icons.js.map +1 -1
- package/dist/components/eui-form-control-layout.js +1 -1
- package/dist/components/eui-form-control-layout.js.map +1 -1
- package/dist/components/eui-form-error-text.js.map +1 -1
- package/dist/components/eui-form-fieldset.js.map +1 -1
- package/dist/components/eui-form-help-text.js.map +1 -1
- package/dist/components/eui-form-label.js.map +1 -1
- package/dist/components/eui-form-legend.js.map +1 -1
- package/dist/components/eui-form-row.js +4 -4
- package/dist/components/eui-form-row.js.map +1 -1
- package/dist/components/eui-form.js +1 -1
- package/dist/components/eui-form.js.map +1 -1
- package/dist/components/eui-global-toast-list.js +43 -43
- package/dist/components/eui-global-toast-list.js.map +1 -1
- package/dist/components/eui-header-alert.js.map +1 -1
- package/dist/components/eui-header-breadcrumbs.js.map +1 -1
- package/dist/components/eui-header-link.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-logo.js.map +1 -1
- package/dist/components/eui-header-section-item-button.js +6 -6
- package/dist/components/eui-header-section-item-button.js.map +1 -1
- package/dist/components/eui-header-section-item.js.map +1 -1
- package/dist/components/eui-header-section.js.map +1 -1
- package/dist/components/eui-header.js +2 -2
- package/dist/components/eui-header.js.map +1 -1
- package/dist/components/eui-health.js.map +1 -1
- package/dist/components/eui-hide-for.js.map +1 -1
- package/dist/components/eui-horizontal-rule.js.map +1 -1
- package/dist/components/eui-i18n/render.js.map +1 -1
- package/dist/components/eui-i18n.js +3 -3
- package/dist/components/eui-i18n.js.map +1 -1
- package/dist/components/eui-icon-tip.js.map +1 -1
- package/dist/components/eui-icon.js +43 -37
- package/dist/components/eui-icon.js.map +1 -1
- package/dist/components/eui-image.js +8 -8
- package/dist/components/eui-image.js.map +1 -1
- package/dist/components/eui-inner-text.js +11 -11
- package/dist/components/eui-inner-text.js.map +1 -1
- package/dist/components/eui-input-popover.js +32 -32
- package/dist/components/eui-input-popover.js.map +1 -1
- package/dist/components/eui-key-pad-menu-item.js +3 -3
- package/dist/components/eui-key-pad-menu-item.js.map +1 -1
- package/dist/components/eui-key-pad-menu.js.map +1 -1
- package/dist/components/eui-link.js +1 -1
- package/dist/components/eui-link.js.map +1 -1
- package/dist/components/eui-list-group-item.js +4 -1
- package/dist/components/eui-list-group-item.js.map +1 -1
- package/dist/components/eui-list-group.js +1 -1
- package/dist/components/eui-list-group.js.map +1 -1
- package/dist/components/eui-loading-content.js +1 -1
- package/dist/components/eui-loading-content.js.map +1 -1
- package/dist/components/eui-loading-logo.js.map +1 -1
- package/dist/components/eui-loading-spinner.js.map +1 -1
- package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer/icons/markdown-logo.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js +3 -3
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor-text-area.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar.js +9 -11
- package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
- package/dist/components/eui-markdown-editor.js +147 -96
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-checkbox.js +7 -7
- package/dist/components/eui-markdown-format/markdown-checkbox.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code-block.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-tooltip.js.map +1 -1
- package/dist/components/eui-markdown-format.js +14 -16
- package/dist/components/eui-markdown-format.js.map +1 -1
- package/dist/components/eui-modal-body.js.map +1 -1
- package/dist/components/eui-modal-footer.js.map +1 -1
- package/dist/components/eui-modal-header-title.js.map +1 -1
- package/dist/components/eui-modal-header.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-badge.js.map +1 -1
- package/dist/components/eui-notification-event-messages.js.map +1 -1
- package/dist/components/eui-notification-event-meta.js +1 -1
- package/dist/components/eui-notification-event-meta.js.map +1 -1
- package/dist/components/eui-notification-event-read-button.js.map +1 -1
- package/dist/components/eui-notification-event-read-icon.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 +6 -6
- package/dist/components/eui-overlay-mask.js.map +1 -1
- package/dist/components/eui-page-body.js.map +1 -1
- package/dist/components/eui-page-content-body.js.map +1 -1
- package/dist/components/eui-page-content-header-section.js.map +1 -1
- package/dist/components/eui-page-content-header.js.map +1 -1
- package/dist/components/eui-page-content.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-header-section.js.map +1 -1
- package/dist/components/eui-page-header.js +1 -1
- package/dist/components/eui-page-header.js.map +1 -1
- package/dist/components/eui-page-side-bar.js.map +1 -1
- package/dist/components/eui-page-template.js +12 -12
- package/dist/components/eui-page-template.js.map +1 -1
- package/dist/components/eui-page.js.map +1 -1
- package/dist/components/eui-pagination/button-wrapper.js.map +1 -1
- package/dist/components/eui-pagination/next-button.js +1 -1
- package/dist/components/eui-pagination/next-button.js.map +1 -1
- package/dist/components/eui-pagination/previous-button.js +1 -1
- package/dist/components/eui-pagination/previous-button.js.map +1 -1
- package/dist/components/eui-pagination-button.js.map +1 -1
- package/dist/components/eui-pagination.js +39 -39
- package/dist/components/eui-pagination.js.map +1 -1
- package/dist/components/eui-panel.js +1 -1
- package/dist/components/eui-panel.js.map +1 -1
- package/dist/components/eui-popover-footer.js.map +1 -1
- package/dist/components/eui-popover-title.js.map +1 -1
- package/dist/components/eui-popover.js +126 -126
- package/dist/components/eui-popover.js.map +1 -1
- package/dist/components/eui-portal.js +8 -8
- package/dist/components/eui-portal.js.map +1 -1
- package/dist/components/eui-progress.js +1 -1
- package/dist/components/eui-progress.js.map +1 -1
- package/dist/components/eui-radio-group.js +2 -2
- package/dist/components/eui-radio-group.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-highlight.js.map +1 -1
- package/dist/components/eui-range-input.js +1 -1
- package/dist/components/eui-range-input.js.map +1 -1
- package/dist/components/eui-range-label.js.map +1 -1
- package/dist/components/eui-range-levels.js +7 -7
- package/dist/components/eui-range-levels.js.map +1 -1
- package/dist/components/eui-range-slider.js.map +1 -1
- package/dist/components/eui-range-thumb.js.map +1 -1
- package/dist/components/eui-range-ticks.js +6 -6
- package/dist/components/eui-range-ticks.js.map +1 -1
- package/dist/components/eui-range-tooltip.js +20 -20
- package/dist/components/eui-range-tooltip.js.map +1 -1
- package/dist/components/eui-range-track.js +49 -49
- package/dist/components/eui-range-track.js.map +1 -1
- package/dist/components/eui-range-wrapper.js.map +1 -1
- package/dist/components/eui-range.js +26 -26
- 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-selectable-list-item.js +1 -1
- package/dist/components/eui-selectable-list-item.js.map +1 -1
- package/dist/components/eui-show-for.js +8 -8
- package/dist/components/eui-show-for.js.map +1 -1
- package/dist/components/eui-side-nav-item/button.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 +4 -4
- package/dist/components/eui-side-nav.js.map +1 -1
- package/dist/components/eui-spacer.js.map +1 -1
- package/dist/components/eui-split-panel/inner.js.map +1 -1
- package/dist/components/eui-split-panel/outer.js +1 -1
- package/dist/components/eui-split-panel/outer.js.map +1 -1
- package/dist/components/eui-stat/description.js +1 -0
- package/dist/components/eui-stat/description.js.map +1 -1
- package/dist/components/eui-stat/title.js.map +1 -1
- package/dist/components/eui-stat.js +5 -5
- package/dist/components/eui-stat.js.map +1 -1
- package/dist/components/eui-step-horizontal.js.map +1 -1
- package/dist/components/eui-step-number.js +1 -1
- package/dist/components/eui-step-number.js.map +1 -1
- package/dist/components/eui-step.js.map +1 -1
- package/dist/components/eui-steps-horizontal.js.map +1 -1
- package/dist/components/eui-steps.js.map +1 -1
- package/dist/components/eui-sub-steps.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +27 -27
- 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 +73 -73
- 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 +6 -6
- 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 +5 -5
- 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/now-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +27 -27
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-date-picker-range.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +25 -25
- 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/eui-recently-used.js +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +9 -9
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-super-update-button.js.map +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.map +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.map +1 -1
- package/dist/components/eui-super-date-picker.js +34 -34
- package/dist/components/eui-super-date-picker.js.map +1 -1
- package/dist/components/eui-switch.js +4 -4
- package/dist/components/eui-switch.js.map +1 -1
- package/dist/components/eui-tab.js +1 -1
- package/dist/components/eui-tab.js.map +1 -1
- package/dist/components/eui-tabbed-content.js +31 -31
- package/dist/components/eui-tabbed-content.js.map +1 -1
- package/dist/components/eui-tabs.js.map +1 -1
- package/dist/components/eui-text-align.js.map +1 -1
- package/dist/components/eui-text-area.js.map +1 -1
- package/dist/components/eui-text-color.js.map +1 -1
- package/dist/components/eui-text.js +1 -1
- package/dist/components/eui-text.js.map +1 -1
- package/dist/components/eui-title.js.map +1 -1
- package/dist/components/eui-toast.js.map +1 -1
- package/dist/components/eui-tool-tip-popover.js +5 -5
- package/dist/components/eui-tool-tip-popover.js.map +1 -1
- package/dist/components/eui-tool-tip.js +44 -46
- package/dist/components/eui-tool-tip.js.map +1 -1
- package/dist/components/text-block.js.map +1 -1
- package/dist/helpers/arg-or-default.js.map +1 -1
- package/dist/helpers/cast-to.js.map +1 -1
- package/dist/helpers/class-names.js.map +1 -1
- package/dist/helpers/eui-page-restrict-width.js.map +1 -1
- package/dist/helpers/eui-palette.js +1 -1
- package/dist/helpers/eui-palette.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/get-range-tick.js.map +1 -1
- package/dist/helpers/hex-to-rgb.js.map +1 -1
- package/dist/helpers/inline-styles.js.map +1 -1
- package/dist/helpers/is-color-dark.js.map +1 -1
- package/dist/helpers/is-item-open.js.map +1 -1
- package/dist/helpers/is-valid-hex.js.map +1 -1
- package/dist/helpers/is-within-number.js.map +1 -1
- package/dist/helpers/merge.js.map +1 -1
- package/dist/helpers/nullish.js.map +1 -1
- package/dist/helpers/starts-with.js.map +1 -1
- package/dist/helpers/to-initials.js.map +1 -1
- package/dist/helpers/type-of.js.map +1 -1
- package/dist/helpers/use-state.js +1 -1
- package/dist/helpers/use-state.js.map +1 -1
- package/dist/i18n/util.js.map +1 -1
- package/dist/modifiers/mutation-observer.js.map +1 -1
- package/dist/modifiers/outside-click-detector.js +4 -0
- package/dist/modifiers/outside-click-detector.js.map +1 -1
- package/dist/modifiers/resize-observer.js +3 -0
- package/dist/modifiers/resize-observer.js.map +1 -1
- package/dist/modifiers/screen-reader-only.js.map +1 -1
- package/dist/modifiers/simple-style.js.map +1 -1
- package/dist/modifiers/use-is-within-breakpoints.js.map +1 -1
- package/dist/modifiers/validatable-control.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-i18n.js.map +1 -1
- package/dist/services/eui-toaster.js +1 -1
- package/dist/services/eui-toaster.js.map +1 -1
- package/dist/utils/accesibility/accessible-click-keys.js +1 -1
- package/dist/utils/accesibility/accessible-click-keys.js.map +1 -1
- package/dist/utils/accesibility/cascading-menu-keys.js +1 -1
- package/dist/utils/accesibility/cascading-menu-keys.js.map +1 -1
- package/dist/utils/accesibility/combo-box-keys.js +1 -1
- package/dist/utils/accesibility/combo-box-keys.js.map +1 -1
- package/dist/utils/breakpoint.js.map +1 -1
- package/dist/utils/browser/browser.js.map +1 -1
- package/dist/utils/code/utils.js.map +1 -1
- package/dist/utils/color/color_palette.js.map +1 -1
- package/dist/utils/color/eui_palettes.js.map +1 -1
- package/dist/utils/copy-to-clipboard.js.map +1 -1
- package/dist/utils/css-mappings/eui-accordion.js.map +1 -1
- package/dist/utils/css-mappings/eui-avatar.js +1 -1
- package/dist/utils/css-mappings/eui-avatar.js.map +1 -1
- package/dist/utils/css-mappings/eui-badge-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-beta-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-bottom-bar.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-empty.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-group-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-button-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-call-out.js.map +1 -1
- package/dist/utils/css-mappings/eui-card-select.js.map +1 -1
- package/dist/utils/css-mappings/eui-card.js.map +1 -1
- package/dist/utils/css-mappings/eui-code-block.js.map +1 -1
- package/dist/utils/css-mappings/eui-collapsible-nav-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-comment-event.js.map +1 -1
- package/dist/utils/css-mappings/eui-comment-timeline-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-context-menu-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-described-form-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-description-list.js.map +1 -1
- package/dist/utils/css-mappings/eui-empty-prompt.js.map +1 -1
- package/dist/utils/css-mappings/eui-file-picker.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-grid.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-flex-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-flyout.js.map +1 -1
- package/dist/utils/css-mappings/eui-form-control-layout-clear-button.js.map +1 -1
- package/dist/utils/css-mappings/eui-form-row.js.map +1 -1
- package/dist/utils/css-mappings/eui-global-toast-list.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-links.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-section-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-header-section.js.map +1 -1
- package/dist/utils/css-mappings/eui-header.js.map +1 -1
- package/dist/utils/css-mappings/eui-health.js.map +1 -1
- package/dist/utils/css-mappings/eui-horizontal-rule.js.map +1 -1
- package/dist/utils/css-mappings/eui-icon.js.map +1 -1
- package/dist/utils/css-mappings/eui-image.js.map +1 -1
- package/dist/utils/css-mappings/eui-link.js.map +1 -1
- package/dist/utils/css-mappings/eui-list-group-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-list-group.js.map +1 -1
- package/dist/utils/css-mappings/eui-loading-spinner.js.map +1 -1
- package/dist/utils/css-mappings/eui-modal.js.map +1 -1
- package/dist/utils/css-mappings/eui-notification-badge.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-body.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-content-body.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-content.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-header.js.map +1 -1
- package/dist/utils/css-mappings/eui-page-side-bar.js.map +1 -1
- package/dist/utils/css-mappings/eui-page.js.map +1 -1
- package/dist/utils/css-mappings/eui-panel.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover-footer.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover-title.js.map +1 -1
- package/dist/utils/css-mappings/eui-popover.js.map +1 -1
- package/dist/utils/css-mappings/eui-progress-data.js.map +1 -1
- package/dist/utils/css-mappings/eui-progress.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-highlight.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-input.js.map +1 -1
- package/dist/utils/css-mappings/eui-range-levels.js.map +1 -1
- package/dist/utils/css-mappings/eui-selectable-list-item.js.map +1 -1
- package/dist/utils/css-mappings/eui-spacer.js.map +1 -1
- package/dist/utils/css-mappings/eui-stat.js.map +1 -1
- package/dist/utils/css-mappings/eui-step-number.js.map +1 -1
- package/dist/utils/css-mappings/eui-tabs.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-align.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-area.js.map +1 -1
- package/dist/utils/css-mappings/eui-text-color.js.map +1 -1
- package/dist/utils/css-mappings/eui-text.js.map +1 -1
- package/dist/utils/css-mappings/eui-title.js.map +1 -1
- package/dist/utils/css-mappings/eui-toast.js.map +1 -1
- package/dist/utils/css-mappings/eui-tool-tip.js.map +1 -1
- package/dist/utils/css-mappings/index.js +140 -140
- package/dist/utils/css-mappings/index.js.map +1 -1
- package/dist/utils/detect-element-resize.js.map +1 -1
- package/dist/utils/keys.js.map +1 -1
- package/dist/utils/markdown/markdown-actions.js +1 -0
- package/dist/utils/markdown/markdown-actions.js.map +1 -1
- package/dist/utils/markdown/markdown-modes.js.map +1 -1
- package/dist/utils/markdown/markdown-types.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-add-components/processor.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-checkbox/parser.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-tooltip/parser.js.map +1 -1
- package/dist/utils/markdown/plugins/markdown-tooltip/plugin.js.map +1 -1
- package/dist/utils/markdown/plugins/to-dom.js.map +1 -1
- package/dist/utils/markdown/remark/remark-prismjs.js.map +1 -1
- package/dist/utils/maybe-unwrap-proxy.js.map +1 -1
- package/dist/utils/number/number.js.map +1 -1
- package/dist/utils/popover/index.js +1 -4
- package/dist/utils/popover/index.js.map +1 -1
- package/dist/utils/predicate/common_predicates.js.map +1 -1
- package/dist/utils/predicate/lodash_predicates.js.map +1 -1
- package/dist/utils/timer.js +4 -1
- package/dist/utils/timer.js.map +1 -1
- package/dist/utils/transition.js.map +1 -1
- package/package.json +63 -46
- package/declarations/modifiers/open-collapsible-nav.d.ts +0 -9
- package/declarations/modifiers/open-collapsible-nav.d.ts.map +0 -1
|
@@ -10,16 +10,16 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
12
|
class EuiCodeBlockVirtualizedComponent extends Component {
|
|
13
|
-
getHtmlContent = helper(function ([
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
getHtmlContent = helper(function ([node, index, rowHeight]) {
|
|
14
|
+
const content = getHtmlContent([node]);
|
|
15
|
+
const span = content.element.firstChild;
|
|
16
|
+
if (span) {
|
|
17
|
+
span.style.position = 'absolute';
|
|
18
|
+
span.style.height = `${rowHeight}px`;
|
|
19
|
+
span.style.left = '0';
|
|
20
|
+
span.style.top = `${index * rowHeight}px`;
|
|
21
21
|
}
|
|
22
|
-
return
|
|
22
|
+
return span;
|
|
23
23
|
});
|
|
24
24
|
static {
|
|
25
25
|
setComponentTemplate(precompileTemplate("\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 {{#let (randomId) as |theID|}}\n <EuiAutoSizer as |styles|>\n <pre {{style styles}} {{!--template-lint-disable--}} style=\"position: relative; overflow: auto;\" id={{theID}} ...attributes><VerticalCollection @items={{@data}} @tagName=\"code\" class=\"euiCodeBlock__code\" data-code-language={{@language}} @estimateHeight={{@rowHeight}} @bufferSize={{40}} @staticHeight={{true}} @containerSelector={{concat \"#\" theID}} as |opt index|>{{this.getHtmlContent opt index @rowHeight}}</VerticalCollection></pre>\n </EuiAutoSizer>\n {{/let}}\n ", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualized.js","sources":["../../../src/components/eui-code-block/virtualized.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"virtualized.js","sources":["../../../src/components/eui-code-block/virtualized.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { helper } from '@ember/component/helper';\nimport { concat } from '@ember/helper';\n\n//@ts-expect-error\nimport VerticalCollection from '@html-next/vertical-collection/components/vertical-collection/component';\nimport style from 'ember-style-modifier/modifiers/style';\n\nimport randomId from '../../-private/random-id.ts';\nimport { getHtmlContent } from '../../utils/code/utils.ts';\nimport EuiAutoSizer from '../eui-auto-sizer.gts';\n\nimport type { RefractorNode } from 'refractor';\n\nexport interface VirtualizedCodeBlockSignature<T> {\n Element: HTMLPreElement;\n // We accept an array of items, one per row\n Args: {\n data?: T[];\n language: string;\n rowHeight: number;\n };\n}\n\nexport default class EuiCodeBlockVirtualizedComponent<T> extends Component<\n VirtualizedCodeBlockSignature<T>\n> {\n getHtmlContent = helper(function ([node, index, rowHeight]: [\n RefractorNode,\n number,\n number\n ]) {\n const content = getHtmlContent([node]);\n const span = content.element.firstChild as HTMLElement;\n\n if (span) {\n span.style.position = 'absolute';\n span.style.height = `${rowHeight}px`;\n span.style.left = '0';\n span.style.top = `${index * rowHeight}px`;\n }\n\n return span;\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 {{#let (randomId) as |theID|}}\n <EuiAutoSizer as |styles|>\n <pre\n {{style styles}}\n {{!template-lint-disable}}\n style=\"position: relative; overflow: auto;\"\n id={{theID}}\n ...attributes\n ><VerticalCollection\n @items={{@data}}\n @tagName=\"code\"\n class=\"euiCodeBlock__code\"\n data-code-language={{@language}}\n @estimateHeight={{@rowHeight}}\n @bufferSize={{40}}\n @staticHeight={{true}}\n @containerSelector={{concat \"#\" theID}}\n as |opt index|\n >{{this.getHtmlContent\n opt\n index\n @rowHeight\n }}</VerticalCollection></pre>\n </EuiAutoSizer>\n {{/let}}\n </template>\n}\n"],"names":["EuiCodeBlockVirtualizedComponent","Component","getHtmlContent","helper","node","index","rowHeight","content","span","element","firstChild","style","position","height","left","top","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","EuiAutoSizer","VerticalCollection","concat"],"mappings":";;;;;;;;;;;AAwBe,MAAMA,gCAAA,SAA4CC,SAAA,CACjC;EAE9BC,cAAiB,GAAAC,MAAA,CAAO,UAAU,CAACC,IAAM,EAAAC,KAAA,EAAOC,UAI/C,EAAA;AACC,IAAA,MAAMC,UAAUL,cAAe,CAAA,CAACE,IAAA,CAAK,CAAA;AACrC,IAAA,MAAMI,IAAO,GAAAD,OAAA,CAAQE,OAAO,CAACC,UAAc;AAE3C,IAAA,IAAIF,IAAM,EAAA;AACRA,MAAAA,IAAK,CAAAG,KAAK,CAACC,QAAQ,GAAG,UAAA;AACtBJ,MAAAA,IAAK,CAAAG,KAAK,CAACE,MAAM,GAAG,CAAA,EAAGP,SAAA,CAAa,EAAA,CAAA;AACpCE,MAAAA,IAAK,CAAAG,KAAK,CAACG,IAAI,GAAG,GAAA;MAClBN,IAAK,CAAAG,KAAK,CAACI,GAAG,GAAG,CAAGV,EAAAA,KAAA,GAAQC,SAAU,CAAG,EAAA,CAAA;AAC3C;AAEA,IAAA,OAAOE,IAAA;AACT,GAAG,CAAA;AAEH,EAAA;IAAAQ,oBAAA,CAAAC,kBAAA,CAmCA,muCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;sBAAAC,qBAAA;QAAAV,KAAA;QAAAW,kBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -9,7 +9,7 @@ import onKey from 'ember-keyboard/modifiers/on-key';
|
|
|
9
9
|
import { modifier } from 'ember-modifier';
|
|
10
10
|
import set from 'ember-set-helper/helpers/set';
|
|
11
11
|
import style from 'ember-style-modifier/modifiers/style';
|
|
12
|
-
import {
|
|
12
|
+
import { not, eq, and, or } from 'ember-truth-helpers';
|
|
13
13
|
import EuiCodeBlockControls from './eui-code-block/controls.js';
|
|
14
14
|
import FullScreenDisplay from './eui-code-block/full-screen-display.js';
|
|
15
15
|
import EuiCodeBlockVirtualizedComponent from './eui-code-block/virtualized.js';
|
|
@@ -27,62 +27,62 @@ const fontSizeToRowHeightMap = {
|
|
|
27
27
|
m: 21,
|
|
28
28
|
l: 24
|
|
29
29
|
};
|
|
30
|
-
const highlightTargetModifier = modifier((
|
|
31
|
-
element:
|
|
32
|
-
language
|
|
33
|
-
lineNumbersConfig
|
|
30
|
+
const highlightTargetModifier = modifier((_e, _pos, {
|
|
31
|
+
element: targetEle,
|
|
32
|
+
language = 'text',
|
|
33
|
+
lineNumbersConfig = {
|
|
34
34
|
start: 1,
|
|
35
35
|
show: false
|
|
36
36
|
},
|
|
37
|
-
onChange
|
|
37
|
+
onChange
|
|
38
38
|
}) => {
|
|
39
|
-
let
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
let
|
|
43
|
-
if (typeof
|
|
44
|
-
|
|
39
|
+
let observer;
|
|
40
|
+
const getHighlighedHtml = () => {
|
|
41
|
+
const html = (targetEle?.textContent ? targetEle.textContent : '').trim();
|
|
42
|
+
let data;
|
|
43
|
+
if (typeof html !== 'string') {
|
|
44
|
+
data = [];
|
|
45
45
|
} else {
|
|
46
|
-
|
|
46
|
+
data = highlightByLine(html, language, lineNumbersConfig);
|
|
47
47
|
}
|
|
48
48
|
return {
|
|
49
|
-
data
|
|
50
|
-
element: getHtmlContent(
|
|
49
|
+
data,
|
|
50
|
+
element: getHtmlContent(data).element
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
|
|
53
|
+
const setupObserver = () => {
|
|
54
|
+
const newObserver = new MutationObserver(mutationsList => {
|
|
55
|
+
if (mutationsList.length) {
|
|
56
|
+
onChange(getHighlighedHtml());
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
if (targetEle) {
|
|
60
|
+
onChange(getHighlighedHtml());
|
|
61
|
+
newObserver.observe(targetEle, {
|
|
62
62
|
characterData: true,
|
|
63
63
|
subtree: true,
|
|
64
64
|
childList: true
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
return
|
|
67
|
+
return newObserver;
|
|
68
68
|
};
|
|
69
|
-
if (
|
|
70
|
-
|
|
69
|
+
if (targetEle) {
|
|
70
|
+
observer = setupObserver();
|
|
71
71
|
}
|
|
72
72
|
return () => {
|
|
73
|
-
|
|
73
|
+
observer?.disconnect();
|
|
74
74
|
};
|
|
75
75
|
});
|
|
76
|
-
const cleanTextHelper = helper(function ([
|
|
77
|
-
return
|
|
76
|
+
const cleanTextHelper = helper(function ([text]) {
|
|
77
|
+
return text?.replace(/[\r\n?]{2}|\n\n/g, '\n') || '';
|
|
78
78
|
});
|
|
79
|
-
const textToCopyHelper = helper(function (
|
|
80
|
-
isVirtualized
|
|
81
|
-
element
|
|
82
|
-
innerText
|
|
79
|
+
const textToCopyHelper = helper(function (_pos, {
|
|
80
|
+
isVirtualized,
|
|
81
|
+
element,
|
|
82
|
+
innerText
|
|
83
83
|
}) {
|
|
84
|
-
if (
|
|
85
|
-
return
|
|
84
|
+
if (element) {
|
|
85
|
+
return isVirtualized ? element.textContent ? element.textContent : '' : innerText;
|
|
86
86
|
}
|
|
87
87
|
return '';
|
|
88
88
|
});
|
|
@@ -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"), undefined); //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"), undefined); //<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"), undefined); //<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"), undefined);
|
|
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"), undefined);
|
|
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"), undefined);
|
|
118
118
|
static {
|
|
119
119
|
g(this.prototype, "data", [tracked]);
|
|
120
120
|
}
|
|
121
|
-
#data = (i(this, "data"),
|
|
121
|
+
#data = (i(this, "data"), undefined);
|
|
122
122
|
get language() {
|
|
123
123
|
return checkSupportedLanguage(this.args.language || '');
|
|
124
124
|
}
|
|
@@ -145,24 +145,24 @@ class EuiCodeBlockComponent extends Component {
|
|
|
145
145
|
}
|
|
146
146
|
get lineNumbersConfig() {
|
|
147
147
|
const {
|
|
148
|
-
lineNumbers
|
|
148
|
+
lineNumbers
|
|
149
149
|
} = this;
|
|
150
|
-
const
|
|
151
|
-
return
|
|
150
|
+
const config = typeof lineNumbers === 'object' ? lineNumbers : {};
|
|
151
|
+
return lineNumbers ? {
|
|
152
152
|
start: 1,
|
|
153
153
|
show: true,
|
|
154
|
-
...
|
|
154
|
+
...config
|
|
155
155
|
} : {
|
|
156
156
|
start: 1,
|
|
157
157
|
show: false
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
get optionalStyles() {
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
163
|
-
const
|
|
161
|
+
const overflowHeight = this.args.overflowHeight;
|
|
162
|
+
if (overflowHeight) {
|
|
163
|
+
const property = typeof overflowHeight === 'string' ? 'height' : 'maxHeight';
|
|
164
164
|
return {
|
|
165
|
-
[
|
|
165
|
+
[property]: typeof overflowHeight === 'string' ? overflowHeight : `${overflowHeight}px`
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
168
|
return {};
|
|
@@ -176,8 +176,8 @@ class EuiCodeBlockComponent extends Component {
|
|
|
176
176
|
get showFullScreenButton() {
|
|
177
177
|
return !!this.args.overflowHeight;
|
|
178
178
|
}
|
|
179
|
-
constructor(
|
|
180
|
-
super(
|
|
179
|
+
constructor(owner, args) {
|
|
180
|
+
super(owner, args);
|
|
181
181
|
this.codeTarget = document.createElement('div');
|
|
182
182
|
}
|
|
183
183
|
toggleFullScreen() {
|
|
@@ -186,9 +186,9 @@ class EuiCodeBlockComponent extends Component {
|
|
|
186
186
|
static {
|
|
187
187
|
n(this.prototype, "toggleFullScreen", [action]);
|
|
188
188
|
}
|
|
189
|
-
closeFullScreen(
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
closeFullScreen(e) {
|
|
190
|
+
e.preventDefault();
|
|
191
|
+
e.stopPropagation();
|
|
192
192
|
this.isFullScreen = false;
|
|
193
193
|
}
|
|
194
194
|
static {
|
|
@@ -197,31 +197,31 @@ class EuiCodeBlockComponent extends Component {
|
|
|
197
197
|
doesOverflow() {
|
|
198
198
|
if (!this.wrapperRef) return;
|
|
199
199
|
const {
|
|
200
|
-
clientWidth
|
|
201
|
-
clientHeight
|
|
202
|
-
scrollWidth
|
|
203
|
-
scrollHeight
|
|
200
|
+
clientWidth,
|
|
201
|
+
clientHeight,
|
|
202
|
+
scrollWidth,
|
|
203
|
+
scrollHeight
|
|
204
204
|
} = this.wrapperRef;
|
|
205
|
-
const
|
|
206
|
-
this.tabIndex =
|
|
205
|
+
const doesOverflow = scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
206
|
+
this.tabIndex = doesOverflow ? 0 : -1;
|
|
207
207
|
}
|
|
208
208
|
static {
|
|
209
209
|
n(this.prototype, "doesOverflow", [action]);
|
|
210
210
|
}
|
|
211
|
-
updateCode(
|
|
212
|
-
const
|
|
213
|
-
const
|
|
214
|
-
const
|
|
215
|
-
if (
|
|
216
|
-
this.data =
|
|
217
|
-
|
|
211
|
+
updateCode(resp) {
|
|
212
|
+
const render = () => {
|
|
213
|
+
const code = this.code;
|
|
214
|
+
const codeFullScreen = this.codeFullScreen;
|
|
215
|
+
if (code && !this.isFullScreen) {
|
|
216
|
+
this.data = resp;
|
|
217
|
+
code.innerHTML = resp.element.innerHTML;
|
|
218
218
|
}
|
|
219
|
-
if (
|
|
220
|
-
this.data =
|
|
221
|
-
|
|
219
|
+
if (codeFullScreen && this.isFullScreen) {
|
|
220
|
+
this.data = resp;
|
|
221
|
+
codeFullScreen.innerHTML = resp.element.innerHTML;
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
|
-
scheduleOnce('afterRender', this,
|
|
224
|
+
scheduleOnce('afterRender', this, render);
|
|
225
225
|
}
|
|
226
226
|
static {
|
|
227
227
|
n(this.prototype, "updateCode", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-code-block.js","sources":["../../src/components/eui-code-block.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport 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 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';\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 { checkSupportedLanguage, getHtmlContent, highlightByLine } from '../utils/code/utils.ts';\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\ninterface LineNumbersConfig {\n start?: number;\n highlight?: string;\n show?: boolean;\n}\nexport type PaddingSize = 'none' | 's' | 'm' | 'l';\nexport type FontSize = 's' | 'm' | 'l';\nconst fontSizeToRowHeightMap = {\n s: 18,\n m: 21,\n l: 24\n};\nexport type EuiCodeBlockArgs = EuiCodeSharedProps & {\n paddingSize?: PaddingSize;\n fontSize?: FontSize;\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 */ whiteSpace?: 'pre' | 'pre-wrap';\n /**\n * Displays an icon button to copy the code snippet to the clipboard.\n */ isCopyable?: boolean;\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 */ lineNumbers?: boolean | LineNumbersConfig;\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 */ overflowHeight?: number | string;\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 */ isVirtualized?: boolean;\n};\nexport interface EuiCodeBlockSignature {\n Element: HTMLElement;\n Args: EuiCodeBlockArgs;\n Blocks: {\n default: [];\n };\n}\ninterface LineNumbersFinal {\n start: number;\n show: boolean;\n highlight?: string;\n}\nconst highlightTargetModifier = modifier((_e1, _pos1: unknown[], { element: targetEle1, language: language1 = 'text', lineNumbersConfig: lineNumbersConfig1 = {\n start: 1,\n show: false\n}, onChange: onChange1 }: {\n element: Element | undefined;\n language: EuiCodeSharedProps['language'];\n lineNumbersConfig: LineNumbersFinal;\n onChange: ({ data, element }: {\n data: RefractorNode[];\n element: HTMLElement;\n }) => void;\n})=>{\n let observer1: undefined | MutationObserver;\n const getHighlighedHtml1 = ()=>{\n const html1 = (targetEle1?.textContent ? targetEle1.textContent : '').trim();\n let data1: RefractorNode[];\n if (typeof html1 !== 'string') {\n data1 = [];\n } else {\n data1 = highlightByLine(html1, language1, lineNumbersConfig1);\n }\n return {\n data: data1,\n element: getHtmlContent(data1).element\n };\n };\n const setupObserver1 = ()=>{\n const newObserver1 = new MutationObserver((mutationsList1)=>{\n if (mutationsList1.length) {\n onChange1(getHighlighedHtml1());\n }\n });\n if (targetEle1) {\n onChange1(getHighlighedHtml1());\n newObserver1.observe(targetEle1, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n return newObserver1;\n };\n if (targetEle1) {\n observer1 = setupObserver1();\n }\n return ()=>{\n observer1?.disconnect();\n };\n});\nconst cleanTextHelper = helper(function([text1]: [string]) {\n return text1?.replace(/[\\r\\n?]{2}|\\n\\n/g, '\\n') || '';\n});\nconst textToCopyHelper = helper(function(_pos1, { isVirtualized: isVirtualized1, element: element1, innerText: innerText1 }: {\n isVirtualized: boolean;\n element: HTMLElement | undefined;\n innerText: string;\n}) {\n if (element1) {\n return isVirtualized1 ? element1.textContent ? element1.textContent : '' : innerText1;\n }\n return '';\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\n codeTarget?: HTMLElement;\n //<code> Element for non fullscreen\n @tracked\n code?: HTMLElement;\n //<code> Element for fullscreen modal\n @tracked\n codeFullScreen?: HTMLElement;\n @tracked\n wrapperRef?: HTMLElement;\n @tracked\n tabIndex = 1;\n @tracked\n isFullScreen = false;\n @tracked\n data?: {\n data: RefractorNode[];\n element: HTMLElement;\n };\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n get transparentBackground() {\n return this.args.transparentBackground ?? false;\n }\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n get fontSize() {\n return this.args.fontSize ?? 's';\n }\n get isCopyable() {\n return this.args.isCopyable ?? false;\n }\n get whiteSpace() {\n return this.args.whiteSpace ?? 'pre-wrap';\n }\n get isVirtualized() {\n return !!(this.args.isVirtualized && Array.isArray(this.data?.data));\n }\n get lineNumbers() {\n return this.args.lineNumbers ?? false;\n }\n get lineNumbersConfig() {\n const { lineNumbers: lineNumbers1 } = this;\n const config1 = typeof lineNumbers1 === 'object' ? lineNumbers1 : {};\n return lineNumbers1 ? {\n start: 1,\n show: true,\n ...config1\n } : {\n start: 1,\n show: false\n };\n }\n get optionalStyles() {\n const overflowHeight1 = this.args.overflowHeight;\n if (overflowHeight1) {\n const property1 = typeof overflowHeight1 === 'string' ? 'height' : 'maxHeight';\n return {\n [property1]: typeof overflowHeight1 === 'string' ? overflowHeight1 : `${overflowHeight1}px`\n };\n }\n return {};\n }\n get showCopyButton() {\n return this.isCopyable && true;\n }\n get rowHeight() {\n return fontSizeToRowHeightMap[this.fontSize];\n }\n get showFullScreenButton() {\n return !!this.args.overflowHeight;\n }\n constructor(owner1: unknown, args1: EuiCodeBlockArgs){\n super(owner1, args1);\n this.codeTarget = document.createElement('div');\n }\n @action\n toggleFullScreen() {\n this.isFullScreen = !this.isFullScreen;\n }\n @action\n closeFullScreen(e1: KeyboardEvent) {\n e1.preventDefault();\n e1.stopPropagation();\n this.isFullScreen = false;\n }\n @action\n doesOverflow() {\n if (!this.wrapperRef) return;\n const { clientWidth: clientWidth1, clientHeight: clientHeight1, scrollWidth: scrollWidth1, scrollHeight: scrollHeight1 } = this.wrapperRef;\n const doesOverflow1 = scrollHeight1 > clientHeight1 || scrollWidth1 > clientWidth1;\n this.tabIndex = doesOverflow1 ? 0 : -1;\n }\n @action\n updateCode(resp1: {\n data: RefractorNode[];\n element: HTMLElement;\n }) {\n const render1 = ()=>{\n const code1 = this.code;\n const codeFullScreen1 = this.codeFullScreen;\n if (code1 && !this.isFullScreen) {\n this.data = resp1;\n code1.innerHTML = resp1.element.innerHTML;\n }\n if (codeFullScreen1 && this.isFullScreen) {\n this.data = resp1;\n codeFullScreen1.innerHTML = resp1.element.innerHTML;\n }\n };\n scheduleOnce('afterRender', this, render1);\n }\n static{\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 `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1jb2RlLWJsb2NrLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgaGVscGVyIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC9oZWxwZXInO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCB7IHNjaGVkdWxlT25jZSB9IGZyb20gJ0BlbWJlci9ydW5sb29wJztcblxuaW1wb3J0IG9uS2V5IGZyb20gJ2VtYmVyLWtleWJvYXJkL21vZGlmaWVycy9vbi1rZXknO1xuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgc2V0IGZyb20gJ2VtYmVyLXNldC1oZWxwZXIvaGVscGVycy9zZXQnO1xuaW1wb3J0IHN0eWxlIGZyb20gJ2VtYmVyLXN0eWxlLW1vZGlmaWVyL21vZGlmaWVycy9zdHlsZSc7XG5pbXBvcnQgeyBhbmQsIGVxLCBub3Qsb3IgfSBmcm9tICdlbWJlci10cnV0aC1oZWxwZXJzJztcblxuaW1wb3J0IENvbnRyb2xzIGZyb20gJy4uL2NvbXBvbmVudHMvZXVpLWNvZGUtYmxvY2svY29udHJvbHMuZ3RzJztcbmltcG9ydCBGdWxsU2NyZWVuRGlzcGxheSBmcm9tICcuLi9jb21wb25lbnRzL2V1aS1jb2RlLWJsb2NrL2Z1bGwtc2NyZWVuLWRpc3BsYXkuZ3RzJztcbmltcG9ydCBWaXJ0dWFsaXplZENvZGVCbG9jayBmcm9tICcuLi9jb21wb25lbnRzL2V1aS1jb2RlLWJsb2NrL3ZpcnR1YWxpemVkLmd0cyc7XG5pbXBvcnQgRXVpSW5uZXJUZXh0IGZyb20gJy4uL2NvbXBvbmVudHMvZXVpLWlubmVyLXRleHQuZ3RzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtbmFtZXMudHMnO1xuaW1wb3J0IG11dGF0aW9uT2JzZXJ2ZXIgZnJvbSAnLi4vbW9kaWZpZXJzL211dGF0aW9uLW9ic2VydmVyLnRzJztcbmltcG9ydCByZXNpemVPYnNlcnZlciBmcm9tICcuLi9tb2RpZmllcnMvcmVzaXplLW9ic2VydmVyLnRzJztcbmltcG9ydCB7XG4gIGNoZWNrU3VwcG9ydGVkTGFuZ3VhZ2UsXG4gIGdldEh0bWxDb250ZW50LFxuICBoaWdobGlnaHRCeUxpbmVcbn0gZnJvbSAnLi4vdXRpbHMvY29kZS91dGlscy50cyc7XG5cbmltcG9ydCB0eXBlIHsgRXVpQ29kZVNoYXJlZFByb3BzIH0gZnJvbSAnLi4vdXRpbHMvY29kZS91dGlscy50cyc7XG5pbXBvcnQgdHlwZSB7IFJlZnJhY3Rvck5vZGUgfSBmcm9tICdyZWZyYWN0b3InO1xuXG5pbnRlcmZhY2UgTGluZU51bWJlcnNDb25maWcge1xuICBzdGFydD86IG51bWJlcjtcbiAgaGlnaGxpZ2h0Pzogc3RyaW5nO1xuICBzaG93PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUGFkZGluZ1NpemUgPSAnbm9uZScgfCAncycgfCAnbScgfCAnbCc7XG5leHBvcnQgdHlwZSBGb250U2l6ZSA9ICdzJyB8ICdtJyB8ICdsJztcblxuY29uc3QgZm9udFNpemVUb1Jvd0hlaWdodE1hcCA9IHtcbiAgczogMTgsXG4gIG06IDIxLFxuICBsOiAyNFxufTtcblxuZXhwb3J0IHR5cGUgRXVpQ29kZUJsb2NrQXJncyA9IEV1aUNvZGVTaGFyZWRQcm9wcyAmIHtcbiAgcGFkZGluZ1NpemU_OiBQYWRkaW5nU2l6ZTtcbiAgZm9udFNpemU_OiBGb250U2l6ZTtcblxuICAvKipcbiAgICogU3BlY2lmeSBob3cgYHdoaXRlLXNwYWNlYCBpbnNpZGUgdGhlIGVsZW1lbnQgaXMgaGFuZGxlZC5cbiAgICogYHByZWAgcmVzcGVjdHMgbGluZSBicmVha3Mvd2hpdGUgc3BhY2UgYnV0IGRvZXNuJ3QgZm9yY2UgdGhlbSB0byB3cmFwIHRoZSBsaW5lXG4gICAqIGBwcmUtd3JhcGAgcmVzcGVjdHMgbGluZSBicmVha3Mvd2hpdGUgc3BhY2UgYnV0IGRvZXMgZm9yY2UgdGhlbSB0byB3cmFwIHRoZSBsaW5lIHdoZW4gbmVjZXNzYXJ5LlxuICAgKi9cbiAgd2hpdGVTcGFjZT86ICdwcmUnIHwgJ3ByZS13cmFwJztcblxuICAvKipcbiAgICogRGlzcGxheXMgYW4gaWNvbiBidXR0b24gdG8gY29weSB0aGUgY29kZSBzbmlwcGV0IHRvIHRoZSBjbGlwYm9hcmQuXG4gICAqL1xuICBpc0NvcHlhYmxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzcGxheXMgbGluZSBudW1iZXJzLlxuICAgKiBPcHRpb25hbGx5IGFjY2VwdHMgYSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3Igc2V0dGluZyB0aGUgc3RhcnRpbmcgbnVtYmVyIGFuZCB2aXN1YWwgaGlnaGxpZ2h0aW5nIHJhbmdlczpcbiAgICogYHsgc3RhcnQ6IDEwMCwgaGlnaGxpZ2h0OiAnMSwgNS0xMCwgMjAtMzAsIDQwJyB9YFxuICAgKi9cbiAgbGluZU51bWJlcnM_OiBib29sZWFuIHwgTGluZU51bWJlcnNDb25maWc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1heGltdW0gY29udGFpbmVyIGhlaWdodC5cbiAgICogQWNjZXB0cyBhIHBpeGVsIHZhbHVlIChgMzAwYCkgb3IgYSBwZXJjZW50YWdlIChgJzEwMCUnYClcbiAgICogRW5zdXJlIHRoZSBjb250YWluZXIgaGFzIGNhbGN1YWJsZSBoZWlnaHQgd2hlbiB1c2luZyBhIHBlcmNlbnRhZ2VcbiAgICovXG4gIG92ZXJmbG93SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGNvZGUgYmxvY2sgbGluZXMgdmlydHVhbGx5LlxuICAgKiBVc2VmdWwgZm9yIGltcHJvdmluZyBsb2FkIHRpbWVzIG9mIGxhcmdlIGNvZGUgYmxvY2tzLlxuICAgKlxuICAgKiBXaGVuIHVzaW5nIHRoaXMgY29uZmlndXJhdGlvbiwgYG92ZXJmbG93SGVpZ2h0YCBpcyByZXF1aXJlZCBhbmRcbiAgICogYHdoaXRlU3BhY2VgIGNhbiBvbmx5IGJlIGBwcmVgLlxuICAgKi9cbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aUNvZGVCbG9ja1NpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiBFdWlDb2RlQmxvY2tBcmdzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIExpbmVOdW1iZXJzRmluYWwge1xuICBzdGFydDogbnVtYmVyO1xuICBzaG93OiBib29sZWFuO1xuICBoaWdobGlnaHQ_OiBzdHJpbmc7XG59XG5cbmNvbnN0IGhpZ2hsaWdodFRhcmdldE1vZGlmaWVyID0gbW9kaWZpZXIoXG4gIChcbiAgICBfZSxcbiAgICBfcG9zOiB1bmtub3duW10sXG4gICAge1xuICAgICAgZWxlbWVudDogdGFyZ2V0RWxlLFxuICAgICAgbGFuZ3VhZ2UgPSAndGV4dCcsXG4gICAgICBsaW5lTnVtYmVyc0NvbmZpZyA9IHsgc3RhcnQ6IDEsIHNob3c6IGZhbHNlIH0sXG4gICAgICBvbkNoYW5nZVxuICAgIH06IHtcbiAgICAgIGVsZW1lbnQ6IEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgICBsYW5ndWFnZTogRXVpQ29kZVNoYXJlZFByb3BzWydsYW5ndWFnZSddO1xuICAgICAgbGluZU51bWJlcnNDb25maWc6IExpbmVOdW1iZXJzRmluYWw7XG4gICAgICBvbkNoYW5nZTogKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZWxlbWVudFxuICAgICAgfToge1xuICAgICAgICBkYXRhOiBSZWZyYWN0b3JOb2RlW107XG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgICAgfSkgPT4gdm9pZDtcbiAgICB9XG4gICkgPT4ge1xuICAgIGxldCBvYnNlcnZlcjogdW5kZWZpbmVkIHwgTXV0YXRpb25PYnNlcnZlcjtcblxuICAgIGNvbnN0IGdldEhpZ2hsaWdoZWRIdG1sID0gKCkgPT4ge1xuICAgICAgY29uc3QgaHRtbCA9ICh0YXJnZXRFbGU_LnRleHRDb250ZW50ID8gdGFyZ2V0RWxlLnRleHRDb250ZW50IDogJycpLnRyaW0oKTtcblxuICAgICAgbGV0IGRhdGE6IFJlZnJhY3Rvck5vZGVbXTtcblxuICAgICAgaWYgKHR5cGVvZiBodG1sICE9PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhID0gaGlnaGxpZ2h0QnlMaW5lKGh0bWwsIGxhbmd1YWdlLCBsaW5lTnVtYmVyc0NvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGVsZW1lbnQ6IGdldEh0bWxDb250ZW50KGRhdGEpLmVsZW1lbnRcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IHNldHVwT2JzZXJ2ZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0KSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnNMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgIG9uQ2hhbmdlKGdldEhpZ2hsaWdoZWRIdG1sKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRhcmdldEVsZSkge1xuICAgICAgICBvbkNoYW5nZShnZXRIaWdobGlnaGVkSHRtbCgpKTtcbiAgICAgICAgbmV3T2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXRFbGUsIHtcbiAgICAgICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgICAgY2hpbGRMaXN0OiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3T2JzZXJ2ZXI7XG4gICAgfTtcblxuICAgIGlmICh0YXJnZXRFbGUpIHtcbiAgICAgIG9ic2VydmVyID0gc2V0dXBPYnNlcnZlcigpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBvYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGNsZWFuVGV4dEhlbHBlciA9IGhlbHBlcihmdW5jdGlvbiAoW3RleHRdOiBbc3RyaW5nXSkge1xuICByZXR1cm4gdGV4dD8ucmVwbGFjZSgvW1xcclxcbj9dezJ9fFxcblxcbi9nLCAnXFxuJykgfHwgJyc7XG59KTtcblxuY29uc3QgdGV4dFRvQ29weUhlbHBlciA9IGhlbHBlcihmdW5jdGlvbiAoXG4gIF9wb3MsXG4gIHtcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGVsZW1lbnQsXG4gICAgaW5uZXJUZXh0XG4gIH06IHtcbiAgICBpc1ZpcnR1YWxpemVkOiBib29sZWFuO1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGlubmVyVGV4dDogc3RyaW5nO1xuICB9XG4pIHtcbiAgaWYgKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gaXNWaXJ0dWFsaXplZFxuICAgICAgPyBlbGVtZW50LnRleHRDb250ZW50XG4gICAgICAgID8gZWxlbWVudC50ZXh0Q29udGVudFxuICAgICAgICA6ICcnXG4gICAgICA6IGlubmVyVGV4dDtcbiAgfVxuXG4gIHJldHVybiAnJztcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlDb2RlQmxvY2tDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ8RXVpQ29kZUJsb2NrU2lnbmF0dXJlPiB7XG4gIC8vZmFrZSBlbGVtZW50IHdoZXJlIHlpZWxkIHdyaXRlcyB0bywgc28gd2UgY2FuIG9ic2VydmUgYW5kIGNsb25lIGEgaGlnaGxpZ2h0ZWQgdmVyc2lvbiB0byBjb2RlIGFuZCBjb2RlRnVsbFNjZWVuXG4gIEB0cmFja2VkIGNvZGVUYXJnZXQ_OiBIVE1MRWxlbWVudDtcbiAgLy88Y29kZT4gRWxlbWVudCBmb3Igbm9uIGZ1bGxzY3JlZW5cbiAgQHRyYWNrZWQgY29kZT86IEhUTUxFbGVtZW50O1xuICAvLzxjb2RlPiBFbGVtZW50IGZvciBmdWxsc2NyZWVuIG1vZGFsXG4gIEB0cmFja2VkIGNvZGVGdWxsU2NyZWVuPzogSFRNTEVsZW1lbnQ7XG4gIEB0cmFja2VkIHdyYXBwZXJSZWY_OiBIVE1MRWxlbWVudDtcbiAgQHRyYWNrZWQgdGFiSW5kZXggPSAxO1xuICBAdHJhY2tlZCBpc0Z1bGxTY3JlZW4gPSBmYWxzZTtcbiAgQHRyYWNrZWQgZGF0YT86IHsgZGF0YTogUmVmcmFjdG9yTm9kZVtdOyBlbGVtZW50OiBIVE1MRWxlbWVudCB9O1xuXG4gIGdldCBsYW5ndWFnZSgpIHtcbiAgICByZXR1cm4gY2hlY2tTdXBwb3J0ZWRMYW5ndWFnZSh0aGlzLmFyZ3MubGFuZ3VhZ2UgfHwgJycpO1xuICB9XG5cbiAgZ2V0IHRyYW5zcGFyZW50QmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzLnRyYW5zcGFyZW50QmFja2dyb3VuZCA_PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBwYWRkaW5nU2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzLnBhZGRpbmdTaXplID8_ICdsJztcbiAgfVxuXG4gIGdldCBmb250U2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzLmZvbnRTaXplID8_ICdzJztcbiAgfVxuXG4gIGdldCBpc0NvcHlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmFyZ3MuaXNDb3B5YWJsZSA_PyBmYWxzZTtcbiAgfVxuXG4gIGdldCB3aGl0ZVNwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmFyZ3Mud2hpdGVTcGFjZSA_PyAncHJlLXdyYXAnO1xuICB9XG5cbiAgZ2V0IGlzVmlydHVhbGl6ZWQoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMuYXJncy5pc1ZpcnR1YWxpemVkICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhPy5kYXRhKSk7XG4gIH1cblxuICBnZXQgbGluZU51bWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy5saW5lTnVtYmVycyA_PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBsaW5lTnVtYmVyc0NvbmZpZygpIHtcbiAgICBjb25zdCB7IGxpbmVOdW1iZXJzIH0gPSB0aGlzO1xuICAgIGNvbnN0IGNvbmZpZyA9IHR5cGVvZiBsaW5lTnVtYmVycyA9PT0gJ29iamVjdCcgPyBsaW5lTnVtYmVycyA6IHt9O1xuXG4gICAgcmV0dXJuIGxpbmVOdW1iZXJzXG4gICAgICA_IHsgc3RhcnQ6IDEsIHNob3c6IHRydWUsIC4uLmNvbmZpZyB9XG4gICAgICA6IHsgc3RhcnQ6IDEsIHNob3c6IGZhbHNlIH07XG4gIH1cblxuICBnZXQgb3B0aW9uYWxTdHlsZXMoKSB7XG4gICAgY29uc3Qgb3ZlcmZsb3dIZWlnaHQgPSB0aGlzLmFyZ3Mub3ZlcmZsb3dIZWlnaHQ7XG5cbiAgICBpZiAob3ZlcmZsb3dIZWlnaHQpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID1cbiAgICAgICAgdHlwZW9mIG92ZXJmbG93SGVpZ2h0ID09PSAnc3RyaW5nJyA_ICdoZWlnaHQnIDogJ21heEhlaWdodCc7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtwcm9wZXJ0eV06XG4gICAgICAgICAgdHlwZW9mIG92ZXJmbG93SGVpZ2h0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBvdmVyZmxvd0hlaWdodFxuICAgICAgICAgICAgOiBgJHtvdmVyZmxvd0hlaWdodH1weGBcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgZ2V0IHNob3dDb3B5QnV0dG9uKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29weWFibGUgJiYgdHJ1ZTtcbiAgfVxuXG4gIGdldCByb3dIZWlnaHQoKSB7XG4gICAgcmV0dXJuIGZvbnRTaXplVG9Sb3dIZWlnaHRNYXBbdGhpcy5mb250U2l6ZV07XG4gIH1cblxuICBnZXQgc2hvd0Z1bGxTY3JlZW5CdXR0b24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hcmdzLm92ZXJmbG93SGVpZ2h0O1xuICB9XG5cbiAgY29uc3RydWN0b3Iob3duZXI6IHVua25vd24sIGFyZ3M6IEV1aUNvZGVCbG9ja0FyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgdGhpcy5jb2RlVGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIH1cblxuICBAYWN0aW9uXG4gIHRvZ2dsZUZ1bGxTY3JlZW4oKSB7XG4gICAgdGhpcy5pc0Z1bGxTY3JlZW4gPSAhdGhpcy5pc0Z1bGxTY3JlZW47XG4gIH1cblxuICBAYWN0aW9uXG4gIGNsb3NlRnVsbFNjcmVlbihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgZG9lc092ZXJmbG93KCkge1xuICAgIGlmICghdGhpcy53cmFwcGVyUmVmKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIHNjcm9sbFdpZHRoLCBzY3JvbGxIZWlnaHQgfSA9XG4gICAgICB0aGlzLndyYXBwZXJSZWY7XG4gICAgY29uc3QgZG9lc092ZXJmbG93ID1cbiAgICAgIHNjcm9sbEhlaWdodCA-IGNsaWVudEhlaWdodCB8fCBzY3JvbGxXaWR0aCA-IGNsaWVudFdpZHRoO1xuXG4gICAgdGhpcy50YWJJbmRleCA9IGRvZXNPdmVyZmxvdyA_IDAgOiAtMTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgdXBkYXRlQ29kZShyZXNwOiB7IGRhdGE6IFJlZnJhY3Rvck5vZGVbXTsgZWxlbWVudDogSFRNTEVsZW1lbnQgfSkge1xuICAgIGNvbnN0IHJlbmRlciA9ICgpID0-IHtcbiAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLmNvZGU7XG4gICAgICBjb25zdCBjb2RlRnVsbFNjcmVlbiA9IHRoaXMuY29kZUZ1bGxTY3JlZW47XG5cbiAgICAgIGlmIChjb2RlICYmICF0aGlzLmlzRnVsbFNjcmVlbikge1xuICAgICAgICB0aGlzLmRhdGEgPSByZXNwO1xuICAgICAgICBjb2RlLmlubmVySFRNTCA9IHJlc3AuZWxlbWVudC5pbm5lckhUTUw7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2RlRnVsbFNjcmVlbiAmJiB0aGlzLmlzRnVsbFNjcmVlbikge1xuICAgICAgICB0aGlzLmRhdGEgPSByZXNwO1xuICAgICAgICBjb2RlRnVsbFNjcmVlbi5pbm5lckhUTUwgPSByZXNwLmVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgcmVuZGVyKTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyEgRE8gTk9UIEZPUk1BVCBBVCBBTEwsIFBSRSBUQUdTIFJFU1BFQ1QgV0hJVEVTUEFDRSBMSVRFUkFMTFkgfX1cbiAgICB7eyNpZiB0aGlzLmNvZGVUYXJnZXR9fVxuICAgICAge3sjaW4tZWxlbWVudCB0aGlzLmNvZGVUYXJnZXR9fVxuICAgICAgICB7e3lpZWxkfX1cbiAgICAgIHt7L2luLWVsZW1lbnR9fVxuICAgIHt7L2lmfX1cbiAgICA8RXVpSW5uZXJUZXh0IGFzIHxzZXRJbm5lclRleHRSZWYgaW5uZXJUZXh0fD5cbiAgICAgIHt7I2xldFxuICAgICAgICAoY2xhc3NOYW1lc1xuICAgICAgICAgIFwiZXVpQ29kZUJsb2NrXCJcbiAgICAgICAgICAoaWZcbiAgICAgICAgICAgIChvciB0aGlzLnNob3dDb3B5QnV0dG9uIHRoaXMuc2hvd0Z1bGxTY3JlZW5CdXR0b24pXG4gICAgICAgICAgICBcImV1aUNvZGVCbG9jay0taGFzQ29udHJvbFwiXG4gICAgICAgICAgKVxuICAgICAgICAgIChpZlxuICAgICAgICAgICAgKGFuZCB0aGlzLnNob3dDb3B5QnV0dG9uIHRoaXMuc2hvd0Z1bGxTY3JlZW5CdXR0b24pXG4gICAgICAgICAgICBcImV1aUNvZGVCbG9jay0taGFzQm90aENvbnRyb2xzXCJcbiAgICAgICAgICApXG4gICAgICAgICAgKGlmIHRoaXMubGluZU51bWJlcnNDb25maWcuc2hvdyBcImV1aUNvZGVCbG9jay0taGFzTGluZU51bWJlcnNcIilcbiAgICAgICAgKVxuICAgICAgICAoY2xhc3NOYW1lc1xuICAgICAgICAgIFwiZXVpQ29kZUJsb2NrX19wcmVcIlxuICAgICAgICAgIChpZlxuICAgICAgICAgICAgKG9yIChlcSB0aGlzLndoaXRlU3BhY2UgXCJwcmVcIikgdGhpcy5pc1ZpcnR1YWxpemVkKVxuICAgICAgICAgICAgXCJldWlDb2RlQmxvY2tfX3ByZS0td2hpdGVTcGFjZVByZVwiXG4gICAgICAgICAgKVxuICAgICAgICAgIChpZlxuICAgICAgICAgICAgKGFuZCAoZXEgdGhpcy53aGl0ZVNwYWNlIFwicHJlLXdyYXBcIikgKG5vdCB0aGlzLmlzVmlydHVhbGl6ZWQpKVxuICAgICAgICAgICAgXCJldWlDb2RlQmxvY2tfX3ByZS0td2hpdGVTcGFjZVByZVdyYXBcIlxuICAgICAgICAgIClcbiAgICAgICAgICAoaWYgdGhpcy5pc1ZpcnR1YWxpemVkIFwiZXVpQ29kZUJsb2NrX19wcmUtLWlzVmlydHVhbGl6ZWRcIilcbiAgICAgICAgKVxuICAgICAgICBhcyB8d3JhcHBlckNsYXNzZXMgcHJlQ2xhc3Nlc3xcbiAgICAgIH19XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgIHdyYXBwZXJDbGFzc2VzXG4gICAgICAgICAgICAoaWZcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BhcmVudEJhY2tncm91bmQgXCJldWlDb2RlQmxvY2stLXRyYW5zcGFyZW50QmFja2dyb3VuZFwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb21wb25lbnROYW1lPVwiRXVpQ29kZUJsb2NrXCJcbiAgICAgICAgICAgIGZvbnRTaXplPXRoaXMuZm9udFNpemVcbiAgICAgICAgICAgIHBhZGRpbmdTaXplPXRoaXMucGFkZGluZ1NpemVcbiAgICAgICAgICB9fVxuICAgICAgICAgIHt7c3R5bGUgdGhpcy5vcHRpb25hbFN0eWxlc319XG4gICAgICAgICAge3toaWdobGlnaHRUYXJnZXRNb2RpZmllclxuICAgICAgICAgICAgZWxlbWVudD10aGlzLmNvZGVUYXJnZXRcbiAgICAgICAgICAgIGxhbmd1YWdlPXRoaXMubGFuZ3VhZ2VcbiAgICAgICAgICAgIGxpbmVOdW1iZXJzQ29uZmlnPXRoaXMubGluZU51bWJlcnNDb25maWdcbiAgICAgICAgICAgIG9uQ2hhbmdlPXRoaXMudXBkYXRlQ29kZVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7eyNpZiB0aGlzLmlzVmlydHVhbGl6ZWR9fVxuICAgICAgICAgICAge3shdmlydHVhbGl6ZWR9fVxuICAgICAgICAgICAgPFZpcnR1YWxpemVkQ29kZUJsb2NrXG4gICAgICAgICAgICAgIGNsYXNzPXt7cHJlQ2xhc3Nlc319XG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgIHt7b25LZXkgXCJFc2NhcGVcIiB0aGlzLmNsb3NlRnVsbFNjcmVlbn19XG4gICAgICAgICAgICAgIEBsYW5ndWFnZT17e3RoaXMubGFuZ3VhZ2V9fVxuICAgICAgICAgICAgICBAZGF0YT17e3RoaXMuZGF0YS5kYXRhfX1cbiAgICAgICAgICAgICAgQHJvd0hlaWdodD17e3RoaXMucm93SGVpZ2h0fX1cbiAgICAgICAgICAgIC8-XG4gICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgIHt7IXRlbXBsYXRlLWxpbnQtZGlzYWJsZX19XG4gICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgIGNsYXNzPXt7cHJlQ2xhc3Nlc319XG4gICAgICAgICAgICAgIHt7c3R5bGUgdGhpcy5vcHRpb25hbFN0eWxlc319XG4gICAgICAgICAgICAgIHRhYmluZGV4PXt7dGhpcy50YWJJbmRleH19XG4gICAgICAgICAgICAgIHt7ZGlkSW5zZXJ0IChzZXQgdGhpcyBcIndyYXBwZXJSZWZcIil9fVxuICAgICAgICAgICAgICB7e3Jlc2l6ZU9ic2VydmVyIG9uUmVzaXplPXRoaXMuZG9lc092ZXJmbG93fX1cbiAgICAgICAgICAgICAge3ttdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICAgICAgb25NdXRhdGlvbj10aGlzLmRvZXNPdmVyZmxvd1xuICAgICAgICAgICAgICAgIG9ic2VydmVyT3B0aW9ucz0oaGFzaCBzdWJ0cmVlPXRydWUgY2hpbGRMaXN0PXRydWUpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHt7ZGlkSW5zZXJ0IHNldElubmVyVGV4dFJlZn19XG4gICAgICAgICAgICA-PGNvZGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aUNvZGVCbG9ja19fY29kZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1jb2RlLWxhbmd1YWdlPXt7dGhpcy5sYW5ndWFnZX19XG4gICAgICAgICAgICAgICAge3tkaWRJbnNlcnQgKHNldCB0aGlzIFwiY29kZVwiKX19XG4gICAgICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAgICA-PC9jb2RlPjwvcHJlPlxuXG4gICAgICAgICAge3svaWZ9fVxuXG4gICAgICAgICAgPENvbnRyb2xzXG4gICAgICAgICAgICBAaXNGdWxsU2NyZWVuPXt7dGhpcy5pc0Z1bGxTY3JlZW59fVxuICAgICAgICAgICAgQHNob3dGdWxsU2NyZWVuQnV0dG9uPXt7dGhpcy5zaG93RnVsbFNjcmVlbkJ1dHRvbn19XG4gICAgICAgICAgICBAdG9nZ2xlRnVsbFNjcmVlbj17e3RoaXMudG9nZ2xlRnVsbFNjcmVlbn19XG4gICAgICAgICAgICBAc2hvd0NvcHlCdXR0b249e3t0aGlzLnNob3dDb3B5QnV0dG9ufX1cbiAgICAgICAgICAgIEB0ZXh0VG9Db3B5PXt7dGV4dFRvQ29weUhlbHBlclxuICAgICAgICAgICAgICBpc1ZpcnR1YWxpemVkPXRoaXMuaXNWaXJ0dWFsaXplZFxuICAgICAgICAgICAgICBpbm5lclRleHQ9KGNsZWFuVGV4dEhlbHBlciBpbm5lclRleHQpXG4gICAgICAgICAgICAgIGVsZW1lbnQ9dGhpcy5kYXRhLmVsZW1lbnRcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHt7I2lmIHRoaXMuaXNGdWxsU2NyZWVufX1cbiAgICAgICAgICAgIDxGdWxsU2NyZWVuRGlzcGxheSBjbGFzcz17e3dyYXBwZXJDbGFzc2VzfX0-XG4gICAgICAgICAgICAgIHt7I2lmIHRoaXMuaXNWaXJ0dWFsaXplZH19XG4gICAgICAgICAgICAgICAgPFZpcnR1YWxpemVkQ29kZUJsb2NrXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3ByZUNsYXNzZXN9fVxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHt7b25LZXkgXCJFc2NhcGVcIiB0aGlzLmNsb3NlRnVsbFNjcmVlbn19XG4gICAgICAgICAgICAgICAgICBAbGFuZ3VhZ2U9e3t0aGlzLmxhbmd1YWdlfX1cbiAgICAgICAgICAgICAgICAgIEBkYXRhPXt7dGhpcy5kYXRhLmRhdGF9fVxuICAgICAgICAgICAgICAgICAgQHJvd0hlaWdodD17e2ZvbnRTaXplVG9Sb3dIZWlnaHRNYXAubH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgICAgICA8cHJlXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3ByZUNsYXNzZXN9fVxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHt7b25LZXkgXCJFc2NhcGVcIiB0aGlzLmNsb3NlRnVsbFNjcmVlbn19XG4gICAgICAgICAgICAgICAgPjxjb2RlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpQ29kZUJsb2NrX19jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1jb2RlLWxhbmd1YWdlPXt7dGhpcy5sYW5ndWFnZX19XG4gICAgICAgICAgICAgICAgICAgIHt7ZGlkSW5zZXJ0IChzZXQgdGhpcyBcImNvZGVGdWxsU2NyZWVuXCIpfX1cbiAgICAgICAgICAgICAgICAgID48L2NvZGU-PC9wcmU-XG4gICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgPENvbnRyb2xzXG4gICAgICAgICAgICAgICAgQGlzRnVsbFNjcmVlbj17e3RoaXMuaXNGdWxsU2NyZWVufX1cbiAgICAgICAgICAgICAgICBAc2hvd0Z1bGxTY3JlZW5CdXR0b249e3t0aGlzLnNob3dGdWxsU2NyZWVuQnV0dG9ufX1cbiAgICAgICAgICAgICAgICBAc2hvd0NvcHlCdXR0b249e3t0aGlzLnNob3dDb3B5QnV0dG9ufX1cbiAgICAgICAgICAgICAgICBAdG9nZ2xlRnVsbFNjcmVlbj17e3RoaXMudG9nZ2xlRnVsbFNjcmVlbn19XG4gICAgICAgICAgICAgICAgQHRleHRUb0NvcHk9e3t0ZXh0VG9Db3B5SGVscGVyXG4gICAgICAgICAgICAgICAgICBpc1ZpcnR1YWxpemVkPXRoaXMuaXNWaXJ0dWFsaXplZFxuICAgICAgICAgICAgICAgICAgaW5uZXJUZXh0PShjbGVhblRleHRIZWxwZXIgaW5uZXJUZXh0KVxuICAgICAgICAgICAgICAgICAgZWxlbWVudD10aGlzLmRhdGEuZWxlbWVudFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8-XG4gICAgICAgICAgICA8L0Z1bGxTY3JlZW5EaXNwbGF5PlxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgPC9kaXY-XG4gICAgICB7ey9sZXR9fVxuICAgIDwvRXVpSW5uZXJUZXh0PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLE1BQU0sUUFBUSwwQkFBMEI7QUFDakQsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLFNBQVMsWUFBWSxRQUFRLGlCQUFpQjtBQUU5QyxPQUFPLFdBQVcsa0NBQWtDO0FBQ3BELFNBQVMsUUFBUSxRQUFRLGlCQUFpQjtBQUMxQyxPQUFPLFNBQVMsK0JBQStCO0FBQy9DLE9BQU8sV0FBVyx1Q0FBdUM7QUFDekQsU0FBUyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBQyxFQUFFLFFBQVEsc0JBQXNCO0FBRXRELE9BQU8sY0FBYyw0Q0FBNEM7QUFDakUsT0FBTyx1QkFBdUIsdURBQXVEO0FBQ3JGLE9BQU8sMEJBQTBCLCtDQUErQztBQUNoRixPQUFPLGtCQUFrQixtQ0FBbUM7QUFDNUQsT0FBTyxnQkFBZ0IsNEJBQTRCO0FBQ25ELE9BQU8sc0JBQXNCLG9DQUFvQztBQUNqRSxPQUFPLG9CQUFvQixrQ0FBa0M7QUFDN0QsU0FDRSxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLGVBQWUsUUFDVix5QkFBeUI7QUFFaEMsY0FBYyxrQkFBa0IsUUFBUSx5QkFBeUI7QUFDakUsY0FBYyxhQUFhLFFBQVEsWUFBWTtVQUVyQztJQUNSLFFBQVEsTUFBTTtJQUNkLFlBQVksTUFBTTtJQUNsQixPQUFPLE9BQU87O0FBR2hCLFlBQVksY0FBYyxTQUFTLE1BQU0sTUFBTTtBQUMvQyxZQUFZLFdBQVcsTUFBTSxNQUFNO0FBRW5DLE1BQU0seUJBQXlCO0lBQzdCLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztBQUNMO0FBRUEsWUFBWSxtQkFBbUI7SUFDN0IsY0FBYztJQUNk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"],"names":["fontSizeToRowHeightMap","s","m","l","highlightTargetModifier","modifier","_e1","_pos1","element","targetEle1","language","language1","lineNumbersConfig","lineNumbersConfig1","start","show","onChange","onChange1","observer1","getHighlighedHtml1","html1","textContent","trim","data1","highlightByLine","data","getHtmlContent","setupObserver1","newObserver1","MutationObserver","mutationsList1","length","observe","characterData","subtree","childList","disconnect","cleanTextHelper","helper","text1","replace","textToCopyHelper","isVirtualized","isVirtualized1","element1","innerText","innerText1","EuiCodeBlockComponent","Component","g","this","prototype","tracked","i","void 0","checkSupportedLanguage","args","transparentBackground","paddingSize","fontSize","isCopyable","whiteSpace","Array","isArray","lineNumbers","lineNumbers1","config1","optionalStyles","overflowHeight1","overflowHeight","property1","showCopyButton","rowHeight","showFullScreenButton","constructor","owner1","args1","codeTarget","document","createElement","toggleFullScreen","isFullScreen","n","action","closeFullScreen","e1","preventDefault","stopPropagation","doesOverflow","wrapperRef","clientWidth","clientWidth1","clientHeight","clientHeight1","scrollWidth","scrollWidth1","scrollHeight","scrollHeight1","doesOverflow1","tabIndex","updateCode","resp1","render1","code1","code","codeFullScreen1","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,14 +17,14 @@ 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"), undefined);
|
|
21
21
|
static {
|
|
22
22
|
g(this.prototype, "code", [tracked]);
|
|
23
23
|
}
|
|
24
|
-
#code = (i(this, "code"),
|
|
24
|
+
#code = (i(this, "code"), undefined);
|
|
25
25
|
observer = null;
|
|
26
|
-
constructor(
|
|
27
|
-
super(
|
|
26
|
+
constructor(owner, args) {
|
|
27
|
+
super(owner, args);
|
|
28
28
|
this.codeTarget = document.createElement('div');
|
|
29
29
|
this.setupObserver();
|
|
30
30
|
}
|
|
@@ -33,8 +33,8 @@ class EuiCodeComponent extends Component {
|
|
|
33
33
|
}
|
|
34
34
|
setupObserver() {
|
|
35
35
|
this.observer?.disconnect();
|
|
36
|
-
this.observer = new MutationObserver(
|
|
37
|
-
if (
|
|
36
|
+
this.observer = new MutationObserver(mutationsList => {
|
|
37
|
+
if (mutationsList.length) this.update();
|
|
38
38
|
});
|
|
39
39
|
if (this.codeTarget) {
|
|
40
40
|
this.update();
|
|
@@ -46,20 +46,20 @@ class EuiCodeComponent extends Component {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
update() {
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
let
|
|
52
|
-
if (typeof
|
|
53
|
-
|
|
49
|
+
const render = () => {
|
|
50
|
+
const html = (this.codeTarget?.textContent ? this.codeTarget.textContent : '').trim();
|
|
51
|
+
let data;
|
|
52
|
+
if (typeof html !== 'string') {
|
|
53
|
+
data = [];
|
|
54
54
|
} else {
|
|
55
|
-
|
|
55
|
+
data = highlight(html, this.language);
|
|
56
56
|
}
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
|
|
57
|
+
const code = this.code;
|
|
58
|
+
if (code) {
|
|
59
|
+
code.innerHTML = getHtmlContent(data).element.innerHTML;
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
scheduleOnce('afterRender', this,
|
|
62
|
+
scheduleOnce('afterRender', this, render);
|
|
63
63
|
}
|
|
64
64
|
static {
|
|
65
65
|
n(this.prototype, "update", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-code.js","sources":["../../src/components/eui-code.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport 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 set from 'ember-set-helper/helpers/set';\nimport { highlight } from 'refractor';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport { checkSupportedLanguage, getHtmlContent } from '../utils/code/utils.ts';\nimport type { EuiCodeSharedProps } from '../utils/code/utils.ts';\nimport type { RefractorNode } from 'refractor';\nexport type EuiCodeArgs = EuiCodeSharedProps & {\n};\nexport interface EuiCodeSignature {\n Args: EuiCodeArgs;\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\nexport default class EuiCodeComponent extends Component<EuiCodeSignature> {\n @tracked\n codeTarget: HTMLElement;\n @tracked\n code: undefined | HTMLElement;\n observer: MutationObserver | null = null;\n constructor(owner1: unknown, args1: EuiCodeArgs){\n super(owner1, args1);\n this.codeTarget = document.createElement('div');\n this.setupObserver();\n }\n get language() {\n return checkSupportedLanguage(this.args.language || '');\n }\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList1)=>{\n if (mutationsList1.length) this.update();\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 @action\n update() {\n const render1 = ()=>{\n const html1 = (this.codeTarget?.textContent ? this.codeTarget.textContent : '').trim();\n let data1: RefractorNode[];\n if (typeof html1 !== 'string') {\n data1 = [];\n } else {\n data1 = highlight(html1, this.language);\n }\n const code1 = this.code;\n if (code1) {\n code1.innerHTML = getHtmlContent(data1).element.innerHTML;\n }\n };\n scheduleOnce('afterRender', this, render1);\n }\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n static{\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 `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1jb2RlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCBkaWRVcGRhdGUgZnJvbSAnQGVtYmVyL3JlbmRlci1tb2RpZmllcnMvbW9kaWZpZXJzL2RpZC11cGRhdGUnO1xuaW1wb3J0IHsgc2NoZWR1bGVPbmNlIH0gZnJvbSAnQGVtYmVyL3J1bmxvb3AnO1xuXG5pbXBvcnQgc2V0IGZyb20gJ2VtYmVyLXNldC1oZWxwZXIvaGVscGVycy9zZXQnO1xuaW1wb3J0IHsgaGlnaGxpZ2h0IH0gZnJvbSAncmVmcmFjdG9yJztcblxuaW1wb3J0IGFyZ09yRGVmYXVsdCBmcm9tICcuLi9oZWxwZXJzL2FyZy1vci1kZWZhdWx0LnRzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtbmFtZXMudHMnO1xuaW1wb3J0IHsgY2hlY2tTdXBwb3J0ZWRMYW5ndWFnZSxnZXRIdG1sQ29udGVudCB9IGZyb20gJy4uL3V0aWxzL2NvZGUvdXRpbHMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEV1aUNvZGVTaGFyZWRQcm9wcyB9IGZyb20gJy4uL3V0aWxzL2NvZGUvdXRpbHMudHMnO1xuaW1wb3J0IHR5cGUgeyBSZWZyYWN0b3JOb2RlIH0gZnJvbSAncmVmcmFjdG9yJztcblxuZXhwb3J0IHR5cGUgRXVpQ29kZUFyZ3MgPSBFdWlDb2RlU2hhcmVkUHJvcHMgJiB7XG4gIC8vY29tbWVudHNcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXVpQ29kZVNpZ25hdHVyZSB7XG4gIEFyZ3M6IEV1aUNvZGVBcmdzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aUNvZGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ8RXVpQ29kZVNpZ25hdHVyZT4ge1xuICBAdHJhY2tlZCBjb2RlVGFyZ2V0OiBIVE1MRWxlbWVudDtcbiAgQHRyYWNrZWQgY29kZTogdW5kZWZpbmVkIHwgSFRNTEVsZW1lbnQ7XG4gIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3Iob3duZXI6IHVua25vd24sIGFyZ3M6IEV1aUNvZGVBcmdzKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIHRoaXMuY29kZVRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuc2V0dXBPYnNlcnZlcigpO1xuICB9XG5cbiAgZ2V0IGxhbmd1YWdlKCkge1xuICAgIHJldHVybiBjaGVja1N1cHBvcnRlZExhbmd1YWdlKHRoaXMuYXJncy5sYW5ndWFnZSB8fCAnJyk7XG4gIH1cblxuICBzZXR1cE9ic2VydmVyKCkge1xuICAgIHRoaXMub2JzZXJ2ZXI_LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QpID0-IHtcbiAgICAgIGlmIChtdXRhdGlvbnNMaXN0Lmxlbmd0aCkgdGhpcy51cGRhdGUoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvZGVUYXJnZXQpIHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5jb2RlVGFyZ2V0LCB7XG4gICAgICAgIGNoYXJhY3RlckRhdGE6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICB1cGRhdGUoKSB7XG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgaHRtbCA9IChcbiAgICAgICAgdGhpcy5jb2RlVGFyZ2V0Py50ZXh0Q29udGVudCA_IHRoaXMuY29kZVRhcmdldC50ZXh0Q29udGVudCA6ICcnXG4gICAgICApLnRyaW0oKTtcblxuICAgICAgbGV0IGRhdGE6IFJlZnJhY3Rvck5vZGVbXTtcblxuICAgICAgaWYgKHR5cGVvZiBodG1sICE9PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhID0gaGlnaGxpZ2h0KGh0bWwsIHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2RlID0gdGhpcy5jb2RlO1xuXG4gICAgICBpZiAoY29kZSkge1xuICAgICAgICBjb2RlLmlubmVySFRNTCA9IGdldEh0bWxDb250ZW50KGRhdGEpLmVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgcmVuZGVyKTtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxEZXN0cm95KCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2luLWVsZW1lbnQgdGhpcy5jb2RlVGFyZ2V0fX1cbiAgICAgIHt7eWllbGR9fVxuICAgIHt7L2luLWVsZW1lbnR9fVxuICAgIDxjb2RlXG4gICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgXCJldWlDb2RlXCJcbiAgICAgICAgKGlmIEB0cmFuc3BhcmVudEJhY2tncm91bmQgXCJldWlDb2RlLS10cmFuc3BhcmVudEJhY2tncm91bmRcIilcbiAgICAgIH19XG4gICAgICBkYXRhLWNvZGUtbGFuZ3VhZ2U9e3thcmdPckRlZmF1bHQgQGxhbmd1YWdlIFwidGV4dFwifX1cbiAgICAgIHt7ZGlkSW5zZXJ0IChzZXQgdGhpcyBcImNvZGVcIil9fVxuICAgICAge3tkaWRJbnNlcnQgdGhpcy51cGRhdGV9fVxuICAgICAge3tkaWRVcGRhdGUgdGhpcy51cGRh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"],"names":["EuiCodeComponent","Component","g","this","prototype","tracked","i","void 0","observer","constructor","owner1","args1","codeTarget","document","createElement","setupObserver","language","checkSupportedLanguage","args","disconnect","MutationObserver","mutationsList1","length","update","observe","characterData","subtree","childList","render1","html1","textContent","trim","data1","highlight","code1","code","innerHTML","getHtmlContent","element","scheduleOnce","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","didInsert","set","didUpdate"],"mappings":"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"}
|
|
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,SAAA;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,SAAA;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;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { concat } from '@ember/helper';
|
|
2
2
|
import { element } from 'ember-element-helper';
|
|
3
|
-
import {
|
|
3
|
+
import { notEq, and } from 'ember-truth-helpers';
|
|
4
4
|
import randomId from '../-private/random-id.js';
|
|
5
5
|
import argOrDefault from '../helpers/arg-or-default.js';
|
|
6
6
|
import classNames from '../helpers/class-names.js';
|