✨ 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
55 lines
2.6 KiB
JavaScript
55 lines
2.6 KiB
JavaScript
// Override chunk URL mapping in the webpack runtime
|
|
// https://github.com/webpack/webpack/blob/2738eebc7880835d88c727d364ad37f3ec557593/lib/RuntimeGlobals.js#L204
|
|
import { getDeploymentIdQueryOrEmptyString } from "../build/deployment-id";
|
|
// If we have a deployment ID, we need to append it to the webpack chunk names
|
|
// I am keeping the process check explicit so this can be statically optimized
|
|
if (process.env.NEXT_DEPLOYMENT_ID) {
|
|
const suffix = getDeploymentIdQueryOrEmptyString();
|
|
// eslint-disable-next-line no-undef
|
|
const getChunkScriptFilename = __webpack_require__.u;
|
|
// eslint-disable-next-line no-undef
|
|
__webpack_require__.u = function() {
|
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return(// We enode the chunk filename because our static server matches against and encoded
|
|
// filename path.
|
|
encodeURI(getChunkScriptFilename(...args) + suffix));
|
|
};
|
|
// eslint-disable-next-line no-undef
|
|
const getChunkCssFilename = __webpack_require__.k;
|
|
// eslint-disable-next-line no-undef
|
|
__webpack_require__.k = function() {
|
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return getChunkCssFilename(...args) + suffix;
|
|
};
|
|
// eslint-disable-next-line no-undef
|
|
const getMiniCssFilename = __webpack_require__.miniCssF;
|
|
// eslint-disable-next-line no-undef
|
|
__webpack_require__.miniCssF = function() {
|
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return getMiniCssFilename(...args) + suffix;
|
|
};
|
|
} else {
|
|
// eslint-disable-next-line no-undef
|
|
const getChunkScriptFilename = __webpack_require__.u;
|
|
// eslint-disable-next-line no-undef
|
|
__webpack_require__.u = function() {
|
|
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return(// We enode the chunk filename because our static server matches against and encoded
|
|
// filename path.
|
|
encodeURI(getChunkScriptFilename(...args)));
|
|
};
|
|
// We don't need to override __webpack_require__.k because we don't modify
|
|
// the css chunk name when not using deployment id suffixes
|
|
// WE don't need to override __webpack_require__.miniCssF because we don't modify
|
|
// the mini css chunk name when not using deployment id suffixes
|
|
}
|
|
|
|
//# sourceMappingURL=app-webpack.js.map
|