{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/src/constants/_KEYCODE.es6.js","webpack:///./js/src/modules/_MenuItem.es6.js","webpack:///./js/src/modules/_Menu.es6.js","webpack:///./js/src/primary-menu.es6.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","KEYCODE","TAB","RETURN","ESC","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","MenuItem","domNode","menuObj","this","menu","popupMenu","isMenubarItem","hasFocus","hasHover","_isPrintableCharacter","str","match","init","parentElement","querySelector","setAttribute","PopupMenu","addEventListener","handleKeydown","handleFocus","handleBlur","handleMouseover","handleMouseout","setExpanded","getBoundaries","getBoundingClientRect","getIsMenubarItem","getHover","setFocus","setHover","open","setTimeout","close","MenubarItem","tabIndex","setTabIndex","focusOnSelf","focus","focusOnPreviousSibling","setFocusToPreviousItem","focusOnNextSibling","setFocusToNextItem","event","flag","keyCode","setFocusToFirstItem","setFocusToLastItem","setFocusByFirstCharacter","stopPropagation","preventDefault","SubMenuItem","handleClick","clickEvent","currentTarget","MouseEvent","view","bubbles","cancelable","err","document","createEvent","initEvent","dispatchEvent","setFocusToController","Menu","menuItems","firstChars","firstItem","lastItem","isMenubar","_createMenuItem","menuElement","children","forEach","childElement","firstElementChild","tagName","menuItem","textContent","trim","substring","toLowerCase","numItems","state","setFocusToItem","newItem","currentItem","index","indexOf","char","currChar","start","_getIndexFirstChars","startIndex","MenuBar","msgPrefix","Element","TypeError","childElementCount","Error","elem","menuBarItem","nextElementSibling","openMenu","mbi","getAttribute","controllerObj","controller","commandParam","command","rect","style","display","position","top","height","zIndex","parentNode","left","width","force","controllerHasHover","mi","callback","menuNode","readyState","documentElement","doScroll"],"mappings":"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","file":"primary-menu.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([75,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","const KEYCODE = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n\nexport default KEYCODE;\n","import KEYCODE from '../constants/_KEYCODE.es6';\nimport { PopupMenu } from './_Menu.es6';\n\n/**\n * @abstract\n */\nclass MenuItem {\n constructor(domNode, menuObj) {\n this.menu = menuObj;\n this.domNode = domNode;\n this.popupMenu = false;\n this.isMenubarItem = false;\n this.hasFocus = false;\n this.hasHover = false;\n }\n\n _isPrintableCharacter(str) {\n return str.length === 1 && str.match(/\\S/);\n }\n\n init() {\n const popupMenu = this.domNode.parentElement.querySelector('ul');\n if (popupMenu) {\n this.domNode.setAttribute('aria-haspopup', 'true');\n this.popupMenu = new PopupMenu(popupMenu, this);\n this.popupMenu.init();\n }\n\n this.domNode.addEventListener('keydown', this.handleKeydown.bind(this));\n this.domNode.addEventListener('focus', this.handleFocus.bind(this));\n this.domNode.addEventListener('blur', this.handleBlur.bind(this));\n this.domNode.addEventListener('mouseover', this.handleMouseover.bind(this));\n this.domNode.addEventListener('mouseout', this.handleMouseout.bind(this));\n }\n\n setExpanded(value) {\n if (value) {\n this.domNode.setAttribute('aria-expanded', 'true');\n } else {\n this.domNode.setAttribute('aria-expanded', 'false');\n }\n }\n\n getBoundaries() {\n return this.domNode.getBoundingClientRect();\n }\n\n getIsMenubarItem() {\n return this.isMenubarItem;\n }\n\n getHover() {\n return this.hasHover;\n }\n\n handleFocus() {\n this.menu.setFocus(true);\n }\n handleBlur() {\n this.menu.setFocus(false);\n }\n\n handleMouseover() {\n this.hasHover = true;\n if (this.popupMenu) {\n this.popupMenu.setHover(true);\n this.popupMenu.open();\n }\n }\n handleMouseout() {\n this.hasHover = false;\n if (this.popupMenu) {\n this.popupMenu.setHover(false);\n setTimeout(this.popupMenu.close.bind(this.popupMenu, false), 300);\n }\n }\n}\n\nexport class MenubarItem extends MenuItem {\n constructor(domNode, menuObj) {\n super(domNode, menuObj);\n this.isMenubarItem = true;\n }\n\n init() {\n super.init();\n this.domNode.tabIndex = -1;\n }\n\n setTabIndex(value) {\n this.domNode.tabIndex = value;\n }\n\n focusOnSelf() {\n this.domNode.focus();\n }\n\n focusOnPreviousSibling() {\n this.menu.setFocusToPreviousItem(this);\n }\n\n focusOnNextSibling() {\n this.menu.setFocusToNextItem(this);\n }\n\n handleKeydown(event) {\n const { key } = event;\n let flag = false;\n switch (event.keyCode) {\n case KEYCODE.SPACE:\n case KEYCODE.RETURN:\n case KEYCODE.DOWN:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToFirstItem();\n flag = true;\n }\n break;\n case KEYCODE.LEFT:\n this.menu.setFocusToPreviousItem(this);\n flag = true;\n break;\n case KEYCODE.RIGHT:\n this.menu.setFocusToNextItem(this);\n flag = true;\n break;\n case KEYCODE.UP:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToLastItem();\n flag = true;\n }\n break;\n case KEYCODE.HOME:\n case KEYCODE.PAGEUP:\n this.menu.setFocusToFirstItem();\n flag = true;\n break;\n case KEYCODE.END:\n case KEYCODE.PAGEDOWN:\n this.menu.setFocusToLastItem();\n flag = true;\n break;\n case KEYCODE.TAB:\n if (this.popupMenu) {\n this.popupMenu.close(true);\n }\n break;\n case KEYCODE.ESC:\n if (this.popupMenu) {\n this.popupMenu.close(true);\n }\n break;\n default:\n if (this._isPrintableCharacter(key)) {\n this.menu.setFocusByFirstCharacter(this, key);\n flag = true;\n }\n break;\n }\n if (flag) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\n\nexport class SubMenuItem extends MenuItem {\n init() {\n super.init();\n this.domNode.addEventListener('click', this.handleClick.bind(this));\n }\n\n handleKeydown(event) {\n const { currentTarget, key } = event;\n let flag = false;\n let clickEvent;\n\n switch (event.keyCode) {\n case KEYCODE.SPACE:\n case KEYCODE.RETURN:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToFirstItem();\n } else {\n // Create simulated mouse event to mimic the behavior of ATs\n // and let the event handler handleClick do the housekeeping.\n try {\n clickEvent = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n } catch (err) {\n if (document.createEvent) {\n // DOM Level 3 for IE 9+\n clickEvent = document.createEvent('MouseEvents');\n clickEvent.initEvent('click', true, true);\n }\n }\n currentTarget.dispatchEvent(clickEvent);\n }\n\n flag = true;\n break;\n\n case KEYCODE.UP:\n this.menu.setFocusToPreviousItem(this);\n flag = true;\n break;\n\n case KEYCODE.DOWN:\n this.menu.setFocusToNextItem(this);\n flag = true;\n break;\n\n case KEYCODE.LEFT:\n this.menu.setFocusToController('previous', true);\n this.menu.close(true);\n flag = true;\n break;\n\n case KEYCODE.RIGHT:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToFirstItem();\n } else {\n this.menu.setFocusToController('next', true);\n this.menu.close(true);\n }\n flag = true;\n break;\n\n case KEYCODE.HOME:\n case KEYCODE.PAGEUP:\n this.menu.setFocusToFirstItem();\n flag = true;\n break;\n\n case KEYCODE.END:\n case KEYCODE.PAGEDOWN:\n this.menu.setFocusToLastItem();\n flag = true;\n break;\n\n case KEYCODE.ESC:\n this.menu.setFocusToController();\n this.menu.close(true);\n flag = true;\n break;\n\n case KEYCODE.TAB:\n this.menu.setFocusToController();\n break;\n\n default:\n if (this._isPrintableCharacter(key)) {\n this.menu.setFocusByFirstCharacter(this, key);\n flag = true;\n }\n break;\n }\n\n if (flag) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleClick() {\n this.menu.setFocusToController();\n this.menu.close(true);\n }\n\n handleBlur() {\n super.handleBlur();\n setTimeout(this.menu.close.bind(this.menu, false), 300);\n }\n\n handleMouseover() {\n this.menu.setHover(true);\n this.menu.open();\n super.handleMouseover();\n }\n\n handleMouseout() {\n super.handleMouseout();\n this.menu.setHover(false);\n setTimeout(this.menu.close.bind(this.menu, false), 300);\n }\n}\n","import { MenubarItem, SubMenuItem } from './_MenuItem.es6';\n\nclass Menu {\n constructor(domNode) {\n this.domNode = domNode; // DOM node containing the menu.\n this.menuItems = []; // Set of items in the menu.\n this.firstChars = [];\n this.firstItem = null; // First menu item.\n this.lastItem = null; // Last menu item.\n this.hasFocus = false;\n this.hasHover = false;\n this.isMenubar = false;\n }\n\n // Allow an empty function here because this is an abstract class.\n // eslint-disable-next-line no-empty-function\n _createMenuItem(menuElement) {}\n\n init() {\n // Set up any and all submenu items.\n if (this.domNode.children.length > 0) {\n const nodesArray = [].slice.call(this.domNode.children);\n nodesArray.forEach(childElement => {\n const menuElement = childElement.firstElementChild;\n if (menuElement && menuElement.tagName === 'A') {\n const menuItem = this._createMenuItem(menuElement);\n menuItem.init();\n this.menuItems.push(menuItem);\n const textContent = menuElement.textContent.trim();\n this.firstChars.push(textContent.substring(0, 1).toLowerCase());\n }\n });\n }\n\n // Store the first and last items in the menu.\n const numItems = this.menuItems.length;\n if (numItems > 0) {\n this.firstItem = this.menuItems[0];\n this.lastItem = this.menuItems[numItems - 1];\n }\n }\n\n setFocus(state) {\n this.hasFocus = state;\n }\n\n setHover(state) {\n this.hasHover = state;\n }\n\n // Allow an empty function here because this is an abstract class.\n // eslint-disable-next-line no-empty-function\n setFocusToItem(newItem) {}\n\n setFocusToFirstItem() {\n this.setFocusToItem(this.firstItem);\n }\n\n setFocusToLastItem() {\n this.setFocusToItem(this.lastItem);\n }\n\n setFocusToPreviousItem(currentItem) {\n let newItem = false;\n if (currentItem === this.firstItem) {\n newItem = this.lastItem;\n } else {\n const index = this.menuItems.indexOf(currentItem);\n newItem = this.menuItems[index - 1];\n }\n if (newItem) {\n this.setFocusToItem(newItem);\n }\n }\n\n setFocusToNextItem(currentItem) {\n let newItem = false;\n if (currentItem === this.lastItem) {\n newItem = this.firstItem;\n } else {\n const index = this.menuItems.indexOf(currentItem);\n newItem = this.menuItems[index + 1];\n }\n if (newItem) {\n this.setFocusToItem(newItem);\n }\n }\n setFocusByFirstCharacter(currentItem, char) {\n const currChar = char.toLowerCase();\n let start = this.menuItems.indexOf(currentItem) + 1;\n if (start === this.menuItems.length) {\n start = 0;\n }\n let index = this._getIndexFirstChars(start, currChar);\n if (index === -1) {\n index = this._getIndexFirstChars(0, currChar);\n }\n if (index > -1) {\n this.setFocusToItem(this.menuItems[index]);\n }\n }\n\n _getIndexFirstChars(startIndex, char) {\n for (let i = startIndex; 1 < this.firstChars.length; i++) {\n if (char === this.firstChars[i]) {\n return i;\n }\n }\n return -1;\n }\n}\n\nexport class MenuBar extends Menu {\n constructor(domNode) {\n // Validate that the domNode is a menu that can be made into a MenuBar.\n const msgPrefix = 'Menubar constructor argument menuBarNode';\n if (!(domNode instanceof Element)) {\n throw new TypeError(`${msgPrefix} is not a Dom Element`);\n }\n if (domNode.childElementCount === 0) {\n throw new Error(`${msgPrefix} does not have element children`);\n }\n let elem = domNode.firstElementChild;\n while (elem) {\n const menuBarItem = elem.firstElementChild;\n if (elem && menuBarItem && menuBarItem.tagName !== 'A') {\n throw new Error(`${msgPrefix} has child elements are not A elements`);\n }\n elem = elem.nextElementSibling;\n }\n super(domNode);\n this.isMenubar = true;\n }\n\n _createMenuItem(menuElement) {\n return new MenubarItem(menuElement, this);\n }\n\n init() {\n super.init();\n this.domNode.setAttribute('role', 'menubar');\n this.firstItem.setTabIndex(0);\n }\n\n // Set focus to a specific MenubarItem in the menu.\n setFocusToItem(newItem) {\n let openMenu = false;\n // Close any existing menus.\n this.menuItems.forEach(mbi => {\n if (mbi.domNode.tabIndex === 0) {\n openMenu = mbi.domNode.getAttribute('aria-expanded') === 'true';\n }\n\n mbi.domNode.tabIndex = -1;\n if (mbi.popupMenu) {\n mbi.popupMenu.close();\n }\n });\n\n newItem.domNode.focus();\n newItem.domNode.tabIndex = 0;\n\n if (openMenu && newItem.popupMenu) {\n newItem.popupMenu.open();\n }\n // Focus on the new menu, and open it if the previous menu was open.\n }\n}\n\nexport class PopupMenu extends Menu {\n constructor(domNode, controllerObj) {\n super(domNode);\n this.controller = controllerObj;\n }\n\n _createMenuItem(menuElement) {\n return new SubMenuItem(menuElement, this);\n }\n\n init() {\n super.init();\n this.domNode.setAttribute('role', 'menu');\n // Add event handlers.\n this.domNode.addEventListener('mouseover', this.handleMouseover.bind(this));\n this.domNode.addEventListener('mouseout', this.handleMouseout.bind(this));\n }\n\n setFocusToItem(newItem) {\n newItem.domNode.focus();\n }\n\n setFocusToController(commandParam) {\n let command = commandParam;\n if (typeof command !== 'string') {\n command = '';\n }\n if (command === '') {\n if (this.controller) {\n this.controller.focusOnSelf();\n }\n return;\n }\n if (command === 'previous') {\n this.controller.focusOnPreviousSibling();\n } else if (command === 'next') {\n this.controller.focusOnNextSibling();\n }\n }\n\n open() {\n // Get position and bounding rectangle of controller object's DOM node\n const rect = this.controller.getBoundaries();\n // Set CSS properties\n if (!this.controller.getIsMenubarItem()) {\n this.domNode.parentNode.style.position = 'relative';\n this.domNode.style.display = 'block';\n this.domNode.style.position = 'absolute';\n this.domNode.style.left = `${rect.width}px`;\n this.domNode.style.zIndex = '100';\n } else {\n this.domNode.style.display = 'block';\n this.domNode.style.position = 'absolute';\n this.domNode.style.top = `${rect.height - 1}px`;\n this.domNode.style.zIndex = '100';\n }\n this.controller.setExpanded(true);\n }\n\n close(force) {\n let controllerHasHover = this.controller.getHover();\n let hasFocus = this.hasFocus;\n\n for (let i = 0; i < this.menuItems.length; i++) {\n const mi = this.menuItems[i];\n if (mi.popupMenu) {\n hasFocus = hasFocus || mi.popupMenu.hasFocus;\n }\n }\n\n if (!this.controller.getIsMenubarItem()) {\n controllerHasHover = false;\n }\n\n if (force || (!hasFocus && !this.hasHover && !controllerHasHover)) {\n this.domNode.style.display = 'none';\n this.domNode.style.zIndex = '0';\n this.controller.setExpanded(false);\n }\n }\n\n handleMouseover() {\n this.hasHover = true;\n }\n\n handleMouseout() {\n this.hasHover = false;\n }\n}\n","import { MenuBar } from './modules/_Menu.es6';\n\nconst callback = function() {\n 'use strict';\n\n // The styling for this mobile menu is located in source/_patterns/04-components/menus/menu--main/.\n const menuNode = document.querySelector('.menu--main');\n if (menuNode) {\n const myMenu = new MenuBar(menuNode);\n myMenu.init();\n }\n};\n\nif (\n document.readyState === 'complete' ||\n (document.readyState !== 'loading' && !document.documentElement.doScroll)\n) {\n callback();\n} else {\n document.addEventListener('DOMContentLoaded', callback);\n}\n"],"sourceRoot":""}