c64222a90d
Вкладка «Слоты» масштабирована под ~20k слотов/мес без торможения: - wktCache: контур слота парсится один раз (кэш по slotKey), не на каждый ререндер сцены - виртуализация таблицы (@tanstack/react-virtual): в DOM только видимое окно строк - автоподбор покрытия: проброс coverageStrategy (GREEDY/CONTINUOUS) в request-cover, результат — преднабор брони (solver не дублируется, используется бэкендный) - мультивыбор: Shift-диапазон по отсортированному списку, «все сутки»/«видимые», счётчик охвата выбора - бронь крупных наборов чанками (по 200) + подтверждение выше 500 + прогресс - отмена расчёта (AbortController), мягкая подсказка перегруза карты - чистая логика выбора/чанкинга вынесена в slotSelection.ts + юнит-тесты Тесты: 70/70 (17 новых). tsc -b и vite build чисто.
43 lines
1.4 KiB
JSON
43 lines
1.4 KiB
JSON
{
|
||
"name": "pcp-tgu-ui-service",
|
||
"version": "0.1.0",
|
||
"private": true,
|
||
"type": "module",
|
||
"engines": {
|
||
"node": "^24.0.0 || ^22.0.0"
|
||
},
|
||
"scripts": {
|
||
"dev": "vite",
|
||
"build": "tsc -b && vite build",
|
||
"preview": "vite preview",
|
||
"test": "vitest run"
|
||
},
|
||
"comment-deps": "@nstart/ui и соседние пакеты — peer-зависимости barrel-экспорта @nstart/auth (его ProfilePage/UserPanel). В наших экранах НЕ используются и вырезаются tree-shaking из итогового бандла, но должны быть установлены, чтобы сборка резолвила реэкспорты.",
|
||
"dependencies": {
|
||
"@hookform/resolvers": "^5.2.2",
|
||
"@nstart/auth": "^0.3.3",
|
||
"@nstart/ui": "^0.4.0",
|
||
"@phosphor-icons/react": "^2.1.10",
|
||
"@tanstack/react-query": "^5.96.1",
|
||
"@tanstack/react-virtual": "^3.14.2",
|
||
"d3-geo": "^3.1.1",
|
||
"react": "^19.2.4",
|
||
"react-dom": "^19.2.4",
|
||
"react-hook-form": "^7.66.0",
|
||
"react-i18next": "^17.0.2",
|
||
"topojson-client": "^3.1.0",
|
||
"zod": "^4.1.12"
|
||
},
|
||
"devDependencies": {
|
||
"@types/node": "^22.10.0",
|
||
"@types/react": "^19.2.14",
|
||
"@types/react-dom": "^19.2.3",
|
||
"@vitejs/plugin-react": "^6.0.1",
|
||
"jsdom": "^27.2.0",
|
||
"playwright": "^1.60.0",
|
||
"typescript": "^6.0.2",
|
||
"vite": "^8.0.3",
|
||
"vitest": "^4.0.14"
|
||
}
|
||
}
|