Blame view

app/bower_components/bootstrap/js/tab.js 3.81 KB
f986e111b   TRUONG   add libs
1
  /* ========================================================================
87c93a029   Dang YoungWorld   add modal
2
   * Bootstrap: tab.js v3.3.7
f986e111b   TRUONG   add libs
3
4
   * http://getbootstrap.com/javascript/#tabs
   * ========================================================================
87c93a029   Dang YoungWorld   add modal
5
6
   * Copyright 2011-2016 Twitter, Inc.
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
f986e111b   TRUONG   add libs
7
   * ======================================================================== */
87c93a029   Dang YoungWorld   add modal
8
9
  +function ($) {
    'use strict';
f986e111b   TRUONG   add libs
10
11
12
13
14
  
    // TAB CLASS DEFINITION
    // ====================
  
    var Tab = function (element) {
87c93a029   Dang YoungWorld   add modal
15
      // jscs:disable requireDollarBeforejQueryAssignment
f986e111b   TRUONG   add libs
16
      this.element = $(element)
87c93a029   Dang YoungWorld   add modal
17
      // jscs:enable requireDollarBeforejQueryAssignment
f986e111b   TRUONG   add libs
18
    }
87c93a029   Dang YoungWorld   add modal
19
20
21
    Tab.VERSION = '3.3.7'
  
    Tab.TRANSITION_DURATION = 150
f986e111b   TRUONG   add libs
22
23
24
25
26
27
28
    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')
87c93a029   Dang YoungWorld   add modal
29
        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
f986e111b   TRUONG   add libs
30
31
32
      }
  
      if ($this.parent('li').hasClass('active')) return
87c93a029   Dang YoungWorld   add modal
33
34
35
36
37
38
      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]
f986e111b   TRUONG   add libs
39
      })
87c93a029   Dang YoungWorld   add modal
40
41
      $previous.trigger(hideEvent)
      $this.trigger(showEvent)
f986e111b   TRUONG   add libs
42

87c93a029   Dang YoungWorld   add modal
43
      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
f986e111b   TRUONG   add libs
44
45
  
      var $target = $(selector)
87c93a029   Dang YoungWorld   add modal
46
      this.activate($this.closest('li'), $ul)
f986e111b   TRUONG   add libs
47
      this.activate($target, $target.parent(), function () {
87c93a029   Dang YoungWorld   add modal
48
49
50
51
        $previous.trigger({
          type: 'hidden.bs.tab',
          relatedTarget: $this[0]
        })
f986e111b   TRUONG   add libs
52
        $this.trigger({
87c93a029   Dang YoungWorld   add modal
53
54
          type: 'shown.bs.tab',
          relatedTarget: $previous[0]
f986e111b   TRUONG   add libs
55
56
57
58
59
60
61
62
        })
      })
    }
  
    Tab.prototype.activate = function (element, container, callback) {
      var $active    = container.find('> .active')
      var transition = callback
        && $.support.transition
87c93a029   Dang YoungWorld   add modal
63
        && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
f986e111b   TRUONG   add libs
64
65
66
67
68
  
      function next() {
        $active
          .removeClass('active')
          .find('> .dropdown-menu > .active')
87c93a029   Dang YoungWorld   add modal
69
70
71
72
            .removeClass('active')
          .end()
          .find('[data-toggle="tab"]')
            .attr('aria-expanded', false)
f986e111b   TRUONG   add libs
73

87c93a029   Dang YoungWorld   add modal
74
75
76
77
        element
          .addClass('active')
          .find('[data-toggle="tab"]')
            .attr('aria-expanded', true)
f986e111b   TRUONG   add libs
78
79
80
81
82
83
84
  
        if (transition) {
          element[0].offsetWidth // reflow for transition
          element.addClass('in')
        } else {
          element.removeClass('fade')
        }
87c93a029   Dang YoungWorld   add modal
85
86
87
88
89
90
91
        if (element.parent('.dropdown-menu').length) {
          element
            .closest('li.dropdown')
              .addClass('active')
            .end()
            .find('[data-toggle="tab"]')
              .attr('aria-expanded', true)
f986e111b   TRUONG   add libs
92
93
94
95
        }
  
        callback && callback()
      }
87c93a029   Dang YoungWorld   add modal
96
      $active.length && transition ?
f986e111b   TRUONG   add libs
97
        $active
87c93a029   Dang YoungWorld   add modal
98
99
          .one('bsTransitionEnd', next)
          .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
f986e111b   TRUONG   add libs
100
101
102
103
104
105
106
107
        next()
  
      $active.removeClass('in')
    }
  
  
    // TAB PLUGIN DEFINITION
    // =====================
87c93a029   Dang YoungWorld   add modal
108
    function Plugin(option) {
f986e111b   TRUONG   add libs
109
110
111
112
113
114
115
116
      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]()
      })
    }
87c93a029   Dang YoungWorld   add modal
117
118
119
    var old = $.fn.tab
  
    $.fn.tab             = Plugin
f986e111b   TRUONG   add libs
120
121
122
123
124
125
126
127
128
129
130
131
132
133
    $.fn.tab.Constructor = Tab
  
  
    // TAB NO CONFLICT
    // ===============
  
    $.fn.tab.noConflict = function () {
      $.fn.tab = old
      return this
    }
  
  
    // TAB DATA-API
    // ============
87c93a029   Dang YoungWorld   add modal
134
    var clickHandler = function (e) {
f986e111b   TRUONG   add libs
135
      e.preventDefault()
87c93a029   Dang YoungWorld   add modal
136
137
138
139
140
141
      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)
f986e111b   TRUONG   add libs
142
143
  
  }(jQuery);