From 4b02c6e9d355b00c03eef4f89a5e2f6469ea7942 Mon Sep 17 00:00:00 2001 From: itoshi Date: Mon, 6 Apr 2026 13:23:25 +0300 Subject: [PATCH] feat: trim for aplhabet sort --- src/pages/Article/ArticleListPage/index.tsx | 2 +- src/pages/Carrier/CarrierListPage/index.tsx | 2 +- src/pages/City/CityListPage/index.tsx | 2 +- src/pages/Country/CountryListPage/index.tsx | 2 +- src/pages/MapPage/index.tsx | 14 +++++------ src/pages/MapPage/mapStore.ts | 2 +- src/pages/Media/MediaListPage/index.tsx | 2 +- src/pages/Route/RouteCreatePage/index.tsx | 6 ++--- src/pages/Route/RouteListPage/index.tsx | 2 +- src/pages/Sight/SightListPage/index.tsx | 2 +- src/pages/Snapshot/SnapshotListPage/index.tsx | 2 +- src/pages/Station/StationListPage/index.tsx | 2 +- src/pages/User/UserListPage/index.tsx | 2 +- src/pages/Vehicle/VehicleListPage/index.tsx | 2 +- src/shared/store/CarrierStore/index.tsx | 15 +++++++----- src/shared/store/CityStore/index.ts | 6 ++--- src/shared/store/CountryStore/index.ts | 6 ++--- src/shared/store/CreateSightStore/index.tsx | 4 ++-- src/shared/store/EditSightStore/index.tsx | 6 ++--- src/shared/store/RouteStore/index.ts | 3 +++ src/shared/store/SnapshotStore/index.ts | 2 +- src/shared/store/StationsStore/index.ts | 24 +++++++++---------- src/shared/store/UserStore/index.ts | 12 ++++++++-- src/shared/store/VehicleStore/index.ts | 8 +++---- tsconfig.tsbuildinfo | 2 +- 25 files changed, 73 insertions(+), 59 deletions(-) diff --git a/src/pages/Article/ArticleListPage/index.tsx b/src/pages/Article/ArticleListPage/index.tsx index 46bda00..99aa2ef 100644 --- a/src/pages/Article/ArticleListPage/index.tsx +++ b/src/pages/Article/ArticleListPage/index.tsx @@ -74,7 +74,7 @@ export const ArticleListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return articleList[language].data .filter((article) => !query || (article.heading ?? "").toLowerCase().includes(query)) .map((article) => ({ diff --git a/src/pages/Carrier/CarrierListPage/index.tsx b/src/pages/Carrier/CarrierListPage/index.tsx index 522bb98..4ebea1b 100644 --- a/src/pages/Carrier/CarrierListPage/index.tsx +++ b/src/pages/Carrier/CarrierListPage/index.tsx @@ -121,7 +121,7 @@ export const CarrierListPage = observer(() => { const canWriteCarriers = authStore.canWrite("carriers"); const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return (carriers[language].data ?? []) .filter((carrier) => !allowedCityIds || allowedCityIds.includes(carrier.city_id)) .filter( diff --git a/src/pages/City/CityListPage/index.tsx b/src/pages/City/CityListPage/index.tsx index 4a1d072..a759f49 100644 --- a/src/pages/City/CityListPage/index.tsx +++ b/src/pages/City/CityListPage/index.tsx @@ -59,7 +59,7 @@ export const CityListPage = observer(() => { }, [cities, countryStore.countries, language, isLoading]); const filteredRows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); if (!query) return rows; return rows.filter((row) => { const cityName = (row.name ?? "").toLowerCase(); diff --git a/src/pages/Country/CountryListPage/index.tsx b/src/pages/Country/CountryListPage/index.tsx index 8b4463f..0bd0a84 100644 --- a/src/pages/Country/CountryListPage/index.tsx +++ b/src/pages/Country/CountryListPage/index.tsx @@ -74,7 +74,7 @@ export const CountryListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return (countries[language]?.data ?? []) .filter((country) => !query || (country.name ?? "").toLowerCase().includes(query)) .map((country) => ({ diff --git a/src/pages/MapPage/index.tsx b/src/pages/MapPage/index.tsx index b3857f5..2c01e72 100644 --- a/src/pages/MapPage/index.tsx +++ b/src/pages/MapPage/index.tsx @@ -244,9 +244,9 @@ class MapStore { const sorted = [...features]; switch (sortType) { case "name_asc": - return sorted.sort((a, b) => a.name.localeCompare(b.name)); + return sorted.sort((a, b) => a.name.trim().localeCompare(b.name.trim())); case "name_desc": - return sorted.sort((a, b) => b.name.localeCompare(a.name)); + return sorted.sort((a, b) => b.name.trim().localeCompare(a.name.trim())); case "created_asc": return sorted.sort((a, b) => { if ( @@ -379,7 +379,7 @@ class MapStore { })); this.routes = this.routes.sort((a, b) => - a.route_number.localeCompare(b.route_number), + a.route_number.trim().localeCompare(b.route_number.trim()), ); await this.preloadRouteStations(routesIds); @@ -2545,14 +2545,14 @@ const MapSightbar: React.FC = observer( switch (sortType) { case "name_asc": return sorted.sort((a, b) => - ((a.get("name") as string) || "").localeCompare( - (b.get("name") as string) || "", + ((a.get("name") as string) || "").trim().localeCompare( + ((b.get("name") as string) || "").trim(), ), ); case "name_desc": return sorted.sort((a, b) => - ((b.get("name") as string) || "").localeCompare( - (a.get("name") as string) || "", + ((b.get("name") as string) || "").trim().localeCompare( + ((a.get("name") as string) || "").trim(), ), ); case "created_asc": diff --git a/src/pages/MapPage/mapStore.ts b/src/pages/MapPage/mapStore.ts index 273925f..0b1b3cd 100644 --- a/src/pages/MapPage/mapStore.ts +++ b/src/pages/MapPage/mapStore.ts @@ -69,7 +69,7 @@ class MapStore { path: route.path, })); this.routes = mappedRoutes.sort((a, b) => - a.route_number.localeCompare(b.route_number) + a.route_number.trim().localeCompare(b.route_number.trim()) ); }; diff --git a/src/pages/Media/MediaListPage/index.tsx b/src/pages/Media/MediaListPage/index.tsx index 66ce57b..dede83a 100644 --- a/src/pages/Media/MediaListPage/index.tsx +++ b/src/pages/Media/MediaListPage/index.tsx @@ -97,7 +97,7 @@ export const MediaListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return media .filter((item) => !query || (item.media_name ?? "").toLowerCase().includes(query)) .map((item) => ({ diff --git a/src/pages/Route/RouteCreatePage/index.tsx b/src/pages/Route/RouteCreatePage/index.tsx index 443fbdd..2c1d41b 100644 --- a/src/pages/Route/RouteCreatePage/index.tsx +++ b/src/pages/Route/RouteCreatePage/index.tsx @@ -267,9 +267,9 @@ export const RouteCreatePage = observer(() => { language as keyof typeof carrierStore.carriers ].data?.find((c: any) => c.id === carrier_id)?.full_name || "", carrier_id, - route_number: routeNumber, - route_sys_number: govRouteNumber, - route_name: routeName, + route_number: routeNumber.trim(), + route_sys_number: govRouteNumber.trim(), + route_name: routeName.trim(), route_direction, scale_min: scale_min !== null ? scale_min : 0, scale_max: scale_max !== null ? scale_max : 0, diff --git a/src/pages/Route/RouteListPage/index.tsx b/src/pages/Route/RouteListPage/index.tsx index 389beae..0a86f47 100644 --- a/src/pages/Route/RouteListPage/index.tsx +++ b/src/pages/Route/RouteListPage/index.tsx @@ -149,7 +149,7 @@ export const RouteListPage = observer(() => { const rows = useMemo(() => { const { selectedCityId } = selectedCityStore; - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); let filtered = routes.data; if (selectedCityId) { const cityCarrierIds = new Set( diff --git a/src/pages/Sight/SightListPage/index.tsx b/src/pages/Sight/SightListPage/index.tsx index cae5552..731791e 100644 --- a/src/pages/Sight/SightListPage/index.tsx +++ b/src/pages/Sight/SightListPage/index.tsx @@ -122,7 +122,7 @@ export const SightListPage = observer(() => { }); }, [sights, selectedCityStore.selectedCityId, canReadCities, authStore.meCities]); - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); const rows = filteredSights .filter((sight: any) => !query || (sight.name ?? "").toLowerCase().includes(query)) .map((sight) => ({ diff --git a/src/pages/Snapshot/SnapshotListPage/index.tsx b/src/pages/Snapshot/SnapshotListPage/index.tsx index 199c997..0664f7d 100644 --- a/src/pages/Snapshot/SnapshotListPage/index.tsx +++ b/src/pages/Snapshot/SnapshotListPage/index.tsx @@ -91,7 +91,7 @@ export const SnapshotListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return snapshots .filter( (snapshot) => diff --git a/src/pages/Station/StationListPage/index.tsx b/src/pages/Station/StationListPage/index.tsx index c971d8e..bf13ea9 100644 --- a/src/pages/Station/StationListPage/index.tsx +++ b/src/pages/Station/StationListPage/index.tsx @@ -125,7 +125,7 @@ export const StationListPage = observer(() => { const rows = useMemo(() => { const { selectedCityId } = selectedCityStore; - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return stationLists[language].data .filter((station: any) => !selectedCityId || station.city_id === selectedCityId) .filter( diff --git a/src/pages/User/UserListPage/index.tsx b/src/pages/User/UserListPage/index.tsx index 89a0e84..c16c1d9 100644 --- a/src/pages/User/UserListPage/index.tsx +++ b/src/pages/User/UserListPage/index.tsx @@ -109,7 +109,7 @@ export const UserListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return (users.data ?? []) .filter((user) => !query || diff --git a/src/pages/Vehicle/VehicleListPage/index.tsx b/src/pages/Vehicle/VehicleListPage/index.tsx index 5fe339d..ae09710 100644 --- a/src/pages/Vehicle/VehicleListPage/index.tsx +++ b/src/pages/Vehicle/VehicleListPage/index.tsx @@ -138,7 +138,7 @@ export const VehicleListPage = observer(() => { ]; const rows = useMemo(() => { - const query = searchQuery.toLowerCase(); + const query = searchQuery.trim().toLowerCase(); return (vehicles.data ?? []) .filter( (vehicle) => diff --git a/src/shared/store/CarrierStore/index.tsx b/src/shared/store/CarrierStore/index.tsx index e435685..88967cf 100644 --- a/src/shared/store/CarrierStore/index.tsx +++ b/src/shared/store/CarrierStore/index.tsx @@ -193,11 +193,11 @@ class CarrierStore { const cityName = this.resolveCityName(this.createCarrierData.city_id, language); const payload = { - full_name: this.createCarrierData[language].full_name, - short_name: this.createCarrierData[language].short_name, + full_name: (this.createCarrierData[language].full_name || "").trim(), + short_name: (this.createCarrierData[language].short_name || "").trim(), city: cityName, city_id: this.createCarrierData.city_id, - slogan: this.createCarrierData[language].slogan, + slogan: (this.createCarrierData[language].slogan || "").trim(), ...(this.createCarrierData.logo ? { logo: this.createCarrierData.logo } : {}), @@ -218,13 +218,13 @@ class CarrierStore { ); const patchPayload = { // @ts-ignore - full_name: this.createCarrierData[lang as any].full_name as string, + full_name: ((this.createCarrierData[lang as any].full_name as string) || "").trim(), // @ts-ignore - short_name: this.createCarrierData[lang as any].short_name as string, + short_name: ((this.createCarrierData[lang as any].short_name as string) || "").trim(), city: cityNameForLang || cityName, city_id: this.createCarrierData.city_id, // @ts-ignore - slogan: this.createCarrierData[lang as any].slogan as string, + slogan: ((this.createCarrierData[lang as any].slogan as string) || "").trim(), ...(this.createCarrierData.logo ? { logo: this.createCarrierData.logo } : {}), @@ -321,6 +321,9 @@ class CarrierStore { const cityName = this.resolveCityName(this.editCarrierData.city_id, lang); const response = await languageInstance(lang).patch(`/carrier/${id}`, { ...this.editCarrierData[lang], + full_name: (this.editCarrierData[lang].full_name || "").trim(), + short_name: (this.editCarrierData[lang].short_name || "").trim(), + slogan: (this.editCarrierData[lang].slogan || "").trim(), city: cityName, city_id: this.editCarrierData.city_id, ...(this.editCarrierData.logo diff --git a/src/shared/store/CityStore/index.ts b/src/shared/store/CityStore/index.ts index 6cbcce6..b806ed2 100644 --- a/src/shared/store/CityStore/index.ts +++ b/src/shared/store/CityStore/index.ts @@ -171,7 +171,7 @@ class CityStore { try { // Create city in primary language const cityPayload = { - name, + name: name.trim(), country: countryStore.countries[language as keyof CashedCountries]?.data.find( (c) => c.code === country_code @@ -200,7 +200,7 @@ class CityStore { )?.name || ""; const patchPayload = { - name: secondaryName || "", + name: (secondaryName || "").trim(), country: countryName, country_code: country_code || "", ...(arms ? { arms } : {}), @@ -285,7 +285,7 @@ class CityStore { ); await languageInstance(language as Language).patch(`/city/${code}`, { - name, + name: (name || "").trim(), country: country?.name || "", country_code: country_code, arms, diff --git a/src/shared/store/CountryStore/index.ts b/src/shared/store/CountryStore/index.ts index f130949..2453e23 100644 --- a/src/shared/store/CountryStore/index.ts +++ b/src/shared/store/CountryStore/index.ts @@ -136,7 +136,7 @@ class CountryStore { if (code && this.createCountryData[language].name) { await languageInstance(language as Language).post("/country", { code: code, - name: name, + name: name.trim(), }); runInAction(() => { @@ -156,7 +156,7 @@ class CountryStore { await languageInstance(secondaryLanguage as Language).patch( `/country/${code}`, { - name: name, + name: name.trim(), } ); } @@ -212,7 +212,7 @@ class CountryStore { if (name) { await languageInstance(language as Language).patch(`/country/${code}`, { - name: name, + name: name.trim(), }); runInAction(() => { diff --git a/src/shared/store/CreateSightStore/index.tsx b/src/shared/store/CreateSightStore/index.tsx index 646c0fc..6e02423 100644 --- a/src/shared/store/CreateSightStore/index.tsx +++ b/src/shared/store/CreateSightStore/index.tsx @@ -493,7 +493,7 @@ class CreateSightStore { latitude: this.sight.latitude, longitude: this.sight.longitude, is_default_icon: this.sight.is_default_icon, - name: this.sight[primaryLanguage].name, + name: (this.sight[primaryLanguage].name || "").trim(), address: this.sight[primaryLanguage].address, thumbnail: this.sight.thumbnail, icon: this.sight.icon, @@ -521,7 +521,7 @@ class CreateSightStore { latitude: this.sight.latitude, longitude: this.sight.longitude, is_default_icon: this.sight.is_default_icon, - name: this.sight[lang].name, + name: (this.sight[lang].name || "").trim(), address: this.sight[lang].address, thumbnail: this.sight.thumbnail, icon: this.sight.icon, diff --git a/src/shared/store/EditSightStore/index.tsx b/src/shared/store/EditSightStore/index.tsx index d46e59b..6200f1c 100644 --- a/src/shared/store/EditSightStore/index.tsx +++ b/src/shared/store/EditSightStore/index.tsx @@ -299,9 +299,9 @@ class EditSightStore { ...this.sight.common, translations: { name: { - ru: this.sight.ru.name, - en: this.sight.en.name, - zh: this.sight.zh.name, + ru: (this.sight.ru.name || "").trim(), + en: (this.sight.en.name || "").trim(), + zh: (this.sight.zh.name || "").trim(), }, address: { ru: this.sight.ru.address, diff --git a/src/shared/store/RouteStore/index.ts b/src/shared/store/RouteStore/index.ts index c0c9df4..ae1063c 100644 --- a/src/shared/store/RouteStore/index.ts +++ b/src/shared/store/RouteStore/index.ts @@ -170,6 +170,9 @@ class RouteStore { } const dataToSend: any = { ...this.editRouteData, + route_name: (this.editRouteData.route_name || "").trim(), + route_number: (this.editRouteData.route_number || "").trim(), + route_sys_number: (this.editRouteData.route_sys_number || "").trim(), center_latitude: parseFloat(this.editRouteData.center_latitude), center_longitude: parseFloat(this.editRouteData.center_longitude), }; diff --git a/src/shared/store/SnapshotStore/index.ts b/src/shared/store/SnapshotStore/index.ts index afce832..6119172 100644 --- a/src/shared/store/SnapshotStore/index.ts +++ b/src/shared/store/SnapshotStore/index.ts @@ -285,7 +285,7 @@ class SnapshotStore { const response = await authInstance.post( `/snapshots`, - { name }, + { name: name.trim() }, { headers: { "X-Request-ID": this.lastRequestId } } ); diff --git a/src/shared/store/StationsStore/index.ts b/src/shared/store/StationsStore/index.ts index 7f4bbd7..c38105e 100644 --- a/src/shared/store/StationsStore/index.ts +++ b/src/shared/store/StationsStore/index.ts @@ -287,10 +287,10 @@ class StationsStore { const response = await languageInstance(language).patch( `/station/${id}`, { - name: name || "", - system_name: name || "", - description: description || "", - address: address || "", + name: (name || "").trim(), + system_name: (name || "").trim(), + description: (description || "").trim(), + address: (address || "").trim(), ...commonDataPayload, } ); @@ -415,10 +415,10 @@ class StationsStore { const { name, address } = this.createStationData[language]; const description = this.createStationData.common.description; const response = await languageInstance(language).post("/station", { - name: name || "", - system_name: name || "", - description: description || "", - address: address || "", + name: (name || "").trim(), + system_name: (name || "").trim(), + description: (description || "").trim(), + address: (address || "").trim(), ...commonDataPayload, }); @@ -436,10 +436,10 @@ class StationsStore { const response = await languageInstance(lang).patch( `/station/${stationId}`, { - name: name || "", - system_name: name || "", - description: description || "", - address: address || "", + name: (name || "").trim(), + system_name: (name || "").trim(), + description: (description || "").trim(), + address: (address || "").trim(), ...commonDataPayload, } ); diff --git a/src/shared/store/UserStore/index.ts b/src/shared/store/UserStore/index.ts index 7e43248..ba94e80 100644 --- a/src/shared/store/UserStore/index.ts +++ b/src/shared/store/UserStore/index.ts @@ -92,7 +92,11 @@ class UserStore { if (this.users.data.length > 0) { id = this.users.data[this.users.data.length - 1].id + 1; } - const payload: Partial = { ...this.createUserData }; + const payload: Partial = { + ...this.createUserData, + name: (this.createUserData.name || "").trim(), + email: (this.createUserData.email || "").trim(), + }; const baseRoles = new Set(payload.roles ?? []); baseRoles.add("articles_ro"); baseRoles.add("articles_rw"); @@ -141,7 +145,11 @@ class UserStore { }; editUser = async (id: number) => { - const payload = { ...this.editUserData }; + const payload = { + ...this.editUserData, + name: (this.editUserData.name || "").trim(), + email: (this.editUserData.email || "").trim(), + }; if (!payload.icon) delete payload.icon; if (!payload.password?.trim()) delete payload.password; diff --git a/src/shared/store/VehicleStore/index.ts b/src/shared/store/VehicleStore/index.ts index 525829e..ae55432 100644 --- a/src/shared/store/VehicleStore/index.ts +++ b/src/shared/store/VehicleStore/index.ts @@ -122,9 +122,9 @@ class VehicleStore { model?: string, ) => { const payload: Record = { - tail_number: tailNumber, + tail_number: tailNumber.trim(), type, - carrier, + carrier: carrier.trim(), carrier_id: carrierId, }; // TODO: когда будет бекенд — добавить model в payload и в ответ @@ -182,9 +182,9 @@ class VehicleStore { }, ) => { const payload: Record = { - tail_number: data.tail_number, + tail_number: data.tail_number.trim(), type: data.type, - carrier: data.carrier, + carrier: data.carrier.trim(), carrier_id: data.carrier_id, }; if (data.model != null && data.model !== "") payload.model = data.model; diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 46dfa28..630263f 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/globalerrorboundary.tsx","./src/app/index.tsx","./src/app/router/index.tsx","./src/entities/index.ts","./src/entities/navigation/index.ts","./src/entities/navigation/model/index.ts","./src/entities/navigation/ui/index.tsx","./src/features/index.ts","./src/features/navigation/index.ts","./src/features/navigation/ui/index.tsx","./src/pages/index.ts","./src/pages/article/index.ts","./src/pages/article/articlecreatepage/index.tsx","./src/pages/article/articleeditpage/index.tsx","./src/pages/article/articlelistpage/index.tsx","./src/pages/article/articlepreviewpage/previewleftwidget.tsx","./src/pages/article/articlepreviewpage/previewrightwidget.tsx","./src/pages/article/articlepreviewpage/index.tsx","./src/pages/carrier/index.ts","./src/pages/carrier/carriercreatepage/index.tsx","./src/pages/carrier/carriereditpage/index.tsx","./src/pages/carrier/carrierlistpage/index.tsx","./src/pages/city/index.ts","./src/pages/city/citycreatepage/index.tsx","./src/pages/city/cityeditpage/index.tsx","./src/pages/city/citylistpage/index.tsx","./src/pages/city/citypreviewpage/index.tsx","./src/pages/country/index.ts","./src/pages/country/countryaddpage/index.tsx","./src/pages/country/countrycreatepage/index.tsx","./src/pages/country/countryeditpage/index.tsx","./src/pages/country/countrylistpage/index.tsx","./src/pages/country/countrypreviewpage/index.tsx","./src/pages/createsightpage/index.tsx","./src/pages/devicespage/index.tsx","./src/pages/editsightpage/index.tsx","./src/pages/loginpage/index.tsx","./src/pages/mainpage/index.tsx","./src/pages/mappage/index.tsx","./src/pages/mappage/mapstore.ts","./src/pages/media/index.ts","./src/pages/media/mediacreatepage/index.tsx","./src/pages/media/mediaeditpage/index.tsx","./src/pages/media/medialistpage/index.tsx","./src/pages/media/mediapreviewpage/index.tsx","./src/pages/route/linekedstations.tsx","./src/pages/route/index.ts","./src/pages/route/routecreatepage/index.tsx","./src/pages/route/routeeditpage/index.tsx","./src/pages/route/routelistpage/index.tsx","./src/pages/route/route-preview/constants.ts","./src/pages/route/route-preview/infinitecanvas.tsx","./src/pages/route/route-preview/leftsidebar.tsx","./src/pages/route/route-preview/mapdatacontext.tsx","./src/pages/route/route-preview/rightsidebar.tsx","./src/pages/route/route-preview/sight.tsx","./src/pages/route/route-preview/sightinfowidget.tsx","./src/pages/route/route-preview/station.tsx","./src/pages/route/route-preview/transformcontext.tsx","./src/pages/route/route-preview/travelpath.tsx","./src/pages/route/route-preview/widgets.tsx","./src/pages/route/route-preview/index.tsx","./src/pages/route/route-preview/types.ts","./src/pages/route/route-preview/utils.ts","./src/pages/route/route-preview/web-gl/languageselector.tsx","./src/pages/route/route-preview/webgl-prototype/webglroutemapprototype.tsx","./src/pages/sight/linkedstations.tsx","./src/pages/sight/index.ts","./src/pages/sight/sightlistpage/index.tsx","./src/pages/sightpage/index.tsx","./src/pages/snapshot/index.ts","./src/pages/snapshot/snapshotcreatepage/index.tsx","./src/pages/snapshot/snapshotlistpage/index.tsx","./src/pages/station/linkedsights.tsx","./src/pages/station/index.ts","./src/pages/station/stationcreatepage/index.tsx","./src/pages/station/stationeditpage/index.tsx","./src/pages/station/stationlistpage/index.tsx","./src/pages/station/stationpreviewpage/index.tsx","./src/pages/user/index.ts","./src/pages/user/usercreatepage/index.tsx","./src/pages/user/usereditpage/index.tsx","./src/pages/user/userlistpage/index.tsx","./src/pages/vehicle/index.ts","./src/pages/vehicle/vehiclecreatepage/index.tsx","./src/pages/vehicle/vehicleeditpage/index.tsx","./src/pages/vehicle/vehiclelistpage/index.tsx","./src/pages/vehicle/vehiclepreviewpage/index.tsx","./src/shared/index.tsx","./src/shared/api/index.tsx","./src/shared/api/mobxfetch/index.ts","./src/shared/config/constants.tsx","./src/shared/config/index.ts","./src/shared/const/index.ts","./src/shared/const/mediatypes.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useselectedcity.ts","./src/shared/lib/gltfcachemanager.ts","./src/shared/lib/index.ts","./src/shared/lib/decodejwt/index.ts","./src/shared/lib/mui/theme.ts","./src/shared/lib/permissions/index.ts","./src/shared/modals/index.ts","./src/shared/modals/articleselectorcreatedialog/index.tsx","./src/shared/modals/previewmediadialog/index.tsx","./src/shared/modals/selectarticledialog/index.tsx","./src/shared/modals/selectmediadialog/index.tsx","./src/shared/modals/uploadmediadialog/index.tsx","./src/shared/store/index.ts","./src/shared/store/articlesstore/index.tsx","./src/shared/store/authstore/api.ts","./src/shared/store/authstore/index.tsx","./src/shared/store/carrierstore/index.tsx","./src/shared/store/citystore/index.ts","./src/shared/store/countrystore/index.ts","./src/shared/store/createsightstore/index.tsx","./src/shared/store/devicesstore/index.tsx","./src/shared/store/editsightstore/index.tsx","./src/shared/store/languagestore/index.tsx","./src/shared/store/mediastore/index.tsx","./src/shared/store/menustore/index.ts","./src/shared/store/modelloadingstore/index.ts","./src/shared/store/routestore/index.ts","./src/shared/store/selectedcitystore/index.ts","./src/shared/store/sightsstore/index.tsx","./src/shared/store/snapshotstore/index.ts","./src/shared/store/stationsstore/index.ts","./src/shared/store/userstore/api.ts","./src/shared/store/userstore/index.ts","./src/shared/store/vehiclestore/api.ts","./src/shared/store/vehiclestore/index.ts","./src/shared/store/vehiclestore/types.ts","./src/shared/ui/animatedcirclebutton.tsx","./src/shared/ui/index.ts","./src/shared/ui/backbutton/index.tsx","./src/shared/ui/coordinatesinput/index.tsx","./src/shared/ui/input/index.tsx","./src/shared/ui/loadingspinner/index.tsx","./src/shared/ui/modal/index.tsx","./src/shared/ui/modelloadingindicator/index.tsx","./src/shared/ui/multiselect/index.tsx","./src/shared/ui/tabpanel/index.tsx","./src/widgets/index.ts","./src/widgets/cityselector/index.tsx","./src/widgets/createbutton/index.tsx","./src/widgets/deletemodal/index.tsx","./src/widgets/devicestable/devicelogsmodal.tsx","./src/widgets/devicestable/vehiclesessionsmodal.tsx","./src/widgets/devicestable/index.tsx","./src/widgets/imageuploadcard/index.tsx","./src/widgets/languageswitcher/index.tsx","./src/widgets/layout/index.tsx","./src/widgets/layout/ui/appbar.tsx","./src/widgets/layout/ui/drawer.tsx","./src/widgets/layout/ui/drawerheader.tsx","./src/widgets/leaveagree/index.tsx","./src/widgets/mediaarea/index.tsx","./src/widgets/mediaareaforsight/index.tsx","./src/widgets/mediaviewer/threeview.tsx","./src/widgets/mediaviewer/threeviewerrorboundary.tsx","./src/widgets/mediaviewer/index.tsx","./src/widgets/modelviewer3d/index.tsx","./src/widgets/reactmarkdown/index.tsx","./src/widgets/reactmarkdowneditor/index.tsx","./src/widgets/savewithoutcityagree/index.tsx","./src/widgets/sightedit/index.tsx","./src/widgets/sightheader/index.ts","./src/widgets/sightheader/ui/index.tsx","./src/widgets/sighttabs/index.ts","./src/widgets/sighttabs/createinformationtab/mediauploadbox.tsx","./src/widgets/sighttabs/createinformationtab/index.tsx","./src/widgets/sighttabs/createlefttab/index.tsx","./src/widgets/sighttabs/createrighttab/index.tsx","./src/widgets/sighttabs/informationtab/index.tsx","./src/widgets/sighttabs/leftwidgettab/index.tsx","./src/widgets/sighttabs/rightwidgettab/index.tsx","./src/widgets/sightstable/index.tsx","./src/widgets/snapshotrestore/index.tsx","./src/widgets/videopreviewcard/index.tsx","./src/widgets/modals/editstationmodal.tsx","./src/widgets/modals/index.ts","./src/widgets/modals/editstationtransfersmodal/index.tsx","./src/widgets/modals/selectarticledialog/index.tsx"],"version":"5.8.3"} \ No newline at end of file +{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/globalerrorboundary.tsx","./src/app/index.tsx","./src/app/router/index.tsx","./src/entities/index.ts","./src/entities/navigation/index.ts","./src/entities/navigation/model/index.ts","./src/entities/navigation/ui/index.tsx","./src/features/index.ts","./src/features/navigation/index.ts","./src/features/navigation/ui/index.tsx","./src/pages/index.ts","./src/pages/article/index.ts","./src/pages/article/articlecreatepage/index.tsx","./src/pages/article/articleeditpage/index.tsx","./src/pages/article/articlelistpage/index.tsx","./src/pages/article/articlepreviewpage/previewleftwidget.tsx","./src/pages/article/articlepreviewpage/previewrightwidget.tsx","./src/pages/article/articlepreviewpage/index.tsx","./src/pages/carrier/index.ts","./src/pages/carrier/carriercreatepage/index.tsx","./src/pages/carrier/carriereditpage/index.tsx","./src/pages/carrier/carrierlistpage/index.tsx","./src/pages/city/index.ts","./src/pages/city/citycreatepage/index.tsx","./src/pages/city/cityeditpage/index.tsx","./src/pages/city/citylistpage/index.tsx","./src/pages/city/citypreviewpage/index.tsx","./src/pages/country/index.ts","./src/pages/country/countryaddpage/index.tsx","./src/pages/country/countrycreatepage/index.tsx","./src/pages/country/countryeditpage/index.tsx","./src/pages/country/countrylistpage/index.tsx","./src/pages/country/countrypreviewpage/index.tsx","./src/pages/createsightpage/index.tsx","./src/pages/devicespage/index.tsx","./src/pages/editsightpage/index.tsx","./src/pages/loginpage/index.tsx","./src/pages/mainpage/index.tsx","./src/pages/mappage/index.tsx","./src/pages/mappage/mapstore.ts","./src/pages/media/index.ts","./src/pages/media/mediacreatepage/index.tsx","./src/pages/media/mediaeditpage/index.tsx","./src/pages/media/medialistpage/index.tsx","./src/pages/media/mediapreviewpage/index.tsx","./src/pages/route/linekedstations.tsx","./src/pages/route/index.ts","./src/pages/route/routecreatepage/index.tsx","./src/pages/route/routeeditpage/index.tsx","./src/pages/route/routelistpage/index.tsx","./src/pages/route/route-preview/constants.ts","./src/pages/route/route-preview/infinitecanvas.tsx","./src/pages/route/route-preview/leftsidebar.tsx","./src/pages/route/route-preview/mapdatacontext.tsx","./src/pages/route/route-preview/rightsidebar.tsx","./src/pages/route/route-preview/sight.tsx","./src/pages/route/route-preview/sightinfowidget.tsx","./src/pages/route/route-preview/station.tsx","./src/pages/route/route-preview/transformcontext.tsx","./src/pages/route/route-preview/travelpath.tsx","./src/pages/route/route-preview/widgets.tsx","./src/pages/route/route-preview/index.tsx","./src/pages/route/route-preview/types.ts","./src/pages/route/route-preview/utils.ts","./src/pages/route/route-preview/web-gl/languageselector.tsx","./src/pages/route/route-preview/webgl-prototype/webglroutemapprototype.tsx","./src/pages/sight/linkedstations.tsx","./src/pages/sight/index.ts","./src/pages/sight/sightlistpage/index.tsx","./src/pages/sightpage/index.tsx","./src/pages/snapshot/index.ts","./src/pages/snapshot/snapshotcreatepage/index.tsx","./src/pages/snapshot/snapshotlistpage/index.tsx","./src/pages/station/linkedsights.tsx","./src/pages/station/index.ts","./src/pages/station/stationcreatepage/index.tsx","./src/pages/station/stationeditpage/index.tsx","./src/pages/station/stationlistpage/index.tsx","./src/pages/station/stationpreviewpage/index.tsx","./src/pages/user/index.ts","./src/pages/user/usercreatepage/index.tsx","./src/pages/user/usereditpage/index.tsx","./src/pages/user/userlistpage/index.tsx","./src/pages/vehicle/index.ts","./src/pages/vehicle/vehiclecreatepage/index.tsx","./src/pages/vehicle/vehicleeditpage/index.tsx","./src/pages/vehicle/vehiclelistpage/index.tsx","./src/pages/vehicle/vehiclepreviewpage/index.tsx","./src/shared/index.tsx","./src/shared/api/index.tsx","./src/shared/api/mobxfetch/index.ts","./src/shared/config/constants.tsx","./src/shared/config/index.ts","./src/shared/const/index.ts","./src/shared/const/mediatypes.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useselectedcity.ts","./src/shared/lib/gltfcachemanager.ts","./src/shared/lib/index.ts","./src/shared/lib/decodejwt/index.ts","./src/shared/lib/mui/theme.ts","./src/shared/lib/permissions/index.ts","./src/shared/modals/index.ts","./src/shared/modals/articleselectorcreatedialog/index.tsx","./src/shared/modals/previewmediadialog/index.tsx","./src/shared/modals/selectarticledialog/index.tsx","./src/shared/modals/selectmediadialog/index.tsx","./src/shared/modals/uploadmediadialog/index.tsx","./src/shared/store/index.ts","./src/shared/store/articlesstore/index.tsx","./src/shared/store/authstore/api.ts","./src/shared/store/authstore/index.tsx","./src/shared/store/carrierstore/index.tsx","./src/shared/store/citystore/index.ts","./src/shared/store/countrystore/index.ts","./src/shared/store/createsightstore/index.tsx","./src/shared/store/devicesstore/index.tsx","./src/shared/store/editsightstore/index.tsx","./src/shared/store/languagestore/index.tsx","./src/shared/store/mediastore/index.tsx","./src/shared/store/menustore/index.ts","./src/shared/store/modelloadingstore/index.ts","./src/shared/store/routestore/index.ts","./src/shared/store/selectedcitystore/index.ts","./src/shared/store/sightsstore/index.tsx","./src/shared/store/snapshotstore/index.ts","./src/shared/store/stationsstore/index.ts","./src/shared/store/userstore/api.ts","./src/shared/store/userstore/index.ts","./src/shared/store/vehiclestore/api.ts","./src/shared/store/vehiclestore/index.ts","./src/shared/store/vehiclestore/types.ts","./src/shared/ui/animatedcirclebutton.tsx","./src/shared/ui/index.ts","./src/shared/ui/backbutton/index.tsx","./src/shared/ui/coordinatesinput/index.tsx","./src/shared/ui/input/index.tsx","./src/shared/ui/loadingspinner/index.tsx","./src/shared/ui/modal/index.tsx","./src/shared/ui/modelloadingindicator/index.tsx","./src/shared/ui/multiselect/index.tsx","./src/shared/ui/searchinput/index.tsx","./src/shared/ui/tabpanel/index.tsx","./src/widgets/index.ts","./src/widgets/cityselector/index.tsx","./src/widgets/createbutton/index.tsx","./src/widgets/deletemodal/index.tsx","./src/widgets/devicestable/devicelogsmodal.tsx","./src/widgets/devicestable/vehiclesessionsmodal.tsx","./src/widgets/devicestable/index.tsx","./src/widgets/imageuploadcard/index.tsx","./src/widgets/languageswitcher/index.tsx","./src/widgets/layout/index.tsx","./src/widgets/layout/ui/appbar.tsx","./src/widgets/layout/ui/drawer.tsx","./src/widgets/layout/ui/drawerheader.tsx","./src/widgets/leaveagree/index.tsx","./src/widgets/mediaarea/index.tsx","./src/widgets/mediaareaforsight/index.tsx","./src/widgets/mediaviewer/threeview.tsx","./src/widgets/mediaviewer/threeviewerrorboundary.tsx","./src/widgets/mediaviewer/index.tsx","./src/widgets/modelviewer3d/index.tsx","./src/widgets/reactmarkdown/index.tsx","./src/widgets/reactmarkdowneditor/index.tsx","./src/widgets/savewithoutcityagree/index.tsx","./src/widgets/sightedit/index.tsx","./src/widgets/sightheader/index.ts","./src/widgets/sightheader/ui/index.tsx","./src/widgets/sighttabs/index.ts","./src/widgets/sighttabs/createinformationtab/mediauploadbox.tsx","./src/widgets/sighttabs/createinformationtab/index.tsx","./src/widgets/sighttabs/createlefttab/index.tsx","./src/widgets/sighttabs/createrighttab/index.tsx","./src/widgets/sighttabs/informationtab/index.tsx","./src/widgets/sighttabs/leftwidgettab/index.tsx","./src/widgets/sighttabs/rightwidgettab/index.tsx","./src/widgets/sightstable/index.tsx","./src/widgets/snapshotrestore/index.tsx","./src/widgets/videopreviewcard/index.tsx","./src/widgets/modals/editstationmodal.tsx","./src/widgets/modals/index.ts","./src/widgets/modals/editstationtransfersmodal/index.tsx","./src/widgets/modals/selectarticledialog/index.tsx"],"version":"5.8.3"} \ No newline at end of file