✨ 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
96 lines
4.1 KiB
TypeScript
96 lines
4.1 KiB
TypeScript
/// <reference types="node" />
|
|
/**
|
|
* Single-use utility classes to provide functionality to the {@link Glob}
|
|
* methods.
|
|
*
|
|
* @module
|
|
*/
|
|
import { Minipass } from 'minipass';
|
|
import { Path } from 'path-scurry';
|
|
import { IgnoreLike } from './ignore.js';
|
|
import { Pattern } from './pattern.js';
|
|
import { Processor } from './processor.js';
|
|
export interface GlobWalkerOpts {
|
|
absolute?: boolean;
|
|
allowWindowsEscape?: boolean;
|
|
cwd?: string | URL;
|
|
dot?: boolean;
|
|
dotRelative?: boolean;
|
|
follow?: boolean;
|
|
ignore?: string | string[] | IgnoreLike;
|
|
mark?: boolean;
|
|
matchBase?: boolean;
|
|
maxDepth?: number;
|
|
nobrace?: boolean;
|
|
nocase?: boolean;
|
|
nodir?: boolean;
|
|
noext?: boolean;
|
|
noglobstar?: boolean;
|
|
platform?: NodeJS.Platform;
|
|
posix?: boolean;
|
|
realpath?: boolean;
|
|
root?: string;
|
|
stat?: boolean;
|
|
signal?: AbortSignal;
|
|
windowsPathsNoEscape?: boolean;
|
|
withFileTypes?: boolean;
|
|
}
|
|
export type GWOFileTypesTrue = GlobWalkerOpts & {
|
|
withFileTypes: true;
|
|
};
|
|
export type GWOFileTypesFalse = GlobWalkerOpts & {
|
|
withFileTypes: false;
|
|
};
|
|
export type GWOFileTypesUnset = GlobWalkerOpts & {
|
|
withFileTypes?: undefined;
|
|
};
|
|
export type Result<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string;
|
|
export type Matches<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>;
|
|
export type MatchStream<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Minipass<Path, Path> : O extends GWOFileTypesFalse ? Minipass<string, string> : O extends GWOFileTypesUnset ? Minipass<string, string> : Minipass<Path | string, Path | string>;
|
|
/**
|
|
* basic walking utilities that all the glob walker types use
|
|
*/
|
|
export declare abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> {
|
|
#private;
|
|
path: Path;
|
|
patterns: Pattern[];
|
|
opts: O;
|
|
seen: Set<Path>;
|
|
paused: boolean;
|
|
aborted: boolean;
|
|
signal?: AbortSignal;
|
|
maxDepth: number;
|
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
|
pause(): void;
|
|
resume(): void;
|
|
onResume(fn: () => any): void;
|
|
matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined>;
|
|
matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined;
|
|
matchCheckSync(e: Path, ifDir: boolean): Path | undefined;
|
|
abstract matchEmit(p: Result<O>): void;
|
|
abstract matchEmit(p: string | Path): void;
|
|
matchFinish(e: Path, absolute: boolean): void;
|
|
match(e: Path, absolute: boolean, ifDir: boolean): Promise<void>;
|
|
matchSync(e: Path, absolute: boolean, ifDir: boolean): void;
|
|
walkCB(target: Path, patterns: Pattern[], cb: () => any): void;
|
|
walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
|
|
walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
|
|
walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void;
|
|
walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
|
|
walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
|
|
}
|
|
export declare class GlobWalker<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
|
|
matches: O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>;
|
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
|
matchEmit(e: Result<O>): void;
|
|
walk(): Promise<Matches<O>>;
|
|
walkSync(): Matches<O>;
|
|
}
|
|
export declare class GlobStream<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
|
|
results: O extends GWOFileTypesTrue ? Minipass<Path, Path> : O extends GWOFileTypesFalse ? Minipass<string, string> : O extends GWOFileTypesUnset ? Minipass<string, string> : Minipass<Path | string, Path | string>;
|
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
|
matchEmit(e: Result<O>): void;
|
|
stream(): MatchStream<O>;
|
|
streamSync(): MatchStream<O>;
|
|
}
|
|
//# sourceMappingURL=walker.d.ts.map
|