biofriction-wp-theme/node_modules/foundation-sites/dist/js/plugins/foundation.offcanvas.js.map

1 line
58 KiB
Plaintext

{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.plugin\",\"commonjs\":\"./foundation.core.plugin\",\"commonjs2\":\"./foundation.core.plugin\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.utils\",\"commonjs\":\"./foundation.core.utils\",\"commonjs2\":\"./foundation.core.utils\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.offcanvas.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.offcanvas.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","OffCanvas","element","options","className","$element","$","extend","defaults","data","contentClasses","base","reveal","$lastTrigger","$triggers","position","$content","nested","each","index","val","push","Triggers","init","MediaQuery","_init","_events","Keyboard","register","id","attr","contentId","siblings","length","first","closest","console","warn","transition","removeClass","addClass","document","find","is","match","contentOverlay","overlay","createElement","overlayPosition","css","setAttribute","$overlay","insertAfter","append","revealOnRegExp","RegExp","RegExpEscape","revealClass","revealOnClass","exec","isRevealed","revealOn","_setMQChecker","transitionTime","_removeContentClasses","off","on","open","bind","close","toggle","_handleKeyboard","closeOnClick","$target","_this","onLoadListener","onLoad","window","atLeast","hasReveal","join","_addContentClasses","event","elem","scrollHeight","clientHeight","scrollTop","allowUp","allowDown","lastY","originalEvent","pageY","up","down","stopPropagation","preventDefault","trigger","hasClass","forceTo","scrollTo","body","contentScroll","_stopScrolling","_recordScrollable","_stopScrollPropagation","autoFocus","one","transitionend","canvasFocus","eq","focus","trapFocus","cb","removeAttr","releaseFocus","e","handleKey","handled","Plugin","MutationObserver","prefixes","i","triggers","el","type","split","forEach","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","animation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","namespace","plugins","not","addClosemeListener","pluginName","yetiBoxes","plugNames","concat","error","listeners","map","name","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","target","attributeName","pageYOffset","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","triggersInitialized","IHearYou"],"mappings":"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","file":"foundation.offcanvas.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core.utils\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.core.plugin\"), require(\"./foundation.util.motion\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core.utils\", \"./foundation.core\", \"jquery\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.core.plugin\", \"./foundation.util.motion\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.offcanvas\"] = factory(require(\"./foundation.core.utils\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.core.plugin\"), require(\"./foundation.util.motion\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.offcanvas\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core_utils__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__) {\nreturn "," \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 = 9);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { OffCanvas } from '../../foundation.offcanvas';\nFoundation.plugin(OffCanvas, 'OffCanvas');\n\nexport { Foundation, OffCanvas };\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offcanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n /**\n * Creates a new instance of an off-canvas wrapper.\n * @class\n * @name OffCanvas\n * @fires OffCanvas#init\n * @param {Object} element - jQuery object to initialize.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.className = 'OffCanvas'; // ie9 back compat\n this.$element = element;\n this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n this.contentClasses = { base: [], reveal: [] };\n this.$lastTrigger = $();\n this.$triggers = $();\n this.position = 'left';\n this.$content = $();\n this.nested = !!(this.options.nested);\n\n // Defines the CSS transition/position classes of the off-canvas content container.\n $(['push', 'overlap']).each((index, val) => {\n this.contentClasses.base.push('has-transition-'+val);\n });\n $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n this.contentClasses.base.push('has-position-'+val);\n this.contentClasses.reveal.push('has-reveal-'+val);\n });\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n MediaQuery._init();\n\n this._init();\n this._events();\n\n Keyboard.register('OffCanvas', {\n 'ESCAPE': 'close'\n });\n\n }\n\n /**\n * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n * @function\n * @private\n */\n _init() {\n var id = this.$element.attr('id');\n\n this.$element.attr('aria-hidden', 'true');\n\n // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n if (this.options.contentId) {\n this.$content = $('#'+this.options.contentId);\n } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n } else {\n this.$content = this.$element.closest('[data-off-canvas-content]').first();\n }\n\n if (!this.options.contentId) {\n // Assume that the off-canvas element is nested if it isn't a sibling of the content\n this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n } else if (this.options.contentId && this.options.nested === null) {\n // Warning if using content ID without setting the nested option\n // Once the element is nested it is required to work properly in this case\n console.warn('Remember to use the nested option if using the content ID option!');\n }\n\n if (this.nested === true) {\n // Force transition overlap if nested\n this.options.transition = 'overlap';\n // Remove appropriate classes if already assigned in markup\n this.$element.removeClass('is-transition-push');\n }\n\n this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n // Find triggers that affect this element and add aria-expanded to them\n this.$triggers = $(document)\n .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n .attr('aria-expanded', 'false')\n .attr('aria-controls', id);\n\n // Get position by checking for related CSS class\n this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n // Add an overlay over the content if necessary\n if (this.options.contentOverlay === true) {\n var overlay = document.createElement('div');\n var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n this.$overlay = $(overlay);\n if(overlayPosition === 'is-overlay-fixed') {\n $(this.$overlay).insertAfter(this.$element);\n } else {\n this.$content.append(this.$overlay);\n }\n }\n\n // Get the revealOn option from the class.\n var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n if (revealOnClass) {\n this.options.isRevealed = true;\n this.options.revealOn = this.options.revealOn || revealOnClass[1];\n }\n\n // Ensure the `reveal-on-*` class is set.\n if (this.options.isRevealed === true && this.options.revealOn) {\n this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n this._setMQChecker();\n }\n\n if (this.options.transitionTime) {\n this.$element.css('transition-duration', this.options.transitionTime);\n }\n\n // Initally remove all transition/position CSS classes from off-canvas content container.\n this._removeContentClasses();\n }\n\n /**\n * Adds event handlers to the off-canvas wrapper and the exit overlay.\n * @function\n * @private\n */\n _events() {\n this.$element.off('.zf.trigger .zf.offcanvas').on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'keydown.zf.offcanvas': this._handleKeyboard.bind(this)\n });\n\n if (this.options.closeOnClick === true) {\n var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n $target.on({'click.zf.offcanvas': this.close.bind(this)});\n }\n }\n\n /**\n * Applies event listener for elements that will reveal at certain breakpoints.\n * @private\n */\n _setMQChecker() {\n var _this = this;\n\n this.onLoadListener = onLoad($(window), function () {\n if (MediaQuery.atLeast(_this.options.revealOn)) {\n _this.reveal(true);\n }\n });\n\n $(window).on('changed.zf.mediaquery', function () {\n if (MediaQuery.atLeast(_this.options.revealOn)) {\n _this.reveal(true);\n } else {\n _this.reveal(false);\n }\n });\n }\n\n /**\n * Removes the CSS transition/position classes of the off-canvas content container.\n * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n * @private\n */\n _removeContentClasses(hasReveal) {\n if (typeof hasReveal !== 'boolean') {\n this.$content.removeClass(this.contentClasses.base.join(' '));\n } else if (hasReveal === false) {\n this.$content.removeClass(`has-reveal-${this.position}`);\n }\n }\n\n /**\n * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n * Beforehand any transition/position class gets removed.\n * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n * @private\n */\n _addContentClasses(hasReveal) {\n this._removeContentClasses(hasReveal);\n if (typeof hasReveal !== 'boolean') {\n this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n } else if (hasReveal === true) {\n this.$content.addClass(`has-reveal-${this.position}`);\n }\n }\n\n /**\n * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n * @param {Boolean} isRevealed - true if element should be revealed.\n * @function\n */\n reveal(isRevealed) {\n if (isRevealed) {\n this.close();\n this.isRevealed = true;\n this.$element.attr('aria-hidden', 'false');\n this.$element.off('open.zf.trigger toggle.zf.trigger');\n this.$element.removeClass('is-closed');\n } else {\n this.isRevealed = false;\n this.$element.attr('aria-hidden', 'true');\n this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n 'open.zf.trigger': this.open.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this)\n });\n this.$element.addClass('is-closed');\n }\n this._addContentClasses(isRevealed);\n }\n\n /**\n * Stops scrolling of the body when offcanvas is open on mobile Safari and other troublesome browsers.\n * @private\n */\n _stopScrolling(event) {\n return false;\n }\n\n // Taken and adapted from http://stackoverflow.com/questions/16889447/prevent-full-page-scrolling-ios\n // Only really works for y, not sure how to extend to x or if we need to.\n _recordScrollable(event) {\n let elem = this; // called from event handler context with this as elem\n\n // If the element is scrollable (content overflows), then...\n if (elem.scrollHeight !== elem.clientHeight) {\n // If we're at the top, scroll down one pixel to allow scrolling up\n if (elem.scrollTop === 0) {\n elem.scrollTop = 1;\n }\n // If we're at the bottom, scroll up one pixel to allow scrolling down\n if (elem.scrollTop === elem.scrollHeight - elem.clientHeight) {\n elem.scrollTop = elem.scrollHeight - elem.clientHeight - 1;\n }\n }\n elem.allowUp = elem.scrollTop > 0;\n elem.allowDown = elem.scrollTop < (elem.scrollHeight - elem.clientHeight);\n elem.lastY = event.originalEvent.pageY;\n }\n\n _stopScrollPropagation(event) {\n let elem = this; // called from event handler context with this as elem\n let up = event.pageY < elem.lastY;\n let down = !up;\n elem.lastY = event.pageY;\n\n if((up && elem.allowUp) || (down && elem.allowDown)) {\n event.stopPropagation();\n } else {\n event.preventDefault();\n }\n }\n\n /**\n * Opens the off-canvas menu.\n * @function\n * @param {Object} event - Event object passed from listener.\n * @param {jQuery} trigger - element that triggered the off-canvas to open.\n * @fires Offcanvas#opened\n * @todo also trigger 'open' event?\n */\n open(event, trigger) {\n if (this.$element.hasClass('is-open') || this.isRevealed) { return; }\n var _this = this;\n\n if (trigger) {\n this.$lastTrigger = trigger;\n }\n\n if (this.options.forceTo === 'top') {\n window.scrollTo(0, 0);\n } else if (this.options.forceTo === 'bottom') {\n window.scrollTo(0,document.body.scrollHeight);\n }\n\n if (this.options.transitionTime && this.options.transition !== 'overlap') {\n this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n } else {\n this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n }\n\n this.$element.addClass('is-open').removeClass('is-closed');\n\n this.$triggers.attr('aria-expanded', 'true');\n this.$element.attr('aria-hidden', 'false');\n\n this.$content.addClass('is-open-' + this.position);\n\n // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n if (this.options.contentScroll === false) {\n $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n this.$element.on('touchstart', this._recordScrollable);\n this.$element.on('touchmove', this._stopScrollPropagation);\n }\n\n if (this.options.contentOverlay === true) {\n this.$overlay.addClass('is-visible');\n }\n\n if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n this.$overlay.addClass('is-closable');\n }\n\n if (this.options.autoFocus === true) {\n this.$element.one(transitionend(this.$element), function() {\n if (!_this.$element.hasClass('is-open')) {\n return; // exit if prematurely closed\n }\n var canvasFocus = _this.$element.find('[data-autofocus]');\n if (canvasFocus.length) {\n canvasFocus.eq(0).focus();\n } else {\n _this.$element.find('a, button').eq(0).focus();\n }\n });\n }\n\n if (this.options.trapFocus === true) {\n this.$content.attr('tabindex', '-1');\n Keyboard.trapFocus(this.$element);\n }\n\n this._addContentClasses();\n\n /**\n * Fires when the off-canvas menu opens.\n * @event Offcanvas#opened\n */\n this.$element.trigger('opened.zf.offcanvas');\n }\n\n /**\n * Closes the off-canvas menu.\n * @function\n * @param {Function} cb - optional cb to fire after closure.\n * @fires Offcanvas#closed\n */\n close(cb) {\n if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n var _this = this;\n\n this.$element.removeClass('is-open');\n\n this.$element.attr('aria-hidden', 'true')\n /**\n * Fires when the off-canvas menu opens.\n * @event Offcanvas#closed\n */\n .trigger('closed.zf.offcanvas');\n\n this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n if (this.options.contentScroll === false) {\n $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n this.$element.off('touchstart', this._recordScrollable);\n this.$element.off('touchmove', this._stopScrollPropagation);\n }\n\n if (this.options.contentOverlay === true) {\n this.$overlay.removeClass('is-visible');\n }\n\n if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n this.$overlay.removeClass('is-closable');\n }\n\n this.$triggers.attr('aria-expanded', 'false');\n\n if (this.options.trapFocus === true) {\n this.$content.removeAttr('tabindex');\n Keyboard.releaseFocus(this.$element);\n }\n\n // Listen to transitionEnd and add class when done.\n this.$element.one(transitionend(this.$element), function(e) {\n _this.$element.addClass('is-closed');\n _this._removeContentClasses();\n });\n }\n\n /**\n * Toggles the off-canvas menu open or closed.\n * @function\n * @param {Object} event - Event object passed from listener.\n * @param {jQuery} trigger - element that triggered the off-canvas to open.\n */\n toggle(event, trigger) {\n if (this.$element.hasClass('is-open')) {\n this.close(event, trigger);\n }\n else {\n this.open(event, trigger);\n }\n }\n\n /**\n * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n * @function\n * @private\n */\n _handleKeyboard(e) {\n Keyboard.handleKey(e, 'OffCanvas', {\n close: () => {\n this.close();\n this.$lastTrigger.focus();\n return true;\n },\n handled: () => {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n }\n\n /**\n * Destroys the offcanvas plugin.\n * @function\n */\n _destroy() {\n this.close();\n this.$element.off('.zf.trigger .zf.offcanvas');\n this.$overlay.off('.zf.offcanvas');\n if (this.onLoadListener) $(window).off(this.onLoadListener);\n }\n}\n\nOffCanvas.defaults = {\n /**\n * Allow the user to click outside of the menu to close it.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Adds an overlay on top of `[data-off-canvas-content]`.\n * @option\n * @type {boolean}\n * @default true\n */\n contentOverlay: true,\n\n /**\n * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n * @option\n * @type {?string}\n * @default null\n */\n contentId: null,\n\n /**\n * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n * @option\n * @type {boolean}\n * @default null\n */\n nested: null,\n\n /**\n * Enable/disable scrolling of the main content when an off canvas panel is open.\n * @option\n * @type {boolean}\n * @default true\n */\n contentScroll: true,\n\n /**\n * Amount of time in ms the open and close transition requires. If none selected, pulls from body style.\n * @option\n * @type {number}\n * @default null\n */\n transitionTime: null,\n\n /**\n * Type of transition for the offcanvas menu. Options are 'push', 'detached' or 'slide'.\n * @option\n * @type {string}\n * @default push\n */\n transition: 'push',\n\n /**\n * Force the page to scroll to top or bottom on open.\n * @option\n * @type {?string}\n * @default null\n */\n forceTo: null,\n\n /**\n * Allow the offcanvas to remain open for certain breakpoints.\n * @option\n * @type {boolean}\n * @default false\n */\n isRevealed: false,\n\n /**\n * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n * @option\n * @type {?string}\n * @default null\n */\n revealOn: null,\n\n /**\n * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n * @option\n * @type {boolean}\n * @default true\n */\n autoFocus: true,\n\n /**\n * Class used to force an offcanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n * @option\n * @type {string}\n * @default reveal-for-\n * @todo improve the regex testing for this.\n */\n revealClass: 'reveal-for-',\n\n /**\n * Triggers optional focus trapping when opening an offcanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false\n}\n\nexport {OffCanvas};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n e.stopPropagation();\n let animation = $(this).data('closable');\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}