✨ 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
93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
import { VersioningType } from '../enums/version-type.enum';
|
|
/**
|
|
* Indicates that this will work for any version passed in the request, or no version.
|
|
*
|
|
* @publicApi
|
|
*/
|
|
export declare const VERSION_NEUTRAL: unique symbol;
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export type VersionValue = string | typeof VERSION_NEUTRAL | Array<string | typeof VERSION_NEUTRAL>;
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export interface VersionOptions {
|
|
/**
|
|
* Specifies an optional API Version. When configured, methods
|
|
* within the controller will only be routed if the request version
|
|
* matches the specified value.
|
|
*
|
|
* Supported only by HTTP-based applications (does not apply to non-HTTP microservices).
|
|
*
|
|
* @see [Versioning](https://docs.nestjs.com/techniques/versioning)
|
|
*/
|
|
version?: VersionValue;
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export interface HeaderVersioningOptions {
|
|
type: VersioningType.HEADER;
|
|
/**
|
|
* The name of the Request Header that contains the version.
|
|
*/
|
|
header: string;
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export interface UriVersioningOptions {
|
|
type: VersioningType.URI;
|
|
/**
|
|
* Optional prefix that will prepend the version within the URI.
|
|
*
|
|
* Defaults to `v`.
|
|
*
|
|
* Ex. Assuming a version of `1`, for `/api/v1/route`, `v` is the prefix.
|
|
*/
|
|
prefix?: string | false;
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export interface MediaTypeVersioningOptions {
|
|
type: VersioningType.MEDIA_TYPE;
|
|
/**
|
|
* The key within the Media Type Header to determine the version from.
|
|
*
|
|
* Ex. For `application/json;v=1`, the key is `v=`.
|
|
*/
|
|
key: string;
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export interface CustomVersioningOptions {
|
|
type: VersioningType.CUSTOM;
|
|
/**
|
|
* A function that accepts a request object (specific to the underlying platform, ie Express or Fastify)
|
|
* and returns a single version value or an ordered array of versions, in order from HIGHEST to LOWEST.
|
|
*
|
|
* Ex. Returned version array = ['3.1', '3.0', '2.5', '2', '1.9']
|
|
*
|
|
* Use type assertion or narrowing to identify the specific request type.
|
|
*/
|
|
extractor: (request: unknown) => string | string[];
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
interface VersioningCommonOptions {
|
|
/**
|
|
* The default version to be used as a fallback when you did not provide some
|
|
* version to `@Controller()` nor `@Version()`.
|
|
*/
|
|
defaultVersion?: VersionOptions['version'];
|
|
}
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export type VersioningOptions = VersioningCommonOptions & (HeaderVersioningOptions | UriVersioningOptions | MediaTypeVersioningOptions | CustomVersioningOptions);
|
|
export {};
|