{"version":3,"file":"dep-d6c35515.mjs","sources":["../../src/base-map/useLayerManager/usePolygonLayer.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 usePolygonLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<PolygonLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config) return;\n\n  const { id: layerId } = layerInfo.value;\n\n  let polygonStyle;\n  let geometries: PolygonGeometry[];\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  const polygonLayer = new TMap.MultiPolygon({\n    id: layerId,\n    map: mapInstance,\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    polygonStyle = new TMap.PolygonStyle(styleOption);\n    if (polygonLayer) polygonLayer.setStyles({ polygonStyle });\n  }));\n\n  unwatchList.push(watchEffect(() => {\n    if (!Array.isArray(layerInfo.value.config.data)) return;\n    try {\n      geometries = layerInfo.value.config.data.map((geometry: PolygonGeometry, index: number) => {\n        const { id, paths, rank, properties } = geometry;\n        const polygonGeometriesList: PolygonGeometry['paths'] = [];\n        paths.forEach((item) => {\n          if (!Array.isArray(item)) {\n            polygonGeometriesList.push(new TMap.LatLng(item.lat, item.lng));\n          } else {\n            const polygonGeometriesChild: PolygonGeometry['paths'] = [];\n            item.forEach((itemChild) => {\n              if (!Array.isArray(itemChild)) {\n                polygonGeometriesChild.push(new TMap.LatLng(itemChild.lat, itemChild.lng));\n              } else {\n                polygonGeometriesChild.push(itemChild.map(child => new TMap.LatLng(child.lat, child.lng)));\n              }\n            });\n            // todo ts\n            polygonGeometriesList.push(polygonGeometriesChild);\n          }\n        });\n\n        return {\n          id: id ? id : `${index}`,\n          paths: polygonGeometriesList,\n          rank: rank ? rank : index,\n          styleId: 'polygonStyle',\n          properties,\n        };\n      });\n      if (polygonLayer) polygonLayer.setGeometries(geometries);\n    } catch (error) {\n      polygonLayer?.setGeometries([]);\n    }\n  }));\n\n  // 针对配置的改变，重建图层\n  // watch(() => layerInfo.config, () => {\n  //   polygonLayer.destroy();\n  //   polygonLayer = null;\n  //   usePolygonLayer(mapInstance, layerInfo);\n  // });\n\n  unwatchList.push(watchEffect(() => {\n    useLayerListeners(polygonLayer, [\n      { eventName: 'click', callbackList: layerInfo.value.config.onClick },\n      { eventName: 'hover', callbackList: layerInfo.value.config.onHover },\n    ]);\n  }));\n\n  polygonLayer.unmount = (): void => {\n    polygonLayer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return polygonLayer;\n}\n"],"names":["usePolygonLayer","mapInstance","layerInfo","value","config","id","layerId","polygonStyle","geometries","unwatchList","polygonLayer","TMap","MultiPolygon","map","push","watchEffect","styleConfig","omit","LAYER_CONFIG_OMIT_PROP","styleOption","mapValues","val","toRaw","unref","PolygonStyle","setStyles","Array","isArray","data","geometry","index","paths","rank","properties","polygonGeometriesList","forEach","item","LatLng","lat","lng","polygonGeometriesChild","itemChild","child","styleId","setGeometries","error","useLayerListeners","eventName","callbackList","onClick","onHover","unmount","destroy","unwatch"],"mappings":"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"}