@atlassian/aui
Version:
Atlassian User Interface Framework
38 lines • 8.29 kB
JavaScript
/*!!
* @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=[77],exports.modules={220:
/*!*************************************!*\
!*** ../src/js/aui/header-async.js ***!
\*************************************/
/*! no static exports found */
/*! all exports used */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(i(/*! ./internal/header/create-header */69)),o=r(i(/*! ./internal/skate */5));function r(e){return e&&e.__esModule?e:{default:e}}var s=(0,o.default)("aui-header",{type:o.default.type.CLASSNAME,created:function(e){(0,n.default)(e)}});t.default=s,e.exports=t.default},221:
/*!*******************************!*\
!*** ../src/js/aui/header.js ***!
\*******************************/
/*! no static exports found */
/*! all exports used */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(i(/*! ./jquery */0)),o=a(i(/*! ./internal/header/create-header */69)),r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(/*! ./internal/deprecation */9)),s=a(i(/*! ./internal/globalize */1));function a(e){return e&&e.__esModule?e:{default:e}}function d(){(0,n.default)(".aui-header").each(function(){(0,o.default)(this)})}(0,n.default)(d);var u={};u.setup=r.fn(d,"responsiveheader.setup",{removeInVersion:"8.0.0",sinceVersion:"5.8.0",extraInfo:"No need to manually initialise anymore as this is now a web component."}),(0,s.default)("responsiveheader",u),t.default=u,e.exports=t.default},223:
/*!**********************************************!*\
!*** ../src/less/aui-header-responsive.less ***!
\**********************************************/
/*! no static exports found */
/*! all exports used */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){},245:
/*!***************************************!*\
!*** ./aui.component.async-header.js ***!
\***************************************/
/*! no static exports found */
/*! all exports used */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Header=void 0,i(/*! ./aui.component.static-header */244),i(/*! ./aui.component.trigger */29),i(/*! ./aui.component.dropdown2 */50),i(/*! @atlassian/aui/src/less/aui-header-responsive.less */223),i(/*! @atlassian/aui/src/js/aui/header.js */221);var n,o=i(/*! @atlassian/aui/src/js/aui/header-async */220),r=(n=o)&&n.__esModule?n:{default:n};t.Header=r.default},69:
/*!******************************************************!*\
!*** ../src/js/aui/internal/header/create-header.js ***!
\******************************************************/
/*! no static exports found */
/*! all exports used */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=u(i(/*! ../../jquery */0)),o=u(i(/*! ../../polyfills/custom-event */19)),r=u(i(/*! ../../debounce */48)),s=u(i(/*! ../../i18n */10)),a=u(i(/*! ../skate */5)),d=u(i(/*! skatejs-template-html */18));function u(e){return e&&e.__esModule?e:{default:e}}var h=(0,n.default)(window);function l(e){var t,i=this;this.element=e,this.$element=(0,n.default)(e),this.index=(0,n.default)("aui-header, .aui-header").index(e),this.$secondaryNav=this.$element.find(".aui-header-secondary .aui-nav").first(),this.menuItems=[],this.totalWidth=0,this.$moreMenu=void 0,this.rightMostNavItemIndex=void 0,this.$applicationLogo=this.$element.find("#logo"),this.moreMenuWidth=0,this.primaryButtonsWidth=0,this.$headerFind=(t=(0,n.default)(i.$element[0].querySelector(".aui-header-primary")),function(e){return t.find(e)})}l.prototype={init:function(){var e=this;this.element.setAttribute("data-aui-responsive","true"),this.$headerFind(".aui-button").parent().each(function(){e.primaryButtonsWidth+=(0,n.default)(this).outerWidth(!0)}),this.$headerFind(".aui-nav > li > a:not(.aui-button)").each(function(){var t=(0,n.default)(this).parent(),i=t.outerWidth(!0);e.totalWidth+=i,e.menuItems.push({$element:t,outerWidth:i})}),this.rightMostNavItemIndex=this.menuItems.length-1,h.on("resize",this._resizeHandler=(0,r.default)(function(){e.constructResponsiveDropdown()},100));var t=this.$applicationLogo.find("img");0!==t.length&&(t.attr("data-aui-responsive-header-index",this.index),t.on("load",function(){e.constructResponsiveDropdown()})),this.constructResponsiveDropdown(),this.$headerFind(".aui-nav").css("width","auto")},destroy:function(){h.off("resize",this._resizeHandler)},calculateAvailableWidth:function(){return(this.$secondaryNav.is(":visible")?this.$secondaryNav.offset().left:this.$element.outerWidth())-(this.$applicationLogo.offset().left+this.$applicationLogo.outerWidth(!0)+this.primaryButtonsWidth)},showResponsiveDropdown:function(){void 0===this.$moreMenu&&(this.$moreMenu=this.createResponsiveDropdownTrigger()),this.$moreMenu.css("display","")},hideResponsiveDropdown:function(){void 0!==this.$moreMenu&&this.$moreMenu.css("display","none")},constructResponsiveDropdown:function(){if(this.menuItems.length){var e,t=this.calculateAvailableWidth(this.$element,this.primaryButtonsWidth);if(t>this.totalWidth)this.showAll();else{this.showResponsiveDropdown(),e=t-this.moreMenuWidth;for(var i=-1;e-this.menuItems[i+1].outerWidth>=0;)e-=this.menuItems[i+1].outerWidth,i++;i<this.rightMostNavItemIndex?this.moveToResponsiveDropdown(this.rightMostNavItemIndex-i):this.rightMostNavItemIndex<i&&this.moveOutOfResponsiveDropdown(i-this.rightMostNavItemIndex)}}},createResponsiveDropdownTrigger:function(){var e=document.createElement("li"),t=document.createElement("aui-dropdown-menu");t.id="aui-responsive-header-dropdown-"+this.index,a.default.init(t);var i=document.createElement("aui-section");i.id="aui-responsive-header-dropdown-list-"+this.index,a.default.init(i),d.default.wrap(t).appendChild(i);var o,r,u=(o=t,(r=document.createElement("a")).setAttribute("class","aui-dropdown2-trigger"),r.setAttribute("href","#"),r.id=o.id+"-trigger",r.setAttribute("aria-controls",o.id),r.innerHTML=s.default.getText("aui.words.more"),r);return e.appendChild(u),e.appendChild(t),0===this.primaryButtonsWidth?this.$headerFind(".aui-nav").append(e):this.$headerFind(".aui-nav > li > .aui-button:first").parent().before(e),this.moreMenuWidth=(0,n.default)(e).outerWidth(!0),(0,n.default)(e)},moveOutOfResponsiveDropdown:function(e){if(!(e<=0)){for(var t=(0,n.default)("#aui-responsive-header-dropdown-"+this.index),i=this.rightMostNavItemIndex+1,o=this.rightMostNavItemIndex+e,r=i;r<=o;r++){var s=this.menuItems[r].$element,a=s.children("a");if(a.attr("aria-controls")){var d=(0,n.default)(document.getElementById(a.attr("aria-controls")));d.removeClass("aui-dropdown2-sub-menu"),s.append(d)}t.find("aui-item-link:first").remove(),s.insertBefore(this.$moreMenu)}this.rightMostNavItemIndex+=e}},moveToResponsiveDropdown:function(e){if(!(e<=0)){for(var t=d.default.wrap(this.$moreMenu[0].querySelector("aui-section")),i=this.rightMostNavItemIndex,r=this.rightMostNavItemIndex-e+1,s=i;s>=r;s--){var u=this.menuItems[s].$element,h=u.children("a");a.default.init(h);var l=document.createElement("aui-item-link");if(l.setAttribute("href",h.attr("href")),h.attr("aria-controls")){var f=(0,n.default)(document.getElementById(h.attr("aria-controls")));l.setAttribute("for",h.attr("aria-controls")),f.addClass("aui-dropdown2-sub-menu"),f.appendTo("body")}a.default.init(l),d.default.wrap(l).textContent=h.text(),u.detach(),t.insertBefore(l,t.firstChild),this.element.dispatchEvent(new o.default("aui-responsive-menu-item-created",{bubbles:!0,detail:{originalItem:u[0],newItem:l}}))}this.rightMostNavItemIndex-=e}},showAll:function(){this.moveOutOfResponsiveDropdown(this.menuItems.length-1-this.rightMostNavItemIndex),this.hideResponsiveDropdown()}},t.default=function(e){var t=e._header;return t instanceof l||((t=new l(e)).init(),e._header=t),t},e.exports=t.default}};