{"version":3,"file":"useGeoJsonLayer.mjs","sources":["../../../src/base-map/useLayerManager/useGeoJsonLayer.ts"],"sourcesContent":["import { Ref, WatchStopHandle } from 'vue';\nimport { LAYER_CONFIG_OMIT_PROP } from '../constants';\nimport mapValues from 'lodash/mapValues';\nimport omit from 'lodash/omit';\n\nexport default function useGeoJsonLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<GeoJsonLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config) return;\n  const { geoJson, type, zIndex, style } = layerInfo.value.config;\n  let geoJsonStyle;\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  const geoJsonLayer = new TMap.vector.GeoJSONLayer({\n    map: mapInstance,\n    data: geoJson,\n    zIndex,\n    ...getStyle(type, style),\n  });\n\n  unwatchList.push(watchEffect(() => {\n    geoJsonLayer.setData(geoJson);\n  }));\n\n  unwatchList.push(watchEffect(() => {\n    const styleConfig = omit(layerInfo.value.config, LAYER_CONFIG_OMIT_PROP);\n    const styleOption = mapValues(styleConfig, val => toRaw(unref(val)));\n    geoJsonStyle = getStyle(type, styleOption);\n    if (geoJsonLayer) geoJsonLayer._geomtryStyles[type] = geoJsonStyle;\n  }));\n\n  geoJsonLayer.unmount = (): void => {\n    geoJsonLayer?.setData(null);\n    geoJsonLayer?.setMap(null);\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return geoJsonLayer;\n}\n\nconst getStyle = (type: string, style: LooseObject = {}): LooseObject => {\n  const lowerType = type.toLocaleLowerCase();\n  const styleOption: LooseObject = {};\n  if (lowerType.indexOf('marker') !== -1 || lowerType.indexOf('point') !== -1) {\n    styleOption.markerStyle = new TMap.MarkerStyle(style);\n  } else if (lowerType.indexOf('line') !== -1) {\n    styleOption.polylineStyle = new TMap.PolylineStyle(style);\n  } else if (lowerType.indexOf('polygon') !== -1) {\n    styleOption.polygonStyle = new TMap.PolygonStyle(style);\n  }\n  return styleOption;\n};\n"],"names":["useGeoJsonLayer","mapInstance","layerInfo","value","config","geoJson","type","zIndex","style","geoJsonStyle","unwatchList","geoJsonLayer","TMap","vector","GeoJSONLayer","_objectSpread","map","data","getStyle","push","watchEffect","setData","styleConfig","omit","LAYER_CONFIG_OMIT_PROP","styleOption","mapValues","val","toRaw","unref","_geomtryStyles","unmount","setMap","forEach","unwatch","lowerType","toLocaleLowerCase","indexOf","markerStyle","MarkerStyle","polylineStyle","PolylineStyle","polygonStyle","PolygonStyle"],"mappings":"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"}