vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 11.5 kB
Source Map (JSON)
{"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: 2024-03-17 18:08:40\n * @LastEditors: zouyaoji 370681295@qq.com\n * @Description:\n * @FilePath: \\vue-cesium\\packages\\components\\viewer\\src\\index.ts\n */\nimport { defineComponent, provide, getCurrentInstance, h, createCommentVNode, withDirectives, computed } from 'vue'\nimport type { VNode } from 'vue'\nimport useViewer, { viewerProps } from './useViewer'\nimport type { VcViewerProps } from './useViewer'\nimport type {\n VcCamera,\n VcComponentInternalInstance,\n VcDatasource,\n VcTerrainProvider,\n VcViewerProvider,\n ViewerWidgetResizedEvent\n} 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'\nimport { TouchHold } from '@vue-cesium/directives'\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 touchEnd: evt => true,\n 'update:camera': (evt: VcCamera) => 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 const containerId = computed<string>(() => {\n return props.containerId || (ctx.attrs.id as string) || 'cesiumContainer'\n })\n\n // provide\n provide<VcViewerProvider>(vcKey, viewerStates.getServices())\n instance.appContext.config.globalProperties.$VueCesium = instance.appContext.config.globalProperties.$VueCesium || {}\n instance.appContext.config.globalProperties.$VueCesium[containerId.value] = viewerStates.getServices()\n // expose public methods\n Object.assign(instance.proxy, {\n creatingPromise: viewerStates.creatingPromise,\n load: viewerStates.load,\n unload: viewerStates.unload,\n reload: viewerStates.reload,\n cesiumObject: instance.cesiumObject,\n getCesiumObject: () => instance.cesiumObject\n })\n\n const onTouchHold = e => {\n ctx.emit('touchEnd', e)\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 withDirectives(\n h(\n 'div',\n {\n ref: viewerStates.viewerRef,\n class: kebabCase(instance.proxy?.$options.name || ''),\n id: containerId.value,\n style: ctx.attrs.style || { width: '100%', height: '100%' }\n },\n hSlot(ctx.slots.default)\n ),\n [[TouchHold, onTouchHold, props.touchHoldArg]]\n )\n )\n return children\n }\n }\n})\n\nexport type VcViewerEmits = typeof emits\nexport * from './useViewer'\n"],"names":[],"mappings":"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"}