]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/on.js
2 Copyright (c) 2004-2016, The JS Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
8 define("dojo/on",["./has!dom-addeventlistener?:./aspect","./_base/kernel","./sniff"],function(_1
,_2
,_3
){"use strict";if(1){var _4
=window
.ScriptEngineMajorVersion
;_3
.add("jscript",_4
&&(_4()+ScriptEngineMinorVersion()/10));_3.add("event-orientationchange",_3("touch")&&!_3("android"));_3.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation);_3.add("event-focusin",function(_5,_6,_7){return "onfocusin" in _7;});if(_3("touch")){_3.add("touch-can-modify-event-delegate",function(){var _8=function(){};_8.prototype=document.createEvent("MouseEvents");try{var _9=new _8;_9.target=null;return _9.target===null;}catch(e){return false;}});}}var on=function(_a,_b,_c,_d){if(typeof _a.on=="function"&&typeof _b!="function"&&!_a.nodeType){return _a.on(_b,_c);}return on.parse(_a,_b,_c,_e,_d,this);};on.pausable=function(_f,_10,_11,_12){var _13;var _14=on(_f,_10,function(){if(!_13){return _11.apply(this,arguments);}},_12);_14.pause=function(){_13=true;};_14.resume=function(){_13=false;};return _14;};on.once=function(_15,_16,_17,_18){var _19=on(_15,_16,function(){_19.remove();return _17.apply(this,arguments);});return _19;};on.parse=function(_1a,_1b,_1c,_1d,_1e,_1f){var _20;if(_1b.call){return _1b.call(_1f,_1a,_1c);}if(_1b instanceof Array){_20=_1b;}else{if(_1b.indexOf(",")>-1){_20=_1b.split(/\s
*,\s*/
);}}if(_20
){var _21
=[];var i
=0;var _22
;while(_22
=_20
[i
++]){_21
.push(on
.parse(_1a
,_22
,_1c
,_1d
,_1e
,_1f
));}_21
.remove=function(){for(var i
=0;i
<_21
.length
;i
++){_21
[i
].remove();}};return _21
;}return _1d(_1a
,_1b
,_1c
,_1e
,_1f
);};var _23
=/^touch
/;function _e(_24,_25,_26,_27,_28){var _29=_25.match(/(.*):(.*)/);if(_29
){_25
=_29
[2];_29
=_29
[1];return on
.selector(_29
,_25
).call(_28
,_24
,_26
);}if(_3("touch")){if(_23
.test(_25
)){_26
=_2a(_26
);}if(!_3("event-orientationchange")&&(_25
=="orientationchange")){_25
="resize";_24
=window
;_26
=_2a(_26
);}}if(_2b
){_26
=_2b(_26
);}if(_24
.addEventListener
){var _2c
=_25
in _2d
,_2e
=_2c
?_2d
[_25
]:_25
;_24
.addEventListener(_2e
,_26
,_2c
);return {remove:function(){_24
.removeEventListener(_2e
,_26
,_2c
);}};}_25
="on"+_25
;if(_2f
&&_24
.attachEvent
){return _2f(_24
,_25
,_26
);}throw new Error("Target must be an event emitter");};on
.matches=function(_30
,_31
,_32
,_33
,_34
){_34
=_34
&&(typeof _34
.matches
=="function")?_34
:_2
.query
;_33
=_33
!==false;if(_30
.nodeType
!=1){_30
=_30
.parentNode
;}while(!_34
.matches(_30
,_31
,_32
)){if(_30
==_32
||_33
===false||!(_30
=_30
.parentNode
)||_30
.nodeType
!=1){return false;}}return _30
;};on
.selector=function(_35
,_36
,_37
){return function(_38
,_39
){var _3a
=typeof _35
=="function"?{matches
:_35
}:this,_3b
=_36
.bubble
;function _3c(_3d
){return on
.matches(_3d
,_35
,_38
,_37
,_3a
);};if(_3b
){return on(_38
,_3b(_3c
),_39
);}return on(_38
,_36
,function(_3e
){var _3f
=_3c(_3e
.target
);if(_3f
){_3e
.selectorTarget
=_3f
;return _39
.call(_3f
,_3e
);}});};};function _40(){this.cancelable
=false;this.defaultPrevented
=true;};function _41(){this.bubbles
=false;};var _42
=[].slice
,_43
=on
.emit=function(_44
,_45
,_46
){var _47
=_42
.call(arguments
,2);var _48
="on"+_45
;if("parentNode" in _44
){var _49
=_47
[0]={};for(var i
in _46
){_49
[i
]=_46
[i
];}_49
.preventDefault
=_40
;_49
.stopPropagation
=_41
;_49
.target
=_44
;_49
.type
=_45
;_46
=_49
;}do{_44
[_48
]&&_44
[_48
].apply(_44
,_47
);}while(_46
&&_46
.bubbles
&&(_44
=_44
.parentNode
));return _46
&&_46
.cancelable
&&_46
;};var _2d
=_3("event-focusin")?{}:{focusin
:"focus",focusout
:"blur"};if(!_3("event-stopimmediatepropagation")){var _4a=function(){this.immediatelyStopped
=true;this.modified
=true;};var _2b=function(_4b
){return function(_4c
){if(!_4c
.immediatelyStopped
){_4c
.stopImmediatePropagation
=_4a
;return _4b
.apply(this,arguments
);}};};}if(_3("dom-addeventlistener")){on
.emit=function(_4d
,_4e
,_4f
){if(_4d
.dispatchEvent
&&document
.createEvent
){var _50
=_4d
.ownerDocument
||document
;var _51
=_50
.createEvent("HTMLEvents");_51
.initEvent(_4e
,!!_4f
.bubbles
,!!_4f
.cancelable
);for(var i
in _4f
){if(!(i
in _51
)){_51
[i
]=_4f
[i
];}}return _4d
.dispatchEvent(_51
)&&_51
;}return _43
.apply(on
,arguments
);};}else{on
._fixEvent=function(evt
,_52
){if(!evt
){var w
=_52
&&(_52
.ownerDocument
||_52
.document
||_52
).parentWindow
||window
;evt
=w
.event
;}if(!evt
){return evt
;}try{if(_53
&&evt
.type
==_53
.type
&&evt
.srcElement
==_53
.target
){evt
=_53
;}}catch(e
){}if(!evt
.target
){evt
.target
=evt
.srcElement
;evt
.currentTarget
=(_52
||evt
.srcElement
);if(evt
.type
=="mouseover"){evt
.relatedTarget
=evt
.fromElement
;}if(evt
.type
=="mouseout"){evt
.relatedTarget
=evt
.toElement
;}if(!evt
.stopPropagation
){evt
.stopPropagation
=_54
;evt
.preventDefault
=_55
;}switch(evt
.type
){case "keypress":var c
=("charCode" in evt
?evt
.charCode
:evt
.keyCode
);if(c
==10){c
=0;evt
.keyCode
=13;}else{if(c
==13||c
==27){c
=0;}else{if(c
==3){c
=99;}}}evt
.charCode
=c
;_56(evt
);break;}}return evt
;};var _53
,_57=function(_58
){this.handle
=_58
;};_57
.prototype.remove=function(){delete _dojoIEListeners_
[this.handle
];};var _59=function(_5a
){return function(evt
){evt
=on
._fixEvent(evt
,this);var _5b
=_5a
.call(this,evt
);if(evt
.modified
){if(!_53
){setTimeout(function(){_53
=null;});}_53
=evt
;}return _5b
;};};var _2f=function(_5c
,_5d
,_5e
){_5e
=_59(_5e
);if(((_5c
.ownerDocument
?_5c
.ownerDocument
.parentWindow
:_5c
.parentWindow
||_5c
.window
||window
)!=top
||_3("jscript")<5.8)&&!_3("config-_allow_leaks")){if(typeof _dojoIEListeners_
=="undefined"){_dojoIEListeners_
=[];}var _5f
=_5c
[_5d
];if(!_5f
||!_5f
.listeners
){var _60
=_5f
;_5f
=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_5f
.listeners
=[];_5c
[_5d
]=_5f
;_5f
.global
=this;if(_60
){_5f
.listeners
.push(_dojoIEListeners_
.push(_60
)-1);}}var _61
;_5f
.listeners
.push(_61
=(_5f
.global
._dojoIEListeners_
.push(_5e
)-1));return new _57(_61
);}return _1
.after(_5c
,_5d
,_5e
,true);};var _56=function(evt
){evt
.keyChar
=evt
.charCode
?String
.fromCharCode(evt
.charCode
):"";evt
.charOrCode
=evt
.keyChar
||evt
.keyCode
;};var _54=function(){this.cancelBubble
=true;};var _55
=on
._preventDefault=function(){this.bubbledKeyCode
=this.keyCode
;if(this.ctrlKey
){try{this.keyCode
=0;}catch(e
){}}this.defaultPrevented
=true;this.returnValue
=false;this.modified
=true;};}if(_3("touch")){var _62=function(){};var _63
=window
.orientation
;var _2a=function(_64
){return function(_65
){var _66
=_65
.corrected
;if(!_66
){var _67
=_65
.type
;try{delete _65
.type
;}catch(e
){}if(_65
.type
){if(_3("touch-can-modify-event-delegate")){_62
.prototype=_65
;_66
=new _62
;}else{_66
={};for(var _68
in _65
){_66
[_68
]=_65
[_68
];}}_66
.preventDefault=function(){_65
.preventDefault();};_66
.stopPropagation=function(){_65
.stopPropagation();};}else{_66
=_65
;_66
.type
=_67
;}_65
.corrected
=_66
;if(_67
=="resize"){if(_63
==window
.orientation
){return null;}_63
=window
.orientation
;_66
.type
="orientationchange";return _64
.call(this,_66
);}if(!("rotation" in _66
)){_66
.rotation
=0;_66
.scale
=1;}var _69
=_66
.changedTouches
[0];for(var i
in _69
){delete _66
[i
];_66
[i
]=_69
[i
];}}return _64
.call(this,_66
);};};}return on
;});