🎯 MapView v2.0 - Global Deployment Ready

 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
This commit is contained in:
2025-07-20 19:52:16 +07:00
parent 3203463a6a
commit c65cc97a33
64624 changed files with 7199453 additions and 6462 deletions

View File

@@ -0,0 +1,5 @@
/* globals self */ const fetchModule = self.fetch.bind(self);
module.exports = fetchModule;
module.exports.default = module.exports;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/fetch/index.ts"],"names":["fetchModule","self","fetch","bind","module","exports","default"],"mappings":"AAAA,gBAAgB,GAChB,MAAMA,cAAcC,KAAKC,KAAK,CAACC,IAAI,CAACF;AACpCG,OAAOC,OAAO,GAAGL;AACjBI,OAAOC,OAAO,CAACC,OAAO,GAAGF,OAAOC,OAAO"}

View File

@@ -0,0 +1,6 @@
/* globals self */ exports.Headers = self.Headers;
exports.Request = self.Request;
exports.Response = self.Response;
exports.fetch = self.fetch;
//# sourceMappingURL=whatwg-fetch.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/fetch/whatwg-fetch.ts"],"names":["exports","Headers","self","Request","Response","fetch"],"mappings":"AAAA,gBAAgB,GAChBA,QAAQC,OAAO,GAAGC,KAAKD,OAAO;AAC9BD,QAAQG,OAAO,GAAGD,KAAKC,OAAO;AAC9BH,QAAQI,QAAQ,GAAGF,KAAKE,QAAQ;AAChCJ,QAAQK,KAAK,GAAGH,KAAKG,KAAK"}

View File

@@ -0,0 +1,5 @@
var assign = Object.assign.bind(Object);
module.exports = assign;
module.exports.default = module.exports;
//# sourceMappingURL=object-assign.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/build/polyfills/object-assign.ts"],"names":["assign","Object","bind","module","exports","default"],"mappings":"AAAA,IAAIA,SAASC,OAAOD,MAAM,CAACE,IAAI,CAACD;AAChCE,OAAOC,OAAO,GAAGJ;AACjBG,OAAOC,OAAO,CAACC,OAAO,GAAGF,OAAOC,OAAO"}

View File

@@ -0,0 +1,3 @@
// noop
//# sourceMappingURL=auto.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/object.assign/auto.ts"],"names":[],"mappings":"AAAA,OAAO"}

View File

@@ -0,0 +1,3 @@
module.exports = Object.assign;
//# sourceMappingURL=implementation.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/object.assign/implementation.ts"],"names":["module","exports","Object","assign"],"mappings":"AAAAA,OAAOC,OAAO,GAAGC,OAAOC,MAAM"}

View File

@@ -0,0 +1,18 @@
var assign = Object.assign.bind(Object);
function g() {
return assign;
}
Object.defineProperties(g(), {
implementation: {
get: g
},
shim: {
value: g
},
getPolyfill: {
value: g
}
});
module.exports = g();
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/object.assign/index.ts"],"names":["assign","Object","bind","g","defineProperties","implementation","get","shim","value","getPolyfill","module","exports"],"mappings":"AAAA,IAAIA,SAASC,OAAOD,MAAM,CAACE,IAAI,CAACD;AAChC,SAASE;IACP,OAAOH;AACT;AACAC,OAAOG,gBAAgB,CAACD,KAAK;IAC3BE,gBAAgB;QAAEC,KAAKH;IAAE;IACzBI,MAAM;QAAEC,OAAOL;IAAE;IACjBM,aAAa;QAAED,OAAOL;IAAE;AAC1B;AACAO,OAAOC,OAAO,GAAGR"}

View File

@@ -0,0 +1,5 @@
module.exports = function() {
return Object.assign;
};
//# sourceMappingURL=polyfill.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/object.assign/polyfill.ts"],"names":["module","exports","Object","assign"],"mappings":"AAAAA,OAAOC,OAAO,GAAG;IACf,OAAOC,OAAOC,MAAM;AACtB"}

View File

@@ -0,0 +1,5 @@
module.exports = function() {
return Object.assign;
};
//# sourceMappingURL=shim.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/polyfills/object.assign/shim.ts"],"names":["module","exports","Object","assign"],"mappings":"AAAAA,OAAOC,OAAO,GAAG;IACf,OAAOC,OAAOC,MAAM;AACtB"}

View File

@@ -0,0 +1,4 @@
var _global_process, _global_process1;
module.exports = ((_global_process = global.process) == null ? void 0 : _global_process.env) && typeof ((_global_process1 = global.process) == null ? void 0 : _global_process1.env) === "object" ? global.process : require("next/dist/compiled/process");
//# sourceMappingURL=process.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/build/polyfills/process.ts"],"names":["global","module","exports","process","env","require"],"mappings":"IACEA,iBAA8BA;AADhCC,OAAOC,OAAO,GACZF,EAAAA,kBAAAA,OAAOG,OAAO,qBAAdH,gBAAgBI,GAAG,KAAI,SAAOJ,mBAAAA,OAAOG,OAAO,qBAAdH,iBAAgBI,GAAG,MAAK,WAClDJ,OAAOG,OAAO,GACdE,QAAQ"}