1313 * Licensed under
1414 * MIT License http://www.opensource.org/licenses/mit-license
1515 *
16- * Date: 2018-02-20T13:33:22.652Z
16+ * Date: 2018-03-16T10:54:38.560Z
1717 *
1818 *
1919 */ ( function webpackUniversalModuleDefinition ( root , factory ) {
@@ -649,7 +649,12 @@ var ContextMenuOperations = function () {
649649 return ;
650650 }
651651
652- menuData . manager . operations . update . call ( $trigger , e , menuData ) ;
652+ var hasVisibleItems = menuData . manager . operations . update . call ( $trigger , e , menuData ) ;
653+
654+ if ( hasVisibleItems === false ) {
655+ menuData . manager . handler . $currentTrigger = null ;
656+ return ;
657+ }
653658
654659 menuData . position . call ( $trigger , e , menuData , x , y ) ;
655660
@@ -1009,6 +1014,8 @@ var ContextMenuOperations = function () {
10091014 rootMenuData . manager . operations . resize ( e , currentMenuData . $menu ) ;
10101015 }
10111016
1017+ var hasVisibleItems = false ;
1018+
10121019 currentMenuData . $menu . children ( ) . each ( function ( index , element ) {
10131020 var $item = $ ( element ) ;
10141021 var key = $item . data ( 'contextMenuKey' ) ;
@@ -1024,6 +1031,11 @@ var ContextMenuOperations = function () {
10241031 } else {
10251032 visible = true ;
10261033 }
1034+
1035+ if ( visible ) {
1036+ hasVisibleItems = true ;
1037+ }
1038+
10271039 $item [ visible ? 'show' : 'hide' ] ( ) ;
10281040
10291041 $item [ disabled ? 'addClass' : 'removeClass' ] ( rootMenuData . classNames . disabled ) ;
@@ -1055,9 +1067,14 @@ var ContextMenuOperations = function () {
10551067 }
10561068
10571069 if ( item . $menu ) {
1058- rootMenuData . manager . operations . update . call ( $trigger , e , item , rootMenuData ) ;
1070+ var subMenuHasVisibleItems = rootMenuData . manager . operations . update . call ( $trigger , e , item , rootMenuData ) ;
1071+ if ( subMenuHasVisibleItems ) {
1072+ hasVisibleItems = true ;
1073+ }
10591074 }
10601075 } ) ;
1076+
1077+ return hasVisibleItems ;
10611078 }
10621079 } , {
10631080 key : 'layer' ,
@@ -1592,25 +1609,8 @@ var ContextMenuEventHandler = function () {
15921609
15931610 e . data . manager . operations . create ( e , e . data ) ;
15941611 }
1595- var showMenu = false ;
1596-
1597- Object . keys ( e . data . items ) . forEach ( function ( key ) {
1598- var visible = void 0 ;
1599- if ( typeof e . data . items [ key ] . visible === 'function' ) {
1600- visible = e . data . items [ key ] . visible . call ( $this , e , key , e . data , e . data ) ;
1601- } else if ( typeof e . data . items [ key ] . visible !== 'undefined' ) {
1602- visible = e . data . items [ key ] . visible === true ;
1603- } else {
1604- visible = true ;
1605- }
1606- if ( visible ) {
1607- showMenu = true ;
1608- }
1609- } ) ;
16101612
1611- if ( showMenu ) {
1612- e . data . manager . operations . show . call ( $this , e , e . data , e . pageX , e . pageY ) ;
1613- }
1613+ e . data . manager . operations . show . call ( $this , e , e . data , e . pageX , e . pageY ) ;
16141614 }
16151615 }
16161616 } , {
@@ -1626,7 +1626,10 @@ var ContextMenuEventHandler = function () {
16261626 var $this = $ ( this ) ;
16271627
16281628 if ( e . data . manager . handler . $currentTrigger && e . data . manager . handler . $currentTrigger . length && ! e . data . manager . handler . $currentTrigger . is ( $this ) ) {
1629- e . data . manager . handler . $currentTrigger . data ( 'contextMenu' ) . $menu . trigger ( $ . Event ( 'contextmenu' , { data : e . data , originalEvent : e } ) ) ;
1629+ e . data . manager . handler . $currentTrigger . data ( 'contextMenu' ) . $menu . trigger ( $ . Event ( 'contextmenu' , {
1630+ data : e . data ,
1631+ originalEvent : e
1632+ } ) ) ;
16301633 }
16311634
16321635 if ( e . button === 2 ) {
@@ -1941,7 +1944,10 @@ var ContextMenuEventHandler = function () {
19411944 default :
19421945 var k = String . fromCharCode ( e . keyCode ) . toUpperCase ( ) ;
19431946 if ( rootMenuData . accesskeys && rootMenuData . accesskeys [ k ] ) {
1944- rootMenuData . accesskeys [ k ] . $node . trigger ( rootMenuData . accesskeys [ k ] . $menu ? 'contextmenu:focus' : 'mouseup' , { data : rootMenuData , originalEvent : e } ) ;
1947+ rootMenuData . accesskeys [ k ] . $node . trigger ( rootMenuData . accesskeys [ k ] . $menu ? 'contextmenu:focus' : 'mouseup' , {
1948+ data : rootMenuData ,
1949+ originalEvent : e
1950+ } ) ;
19451951 return ;
19461952 }
19471953 break ;
@@ -2082,7 +2088,10 @@ var ContextMenuEventHandler = function () {
20822088 }
20832089
20842090 var targetMenu = currentMenuData . $menu ? currentMenuData : rootMenuData ;
2085- targetMenu . $menu . children ( '.' + rootMenuData . classNames . hover ) . trigger ( 'contextmenu:blur' , { data : targetMenu , originalEvent : e } ) . children ( '.hover' ) . trigger ( 'contextmenu:blur' , { data : targetMenu , originalEvent : e } ) ;
2091+ targetMenu . $menu . children ( '.' + rootMenuData . classNames . hover ) . trigger ( 'contextmenu:blur' , {
2092+ data : targetMenu ,
2093+ originalEvent : e
2094+ } ) . children ( '.hover' ) . trigger ( 'contextmenu:blur' , { data : targetMenu , originalEvent : e } ) ;
20862095
20872096 if ( $this . hasClass ( rootMenuData . classNames . disabled ) || $this . hasClass ( rootMenuData . classNames . notSelectable ) ) {
20882097 currentMenuData . $selected = null ;
0 commit comments