UNPKG

@livelybone/mouse-events

Version:

Some complex mouse events, such as dragMove event with deltaX/deltaY relative to mousedown/touchstart, mouse wheel with good compatibility ...

10 lines (8 loc) 6.03 kB
/** * Bundle of @livelybone/mouse-events * Generated: 2020-05-16 * Version: 1.0.0 * License: MIT * Author: 2631541504@qq.com */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).MouseEvents={})}(this,function(e){"use strict";function t(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function u(o){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?t(Object(i),!0).forEach(function(e){var t,n,r;t=o,r=i[n=e],n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))})}return o}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var o=c,i=c,a=c,l=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,d=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function c(e){var t=(e=e||{}).ua;if(t||"undefined"==typeof navigator||(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),"string"!=typeof t)return!1;var n=e.tablet?d.test(t):l.test(t);return!n&&e.tablet&&e.featureDetect&&navigator&&1<navigator.maxTouchPoints&&-1!==t.indexOf("Macintosh")&&-1!==t.indexOf("Safari")&&(n=!0),n}o.isMobile=i,o.default=a;var p=i(),s="",f="addEventListener",m="removeEventListener";function v(e,t,n,r){var o=s+t;return e[f].bind(e)(o,n,r),function(){e[m].bind(e)(o,n,r)}}"undefined"!=typeof window&&"undefined"!=typeof document&&("addEventListener"in window?(f="addEventListener",m="removeEventListener"):(f="attachEvent",m="detachEvent",s="on"));var b=Object.freeze({$isMobile:p,$addListener:v}),y=p?"mobile":"pc",h={start:{pc:"mousedown",mobile:"touchstart"}[y],move:{pc:"mousemove",mobile:"touchmove"}[y],end:{pc:"mouseup",mobile:"touchend"}[y]};function w(e){var t=null;return p&&(t=0<e.changedTouches.length||0<e.targetTouched.length?n(e.changedTouches,1)[0]:n(e.touches,1)[0]),t||e}function g(e,t){return{deltaX:w(e).clientX-w(t).clientX,deltaY:w(e).clientY-w(t).clientY,originalEvent:e}}var O=Object.freeze({bind:function(e,i,a){var l,d;return"function"==typeof e&&(a=i,i=e,e=window),v(e,h.start,function e(t){var n,r,o={deltaX:0,deltaY:0,originalEvent:t,type:"dragMoveStart"};t.type===h.start?(l=t,n=v(window,h.move,e,a),r=v(window,h.end,e,a),d=function(){n(),r()}):t.type===h.move?o=u(u({},g(t,l)),{},{type:"dragMove"}):t.type===h.end&&(o=u(u({},g(t,l)),{},{type:"dragMoveEnd"}),d&&d()),i(o)},a)}}),E="",S="addEventListener",M="removeEventListener",j="wheel";function x(p,e,s,t){var f,n=3<arguments.length&&void 0!==t?t:{},m={debounceTime:n.debounceTime||0,interval:n.interval||500,useCapture:n.useCapture||!1},v=0;function r(e){var t,n,r,o,i,a,l,d="wheel"===j?e:(t=e||window.event,n={originalEvent:t,timeStamp:t.timeStamp,target:t.target||t.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"===t.type?0:1,deltaX:0,deltaY:0,deltaZ:0,preventDefault:function(){t.preventDefault?t.preventDefault():t.returnValue=!1}},"mousewheel"===j?(n.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(n.deltaX=-.025*t.wheelDeltaX)):n.deltaY=t.detail,n),u=d.timeStamp-v,c="wheelMove";u<m.debounceTime||(m.interval<u&&(c="wheelStart"),(r=1)===d.deltaMode?(i=(o=p)instanceof Window?document.documentElement:o,a=window.getComputedStyle(i).fontSize||"16px",r=parseInt(a,10)):2===d.deltaMode&&(r=window.innerHeight),l="wheelStart"!==c?u:0,s({dx:d.deltaX*r||0,dy:d.deltaY*r||0,dz:d.deltaZ*r||0,dTime:l,originalEvent:d,type:c}),v=d.timeStamp,clearTimeout(f),f=setTimeout(function(){s({dx:0,dy:0,dz:0,dTime:l+m.interval,originalEvent:{timeStamp:d.timeStamp+m.interval},type:"wheelEnd"})},m.interval))}return(0,p[S])(E+e,r,m.useCapture),function(){(0,p[M])(E+e,r,m.useCapture)}}"undefined"!=typeof window&&"undefined"!=typeof document&&("addEventListener"in window?(S="addEventListener",M="removeEventListener"):(S="attachEvent",M="detachEvent",E="on"),j="onwheel"in document.createElement("div")?"wheel":void 0!==window.onmousewheel?"mousewheel":"DOMMouseScroll");var D=Object.freeze({bind:function(e,t,n){return"function"==typeof e&&(n=t,t=e,e=window),x(e,"DOMMouseScroll"===j?"MozMousePixelScroll":j,t,n)}});e.DragMove=O,e.MouseWheel=D,e.Utils=b,Object.defineProperty(e,"__esModule",{value:!0})});