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.
61 lines
1.9 KiB
61 lines
1.9 KiB
2 years ago
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.getMouseEventOptions = getMouseEventOptions;
|
||
|
|
||
|
function isMousePressEvent(event) {
|
||
|
return event === 'mousedown' || event === 'mouseup' || event === 'click' || event === 'dblclick';
|
||
|
} // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons
|
||
|
|
||
|
|
||
|
const BUTTONS_NAMES = {
|
||
|
none: 0,
|
||
|
primary: 1,
|
||
|
secondary: 2,
|
||
|
auxiliary: 4
|
||
|
}; // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
|
||
|
|
||
|
const BUTTON_NAMES = {
|
||
|
primary: 0,
|
||
|
auxiliary: 1,
|
||
|
secondary: 2
|
||
|
};
|
||
|
|
||
|
function translateButtonNumber(value, from) {
|
||
|
var _Object$entries$find;
|
||
|
|
||
|
const [mapIn, mapOut] = from === 'button' ? [BUTTON_NAMES, BUTTONS_NAMES] : [BUTTONS_NAMES, BUTTON_NAMES];
|
||
|
const name = (_Object$entries$find = Object.entries(mapIn).find(([, i]) => i === value)) == null ? void 0 : _Object$entries$find[0]; // istanbul ignore next
|
||
|
|
||
|
return name && Object.prototype.hasOwnProperty.call(mapOut, name) ? mapOut[name] : 0;
|
||
|
}
|
||
|
|
||
|
function convertMouseButtons(event, init, property) {
|
||
|
if (!isMousePressEvent(event)) {
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
if (typeof init[property] === 'number') {
|
||
|
return init[property];
|
||
|
} else if (property === 'button' && typeof init.buttons === 'number') {
|
||
|
return translateButtonNumber(init.buttons, 'buttons');
|
||
|
} else if (property === 'buttons' && typeof init.button === 'number') {
|
||
|
return translateButtonNumber(init.button, 'button');
|
||
|
}
|
||
|
|
||
|
return property != 'button' && isMousePressEvent(event) ? 1 : 0;
|
||
|
}
|
||
|
|
||
|
function getMouseEventOptions(event, init, clickCount = 0) {
|
||
|
var _init;
|
||
|
|
||
|
init = (_init = init) != null ? _init : {};
|
||
|
return { ...init,
|
||
|
// https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
|
||
|
detail: event === 'mousedown' || event === 'mouseup' || event === 'click' ? 1 + clickCount : clickCount,
|
||
|
buttons: convertMouseButtons(event, init, 'buttons'),
|
||
|
button: convertMouseButtons(event, init, 'button')
|
||
|
};
|
||
|
}
|