✨ MAJOR FEATURES: • Auto-zoom intelligence với smart bounds fitting • Enhanced 3D GPS markers với pulsing effects • Professional route display với 6-layer rendering • Status-based parking icons với availability indicators • Production-ready build optimizations 🗺️ AUTO-ZOOM FEATURES: • Smart bounds fitting cho GPS + selected parking • Adaptive padding (50px) cho visual balance • Max zoom control (level 16) để tránh quá gần • Dynamic centering khi không có selection 🎨 ENHANCED VISUALS: • 3D GPS marker với multi-layer pulse effects • Advanced parking icons với status colors • Selection highlighting với animation • Dimming system cho non-selected items 🛣️ ROUTE SYSTEM: • OpenRouteService API integration • Multi-layer route rendering (glow, shadow, main, animated) • Real-time distance & duration calculation • Visual route info trong popup 📱 PRODUCTION READY: • SSR safe với dynamic imports • Build errors resolved • Global deployment via Vercel • Optimized performance 🌍 DEPLOYMENT: • Vercel: https://whatever-ctk2auuxr-phong12hexdockworks-projects.vercel.app • Bundle size: 22.8 kB optimized • Global CDN distribution • HTTPS enabled 💾 VERSION CONTROL: • MapView-v2.0.tsx backup created • MAPVIEW_VERSIONS.md documentation • Full version history tracking
77 lines
2.7 KiB
TypeScript
77 lines
2.7 KiB
TypeScript
import type { ManifestRoute, PrerenderManifest } from '../../../build';
|
|
import type { NextConfigComplete } from '../../config-shared';
|
|
import type { PatchMatcher } from '../../../shared/lib/router/utils/path-match';
|
|
import type { MiddlewareRouteMatch } from '../../../shared/lib/router/utils/middleware-route-matcher';
|
|
import { type Rewrite } from '../../../lib/load-custom-routes';
|
|
export type FsOutput = {
|
|
type: 'appFile' | 'pageFile' | 'nextImage' | 'publicFolder' | 'nextStaticFolder' | 'legacyStaticFolder' | 'devVirtualFsItem';
|
|
itemPath: string;
|
|
fsPath?: string;
|
|
itemsRoot?: string;
|
|
locale?: string;
|
|
};
|
|
export type FilesystemDynamicRoute = ManifestRoute & {
|
|
/**
|
|
* The path matcher that can be used to match paths against this route.
|
|
*/
|
|
match: PatchMatcher;
|
|
};
|
|
export declare const buildCustomRoute: <T>(type: 'redirect' | 'header' | 'rewrite' | 'before_files_rewrite', item: T & {
|
|
source: string;
|
|
}, basePath?: string, caseSensitive?: boolean) => T & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
};
|
|
export declare function setupFsCheck(opts: {
|
|
dir: string;
|
|
dev: boolean;
|
|
minimalMode?: boolean;
|
|
config: NextConfigComplete;
|
|
addDevWatcherCallback?: (arg: (files: Map<string, {
|
|
timestamp: number;
|
|
}>) => void) => void;
|
|
}): Promise<{
|
|
headers: (import("../../../lib/load-custom-routes").Header & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[];
|
|
rewrites: {
|
|
beforeFiles: (Rewrite & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[];
|
|
afterFiles: (Rewrite & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[];
|
|
fallback: (Rewrite & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[];
|
|
};
|
|
redirects: (import("../../../lib/load-custom-routes").Redirect & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[];
|
|
buildId: string;
|
|
handleLocale: (pathname: string, locales?: string[]) => {
|
|
locale: string | undefined;
|
|
pathname: string;
|
|
};
|
|
appFiles: Set<string>;
|
|
pageFiles: Set<string>;
|
|
dynamicRoutes: FilesystemDynamicRoute[];
|
|
nextDataRoutes: Set<string>;
|
|
exportPathMapRoutes: (Rewrite & {
|
|
match: PatchMatcher;
|
|
check?: boolean | undefined;
|
|
})[] | undefined;
|
|
devVirtualFsItems: Set<string>;
|
|
prerenderManifest: PrerenderManifest;
|
|
middlewareMatcher: MiddlewareRouteMatch | undefined;
|
|
ensureCallback(fn: (item: FsOutput) => Promise<void> | undefined): void;
|
|
getItem(itemPath: string): Promise<FsOutput | null>;
|
|
getDynamicRoutes(): FilesystemDynamicRoute[];
|
|
getMiddlewareMatchers(): MiddlewareRouteMatch | undefined;
|
|
}>;
|