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;
}