✨ 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
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;
|
|
const _1 = require(".");
|
|
exports.FIRST_KEY_INDEX = 1;
|
|
exports.IS_READ_ONLY = true;
|
|
function transformArguments(index, query, options) {
|
|
return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query], options);
|
|
}
|
|
exports.transformArguments = transformArguments;
|
|
function transformReply(reply, withoutDocuments) {
|
|
const documents = [];
|
|
let i = 1;
|
|
while (i < reply.length) {
|
|
documents.push({
|
|
id: reply[i++],
|
|
value: withoutDocuments ? Object.create(null) : documentValue(reply[i++])
|
|
});
|
|
}
|
|
return {
|
|
total: reply[0],
|
|
documents
|
|
};
|
|
}
|
|
exports.transformReply = transformReply;
|
|
function documentValue(tuples) {
|
|
const message = Object.create(null);
|
|
let i = 0;
|
|
while (i < tuples.length) {
|
|
const key = tuples[i++], value = tuples[i++];
|
|
if (key === '$') { // might be a JSON reply
|
|
try {
|
|
Object.assign(message, JSON.parse(value));
|
|
continue;
|
|
}
|
|
catch {
|
|
// set as a regular property if not a valid JSON
|
|
}
|
|
}
|
|
message[key] = value;
|
|
}
|
|
return message;
|
|
}
|