{"version":3,"file":"InfoWindow.vue2.mjs","sources":["../../../../../packages/infoWindow/InfoWindow/InfoWindow.vue"],"sourcesContent":["<template>\r\n  <div style=\"display: none;\">\r\n    <teleport\r\n      v-if=\"!!divId\"\r\n      :to=\"'#'+divId\"\r\n    >\r\n      <slot />\r\n    </teleport>\r\n  </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions, nextTick, onUnmounted, ref} from 'vue';\r\nimport {useRegister} from \"../../../mixins\";\r\nimport guid from \"../../../utils/guid\";\r\nimport {propsTypes} from './props';\r\ndefineOptions({\r\n  name: 'ElAmapInfoWindow',\r\n  inheritAttrs: false\r\n});\r\nconst props = defineProps(propsTypes);\r\n\r\nconst emits = defineEmits(['init', 'update:visible']);\r\n\r\nconst needTeleport = !props.content;\r\n\r\nconst tempId = `info-${guid()}`;\r\n\r\nconst divId = ref('');\r\n\r\nlet $amapComponent: AMap.InfoWindow;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.InfoWindow, AMap.Map>((options, parentComponent) => {\r\n  return new Promise<AMap.InfoWindow>((resolve) => {\r\n    if (!options.content) {\r\n      options.content = `<div id=\"${tempId}\"></div>`;\r\n    }\r\n    $amapComponent = new AMap.InfoWindow(options);\r\n    $amapComponent.on('close', () => {\r\n      emits('update:visible', false);\r\n    });\r\n    if (props.visible) {\r\n      $amapComponent.open(parentComponent, props.position as [number, number]);\r\n      if(needTeleport){\r\n        divId.value = tempId;\r\n        nextTick(() => {\r\n          $amapComponent.setAnchor($amapComponent.getAnchor() as string);\r\n        });\r\n      }\r\n    }\r\n    resolve($amapComponent);\r\n  });\r\n\r\n}, {\r\n  emits,\r\n  watchRedirectFn: {\r\n    __position (position: [number, number]){\r\n      if (props.visible) {\r\n        $amapComponent.open(parentInstance?.$amapComponent, position);\r\n        if(needTeleport){\r\n          divId.value = tempId;\r\n        }\r\n      } else {\r\n        $amapComponent.setPosition(position);\r\n      }\r\n    },\r\n    __visible (flag: boolean) {\r\n      // fixed Amap info-window reopen\r\n      const position = $amapComponent.getPosition();\r\n      if (position) {\r\n        if(!flag){\r\n          $amapComponent.close();\r\n        }else{\r\n          $amapComponent.open(parentInstance?.$amapComponent, [position.lng, position.lat]);\r\n          if(needTeleport){\r\n            divId.value = tempId;\r\n            nextTick(() => {\r\n              $amapComponent.setAnchor($amapComponent.getAnchor() as string);\r\n            });\r\n          }\r\n        }\r\n        // !flag ? $amapComponent.close() : $amapComponent.open(parentInstance?.$amapComponent, [position.lng, position.lat]);\r\n      }\r\n    },\r\n  },\r\n  destroyComponent () {\r\n    if($amapComponent){\r\n      if($amapComponent.getIsOpen()){\r\n        $amapComponent.close();\r\n      }\r\n      $amapComponent = null as any;\r\n    }\r\n  },\r\n});\r\n\r\nonUnmounted(() => {\r\n  if($amapComponent){\r\n    $amapComponent.close();\r\n  }\r\n});\r\n\r\ndefineExpose({\r\n  $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAmBA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAM,MAAA,YAAA,GAAe,CAAC,KAAM,CAAA,OAAA,CAAA;AAE5B,IAAM,MAAA,MAAA,GAAS,CAAQ,KAAA,EAAA,IAAA,EAAM,CAAA,CAAA,CAAA;AAE7B,IAAM,MAAA,KAAA,GAAQ,IAAI,EAAE,CAAA,CAAA;AAEpB,IAAI,IAAA,cAAA,CAAA;AAEJ,IAAA,MAAM,EAAC,aAAe,EAAA,cAAA,KAAkB,WAAuC,CAAA,CAAC,SAAS,eAAoB,KAAA;AAC3G,MAAO,OAAA,IAAI,OAAyB,CAAA,CAAC,OAAY,KAAA;AAC/C,QAAI,IAAA,CAAC,QAAQ,OAAS,EAAA;AACpB,UAAQ,OAAA,CAAA,OAAA,GAAU,YAAY,MAAM,CAAA,QAAA,CAAA,CAAA;AAAA,SACtC;AACA,QAAiB,cAAA,GAAA,IAAI,IAAK,CAAA,UAAA,CAAW,OAAO,CAAA,CAAA;AAC5C,QAAe,cAAA,CAAA,EAAA,CAAG,SAAS,MAAM;AAC/B,UAAA,KAAA,CAAM,kBAAkB,KAAK,CAAA,CAAA;AAAA,SAC9B,CAAA,CAAA;AACD,QAAA,IAAI,MAAM,OAAS,EAAA;AACjB,UAAe,cAAA,CAAA,IAAA,CAAK,eAAiB,EAAA,KAAA,CAAM,QAA4B,CAAA,CAAA;AACvE,UAAA,IAAG,YAAa,EAAA;AACd,YAAA,KAAA,CAAM,KAAQ,GAAA,MAAA,CAAA;AACd,YAAA,QAAA,CAAS,MAAM;AACb,cAAe,cAAA,CAAA,SAAA,CAAU,cAAe,CAAA,SAAA,EAAqB,CAAA,CAAA;AAAA,aAC9D,CAAA,CAAA;AAAA,WACH;AAAA,SACF;AACA,QAAA,OAAA,CAAQ,cAAc,CAAA,CAAA;AAAA,OACvB,CAAA,CAAA;AAAA,KAEA,EAAA;AAAA,MACD,KAAA;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,WAAY,QAA2B,EAAA;AACrC,UAAA,IAAI,MAAM,OAAS,EAAA;AACjB,YAAe,cAAA,CAAA,IAAA,CAAK,cAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAA,cAAA,EAAgB,QAAQ,CAAA,CAAA;AAC5D,YAAA,IAAG,YAAa,EAAA;AACd,cAAA,KAAA,CAAM,KAAQ,GAAA,MAAA,CAAA;AAAA,aAChB;AAAA,WACK,MAAA;AACL,YAAA,cAAA,CAAe,YAAY,QAAQ,CAAA,CAAA;AAAA,WACrC;AAAA,SACF;AAAA,QACA,UAAW,IAAe,EAAA;AAExB,UAAM,MAAA,QAAA,GAAW,eAAe,WAAY,EAAA,CAAA;AAC5C,UAAA,IAAI,QAAU,EAAA;AACZ,YAAA,IAAG,CAAC,IAAK,EAAA;AACP,cAAA,cAAA,CAAe,KAAM,EAAA,CAAA;AAAA,aAClB,MAAA;AACH,cAAe,cAAA,CAAA,IAAA,CAAK,iDAAgB,cAAgB,EAAA,CAAC,SAAS,GAAK,EAAA,QAAA,CAAS,GAAG,CAAC,CAAA,CAAA;AAChF,cAAA,IAAG,YAAa,EAAA;AACd,gBAAA,KAAA,CAAM,KAAQ,GAAA,MAAA,CAAA;AACd,gBAAA,QAAA,CAAS,MAAM;AACb,kBAAe,cAAA,CAAA,SAAA,CAAU,cAAe,CAAA,SAAA,EAAqB,CAAA,CAAA;AAAA,iBAC9D,CAAA,CAAA;AAAA,eACH;AAAA,aACF;AAAA,WAEF;AAAA,SACF;AAAA,OACF;AAAA,MACA,gBAAoB,GAAA;AAClB,QAAA,IAAG,cAAe,EAAA;AAChB,UAAG,IAAA,cAAA,CAAe,WAAY,EAAA;AAC5B,YAAA,cAAA,CAAe,KAAM,EAAA,CAAA;AAAA,WACvB;AACA,UAAiB,cAAA,GAAA,IAAA,CAAA;AAAA,SACnB;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAG,cAAe,EAAA;AAChB,QAAA,cAAA,CAAe,KAAM,EAAA,CAAA;AAAA,OACvB;AAAA,KACD,CAAA,CAAA;AAED,IAAa,QAAA,CAAA;AAAA,MACX,aAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;"}