✨ 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
64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
"use strict";
|
||
|
||
// These validator functions answer the question “Is the config valid?” – return
|
||
// `false` if the options DO conflict with Prettier, and `true` if they don’t.
|
||
|
||
module.exports = {
|
||
"curly"({ options }) {
|
||
if (options.length === 0) {
|
||
return true;
|
||
}
|
||
|
||
const firstOption = options[0];
|
||
return firstOption !== "multi-line" && firstOption !== "multi-or-nest";
|
||
},
|
||
|
||
"lines-around-comment"({ options }) {
|
||
if (options.length === 0) {
|
||
return false;
|
||
}
|
||
|
||
const firstOption = options[0];
|
||
return Boolean(
|
||
firstOption &&
|
||
firstOption.allowBlockStart &&
|
||
firstOption.allowBlockEnd &&
|
||
firstOption.allowObjectStart &&
|
||
firstOption.allowObjectEnd &&
|
||
firstOption.allowArrayStart &&
|
||
firstOption.allowArrayEnd
|
||
);
|
||
},
|
||
|
||
"no-confusing-arrow"({ options }) {
|
||
if (options.length === 0) {
|
||
return false;
|
||
}
|
||
|
||
const firstOption = options[0];
|
||
return firstOption ? firstOption.allowParens === false : false;
|
||
},
|
||
|
||
"no-tabs"({ options }) {
|
||
if (options.length === 0) {
|
||
return false;
|
||
}
|
||
|
||
const firstOption = options[0];
|
||
return Boolean(firstOption && firstOption.allowIndentationTabs);
|
||
},
|
||
|
||
"vue/html-self-closing"({ options }) {
|
||
if (options.length === 0) {
|
||
return false;
|
||
}
|
||
|
||
const firstOption = options[0];
|
||
return Boolean(
|
||
firstOption && firstOption.html && firstOption.html.void === "any"
|
||
// Enable when Prettier supports SVG: https://github.com/prettier/prettier/issues/5322
|
||
// && firstOption.svg === "any"
|
||
);
|
||
},
|
||
};
|