UNPKG

@atlassian/aui

Version:

Atlassian User Interface Framework

44 lines 11.4 kB
/*!! * @atlassian/aui - Atlassian User Interface Framework * @version v8.0.0-alpha.1 * @link https://aui.atlassian.com * @license SEE LICENSE IN LICENSE.md * @author Atlassian Pty Ltd. */ exports.ids=[79],exports.modules={187: /*!*****************************!*\ !*** ../src/less/tabs.less ***! \*****************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){},188: /*!***********************************!*\ !*** ../src/js/aui/is-clipped.js ***! \***********************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=r(a(/*! ./jquery */0));function r(t){return t&&t.__esModule?t:{default:t}}function n(t){return(t=(0,i.default)(t)).prop("scrollWidth")>t.prop("clientWidth")}(0,r(a(/*! ./internal/globalize */1)).default)("isClipped",n),e.default=n,t.exports=e.default},189: /*!****************************************!*\ !*** ../src/js/aui/internal/add-id.js ***! \****************************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=s(a(/*! ../jquery */0)),r=s(a(/*! ./globalize */1)),n=s(a(/*! ../unique-id */24));function s(t){return t&&t.__esModule?t:{default:t}}function o(t,e){var a=(0,i.default)(t),r=e||!1;a.each(function(){var t=(0,i.default)(this);t.attr("id")||t.attr("id",(0,n.default)(r))})}(0,r.default)("_addID",o),e.default=o,t.exports=e.default},190: /*!*****************************!*\ !*** ../src/js/aui/tabs.js ***! \*****************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TabItemEl=e.TabPaneEl=e.TabContainerEl=void 0,a(/*! skatejs-template-html */18);var i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(a(/*! ./internal/log */6)),r=l(a(/*! ./debounce */48)),n=l(a(/*! ./jquery */0)),s=l(a(/*! ./internal/add-id */189)),o=l(a(/*! ./internal/globalize */1)),u=l(a(/*! ./is-clipped */188)),d=l(a(/*! ./internal/skate */5));function l(t){return t&&t.__esModule?t:{default:t}}var f=window.skateTemplateHtml,c=/#.*/,p="_internal-aui-tabs-",b='.aui-tabs.horizontal-tabs[data-aui-responsive]:not([data-aui-responsive="false"]), aui-tabs[responsive]:not([responsive="false"])';var v={totalTabsWidth:function(t,e){var a=this.totalVisibleTabWidth(t),i=0;return e.find("li").each(function(t,e){i+=parseInt(e.getAttribute("data-aui-tab-width"))}),a+i},totalVisibleTabWidth:function(t){var e=0;return t.each(function(t,a){e+=(0,n.default)(a).outerWidth()}),e},removeResponsiveDropdown:function(t,e){t.remove(),e.remove()},createResponsiveDropdownTrigger:function(t,e){var a='<li class="menu-item aui-tabs-responsive-trigger-item"><a class="aui-dropdown2-trigger aui-tabs-responsive-trigger aui-dropdown2-trigger-arrowless" id="aui-tabs-responsive-trigger-'+e+'" aria-haspopup="true" aria-controls="aui-tabs-responsive-dropdown-'+e+'" href="aui-tabs-responsive-dropdown-'+e+'">...</a></li>';return t.append(a),t.find(".aui-tabs-responsive-trigger-item")},createResponsiveDropdown:function(t,e){var a='<div class="aui-dropdown2 aui-style-default aui-tabs-responsive-dropdown" id="aui-tabs-responsive-dropdown-'+e+'"><ul></ul></div>';return t.append(a),t.find("#aui-tabs-responsive-dropdown-"+e)},findNewVisibleTabs:function(t,e,a){function i(t,e,a){return t+e<=a}for(var r=0,s=0;i(r,a,e)&&s<t.length;s++){r+=(0,n.default)(t[s]).outerWidth(!0)}return t.slice(0,s-1)},moveVisibleTabs:function(t,e,a){for(var i=a.find("a").attr("aria-controls"),r=(0,n.default)("#"+i),s=this.findNewVisibleTabs(t,e.outerWidth(),a.parent().outerWidth(!0)),o=s.length-1,u=t.length-1;u>=o;u--){var d=(0,n.default)(t[u]);this.moveTabToResponsiveDropdown(d,r,a)}return(0,n.default)(s)},moveTabToResponsiveDropdown:function(t,e,a){var i=t.find("a");t.attr("data-aui-tab-width",t.outerWidth(!0)),i.addClass("aui-dropdown2-radio aui-tabs-responsive-item"),t.hasClass("active-tab")&&(i.addClass("aui-dropdown2-checked"),a.addClass("active-tab")),e.find("ul").prepend(t)},moveInvisibleTabs:function(t,e,a){function i(t){return t>0}for(var r=0;i(e)&&r<t.length;r++){var s=(0,n.default)(t[r]),o=parseInt(s.attr("data-aui-tab-width"),10);o<e&&this.moveTabOutOfDropdown(s,a),e-=o}},moveTabOutOfDropdown:function(t,e){t.find("a").hasClass("aui-dropdown2-checked")&&(t.addClass("active-tab"),e.removeClass("active-tab")),t.children("a").removeClass("aui-dropdown2-radio aui-tabs-responsive-item aui-dropdown2-checked"),e.before(t)}};function h(t){var e=(0,n.default)(t);if(!e.hasClass("aui-tabs-responsive-trigger")){var a=(0,n.default)(e.attr("href").match(c)[0]);a.addClass("active-pane").attr("aria-hidden","false").siblings(".tabs-pane").removeClass("active-pane").attr("aria-hidden","true");var i=e.parents(".aui-tabs").find(".aui-tabs-responsive-trigger-item a").attr("aria-controls"),r=(0,n.default)(document).find("#"+i);if(r.find("li a").attr("aria-checked",!1).removeClass("checked aui-dropdown2-checked"),r.find("li").removeClass("active-tab"),e.parent("li.menu-item").addClass("active-tab").siblings(".menu-item").removeClass("active-tab"),e.hasClass("aui-tabs-responsive-item")){var s=a.parent(".aui-tabs").find("li.menu-item:not(.aui-tabs-responsive-trigger-item)");s.removeClass("active-tab"),s.find("a").removeClass("checked").removeAttr("aria-checked")}e.hasClass("aui-tabs-responsive-item")&&a.parent(".aui-tabs").find("li.menu-item.aui-tabs-responsive-trigger-item").addClass("active-tab"),e.closest(".tabs-menu").find("a").attr("aria-selected","false"),e.attr("aria-selected","true"),e.trigger("tabSelect",{tab:e,pane:a})}}function m(t){return void 0!==t.attr("data-aui-persist")&&"false"!==t.attr("data-aui-persist")}function g(t){var e=t.attr("id"),a=t.attr("data-aui-persist");return p+(e||"")+(a&&"true"!==a?"-"+a:"")}function w(t){A.change((0,n.default)(t.target).closest("a")),t&&t.preventDefault()}function C(t){t.forEach(function(t,e){!function(t,e){var a=(0,n.default)(t),i=a.find(".tabs-menu").first(),r=i.find("li:not(.aui-tabs-responsive-trigger-item)"),s=i.find(".aui-tabs-responsive-trigger").parent(),o=s.find("a"),u=o.attr("aria-controls"),d=(0,n.default)(document).find("#"+u).attr("aria-checked",!1),l=d.length>0,f=v.totalTabsWidth(r,d)>a.outerWidth();if(!l&&f&&(s=v.createResponsiveDropdownTrigger(i,e),d=v.createResponsiveDropdown(a,e)),o.attr("aria-controls","aui-tabs-responsive-dropdown-"+e),o.attr("id","aui-tabs-responsive-trigger-"+e),o.attr("href","aui-tabs-responsive-trigger-"+e),d.attr("id","aui-tabs-responsive-dropdown-"+e),f){var c=v.moveVisibleTabs(r.toArray(),a,s),p=v.totalVisibleTabWidth(c),b=a.outerWidth()-p-s.outerWidth(!0);if(b>0){var h=d.find("li");v.moveInvisibleTabs(h.toArray(),b,s)}d.on("click","a",w),i.is(":visible")&&i.hide().show()}l&&!f&&(d.find("li").each(function(){v.moveTabOutOfDropdown((0,n.default)(this),s)}),v.removeResponsiveDropdown(d,s))}(t,e)})}function T(){var t=(0,r.default)(C,200),e=(0,n.default)(b).toArray();C(e),(0,n.default)(window).resize(function(){t(e)})}function y(t){var e=(0,n.default)(t);if(t.setAttribute("role","application"),!e.data("aui-tab-events-bound")){var a=e.children("ul.tabs-menu");a.attr("role","tablist"),a.children("li").attr("role","presentation"),a.find("> .menu-item a").each(function(){var t,e,a;t=this,e=(0,n.default)(t),a=e.attr("href"),(0,s.default)(e),e.attr("role","tab"),(0,n.default)(a).attr("aria-labelledby",e.attr("id")),e.parent().hasClass("active-tab")?e.attr("aria-selected","true"):e.attr("aria-selected","false")}),a.on("click","a",w),e.data("aui-tab-events-bound",!0),function(t){[].slice.call(t.querySelectorAll(".tabs-pane")).forEach(W)}(t)}}function _(){var t=(0,n.default)(".aui-tabs:not(.aui-tabs-disabled)");t.each(function(){y(this)}),function(t){for(var e=0,a=t.length;e<a;e++){var r=t.eq(e),n=t.get(e);if(m(r)&&window.localStorage)if(r.attr("id")){var s=window.localStorage.getItem(g(r));if(s){var o=n.querySelector('a[href$="'+s+'"]');o&&h(o)}}else i.warn("A tab group must specify an id attribute if it specifies data-aui-persist.")}}(t)}function W(t){t.setAttribute("role","tabpanel"),t.setAttribute("aria-hidden",(0,n.default)(t).hasClass("active-pane")?"false":"true")}var A={setup:function(){T(),_(),(0,n.default)(".aui-tabs.vertical-tabs").find("a").each(function(){var t=(0,n.default)(this);t.attr("title")||(0,u.default)(t)&&t.attr("title",t.text())})},change:function(t){var e=(0,n.default)(t),a=e.closest(".aui-tabs");h(e),m(a)&&window.localStorage&&function(t){var e=t.closest(".aui-tabs");if(e.attr("id")){var a=t.attr("href");a&&window.localStorage.setItem(g(e),a)}else i.warn("A tab group must specify an id attribute if it specifies data-aui-persist.")}(e)}};(0,n.default)(A.setup);var O=(0,d.default)("aui-tabs",{created:function(t){(0,n.default)(t).addClass("aui-tabs horizontal-tabs"),d.default.init(t),y(t)},template:f('<ul class="tabs-menu">','<content select="li[is=aui-tabs-tab]"></content>',"</ul>",'<content select="aui-tabs-pane"></content>'),prototype:{select:function(t){var e=(0,n.default)(function(t){return t.querySelectorAll("aui-tabs-pane")}(this)).index(t);return e>-1&&A.change(function(t){return t.querySelectorAll("li[is=aui-tabs-tab]")}(this)[e].children[0]),this}}}),k=(0,d.default)("aui-tabs-tab",{extends:"li",created:function(t){(0,n.default)(t).addClass("menu-item")},template:f('<a href="#">',"<strong>","<content></content>","</strong>","</a>")}),D=(0,d.default)("aui-tabs-pane",{attached:function(t){var e=(0,n.default)(function(t){return(0,n.default)(t).closest("aui-tabs").get(0)}(t)),a=(0,n.default)(t),i=e.find("aui-tabs-pane").index(a),r=new k,s=(0,n.default)(r);a.addClass("tabs-pane"),r.firstChild.setAttribute("href","#"+t.id),f.wrap(r).textContent=a.attr("title"),0===i&&a.addClass("active-pane"),a.hasClass("active-pane")&&s.addClass("active-tab"),a.siblings("ul").append(r)},template:f("<content></content>")});(0,o.default)("tabs",A),e.default=A,e.TabContainerEl=O,e.TabPaneEl=D,e.TabItemEl=k},191: /*!*******************************!*\ !*** ./aui.component.tabs.js ***! \*******************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(/*! @atlassian/aui/src/js/aui/tabs */190);Object.keys(i).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return i[t]}})}),a(/*! ./styles/aui.pattern.tabs */65),a(/*! ./aui.component.dropdown2 */50)},65: /*!************************************!*\ !*** ./styles/aui.pattern.tabs.js ***! \************************************/ /*! no static exports found */ /*! all exports used */ /*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(t,e,a){"use strict";a(/*! ./aui.page.reset */2),a(/*! ./aui.page.typography */3),a(/*! @atlassian/aui/src/less/tabs.less */187)}};