/** * jquery-bootstrap-scrolling-tabs * @version v0.7.1 * @link https://github.com/mikejacobson/jquery-bootstrap-scrolling-tabs * @author Mike Jacobson * @license MIT License, http://www.opensource.org/licenses/MIT */ (function(e,i){var a={CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL:50,SCROLL_ARROW_WIDTH:20,SCROLL_OFFSET_FRACTION:6,DATA_KEY_DDMENU_MODIFIED:"scrtabsddmenumodified",DATA_KEY_IS_MOUSEDOWN:"scrtabsismousedown",CSS_CLASSES:{SCROLL_ARROW_DISABLE:"scrtabs-disable"},SLIDE_DIRECTION:{LEFT:1,RIGHT:2},EVENTS:{CLICK:"click.scrtabs",DROPDOWN_MENU_HIDE:"hide.bs.dropdown.scrtabs",DROPDOWN_MENU_SHOW:"show.bs.dropdown.scrtabs",FORCE_REFRESH:"forcerefresh.scrtabs",MOUSEDOWN:"mousedown.scrtabs touchstart.scrtabs",MOUSEUP:"mouseup.scrtabs touchend.scrtabs",WINDOW_RESIZE:"resize.scrtabs",TABS_READY:"ready.scrtabs"}};(function(x){var w=function(B,y,z){var C;return function A(){var F=this,E=arguments;function D(){if(!z){B.apply(F,E)}C=null}if(C){clearTimeout(C)}else{if(z){B.apply(F,E)}}C=setTimeout(D,y||100)}};e.fn[x]=function(y){return y?this.bind(a.EVENTS.WINDOW_RESIZE,w(y)):this.trigger(x)}})("smartresize");function d(x){var w=this;w.stc=x}(function(w){w.initElements=function(y){var x=this;x.setElementReferences();x.setEventListeners()};w.refreshAllElementSizes=function(){var y=this,B=y.stc,A=B.scrollMovement,C=B.scrollArrowsVisible,D={didScrollToActiveTab:false},x=false,z;y.setElementWidths();y.setScrollArrowVisibility();if(B.scrollArrowsVisible){z=A.getMinPos();x=A.scrollToActiveTab({isOnWindowResize:true});if(!x){A.refreshScrollArrowsDisabledState();if(B.movableContainerLeftPos li");z.$slideLeftArrow=z.reverseScroll?A:B;z.$slideRightArrow=z.reverseScroll?B:A;z.$scrollArrows=z.$slideLeftArrow.add(z.$slideRightArrow);z.$win=e(i)};w.setElementWidths=function(){var x=this,y=x.stc;y.winWidth=y.$win.width();y.scrollArrowsCombinedWidth=y.$slideLeftArrow.outerWidth()+y.$slideRightArrow.outerWidth();x.setFixedContainerWidth();x.setMovableContainerWidth()};w.setEventListeners=function(){var x=this,z=x.stc,y=z.eventHandlers,A=a.EVENTS;z.$slideLeftArrow.off(".scrtabs").on(A.MOUSEDOWN,function(B){y.handleMousedownOnSlideMovContainerLeftArrow.call(y,B)}).on(A.MOUSEUP,function(B){y.handleMouseupOnSlideMovContainerLeftArrow.call(y,B)}).on(A.CLICK,function(B){y.handleClickOnSlideMovContainerLeftArrow.call(y,B)});z.$slideRightArrow.off(".scrtabs").on(A.MOUSEDOWN,function(B){y.handleMousedownOnSlideMovContainerRightArrow.call(y,B)}).on(A.MOUSEUP,function(B){y.handleMouseupOnSlideMovContainerRightArrow.call(y,B)}).on(A.CLICK,function(B){y.handleClickOnSlideMovContainerRightArrow.call(y,B)});if(z.tabClickHandler){z.$tabsLiCollection.find('a[data-toggle="tab"]').off(A.CLICK).on(A.CLICK,z.tabClickHandler)}z.$win.off(".scrtabs").smartresize(function(B){y.handleWindowResize.call(y,B)});e("body").on(a.EVENTS.FORCE_REFRESH,z.elementsHandler.refreshAllElementSizes.bind(z.elementsHandler))};w.setFixedContainerWidth=function(){var x=this,y=x.stc,z=y.$tabsContainer.get(0).getBoundingClientRect();y.fixedContainerWidth=z.width||(z.right-z.left);y.fixedContainerWidth=y.fixedContainerWidth*y.widthMultiplier;y.$fixedContainer.width(y.fixedContainerWidth)};w.setFixedContainerWidthForHiddenScrollArrows=function(){var x=this,y=x.stc;y.$fixedContainer.width(y.fixedContainerWidth)};w.setFixedContainerWidthForVisibleScrollArrows=function(){var x=this,y=x.stc;y.$fixedContainer.width(y.fixedContainerWidth-y.scrollArrowsCombinedWidth)};w.setMovableContainerWidth=function(){var x=this,z=x.stc,y=z.$tabsUl.find("> li");z.movableContainerWidth=0;if(y.length){y.each(function A(){var C=e(this),B=0;if(z.isNavPills){B=parseInt(C.css("margin-left"),10)+parseInt(C.css("margin-right"),10)}z.movableContainerWidth+=(C.outerWidth()+B)});z.movableContainerWidth+=1;if(z.movableContainerWidthy.fixedContainerWidth;if(z&&!y.scrollArrowsVisible){y.$scrollArrows.show();y.scrollArrowsVisible=true}else{if(!z&&y.scrollArrowsVisible){y.$scrollArrows.hide();y.scrollArrowsVisible=false}}if(y.scrollArrowsVisible){x.setFixedContainerWidthForVisibleScrollArrows()}else{x.setFixedContainerWidthForHiddenScrollArrows()}}}(d.prototype));function v(x){var w=this;w.stc=x}(function(w){w.handleClickOnSlideMovContainerLeftArrow=function(z){var y=this,x=y.stc;x.scrollMovement.incrementMovableContainerLeft()};w.handleClickOnSlideMovContainerRightArrow=function(z){var y=this,x=y.stc;x.scrollMovement.incrementMovableContainerRight() };w.handleMousedownOnSlideMovContainerLeftArrow=function(z){var y=this,x=y.stc;x.$slideLeftArrow.data(a.DATA_KEY_IS_MOUSEDOWN,true);x.scrollMovement.continueSlideMovableContainerLeft()};w.handleMousedownOnSlideMovContainerRightArrow=function(z){var y=this,x=y.stc;x.$slideRightArrow.data(a.DATA_KEY_IS_MOUSEDOWN,true);x.scrollMovement.continueSlideMovableContainerRight()};w.handleMouseupOnSlideMovContainerLeftArrow=function(z){var y=this,x=y.stc;x.$slideLeftArrow.data(a.DATA_KEY_IS_MOUSEDOWN,false)};w.handleMouseupOnSlideMovContainerRightArrow=function(z){var y=this,x=y.stc;x.$slideRightArrow.data(a.DATA_KEY_IS_MOUSEDOWN,false)};w.handleWindowResize=function(A){var y=this,x=y.stc,z=x.$win.width();if(z===x.winWidth){return false}x.winWidth=z;x.elementsHandler.refreshAllElementSizes()}}(v.prototype));function g(x){var w=this;w.stc=x}(function(w){w.continueSlideMovableContainerLeft=function(){var y=this,x=y.stc;setTimeout(function(){if(x.movableContainerLeftPos<=y.getMinPos()||!x.$slideLeftArrow.data(a.DATA_KEY_IS_MOUSEDOWN)){return}if(!y.incrementMovableContainerLeft()){y.continueSlideMovableContainerLeft()}},a.CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL)};w.continueSlideMovableContainerRight=function(){var y=this,x=y.stc;setTimeout(function(){if(x.movableContainerLeftPos>=0||!x.$slideRightArrow.data(a.DATA_KEY_IS_MOUSEDOWN)){return}if(!y.incrementMovableContainerRight()){y.continueSlideMovableContainerRight()}},a.CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL)};w.decrementMovableContainerLeftPos=function(x){var z=this,y=z.stc;y.movableContainerLeftPos-=(y.fixedContainerWidth/a.SCROLL_OFFSET_FRACTION);if(y.movableContainerLeftPos0){y.movableContainerLeftPos=0}else{if(y.scrollToTabEdge){z.setMovableContainerLeftPosToTabEdge(a.SLIDE_DIRECTION.RIGHT)}}}z.slideMovableContainerToLeftPos();z.enableSlideLeftArrow();return(y.movableContainerLeftPos===0)};w.refreshScrollArrowsDisabledState=function(){var y=this,x=y.stc;if(!x.disableScrollArrowsOnFullyScrolled||!x.scrollArrowsVisible){return}if(x.movableContainerLeftPos>=0){y.disableSlideRightArrow();y.enableSlideLeftArrow();return}if(x.movableContainerLeftPos<=y.getMinPos()){y.disableSlideLeftArrow();y.enableSlideRightArrow();return}y.enableSlideLeftArrow();y.enableSlideRightArrow()};w.scrollToActiveTab=function(C){var A=this,z=A.stc,B=20,E,D,y,x;if(!z.scrollArrowsVisible){return}E=z.$tabsUl.find("li.active");if(!E.length){return}D=E.offset().left-z.$fixedContainer.offset().left;y=D+E.outerWidth();x=z.fixedContainerWidth-B;if(y>x){z.movableContainerLeftPos-=(y-x+a.SCROLL_ARROW_WIDTH);A.slideMovableContainerToLeftPos();return true}else{if(DB){y.movableContainerLeftPos=(x===a.SLIDE_DIRECTION.RIGHT)?-(A-C):-A;return false}})};w.slideMovableContainerToLeftPos=function(){var z=this,y=z.stc,x=z.getMinPos(),A;if(y.movableContainerLeftPos>0){y.movableContainerLeftPos=0}else{if(y.movableContainerLeftPos')}function w(F,G){var D=e('
'),H=e('
'),J=e('
'),E=e('
'),I=e('
');if(G.disableScrollArrowsOnFullyScrolled){H.add(J).addClass("scrtabs-disable")}return D.append(H,E.append(I.append(F)),J)}function C(D,E){return e('').attr("href","#"+D[E.paneId]).html(D[E.title])}function y(){return e('
')}function z(D,H,E){var G=e('
  • '),F=C(D,H).appendTo(G);if(D[H.disabled]){G.addClass("disabled");F.attr("data-toggle","")}else{if(E&&D[H.active]){G.addClass("active")}}return G}function B(D,G,F){var E=e('
    ').attr("id",D[G.paneId]).html(D[G.content]);if(F&&D[G.active]){E.addClass("active")}return E}}());var r=(function(){return{didTabOrderChange:z,getIndexOfClosestEnabledTab:w,getTabIndexByPaneId:y,storeDataOnLiEl:x};function z(A,C,D){var B=false;A.each(function(F){var E=y(C,D.paneId,e(this).data("tab")[D.paneId]);if((E>-1)&&(E!==F)){B=true;return false}});return B}function w(A,E){var F=A.length-1,B=-1,D=0,C=0;while((B===-1)&&(C>=0)){if((((C=E+(++D))<=F)&&!A.eq(C).hasClass("disabled"))||(((C=E-D)>=0)&&!A.eq(C).hasClass("disabled"))){B=C}}return B}function y(D,C,B){var A=-1;D.some(function(F,E){if(F[C]===B){A=E;return true}});return A}function x(C,B,A){C.data({tab:e.extend({},B[A]),index:A})}}());function k(A,y,B){var C=y.tabs,G={paneId:y.propPaneId,title:y.propTitle,active:y.propActive,disabled:y.propDisabled,content:y.propContent},z=y.ignoreTabPanes,D=C.length&&C[0][G.content]!==undefined,F=m.getNewElNavTabs(),E=m.getNewElTabContent(),x,w=z?null:function(){x.after(E)};if(!C.length){return}C.forEach(function(I,H){m.getNewElTabLi(I,G,true).appendTo(F);if(!z&&D){m.getNewElTabPane(I,G,true).appendTo(E)}});x=l(F,y,B,w);x.appendTo(A);A.data({scrtabs:{tabs:C,propNames:G,ignoreTabPanes:z,hasTabContent:D,scroller:x}});x.find(".nav-tabs > li").each(function(H){r.storeDataOnLiEl(e(this),C,H)})}function c(y){var z=y.updatedTabsArray,E=y.propNames,A=y.ignoreTabPanes,F=y.options,w=y.$currTabLis,D=y.$navTabs,B=A?null:y.$currTabContentPanesContainer,C=A?null:y.$currTabContentPanes,x=false;z.forEach(function(H,G){var K=w.find('a[href="#'+H[E.paneId]+'"]'),J=(G>=w.length),I;if(!K.length){x=true;K=m.getNewElTabLi(H,E,F.forceActiveTab);r.storeDataOnLiEl(K,z,G);if(J){K.appendTo(D)}else{K.insertBefore(w.eq(G))}if(!A&&H[E.content]!==undefined){I=m.getNewElTabPane(H,E,F.forceActiveTab);if(J){I.appendTo(B)}else{I.insertBefore(C.eq(G))}}}});return x}function p(z){var D=z.tabLi,B=z.ignoreTabPanes,C=D.$li,A=D.$contentPane,y=D.origTabData,w=D.newTabData,E=z.propNames,x=false;if(y[E.title]!==w[E.title]){C.find('a[role="tab"]').html(y[E.title]=w[E.title]);x=true}if(z.options.forceActiveTab){C[w[E.active]?"addClass":"removeClass"]("active");A[w[E.active]?"addClass":"removeClass"]("active");y[E.active]=w[E.active];x=true}if(!B&&y[E.content]!==w[E.content]){A.html(y[E.content]=w[E.content]);x=true}return x}function j(y){var x=y.tabLi,z=y.ignoreTabPanes,A=x.$li,w;if(x.newIdx!==-1){return false}if(A.hasClass("active")){w=r.getIndexOfClosestEnabledTab(y.$currTabLis,x.currDomIdx);if(w>-1){y.$currTabLis.eq(w).addClass("active"); if(!z){y.$currTabContentPanes.eq(w).addClass("active")}}}A.remove();if(!z){x.$contentPane.remove()}return true}function n(y){var x=y.$currTabLis,w=y.updatedTabsArray,C=y.propNames,B=y.ignoreTabPanes,A=[],z=B?null:[];if(!r.didTabOrderChange(x,w,C)){return false}w.forEach(function(F,E){var D=F[C.paneId];A.push(x.find('a[role="tab"][href="#'+D+'"]').parent("li"));if(!B){z.push(e("#"+D))}});y.$navTabs.append(A);if(!B){y.$currTabContentPanesContainer.append(z)}return true}function o(z){var x=z.$currTabLis,w=z.updatedTabsArray,A=z.propNames,y=false;x.each(function(F){var E=e(this),D=E.data("tab"),B=r.getTabIndexByPaneId(w,A.paneId,D[A.paneId]),C=(B>-1)?w[B]:null;z.tabLi={$li:E,currDomIdx:F,newIdx:B,$contentPane:m.getElTabPaneForLi(E),origTabData:D,newTabData:C};if(j(z)){y=true;return}if(p(z)){y=true}});return y}function b(){var y=e(this),x=y.data("scrtabs"),w;if(!x){return}x.scroller.off(a.EVENTS.DROPDOWN_MENU_SHOW).off(a.EVENTS.DROPDOWN_MENU_HIDE);x.scroller.find("[data-"+a.DATA_KEY_DDMENU_MODIFIED+"]").css({display:"",left:"",top:""}).off(a.EVENTS.CLICK).removeAttr("data-"+a.DATA_KEY_DDMENU_MODIFIED);if(x.scroller.hasTabClickHandler){y.find('a[data-toggle="tab"]').off(".scrtabs")}if(x.isWrapperOnly){w=y.parents(".scrtabs-tab-container");if(w.length){w.replaceWith(y)}}else{if(x.scroller&&x.scroller.initTabs){x.scroller.initTabs=null}y.find(".scrtabs-tab-container").add(".tab-content").remove()}y.removeData("scrtabs");e(i).off(a.EVENTS.WINDOW_RESIZE);e("body").off(a.EVENTS.FORCE_REFRESH)}function s(z){var y;z.on(a.EVENTS.DROPDOWN_MENU_SHOW,w).on(a.EVENTS.DROPDOWN_MENU_HIDE,x);function x(A){e(A.target).append(y.off(a.EVENTS.CLICK))}function w(G){var H=e(G.target),A=H.offset(),F=z.find('li[role="presentation"].active'),D,C,B;y=H.find(".dropdown-menu").attr("data-"+a.DATA_KEY_DDMENU_MODIFIED,true);if(F[0]!==H[0]){y.find("li.active").removeClass("active")}y.on(a.EVENTS.CLICK,'a[role="tab"]',E);e("body").append(y);D=y.width()+A.left;C=z.width()-(a.SCROLL_ARROW_WIDTH+1);B=A.left;if(D>C){B-=(D-C)}y.css({display:"block",top:A.top+H.outerHeight()-2,left:B});function E(K){var M=e(this),J=M.parent("li"),L=J.parent(".dropdown-menu"),I=M.attr("href");if(J.hasClass("active")){return}z.find("li.active").not(H).add(L.find("li.active")).removeClass("active");H.add(J).addClass("active");e(".tab-content .tab-pane.active").removeClass("active");e(I).addClass("active")}}}function f(C,x){var y=C.data().scrtabs,w=y.scroller,D=C.find(".scrtabs-tab-container .nav-tabs"),B=C.find(".tab-content"),A=false,z={options:x,updatedTabsArray:y.tabs,propNames:y.propNames,ignoreTabPanes:y.ignoreTabPanes,$navTabs:D,$currTabLis:D.find("> li"),$currTabContentPanesContainer:B,$currTabContentPanes:B.find(".tab-pane")};if(c(z)){A=true}if(n(z)){A=true}if(o(z)){A=true}if(A){w.initTabs()}return A}function q(x,w){if(!x.data("scrtabs")){return}if(x.data("scrtabs").isWrapperOnly||!f(x,w)){e("body").trigger(a.EVENTS.FORCE_REFRESH)}}function h(){var x=e(this),w=x.data("scrtabs");if(!w){return}w.scroller.scrollToActiveTab()}function l(y,z,C,x){var B=m.getNewElScrollerElementWrappingNavTabsInstance(y.clone(true),z),w=new u(B),A=y.data("scrtabs");if(!A){y.data("scrtabs",{scroller:B})}else{A.scroller=B}y.replaceWith(B.css("visibility","hidden"));if(z.tabClickHandler&&(typeof z.tabClickHandler==="function")){B.hasTabClickHandler=true;w.tabClickHandler=z.tabClickHandler}B.initTabs=function(){w.initTabs(z,B,C,x)};B.scrollToActiveTab=function(){w.scrollToActiveTab(z)};B.initTabs();s(B);return B}var t={destroy:function(){var w=this;return w.each(b)},init:function(w){var z=this,y=z.length-1,x=e.extend({},e.fn.scrollingTabs.defaults,w||{});if(!x.tabs){return z.each(function(B){var A={isWrapperOnly:true},C=e(this).data({scrtabs:A}),D=(B