UNPKG

react-native-web-internals

Version:

React Native for Web

106 lines (105 loc) 7.34 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 }); }, __copyProps = (to, from, except, desc) => { if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target, mod )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod); var modality_exports = {}; __export(modality_exports, { addModalityListener: () => addModalityListener, getActiveModality: () => getActiveModality, getModality: () => getModality, testOnly_resetActiveModality: () => testOnly_resetActiveModality }); module.exports = __toCommonJS(modality_exports); var import_canUseDOM = __toESM(require("../canUseDOM")), import_createEventHandle = __toESM(require("../createEventHandle/index")), supportsPointerEvent = function() { return typeof window < "u" && window.PointerEvent != null; }, activeModality = "keyboard", modality = "keyboard", previousModality, previousActiveModality, isEmulatingMouseEvents = !1, listeners = /* @__PURE__ */ new Set(), KEYBOARD = "keyboard", MOUSE = "mouse", TOUCH = "touch", BLUR = "blur", CONTEXTMENU = "contextmenu", FOCUS = "focus", KEYDOWN = "keydown", MOUSEDOWN = "mousedown", MOUSEMOVE = "mousemove", MOUSEUP = "mouseup", POINTERDOWN = "pointerdown", POINTERMOVE = "pointermove", SCROLL = "scroll", SELECTIONCHANGE = "selectionchange", TOUCHCANCEL = "touchcancel", TOUCHMOVE = "touchmove", TOUCHSTART = "touchstart", VISIBILITYCHANGE = "visibilitychange", bubbleOptions = { passive: !0 }, captureOptions = { capture: !0, passive: !0 }, addBlurListener = (0, import_createEventHandle.default)(BLUR, bubbleOptions), addFocusListener = (0, import_createEventHandle.default)(FOCUS, bubbleOptions), addVisibilityChangeListener = (0, import_createEventHandle.default)(VISIBILITYCHANGE, captureOptions), addKeyDownListener = (0, import_createEventHandle.default)(KEYDOWN, captureOptions), addPointerDownListener = (0, import_createEventHandle.default)(POINTERDOWN, captureOptions), addPointerMoveListener = (0, import_createEventHandle.default)(POINTERMOVE, captureOptions), addContextMenuListener = (0, import_createEventHandle.default)(CONTEXTMENU, captureOptions), addMouseDownListener = (0, import_createEventHandle.default)(MOUSEDOWN, captureOptions), addMouseMoveListener = (0, import_createEventHandle.default)(MOUSEMOVE, captureOptions), addMouseUpListener = (0, import_createEventHandle.default)(MOUSEUP, captureOptions), addScrollListener = (0, import_createEventHandle.default)(SCROLL, captureOptions), addSelectiomChangeListener = (0, import_createEventHandle.default)(SELECTIONCHANGE, captureOptions), addTouchCancelListener = (0, import_createEventHandle.default)(TOUCHCANCEL, captureOptions), addTouchMoveListener = (0, import_createEventHandle.default)(TOUCHMOVE, captureOptions), addTouchStartListener = (0, import_createEventHandle.default)(TOUCHSTART, captureOptions); function restoreModality() { (previousModality != null || previousActiveModality != null) && (previousModality != null && (modality = previousModality, previousModality = null), previousActiveModality != null && (activeModality = previousActiveModality, previousActiveModality = null), callListeners()); } function onBlurWindow() { previousModality = modality, previousActiveModality = activeModality, activeModality = KEYBOARD, modality = KEYBOARD, callListeners(), isEmulatingMouseEvents = !1; } function onFocusWindow() { restoreModality(); } function onKeyDown(event) { event.metaKey || event.altKey || event.ctrlKey || modality !== KEYBOARD && (modality = KEYBOARD, activeModality = KEYBOARD, callListeners()); } function onVisibilityChange() { document.visibilityState !== "hidden" && restoreModality(); } function onPointerish(event) { var eventType = event.type; if (supportsPointerEvent()) { if (eventType === POINTERDOWN) { activeModality !== event.pointerType && (modality = event.pointerType, activeModality = event.pointerType, callListeners()); return; } if (eventType === POINTERMOVE) { modality !== event.pointerType && (modality = event.pointerType, callListeners()); return; } } else { if (isEmulatingMouseEvents || (eventType === MOUSEDOWN && activeModality !== MOUSE && (modality = MOUSE, activeModality = MOUSE, callListeners()), eventType === MOUSEMOVE && modality !== MOUSE && (modality = MOUSE, callListeners())), eventType === TOUCHSTART) { isEmulatingMouseEvents = !0, event.touches && event.touches.length > 1 && (isEmulatingMouseEvents = !1), activeModality !== TOUCH && (modality = TOUCH, activeModality = TOUCH, callListeners()); return; } (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) && (isEmulatingMouseEvents = !1); } } import_canUseDOM.default && (addBlurListener(window, onBlurWindow), addFocusListener(window, onFocusWindow), addKeyDownListener(document, onKeyDown), addPointerDownListener(document, onPointerish), addPointerMoveListener(document, onPointerish), addVisibilityChangeListener(document, onVisibilityChange), addContextMenuListener(document, onPointerish), addMouseDownListener(document, onPointerish), addMouseMoveListener(document, onPointerish), addMouseUpListener(document, onPointerish), addTouchCancelListener(document, onPointerish), addTouchMoveListener(document, onPointerish), addTouchStartListener(document, onPointerish), addSelectiomChangeListener(document, onPointerish), addScrollListener(document, onPointerish)); function callListeners() { var value = { activeModality, modality }; listeners.forEach(function(listener) { listener(value); }); } function getActiveModality() { return activeModality; } function getModality() { return modality; } function addModalityListener(listener) { return listeners.add(listener), function() { listeners.delete(listener); }; } function testOnly_resetActiveModality() { isEmulatingMouseEvents = !1, activeModality = KEYBOARD, modality = KEYBOARD; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { addModalityListener, getActiveModality, getModality, testOnly_resetActiveModality }); //# sourceMappingURL=index.js.map