UNPKG

google-maps-drawing-tools

Version:
42 lines 4.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tool_1 = require("../tool"); class PolygonTool extends tool_1.default { constructor(options) { super(options); this.id = tool_1.ToolId.Marker; this.data = options.data; // private this.dataId = 'Point'; this.dataStyle = options.style || { clickable: false }; } activate() { let shape = super.activate(); this.data.setDrawingMode(this.dataId); this.data.setStyle(this.dataStyle); this.setupListeners(); return shape; } deactivate() { super.deactivate(); this.data.setDrawingMode(null); this.cleanupListeners(); } setupListeners() { let listener = this.data.addListener('addfeature', ({ feature }) => { this.feature = feature; this.deactivate(); }); this.feature = undefined; this.dataListener = listener; } cleanupListeners() { if (this.dataListener) { google.maps.event.removeListener(this.dataListener); } } } exports.default = PolygonTool; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9pcmFkY2hlbmtvL3dvcmtzcGFjZS9nb29nbGUtbWFwcy1kcmF3aW5nLXRvb2xzLyIsInNvdXJjZXMiOlsidG9vbHMvbWFya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0NBQTJEO0FBUzNELGlCQUFpQyxTQUFRLGNBQUk7SUFRM0MsWUFBWSxPQUEwQjtRQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQU0sQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRXpCLFVBQVU7UUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUk7WUFDaEMsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDUixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0NBQ0Y7QUF0REQsOEJBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRvb2wsIHsgU2hhcGUsIFRvb2xJZCwgVG9vbE9wdGlvbnMgfSBmcm9tICcuLi90b29sJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZXJUb29sT3B0aW9ucyBleHRlbmRzIFRvb2xPcHRpb25zIHtcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YTtcbiAgc3R5bGU/OiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgRHJhd2luZ01vZGUgPSAnUG9pbnQnIHwgJ0xpbmVTdHJpbmcnIHwgJ1BvbHlnb24nIHwgbnVsbDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9seWdvblRvb2wgZXh0ZW5kcyBUb29sIHtcbiAgaWQ6IFRvb2xJZDtcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YTtcblxuICBwcml2YXRlIGRhdGFJZDogRHJhd2luZ01vZGU7XG4gIHByaXZhdGUgZGF0YVN0eWxlOiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucztcbiAgcHJpdmF0ZSBkYXRhTGlzdGVuZXI/OiBnb29nbGUubWFwcy5NYXBzRXZlbnRMaXN0ZW5lcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNYXJrZXJUb29sT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5pZCA9IFRvb2xJZC5NYXJrZXI7XG4gICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgLy8gcHJpdmF0ZVxuICAgIHRoaXMuZGF0YUlkID0gJ1BvaW50JztcbiAgICB0aGlzLmRhdGFTdHlsZSA9IG9wdGlvbnMuc3R5bGUgfHwge1xuICAgICAgY2xpY2thYmxlOiBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhY3RpdmF0ZSgpOiBTaGFwZSB7XG4gICAgbGV0IHNoYXBlID0gc3VwZXIuYWN0aXZhdGUoKTtcblxuICAgIHRoaXMuZGF0YS5zZXREcmF3aW5nTW9kZSh0aGlzLmRhdGFJZCk7XG4gICAgdGhpcy5kYXRhLnNldFN0eWxlKHRoaXMuZGF0YVN0eWxlKTtcblxuICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcblxuICAgIHJldHVybiBzaGFwZTtcbiAgfVxuXG4gIGRlYWN0aXZhdGUoKSB7XG4gICAgc3VwZXIuZGVhY3RpdmF0ZSgpO1xuXG4gICAgdGhpcy5kYXRhLnNldERyYXdpbmdNb2RlKG51bGwpO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cExpc3RlbmVycygpIHtcbiAgICBsZXQgbGlzdGVuZXIgPSB0aGlzLmRhdGEuYWRkTGlzdGVuZXIoJ2FkZGZlYXR1cmUnLCAoeyBmZWF0dXJlIH0pID0+IHtcbiAgICAgIHRoaXMuZmVhdHVyZSA9IGZlYXR1cmU7XG4gICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmVhdHVyZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmRhdGFMaXN0ZW5lciA9IGxpc3RlbmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLmRhdGFMaXN0ZW5lcikge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQucmVtb3ZlTGlzdGVuZXIodGhpcy5kYXRhTGlzdGVuZXIpO1xuICAgIH1cbiAgfVxufVxuIl19