ohctechv3/.svn/pristine/12/1258fd62d63ae4cefd9a8672943c9e0710159149.svn-base
2024-10-28 15:03:36 +05:30

67 lines
1.8 KiB
Plaintext

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = exports.onceSupported = exports.optionsSupported = void 0;
var _canUseDOM = _interopRequireDefault(require("./canUseDOM"));
/* eslint-disable no-return-assign */
var optionsSupported = false;
exports.optionsSupported = optionsSupported;
var onceSupported = false;
exports.onceSupported = onceSupported;
try {
var options = {
get passive() {
return exports.optionsSupported = optionsSupported = true;
},
get once() {
// eslint-disable-next-line no-multi-assign
return exports.onceSupported = onceSupported = exports.optionsSupported = optionsSupported = true;
}
};
if (_canUseDOM.default) {
window.addEventListener('test', options, options);
window.removeEventListener('test', options, true);
}
} catch (e) {
/* */
}
/**
* An `addEventListener` ponyfill, supports the `once` option
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
function addEventListener(node, eventName, handler, options) {
if (options && typeof options !== 'boolean' && !onceSupported) {
var once = options.once,
capture = options.capture;
var wrappedHandler = handler;
if (!onceSupported && once) {
wrappedHandler = handler.__once || function onceHandler(event) {
this.removeEventListener(eventName, onceHandler, capture);
handler.call(this, event);
};
handler.__once = wrappedHandler;
}
node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);
}
node.addEventListener(eventName, handler, options);
}
var _default = addEventListener;
exports.default = _default;