import{__awaiter as t,__generator as n,__assign as e}from"./_virtual/_tslib.js";import o from"./mixins/mixins.js";import{nearPair as i,lngLat2Array as s,theSamePair as r}from"./utils/amap-helpers.js";import{defineProp as a}from"./mixins/props.js";import{withVisible as u}from"./mixins/common.js";import p from"./mixins/overlay.js";import{Anchors as c}from"./utils/types.js";import l from"./utils/safe-get.js";var f=o(p,u(!0,"open","close")).extend({name:"AmapInfoWindow",amapMeta:{slot:!0,initComponent:function(o,i){return t(this,void 0,void 0,(function(){var t,s;return n(this,(function(n){return t=e({},i),s=l(this.$slots,"default.0.elm"),t.isCustom&&s&&(t.content=s),[2,new o.InfoWindow(t)]}))}))},events:["change","open","close"]},props:{isCustom:{type:Boolean,default:void 0},autoMove:{type:Boolean,default:void 0},avoid:a({type:Array}),closeWhenClickMap:{type:Boolean,default:void 0},content:a("setContent",String),size:a({type:Array,transform:function(t){return new window.AMap.Size(t[0],t[1])}}),anchor:a({type:String,setter:"setAnchor",validator:function(t){return c.includes(t)}}),offset:a({type:Array,transform:function(t){return new window.AMap.Pixel(t[0],t[1])}}),position:a({type:Array,deep:!0,setter:function(t,n){if(n){var e=t.getPosition();e&&i(n,s(e))||t.setPosition([n[0],n[1]])}},getter:function(t){var n=t.getPosition();return s(n)},equals:r})},methods:{open:function(){var t=this;this.$context.ready.then((function(n){var e=t.position;n.open(t.$map,e)}))},close:function(){this.$context.ready.then((function(t){t.close()}))},onOpen:function(){this.visible||this.$emit("update:visible",!0)},onClose:function(){this.visible&&this.$emit("update:visible",!1)},_updateContent:function(){var t=this;this.visible&&this.$nextTick((function(){var n=l(t.$slots,"default.0.elm",t.content);t.$context.ready.then((function(t){t.setContent(n)}))}))}},mounted:function(){return t(this,void 0,void 0,(function(){var t,e;return n(this,(function(n){switch(n.label){case 0:return[4,this.$context.ready];case 1:return t=n.sent(),e=t,this.visible&&(this._updateContent(),this.open()),e.on("open",this.onOpen),e.on("close",this.onClose),[2]}}))}))},watch:{visible:"_updateContent",content:"_updateContent"}});export default f;