@emailmaker/emailmaker 1.2.0 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/README.md +4 -0
- package/emailmaker-core.ee1618fa.js +859 -0
- package/emailmaker-esm.js +11 -11
- package/{emailmaker-po.fec11667.js → emailmaker-po.ee1618fa.js} +1 -1
- package/emailmaker.d.ts +34 -2
- package/emailmaker.js +12 -12
- package/iframe/.vite/manifest.json +4 -4
- package/iframe/{iframe-eblock.fec11667.html → iframe-eblock.ee1618fa.html} +2 -2
- package/iframe/{iframe.fec11667.html → iframe.ee1618fa.html} +2 -2
- package/iframe/js/elMarkupHelper.Buog1r0c.js +278 -0
- package/iframe/js/iframe-eblock.body.ee1618fa.js +9 -0
- package/iframe/js/iframe-eblock.js +2 -2
- package/iframe/js/iframe.body.ee1618fa.js +129 -0
- package/iframe/js/iframe.js +2 -2
- package/iframe/js/sanitize-html/sanitize-html.js +46 -21756
- package/package.json +1 -1
- package/runtime/react/index.js +1 -1
- package/static/core/155e871a.js +7 -0
- package/static/core/{7be64bf5.js → 17fba7af.js} +1 -1
- package/static/core/{a9235d9e.js → 2a042fe3.js} +1 -1
- package/static/core/{c5713f94.js → 32a14159.js} +1 -1
- package/static/core/{99c15a5d.js → 4de9c323.js} +1 -1
- package/static/core/{ec5f739e.js → 50ba806c.js} +10 -10
- package/static/core/{db685f4e.js → 5b6e2acb.js} +1 -1
- package/static/core/{f2ced98d.js → 63e7f8c1.js} +2 -2
- package/static/core/{790366d3.js → 64711257.js} +1 -1
- package/static/core/{f54ef492.js → 659796a7.js} +1 -1
- package/static/core/{b74171bd.js → 683a6a53.js} +1 -1
- package/static/core/{b27aec0b.js → 6b16159c.js} +1 -1
- package/static/core/{5c4239d8.js → 7e167222.js} +1 -1
- package/static/core/{8b89090c.js → 82f8beb4.js} +1 -1
- package/static/core/{a2c7aeb0.js → 987afc3f.js} +1 -1
- package/static/core/{44fac8d4.js → 9eaed676.js} +1 -1
- package/static/core/{9f7e0f94.js → a8b4352d.js} +1 -1
- package/static/core/{b7dee12b.js → b7289065.js} +2 -2
- package/static/core/b96e571d.js +2 -0
- package/static/core/c03be019.js +4 -0
- package/static/core/{7d006e7b.js → c3d00c5e.js} +1 -1
- package/static/core/{727a165f.js → c67df236.js} +1 -1
- package/static/core/{e15ab856.js → c8443fab.js} +1 -1
- package/static/core/{64c27f91.js → d2780737.js} +1 -1
- package/static/core/d503c406.js +1 -0
- package/static/core/{29b3ccef.js → dd230bbb.js} +1 -1
- package/static/core/e7fa68c2.js +28 -0
- package/static/core/{ccb090eb.js → f35181ec.js} +7 -7
- package/static/esm/b4f8dfdc.js +1 -0
- package/static/umd-runtime/{runtime.CunK0nEC.js → runtime.Bsid8PpY.js} +1 -1
- package/vendor/@emailmaker/ui-kit/package.json +1 -1
- package/emailmaker-core.fec11667.js +0 -859
- package/iframe/js/elMarkupHelper.Dv3AYDYP.js +0 -279
- package/iframe/js/iframe-eblock.body.fec11667.js +0 -9
- package/iframe/js/iframe.body.fec11667.js +0 -129
- package/iframe/js/sanitize-html/sanitize-html.min.js +0 -16923
- package/static/core/2e70fae0.js +0 -4
- package/static/core/83d2ca5d.js +0 -28
- package/static/core/8da91a53.js +0 -2
- package/static/core/bbb87124.js +0 -1
- package/static/core/e7bbe544.js +0 -7
- package/static/esm/ae0fe329.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,87 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [1.2.5] - 2026-10-28
|
|
10
|
+
|
|
11
|
+
### Добавлено
|
|
12
|
+
|
|
13
|
+
- Редактор блока в плагине: `show({ block })` и `showBlock(block, options)` показывают блок,
|
|
14
|
+
`openBlock(id | блок)` открывает его поверх письма, а `closeBlock()` возвращает к письму — без потери
|
|
15
|
+
несохранённого и истории отмены. `saveBlock()` сохраняет блок, `getBlockSnapshot()` отдаёт его
|
|
16
|
+
текущий код без сохранения, `show({ block, reload: true })` перечитывает блок
|
|
17
|
+
- События блока: `handleReadBlock`, `handleOpenBlock`, `handleCloseBlock`, `handleCloneBlock`,
|
|
18
|
+
`handleBlockInit`, `handleBlockChanged`, `handleSaveBlockButtonClick` (ответ `false` отменяет
|
|
19
|
+
сохранение), автосохранения и ревизии блока — `handleBlockAutosave`, `handleRemoveBlockAutoSave`,
|
|
20
|
+
`handleReadBlockRevisions`, `handleReadBlockAutosave`; признак `isNew` у письма и блока
|
|
21
|
+
- Признак `openBlockFromEmailEnabled` (по умолчанию `false`): пункт «Edit block» в библиотеке блоков
|
|
22
|
+
открывает редактор блока поверх письма
|
|
23
|
+
- Колбэк `handleAnalyticsEvent` — действия пользователя в редакторе для вашей аналитики: сохранение,
|
|
24
|
+
импорт и экспорт, проверки, предпросмотр, конвертация вёрстки, ИИ. Идентификаторов, имён и текста
|
|
25
|
+
письма в событиях нет
|
|
26
|
+
- Событие `handleImportValidate` — ошибки разметки импортируемого файла до того, как браузер их
|
|
27
|
+
молча «починит»; импорт его не ждёт
|
|
28
|
+
- Флаг `saveHotkeyEnabled` (по умолчанию `true`): при `false` Ctrl+S / Cmd+S не сохраняет ни письмо, ни
|
|
29
|
+
блок
|
|
30
|
+
- Флаг `formButtonFieldInsertImageEnabled` снова показывает «Добавить картинку» в настройках кнопки. В
|
|
31
|
+
Outlook картинка в кнопке не видна
|
|
32
|
+
- File Manager: флаг `trashSupportsFolders` — если корзина хранилища не умеет папки, удалённая папка
|
|
33
|
+
попадает в корзину своими файлами плоским списком. «Очистить корзину» работает и у провайдера без
|
|
34
|
+
`cleanTrash`
|
|
35
|
+
|
|
36
|
+
### Исправлено
|
|
37
|
+
|
|
38
|
+
- Набор текста на холсте: быстрая печать вперемешку с Ctrl+Z / Ctrl+Y не теряет буквы; курсор после
|
|
39
|
+
Enter, отмены, повтора и вставки остаётся на месте правки; ввод поверх выделения и удаление слова не
|
|
40
|
+
дробят текст и не снимают форматирование; Ctrl+Backspace и Delete удаляют переменную целиком
|
|
41
|
+
- Удаление на холсте: Delete на элементе колонки не стирает соседние, удаление выделенного пункта
|
|
42
|
+
списка не стирает весь текстовый блок, картинки и кнопки рядом не пропадают; Ctrl+X и «Удалить» из
|
|
43
|
+
меню браузера убирают текст из письма
|
|
44
|
+
- Вставка из буфера: простой текст сохраняет переводы строк и не выполняет скрипты, повторный Ctrl+V
|
|
45
|
+
не множит вставку, вставка у края ссылки или переменной ложится снаружи
|
|
46
|
+
- Ссылка на выделении, которое выходит за пределы оформленного куска текста, получает адрес и
|
|
47
|
+
настройки
|
|
48
|
+
- Отмена и повтор: Ctrl+Y на холсте и в редакторе кода — повтор, как Ctrl+Shift+Z; отмена и повтор из
|
|
49
|
+
меню браузера идут через историю редактора; после отмены выделение возвращается туда, где было
|
|
50
|
+
- Набранное на холсте не теряется при медленном ответе редактора, сохранение дожидается всех правок
|
|
51
|
+
- Скрипты письма не выполняются повторно при перестройке списков и таблиц и не удаляются фильтром
|
|
52
|
+
- Наведение мыши не сбивает курсор и набор в блоке, где печатают
|
|
53
|
+
- Разбор кода письма: кривые закрывающие теги, одинокий `<`, конструкции `<?…>` и атрибуты таблиц
|
|
54
|
+
разбираются как в браузере — строки таблиц не выпадают, перевод строки после `<style>` не съедается
|
|
55
|
+
- Изменённые стили попадают в письмо цветами в hex, а не `rgb()`
|
|
56
|
+
- Показ письма в плагине: тема и прехедер из `show()` не перебиваются вёрсткой; повторный `show()` или
|
|
57
|
+
`reset()` того же письма и показ сохранённого кода не затирают несохранённую правку; `setConfig()`
|
|
58
|
+
без режима не сбрасывает выбор переключателя
|
|
59
|
+
- Смена письма: история версий, обсуждения, беседа и ответы ИИ прежнего письма не попадают в новое
|
|
60
|
+
- «Сохранить» не выключается на время автосохранения, первое сохранение нового письма не очищает
|
|
61
|
+
историю отмены; на бесплатном тарифе автосохранение работает и после перехода на другое письмо
|
|
62
|
+
- Генерация письма и картинки ИИ в плагине не крутится бесконечно; тема и прехедер от ИИ попадают в
|
|
63
|
+
поля шапки
|
|
64
|
+
- Типограф не ломает разметку письма: результат проверяется перед применением, числа и валюта
|
|
65
|
+
правятся только в тексте
|
|
66
|
+
- Сжатие картинок при загрузке: фото сжимается качеством, а не разрешением; картинка, которая уже
|
|
67
|
+
укладывается в лимиты, не пережимается
|
|
68
|
+
- Файл картинки, брошенный на картинку, снова её заменяет; «Редактировать» на заглушке картинки
|
|
69
|
+
открывает загрузку файла
|
|
70
|
+
- Холст переключается вместе с темой интерфейса, «системная» тема следует за ОС и после перезагрузки
|
|
71
|
+
- Импорт письма без `<body>` не роняет холст, теги Word (`<o:p>`) срезаются из темы письма
|
|
72
|
+
- Экспорт для Outlook берёт тему письма в Subject
|
|
73
|
+
- Пустой `<title>` больше не считается ошибкой проверки кода
|
|
74
|
+
- Тексты ошибок сервера приходят на языке интерфейса, а не браузера
|
|
75
|
+
- В Safari часть страницы, которая не загрузилась, загружается повторно без перезагрузки страницы
|
|
76
|
+
- Редактор блоков: настройки кнопки, ссылки и ячейки снова применяются, клик по промежутку колонок не
|
|
77
|
+
роняет холст, «Объединить блоки» работает, шрифты проекта и AMP сохраняются вместе с блоком
|
|
78
|
+
- File Manager: имя файла в табличном виде не сжимается в столбик на узком экране, неполная очистка
|
|
79
|
+
корзины не выдаётся за успех
|
|
80
|
+
- Переводы: длительность таймера и повтор «Custom fonts» в русском интерфейсе
|
|
81
|
+
|
|
82
|
+
### Изменено
|
|
83
|
+
|
|
84
|
+
- `lockEditor: true` закрывает не только холст и код: неактивны импорт, отмена и повтор, история
|
|
85
|
+
версий, поля темы и прехедера, ИИ-чат, конвертер вёрстки, аннотации Gmail и переключатель «Шаблон».
|
|
86
|
+
Кнопки остаются на месте с подсказкой «Только для чтения», методы API работают как раньше
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
9
90
|
## [1.1.104] - 2026-10-13
|
|
10
91
|
|
|
11
92
|
### Добавлено
|
package/README.md
CHANGED
|
@@ -558,6 +558,8 @@ HTML-разметка письма.
|
|
|
558
558
|
| saveHotkeyEnabled | Сохранение по Ctrl+S / Cmd+S. `false` отключает его; диалог браузера «Сохранить страницу» всё равно не открывается. | true |
|
|
559
559
|
| commandButtonsEnabled | Показ основной и второстепенной кнопки. | true |
|
|
560
560
|
| | | |
|
|
561
|
+
| lockEditor | Режим только для чтения: письмо нельзя изменить. Закрывает холст, редактор кода, поля темы и прехедера, импорт, отмену и повтор (кнопки и клавиши), историю версий, настройки письма и UTM-метки, ИИ-чат, конвертер раскладки и аннотации Gmail. Кнопки остаются на месте, но неактивны; иконка ИИ у темы и прехедера скрывается. Методы API (`show`, `setEmail`, отмена через API) не закрываются. Переключается через `setConfig`. | false |
|
|
562
|
+
| | | |
|
|
561
563
|
| sidePanelFloating | Плавающая боковая панель. | true |
|
|
562
564
|
| desktopMobileSwitchRule | Полоса переключения режимов. | true |
|
|
563
565
|
| desktopMobileSwitchPanel | Панель переключения режимов. | false |
|
|
@@ -952,6 +954,7 @@ emailmaker.init({
|
|
|
952
954
|
| `trashPath` | `string` | Путь к корзине/папке для удаленных файлов | - |
|
|
953
955
|
| `tempPath` | `string` | Путь к временной папке для загрузок | - |
|
|
954
956
|
| `useSoftDelete` | `boolean` | Включить программное мягкое удаление | `false` |
|
|
957
|
+
| `trashSupportsFolders` | `boolean` | Корзина принимает папки (при `useSoftDelete`) | `true` |
|
|
955
958
|
| `ensureFolderTrailingSlash` | `boolean` | Добавлять к путям папок завершающий слэш | `true` |
|
|
956
959
|
| `validateDuplicates` | `boolean` | Проверка на существование при операциях с файлами и папками | - |
|
|
957
960
|
|
|
@@ -991,6 +994,7 @@ emailmaker.init({
|
|
|
991
994
|
##### Важные примечания
|
|
992
995
|
|
|
993
996
|
- **Мягкое удаление**: Когда `useSoftDelete=true`, операции удаления перемещают элементы в `trashPath`
|
|
997
|
+
- **Корзина без папок**: Если бэкенд не принимает папки в корзине, задайте `trashSupportsFolders=false`: при удалении папки файлы всего её поддерева переносятся в корзину плоским списком (совпавшее имя получает номер, `photo (1).png`, если реализован `renameItem`), а опустевшие папки удаляются навсегда. Если хоть один файл не перенёсся, папка не удаляется
|
|
994
998
|
- **Корневая папка**: Используйте `rootId` или пустую строку для операций с корневой папкой
|
|
995
999
|
- **Разрешение путей**: `trashPath` и `tempPath` преобразуются в реальные идентификаторы папок
|
|
996
1000
|
- **Загрузка по URL**: Должна проверять, существует ли файл уже на текущем сервере
|