{"version":3,"file":"dep-3231e1f9.mjs","sources":["../../src/base-map/useLayerManager/useTrafficSignalLayer.ts"],"sourcesContent":["import { Ref, WatchStopHandle } from 'vue';\n\nexport default function useTrafficSignalLayer(\n  mapInstance: LooseObject,\n  layerInfo: Ref<MapLayer<TrafficSignalLayerConfig>>,\n) {\n  if (!layerInfo.value || !layerInfo.value.config || !TMap.traffic?.TrafficSignal) return;\n\n  const { position, state } = layerInfo.value.config;\n\n  let unwatchList: WatchStopHandle[] | null = [];\n\n  let layer = new TMap.traffic.TrafficSignal({\n    map: mapInstance,\n    position: new TMap.LatLng(position.lat, position.lng),\n  });\n\n  Array.isArray(state) && layer && layer.setState(state);\n\n  unwatchList.push(watch(() => layerInfo.value.config.position, () => {\n    layer?.destroy();\n    layer = null;\n    useTrafficSignalLayer(mapInstance, layerInfo);\n  }, { deep: true }));\n\n  unwatchList.push(watch(() => layerInfo.value.config.state, (newVal) => {\n    try {\n      Array.isArray(newVal) && layer && layer.setState(newVal);\n    } catch (error) {\n      layer.setState([]);\n    }\n  }, { deep: true }));\n\n  layer.unmount = (): void => {\n    layer?.destroy();\n    unwatchList?.forEach(unwatch => unwatch());\n    unwatchList = null;\n  };\n\n  return layer;\n}\n"],"names":["useTrafficSignalLayer","mapInstance","layerInfo","value","config","TMap","traffic","TrafficSignal","position","state","unwatchList","layer","map","LatLng","lat","lng","Array","isArray","setState","push","watch","destroy","deep","newVal","error","unmount","forEach","unwatch"],"mappings":";;AAAA,SAAAA,qBAAA,CAAAC,WAAA,EAAAC,SAAA,EAAA;AAAA,EAAA,IAAA,aAAA,CAAA;;EACA,IAAA,CAAAA,SAAA,CAAAC,KAAA,IAAA,CAAAD,SAAA,CAAAC,KAAA,CAAAC,MAAA,IAAA,EAAA,CAAA,aAAA,GAAAC,IAAA,CAAAC,OAAA,0CAAA,aAAAC,CAAAA,aAAA,CAAA,EACA,OAAA;EACA,IAAA;IAAAC,QAAA;AAAAC,IAAAA,KAAAA;AAAA,GAAA,GAAAP,SAAA,CAAAC,KAAA,CAAAC,MAAA,CAAA;EACA,IAAAM,WAAA,GAAA,EAAA,CAAA;EACA,IAAAC,KAAA,GAAA,IAAAN,IAAA,CAAAC,OAAA,CAAAC,aAAA,CAAA;AACAK,IAAAA,GAAA,EAAAX,WADA;AAEAO,IAAAA,QAAA,EAAA,IAAAH,IAAA,CAAAQ,MAAA,CAAAL,QAAA,CAAAM,GAAA,EAAAN,QAAA,CAAAO,GAAA,CAAA;AAFA,GAAA,CAAA,CAAA;AAIAC,EAAAA,KAAA,CAAAC,OAAA,CAAAR,KAAA,CAAAE,IAAAA,KAAA,IAAAA,KAAA,CAAAO,QAAA,CAAAT,KAAA,CAAA,CAAA;AACAC,EAAAA,WAAA,CAAAS,IAAA,CAAAC,KAAA,CAAA,MAAAlB,SAAA,CAAAC,KAAA,CAAAC,MAAA,CAAAI,QAAA,EAAA,MAAA;AAAA,IAAA,IAAA,MAAA,CAAA;;IACA,CAAAG,MAAAA,GAAAA,KAAA,MAAA,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAAU,OAAA,EAAA,CAAA;AACAV,IAAAA,KAAA,GAAA,IAAA,CAAA;AACAX,IAAAA,qBAAA,CAAAC,WAAA,EAAAC,SAAA,CAAA,CAAA;AACA,GAJA,EAIA;AAAAoB,IAAAA,IAAA,EAAA,IAAA;AAAA,GAJA,CAAA,CAAA,CAAA;AAKAZ,EAAAA,WAAA,CAAAS,IAAA,CAAAC,KAAA,CAAA,MAAAlB,SAAA,CAAAC,KAAA,CAAAC,MAAA,CAAAK,KAAA,EAAAc,MAAA,IAAA;IACA,IAAA;AACAP,MAAAA,KAAA,CAAAC,OAAA,CAAAM,MAAA,CAAAZ,IAAAA,KAAA,IAAAA,KAAA,CAAAO,QAAA,CAAAK,MAAA,CAAA,CAAA;KADA,CAEA,OAAAC,KAAA,EAAA;MACAb,KAAA,CAAAO,QAAA,CAAA,EAAA,CAAA,CAAA;AACA,KAAA;AACA,GANA,EAMA;AAAAI,IAAAA,IAAA,EAAA,IAAA;AAAA,GANA,CAAA,CAAA,CAAA;;EAOAX,KAAA,CAAAc,OAAA,GAAA,MAAA;AAAA,IAAA,IAAA,OAAA,EAAA,YAAA,CAAA;;IACA,CAAAd,OAAAA,GAAAA,KAAA,MAAA,IAAA,IAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAAU,OAAA,EAAA,CAAA;IACA,CAAAX,YAAAA,GAAAA,WAAA,UAAA,IAAAgB,YAAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAAA,CAAAA,OAAA,CAAAC,OAAA,IAAAA,OAAA,EAAA,CAAA,CAAA;AACAjB,IAAAA,WAAA,GAAA,IAAA,CAAA;GAHA,CAAA;;AAKA,EAAA,OAAAC,KAAA,CAAA;AACA;;;;"}