{"version":3,"file":"ElasticMarker.vue2.mjs","sources":["../../../../../packages/marker/ElasticMarker/ElasticMarker.vue"],"sourcesContent":["<template>\r\n  <div />\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions} from 'vue';\r\nimport {useRegister} from \"../../../mixins\";\r\nimport {buildProps} from \"../../../utils\";\r\n\r\ndefineOptions({\r\n  name: 'ElAmapElasticMarker',\r\n  inheritAttrs: false\r\n});\r\n\r\ndefineProps(buildProps({\r\n  position: {\r\n    type: [Array, Object],\r\n    required: true\r\n  }, // 点标记在地图上显示的位置\r\n  title: {\r\n    type: String\r\n  }, // 鼠标滑过点标记时的文字提示。不设置则鼠标滑过点标无文字提示。\r\n  offset: {\r\n    type: [Array, Object]\r\n  }, // 点标记显示位置偏移量，默认值为 [0,0] 。Marker指定position后，默认以marker左上角位置为基准点（若设置了anchor，则以anchor设置位置为基准点），对准所给定的position位置，若需使marker指定位置对准在position处，需根据marker的尺寸设置一定的偏移量。\r\n  clickable: {\r\n    type: Boolean,\r\n    default: true\r\n  }, // 点标记是否可点击，默认值: true\r\n  draggable: {\r\n    type: Boolean,\r\n    default: false\r\n  }, // 设置点标记是否可拖拽移动，默认值：false\r\n  bubble: {\r\n    type: Boolean,\r\n    default: false\r\n  }, // 事件是否冒泡，默认为 false\r\n  zooms: {\r\n    type: Array\r\n  }, // 点标记显示的层级范围，超过范围不显示。默认值：zooms: [2, 20]\r\n  cursor: {\r\n    type: String\r\n  }, // 指定鼠标悬停时的鼠，默认值：'pointer'\r\n  topWhenClick: {\r\n    type: Boolean,\r\n    default: false\r\n  }, // 鼠标点击时marker是否置顶，默认false ，不置顶\r\n  zoomStyleMapping: {\r\n    type: Object\r\n  }, // 表示地图级别与styles中样式的映射，{14:0,15:0,16:1,17:1,}表示14到15级使用styles中的第0个样式，16-17级使用第二个样式\r\n  styles: {\r\n    type: Array\r\n  }, // 多个不同样式的数组\r\n  extData: {\r\n    type: Object,\r\n    default: () => null\r\n  }\r\n}));\r\nconst emits = defineEmits(['init','update:position']);\r\n\r\nlet $amapComponent: AMap.ElasticMarker;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.ElasticMarker, AMap.Map>((options, parentComponent) => {\r\n  return new Promise<AMap.ElasticMarker>((resolve) => {\r\n    AMap.plugin(['AMap.ElasticMarker'], () => {\r\n      $amapComponent = new AMap.ElasticMarker(options);\r\n      parentComponent.add($amapComponent);\r\n      bindModelEvents();\r\n      resolve($amapComponent);\r\n    });\r\n  });\r\n\r\n}, {\r\n  emits,\r\n  destroyComponent () {\r\n    if ($amapComponent && parentInstance?.$amapComponent) {\r\n      if(!parentInstance?.isDestroy){\r\n        parentInstance?.$amapComponent.remove($amapComponent);\r\n      }\r\n      $amapComponent = null as any;\r\n    }\r\n  },\r\n});\r\n\r\nconst bindModelEvents = () => {\r\n  $amapComponent.on('dragend',() => {\r\n    emitPosition();\r\n  });\r\n  $amapComponent.on('touchend',() => {\r\n    emitPosition();\r\n  });\r\n};\r\nconst emitPosition = () => {\r\n  const position = $amapComponent.getPosition();\r\n  emits('update:position', position?.toArray());\r\n};\r\n\r\ndefineExpose({\r\n  $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAI,IAAA,cAAA,CAAA;AAEJ,IAAA,MAAM,EAAC,aAAe,EAAA,cAAA,KAAkB,WAA0C,CAAA,CAAC,SAAS,eAAoB,KAAA;AAC9G,MAAO,OAAA,IAAI,OAA4B,CAAA,CAAC,OAAY,KAAA;AAClD,QAAA,IAAA,CAAK,MAAO,CAAA,CAAC,oBAAoB,CAAA,EAAG,MAAM;AACxC,UAAiB,cAAA,GAAA,IAAI,IAAK,CAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAC/C,UAAA,eAAA,CAAgB,IAAI,cAAc,CAAA,CAAA;AAClC,UAAgB,eAAA,EAAA,CAAA;AAChB,UAAA,OAAA,CAAQ,cAAc,CAAA,CAAA;AAAA,SACvB,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KAEA,EAAA;AAAA,MACD,KAAA;AAAA,MACA,gBAAoB,GAAA;AAClB,QAAI,IAAA,cAAA,KAAkB,iDAAgB,cAAgB,CAAA,EAAA;AACpD,UAAG,IAAA,EAAC,iDAAgB,SAAU,CAAA,EAAA;AAC5B,YAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,eAAe,MAAO,CAAA,cAAA,CAAA,CAAA;AAAA,WACxC;AACA,UAAiB,cAAA,GAAA,IAAA,CAAA;AAAA,SACnB;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAe,cAAA,CAAA,EAAA,CAAG,WAAU,MAAM;AAChC,QAAa,YAAA,EAAA,CAAA;AAAA,OACd,CAAA,CAAA;AACD,MAAe,cAAA,CAAA,EAAA,CAAG,YAAW,MAAM;AACjC,QAAa,YAAA,EAAA,CAAA;AAAA,OACd,CAAA,CAAA;AAAA,KACH,CAAA;AACA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAM,MAAA,QAAA,GAAW,eAAe,WAAY,EAAA,CAAA;AAC5C,MAAM,KAAA,CAAA,iBAAA,EAAmB,qCAAU,OAAS,EAAA,CAAA,CAAA;AAAA,KAC9C,CAAA;AAEA,IAAa,QAAA,CAAA;AAAA,MACX,aAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;"}