Плагин

Конфигурация редактора..

Конфигурация плагина представляет собой 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
mergeTagsJSON со списком динамических переменных.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Получение скопмилированного письма