Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

  1. (function webpackUniversalModuleDefinition(root, factory) {
  2.   if(typeof exports === 'object' && typeof module === 'object')
  3.     module.exports = factory(require("./foundation.core"), require("jquery"));
  4.   else if(typeof define === 'function' && define.amd)
  5.     define(["./foundation.core", "jquery"], factory);
  6.   else if(typeof exports === 'object')
  7.     exports["foundation.util.motion"] = factory(require("./foundation.core"), require("jquery"));
  8.   else
  9.     root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.util.motion"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["jQuery"]);
  10. })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
  11. return /******/ (function(modules) { // webpackBootstrap
  12. /******/   // The module cache
  13. /******/   var installedModules = {};
  14. /******/
  15. /******/   // The require function
  16. /******/   function __webpack_require__(moduleId) {
  17. /******/
  18. /******/     // Check if module is in cache
  19. /******/     if(installedModules[moduleId]) {
  20. /******/       return installedModules[moduleId].exports;
  21. /******/     }
  22. /******/     // Create a new module (and put it into the cache)
  23. /******/     var module = installedModules[moduleId] = {
  24. /******/       i: moduleId,
  25. /******/       l: false,
  26. /******/       exports: {}
  27. /******/     };
  28. /******/
  29. /******/     // Execute the module function
  30. /******/     modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  31. /******/
  32. /******/     // Flag the module as loaded
  33. /******/     module.l = true;
  34. /******/
  35. /******/     // Return the exports of the module
  36. /******/     return module.exports;
  37. /******/   }
  38. /******/
  39. /******/
  40. /******/   // expose the modules object (__webpack_modules__)
  41. /******/   __webpack_require__.m = modules;
  42. /******/
  43. /******/   // expose the module cache
  44. /******/   __webpack_require__.c = installedModules;
  45. /******/
  46. /******/   // define getter function for harmony exports
  47. /******/   __webpack_require__.d = function(exports, name, getter) {
  48. /******/     if(!__webpack_require__.o(exports, name)) {
  49. /******/       Object.defineProperty(exports, name, { enumerable: true, get: getter });
  50. /******/     }
  51. /******/   };
  52. /******/
  53. /******/   // define __esModule on exports
  54. /******/   __webpack_require__.r = function(exports) {
  55. /******/     if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  56. /******/       Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  57. /******/     }
  58. /******/     Object.defineProperty(exports, '__esModule', { value: true });
  59. /******/   };
  60. /******/
  61. /******/   // create a fake namespace object
  62. /******/   // mode & 1: value is a module id, require it
  63. /******/   // mode & 2: merge all properties of value into the ns
  64. /******/   // mode & 4: return value when already ns object
  65. /******/   // mode & 8|1: behave like require
  66. /******/   __webpack_require__.t = function(value, mode) {
  67. /******/     if(mode & 1) value = __webpack_require__(value);
  68. /******/     if(mode & 8) return value;
  69. /******/     if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  70. /******/     var ns = Object.create(null);
  71. /******/     __webpack_require__.r(ns);
  72. /******/     Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  73. /******/     if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  74. /******/     return ns;
  75. /******/   };
  76. /******/
  77. /******/   // getDefaultExport function for compatibility with non-harmony modules
  78. /******/   __webpack_require__.n = function(module) {
  79. /******/     var getter = module && module.__esModule ?
  80. /******/       function getDefault() { return module['default']; } :
  81. /******/       function getModuleExports() { return module; };
  82. /******/     __webpack_require__.d(getter, 'a', getter);
  83. /******/     return getter;
  84. /******/   };
  85. /******/
  86. /******/   // Object.prototype.hasOwnProperty.call
  87. /******/   __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  88. /******/
  89. /******/   // __webpack_public_path__
  90. /******/   __webpack_require__.p = "";
  91. /******/
  92. /******/
  93. /******/   // Load entry module and return exports
  94. /******/   return __webpack_require__(__webpack_require__.s = 25);
  95. /******/ })
  96. /************************************************************************/
  97. /******/ ({
  98.  
  99. /***/ "./foundation.core":
  100. /*!****************************************************************************************************************************************************************!*\
  101.   !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core","commonjs":"./foundation.core","commonjs2":"./foundation.core"} ***!
  102.   \****************************************************************************************************************************************************************/
  103. /*! no static exports found */
  104. /***/ (function(module, exports) {
  105.  
  106. module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;
  107.  
  108. /***/ }),
  109.  
  110. /***/ "./js/entries/plugins/foundation.util.motion.js":
  111. /*!******************************************************!*\
  112.   !*** ./js/entries/plugins/foundation.util.motion.js ***!
  113.   \******************************************************/
  114. /*! exports provided: Foundation, Motion, Move */
  115. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  116.  
  117. "use strict";
  118. __webpack_require__.r(__webpack_exports__);
  119. /* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ "./foundation.core");
  120. /* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);
  121. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Foundation", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"]; });
  122.  
  123. /* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.motion */ "./js/foundation.util.motion.js");
  124. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Motion", function() { return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Motion"]; });
  125.  
  126. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Move", function() { return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Move"]; });
  127.  
  128.  
  129.  
  130. _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"].Motion = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Motion"];
  131. _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"].Move = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Move"];
  132.  
  133.  
  134. /***/ }),
  135.  
  136. /***/ "./js/foundation.util.motion.js":
  137. /*!**************************************!*\
  138.   !*** ./js/foundation.util.motion.js ***!
  139.   \**************************************/
  140. /*! exports provided: Move, Motion */
  141. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  142.  
  143. "use strict";
  144. __webpack_require__.r(__webpack_exports__);
  145. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Move", function() { return Move; });
  146. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Motion", function() { return Motion; });
  147. /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
  148. /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
  149. /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core");
  150. /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);
  151.  
  152.  
  153.  
  154.  
  155. /**
  156.  * Motion module.
  157.  * @module foundation.motion
  158.  */
  159.  
  160. var initClasses = ['mui-enter', 'mui-leave'];
  161. var activeClasses = ['mui-enter-active', 'mui-leave-active'];
  162. var Motion = {
  163.   animateIn: function animateIn(element, animation, cb) {
  164.     animate(true, element, animation, cb);
  165.   },
  166.   animateOut: function animateOut(element, animation, cb) {
  167.     animate(false, element, animation, cb);
  168.   }
  169. };
  170.  
  171. function Move(duration, elem, fn) {
  172.   var anim,
  173.       prog,
  174.       start = null; // console.log('called');
  175.  
  176.   if (duration === 0) {
  177.     fn.apply(elem);
  178.     elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);
  179.     return;
  180.   }
  181.  
  182.   function move(ts) {
  183.     if (!start) start = ts; // console.log(start, ts);
  184.  
  185.     prog = ts - start;
  186.     fn.apply(elem);
  187.  
  188.     if (prog < duration) {
  189.       anim = window.requestAnimationFrame(move, elem);
  190.     } else {
  191.       window.cancelAnimationFrame(anim);
  192.       elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);
  193.     }
  194.   }
  195.  
  196.   anim = window.requestAnimationFrame(move);
  197. }
  198. /**
  199.  * Animates an element in or out using a CSS transition class.
  200.  * @function
  201.  * @private
  202.  * @param {Boolean} isIn - Defines if the animation is in or out.
  203.  * @param {Object} element - jQuery or HTML object to animate.
  204.  * @param {String} animation - CSS class to use.
  205.  * @param {Function} cb - Callback to run when animation is finished.
  206.  */
  207.  
  208.  
  209. function animate(isIn, element, animation, cb) {
  210.   element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);
  211.   if (!element.length) return;
  212.   var initClass = isIn ? initClasses[0] : initClasses[1];
  213.   var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation
  214.  
  215.   reset();
  216.   element.addClass(animation).css('transition', 'none');
  217.   requestAnimationFrame(function () {
  218.     element.addClass(initClass);
  219.     if (isIn) element.show();
  220.   }); // Start the animation
  221.  
  222.   requestAnimationFrame(function () {
  223.     // will trigger the browser to synchronously calculate the style and layout
  224.     // also called reflow or layout thrashing
  225.     // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a
  226.     element[0].offsetWidth;
  227.     element.css('transition', '').addClass(activeClass);
  228.   }); // Clean up the animation when it finishes
  229.  
  230.   element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["transitionend"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback
  231.  
  232.   function finish() {
  233.     if (!isIn) element.hide();
  234.     reset();
  235.     if (cb) cb.apply(element);
  236.   } // Resets transitions and removes motion-specific classes
  237.  
  238.  
  239.   function reset() {
  240.     element[0].style.transitionDuration = 0;
  241.     element.removeClass("".concat(initClass, " ").concat(activeClass, " ").concat(animation));
  242.   }
  243. }
  244.  
  245.  
  246.  
  247. /***/ }),
  248.  
  249. /***/ 25:
  250. /*!************************************************************!*\
  251.   !*** multi ./js/entries/plugins/foundation.util.motion.js ***!
  252.   \************************************************************/
  253. /*! no static exports found */
  254. /***/ (function(module, exports, __webpack_require__) {
  255.  
  256. module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.motion.js */"./js/entries/plugins/foundation.util.motion.js");
  257.  
  258.  
  259. /***/ }),
  260.  
  261. /***/ "jquery":
  262. /*!********************************************************************************************!*\
  263.   !*** external {"root":["jQuery"],"amd":"jquery","commonjs":"jquery","commonjs2":"jquery"} ***!
  264.   \********************************************************************************************/
  265. /*! no static exports found */
  266. /***/ (function(module, exports) {
  267.  
  268. module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;
  269.  
  270. /***/ })
  271.  
  272. /******/ });
  273. });
  274. //# sourceMappingURL=foundation.util.motion.js.map