{"version":3,"file":"amap.vue2.mjs","sources":["../../../../packages/amap/amap.vue"],"sourcesContent":["<template>\r\n  <div class=\"el-vue-amap-container\">\r\n    <div\r\n      :id=\"mapDomId\"\r\n      class=\"el-vue-amap\"\r\n    />\r\n    <slot />\r\n  </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions, ref, nextTick, provide, onBeforeUnmount} from 'vue';\r\nimport {useRegister, provideKey} from \"../../mixins\";\r\nimport guid from \"../../utils/guid\";\r\nimport {lazyAMapApiLoaderInstance} from \"../../services\";\r\nimport {propsType} from \"./props\";\r\nimport type {IProvideType, TRegisterFn} from \"../../mixins\";\r\n\r\ndefineOptions({\r\n  name: 'ElAmap',\r\n  inheritAttrs: false\r\n});\r\n\r\nconst needInitComponents: TRegisterFn[] = [];\r\nconst provideData:IProvideType = {\r\n  $amapComponent: undefined,\r\n  addChildComponent (cb){\r\n    needInitComponents.push(cb);\r\n  },\r\n  isDestroy: false\r\n};\r\n\r\nprovide(provideKey, provideData);\r\n\r\nconst props = defineProps(propsType);\r\n\r\nconst emits = defineEmits(['init','update:zoom', 'update:center', 'update:rotation', 'update:pitch']);\r\n\r\nconst mapDomId = ref<string>(props.vid as string || guid());\r\nlet $amapComponent: AMap.Map;\r\n\r\nconst {$$getInstance} = useRegister((options) => {\r\n  return new Promise<AMap.Map>((resolve, reject) => {\r\n    if(!lazyAMapApiLoaderInstance){\r\n     reject(new Error('请初始化initAMapApiLoader'));\r\n     return;\r\n    }\r\n    lazyAMapApiLoaderInstance.then(() => {\r\n      nextTick(() => {\r\n        $amapComponent = new AMap.Map(mapDomId.value, options);\r\n        provideData.$amapComponent = $amapComponent;\r\n        bindModelEvents();\r\n        resolve($amapComponent);\r\n      });\r\n    }).catch((e: any) => {\r\n      reject(e);\r\n    });\r\n  });\r\n  \r\n}, {\r\n  isRoot: true,\r\n  emits,\r\n  needInitComponents,\r\n  provideData,\r\n  watchRedirectFn: {\r\n    __dragEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({dragEnable: flag});\r\n      }\r\n    },\r\n    __zoomEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({zoomEnable: flag});\r\n      }\r\n    },\r\n    __jogEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({jogEnable: flag});\r\n      }\r\n    },\r\n    __keyboardEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({keyboardEnable: flag});\r\n      }\r\n    },\r\n    __doubleClickZoom (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({doubleClickZoom: flag});\r\n      }\r\n    },\r\n    __scrollWheel (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({scrollWheel: flag});\r\n      }\r\n    },\r\n    __rotateEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({rotateEnable: flag});\r\n      }\r\n    },\r\n    __pitchEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({pitchEnable: flag});\r\n      }\r\n    },\r\n    __resizeEnable (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({resizeEnable: flag});\r\n      }\r\n    },\r\n    __showIndoorMap (flag: boolean){\r\n      if($amapComponent){\r\n        $amapComponent.setStatus({showIndoorMap: flag});\r\n      }\r\n    }\r\n  }\r\n});\r\nconst bindModelEvents = () => {\r\n  $amapComponent.on('zoomchange',() => {\r\n    emits('update:zoom', $amapComponent.getZoom());\r\n  });\r\n  $amapComponent.on('rotateend',() => {\r\n    emits('update:rotation', $amapComponent.getRotation());\r\n    // emits('update:pitch', $amapComponent.getPitch());\r\n  });\r\n  $amapComponent.on('dragging',() => {\r\n    emits('update:center', getCenter());\r\n    // emits('update:pitch', $amapComponent.getPitch());\r\n  });\r\n  $amapComponent.on('dragend',() => {\r\n    emits('update:pitch', $amapComponent.getPitch());\r\n  });\r\n  $amapComponent.on('touchmove',() => {\r\n    emits('update:center', getCenter());\r\n  });\r\n};\r\nconst getCenter = (): [number, number] => {\r\n  const center = $amapComponent.getCenter();\r\n  return [center.lng, center.lat];\r\n};\r\n\r\nonBeforeUnmount(() => {\r\n  if ($amapComponent) {\r\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n    // @ts-ignore\r\n    $amapComponent.clearEvents();\r\n    $amapComponent.destroy();\r\n    $amapComponent = null as any;\r\n  }\r\n});\r\n\r\ndefineExpose({\r\n  $$getInstance\r\n});\r\n\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.el-vue-amap-container {\r\n  height: 100%;\r\n  position: relative;\r\n\r\n  .el-vue-amap {\r\n    height: 100%;\r\n  }\r\n}\r\n</style>\r\n"],"names":[],"mappings":"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"}