Что добавлено:
- Слева дерево товарных групп (рекурсивное, с раскрытием), клик
переключает фильтр ProductsPage. Клик на "Все товары" — показать весь
каталог. Выбор группы включает её поддерево (матчинг по Path prefix
на бэкенде, чтобы сабгруппы тоже попадали в выборку).
- Кнопка "Фильтры" разворачивает верхнюю панель с тумблерами
(all/да/нет): Активные, Услуга, Весовой, Маркируемый, Со штрихкодом.
Счётчик в кнопке показывает количество активных не-дефолтных фильтров.
- "Сбросить" очищает всё, кроме группы.
API:
- ProductsController.List: добавлены параметры `isMarked`, `hasBarcode`.
`groupId` теперь фильтрует по Path-prefix (вся ветка вместо одной
группы) — это ближе к UX OtherSystem.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>