UNPKG

@react-aria/utils

Version:
42 lines (36 loc) 2.59 kB
var $9e20cff0af27e8cc$exports = require("./platform.main.js"); function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } $parcel$export(module.exports, "isVirtualClick", () => $577e795361f19be9$export$60278871457622de); $parcel$export(module.exports, "isVirtualPointerEvent", () => $577e795361f19be9$export$29bf1b5f2c56cf63); /* * Copyright 2022 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ function $577e795361f19be9$export$60278871457622de(event) { // JAWS/NVDA with Firefox. if (event.mozInputSource === 0 && event.isTrusted) return true; // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check // to detect TalkBack virtual clicks. if ((0, $9e20cff0af27e8cc$exports.isAndroid)() && event.pointerType) return event.type === 'click' && event.buttons === 1; return event.detail === 0 && !event.pointerType; } function $577e795361f19be9$export$29bf1b5f2c56cf63(event) { // If the pointer size is zero, then we assume it's from a screen reader. // Android TalkBack double tap will sometimes return a event with width and height of 1 // and pointerType === 'mouse' so we need to check for a specific combination of event attributes. // Cannot use "event.pressure === 0" as the sole check due to Safari pointer events always returning pressure === 0 // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush // Talkback double tap from Windows Firefox touch screen press return !(0, $9e20cff0af27e8cc$exports.isAndroid)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse'; } //# sourceMappingURL=isVirtualEvent.main.js.map