import{__awaiter as t,__generator as e}from"../_virtual/_tslib.js";import r from"../load-plugins.js";import i from"./mixins.js";import{lngLat2Array as n,path2Array as o,theSamePath as a}from"../utils/amap-helpers.js";import{defineProp as s}from"./props.js";import d from"./geometry.js";import u from"./editable.js";export default function(p){return i(d,u).extend({amapMeta:{editable:{events:["end","move","adjust","addnode","removenode","add"],loadEditor:function(){return t(this,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,r("AMap."+p)];case 1:return t.sent(),[2]}}))}))},initEditor:function(r,i,n,o){return t(this,void 0,void 0,(function(){return e(this,(function(t){return[2,new r[p](i,n,o)]}))}))},onEdit:function(t){var e=t.target.getPath().map(n);this.$emit("update:path",e)}}},props:{path:s({type:Array,setter:function(t,e){if(this.$props.draggable||this.$props.editable){var r=o(t.getPath());if(a(r,e))return}t.setPath(e)},getter:function(t){return o(t.getPath())},clone:!0,equals:a,events:["dragging","dragend"]})}})}