UNPKG

vue-cesium

Version:
1 lines 33.4 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/composables/use-handler/index.ts"],"sourcesContent":["import { VcViewerProvider, AnyFunction } from '@vue-cesium/utils/types'\nimport { ref } from 'vue'\nimport { TouchHold } from '@vue-cesium/directives'\nimport defer from '@vue-cesium/utils/defer'\n\ninterface HandlerActions {\n handleMouseClick?: AnyFunction<void>\n handleMouseDown?: AnyFunction<void>\n handleMouseUp?: AnyFunction<void>\n handleMouseMove?: AnyFunction<void>\n handleDoubleClick?: AnyFunction<void>\n handleMouseWheel?: AnyFunction<void>\n handlePinch?: AnyFunction<void>\n}\n\nexport default function (\n $services: VcViewerProvider,\n {\n handleMouseClick = undefined,\n handleMouseDown = undefined,\n handleMouseUp = undefined,\n handleMouseMove = undefined,\n handleDoubleClick = undefined,\n handleMouseWheel = undefined,\n handlePinch = undefined\n }: HandlerActions\n) {\n // state\n const handler = ref<Cesium.ScreenSpaceEventHandler | undefined>(undefined)\n const isActive = ref(false)\n\n //methods\n const activate = () => {\n if (isActive.value) {\n return\n }\n\n const { ScreenSpaceEventType, KeyboardEventModifier, ScreenSpaceEventHandler } = Cesium\n if (!handler.value) {\n const { viewer } = $services\n handler.value = new ScreenSpaceEventHandler(viewer.canvas)\n TouchHold.beforeMount(viewer.canvas, {\n arg: '2000',\n value: onTouchHold,\n touchStart: onTouchStart,\n touchEnd: onTouchEnd,\n modifiers: {}\n })\n }\n\n const sseh = handler.value\n sseh.setInputAction(onLeftClick, ScreenSpaceEventType.LEFT_CLICK)\n sseh.setInputAction(onLeftClickShift, ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onLeftClickCtrl, ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onLeftDown, ScreenSpaceEventType.LEFT_DOWN)\n sseh.setInputAction(onLeftDownShift, ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onLeftDownCtrl, ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onLeftUp, ScreenSpaceEventType.LEFT_UP)\n sseh.setInputAction(onLeftUpShift, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onLeftUpCtrl, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onRightClick, ScreenSpaceEventType.RIGHT_CLICK)\n sseh.setInputAction(onRightClickShift, ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onRightClickCtrl, ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onRightDown, ScreenSpaceEventType.RIGHT_DOWN)\n sseh.setInputAction(onRightDownShift, ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onRightDownCtrl, ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onRightUp, ScreenSpaceEventType.RIGHT_UP)\n sseh.setInputAction(onRightUpShift, ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onRightUpCtrl, ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onMiddleClick, ScreenSpaceEventType.MIDDLE_CLICK)\n sseh.setInputAction(onMiddleClickShift, ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onMiddleClickCtrl, ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onMiddleDown, ScreenSpaceEventType.MIDDLE_DOWN)\n sseh.setInputAction(onMiddleDownShift, ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onMiddleDownCtrl, ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onMiddleUp, ScreenSpaceEventType.MIDDLE_UP)\n sseh.setInputAction(onMiddleUpShift, ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onMiddleUpCtrl, ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onDoubleClick, ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\n sseh.setInputAction(onDoubleClickShift, ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onDoubleClickCtrl, ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onMouseMove, ScreenSpaceEventType.MOUSE_MOVE)\n sseh.setInputAction(onMouseMoveShift, ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onMouseMoveCtrl, ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onMouseWheel, ScreenSpaceEventType.WHEEL)\n sseh.setInputAction(onMouseWheelShift, ScreenSpaceEventType.WHEEL, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onMouseWheelCtrl, ScreenSpaceEventType.WHEEL, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onPinchStart, ScreenSpaceEventType.PINCH_START)\n sseh.setInputAction(onPinchStartShift, ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onPinchStartCtrl, ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onPinchEnd, ScreenSpaceEventType.PINCH_END)\n sseh.setInputAction(onPinchEndShift, ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onPinchEndCtrl, ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.CTRL)\n\n sseh.setInputAction(onPinchMove, ScreenSpaceEventType.PINCH_MOVE)\n sseh.setInputAction(onPinchMoveShift, ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.SHIFT)\n sseh.setInputAction(onPinchMoveCtrl, ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.CTRL)\n isActive.value = true\n }\n\n const deactivate = () => {\n if (!isActive.value) {\n return\n }\n const { ScreenSpaceEventType, KeyboardEventModifier } = Cesium\n\n const sseh = handler.value\n if (!sseh) {\n return\n }\n\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE)\n sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.WHEEL)\n sseh.removeInputAction(ScreenSpaceEventType.WHEEL, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.WHEEL, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_START)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_END)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.CTRL)\n\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.SHIFT)\n sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.CTRL)\n\n const { viewer } = $services\n TouchHold.beforeUnmount(viewer.canvas)\n isActive.value = false\n }\n\n const destroy = () => {\n handler.value?.destroy()\n handler.value = undefined\n }\n\n const onLeftClick = movement => {\n handleMouseClick?.(movement, {\n button: 0\n })\n }\n\n const onLeftClickShift = movement => {\n handleMouseClick?.(movement, {\n button: 0,\n shift: true\n })\n }\n\n const onLeftClickCtrl = movement => {\n handleMouseClick?.(movement, {\n button: 0,\n ctrl: true\n })\n }\n\n const onMiddleClick = movement => {\n handleMouseClick?.(movement, {\n button: 1\n })\n }\n\n const onMiddleClickShift = movement => {\n handleMouseClick?.(movement, {\n button: 1,\n shift: true\n })\n }\n\n const onMiddleClickCtrl = movement => {\n handleMouseClick?.(movement, {\n button: 1,\n ctrl: true\n })\n }\n\n let touchPromise = undefined\n const onRightClick = movement => {\n if (touchPromise) {\n touchPromise?.promise?.then(flag => {\n flag &&\n handleMouseClick?.(movement, {\n button: 2\n })\n })\n } else {\n handleMouseClick?.(movement, {\n button: 2\n })\n }\n }\n\n const onRightClickShift = movement => {\n handleMouseClick?.(movement, {\n button: 2,\n shift: true\n })\n }\n\n const onRightClickCtrl = movement => {\n handleMouseClick?.(movement, {\n button: 2,\n ctrl: true\n })\n }\n\n const onLeftDown = movement => {\n handleMouseDown?.(movement, {\n button: 0\n })\n }\n\n const onLeftDownShift = movement => {\n handleMouseDown?.(movement, {\n button: 0,\n shift: true\n })\n }\n\n const onLeftDownCtrl = movement => {\n handleMouseDown?.(movement, {\n button: 0,\n ctrl: true\n })\n }\n\n const onMiddleDown = movement => {\n handleMouseDown?.(movement, {\n button: 1\n })\n }\n\n const onMiddleDownShift = movement => {\n handleMouseDown?.(movement, {\n button: 1,\n shift: true\n })\n }\n\n const onMiddleDownCtrl = movement => {\n handleMouseDown?.(movement, {\n button: 1,\n ctrl: true\n })\n }\n\n const onRightDown = movement => {\n handleMouseDown?.(movement, {\n button: 2\n })\n }\n\n const onRightDownShift = movement => {\n handleMouseDown?.(movement, {\n button: 2,\n shift: true\n })\n }\n\n const onRightDownCtrl = movement => {\n handleMouseDown?.(movement, {\n button: 2,\n ctrl: true\n })\n }\n\n const onLeftUp = movement => {\n handleMouseUp?.(movement, {\n button: 0\n })\n }\n\n const onLeftUpShift = movement => {\n handleMouseUp?.(movement, {\n button: 0,\n shift: true\n })\n }\n\n const onLeftUpCtrl = movement => {\n handleMouseUp?.(movement, {\n button: 0,\n ctrl: true\n })\n }\n\n const onMiddleUp = movement => {\n handleMouseUp?.(movement, {\n button: 1,\n ctrl: true\n })\n }\n\n const onMiddleUpShift = movement => {\n handleMouseUp?.(movement, {\n button: 1,\n shift: true\n })\n }\n\n const onMiddleUpCtrl = movement => {\n handleMouseUp?.(movement, {\n button: 1,\n ctrl: true\n })\n }\n\n const onRightUp = movement => {\n handleMouseUp?.(movement, {\n button: 2\n })\n }\n\n const onRightUpShift = movement => {\n handleMouseUp?.(movement, {\n button: 2,\n shift: true\n })\n }\n\n const onRightUpCtrl = movement => {\n handleMouseUp?.(movement, {\n button: 2,\n ctrl: true\n })\n }\n\n const onDoubleClick = movement => {\n handleDoubleClick?.(movement, {\n button: 0\n })\n }\n\n const onDoubleClickShift = movement => {\n handleDoubleClick?.(movement, {\n button: 0,\n shift: true\n })\n }\n\n const onDoubleClickCtrl = movement => {\n handleDoubleClick?.(movement, {\n button: 0,\n ctrl: true\n })\n }\n\n const onMouseMove = movement => {\n handleMouseMove?.(movement)\n }\n\n const onMouseMoveShift = movement => {\n handleMouseMove?.(movement, {\n shift: true\n })\n }\n\n const onMouseMoveCtrl = movement => {\n handleMouseMove?.(movement, {\n ctrl: true\n })\n }\n\n const onMouseWheel = e => {\n handleMouseWheel?.(e)\n }\n\n const onMouseWheelShift = e => {\n handleMouseWheel?.(e, {\n shift: true\n })\n }\n\n const onMouseWheelCtrl = e => {\n handleMouseWheel?.(e, {\n ctrl: true\n })\n }\n\n const onPinchStart = e => {\n handlePinch?.(e, {\n start: true\n })\n }\n\n const onPinchStartShift = e => {\n handlePinch?.(e, {\n start: true,\n shift: true\n })\n }\n\n const onPinchStartCtrl = e => {\n handlePinch?.(e, {\n start: true,\n ctrl: true\n })\n }\n\n const onPinchEnd = e => {\n handlePinch?.(e, {\n end: true\n })\n }\n\n const onPinchEndShift = e => {\n handlePinch?.(e, {\n end: true,\n shift: true\n })\n }\n\n const onPinchEndCtrl = e => {\n handlePinch?.(e, {\n end: true,\n ctrl: true\n })\n }\n\n const onPinchMove = e => {\n handlePinch?.(e, {\n move: true\n })\n }\n\n const onPinchMoveShift = e => {\n handlePinch?.(e, {\n move: true,\n shift: true\n })\n }\n\n const onPinchMoveCtrl = e => {\n handlePinch?.(e, {\n move: true,\n ctrl: true\n })\n }\n\n const onTouchHold = e => {\n if (e.touch) {\n const movement = {\n position: {\n x: e.position.left,\n y: e.position.top\n }\n }\n handleDoubleClick?.(movement, {\n button: 0\n })\n }\n\n touchPromise.resolve(false)\n }\n\n const onTouchEnd = (e: TouchEvent) => {\n touchPromise.resolve(true)\n }\n\n const onTouchStart = (e: TouchEvent) => {\n touchPromise = defer()\n }\n\n return {\n activate,\n deactivate,\n destroy,\n isActive\n }\n}\n"],"names":[],"mappings":"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"}