{"version":3,"file":"dep-65cd9d9e.mjs","sources":["../../src/base-map/useLayerManager/useMarkerLayer.ts"],"sourcesContent":["import useLayerListeners from './useLayerListeners';\nimport mapValues from 'lodash/mapValues';\nimport omit from 'lodash/omit';\nimport { Ref, WatchStopHandle } from 'vue';\nimport { LAYER_CONFIG_OMIT_PROP } from '../constants';\n\nexport default function useMarkerLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<MarkerLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config) return;\n\n  const { id: layerId } = layerInfo.value;\n\n  let markerStyle; let geometries;\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  const markerLayer = new TMap.MultiMarker({\n    id: layerId,\n    map: mapInstance,\n  });\n\n  unwatchList.push(watch(() => omit(\n    layerInfo.value.config,\n    LAYER_CONFIG_OMIT_PROP,\n  ), (newValue) => {\n    const styleOption = mapValues(newValue, val => toRaw(unref(val)));\n    if (!styleOption.src) delete styleOption.src; // 未传src时去掉，避免GL报错\n    markerStyle = new TMap.MarkerStyle(styleOption);\n    if (markerLayer) markerLayer.setStyles({ markerStyle });\n  }, { deep: true, immediate: true }));\n\n  unwatchList.push(watchEffect(() => {\n    if (!Array.isArray(layerInfo.value.config.data)) return;\n    try {\n      geometries = layerInfo.value.config.data.map((geometry: MarkerGeometry, index: number) => {\n        const { id, position, rank, properties, content } = geometry;\n        return {\n          id: id ? id : `${index}`,\n          position: new TMap.LatLng(position.lat, position.lng, position.height),\n          rank: rank ? rank : index,\n          styleId: 'markerStyle',\n          properties,\n          content,\n        };\n      });\n      if (markerLayer) markerLayer.setGeometries(geometries);\n    } catch (error) {\n      if (markerLayer) markerLayer.setGeometries([]);\n    }\n  }));\n\n  // 用户传入的事件回调在这里处理\n  unwatchList.push(watchEffect(() => {\n    useLayerListeners(markerLayer, [\n      { eventName: 'click', callbackList: layerInfo.value.config.onClick },\n      { eventName: 'hover', callbackList: layerInfo.value.config.onHover },\n    ]);\n  }));\n\n  markerLayer.unmount = (): void => {\n    markerLayer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return markerLayer;\n}\n"],"names":["useMarkerLayer","mapInstance","layerInfo","value","config","id","layerId","markerStyle","geometries","unwatchList","markerLayer","TMap","MultiMarker","map","push","watch","omit","LAYER_CONFIG_OMIT_PROP","newValue","styleOption","mapValues","val","toRaw","unref","src","MarkerStyle","setStyles","deep","immediate","watchEffect","Array","isArray","data","geometry","index","position","rank","properties","content","LatLng","lat","lng","height","styleId","setGeometries","error","useLayerListeners","eventName","callbackList","onClick","onHover","unmount","destroy","forEach","unwatch"],"mappings":"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"}