fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [16027] update tabs from upstream


From: sigurdne
Subject: [Fmsystem-commits] [16027] update tabs from upstream
Date: Sun, 27 Nov 2016 17:05:03 +0000 (UTC)

Revision: 16027
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16027
Author:   sigurdne
Date:     2016-11-27 17:05:03 +0000 (Sun, 27 Nov 2016)
Log Message:
-----------
update tabs from upstream

Modified Paths:
--------------
    trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.js
    trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.min.js

Modified: trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.js
===================================================================
--- trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.js      2016-11-26 
16:10:36 UTC (rev 16026)
+++ trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.js      2016-11-27 
17:05:03 UTC (rev 16027)
@@ -1,11 +1,3 @@
-/*!
- *  Project: jquery.responsiveTabs.js
- *  Description: A plugin that creates responsive tabs, optimized for all 
devices
- *  Author: Jelle Kralt (address@hidden)
- *  Version: 1.5.1
- *  License: MIT
- */
-
 ;(function ( $, window, undefined ) {
 
     /** Default settings */
@@ -20,9 +12,12 @@
         animation: 'default',
         animationQueue: false,
         duration: 500,
+        fluidHeight: true,
         scrollToAccordion: false,
+        scrollToAccordionOnLoad: true,
         scrollToAccordionOffset: 0,
         accordionTabElement: '<div></div>',
+        click: function(){},
         activate: function(){},
         deactivate: function(){},
         load: function(){},
@@ -77,6 +72,9 @@
         // Window resize bind to check state
         $(window).on('resize', function(e) {
             _this._setState(e);
+            if(_this.options.fluidHeight !== true) {
+                _this._equaliseHeights();
+            }
         });
 
         // Hashchange event
@@ -96,11 +94,21 @@
             this.startRotation();
         }
 
+        // Set fluid height
+        if(this.options.fluidHeight !== true) {
+            _this._equaliseHeights();
+        }
+
         // --------------------
         // Define plugin events
         //
 
         // Activate: this event is called when a tab is selected
+        this.$element.bind('tabs-click', function(e, oTab) {
+            _this.options.click.call(this, e, oTab);
+        });
+
+        // Activate: this event is called when a tab is selected
         this.$element.bind('tabs-activate', function(e, oTab) {
             _this.options.activate.call(this, e, oTab);
         });
@@ -134,7 +142,7 @@
         // Trigger loaded event
         this.$element.trigger('tabs-load');
     };
-    
+
     //
     // PRIVATE FUNCTIONS
     //
@@ -145,7 +153,7 @@
      */
     ResponsiveTabs.prototype._loadElements = function() {
         var _this = this;
-        var $ul = this.$element.children('ul');
+        var $ul = this.$element.children('ul:first');
         var tabs = [];
         var id = 0;
 
@@ -157,20 +165,17 @@
         $('li', $ul).each(function() {
             var $tab = $(this);
             var isExcluded = 
$tab.hasClass(_this.options.classes.stateExcluded);
-            var $anchor, $panel, $accordionTab, $accordionAnchor, 
panelSelector, onClickMethod;
+            var $anchor, $panel, $accordionTab, $accordionAnchor, 
panelSelector;
 
             // Check if the tab should be excluded
             if(!isExcluded) {
 
                 $anchor = $('a', $tab);
                 panelSelector = $anchor.attr('href');
-                               onClickMethod = $anchor.attr('onclick');
                 $panel = $(panelSelector);
                 $accordionTab = 
$(_this.options.accordionTabElement).insertBefore($panel);
                 $accordionAnchor = $('<a></a>').attr('href', 
panelSelector).html($anchor.html()).appendTo($accordionTab);
-                $accordionAnchor.attr('onclick', onClickMethod);
 
-
                 var oTab = {
                     _ignoreHashChange: false,
                     id: id,
@@ -224,6 +229,9 @@
 
             e.preventDefault();
 
+            // Trigger click event for whenever a tab is clicked/touched even 
if the tab is disabled
+            activatedTab.tab.trigger('tabs-click', activatedTab);
+
             // Make sure this tab isn't disabled
             if(!activatedTab.disabled) {
 
@@ -231,7 +239,7 @@
                 if(_this.options.setHash) {
                     // Set the hash using the history api if available to 
tackle Chromes repaint bug on hash change
                     if(history.pushState) {
-                        history.pushState(null, null, activatedTab.selector);
+                        history.pushState(null, null, window.location.origin + 
window.location.pathname + window.location.search + activatedTab.selector);
                     } else {
                         // Otherwise fallback to the hash update for sites 
that don't support the history api
                         window.location.hash = activatedTab.selector;
@@ -289,7 +297,7 @@
      * @param {Event} e - The event that triggers the state change
      */
     ResponsiveTabs.prototype._setState = function(e) {
-        var $ul = $('ul', this.$element);
+        var $ul = $('ul:first', this.$element);
         var oldState = this.state;
         var startCollapsedIsState = (typeof this.options.startCollapsed === 
'string');
         var startTab;
@@ -347,11 +355,13 @@
 
         // Run panel transiton
         _this._doTransition(oTab.panel, _this.options.animation, 'open', 
function() {
+            var scrollOnLoad = (e.type !== 'tabs-load' || 
_this.options.scrollToAccordionOnLoad);
+
             // When finished, set active class to the panel
             
oTab.panel.removeClass(_this.options.classes.stateDefault).addClass(_this.options.classes.stateActive);
 
             // And if enabled and state is accordion, scroll to the accordion 
tab
-            if(_this.getState() === 'accordion' && 
_this.options.scrollToAccordion && (!_this._isInView(oTab.accordionTab) || 
_this.options.animation !== 'default')) {
+            if(_this.getState() === 'accordion' && 
_this.options.scrollToAccordion && (!_this._isInView(oTab.accordionTab) || 
_this.options.animation !== 'default') && scrollOnLoad) {
 
                 // Add offset element's height to scroll position
                 scrollOffset = oTab.accordionTab.offset().top - 
_this.options.scrollToAccordionOffset;
@@ -532,6 +542,20 @@
         return -1;
     };
 
+    /**
+     * This function gets the tallest tab and applied the height to all tabs
+     */
+    ResponsiveTabs.prototype._equaliseHeights = function() {
+        var maxHeight = 0;
+
+        $.each($.map(this.tabs, function(tab) {
+            maxHeight = Math.max(maxHeight, tab.panel.css('minHeight', 
'').height());
+            return tab.panel;
+        }), function() {
+            this.css('minHeight', maxHeight);
+        });
+    };
+
     //
     // HELPER FUNCTIONS
     //
@@ -646,6 +670,8 @@
     /** jQuery wrapper */
     $.fn.responsiveTabs = function ( options ) {
         var args = arguments;
+        var instance;
+
         if (options === undefined || typeof options === 'object') {
             return this.each(function () {
                 if (!$.data(this, 'responsivetabs')) {
@@ -653,19 +679,19 @@
                 }
             });
         } else if (typeof options === 'string' && options[0] !== '_' && 
options !== 'init') {
-            return this.each(function () {
-                var instance = $.data(this, 'responsivetabs');
+            instance = $.data(this[0], 'responsivetabs');
 
-                if (instance instanceof ResponsiveTabs && typeof 
instance[options] === 'function') {
-                    instance[options].apply( instance, 
Array.prototype.slice.call( args, 1 ) );
-                }
+            // Allow instances to be destroyed via the 'destroy' method
+            if (options === 'destroy') {
+                // TODO: destroy instance classes, etc
+                $.data(this, 'responsivetabs', null);
+            }
 
-                // Allow instances to be destroyed via the 'destroy' method
-                if (options === 'destroy') {
-                    // TODO: destroy instance classes, etc
-                    $.data(this, 'responsivetabs', null);
-                }
-            });
+            if (instance instanceof ResponsiveTabs && typeof instance[options] 
=== 'function') {
+                return instance[options].apply( instance, 
Array.prototype.slice.call( args, 1 ) );
+            } else {
+                return this;
+            }
         }
     };
 

Modified: trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.min.js
===================================================================
--- trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.min.js  2016-11-26 
16:10:36 UTC (rev 16026)
+++ trunk/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.min.js  2016-11-27 
17:05:03 UTC (rev 16027)
@@ -1,8 +1,10 @@
-/*
- *  Project: jquery.responsiveTabs.js
- *  Description: A plugin that creates responsive tabs, optimized for all 
devices
- *  Author: Jelle Kralt (address@hidden)
- *  Version: 1.5.1
- *  License: MIT
+/**
+ * responsive-tabs
+ * 
+ * jQuery plugin that provides responsive tab functionality. The tabs 
transform to an accordion when it reaches a CSS breakpoint.
+ * 
+ * @author Jelle Kralt <address@hidden>
+ * @version v1.6.1
+ * @license MIT
  */
-!function(t,s,a){function 
e(s,a){this.element=s,this.$element=t(s),this.tabs=[],this.state="",this.rotateInterval=0,this.$queue=t({}),this.options=t.extend({},o,a),this.init()}var
 
o={active:null,event:"click",disabled:[],collapsible:"accordion",startCollapsed:!1,rotate:!1,setHash:!1,animation:"default",animationQueue:!1,duration:500,scrollToAccordion:!1,scrollToAccordionOffset:0,accordionTabElement:"<div></div>",activate:function(){},deactivate:function(){},load:function(){},activateState:function(){},classes:{stateDefault:"r-tabs-state-default",stateActive:"r-tabs-state-active",stateDisabled:"r-tabs-state-disabled",stateExcluded:"r-tabs-state-excluded",container:"r-tabs",ul:"r-tabs-nav",tab:"r-tabs-tab",anchor:"r-tabs-anchor",panel:"r-tabs-panel",accordionTitle:"r-tabs-accordion-title"}};e.prototype.init=function(){var
 
a=this;this.tabs=this._loadElements(),this._loadClasses(),this._loadEvents(),t(s).on("resize",function(t){a._setState(t)}),t(s).on("hashchange",function(t){var
 
e=a._getTabRefBySelector(s.location.hash),o=a._getTab(e);e>=0&&!o._ignoreHashChange&&!o.disabled&&a._openTab(t,a._getTab(e),!0)}),this.options.rotate!==!1&&this.startRotation(),this.$element.bind("tabs-activate",function(t,s){a.options.activate.call(this,t,s)}),this.$element.bind("tabs-deactivate",function(t,s){a.options.deactivate.call(this,t,s)}),this.$element.bind("tabs-activate-state",function(t,s){a.options.activateState.call(this,t,s)}),this.$element.bind("tabs-load",function(t){var
 
s;a._setState(t),a.options.startCollapsed===!0||"accordion"===a.options.startCollapsed&&"accordion"===a.state||(s=a._getStartTab(),a._openTab(t,s),a.options.load.call(this,t,s))}),this.$element.trigger("tabs-load")},e.prototype._loadElements=function(){var
 s=this,a=this.$element.children("ul"),e=[],o=0;return 
this.$element.addClass(s.options.classes.container),a.addClass(s.options.classes.ul),t("li",a).each(function(){var
 
a,i,n,l,r,c,h=t(this),p=h.hasClass(s.options.classes.stateExcluded);if(!p){a=t("a",h),r=a.attr("href"),c=a.attr("onclick"),i=t(r),n=t(s.options.accordionTabElement).insertBefore(i),l=t("<a></a>").attr("href",r).html(a.html()).appendTo(n),l.attr("onclick",c);var
 
d={_ignoreHashChange:!1,id:o,disabled:-1!==t.inArray(o,s.options.disabled),tab:t(this),anchor:t("a",h),panel:i,selector:r,accordionTab:n,accordionAnchor:l,active:!1};o++,e.push(d)}}),e},e.prototype._loadClasses=function(){for(var
 
t=0;t<this.tabs.length;t++)this.tabs[t].tab.addClass(this.options.classes.stateDefault).addClass(this.options.classes.tab),this.tabs[t].anchor.addClass(this.options.classes.anchor),this.tabs[t].panel.addClass(this.options.classes.stateDefault).addClass(this.options.classes.panel),this.tabs[t].accordionTab.addClass(this.options.classes.accordionTitle),this.tabs[t].accordionAnchor.addClass(this.options.classes.anchor),this.tabs[t].disabled&&(this.tabs[t].tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled),this.tabs[t].accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled))},e.prototype._loadEvents=function(){for(var
 t=this,a=function(a){var 
e=t._getCurrentTab(),o=a.data.tab;a.preventDefault(),o.disabled||(t.options.setHash&&(history.pushState?history.pushState(null,null,o.selector):s.location.hash=o.selector),a.data.tab._ignoreHashChange=!0,(e!==o||t._isCollapisble())&&(t._closeTab(a,e),e===o&&t._isCollapisble()||t._openTab(a,o,!1,!0)))},e=0;e<this.tabs.length;e++)this.tabs[e].anchor.on(t.options.event,{tab:t.tabs[e]},a),this.tabs[e].accordionAnchor.on(t.options.event,{tab:t.tabs[e]},a)},e.prototype._getStartTab=function(){var
 t,a=this._getTabRefBySelector(s.location.hash);return 
t=a>=0&&!this._getTab(a).disabled?this._getTab(a):this.options.active>0&&!this._getTab(this.options.active).disabled?this._getTab(this.options.active):this._getTab(0)},e.prototype._setState=function(s){var
 e,o=t("ul",this.$element),i=this.state,n="string"==typeof 
this.options.startCollapsed;o.is(":visible")?this.state="tabs":this.state="accordion",this.state!==i&&(this.$element.trigger("tabs-activate-state",{oldState:i,newState:this.state}),i&&n&&this.options.startCollapsed!==this.state&&this._getCurrentTab()===a&&(e=this._getStartTab(s),this._openTab(s,e)))},e.prototype._openTab=function(s,a,e,o){var
 
i,n=this;e&&this._closeTab(s,this._getCurrentTab()),o&&this.rotateInterval>0&&this.stopRotation(),a.active=!0,a.tab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),a.accordionTab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),n._doTransition(a.panel,n.options.animation,"open",function(){a.panel.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),"accordion"!==n.getState()||!n.options.scrollToAccordion||n._isInView(a.accordionTab)&&"default"===n.options.animation||(i=a.accordionTab.offset().top-n.options.scrollToAccordionOffset,"default"!==n.options.animation&&n.options.duration>0?t("html,
 body").animate({scrollTop:i},n.options.duration):t("html, 
body").scrollTop(i))}),this.$element.trigger("tabs-activate",a)},e.prototype._closeTab=function(t,s){var
 e,o=this,i="string"==typeof 
o.options.animationQueue;s!==a&&(e=i&&o.getState()===o.options.animationQueue?!0:i?!1:o.options.animationQueue,s.active=!1,s.tab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),o._doTransition(s.panel,o.options.animation,"close",function(){s.accordionTab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),s.panel.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault)},!e),this.$element.trigger("tabs-deactivate",s))},e.prototype._doTransition=function(t,s,a,e,o){var
 
i,n=this;switch(s){case"slide":i="open"===a?"slideDown":"slideUp";break;case"fade":i="open"===a?"fadeIn":"fadeOut";break;default:i="open"===a?"show":"hide",n.options.duration=0}this.$queue.queue("responsive-tabs",function(o){t[i]({duration:n.options.duration,complete:function(){e.call(t,s,a),o()}})}),("open"===a||o)&&this.$queue.dequeue("responsive-tabs")},e.prototype._isCollapisble=function(){return"boolean"==typeof
 this.options.collapsible&&this.options.collapsible||"string"==typeof 
this.options.collapsible&&this.options.collapsible===this.getState()},e.prototype._getTab=function(t){return
 this.tabs[t]},e.prototype._getTabRefBySelector=function(t){for(var 
s=0;s<this.tabs.length;s++)if(this.tabs[s].selector===t)return 
s;return-1},e.prototype._getCurrentTab=function(){return 
this._getTab(this._getCurrentTabRef())},e.prototype._getNextTabRef=function(t){var
 s=t||this._getCurrentTabRef(),a=s===this.tabs.length-1?0:s+1;return 
this._getTab(a).disabled?this._getNextTabRef(a):a},e.prototype._getPreviousTabRef=function(){return
 
0===this._getCurrentTabRef()?this.tabs.length-1:this._getCurrentTabRef()-1},e.prototype._getCurrentTabRef=function(){for(var
 t=0;t<this.tabs.length;t++)if(this.tabs[t].active)return 
t;return-1},e.prototype._isInView=function(a){var 
e=t(s).scrollTop(),o=e+t(s).height(),i=a.offset().top,n=i+a.height();return 
o>=n&&i>=e},e.prototype.activate=function(t,s){var 
a=jQuery.Event("tabs-activate"),e=this._getTab(t);e.disabled||this._openTab(a,e,!0,s||!0)},e.prototype.deactivate=function(t){var
 
s=jQuery.Event("tabs-dectivate"),a=this._getTab(t);a.disabled||this._closeTab(s,a)},e.prototype.enable=function(t){var
 
s=this._getTab(t);s&&(s.disabled=!1,s.tab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled),s.accordionTab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled))},e.prototype.disable=function(t){var
 
s=this._getTab(t);s&&(s.disabled=!0,s.tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled),s.accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled))},e.prototype.getState=function(){return
 this.state},e.prototype.startRotation=function(s){var 
a=this;if(!(this.tabs.length>this.options.disabled.length))throw new 
Error("Rotation is not possible if all tabs are 
disabled");this.rotateInterval=setInterval(function(){var 
t=jQuery.Event("rotate");a._openTab(t,a._getTab(a._getNextTabRef()),!0)},s||(t.isNumeric(a.options.rotate)?a.options.rotate:4e3))},e.prototype.stopRotation=function(){s.clearInterval(this.rotateInterval),this.rotateInterval=0},e.prototype.option=function(t,s){return
 s&&(this.options[t]=s),this.options[t]},t.fn.responsiveTabs=function(s){var 
o=arguments;return s===a||"object"==typeof 
s?this.each(function(){t.data(this,"responsivetabs")||t.data(this,"responsivetabs",new
 e(this,s))}):"string"==typeof 
s&&"_"!==s[0]&&"init"!==s?this.each(function(){var 
a=t.data(this,"responsivetabs");a instanceof e&&"function"==typeof 
a[s]&&a[s].apply(a,Array.prototype.slice.call(o,1)),"destroy"===s&&t.data(this,"responsivetabs",null)}):void
 0}}(jQuery,window);
\ No newline at end of file
+!function(t,s,a){function 
e(s,a){this.element=s,this.$element=t(s),this.tabs=[],this.state="",this.rotateInterval=0,this.$queue=t({}),this.options=t.extend({},o,a),this.init()}var
 
o={active:null,event:"click",disabled:[],collapsible:"accordion",startCollapsed:!1,rotate:!1,setHash:!1,animation:"default",animationQueue:!1,duration:500,fluidHeight:!0,scrollToAccordion:!1,scrollToAccordionOnLoad:!0,scrollToAccordionOffset:0,accordionTabElement:"<div></div>",click:function(){},activate:function(){},deactivate:function(){},load:function(){},activateState:function(){},classes:{stateDefault:"r-tabs-state-default",stateActive:"r-tabs-state-active",stateDisabled:"r-tabs-state-disabled",stateExcluded:"r-tabs-state-excluded",container:"r-tabs",ul:"r-tabs-nav",tab:"r-tabs-tab",anchor:"r-tabs-anchor",panel:"r-tabs-panel",accordionTitle:"r-tabs-accordion-title"}};e.prototype.init=function(){var
 
a=this;this.tabs=this._loadElements(),this._loadClasses(),this._loadEvents(),t(s).on("resize",function(t){a._setState(t),a.options.fluidHeight!==!0&&a._equaliseHeights()}),t(s).on("hashchange",function(t){var
 
e=a._getTabRefBySelector(s.location.hash),o=a._getTab(e);e>=0&&!o._ignoreHashChange&&!o.disabled&&a._openTab(t,a._getTab(e),!0)}),this.options.rotate!==!1&&this.startRotation(),this.options.fluidHeight!==!0&&a._equaliseHeights(),this.$element.bind("tabs-click",function(t,s){a.options.click.call(this,t,s)}),this.$element.bind("tabs-activate",function(t,s){a.options.activate.call(this,t,s)}),this.$element.bind("tabs-deactivate",function(t,s){a.options.deactivate.call(this,t,s)}),this.$element.bind("tabs-activate-state",function(t,s){a.options.activateState.call(this,t,s)}),this.$element.bind("tabs-load",function(t){var
 
s;a._setState(t),a.options.startCollapsed===!0||"accordion"===a.options.startCollapsed&&"accordion"===a.state||(s=a._getStartTab(),a._openTab(t,s),a.options.load.call(this,t,s))}),this.$element.trigger("tabs-load")},e.prototype._loadElements=function(){var
 s=this,a=this.$element.children("ul:first"),e=[],o=0;return 
this.$element.addClass(s.options.classes.container),a.addClass(s.options.classes.ul),t("li",a).each(function(){var
 
a,i,n,l,r,c=t(this),h=c.hasClass(s.options.classes.stateExcluded);if(!h){a=t("a",c),r=a.attr("href"),i=t(r),n=t(s.options.accordionTabElement).insertBefore(i),l=t("<a></a>").attr("href",r).html(a.html()).appendTo(n);var
 
p={_ignoreHashChange:!1,id:o,disabled:-1!==t.inArray(o,s.options.disabled),tab:t(this),anchor:t("a",c),panel:i,selector:r,accordionTab:n,accordionAnchor:l,active:!1};o++,e.push(p)}}),e},e.prototype._loadClasses=function(){for(var
 
t=0;t<this.tabs.length;t++)this.tabs[t].tab.addClass(this.options.classes.stateDefault).addClass(this.options.classes.tab),this.tabs[t].anchor.addClass(this.options.classes.anchor),this.tabs[t].panel.addClass(this.options.classes.stateDefault).addClass(this.options.classes.panel),this.tabs[t].accordionTab.addClass(this.options.classes.accordionTitle),this.tabs[t].accordionAnchor.addClass(this.options.classes.anchor),this.tabs[t].disabled&&(this.tabs[t].tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled),this.tabs[t].accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled))},e.prototype._loadEvents=function(){for(var
 t=this,a=function(a){var 
e=t._getCurrentTab(),o=a.data.tab;a.preventDefault(),o.tab.trigger("tabs-click",o),o.disabled||(t.options.setHash&&(history.pushState?history.pushState(null,null,s.location.origin+s.location.pathname+s.location.search+o.selector):s.location.hash=o.selector),a.data.tab._ignoreHashChange=!0,(e!==o||t._isCollapisble())&&(t._closeTab(a,e),e===o&&t._isCollapisble()||t._openTab(a,o,!1,!0)))},e=0;e<this.tabs.length;e++)this.tabs[e].anchor.on(t.options.event,{tab:t.tabs[e]},a),this.tabs[e].accordionAnchor.on(t.options.event,{tab:t.tabs[e]},a)},e.prototype._getStartTab=function(){var
 t,a=this._getTabRefBySelector(s.location.hash);return 
t=a>=0&&!this._getTab(a).disabled?this._getTab(a):this.options.active>0&&!this._getTab(this.options.active).disabled?this._getTab(this.options.active):this._getTab(0)},e.prototype._setState=function(s){var
 e,o=t("ul:first",this.$element),i=this.state,n="string"==typeof 
this.options.startCollapsed;o.is(":visible")?this.state="tabs":this.state="accordion",this.state!==i&&(this.$element.trigger("tabs-activate-state",{oldState:i,newState:this.state}),i&&n&&this.options.startCollapsed!==this.state&&this._getCurrentTab()===a&&(e=this._getStartTab(s),this._openTab(s,e)))},e.prototype._openTab=function(s,a,e,o){var
 
i,n=this;e&&this._closeTab(s,this._getCurrentTab()),o&&this.rotateInterval>0&&this.stopRotation(),a.active=!0,a.tab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),a.accordionTab.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),n._doTransition(a.panel,n.options.animation,"open",function(){var
 
e="tabs-load"!==s.type||n.options.scrollToAccordionOnLoad;a.panel.removeClass(n.options.classes.stateDefault).addClass(n.options.classes.stateActive),"accordion"!==n.getState()||!n.options.scrollToAccordion||n._isInView(a.accordionTab)&&"default"===n.options.animation||!e||(i=a.accordionTab.offset().top-n.options.scrollToAccordionOffset,"default"!==n.options.animation&&n.options.duration>0?t("html,
 body").animate({scrollTop:i},n.options.duration):t("html, 
body").scrollTop(i))}),this.$element.trigger("tabs-activate",a)},e.prototype._closeTab=function(t,s){var
 e,o=this,i="string"==typeof 
o.options.animationQueue;s!==a&&(e=i&&o.getState()===o.options.animationQueue?!0:i?!1:o.options.animationQueue,s.active=!1,s.tab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),o._doTransition(s.panel,o.options.animation,"close",function(){s.accordionTab.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault),s.panel.removeClass(o.options.classes.stateActive).addClass(o.options.classes.stateDefault)},!e),this.$element.trigger("tabs-deactivate",s))},e.prototype._doTransition=function(t,s,a,e,o){var
 
i,n=this;switch(s){case"slide":i="open"===a?"slideDown":"slideUp";break;case"fade":i="open"===a?"fadeIn":"fadeOut";break;default:i="open"===a?"show":"hide",n.options.duration=0}this.$queue.queue("responsive-tabs",function(o){t[i]({duration:n.options.duration,complete:function(){e.call(t,s,a),o()}})}),("open"===a||o)&&this.$queue.dequeue("responsive-tabs")},e.prototype._isCollapisble=function(){return"boolean"==typeof
 this.options.collapsible&&this.options.collapsible||"string"==typeof 
this.options.collapsible&&this.options.collapsible===this.getState()},e.prototype._getTab=function(t){return
 this.tabs[t]},e.prototype._getTabRefBySelector=function(t){for(var 
s=0;s<this.tabs.length;s++)if(this.tabs[s].selector===t)return 
s;return-1},e.prototype._getCurrentTab=function(){return 
this._getTab(this._getCurrentTabRef())},e.prototype._getNextTabRef=function(t){var
 s=t||this._getCurrentTabRef(),a=s===this.tabs.length-1?0:s+1;return 
this._getTab(a).disabled?this._getNextTabRef(a):a},e.prototype._getPreviousTabRef=function(){return
 
0===this._getCurrentTabRef()?this.tabs.length-1:this._getCurrentTabRef()-1},e.prototype._getCurrentTabRef=function(){for(var
 t=0;t<this.tabs.length;t++)if(this.tabs[t].active)return 
t;return-1},e.prototype._equaliseHeights=function(){var 
s=0;t.each(t.map(this.tabs,function(t){return 
s=Math.max(s,t.panel.css("minHeight","").height()),t.panel}),function(){this.css("minHeight",s)})},e.prototype._isInView=function(a){var
 e=t(s).scrollTop(),o=e+t(s).height(),i=a.offset().top,n=i+a.height();return 
o>=n&&i>=e},e.prototype.activate=function(t,s){var 
a=jQuery.Event("tabs-activate"),e=this._getTab(t);e.disabled||this._openTab(a,e,!0,s||!0)},e.prototype.deactivate=function(t){var
 
s=jQuery.Event("tabs-dectivate"),a=this._getTab(t);a.disabled||this._closeTab(s,a)},e.prototype.enable=function(t){var
 
s=this._getTab(t);s&&(s.disabled=!1,s.tab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled),s.accordionTab.addClass(this.options.classes.stateDefault).removeClass(this.options.classes.stateDisabled))},e.prototype.disable=function(t){var
 
s=this._getTab(t);s&&(s.disabled=!0,s.tab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled),s.accordionTab.removeClass(this.options.classes.stateDefault).addClass(this.options.classes.stateDisabled))},e.prototype.getState=function(){return
 this.state},e.prototype.startRotation=function(s){var 
a=this;if(!(this.tabs.length>this.options.disabled.length))throw new 
Error("Rotation is not possible if all tabs are 
disabled");this.rotateInterval=setInterval(function(){var 
t=jQuery.Event("rotate");a._openTab(t,a._getTab(a._getNextTabRef()),!0)},s||(t.isNumeric(a.options.rotate)?a.options.rotate:4e3))},e.prototype.stopRotation=function(){s.clearInterval(this.rotateInterval),this.rotateInterval=0},e.prototype.option=function(t,s){return
 s&&(this.options[t]=s),this.options[t]},t.fn.responsiveTabs=function(s){var 
o,i=arguments;return s===a||"object"==typeof 
s?this.each(function(){t.data(this,"responsivetabs")||t.data(this,"responsivetabs",new
 e(this,s))}):"string"==typeof 
s&&"_"!==s[0]&&"init"!==s?(o=t.data(this[0],"responsivetabs"),"destroy"===s&&t.data(this,"responsivetabs",null),o
 instanceof e&&"function"==typeof 
o[s]?o[s].apply(o,Array.prototype.slice.call(i,1)):this):void 
0}}(jQuery,window);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]