UNPKG

@ng-maps/google

Version:

**@ng-maps/google** is a simple, modular and tree-shakable library for displaying google-maps inside an angular application

62 lines 8.47 kB
import { Injectable, NgZone } from '@angular/core'; import { Observable } from 'rxjs'; import { MapsApiWrapper, PolygonManager, } from '@ng-maps/core'; import * as i0 from "@angular/core"; import * as i1 from "@ng-maps/core"; export class GooglePolygonManager extends PolygonManager { constructor(_mapsWrapper, _zone) { super(_mapsWrapper, _zone); } addPolygon(path) { const polygonPromise = this._mapsWrapper.createPolygon({ clickable: path.clickable, draggable: path.draggable, editable: path.editable, fillColor: path.fillColor, fillOpacity: path.fillOpacity, geodesic: path.geodesic, paths: path.paths, strokeColor: path.strokeColor, strokeOpacity: path.strokeOpacity, strokeWeight: path.strokeWeight, visible: path.visible, zIndex: path.zIndex, }); this._polygons.set(path, polygonPromise); } async updatePolygon(polygon) { const item = await this._polygons.get(polygon); if (item != null) { this._zone.run(() => { item.setPaths(polygon.paths); }); } } async setPolygonOptions(path, options) { const l = await this._polygons.get(path); l?.setOptions(options); } deletePolygon(paths) { const m = this._polygons.get(paths); if (m == null) { return Promise.resolve(); } return m.then((l) => this._zone.run(() => { l.setMap(null); this._polygons.delete(paths); })); } createEventObservable(eventName, path) { return new Observable((observer) => { this._polygons.get(path)?.then((l) => { l.addListener(eventName, (e) => this._zone.run(() => observer.next(e))); }); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolygonManager, deps: [{ token: i1.MapsApiWrapper }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolygonManager }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GooglePolygonManager, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.MapsApiWrapper }, { type: i0.NgZone }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9nb29nbGUvc3JjL2xpYi9tYW5hZ2Vycy9wb2x5Z29uLm1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQ0wsY0FBYyxFQUVkLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxjQUFtQztJQUMzRSxZQUFZLFlBQTRCLEVBQUUsS0FBYTtRQUNyRCxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBNEI7UUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQStCO1FBQ3hELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUM1QixJQUE0QixFQUM1QixPQUFvQztRQUVwQyxNQUFNLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUE2QjtRQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFzQixFQUFFLEVBQUUsQ0FDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLHFCQUFxQixDQUMxQixTQUFpQixFQUNqQixJQUE0QjtRQUU1QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQXNCLEVBQUUsRUFBRTtnQkFDeEQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFJLEVBQUUsRUFBRSxDQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3ZDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRVUsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIE1hcHNBcGlXcmFwcGVyLFxuICBOZ01hcHNQb2x5Z29uRGlyZWN0aXZlLFxuICBQb2x5Z29uTWFuYWdlcixcbn0gZnJvbSAnQG5nLW1hcHMvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVQb2x5Z29uTWFuYWdlciBleHRlbmRzIFBvbHlnb25NYW5hZ2VyPGdvb2dsZS5tYXBzLlBvbHlnb24+IHtcbiAgY29uc3RydWN0b3IoX21hcHNXcmFwcGVyOiBNYXBzQXBpV3JhcHBlciwgX3pvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKF9tYXBzV3JhcHBlciwgX3pvbmUpO1xuICB9XG5cbiAgcHVibGljIGFkZFBvbHlnb24ocGF0aDogTmdNYXBzUG9seWdvbkRpcmVjdGl2ZSkge1xuICAgIGNvbnN0IHBvbHlnb25Qcm9taXNlID0gdGhpcy5fbWFwc1dyYXBwZXIuY3JlYXRlUG9seWdvbih7XG4gICAgICBjbGlja2FibGU6IHBhdGguY2xpY2thYmxlLFxuICAgICAgZHJhZ2dhYmxlOiBwYXRoLmRyYWdnYWJsZSxcbiAgICAgIGVkaXRhYmxlOiBwYXRoLmVkaXRhYmxlLFxuICAgICAgZmlsbENvbG9yOiBwYXRoLmZpbGxDb2xvcixcbiAgICAgIGZpbGxPcGFjaXR5OiBwYXRoLmZpbGxPcGFjaXR5LFxuICAgICAgZ2VvZGVzaWM6IHBhdGguZ2VvZGVzaWMsXG4gICAgICBwYXRoczogcGF0aC5wYXRocyxcbiAgICAgIHN0cm9rZUNvbG9yOiBwYXRoLnN0cm9rZUNvbG9yLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogcGF0aC5zdHJva2VPcGFjaXR5LFxuICAgICAgc3Ryb2tlV2VpZ2h0OiBwYXRoLnN0cm9rZVdlaWdodCxcbiAgICAgIHZpc2libGU6IHBhdGgudmlzaWJsZSxcbiAgICAgIHpJbmRleDogcGF0aC56SW5kZXgsXG4gICAgfSk7XG4gICAgdGhpcy5fcG9seWdvbnMuc2V0KHBhdGgsIHBvbHlnb25Qcm9taXNlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVQb2x5Z29uKHBvbHlnb246IE5nTWFwc1BvbHlnb25EaXJlY3RpdmUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgdGhpcy5fcG9seWdvbnMuZ2V0KHBvbHlnb24pO1xuICAgIGlmIChpdGVtICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaXRlbS5zZXRQYXRocyhwb2x5Z29uLnBhdGhzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRQb2x5Z29uT3B0aW9ucyhcbiAgICBwYXRoOiBOZ01hcHNQb2x5Z29uRGlyZWN0aXZlLFxuICAgIG9wdGlvbnM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbCA9IGF3YWl0IHRoaXMuX3BvbHlnb25zLmdldChwYXRoKTtcbiAgICBsPy5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZVBvbHlnb24ocGF0aHM6IE5nTWFwc1BvbHlnb25EaXJlY3RpdmUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtID0gdGhpcy5fcG9seWdvbnMuZ2V0KHBhdGhzKTtcbiAgICBpZiAobSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBtLnRoZW4oKGw6IGdvb2dsZS5tYXBzLlBvbHlnb24pID0+XG4gICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGwuc2V0TWFwKG51bGwpO1xuICAgICAgICB0aGlzLl9wb2x5Z29ucy5kZWxldGUocGF0aHMpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudE9ic2VydmFibGU8VD4oXG4gICAgZXZlbnROYW1lOiBzdHJpbmcsXG4gICAgcGF0aDogTmdNYXBzUG9seWdvbkRpcmVjdGl2ZSxcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcbiAgICAgIHRoaXMuX3BvbHlnb25zLmdldChwYXRoKT8udGhlbigobDogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICBsLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgKGU6IFQpID0+XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChlKSksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19