"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./_virtual/_tslib.js"),t=require("./load-plugins.js"),r=require("./mixins/mixins.js"),a=require("./utils/amap-helpers.js"),o=require("./mixins/props.js"),n=require("./mixins/base.js"),i=r.default(n.default).extend({amapMeta:{prepare:function(){return t.default("AMap.MouseTool")},initComponent:function(t){return e.__awaiter(this,void 0,void 0,(function(){return e.__generator(this,(function(e){return[2,new t.MouseTool(this.$map)]}))}))},add:function(){},remove:function(){}},props:{mode:o.defineProp({type:String,default:"none"}),clearWhenClose:{type:Boolean,default:!0},options:{type:Object}},data:function(){return{drawingMode:void 0}},computed:{$mousetool:function(){return this.$target}},methods:{close:function(e){this.$mousetool.close(e)},draw:function(){var e=this.$mousetool,t=this.mode,r=this.drawingMode,a=this.options,o=void 0===a?{}:a;if(t!==r){switch(t){case"none":this.close(this.clearWhenClose);break;case"marker":e.marker(o);break;case"polyline":e.polyline(o);break;case"polygon":e.polygon(o);break;case"rectangle":e.rectangle(o);break;case"circle":e.circle(o);break;case"rule":e.rule(o);break;case"measureArea":e.measureArea(o);break;case"rectZoomIn":e.rectZoomIn(o);break;case"rectZoomOut":e.rectZoomOut(o)}this.drawingMode=t}},_onDraw:function(e){if(this.mode!==this.drawingMode)return this.close(!0),void this.draw();var t=e.obj,r=this.drawingMode,o=t;switch(r){case"marker":o=a.lngLat2Array(t.getPosition());break;case"polyline":case"polygon":o=a.path2Array(t.getPath());break;case"rectangle":o=a.bounds2Array(t.getBounds());break;case"circle":o={center:a.lngLat2Array(t.getCenter()),radius:t.getRadius()};break;case"rule":o={path:a.path2Array(t.getPath()),length:t.getLength()};break;case"measureArea":o={path:a.path2Array(t.getPath()),area:t.getArea()}}this.$emit("draw",r,o),this.$emit("update:mode","none")}},mounted:function(){return e.__awaiter(this,void 0,void 0,(function(){var t,r=this;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,(t=this.$context).ready];case 1:return e.sent(),t.destroyed?[2]:(this.$mousetool.on("draw",this._onDraw),this.$watch("mode",(function(e){"none"!==e&&"none"!==r.drawingMode&&r.close(!0),r.draw()}),{immediate:!0}),[2])}}))}))}});exports.default=i;