Files
Laca-City/backend/node_modules/@nestjs/swagger/dist/services/response-object-factory.js
PhongPham c65cc97a33 🎯 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
2025-07-20 19:52:16 +07:00

54 lines
2.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseObjectFactory = void 0;
const lodash_1 = require("lodash");
const is_built_in_type_util_1 = require("../utils/is-built-in-type.util");
const mimetype_content_wrapper_1 = require("./mimetype-content-wrapper");
const model_properties_accessor_1 = require("./model-properties-accessor");
const response_object_mapper_1 = require("./response-object-mapper");
const schema_object_factory_1 = require("./schema-object-factory");
const swagger_types_mapper_1 = require("./swagger-types-mapper");
class ResponseObjectFactory {
constructor() {
this.mimetypeContentWrapper = new mimetype_content_wrapper_1.MimetypeContentWrapper();
this.modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor();
this.swaggerTypesMapper = new swagger_types_mapper_1.SwaggerTypesMapper();
this.schemaObjectFactory = new schema_object_factory_1.SchemaObjectFactory(this.modelPropertiesAccessor, this.swaggerTypesMapper);
this.responseObjectMapper = new response_object_mapper_1.ResponseObjectMapper();
}
create(response, produces, schemas) {
const { type, isArray } = response;
response = (0, lodash_1.omit)(response, ['isArray']);
if (!type) {
return this.responseObjectMapper.wrapSchemaWithContent(response, produces);
}
if ((0, is_built_in_type_util_1.isBuiltInType)(type)) {
const typeName = type && (0, lodash_1.isFunction)(type) ? type.name : type;
const swaggerType = this.swaggerTypesMapper.mapTypeToOpenAPIType(typeName);
if (isArray) {
const content = this.mimetypeContentWrapper.wrap(produces, {
schema: {
type: 'array',
items: {
type: swaggerType
}
}
});
return Object.assign(Object.assign({}, response), content);
}
const content = this.mimetypeContentWrapper.wrap(produces, {
schema: {
type: swaggerType
}
});
return Object.assign(Object.assign({}, response), content);
}
const name = this.schemaObjectFactory.exploreModelSchema(type, schemas);
if (isArray) {
return this.responseObjectMapper.toArrayRefObject(response, name, produces);
}
return this.responseObjectMapper.toRefObject(response, name, produces);
}
}
exports.ResponseObjectFactory = ResponseObjectFactory;