Files
Learn_System/plans/lab-content-engine/phase-2-lazy-mount.md
T
2026-05-30 14:33:31 +03:00

38 lines
2.0 KiB
Markdown

# Phase 2: Тела симуляций как шаблоны + ленивый mount
**Status:** ✅ Done (3f99d1b) — браузер-проверка пройдена (пользователь подтвердил: симуляции работают)
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** frontend
## Objective
Вынести inline-HTML тел симуляций (`<div id="sim-xxx">`, ~3000 строк) из lab.html в
манифесты: `mount(host)` создаёт DOM лениво при первом открытии. lab.html худеет.
## Tasks
- [ ] Добавить в манифест поле `mount(host)` (или `bodyHtml`) — строит/возвращает тело симуляции.
- [ ] Ядро: при первом open — если тело не смонтировано, вызвать mount() в контейнер `#lab-sim`.
- [ ] Перенести разметку каждого `sim-xxx` тела + его `ctrl-xxx` бара из lab.html в соответствующий модуль.
- [ ] Удалить вынесенные блоки из lab.html.
- [ ] Сохранить id элементов (canvas ids, ctrl ids) — на них завязаны Sim-классы.
## Files to Modify/Create
- Все `frontend/js/labs/*.js` — добавить mount/bodyHtml.
- `frontend/lab.html` — удалить inline тела.
## Acceptance Criteria
- Все симуляции монтируются и работают.
- lab.html значительно меньше (~3000 строк вынесено).
- Повторное открытие не дублирует DOM.
## Notes
- Theory-panel и общий sim-topbar остаются в lab.html.
- KaTeX/lucide ре-инициализация после mount при необходимости.
## Review Checklist
- [ ] Нет дублей DOM при повторном open
- [ ] id элементов сохранены
- [ ] Все тела перенесены
## Handoff to Next Phase
<!-- заполнить после фазы -->