{"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'\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    }\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    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    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  const onRightClick = movement => {\n    handleMouseClick?.(movement, {\n      button: 2\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  return {\n    activate,\n    deactivate,\n    destroy,\n    isActive\n  }\n}\n"],"names":[],"mappings":"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"}