@alauda-fe/common
Version:
Alauda frontend team common codes.
50 lines • 6.53 kB
JavaScript
import { filter, fromEvent } from 'rxjs';
var MOUSE_EVENT_KEY;
(function (MOUSE_EVENT_KEY) {
MOUSE_EVENT_KEY[MOUSE_EVENT_KEY["LEFT"] = 0] = "LEFT";
MOUSE_EVENT_KEY[MOUSE_EVENT_KEY["WHEEL"] = 1] = "WHEEL";
MOUSE_EVENT_KEY[MOUSE_EVENT_KEY["RIGHT"] = 2] = "RIGHT";
})(MOUSE_EVENT_KEY || (MOUSE_EVENT_KEY = {}));
const activeEventListenerOptions = { passive: false };
/**
* Emits when a 'mousemove' event gets fired.
* @param element, html element where to listen the events.
*/
export function getMouseMove$(element) {
return fromEvent(element, 'mousemove', activeEventListenerOptions);
}
/**
* Emits when a mousedown emits..
* @param element, html element where to listen the events.
*/
export function getMouseClick$(element) {
return fromEvent(element, 'click');
}
/**
* Emits when a mousedown emits..
* @param element, html element where to listen the events.
*/
export function getMouseDown$(element) {
return fromEvent(element, 'mousedown', activeEventListenerOptions).pipe(filter((mouseEvent) => mouseEvent.button === MOUSE_EVENT_KEY.LEFT &&
mouseEvent.currentTarget === element));
}
/**
* Emits when a there is a 'mouseup'.
* @param element, html element where to listen the events.
*/
export function getMouseEnd$(element) {
return fromEvent(element, 'mouseup');
}
export function getPointerPageX(event) {
return event.pageX;
}
export function getPointerPageY(event) {
return event.pageY;
}
// 判定相对于某个特定事件(如点击)发生时,鼠标移动距离超过 threshold ,一般用于设置拖拽容忍
export function accessPointerMoveThreshold(sourceEvt, moveEvent, threshold) {
const distanceX = Math.abs(sourceEvt.clientX - moveEvent.clientX);
const distanceY = Math.abs(sourceEvt.clientY - moveEvent.clientY);
return distanceX + distanceY >= threshold;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2UudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZ3JpZC1sYXlvdXQvdXRpbHMvbW91c2UudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFckQsSUFBSyxlQUlKO0FBSkQsV0FBSyxlQUFlO0lBQ2xCLHFEQUFRLENBQUE7SUFDUix1REFBUyxDQUFBO0lBQ1QsdURBQVMsQ0FBQTtBQUNYLENBQUMsRUFKSSxlQUFlLEtBQWYsZUFBZSxRQUluQjtBQUVELE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDdEQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFvQjtJQUNoRCxPQUFPLFNBQVMsQ0FDZCxPQUFPLEVBQ1AsV0FBVyxFQUNYLDBCQUEwQixDQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBb0I7SUFDakQsT0FBTyxTQUFTLENBQWEsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQW9CO0lBQ2hELE9BQU8sU0FBUyxDQUNkLE9BQU8sRUFDUCxXQUFXLEVBQ1gsMEJBQTBCLENBQzNCLENBQUMsSUFBSSxDQUNKLE1BQU0sQ0FDSixDQUFDLFVBQXNCLEVBQUUsRUFBRSxDQUN6QixVQUFVLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxJQUFJO1FBQzFDLFVBQVUsQ0FBQyxhQUFhLEtBQUssT0FBTyxDQUN2QyxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQjtJQUMvQyxPQUFPLFNBQVMsQ0FBYSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBaUI7SUFDL0MsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWlCO0lBQy9DLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztBQUNyQixDQUFDO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsU0FBcUIsRUFDckIsU0FBcUIsRUFDckIsU0FBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sU0FBUyxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmVudW0gTU9VU0VfRVZFTlRfS0VZIHtcbiAgTEVGVCA9IDAsXG4gIFdIRUVMID0gMSxcbiAgUklHSFQgPSAyLFxufVxuXG5jb25zdCBhY3RpdmVFdmVudExpc3RlbmVyT3B0aW9ucyA9IHsgcGFzc2l2ZTogZmFsc2UgfTtcbi8qKlxuICogRW1pdHMgd2hlbiBhICdtb3VzZW1vdmUnIGV2ZW50IGdldHMgZmlyZWQuXG4gKiBAcGFyYW0gZWxlbWVudCwgaHRtbCBlbGVtZW50IHdoZXJlIHRvICBsaXN0ZW4gdGhlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vdXNlTW92ZSQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgcmV0dXJuIGZyb21FdmVudDxNb3VzZUV2ZW50PihcbiAgICBlbGVtZW50LFxuICAgICdtb3VzZW1vdmUnLFxuICAgIGFjdGl2ZUV2ZW50TGlzdGVuZXJPcHRpb25zLFxuICApO1xufVxuXG4vKipcbiAqIEVtaXRzIHdoZW4gYSBtb3VzZWRvd24gZW1pdHMuLlxuICogQHBhcmFtIGVsZW1lbnQsIGh0bWwgZWxlbWVudCB3aGVyZSB0byAgbGlzdGVuIHRoZSBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3VzZUNsaWNrJChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8TW91c2VFdmVudD4ge1xuICByZXR1cm4gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsZW1lbnQsICdjbGljaycpO1xufVxuXG4vKipcbiAqIEVtaXRzIHdoZW4gYSBtb3VzZWRvd24gZW1pdHMuLlxuICogQHBhcmFtIGVsZW1lbnQsIGh0bWwgZWxlbWVudCB3aGVyZSB0byAgbGlzdGVuIHRoZSBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3VzZURvd24kKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4oXG4gICAgZWxlbWVudCxcbiAgICAnbW91c2Vkb3duJyxcbiAgICBhY3RpdmVFdmVudExpc3RlbmVyT3B0aW9ucyxcbiAgKS5waXBlKFxuICAgIGZpbHRlcihcbiAgICAgIChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSA9PlxuICAgICAgICBtb3VzZUV2ZW50LmJ1dHRvbiA9PT0gTU9VU0VfRVZFTlRfS0VZLkxFRlQgJiZcbiAgICAgICAgbW91c2VFdmVudC5jdXJyZW50VGFyZ2V0ID09PSBlbGVtZW50LFxuICAgICksXG4gICk7XG59XG5cbi8qKlxuICogRW1pdHMgd2hlbiBhIHRoZXJlIGlzIGEgJ21vdXNldXAnLlxuICogQHBhcmFtIGVsZW1lbnQsIGh0bWwgZWxlbWVudCB3aGVyZSB0byAgbGlzdGVuIHRoZSBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3VzZUVuZCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgcmV0dXJuIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbGVtZW50LCAnbW91c2V1cCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9pbnRlclBhZ2VYKGV2ZW50OiBNb3VzZUV2ZW50KTogbnVtYmVyIHtcbiAgcmV0dXJuIGV2ZW50LnBhZ2VYO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9pbnRlclBhZ2VZKGV2ZW50OiBNb3VzZUV2ZW50KTogbnVtYmVyIHtcbiAgcmV0dXJuIGV2ZW50LnBhZ2VZO1xufVxuXG4vLyDliKTlrprnm7jlr7nkuo7mn5DkuKrnibnlrprkuovku7bvvIjlpoLngrnlh7vvvInlj5HnlJ/ml7bvvIzpvKDmoIfnp7vliqjot53nprvotoXov4cgdGhyZXNob2xkIO+8jOS4gOiIrOeUqOS6juiuvue9ruaLluaLveWuueW/jVxuZXhwb3J0IGZ1bmN0aW9uIGFjY2Vzc1BvaW50ZXJNb3ZlVGhyZXNob2xkKFxuICBzb3VyY2VFdnQ6IE1vdXNlRXZlbnQsXG4gIG1vdmVFdmVudDogTW91c2VFdmVudCxcbiAgdGhyZXNob2xkOiBudW1iZXIsXG4pIHtcbiAgY29uc3QgZGlzdGFuY2VYID0gTWF0aC5hYnMoc291cmNlRXZ0LmNsaWVudFggLSBtb3ZlRXZlbnQuY2xpZW50WCk7XG4gIGNvbnN0IGRpc3RhbmNlWSA9IE1hdGguYWJzKHNvdXJjZUV2dC5jbGllbnRZIC0gbW92ZUV2ZW50LmNsaWVudFkpO1xuICByZXR1cm4gZGlzdGFuY2VYICsgZGlzdGFuY2VZID49IHRocmVzaG9sZDtcbn1cbiJdfQ==