{"version":3,"file":"foundation.util.triggers.js","sources":["../../../../IREP.Web.Content/v7/node_modules/foundation-sites/js/foundation.util.motion.js","../../../../IREP.Web.Content/v7/node_modules/foundation-sites/js/foundation.util.triggers.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","import $ 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 let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\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 = 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).on(trigger, function() {\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(250);\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"],"names":["initClasses","activeClasses","Motion","animateIn","element","animation","cb","animate","animateOut","isIn","$","eq","length","initClass","activeClass","reset","addClass","css","requestAnimationFrame","show","offsetWidth","one","transitionend","hide","apply","style","transitionDuration","removeClass","MutationObserver","prefixes","i","window","triggers","el","type","data","split","forEach","id","Triggers","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","trigger","listener","timer","args","Array","prototype","slice","call","arguments","on","clearTimeout","setTimeout","openListener","this","closeListener","toggleListener","closeableListener","e","stopPropagation","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","off","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","attr","scrollListener","closeMeListener","pluginId","plugin","namespace","not","_this","addClosemeListener","pluginName","yetiBoxes","plugNames","push","concat","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","find","listeningElementsMutation","mutationRecordsList","$target","target","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","init","__","Foundation","onLoad","triggersInitialized","IHearYou"],"mappings":"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","x_google_ignoreList":[0,1]}