on.js 2.74 KB
//>>built
define(["require","./_base/kernel","./sniff"],function(z,q,l){function r(b,c,a,d,e){if(d=c.match(/(.*):(.*)/))return c=d[2],d=d[1],g.selector(d,c).call(e,b,a);l("touch")&&t.test(c)&&(a=u(a));if(b.addEventListener){var f=c in m,h=f?m[c]:c;b.addEventListener(h,a,f);return{remove:function(){b.removeEventListener(h,a,f)}}}throw Error("Target must be an event emitter");}function v(){this.cancelable=!1;this.defaultPrevented=!0}function w(){this.bubbles=!1}l("dom")&&l("touch");var g=function(b,c,a,d){return"function"!=
typeof b.on||"function"==typeof c||b.nodeType?g.parse(b,c,a,r,d,this):b.on(c,a)};g.pausable=function(b,c,a,d){var e;b=g(b,c,function(){if(!e)return a.apply(this,arguments)},d);b.pause=function(){e=!0};b.resume=function(){e=!1};return b};g.once=function(b,c,a,d){var e=g(b,c,function(){e.remove();return a.apply(this,arguments)});return e};g.parse=function(b,c,a,d,e,f){var h;if(c.call)return c.call(f,b,a);c instanceof Array?h=c:-1<c.indexOf(",")&&(h=c.split(/\s*,\s*/));if(h){var k=[];c=0;for(var n;n=
h[c++];)k.push(g.parse(b,n,a,d,e,f));k.remove=function(){for(var a=0;a<k.length;a++)k[a].remove()};return k}return d(b,c,a,e,f)};var t=/^touch/;g.matches=function(b,c,a,d,e){e=e&&"function"==typeof e.matches?e:q.query;d=!1!==d;1!=b.nodeType&&(b=b.parentNode);for(;!e.matches(b,c,a);)if(b==a||!1===d||!(b=b.parentNode)||1!=b.nodeType)return!1;return b};g.selector=function(b,c,a){return function(d,e){function f(c){return g.matches(c,b,d,a,h)}var h="function"==typeof b?{matches:b}:this,k=c.bubble;return k?
g(d,k(f),e):g(d,c,function(a){var b=f(a.target);if(b)return a.selectorTarget=b,e.call(b,a)})}};var x=[].slice,y=g.emit=function(b,c,a){var d=x.call(arguments,2),e="on"+c;if("parentNode"in b){var f=d[0]={},g;for(g in a)f[g]=a[g];f.preventDefault=v;f.stopPropagation=w;f.target=b;f.type=c;a=f}do b[e]&&b[e].apply(b,d);while(a&&a.bubbles&&(b=b.parentNode));return a&&a.cancelable&&a},m={};g.emit=function(b,c,a){if(b.dispatchEvent&&document.createEvent){var d=(b.ownerDocument||document).createEvent("HTMLEvents");
d.initEvent(c,!!a.bubbles,!!a.cancelable);for(var e in a)e in d||(d[e]=a[e]);return b.dispatchEvent(d)&&d}return y.apply(g,arguments)};if(l("touch"))var p=window.orientation,u=function(b){return function(c){var a=c.corrected;if(!a){var d=c.type;try{delete c.type}catch(h){}if(c.type){var a={},e;for(e in c)a[e]=c[e];a.preventDefault=function(){c.preventDefault()};a.stopPropagation=function(){c.stopPropagation()}}else a=c,a.type=d;c.corrected=a;if("resize"==d){if(p==window.orientation)return null;p=
window.orientation;a.type="orientationchange";return b.call(this,a)}"rotation"in a||(a.rotation=0,a.scale=1);if(window.TouchEvent&&c instanceof TouchEvent){var d=a.changedTouches[0],f;for(f in d)delete a[f],a[f]=d[f]}}return b.call(this,a)}};return g});