{"version":3,"file":"foundation.util.keyboard.min.js","sources":["foundation.util.keyboard.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.keyboard\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\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/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 23);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.keyboard.js\":\n/*!********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\********************************************************/\n/*! exports provided: Foundation, Keyboard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Keyboard = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.keyboard.js\":\n/*!****************************************!*\\\n !*** ./js/foundation.util.keyboard.js ***!\n \\****************************************/\n/*! exports provided: Keyboard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return Keyboard; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n\nvar keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n};\nvar commands = {}; // Functions pulled out to be referenceable from internals\n\nfunction findFocusable($element) {\n if (!$element) {\n return false;\n }\n\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n return false;\n } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n return true;\n }).sort(function (a, b) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex')) {\n return 0;\n }\n\n var aTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex'), 10),\n bTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex'), 10); // Undefined is treated the same as 0\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n return 1;\n }\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex === 0 && bTabIndex > 0) {\n return 1;\n }\n\n if (bTabIndex === 0 && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex < bTabIndex) {\n return -1;\n }\n\n if (aTabIndex > bTabIndex) {\n return 1;\n }\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n key = key.replace(/\\W+/, '');\n if (event.shiftKey) key = \"SHIFT_\".concat(key);\n if (event.ctrlKey) key = \"CTRL_\".concat(key);\n if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n key = key.replace(/_$/, '');\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey: function handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n if (!commandList) return console.warn('Component not defined!'); // Ignore the event if it was already handled\n\n if (event.zfIsKeyHandled === true) return; // This component does not differentiate between ltr and rtl\n\n if (typeof commandList.ltr === 'undefined') {\n cmds = commandList; // use plain list\n } else {\n // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n }\n\n command = cmds[keyCode];\n fn = functions[command]; // Execute the handler if found\n\n if (fn && typeof fn === 'function') {\n var returnValue = fn.apply(); // Mark the event as \"handled\" to prevent future handlings\n\n event.zfIsKeyHandled = true; // Execute function when event was handled\n\n if (functions.handled || typeof functions.handled === 'function') {\n functions.handled(returnValue);\n }\n } else {\n // Execute function when event was not handled\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n register: function register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus: function trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n $element.on('keydown.zf.trapfocus', function (event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus: function releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n};\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\nfunction getKeyCodes(kcs) {\n var k = {};\n\n for (var kc in kcs) {\n if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n }\n\n return k;\n}\n\n\n\n/***/ }),\n\n/***/ 23:\n/*!**************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.keyboard.js */\"./js/entries/plugins/foundation.util.keyboard.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.keyboard.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.keyboard.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","Keyboard","./js/foundation.util.keyboard.js","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","findFocusable","$element","find","filter","this","is","attr","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","key","which","keyCode","String","fromCharCode","toUpperCase","replace","shiftKey","concat","ctrlKey","altKey","keys","kcs","kc","k","hasOwnProperty","getKeyCodes","handleKey","component","functions","commandList","console","warn","zfIsKeyHandled","fn","ltr","Object","extend","rtl","returnValue","apply","handled","unhandled","register","componentName","cmds","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","on","target","preventDefault","focus","releaseFocus","off","23","jquery","installedModules","m","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","bind","object","property","prototype","call","p","s","moduleId","i","l"],"mappings":"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"}