0.75.0 • Published 6 days ago

email-maker-dev v0.75.0

Weekly downloads
-
License
ISC
Repository
-
Last release
6 days ago

Это Dev версия плагина редаткора писем EmailMaker.В Prod версии, которая будет выпущена в ближайшем будущем будут незначительные отличия: в ней не будет эксперементальных функций, а весь имеющийся функциоенал будет более глубоко протестирован перед релизами.

Установка

Выполните этот код в командной строке:

$ npm i email-maker-dev@0.75.0 -save

Добавьте EmailMaker plugin в ваш App config.

Для сборщика Webpack

Импорт пакета:

const emailMakerPlugin = require('email-maker-dev/webpack')

Определение пакета в приложении:

module.exports = {
	plugins: [
		new EmailmakerWebpackPlugin(),
	]
}

Для сборщика Vite

Импорт пакета:

import emailMakerPlugin from 'email-maker-dev/vite'

Определение пакета в приложении:

export default defineConfig({
	plugins: [emailMakerPlugin()],
})

Инициализация

Импортируйте EmailMaker plugin в вашем компоненте:

import * as emailmaker from "email-maker-dev"

Параметры инициализации плагина содержат параметр getAuthToken. В него должна быть передана функция, которая запрашивает авторизационный OAuth токен по Client ID и Client Secret.

Полчение OAuth токена на бэкенде

curl --location 'https://api.emailmaker.ru/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=*******' \
--data-urlencode 'client_secret=*******' \
--data-urlencode 'grant_type=client_credentials'

Созадние сущсности EmailMaker plugin

emailmaker.init({
	getAuthToken: getAuthToken,
	element: "#test",
	content: {
		title: "Email subject",
		html: "<html><body>Email HTML code</body></html>",
	},
	config: { }
}).then(instance => {  })

Конфигурация

Конфигурация плагина представляет собой 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
ParameterDescriptionDefault
themePlugin theme: light, dark.light
headerArrowBackVisibleDisplaying the "Back" arrow.true
headerTitleVisibleDisplaying the "Title" field.true
headerPreheaderVisibleDisplaying the "Preheader" field.true
pathEnabledBread crumbstrue
.........

Обработка событий

События могут быть переданы в конфигурации или добавлены после при работе с экземпляром плагина. Все подписчики событий могут быть асинхронными функциями.

Пример

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Сохраенние письма.
0.74.0

6 days ago

0.75.0

6 days ago

0.73.0

19 days ago

0.72.0

25 days ago

0.70.0

26 days ago

0.71.0

26 days ago

0.69.0

28 days ago

0.68.0

1 month ago

0.67.0

1 month ago

0.66.0

2 months ago

0.65.0

2 months ago

0.64.0

2 months ago

0.63.0

2 months ago

0.62.0

2 months ago

0.61.0

3 months ago

0.60.0

3 months ago

0.57.0

3 months ago

0.58.0

3 months ago

0.56.0

3 months ago

0.55.0

3 months ago

0.53.0

3 months ago

0.54.0

3 months ago

0.52.0

3 months ago

0.51.0

3 months ago

0.50.0

3 months ago

0.49.0

3 months ago

0.48.0

3 months ago

0.47.0

3 months ago

0.46.0

3 months ago

0.43.0

3 months ago

0.44.0

3 months ago

0.45.0

3 months ago

0.42.0

4 months ago

0.40.0

4 months ago

0.41.0

4 months ago

0.39.0

4 months ago

0.38.0

5 months ago

0.37.0

5 months ago

0.36.0

5 months ago

0.35.0

5 months ago

0.34.0

5 months ago

0.33.0

5 months ago

0.32.0

5 months ago

0.31.0

5 months ago

0.30.0

5 months ago

0.29.0

6 months ago

0.28.0

7 months ago

0.27.0

7 months ago

0.26.0

7 months ago

0.25.0

8 months ago

0.24.0

8 months ago

0.23.0

8 months ago

0.22.0

8 months ago

0.21.0

8 months ago

0.20.0

8 months ago

0.19.0

8 months ago

0.18.0

8 months ago

0.17.0

8 months ago

0.16.0

8 months ago

0.15.0

8 months ago

0.14.0

8 months ago

0.13.0

8 months ago

0.12.0

8 months ago

0.11.0

8 months ago

0.10.0

8 months ago

0.9.0

8 months ago

0.8.0

8 months ago

0.7.0

8 months ago

0.6.0

8 months ago

0.5.0

8 months ago

0.4.0

8 months ago

0.3.0

8 months ago

0.2.0

8 months ago

0.1.0

8 months ago