đŸŽ¯ 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,111 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _index = _interopRequireDefault(require("../../../_lib/buildMatchFn/index.js"));
var _index2 = _interopRequireDefault(require("../../../_lib/buildMatchPatternFn/index.js"));
var matchOrdinalNumberPattern = /^(\d+)(āĻŽ|⧟|āĻ°ā§āĻĨ|āĻˇā§āĻ |āĻļ⧇|āχ|āϤāĻŽ)?/i;
var parseOrdinalNumberPattern = /\d+/i;
var matchEraPatterns = {
narrow: /^(āĻ–ā§āϰāĻŋāσāĻĒā§‚āσ|āĻ–ā§āϰāĻŋāσ)/i,
abbreviated: /^(āĻ–ā§āϰāĻŋāσāĻĒā§‚āĻ°ā§āĻŦ|āĻ–ā§āϰāĻŋāσ)/i,
wide: /^(āĻ–ā§āϰāĻŋāĻ¸ā§āϟāĻĒā§‚āĻ°ā§āĻŦ|āĻ–ā§āϰāĻŋāĻ¸ā§āϟāĻžāĻŦā§āĻĻ)/i
};
var parseEraPatterns = {
narrow: [/^āĻ–ā§āϰāĻŋāσāĻĒā§‚āσ/i, /^āĻ–ā§āϰāĻŋāσ/i],
abbreviated: [/^āĻ–ā§āϰāĻŋāσāĻĒā§‚āĻ°ā§āĻŦ/i, /^āĻ–ā§āϰāĻŋāσ/i],
wide: [/^āĻ–ā§āϰāĻŋāĻ¸ā§āϟāĻĒā§‚āĻ°ā§āĻŦ/i, /^āĻ–ā§āϰāĻŋāĻ¸ā§āϟāĻžāĻŦā§āĻĻ/i]
};
var matchQuarterPatterns = {
narrow: /^[ā§§ā§¨ā§Šā§Ē]/i,
abbreviated: /^[ā§§ā§¨ā§Šā§Ē]āĻ¤ā§āϰ⧈/i,
wide: /^[ā§§ā§¨ā§Šā§Ē](āĻŽ|⧟|āĻ°ā§āĻĨ)? āĻ¤ā§āϰ⧈āĻŽāĻžāϏāĻŋāĻ•/i
};
var parseQuarterPatterns = {
any: [/ā§§/i, /⧍/i, /ā§Š/i, /ā§Ē/i]
};
var matchMonthPatterns = {
narrow: /^(āϜāĻžāύ⧁|āĻĢ⧇āĻŦā§āϰ⧁|āĻŽāĻžāĻ°ā§āϚ|āĻāĻĒā§āϰāĻŋāϞ|āĻŽā§‡|āϜ⧁āύ|āϜ⧁āϞāĻžāχ|āφāĻ—āĻ¸ā§āϟ|āϏ⧇āĻĒā§āϟ|āĻ…āĻ•ā§āĻŸā§‹|āύāϭ⧇|āĻĄāĻŋāϏ⧇)/i,
abbreviated: /^(āϜāĻžāύ⧁|āĻĢ⧇āĻŦā§āϰ⧁|āĻŽāĻžāĻ°ā§āϚ|āĻāĻĒā§āϰāĻŋāϞ|āĻŽā§‡|āϜ⧁āύ|āϜ⧁āϞāĻžāχ|āφāĻ—āĻ¸ā§āϟ|āϏ⧇āĻĒā§āϟ|āĻ…āĻ•ā§āĻŸā§‹|āύāϭ⧇|āĻĄāĻŋāϏ⧇)/i,
wide: /^(āϜāĻžāύ⧁⧟āĻžāϰāĻŋ|āĻĢ⧇āĻŦā§āϰ⧁⧟āĻžāϰāĻŋ|āĻŽāĻžāĻ°ā§āϚ|āĻāĻĒā§āϰāĻŋāϞ|āĻŽā§‡|āϜ⧁āύ|āϜ⧁āϞāĻžāχ|āφāĻ—āĻ¸ā§āϟ|āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ|āĻ…āĻ•ā§āĻŸā§‹āĻŦāϰ|āύāϭ⧇āĻŽā§āĻŦāϰ|āĻĄāĻŋāϏ⧇āĻŽā§āĻŦāϰ)/i
};
var parseMonthPatterns = {
any: [/^āϜāĻžāύ⧁/i, /^āĻĢ⧇āĻŦā§āϰ⧁/i, /^āĻŽāĻžāĻ°ā§āϚ/i, /^āĻāĻĒā§āϰāĻŋāϞ/i, /^āĻŽā§‡/i, /^āϜ⧁āύ/i, /^āϜ⧁āϞāĻžāχ/i, /^āφāĻ—āĻ¸ā§āϟ/i, /^āϏ⧇āĻĒā§āϟ/i, /^āĻ…āĻ•ā§āĻŸā§‹/i, /^āύāϭ⧇/i, /^āĻĄāĻŋāϏ⧇/i]
};
var matchDayPatterns = {
narrow: /^(āϰ|āϏ⧋|āĻŽ|āĻŦ⧁|āĻŦ⧃|āĻļ⧁|āĻļ)+/i,
short: /^(āϰāĻŦāĻŋ|āϏ⧋āĻŽ|āĻŽāĻ™ā§āĻ—āϞ|āĻŦ⧁āϧ|āĻŦ⧃āĻš|āĻļ⧁āĻ•ā§āϰ|āĻļāύāĻŋ)+/i,
abbreviated: /^(āϰāĻŦāĻŋ|āϏ⧋āĻŽ|āĻŽāĻ™ā§āĻ—āϞ|āĻŦ⧁āϧ|āĻŦ⧃āĻš|āĻļ⧁āĻ•ā§āϰ|āĻļāύāĻŋ)+/i,
wide: /^(āϰāĻŦāĻŋāĻŦāĻžāϰ|āϏ⧋āĻŽāĻŦāĻžāϰ|āĻŽāĻ™ā§āĻ—āϞāĻŦāĻžāϰ|āĻŦ⧁āϧāĻŦāĻžāϰ|āĻŦ⧃āĻšāĻ¸ā§āĻĒāϤāĻŋāĻŦāĻžāϰ |āĻļ⧁āĻ•ā§āϰāĻŦāĻžāϰ|āĻļāύāĻŋāĻŦāĻžāϰ)+/i
};
var parseDayPatterns = {
narrow: [/^āϰ/i, /^āϏ⧋/i, /^āĻŽ/i, /^āĻŦ⧁/i, /^āĻŦ⧃/i, /^āĻļ⧁/i, /^āĻļ/i],
short: [/^āϰāĻŦāĻŋ/i, /^āϏ⧋āĻŽ/i, /^āĻŽāĻ™ā§āĻ—āϞ/i, /^āĻŦ⧁āϧ/i, /^āĻŦ⧃āĻš/i, /^āĻļ⧁āĻ•ā§āϰ/i, /^āĻļāύāĻŋ/i],
abbreviated: [/^āϰāĻŦāĻŋ/i, /^āϏ⧋āĻŽ/i, /^āĻŽāĻ™ā§āĻ—āϞ/i, /^āĻŦ⧁āϧ/i, /^āĻŦ⧃āĻš/i, /^āĻļ⧁āĻ•ā§āϰ/i, /^āĻļāύāĻŋ/i],
wide: [/^āϰāĻŦāĻŋāĻŦāĻžāϰ/i, /^āϏ⧋āĻŽāĻŦāĻžāϰ/i, /^āĻŽāĻ™ā§āĻ—āϞāĻŦāĻžāϰ/i, /^āĻŦ⧁āϧāĻŦāĻžāϰ/i, /^āĻŦ⧃āĻšāĻ¸ā§āĻĒāϤāĻŋāĻŦāĻžāϰ /i, /^āĻļ⧁āĻ•ā§āϰāĻŦāĻžāϰ/i, /^āĻļāύāĻŋāĻŦāĻžāϰ/i]
};
var matchDayPeriodPatterns = {
narrow: /^(āĻĒā§‚|āĻ…āĻĒ|āĻŽāĻ§ā§āϝāϰāĻžāϤ|āĻŽāĻ§ā§āϝāĻžāĻšā§āύ|āϏāĻ•āĻžāϞ|āĻŦāĻŋāĻ•āĻžāϞ|āϏāĻ¨ā§āĻ§ā§āϝāĻž|āϰāĻžāϤ)/i,
abbreviated: /^(āĻĒā§‚āĻ°ā§āĻŦāĻžāĻšā§āύ|āĻ…āĻĒāϰāĻžāĻšā§āύ|āĻŽāĻ§ā§āϝāϰāĻžāϤ|āĻŽāĻ§ā§āϝāĻžāĻšā§āύ|āϏāĻ•āĻžāϞ|āĻŦāĻŋāĻ•āĻžāϞ|āϏāĻ¨ā§āĻ§ā§āϝāĻž|āϰāĻžāϤ)/i,
wide: /^(āĻĒā§‚āĻ°ā§āĻŦāĻžāĻšā§āύ|āĻ…āĻĒāϰāĻžāĻšā§āύ|āĻŽāĻ§ā§āϝāϰāĻžāϤ|āĻŽāĻ§ā§āϝāĻžāĻšā§āύ|āϏāĻ•āĻžāϞ|āĻŦāĻŋāĻ•āĻžāϞ|āϏāĻ¨ā§āĻ§ā§āϝāĻž|āϰāĻžāϤ)/i
};
var parseDayPeriodPatterns = {
any: {
am: /^āĻĒā§‚/i,
pm: /^āĻ…āĻĒ/i,
midnight: /^āĻŽāĻ§ā§āϝāϰāĻžāϤ/i,
noon: /^āĻŽāĻ§ā§āϝāĻžāĻšā§āύ/i,
morning: /āϏāĻ•āĻžāϞ/i,
afternoon: /āĻŦāĻŋāĻ•āĻžāϞ/i,
evening: /āϏāĻ¨ā§āĻ§ā§āϝāĻž/i,
night: /āϰāĻžāϤ/i
}
};
var match = {
ordinalNumber: (0, _index2.default)({
matchPattern: matchOrdinalNumberPattern,
parsePattern: parseOrdinalNumberPattern,
valueCallback: function valueCallback(value) {
return parseInt(value, 10);
}
}),
era: (0, _index.default)({
matchPatterns: matchEraPatterns,
defaultMatchWidth: 'wide',
parsePatterns: parseEraPatterns,
defaultParseWidth: 'wide'
}),
quarter: (0, _index.default)({
matchPatterns: matchQuarterPatterns,
defaultMatchWidth: 'wide',
parsePatterns: parseQuarterPatterns,
defaultParseWidth: 'any',
valueCallback: function valueCallback(index) {
return index + 1;
}
}),
month: (0, _index.default)({
matchPatterns: matchMonthPatterns,
defaultMatchWidth: 'wide',
parsePatterns: parseMonthPatterns,
defaultParseWidth: 'any'
}),
day: (0, _index.default)({
matchPatterns: matchDayPatterns,
defaultMatchWidth: 'wide',
parsePatterns: parseDayPatterns,
defaultParseWidth: 'wide'
}),
dayPeriod: (0, _index.default)({
matchPatterns: matchDayPeriodPatterns,
defaultMatchWidth: 'wide',
parsePatterns: parseDayPeriodPatterns,
defaultParseWidth: 'any'
})
};
var _default = match;
exports.default = _default;
module.exports = exports.default;