cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
93 lines (92 loc) • 3.06 kB
JavaScript
import { __exports as events } from "../../../../../_virtual/events.mjs";
export { __exports as default } from "../../../../../_virtual/events.mjs";
Object.defineProperty(events, "__esModule", {
value: true
});
events.getPointerEvent = getPointerEvent;
events.releaseCapture = releaseCapture;
events.setCapture = setCapture;
events.stopEvent = stopEvent;
function getPointerEvent(e) {
return e.changedTouches ? e.changedTouches[0] : e.touches ? e.touches[0] : e;
}
function stopEvent(e) {
e.stopPropagation();
e.preventDefault();
}
var _captureRecursion = false;
var _elementForUnflushedEvents = null;
document.captureElement = null;
function _captureProxy(e) {
if (_captureRecursion)
return;
var newEv = new e.constructor(e.type, e);
_captureRecursion = true;
if (document.captureElement) {
document.captureElement.dispatchEvent(newEv);
} else {
_elementForUnflushedEvents.dispatchEvent(newEv);
}
_captureRecursion = false;
e.stopPropagation();
if (newEv.defaultPrevented) {
e.preventDefault();
}
if (e.type === "mouseup") {
releaseCapture();
}
}
function _capturedElemChanged() {
var proxyElem = document.getElementById("noVNC_mouse_capture_elem");
proxyElem.style.cursor = window.getComputedStyle(document.captureElement).cursor;
}
var _captureObserver = new MutationObserver(_capturedElemChanged);
function setCapture(target) {
if (target.setCapture) {
target.setCapture();
document.captureElement = target;
} else {
releaseCapture();
var proxyElem = document.getElementById("noVNC_mouse_capture_elem");
if (proxyElem === null) {
proxyElem = document.createElement("div");
proxyElem.id = "noVNC_mouse_capture_elem";
proxyElem.style.position = "fixed";
proxyElem.style.top = "0px";
proxyElem.style.left = "0px";
proxyElem.style.width = "100%";
proxyElem.style.height = "100%";
proxyElem.style.zIndex = 1e4;
proxyElem.style.display = "none";
document.body.appendChild(proxyElem);
proxyElem.addEventListener("contextmenu", _captureProxy);
proxyElem.addEventListener("mousemove", _captureProxy);
proxyElem.addEventListener("mouseup", _captureProxy);
}
document.captureElement = target;
_captureObserver.observe(target, {
attributes: true
});
_capturedElemChanged();
proxyElem.style.display = "";
window.addEventListener("mousemove", _captureProxy);
window.addEventListener("mouseup", _captureProxy);
}
}
function releaseCapture() {
if (document.releaseCapture) {
document.releaseCapture();
document.captureElement = null;
} else {
if (!document.captureElement) {
return;
}
_elementForUnflushedEvents = document.captureElement;
document.captureElement = null;
_captureObserver.disconnect();
var proxyElem = document.getElementById("noVNC_mouse_capture_elem");
proxyElem.style.display = "none";
window.removeEventListener("mousemove", _captureProxy);
window.removeEventListener("mouseup", _captureProxy);
}
}