foundation-sites
Version:
The most advanced responsive front-end framework in the world.
3 lines (2 loc) • 10 kB
JavaScript
((t,e)=>{"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("jquery"),require("./foundation.util.keyboard"),require("./foundation.util.imageLoader")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery","./foundation.util.keyboard","./foundation.util.imageLoader"],e):"object"==typeof exports?exports.__FOUNDATION_EXTERNAL__=e(require("./foundation.core"),require("jquery"),require("./foundation.util.keyboard"),require("./foundation.util.imageLoader")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.tabs"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery,t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.__FOUNDATION_EXTERNAL__["foundation.util.imageLoader"]))})(self,function(e,n,i,o){return s={"./js/foundation.tabs.js":function(t,e,n){n.r(e),n.d(e,{Tabs:function(){return i}});var e=n("jquery"),r=n.n(e),l=n("./foundation.core"),s=n("./foundation.util.keyboard"),o=n("./foundation.util.imageLoader");function a(t){return(a="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 c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,(t=>(t=((t,e)=>{if("object"!=a(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0===n)return("string"===e?String:Number)(t);if("object"!=a(n=n.call(t,e||"default")))return n;throw new TypeError("@@toPrimitive must return a primitive value.")})(t,"string"),"symbol"==a(t)?t:t+""))(i.key),i)}}function u(t,e,n){e=h(e);var i=t,e=d()?Reflect.construct(e,n||[],h(t).constructor):e.apply(t,n);if(!e||"object"!=a(e)&&"function"!=typeof e){if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");if(void 0===(e=i))throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function d(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(d=function(){return!!t})()}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function f(t,e){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}var i=(t=>{function n(){var t=this,e=n;if(t instanceof e)return u(this,n,arguments);throw new TypeError("Cannot call a class as a function")}var e,i=n;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");return i.prototype=Object.create(t&&t.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,"prototype",{writable:!1}),t&&f(i,t),i=n,(t=[{key:"_setup",value:function(t,e){this.$element=t,this.options=r().extend({},n.defaults,this.$element.data(),e),this.className="Tabs",this._init(),s.Keyboard.register("Tabs",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"previous",ARROW_DOWN:"next",ARROW_LEFT:"previous"})}},{key:"_init",value:function(){var t,i=this,s=this;this._isInitializing=!0,this.$element.attr({role:"tablist"}),this.$tabTitles=this.$element.find(".".concat(this.options.linkClass)),this.$tabContent=r()('[data-tabs-content="'.concat(this.$element[0].id,'"]')),this.$tabTitles.each(function(){var t=r()(this),e=t.find("a"),n=t.hasClass("".concat(s.options.linkActiveClass)),i=e.attr("data-tabs-target")||e[0].hash.slice(1),o=e[0].id||"".concat(i,"-label"),a=r()("#".concat(i));t.attr({role:"presentation"}),e.attr({role:"tab","aria-controls":i,"aria-selected":n,id:o,tabindex:n?"0":"-1"}),a.attr({role:"tabpanel","aria-labelledby":o}),n&&(s._initialAnchor="#".concat(i)),n||a.attr("aria-hidden","true"),n&&s.options.autoFocus&&(s.onLoadListener=(0,l.onLoad)(r()(window),function(){r()("html, body").animate({scrollTop:t.offset().top},s.options.deepLinkSmudgeDelay,function(){e.focus()})}))}),this.options.matchHeight&&((t=this.$tabContent.find("img")).length?(0,o.onImagesLoaded)(t,this._setHeight.bind(this)):this._setHeight()),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(i._isInitializing)return;i._initialAnchor&&(t=i._initialAnchor)}var e=0<=t.indexOf("#")?t.slice(1):t,n=e&&r()("#".concat(e)),t=t&&i.$element.find('[href$="'.concat(t,'"],[data-tabs-target="').concat(e,'"]')).first();!n.length||!t.length||(n&&n.length&&t&&t.length?i.selectTab(n,!0):i._collapse(),i.options.deepLinkSmudge&&(e=i.$element.offset(),r()("html, body").animate({scrollTop:e.top-i.options.deepLinkSmudgeOffset},i.options.deepLinkSmudgeDelay)),i.$element.trigger("deeplink.zf.tabs",[t,n]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){this._addKeyHandler(),this._addClickHandler(),this._setHeightMqHandler=null,this.options.matchHeight&&(this._setHeightMqHandler=this._setHeight.bind(this),r()(window).on("changed.zf.mediaquery",this._setHeightMqHandler)),this.options.deepLink&&r()(window).on("hashchange",this._checkDeepLink)}},{key:"_addClickHandler",value:function(){var e=this;this.$element.off("click.zf.tabs").on("click.zf.tabs",".".concat(this.options.linkClass),function(t){t.preventDefault(),e._handleTabChange(r()(this))})}},{key:"_addKeyHandler",value:function(){var a=this;this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs",function(t){var e,n,i,o;9!==t.which&&(e=r()(this),(n=e.parent("ul").children("li")).each(function(t){r()(this).is(e)&&(o=a.options.wrapOnKeys?(i=0===t?n.last():n.eq(t-1),t===n.length-1?n.first():n.eq(t+1)):(i=n.eq(Math.max(0,t-1)),n.eq(Math.min(t+1,n.length-1))))}),s.Keyboard.handleKey(t,"Tabs",{open:function(){e.find('[role="tab"]').focus(),a._handleTabChange(e)},previous:function(){i.find('[role="tab"]').focus(),a._handleTabChange(i)},next:function(){o.find('[role="tab"]').focus(),a._handleTabChange(o)},handled:function(){t.preventDefault()}}))})}},{key:"_handleTabChange",value:function(t,e){var n,i,o;t.hasClass("".concat(this.options.linkActiveClass))?this.options.activeCollapse&&this._collapse():(n=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass)),i=(i=(o=t.find('[role="tab"]')).attr("data-tabs-target"))&&i.length?"#".concat(i):o[0].hash,o=this.$tabContent.find(i),this._collapseTab(n),this._openTab(t),this.options.deepLink&&!e&&(this.options.updateHistory?history.pushState({},"",location.pathname+location.search+i):history.replaceState({},"",location.pathname+location.search+i)),this.$element.trigger("change.zf.tabs",[t,o]),o.find("[data-mutate]").trigger("mutateme.zf.trigger"))}},{key:"_openTab",value:function(t){var e=t.find('[role="tab"]'),n=e.attr("data-tabs-target")||e[0].hash.slice(1),n=this.$tabContent.find("#".concat(n));t.addClass("".concat(this.options.linkActiveClass)),e.attr({"aria-selected":"true",tabindex:"0"}),n.addClass("".concat(this.options.panelActiveClass)).removeAttr("aria-hidden")}},{key:"_collapseTab",value:function(t){t=t.removeClass("".concat(this.options.linkActiveClass)).find('[role="tab"]').attr({"aria-selected":"false",tabindex:-1});r()("#".concat(t.attr("aria-controls"))).removeClass("".concat(this.options.panelActiveClass)).attr({"aria-hidden":"true"})}},{key:"_collapse",value:function(){var t=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass));t.length&&(this._collapseTab(t),this.$element.trigger("collapse.zf.tabs",[t]))}},{key:"selectTab",value:function(t,e){var t="object"===a(t)?t[0].id:t,n=(t.indexOf("#")<0?n="#".concat(t):t=(n=t).slice(1),this.$tabTitles.has('[href$="'.concat(n,'"],[data-tabs-target="').concat(t,'"]')).first());this._handleTabChange(n,e)}},{key:"_setHeight",value:function(){var i=0,o=this;this.$tabContent&&this.$tabContent.find(".".concat(this.options.panelClass)).css("min-height","").each(function(){var t=r()(this),e=t.hasClass("".concat(o.options.panelActiveClass)),n=(e||t.css({visibility:"hidden",display:"block"}),this.getBoundingClientRect().height);e||t.css({visibility:"",display:""}),i=i<n?n:i}).css("min-height","".concat(i,"px"))}},{key:"_destroy",value:function(){this.$element.find(".".concat(this.options.linkClass)).off(".zf.tabs").hide().end().find(".".concat(this.options.panelClass)).hide(),this.options.matchHeight&&null!=this._setHeightMqHandler&&r()(window).off("changed.zf.mediaquery",this._setHeightMqHandler),this.options.deepLink&&r()(window).off("hashchange",this._checkDeepLink),this.onLoadListener&&r()(window).off(this.onLoadListener)}}])&&c(i.prototype,t),e&&c(i,e),Object.defineProperty(i,"prototype",{writable:!1}),i})(l.Plugin);i.defaults={deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1,autoFocus:!1,wrapOnKeys:!0,matchHeight:!1,activeCollapse:!1,linkClass:"tabs-title",linkActiveClass:"is-active",panelClass:"tabs-panel",panelActiveClass:"is-active"}},"./foundation.core":function(t){t.exports=e},"./foundation.util.imageLoader":function(t){t.exports=o},"./foundation.util.keyboard":function(t){t.exports=i},jquery:function(t){t.exports=n}},r={},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,{a:e}),e},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},c={},(a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})})(c),a.d(c,{Foundation:function(){return t.Foundation},Tabs:function(){return l.Tabs}}),t=a("./foundation.core"),l=a("./js/foundation.tabs.js"),t.Foundation.plugin(l.Tabs,"Tabs"),c;function a(t){var e=r[t];return void 0!==e||(e=r[t]={exports:{}},s[t](e,e.exports,a)),e.exports}var s,r,t,l,c});
//# sourceMappingURL=foundation.tabs.min.js.map