Перейти к основному содержимому
Версия: 26.1.0 (в разработке)

Type Alias: TextBlock

TextBlock = BaseUiElement & HasContent & MayHaveTitle & MayHaveStyles & object

Компонент для отображения многострочных текстовых блоков в пользовательском интерфейсе.

Предназначен для вывода информации, описаний, результатов или статуса. Поддерживает как обычный текст, так и HTML разметку с кастомными стилями.

Type declaration

type

type: "textblock"

Маркер типа элемента управления.

Используется для идентификации элемента как текстового блока.

Remarks

  • Всегда равен 'textblock' для этого интерфейса
  • Используется контейнерами для определения типа элемента
  • Позволяет TypeScript правильно типизировать элемент

Default

'textblock'

Example

const block: TextBlock = {
id: 'plugin:text',
type: 'textblock', // Маркер типа
content: 'Содержимое'
};

Remarks

Поддержка в контейнерах:

  • Боковые панели (sidebar) — полная поддержка
  • Модальные окна (modals) — полная поддержка
  • Лента инструментов (ribbon) — не поддерживается
  • Контекстное меню — не поддерживается

Иерархия интерфейсов:

TextBlock (текущий тип)
├── extends BaseUiElement
│ ├── id: string (обязательно)
│ └── onClick?: Callback (опционально)
├── extends HasContent
│ └── content: string (обязательно)
├── extends MayHaveTitle
│ └── title?: string (опционально)
└── extends MayHaveStyles
└── styles?: CSSStyles (опционально)
└── type: 'textblock' (обязательно)
└── contentType?: 'text' | 'html' (опционально)

Типичные сценарии использования:

  • Вывод информации о документе (статистика, размер)
  • Логирование операций (история, события)
  • Результаты анализа (отчёты, статистика)
  • Справка и инструкции
  • Описание функций или возможностей
  • Вывод ошибок или предупреждений
  • Динамический контент (обновляемые данные)

Example

Простой текстовый блок

const textBlock: TextBlock = {
id: 'plugin:info',
type: 'textblock',
title: 'Информация',
content: 'Это простой текстовый блок с информацией о документе.'
};

Текстовый блок с HTML разметкой

const htmlBlock: TextBlock = {
id: 'plugin:report',
type: 'textblock',
title: 'Отчёт',
content: `
<h3>Результаты анализа</h3>
<ul>
<li>Слов: 1250</li>
<li>Символов: 8450</li>
<li>Абзацев: 42</li>
</ul>
`,
contentType: 'html'
};

Текстовый блок с кастомными стилями

const styledBlock: TextBlock = {
id: 'plugin:styled',
type: 'textblock',
content: 'Это стилизованный текстовый блок',
styles: {
padding: 15,
backgroundColor: '#f0f0f0',
border: '1px solid #ddd',
borderRadius: 4,
fontFamily: 'monospace',
fontSize: 12
}
};

Динамически обновляемый блок с логом

let logContent = '';

export default {
onInit: (editorApi) => {
const logBlock: TextBlock = {
id: 'plugin:log',
type: 'textblock',
title: 'Лог операций',
content: logContent,
contentType: 'html',
styles: {
height: 200,
overflow: 'auto',
padding: 10,
backgroundColor: '#1e1e1e',
color: '#00ff00',
fontFamily: 'monospace',
fontSize: 12,
border: '1px solid #333'
}
};

editorApi.ui.sidebar.addTab({
id: 'plugin:panel',
title: 'Логирование',
content: [
{
type: 'controls',
items: [logBlock]
}
]
});
}
}

See

  • BaseUiElement — базовые свойства (id, onClick)
  • HasContent — свойство content
  • MayHaveTitle — опциональное название
  • MayHaveStyles — кастомные стили
  • SidebarApi — использование в боковых панелях