{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/viewer/src/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-09-16 09:28:13\n * @LastEditTime: 2022-02-15 09:09:35\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\viewer\\src\\index.ts\n */\nimport { defineComponent, provide, getCurrentInstance, h, createCommentVNode } from 'vue'\nimport type { VNode } from 'vue'\nimport useViewer, { viewerProps } from './useViewer'\nimport type { VcViewerProps } from './useViewer'\nimport type { VcComponentInternalInstance, VcDatasource, VcTerrainProvider, ViewerWidgetResizedEvent } from '@vue-cesium/utils/types'\nimport { vcKey } from '@vue-cesium/utils/config'\nimport { viewerEvents } from './events'\nimport { VcSkeleton } from '@vue-cesium/components/ui'\nimport { hSlot } from '@vue-cesium/utils/private/render'\nimport { isPlainObject, kebabCase } from '@vue-cesium/utils/util'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nconst emits = {\n  ...commonEmits,\n  cesiumReady: (payload: typeof Cesium) => true,\n  viewerWidgetResized: (payload: ViewerWidgetResizedEvent) => true,\n  selectedEntityChanged: (entity: Cesium.Entity) => true,\n  trackedEntityChanged: (entity: Cesium.Entity) => true,\n  layerAdded: (imageryLayer: Cesium.ImageryLayer, index: number) => true,\n  layerMoved: (imageryLayer: Cesium.ImageryLayer, newIndex: number, oldIndex: number) => true,\n  layerRemoved: (imageryLayer: Cesium.ImageryLayer, index: number) => true,\n  layerShownOrHidden: (imageryLayer: Cesium.ImageryLayer, index: number, show: boolean) => true,\n  dataSourceAdded: (collection: Cesium.DataSourceCollection, dataSource: VcDatasource) => true,\n  dataSourceMoved: (dataSource: VcDatasource, newIndex: number, oldIndex: number) => true,\n  dataSourceRemoved: (collection: Cesium.DataSourceCollection, dataSource: VcDatasource) => true,\n  collectionChanged: (\n    collection: Cesium.EntityCollection,\n    addedArray: Array<Cesium.Entity>,\n    removedArray: Array<Cesium.Entity>,\n    changedArray: Array<Cesium.Entity>\n  ) => true,\n  morphComplete: (transitioner: any, preceneModeMode: Cesium.SceneMode, sceneMode: Cesium.SceneMode, wasMorphing: boolean) => true,\n  morphStart: (transitioner: any, preceneModeMode: Cesium.SceneMode, sceneMode: Cesium.SceneMode, wasMorphing: boolean) => true,\n  postRender: (scene: Cesium.Scene, time: Cesium.JulianDate) => true,\n  preRender: (scene: Cesium.Scene, time: Cesium.JulianDate) => true,\n  postUpdate: (scene: Cesium.Scene, time: Cesium.JulianDate) => true,\n  preUpdate: (scene: Cesium.Scene, time: Cesium.JulianDate) => true,\n  renderError: (scene: Cesium.Scene, error: any) => true,\n  terrainProviderChanged: (provider: VcTerrainProvider) => true,\n  changed: (percent: number) => true,\n  moveEnd: () => true,\n  moveStart: () => true,\n  onStop: (clock: Cesium.Clock) => true,\n  onTick: (clock: Cesium.Clock) => true,\n  errorEvent: (tileProviderError: any) => true,\n  cameraClicked: (viewModel: Cesium.InfoBoxViewModel) => true,\n  closeClicked: (viewModel: Cesium.InfoBoxViewModel) => true,\n  leftClick: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  leftDoubleClick: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  leftDown: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  leftUp: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  middleClick: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  middleDown: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  middleUp: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  mouseMove: (mouseClickEvent: { startPosition: Cesium.Cartesian2; endPosition: Cesium.Cartesian2 }) => true,\n  pinchStart: (touch2StartEvent: { position1: Cesium.Cartesian2; position2: Cesium.Cartesian2 }) => true,\n  pinchMove: (touchPinchMovementEvent: {\n    distance: {\n      startPosition: Cesium.Cartesian2\n      endPosition: Cesium.Cartesian2\n    }\n    angleAndHeight: {\n      startPosition: Cesium.Cartesian2\n      endPosition: Cesium.Cartesian2\n    }\n  }) => true,\n  pinchEnd: () => true,\n  rightClick: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  rightDown: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  rightUp: (mouseClickEvent: { position: Cesium.Cartesian2 }) => true,\n  wheel: (delta: number) => true,\n  imageryLayersUpdatedEvent: () => true,\n  tileLoadProgressEvent: (length: number) => true\n}\nexport default defineComponent({\n  name: 'VcViewer',\n  props: viewerProps,\n  emits: emits,\n  setup(props: VcViewerProps, ctx) {\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumEvents = ['selectedEntityChanged', 'trackedEntityChanged']\n    instance.cesiumMembersEvents = viewerEvents\n    const viewerStates = useViewer(props, ctx, instance)\n\n    // provide\n    provide(vcKey, viewerStates.getServices())\n    instance.appContext.config.globalProperties.$VueCesium = viewerStates.getServices()\n    // expose public methods\n    Object.assign(instance.proxy, {\n      createPromise: viewerStates.createPromise,\n      load: viewerStates.load,\n      unload: viewerStates.unload,\n      reload: viewerStates.reload,\n      cesiumObject: instance.cesiumObject,\n      getCesiumObject: () => instance.cesiumObject\n    })\n\n    return () => {\n      const children: Array<VNode> = []\n      if (isPlainObject(props.skeleton) && !viewerStates.isReady.value) {\n        children.push(\n          h(VcSkeleton, {\n            ...props.skeleton,\n            style: { background: props.skeleton.color, width: '100%', height: '100%' }\n          })\n        )\n      } else {\n        children.push(createCommentVNode('v-if'))\n      }\n      children.push(\n        createCommentVNode('vc-viewer'),\n        h(\n          'div',\n          {\n            ref: viewerStates.viewerRef,\n            class: kebabCase(instance.proxy?.$options.name || ''),\n            id: ctx.attrs.id || 'cesiumContainer',\n            style: ctx.attrs.style || { width: '100%', height: '100%' }\n          },\n          hSlot(ctx.slots.default)\n        )\n      )\n      return children\n    }\n  }\n})\n\nexport type VcViewerEmits = typeof emits\nexport * from './useViewer'\n"],"names":[],"mappings":"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"}