{"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]/js/entries/plugins/foundation.util.touch.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.touch.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__","_foundation_core__WEBPACK_IMPORTED_MODULE_2__","Touch","init","$","Foundation","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","this","removeEventListener","onTouchMove","tapEvent","Event","trigger","spotSwipe","preventDefault","dir","x","touches","pageX","dx","pageY","Date","getTime","Math","abs","moveThreshold","timeThreshold","apply","arguments","concat","onTouchStart","length","addEventListener","SpotSwipe","_classCallCheck","version","enabled","document","documentElement","_init","event","special","swipe","setup","tap","each","on","noop","setupSpotSwipe","setupTouchHandler","fn","addTouch","el","handleTouch","simulatedEvent","first","changedTouches","type","touchstart","touchmove","touchend","MouseEvent","bubbles","cancelable","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","target","dispatchEvent"],"mappings":"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","file":"foundation.util.touch.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.touch\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\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 = 28);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import $ from 'jquery';\n\nimport { Touch } from '../../foundation.util.touch';\n\nTouch.init($);\n\nwindow.Foundation.Touch = Touch;\n\nexport { Foundation } from './foundation.core';\nexport { Touch };\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n startPosY,\n startTime,\n elapsedTime,\n startEvent,\n isMoving = false,\n didMoved = false;\n\nfunction onTouchEnd(e) {\n this.removeEventListener('touchmove', onTouchMove);\n this.removeEventListener('touchend', onTouchEnd);\n\n // If the touch did not move, consider it as a \"tap\"\n if (!didMoved) {\n var tapEvent = $.Event('tap', startEvent || e);\n $(this).trigger(tapEvent);\n }\n\n startEvent = null;\n isMoving = false;\n didMoved = false;\n}\n\nfunction onTouchMove(e) {\n if ($.spotSwipe.preventDefault) { e.preventDefault(); }\n\n if(isMoving) {\n var x = e.touches[0].pageX;\n var y = e.touches[0].pageY;\n var dx = startPosX - x;\n var dy = startPosY - y;\n var dir;\n didMoved = true;\n elapsedTime = new Date().getTime() - startTime;\n if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n dir = dx > 0 ? 'left' : 'right';\n }\n // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n // dir = dy > 0 ? 'down' : 'up';\n // }\n if(dir) {\n e.preventDefault();\n onTouchEnd.apply(this, arguments);\n $(this)\n .trigger($.Event('swipe', e), dir)\n .trigger($.Event(`swipe${dir}`, e));\n }\n }\n\n}\n\nfunction onTouchStart(e) {\n\n if (e.touches.length == 1) {\n startPosX = e.touches[0].pageX;\n startPosY = e.touches[0].pageY;\n startEvent = e;\n isMoving = true;\n didMoved = false;\n startTime = new Date().getTime();\n this.addEventListener('touchmove', onTouchMove, false);\n this.addEventListener('touchend', onTouchEnd, false);\n }\n}\n\nfunction init() {\n this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);\n}\n\nfunction teardown() {\n this.removeEventListener('touchstart', onTouchStart);\n}\n\nclass SpotSwipe {\n constructor($) {\n this.version = '1.0.0';\n this.enabled = 'ontouchstart' in document.documentElement;\n this.preventDefault = false;\n this.moveThreshold = 75;\n this.timeThreshold = 200;\n this.$ = $;\n this._init();\n }\n\n _init() {\n var $ = this.$;\n $.event.special.swipe = { setup: init };\n $.event.special.tap = { setup: init };\n\n $.each(['left', 'up', 'down', 'right'], function () {\n $.event.special[`swipe${this}`] = { setup: function(){\n $(this).on('swipe', $.noop);\n } };\n });\n }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and *\n * setupTouchHandler should be idempotent, *\n * because they directly replace functions & *\n * values, and do not add event handlers directly. *\n ****************************************************/\n\nTouch.setupSpotSwipe = function($) {\n $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function($) {\n $.fn.addTouch = function(){\n this.each(function(i,el){\n $(el).bind('touchstart touchmove touchend touchcancel', function(event) {\n //we pass the original event object because the jQuery event\n //object is normalized to w3c specs and does not provide the TouchList\n handleTouch(event);\n });\n });\n\n var handleTouch = function(event){\n var touches = event.changedTouches,\n first = touches[0],\n eventTypes = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n },\n type = eventTypes[event.type],\n simulatedEvent\n ;\n\n if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n simulatedEvent = new window.MouseEvent(type, {\n 'bubbles': true,\n 'cancelable': true,\n 'screenX': first.screenX,\n 'screenY': first.screenY,\n 'clientX': first.clientX,\n 'clientY': first.clientY\n });\n } else {\n simulatedEvent = document.createEvent('MouseEvent');\n simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n }\n first.target.dispatchEvent(simulatedEvent);\n };\n };\n};\n\nTouch.init = function ($) {\n\n if(typeof($.spotSwipe) === 'undefined') {\n Touch.setupSpotSwipe($);\n Touch.setupTouchHandler($);\n }\n};\n\nexport {Touch};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}