{"version":3,"file":"dep-fa98bb4f.mjs","sources":["../../src/base-map/useLayerManager/useGridLayer.ts"],"sourcesContent":["import { Ref, WatchStopHandle } from 'vue';\nimport omit from 'lodash/omit';\nimport isNumber from 'lodash/isNumber';\nimport { LAYER_CONFIG_OMIT_PROP } from '../constants';\n\nconst NEED_RESTARTED_PROP = ['enableBloom', 'toggleAnimation'];\n\n\nconst transformColorList = (data: GridLayerColorListType[]) => data.map(item => item.value);\n\nexport default function useGridLayer(mapInstance: LooseObject, layerInfo: Ref<MapLayer<GridLayerConfig>>) {\n  if (!layerInfo.value || !layerInfo.value.config || !TMap.visualization?.Grid) return;\n  const options = omit(layerInfo.value.config, LAYER_CONFIG_OMIT_PROP);\n\n  let unwatchList: WatchStopHandle[] | null = [];\n  const gridOptions = {\n    ...omit(options, ['zoomRange', 'colorList']),\n    colorList: options.colorList && transformColorList(options.colorList),\n    minZoom: options.zoomRange?.[0],\n    maxZoom: options.zoomRange?.[1],\n  };\n  const gridLayer = new TMap.visualization.Grid(gridOptions);\n  gridLayer.addTo(mapInstance);\n  unwatchList.push(watchEffect(() => {\n    try {\n      gridLayer?.setData(layerInfo.value.config.data);\n    } catch (error) {\n      gridLayer?.setData([]);\n    }\n  }));\n\n  Object.keys(options).forEach((key) => {\n    unwatchList?.push(watch(() => layerInfo.value.config[key], (newVal) => {\n      if (NEED_RESTARTED_PROP.includes(key)) {\n        gridLayer.unmount();\n        useGridLayer(mapInstance, layerInfo);\n      } else {\n        gridOptionsHandlers[key](newVal, gridLayer);\n      }\n    }, { deep: true }));\n  });\n\n  gridLayer.unmount = (): void => {\n    gridLayer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n  return gridLayer;\n}\n\nconst gridOptionsHandlers = {\n  sideLength(val: number, layerInstance: LooseObject): void {\n    if (!isNumber(val)) {\n      console.warn('请传入数字类型，当前传入的是：', val);\n      return;\n    }\n    layerInstance.setSideLength(val);\n  },\n  extrudable(val: boolean, layerInstance: LooseObject): void {\n    layerInstance.setExtrudable(val);\n  },\n  colorList(val: GridLayerColorListType[], layerInstance: LooseObject): void {\n    layerInstance.setColorList(transformColorList(val));\n  },\n  heightRange(val: number[], layerInstance: LooseObject): void {\n    layerInstance.setHeightRange(val);\n  },\n  showRange(val: number[], layerInstance: LooseObject): void {\n    layerInstance.setShowRange(val);\n  },\n  selectOptions(val: LooseObject, layerInstance: LooseObject): void {\n    layerInstance.setSelectOptions(val);\n  },\n  zoomRange(val: number[], layerInstance: LooseObject): void {\n    layerInstance.setMinZoom(val?.[0]);\n    layerInstance.setMaxZoom(val?.[1]);\n  },\n};\n"],"names":["NEED_RESTARTED_PROP","transformColorList","data","map","item","value","useGridLayer","mapInstance","layerInfo","config","TMap","visualization","Grid","options","omit","LAYER_CONFIG_OMIT_PROP","unwatchList","gridOptions","colorList","minZoom","zoomRange","maxZoom","gridLayer","addTo","push","watchEffect","setData","error","Object","keys","forEach","key","watch","newVal","includes","unmount","gridOptionsHandlers","deep","destroy","unwatch","sideLength","val","layerInstance","isNumber","console","warn","setSideLength","extrudable","setExtrudable","setColorList","heightRange","setHeightRange","showRange","setShowRange","selectOptions","setSelectOptions","setMinZoom","setMaxZoom"],"mappings":"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"}