From 3df969b7911a95df86ecc86b07b9a03557e53592 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 24 Oct 2025 13:08:28 +0400 Subject: [PATCH] Move RTE events --- .../dom_components/view/ComponentTextView.ts | 4 +- packages/core/src/rich_text_editor/index.ts | 48 +++++-------------- packages/core/src/rich_text_editor/types.ts | 39 +++++++++++++++ 3 files changed, 54 insertions(+), 37 deletions(-) create mode 100644 packages/core/src/rich_text_editor/types.ts diff --git a/packages/core/src/dom_components/view/ComponentTextView.ts b/packages/core/src/dom_components/view/ComponentTextView.ts index a5c301f0d..11db2ae32 100644 --- a/packages/core/src/dom_components/view/ComponentTextView.ts +++ b/packages/core/src/dom_components/view/ComponentTextView.ts @@ -248,9 +248,11 @@ export default class ComponentTextView { ... }); - * - * // Use the API * const rte = editor.RichTextEditor; - * rte.add(...); * ``` * - * ## Available Events - * * `rte:enable` - RTE enabled. The view, on which RTE is enabled, is passed as an argument - * * `rte:disable` - RTE disabled. The view, on which RTE is disabled, is passed as an argument + * {REPLACE_EVENTS} * * ## Methods * * [add](#add) @@ -39,38 +32,21 @@ import { debounce, isFunction, isString } from 'underscore'; import { Module } from '../abstract'; +import CanvasEvents from '../canvas/types'; import { Debounced, DisableOptions, Model } from '../common'; +import { ComponentsEvents } from '../dom_components/types'; +import ComponentTextView from '../dom_components/view/ComponentTextView'; import EditorModel from '../editor/model/Editor'; import { createEl, cx, on, removeEl } from '../utils/dom'; import { hasWin, isDef } from '../utils/mixins'; import defConfig, { CustomRTE, CustomRteOptions, RichTextEditorConfig } from './config/config'; import RichTextEditor, { RichTextEditorAction } from './model/RichTextEditor'; -import CanvasEvents from '../canvas/types'; -import { ComponentsEvents } from '../dom_components/types'; -import ComponentTextView from '../dom_components/view/ComponentTextView'; +import { ModelRTE, RichTextEditorEvents, RteDisableResult } from './types'; -export type RichTextEditorEvent = 'rte:enable' | 'rte:disable' | 'rte:custom'; +export type { RichTextEditorEvent, RteDisableResult } from './types'; const eventsUp = `${CanvasEvents.refresh} frame:scroll ${ComponentsEvents.update}`; -export const evEnable = 'rte:enable'; -export const evDisable = 'rte:disable'; -export const evCustom = 'rte:custom'; - -const events = { - enable: evEnable, - disable: evDisable, - custom: evCustom, -}; - -interface ModelRTE { - currentView?: ComponentTextView; -} - -export interface RteDisableResult { - forceSync?: boolean; -} - export default class RichTextEditorModule extends Module { pfx: string; toolbar!: HTMLElement; @@ -81,7 +57,7 @@ export default class RichTextEditorModule extends Module; __dbdTrgCustom: Debounced; - events = events; + events = RichTextEditorEvents; /** * Get configuration object @@ -362,7 +338,7 @@ export default class RichTextEditorModule extends Module { ... }); + */ + enable = 'rte:enable', + + /** + * @event `rte:disable` RTE disabled. The view, on which RTE is disabled, and the RTE instance are passed as arguments. + * @example + * editor.on('rte:disable', (view, rte) => { ... }); + */ + disable = 'rte:disable', + + /** + * @event `rte:custom` Custom RTE event. Object with enabled status, container, and actions is passed as an argument. + * @example + * editor.on('rte:custom', ({ enabled, container, actions }) => { ... }); + */ + custom = 'rte:custom', +} +/**{END_EVENTS}*/ + +// need this to avoid the TS documentation generator to break +export default RichTextEditorEvents;