@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
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros';
|
|
2
1
|
import Component from '@glimmer/component';
|
|
3
|
-
import { tracked } from '@glimmer/tracking';
|
|
2
|
+
import { tracked, cached } from '@glimmer/tracking';
|
|
4
3
|
import { hash } from '@ember/helper';
|
|
5
4
|
import { on } from '@ember/modifier';
|
|
6
5
|
import { action } from '@ember/object';
|
|
@@ -18,7 +17,7 @@ import { argOrDefaultDecorator } from '../helpers/arg-or-default.js';
|
|
|
18
17
|
import classNames from '../helpers/class-names.js';
|
|
19
18
|
import ResizeObserver from '../modifiers/resize-observer.js';
|
|
20
19
|
import validatableControl from '../modifiers/validatable-control.js';
|
|
21
|
-
import MarkdownActions from '../utils/markdown/markdown-actions.js';
|
|
20
|
+
import MarkdownActions, { insertText } from '../utils/markdown/markdown-actions.js';
|
|
22
21
|
import { MODE_EDITING, MODE_VIEWING } from '../utils/markdown/markdown-modes.js';
|
|
23
22
|
import { defaultParsingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js';
|
|
24
23
|
import { defaultProcessingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/processing-plugins.js';
|
|
@@ -27,132 +26,149 @@ import './eui-markdown-format/markdown-tooltip.js';
|
|
|
27
26
|
import { tooltipPlugin } from '../utils/markdown/plugins/markdown-tooltip/plugin.js';
|
|
28
27
|
import EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.js';
|
|
29
28
|
import EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.js';
|
|
30
|
-
import EuiMarkdownEditorToolbarComponent from './eui-markdown-editor-toolbar.js';
|
|
31
|
-
import EuiMarkdownEditorToolbarComponent
|
|
29
|
+
import EuiMarkdownEditorToolbarComponent$1 from './eui-markdown-editor-toolbar.js';
|
|
30
|
+
import EuiMarkdownEditorToolbarComponent from './eui-markdown-format.js';
|
|
31
|
+
import EuiModal from './eui-modal.js';
|
|
32
32
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
33
33
|
import { setComponentTemplate } from '@ember/component';
|
|
34
34
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
const getCursorNode = (textareaRef1, parsed1) => {
|
|
36
|
+
const getCursorNode = (textareaRef, parsed) => {
|
|
38
37
|
const {
|
|
39
|
-
selectionStart
|
|
40
|
-
} =
|
|
41
|
-
let
|
|
38
|
+
selectionStart
|
|
39
|
+
} = textareaRef;
|
|
40
|
+
let node = parsed.result ?? parsed.contents;
|
|
42
41
|
//eslint-disable-next-line
|
|
43
42
|
outer: while (true) {
|
|
44
|
-
if (
|
|
45
|
-
for (let
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
if (
|
|
49
|
-
|
|
43
|
+
if (node.children) {
|
|
44
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
45
|
+
const child = node.children[i];
|
|
46
|
+
if (child && child.position.start.offset < selectionStart && selectionStart < child.position.end.offset) {
|
|
47
|
+
if (child.type === 'text') break outer; // don't dive into `text` nodes
|
|
48
|
+
node = child;
|
|
50
49
|
continue outer;
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
break;
|
|
55
54
|
}
|
|
56
|
-
return
|
|
55
|
+
return node;
|
|
57
56
|
};
|
|
58
|
-
function wrapper(
|
|
59
|
-
const
|
|
60
|
-
|
|
57
|
+
function wrapper(textarea, parsed, callback) {
|
|
58
|
+
const node = getCursorNode(textarea, parsed);
|
|
59
|
+
callback(node);
|
|
61
60
|
}
|
|
62
|
-
const getCursorNodeModifier = modifier(function
|
|
61
|
+
const getCursorNodeModifier = modifier(function getCursorNodeModifier(textarea, [parsed, onSelectedNode]) {
|
|
63
62
|
//@ts-expect-error
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);
|
|
64
|
+
textarea.addEventListener('keyup', fn);
|
|
65
|
+
textarea.addEventListener('mouseup', fn);
|
|
67
66
|
return () => {
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
textarea.removeEventListener('keyup', fn);
|
|
68
|
+
textarea.removeEventListener('mouseup', fn);
|
|
70
69
|
};
|
|
71
70
|
});
|
|
71
|
+
function isNewLine(char) {
|
|
72
|
+
if (char == null) return true;
|
|
73
|
+
return !!char.match(/[\r\n]/);
|
|
74
|
+
}
|
|
75
|
+
function padWithNewlinesIfNeeded(textarea, text) {
|
|
76
|
+
const selectionStart = textarea.selectionStart;
|
|
77
|
+
const selectionEnd = textarea.selectionEnd;
|
|
78
|
+
// block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability
|
|
79
|
+
const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);
|
|
80
|
+
const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);
|
|
81
|
+
const isNextNewLine = isNewLine(textarea.value[selectionEnd]);
|
|
82
|
+
// pad text with newlines as needed
|
|
83
|
+
text = `${isPrevNewLine ? '' : '\n'}${isPrevPrevNewLine ? '' : '\n'}${text}${isNextNewLine ? '' : '\n'}`;
|
|
84
|
+
return text;
|
|
85
|
+
}
|
|
72
86
|
class EuiMarkdownEditorComponent extends Component {
|
|
87
|
+
static {
|
|
88
|
+
g(this.prototype, "pluginEditorPlugin", [tracked]);
|
|
89
|
+
}
|
|
90
|
+
#pluginEditorPlugin = (i(this, "pluginEditorPlugin"), undefined);
|
|
73
91
|
static {
|
|
74
92
|
g(this.prototype, "parsingPluginList", [argOrDefaultDecorator(defaultParsingPlugins)]);
|
|
75
93
|
}
|
|
76
|
-
#parsingPluginList = (i(this, "parsingPluginList"),
|
|
94
|
+
#parsingPluginList = (i(this, "parsingPluginList"), undefined); // Defaults
|
|
77
95
|
static {
|
|
78
96
|
g(this.prototype, "height", [argOrDefaultDecorator(250)]);
|
|
79
97
|
}
|
|
80
|
-
#height = (i(this, "height"),
|
|
98
|
+
#height = (i(this, "height"), undefined);
|
|
81
99
|
static {
|
|
82
100
|
g(this.prototype, "maxHeight", [argOrDefaultDecorator(500)]);
|
|
83
101
|
}
|
|
84
|
-
#maxHeight = (i(this, "maxHeight"),
|
|
102
|
+
#maxHeight = (i(this, "maxHeight"), undefined);
|
|
85
103
|
static {
|
|
86
104
|
g(this.prototype, "autoExpandPreview", [argOrDefaultDecorator(true)]);
|
|
87
105
|
}
|
|
88
|
-
#autoExpandPreview = (i(this, "autoExpandPreview"),
|
|
106
|
+
#autoExpandPreview = (i(this, "autoExpandPreview"), undefined);
|
|
89
107
|
static {
|
|
90
108
|
g(this.prototype, "processingPluginList", [argOrDefaultDecorator(defaultProcessingPlugins)]);
|
|
91
109
|
}
|
|
92
|
-
#processingPluginList = (i(this, "processingPluginList"),
|
|
110
|
+
#processingPluginList = (i(this, "processingPluginList"), undefined);
|
|
93
111
|
static {
|
|
94
112
|
g(this.prototype, "selectedNode", [tracked], function () {
|
|
95
113
|
return null;
|
|
96
114
|
});
|
|
97
115
|
}
|
|
98
|
-
#selectedNode = (i(this, "selectedNode"),
|
|
116
|
+
#selectedNode = (i(this, "selectedNode"), undefined);
|
|
99
117
|
static {
|
|
100
118
|
g(this.prototype, "editorId", [tracked], function () {
|
|
101
119
|
return this.args.editorId ?? guidFor({});
|
|
102
120
|
});
|
|
103
121
|
}
|
|
104
|
-
#editorId = (i(this, "editorId"),
|
|
122
|
+
#editorId = (i(this, "editorId"), undefined);
|
|
105
123
|
static {
|
|
106
124
|
g(this.prototype, "viewMode", [tracked], function () {
|
|
107
125
|
return this.args.initialViewMode || MODE_EDITING;
|
|
108
126
|
});
|
|
109
127
|
}
|
|
110
|
-
#viewMode = (i(this, "viewMode"),
|
|
128
|
+
#viewMode = (i(this, "viewMode"), undefined);
|
|
111
129
|
static {
|
|
112
130
|
g(this.prototype, "textareaRef", [tracked], function () {
|
|
113
131
|
return null;
|
|
114
132
|
});
|
|
115
133
|
}
|
|
116
|
-
#textareaRef = (i(this, "textareaRef"),
|
|
134
|
+
#textareaRef = (i(this, "textareaRef"), undefined);
|
|
117
135
|
static {
|
|
118
136
|
g(this.prototype, "previewRef", [tracked], function () {
|
|
119
137
|
return null;
|
|
120
138
|
});
|
|
121
139
|
}
|
|
122
|
-
#previewRef = (i(this, "previewRef"),
|
|
140
|
+
#previewRef = (i(this, "previewRef"), undefined);
|
|
123
141
|
static {
|
|
124
142
|
g(this.prototype, "editorToolbarRef", [tracked], function () {
|
|
125
143
|
return null;
|
|
126
144
|
});
|
|
127
145
|
}
|
|
128
|
-
#editorToolbarRef = (i(this, "editorToolbarRef"),
|
|
146
|
+
#editorToolbarRef = (i(this, "editorToolbarRef"), undefined);
|
|
129
147
|
static {
|
|
130
148
|
g(this.prototype, "currentHeight", [tracked], function () {
|
|
131
149
|
return 250;
|
|
132
150
|
});
|
|
133
151
|
}
|
|
134
|
-
#currentHeight = (i(this, "currentHeight"),
|
|
152
|
+
#currentHeight = (i(this, "currentHeight"), undefined);
|
|
135
153
|
static {
|
|
136
154
|
g(this.prototype, "editorFooterHeight", [tracked], function () {
|
|
137
155
|
return 0;
|
|
138
156
|
});
|
|
139
157
|
}
|
|
140
|
-
#editorFooterHeight = (i(this, "editorFooterHeight"),
|
|
158
|
+
#editorFooterHeight = (i(this, "editorFooterHeight"), undefined);
|
|
141
159
|
static {
|
|
142
160
|
g(this.prototype, "editorToolbarHeight", [tracked], function () {
|
|
143
161
|
return 0;
|
|
144
162
|
});
|
|
145
163
|
}
|
|
146
|
-
#editorToolbarHeight = (i(this, "editorToolbarHeight"),
|
|
164
|
+
#editorToolbarHeight = (i(this, "editorToolbarHeight"), undefined);
|
|
147
165
|
markdownActions;
|
|
148
166
|
get toolbarPlugins() {
|
|
149
167
|
return [tooltipPlugin, ...(this.args.uiPlugins || [])];
|
|
150
168
|
}
|
|
151
|
-
constructor(
|
|
152
|
-
super(
|
|
153
|
-
this.markdownActions = new MarkdownActions(this.editorId,
|
|
154
|
-
// @ts-expect-error
|
|
155
|
-
this.toolbarPlugins);
|
|
169
|
+
constructor(owner, args) {
|
|
170
|
+
super(owner, args);
|
|
171
|
+
this.markdownActions = new MarkdownActions(this.editorId, this.toolbarPlugins);
|
|
156
172
|
this.currentHeight = this.height;
|
|
157
173
|
}
|
|
158
174
|
get previewHeight() {
|
|
@@ -172,11 +188,11 @@ class EuiMarkdownEditorComponent extends Component {
|
|
|
172
188
|
}
|
|
173
189
|
onResize() {
|
|
174
190
|
if (this.textareaRef && this.isEditing && this.height !== 'full') {
|
|
175
|
-
const
|
|
176
|
-
const
|
|
177
|
-
this.currentHeight =
|
|
191
|
+
const resizedTextareaHeight = this.textareaRef.offsetHeight + this.editorFooterHeight;
|
|
192
|
+
const update = () => {
|
|
193
|
+
this.currentHeight = resizedTextareaHeight;
|
|
178
194
|
};
|
|
179
|
-
scheduleOnce('afterRender', this,
|
|
195
|
+
scheduleOnce('afterRender', this, update);
|
|
180
196
|
}
|
|
181
197
|
}
|
|
182
198
|
static {
|
|
@@ -184,54 +200,55 @@ class EuiMarkdownEditorComponent extends Component {
|
|
|
184
200
|
}
|
|
185
201
|
updateCurrentHeight() {
|
|
186
202
|
let {
|
|
187
|
-
isPreviewing
|
|
188
|
-
autoExpandPreview
|
|
189
|
-
height
|
|
190
|
-
previewRef
|
|
191
|
-
currentHeight
|
|
203
|
+
isPreviewing,
|
|
204
|
+
autoExpandPreview,
|
|
205
|
+
height,
|
|
206
|
+
previewRef,
|
|
207
|
+
currentHeight
|
|
192
208
|
} = this;
|
|
193
|
-
if (
|
|
209
|
+
if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {
|
|
194
210
|
//@ts-ignore
|
|
195
|
-
if (
|
|
211
|
+
if (previewRef.scrollHeight > currentHeight) {
|
|
196
212
|
// scrollHeight does not include the border or margin
|
|
197
213
|
// so we ask for the computed value for those,
|
|
198
214
|
// which is always in pixels because getComputedValue
|
|
199
215
|
// returns the resolved values
|
|
200
|
-
const
|
|
201
|
-
const
|
|
202
|
-
const
|
|
216
|
+
const elementComputedStyle = window.getComputedStyle(previewRef);
|
|
217
|
+
const borderWidth = parseFloat(elementComputedStyle.borderTopWidth) + parseFloat(elementComputedStyle.borderBottomWidth);
|
|
218
|
+
const marginWidth = parseFloat(elementComputedStyle.marginTop) + parseFloat(elementComputedStyle.marginBottom);
|
|
203
219
|
// then add an extra pixel for safety and because the scrollHeight value is rounded
|
|
204
|
-
const
|
|
205
|
-
const
|
|
206
|
-
if (
|
|
207
|
-
this.currentHeight =
|
|
220
|
+
const extraHeight = borderWidth + marginWidth + 1;
|
|
221
|
+
const update = () => {
|
|
222
|
+
if (previewRef) {
|
|
223
|
+
this.currentHeight = previewRef.scrollHeight + extraHeight;
|
|
208
224
|
}
|
|
209
225
|
};
|
|
210
|
-
scheduleOnce('afterRender', this,
|
|
226
|
+
scheduleOnce('afterRender', this, update);
|
|
211
227
|
}
|
|
212
228
|
}
|
|
213
229
|
}
|
|
214
230
|
static {
|
|
215
231
|
n(this.prototype, "updateCurrentHeight", [action]);
|
|
216
232
|
}
|
|
217
|
-
|
|
218
|
-
|
|
233
|
+
getCursorNode = () => {};
|
|
234
|
+
setTextAreaRef(ref) {
|
|
235
|
+
this.textareaRef = ref;
|
|
219
236
|
}
|
|
220
237
|
static {
|
|
221
238
|
n(this.prototype, "setTextAreaRef", [action]);
|
|
222
239
|
}
|
|
223
|
-
setEditorToolbarRef(
|
|
224
|
-
this.editorToolbarRef =
|
|
225
|
-
this.editorToolbarHeight =
|
|
240
|
+
setEditorToolbarRef(ref) {
|
|
241
|
+
this.editorToolbarRef = ref;
|
|
242
|
+
this.editorToolbarHeight = ref.offsetHeight;
|
|
226
243
|
}
|
|
227
244
|
static {
|
|
228
245
|
n(this.prototype, "setEditorToolbarRef", [action]);
|
|
229
246
|
}
|
|
230
|
-
replaceNode(
|
|
231
|
-
let
|
|
232
|
-
const
|
|
233
|
-
const
|
|
234
|
-
this.args.onChange?.(`${
|
|
247
|
+
replaceNode(position, next) {
|
|
248
|
+
let value = this.args.value;
|
|
249
|
+
const leading = value.substr(0, position.start.offset);
|
|
250
|
+
const trailing = value.substr(position.end.offset);
|
|
251
|
+
this.args.onChange?.(`${leading}${next}${trailing}`);
|
|
235
252
|
}
|
|
236
253
|
static {
|
|
237
254
|
n(this.prototype, "replaceNode", [action]);
|
|
@@ -249,24 +266,24 @@ class EuiMarkdownEditorComponent extends Component {
|
|
|
249
266
|
n(this.prototype, "setViewMode", [action]);
|
|
250
267
|
}
|
|
251
268
|
get parser() {
|
|
252
|
-
const
|
|
253
|
-
return
|
|
269
|
+
const Compiler = tree => {
|
|
270
|
+
return tree;
|
|
254
271
|
};
|
|
255
|
-
function
|
|
272
|
+
function identityCompiler() {
|
|
256
273
|
//eslint-disable-next-line
|
|
257
|
-
this.Compiler =
|
|
274
|
+
this.Compiler = Compiler;
|
|
258
275
|
}
|
|
259
|
-
return unified().use(this.parsingPluginList).use(
|
|
276
|
+
return unified().use(this.parsingPluginList).use(identityCompiler);
|
|
260
277
|
}
|
|
261
278
|
static {
|
|
262
279
|
n(this.prototype, "parser", [cached]);
|
|
263
280
|
}
|
|
264
281
|
get parsed() {
|
|
265
282
|
try {
|
|
266
|
-
const
|
|
267
|
-
return [
|
|
268
|
-
} catch (
|
|
269
|
-
return [null,
|
|
283
|
+
const parsed = this.parser.processSync(this.args.value);
|
|
284
|
+
return [parsed, null];
|
|
285
|
+
} catch (e) {
|
|
286
|
+
return [null, e];
|
|
270
287
|
}
|
|
271
288
|
}
|
|
272
289
|
static {
|
|
@@ -277,45 +294,79 @@ class EuiMarkdownEditorComponent extends Component {
|
|
|
277
294
|
}
|
|
278
295
|
onParse() {
|
|
279
296
|
if (this.args.onParse) {
|
|
280
|
-
const [
|
|
281
|
-
const
|
|
282
|
-
const
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
messages
|
|
286
|
-
ast
|
|
297
|
+
const [parsed, parseError] = this.parsed;
|
|
298
|
+
const onParse = this.args.onParse;
|
|
299
|
+
const messages = parsed ? parsed.messages : [];
|
|
300
|
+
const ast = parsed ? parsed['result'] ?? parsed.contents : null;
|
|
301
|
+
onParse(parseError, {
|
|
302
|
+
messages,
|
|
303
|
+
ast
|
|
287
304
|
});
|
|
288
305
|
}
|
|
289
306
|
}
|
|
290
307
|
static {
|
|
291
308
|
n(this.prototype, "onParse", [action]);
|
|
292
309
|
}
|
|
293
|
-
setSelectedNode(
|
|
294
|
-
this.selectedNode =
|
|
310
|
+
setSelectedNode(node) {
|
|
311
|
+
this.selectedNode = node;
|
|
295
312
|
}
|
|
296
313
|
static {
|
|
297
314
|
n(this.prototype, "setSelectedNode", [action]);
|
|
298
315
|
}
|
|
316
|
+
openPluginEditor = plugin => {
|
|
317
|
+
this.pluginEditorPlugin = plugin;
|
|
318
|
+
};
|
|
319
|
+
onEditorPluginSave = (markdown, config) => {
|
|
320
|
+
let {
|
|
321
|
+
selectedNode,
|
|
322
|
+
textareaRef
|
|
323
|
+
} = this;
|
|
324
|
+
if (this.pluginEditorPlugin && selectedNode &&
|
|
325
|
+
// @ts-expect-error
|
|
326
|
+
selectedNode.type === this.pluginEditorPlugin.name &&
|
|
327
|
+
// @ts-expect-error
|
|
328
|
+
selectedNode.position) {
|
|
329
|
+
// modifying an existing node
|
|
330
|
+
textareaRef.setSelectionRange(
|
|
331
|
+
// @ts-expect-error
|
|
332
|
+
selectedNode.position.start.offset,
|
|
333
|
+
// @ts-expect-error
|
|
334
|
+
selectedNode.position.end.offset);
|
|
335
|
+
} else {
|
|
336
|
+
// creating a new node
|
|
337
|
+
if (config.block) {
|
|
338
|
+
// inject newlines if needed
|
|
339
|
+
markdown = padWithNewlinesIfNeeded(textareaRef, markdown);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
insertText(textareaRef, {
|
|
343
|
+
text: markdown,
|
|
344
|
+
selectionStart: undefined,
|
|
345
|
+
selectionEnd: undefined
|
|
346
|
+
});
|
|
347
|
+
this.pluginEditorPlugin = undefined;
|
|
348
|
+
};
|
|
299
349
|
static {
|
|
300
|
-
setComponentTemplate(precompileTemplate("\n <div class={{classNames \"euiMarkdownEditor\" (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\") (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")}} {{didUpdate this.updateCurrentHeight this.currentHeight this.isPreviewing this.height this.autoExpandPreview}}>\n <EuiMarkdownEditorToolbar @selectedNode={{this.selectedNode}} @markdownActions={{this.markdownActions}} @onClickPreview={{this.setViewMode}} @viewMode={{this.viewMode}} @uiPlugins={{this.toolbarPlugins}} {{didInsert this.setEditorToolbarRef}} />\n {{#if this.isPreviewing}}\n <div class=\"euiMarkdownEditorPreview\" {{didInsert (set this \"previewRef\")}} {{style (hash height=this.previewHeight)}}>\n <EuiMarkdownFormat @parsingPluginList={{this.parsingPluginList}} @processingPluginList={{this.processingPluginList}} @value={{@value}} @replaceNode={{this.replaceNode}} />\n </div>\n {{/if}}\n\n <div class=\"euiMarkdownEditor__toggleContainer\" {{style height=this.editorToggleContainerHeight}}>\n <EuiMarkdownEditorDropZone @uiPlugins={{this.toolbarPlugins}} {{resizeObserver onResize=this.onResize}}>\n <EuiMarkdownEditorTextArea {{getCursorNodeModifier this.vFile this.setSelectedNode}} {{didUpdate this.onParse this.parsed}} {{didInsert this.setTextAreaRef}} disabled={{@disabled}} id={{this.editorId}} @height={{this.textAreaHeight}} @maxHeight={{this.textAreaMaxHeight}} value={{@value}} aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-describedby={{@ariaDescribedBy}} {{on \"input\" (pick \"target.value\" @onChange)}} {{validatableControl @isInvalid}} ...attributes />\n </EuiMarkdownEditorDropZone>\n </div>\n </div>\n ", {
|
|
350
|
+
setComponentTemplate(precompileTemplate("\n <div class={{classNames \"euiMarkdownEditor\" (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\") (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")}} {{didUpdate this.updateCurrentHeight this.currentHeight this.isPreviewing this.height this.autoExpandPreview}}>\n <EuiMarkdownEditorToolbar @selectedNode={{this.selectedNode}} @markdownActions={{this.markdownActions}} @onClickPreview={{this.setViewMode}} @openPluginEditor={{this.openPluginEditor}} @viewMode={{this.viewMode}} @uiPlugins={{this.toolbarPlugins}} {{didInsert this.setEditorToolbarRef}} />\n {{#if this.isPreviewing}}\n <div class=\"euiMarkdownEditorPreview\" {{didInsert (set this \"previewRef\")}} {{style (hash height=this.previewHeight)}}>\n <EuiMarkdownFormat @parsingPluginList={{this.parsingPluginList}} @processingPluginList={{this.processingPluginList}} @value={{@value}} @replaceNode={{this.replaceNode}} />\n </div>\n {{/if}}\n\n <div class=\"euiMarkdownEditor__toggleContainer\" {{style height=this.editorToggleContainerHeight}}>\n <EuiMarkdownEditorDropZone @uiPlugins={{this.toolbarPlugins}} {{resizeObserver onResize=this.onResize}}>\n <EuiMarkdownEditorTextArea {{getCursorNodeModifier this.vFile this.setSelectedNode}} {{didUpdate this.onParse this.parsed}} {{didInsert this.setTextAreaRef}} disabled={{@disabled}} id={{this.editorId}} @height={{this.textAreaHeight}} @maxHeight={{this.textAreaMaxHeight}} value={{@value}} aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-describedby={{@ariaDescribedBy}} {{on \"input\" (pick \"target.value\" @onChange)}} {{validatableControl @isInvalid}} ...attributes />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor @node={{this.selectedNode}} @onCancel={{set this \"pluginEditorPlugin\" undefined}} @onSave={{this.onEditorPluginSave}} />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n ", {
|
|
301
351
|
strictMode: true,
|
|
302
352
|
scope: () => ({
|
|
303
353
|
classNames,
|
|
304
354
|
eq,
|
|
305
355
|
didUpdate,
|
|
306
|
-
EuiMarkdownEditorToolbar: EuiMarkdownEditorToolbarComponent,
|
|
356
|
+
EuiMarkdownEditorToolbar: EuiMarkdownEditorToolbarComponent$1,
|
|
307
357
|
didInsert,
|
|
308
358
|
set,
|
|
309
359
|
style,
|
|
310
360
|
hash,
|
|
311
|
-
EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent
|
|
361
|
+
EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent,
|
|
312
362
|
EuiMarkdownEditorDropZone,
|
|
313
363
|
resizeObserver: ResizeObserver,
|
|
314
364
|
EuiMarkdownEditorTextArea,
|
|
315
365
|
getCursorNodeModifier,
|
|
316
366
|
on,
|
|
317
367
|
pick,
|
|
318
|
-
validatableControl
|
|
368
|
+
validatableControl,
|
|
369
|
+
EuiModal
|
|
319
370
|
})
|
|
320
371
|
}), this);
|
|
321
372
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport pick from 'ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq, not } from 'ember-truth-helpers';\nimport unified from 'unified';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions from '../utils/markdown/markdown-actions.ts';\nimport { MODE_EDITING, MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport { defaultParsingPlugins, defaultProcessingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport type { EuiMarkdownAstNode, EuiMarkdownAstNodePosition, EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { Processor } from 'unified';\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (parseError: unknown | null, parsed: {\n messages: any[];\n ast: any;\n }) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\nexport const getCursorNode = (textareaRef1: HTMLInputElement, parsed1: any): EuiMarkdownAstNode =>{\n const { selectionStart: selectionStart1 } = textareaRef1;\n let node1: EuiMarkdownAstNode = parsed1.result ?? parsed1.contents;\n //eslint-disable-next-line\n outer: while(true){\n if (node1.children) {\n for(let i1 = 0; i1 < node1.children.length; i1++){\n const child1 = node1.children[i1];\n if (child1 && child1.position.start.offset < (selectionStart1 as number) && (selectionStart1 as number) < child1.position.end.offset) {\n if (child1.type === 'text') break outer; // don't dive into `text` nodes\n node1 = child1;\n continue outer;\n }\n }\n }\n break;\n }\n return node1;\n};\nfunction wrapper(textarea1: HTMLInputElement, parsed1: any, callback1: (node: EuiMarkdownAstNode) => void) {\n const node1 = getCursorNode(textarea1, parsed1);\n callback1(node1);\n}\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier1(textarea1: EuiMarkdownEditorTextAreaSignature['Element'], [parsed1, onSelectedNode1]: [any, (node: Node) => void]) {\n //@ts-expect-error\n const fn1 = wrapper.bind(null, textarea1, parsed1, onSelectedNode1);\n textarea1.addEventListener('keyup', fn1);\n textarea1.addEventListener('mouseup', fn1);\n return ()=>{\n textarea1.removeEventListener('keyup', fn1);\n textarea1.removeEventListener('mouseup', fn1);\n };\n});\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n parsingPluginList: typeof defaultParsingPlugins;\n @argOrDefaultDecorator(250)\n height: number | string;\n @argOrDefaultDecorator(500)\n maxHeight: number | string;\n @argOrDefaultDecorator(true)\n autoExpandPreview: boolean;\n @argOrDefaultDecorator(defaultProcessingPlugins)\n processingPluginList: typeof defaultProcessingPlugins;\n @tracked\n selectedNode: Node | null = null;\n @tracked\n editorId = this.args.editorId ?? guidFor({});\n @tracked\n viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked\n textareaRef: HTMLTextAreaElement | null = null;\n @tracked\n previewRef: HTMLDivElement | null = null;\n @tracked\n editorToolbarRef: HTMLDivElement | null = null;\n @tracked\n currentHeight: number | string = 250;\n @tracked\n editorFooterHeight: number = 0;\n @tracked\n editorToolbarHeight: number = 0;\n markdownActions: MarkdownActions;\n get toolbarPlugins() {\n return [\n MarkdownTooltipPlugin.plugin,\n ...(this.args.uiPlugins || [])\n ];\n }\n constructor(owner1: unknown, args1: EuiMarkdownEditorArgs){\n super(owner1, args1);\n this.markdownActions = new MarkdownActions(this.editorId, // @ts-expect-error\n this.toolbarPlugins);\n this.currentHeight = this.height;\n }\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n return `${this.currentHeight}px`;\n }\n get textAreaHeight() {\n return this.height === 'full' ? '100%' : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n get textAreaMaxHeight() {\n return this.height !== 'full' ? `${(this.maxHeight as number) - this.editorFooterHeight}px` : '';\n }\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight1 = this.textareaRef.offsetHeight + this.editorFooterHeight;\n const update1 = ()=>{\n this.currentHeight = resizedTextareaHeight1;\n };\n scheduleOnce('afterRender', this, update1);\n }\n }\n @action\n updateCurrentHeight() {\n let { isPreviewing: isPreviewing1, autoExpandPreview: autoExpandPreview1, height: height1, previewRef: previewRef1, currentHeight: currentHeight1 } = this;\n if (isPreviewing1 && autoExpandPreview1 && height1 !== 'full' && previewRef1) {\n //@ts-ignore\n if (previewRef1.scrollHeight > currentHeight1) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle1 = window.getComputedStyle(previewRef1);\n const borderWidth1 = parseFloat(elementComputedStyle1.borderTopWidth) + parseFloat(elementComputedStyle1.borderBottomWidth);\n const marginWidth1 = parseFloat(elementComputedStyle1.marginTop) + parseFloat(elementComputedStyle1.marginBottom);\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight1 = borderWidth1 + marginWidth1 + 1;\n const update1 = ()=>{\n if (previewRef1) {\n this.currentHeight = previewRef1.scrollHeight + extraHeight1;\n }\n };\n scheduleOnce('afterRender', this, update1);\n }\n }\n }\n @action\n setTextAreaRef(ref1: HTMLTextAreaElement) {\n this.textareaRef = ref1;\n }\n @action\n setEditorToolbarRef(ref1: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref1;\n this.editorToolbarHeight = ref1.offsetHeight;\n }\n @action\n replaceNode(position1: EuiMarkdownAstNodePosition, next1: string) {\n let value1 = this.args.value;\n const leading1 = value1.substr(0, position1.start.offset);\n const trailing1 = value1.substr(position1.end.offset);\n this.args.onChange?.(`${leading1}${next1}${trailing1}`);\n }\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n @cached\n get parser() {\n const Compiler1 = (tree1: any)=>{\n return tree1;\n };\n function identityCompiler1(this1: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler1;\n }\n return unified().use(this.parsingPluginList).use(identityCompiler1);\n }\n @cached\n get parsed(): [ReturnType<typeof this.parser.processSync> | null, null | unknown] {\n try {\n const parsed1 = this.parser.processSync(this.args.value);\n return [\n parsed1,\n null\n ];\n } catch (e1) {\n return [\n null,\n e1\n ];\n }\n }\n get vFile() {\n return this.parsed[0];\n }\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed1, parseError1] = this.parsed;\n const onParse1 = this.args.onParse;\n const messages1 = parsed1 ? parsed1.messages : [];\n const ast1 = parsed1 ? parsed1['result'] ?? parsed1.contents : null;\n onParse1(parseError1, {\n messages: messages1,\n ast: ast1\n });\n }\n }\n @action\n setSelectedNode(node1: Node) {\n this.selectedNode = node1;\n }\n static{\n template(`\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n </div>\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1tYXJrZG93bi1lZGl0b3IuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGNhY2hlZCwgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG9uIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcbmltcG9ydCB7IGFjdGlvbiB9IGZyb20gJ0BlbWJlci9vYmplY3QnO1xuaW1wb3J0IHsgZ3VpZEZvciB9IGZyb20gJ0BlbWJlci9vYmplY3QvaW50ZXJuYWxzJztcbmltcG9ydCBkaWRJbnNlcnQgZnJvbSAnQGVtYmVyL3JlbmRlci1tb2RpZmllcnMvbW9kaWZpZXJzL2RpZC1pbnNlcnQnO1xuaW1wb3J0IGRpZFVwZGF0ZSBmcm9tICdAZW1iZXIvcmVuZGVyLW1vZGlmaWVycy9tb2RpZmllcnMvZGlkLXVwZGF0ZSc7XG5pbXBvcnQgeyBzY2hlZHVsZU9uY2UgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCBwaWNrIGZyb20gJ2VtYmVyLWNvbXBvc2FibGUtaGVscGVycy9oZWxwZXJzL3BpY2snO1xuaW1wb3J0IHsgbW9kaWZpZXIgfSBmcm9tICdlbWJlci1tb2RpZmllcic7XG5pbXBvcnQgc2V0IGZyb20gJ2VtYmVyLXNldC1oZWxwZXIvaGVscGVycy9zZXQnO1xuaW1wb3J0IHN0eWxlIGZyb20gJ2VtYmVyLXN0eWxlLW1vZGlmaWVyL21vZGlmaWVycy9zdHlsZSc7XG5pbXBvcnQgeyBlcSwgbm90IH0gZnJvbSAnZW1iZXItdHJ1dGgtaGVscGVycyc7XG5pbXBvcnQgdW5pZmllZCBmcm9tICd1bmlmaWVkJztcblxuaW1wb3J0IHsgYXJnT3JEZWZhdWx0RGVjb3JhdG9yIH0gZnJvbSAnLi4vaGVscGVycy9hcmctb3ItZGVmYXVsdC50cyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLW5hbWVzLnRzJztcbmltcG9ydCByZXNpemVPYnNlcnZlciBmcm9tICcuLi9tb2RpZmllcnMvcmVzaXplLW9ic2VydmVyLnRzJztcbmltcG9ydCB2YWxpZGF0YWJsZUNvbnRyb2wgZnJvbSAnLi4vbW9kaWZpZXJzL3ZhbGlkYXRhYmxlLWNvbnRyb2wudHMnO1xuaW1wb3J0IE1hcmtkb3duQWN0aW9ucyBmcm9tICcuLi91dGlscy9tYXJrZG93bi9tYXJrZG93bi1hY3Rpb25zLnRzJztcbmltcG9ydCB7IE1PREVfRURJVElORywgTU9ERV9WSUVXSU5HIH0gZnJvbSAnLi4vdXRpbHMvbWFya2Rvd24vbWFya2Rvd24tbW9kZXMudHMnO1xuaW1wb3J0IHtcbiAgZGVmYXVsdFBhcnNpbmdQbHVnaW5zLFxuICBkZWZhdWx0UHJvY2Vzc2luZ1BsdWdpbnNcbn0gZnJvbSAnLi4vdXRpbHMvbWFya2Rvd24vcGx1Z2lucy9tYXJrZG93bi1kZWZhdWx0LXBsdWdpbnMvaW5kZXgudHMnO1xuaW1wb3J0ICogYXMgTWFya2Rvd25Ub29sdGlwUGx1Z2luIGZyb20gJy4uL3V0aWxzL21hcmtkb3duL3BsdWdpbnMvbWFya2Rvd24tdG9vbHRpcC9pbmRleC50cyc7XG5pbXBvcnQgRXVpTWFya2Rvd25FZGl0b3JEcm9wWm9uZSBmcm9tICcuL2V1aS1tYXJrZG93bi1lZGl0b3ItZHJvcC16b25lLmd0cyc7XG5pbXBvcnQgRXVpTWFya2Rvd25FZGl0b3JUZXh0QXJlYSBmcm9tICcuL2V1aS1tYXJrZG93bi1lZGl0b3ItdGV4dC1hcmVhLmd0cyc7XG5pbXBvcnQgRXVpTWFya2Rvd25FZGl0b3JUb29sYmFyIGZyb20gJy4vZXVpLW1hcmtkb3duLWVkaXRvci10b29sYmFyLmd0cyc7XG5pbXBvcnQgRXVpTWFya2Rvd25Gb3JtYXQgZnJvbSAnLi9ldWktbWFya2Rvd24tZm9ybWF0Lmd0cyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRXVpTWFya2Rvd25Bc3ROb2RlLFxuICBFdWlNYXJrZG93bkFzdE5vZGVQb3NpdGlvbixcbiAgRXVpTWFya2Rvd25FZGl0b3JVaVBsdWdpblxufSBmcm9tICcuLi91dGlscy9tYXJrZG93bi9tYXJrZG93bi10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEV1aU1hcmtkb3duRWRpdG9yVGV4dEFyZWFTaWduYXR1cmUgfSBmcm9tICcuL2V1aS1tYXJrZG93bi1lZGl0b3ItdGV4dC1hcmVhJztcbmltcG9ydCB0eXBlIHsgRXVpTWFya2Rvd25FZGl0b3JUb29sYmFyU2lnbmF0dXJlIH0gZnJvbSAnLi9ldWktbWFya2Rvd24tZWRpdG9yLXRvb2xiYXInO1xuaW1wb3J0IHR5cGUgeyBQcm9jZXNzb3IgfSBmcm9tICd1bmlmaWVkJztcblxuZXhwb3J0IGludGVyZmFjZSBFdWlNYXJrZG93bkVkaXRvckFyZ3Mge1xuICBpbml0aWFsVmlld01vZGU_OiBzdHJpbmc7XG4gIGVkaXRvcklkPzogc3RyaW5nO1xuICB1aVBsdWdpbnM6IEV1aU1hcmtkb3duRWRpdG9yVWlQbHVnaW5bXTtcbiAgcGFyc2luZ1BsdWdpbkxpc3Q_OiB0eXBlb2YgZGVmYXVsdFBhcnNpbmdQbHVnaW5zO1xuICBwcm9jZXNzaW5nUGx1Z2luTGlzdD86IHR5cGVvZiBkZWZhdWx0UHJvY2Vzc2luZ1BsdWdpbnM7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAoc3RyOiBzdHJpbmcpID0-IHZvaWQ7XG4gIG9uUGFyc2U_OiAoXG4gICAgcGFyc2VFcnJvcjogdW5rbm93biB8IG51bGwsXG4gICAgcGFyc2VkOiB7IG1lc3NhZ2VzOiBhbnlbXTsgYXN0OiBhbnkgfVxuICApID0-IHZvaWQ7XG4gIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuICBhdXRvRXhwYW5kUHJldmlldz86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNJbnZhbGlkPzogYm9vbGVhbjtcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcbiAgYXJpYURlc2NyaWJlZEJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV1aU1hcmtkb3duRWRpdG9yU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogRXVpTWFya2Rvd25FZGl0b3JUZXh0QXJlYVNpZ25hdHVyZVsnRWxlbWVudCddO1xuICBBcmdzOiBFdWlNYXJrZG93bkVkaXRvckFyZ3M7XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q3Vyc29yTm9kZSA9IChcbiAgdGV4dGFyZWFSZWY6IEhUTUxJbnB1dEVsZW1lbnQsXG4gIHBhcnNlZDogYW55XG4pOiBFdWlNYXJrZG93bkFzdE5vZGUgPT4ge1xuICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0IH0gPSB0ZXh0YXJlYVJlZjtcblxuICBsZXQgbm9kZTogRXVpTWFya2Rvd25Bc3ROb2RlID0gcGFyc2VkLnJlc3VsdCA_PyBwYXJzZWQuY29udGVudHM7XG5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgb3V0ZXI6IHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoaWxkICYmXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24uc3RhcnQub2Zmc2V0IDwgKHNlbGVjdGlvblN0YXJ0IGFzIG51bWJlcikgJiZcbiAgICAgICAgICAoc2VsZWN0aW9uU3RhcnQgYXMgbnVtYmVyKSA8IGNoaWxkLnBvc2l0aW9uLmVuZC5vZmZzZXRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICd0ZXh0JykgYnJlYWsgb3V0ZXI7IC8vIGRvbid0IGRpdmUgaW50byBgdGV4dGAgbm9kZXNcbiAgICAgICAgICBub2RlID0gY2hpbGQ7XG4gICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufTtcblxuZnVuY3Rpb24gd3JhcHBlcihcbiAgdGV4dGFyZWE6IEhUTUxJbnB1dEVsZW1lbnQsXG4gIHBhcnNlZDogYW55LFxuICBjYWxsYmFjazogKG5vZGU6IEV1aU1hcmtkb3duQXN0Tm9kZSkgPT4gdm9pZFxuKSB7XG4gIGNvbnN0IG5vZGUgPSBnZXRDdXJzb3JOb2RlKHRleHRhcmVhLCBwYXJzZWQpO1xuXG4gIGNhbGxiYWNrKG5vZGUpO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q3Vyc29yTm9kZU1vZGlmaWVyID0gbW9kaWZpZXIoZnVuY3Rpb24gZ2V0Q3Vyc29yTm9kZU1vZGlmaWVyKFxuICB0ZXh0YXJlYTogRXVpTWFya2Rvd25FZGl0b3JUZXh0QXJlYVNpZ25hdHVyZVsnRWxlbWVudCddLFxuICBbcGFyc2VkLCBvblNlbGVjdGVkTm9kZV06IFthbnksIChub2RlOiBOb2RlKSA9PiB2b2lkXVxuKSB7XG4gIC8vQHRzLWV4cGVjdC1lcnJvclxuICBjb25zdCBmbiA9IHdyYXBwZXIuYmluZChudWxsLCB0ZXh0YXJlYSwgcGFyc2VkLCBvblNlbGVjdGVkTm9kZSk7XG5cbiAgdGV4dGFyZWEuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBmbik7XG4gIHRleHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmbik7XG5cbiAgcmV0dXJuICgpID0-IHtcbiAgICB0ZXh0YXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIGZuKTtcbiAgICB0ZXh0YXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZm4pO1xuICB9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aU1hcmtkb3duRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PEV1aU1hcmtkb3duRWRpdG9yU2lnbmF0dXJlPiB7XG4gIC8vIERlZmF1bHRzXG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoZGVmYXVsdFBhcnNpbmdQbHVnaW5zKSBkZWNsYXJlIHBhcnNpbmdQbHVnaW5MaXN0OiB0eXBlb2YgZGVmYXVsdFBhcnNpbmdQbHVnaW5zO1xuXG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoMjUwKSBkZWNsYXJlIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKDUwMCkgZGVjbGFyZSBtYXhIZWlnaHQ6IG51bWJlciB8IHN0cmluZztcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcih0cnVlKSBkZWNsYXJlIGF1dG9FeHBhbmRQcmV2aWV3OiBib29sZWFuO1xuXG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoZGVmYXVsdFByb2Nlc3NpbmdQbHVnaW5zKSBkZWNsYXJlIHByb2Nlc3NpbmdQbHVnaW5MaXN0OiB0eXBlb2YgZGVmYXVsdFByb2Nlc3NpbmdQbHVnaW5zO1xuXG4gIEB0cmFja2VkIHNlbGVjdGVkTm9kZTogTm9kZSB8IG51bGwgPSBudWxsO1xuICBAdHJhY2tlZCBlZGl0b3JJZCA9IHRoaXMuYXJncy5lZGl0b3JJZCA_PyBndWlkRm9yKHt9KTtcbiAgQHRyYWNrZWQgdmlld01vZGUgPSB0aGlzLmFyZ3MuaW5pdGlhbFZpZXdNb2RlIHx8IE1PREVfRURJVElORztcbiAgQHRyYWNrZWQgdGV4dGFyZWFSZWY6IEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgcHJldmlld1JlZjogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgZWRpdG9yVG9vbGJhclJlZjogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgY3VycmVudEhlaWdodDogbnVtYmVyIHwgc3RyaW5nID0gMjUwO1xuICBAdHJhY2tlZCBlZGl0b3JGb290ZXJIZWlnaHQ6IG51bWJlciA9IDA7XG4gIEB0cmFja2VkIGVkaXRvclRvb2xiYXJIZWlnaHQ6IG51bWJlciA9IDA7XG5cbiAgbWFya2Rvd25BY3Rpb25zOiBNYXJrZG93bkFjdGlvbnM7XG5cbiAgZ2V0IHRvb2xiYXJQbHVnaW5zKCkge1xuICAgIHJldHVybiBbTWFya2Rvd25Ub29sdGlwUGx1Z2luLnBsdWdpbiwgLi4uKHRoaXMuYXJncy51aVBsdWdpbnMgfHwgW10pXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBFdWlNYXJrZG93bkVkaXRvckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgdGhpcy5tYXJrZG93bkFjdGlvbnMgPSBuZXcgTWFya2Rvd25BY3Rpb25zKFxuICAgICAgdGhpcy5lZGl0b3JJZCxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMudG9vbGJhclBsdWdpbnNcbiAgICApO1xuICAgIHRoaXMuY3VycmVudEhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICB9XG5cbiAgZ2V0IHByZXZpZXdIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0ID09PSAnZnVsbCcpIHtcbiAgICAgIHJldHVybiBgY2FsYygxMDAlIC0gJHt0aGlzLmVkaXRvckZvb3RlckhlaWdodH1weClgO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLmN1cnJlbnRIZWlnaHR9cHhgO1xuICB9XG5cbiAgZ2V0IHRleHRBcmVhSGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmhlaWdodCA9PT0gJ2Z1bGwnXG4gICAgICA_ICcxMDAlJ1xuICAgICAgOiBgY2FsYygkeyh0aGlzLmhlaWdodCBhcyBudW1iZXIpIC0gdGhpcy5lZGl0b3JGb290ZXJIZWlnaHR9cHgpYDtcbiAgfVxuXG4gIGdldCB0ZXh0QXJlYU1heEhlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWlnaHQgIT09ICdmdWxsJ1xuICAgICAgPyBgJHsodGhpcy5tYXhIZWlnaHQgYXMgbnVtYmVyKSAtIHRoaXMuZWRpdG9yRm9vdGVySGVpZ2h0fXB4YFxuICAgICAgOiAnJztcbiAgfVxuXG4gIGdldCBlZGl0b3JUb2dnbGVDb250YWluZXJIZWlnaHQoKSB7XG4gICAgcmV0dXJuIGBjYWxjKDEwMCUgLSAke3RoaXMuZWRpdG9yVG9vbGJhckhlaWdodH1weClgO1xuICB9XG5cbiAgQGFjdGlvblxuICBvblJlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy50ZXh0YXJlYVJlZiAmJiB0aGlzLmlzRWRpdGluZyAmJiB0aGlzLmhlaWdodCAhPT0gJ2Z1bGwnKSB7XG4gICAgICBjb25zdCByZXNpemVkVGV4dGFyZWFIZWlnaHQgPVxuICAgICAgICB0aGlzLnRleHRhcmVhUmVmLm9mZnNldEhlaWdodCArIHRoaXMuZWRpdG9yRm9vdGVySGVpZ2h0O1xuXG4gICAgICBjb25zdCB1cGRhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudEhlaWdodCA9IHJlc2l6ZWRUZXh0YXJlYUhlaWdodDtcbiAgICAgIH07XG5cbiAgICAgIHNjaGVkdWxlT25jZSgnYWZ0ZXJSZW5kZXInLCB0aGlzLCB1cGRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgdXBkYXRlQ3VycmVudEhlaWdodCgpIHtcbiAgICBsZXQgeyBpc1ByZXZpZXdpbmcsIGF1dG9FeHBhbmRQcmV2aWV3LCBoZWlnaHQsIHByZXZpZXdSZWYsIGN1cnJlbnRIZWlnaHQgfSA9XG4gICAgICB0aGlzO1xuXG4gICAgaWYgKGlzUHJldmlld2luZyAmJiBhdXRvRXhwYW5kUHJldmlldyAmJiBoZWlnaHQgIT09ICdmdWxsJyAmJiBwcmV2aWV3UmVmKSB7XG4gICAgICAvL0B0cy1pZ25vcmVcbiAgICAgIGlmIChwcmV2aWV3UmVmLnNjcm9sbEhlaWdodCA-IGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgICAgLy8gc2Nyb2xsSGVpZ2h0IGRvZXMgbm90IGluY2x1ZGUgdGhlIGJvcmRlciBvciBtYXJnaW5cbiAgICAgICAgLy8gc28gd2UgYXNrIGZvciB0aGUgY29tcHV0ZWQgdmFsdWUgZm9yIHRob3NlLFxuICAgICAgICAvLyB3aGljaCBpcyBhbHdheXMgaW4gcGl4ZWxzIGJlY2F1c2UgZ2V0Q29tcHV0ZWRWYWx1ZVxuICAgICAgICAvLyByZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZXNcbiAgICAgICAgY29uc3QgZWxlbWVudENvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwcmV2aWV3UmVmKTtcbiAgICAgICAgY29uc3QgYm9yZGVyV2lkdGggPVxuICAgICAgICAgIHBhcnNlRmxvYXQoZWxlbWVudENvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgpICtcbiAgICAgICAgICBwYXJzZUZsb2F0KGVsZW1lbnRDb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKTtcbiAgICAgICAgY29uc3QgbWFyZ2luV2lkdGggPVxuICAgICAgICAgIHBhcnNlRmxvYXQoZWxlbWVudENvbXB1dGVkU3R5bGUubWFyZ2luVG9wKSArXG4gICAgICAgICAgcGFyc2VGbG9hdChlbGVtZW50Q29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20pO1xuXG4gICAgICAgIC8vIHRoZW4gYWRkIGFuIGV4dHJhIHBpeGVsIGZvciBzYWZldHkgYW5kIGJlY2F1c2UgdGhlIHNjcm9sbEhlaWdodCB2YWx1ZSBpcyByb3VuZGVkXG4gICAgICAgIGNvbnN0IGV4dHJhSGVpZ2h0ID0gYm9yZGVyV2lkdGggKyBtYXJnaW5XaWR0aCArIDE7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChwcmV2aWV3UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIZWlnaHQgPSBwcmV2aWV3UmVmLnNjcm9sbEhlaWdodCArIGV4dHJhSGVpZ2h0O1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgdXBkYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIHNldFRleHRBcmVhUmVmKHJlZjogSFRNTFRleHRBcmVhRWxlbWVudCkge1xuICAgIHRoaXMudGV4dGFyZWFSZWYgPSByZWY7XG4gIH1cblxuICBAYWN0aW9uXG4gIHNldEVkaXRvclRvb2xiYXJSZWYocmVmOiBFdWlNYXJrZG93bkVkaXRvclRvb2xiYXJTaWduYXR1cmVbJ0VsZW1lbnQnXSkge1xuICAgIHRoaXMuZWRpdG9yVG9vbGJhclJlZiA9IHJlZjtcbiAgICB0aGlzLmVkaXRvclRvb2xiYXJIZWlnaHQgPSByZWYub2Zmc2V0SGVpZ2h0O1xuICB9XG5cbiAgQGFjdGlvblxuICByZXBsYWNlTm9kZShwb3NpdGlvbjogRXVpTWFya2Rvd25Bc3ROb2RlUG9zaXRpb24sIG5leHQ6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuYXJncy52YWx1ZTtcbiAgICBjb25zdCBsZWFkaW5nID0gdmFsdWUuc3Vic3RyKDAsIHBvc2l0aW9uLnN0YXJ0Lm9mZnNldCk7XG4gICAgY29uc3QgdHJhaWxpbmcgPSB2YWx1ZS5zdWJzdHIocG9zaXRpb24uZW5kLm9mZnNldCk7XG5cbiAgICB0aGlzLmFyZ3Mub25DaGFuZ2U_LihgJHtsZWFkaW5nfSR7bmV4dH0ke3RyYWlsaW5nfWApO1xuICB9XG5cbiAgZ2V0IGlzRWRpdGluZygpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3TW9kZSA9PT0gTU9ERV9FRElUSU5HO1xuICB9XG5cbiAgZ2V0IGlzUHJldmlld2luZygpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3TW9kZSA9PT0gTU9ERV9WSUVXSU5HO1xuICB9XG5cbiAgQGFjdGlvblxuICBzZXRWaWV3TW9kZSgpIHtcbiAgICB0aGlzLnZpZXdNb2RlID0gdGhpcy5pc1ByZXZpZXdpbmcgPyBNT0RFX0VESVRJTkcgOiBNT0RFX1ZJRVdJTkc7XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBwYXJzZXIoKSB7XG4gICAgY29uc3QgQ29tcGlsZXIgPSAodHJlZTogYW55KSA9PiB7XG4gICAgICByZXR1cm4gdHJlZTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gaWRlbnRpdHlDb21waWxlcih0aGlzOiBQcm9jZXNzb3IpIHtcbiAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB0aGlzLkNvbXBpbGVyID0gQ29tcGlsZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaWZpZWQoKS51c2UodGhpcy5wYXJzaW5nUGx1Z2luTGlzdCkudXNlKGlkZW50aXR5Q29tcGlsZXIpO1xuICB9XG5cbiAgQGNhY2hlZFxuICBnZXQgcGFyc2VkKCk6IFtcbiAgICBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLnBhcnNlci5wcm9jZXNzU3luYz4gfCBudWxsLFxuICAgIG51bGwgfCB1bmtub3duXG4gIF0ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlci5wcm9jZXNzU3luYyh0aGlzLmFyZ3MudmFsdWUpO1xuXG4gICAgICByZXR1cm4gW3BhcnNlZCwgbnVsbF07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIFtudWxsLCBlXTtcbiAgICB9XG4gIH1cblxuICBnZXQgdkZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VkWzBdO1xuICB9XG5cbiAgQGFjdGlvblxuICBvblBhcnNlKCkge1xuICAgIGlmICh0aGlzLmFyZ3Mub25QYXJzZSkge1xuICAgICAgY29uc3QgW3BhcnNlZCwgcGFyc2VFcnJvcl0gPSB0aGlzLnBhcnNlZDtcbiAgICAgIGNvbnN0IG9uUGFyc2UgPSB0aGlzLmFyZ3Mub25QYXJzZTtcbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gcGFyc2VkID8gcGFyc2VkLm1lc3NhZ2VzIDogW107XG4gICAgICBjb25zdCBhc3QgPSBwYXJzZWQgPyBwYXJzZWRbJ3Jlc3VsdCddID8_IHBhcnNlZC5jb250ZW50cyA6IG51bGw7XG5cbiAgICAgIG9uUGFyc2UocGFyc2VFcnJvciwgeyBtZXNzYWdlcywgYXN0IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgc2V0U2VsZWN0ZWROb2RlKG5vZGU6IE5vZGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGU7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPGRpdlxuICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgIFwiZXVpTWFya2Rvd25FZGl0b3JcIlxuICAgICAgICAoaWYgKGVxIHRoaXMuaGVpZ2h0IFwiZnVsbFwiKSBcImV1aU1hcmtkb3duRWRpdG9yLS1mdWxsSGVpZ2h0XCIpXG4gICAgICAgIChpZiB0aGlzLmlzUHJldmlld2luZyBcImV1aU1hcmtkb3duRWRpdG9yLS1pc1ByZXZpZXdpbmdcIilcbiAgICAgIH19XG4gICAgICB7e2RpZFVwZGF0ZVxuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRIZWlnaHRcbiAgICAgICAgdGhpcy5jdXJyZW50SGVpZ2h0XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3aW5nXG4gICAgICAgIHRoaXMuaGVpZ2h0XG4gICAgICAgIHRoaXMuYXV0b0V4cGFuZFByZXZpZXdcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEV1aU1hcmtkb3duRWRpdG9yVG9vbGJhclxuICAgICAgICBAc2VsZWN0ZWROb2RlPXt7dGhpcy5zZWxlY3RlZE5vZGV9fVxuICAgICAgICBAbWFya2Rvd25BY3Rpb25zPXt7dGhpcy5tYXJrZG93bkFjdGlvbnN9fVxuICAgICAgICBAb25DbGlja1ByZXZpZXc9e3t0aGlzLnNldFZpZXdNb2RlfX1cbiAgICAgICAgQHZpZXdNb2RlPXt7dGhpcy52aWV3TW9kZX19XG4gICAgICAgIEB1aVBsdWdpbnM9e3t0aGlzLnRvb2xiYXJQbHVnaW5zfX1cbiAgICAgICAge3tkaWRJbnNlcnQgdGhpcy5zZXRFZGl0b3JUb29sYmFyUmVmfX1cbiAgICAgIC8-XG4gICAgICB7eyNpZiB0aGlzLmlzUHJldmlld2luZ319XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImV1aU1hcmtkb3duRWRpdG9yUHJldmlld1wiXG4gICAgICAgICAge3tkaWRJbnNlcnQgKHNldCB0aGlzIFwicHJldmlld1JlZlwiKX19XG4gICAgICAgICAge3tzdHlsZSAoaGFzaCBoZWlnaHQ9dGhpcy5wcmV2aWV3SGVpZ2h0KX19XG4gICAgICAgID5cbiAgICAgICAgICA8RXVpTWFya2Rvd25Gb3JtYXRcbiAgICAgICAgICAgIEBwYXJzaW5nUGx1Z2luTGlzdD17e3RoaXMucGFyc2luZ1BsdWdpbkxpc3R9fVxuICAgICAgICAgICAgQHByb2Nlc3NpbmdQbHVnaW5MaXN0PXt7dGhpcy5wcm9jZXNzaW5nUGx1Z2luTGlzdH19XG4gICAgICAgICAgICBAdmFsdWU9e3tAdmFsdWV9fVxuICAgICAgICAgICAgQHJlcGxhY2VOb2RlPXt7dGhpcy5yZXBsYWNlTm9kZX19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY-XG4gICAgICB7ey9pZn19XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWlNYXJrZG93bkVkaXRvcl9fdG9nZ2xlQ29udGFpbmVyXCJcbiAgICAgICAge3tzdHlsZSBoZWlnaHQ9dGhpcy5lZGl0b3JUb2dnbGVDb250YWluZXJIZWlnaHR9fVxuICAgICAgPlxuICAgICAgICA8RXVpTWFya2Rvd25FZGl0b3JEcm9wWm9uZVxuICAgICAgICAgIEB1aVBsdWdpbnM9e3t0aGlzLnRvb2xiYXJQbHVnaW5zfX1cbiAgICAgICAgICB7e3Jlc2l6ZU9ic2VydmVyIG9uUmVzaXplPXRoaXMub25SZXNpemV9fVxuICAgICAgICA-XG4gICAgICAgICAgPEV1aU1hcmtkb3duRWRpdG9yVGV4dEFyZWFcbiAgICAgICAgICAgIHt7Z2V0Q3Vyc29yTm9kZU1vZGlmaWVyIHRoaXMudkZpbGUgdGhpcy5zZXRTZWxlY3RlZE5vZGV9fVxuICAgICAgICAgICAge3tkaWRVcGRhdGUgdGhpcy5vblBhcnNlIHRoaXMucGFyc2VkfX1cbiAgICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMuc2V0VGV4dEFyZWFSZWZ9fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3tAZGlzYWJsZWR9fVxuICAgICAgICAgICAgaWQ9e3t0aGlzLmVkaXRvcklkfX1cbiAgICAgICAgICAgIEBoZWlnaHQ9e3t0aGlzLnRleHRBcmVhSGVpZ2h0fX1cbiAgICAgICAgICAgIEBtYXhIZWlnaHQ9e3t0aGlzLnRleHRBcmVhTWF4SGVpZ2h0fX1cbiAgICAgICAgICAgIHZhbHVlPXt7QHZhbHVlfX1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3tAYXJpYUxhYmVsfX1cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17e0BhcmlhTGFiZWxsZWRCeX19XG4gICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXt7QGFyaWFEZXNjcmliZWRCeX19XG4gICAgICAgICAgICB7e29uIFwiaW5wdXRcIiAocGljayBcInRhcmdldC52YWx1ZVwiIEBvbkNoYW5nZSl9fVxuICAgICAgICAgICAge3t2YWxpZGF0YWJsZUNvbnRyb2wgQGlzSW52YWxpZH19XG4gICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FdWlNYXJrZG93bkVkaXRvckRyb3Bab25lPlxuICAgICAgPC9kaXY-XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxNQUFNLEVBQUUsT0FBTyxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxFQUFFLFFBQVEsa0JBQWtCO0FBQ3JDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxTQUFTLE9BQU8sUUFBUSwwQkFBMEI7QUFDbEQsT0FBTyxlQUFlLCtDQUErQztBQUNyRSxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLFNBQVMsWUFBWSxRQUFRLGlCQUFpQjtBQUU5QyxPQUFPLFVBQVUsd0NBQXdDO0FBQ3pELFNBQVMsUUFBUSxRQUFRLGlCQUFpQjtBQUMxQyxPQUFPLFNBQVMsK0JBQStCO0FBQy9DLE9BQU8sV0FBVyx1Q0FBdUM7QUFDekQsU0FBUyxFQUFFLEVBQUUsR0FBRyxRQUFRLHNCQUFzQjtBQUM5QyxPQUFPLGFBQWEsVUFBVTtBQUU5QixTQUFTLHFCQUFxQixRQUFRLCtCQUErQjtBQUNyRSxPQUFPLGdCQUFnQiw0QkFBNEI7QUFDbkQsT0FBTyxvQkFBb0Isa0NBQWtDO0FBQzdELE9BQU8sd0JBQXdCLHNDQUFzQztBQUNyRSxPQUFPLHFCQUFxQix3Q0FBd0M7QUFDcEUsU0FBUyxZQUFZLEVBQUUsWUFBWSxRQUFRLHNDQUFzQztBQUNqRixTQUNFLHFCQUFxQixFQUNyQix3QkFBd0IsUUFDbkIsOERBQThEO0FBQ3JFLFlBQVksMkJBQTJCLHNEQUFzRDtBQUM3RixPQUFPLCtCQUErQixzQ0FBc0M7QUFDNUUsT0FBTywrQkFBK0Isc0NBQXNDO0FBQzVFLE9BQU8sOEJBQThCLG9DQUFvQztBQUN6RSxPQUFPLHVCQUF1Qiw0QkFBNEI7QUFFMUQsY0FDRSxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLHlCQUF5QixRQUNwQixtQ0FBbUM7QUFDMUMsY0FBYyxrQ0FBa0MsUUFBUSxrQ0FBa0M7QUFDMUYsY0FBYyxpQ0FBaUMsUUFBUSxnQ0FBZ0M7QUFDdkYsY0FBYyxTQUFTLFFBQVEsVUFBVTtBQUV6QyxpQkFBaUI7SUFDZixrQkFBa0IsTUFBTTtJQUN4QixXQUFXLE1BQU07SUFDakIsV0FBVztJQUNYLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsT0FBTyxNQUFNO0lBQ2IsV0FBVyxLQUFLLE1BQU0sS0FBSyxJQUFJO0lBQy9CLFdBQ0UsWUFBWSxPQUFPLEdBQUcsSUFBSSxFQUMxQjtRQUFVLFVBQVUsR0FBRztRQUFJLEtBQUssR0FBRztVQUNoQyxJQUFJO0lBQ1QsU0FBUyxNQUFNLEdBQUcsTUFBTTtJQUN4QixZQUFZLE1BQU0sR0FBRyxNQUFNO0lBQzNCLG9CQUFvQixPQUFPO0lBQzNCLFdBQVcsT0FBTztJQUNsQixZQUFZLE9BQU87SUFDbkIsWUFBWSxNQUFNO0lBQ2xCLGlCQUFpQixNQUFNO0lBQ3ZCLGtCQUFrQixNQUFNOztBQUcxQixpQkFBaUI7SUFDZixTQUFTLG1DQUFtQztJQUM1QyxNQUFNO0lBQ047UUFDRTs7O0FBSUosT0FBTyxNQUFNLGdCQUFnQixDQUMzQixjQUFhLGtCQUNiLFNBQVEsR0FBRyxHQUNWO0lBQ0QsTUFBTSxFQUFFLGdCQUFBLGVBQWMsRUFBRSxHQUFHO0lBRTNCLElBQUksT0FBTSxxQkFBcUIsUUFBTyxNQUFNLElBQUksUUFBTyxRQUFRO0lBRS9ELDBCQUEwQjtJQUMxQixPQUFPLE1BQU8sS0FBTTtRQUNsQixJQUFJLE1BQUssUUFBUSxFQUFFO1lBQ2pCLElBQUssSUFBSSxLQUFJLEdBQUcsS0FBSSxNQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSztnQkFDN0MsTUFBTSxTQUFRLE1BQUssUUFBUSxDQUFDLEdBQUU7Z0JBRTlCLElBQ0UsVUFDQSxPQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsbUJBQWtCLE1BQU0sS0FDdkQsQ0FBQyxtQkFBa0IsTUFBTSxJQUFJLE9BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ3REO29CQUNBLElBQUksT0FBTSxJQUFJLEtBQUssUUFBUSxNQUFNLE9BQU8sK0JBQStCO29CQUN2RSxRQUFPO29CQUNQLFNBQVM7Z0JBQ1g7WUFDRjtRQUNGO1FBRUE7SUFDRjtJQUVBLE9BQU87QUFDVCxFQUFFO0FBRUYsU0FBUyxRQUNQLFdBQVUsZ0JBQWdCLEVBQzFCLFNBQVEsR0FBRyxFQUNYLFlBQVcsTUFBTSx1QkFBdUIsSUFBSTtJQUU1QyxNQUFNLFFBQU8sY0FBYyxXQUFVO0lBRXJDLFVBQVM7QUFDWDtBQUVBLE9BQU8sTUFBTSx3QkFBd0IsU0FBUyxTQUFTLHVCQUNyRCxXQUFVLG1DQUFtQyxVQUFVLEVBQ3ZELENBQUMsU0FBUSxtQkFBa0IsR0FBRyxHQUFHLE1BQU0sU0FBUyxJQUFJLENBQUM7SUFFckQsa0JBQWtCO0lBQ2xCLE1BQU0sTUFBSyxRQUFRLElBQUksQ0FBQyxNQUFNLFdBQVUsU0FBUTtJQUVoRCxVQUFTLGdCQUFnQixDQUFDLFNBQVM7SUFDbkMsVUFBUyxnQkFBZ0IsQ0FBQyxXQUFXO0lBRXJDLE9BQU87UUFDTCxVQUFTLG1CQUFtQixDQUFDLFNBQVM7UUFDdEMsVUFBUyxtQkFBbUIsQ0FBQyxXQUFXO0lBQzFDO0FBQ0YsR0FBRztBQUVILGVBQWUsTUFBTSxtQ0FBbUMsVUFBVTtJQUNoRSxXQUFXO0lBQ1gsQ0FBQyxzQkFBc0I7SUFBK0IsMEJBQTBCLHNCQUFzQjtJQUV0RyxDQUFDLHNCQUFzQjtJQUFhLFFBQVEsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUM1RCxDQUFDLHNCQUFzQjtJQUFhLFdBQVcsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUMvRCxDQUFDLHNCQUFzQjtJQUFjLG1CQUFtQixPQUFPLENBQUM7SUFFaEUsQ0FBQyxzQkFBc0I7SUFBa0MsNkJBQTZCLHlCQUF5QjtJQUUvRyxDQUFDO0lBQVEsY0FBYyxPQUFPLElBQUksR0FBRyxLQUFLO0lBQzFDLENBQUM7SUFBUSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxHQUFHO0lBQ3RELENBQUM7SUFBUSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLGFBQWE7SUFDOUQsQ0FBQztJQUFRLGFBQWEsc0JBQXNCLElBQUksR0FBRyxLQUFLO0lBQ3hELENBQUM7SUFBUSxZQUFZLGlCQUFpQixJQUFJLEdBQUcsS0FBSztJQUNsRCxDQUFDO0lBQVEsa0JBQWtCLGlCQUFpQixJQUFJLEdBQUcsS0FBSztJQUN4RCxDQUFDO0lBQVEsZUFBZSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUk7SUFDOUMsQ0FBQztJQUFRLG9CQUFvQixNQUFNLEdBQUcsRUFBRTtJQUN4QyxDQUFDO0lBQVEscUJBQXFCLE1BQU0sR0FBRyxFQUFFO0lBRXpDLGlCQUFpQixnQkFBZ0I7SUFFakMsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTztZQUFDLHNCQUFzQixNQUFNO2VBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1NBQUU7SUFDdkU7SUFFQSxZQUFZLFFBQU8sT0FBTyxFQUFFLE9BQU0scUJBQXFCLENBQUU7UUFDdkQsS0FBSyxDQUFDLFFBQU87UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZ0JBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQ2IsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxjQUFjO1FBRXJCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU07SUFDbEM7SUFFQSxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUMxQixPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFDcEQ7UUFFQSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztJQUNsQztJQUVBLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUNuQixTQUNBLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztJQUNwRTtJQUVBLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUNuQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEdBQzNEO0lBQ047SUFFQSxJQUFJLDhCQUE4QjtRQUNoQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7SUFDckQ7SUFFQSxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUNoRSxNQUFNLHlCQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0I7WUFFekQsTUFBTSxVQUFTO2dCQUNiLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDdkI7WUFFQSxhQUFhLGVBQWUsSUFBSSxFQUFFO1FBQ3BDO0lBQ0Y7SUFFQSxDQUFDO0lBQ0Qsc0JBQXNCO1FBQ3BCLElBQUksRUFBRSxjQUFBLGFBQVksRUFBRSxtQkFBQSxrQkFBaUIsRUFBRSxRQUFBLE9BQU0sRUFBRSxZQUFBLFdBQVUsRUFBRSxlQUFBLGNBQWEsRUFBRSxHQUN4RSxJQUFJO1FBRU4sSUFBSSxpQkFBZ0Isc0JBQXFCLFlBQVcsVUFBVSxhQUFZO1lBQ3hFLFlBQVk7WUFDWixJQUFJLFlBQVcsWUFBWSxHQUFHLGdCQUFlO2dCQUMzQyxxREFBcUQ7Z0JBQ3JELDhDQUE4QztnQkFDOUMscURBQXFEO2dCQUNyRCw4QkFBOEI7Z0JBQzlCLE1BQU0sd0JBQXVCLE9BQU8sZ0JBQWdCLENBQUM7Z0JBQ3JELE1BQU0sZUFDSixXQUFXLHNCQUFxQixjQUFjLElBQzlDLFdBQVcsc0JBQXFCLGlCQUFpQjtnQkFDbkQsTUFBTSxlQUNKLFdBQVcsc0JBQXFCLFNBQVMsSUFDekMsV0FBVyxzQkFBcUIsWUFBWTtnQkFFOUMsbUZBQW1GO2dCQUNuRixNQUFNLGVBQWMsZUFBYyxlQUFjO2dCQUVoRCxNQUFNLFVBQVM7b0JBQ2IsSUFBSSxhQUFZO3dCQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBVyxZQUFZLEdBQUc7b0JBQ2pEO2dCQUNGO2dCQUVBLGFBQWEsZUFBZSxJQUFJLEVBQUU7WUFDcEM7UUFDRjtJQUNGO0lBRUEsQ0FBQztJQUNELGVBQWUsTUFBSyxtQkFBbUIsRUFBRTtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHO0lBQ3JCO0lBRUEsQ0FBQztJQUNELG9CQUFvQixNQUFLLGtDQUFrQyxVQUFVLEVBQUU7UUFDckUsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFJLFlBQVk7SUFDN0M7SUFFQSxDQUFDO0lBQ0QsWUFBWSxXQUFVLDBCQUEwQixFQUFFLE9BQU0sTUFBTSxFQUFFO1FBQzlELElBQUksU0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFDM0IsTUFBTSxXQUFVLE9BQU0sTUFBTSxDQUFDLEdBQUcsVUFBUyxLQUFLLENBQUMsTUFBTTtRQUNyRCxNQUFNLFlBQVcsT0FBTSxNQUFNLENBQUMsVUFBUyxHQUFHLENBQUMsTUFBTTtRQUVqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsU0FBUSxFQUFFLE1BQUssRUFBRSxVQUFTLENBQUM7SUFDckQ7SUFFQSxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUs7SUFDM0I7SUFFQSxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLO0lBQzNCO0lBRUEsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZTtJQUNyRDtJQUVBLENBQUM7SUFBTSxJQUNILFNBQVM7UUFDWCxNQUFNLFlBQVcsQ0FBQyxPQUFNLEdBQUc7WUFDekIsT0FBTztRQUNUO1FBRUEsU0FBUyxrQkFBaUIsT0FBTSxTQUFTO1lBQ3ZDLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHO1FBQ2xCO1FBRUEsT0FBTyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO0lBQ25EO0lBRUEsQ0FBQztJQUFNLElBQ0gsV0FDRixrQkFBa0IsS0FBSyxPQUFPLGVBQWUsSUFBSSxFQUNqRCxJQUFJLEdBQUcsT0FBTyxFQUNkO1FBQ0EsSUFBSTtZQUNGLE1BQU0sVUFBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFFdEQsT0FBTztnQkFBQztnQkFBUTthQUFLO1FBQ3ZCLEVBQUUsT0FBTyxJQUFHO1lBQ1YsT0FBTztnQkFBQztnQkFBTTthQUFFO1FBQ2xCO0lBQ0Y7SUFFQSxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtJQUN2QjtJQUVBLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyQixNQUFNLENBQUMsU0FBUSxZQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDeEMsTUFBTSxXQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNqQyxNQUFNLFlBQVcsVUFBUyxRQUFPLFFBQVEsR0FBRyxFQUFFO1lBQzlDLE1BQU0sT0FBTSxVQUFTLE9BQU0sQ0FBQyxTQUFTLElBQUksUUFBTyxRQUFRLEdBQUc7WUFFM0QsU0FBUSxhQUFZO2dCQUFFLFVBQUE7Z0JBQVUsS0FBQTtZQUFJO1FBQ3RDO0lBQ0Y7SUFFQSxDQUFDO0lBQ0QsZ0JBQWdCLE9BQU0sSUFBSSxFQUFFO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUc7SUFDdEI7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWlFVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FqRUE7QUFrRVoifQ"],"names":["cached","macroCondition","dependencySatisfies","importSync","getCursorNode","textareaRef1","parsed1","selectionStart","selectionStart1","node1","result","contents","outer","children","i1","length","child1","position","start","offset","end","type","wrapper","textarea1","callback1","getCursorNodeModifier","modifier","getCursorNodeModifier1","onSelectedNode1","fn1","bind","addEventListener","removeEventListener","EuiMarkdownEditorComponent","Component","g","this","prototype","argOrDefaultDecorator","defaultParsingPlugins","i","void 0","defaultProcessingPlugins","tracked","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner1","args1","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","textareaRef","isEditing","resizedTextareaHeight1","offsetHeight","update1","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","isPreviewing1","autoExpandPreview","autoExpandPreview1","height1","previewRef","previewRef1","currentHeight1","scrollHeight","elementComputedStyle1","window","getComputedStyle","borderWidth1","parseFloat","borderTopWidth","borderBottomWidth","marginWidth1","marginTop","marginBottom","extraHeight1","setTextAreaRef","ref1","setEditorToolbarRef","editorToolbarRef","replaceNode","position1","next1","value1","value","leading1","substr","trailing1","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler1","tree1","identityCompiler1","this1","Compiler","unified","use","parsingPluginList","parsed","processSync","e1","vFile","onParse","parseError1","onParse1","messages1","messages","ast1","ast","setSelectedNode","selectedNode","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from 'ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport { MODE_EDITING, MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins) declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins) declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
|