PageSourceSearch

https://sechistorical.org/wp-content/cache/min/1/wp-content/plugin…/js/smartmenus-keyboard.js?ver=1790796924

js sechistorical.org collected 2026-10-02 04:35:43 UTC 5,692 bytes, 25 lines download raw bytes

1(function(factory){if(typeof define==='function'&&define.amd){define(['jquery','smartmenus'],factory)}else if(typeof module==='object'&&typeof module.exports==='object'){module.exports=factory(require('jquery'))}else{factory(jQuery)}}(function($){function getFirstItemLink($ul){return $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(0)}
2function getLastItemLink($ul){return $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(-1)}
3function getNextItemLink($li,noLoop){var $a=$li.nextAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(0);return noLoop||$a.length?$a:getFirstItemLink($li.parent())}
4function getPreviousItemLink($li,noLoop){var $a=$li.prevAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(/^1\.8\./.test($.fn.jquery)?0:-1);return noLoop||$a.length?$a:getLastItemLink($li.parent())}
5$.fn.focusSM=function(){if(this.length&&this[0].focus){this[0].focus()}
6return this};$.extend($.SmartMenus.Keyboard={},{docKeydown:function(e){var keyCode=e.keyCode;if(!/^(37|38|39|40)$/.test(keyCode)){return}
7var $root=$(this),obj=$root.data('smartmenus'),$target=$(e.target);if(!obj||!$target.is('a')||!obj.handleItemEvents($target)){return}
8var $li=$target.closest('li'),$ul=$li.parent(),level=$ul.dataSM('level');if($root.hasClass('sm-rtl')){if(keyCode==37){keyCode=39}else if(keyCode==39){keyCode=37}}
9switch(keyCode){case 37:if(obj.isCollapsible()){break}
10if(level>2||level==2&&$root.hasClass('sm-vertical')){obj.activatedItems[level-2].focusSM()}else if(!$root.hasClass('sm-vertical')){getPreviousItemLink((obj.activatedItems[0]||$target).closest('li')).focusSM()}
11break;case 38:if(obj.isCollapsible()){var $firstItem;if(level>1&&($firstItem=getFirstItemLink($ul)).length&&$target[0]==$firstItem[0]){obj.activatedItems[level-2].focusSM()}else{getPreviousItemLink($li).focusSM()}}else{if(level==1&&!$root.hasClass('sm-vertical')&&obj.opts.bottomToTopSubMenus){if(!obj.activatedItems[0]&&$target.dataSM('sub')){if(obj.opts.showOnClick){obj.clickActivated=!0}
12obj.itemActivate($target);if($target.dataSM('sub').is(':visible')){obj.focusActivated=!0}}
13if(obj.activatedItems[0]&&obj.activatedItems[0].dataSM('sub')&&obj.activatedItems[0].dataSM('sub').is(':visible')&&!obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')){getLastItemLink(obj.activatedItems[0].dataSM('sub')).focusSM()}}else if(level>1||$root.hasClass('sm-vertical')){getPreviousItemLink($li).focusSM()}}
14break;case 39:if(obj.isCollapsible()){break}
15if(level==1&&$root.hasClass('sm-vertical')){if(!obj.activatedItems[0]&&$target.dataSM('sub')){if(obj.opts.showOnClick){obj.clickActivated=!0}
16obj.itemActivate($target);if($target.dataSM('sub').is(':visible')){obj.focusActivated=!0}}
17if(obj.activatedItems[0]&&obj.activatedItems[0].dataSM('sub')&&obj.activatedItems[0].dataSM('sub').is(':visible')&&!obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')){getFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM()}}else if((level==1||obj.activatedItems[level-1]&&(!obj.activatedItems[level-1].dataSM('sub')||!obj.activatedItems[level-1].dataSM('sub').is(':visible')||obj.activatedItems[level-1].dataSM('sub').hasClass('mega-menu')))&&!$root.hasClass('sm-vertical')){getNextItemLink((obj.activatedItems[0]||$target).closest('li')).focusSM()}else if(obj.activatedItems[level-1]&&obj.activatedItems[level-1].dataSM('sub')&&obj.activatedItems[level-1].dataSM('sub').is(':visible')&&!obj.activatedItems[level-1].dataSM('sub').hasClass('mega-menu')){getFirstItemLink(obj.activatedItems[level-1].dataSM('sub')).focusSM()}
18break;case 40:if(obj.isCollapsible()){var $firstSubItem,$lastItem;if(obj.activatedItems[level-1]&&obj.activatedItems[level-1].dataSM('sub')&&obj.activatedItems[level-1].dataSM('sub').is(':visible')&&!obj.activatedItems[level-1].dataSM('sub').hasClass('mega-menu')&&($firstSubItem=getFirstItemLink(obj.activatedItems[level-1].dataSM('sub'))).length){$firstSubItem.focusSM()}else if(level>1&&($lastItem=getLastItemLink($ul)).length&&$target[0]==$lastItem[0]){var $parentItem=obj.activatedItems[level-2].closest('li'),$nextParentItem=null;while($parentItem.is('li')&&!($nextParentItem=getNextItemLink($parentItem,!0)).length){$parentItem=$parentItem.parent().parent()}
19if($nextParentItem.length){$nextParentItem.focusSM()}else{getFirstItemLink($root).focusSM()}}else{getNextItemLink($li).focusSM()}}else{if(level==1&&!$root.hasClass('sm-vertical')&&!obj.opts.bottomToTopSubMenus){if(!obj.activatedItems[0]&&$target.dataSM('sub')){
19if(obj.opts.showOnClick){obj.clickActivated=!0}
20obj.itemActivate($target);if($target.dataSM('sub').is(':visible')){obj.focusActivated=!0}}
21if(obj.activatedItems[0]&&obj.activatedItems[0].dataSM('sub')&&obj.activatedItems[0].dataSM('sub').is(':visible')&&!obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')){getFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM()}}else if(level>1||$root.hasClass('sm-vertical')){getNextItemLink($li).focusSM()}}
22break}
23e.stopPropagation();e.preventDefault()}});$(document).on('keydown.smartmenus','ul.pp-advanced-menu, ul.pp-advanced-menu:not([data-sm-skip])',$.SmartMenus.Keyboard.docKeydown);$.extend($.SmartMenus.prototype,{keyboardSetHotkey:function(keyCode,modifiers){var self=this;$(document).on('keydown.smartmenus'+this.rootId,function(e){if(keyCode==e.keyCode){var procede=!0;if(modifiers){if(typeof modifiers=='string'){modifiers=[modifiers]}
24$.each(['ctrlKey','shiftKey','altKey','metaKey'],function(index,value){if($.inArray(value,modifiers)>=0&&!e[value]||$.inArray(value,modifiers)<0&&e[value]){procede=!1;return!1}})}
25if(procede){getFirstItemLink(self.$root).focusSM();e.stopPropagation();e.preventDefault()}}})}});return $}))

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.