✨ 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
62 lines
3.0 KiB
JavaScript
62 lines
3.0 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.NewCommand = void 0;
|
|
const schematics_1 = require("../lib/schematics");
|
|
const abstract_command_1 = require("./abstract.command");
|
|
class NewCommand extends abstract_command_1.AbstractCommand {
|
|
load(program) {
|
|
program
|
|
.command('new [name]')
|
|
.alias('n')
|
|
.description('Generate Nest application.')
|
|
.option('--directory [directory]', 'Specify the destination directory')
|
|
.option('-d, --dry-run', 'Report actions that would be performed without writing out results.', false)
|
|
.option('-g, --skip-git', 'Skip git repository initialization.', false)
|
|
.option('-s, --skip-install', 'Skip package installation.', false)
|
|
.option('-p, --package-manager [packageManager]', 'Specify package manager.')
|
|
.option('-l, --language [language]', 'Programming language to be used (TypeScript or JavaScript)', 'TypeScript')
|
|
.option('-c, --collection [collectionName]', 'Schematics collection to use', schematics_1.Collection.NESTJS)
|
|
.option('--strict', 'Enables strict mode in TypeScript.', false)
|
|
.action(async (name, command) => {
|
|
const options = [];
|
|
const availableLanguages = ['js', 'ts', 'javascript', 'typescript'];
|
|
options.push({ name: 'directory', value: command.directory });
|
|
options.push({ name: 'dry-run', value: command.dryRun });
|
|
options.push({ name: 'skip-git', value: command.skipGit });
|
|
options.push({ name: 'skip-install', value: command.skipInstall });
|
|
options.push({ name: 'strict', value: command.strict });
|
|
options.push({
|
|
name: 'packageManager',
|
|
value: command.packageManager,
|
|
});
|
|
options.push({ name: 'collection', value: command.collection });
|
|
if (!!command.language) {
|
|
const lowercasedLanguage = command.language.toLowerCase();
|
|
const langMatch = availableLanguages.includes(lowercasedLanguage);
|
|
if (!langMatch) {
|
|
throw new Error(`Invalid language "${command.language}" selected. Available languages are "typescript" or "javascript"`);
|
|
}
|
|
switch (lowercasedLanguage) {
|
|
case 'javascript':
|
|
command.language = 'js';
|
|
break;
|
|
case 'typescript':
|
|
command.language = 'ts';
|
|
break;
|
|
default:
|
|
command.language = lowercasedLanguage;
|
|
break;
|
|
}
|
|
}
|
|
options.push({
|
|
name: 'language',
|
|
value: command.language,
|
|
});
|
|
const inputs = [];
|
|
inputs.push({ name: 'name', value: name });
|
|
await this.action.handle(inputs, options);
|
|
});
|
|
}
|
|
}
|
|
exports.NewCommand = NewCommand;
|