1
1
2
2
/**
3
- * chimee v0.5.3
3
+ * chimee v0.5.4
4
4
* (c) 2017 toxic-johann
5
5
* Released under MIT
6
6
*/
@@ -4127,7 +4127,7 @@ var CustEvent = function () {
4127
4127
} ( ) ;
4128
4128
4129
4129
/**
4130
- * chimee-helper-dom v0.1.4
4130
+ * chimee-helper-dom v0.1.7
4131
4131
* (c) 2017 huzunjie
4132
4132
* Released under MIT
4133
4133
*/
@@ -4494,6 +4494,20 @@ function hasClassName(el, className) {
4494
4494
return new RegExp ( '(?:^|\\s)' + className + '(?=\\s|$)' ) . test ( el . className ) ;
4495
4495
}
4496
4496
4497
+ /**
4498
+ * addEventListener 是否已支持 passive
4499
+ * @return {Boolean }
4500
+ */
4501
+ var supportsPassive = false ;
4502
+ try {
4503
+ var opts = Object . defineProperty ( { } , 'passive' , {
4504
+ get : function get ( ) {
4505
+ supportsPassive = true ;
4506
+ }
4507
+ } ) ;
4508
+ window . addEventListener ( 'test' , null , opts ) ;
4509
+ } catch ( e ) { }
4510
+
4497
4511
/**
4498
4512
* 为HTML元素移除事件监听
4499
4513
* @param {HTMLElement } el 目标元素
@@ -4506,6 +4520,9 @@ function removeEvent(el, type, handler) {
4506
4520
var once = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
4507
4521
var capture = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : false ;
4508
4522
4523
+ if ( capture !== undefined && ! isBoolean ( capture ) && supportsPassive ) {
4524
+ capture = { passive : true } ;
4525
+ }
4509
4526
if ( once ) {
4510
4527
/* 尝试从缓存中读取包装后的方法 */
4511
4528
var handlerWrap = removeEventCache$1 ( el , type + '_once' , handler ) ;
@@ -4528,6 +4545,9 @@ function addEvent(el, type, handler) {
4528
4545
var once = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
4529
4546
var capture = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : false ;
4530
4547
4548
+ if ( capture !== undefined && ! isBoolean ( capture ) && supportsPassive ) {
4549
+ capture = { passive : true } ;
4550
+ }
4531
4551
if ( once ) {
4532
4552
var oldHandler = handler ;
4533
4553
handler = function ( ) {
@@ -4558,7 +4578,9 @@ function addEvent(el, type, handler) {
4558
4578
function addDelegate ( el , selector , type , handler ) {
4559
4579
var capture = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : false ;
4560
4580
4561
-
4581
+ if ( capture !== undefined && ! isBoolean ( capture ) && supportsPassive ) {
4582
+ capture = { passive : true } ;
4583
+ }
4562
4584
var handlerWrap = function handlerWrap ( e ) {
4563
4585
var targetElsArr = findParents ( e . target || e . srcElement , el , true ) ;
4564
4586
var targetElArr = query ( selector , el , true ) ;
@@ -4597,6 +4619,9 @@ function addDelegate(el, selector, type, handler) {
4597
4619
function removeDelegate ( el , selector , type , handler ) {
4598
4620
var capture = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : false ;
4599
4621
4622
+ if ( capture !== undefined && ! isBoolean ( capture ) && supportsPassive ) {
4623
+ capture = { passive : true } ;
4624
+ }
4600
4625
/* 尝试从缓存中读取包装后的方法 */
4601
4626
var handlerWrap = removeEventCache$1 ( el , type + '_delegate_' + selector , handler ) ;
4602
4627
handlerWrap && el . removeEventListener ( type , handlerWrap , capture ) ;
@@ -5061,7 +5086,7 @@ var NodeWrap = function () {
5061
5086
} ( ) ;
5062
5087
5063
5088
/**
5064
- * chimee-helper v0.2.6
5089
+ * chimee-helper v0.2.8
5065
5090
* (c) 2017 toxic-johann
5066
5091
* Released under MIT
5067
5092
*/
@@ -5851,7 +5876,8 @@ var _Map = unwrapExports(map);
5851
5876
5852
5877
var videoEvents = [ 'abort' , 'canplay' , 'canplaythrough' , 'durationchange' , 'emptied' , 'encrypted' , 'ended' , 'error' , 'interruptbegin' , 'interruptend' , 'loadeddata' , 'loadedmetadata' , 'loadstart' , 'mozaudioavailable' , 'pause' , 'play' , 'playing' , 'progress' , 'ratechange' , 'seeked' , 'seeking' , 'stalled' , 'suspend' , 'timeupdate' , 'volumechange' , 'waiting' ] ;
5853
5878
var videoReadOnlyProperties = [ 'buffered' , 'currentSrc' , 'duration' , 'error' , 'ended' , 'networkState' , 'paused' , 'readyState' , 'seekable' , 'sinkId' , 'controlsList' , 'tabIndex' , 'dataset' , 'offsetHeight' , 'offsetLeft' , 'offsetParent' , 'offsetTop' , 'offsetWidth' ] ;
5854
- var domEvents = [ 'beforeinput' , 'blur' , 'click' , 'compositionend' , 'compositionstart' , 'compositionupdate' , 'dblclick' , 'focus' , 'focusin' , 'focusout' , 'input' , 'keydown' , 'keypress' , 'keyup' , 'mousedown' , 'mouseenter' , 'mouseleave' , 'mousemove' , 'mouseout' , 'mouseover' , 'mouseup' , 'resize' , 'scroll' , 'select' , 'wheel' , 'fullscreenchange' , 'contextmenu' , 'touchstart' , 'touchmove' , 'touchend' ] ;
5879
+ var domEvents = [ 'beforeinput' , 'blur' , 'click' , 'compositionend' , 'compositionstart' , 'compositionupdate' , 'dblclick' , 'focus' , 'focusin' , 'focusout' , 'input' , 'keydown' , 'keypress' , 'keyup' , 'mousedown' , 'mouseenter' , 'mouseleave' , 'mousemove' , 'mouseout' , 'mouseover' , 'mouseup' , 'resize' , 'scroll' , 'select' , 'wheel' , 'mousewheel' , 'fullscreenchange' , 'contextmenu' , 'touchstart' , 'touchmove' , 'touchend' ] ;
5880
+ var passiveEvents = [ 'wheel' , 'mousewheel' , 'touchstart' , 'touchmove' ] ;
5855
5881
var selfProcessorEvents = [ 'silentLoad' , 'fullscreen' ] ;
5856
5882
var kernelMethods = [ 'play' , 'pause' , 'seek' ] ;
5857
5883
var dispatcherMethods = [ 'load' ] ;
@@ -8825,7 +8851,7 @@ var Plugin = (_dec$3 = autobindClass(), _dec$3(_class$3 = function (_VideoWrappe
8825
8851
var _this = _possibleConstructorReturn ( this , ( Plugin . __proto__ || _Object$getPrototypeOf ( Plugin ) ) . call ( this ) ) ;
8826
8852
8827
8853
_this . destroyed = false ;
8828
- _this . VERSION = '0.5.3 ' ;
8854
+ _this . VERSION = '0.5.4 ' ;
8829
8855
_this . __operable = true ;
8830
8856
_this . __level = 0 ;
8831
8857
@@ -9453,8 +9479,8 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9453
9479
* referrence of video's dom element
9454
9480
*/
9455
9481
this . installVideo ( videoElement ) ;
9456
- domEvents . forEach ( function ( key ) {
9457
- var cfn = function cfn ( ) {
9482
+ this . _addDomEvents ( this . container , this . containerDomEventHandlerList , function ( key ) {
9483
+ return function ( ) {
9458
9484
var _dispatcher$bus ;
9459
9485
9460
9486
for ( var _len2 = arguments . length , args = Array ( _len2 ) , _key2 = 0 ; _key2 < _len2 ; _key2 ++ ) {
@@ -9463,9 +9489,9 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9463
9489
9464
9490
return ( _dispatcher$bus = _this . __dispatcher . bus ) . triggerSync . apply ( _dispatcher$bus , [ 'c_' + key ] . concat ( _toConsumableArray ( args ) ) ) ;
9465
9491
} ;
9466
- _this . containerDomEventHandlerList . push ( cfn ) ;
9467
- addEvent ( _this . container , key , cfn ) ;
9468
- var wfn = function wfn ( ) {
9492
+ } ) ;
9493
+ this . _addDomEvents ( this . wrapper , this . wrapperDomEventHandlerList , function ( key ) {
9494
+ return function ( ) {
9469
9495
var _dispatcher$bus2 ;
9470
9496
9471
9497
for ( var _len3 = arguments . length , args = Array ( _len3 ) , _key3 = 0 ; _key3 < _len3 ; _key3 ++ ) {
@@ -9474,8 +9500,6 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9474
9500
9475
9501
return ( _dispatcher$bus2 = _this . __dispatcher . bus ) . triggerSync . apply ( _dispatcher$bus2 , [ 'w_' + key ] . concat ( _toConsumableArray ( args ) ) ) ;
9476
9502
} ;
9477
- _this . wrapperDomEventHandlerList . push ( wfn ) ;
9478
- addEvent ( _this . wrapper , key , wfn ) ;
9479
9503
} ) ;
9480
9504
this . _fullscreenMonitor ( ) ;
9481
9505
index . on ( 'fullscreenchange' , this . _fullscreenMonitor ) ;
@@ -9544,10 +9568,8 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9544
9568
_this2 . videoEventHandlerList . push ( fn ) ;
9545
9569
addEvent ( videoElement , key , fn ) ;
9546
9570
} ) ;
9547
- domEvents . forEach ( function ( key ) {
9548
- var fn = _this2 . _getEventHandler ( key , { penetrate : true } ) ;
9549
- _this2 . videoDomEventHandlerList . push ( fn ) ;
9550
- addEvent ( videoElement , key , fn ) ;
9571
+ this . _addDomEvents ( videoElement , this . videoDomEventHandlerList , function ( key ) {
9572
+ return _this2 . _getEventHandler ( key , { penetrate : true } ) ;
9551
9573
} ) ;
9552
9574
this . videoElement = videoElement ;
9553
9575
return videoElement ;
@@ -9571,6 +9593,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9571
9593
delete this . videoElement ;
9572
9594
return videoElement ;
9573
9595
}
9596
+
9574
9597
/**
9575
9598
* each plugin has its own dom node, this function will create one or them.
9576
9599
* we support multiple kind of el
@@ -9626,10 +9649,8 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9626
9649
// auto forward the event if this plugin can be penetrate
9627
9650
if ( penetrate ) {
9628
9651
this . __domEventHandlerList [ id ] = this . __domEventHandlerList [ id ] || [ ] ;
9629
- domEvents . forEach ( function ( key ) {
9630
- var fn = _this4 . _getEventHandler ( key , { penetrate : penetrate } ) ;
9631
- addEvent ( node , key , fn ) ;
9632
- _this4 . __domEventHandlerList [ id ] . push ( fn ) ;
9652
+ this . _addDomEvents ( node , this . __domEventHandlerList [ id ] , function ( key ) {
9653
+ return _this4 . _getEventHandler ( key , { penetrate : penetrate } ) ;
9633
9654
} ) ;
9634
9655
this . __videoExtendedNodes . push ( node ) ;
9635
9656
}
@@ -9640,6 +9661,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9640
9661
outerElement . insertBefore ( node , originElement . nextSibling ) ;
9641
9662
return node ;
9642
9663
}
9664
+
9643
9665
/**
9644
9666
* remove plugin's dom
9645
9667
*/
@@ -9663,6 +9685,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9663
9685
}
9664
9686
delete this . plugins [ id ] ;
9665
9687
}
9688
+
9666
9689
/**
9667
9690
* Set zIndex for a plugins list
9668
9691
*/
@@ -9677,6 +9700,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9677
9700
return setStyle ( key . match ( / ^ ( v i d e o E l e m e n t | c o n t a i n e r ) $ / ) ? _this6 [ key ] : _this6 . plugins [ key ] , 'z-index' , ++ index$$1 ) ;
9678
9701
} ) ;
9679
9702
}
9703
+
9680
9704
/**
9681
9705
* set attribute on our dom
9682
9706
* @param {string } attr attribute's name
@@ -9736,6 +9760,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9736
9760
value : function focus ( ) {
9737
9761
this . videoElement . focus ( ) ;
9738
9762
}
9763
+
9739
9764
/**
9740
9765
* function called when we distory
9741
9766
*/
@@ -9755,6 +9780,25 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9755
9780
delete this . wrapper ;
9756
9781
delete this . plugins ;
9757
9782
}
9783
+
9784
+ /**
9785
+ * bind all dom events on one element
9786
+ * we will use passive mode if it support
9787
+ */
9788
+
9789
+ } , {
9790
+ key : '_addDomEvents' ,
9791
+ value : function _addDomEvents ( element , handlerList , handlerGenerate ) {
9792
+ domEvents . forEach ( function ( key ) {
9793
+ var fn = handlerGenerate ( key ) ;
9794
+ handlerList . push ( fn ) ;
9795
+ if ( passiveEvents . indexOf ( key ) > - 1 ) {
9796
+ addEvent ( element , key , fn , false , { passive : true } ) ;
9797
+ return ;
9798
+ }
9799
+ addEvent ( element , key , fn ) ;
9800
+ } ) ;
9801
+ }
9758
9802
} , {
9759
9803
key : '_autoFocusToVideo' ,
9760
9804
value : function _autoFocusToVideo ( element ) {
@@ -9787,6 +9831,7 @@ var Dom = (_dec$6 = waituntil('__dispatcher.videoConfigReady'), _dec2$4 = before
9787
9831
this . __dispatcher . bus . triggerSync ( 'fullscreenchange' , evt ) ;
9788
9832
}
9789
9833
}
9834
+
9790
9835
/**
9791
9836
* get the event handler for dom to bind
9792
9837
*/
@@ -10745,7 +10790,7 @@ var Chimee = (_dec = autobindClass(), _dec(_class = (_class2 = (_temp = _class3
10745
10790
} ) , _descriptor2 = _applyDecoratedDescriptor ( _class2 . prototype , 'version' , [ frozen ] , {
10746
10791
enumerable : true ,
10747
10792
initializer : function initializer ( ) {
10748
- return '0.5.3 ' ;
10793
+ return '0.5.4 ' ;
10749
10794
}
10750
10795
} ) , _descriptor3 = _applyDecoratedDescriptor ( _class2 . prototype , 'config' , [ frozen ] , {
10751
10796
enumerable : true ,
0 commit comments