| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | /* ======================================================================== * Bootstrap: tab.js v3.3.7 * http://getbootstrap.com/javascript/#tabs * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */+function ($) {  'use strict';  // TAB CLASS DEFINITION  // ====================  var Tab = function (element) {    // jscs:disable requireDollarBeforejQueryAssignment    this.element = $(element)    // jscs:enable requireDollarBeforejQueryAssignment  }  Tab.VERSION = '3.3.7'  Tab.TRANSITION_DURATION = 150  Tab.prototype.show = function () {    var $this    = this.element    var $ul      = $this.closest('ul:not(.dropdown-menu)')    var selector = $this.data('target')    if (!selector) {      selector = $this.attr('href')      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7    }    if ($this.parent('li').hasClass('active')) return    var $previous = $ul.find('.active:last a')    var hideEvent = $.Event('hide.bs.tab', {      relatedTarget: $this[0]    })    var showEvent = $.Event('show.bs.tab', {      relatedTarget: $previous[0]    })    $previous.trigger(hideEvent)    $this.trigger(showEvent)    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return    var $target = $(selector)    this.activate($this.closest('li'), $ul)    this.activate($target, $target.parent(), function () {      $previous.trigger({        type: 'hidden.bs.tab',        relatedTarget: $this[0]      })      $this.trigger({        type: 'shown.bs.tab',        relatedTarget: $previous[0]      })    })  }  Tab.prototype.activate = function (element, container, callback) {    var $active    = container.find('> .active')    var transition = callback      && $.support.transition      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)    function next() {      $active        .removeClass('active')        .find('> .dropdown-menu > .active')          .removeClass('active')        .end()        .find('[data-toggle="tab"]')          .attr('aria-expanded', false)      element        .addClass('active')        .find('[data-toggle="tab"]')          .attr('aria-expanded', true)      if (transition) {        element[0].offsetWidth // reflow for transition        element.addClass('in')      } else {        element.removeClass('fade')      }      if (element.parent('.dropdown-menu').length) {        element          .closest('li.dropdown')            .addClass('active')          .end()          .find('[data-toggle="tab"]')            .attr('aria-expanded', true)      }      callback && callback()    }    $active.length && transition ?      $active        .one('bsTransitionEnd', next)        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :      next()    $active.removeClass('in')  }  // TAB PLUGIN DEFINITION  // =====================  function Plugin(option) {    return this.each(function () {      var $this = $(this)      var data  = $this.data('bs.tab')      if (!data) $this.data('bs.tab', (data = new Tab(this)))      if (typeof option == 'string') data[option]()    })  }  var old = $.fn.tab  $.fn.tab             = Plugin  $.fn.tab.Constructor = Tab  // TAB NO CONFLICT  // ===============  $.fn.tab.noConflict = function () {    $.fn.tab = old    return this  }  // TAB DATA-API  // ============  var clickHandler = function (e) {    e.preventDefault()    Plugin.call($(this), 'show')  }  $(document)    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)}(jQuery);
 |