{"version":3,"file":"chunk-foundation.util.motion-ace66d93-esm.js","sources":["node_modules/foundation-sites/js/foundation.util.motion.js"],"sourcesContent":["import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n animateIn: function(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n\n animateOut: function(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n}\n\nfunction Move(duration, elem, fn){\n var anim, prog, start = null;\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts){\n if(!start) start = ts;\n prog = ts - start;\n fn.apply(elem);\n\n if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n else{\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n element = $(element).eq(0);\n\n if (!element.length) return;\n\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n // Set up the animation\n reset();\n\n element\n .addClass(animation)\n .css('transition', 'none');\n\n requestAnimationFrame(() => {\n element.addClass(initClass);\n if (isIn) element.show();\n });\n\n // Start the animation\n requestAnimationFrame(() => {\n // will trigger the browser to synchronously calculate the style and layout\n // also called reflow or layout thrashing\n // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n element[0].offsetWidth;\n element\n .css('transition', '')\n .addClass(activeClass);\n });\n\n // Clean up the animation when it finishes\n element.one(transitionend(element), finish);\n\n // Hides the element (for out animations), resets the element, and runs a callback\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n }\n\n // Resets transitions and removes motion-specific classes\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(`${initClass} ${activeClass} ${animation}`);\n }\n}\n\nexport { Move, Motion };\n\n"],"names":["initClasses","activeClasses","Motion","animateIn","element","animation","cb","animate","animateOut","isIn","$","eq","length","initClass","activeClass","reset","addClass","css","requestAnimationFrame","show","offsetWidth","one","transitionend","finish","hide","apply","style","transitionDuration","removeClass"],"mappings":";;;AAGA;;;;;AAKA,MAAMA,WAAW,GAAK,CAAC,WAAW,EAAE,WAAW,CAAC;AAChD,MAAMC,aAAa,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AAE9D,MAAMC,MAAM,GAAG;EACbC,SAAS,EAAE,UAASC,OAAO,EAAEC,SAAS,EAAEC,EAAE,EAAE;IAC1CC,OAAO,CAAC,IAAI,EAAEH,OAAO,EAAEC,SAAS,EAAEC,EAAE,CAAC;GACtC;EAEDE,UAAU,EAAE,UAASJ,OAAO,EAAEC,SAAS,EAAEC,EAAE,EAAE;IAC3CC,OAAO,CAAC,KAAK,EAAEH,OAAO,EAAEC,SAAS,EAAEC,EAAE,CAAC;;CAEzC;AAED;;;;;;;;;;AAgCA,SAASC,OAAOA,CAACE,IAAI,EAAEL,OAAO,EAAEC,SAAS,EAAEC,EAAE,EAAE;EAC7CF,OAAO,GAAGM,MAAC,CAACN,OAAO,CAAC,CAACO,EAAE,CAAC,CAAC,CAAC;EAE1B,IAAI,CAACP,OAAO,CAACQ,MAAM,EAAE;EAErB,IAAIC,SAAS,GAAGJ,IAAI,GAAGT,WAAW,CAAC,CAAC,CAAC,GAAGA,WAAW,CAAC,CAAC,CAAC;EACtD,IAAIc,WAAW,GAAGL,IAAI,GAAGR,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC;;;EAG5Dc,KAAK,EAAE;EAEPX,OAAO,CACJY,QAAQ,CAACX,SAAS,CAAC,CACnBY,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;EAE5BC,qBAAqB,CAAC,MAAM;IAC1Bd,OAAO,CAACY,QAAQ,CAACH,SAAS,CAAC;IAC3B,IAAIJ,IAAI,EAAEL,OAAO,CAACe,IAAI,EAAE;GACzB,CAAC;;;EAGFD,qBAAqB,CAAC,MAAM;;;;IAI1Bd,OAAO,CAAC,CAAC,CAAC,CAACgB,WAAW;IACtBhB,OAAO,CACJa,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CACrBD,QAAQ,CAACF,WAAW,CAAC;GACzB,CAAC;;;EAGFV,OAAO,CAACiB,GAAG,CAACC,aAAa,CAAClB,OAAO,CAAC,EAAEmB,MAAM,CAAC;;;EAG3C,SAASA,MAAMA,GAAG;IAChB,IAAI,CAACd,IAAI,EAAEL,OAAO,CAACoB,IAAI,EAAE;IACzBT,KAAK,EAAE;IACP,IAAIT,EAAE,EAAEA,EAAE,CAACmB,KAAK,CAACrB,OAAO,CAAC;;;;EAI3B,SAASW,KAAKA,GAAG;IACfX,OAAO,CAAC,CAAC,CAAC,CAACsB,KAAK,CAACC,kBAAkB,GAAG,CAAC;IACvCvB,OAAO,CAACwB,WAAW,CAAE,GAAEf,SAAU,IAAGC,WAAY,IAAGT,SAAU,EAAC,CAAC;;;;;;"}