foundation-sites
Version:
The most advanced responsive front-end framework in the world.
3 lines (2 loc) • 12.5 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.util.mediaQuery"),require("./foundation.util.motion"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.mediaQuery","./foundation.util.motion","jquery"],t):"object"==typeof exports?exports["foundation.interchange"]=t(require("./foundation.core"),require("./foundation.util.mediaQuery"),require("./foundation.util.motion"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.interchange"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.mediaQuery"],e.__FOUNDATION_EXTERNAL__["foundation.util.motion"],e.jQuery))}(window,function(n,i,r,o){return s={"./foundation.core":function(e,t){e.exports=n},"./foundation.util.mediaQuery":function(e,t){e.exports=i},"./foundation.util.motion":function(e,t){e.exports=r},"./js/entries/plugins/foundation.interchange.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var r=n("./js/foundation.interchange.js");n.d(t,"Interchange",function(){return r.Interchange}),i.Foundation.plugin(r.Interchange,"Interchange")},"./js/foundation.interchange.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Interchange",function(){return i});var t=n("jquery"),r=n.n(t),o=n("./foundation.util.mediaQuery"),s=n("./foundation.core"),u=n("./js/foundation.util.triggers.js");function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=d(n);return function(e,t){{if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined")}return function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e)}(this,i?(e=d(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments))}}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var i=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(a,s["Plugin"]);var e,t,n,i=f(a);function a(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),i.apply(this,arguments)}return e=a,(t=[{key:"_setup",value:function(e,t){this.$element=e,this.options=r.a.extend({},a.defaults,this.$element.data(),t),this.rules=[],this.currentPath="",this.className="Interchange",u.Triggers.init(r.a),this._init(),this._events()}},{key:"_init",value:function(){o.MediaQuery._init();var e=this.$element[0].id||Object(s.GetYoDigits)(6,"interchange");this.$element.attr({"data-resize":e,id:e}),this._parseOptions(),this._addBreakpoints(),this._generateRules(),this._reflow()}},{key:"_events",value:function(){var e=this;this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(){return e._reflow()})}},{key:"_reflow",value:function(){var e,t,n;for(t in this.rules)this.rules.hasOwnProperty(t)&&(n=this.rules[t],window.matchMedia(n.query).matches&&(e=n));e&&this.replace(e.path)}},{key:"_parseOptions",value:function(){void 0===this.options.type?this.options.type="auto":-1===["auto","src","background","html"].indexOf(this.options.type)&&(console.log('Warning: invalid value "'.concat(this.options.type,'" for Interchange option "type"')),this.options.type="auto")}},{key:"_addBreakpoints",value:function(){for(var e in o.MediaQuery.queries)o.MediaQuery.queries.hasOwnProperty(e)&&(e=o.MediaQuery.queries[e],a.SPECIAL_QUERIES[e.name]=e.value)}},{key:"_generateRules",value:function(e){var t,n,i,r=[],o=this.options.rules||this.$element.data("interchange");for(t in o="string"==typeof o?o.match(/\[.*?, .*?\]/g):o)o.hasOwnProperty(t)&&(n=(i=o[t].slice(1,-1).split(", ")).slice(0,-1).join(""),i=i[i.length-1],a.SPECIAL_QUERIES[i]&&(i=a.SPECIAL_QUERIES[i]),r.push({path:n,query:i}));this.rules=r}},{key:"replace",value:function(t){var n,e,i=this;this.currentPath!==t&&(n="replaced.zf.interchange","src"===(e="auto"===(e=this.options.type)?"IMG"===this.$element[0].nodeName?"src":t.match(/\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i)?"background":"html":e)?this.$element.attr("src",t).on("load",function(){i.currentPath=t}).trigger(n):"background"===e?(t=t.replace(/\(/g,"%28").replace(/\)/g,"%29"),this.$element.css({"background-image":"url("+t+")"}).trigger(n)):"html"===e&&r.a.get(t,function(e){i.$element.html(e).trigger(n),r()(e).foundation(),i.currentPath=t}))}},{key:"_destroy",value:function(){this.$element.off("resizeme.zf.trigger")}}])&&c(e.prototype,t),n&&c(e,n),a}();i.defaults={rules:null,type:"auto"},i.SPECIAL_QUERIES={landscape:"screen and (orientation: landscape)",portrait:"screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)"}},"./js/foundation.util.triggers.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Triggers",function(){return c});var t=n("jquery"),o=n.n(t),i=n("./foundation.core"),r=n("./foundation.util.motion");function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(t,n){t.data(n).split(" ").forEach(function(e){o()("#".concat(e))["close"===n?"trigger":"triggerHandler"]("".concat(n,".zf.trigger"),[t])})}var u=function(){for(var e=["WebKit","Moz","O","Ms",""],t=0;t<e.length;t++)if("".concat(e[t],"MutationObserver")in window)return window["".concat(e[t],"MutationObserver")];return!1}(),c={Listeners:{Basic:{},Global:{}},Initializers:{}};function l(t,e,n){var i,r=Array.prototype.slice.call(arguments,3);o()(window).off(e).on(e,function(e){i&&clearTimeout(i),i=setTimeout(function(){n.apply(null,r)},t||10)})}c.Listeners.Basic={openListener:function(){s(o()(this),"open")},closeListener:function(){o()(this).data("close")?s(o()(this),"close"):o()(this).trigger("close.zf.trigger")},toggleListener:function(){o()(this).data("toggle")?s(o()(this),"toggle"):o()(this).trigger("toggle.zf.trigger")},closeableListener:function(e){var t=o()(this).data("closable");e.stopPropagation(),""!==t?r.Motion.animateOut(o()(this),t,function(){o()(this).trigger("closed.zf")}):o()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var e=o()(this).data("toggle-focus");o()("#".concat(e)).triggerHandler("toggle.zf.trigger",[o()(this)])}},c.Initializers.addOpenListener=function(e){e.off("click.zf.trigger",c.Listeners.Basic.openListener),e.on("click.zf.trigger","[data-open]",c.Listeners.Basic.openListener)},c.Initializers.addCloseListener=function(e){e.off("click.zf.trigger",c.Listeners.Basic.closeListener),e.on("click.zf.trigger","[data-close]",c.Listeners.Basic.closeListener)},c.Initializers.addToggleListener=function(e){e.off("click.zf.trigger",c.Listeners.Basic.toggleListener),e.on("click.zf.trigger","[data-toggle]",c.Listeners.Basic.toggleListener)},c.Initializers.addCloseableListener=function(e){e.off("close.zf.trigger",c.Listeners.Basic.closeableListener),e.on("close.zf.trigger","[data-closeable], [data-closable]",c.Listeners.Basic.closeableListener)},c.Initializers.addToggleFocusListener=function(e){e.off("focus.zf.trigger blur.zf.trigger",c.Listeners.Basic.toggleFocusListener),e.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",c.Listeners.Basic.toggleFocusListener)},c.Listeners.Global={resizeListener:function(e){u||e.each(function(){o()(this).triggerHandler("resizeme.zf.trigger")}),e.attr("data-events","resize")},scrollListener:function(e){u||e.each(function(){o()(this).triggerHandler("scrollme.zf.trigger")}),e.attr("data-events","scroll")},closeMeListener:function(e,t){e=e.namespace.split(".")[0];o()("[data-".concat(e,"]")).not('[data-yeti-box="'.concat(t,'"]')).each(function(){var e=o()(this);e.triggerHandler("close.zf.trigger",[e])})}},c.Initializers.addClosemeListener=function(e){var t=o()("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];e&&("string"==typeof e?n.push(e):"object"===a(e)&&"string"==typeof e[0]?n=n.concat(e):console.error("Plugin names must be strings")),t.length&&(n=n.map(function(e){return"closeme.zf.".concat(e)}).join(" "),o()(window).off(n).on(n,c.Listeners.Global.closeMeListener))},c.Initializers.addResizeListener=function(e){var t=o()("[data-resize]");t.length&&l(e,"resize.zf.trigger",c.Listeners.Global.resizeListener,t)},c.Initializers.addScrollListener=function(e){var t=o()("[data-scroll]");t.length&&l(e,"scroll.zf.trigger",c.Listeners.Global.scrollListener,t)},c.Initializers.addMutationEventsListener=function(e){if(!u)return!1;function t(e){var t=o()(e[0].target);switch(e[0].type){case"attributes":"scroll"===t.attr("data-events")&&"data-events"===e[0].attributeName&&t.triggerHandler("scrollme.zf.trigger",[t,window.pageYOffset]),"resize"===t.attr("data-events")&&"data-events"===e[0].attributeName&&t.triggerHandler("resizeme.zf.trigger",[t]),"style"===e[0].attributeName&&(t.closest("[data-mutate]").attr("data-events","mutate"),t.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[t.closest("[data-mutate]")]));break;case"childList":t.closest("[data-mutate]").attr("data-events","mutate"),t.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[t.closest("[data-mutate]")]);break;default:return!1}}var n=e.find("[data-resize], [data-scroll], [data-mutate]");if(n.length)for(var i=0;i<=n.length-1;i++)new u(t).observe(n[i],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})},c.Initializers.addSimpleListeners=function(){var e=o()(document);c.Initializers.addOpenListener(e),c.Initializers.addCloseListener(e),c.Initializers.addToggleListener(e),c.Initializers.addCloseableListener(e),c.Initializers.addToggleFocusListener(e)},c.Initializers.addGlobalListeners=function(){var e=o()(document);c.Initializers.addMutationEventsListener(e),c.Initializers.addResizeListener(),c.Initializers.addScrollListener(),c.Initializers.addClosemeListener()},c.init=function(e,t){Object(i.onLoad)(e(window),function(){!0!==e.triggersInitialized&&(c.Initializers.addSimpleListeners(),c.Initializers.addGlobalListeners(),e.triggersInitialized=!0)}),t&&(t.Triggers=c,t.IHearYou=c.Initializers.addGlobalListeners)}},7:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.interchange.js")},jquery:function(e,t){e.exports=o}},u={},a.m=s,a.c=u,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)a.d(n,i,function(e){return t[e]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=7);function a(e){if(u[e])return u[e].exports;var t=u[e]={i:e,l:!1,exports:{}};return s[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}var s,u});
//# sourceMappingURL=foundation.interchange.min.js.map