{"version":3,"file":"dep-4cfb8181.mjs","sources":["../../src/jue-map/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n  name: 'TlbsJUEMap',\n  \n})\n</script>\n<template>\n  <div\n    ref=\"mapContainerRef\"\n    class=\"tlbs-jue-map\"\n  />\n</template>\n\n<script setup lang=\"ts\" name=\"TlbsJUEMap\">\nimport { mapAttrsHandlers } from './map-attrs-handlers';\nimport useLayerManager from './useLayerManager/index';\nimport useTools from './tools/useTools';\nimport omit from 'lodash/omit';\nimport { WatchStopHandle } from 'vue';\n\nconst reinitProps = ['showControl', 'mapZoomType', 'subkey'];\n\ninterface Props {\n  latitude?: number;\n  longitude?: number;\n  zoom?: number;\n  rotation?: number;\n  pitch?: number;\n  scale?: number;\n  draggable?: boolean;\n  viewMode?: '2D' | '3D';\n  showControl?: boolean;\n  zoomRange?: number[];\n  offset?: OffsetOption;\n  subkey?: string;\n  mapStyleId?: string;\n  measureToolType?: string;\n  enableRealtimeLatlng?: boolean;\n  enableRoam?: boolean;\n  roamDuration?: number;\n  roamLoop?: number;\n  roamData?: RoamKeyFrame[];\n  simulatorTime?: string;\n  simulatorDuration?: number;\n  layers?: MapLayer[];\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  latitude: 39.908755,\n  longitude: 116.397476,\n  zoom: 8,\n  rotation: 0,\n  pitch: 0,\n  scale: 1,\n  draggable: true,\n  viewMode: '3D',\n  showControl: true,\n  zoomRange: () => [3, 20],\n  offset: () => ({ x: 0, y: 0 }),\n  subkey: '',\n  mapStyleId: '',\n  measureToolType: '',\n  enableRealtimeLatlng: false,\n  enableRoam: false,\n  roamDuration: 10,\n  roamLoop: 1,\n  roamData: () => [],\n  simulatorTime: '09:30',\n  simulatorDuration: 10,\n  layers: () => [],\n});\n\nconst emit = defineEmits<{\n  (e: 'loaded' | 'closed' | 'animationEnded' | 'animationStopped'): void;\n  (e: 'click', evt: MapEvent): void;\n  (e: 'animationPlaying', evt: AnimationEvent): void;\n}>();\n\nconst mapContainerRef = ref();\n\nconst mapInstance = shallowRef<LooseObject | null>(null);\n\nlet clearAllLayers: undefined | (() => void);\nlet mapToolAttrsHandlers: LooseObject;\nlet destroyTools: () => void;\nconst watcherList = shallowRef<WatchStopHandle[]>([]);\n\nonMounted(() => {\n  initMap();\n});\n\nconst initMap = (): void => {\n  const options = {\n    center: new JUE.LatLng(props.latitude, props.longitude),\n    zoom: props.zoom,\n    rotation: props.rotation,\n    pitch: props.pitch,\n    scale: props.scale,\n    draggable: props.draggable,\n    viewMode: props.viewMode,\n    showControl: props.showControl,\n    minZoom: props.zoomRange[0],\n    maxZoom: props.zoomRange[1],\n    offset: props.offset,\n    subkey: props.subkey,\n  };\n  // todo ts\n  if (props.mapStyleId) options.mapStyleId = props.mapStyleId;\n  mapInstance.value = new JUE.Map(mapContainerRef.value, options);\n  ({ mapToolAttrsHandlers, destroyTools } = useTools(mapInstance.value, mapContainerRef.value, props));\n  if (props.layers.length) {\n    clearAllLayers = useLayerManager(mapInstance.value, toRef(props, 'layers'))?.clearAllLayers;\n  }\n  setMapEvnets(mapInstance.value);\n  setPropsWatcher();\n};\n\n\nconst setPropsWatcher = (): void => {\n  Object.keys(omit(props, 'layers')).forEach((attr) => {\n    watcherList.value.push(watch(() => props[attr], (newVal) => {\n      if (reinitProps.includes(attr)) {\n        destroyMap();\n        initMap();\n      } else {\n        if (mapAttrsHandlers[attr]) {\n          mapAttrsHandlers[attr](newVal, mapInstance.value);\n        } else if (mapToolAttrsHandlers[attr]) {\n          mapToolAttrsHandlers[attr](newVal);\n        } else {\n          console.warn('无法处理该属性变化：', attr);\n        }\n      }\n    }));\n  });\n  // 针对图层做特殊监听\n  watcherList.value.push(watch(() => props.layers, () => {\n    clearAllLayers?.();\n    ({ clearAllLayers } = useLayerManager(mapInstance.value, toRef(props, 'layers')));\n  }));\n};\n\nconst setMapEvnets = (mapInstance: LooseObject | null): void => {\n  mapInstance\n    ?.on('loaded', () => emit('loaded'))\n    .on('closed', () => emit('closed'))\n    .on('click', (evt: MapEvent) => emit('click', evt))\n    .on('animation_playing', (evt: AnimationEvent) => emit('animationPlaying', evt))\n    .on('animation_ended', () => emit('animationEnded'))\n    .on('animation_stopped', () => emit('animationStopped'));\n};\n\nonUnmounted(() => {\n  destroyMap();\n});\n\nconst destroyMap = (): void => {\n  destroyTools();\n  clearAllLayers?.();\n  mapInstance.value?.destroy();\n  mapInstance.value = null;\n  watcherList.value.forEach(unwatch => unwatch());\n  watcherList.value = [];\n};\n\ndefineExpose({\n  map: mapInstance,\n});\n</script>\n\n"],"names":["__default__","defineComponent","name","_defineComponent","_objectSpread","props","latitude","type","Number","required","default","longitude","zoom","rotation","pitch","scale","draggable","Boolean","viewMode","String","showControl","zoomRange","Array","offset","x","y","subkey","mapStyleId","measureToolType","enableRealtimeLatlng","enableRoam","roamDuration","roamLoop","roamData","simulatorTime","simulatorDuration","layers","emits","setup","__props","expose","emit","reinitProps","Object","keys","omit","forEach","attr","watcherList","value","push","watch","newVal","includes","destroyMap","initMap","mapAttrsHandlers","mapInstance","mapToolAttrsHandlers","console","warn","clearAllLayers","useLayerManager","toRef","setMapEvnets","mapInstance2","on","evt","onUnmounted","destroyTools","destroy","unwatch","map","_ctx","_cache","_openBlock","_createElementBlock","ref_key","ref","mapContainerRef","class"],"mappings":"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"}