casc-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: 2022-08-12 11:40:04\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\10_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 VcComponentInternalInstance,\n VcDatasource,\n VcTerrainProvider,\n VcViewerProvider,\n ViewerWidgetResizedEvent\n} from 'casc-cesium-utils/types'\nimport { vcKey } from 'casc-cesium-utils/config'\nimport { viewerEvents } from './events'\nimport { VcSkeleton } from 'casc-cesium-components/ui'\nimport { hSlot } from 'casc-cesium-utils/private/render'\nimport { isPlainObject, kebabCase } from 'casc-cesium-utils/util'\nimport { commonEmits } from 'casc-cesium-utils/emits'\nimport { TouchHold } from 'casc-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}\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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"}