Skip to content

Расширения

Расширения в редакторе предназначены для добавления функций на панель расширений. С их помощью можно реализовать как стандартные операции — отмену (Undo) и повтор (Redo), так и любые пользовательские действия.

Extensions

Базовое использование

Подключайте и используйте расширения в конфигурации редактора.

javascript
import Texditor from 'texditor';
import { Undo, Redo, DeleteSelected } from "texditor/entities/extensions";

const editor = new Texditor({
  // Идентификатор html-элемента
  handle: 'texditor',
  extensions: [
    Undo,
    Redo,
    DeleteSelected,
    //... или пользовательские варианты
  ],
});

Создание пользовательских расширений

Легко создавайте свои собственные расширения

javascript

import { ExtensionModel } from 'texditor/core/models';

// Пример пользовательского расширения для панели расширений
export default class CustomRedo extends ExtensionModel {
  configure() {
    return {
      name: 'redo',
      translation: 'redo',
      icon: { raw: '<svg>...</svg>' },
      toggleActive: false, // Проверяет переключение расширения в активное состояние при клике
      groupName: 'history', // Группа расширений для объединения в HTML-блоки при использовании в качестве кнопки
      // ... другие параметры из основной и базовой модели
    };
  }

  onClick(evt) {
    this.editor.historyManager.redo(); // или любое свободное действие
  }

  isActive() {
    // Статус активности расширения
    return this.editor.historyManager.canRedo();
  }

  // Другие методы из основной модели "ExtensionModel" и базовой 'BaseModel' ...
}
typescript
import type { ExtensionModelConfig } from 'texditor';
import { ExtensionModel } from 'texditor/core/models';

// Пример пользовательского расширения для панели расширений
export default class CustomRedo extends ExtensionModel {
  protected configure(): Partial<ExtensionModelConfig> {
    return {
      name: 'redo',
      translation: 'redo',
      icon: { raw: '<svg>...</svg>' },
      toggleActive: false, // Проверяет переключение расширения в активное состояние при клике
      groupName: 'history', // Группа расширений для объединения в HTML-блоки при использовании в качестве кнопки
      // ... другие параметры из основной и базовой модели
    };
  }

  protected onClick(evt: MouseEvent): void {
    this.editor.historyManager.redo(); // или любое свободное действие
  }

  isActive(): boolean {
    // Статус активности расширения
    return this.editor.historyManager.canRedo();
  }

  // Другие методы из основной модели "ExtensionModel" и базовой 'BaseModel' ...
}

dev@priveted.com | priveted.com