import { ElementRef, NgZone, OnInit, Renderer, EventEmitter, AfterViewInit } from '@angular/core'; import { FormGroup, FormControl } from '@angular/forms'; import { BaseInputSvgeoComponent } from '../base-input-svgeo.component'; import { MapsAPILoader } from '@agm/core'; import { Subject, BehaviorSubject } from 'rxjs'; /** * Componente para manejar los campos del Geomap. */ export declare class GeoMapComponent extends BaseInputSvgeoComponent implements OnInit, AfterViewInit { renderer: Renderer; elementRef: ElementRef; private mapsAPILoader; private ngZone; /** * * @example * ## metadata que lo define * ```ts * metadataGeomap = { * name: 'geomap', * type: 'geomap', * label: 'geomap', * grid: 'col-md-12', * form: '', * formArrayName: '', * group: '', * catchGeomap: '', * referenciaGeo: '', * subjectShow: '', * agregarLocalizacion: '' * } * ``` * ## html * ```html * * ``` */ /** * Variables para el funcionamiento del API de google maps. * "https://maps.googleapis.com/maps/api/staticmap?center=&zoom=8&size=400x900&key={{this.gmapi}}" */ gmapi: string; metadata: any; zoom: number; lat: number; lng: number; latMarker: number; lngMarker: number; searchControl: FormControl; autocomplete: any; /** * Variables que traen los valores de los campos del formulario para hacer la busqueda. */ calle: string; colonia: string; nuExterior: number; coPostal: number; municipio: string; estado: string; pais: string; /** * Variables para la formacion del componente. */ geocoder: any; form: FormGroup; map: Object; index: number; clickLatLng: EventEmitter; /** * Eventos que crean el Search de busqueda del componente. */ searchElementRef: ElementRef; agregarLocalizacion: Subject; /** * Variables del componente para el uso de sus funciones locales. */ visible: boolean; node: boolean; show: boolean; base64: string; /** * Subject que detecta los cambios en los atributos `lat` y `lng` */ changeLatLngSubject: Subject; /** * Emitter que se ejecuta al dar click al mapa */ private clickEmitter; catchGeomap: Subject; referenciaGeo?: { geoComponent: any; }; subjectShow: Subject; geomaps: Function; geonclick: Function; /** * Handler del emitter click */ onclick: Function; /** * Funcion que se ejecuta para convertir la imagen a base64. * @type {Function} */ geomapssave: Function; constructor(renderer: Renderer, elementRef: ElementRef, mapsAPILoader: MapsAPILoader, ngZone: NgZone); /** * Se ejecuta despues del constructor. */ ngOnInit(): void; /** * Se crea despues de que se crea graficamente el componente. */ ngAfterViewInit(): void; /** * Funcion que devuelve la imagen convertida en String base64. */ private imageToBase64(img); /** * Funcion que se ejecuta al cambiar el valor del formcontrol asociado. */ onValueChanges(_val: any): void; /** * Función que construye el componente desde los metadatos(json). */ initFromMetadata(): void; /** * Funcion para generar los puntos de localizaion en el componente del mapa. */ changeLocation(_e: any): void; changeLatLng(event: any): void; calocarCampos(): void; /** * Funcion que recibe los valores de los campos que de encuentra en el formulario y los concatena. */ buildAddress(localiza: any): void; /** * Funciones que trae la concatenacion del formulario y hace la busqueda en el componente del mapa. */ fillAddress(address: any): void; } /** * Clase para la interfaz de opciones del Geomap. */ export interface EstructureGeoMap { type: string; lat?: number; lng?: number; label?: string; draggable?: boolean; catchGeomap?: Subject; geomaps?: Function; gmapi?: string; agregarLocalizacion?: string; changeLatLngSubject?: Subject | BehaviorSubject; onclick?: Function; }