{"version":3,"file":"SearchMapView.mjs","sources":["../../../../../packages/service/search/components/SearchMapView.ts"],"sourcesContent":["import { computed, defineComponent, h, onBeforeMount, type PropType, watch } from \"vue\";\r\nimport { TdtMarker } from \"~/overlay/marker\";\r\nimport { TdtInfowindow } from \"~/overlay/infowindow\";\r\nimport { toLngLats, toLonLatNumberArray } from \"~/utils/converter\";\r\nimport { useMapRoot } from \"~/use/mapRoot\";\r\nimport type { LngLat } from \"~/utils/types\";\r\n\r\nexport const SearchMapView = defineComponent({\r\n  props: {\r\n    /** 显示在地图上的点数组 */\r\n    pois: { type: Array as PropType<T.LocalSearchPoi[]>, default: () => [] },\r\n    /** 显示信息窗口的坐标 */\r\n    target: { type: Array as unknown as PropType<LngLat | null>, default: () => null },\r\n    /** 信息窗口的内容 */\r\n    content: { type: String, default: \"\" }\r\n  },\r\n  emits: {\r\n    /** 点击地图上的标点触发 */\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    \"poi-click\": (e: T.LocalSearchPoi) => true,\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    \"update-target\": (e: LngLat | null) => true\r\n  },\r\n  setup(props, { emit }) {\r\n    const markers = computed(() => {\r\n      return props.pois.map(poi => {\r\n        return {\r\n          position: toLonLatNumberArray(poi.lonlat),\r\n          extData: poi\r\n        };\r\n      });\r\n    });\r\n\r\n    onBeforeMount(async () => {\r\n      const tdtMap = await useMapRoot();\r\n\r\n      watch(markers, () => {\r\n        tdtMap?.setViewport(toLngLats(markers.value.map(e => e.position)));\r\n      });\r\n    });\r\n\r\n    return () =>\r\n      h(\"div\", null, [\r\n        ...markers.value.map(item => {\r\n          return h(TdtMarker, {\r\n            ...item,\r\n            onClick: () => emit(\"poi-click\", item.extData)\r\n          });\r\n        }),\r\n        h(TdtInfowindow, {\r\n          target: props.target,\r\n          content: props.content,\r\n          offset: [0, -30],\r\n          minWidth: 150,\r\n          \"onUpdate:target\": (e: LngLat | null) => emit(\"update-target\", e)\r\n        })\r\n      ]);\r\n  }\r\n});\r\n"],"names":["SearchMapView","defineComponent","props","emit","markers","computed","poi","toLonLatNumberArray","onBeforeMount","tdtMap","useMapRoot","watch","toLngLats","e","h","item","TdtMarker","TdtInfowindow"],"mappings":";;;;;AAOO,MAAMA,IAAgBC,EAAgB;AAAA,EAC3C,OAAO;AAAA;AAAA,IAEL,MAAM,EAAE,MAAM,OAAuC,SAAS,MAAM,CAAA,EAAG;AAAA;AAAA,IAEvE,QAAQ,EAAE,MAAM,OAA6C,SAAS,MAAM,KAAK;AAAA;AAAA,IAEjF,SAAS,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;AAAA;AAAA,IAGL,aAAa,CAAC,MAAwB;AAAA;AAAA,IAEtC,iBAAiB,CAAC,MAAqB;AAAA,EACzC;AAAA,EACA,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACf,UAAAC,IAAUC,EAAS,MAChBH,EAAM,KAAK,IAAI,CAAOI,OACpB;AAAA,MACL,UAAUC,EAAoBD,EAAI,MAAM;AAAA,MACxC,SAASA;AAAA,IACX,EACD,CACF;AAED,WAAAE,EAAc,YAAY;AAClB,YAAAC,IAAS,MAAMC,EAAW;AAEhC,MAAAC,EAAMP,GAAS,MAAM;AACX,QAAAK,KAAA,QAAAA,EAAA,YAAYG,EAAUR,EAAQ,MAAM,IAAI,CAAKS,MAAAA,EAAE,QAAQ,CAAC;AAAA,MAAC,CAClE;AAAA,IAAA,CACF,GAEM,MACLC,EAAE,OAAO,MAAM;AAAA,MACb,GAAGV,EAAQ,MAAM,IAAI,CAAQW,MACpBD,EAAEE,GAAW;AAAA,QAClB,GAAGD;AAAA,QACH,SAAS,MAAMZ,EAAK,aAAaY,EAAK,OAAO;AAAA,MAAA,CAC9C,CACF;AAAA,MACDD,EAAEG,GAAe;AAAA,QACf,QAAQf,EAAM;AAAA,QACd,SAASA,EAAM;AAAA,QACf,QAAQ,CAAC,GAAG,GAAG;AAAA,QACf,UAAU;AAAA,QACV,mBAAmB,CAACW,MAAqBV,EAAK,iBAAiBU,CAAC;AAAA,MACjE,CAAA;AAAA,IAAA,CACF;AAAA,EAAA;AAEP,CAAC;"}