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
"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') |
|
}; |
|
} |