Конфигурация редактора..
Конфигурация плагина представляет собой JSON с несколькими уровнями вложенности. В конфигурации вы можете настроить внешний вид, содержимое, с которым будет работать плагин и логику.
element
Вы можете передать строку element
в конфигурацию плагина. Это селектор DOM-элемента, внутри которого нужно инициализировать плагин. Если элемент не определен, приложение будет запущено в фоновом режиме.
content
Секция content
содержит параметры письма, которое нужно отобразить в редакторе. В этот параметр может быть передано:
{string}
HTML верстка письма.
{object} email options
{
id?: string; // Уникальный ID проекта в вашей системе.
html?: string; // HTML верстка письма.
subject?: string; // Тема письма.
preheader?: string; // Прехедер письма.
}
{object} full description
{
temlateId?: string; // ID шаблона внутри EmailMaker.
email?: object; // email options.
blocks?: []; // Дополнительные блоки.
comments?: []; // Комментарии в письме.
}
Можно изменить содержимое в любой момент после инициализации с помощью метода instance.show(content)
.
config
Раздел для настройки внешнего вида и настроек редактора. Вы можете изменить конфигурацию этого раздела после инициализации, используя emailmaker.setConfig
или emailmaker.updateConfig
.
Список параметров секции config
Параметр | Описание | Значение по умолчанию |
theme | Тема плагина: light, dark. | light |
autosaveTimeout | Задержка перед автосохранением, мс. | 10000 |
mergeTags | JSON со списком динамических переменных. | undefined |
styles | Строка со стилями в формате CSS. | |
headerShow | Показ шапки. | true |
headerArrowBackVisible | Показ стрелки «Назад». | true |
headerTitleVisible | Показ поля «Тема». | true |
headerPreheaderVisible | Показ поля «Прехедер». | true |
codeEnabled | Показ кнопки «Code-mode». | true |
codeSideEnabled | Показ кнопки «Code-mode» в режиме, когда есть переключатель десктоп/мобайл. | true |
previewIconEnabled | Показ кнопки «Предпросмотр». | true |
previewModeEnabled | Ссылка на Предпросмотр. | true |
livePreviewEnabled | Показ кнопки «Тестирование в почтовиках». | true |
sendTestEnabled | Показ кнопки «Отправить тест». | true |
sharePreviewEnabled | Показ кнопки «Поделиться». | true |
webversionEnabled | Показ ссылки на веб-версию. | true |
emailDropdownMenuEnabled | Показ меню письма. | true |
emailDropdownMenuClone | Показ пункта «Клонировать». | true |
emailDropdownMenuImport | Показ пункта «Импортировать». | true |
emailDropdownMenuLock | Показ пункта «Заблокировать». | true |
emailDropdownMenuRemove | Показ пункта «Удалить». | true |
emailExportEnabled | Показ кнопки «Экспорт». | true |
exportHtmlEnabled | Экспорт в HTML. | true |
exportZipEnabled | Экспорт в ZIP. | true |
exportClipboardEnabled | Экспорт в буфер. | true |
exportWebHookEnabled | Экспорт в вебхук. | true |
exportOutlookEnabled | Экспорт в Outlook. | true |
exportPdfEnabled | Экспорт в PDF. | true |
exportPngEnabled | Экспорт в PNG. | true |
nextButtonEnabled | Показ второстепенной кнопки. | false |
nextButtonText | Текст на второстепенной кнопке. | |
saveButtonEnabled | Показ основной кнопки. | true |
saveButtonText | Текст основной кнопки. | |
commandButtonsEnabled | Показ основной и второстепенной кнопки. | true |
sidePanelFloating | Плавающая боковая панель. | true |
desktopMobileSwitchRule | Полоса переключения режимов. | true |
desktopMobileSwitchPanel | Панель переключения режимов. | false |
onlyCodeModeInMobile | Вывод в мобиле только кода. | false |
pathEnabled | Показ хлебных крошек. | true |
copyPasteEnabled | Показ копирования-вставки блока в визуальном редакторе. | true |
saveBlockEnabled | Показ кнопки сохранения блока. | true |
editImageControlEnabled | Показ кнопки редактирования изображения. | true |
menuDirection | Расположение боковой панели. | ‘right’ |
defaultBuildPanel | Настройка открывающейся вкладки блоков по умолчанию. | empty | project | common | template |
commentsEnabled | Показ кнопки «Комментарии». | true |
aiAssistentEnabled | Показ «AI ассистента». | true |
optimizeEnabled | Показ кнопки «Оптимизация». | true |
optimizeLinksEnabled | Показ проверки ссылок. | true |
optimizeImagesEnabled | Показ проверки картинок. | true |
optimizeSpamAssassinEnabled | Показ проверки SpamAssassin. | true |
optimizeCheckCodeEnabled | Показ проверки кода. | true |
settingsEnabled | Показ кнопки «Настройки». | true |
UTMEnabled | Показ таба UTM-метки. | true |
descriptionEnabled | Показ поля «Описание» в настройках. | true |
tagsEnabled | Показ поля Теги в настройках. | true |
switchDesktopMobilePropsEnabled | Показ переключателя мобильных свойств. | true |
stepToOtherElementEnabled | Показ кнопок перехода к другим элементам. | true |
deleteButtonEnabled | Показ кнопки удаления элемента. | true |
toggleSidePanel | Возможность схлопывать боковую панель. | true |
blocksSectionsShow | Показ меню блоков. | true |
blocksEmptyEnabled | Показ пустых блоков. | true |
blocksSavedEnabled | Показ сохранённых блоков. | true |
blocksCommonEnabled | Показ общих блоков. | true |
blocksTemplateEnabled | Показ блоков шаблона. | true |
blocksSearchEnabled | Показ поиска по блокам. | true |
blocksAddPanelEnabled | Показ панели добавления блока в визуальном редакторе. | true |
imagePathDropdownEnabled | Показ выпадашки с путём к изображению. | true |
formFieldImageTitleEnabled | Показ поля title в форме картинки. | true |
formFieldBorderEnabled | Показ полей изменения рамки. | true |
formFieldBorderRadiusEnabled | Показ полей изменения скругления. | true |
formFieldBoxShadowEnabled | Показ полей изменения тени. | true |
formFieldVisibilityEnabled | Показ кнопок изменения видимости элемента. | true |
formFieldExportAsPictureEnabled | Показ переключателя экспорт в картинку. | true |
formButtonFieldInsertImageEnabled | Показ кнопки вставки изображения в текст у кнопки. | true |
formButtonFieldVerticalAlignEnabled | Показ кнопок вертикального выравнивания у кнопки. | true |
formButtonFieldTextAlignEnabled | Показ кнопок выравнивания текста у кнопки. | true |
formButtonFieldBackgroundImageEnabled | Показ полей фонового изображения у кнопки. | true |
formButtonFieldPaddingsEnabled | Показ полей внутренних отступов у кнопки. | true |
formCellFieldVerticalAlignEnabled | Показ кнопок вертикального выравнивания у ячейки. | true |
formCellFieldBackgroundImageEnabled | Показ полей фонового изображения у ячейки. | true |
formCellFieldPaddingsEnabled | Показ полей внутренних отступов у ячейки. | true |
formTableFieldBackgroundImageEnabled | Показ полей фонового изображения у таблицы. | true |
formDivFieldBackgroundImageEnabled | Показ полей фонового изображения у контейнера. | true |
formEmailFieldBackgroundImageEnabled | Показ полей фонового изображения у письма. | true |
elementImageEnabled | Элемент Картинка. | true |
elementTextEnabled | Элемент Текст. | true |
elementHeaderEnabled | Элемент Заголовок. | true |
elementButtonEnabled | Элемент Кнопка. | true |
elementListULEnabled | Элемент Список UL. | true |
elementListOLEnabled | Элемент Список OL. | true |
elementDividerEnabled | Элемент Разделитель. | true |
elementSpacerEnabled | Элемент Отступ. | true |
elementSocialEnabled | Элемент Соцсети. | true |
elementTableEnabled | Элемент Таблица. | true |
elementCountdownEnabled | Элемент Счётчик. | true |
elementVideoEnabled | Элемент Видео. | true |
elementAIimageEnabled | Элемент AI картинка. | true |
elementAItextEnabled | Элемент AI текст. | true |
elementCarouselEnabled | Элемент AMP карусель. | true |
elementAccordionEnabled | Элемент AMP аккордион. | true |
elementFormEnabled | Элемент AMP форма. | true |
imageCenterStockEnabled | Таб Стока фотографий. | true |
imageCenterGifEnabled | Таб Стока гифок. | true |
imageCenterEditorEnabled | Таб редактора изображений. | true |
compressMaxSize | Макс. вес картинки после оптимизации, Мб. | true |
compressMaxWidthOrHeight | Макс. ширина картинки после оптимизации, px. | true |
Обработка событий
События могут быть переданы в конфигурации или добавлены после при работе с экземпляром плагина. Все подписчики событий могут быть асинхронными функциями.
Пример
emailmaker.init({
....,
// Подписка на события в инициализации.
handleReadEmail: (e) => {},
handleSaveEmail: async (e) => {}
}).then((instance) => {
// Подписка на события после инициализации.
const dispose = instance.handleReadEmail(e => {});
const dispose = instance.handleSaveEmail(async (e) => {});
});
Передавая асинхронную функцию, вы можете реализовать асинхронную загрузку данных.
Пример
emailmaker.init({
element: "#test",
content: {
id: "1"
}
handleReadEmail: async (id) => {
return await fetchData(id); // Ваша функция получения данных.
}
}).then((instance) => {
setTimeout(() => instance.show({ id: "2" }), 1000)
});
События
Обработчик события | Описание |
handleReadEmail | Чтение письма |
handleSaveEmail | Сохранение / обновление письма |
handleReadEmailRevisions | Чтение списка автосохранений |
handleEmailAutosave | Автосохранение |
handleReadBlocks | Чтение списка блоков проекта |
handleSaveBlock | Сохранение / обновление блока проекта |
handleRemoveBlock | Удаление блока проекта |
handleReadComments | Чтение списка комментариев письма |
handleSaveComment | Сохранение / обновление комментария |
handleRemoveComment | Удаление комментария письма |
handleSaveButtonClick | Нажатие кнопки сохранения письма |
handleNextButtonClick | Нажатие кнопки Далее |
handlePreviousButtonClick | Нажатие кнопки Назад |
handleEmailChanged | Изменение любого параметра письма |
handleHtmlChanged | Изменение кода письма |
handleDestroy | Деструкция плагина |
handleLoad | Окончание инициализации экземпляра плагина |
handleLoadImage | Загрузка изображений |
handleNotify | Уведомление |
handleError | Уведомление типа Ошибка |
handleSuccess | Уведомление типа Успех |
handleTestEmailSend | Отправка тестового письма |
handleTestEmailModal | Открытие модального окна тестового письма |
Методы
Метод | Описание |
init | Инициализация (async) |
show | Изменение содержимого после инициализации |
destroy | Деструкция экземпляра |
reset | Сброс всей конфигурации |
getEmail | Получение текущего письма |
getConfig | Получение конфигурации |
getBlocks | Получение блоков проекта |
getComments | Получение комментариев письма |
getEmailRevisions | Получение списка контроля версий |
setConfig | Установка новых парамеров config |
updateConfig | Добавление к параметрам config |
notify | Показ уведомлений |
getElement | Получение элемента инициализации |
save | Сохраенние письма. |
compileEmail | Получение скопмилированного письма |