API SDK
Параметры DraftPlugin.create
| Параметр | Описание | Обязателен |
|---|---|---|
token | Ключ доступа к SDK и HTTP API | Да |
pluginId | Идентификатор плагина в формате ORG_ID:PLUGIN_ID | Да |
authData.projectId | ID проекта, созданного на вашем backend | Да |
locale | Язык интерфейса: ru или en | Нет |
apiUrl | Базовый URL API, если требуется отличное от стандартного значение | Нет |
on | Объект с обработчиками событий редактора | Нет |
События
ready- редактор загрузился и готов к работе. Возвращает{ json: TemplateJSON; html: string; lastSavedTemplate?: { template: TemplateJSON; date: Date } }.error- произошла ошибка. Возвращает{ message: string; code?: string; details?: unknown }.notification- уведомление от редактора. Возвращает{ intent: 'error' | 'info' | 'success' | 'warning'; title: string; message?: string; errorDetails?: object }.autosave- произошло автосохранение. Возвращает{ json: TemplateJSON }.save- произошло сохранение. Возвращает{ json: TemplateJSON; html: string }.exit- пользователь пытается выйти из редактора. Возвращает{ json: TemplateJSON; html: string }.toggleGrid- включена или выключена подсветка сетки. Возвращает{ state: boolean }.togglePreview- включён или выключен предпросмотр. Возвращает{ state: boolean; json: TemplateJSON; html: string; darkHTML: string }.toggleMenu- изменено открытое меню. Возвращает{ menu: 'audit' | 'guide' | 'style' | 'blocks' | null }.toggleViewMode- изменён режим просмотра. Возвращает{ mode: 'desktop' | 'mobile' }.history- изменилось состояние истории. Возвращает{ hasUndos: boolean; hasRedos: boolean; currentStep: number }.uploadImage- редактор передал файл на загрузку. Обработчик получает{ file: string; name: string }и должен вернутьPromise<string>с URL загруженного изображения.openGallery- пользователь открыл галерею. Обработчик получает функцию(url?: string) => Promise<void>, которую нужно вызвать после выбора изображения.loadPersonalization- редактор запросил данные персонализации. Обработчик должен вернутьPromise<{ items: Array<{ name: string; value: string } | { groupName: string; items: Array<{ name: string; value: string }> }> }>
Методы
start
draft.start({
template: TemplateJSON,
uid: 'LETTER_ID',
templateName: 'Название письма',
});
changeTemplate
draft.changeTemplate(template, {
templateName: 'Название письма',
uid: 'LETTER_ID',
});
toggleGrid
draft.toggleGrid(state);
togglePreview
draft.togglePreview(state);
toggleMenu
draft.toggleMenu('audit');
toggleViewMode
draft.toggleViewMode('desktop');
undo
draft.undo();
redo
draft.redo();
save
const {json, html} = await draft.save();
exit
const {json, html} = await draft.exit();
exportContent
const {json, html} = await draft.exportContent();