Skip to content

Правим применение initialState, initialImage и вставку объектов, исправляем баги связанные с прилипанием объектов и расчётом расстояний#257

Merged
Anu3ev merged 12 commits intomasterfrom
working-tree
Feb 6, 2026

Conversation

@Anu3ev
Copy link
Owner

@Anu3ev Anu3ev commented Feb 4, 2026

  1. При инициализации юзер может передать initialState и initialImage, но использовано будет что-то одно: либо initialState, либо initialImage
  2. initialStateJSON > initialState.
  3. При применении initialState останавливаем историю.
  4. При копировании/вставке храним customData, autoExpand, contentType.
  5. При эмите событий вставки объектов отдаём больше данных.
  6. ClipboardManager. При вставке объекта из внешнего буфера даём юзеру сделать необходимые ему действия с этим изображением и вернуть customData через deffered promise
  7. ImageManager. Перед применением initialState подгружаем картинки, кешируем их как blob-объекты, а затем применяем состояние. Нужно чтобы не подгружать картинки заново каждый раз когда нужно восстановить историю при вызове undo/redo.
  8. Если не удалось применить initialState, то в качестве фоллбека пробуем применить initialImage.
  9. Пишем тесты
  10. SnappingManager. Исправляем баг когда не работало равноудалённое прилипание для объектов которые расположены поверх другого объекта.

…и initialImage. 2. initialStateJSON > initialState. 3. При применении initialState останавливаем историю. 4. При копировании/вставке храним customData, autoExpand, contentType. 5. При эмите событий вставки объектов отдаём больше данных.
@github-actions
Copy link

github-actions bot commented Feb 4, 2026

Результаты тестирования на Node.js 20

🎉 Все тесты прошли успешно!

📊 Покрытие кода тестами

💡 Что это означает? Покрытие показывает, какая часть вашего кода проверена тестами.

Метрика Значение Что проверяется
📝 Строки кода 59.57% Сколько строк кода было выполнено во время тестов
Функции 55.75% Сколько функций было вызвано и протестировано
🌿 Ветвления 46.54% Сколько условий if/else/switch было проверено
Утверждения 58.01% Сколько отдельных команд было выполнено
📁 Покрытие по файлам (нажмите чтобы развернуть)
  • image-editor/src/main.ts: 100% строк, 100% функций
  • demo/js/elements.js: 0% строк, 100% функций
  • demo/js/index.js: 0% строк, 0% функций
  • demo/js/listeners.js: 0% строк, 0% функций
  • demo/js/methods.js: 0% строк, 0% функций
  • src/editor/constants.ts: 100% строк, 100% функций
  • src/editor/default-fonts.ts: 100% строк, 100% функций
  • src/editor/defaults.ts: 100% строк, 100% функций
  • editor/index.ts: 99.18% строк, 100% функций
  • src/editor/listeners.ts: 94.73% строк, 88.88% функций
  • background-manager/index.ts: 82.25% строк, 88.88% функций
  • canvas-manager/index.ts: 92.68% строк, 100% функций
  • clipboard-manager/index.ts: 83.12% строк, 92% функций
  • editor/customized-controls/constants.ts: 100% строк, 100% функций
  • editor/customized-controls/default-controls.ts: 100% строк, 100% функций
  • customized-controls/index.ts: 3.52% строк, 0% функций
  • editor/customized-controls/renderers.ts: 14.75% строк, 0% функций
  • deletion-manager/index.ts: 3.33% строк, 0% функций
  • editor/error-manager/error-codes.ts: 100% строк, 100% функций
  • error-manager/index.ts: 100% строк, 100% функций
  • font-manager/index.ts: 92.85% строк, 94.73% функций
  • grouping-manager/index.ts: 100% строк, 100% функций
  • history-manager/index.ts: 94.81% строк, 93.87% функций
  • image-manager/index.ts: 94.37% строк, 97.22% функций
  • interaction-blocker/index.ts: 2.04% строк, 0% функций
  • layer-manager/index.ts: 97.82% строк, 100% функций
  • editor/measurement-manager/constants.ts: 100% строк, 100% функций
  • measurement-manager/index.ts: 88.51% строк, 92% функций
  • module-loader/index.ts: 11.11% строк, 0% функций
  • object-lock-manager/index.ts: 6.45% строк, 0% функций
  • pan-constraint-manager/index.ts: 6.97% строк, 14.28% функций
  • selection-manager/index.ts: 79.53% строк, 84% функций
  • shape-manager/index.ts: 6.97% строк, 0% функций
  • editor/snapping-manager/calculations.ts: 86.66% строк, 100% функций
  • editor/snapping-manager/constants.ts: 100% строк, 100% функций
  • snapping-manager/index.ts: 57.95% строк, 62.5% функций
  • editor/snapping-manager/renderer.ts: 15.78% строк, 0% функций
  • editor/snapping-manager/utils.ts: 100% строк, 100% функций
  • template-manager/index.ts: 3.29% строк, 2.5% функций
  • editor/text-manager/background-textbox.ts: 92.09% строк, 100% функций
  • editor/text-manager/constants.ts: 100% строк, 100% функций
  • editor/text-manager/geometry.ts: 98.36% строк, 100% функций
  • text-manager/index.ts: 60.52% строк, 68.96% функций
  • editor/text-manager/line-defaults.ts: 66.89% строк, 75% функций
  • editor/text-manager/selection.ts: 81.52% строк, 62.5% функций
  • transform-manager/index.ts: 82.47% строк, 91.66% функций
  • ui/angle-indicator/constants.ts: 100% строк, 100% функций
  • angle-indicator/index.ts: 100% строк, 100% функций
  • ui/toolbar-manager/default-config.ts: 18.18% строк, 0% функций
  • ui/toolbar-manager/icons.ts: 100% строк, 100% функций
  • toolbar-manager/index.ts: 1.66% строк, 0% функций
  • editor/utils/geometry.ts: 39.06% строк, 28.57% функций
  • editor/utils/gradient.ts: 7.69% строк, 0% функций
  • editor/utils/object-filter.ts: 93.75% строк, 66.66% функций
  • editor/utils/render-utils.ts: 100% строк, 100% функций
  • editor/utils/text.ts: 100% строк, 100% функций
  • worker-manager/index.ts: 13.63% строк, 0% функций
  • editor/worker-manager/worker.ts: 0% строк, 0% функций
  • zoom-manager/index.ts: 52.51% строк, 78.57% функций

🔗 Скачать полный отчёт о покрытии

⚠️ Рекомендация: Покрытие ниже 80%. Добавьте больше тестов для критичных участков кода.


🤖 Протестировано на Node.js 20 | ⏱️ 06.02.2026, 13:30:21

Alexander added 8 commits February 5, 2026 17:15
… ему действия с этим изображением и вернуть customData через deffered promise
…ируем их как blob-объекты, а затем применяем состояние. Нужно чтобы не подгружать картинки заново каждый раз когда нужно восстановить историю при вызове undo/redo.
…ромисе ожидаем только опции для imageImport
…ипание для объектов которые расположены поверх другого объекта.
@Anu3ev Anu3ev changed the title Правим применение initialState и вставку объектов Правим применение initialState и вставку объектов + исправляем несколько багов Feb 6, 2026
Alexander added 3 commits February 6, 2026 16:58
…ипание для объектов которые расположены поверх другого объекта.
@Anu3ev Anu3ev changed the title Правим применение initialState и вставку объектов + исправляем несколько багов Правим применение initialState, initialImage и вставку объектов, исправляем несколько багов Feb 6, 2026
@Anu3ev Anu3ev changed the title Правим применение initialState, initialImage и вставку объектов, исправляем несколько багов Правим применение initialState, initialImage и вставку объектов, исправляем баги связанные с прилипанием объектов и расчётом расстояний Feb 6, 2026
@Anu3ev Anu3ev merged commit 07dcdf3 into master Feb 6, 2026
1 check passed
@Anu3ev Anu3ev deleted the working-tree branch February 6, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant