vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 15.2 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/entity/src/index.ts"],"sourcesContent":["import type { PropType, VNode } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance, h } from 'vue'\nimport type {\n AnyObject,\n EntityEmitType,\n VcCallbackPropertyFunction,\n VcComponentInternalInstance,\n VcComponentPublicInstance,\n VcGraphics,\n VcPickEvent,\n VcPosition,\n VcReadyObject\n} from '@vue-cesium/utils/types'\nimport { useCommon } from '@vue-cesium/composables/index'\nimport { position, enableMouseEvent, show, viewFrom } from '@vue-cesium/utils/cesium-props'\nimport { getInstanceListener } from '@vue-cesium/utils/private/vm'\nimport { hSlot } from '@vue-cesium/utils/private/render'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { commonEmits, pickEventEmits } from '@vue-cesium/utils/emits'\nimport {\n VcGraphicsBillboardProps,\n VcGraphicsBoxProps,\n VcGraphicsCorridorProps,\n VcGraphicsCylinderProps,\n VcGraphicsEllipseProps,\n VcGraphicsEllipsoidProps,\n VcGraphicsEllipsoidRef,\n VcGraphicsLabelProps,\n VcGraphicsModelProps,\n VcGraphicsPathProps,\n VcGraphicsPlaneProps,\n VcGraphicsPointProps,\n VcGraphicsPolygonProps,\n VcGraphicsPolylineProps,\n VcGraphicsPolylineVolumeProps,\n VcGraphicsRectangleProps,\n VcGraphicsTilesetProps,\n VcGraphicsWallProps\n} from '../../graphics'\n\nexport const entityProps = {\n id: String,\n name: String,\n availability: Object as PropType<Cesium.TimeIntervalCollection>,\n ...show,\n description: [String, Object] as PropType<string | Cesium.CallbackProperty | VcCallbackPropertyFunction<string>>,\n ...position,\n orientation: Object as PropType<Cesium.Quaternion | Cesium.VelocityOrientationProperty | Cesium.CallbackProperty>,\n ...viewFrom,\n parent: Object as PropType<Cesium.Entity>,\n billboard: Object as PropType<Cesium.BillboardGraphics | VcGraphicsBillboardProps>,\n box: Object as PropType<Cesium.BoxGraphics | VcGraphicsBoxProps>,\n corridor: Object as PropType<Cesium.CorridorGraphics | VcGraphicsCorridorProps>,\n cylinder: Object as PropType<Cesium.CylinderGraphics | VcGraphicsCylinderProps>,\n ellipse: Object as PropType<Cesium.EllipseGraphics | VcGraphicsEllipseProps>,\n ellipsoid: Object as PropType<Cesium.EllipsoidGraphics | VcGraphicsEllipsoidRef>,\n label: Object as PropType<Cesium.LabelGraphics | VcGraphicsLabelProps>,\n model: Object as PropType<Cesium.ModelGraphics | VcGraphicsModelProps>,\n tileset: Object as PropType<Cesium.Cesium3DTilesetGraphics | VcGraphicsTilesetProps>,\n path: Object as PropType<Cesium.PathGraphics | VcGraphicsPathProps>,\n plane: Object as PropType<Cesium.PlaneGraphics | VcGraphicsPlaneProps>,\n point: Object as PropType<Cesium.PointGraphics | VcGraphicsPointProps>,\n polygon: Object as PropType<Cesium.PolygonGraphics | VcGraphicsPolygonProps>,\n polyline: Object as PropType<Cesium.PolylineGraphics | VcGraphicsPolylineProps>,\n properties: Object,\n polylineVolume: Object as PropType<Cesium.PolylineVolumeGraphics | VcGraphicsPolylineVolumeProps>,\n rectangle: Object as PropType<Cesium.RectangleGraphics | VcGraphicsRectangleProps>,\n wall: Object as PropType<Cesium.WallGraphics | VcGraphicsWallProps>,\n ...enableMouseEvent\n}\n\nconst emits = {\n ...commonEmits,\n ...pickEventEmits,\n definitionChanged: (property: Cesium.Property) => true,\n 'update:billboard': (payload: Cesium.BillboardGraphics) => true,\n 'update:box': (payload: Cesium.BoxGraphics) => true,\n 'update:corridor': (payload: Cesium.CorridorGraphics) => true,\n 'update:cylinder': (payload: Cesium.CylinderGraphics) => true,\n 'update:ellipse': (payload: Cesium.EllipseGraphics) => true,\n 'update:ellipsoid': (payload: Cesium.EllipsoidGraphics) => true,\n 'update:label': (payload: Cesium.LabelGraphics) => true,\n 'update:model': (payload: Cesium.ModelGraphics) => true,\n 'update:path': (payload: Cesium.PathGraphics) => true,\n 'update:plane': (payload: Cesium.PlaneGraphics) => true,\n 'update:point': (payload: Cesium.PointGraphics) => true,\n 'update:polygon': (payload: Cesium.PolygonGraphics) => true,\n 'update:polyline': (payload: Cesium.PolylineGraphics) => true,\n 'update:polylineVolume': (payload: Cesium.PolylineVolumeGraphics) => true,\n 'update:rectangle': (payload: Cesium.RectangleGraphics) => true,\n 'update:tileset': (payload: any) => true,\n 'update:wall': (payload: Cesium.WallGraphics) => true\n}\n\nexport default defineComponent({\n name: 'VcEntity',\n props: entityProps,\n emits: emits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'Entity'\n instance.cesiumEvents = ['definitionChanged']\n const commonState = useCommon(props, ctx, instance)\n if (commonState === void 0) {\n return\n }\n const { $services } = commonState\n const { emit } = ctx\n\n // methods\n instance.mount = async () => {\n const entity = $services?.entities?.add(instance.cesiumObject as Cesium.Entity)\n return $services?.entities.contains(entity)\n }\n\n instance.unmount = async () => {\n return $services?.entities?.remove(instance.cesiumObject as Cesium.Entity)\n }\n\n const updateGraphics = (graphics, emitType) => {\n const listener = getInstanceListener(instance, emitType)\n if (listener) {\n emit(emitType, graphics)\n } else {\n instance.cesiumObject && (instance.cesiumObject[emitType.substring(7)] = graphics)\n }\n graphics && (graphics._vcParent = instance.cesiumObject)\n return true\n }\n\n // expose public methods\n Object.assign(instance.proxy, {\n // private but needed by VcGraphicsXXX\n __updateGraphics: updateGraphics\n })\n\n return () =>\n ctx.slots.default\n ? h(\n 'i',\n {\n class: kebabCase(instance.proxy?.$options.name || ''),\n style: { display: 'none !important' }\n },\n hSlot(ctx.slots.default)\n )\n : createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n }\n})\n\nexport type VcEntityEmits = typeof emits\n\nexport type VcEntityProps = {\n /**\n * A unique identifier for this object. If none is provided, a GUID is generated.\n */\n id?: string\n /**\n * A human readable name to display to users. It does not have to be unique.\n */\n name?: string\n /**\n * The availability, if any, associated with this object.\n */\n availability?: Cesium.TimeIntervalCollection\n /**\n * A boolean value indicating if the entity and its children are displayed.\n */\n show?: boolean\n /**\n * A string Property specifying an HTML description for this entity.\n */\n description?: string | Cesium.CallbackProperty | VcCallbackPropertyFunction<string>\n /**\n * A Property specifying the entity position.\n */\n position?: VcPosition\n /**\n * A Property specifying the entity orientation.\n */\n orientation?: Cesium.Quaternion | Cesium.VelocityOrientationProperty | Cesium.CallbackProperty\n /**\n * A suggested initial offset for viewing this object.\n */\n viewFrom?: VcPosition | Cesium.CallbackProperty\n /**\n * A parent entity to associate with this entity.\n */\n parent?: Cesium.Entity\n /**\n * A billboard to associate with this entity.\n */\n billboard?: Cesium.BillboardGraphics | VcGraphicsBillboardProps\n /**\n * A box to associate with this entity.\n */\n box?: Cesium.BoxGraphics | VcGraphicsBoxProps\n /**\n * A corridor to associate with this entity.\n */\n corridor?: Cesium.CorridorGraphics | VcGraphicsCorridorProps\n /**\n * A cylinder to associate with this entity.\n */\n cylinder?: Cesium.CylinderGraphics | VcGraphicsCylinderProps\n /**\n * A ellipse to associate with this entity.\n */\n ellipse?: Cesium.EllipseGraphics | VcGraphicsEllipseProps\n /**\n * A ellipsoid to associate with this entity.\n */\n ellipsoid?: Cesium.EllipsoidGraphics | VcGraphicsEllipsoidProps\n /**\n * A options.label to associate with this entity.\n */\n label?: Cesium.LabelGraphics | VcGraphicsLabelProps\n /**\n * A model to associate with this entity.\n */\n model?: Cesium.ModelGraphics | VcGraphicsModelProps\n /**\n * A 3D Tiles tileset to associate with this entity.\n */\n tileset?: Cesium.Cesium3DTilesetGraphics | VcGraphicsTilesetProps\n /**\n * A path to associate with this entity.\n */\n path?: Cesium.PathGraphics | VcGraphicsPathProps\n /**\n * A plane to associate with this entity.\n */\n plane?: Cesium.PlaneGraphics | VcGraphicsPlaneProps\n /**\n * A point to associate with this entity.\n */\n point?: Cesium.PointGraphics | VcGraphicsPointProps\n /**\n * A polygon to associate with this entity.\n */\n polygon?: Cesium.PolygonGraphics | VcGraphicsPolygonProps\n /**\n * A polyline to associate with this entity.\n */\n polyline?: Cesium.PolylineGraphics | VcGraphicsPolylineProps\n /**\n * Arbitrary properties to associate with this entity.\n */\n properties?: AnyObject\n /**\n * A polylineVolume to associate with this entity.\n */\n polylineVolume?: Cesium.PolylineVolumeGraphics | VcGraphicsPolylineVolumeProps\n /**\n * A rectangle to associate with this entity.\n */\n rectangle?: Cesium.RectangleGraphics | VcGraphicsRectangleProps\n /**\n * A wall to associate with this entity.\n */\n wall?: Cesium.WallGraphics | VcGraphicsWallProps\n /**\n * Triggers before the VcEntity is loaded.\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcEntity is successfully loaded.\n */\n onReady?: (readyObject: VcReadyObject) => void\n /**\n * Triggers when the component load failed.\n */\n onUnready?: (e: any) => void\n /**\n * Triggers when the VcEntity is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when a property or sub-property is changed or modified.\n */\n onDefinitionChanged?: (property: Cesium.Property) => void\n /**\n * Triggers when the mouse is pressed on this entity.\n */\n onMousedown?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse bounces up on this entity.\n */\n onMouseup?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse clicks on this entity.\n */\n onClick?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse clicks outside this entity.\n */\n onClickout?: (evt: VcPickEvent) => void\n /**\n * Triggers when the left mouse button double-clicks this entity.\n */\n onDblclick?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse moves on this entity.\n */\n onMousemove?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse moves over to this entity.\n */\n onMouseover?: (evt: VcPickEvent) => void\n /**\n * Triggers when the mouse moves out of this entity.\n */\n onMouseout?: (evt: VcPickEvent) => void\n}\nexport interface VcEntityRef extends VcComponentPublicInstance<VcEntityProps> {\n /**\n * private method, update graphic.\n * @param graphics\n * @param type\n */\n __updateGraphics: (graphics: VcGraphics | undefined, type: EntityEmitType) => boolean\n}\n\nexport interface VcEntitySlots {\n /**\n * Slot for vc-graphics-xxx.\n */\n default: () => VNode[]\n}\n"],"names":[],"mappings":"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"}