foundation-sites
Version:
The most advanced responsive front-end framework in the world.
3 lines (2 loc) • 8.71 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.keyboard","jquery"],e):"object"==typeof exports?exports["foundation.accordion"]=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.accordion"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.jQuery))}(window,function(n,o,i){return a={"./foundation.core":function(t,e){t.exports=n},"./foundation.util.keyboard":function(t,e){t.exports=o},"./js/entries/plugins/foundation.accordion.js":function(t,e,n){"use strict";n.r(e);var o=n("./foundation.core");n.d(e,"Foundation",function(){return o.Foundation});var i=n("./js/foundation.accordion.js");n.d(e,"Accordion",function(){return i.Accordion}),o.Foundation.plugin(i.Accordion,"Accordion")},"./js/foundation.accordion.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Accordion",function(){return o});var e=n("jquery"),r=n.n(e),a=n("./foundation.core"),c=n("./foundation.util.keyboard");function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(n){var o=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(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,o?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var o=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(i,a["Plugin"]);var t,e,n,o=l(i);function i(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),o.apply(this,arguments)}return t=i,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=r.a.extend({},i.defaults,this.$element.data(),e),this.className="Accordion",this._init(),c.Keyboard.register("Accordion",{ENTER:"toggle",SPACE:"toggle",ARROW_DOWN:"next",ARROW_UP:"previous",HOME:"first",END:"last"})}},{key:"_init",value:function(){var n=this;this._isInitializing=!0,this.$tabs=this.$element.children("[data-accordion-item]"),this.$tabs.each(function(t,e){var n=r()(e),o=n.children("[data-tab-content]"),i=o[0].id||Object(a.GetYoDigits)(6,"accordion"),e=e.id?"".concat(e.id,"-label"):"".concat(i,"-label");n.find("a:first").attr({"aria-controls":i,id:e,"aria-expanded":!1}),o.attr({role:"region","aria-labelledby":e,"aria-hidden":!0,id:i})});var t=this.$element.find(".is-active").children("[data-tab-content]");t.length&&(this._initialAnchor=t.prev("a").attr("href"),this._openSingleTab(t)),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(n._isInitializing)return;n._initialAnchor&&(t=n._initialAnchor)}var e=t&&r()(t),t=t&&n.$element.find('[href$="'.concat(t,'"]'));!e.length||!t.length||(e&&t&&t.length?t.parent("[data-accordion-item]").hasClass("is-active")||n._openSingleTab(e):n._closeAllTabs(),n.options.deepLinkSmudge&&Object(a.onLoad)(r()(window),function(){var t=n.$element.offset();r()("html, body").animate({scrollTop:t.top-n.options.deepLinkSmudgeOffset},n.options.deepLinkSmudgeDelay)}),n.$element.trigger("deeplink.zf.accordion",[t,e]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){var o=this;this.$tabs.each(function(){var e=r()(this),n=e.children("[data-tab-content]");n.length&&e.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion",function(t){t.preventDefault(),o.toggle(n)}).on("keydown.zf.accordion",function(t){c.Keyboard.handleKey(t,"Accordion",{toggle:function(){o.toggle(n)},next:function(){var t=e.next().find("a").focus();o.options.multiExpand||t.trigger("click.zf.accordion")},previous:function(){var t=e.prev().find("a").focus();o.options.multiExpand||t.trigger("click.zf.accordion")},first:function(){var t=o.$tabs.first().find(".accordion-title").focus();o.options.multiExpand||t.trigger("click.zf.accordion")},last:function(){var t=o.$tabs.last().find(".accordion-title").focus();o.options.multiExpand||t.trigger("click.zf.accordion")},handled:function(){t.preventDefault()}})})}),this.options.deepLink&&r()(window).on("hashchange",this._checkDeepLink)}},{key:"toggle",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot toggle an accordion that is disabled."):(t.parent().hasClass("is-active")?this.up(t):this.down(t),this.options.deepLink&&(t=t.prev("a").attr("href"),this.options.updateHistory?history.pushState({},"",t):history.replaceState({},"",t)))}},{key:"down",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot call down on an accordion that is disabled."):this.options.multiExpand?this._openTab(t):this._openSingleTab(t)}},{key:"up",value:function(t){var e;this.$element.is("[disabled]")?console.info("Cannot call up on an accordion that is disabled."):(e=t.parent()).hasClass("is-active")&&(e=e.siblings(),(this.options.allowAllClosed||e.hasClass("is-active"))&&this._closeTab(t))}},{key:"_openSingleTab",value:function(t){var e=this.$element.children(".is-active").children("[data-tab-content]");e.length&&this._closeTab(e.not(t)),this._openTab(t)}},{key:"_openTab",value:function(t){var e=this,n=t.parent(),o=t.attr("aria-labelledby");t.attr("aria-hidden",!1),n.addClass("is-active"),r()("#".concat(o)).attr({"aria-expanded":!0}),t.finish().slideDown(this.options.slideSpeed,function(){e.$element.trigger("down.zf.accordion",[t])})}},{key:"_closeTab",value:function(t){var e=this,n=t.parent(),o=t.attr("aria-labelledby");t.attr("aria-hidden",!0),n.removeClass("is-active"),r()("#".concat(o)).attr({"aria-expanded":!1}),t.finish().slideUp(this.options.slideSpeed,function(){e.$element.trigger("up.zf.accordion",[t])})}},{key:"_closeAllTabs",value:function(){var t=this.$element.children(".is-active").children("[data-tab-content]");t.length&&this._closeTab(t)}},{key:"_destroy",value:function(){this.$element.find("[data-tab-content]").stop(!0).slideUp(0).css("display",""),this.$element.find("a").off(".zf.accordion"),this.options.deepLink&&r()(window).off("hashchange",this._checkDeepLink)}}])&&s(t.prototype,e),n&&s(t,n),i}();o.defaults={slideSpeed:250,multiExpand:!1,allowAllClosed:!1,deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1}},1:function(t,e,n){t.exports=n("./js/entries/plugins/foundation.accordion.js")},jquery:function(t,e){t.exports=i}},c={},r.m=a,r.c=c,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1);function r(t){if(c[t])return c[t].exports;var e=c[t]={i:t,l:!1,exports:{}};return a[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}var a,c});
//# sourceMappingURL=foundation.accordion.min.js.map