"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./config.js"),t=require("./utils/defer.js"),o=require("./load-amap.js"),r=require("./_virtual/_tslib.js"),n=require("vue");require("./mixins/mixins.js");var a=require("./utils/log.js"),i=require("./utils/amap-helpers.js"),s=require("./mixins/events.js"),d=require("./mixins/props.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){return function(t,o){var r;t.setStatus(((r={})[e]=o,r))}}var p=l(n).default.extend({name:"Amap",amapMeta:{events:["click","dblclick","rightclick","mapmove","movestart","moveend","hotspotclick","hotspotover","hotspotout","mousemove","mousewheel","mouseover","mouseup","mousedown","zoomchange","zoomstart","zoomend","dragstart","dragging","dragend","resize","touchstart","touchmove","touchend"]},props:{cacheKey:d.defineProp({type:String,initialize:!1}),center:d.defineProp({type:Array,deep:!0,equals:i.theSamePair,setter:function(e,t){if(t){var o=i.lngLat2Array(e.getCenter());i.nearPair(t,o)||e.setCenter([t[0],t[1]])}},getter:function(e){return i.lngLat2Array(e.getCenter())},events:["mapmove","moveend"]}),zoom:d.defineProp({type:Number,equals:i.near,setter:function(e,t){if(void 0!==t){var o=e.getZoom();i.near(o,t)||e.setZoom(t)}},getter:"getZoom",events:["zoomchange","zoomend"]}),rotation:d.defineProp({type:Number,equals:i.near,setter:"setRotation",getter:"getRotation",events:["dragging","dragend","moveend","rotateend"]}),pitch:d.defineProp({type:Number,equals:i.near,setter:"setPitch",getter:"getPitch",events:["dragging","dragend","moveend","pitchend"]}),viewMode:{type:String},features:d.defineProp("setFeatures",Array),zooms:{type:Array},dragEnable:d.defineProp({type:Boolean,default:void 0,setter:u("dragEnable")}),zoomEnable:d.defineProp({type:Boolean,default:void 0,setter:u("zoomEnable")}),jogEnable:d.defineProp({type:Boolean,default:void 0,setter:u("jogEnable")}),pitchEnable:d.defineProp({type:Boolean,default:void 0,setter:u("pitchEnable")}),rotateEnable:d.defineProp({type:Boolean,default:void 0,setter:u("rotateEnable")}),animateEnable:d.defineProp({type:Boolean,default:void 0,setter:u("animateEnable")}),keyboardEnable:d.defineProp({type:Boolean,default:void 0,setter:u("keyboardEnable")}),doubleClickZoom:d.defineProp({type:Boolean,default:void 0,setter:u("doubleClickZoom")}),scrollWheel:d.defineProp({type:Boolean,default:void 0,setter:u("scrollWheel")}),touchZoom:{type:Boolean,default:void 0},touchZoomCenter:{type:Boolean,default:void 0},showLabel:{type:Boolean,default:void 0},defaultCursor:d.defineProp("setDefaultCursor",String),isHotspot:d.defineProp({type:Boolean,default:void 0,setter:u("isHotspot")}),mapStyle:d.defineProp("setMapStyle",String),wallColor:{type:String},roofColor:{type:String},skyColor:{type:String},showBuildingBlock:{type:Boolean,default:void 0},showIndoorMap:d.defineProp({type:Boolean,default:void 0,setter:u("showIndoorMap")}),mask:{type:Array},extraOptions:{type:Object,required:!1,default:void 0}},data:function(){return{ready:!1}},computed:{$context:function(){return this.$amap.context},$map:function(){return this.$context.target}},methods:{_clear:function(){var e=this.$map;e&&(s.unbindEvents(this),e.clearMap(),e.clearInfoWindow())},_getContainer:function(t){var o=this.cacheKey;if(!e.default._disableMapCache&&o){var r="amap-vue-container-inner-"+o,n=document.getElementById(r)||this.$el.querySelector("#"+r);return n||((n=document.createElement("div")).className="amap-vue-container-inner",n.setAttribute("id",r),n.setAttribute("style","position:relative; width:100%; height:100%;")),t?(this.$el.insertAdjacentElement("afterbegin",n),n.style.display="block",n.style.pointerEvents="initial"):(n.style.display="none",n.style.pointerEvents="none"),n}return this.$el}},beforeCreate:function(){o.default();var e=t.default(),r={AMap:null,wrapper:null,ready:e.promise,target:null,vm:this,destroyed:!1};this.$amap={events:{},ready:e,context:r,logger:a.createLogger(this)}},mounted:function(){return r.__awaiter(this,void 0,void 0,(function(){var e,t,n,a,l,u,p,c,f,m,h=this;return r.__generator(this,(function(v){switch(v.label){case 0:return e=this.$context,[4,o.default()];case 1:if(t=v.sent(),e.AMap=t,e.destroyed)return[2];if(n=i.getOptionsFromProps(this),a=this._getContainer(!0),l=!!a.$amap)for(u in n)p=this.$options.props[u],c=n[u],d.setPropValue(this,a.$amap,p,c);else a.$amap=new t.Map(a,n);return f=a.$amap,e.wrapper=a,e.target=f,d.bindProps(this),s.bindEvents(this),m=function(){return r.__awaiter(h,void 0,void 0,(function(){return r.__generator(this,(function(e){switch(e.label){case 0:return this.ready=!0,this.$amap.ready.resolve(f),[4,this.$nextTick()];case 1:return e.sent(),this.$emit("complete",f),[2]}}))}))},l?m():f.on("complete",m),[2]}}))}))},destroyed:function(){var t=this.$context;if(!e.default._disableMapCache&&this.cacheKey){var o=this._getContainer(!1);document.body.appendChild(o),this._clear()}else t.target&&t.target.destroy();t.destroyed=!0},provide:function(){return{$amapMap:this.$context}},render:function(e){var t=this.$slots.default;return this.ready||(t=void 0),e("div",{class:"amap-vue-container",style:"position:relative; width:100%; height:100%;"},t)}});exports.default=p;