{"version":3,"file":"../../components/tabs.js","sources":["components/tabs.js"],"sourcesContent":["\"use strict\";\n\nvar tabsHelper = function () {\n var $window = $(window);\n var currentWindowWidth = $window.width();\n var tabInitDelay = 350;\n var isThrottled = false;\n\n function renderTabs($tabs) {\n var tabsWidth = 0;\n var moreWidth = $tabs.find('.tab.-more').outerWidth(true);\n var space = $tabs.width() - moreWidth;\n $tabs.find('.tab:not(.-more)').each(function () {\n tabsWidth += $(this).outerWidth(true);\n });\n\n if (tabsWidth >= space) {\n var $lastItem = $tabs.find('> .tab:not(.-more)').last();\n $lastItem.attr('data-width', $lastItem.outerWidth(true));\n $lastItem.prependTo($tabs.find('.tab.-more ul'));\n\n if ($lastItem.hasClass('-active')) {\n $tabs.find('.tab.-more').addClass('-active');\n }\n\n renderTabs($tabs);\n } else {\n var $firstMoreElement = $tabs.find('.tab.-more li').first();\n\n if (tabsWidth + $firstMoreElement.data('width') < space) {\n $firstMoreElement.insertBefore($tabs.find('.tab.-more'));\n\n if ($firstMoreElement.hasClass('-active')) {\n $tabs.find('.tab.-more').removeClass('-active');\n }\n }\n }\n\n if ($tabs.find('.tab.-more li').length > 0) {\n $tabs.find('.tab.-more').show();\n } else {\n $tabs.find('.tab.-more').hide();\n }\n }\n\n function initResizableTabs() {\n var $tabsLists = $('.tab-list.-resizable');\n $tabsLists.each(function () {\n var $tabs = $(this);\n renderTabs($tabs);\n });\n }\n\n function throttleTabInit() {\n if ($window.width() !== currentWindowWidth && !isThrottled && $('.tab-list.-resizable').is(\":visible\")) {\n initResizableTabs();\n currentWindowWidth = $window.width();\n isThrottled = true;\n setTimeout(function () {\n isThrottled = false;\n }, tabInitDelay);\n }\n }\n\n function hideMoreMenu(e) {\n var $moreTab = $('.tab.-more');\n\n if (!$moreTab.is(e.target) && $moreTab.has(e.target).length === 0) {\n $moreTab.removeClass('-more-open');\n }\n }\n\n function unbindHandlers() {\n $window.off('resize', throttleTabInit);\n $(document).off('click', '.tab.-more > .tab-title');\n $(document).off('mouseup touchend', hideMoreMenu);\n }\n\n function bindHandlers() {\n $window.on('resize', throttleTabInit);\n $(document).on('click', '.tab.-more > .tab-title', function () {\n var $this = $(this);\n $this.parent().toggleClass('-more-open');\n });\n $(document).on('mouseup touchend', hideMoreMenu);\n }\n\n function init() {\n unbindHandlers();\n bindHandlers();\n }\n\n return {\n init: init,\n initResizableTabs: initResizableTabs\n };\n}();\n\n$(document).ready(function () {\n tabsHelper.init();\n});"],"names":["tabsHelper","$window","$","window","currentWindowWidth","width","tabInitDelay","isThrottled","initResizableTabs","each","renderTabs","$tabs","$firstMoreElement","tabsWidth","moreWidth","find","outerWidth","space","this","$lastItem","last","attr","prependTo","hasClass","addClass","first","data","insertBefore","removeClass","length","show","hide","throttleTabInit","is","setTimeout","hideMoreMenu","e","$moreTab","target","has","init","off","document","on","parent","toggleClass","ready"],"mappings":"aAEA,IAAIA,WAAa,WACf,IAAIC,EAAUC,EAAEC,QACZC,EAAqBH,EAAQI,QAC7BC,EAAe,IACfC,GAAc,EAuClB,SAASC,IACUN,EAAE,wBACRO,KAAK,YAvClB,SAASC,EAAWC,GAClB,IAkBMC,EAlBFC,EAAY,EACZC,EAAYH,EAAMI,KAAK,cAAcC,YAAW,GAChDC,EAAQN,EAAMN,QAAUS,EAC5BH,EAAMI,KAAK,oBAAoBN,KAAK,WAClCI,GAAaX,EAAEgB,MAAMF,YAAW,KAGjBC,GAAbJ,IACEM,EAAYR,EAAMI,KAAK,sBAAsBK,QACvCC,KAAK,aAAcF,EAAUH,YAAW,IAClDG,EAAUG,UAAUX,EAAMI,KAAK,kBAE3BI,EAAUI,SAAS,YACrBZ,EAAMI,KAAK,cAAcS,SAAS,WAGpCd,EAAWC,KAEPC,EAAoBD,EAAMI,KAAK,iBAAiBU,QAEhDZ,EAAYD,EAAkBc,KAAK,SAAWT,IAChDL,EAAkBe,aAAahB,EAAMI,KAAK,eAEtCH,EAAkBW,SAAS,YAC7BZ,EAAMI,KAAK,cAAca,YAAY,aAKF,EAArCjB,EAAMI,KAAK,iBAAiBc,OAC9BlB,EAAMI,KAAK,cAAce,OAEzBnB,EAAMI,KAAK,cAAcgB,OAQzBrB,CADYR,EAAEgB,SAKlB,SAASc,IACH/B,EAAQI,UAAYD,IAAuBG,GAAeL,EAAE,wBAAwB+B,GAAG,cACzFzB,IACAJ,EAAqBH,EAAQI,QAC7BE,GAAc,EACd2B,WAAW,WACT3B,GAAc,GACbD,IAIP,SAAS6B,EAAaC,GACpB,IAAIC,EAAWnC,EAAE,cAEZmC,EAASJ,GAAGG,EAAEE,SAA6C,IAAlCD,EAASE,IAAIH,EAAEE,QAAQT,QACnDQ,EAAST,YAAY,cAwBzB,MAAO,CACLY,KANF,WAdEvC,EAAQwC,IAAI,SAAUT,GACtB9B,EAAEwC,UAAUD,IAAI,QAAS,2BACzBvC,EAAEwC,UAAUD,IAAI,mBAAoBN,GAIpClC,EAAQ0C,GAAG,SAAUX,GACrB9B,EAAEwC,UAAUC,GAAG,QAAS,0BAA2B,WACrCzC,EAAEgB,MACR0B,SAASC,YAAY,gBAE7B3C,EAAEwC,UAAUC,GAAG,mBAAoBR,IAUnC3B,kBAAmBA,GA5FN,GAgGjBN,EAAEwC,UAAUI,MAAM,WAChB9C,WAAWwC"}