{"version":3,"file":"../../desktop/menu.js","sources":["desktop/menu.js"],"sourcesContent":["var PeopleMediaMenu = (function ($jq) {\r\n \"use strict\";\r\n var pub = [];\r\n var delayTimer;\r\n var currentTab;\r\n var reset = function () {\r\n try {\r\n if (delayTimer != null) {\r\n clearTimeout(delayTimer);\r\n }\r\n delayTimer = null;\r\n var $container = $jq(\"#menu-container, #menu-right-section\");\r\n $container.find(\".sub-menu-item\").hide();\r\n $container.find(\".menu-item\").find(\"> a\").removeClass(\"active\");\r\n if (currentTab && currentTab.length > 0) {\r\n currentTab.addClass(\"active\");\r\n }\r\n } catch (ex) {\r\n PeopleMedia.Logger.LogExceptionWithDetail(ex, { method: \"PeopleMediaMenu.reset\", currentTab: currentTab });\r\n }\r\n };\r\n var fadeOutMenu = function (parentMenu, immediate) {\r\n try {\r\n if (!immediate || typeof (immediate) !== \"boolean\") {\r\n immediate = false;\r\n }\r\n var name = parentMenu.prop('id');\r\n var subTab = parentMenu.find(\".sub-menu-item\").first();\r\n if (subTab.is(\":visible\")) {\r\n if (delayTimer != null) {\r\n clearTimeout(delayTimer);\r\n }\r\n delayTimer = setTimeout(function () {\r\n subTab.fadeOut(\"fast\");\r\n parentMenu.find(\"> a\").removeClass(\"active\");\r\n if (currentTab && currentTab.length > 0) {\r\n currentTab.addClass(\"active\");\r\n }\r\n subTab.attr(\"aria-expanded\", \"false\");\r\n }, immediate ? 0 : 1000);\r\n } else {\r\n parentMenu.find(\"> a\").removeClass(\"active\");\r\n if (currentTab && currentTab.length > 0) {\r\n currentTab.addClass(\"active\");\r\n }\r\n }\r\n } catch (ex) {\r\n PeopleMedia.Logger.LogExceptionWithDetail(ex, { method: \"PeopleMediaMenu.fadeOutMenu\", currentTab: currentTab });\r\n }\r\n };\r\n var showMenu = function (parentMenu) {\r\n try {\r\n var name = parentMenu.prop('id');\r\n var subTab = parentMenu.find(\".sub-menu-item\").first();\r\n if (subTab.is(\":visible\")) {\r\n if (delayTimer != null) {\r\n clearTimeout(delayTimer);\r\n }\r\n delayTimer = null;\r\n return;\r\n }\r\n reset();\r\n subTab.fadeIn(\"fast\");\r\n parentMenu.find(\" > a\").addClass(\"active\");\r\n subTab.attr(\"aria-expanded\", \"true\");\r\n } catch (ex) {\r\n PeopleMedia.Logger.LogExceptionWithDetail(ex, { method: \"PeopleMediaMenu.showMenu\", currentTab: currentTab });\r\n }\r\n };\r\n var showSettingsMenu = function() {\r\n showMenu($jq(\"#menu-settings\"));\r\n };\r\n var keyboardNavigationHandler = function(e) {\r\n if (e && typeof (e) === \"object\") {\r\n var parentMenu = $jq(this).closest(\".menu-item\");\r\n\r\n // left arrow\r\n if (e.which === 37) {\r\n e.preventDefault();\r\n var navItems = $jq(\".keyboard-navigable-menu-item\");\r\n var index = navItems.index(e.currentTarget);\r\n\r\n if (index > 0) {\r\n navItems[index - 1].focus();\r\n fadeOutMenu(parentMenu, true);\r\n }\r\n\r\n }\r\n // right arrow\r\n if (e.which === 39) {\r\n e.preventDefault();\r\n var navItems = $jq(\".keyboard-navigable-menu-item\");\r\n var index = navItems.index(e.currentTarget);\r\n\r\n if (index < navItems.length - 1) {\r\n navItems[index + 1].focus();\r\n fadeOutMenu(parentMenu, true);\r\n }\r\n }\r\n // up arrow\r\n if (e.which === 38) {\r\n e.preventDefault();\r\n\r\n // if not on main nav icon, then allow focusing on previous sibling\r\n if (e.target !== e.currentTarget) {\r\n var prev = $jq(e.target).prev(\"a\");\r\n if (prev.length) {\r\n prev.focus();\r\n } else {\r\n parentMenu.focus();\r\n fadeOutMenu(parentMenu, true);\r\n }\r\n }\r\n }\r\n // down arrow\r\n if (e.which === 40) {\r\n e.preventDefault();\r\n\r\n if (e.target === e.currentTarget) {\r\n showMenu(parentMenu);\r\n $jq(e.currentTarget).find(\"a\").first().focus();\r\n } else {\r\n $jq(e.target).next(\"a\").focus();\r\n }\r\n }\r\n }\r\n };\r\n pub.init = function () {\r\n try {\r\n var $container = $jq(\"#menu-container, #menu-right-section\");\r\n currentTab = $container.find(\".active\").first();\r\n var subMenus = $container.find(\".sub-menu-item\").hide();\r\n var allTabs = $container.find(\".menu-item\")\r\n .on(\"mouseenter\", function (event) {\r\n var parentMenu = $jq(this).closest(\".menu-item\");\r\n showMenu(parentMenu);\r\n })\r\n .on(\"mouseleave\", function (event) {\r\n var parentMenu = $jq(this).closest(\".menu-item\");\r\n fadeOutMenu(parentMenu);\r\n })\r\n .on(\"focusout\", function (event) {\r\n // fade out sub-menu if keyboard navigation away from sub-menu happens\r\n if (!event.currentTarget.contains(event.relatedTarget)) {\r\n var parentMenu = $jq(this).closest(\".menu-item\");\r\n fadeOutMenu(parentMenu);\r\n }\r\n });\r\n\r\n // accessibility listeners\r\n $jq(\".headerV2\").on(\"keydown\", \".keyboard-navigable-menu-item\", keyboardNavigationHandler);\r\n $jq(\".headerV2 #menu-settings\").on(\"keypress\", { 'callback': showSettingsMenu }, PeopleMedia.AccessibilityHelper.checkForEnterOrSpaceKeypress);\r\n } catch (ex) {\r\n PeopleMedia.Logger.LogExceptionWithDetail(ex, { method: \"PeopleMediaMenu.init\", currentTab: currentTab });\r\n }\r\n };\r\n return pub;\r\n})(jQuery);\r\njQuery(function () {\r\n \"use strict\";\r\n PeopleMediaMenu.init(jQuery);\r\n});\r\n"],"names":["PeopleMediaMenu","$jq","fadeOutMenu","parentMenu","immediate","prop","subTab","find","first","is","delayTimer","clearTimeout","setTimeout","fadeOut","removeClass","currentTab","length","addClass","attr","ex","PeopleMedia","Logger","LogExceptionWithDetail","method","showMenu","$container","hide","fadeIn","showSettingsMenu","keyboardNavigationHandler","e","index","prev","this","closest","which","preventDefault","navItems","currentTarget","focus","target","next","pub","init","on","event","contains","relatedTarget","callback","AccessibilityHelper","checkForEnterOrSpaceKeypress","jQuery"],"mappings":"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"}