{"version":3,"file":"dep-a44b9ca7.mjs","sources":["../../src/base-map/useLayerManager/useRadiationLayer.ts"],"sourcesContent":["const DEFAULT_STYLE = 'radiationStyle';\nimport { Ref, WatchStopHandle } from 'vue';\nimport omit from 'lodash/omit';\nimport { LAYER_CONFIG_OMIT_PROP } from '../constants';\n\n\nexport default function useRadiationLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<RadiationLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config || !TMap.visualization?.Radiation) return;\n\n  const options = omit(layerInfo.value.config, LAYER_CONFIG_OMIT_PROP);\n\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  const radiationOption = {\n    number: options.number,\n    enableBloom: options.enableBloom,\n    styles: {\n      [DEFAULT_STYLE]: {\n        fillColor: options.fillColor || 'rgba(56, 124, 234, 0.7)',\n        strokeColor: options.strokeColor || 'rgb(103, 153, 234)',\n        strokeWidth: options.strokeWidth || 1,\n      },\n    },\n    processAnimation: {\n      duration: options.duration || 2000,\n    },\n    minZoom: options.zoomRange?.[0],\n    maxZoom: options.zoomRange?.[1],\n  };\n\n  const formatData = (data: Radiation[]) => data.map((item: Radiation) => ({\n    center: new TMap.LatLng(item.lat, item.lng),\n    styleId: DEFAULT_STYLE,\n    radius: item.radius,\n  }));\n\n  const radiationLayer = new TMap.visualization.Radiation(radiationOption);\n  radiationLayer.addTo(mapInstance);\n\n  unwatchList.push(watchEffect(() => {\n    if (!Array.isArray(layerInfo.value.config.data)) return;\n    try {\n      const radiationData = formatData(layerInfo.value.config.data);\n      radiationLayer?.setData(radiationData);\n    } catch (error) {\n      radiationLayer?.setData([]);\n    }\n  }));\n\n  unwatchList.push(watch([\n    () => layerInfo.value.config.fillColor,\n    () => layerInfo.value.config.strokeColor,\n    () => layerInfo.value.config.strokeWidth,\n  ], (newVal) => {\n    radiationLayer.setStyles({\n      [DEFAULT_STYLE]: {\n        fillColor: newVal[0] || 'rgba(56, 124, 234, 0.7)',\n        strokeColor: newVal[1] || 'rgb(103, 153, 234)',\n        strokeWidth: newVal[2] || 1,\n      },\n    });\n  }));\n\n  unwatchList.push(watch(() => layerInfo.value.config.duration, (newVal) => {\n    radiationLayer.updateAnimation('process', { duration: newVal });\n  }));\n\n  unwatchList.push(watch(() => layerInfo.value.config.zoomRange, (newVal) => {\n    if (!newVal) return;\n    radiationLayer.setMinZoom(newVal[0]);\n    radiationLayer.setMinZoom(newVal[1]);\n  }));\n\n  unwatchList.push(watch([\n    () => layerInfo.value.config.enableBloom,\n    () => layerInfo.value.config.number,\n  ], () => {\n    radiationLayer?.unmount();\n    useRadiationLayer(mapInstance, layerInfo);\n  }));\n\n  radiationLayer.unmount = (): void => {\n    radiationLayer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return radiationLayer;\n}\n"],"names":["DEFAULT_STYLE","useRadiationLayer","mapInstance","layerInfo","value","config","TMap","visualization","Radiation","options","omit","LAYER_CONFIG_OMIT_PROP","unwatchList","radiationOption","number","enableBloom","styles","fillColor","strokeColor","strokeWidth","processAnimation","duration","minZoom","zoomRange","maxZoom","formatData","data","map","item","center","LatLng","lat","lng","styleId","radius","radiationLayer","addTo","push","watchEffect","Array","isArray","radiationData","setData","error","watch","newVal","setStyles","updateAnimation","setMinZoom","unmount","destroy","forEach","unwatch"],"mappings":"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"}