You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
62 lines
1.4 KiB
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.on = on;
|
|
exports.off = off;
|
|
exports.stopPropagation = stopPropagation;
|
|
exports.preventDefault = preventDefault;
|
|
exports.supportsPassive = void 0;
|
|
|
|
var _ = require("..");
|
|
|
|
// eslint-disable-next-line import/no-mutable-exports
|
|
var supportsPassive = false;
|
|
exports.supportsPassive = supportsPassive;
|
|
|
|
if (!_.isServer) {
|
|
try {
|
|
var opts = {};
|
|
Object.defineProperty(opts, 'passive', {
|
|
// eslint-disable-next-line getter-return
|
|
get: function get() {
|
|
/* istanbul ignore next */
|
|
exports.supportsPassive = supportsPassive = true;
|
|
}
|
|
});
|
|
window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty
|
|
} catch (e) {}
|
|
}
|
|
|
|
function on(target, event, handler, passive) {
|
|
if (passive === void 0) {
|
|
passive = false;
|
|
}
|
|
|
|
if (!_.isServer) {
|
|
target.addEventListener(event, handler, supportsPassive ? {
|
|
capture: false,
|
|
passive: passive
|
|
} : false);
|
|
}
|
|
}
|
|
|
|
function off(target, event, handler) {
|
|
if (!_.isServer) {
|
|
target.removeEventListener(event, handler);
|
|
}
|
|
}
|
|
|
|
function stopPropagation(event) {
|
|
event.stopPropagation();
|
|
}
|
|
|
|
function preventDefault(event, isStopPropagation) {
|
|
/* istanbul ignore else */
|
|
if (typeof event.cancelable !== 'boolean' || event.cancelable) {
|
|
event.preventDefault();
|
|
}
|
|
|
|
if (isStopPropagation) {
|
|
stopPropagation(event);
|
|
}
|
|
} |