UNPKG

foundation-sites

Version:

The most advanced responsive front-end framework in the world.

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